From e440f19188f4babc43f0739c3a44c79d0bbc0cdd Mon Sep 17 00:00:00 2001 From: miggymofongo Date: Mon, 6 Jan 2025 02:52:54 -0400 Subject: [PATCH] updated readme, refactored a bit --- README.md | 8 +- dist2/assets/icons/192x192.png | Bin 0 -> 16269 bytes dist2/assets/icons/24x24.png | Bin 0 -> 1477 bytes dist2/assets/icons/48x48.png | Bin 0 -> 3372 bytes dist2/assets/icons/512x512.png | Bin 0 -> 67693 bytes dist2/assets/icons/casto_kingdom.png | Bin 0 -> 78628 bytes dist2/assets/icons/icon_192.png | Bin 0 -> 20574 bytes dist2/assets/icons/icon_24.png | Bin 0 -> 1750 bytes dist2/assets/icons/icon_48.png | Bin 0 -> 4037 bytes dist2/assets/icons/icon_512.png | Bin 0 -> 12384 bytes dist2/assets/img/default_pfp.png | Bin 0 -> 30925 bytes dist2/assets/readme/build-output.png | Bin 0 -> 109916 bytes dist2/assets/readme/codespace-button.png | Bin 0 -> 289398 bytes dist2/assets/readme/copy-starter.png | Bin 0 -> 52320 bytes dist2/assets/readme/git-clone.png | Bin 0 -> 86637 bytes dist2/assets/readme/intro.png | Bin 0 -> 365117 bytes dist2/assets/readme/local-button.png | Bin 0 -> 167388 bytes dist2/assets/readme/new-repo-from-starter.png | Bin 0 -> 159092 bytes dist2/assets/readme/pwa-running.png | Bin 0 -> 529972 bytes dist2/assets/readme/pwa-starter-overview.png | Bin 0 -> 327053 bytes dist2/assets/readme/static-web-app-slash.png | Bin 0 -> 128013 bytes dist2/assets/readme/use-this-template.png | Bin 0 -> 77934 bytes dist2/assets/readme/vscode-in-browser.png | Bin 0 -> 436896 bytes dist2/assets/screenshots/screen.png | Bin 0 -> 51913 bytes dist2/assets/screenshots/widget-screen.png | Bin 0 -> 22585 bytes dist2/code/app-about-BGKiJfUr.js | 57 + dist2/code/app-about-BGKiJfUr.js.map | 1 + dist2/code/app-write-DLE2Mxxa.js | 51 + dist2/code/app-write-DLE2Mxxa.js.map | 1 + dist2/code/index-CBloBB_n.js | 2 + dist2/code/index-CBloBB_n.js.map | 1 + dist2/code/index-COc6jZBc.js | 1660 +++++++++++++++++ dist2/code/index-COc6jZBc.js.map | 1 + dist2/code/index-DkYRBo1e.css | 1 + dist2/index.html | 57 + dist2/manifest.json | 86 + dist2/staticwebapp.config.json | 6 + dist2/sw.js | 2 + dist2/sw.js.map | 1 + dist2/widget/ac.json | 24 + dist2/widget/data.json | 3 + src/components/header.ts | 1 - src/pages/app-about/app-about.ts | 8 +- src/pages/app-home.ts | 37 +- src/pages/app-write/app-write.ts | 38 +- 45 files changed, 2009 insertions(+), 37 deletions(-) create mode 100644 dist2/assets/icons/192x192.png create mode 100644 dist2/assets/icons/24x24.png create mode 100644 dist2/assets/icons/48x48.png create mode 100644 dist2/assets/icons/512x512.png create mode 100755 dist2/assets/icons/casto_kingdom.png create mode 100644 dist2/assets/icons/icon_192.png create mode 100644 dist2/assets/icons/icon_24.png create mode 100644 dist2/assets/icons/icon_48.png create mode 100644 dist2/assets/icons/icon_512.png create mode 100644 dist2/assets/img/default_pfp.png create mode 100644 dist2/assets/readme/build-output.png create mode 100644 dist2/assets/readme/codespace-button.png create mode 100644 dist2/assets/readme/copy-starter.png create mode 100644 dist2/assets/readme/git-clone.png create mode 100644 dist2/assets/readme/intro.png create mode 100644 dist2/assets/readme/local-button.png create mode 100644 dist2/assets/readme/new-repo-from-starter.png create mode 100644 dist2/assets/readme/pwa-running.png create mode 100644 dist2/assets/readme/pwa-starter-overview.png create mode 100644 dist2/assets/readme/static-web-app-slash.png create mode 100644 dist2/assets/readme/use-this-template.png create mode 100644 dist2/assets/readme/vscode-in-browser.png create mode 100644 dist2/assets/screenshots/screen.png create mode 100644 dist2/assets/screenshots/widget-screen.png create mode 100644 dist2/code/app-about-BGKiJfUr.js create mode 100644 dist2/code/app-about-BGKiJfUr.js.map create mode 100644 dist2/code/app-write-DLE2Mxxa.js create mode 100644 dist2/code/app-write-DLE2Mxxa.js.map create mode 100644 dist2/code/index-CBloBB_n.js create mode 100644 dist2/code/index-CBloBB_n.js.map create mode 100644 dist2/code/index-COc6jZBc.js create mode 100644 dist2/code/index-COc6jZBc.js.map create mode 100644 dist2/code/index-DkYRBo1e.css create mode 100644 dist2/index.html create mode 100644 dist2/manifest.json create mode 100644 dist2/staticwebapp.config.json create mode 100644 dist2/sw.js create mode 100644 dist2/sw.js.map create mode 100644 dist2/widget/ac.json create mode 100644 dist2/widget/data.json diff --git a/README.md b/README.md index db83d42..18792b7 100644 --- a/README.md +++ b/README.md @@ -15,11 +15,11 @@ programmed relays.

This is an installable personal website that is accessible through chrome-based and firefox browsers. The website is built with PWA Builder and Lit Web Components. It utilizes the Nostr -protocol to fetch kinds 0, 1, and 30023 notes from a personal relay and display then (profile metadata, short text, and long form notes.)

+protocol to fetch profile metadata, short text, and long form notes (event kinds 0, 1, and 30023) from a relay.

-

If you're on safari browsers, try visiting the webpage then tapping on the arrow +

If you're on any chrome-based, firefox or safari browser try visiting the webpage then tapping on the arrow pointing up in the bottom toolbar. Scroll down a bit to tap on "Add to Home Screen". If you're on a chromium-based browser you should be able to do the same.

@@ -32,7 +32,7 @@ If you're on a chromium-based browser you should be able to do the same.

  • refactor
  • dropdown menu a la Medium
  • long form blog view
  • -
  • +
  • include instructions as preloaded content
  • @@ -41,6 +41,6 @@ If you're on a chromium-based browser you should be able to do the same.

    ## How to try it out -Visit https://miguelalmodo.com/dist to try installing to your +Visit https://miguelalmodo.com/dist2 to try installing to your smartphone home screen. diff --git a/dist2/assets/icons/192x192.png b/dist2/assets/icons/192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..e63fa2f278b5167da9161605f627c0ae4e710523 GIT binary patch literal 16269 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 literal 0 HcmV?d00001 diff --git a/dist2/assets/icons/24x24.png b/dist2/assets/icons/24x24.png new file mode 100644 index 0000000000000000000000000000000000000000..067fbdb7c08e3878c8b4dcbc188bf67f02379ef4 GIT binary patch literal 1477 zcmV;$1v>hPP)Px)e@R3^R7gvumVHnZWgN%9yLY$8@p3P6fZTzTcc6uqrZLmoFlZ4o5v5?66Z|8S zk)t!cff^%})u5A>ieX8Xr9)GLhC%3HI%PPecrkj3Old;OOL=hb@B8dF&mMQ(7?v~L z%+BuZ^UU}2{e7Qjf4dBB^2^K1O7W+tRxmM9CytM0w`F{6Oj<# z(4f%w)(Ny900sk5NIXDpy6yGK>AD9tD?~0m>XNJP=9h-88%zCjB)w9JZj3kArt7k=2F(aql=6CjH^ zq!SgQi0mvDvu{@-J6j2jRsj|w+|Ce2hrAfFdNFPd0-m@SBa1IigsyzrYdH8k19L@= z+5B85Crh3!<0COB83FgtSEBe~9p=o@LZ6xdPALP+MiLbS5uqS~W5SPL`fd2WYXk!w zE(neYh-!!=@W;8p;W9>d&%3L1#>GtuV7Q7x6&B1*k_7S>PQx@E2Zo7=(z7Uvv2*-Z zblL;xJ2L{22)KI5iSKreLKq{$^}vO#Oh$3%=LyL(pIVT?VrSh97&BE6socvpE4-6l)Gx`uM|<}o7zkqdil!cCQ4d{g!lYDMtO`y$x7Z*<(~Fr%QVDRo-LTv3@Or)Q`~8wTgTa6U z`}f1;a$#jv6+9jf#>dB{F&d9fr-MeLK{&)N!r?IJ0@5Q82p}gX2MUD($BrEXt%_z&oevBQK&ezp*L0WBIVs6{y!ZAMSig25 z9Gd0eiuE;5SW<%TiFXYbCYvs2jbhAkwPZ+P&pZ&dcf6KD5 z@qN9qcKyW49ZNpgT-B1UPfYzk1eeS2sjdCEcF&$QEwOe@1?f9@%a$!`ii(QrIgZoZ z2>G{O6rIcSysxLHXIo88&1Q?m;*)wk<*=>o!gq5o4@Jr z?+?Wrn(C`U8qdnQPgPxAa(7{2;SzIB&SITbYvwpkO<{x(ugBvV9UdM&Yq40`+uGWW fcXV{vrmFNWU(3;(&nK!O00000NkvXXu0mjfkK?-s literal 0 HcmV?d00001 diff --git a/dist2/assets/icons/48x48.png b/dist2/assets/icons/48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..f3d4666317db584066fc1c8cd6c67163c6450e46 GIT binary patch literal 3372 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 Y2+Yu0{XW)@90dGyH1yT0Rk4x(4>-sjU;qFB literal 0 HcmV?d00001 diff --git a/dist2/assets/icons/casto_kingdom.png b/dist2/assets/icons/casto_kingdom.png new file mode 100755 index 0000000000000000000000000000000000000000..ba4a4b8ed9635a71367f6b68fd5ae0e7c18374a8 GIT binary patch literal 78628 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 literal 0 HcmV?d00001 diff --git a/dist2/assets/icons/icon_192.png b/dist2/assets/icons/icon_192.png new file mode 100644 index 0000000000000000000000000000000000000000..897fa3d912a5da2e42e241c6d7399c9c484f50df GIT binary patch literal 20574 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 XUX+C8uwubYKn=I!?!T5Fy^#1fWo$>6 literal 0 HcmV?d00001 diff --git a/dist2/assets/icons/icon_24.png b/dist2/assets/icons/icon_24.png new file mode 100644 index 0000000000000000000000000000000000000000..cadeeda338a0dada49b6948496df102c068c9d35 GIT binary patch literal 1750 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 literal 0 HcmV?d00001 diff --git a/dist2/assets/readme/build-output.png b/dist2/assets/readme/build-output.png new file mode 100644 index 0000000000000000000000000000000000000000..749e512e1dbf725a4cb79b61ef6633cbc2c07c7c GIT binary patch literal 109916 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%0Dess(} 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 LWyvaWlc4_v%b6q! literal 0 HcmV?d00001 diff --git a/dist2/assets/readme/copy-starter.png b/dist2/assets/readme/copy-starter.png new file mode 100644 index 0000000000000000000000000000000000000000..14a100172c2f6ee661e6f43a0852ef799f7096c2 GIT binary patch literal 52320 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 literal 0 HcmV?d00001 diff --git a/dist2/assets/readme/git-clone.png b/dist2/assets/readme/git-clone.png new file mode 100644 index 0000000000000000000000000000000000000000..289fcb5d817380361baf4fdeb1de8dffe3128eb0 GIT binary patch literal 86637 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%0ANzK5-TET`;N85(ZuF_zdFBAQ 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

    {5ZAE@R!WZHO&8fWADS2c!#6sw2!r2z*qTJjc+ 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%0AR-2Vyb5~DHxOOMu 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 z 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 z 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

    dhY7|FK)bAZetK?9e_}sZ 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

    ;xWv>?QzbLh%ZaUMMj3GhgU!5}1h`%yu!Z+hWj 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

    g3iO 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 literal 0 HcmV?d00001 diff --git a/dist2/assets/readme/pwa-starter-overview.png b/dist2/assets/readme/pwa-starter-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..93067fa5c231d0cfe13db63d0d549fe3bb88bd21 GIT binary patch literal 327053 zcmeFYWl&r}+cr43ySpUXKDfJWp7(p- zt#50$YX9z!{c)A9bVo5bI>VsA^1z?Bz8fqs#s$b)OK)%~PFNB&X(KC8xqhwQ%Y8eb+KvKr!j# zCw!|eXwt98MI{r}bee|Zw#m>~TqcyT#Dn=SjgEV=yp5#CgOT|!+~ z%ekC<>rGQN@#0S$cwN8p0Z;)@`_D?5gJ@PEMQEL3JwHsQYio|#C>2(_^ zIxOB3x^adTH&sTt3>oF##(fIFPsDha(Q|c!SIhgnM}+T`w2(>44aG;&Fnae)i(aYE z&;~DN%}W+XFq@kXrWKd+h8>6JxhEfpV#0|3tzzG|8}VS+UxbSEas|(lzsHrC|Gisa zpQl3RJV{8h;u7+reor{pC=33S(l%ydF54k2kfWs6*9+96ah5V`P#piQplv)3A6R`* zP0{=i@jKg6_7`)`tD{wHj9Qq)s2f|Aj$f%+eAdY?PMC+bfR#!%HSh^( zbw1ZK4datjCQ?gRdGwzxmey2s(3Rosd`&M{E7E^Z_h4G+g`MfTzuetLYjxDUbvIt0 z1pjAtDHQ25RT$3ZvL&^pEo=i-&1afZ<3FX7YPk`gR3R z2xJ%+CYvA~Vc>lft4-6v6rw%aBQs>a*!GzmZ2h*MZKkW=nw-~+b=mXSK!uUrrmt3U zb?&A;#TQQ<1P1jFCh|TLM%_#y5jzbGV5v<^5M!=HCkYC3OMpZ~`j*B=FFLwhgzv{@ z(UOwXTvDl#%I1F}wn3)I(}~ZEW%jz5tL!88?Qi{$b$&+eY0<&H`{8TeTabJp9s}Bs z=yf&BzUMTZ-;AmTU1lH)@1rP%Au9A6@--HS7SNMn0VEmcQ774giNO-u81Jg~d`1JDDwMi-LgX>_d zm8LP4DSjJkMtXupQvBRG>noaz*gZ7)G=6aY6MVy;R$RsJ_vxQVr5>g_G4f>2;L&uE zdmQH>%h8uuq`IpX&Qo`>YUN~Tm3R>grGLT%>yj7AE&hhTgP&?`2c4(~mZ~ep|0nQhDM3JRNh^8FRB;wcEzIXj3eS{7GwLn2 z;Pt&B#HJC&i5y>M5a8PgZMkn_eNbQa!ZCb5!6(PNoyUf^`uj1h^?ll+gu{tALKRMK zi(ELXBRWHx18u(;24G^@Tf?;I+mrcBR$BbW{^V1#YzzUCGn)QOwFDKGYp&Di3-|l6 zdFr$lR9FPRqKTL%F34Wx>gt|-sswtrnW8Cyw8MP#>4gl@u(P14L6%#;dx`J7H~BqJ zi;ugvt4B!ijrCP8_O_S3GBEE_1`!kta-}jenlyzA(sz#Pg66AG_A0&LSMR3WHmyM` zqF=CJhI!O5EgsrH^~+A0=mDvl3Tgl_Wo$c?NdTXRHAJOf0|gRWqVSTnaI!A7>#nD6 z`ZWNU!ca3LwRaLewLO&GVT<#X)Utnid@_K`MXQI&RC*o@Gf}XPbEB?d*Zop-aHBdc zTf;POd#2H0<)XEQeWfX+8x1c#(8UFKBI67a0Tb1~qXq089re5as#p~dJPYJTo4JsO zDcrH09e<2e!JKku!=k6;8Cy8niEA2bEd>H%u3SI3>#14Bj%^=?~SU)eI<*IQ6lZp5M) zN-Bu=zEq1aq$U$yXbFZ8*)pMKm)W;koPVuF-Cd%rVO#6LgmJWEqWloFouT9>t@*WB zb(ta^1DqDR$O-ur3nC7mg%A*(Zlec$(GSdaWD9xR4|-gb`GC@|MCctVFn_?s!k(%7 zx#3e;%C8;ufyAl75rUu``>8|hl({Mr83`lWhc-h)v5j;vx$o8u6GtsWUjESr;S%NX z4U(!tT`2#6(WpD59VFV%?o90W4$ZQK1{rOsa0ZZc%*{~g?FN}PW1W&TO<)laOsG$Y zq(omu4p9pJBZQne0w#2Odx$|^y$4JB*3)!;^y4@N2P;fQ1fVwGiU>k*XmqS@QZvmP zbX1TW9_%pDb^-PRp`I3P_H&Q~!rlQFW8q$vUmi2(MVB4eeh7Dc zlO0G?m5(|tH4=ft?-o&p9|17bv>7xq5NZjdb6!a)Wy#? zj&IL6d6}~6e|#6HCaSL32>Lc$1lIm+hR4}o35Ol^CuXvXS)l93g!Fb z_D_TZr+-d<&>XomV})njJAtr_BIRGVA7bfM8o{B+Y7xWYhGwxbi_FqV%)9S?bZla4 z;lM0=)`|^+9iXpW`?D=Z57{ChsGb(Y_|@9g<8CZ?`uc%?70He=RGs=C*y9aL6a+!fV}Onty|6&vto>;JyDSj zc#GNZ?@jSXw`=X2hK6gLhg4)A@ePfrKh$Y+f(UNf{M(>JkajodPG=)XXZ%Nc%fHb;ugG4kX$i~poV?YUBxd_6kWXg6qOX~Y; zgKK(mw(eqD7?1V66lo%7cxOT!Jq7<0RPyB*#pERl?NJ$)?z$E!e<23mx%2NCEUsz9 zo2j@kat@ljSRp{QZR_yoYi`lSb6`gRm*d2(OfAg~q=}ve}^_qmeDgrFD|7s z%(EX5F$FBsqD1wa)uF3TL>YDav3xhmd~uAzf?lsUSWMI3E<`#>VOV&Q;93P+knosE7kO%5kD{FrF;*6*tdArh?` zQcTQ^E{o5RSLb)=n1Bkdt+vy~1_N?v**I7;j;)XDqLGS|ml5_Rc-v^0Aa--E8{~QJ z>J#S&%OdALOY{!F8Kx+C&Wj>#`r_5c=%QrK@t=zb?^msUT(n7lC^Pxz7Vu9s%RM@g zi#vhMR&m|AP-m!_=siaZEPgxxMZCW)BA zu0f4Ihx|kn&wrze-s7^-!iH?{O1Ljk{H@yca*Q#DoNKfLdeoLf8X_rhz~nZc!Z)Z^&_mC2P`UIX`kxsR&SD)yiXsp(l|z!a--T(kL*>qJtp{;+ zj3tA1Lx>~?0*Twmf2Z^Qq>!HZdj1&UzmGH(zVTf`1cv+-p2NuN+9}*P|bh#e;xbBGGU9u6aFw*la9i?NavdA`Vdo)Evb)1V%`+YbAru_6$TIk6mc4PBJyH4Z!YPC?Gt?t7FgrA;ps~!1Z=DUQ}L8oBe~Hn{x4|Hc(1YeRdi2V7cdeI z6pqs8`xOWF;6rCk(MHu0ntm#TPX!zM=xX+ey)noK`5T3?s`&WneOvM2&eBB098ZKu zCJzz<)D00|N1{wVeP@B@UF8rVSd*{WHJY%=ondc_42ZW9Kc0mvxO|)THsxTTaHcfo z#i@cmWb%ygNlT-kDtT(Q-&1DUu_=C@gpR`Bk><9X%0pj}cs&j8v#r>8w z9*{pfFY9T;2|c}um~K?vBb1!TflLd6sJ3jlrRCof+lgFQ|ArEQ-t_Ld45yNrO0VRT z4{@2D+`J2FGWuaNd`-Q^iK0@9ceEqirjGk0rZ*XRY`;ewv7WAN_P{(+4gdULATA8G zk|NoMcKmp;l`uzm@UTq)<8np(j&OeZ@${nxIIKrXPDGZs`p&9|O+NtCrcD8;N-zI| zo#{a{7yIAz*}G#(pAP^az5Ed8==?E{+?8d4wwpBfMDDjtnsGz!&Jg!}4W(xp3cZiL zv!*rBKw=Bj8(E&&$%tWQM)4*bQs)3tq?Kl=H^coqBGrsrGpRhEsUD6WyXms)QnM%#y`(BQ)Ji)jb)-++aoz1QrzU-+ zzTH(M6ORvLY0(Bp6sPY`En0oxDX+s?2TCobJO0@Hd$sUg#rNapysZjo8?;0JF?QZG z{^|nzVko0o8iI{#(-JzIaoSo{1OJ;zIc>^&cO@! zwx(dgHJcf8hh<;P zA?_?qt~W7*l}m>WzI);|YmHd!3r>9p*SS+a^xp0{M3m=UE_hg`%8l9 z`=Ez_;fw!O00R6LbLtRYn7Zzo;2J1$zf*kARkYQp1GD=c&6oAHo5{V3rVkd6jd#2l z4J0| zpQ!uY_9@c%ldO@yEbYlT?G5%8Pq!T-zZdsljb-OTXdit=G7|0{yFEfLd_x&Gl4>dJ zKjJ)XGfZ}NW%g536b+f!QNh`Xzf8^>^tajwH6;CeWe+-+eq83t3q^Oqqr?^Hq8DEO z68P(OE#^n`O9eTEV4mECA~XU4IPD4zE?GE#9mIF)ynMLDPy1pancY;vF8%drI3(*8 zOQhSTXsJWOLcmB*b+~5x6a>W({Ym^j#!{`-w#`SOX!wgwz0W){@+|M3g6^9QUqUWQ z$>9`rMGnf^d(NQ(i=eI_@u@-wgnmt@@+N=>+7}=(wt>&B=Q}F8`@NcF=t=zDY0J5d|XETA=Xq$sO4hxKBu8 zutnkpYAgOqjp#cotk&cY+W5u0OS?uYGP^FfFc2&waT6STV^lG|u(5HP5RrOn$}??!|MR7NwP_)6Xu{3ZORrk>;*XX zeinVWXxm-{JHDWvtNQCx=Z)R&K|N^wT&Wz%@}y+rf5QJfAG*W*TY^E{?+3Mfm80k{ zqX*2TPia|8fusE&R~x1rtsj+3OUns{2$0>n+pgY4 zTvQo4_{o&oSf9Tu>Es9Jt0%_c(~?T1>>`~``7oCeIB2A^J#{x@Bf5k^JCZ`-B0(bM z33Nj(rMQUSQqvZQ?;}+SC@ADU?1i7zSZB9;Nt7qjC2emLZ^1my(50olEVeH}NJ!zF zMRi|>N*!4yjSb(=Ti})a1hW+0U_{cI42EMnGC4B+ci6>;900uUFIZ|^08qLvf61$i zw|FlNMc&*dX}O~a!NSH=h>m4HKmLd2xh4G2YAG!nK_tV**JvBv&=(4-C_Guy57>+r z>Eq#kt~+UehE?~DYuHt4{IlGY*NLBWv)$?8yVcWuP(J6Vg|fa*G)HR z5k;JtdFFBjeoV=7UNuO?X32OP-6*!zr3|}4M`BrM?jlohm-qQ3&`;F4c_mtC=2oYc z2aKX`s;61@K8Qp9!409`p78#Lo|SE{yy}lkU@nQy8j<$Roo^v^N@wfFBBo|6c3U`% zai4hGpCl}CST{l{q>^}a(HG84S8yum)EZeWRIGg3S6;{Lta}?YP#<&p55`vODa_Nn zvukuk&HQ=FkjE`>B!ZwL{zz+MES7k^f@}J^Q37A&!D!$d-Z-emo2vOJjzfH;(~`l~ zZ1cd7g!i;W>ml*SKh(kCUV`~O{b{$<#6L$>VfV-@*(q$c@QEnsIX+%7`Db{Oi95$i z8IF>-g5QIWju)(IlhA_E!*V z5>4MF!#e1F?J|i@-ab2}0HQDLh{*Qjl~m6(#p3Nex2qkLx|oAa@>5CQ-5DOFldP3-YPi6?{?GNS z=3z(^sOxDQMd`wS&cZgoEA#bm>Y8;z*mX4~TyC9g*|=e_i5!9xL=|YlV7UBjvyH18 zM-Tpj*z{1c5eGGcxA!tM)UzDSyUAbNO-`M*OI$Dm1L!}wdBjTIgwgRF5l)#e8}F($ z?a8j-2I1(G;KdU&&pVH$NGQnO2GXdK=E;8wvO#7Rko3v@3GbUUP+L)oCWir_Z7c|}RAkVrlo%S2anivIF(j~9+pbRJ`cYq95Np2g6@igPFRoC8ZV65L+afvAbi$xu5VF z{l+9sHJBpi=)y@2UP#tjf_~>>$S56CV_c%YLr(!8KOx{Kh=*s(mk_8$=VF;fgHn)x z=v@q;4CKS6xO;d>otL7$65UnKQ4Vbok>8Q8!%wI}!*-yiQ?aj7dq%HuE%p-f>-9#q zpi3HQNmG0VQ{&Um*gtDWpF1PWkX^=sKccBNa!ZJ$j;C6&pD3m2zpj6yqCP%^2-Xnk zpWIXVIlX2JYlAb%Ulv^k3a6X~NlI^w!xx?ZWBVmO3m@{dTD8Y?xCI-L_vpE$ z)@uQw#M=ZxxU6vdCO9KuXPvypYv3F5UMlh8b#w59N$IjGEQL{z#ugZpna z@ExOVtg75I$txaBfiK#A-~waIp}v6r0}iU2fg@S|x1Rmd##VlS8cZ+xI9R%(`!y~T ztM1!NrO{c^enM%n!nFBT^55fNf>k5=`Izt+`-z~YOWCmychq^$l^YZd|62J?2ot>d z^>ym??p5ZK8q?xJEzYa;ooN%pQ5M0EJ#9EC;X^K2-<8r}b{wT65R(-IB zWTnC7#UbL}p8?dHh2S#H&~r5KF(9phvTuF!@96NITrPP*2cqU4hjddvqA?ZR)Pk-Z zt-=Cg>AHU0e}tku-4+BETtQAJ`_Tti;^%c=LiMm;h=6fZ66u`$TJ^=^b?8T|S!_m< ziAs|0O`YZSpY!4{;=?lwT8-|Scygc{O3V$}&?G%ST_azt7CV@~luC9*cG-%8OiW{` zKC1j$jMe1z=?~!0ZNwgF;H`vu3S>HO(p&H7UmdUKbl}N%GBoj6oJc1WG+^`Fj7xfu zGZ?Y~^IXF&z~qy;TU*|}deRx5Gi8qdTNwU71Y6Fpx?ND!0wmQ6u`NnFFR z$8F~tab_-8O5AS?6yKW?tJ+e#edYU`Tx4+tdXYzn|4cy0x+|=3Dm5_OX2pI*BS;gD zhAV5H_9-?|#(}i@SJKz0*jeimncNmu>IO#8`9H@1aj{h6xZ@bDJ_3b|`E#%2-?V4u zV60zCqfWNcu`I#apA(2z4tTk) zg9{jhu_jXd$^97dQc_{@^j8l)Uq-}OVve7_OfH6&C~H5l6_t=1l{t>tCgH7f8DPm! z8PH}NzZ=7rtG3Zy7ZmUPqd?lP3ysO~>0_sw(O+}Binec`?+%2aCCVDu2fk&n_SWD~ zk}bcBCO>4iyxYZ25(Nsa02<#_fEu+;n!W46s+I28W(KF|m1Om%+-iI`S|V$RKW?Hy z^J`AED!`C_#dilw*!AR>n@`(v6U`HhiZGf7vF&cG94_kic1W!tH0c>GTfgkQGRUB>y9}FqViREvAF=OkbMwP^}S{ zyBu|zE%Mw}Cc0HaqjbgfDEdkZq}L)Nly&v)!%?t8;wcpIWl}Pr{%IqrJKMj$r(WCj z@fMLR)3Pq=22f7~92>Mz24ZleQMHE3tm(TXo+Qq9zEG$Z-XnE5Jbu|U`)xp@!<^tp z)(t02TbRJk^|&oriCn22Aet@U-SV19jo=HGuCtK{Cu2w)ahIF2o?JD-^%}%_^)k!; z8sC(T;39?*u*@xvLk0{J+6{I0YL*f6H?bUlrbR+WL6Sx?b*2knwR(->qB4092{CxG zzgmCM!$4aVy7JSbc3BHL2`Lf%GtESBo%M>b*1BrWB}_Nt_fn2^+nq$j=%4>BJ#i`y zFi}AANi0pFh{(uS@7O;lUfqc6XFCYUJ4r_KdB4_wAgL~#QX+mmLSdZMA+*GZbBmmV zV(7D^_Bm0g-`MqB{enP^emgotkVm;v*=QO=vID;YII@u}C=|iN_NU$hW^$rg*!4k* zDVCuhNg(=shf|l-Fcp@<_J#R);C|Zy!Z2p2qQPRN*DII9H2x8kPfp4_UC-b3~S{KV2NAHJoJ6Mq#_26z6QPf$ve2vS_8!8VxTC`T1_{(xRDnk)|2xOf@4d6yRbjmhY1w|B7IaYXiW+F;J8@$A~WRS8Js-%p=mLh|N z6S%mW(BxdcZC-}#V=%C0u?;~f71^b$&y%W&SQ9uSCJzuc-w+xr;6q)f#U8<#=+E=? zpDIyBy0h`>MuKVFTe>eDu$*1uO0~w?*N03f1^0u1Q4z{cQue=Vwl6MYokOjtS{Ow$ z7%Fk4kOOjggJdPbZ1BLM3Y$5e>;wZ9i58jS@gqzR{RM-JU$1h*Yeid`#J*;{FFCN7 z&V07b8Lt54I5zk_26@J2Tq(MoNWQs7hw3)$ z03N&?ex2zAV;j{Y4Ri|IJTAy-%pwF3{v`P9nmUG)9ky@pW%1!wyICG;lr6KY_x;^4 z?`tSxTO1lM*zB*+e+yy|<{%~0|KX}bdD2>y(mHP~OEvUxLH`1+Qzn>#UvRC601H9= zcB>CC%qVr@g}=@`7WkTD%-*~Jr$LDE8KzQSp3UTDxVrejG}#2~p#r)E+bvUMgD2Eh z{Mfq5g2Ime^u?od`1)|GJKu?=IcRCN z)Ti9`ytL=@lCj|GbLzM4y4t$4h!XYQY4|0pZe!V?V!FAAC{w~8fiCcxW zX?8Qe_HUM8tnA#;E;D=bj_k?bY5pWuDXY%D2?@T3m(Y!w$XW8$PSG$V8T^$tI^4X# z!slzji7qeH?)#S%7XS07^DW)(E#&pbD=ZcADctFtK$qjJ;AAQt=wJ`h<5af=Lp((9 z0yC2?E-$XFRK;?al(I?9$}L98iO02BkfxoIY(hLaRsdyf#q-o6SbFI3~C>uBU?}aphVLvP&?62YVzdXPt zaabfgD$~>JXcX?fGIe4m{VUNwszR(;o0}=PUl6}YgQ*!I_ta7-vr`#>w_KvRW;SMT z3}2zP{5E(D6xFfsL(#lb&Ca3>Fc?wi}(=45DdL+I_Aj5?aJEJuJiDhZ=l1ziz;0lPa zJY>LNv-G2k&Qyotwk?a_O=Z#!f@#d%es=+ z_>;+?h$7uxHg}97q6?u1+Go70#oJ`~h|6Swf3V|)#$qR5spm@_Zw#R3u*HP2;`MDu zEhYvm59foIXGMmH1HS(8iv(hu1S4NJ0!?J*mS?f%q+lsNhM4e2QRm|OWs?&A;Lbg> zsQZ&w8fhZFQ$Smg2Y*Y>E8;+j-n4d{z*H(wWR-diDOKc92=(%^OB}nx`c-6FkaF3q z5QFo$@!q{dT!+aSuDy+`A09U1{EhpuX6sLri#vS^$5#t#7g8Y8ilKD*cuO!YbWEHo z>uq7>*}j4=Zrfk4fqJ_EFKk*N!fp^?baI0EjfcELkb2ExJ?^n%$7eG^35hE(TV+0GGQsHTr>=U;A4neXII$}t45y5x1e;Ty{qBXV`kA@2>q>S)Dx zIrvSDOH?0lZ|LLS(a-RPLbGymBGER`Ca7;`(m~d(4UZ;J?aaETXHdoRD+x_x5>uAx z#bT&K{F^JvR=^feMLPFKIIr`#+SQ>ve3vl7467C}K@hoC&MRQSF0Y<5$~=h0YroGA zU(dnMyeCm6t>T$;6tRs}`!j|A_x<7>JO9+QC++wzm6eYxAOA~_^KOmO2Oj{O;KXoD z$LQYn8T~v(tbx$L%uL`zG;D4ezu;i@QZjE! z;mANVU8D$!;=6$q1MbOdctjC+N+jc#?@*+7Wp}CRM6NchBzb~?H3Btic?@I0in@gw z6pJM+J~VA)Pq4`lmGQalc}2qP^+E0phh2RBp2V=$E;Y7!pR_`{@XPu_?00|*DZ0%F z8%^#PIh%twniN_OYNqXymyL0@x(KV^2ApAA>Jo!k6_Z<6_rg4-2KLxS?wEAJXQ-4` zz-bl2c(&Zh4H@ZzZq@|TpA`(G`JRNBaFb_ zQ;XHt+e7MLEP2}g)cec~^ewO(U^($hu-0l+!JjzCviC&GSy2ZJQIfsPM^;4|CYbS* z1R};K%!|PgEnPuZ<;lQ;fhPQpgI8Z`_zj*!lwi5nBwL&)RjOz*2rD!Sc&m2sdQaKj0C z^bYGz_kc8{?dDUvi2v5VGAg5SQH!vm9od>n{lMG0rx^C;#kyg3WN;}IkTf9#hVZTE z0}P3ebpi_?O`1(!1(zLDcBq6RW%zrC{+rB}R3L@ZlSG$S1~V)e-2dg{1)8UKULz`b6X{Vq&8=Jo4K5E=Mx#hB9%}O5qRHzOFHyAqF9~X*==6opz^L;V zez4=KsK??3-kYyM=qD4TfCbHdgRFu`;3c;9C*Dtxl!kGBygY=^GHN$gG(+HSh(Qaw zlyQx$#h!H>DX0-7<)dv-V`>06i9co>vyQGql86~^xNHJ-=;qxKkMi|*Ku$e4P5zzo4sbc)w9D3l97 zLjLO+UpnA~#hP$5`7VUxU7w)`Lu$j=bXLenwf8rh!}6{lAg0zW%Nku?ydd$21BTDp zE!KD)0@gdV2|}y$#?4N7LpTUgQy4Wn&q;v6b7r1st?3fjcnPeE+i z-I>0R$dHi+&b7qpz-2<|4*J?b{3vS&X>G#zI361#eD?^&iS*9ZLPUZxNenvjh>LPP zZBYq7oz+>foJw2#(n9;!>i@Y30{Iq-hTx*{++6P~x>djb*S#p#oG{v8M6Q3M6tjFg zc%|zxdj!ZTIgGgdJi!neVHEa&rKFyz~GcgmVYD1ys4)m}e)Bff!pPoj>o zNbE>D*+v;vFT}l?j9#paoh$fUjP!b6z67%7`-e6IX<}|RK7|!w#rPf*`f|Zkqu-5y zX4092w;#9KX)iX@Pu@Q8hBTJhEy+1{^xyHtA1x5&T=MbmNC#RXQew5;L>ev(i%)hg z?g^$pNY(q~Ay)Mk06b<61o}cdZp?VGcO&9e$C@FtZdcYQF6?TnkV9_X1K`^)?NCC! z8a|Y2<9qzNLQ8buQf#gcx<1Zgn7a5QfHPkI-`|Q{n@oWD(ngt*nk@!Au&$MvY>jd| zmxvBTi(%-W>W#E5F5MLY)G%=#n12qIO$LYWBk4Do9Prrq@aH|=O-4jG^Q74^8FyXq zu0O&_=eY{QUFa@~FirP0O(LXBm%p?ts}7PV{a`CDX97;}?bMWg`4N%B!u#2;wMVAm z^8$h9T%#M{1pLr@0Yz6;VR87jrKAW@95=o|LGcg=?tAshzzm*&@I(9C;R^7yIo~!66Ax3L3d#Pf z9Eqa6rb3?5q>*)uw}xxo6m~$YYBo}Cjp8}|h~icd4D8w5)}^9nxC<d-<(*;|=dVPJbU+6o)h+_=9Pg&MK(gEWT~h z%bVI|0@n+B*3vvkIwwI0NmbFpHdh9I-EV@?kw$K=yg*K)kSX`Jq$B&uRwJSh6GljB z^#u=B>c`9;byM&s&m=vHfB0*3Rh-@rB&UW!gshpaPK=EV%rv!|pRjaMC~-CX`iPsn zgm$2(GQMcuAp0=+M^EZXiqO5#fF?AmTGI%*bt$q3_$tBdtuL3gYJ!n#Y<^dX)mMo( zQ@%dL(-Nqb%;tf(Oaa>=pQEDL$31F46bjoU5Bu|{BrVT`J}sSC{*5umPW*n4TjhZG zS%l3eqW?%&Z^p{34gG6bP7OKRqH$Y5Fx+P(MvaSv%ZXHsr*!%CU#6tlZ^%LMry{vL zy3rx?wm(mUr|Yl*3m*MmQO$&Rdc`_yfUMC9&m`RIMR6_<$g!X==1LQJ3_EucR}Xb1 zGV`U993dK7O~NQJeADa78N7f9%ghh2_=Lwfd~f}%dT;1<$6~deL*@3FEDr#x3hVIO zag#-D7)K_|?L!ybBnuDH)SjMhL12_L~icE^G9bBSS`;=J#J zqvY1RjiWZ({sO)ma|QViTC3#q;#t^mNGGcWxc#xr*IeN1YIWpCf?a^s2M@Hc;t>qN z)-@~1Kjf$#ESrbEU3c=j9$+Wrwo{KTILbutVk=k$iB^SyJ)cZ9IeoXga8?V;$a&l- zGo2O_U&QnYCH;!$AWJ^hhg{hE3qJ<3wefQP3b=ULsm+umKz*#k2 zgZVOg5H}9e-f^Ez?;UYImPX2q74DjA?;t!>#o(8;34c;=VzmukcE7RXqw~;Xt1|l=yV8ouzb>z~wFuFP7P z2NyI#qCM4?fuWEgJ_>y2IM-0&3Q>Avx6}@;*(gpstd3JJ@9vsbvV|SVFZNM6Y^P$T-9mq#3X#wS-TEgS zr{alDs&qZQ)HT@bSZY#RP8T2gJPKALCAnX{2URnl7UEr&K-pEa#g#1#l$lNM=d4eS zvZdW_=YaG?cP-Bl3{9FjVhpy5hogT;73jP{_5HYfP5)kDZ*qTxsl1jiWFVRHNMh*f`0RYP;db@0&GS+I00<{P{Q@jQySZAl&s?e26(2Y-b`cJdHcimpR@i$}jMY{+}3ebQ3Od0<2B zy`obg|7r)zrjGXCwDmA28866n(!zv@@H?$di)M(-ywEW)#1lkB64DYfo(KBh`fQIq zlNi~&4)cs}QoF<=so=Ji6U`Hx{N?vur1m+&Rja|LSoxy%4WG2qrHVL&$Y-Z;k$4pT z#%^T$?m8RPs}kY@M83wtCXQabSn!=`ddo7>qAVG>J@JTwIxV>9wrhMtRb0ewy`qTvK!k&;D%5_q zI)GXt=nlbocQYBoX={aP00Jp6xi1TsE6O^ZPM6b%b-UAVqM6VG%Hy4&coOcA3@q4g zfVuPsECmj8^tYEMA9HC(!ly&q_aA6pu{89rg-%5YGr{c-{|?7>j!v%n>mYj&yKl24Kt?Z4oF%-l0rPD&vwtIUzcqUQ=s+BbUvH^mm$s4VFgRKfAa`S$nvP6Id?Q^=Mq^ zTrXD3NU*3}sQ0MSB9y3%f7QL5F_B(MmD@;iX!;-ZUnlqeI&@z9b$u)T%b`C{Qti&d z9lUjR*m}M{TxfINgrzwn!N3whNk(~l> zNVtq2ArT5K$M1+M_91>-iOL|KO#!FC2a@t@X9VbPM2En0nt+!bootCfOus~E@~xAR zym-8%Wea73rZd66t59D1q*#j7%b_aezeW!DP=$lfl@s=z5nPD$d|=Ci&u@+v(T2HK z`$w`SH~Lpv>pg}*vNH%|W=Oc8D%<5YIWz}TI!?p(k*lp5IeQ-ebN*dtU*~}d8QaC0 z<4MfVtHU^f=>g_1_od4Ug8T0MnBt|h2 zgJCV$BZ&7l^~+E`pG}p>($2RNmFT>Tzwd)e<6>=jL#R9=ed}H%JivE!w(pKbz{R`t zi6ji27?w*H3|K!@3A#bYp)QhruZ zO8dk=^+U68sDZU;R3=!FJ|RO z8HkX|CiC#$mE?I32sMWZU)G!gyeOTh(4rC^%+#C8JtB?%Z=Dg#)d~T?O#P%|Vs(+@&$jJ+6{MhzS=k>-OYVjIT z>97p>KL|VPs5qK#Uk~mQ+%34fyAw3Q9fBs<;BE=7!5xCTyAAG62rh#|aCf-#zMq_P z&pqpYYyO#Dt5t@TeE$fepxn+w6BO04CICm5fgsDGL}l zt#xT>J(6$B(}ja~k7N({I1}C|$_qZRw?cj<^ha+$H{!%*Z-z;Luwfrx(7#Q@?j^X_ zZhQ#&8NbXm$7dN(=TU7LfTebSppqHjL(Jwasv+ecbK(=`5ObIRgxAv8=*v7b%>6MnHxJL-XhQummiCq zH1n5&rgEyrAxGKdKU0){QlSYW2GobN7VdLP^C}~y`G6Tb!PItYP}nzPZ=Ook~4)2$t6IWULYzY#zxO+W=e0zFAvt!4LqM_A53^@;YuHrXMTQs_nCiwjOpuC zS>oDEO${P+C*wBMt?r9-9@l zLc2X8U3VObAIo7_!uc;!1Y>s3B^s6qk>-i7>F8qfjLneY3JY~dTjME={4mv~RUl<%Rc;u_?iW>M=sR#p?_sB#XUAl;WW*jZT&CBlv z)io(gdR6+N_>v!r3!P4CYJZ{Pq&U~P&}_9+8W3?3HHb^}NfOaU1nN4Lp7%^%RkneTN2K zB*)UkPfm>1NvBal&iV90G4q|$@sL}Fy7rAfr`%jjq)`C;f%ivH(rEa4o}u&P6<`iETc$Vz8OElx_0f%W{Wkf7x4%qER+ofNWRH9r5I0N9pbo(AO?S_yGx8Zz zj4IdByO%@D0L>v}kJztZ#X+=B=J5LcVakui?m_1n^PB2vyEn1iv3mcZ52=xx8C;ll z&97vo6W+R#Zb-CQ!g-j#J&E<~o<-VDUbxy$AF%aUy%8Lvz1b6E#lIiH@#@6JwEHQi z;5&EYhQcJn!b0;KK&va+SH5Nyik($Gd*Cb4$HCZ7m%hn~zi>NkKg1)3gIYfwj%dO)w;y+YaHb&NlwyO4}1 zFq}$nC{eSI7_?W4{S=BVMRLxEGmo~+cn*k}GLSZjDn$Oe^y5eP)yvU)*Ju5MmTim! z(9_vCh$s6MtJgz4`D^AN$6%&8NML)~dI`TMy1hn6%3Mph2dmuR))(E5Pv5Wo;Wzn+e5p*c(b8x%8fB)3X+v?D%V6f#e6joOYrnHPNg>=7ATzk0h;{C z3mS|y>x5KGLy{zL=F#V$jwknriNBb|a$NsgVhKfvD%bTR2WkF}VmMs`?!9HVAz07L1|R`Ut13W$WBd8_Qw3bI|VTPL5o zvUVOK9)qcTIhYjmaZg0$ypO+>?;#(SzJ@)Z1D|Sz;oT(d3N8Uf4O3=S2c{%DQe$LT z(h053{O;MPgHAKu6D4JX#O8&|o(`j5$VIy)DJXfWSAaH!%6t@0O>Q*YI@1#d02B@*hwn9hz0PVU z1&7^{f7AQp!vnY0F(Lf>_pi^$aX3Qp8S62F2xfvUF!rfZQA$6v^LHxurJg?kNRI?H z;UIDlHJS>YC}k!-(MZ-#1pTs=WbAKxb^el635&PFXCE@H-VL-Ri#BF*T?+8n87Ug; z&Zqd{FEZ|b6L8;It%8;JohAW(Qj;KvR#4PXF;1PLfj$!z{}K%VYUQz+nn~uuwS;@i z7%<9?y8kjP#?XJWUAEqm~_pUq13GGn02rjUMxj;>rE|w0R zRd9(tZ_B|oJs79L8P^;#t9j;K8I%ENk8ISn9FBvyRF_l%QUIc-Q>(M9_8?%EU^MvWnn-oBRBl#rqDZWXI37GqY@UnTE5*4)_%F z-PfSi?8Vbxk5mtfF)dTmWEJ>{K_MdlK3H0WCsHhy?uV-O3wa-hf<9dR#OFn~*^p1~ zD!yhp%=`J)(V--@O|B39ly5Hf`X}xyFug1g0S@TiZUwtokSEu*sng+w5>lUTN#ZQ1 z3BRa;*D%+AQwH5l$oGCT3M$tkfX#F2G7U~^dHHf0P!%y4sfh$Gh=pw#p<-8}c=*1T zP#*E>2SI=FS1qZ!z6%+eF>#0DXE5)corR`0K+-Yi@LU=d96?+e7c3OThlm>P>d!Ej zXVxr0>ZtqUZSH|>-l*nEaUok9^{;kDDcZd)SY320alUQadG9jnbXXMITX%eQQ*sE0 zt(R1<9<9(bx9o7LpX%)tSecy1Ep{^E^RSHG5pX)76vYsBpBu(~!`(Nw)h~PrwBS z{g{!t96q2Tf@)uX)mBZWEvJ8wTmv$nty zR_OJ`7U7B(U%a6?N5*bTVilGdLvlNE$4e>f=F*~GJ|cOS}WoWCbV`A`>fG}J>6>B-pXrj0h@+T}BfHuC`X$#K3I)Z!M4d0#L1 zC}btZXGe?rKIQAj8quV5{jQtHs2G64=R3xO?|Ae_+?HMrXJuYlU69)_bq`E_0x-tX z7F6N{VW-Na=-PfIlaxHfYR6Y%jDulyU#ezL6gc~&e{Hd=CWuo0#D9G^HW^9>ClevX zwYz2R>Uj8;ENs8aO4F-bj?lpnP|k7pozW|={N#b)ba&aE$7;36x6;=RhKOCDCbf(@ zqji}%35y(^B#F5}4L9Mg_<;}ha}h@(d$uQ7DYwe$`ZF9H^dH#OIqLfdY5@PCkOL&! z6rlYvCeJ=S_ze@Zw-&0fva&HEGo=o#!=`C<)Y z^1#rtzSLb%IJm0cP-!#CFZrbRq{pN79`fzzc(^vGpHdXw`UD-aE$Ov1hiG3Y;0P{t zR(r+x|6~JH2H)e+ndRwrx%5PqE${!iC)Gy)(k=(@r|fi~AXgIn8GZzfV`u4iAr-I( z?)v!f(;Jb#IEi(AK>?^d$}byTcFFwmJYYDi9F5HOiMku1n}!-vpeZNyx*zHm;_jj5 z<=YI5t&Ow&y26V9J|&m+tn+Ea82gdoW2>2-`1*RMDUr~$lu!-@2jq1oQJF5U`3s>veUSQnU3QHkWrb!6x z%Hqk0MUav^c^l_|{)b|B(z63fWI!`P+rl?pn#CQ1E)2OOt}7o!f`XP$&N3LPR|3PL zI72ztW&})IS{56+H&`@q@-6rBrsLj0-rBbYKGQeZI)J;M2+#fgXAA(Ks_3E`f1&R^ zwY4~%rt0&}>lfc21w)#L;mKchs?8wNn(qAh03HLC-Wu~uHh_Fenca5?Ck>XJE(hU# zD;X@Tj-d&bBt8Mr#A{^bJ70p~a}`I{rCF-nf^1O?vQhdMwn^rZ8TvMlvZ;Y{{(SAO zpJ9w=QV+@_GwxkKu0I<4=U5}GZd*suea=7z&yg0POZ*lu?n^Lc0_eZ!#PH!DX8v+8>Koubkn4$i|Ft#@Vo;$*0@fu2_r#-X%6C32qM4FTasG{wL3| zyNKr};8X$o02=@nw(jE@;1~tST!MU9b97%>y*r0cXmOscpXOoF=mXRN#s8Bt`PV3B zD+BWvLvAh5R1_-8)avtm9XJZ#tf(`sriK%|m%Va<63FMQ(&7o%tNvQG!^?El-ln1) z@WCr8X`yx9+HP02{3%yY;~ysU7ya^IWJ(D1FQ6R;?30$M22N|gTdU%BEPH_Gbfgq3 zAK!U10#xnXLFkrBWl`BKSqQ(w*TF77^8Y{OBP`kLVH6at*rJNmm}5W^fq3$Xr@>Y& zs*1UwA5Mlg@})OiOab+NMpy?U-t*^kb%0D;#ir8fU5VUCKh;LF-vR%ruun+cGn=%z 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�OK!dyN4n7UiZG}JYy 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 Qd#FQ6PEEE9_$K&&08RGkAOHXW literal 0 HcmV?d00001 diff --git a/dist2/assets/readme/use-this-template.png b/dist2/assets/readme/use-this-template.png new file mode 100644 index 0000000000000000000000000000000000000000..296e4bf200f137cb066862b4289860595e35ae58 GIT binary patch literal 77934 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 literal 0 HcmV?d00001 diff --git a/dist2/assets/readme/vscode-in-browser.png b/dist2/assets/readme/vscode-in-browser.png new file mode 100644 index 0000000000000000000000000000000000000000..93e3b57b7c84fa52e2e046fca6f7f02f20b0f307 GIT binary patch literal 436896 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 z�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¬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

    AI|;zvG9+-{ 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

    bb@nIL2i+&c0kmrrP_ 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 A=>Px# literal 0 HcmV?d00001 diff --git a/dist2/assets/screenshots/screen.png b/dist2/assets/screenshots/screen.png new file mode 100644 index 0000000000000000000000000000000000000000..330869fdf703d48d0bbabd35b14cd16ac1ad730d GIT binary patch literal 51913 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 literal 0 HcmV?d00001 diff --git a/dist2/assets/screenshots/widget-screen.png b/dist2/assets/screenshots/widget-screen.png new file mode 100644 index 0000000000000000000000000000000000000000..be5d8271e06ba5ff8bdec6f13c3cb2c09ca6ea9d GIT binary patch literal 22585 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 GG~+*`jmu#G literal 0 HcmV?d00001 diff --git a/dist2/code/app-about-BGKiJfUr.js b/dist2/code/app-about-BGKiJfUr.js new file mode 100644 index 0000000..6e59a3a --- /dev/null +++ b/dist2/code/app-about-BGKiJfUr.js @@ -0,0 +1,57 @@ +import{i as l,r as p,x as h,s as m,t as c}from"./index-COc6jZBc.js";const d=l` + @media(min-width: 1000px) { + sl-card { + max-width: 70vw; + } + } +`;var u=Object.defineProperty,y=Object.getOwnPropertyDescriptor,f=(n,o,a,t)=>{for(var e=t>1?void 0:t?y(o,a):o,s=n.length-1,r;s>=0;s--)(r=n[s])&&(e=(t?r(o,a,e):r(e))||e);return t&&e&&u(o,a,e),e};let i=class extends p{render(){return h` + + +

    +
    + `}};i.styles=[m,d,l` + + `];i=f([c("app-about")],i);export{i as AppAbout}; +//# sourceMappingURL=app-about-BGKiJfUr.js.map diff --git a/dist2/code/app-about-BGKiJfUr.js.map b/dist2/code/app-about-BGKiJfUr.js.map new file mode 100644 index 0000000..22075d1 --- /dev/null +++ b/dist2/code/app-about-BGKiJfUr.js.map @@ -0,0 +1 @@ +{"version":3,"file":"app-about-BGKiJfUr.js","sources":["../../src/pages/app-about/about-styles.ts","../../src/pages/app-about/app-about.ts"],"sourcesContent":["import { css } from 'lit';\n\n// these styles can be imported from any component\n// for an example of how to use this, check /pages/about-about.ts\nexport const styles = css`\n @media(min-width: 1000px) {\n sl-card {\n max-width: 70vw;\n }\n }\n`;","import { LitElement, html, css } from 'lit';\nimport { customElement } from 'lit/decorators.js';\n\nimport { styles } from './about-styles';\n\nimport { styles as sharedStyles } from '../../styles/shared-styles'\nimport '@shoelace-style/shoelace/dist/components/card/card.js';\n\n@customElement('app-about')\nexport class AppAbout extends LitElement {\n static styles = [\n sharedStyles,\n styles,\n css`\n\n `\n ]\n\n render() {\n return html`\n \n\n
    \n

    Frequently Asked Questions

    \n\n\n

    What am I looking at?

    \n\n

    \n This is a personal micro-social media client that can be installed to\n your desktop or smartphone home screen. You can sign in via an extension\n to display your profile data and notes from my relay. You\n can compose a note using a rich text editor I built with Prosemirror.\n

    \n\n\n\n

    How do I install this on my home screen?

    \n

    Look for \"Add to Home Screen\" in your browser toolbar\n to install it to your homescreen.

    \n\n

    What is Nostr?

    \n

    Notes and Other Stuff Transmitted Over Relays is a simple open source\n social media protocol that enables anybody to implement social media functionalities\n into their websites.

    \n\n
    \n

    Technology Used

    \n\n \n
    \n
    \n `;\n }\n}\n"],"names":["styles","css","AppAbout","LitElement","html","sharedStyles","__decorateClass","customElement"],"mappings":"oEAIO,MAAMA,EAASC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,kMCKT,IAAAC,EAAN,cAAuBC,CAAW,CASvC,QAAS,CACA,OAAAC;AAAAA,iCACsB,EAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAA,CAgDrC,EA3DaF,EACJ,OAAS,CACdG,EACAL,EACAC;AAAAA;AAAAA,KAGF,EAPWC,EAANI,EAAA,CADNC,EAAc,WAAW,CAAA,EACbL,CAAA"} \ No newline at end of file diff --git a/dist2/code/app-write-DLE2Mxxa.js b/dist2/code/app-write-DLE2Mxxa.js new file mode 100644 index 0000000..a748003 --- /dev/null +++ b/dist2/code/app-write-DLE2Mxxa.js @@ -0,0 +1,51 @@ +import{r as To,x as Eo,s as Do,i as Ao,n as Ji,e as Ro,t as Io}from"./index-COc6jZBc.js";function I(r){this.content=r}I.prototype={constructor:I,find:function(r){for(var e=0;e>1}};I.from=function(r){if(r instanceof I)return r;var e=[];if(r)for(var t in r)e.push(t,r[t]);return new I(e)};function $i(r,e,t){for(let n=0;;n++){if(n==r.childCount||n==e.childCount)return r.childCount==e.childCount?null:t;let i=r.child(n),s=e.child(n);if(i==s){t+=i.nodeSize;continue}if(!i.sameMarkup(s))return t;if(i.isText&&i.text!=s.text){for(let o=0;i.text[o]==s.text[o];o++)t++;return t}if(i.content.size||s.content.size){let o=$i(i.content,s.content,t+1);if(o!=null)return o}t+=i.nodeSize}}function Wi(r,e,t,n){for(let i=r.childCount,s=e.childCount;;){if(i==0||s==0)return i==s?null:{a:t,b:n};let o=r.child(--i),l=e.child(--s),a=o.nodeSize;if(o==l){t-=a,n-=a;continue}if(!o.sameMarkup(l))return{a:t,b:n};if(o.isText&&o.text!=l.text){let h=0,c=Math.min(o.text.length,l.text.length);for(;he&&n(a,i+l,s||null,o)!==!1&&a.content.size){let c=l+1;a.nodesBetween(Math.max(0,e-c),Math.min(a.content.size,t-c),n,i+c)}l=h}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,n,i){let s="",o=!0;return this.nodesBetween(e,t,(l,a)=>{let h=l.isText?l.text.slice(Math.max(e,a)-a,t-a):l.isLeaf?i?typeof i=="function"?i(l):i:l.type.spec.leafText?l.type.spec.leafText(l):"":"";l.isBlock&&(l.isLeaf&&h||l.isTextblock)&&n&&(o?o=!1:s+=n),s+=h},0),s}append(e){if(!e.size)return this;if(!this.size)return e;let t=this.lastChild,n=e.firstChild,i=this.content.slice(),s=0;for(t.isText&&t.sameMarkup(n)&&(i[i.length-1]=t.withText(t.text+n.text),s=1);se)for(let s=0,o=0;oe&&((ot)&&(l.isText?l=l.cut(Math.max(0,e-o),Math.min(l.text.length,t-o)):l=l.cut(Math.max(0,e-o-1),Math.min(l.content.size,t-o-1))),n.push(l),i+=l.nodeSize),o=a}return new L(n,i)}cutByIndex(e,t){return e==t?L.empty:e==0&&t==this.content.length?this:new L(this.content.slice(e,t))}replaceChild(e,t){let n=this.content[e];if(n==t)return this;let i=this.content.slice(),s=this.size+t.nodeSize-n.nodeSize;return i[e]=t,new L(i,s)}addToStart(e){return new L([e].concat(this.content),this.size+e.nodeSize)}addToEnd(e){return new L(this.content.concat(e),this.size+e.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;tthis.size||e<0)throw new RangeError(`Position ${e} outside of fragment (${this})`);for(let n=0,i=0;;n++){let s=this.child(n),o=i+s.nodeSize;if(o>=e)return o==e||t>0?$t(n+1,o):$t(n,i);i=o}}toString(){return"<"+this.toStringInner()+">"}toStringInner(){return this.content.join(", ")}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(e,t){if(!t)return L.empty;if(!Array.isArray(t))throw new RangeError("Invalid input for Fragment.fromJSON");return new L(t.map(e.nodeFromJSON))}static fromArray(e){if(!e.length)return L.empty;let t,n=0;for(let i=0;ithis.type.rank&&(t||(t=e.slice(0,i)),t.push(this),n=!0),t&&t.push(s)}}return t||(t=e.slice()),n||t.push(this),t}removeFromSet(e){for(let t=0;tn.type.rank-i.type.rank),t}}C.none=[];let nn=class extends Error{},S=class Ge{constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(e,t){let n=Ki(this.content,e+this.openStart,t);return n&&new Ge(n,this.openStart,this.openEnd)}removeBetween(e,t){return new Ge(qi(this.content,e+this.openStart,t+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(e,t){if(!t)return Ge.empty;let n=t.openStart||0,i=t.openEnd||0;if(typeof n!="number"||typeof i!="number")throw new RangeError("Invalid input for Slice.fromJSON");return new Ge(y.fromJSON(e,t.content),n,i)}static maxOpen(e,t=!0){let n=0,i=0;for(let s=e.firstChild;s&&!s.isLeaf&&(t||!s.type.spec.isolating);s=s.firstChild)n++;for(let s=e.lastChild;s&&!s.isLeaf&&(t||!s.type.spec.isolating);s=s.lastChild)i++;return new Ge(e,n,i)}};S.empty=new S(y.empty,0,0);function qi(r,e,t){let{index:n,offset:i}=r.findIndex(e),s=r.maybeChild(n),{index:o,offset:l}=r.findIndex(t);if(i==e||s.isText){if(l!=t&&!r.child(o).isText)throw new RangeError("Removing non-flat range");return r.cut(0,e).append(r.cut(t))}if(n!=o)throw new RangeError("Removing non-flat range");return r.replaceChild(n,s.copy(qi(s.content,e-i-1,t-i-1)))}function Ki(r,e,t,n){let{index:i,offset:s}=r.findIndex(e),o=r.maybeChild(i);if(s==e||o.isText)return r.cut(0,e).append(t).append(r.cut(e));let l=Ki(o.content,e-s-1,t);return l&&r.replaceChild(i,o.copy(l))}function zo(r,e,t){if(t.openStart>r.depth)throw new nn("Inserted content deeper than insertion position");if(r.depth-t.openStart!=e.depth-t.openEnd)throw new nn("Inconsistent open depths");return Hi(r,e,t,0)}function Hi(r,e,t,n){let i=r.index(n),s=r.node(n);if(i==e.index(n)&&n=0&&r.isText&&r.sameMarkup(e[t])?e[t]=r.withText(e[t].text+r.text):e.push(r)}function kt(r,e,t,n){let i=(e||r).node(t),s=0,o=e?e.index(t):i.childCount;r&&(s=r.index(t),r.depth>t?s++:r.textOffset&&(Pe(r.nodeAfter,n),s++));for(let l=s;li&&Kn(r,e,i+1),o=n.depth>i&&Kn(t,n,i+1),l=[];return kt(null,r,i,l),s&&o&&e.index(i)==t.index(i)?(Ui(s,o),Pe(Be(s,Gi(r,e,t,n,i+1)),l)):(s&&Pe(Be(s,rn(r,e,i+1)),l),kt(e,t,i,l),o&&Pe(Be(o,rn(t,n,i+1)),l)),kt(n,null,i,l),new y(l)}function rn(r,e,t){let n=[];if(kt(null,r,t,n),r.depth>t){let i=Kn(r,e,t+1);Pe(Be(i,rn(r,e,t+1)),n)}return kt(e,null,t,n),new y(n)}function vo(r,e){let t=e.depth-r.openStart,i=e.node(t).copy(r.content);for(let s=t-1;s>=0;s--)i=e.node(s).copy(y.from(i));return{start:i.resolveNoCache(r.openStart+t),end:i.resolveNoCache(i.content.size-r.openEnd-t)}}class Mt{constructor(e,t,n){this.pos=e,this.path=t,this.parentOffset=n,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position before the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position after the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let n=this.pos-this.path[this.path.length-1],i=e.child(t);return n?e.child(t).cut(n):i}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let n=this.path[t*3],i=t==0?0:this.path[t*3-1]+1;for(let s=0;s0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos=0;n--)if(e.pos<=this.end(n)&&(!t||t(this.node(n))))return new Fo(this,e,n);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos=0&&t<=e.content.size))throw new RangeError("Position "+t+" out of range");let n=[],i=0,s=t;for(let o=e;;){let{index:l,offset:a}=o.content.findIndex(s),h=s-a;if(n.push(o,l,i+a),!h||(o=o.child(l),o.isText))break;s=h-1,i+=a+1}return new Mt(t,n,s)}static resolveCached(e,t){let n=Rr.get(e);if(n)for(let s=0;se&&this.nodesBetween(e,t,s=>(n.isInSet(s.marks)&&(i=!0),!i)),i}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+="("+this.content.toStringInner()+")"),Yi(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw new Error("Called contentMatchAt on a node with invalid content");return t}canReplace(e,t,n=y.empty,i=0,s=n.childCount){let o=this.contentMatchAt(e).matchFragment(n,i,s),l=o&&o.matchFragment(this.content,t);if(!l||!l.validEnd)return!1;for(let a=i;at.type.name)}`);this.content.forEach(t=>t.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(t=>t.toJSON())),e}static fromJSON(e,t){if(!t)throw new RangeError("Invalid input for Node.fromJSON");let n;if(t.marks){if(!Array.isArray(t.marks))throw new RangeError("Invalid mark data for Node.fromJSON");n=t.marks.map(e.markFromJSON)}if(t.type=="text"){if(typeof t.text!="string")throw new RangeError("Invalid text node in JSON");return e.text(t.text,n)}let i=y.fromJSON(e,t.content),s=e.nodeType(t.type).create(t.attrs,i,n);return s.type.checkAttrs(s.attrs),s}};Fe.prototype.text=void 0;class sn extends Fe{constructor(e,t,n,i){if(super(e,t,null,i),!n)throw new RangeError("Empty text nodes are not allowed");this.text=n}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):Yi(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(e){return e==this.marks?this:new sn(this.type,this.attrs,this.text,e)}withText(e){return e==this.text?this:new sn(this.type,this.attrs,e,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}}function Yi(r,e){for(let t=r.length-1;t>=0;t--)e=r[t].type.name+"("+e+")";return e}class $e{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(e,t){let n=new Lo(e,t);if(n.next==null)return $e.empty;let i=ji(n);n.next&&n.err("Unexpected trailing text");let s=Uo(Ho(i));return Go(s,n),s}matchType(e){for(let t=0;th.createAndFill()));for(let h=0;h=this.next.length)throw new RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(n){e.push(n);for(let i=0;i{let s=i+(n.validEnd?"*":" ")+" ";for(let o=0;o"+e.indexOf(n.next[o].next);return s}).join(` +`)}}$e.empty=new $e(!0);class Lo{constructor(e,t){this.string=e,this.nodeTypes=t,this.inline=null,this.pos=0,this.tokens=e.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==""&&this.tokens.pop(),this.tokens[0]==""&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(e){return this.next==e&&(this.pos++||!0)}err(e){throw new SyntaxError(e+" (in content expression '"+this.string+"')")}}function ji(r){let e=[];do e.push(Jo(r));while(r.eat("|"));return e.length==1?e[0]:{type:"choice",exprs:e}}function Jo(r){let e=[];do e.push($o(r));while(r.next&&r.next!=")"&&r.next!="|");return e.length==1?e[0]:{type:"seq",exprs:e}}function $o(r){let e=Ko(r);for(;;)if(r.eat("+"))e={type:"plus",expr:e};else if(r.eat("*"))e={type:"star",expr:e};else if(r.eat("?"))e={type:"opt",expr:e};else if(r.eat("{"))e=Wo(r,e);else break;return e}function Ir(r){/\D/.test(r.next)&&r.err("Expected number, got '"+r.next+"'");let e=Number(r.next);return r.pos++,e}function Wo(r,e){let t=Ir(r),n=t;return r.eat(",")&&(r.next!="}"?n=Ir(r):n=-1),r.eat("}")||r.err("Unclosed braced range"),{type:"range",min:t,max:n,expr:e}}function qo(r,e){let t=r.nodeTypes,n=t[e];if(n)return[n];let i=[];for(let s in t){let o=t[s];o.isInGroup(e)&&i.push(o)}return i.length==0&&r.err("No node type or group '"+e+"' found"),i}function Ko(r){if(r.eat("(")){let e=ji(r);return r.eat(")")||r.err("Missing closing paren"),e}else if(/\W/.test(r.next))r.err("Unexpected token '"+r.next+"'");else{let e=qo(r,r.next).map(t=>(r.inline==null?r.inline=t.isInline:r.inline!=t.isInline&&r.err("Mixing inline and block content"),{type:"name",value:t}));return r.pos++,e.length==1?e[0]:{type:"choice",exprs:e}}}function Ho(r){let e=[[]];return i(s(r,0),t()),e;function t(){return e.push([])-1}function n(o,l,a){let h={term:a,to:l};return e[o].push(h),h}function i(o,l){o.forEach(a=>a.to=l)}function s(o,l){if(o.type=="choice")return o.exprs.reduce((a,h)=>a.concat(s(h,l)),[]);if(o.type=="seq")for(let a=0;;a++){let h=s(o.exprs[a],l);if(a==o.exprs.length-1)return h;i(h,l=t())}else if(o.type=="star"){let a=t();return n(l,a),i(s(o.expr,a),a),[n(a)]}else if(o.type=="plus"){let a=t();return i(s(o.expr,l),a),i(s(o.expr,a),a),[n(a)]}else{if(o.type=="opt")return[n(l)].concat(s(o.expr,l));if(o.type=="range"){let a=l;for(let h=0;h{r[o].forEach(({term:l,to:a})=>{if(!l)return;let h;for(let c=0;c{h||i.push([l,h=[]]),h.indexOf(c)==-1&&h.push(c)})})});let s=e[n.join(",")]=new $e(n.indexOf(r.length-1)>-1);for(let o=0;o-1}get whitespace(){return this.spec.whitespace||(this.spec.code?"pre":"normal")}hasRequiredAttrs(){for(let e in this.attrs)if(this.attrs[e].isRequired)return!0;return!1}compatibleContent(e){return this==e||this.contentMatch.compatible(e.contentMatch)}computeAttrs(e){return!e&&this.defaultAttrs?this.defaultAttrs:Qi(this.attrs,e)}create(e=null,t,n){if(this.isText)throw new Error("NodeType.create can't construct text nodes");return new Fe(this,this.computeAttrs(e),y.from(t),C.setFrom(n))}createChecked(e=null,t,n){return t=y.from(t),this.checkContent(t),new Fe(this,this.computeAttrs(e),t,C.setFrom(n))}createAndFill(e=null,t,n){if(e=this.computeAttrs(e),t=y.from(t),t.size){let o=this.contentMatch.fillBefore(t);if(!o)return null;t=o.append(t)}let i=this.contentMatch.matchFragment(t),s=i&&i.fillBefore(y.empty,!0);return s?new Fe(this,e,t.append(s),C.setFrom(n)):null}validContent(e){let t=this.contentMatch.matchFragment(e);if(!t||!t.validEnd)return!1;for(let n=0;n-1}allowsMarks(e){if(this.markSet==null)return!0;for(let t=0;tn[s]=new ts(s,t,o));let i=t.spec.topNode||"doc";if(!n[i])throw new RangeError("Schema is missing its top node type ('"+i+"')");if(!n.text)throw new RangeError("Every schema needs a 'text' type");for(let s in n.text.attrs)throw new RangeError("The text node type should not have attributes");return n}};function Yo(r,e,t){let n=t.split("|");return i=>{let s=i===null?"null":typeof i;if(n.indexOf(s)<0)throw new RangeError(`Expected value of type ${n} for attribute ${e} on type ${r}, got ${s}`)}}class jo{constructor(e,t,n){this.hasDefault=Object.prototype.hasOwnProperty.call(n,"default"),this.default=n.default,this.validate=typeof n.validate=="string"?Yo(e,t,n.validate):n.validate}get isRequired(){return!this.hasDefault}}class mn{constructor(e,t,n,i){this.name=e,this.rank=t,this.schema=n,this.spec=i,this.attrs=es(e,i.attrs),this.excluded=null;let s=Zi(this.attrs);this.instance=s?new C(this,s):null}create(e=null){return!e&&this.instance?this.instance:new C(this,Qi(this.attrs,e))}static compile(e,t){let n=Object.create(null),i=0;return e.forEach((s,o)=>n[s]=new mn(s,i++,t,o)),n}removeFromSet(e){for(var t=0;t-1}}class Xo{constructor(e){this.linebreakReplacement=null,this.cached=Object.create(null);let t=this.spec={};for(let i in e)t[i]=e[i];t.nodes=I.from(e.nodes),t.marks=I.from(e.marks||{}),this.nodes=vr.compile(this.spec.nodes,this),this.marks=mn.compile(this.spec.marks,this);let n=Object.create(null);for(let i in this.nodes){if(i in this.marks)throw new RangeError(i+" can not be both a node and a mark");let s=this.nodes[i],o=s.spec.content||"",l=s.spec.marks;if(s.contentMatch=n[o]||(n[o]=$e.parse(o,this.nodes)),s.inlineContent=s.contentMatch.inlineContent,s.spec.linebreakReplacement){if(this.linebreakReplacement)throw new RangeError("Multiple linebreak nodes defined");if(!s.isInline||!s.isLeaf)throw new RangeError("Linebreak replacement nodes must be inline leaf nodes");this.linebreakReplacement=s}s.markSet=l=="_"?null:l?Pr(this,l.split(" ")):l==""||!s.inlineContent?[]:null}for(let i in this.marks){let s=this.marks[i],o=s.spec.excludes;s.excluded=o==null?[s]:o==""?[]:Pr(this,o.split(" "))}this.nodeFromJSON=this.nodeFromJSON.bind(this),this.markFromJSON=this.markFromJSON.bind(this),this.topNodeType=this.nodes[this.spec.topNode||"doc"],this.cached.wrappings=Object.create(null)}node(e,t=null,n,i){if(typeof e=="string")e=this.nodeType(e);else if(e instanceof vr){if(e.schema!=this)throw new RangeError("Node type from different schema used ("+e.name+")")}else throw new RangeError("Invalid node type: "+e);return e.createChecked(t,n,i)}text(e,t){let n=this.nodes.text;return new sn(n,n.defaultAttrs,e,C.setFrom(t))}mark(e,t){return typeof e=="string"&&(e=this.marks[e]),e.create(t)}nodeFromJSON(e){return Fe.fromJSON(this,e)}markFromJSON(e){return C.fromJSON(this,e)}nodeType(e){let t=this.nodes[e];if(!t)throw new RangeError("Unknown node type: "+e);return t}}function Pr(r,e){let t=[];for(let n=0;n-1)&&t.push(o=a)}if(!o)throw new SyntaxError("Unknown mark type: '"+e[n]+"'")}return t}function Zo(r){return r.tag!=null}function Qo(r){return r.style!=null}class Tt{constructor(e,t){this.schema=e,this.rules=t,this.tags=[],this.styles=[];let n=this.matchedStyles=[];t.forEach(i=>{if(Zo(i))this.tags.push(i);else if(Qo(i)){let s=/[^=]*/.exec(i.style)[0];n.indexOf(s)<0&&n.push(s),this.styles.push(i)}}),this.normalizeLists=!this.tags.some(i=>{if(!/^(ul|ol)\b/.test(i.tag)||!i.node)return!1;let s=e.nodes[i.node];return s.contentMatch.matchType(s)})}parse(e,t={}){let n=new Fr(this,t,!1);return n.addAll(e,C.none,t.from,t.to),n.finish()}parseSlice(e,t={}){let n=new Fr(this,t,!0);return n.addAll(e,C.none,t.from,t.to),S.maxOpen(n.finish())}matchTag(e,t,n){for(let i=n?this.tags.indexOf(n)+1:0;ie.length&&(l.charCodeAt(e.length)!=61||l.slice(e.length+1)!=t))){if(o.getAttrs){let a=o.getAttrs(t);if(a===!1)continue;o.attrs=a||void 0}return o}}}static schemaRules(e){let t=[];function n(i){let s=i.priority==null?50:i.priority,o=0;for(;o{n(o=Vr(o)),o.mark||o.ignore||o.clearMark||(o.mark=i)})}for(let i in e.nodes){let s=e.nodes[i].spec.parseDOM;s&&s.forEach(o=>{n(o=Vr(o)),o.node||o.ignore||o.mark||(o.node=i)})}return t}static fromSchema(e){return e.cached.domParser||(e.cached.domParser=new Tt(e,Tt.schemaRules(e)))}}const ns={address:!0,article:!0,aside:!0,blockquote:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},_o={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},rs={ol:!0,ul:!0},Et=1,Un=2,xt=4;function Br(r,e,t){return e!=null?(e?Et:0)|(e==="full"?Un:0):r&&r.whitespace=="pre"?Et|Un:t&~xt}class Wt{constructor(e,t,n,i,s,o){this.type=e,this.attrs=t,this.marks=n,this.solid=i,this.options=o,this.content=[],this.activeMarks=C.none,this.match=s||(o&xt?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let t=this.type.contentMatch.fillBefore(y.from(e));if(t)this.match=this.type.contentMatch.matchFragment(t);else{let n=this.type.contentMatch,i;return(i=n.findWrapping(e.type))?(this.match=n,i):null}}return this.match.findWrapping(e.type)}finish(e){if(!(this.options&Et)){let n=this.content[this.content.length-1],i;if(n&&n.isText&&(i=/[ \t\r\n\u000c]+$/.exec(n.text))){let s=n;n.text.length==i[0].length?this.content.pop():this.content[this.content.length-1]=s.withText(s.text.slice(0,s.text.length-i[0].length))}}let t=y.from(this.content);return!e&&this.match&&(t=t.append(this.match.fillBefore(y.empty,!0))),this.type?this.type.create(this.attrs,t,this.marks):t}inlineContext(e){return this.type?this.type.inlineContent:this.content.length?this.content[0].isInline:e.parentNode&&!ns.hasOwnProperty(e.parentNode.nodeName.toLowerCase())}}class Fr{constructor(e,t,n){this.parser=e,this.options=t,this.isOpen=n,this.open=0,this.localPreserveWS=!1;let i=t.topNode,s,o=Br(null,t.preserveWhitespace,0)|(n?xt:0);i?s=new Wt(i.type,i.attrs,C.none,!0,t.topMatch||i.type.contentMatch,o):n?s=new Wt(null,null,C.none,!0,null,o):s=new Wt(e.schema.topNodeType,null,C.none,!0,null,o),this.nodes=[s],this.find=t.findPositions,this.needsBlock=!1}get top(){return this.nodes[this.open]}addDOM(e,t){e.nodeType==3?this.addTextNode(e,t):e.nodeType==1&&this.addElement(e,t)}addTextNode(e,t){let n=e.nodeValue,i=this.top,s=i.options&Un?"full":this.localPreserveWS||(i.options&Et)>0;if(s==="full"||i.inlineContext(e)||/[^ \t\r\n\u000c]/.test(n)){if(s)s!=="full"?n=n.replace(/\r?\n|\r/g," "):n=n.replace(/\r\n?/g,` +`);else if(n=n.replace(/[ \t\r\n\u000c]+/g," "),/^[ \t\r\n\u000c]/.test(n)&&this.open==this.nodes.length-1){let o=i.content[i.content.length-1],l=e.previousSibling;(!o||l&&l.nodeName=="BR"||o.isText&&/[ \t\r\n\u000c]$/.test(o.text))&&(n=n.slice(1))}n&&this.insertNode(this.parser.schema.text(n),t),this.findInText(e)}else this.findInside(e)}addElement(e,t,n){let i=this.localPreserveWS,s=this.top;(e.tagName=="PRE"||/pre/.test(e.style&&e.style.whiteSpace))&&(this.localPreserveWS=!0);let o=e.nodeName.toLowerCase(),l;rs.hasOwnProperty(o)&&this.parser.normalizeLists&&el(e);let a=this.options.ruleFromNode&&this.options.ruleFromNode(e)||(l=this.parser.matchTag(e,this,n));e:if(a?a.ignore:_o.hasOwnProperty(o))this.findInside(e),this.ignoreFallback(e,t);else if(!a||a.skip||a.closeParent){a&&a.closeParent?this.open=Math.max(0,this.open-1):a&&a.skip.nodeType&&(e=a.skip);let h,c=this.needsBlock;if(ns.hasOwnProperty(o))s.content.length&&s.content[0].isInline&&this.open&&(this.open--,s=this.top),h=!0,s.type||(this.needsBlock=!0);else if(!e.firstChild){this.leafFallback(e,t);break e}let f=a&&a.skip?t:this.readStyles(e,t);f&&this.addAll(e,f),h&&this.sync(s),this.needsBlock=c}else{let h=this.readStyles(e,t);h&&this.addElementByRule(e,a,h,a.consuming===!1?l:void 0)}this.localPreserveWS=i}leafFallback(e,t){e.nodeName=="BR"&&this.top.type&&this.top.type.inlineContent&&this.addTextNode(e.ownerDocument.createTextNode(` +`),t)}ignoreFallback(e,t){e.nodeName=="BR"&&(!this.top.type||!this.top.type.inlineContent)&&this.findPlace(this.parser.schema.text("-"),t)}readStyles(e,t){let n=e.style;if(n&&n.length)for(let i=0;i!a.clearMark(h)):t=t.concat(this.parser.schema.marks[a.mark].create(a.attrs)),a.consuming===!1)l=a;else break}}return t}addElementByRule(e,t,n,i){let s,o;if(t.node)if(o=this.parser.schema.nodes[t.node],o.isLeaf)this.insertNode(o.create(t.attrs),n)||this.leafFallback(e,n);else{let a=this.enter(o,t.attrs||null,n,t.preserveWhitespace);a&&(s=!0,n=a)}else{let a=this.parser.schema.marks[t.mark];n=n.concat(a.create(t.attrs))}let l=this.top;if(o&&o.isLeaf)this.findInside(e);else if(i)this.addElement(e,n,i);else if(t.getContent)this.findInside(e),t.getContent(e,this.parser.schema).forEach(a=>this.insertNode(a,n));else{let a=e;typeof t.contentElement=="string"?a=e.querySelector(t.contentElement):typeof t.contentElement=="function"?a=t.contentElement(e):t.contentElement&&(a=t.contentElement),this.findAround(e,a,!0),this.addAll(a,n),this.findAround(e,a,!1)}s&&this.sync(l)&&this.open--}addAll(e,t,n,i){let s=n||0;for(let o=n?e.childNodes[n]:e.firstChild,l=i==null?null:e.childNodes[i];o!=l;o=o.nextSibling,++s)this.findAtPoint(e,s),this.addDOM(o,t);this.findAtPoint(e,s)}findPlace(e,t){let n,i;for(let s=this.open;s>=0;s--){let o=this.nodes[s],l=o.findWrapping(e);if(l&&(!n||n.length>l.length)&&(n=l,i=o,!l.length)||o.solid)break}if(!n)return null;this.sync(i);for(let s=0;s(o.type?o.type.allowsMarkType(h.type):Lr(h.type,e))?(a=h.addToSet(a),!1):!0),this.nodes.push(new Wt(e,t,a,i,null,l)),this.open++,n}closeExtra(e=!1){let t=this.nodes.length-1;if(t>this.open){for(;t>this.open;t--)this.nodes[t-1].content.push(this.nodes[t].finish(e));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(!!(this.isOpen||this.options.topOpen))}sync(e){for(let t=this.open;t>=0;t--){if(this.nodes[t]==e)return this.open=t,!0;this.localPreserveWS&&(this.nodes[t].options|=Et)}return!1}get currentPos(){this.closeExtra();let e=0;for(let t=this.open;t>=0;t--){let n=this.nodes[t].content;for(let i=n.length-1;i>=0;i--)e+=n[i].nodeSize;t&&e++}return e}findAtPoint(e,t){if(this.find)for(let n=0;n-1)return e.split(/\s*\|\s*/).some(this.matchesContext,this);let t=e.split("/"),n=this.options.context,i=!this.isOpen&&(!n||n.parent.type==this.nodes[0].type),s=-(n?n.depth+1:0)+(i?0:1),o=(l,a)=>{for(;l>=0;l--){let h=t[l];if(h==""){if(l==t.length-1||l==0)continue;for(;a>=s;a--)if(o(l-1,a))return!0;return!1}else{let c=a>0||a==0&&i?this.nodes[a].type:n&&a>=s?n.node(a-s).type:null;if(!c||c.name!=h&&!c.isInGroup(h))return!1;a--}}return!0};return o(t.length-1,this.open)}textblockFromContext(){let e=this.options.context;if(e)for(let t=e.depth;t>=0;t--){let n=e.node(t).contentMatchAt(e.indexAfter(t)).defaultType;if(n&&n.isTextblock&&n.defaultAttrs)return n}for(let t in this.parser.schema.nodes){let n=this.parser.schema.nodes[t];if(n.isTextblock&&n.defaultAttrs)return n}}}function el(r){for(let e=r.firstChild,t=null;e;e=e.nextSibling){let n=e.nodeType==1?e.nodeName.toLowerCase():null;n&&rs.hasOwnProperty(n)&&t?(t.appendChild(e),e=t):n=="li"?t=e:n&&(t=null)}}function tl(r,e){return(r.matches||r.msMatchesSelector||r.webkitMatchesSelector||r.mozMatchesSelector).call(r,e)}function Vr(r){let e={};for(let t in r)e[t]=r[t];return e}function Lr(r,e){let t=e.schema.nodes;for(let n in t){let i=t[n];if(!i.allowsMarkType(r))continue;let s=[],o=l=>{s.push(l);for(let a=0;a{if(s.length||o.marks.length){let l=0,a=0;for(;l=0;i--){let s=this.serializeMark(e.marks[i],e.isInline,t);s&&((s.contentDOM||s.dom).appendChild(n),n=s.dom)}return n}serializeMark(e,t,n={}){let i=this.marks[e.type.name];return i&&Gt(Cn(n),i(e,t),null,e.attrs)}static renderSpec(e,t,n=null,i){return Gt(e,t,n,i)}static fromSchema(e){return e.cached.domSerializer||(e.cached.domSerializer=new at(this.nodesFromSchema(e),this.marksFromSchema(e)))}static nodesFromSchema(e){let t=Jr(e.nodes);return t.text||(t.text=n=>n.text),t}static marksFromSchema(e){return Jr(e.marks)}}function Jr(r){let e={};for(let t in r){let n=r[t].spec.toDOM;n&&(e[t]=n)}return e}function Cn(r){return r.document||window.document}const $r=new WeakMap;function nl(r){let e=$r.get(r);return e===void 0&&$r.set(r,e=rl(r)),e}function rl(r){let e=null;function t(n){if(n&&typeof n=="object")if(Array.isArray(n))if(typeof n[0]=="string")e||(e=[]),e.push(n);else for(let i=0;i-1)throw new RangeError("Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.");let o=i.indexOf(" ");o>0&&(t=i.slice(0,o),i=i.slice(o+1));let l,a=t?r.createElementNS(t,i):r.createElement(i),h=e[1],c=1;if(h&&typeof h=="object"&&h.nodeType==null&&!Array.isArray(h)){c=2;for(let f in h)if(h[f]!=null){let d=f.indexOf(" ");d>0?a.setAttributeNS(f.slice(0,d),f.slice(d+1),h[f]):a.setAttribute(f,h[f])}}for(let f=c;fc)throw new RangeError("Content hole must be the only child of its parent node");return{dom:a,contentDOM:a}}else{let{dom:p,contentDOM:u}=Gt(r,d,t,n);if(a.appendChild(p),u){if(l)throw new RangeError("Multiple content holes");l=u}}}return{dom:a,contentDOM:l}}const is=65535,ss=Math.pow(2,16);function il(r,e){return r+e*ss}function Wr(r){return r&is}function sl(r){return(r-(r&is))/ss}const ls=1,as=2,Yt=4,hs=8;let Gn=class{constructor(e,t,n){this.pos=e,this.delInfo=t,this.recover=n}get deleted(){return(this.delInfo&hs)>0}get deletedBefore(){return(this.delInfo&(ls|Yt))>0}get deletedAfter(){return(this.delInfo&(as|Yt))>0}get deletedAcross(){return(this.delInfo&Yt)>0}},We=class Ye{constructor(e,t=!1){if(this.ranges=e,this.inverted=t,!e.length&&Ye.empty)return Ye.empty}recover(e){let t=0,n=Wr(e);if(!this.inverted)for(let i=0;ie)break;let h=this.ranges[l+s],c=this.ranges[l+o],f=a+h;if(e<=f){let d=h?e==a?-1:e==f?1:t:t,p=a+i+(d<0?0:c);if(n)return p;let u=e==(t<0?a:f)?null:il(l/3,e-a),m=e==a?as:e==f?ls:Yt;return(t<0?e!=a:e!=f)&&(m|=hs),new Gn(p,m,u)}i+=c-h}return n?e+i:new Gn(e+i,0,null)}touches(e,t){let n=0,i=Wr(t),s=this.inverted?2:1,o=this.inverted?1:2;for(let l=0;le)break;let h=this.ranges[l+s],c=a+h;if(e<=c&&l==i*3)return!0;n+=this.ranges[l+o]-h}return!1}forEach(e){let t=this.inverted?2:1,n=this.inverted?1:2;for(let i=0,s=0;i=0;t--){let i=e.getMirror(t);this.appendMap(e.maps[t].invert(),i!=null&&i>t?n-i-1:void 0)}}invert(){let e=new _e;return e.appendMappingInverted(this),e}map(e,t=1){if(this.mirror)return this._map(e,t,!0);for(let n=this.from;ns&&a!o.isAtom||!l.type.allowsMarkType(this.mark.type)?o:o.mark(this.mark.addToSet(o.marks)),i),t.openStart,t.openEnd);return J.fromReplace(e,this.from,this.to,s)}invert(){return new Pt(this.from,this.to,this.mark)}map(e){let t=e.mapResult(this.from,1),n=e.mapResult(this.to,-1);return t.deleted&&n.deleted||t.pos>=n.pos?null:new ft(t.pos,n.pos,this.mark)}merge(e){return e instanceof ft&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new ft(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"addMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,t){if(typeof t.from!="number"||typeof t.to!="number")throw new RangeError("Invalid input for AddMarkStep.fromJSON");return new ft(t.from,t.to,e.markFromJSON(t.mark))}};F.jsonID("addMark",fr);let Pt=class ut extends F{constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}apply(e){let t=e.slice(this.from,this.to),n=new S(cr(t.content,i=>i.mark(this.mark.removeFromSet(i.marks)),e),t.openStart,t.openEnd);return J.fromReplace(e,this.from,this.to,n)}invert(){return new fr(this.from,this.to,this.mark)}map(e){let t=e.mapResult(this.from,1),n=e.mapResult(this.to,-1);return t.deleted&&n.deleted||t.pos>=n.pos?null:new ut(t.pos,n.pos,this.mark)}merge(e){return e instanceof ut&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new ut(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"removeMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,t){if(typeof t.from!="number"||typeof t.to!="number")throw new RangeError("Invalid input for RemoveMarkStep.fromJSON");return new ut(t.from,t.to,e.markFromJSON(t.mark))}};F.jsonID("removeMark",Pt);let ur=class dt extends F{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return J.fail("No node at mark step's position");let n=t.type.create(t.attrs,null,this.mark.addToSet(t.marks));return J.fromReplace(e,this.pos,this.pos+1,new S(y.from(n),0,t.isLeaf?0:1))}invert(e){let t=e.nodeAt(this.pos);if(t){let n=this.mark.addToSet(t.marks);if(n.length==t.marks.length){for(let i=0;in.pos?null:new jt(t.pos,n.pos,i,s,this.slice,this.insert,this.structure)}toJSON(){let e={stepType:"replaceAround",from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(e,t){if(typeof t.from!="number"||typeof t.to!="number"||typeof t.gapFrom!="number"||typeof t.gapTo!="number"||typeof t.insert!="number")throw new RangeError("Invalid input for ReplaceAroundStep.fromJSON");return new jt(t.from,t.to,t.gapFrom,t.gapTo,S.fromJSON(e,t.slice),t.insert,!!t.structure)}};F.jsonID("replaceAround",pe);function jn(r,e,t){let n=r.resolve(e),i=t-e,s=n.depth;for(;i>0&&s>0&&n.indexAfter(s)==n.node(s).childCount;)s--,i--;if(i>0){let o=n.node(s).maybeChild(n.indexAfter(s));for(;i>0;){if(!o||o.isLeaf)return!0;o=o.firstChild,i--}}return!1}function ol(r,e,t,n){let i=[],s=[],o,l;r.doc.nodesBetween(e,t,(a,h,c)=>{if(!a.isInline)return;let f=a.marks;if(!n.isInSet(f)&&c.type.allowsMarkType(n.type)){let d=Math.max(h,e),p=Math.min(h+a.nodeSize,t),u=n.addToSet(f);for(let m=0;mr.step(a)),s.forEach(a=>r.step(a))}function ll(r,e,t,n){let i=[],s=0;r.doc.nodesBetween(e,t,(o,l)=>{if(!o.isInline)return;s++;let a=null;if(n instanceof mn){let h=o.marks,c;for(;c=n.isInSet(h);)(a||(a=[])).push(c),h=c.removeFromSet(h)}else n?n.isInSet(o.marks)&&(a=[n]):a=o.marks;if(a&&a.length){let h=Math.min(l+o.nodeSize,t);for(let c=0;cr.step(new Pt(o.from,o.to,o.style)))}function pr(r,e,t,n=t.contentMatch,i=!0){let s=r.doc.nodeAt(e),o=[],l=e+1;for(let a=0;a=0;a--)r.step(o[a])}function al(r,e,t){return(e==0||r.canReplace(e,r.childCount))&&(t==r.childCount||r.canReplace(0,t))}function mr(r){let t=r.parent.content.cutByIndex(r.startIndex,r.endIndex);for(let n=r.depth;;--n){let i=r.$from.node(n),s=r.$from.index(n),o=r.$to.indexAfter(n);if(nt;u--)m||n.index(u)>0?(m=!0,c=y.from(n.node(u).copy(c)),f++):a--;let d=y.empty,p=0;for(let u=s,m=!1;u>t;u--)m||i.after(u+1)=0;o--){if(n.size){let l=t[o].type.contentMatch.matchFragment(n);if(!l||!l.validEnd)throw new RangeError("Wrapper type given to Transform.wrap does not form valid content of its parent wrapper")}n=y.from(t[o].type.create(t[o].attrs,n))}let i=e.start,s=e.end;r.step(new pe(i,s,i,s,new S(n,0,0),t.length,!0))}function fl(r,e,t,n,i){if(!n.isTextblock)throw new RangeError("Type given to setBlockType should be a textblock");let s=r.steps.length;r.doc.nodesBetween(e,t,(o,l)=>{let a=typeof i=="function"?i(o):i;if(o.isTextblock&&!o.hasMarkup(n,a)&&ul(r.doc,r.mapping.slice(s).map(l),n)){let h=null;if(n.schema.linebreakReplacement){let p=n.whitespace=="pre",u=!!n.contentMatch.matchType(n.schema.linebreakReplacement);p&&!u?h=!1:!p&&u&&(h=!0)}h===!1&&fs(r,o,l,s),pr(r,r.mapping.slice(s).map(l,1),n,void 0,h===null);let c=r.mapping.slice(s),f=c.map(l,1),d=c.map(l+o.nodeSize,1);return r.step(new pe(f,d,f+1,d-1,new S(y.from(n.create(a,null,o.marks)),0,0),1,!0)),h===!0&&cs(r,o,l,s),!1}})}function cs(r,e,t,n){e.forEach((i,s)=>{if(i.isText){let o,l=/\r?\n|\r/g;for(;o=l.exec(i.text);){let a=r.mapping.slice(n).map(t+1+s+o.index);r.replaceWith(a,a+1,e.type.schema.linebreakReplacement.create())}}})}function fs(r,e,t,n){e.forEach((i,s)=>{if(i.type==i.type.schema.linebreakReplacement){let o=r.mapping.slice(n).map(t+1+s);r.replaceWith(o,o+1,e.type.schema.text(` +`))}})}function ul(r,e,t){let n=r.resolve(e),i=n.index();return n.parent.canReplaceWith(i,i+1,t)}function dl(r,e,t,n,i){let s=r.doc.nodeAt(e);if(!s)throw new RangeError("No node at given position");t||(t=s.type);let o=t.create(n,null,i||s.marks);if(s.isLeaf)return r.replaceWith(e,e+s.nodeSize,o);if(!t.validContent(s.content))throw new RangeError("Invalid content for node type "+t.name);r.step(new pe(e,e+s.nodeSize,e+1,e+s.nodeSize-1,new S(y.from(o),0,0),1,!0))}function Xt(r,e,t=1,n){let i=r.resolve(e),s=i.depth-t,o=n&&n[n.length-1]||i.parent;if(s<0||i.parent.type.spec.isolating||!i.parent.canReplace(i.index(),i.parent.childCount)||!o.type.validContent(i.parent.content.cutByIndex(i.index(),i.parent.childCount)))return!1;for(let h=i.depth-1,c=t-2;h>s;h--,c--){let f=i.node(h),d=i.index(h);if(f.type.spec.isolating)return!1;let p=f.content.cutByIndex(d,f.childCount),u=n&&n[c+1];u&&(p=p.replaceChild(0,u.type.create(u.attrs)));let m=n&&n[c]||f;if(!f.canReplace(d+1,f.childCount)||!m.type.validContent(p))return!1}let l=i.indexAfter(s),a=n&&n[0];return i.node(s).canReplaceWith(l,l,a?a.type:i.node(s+1).type)}function pl(r,e,t=1,n){let i=r.doc.resolve(e),s=y.empty,o=y.empty;for(let l=i.depth,a=i.depth-t,h=t-1;l>a;l--,h--){s=y.from(i.node(l).copy(s));let c=n&&n[h];o=y.from(c?c.type.create(c.attrs,o):i.node(l).copy(o))}r.step(new de(e,e,new S(s.append(o),t,t),!0))}function us(r,e){let t=r.resolve(e),n=t.index();return gl(t.nodeBefore,t.nodeAfter)&&t.parent.canReplace(n,n+1)}function ml(r,e){e.content.size||r.type.compatibleContent(e.type);let t=r.contentMatchAt(r.childCount),{linebreakReplacement:n}=r.type.schema;for(let i=0;i=0;i--){let s=n.index(i);if(n.node(i).canReplaceWith(s,s,t))return n.before(i+1);if(s>0)return null}if(n.parentOffset==n.parent.content.size)for(let i=n.depth-1;i>=0;i--){let s=n.indexAfter(i);if(n.node(i).canReplaceWith(s,s,t))return n.after(i+1);if(s=0;o--){let l=o==n.depth?0:n.pos<=(n.start(o+1)+n.end(o+1))/2?-1:1,a=n.index(o)+(l>0?1:0),h=n.node(o),c=!1;if(s==1)c=h.canReplace(a,a,i);else{let f=h.contentMatchAt(a).findWrapping(i.firstChild.type);c=f&&h.canReplaceWith(a,a,f[0])}if(c)return l==0?n.pos:l<0?n.before(o+1):n.after(o+1)}return null}function gr(r,e,t=e,n=S.empty){if(e==t&&!n.size)return null;let i=r.resolve(e),s=r.resolve(t);return ds(i,s,n)?new de(e,t,n):new xl(i,s,n).fit()}function ds(r,e,t){return!t.openStart&&!t.openEnd&&r.start()==e.start()&&r.parent.canReplace(r.index(),e.index(),t.content)}class xl{constructor(e,t,n){this.$from=e,this.$to=t,this.unplaced=n,this.frontier=[],this.placed=y.empty;for(let i=0;i<=e.depth;i++){let s=e.node(i);this.frontier.push({type:s.type,match:s.contentMatchAt(e.indexAfter(i))})}for(let i=e.depth;i>0;i--)this.placed=y.from(e.node(i).copy(this.placed))}get depth(){return this.frontier.length-1}fit(){for(;this.unplaced.size;){let h=this.findFittable();h?this.placeNodes(h):this.openMore()||this.dropNode()}let e=this.mustMoveInline(),t=this.placed.size-this.depth-this.$from.depth,n=this.$from,i=this.close(e<0?this.$to:n.doc.resolve(e));if(!i)return null;let s=this.placed,o=n.depth,l=i.depth;for(;o&&l&&s.childCount==1;)s=s.firstChild.content,o--,l--;let a=new S(s,o,l);return e>-1?new pe(n.pos,e,this.$to.pos,this.$to.end(),a,t):a.size||n.pos!=this.$to.pos?new de(n.pos,i.pos,a):null}findFittable(){let e=this.unplaced.openStart;for(let t=this.unplaced.content,n=0,i=this.unplaced.openEnd;n1&&(i=0),s.type.spec.isolating&&i<=n){e=n;break}t=s.content}for(let t=1;t<=2;t++)for(let n=t==1?e:this.unplaced.openStart;n>=0;n--){let i,s=null;n?(s=On(this.unplaced.content,n-1).firstChild,i=s.content):i=this.unplaced.content;let o=i.firstChild;for(let l=this.depth;l>=0;l--){let{type:a,match:h}=this.frontier[l],c,f=null;if(t==1&&(o?h.matchType(o.type)||(f=h.fillBefore(y.from(o),!1)):s&&a.compatibleContent(s.type)))return{sliceDepth:n,frontierDepth:l,parent:s,inject:f};if(t==2&&o&&(c=h.findWrapping(o.type)))return{sliceDepth:n,frontierDepth:l,parent:s,wrap:c};if(s&&h.matchType(s.type))break}}}openMore(){let{content:e,openStart:t,openEnd:n}=this.unplaced,i=On(e,t);return!i.childCount||i.firstChild.isLeaf?!1:(this.unplaced=new S(e,t+1,Math.max(n,i.size+t>=e.size-n?t+1:0)),!0)}dropNode(){let{content:e,openStart:t,openEnd:n}=this.unplaced,i=On(e,t);if(i.childCount<=1&&t>0){let s=e.size-t<=t+i.size;this.unplaced=new S(pt(e,t-1,1),t-1,s?t-1:n)}else this.unplaced=new S(pt(e,t,1),t,n)}placeNodes({sliceDepth:e,frontierDepth:t,parent:n,inject:i,wrap:s}){for(;this.depth>t;)this.closeFrontierNode();if(s)for(let m=0;m1||a==0||m.content.size)&&(f=g,c.push(ps(m.mark(d.allowedMarks(m.marks)),h==1?a:0,h==l.childCount?p:-1)))}let u=h==l.childCount;u||(p=-1),this.placed=mt(this.placed,t,y.from(c)),this.frontier[t].match=f,u&&p<0&&n&&n.type==this.frontier[this.depth].type&&this.frontier.length>1&&this.closeFrontierNode();for(let m=0,g=l;m1&&i==this.$to.end(--n);)++i;return i}findCloseLevel(e){e:for(let t=Math.min(this.depth,e.depth);t>=0;t--){let{match:n,type:i}=this.frontier[t],s=t=0;l--){let{match:a,type:h}=this.frontier[l],c=Mn(e,l,h,a,!0);if(!c||c.childCount)continue e}return{depth:t,fit:o,move:s?e.doc.resolve(e.after(t+1)):e}}}}close(e){let t=this.findCloseLevel(e);if(!t)return null;for(;this.depth>t.depth;)this.closeFrontierNode();t.fit.childCount&&(this.placed=mt(this.placed,t.depth,t.fit)),e=t.move;for(let n=t.depth+1;n<=e.depth;n++){let i=e.node(n),s=i.type.contentMatch.fillBefore(i.content,!0,e.index(n));this.openFrontierNode(i.type,i.attrs,s)}return e}openFrontierNode(e,t=null,n){let i=this.frontier[this.depth];i.match=i.match.matchType(e),this.placed=mt(this.placed,this.depth,y.from(e.create(t,n))),this.frontier.push({type:e,match:e.contentMatch})}closeFrontierNode(){let t=this.frontier.pop().match.fillBefore(y.empty,!0);t.childCount&&(this.placed=mt(this.placed,this.frontier.length,t))}}function pt(r,e,t){return e==0?r.cutByIndex(t,r.childCount):r.replaceChild(0,r.firstChild.copy(pt(r.firstChild.content,e-1,t)))}function mt(r,e,t){return e==0?r.append(t):r.replaceChild(r.childCount-1,r.lastChild.copy(mt(r.lastChild.content,e-1,t)))}function On(r,e){for(let t=0;t1&&(n=n.replaceChild(0,ps(n.firstChild,e-1,n.childCount==1?t-1:0))),e>0&&(n=r.type.contentMatch.fillBefore(n).append(n),t<=0&&(n=n.append(r.type.contentMatch.matchFragment(n).fillBefore(y.empty,!0)))),r.copy(n)}function Mn(r,e,t,n,i){let s=r.node(e),o=i?r.indexAfter(e):r.index(e);if(o==s.childCount&&!t.compatibleContent(s.type))return null;let l=n.fillBefore(s.content,!0,o);return l&&!bl(t,s.content,o)?l:null}function bl(r,e,t){for(let n=t;n0;d--,p--){let u=i.node(d).type.spec;if(u.defining||u.definingAsContext||u.isolating)break;o.indexOf(d)>-1?l=d:i.before(d)==p&&o.splice(1,0,-d)}let a=o.indexOf(l),h=[],c=n.openStart;for(let d=n.content,p=0;;p++){let u=d.firstChild;if(h.push(u),p==n.openStart)break;d=u.content}for(let d=c-1;d>=0;d--){let p=h[d],u=wl(p.type);if(u&&!p.sameMarkup(i.node(Math.abs(l)-1)))c=d;else if(u||!p.type.isTextblock)break}for(let d=n.openStart;d>=0;d--){let p=(d+c+1)%(n.openStart+1),u=h[p];if(u)for(let m=0;m=0&&(r.replace(e,t,n),!(r.steps.length>f));d--){let p=o[d];p<0||(e=i.before(p),t=s.after(p))}}function ms(r,e,t,n,i){if(en){let s=i.contentMatchAt(0),o=s.fillBefore(r).append(r);r=o.append(s.matchFragment(o).fillBefore(y.empty,!0))}return r}function Nl(r,e,t,n){if(!n.isInline&&e==t&&r.doc.resolve(e).parent.content.size){let i=Sl(r.doc,e,n.type);i!=null&&(e=t=i)}r.replaceRange(e,t,new S(y.from(n),0,0))}function Ol(r,e,t){let n=r.doc.resolve(e),i=r.doc.resolve(t),s=gs(n,i);for(let o=0;o0&&(a||n.node(l-1).canReplace(n.index(l-1),i.indexAfter(l-1))))return r.delete(n.before(l),i.after(l))}for(let o=1;o<=n.depth&&o<=i.depth;o++)if(e-n.start(o)==n.depth-o&&t>n.end(o)&&i.end(o)-t!=i.depth-o&&n.start(o-1)==i.start(o-1)&&n.node(o-1).canReplace(n.index(o-1),i.index(o-1)))return r.delete(n.before(o),t);r.delete(e,t)}function gs(r,e){let t=[],n=Math.min(r.depth,e.depth);for(let i=n;i>=0;i--){let s=r.start(i);if(se.pos+(e.depth-i)||r.node(i).type.spec.isolating||e.node(i).type.spec.isolating)break;(s==e.start(i)||i==r.depth&&i==e.depth&&r.parent.inlineContent&&e.parent.inlineContent&&i&&e.start(i-1)==s-1)&&t.push(i)}return t}let ys=class Zt extends F{constructor(e,t,n){super(),this.pos=e,this.attr=t,this.value=n}apply(e){let t=e.nodeAt(this.pos);if(!t)return J.fail("No node at attribute step's position");let n=Object.create(null);for(let s in t.attrs)n[s]=t.attrs[s];n[this.attr]=this.value;let i=t.type.create(n,null,t.marks);return J.fromReplace(e,this.pos,this.pos+1,new S(y.from(i),0,t.isLeaf?0:1))}getMap(){return We.empty}invert(e){return new Zt(this.pos,this.attr,e.nodeAt(this.pos).attrs[this.attr])}map(e){let t=e.mapResult(this.pos,1);return t.deletedAfter?null:new Zt(t.pos,this.attr,this.value)}toJSON(){return{stepType:"attr",pos:this.pos,attr:this.attr,value:this.value}}static fromJSON(e,t){if(typeof t.pos!="number"||typeof t.attr!="string")throw new RangeError("Invalid input for AttrStep.fromJSON");return new Zt(t.pos,t.attr,t.value)}};F.jsonID("attr",ys);let Ss=class Xn extends F{constructor(e,t){super(),this.attr=e,this.value=t}apply(e){let t=Object.create(null);for(let i in e.attrs)t[i]=e.attrs[i];t[this.attr]=this.value;let n=e.type.create(t,e.content,e.marks);return J.ok(n)}getMap(){return We.empty}invert(e){return new Xn(this.attr,e.attrs[this.attr])}map(e){return this}toJSON(){return{stepType:"docAttr",attr:this.attr,value:this.value}}static fromJSON(e,t){if(typeof t.attr!="string")throw new RangeError("Invalid input for DocAttrStep.fromJSON");return new Xn(t.attr,t.value)}};F.jsonID("docAttr",Ss);let rt=class extends Error{};rt=function r(e){let t=Error.call(this,e);return t.__proto__=r.prototype,t};rt.prototype=Object.create(Error.prototype);rt.prototype.constructor=rt;rt.prototype.name="TransformError";class Ml{constructor(e){this.doc=e,this.steps=[],this.docs=[],this.mapping=new _e}get before(){return this.docs.length?this.docs[0]:this.doc}step(e){let t=this.maybeStep(e);if(t.failed)throw new rt(t.failed);return this}maybeStep(e){let t=e.apply(this.doc);return t.failed||this.addStep(e,t.doc),t}get docChanged(){return this.steps.length>0}addStep(e,t){this.docs.push(this.doc),this.steps.push(e),this.mapping.appendMap(e.getMap()),this.doc=t}replace(e,t=e,n=S.empty){let i=gr(this.doc,e,t,n);return i&&this.step(i),this}replaceWith(e,t,n){return this.replace(e,t,new S(y.from(n),0,0))}delete(e,t){return this.replace(e,t,S.empty)}insert(e,t){return this.replaceWith(e,e,t)}replaceRange(e,t,n){return Cl(this,e,t,n),this}replaceRangeWith(e,t,n){return Nl(this,e,t,n),this}deleteRange(e,t){return Ol(this,e,t),this}lift(e,t){return hl(this,e,t),this}join(e,t=1){return yl(this,e,t),this}wrap(e,t){return cl(this,e,t),this}setBlockType(e,t=e,n,i=null){return fl(this,e,t,n,i),this}setNodeMarkup(e,t,n=null,i){return dl(this,e,t,n,i),this}setNodeAttribute(e,t,n){return this.step(new ys(e,t,n)),this}setDocAttribute(e,t){return this.step(new Ss(e,t)),this}addNodeMark(e,t){return this.step(new ur(e,t)),this}removeNodeMark(e,t){if(!(t instanceof C)){let n=this.doc.nodeAt(e);if(!n)throw new RangeError("No node at position "+e);if(t=t.isInSet(n.marks),!t)return this}return this.step(new dr(e,t)),this}split(e,t=1,n){return pl(this,e,t,n),this}addMark(e,t,n){return ol(this,e,t,n),this}removeMark(e,t,n){return ll(this,e,t,n),this}clearIncompatible(e,t,n){return pr(this,e,t,n),this}}const Tn=Object.create(null);let w=class{constructor(e,t,n){this.$anchor=e,this.$head=t,this.ranges=n||[new Tl(e.min(t),e.max(t))]}get anchor(){return this.$anchor.pos}get head(){return this.$head.pos}get from(){return this.$from.pos}get to(){return this.$to.pos}get $from(){return this.ranges[0].$from}get $to(){return this.ranges[0].$to}get empty(){let e=this.ranges;for(let t=0;t=0;s--){let o=t<0?je(e.node(0),e.node(s),e.before(s+1),e.index(s),t,n):je(e.node(0),e.node(s),e.after(s+1),e.index(s)+1,t,n);if(o)return o}return null}static near(e,t=1){return this.findFrom(e,t)||this.findFrom(e,-t)||new ce(e.node(0))}static atStart(e){return je(e,e,0,0,1)||new ce(e)}static atEnd(e){return je(e,e,e.content.size,e.childCount,-1)||new ce(e)}static fromJSON(e,t){if(!t||!t.type)throw new RangeError("Invalid input for Selection.fromJSON");let n=Tn[t.type];if(!n)throw new RangeError(`No selection type ${t.type} defined`);return n.fromJSON(e,t)}static jsonID(e,t){if(e in Tn)throw new RangeError("Duplicate use of selection JSON ID "+e);return Tn[e]=t,t.prototype.jsonID=e,t}getBookmark(){return M.between(this.$anchor,this.$head).getBookmark()}};w.prototype.visible=!0;let Tl=class{constructor(e,t){this.$from=e,this.$to=t}},qr=!1;function Kr(r){!qr&&!r.parent.inlineContent&&(qr=!0,console.warn("TextSelection endpoint not pointing into a node with inline content ("+r.parent.type.name+")"))}let M=class gt extends w{constructor(e,t=e){Kr(e),Kr(t),super(e,t)}get $cursor(){return this.$anchor.pos==this.$head.pos?this.$head:null}map(e,t){let n=e.resolve(t.map(this.head));if(!n.parent.inlineContent)return w.near(n);let i=e.resolve(t.map(this.anchor));return new gt(i.parent.inlineContent?i:n,n)}replace(e,t=S.empty){if(super.replace(e,t),t==S.empty){let n=this.$from.marksAcross(this.$to);n&&e.ensureMarks(n)}}eq(e){return e instanceof gt&&e.anchor==this.anchor&&e.head==this.head}getBookmark(){return new ks(this.anchor,this.head)}toJSON(){return{type:"text",anchor:this.anchor,head:this.head}}static fromJSON(e,t){if(typeof t.anchor!="number"||typeof t.head!="number")throw new RangeError("Invalid input for TextSelection.fromJSON");return new gt(e.resolve(t.anchor),e.resolve(t.head))}static create(e,t,n=t){let i=e.resolve(t);return new this(i,n==t?i:e.resolve(n))}static between(e,t,n){let i=e.pos-t.pos;if((!n||i)&&(n=i>=0?1:-1),!t.parent.inlineContent){let s=w.findFrom(t,n,!0)||w.findFrom(t,-n,!0);if(s)t=s.$head;else return w.near(t,n)}return e.parent.inlineContent||(i==0?e=t:(e=(w.findFrom(e,-n,!0)||w.findFrom(e,n,!0)).$anchor,e.pos0?0:1);i>0?o=0;o+=i){let l=e.child(o);if(l.isAtom){if(!s&&x.isSelectable(l))return x.create(r,t-(i<0?l.nodeSize:0))}else{let a=je(r,l,t+i,i<0?l.childCount:0,i,s);if(a)return a}t+=l.nodeSize*i}return null}function Hr(r,e,t){let n=r.steps.length-1;if(n{o==null&&(o=c)}),r.setSelection(w.near(r.doc.resolve(o),t))}const Ur=1,qt=2,Gr=4;class Al extends Ml{constructor(e){super(e.doc),this.curSelectionFor=0,this.updated=0,this.meta=Object.create(null),this.time=Date.now(),this.curSelection=e.selection,this.storedMarks=e.storedMarks}get selection(){return this.curSelectionFor0}setStoredMarks(e){return this.storedMarks=e,this.updated|=qt,this}ensureMarks(e){return C.sameSet(this.storedMarks||this.selection.$from.marks(),e)||this.setStoredMarks(e),this}addStoredMark(e){return this.ensureMarks(e.addToSet(this.storedMarks||this.selection.$head.marks()))}removeStoredMark(e){return this.ensureMarks(e.removeFromSet(this.storedMarks||this.selection.$head.marks()))}get storedMarksSet(){return(this.updated&qt)>0}addStep(e,t){super.addStep(e,t),this.updated=this.updated&~qt,this.storedMarks=null}setTime(e){return this.time=e,this}replaceSelection(e){return this.selection.replace(this,e),this}replaceSelectionWith(e,t=!0){let n=this.selection;return t&&(e=e.mark(this.storedMarks||(n.empty?n.$from.marks():n.$from.marksAcross(n.$to)||C.none))),n.replaceWith(this,e),this}deleteSelection(){return this.selection.replace(this),this}insertText(e,t,n){let i=this.doc.type.schema;if(t==null)return e?this.replaceSelectionWith(i.text(e),!0):this.deleteSelection();{if(n==null&&(n=t),n=n??t,!e)return this.deleteRange(t,n);let s=this.storedMarks;if(!s){let o=this.doc.resolve(t);s=n==t?o.marks():o.marksAcross(this.doc.resolve(n))}return this.replaceRangeWith(t,n,i.text(e,s)),this.selection.empty||this.setSelection(w.near(this.selection.$to)),this}}setMeta(e,t){return this.meta[typeof e=="string"?e:e.key]=t,this}getMeta(e){return this.meta[typeof e=="string"?e:e.key]}get isGeneric(){for(let e in this.meta)return!1;return!0}scrollIntoView(){return this.updated|=Gr,this}get scrolledIntoView(){return(this.updated&Gr)>0}}function Yr(r,e){return!e||!r?r:r.bind(e)}let St=class{constructor(e,t,n){this.name=e,this.init=Yr(t.init,n),this.apply=Yr(t.apply,n)}};const Rl=[new St("doc",{init(r){return r.doc||r.schema.topNodeType.createAndFill()},apply(r){return r.doc}}),new St("selection",{init(r,e){return r.selection||w.atStart(e.doc)},apply(r){return r.selection}}),new St("storedMarks",{init(r){return r.storedMarks||null},apply(r,e,t,n){return n.selection.$cursor?r.storedMarks:null}}),new St("scrollToSelection",{init(){return 0},apply(r,e){return r.scrolledIntoView?e+1:e}})];class En{constructor(e,t){this.schema=e,this.plugins=[],this.pluginsByKey=Object.create(null),this.fields=Rl.slice(),t&&t.forEach(n=>{if(this.pluginsByKey[n.key])throw new RangeError("Adding different instances of a keyed plugin ("+n.key+")");this.plugins.push(n),this.pluginsByKey[n.key]=n,n.spec.state&&this.fields.push(new St(n.key,n.spec.state,n))})}}class Qe{constructor(e){this.config=e}get schema(){return this.config.schema}get plugins(){return this.config.plugins}apply(e){return this.applyTransaction(e).state}filterTransaction(e,t=-1){for(let n=0;nn.toJSON())),e&&typeof e=="object")for(let n in e){if(n=="doc"||n=="selection")throw new RangeError("The JSON fields `doc` and `selection` are reserved");let i=e[n],s=i.spec.state;s&&s.toJSON&&(t[n]=s.toJSON.call(i,this[i.key]))}return t}static fromJSON(e,t,n){if(!t)throw new RangeError("Invalid input for EditorState.fromJSON");if(!e.schema)throw new RangeError("Required config field 'schema' missing");let i=new En(e.schema,e.plugins),s=new Qe(i);return i.fields.forEach(o=>{if(o.name=="doc")s.doc=Fe.fromJSON(e.schema,t.doc);else if(o.name=="selection")s.selection=w.fromJSON(s.doc,t.selection);else if(o.name=="storedMarks")t.storedMarks&&(s.storedMarks=t.storedMarks.map(e.schema.markFromJSON));else{if(n)for(let l in n){let a=n[l],h=a.spec.state;if(a.key==o.name&&h&&h.fromJSON&&Object.prototype.hasOwnProperty.call(t,l)){s[o.name]=h.fromJSON.call(a,e,t[l],s);return}}s[o.name]=o.init(e,s)}}),s}}function ws(r,e,t){for(let n in r){let i=r[n];i instanceof Function?i=i.bind(e):n=="handleDOMEvents"&&(i=ws(i,e,{})),t[n]=i}return t}let yr=class{constructor(e){this.spec=e,this.props={},e.props&&ws(e.props,this,this.props),this.key=e.key?e.key.key:Cs("plugin")}getState(e){return e[this.key]}};const Dn=Object.create(null);function Cs(r){return r in Dn?r+"$"+ ++Dn[r]:(Dn[r]=0,r+"$")}class Sr{constructor(e="key"){this.key=Cs(e)}get(e){return e.config.pluginsByKey[this.key]}getState(e){return e[this.key]}}const z=function(r){for(var e=0;;e++)if(r=r.previousSibling,!r)return e},Dt=function(r){let e=r.assignedSlot||r.parentNode;return e&&e.nodeType==11?e.host:e};let Zn=null;const oe=function(r,e,t){let n=Zn||(Zn=document.createRange());return n.setEnd(r,t??r.nodeValue.length),n.setStart(r,e||0),n},Il=function(){Zn=null},qe=function(r,e,t,n){return t&&(jr(r,e,t,n,-1)||jr(r,e,t,n,1))},zl=/^(img|br|input|textarea|hr)$/i;function jr(r,e,t,n,i){for(;;){if(r==t&&e==n)return!0;if(e==(i<0?0:j(r))){let s=r.parentNode;if(!s||s.nodeType!=1||Bt(r)||zl.test(r.nodeName)||r.contentEditable=="false")return!1;e=z(r)+(i<0?0:1),r=s}else if(r.nodeType==1){if(r=r.childNodes[e+(i<0?-1:0)],r.contentEditable=="false")return!1;e=i<0?j(r):0}else return!1}}function j(r){return r.nodeType==3?r.nodeValue.length:r.childNodes.length}function vl(r,e){for(;;){if(r.nodeType==3&&e)return r;if(r.nodeType==1&&e>0){if(r.contentEditable=="false")return null;r=r.childNodes[e-1],e=j(r)}else if(r.parentNode&&!Bt(r))e=z(r),r=r.parentNode;else return null}}function Pl(r,e){for(;;){if(r.nodeType==3&&e2),Y=it||(re?/Mac/.test(re.platform):!1),Ll=re?/Win/.test(re.platform):!1,he=/Android \d/.test(Me),Ft=!!Xr&&"webkitFontSmoothing"in Xr.documentElement.style,Jl=Ft?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0;function $l(r){let e=r.defaultView&&r.defaultView.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:r.documentElement.clientWidth,top:0,bottom:r.documentElement.clientHeight}}function se(r,e){return typeof r=="number"?r:r[e]}function Wl(r){let e=r.getBoundingClientRect(),t=e.width/r.offsetWidth||1,n=e.height/r.offsetHeight||1;return{left:e.left,right:e.left+r.clientWidth*t,top:e.top,bottom:e.top+r.clientHeight*n}}function Zr(r,e,t){let n=r.someProp("scrollThreshold")||0,i=r.someProp("scrollMargin")||5,s=r.dom.ownerDocument;for(let o=t||r.dom;o;o=Dt(o)){if(o.nodeType!=1)continue;let l=o,a=l==s.body,h=a?$l(s):Wl(l),c=0,f=0;if(e.toph.bottom-se(n,"bottom")&&(f=e.bottom-e.top>h.bottom-h.top?e.top+se(i,"top")-h.top:e.bottom-h.bottom+se(i,"bottom")),e.lefth.right-se(n,"right")&&(c=e.right-h.right+se(i,"right")),c||f)if(a)s.defaultView.scrollBy(c,f);else{let d=l.scrollLeft,p=l.scrollTop;f&&(l.scrollTop+=f),c&&(l.scrollLeft+=c);let u=l.scrollLeft-d,m=l.scrollTop-p;e={left:e.left-u,top:e.top-m,right:e.right-u,bottom:e.bottom-m}}if(a||/^(fixed|sticky)$/.test(getComputedStyle(o).position))break}}function ql(r){let e=r.dom.getBoundingClientRect(),t=Math.max(0,e.top),n,i;for(let s=(e.left+e.right)/2,o=t+1;o=t-20){n=l,i=a.top;break}}return{refDOM:n,refTop:i,stack:Ms(r.dom)}}function Ms(r){let e=[],t=r.ownerDocument;for(let n=r;n&&(e.push({dom:n,top:n.scrollTop,left:n.scrollLeft}),r!=t);n=Dt(n));return e}function Kl({refDOM:r,refTop:e,stack:t}){let n=r?r.getBoundingClientRect().top:0;Ts(t,n==0?0:n-e)}function Ts(r,e){for(let t=0;t=l){o=Math.max(u.bottom,o),l=Math.min(u.top,l);let m=u.left>e.left?u.left-e.left:u.right=(u.left+u.right)/2?1:0));continue}}else u.top>e.top&&!a&&u.left<=e.left&&u.right>=e.left&&(a=c,h={left:Math.max(u.left,Math.min(u.right,e.left)),top:u.top});!t&&(e.left>=u.right&&e.top>=u.top||e.left>=u.left&&e.top>=u.bottom)&&(s=f+1)}}return!t&&a&&(t=a,i=h,n=0),t&&t.nodeType==3?Ul(t,i):!t||n&&t.nodeType==1?{node:r,offset:s}:Es(t,i)}function Ul(r,e){let t=r.nodeValue.length,n=document.createRange();for(let i=0;i=(s.left+s.right)/2?1:0)}}return{node:r,offset:0}}function kr(r,e){return r.left>=e.left-1&&r.left<=e.right+1&&r.top>=e.top-1&&r.top<=e.bottom+1}function Gl(r,e){let t=r.parentNode;return t&&/^li$/i.test(t.nodeName)&&e.left(o.left+o.right)/2?1:-1}return r.docView.posFromDOM(n,i,s)}function jl(r,e,t,n){let i=-1;for(let s=e,o=!1;s!=r.dom;){let l=r.docView.nearestDesc(s,!0),a;if(!l)return null;if(l.dom.nodeType==1&&(l.node.isBlock&&l.parent||!l.contentDOM)&&((a=l.dom.getBoundingClientRect()).width||a.height)&&(l.node.isBlock&&l.parent&&(!o&&a.left>n.left||a.top>n.top?i=l.posBefore:(!o&&a.right-1?i:r.docView.posFromDOM(e,t,-1)}function Ds(r,e,t){let n=r.childNodes.length;if(n&&t.tope.top&&i++}let h;Ft&&i&&n.nodeType==1&&(h=n.childNodes[i-1]).nodeType==1&&h.contentEditable=="false"&&h.getBoundingClientRect().top>=e.top&&i--,n==r.dom&&i==n.childNodes.length-1&&n.lastChild.nodeType==1&&e.top>n.lastChild.getBoundingClientRect().bottom?l=r.state.doc.content.size:(i==0||n.nodeType!=1||n.childNodes[i-1].nodeName!="BR")&&(l=jl(r,n,i,e))}l==null&&(l=Yl(r,o,e));let a=r.docView.nearestDesc(o,!0);return{pos:l,inside:a?a.posAtStart-a.border:-1}}function Qr(r){return r.top=0&&i==n.nodeValue.length?(a--,c=1):t<0?a--:h++,ht(ye(oe(n,a,h),c),c<0)}if(!r.state.doc.resolve(e-(s||0)).parent.inlineContent){if(s==null&&i&&(t<0||i==j(n))){let a=n.childNodes[i-1];if(a.nodeType==1)return An(a.getBoundingClientRect(),!1)}if(s==null&&i=0)}if(s==null&&i&&(t<0||i==j(n))){let a=n.childNodes[i-1],h=a.nodeType==3?oe(a,j(a)-(o?0:1)):a.nodeType==1&&(a.nodeName!="BR"||!a.nextSibling)?a:null;if(h)return ht(ye(h,1),!1)}if(s==null&&i=0)}function ht(r,e){if(r.width==0)return r;let t=e?r.left:r.right;return{top:r.top,bottom:r.bottom,left:t,right:t}}function An(r,e){if(r.height==0)return r;let t=e?r.top:r.bottom;return{top:t,bottom:t,left:r.left,right:r.right}}function Rs(r,e,t){let n=r.state,i=r.root.activeElement;n!=e&&r.updateState(e),i!=r.dom&&r.focus();try{return t()}finally{n!=e&&r.updateState(n),i!=r.dom&&i&&i.focus()}}function Ql(r,e,t){let n=e.selection,i=t=="up"?n.$from:n.$to;return Rs(r,e,()=>{let{node:s}=r.docView.domFromPos(i.pos,t=="up"?-1:1);for(;;){let l=r.docView.nearestDesc(s,!0);if(!l)break;if(l.node.isBlock){s=l.contentDOM||l.dom;break}s=l.dom.parentNode}let o=As(r,i.pos,1);for(let l=s.firstChild;l;l=l.nextSibling){let a;if(l.nodeType==1)a=l.getClientRects();else if(l.nodeType==3)a=oe(l,0,l.nodeValue.length).getClientRects();else continue;for(let h=0;hc.top+1&&(t=="up"?o.top-c.top>(c.bottom-o.top)*2:c.bottom-o.bottom>(o.bottom-c.top)*2))return!1}}return!0})}const _l=/[\u0590-\u08ac]/;function ea(r,e,t){let{$head:n}=e.selection;if(!n.parent.isTextblock)return!1;let i=n.parentOffset,s=!i,o=i==n.parent.content.size,l=r.domSelection();return l?!_l.test(n.parent.textContent)||!l.modify?t=="left"||t=="backward"?s:o:Rs(r,e,()=>{let{focusNode:a,focusOffset:h,anchorNode:c,anchorOffset:f}=r.domSelectionRange(),d=l.caretBidiLevel;l.modify("move",t,"character");let p=n.depth?r.docView.domAfterPos(n.before()):r.dom,{focusNode:u,focusOffset:m}=r.domSelectionRange(),g=u&&!p.contains(u.nodeType==1?u:u.parentNode)||a==u&&h==m;try{l.collapse(c,f),a&&(a!=c||h!=f)&&l.extend&&l.extend(a,h)}catch{}return d!=null&&(l.caretBidiLevel=d),g}):n.pos==n.start()||n.pos==n.end()}let _r=null,ei=null,ti=!1;function ta(r,e,t){return _r==e&&ei==t?ti:(_r=e,ei=t,ti=t=="up"||t=="down"?Ql(r,e,t):ea(r,e,t))}const X=0,ni=1,Ae=2,ie=3;class Vt{constructor(e,t,n,i){this.parent=e,this.children=t,this.dom=n,this.contentDOM=i,this.dirty=X,n.pmViewDesc=this}matchesWidget(e){return!1}matchesMark(e){return!1}matchesNode(e,t,n){return!1}matchesHack(e){return!1}parseRule(){return null}stopEvent(e){return!1}get size(){let e=0;for(let t=0;tz(this.contentDOM);else if(this.contentDOM&&this.contentDOM!=this.dom&&this.dom.contains(this.contentDOM))i=e.compareDocumentPosition(this.contentDOM)&2;else if(this.dom.firstChild){if(t==0)for(let s=e;;s=s.parentNode){if(s==this.dom){i=!1;break}if(s.previousSibling)break}if(i==null&&t==e.childNodes.length)for(let s=e;;s=s.parentNode){if(s==this.dom){i=!0;break}if(s.nextSibling)break}}return i??n>0?this.posAtEnd:this.posAtStart}nearestDesc(e,t=!1){for(let n=!0,i=e;i;i=i.parentNode){let s=this.getDesc(i),o;if(s&&(!t||s.node))if(n&&(o=s.nodeDOM)&&!(o.nodeType==1?o.contains(e.nodeType==1?e:e.parentNode):o==e))n=!1;else return s}}getDesc(e){let t=e.pmViewDesc;for(let n=t;n;n=n.parent)if(n==this)return t}posFromDOM(e,t,n){for(let i=e;i;i=i.parentNode){let s=this.getDesc(i);if(s)return s.localPosFromDOM(e,t,n)}return-1}descAt(e){for(let t=0,n=0;te||o instanceof zs){i=e-s;break}s=l}if(i)return this.children[n].domFromPos(i-this.children[n].border,t);for(let s;n&&!(s=this.children[n-1]).size&&s instanceof Is&&s.side>=0;n--);if(t<=0){let s,o=!0;for(;s=n?this.children[n-1]:null,!(!s||s.dom.parentNode==this.contentDOM);n--,o=!1);return s&&t&&o&&!s.border&&!s.domAtom?s.domFromPos(s.size,t):{node:this.contentDOM,offset:s?z(s.dom)+1:0}}else{let s,o=!0;for(;s=n=c&&t<=h-a.border&&a.node&&a.contentDOM&&this.contentDOM.contains(a.contentDOM))return a.parseRange(e,t,c);e=o;for(let f=l;f>0;f--){let d=this.children[f-1];if(d.size&&d.dom.parentNode==this.contentDOM&&!d.emptyChildAt(1)){i=z(d.dom)+1;break}e-=d.size}i==-1&&(i=0)}if(i>-1&&(h>t||l==this.children.length-1)){t=h;for(let c=l+1;cu&&ot){let u=l;l=a,a=u}let p=document.createRange();p.setEnd(a.node,a.offset),p.setStart(l.node,l.offset),h.removeAllRanges(),h.addRange(p)}}ignoreMutation(e){return!this.contentDOM&&e.type!="selection"}get contentLost(){return this.contentDOM&&this.contentDOM!=this.dom&&!this.dom.contains(this.contentDOM)}markDirty(e,t){for(let n=0,i=0;i=n:en){let l=n+s.border,a=o-s.border;if(e>=l&&t<=a){this.dirty=e==n||t==o?Ae:ni,e==l&&t==a&&(s.contentLost||s.dom.parentNode!=this.contentDOM)?s.dirty=ie:s.markDirty(e-l,t-l);return}else s.dirty=s.dom==s.contentDOM&&s.dom.parentNode==this.contentDOM&&!s.children.length?Ae:ie}n=o}this.dirty=Ae}markParentsDirty(){let e=1;for(let t=this.parent;t;t=t.parent,e++){let n=e==1?Ae:ni;t.dirty{if(!s)return i;if(s.parent)return s.parent.posBeforeChild(s)})),!t.type.spec.raw){if(o.nodeType!=1){let l=document.createElement("span");l.appendChild(o),o=l}o.contentEditable="false",o.classList.add("ProseMirror-widget")}super(e,[],o,null),this.widget=t,this.widget=t,s=this}matchesWidget(e){return this.dirty==X&&e.type.eq(this.widget.type)}parseRule(){return{ignore:!0}}stopEvent(e){let t=this.widget.spec.stopEvent;return t?t(e):!1}ignoreMutation(e){return e.type!="selection"||this.widget.spec.ignoreSelection}destroy(){this.widget.type.destroy(this.dom),super.destroy()}get domAtom(){return!0}get side(){return this.widget.type.side}}class na extends Vt{constructor(e,t,n,i){super(e,[],t,null),this.textDOM=n,this.text=i}get size(){return this.text.length}localPosFromDOM(e,t){return e!=this.textDOM?this.posAtStart+(t?this.size:0):this.posAtStart+t}domFromPos(e){return{node:this.textDOM,offset:e}}ignoreMutation(e){return e.type==="characterData"&&e.target.nodeValue==e.oldValue}}class Ke extends Vt{constructor(e,t,n,i,s){super(e,[],n,i),this.mark=t,this.spec=s}static create(e,t,n,i){let s=i.nodeViews[t.type.name],o=s&&s(t,i,n);return(!o||!o.dom)&&(o=at.renderSpec(document,t.type.spec.toDOM(t,n),null,t.attrs)),new Ke(e,t,o.dom,o.contentDOM||o.dom,o)}parseRule(){return this.dirty&ie||this.mark.type.spec.reparseInView?null:{mark:this.mark.type.name,attrs:this.mark.attrs,contentElement:this.contentDOM}}matchesMark(e){return this.dirty!=ie&&this.mark.eq(e)}markDirty(e,t){if(super.markDirty(e,t),this.dirty!=X){let n=this.parent;for(;!n.node;)n=n.parent;n.dirty0&&(s=nr(s,0,e,n));for(let l=0;l{if(!a)return o;if(a.parent)return a.parent.posBeforeChild(a)},n,i),c=h&&h.dom,f=h&&h.contentDOM;if(t.isText){if(!c)c=document.createTextNode(t.text);else if(c.nodeType!=3)throw new RangeError("Text must be rendered as a DOM text node")}else c||({dom:c,contentDOM:f}=at.renderSpec(document,t.type.spec.toDOM(t),null,t.attrs));!f&&!t.isText&&c.nodeName!="BR"&&(c.hasAttribute("contenteditable")||(c.contentEditable="false"),t.type.spec.draggable&&(c.draggable=!0));let d=c;return c=Bs(c,n,t),h?a=new ra(e,t,n,i,c,f||null,d,h,s,o+1):t.isText?new yn(e,t,n,i,c,d,s):new Ce(e,t,n,i,c,f||null,d,s,o+1)}parseRule(){if(this.node.type.spec.reparseInView)return null;let e={node:this.node.type.name,attrs:this.node.attrs};if(this.node.type.whitespace=="pre"&&(e.preserveWhitespace="full"),!this.contentDOM)e.getContent=()=>this.node.content;else if(!this.contentLost)e.contentElement=this.contentDOM;else{for(let t=this.children.length-1;t>=0;t--){let n=this.children[t];if(this.dom.contains(n.dom.parentNode)){e.contentElement=n.dom.parentNode;break}}e.contentElement||(e.getContent=()=>y.empty)}return e}matchesNode(e,t,n){return this.dirty==X&&e.eq(this.node)&&on(t,this.outerDeco)&&n.eq(this.innerDeco)}get size(){return this.node.nodeSize}get border(){return this.node.isLeaf?0:1}updateChildren(e,t){let n=this.node.inlineContent,i=t,s=e.composing?this.localCompositionInfo(e,t):null,o=s&&s.pos>-1?s:null,l=s&&s.pos<0,a=new sa(this,o&&o.node,e);aa(this.node,this.innerDeco,(h,c,f)=>{h.spec.marks?a.syncToMarks(h.spec.marks,n,e):h.type.side>=0&&!f&&a.syncToMarks(c==this.node.childCount?C.none:this.node.child(c).marks,n,e),a.placeWidget(h,e,i)},(h,c,f,d)=>{a.syncToMarks(h.marks,n,e);let p;a.findNodeMatch(h,c,f,d)||l&&e.state.selection.from>i&&e.state.selection.to-1&&a.updateNodeAt(h,c,f,p,e)||a.updateNextNode(h,c,f,e,d,i)||a.addNode(h,c,f,e,i),i+=h.nodeSize}),a.syncToMarks([],n,e),this.node.isTextblock&&a.addTextblockHacks(),a.destroyRest(),(a.changed||this.dirty==Ae)&&(o&&this.protectLocalComposition(e,o),vs(this.contentDOM,this.children,e),it&&ha(this.dom))}localCompositionInfo(e,t){let{from:n,to:i}=e.state.selection;if(!(e.state.selection instanceof M)||nt+this.node.content.size)return null;let s=e.input.compositionNode;if(!s||!this.dom.contains(s.parentNode))return null;if(this.node.inlineContent){let o=s.nodeValue,l=ca(this.node.content,o,n-t,i-t);return l<0?null:{node:s,pos:l,text:o}}else return{node:s,pos:-1,text:""}}protectLocalComposition(e,{node:t,pos:n,text:i}){if(this.getDesc(t))return;let s=t;for(;s.parentNode!=this.contentDOM;s=s.parentNode){for(;s.previousSibling;)s.parentNode.removeChild(s.previousSibling);for(;s.nextSibling;)s.parentNode.removeChild(s.nextSibling);s.pmViewDesc&&(s.pmViewDesc=void 0)}let o=new na(this,s,t,i);e.input.compositionNodes.push(o),this.children=nr(this.children,n,n+i.length,e,o)}update(e,t,n,i){return this.dirty==ie||!e.sameMarkup(this.node)?!1:(this.updateInner(e,t,n,i),!0)}updateInner(e,t,n,i){this.updateOuterDeco(t),this.node=e,this.innerDeco=n,this.contentDOM&&this.updateChildren(i,this.posAtStart),this.dirty=X}updateOuterDeco(e){if(on(e,this.outerDeco))return;let t=this.nodeDOM.nodeType!=1,n=this.dom;this.dom=Ps(this.dom,this.nodeDOM,tr(this.outerDeco,this.node,t),tr(e,this.node,t)),this.dom!=n&&(n.pmViewDesc=void 0,this.dom.pmViewDesc=this),this.outerDeco=e}selectNode(){this.nodeDOM.nodeType==1&&this.nodeDOM.classList.add("ProseMirror-selectednode"),(this.contentDOM||!this.node.type.spec.draggable)&&(this.dom.draggable=!0)}deselectNode(){this.nodeDOM.nodeType==1&&(this.nodeDOM.classList.remove("ProseMirror-selectednode"),(this.contentDOM||!this.node.type.spec.draggable)&&this.dom.removeAttribute("draggable"))}get domAtom(){return this.node.isAtom}}function ri(r,e,t,n,i){Bs(n,e,r);let s=new Ce(void 0,r,e,t,n,n,n,i,0);return s.contentDOM&&s.updateChildren(i,0),s}class yn extends Ce{constructor(e,t,n,i,s,o,l){super(e,t,n,i,s,null,o,l,0)}parseRule(){let e=this.nodeDOM.parentNode;for(;e&&e!=this.dom&&!e.pmIsDeco;)e=e.parentNode;return{skip:e||!0}}update(e,t,n,i){return this.dirty==ie||this.dirty!=X&&!this.inParent()||!e.sameMarkup(this.node)?!1:(this.updateOuterDeco(t),(this.dirty!=X||e.text!=this.node.text)&&e.text!=this.nodeDOM.nodeValue&&(this.nodeDOM.nodeValue=e.text,i.trackWrites==this.nodeDOM&&(i.trackWrites=null)),this.node=e,this.dirty=X,!0)}inParent(){let e=this.parent.contentDOM;for(let t=this.nodeDOM;t;t=t.parentNode)if(t==e)return!0;return!1}domFromPos(e){return{node:this.nodeDOM,offset:e}}localPosFromDOM(e,t,n){return e==this.nodeDOM?this.posAtStart+Math.min(t,this.node.text.length):super.localPosFromDOM(e,t,n)}ignoreMutation(e){return e.type!="characterData"&&e.type!="selection"}slice(e,t,n){let i=this.node.cut(e,t),s=document.createTextNode(i.text);return new yn(this.parent,i,this.outerDeco,this.innerDeco,s,s,n)}markDirty(e,t){super.markDirty(e,t),this.dom!=this.nodeDOM&&(e==0||t==this.nodeDOM.nodeValue.length)&&(this.dirty=ie)}get domAtom(){return!1}isText(e){return this.node.text==e}}class zs extends Vt{parseRule(){return{ignore:!0}}matchesHack(e){return this.dirty==X&&this.dom.nodeName==e}get domAtom(){return!0}get ignoreForCoords(){return this.dom.nodeName=="IMG"}}class ra extends Ce{constructor(e,t,n,i,s,o,l,a,h,c){super(e,t,n,i,s,o,l,h,c),this.spec=a}update(e,t,n,i){if(this.dirty==ie)return!1;if(this.spec.update&&(this.node.type==e.type||this.spec.multiType)){let s=this.spec.update(e,t,n);return s&&this.updateInner(e,t,n,i),s}else return!this.contentDOM&&!e.isLeaf?!1:super.update(e,t,n,i)}selectNode(){this.spec.selectNode?this.spec.selectNode():super.selectNode()}deselectNode(){this.spec.deselectNode?this.spec.deselectNode():super.deselectNode()}setSelection(e,t,n,i){this.spec.setSelection?this.spec.setSelection(e,t,n.root):super.setSelection(e,t,n,i)}destroy(){this.spec.destroy&&this.spec.destroy(),super.destroy()}stopEvent(e){return this.spec.stopEvent?this.spec.stopEvent(e):!1}ignoreMutation(e){return this.spec.ignoreMutation?this.spec.ignoreMutation(e):super.ignoreMutation(e)}}function vs(r,e,t){let n=r.firstChild,i=!1;for(let s=0;s>1,o=Math.min(s,e.length);for(;i-1)l>this.index&&(this.changed=!0,this.destroyBetween(this.index,l)),this.top=this.top.children[this.index];else{let a=Ke.create(this.top,e[s],t,n);this.top.children.splice(this.index,0,a),this.top=a,this.changed=!0}this.index=0,s++}}findNodeMatch(e,t,n,i){let s=-1,o;if(i>=this.preMatch.index&&(o=this.preMatch.matches[i-this.preMatch.index]).parent==this.top&&o.matchesNode(e,t,n))s=this.top.children.indexOf(o,this.index);else for(let l=this.index,a=Math.min(this.top.children.length,l+5);l0;){let l;for(;;)if(n){let h=t.children[n-1];if(h instanceof Ke)t=h,n=h.children.length;else{l=h,n--;break}}else{if(t==e)break e;n=t.parent.children.indexOf(t),t=t.parent}let a=l.node;if(a){if(a!=r.child(i-1))break;--i,s.set(l,i),o.push(l)}}return{index:i,matched:s,matches:o.reverse()}}function la(r,e){return r.type.side-e.type.side}function aa(r,e,t,n){let i=e.locals(r),s=0;if(i.length==0){for(let h=0;hs;)l.push(i[o++]);let u=s+d.nodeSize;if(d.isText){let g=u;o!g.inline):l.slice();n(d,m,e.forChild(s,d),p),s=u}}function ha(r){if(r.nodeName=="UL"||r.nodeName=="OL"){let e=r.style.cssText;r.style.cssText=e+"; list-style: square !important",window.getComputedStyle(r).listStyle,r.style.cssText=e}}function ca(r,e,t,n){for(let i=0,s=0;i=t){if(s>=n&&a.slice(n-e.length-l,n-l)==e)return n-e.length;let h=l=0&&h+e.length+l>=t)return l+h;if(t==n&&a.length>=n+e.length-l&&a.slice(n-l,n-l+e.length)==e)return n}}return-1}function nr(r,e,t,n,i){let s=[];for(let o=0,l=0;o=t||c<=e?s.push(a):(ht&&s.push(a.slice(t-h,a.size,n)))}return s}function xr(r,e=null){let t=r.domSelectionRange(),n=r.state.doc;if(!t.focusNode)return null;let i=r.docView.nearestDesc(t.focusNode),s=i&&i.size==0,o=r.docView.posFromDOM(t.focusNode,t.focusOffset,1);if(o<0)return null;let l=n.resolve(o),a,h;if(gn(t)){for(a=o;i&&!i.node;)i=i.parent;let f=i.node;if(i&&f.isAtom&&x.isSelectable(f)&&i.parent&&!(f.isInline&&Bl(t.focusNode,t.focusOffset,i.dom))){let d=i.posBefore;h=new x(o==d?l:n.resolve(d))}}else{if(t instanceof r.dom.ownerDocument.defaultView.Selection&&t.rangeCount>1){let f=o,d=o;for(let p=0;p{(t.anchorNode!=n||t.anchorOffset!=i)&&(e.removeEventListener("selectionchange",r.input.hideSelectionGuard),setTimeout(()=>{(!Fs(r)||r.state.selection.visible)&&r.dom.classList.remove("ProseMirror-hideselection")},20))})}function ua(r){let e=r.domSelection(),t=document.createRange();if(!e)return;let n=r.cursorWrapper.dom,i=n.nodeName=="IMG";i?t.setStart(n.parentNode,z(n)+1):t.setStart(n,0),t.collapse(!0),e.removeAllRanges(),e.addRange(t),!i&&!r.state.selection.visible&&H&&we<=11&&(n.disabled=!0,n.disabled=!1)}function Vs(r,e){if(e instanceof x){let t=r.docView.descAt(e.from);t!=r.lastSelectedViewDesc&&(ai(r),t&&t.selectNode(),r.lastSelectedViewDesc=t)}else ai(r)}function ai(r){r.lastSelectedViewDesc&&(r.lastSelectedViewDesc.parent&&r.lastSelectedViewDesc.deselectNode(),r.lastSelectedViewDesc=void 0)}function br(r,e,t,n){return r.someProp("createSelectionBetween",i=>i(r,e,t))||M.between(e,t,n)}function hi(r){return r.editable&&!r.hasFocus()?!1:Ls(r)}function Ls(r){let e=r.domSelectionRange();if(!e.anchorNode)return!1;try{return r.dom.contains(e.anchorNode.nodeType==3?e.anchorNode.parentNode:e.anchorNode)&&(r.editable||r.dom.contains(e.focusNode.nodeType==3?e.focusNode.parentNode:e.focusNode))}catch{return!1}}function da(r){let e=r.docView.domFromPos(r.state.selection.anchor,0),t=r.domSelectionRange();return qe(e.node,e.offset,t.anchorNode,t.anchorOffset)}function rr(r,e){let{$anchor:t,$head:n}=r.selection,i=e>0?t.max(n):t.min(n),s=i.parent.inlineContent?i.depth?r.doc.resolve(e>0?i.after():i.before()):null:i;return s&&w.findFrom(s,e)}function Se(r,e){return r.dispatch(r.state.tr.setSelection(e).scrollIntoView()),!0}function ci(r,e,t){let n=r.state.selection;if(n instanceof M)if(t.indexOf("s")>-1){let{$head:i}=n,s=i.textOffset?null:e<0?i.nodeBefore:i.nodeAfter;if(!s||s.isText||!s.isLeaf)return!1;let o=r.state.doc.resolve(i.pos+s.nodeSize*(e<0?-1:1));return Se(r,new M(n.$anchor,o))}else if(n.empty){if(r.endOfTextblock(e>0?"forward":"backward")){let i=rr(r.state,e);return i&&i instanceof x?Se(r,i):!1}else if(!(Y&&t.indexOf("m")>-1)){let i=n.$head,s=i.textOffset?null:e<0?i.nodeBefore:i.nodeAfter,o;if(!s||s.isText)return!1;let l=e<0?i.pos-s.nodeSize:i.pos;return s.isAtom||(o=r.docView.descAt(l))&&!o.contentDOM?x.isSelectable(s)?Se(r,new x(e<0?r.state.doc.resolve(i.pos-s.nodeSize):i)):Ft?Se(r,new M(r.state.doc.resolve(e<0?l:l+s.nodeSize))):!1:!1}}else return!1;else{if(n instanceof x&&n.node.isInline)return Se(r,new M(e>0?n.$to:n.$from));{let i=rr(r.state,e);return i?Se(r,i):!1}}}function ln(r){return r.nodeType==3?r.nodeValue.length:r.childNodes.length}function wt(r,e){let t=r.pmViewDesc;return t&&t.size==0&&(e<0||r.nextSibling||r.nodeName!="BR")}function Ue(r,e){return e<0?pa(r):ma(r)}function pa(r){let e=r.domSelectionRange(),t=e.focusNode,n=e.focusOffset;if(!t)return;let i,s,o=!1;for(ee&&t.nodeType==1&&n0){if(t.nodeType!=1)break;{let l=t.childNodes[n-1];if(wt(l,-1))i=t,s=--n;else if(l.nodeType==3)t=l,n=t.nodeValue.length;else break}}else{if(Js(t))break;{let l=t.previousSibling;for(;l&&wt(l,-1);)i=t.parentNode,s=z(l),l=l.previousSibling;if(l)t=l,n=ln(t);else{if(t=t.parentNode,t==r.dom)break;n=0}}}o?ir(r,t,n):i&&ir(r,i,s)}function ma(r){let e=r.domSelectionRange(),t=e.focusNode,n=e.focusOffset;if(!t)return;let i=ln(t),s,o;for(;;)if(n{r.state==i&&fe(r)},50)}function fi(r,e){let t=r.state.doc.resolve(e);if(!(B||Ll)&&t.parent.inlineContent){let i=r.coordsAtPos(e);if(e>t.start()){let s=r.coordsAtPos(e-1),o=(s.top+s.bottom)/2;if(o>i.top&&o1)return s.lefti.top&&o1)return s.left>i.left?"ltr":"rtl"}}return getComputedStyle(r.dom).direction=="rtl"?"rtl":"ltr"}function ui(r,e,t){let n=r.state.selection;if(n instanceof M&&!n.empty||t.indexOf("s")>-1||Y&&t.indexOf("m")>-1)return!1;let{$from:i,$to:s}=n;if(!i.parent.inlineContent||r.endOfTextblock(e<0?"up":"down")){let o=rr(r.state,e);if(o&&o instanceof x)return Se(r,o)}if(!i.parent.inlineContent){let o=e<0?i:s,l=n instanceof ce?w.near(o,e):w.findFrom(o,e);return l?Se(r,l):!1}return!1}function di(r,e){if(!(r.state.selection instanceof M))return!0;let{$head:t,$anchor:n,empty:i}=r.state.selection;if(!t.sameParent(n))return!0;if(!i)return!1;if(r.endOfTextblock(e>0?"forward":"backward"))return!0;let s=!t.textOffset&&(e<0?t.nodeBefore:t.nodeAfter);if(s&&!s.isText){let o=r.state.tr;return e<0?o.delete(t.pos-s.nodeSize,t.pos):o.delete(t.pos,t.pos+s.nodeSize),r.dispatch(o),!0}return!1}function pi(r,e,t){r.domObserver.stop(),e.contentEditable=t,r.domObserver.start()}function Sa(r){if(!$||r.state.selection.$head.parentOffset>0)return!1;let{focusNode:e,focusOffset:t}=r.domSelectionRange();if(e&&e.nodeType==1&&t==0&&e.firstChild&&e.firstChild.contentEditable=="false"){let n=e.firstChild;pi(r,n,"true"),setTimeout(()=>pi(r,n,"false"),20)}return!1}function ka(r){let e="";return r.ctrlKey&&(e+="c"),r.metaKey&&(e+="m"),r.altKey&&(e+="a"),r.shiftKey&&(e+="s"),e}function xa(r,e){let t=e.keyCode,n=ka(e);if(t==8||Y&&t==72&&n=="c")return di(r,-1)||Ue(r,-1);if(t==46&&!e.shiftKey||Y&&t==68&&n=="c")return di(r,1)||Ue(r,1);if(t==13||t==27)return!0;if(t==37||Y&&t==66&&n=="c"){let i=t==37?fi(r,r.state.selection.from)=="ltr"?-1:1:-1;return ci(r,i,n)||Ue(r,i)}else if(t==39||Y&&t==70&&n=="c"){let i=t==39?fi(r,r.state.selection.from)=="ltr"?1:-1:1;return ci(r,i,n)||Ue(r,i)}else{if(t==38||Y&&t==80&&n=="c")return ui(r,-1,n)||Ue(r,-1);if(t==40||Y&&t==78&&n=="c")return Sa(r)||ui(r,1,n)||Ue(r,1);if(n==(Y?"m":"c")&&(t==66||t==73||t==89||t==90))return!0}return!1}function $s(r,e){r.someProp("transformCopied",p=>{e=p(e,r)});let t=[],{content:n,openStart:i,openEnd:s}=e;for(;i>1&&s>1&&n.childCount==1&&n.firstChild.childCount==1;){i--,s--;let p=n.firstChild;t.push(p.type.name,p.attrs!=p.type.defaultAttrs?p.attrs:null),n=p.content}let o=r.someProp("clipboardSerializer")||at.fromSchema(r.state.schema),l=Gs(),a=l.createElement("div");a.appendChild(o.serializeFragment(n,{document:l}));let h=a.firstChild,c,f=0;for(;h&&h.nodeType==1&&(c=Us[h.nodeName.toLowerCase()]);){for(let p=c.length-1;p>=0;p--){let u=l.createElement(c[p]);for(;a.firstChild;)u.appendChild(a.firstChild);a.appendChild(u),f++}h=a.firstChild}h&&h.nodeType==1&&h.setAttribute("data-pm-slice",`${i} ${s}${f?` -${f}`:""} ${JSON.stringify(t)}`);let d=r.someProp("clipboardTextSerializer",p=>p(e,r))||e.content.textBetween(0,e.content.size,` + +`);return{dom:a,text:d,slice:e}}function Ws(r,e,t,n,i){let s=i.parent.type.spec.code,o,l;if(!t&&!e)return null;let a=e&&(n||s||!t);if(a){if(r.someProp("transformPastedText",d=>{e=d(e,s||n,r)}),s)return e?new S(y.from(r.state.schema.text(e.replace(/\r\n?/g,` +`))),0,0):S.empty;let f=r.someProp("clipboardTextParser",d=>d(e,i,n,r));if(f)l=f;else{let d=i.marks(),{schema:p}=r.state,u=at.fromSchema(p);o=document.createElement("div"),e.split(/(?:\r\n?|\n)+/).forEach(m=>{let g=o.appendChild(document.createElement("p"));m&&g.appendChild(u.serializeNode(p.text(m,d)))})}}else r.someProp("transformPastedHTML",f=>{t=f(t,r)}),o=Na(t),Ft&&Oa(o);let h=o&&o.querySelector("[data-pm-slice]"),c=h&&/^(\d+) (\d+)(?: -(\d+))? (.*)/.exec(h.getAttribute("data-pm-slice")||"");if(c&&c[3])for(let f=+c[3];f>0;f--){let d=o.firstChild;for(;d&&d.nodeType!=1;)d=d.nextSibling;if(!d)break;o=d}if(l||(l=(r.someProp("clipboardParser")||r.someProp("domParser")||Tt.fromSchema(r.state.schema)).parseSlice(o,{preserveWhitespace:!!(a||c),context:i,ruleFromNode(d){return d.nodeName=="BR"&&!d.nextSibling&&d.parentNode&&!ba.test(d.parentNode.nodeName)?{ignore:!0}:null}})),c)l=Ma(mi(l,+c[1],+c[2]),c[4]);else if(l=S.maxOpen(wa(l.content,i),!0),l.openStart||l.openEnd){let f=0,d=0;for(let p=l.content.firstChild;f{l=f(l,r)}),l}const ba=/^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;function wa(r,e){if(r.childCount<2)return r;for(let t=e.depth;t>=0;t--){let i=e.node(t).contentMatchAt(e.index(t)),s,o=[];if(r.forEach(l=>{if(!o)return;let a=i.findWrapping(l.type),h;if(!a)return o=null;if(h=o.length&&s.length&&Ks(a,s,l,o[o.length-1],0))o[o.length-1]=h;else{o.length&&(o[o.length-1]=Hs(o[o.length-1],s.length));let c=qs(l,a);o.push(c),i=i.matchType(c.type),s=a}}),o)return y.from(o)}return r}function qs(r,e,t=0){for(let n=e.length-1;n>=t;n--)r=e[n].create(null,y.from(r));return r}function Ks(r,e,t,n,i){if(i1&&(s=0),i=t&&(l=e<0?o.contentMatchAt(0).fillBefore(l,s<=i).append(l):l.append(o.contentMatchAt(o.childCount).fillBefore(y.empty,!0))),r.replaceChild(e<0?0:r.childCount-1,o.copy(l))}function mi(r,e,t){return et})),In.createHTML(r)):r}function Na(r){let e=/^(\s*]*>)*/.exec(r);e&&(r=r.slice(e[0].length));let t=Gs().createElement("div"),n=/<([a-z][^>\s]+)/i.exec(r),i;if((i=n&&Us[n[1].toLowerCase()])&&(r=i.map(s=>"<"+s+">").join("")+r+i.map(s=>"").reverse().join("")),t.innerHTML=Ca(r),i)for(let s=0;s=0;l-=2){let a=t.nodes[n[l]];if(!a||a.hasRequiredAttrs())break;i=y.from(a.create(n[l+1],i)),s++,o++}return new S(i,s,o)}const W={},q={},Ta={touchstart:!0,touchmove:!0};class Ea{constructor(){this.shiftKey=!1,this.mouseDown=null,this.lastKeyCode=null,this.lastKeyCodeTime=0,this.lastClick={time:0,x:0,y:0,type:""},this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastIOSEnter=0,this.lastIOSEnterFallbackTimeout=-1,this.lastFocus=0,this.lastTouch=0,this.lastChromeDelete=0,this.composing=!1,this.compositionNode=null,this.composingTimeout=-1,this.compositionNodes=[],this.compositionEndedAt=-2e8,this.compositionID=1,this.compositionPendingChanges=0,this.domChangeCount=0,this.eventHandlers=Object.create(null),this.hideSelectionGuard=null}}function Da(r){for(let e in W){let t=W[e];r.dom.addEventListener(e,r.input.eventHandlers[e]=n=>{Ra(r,n)&&!wr(r,n)&&(r.editable||!(n.type in q))&&t(r,n)},Ta[e]?{passive:!0}:void 0)}$&&r.dom.addEventListener("input",()=>null),or(r)}function be(r,e){r.input.lastSelectionOrigin=e,r.input.lastSelectionTime=Date.now()}function Aa(r){r.domObserver.stop();for(let e in r.input.eventHandlers)r.dom.removeEventListener(e,r.input.eventHandlers[e]);clearTimeout(r.input.composingTimeout),clearTimeout(r.input.lastIOSEnterFallbackTimeout)}function or(r){r.someProp("handleDOMEvents",e=>{for(let t in e)r.input.eventHandlers[t]||r.dom.addEventListener(t,r.input.eventHandlers[t]=n=>wr(r,n))})}function wr(r,e){return r.someProp("handleDOMEvents",t=>{let n=t[e.type];return n?n(r,e)||e.defaultPrevented:!1})}function Ra(r,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target;t!=r.dom;t=t.parentNode)if(!t||t.nodeType==11||t.pmViewDesc&&t.pmViewDesc.stopEvent(e))return!1;return!0}function Ia(r,e){!wr(r,e)&&W[e.type]&&(r.editable||!(e.type in q))&&W[e.type](r,e)}q.keydown=(r,e)=>{let t=e;if(r.input.shiftKey=t.keyCode==16||t.shiftKey,!js(r,t)&&(r.input.lastKeyCode=t.keyCode,r.input.lastKeyCodeTime=Date.now(),!(he&&B&&t.keyCode==13)))if(t.keyCode!=229&&r.domObserver.forceFlush(),it&&t.keyCode==13&&!t.ctrlKey&&!t.altKey&&!t.metaKey){let n=Date.now();r.input.lastIOSEnter=n,r.input.lastIOSEnterFallbackTimeout=setTimeout(()=>{r.input.lastIOSEnter==n&&(r.someProp("handleKeyDown",i=>i(r,De(13,"Enter"))),r.input.lastIOSEnter=0)},200)}else r.someProp("handleKeyDown",n=>n(r,t))||xa(r,t)?t.preventDefault():be(r,"key")};q.keyup=(r,e)=>{e.keyCode==16&&(r.input.shiftKey=!1)};q.keypress=(r,e)=>{let t=e;if(js(r,t)||!t.charCode||t.ctrlKey&&!t.altKey||Y&&t.metaKey)return;if(r.someProp("handleKeyPress",i=>i(r,t))){t.preventDefault();return}let n=r.state.selection;if(!(n instanceof M)||!n.$from.sameParent(n.$to)){let i=String.fromCharCode(t.charCode);!/[\r\n]/.test(i)&&!r.someProp("handleTextInput",s=>s(r,n.$from.pos,n.$to.pos,i))&&r.dispatch(r.state.tr.insertText(i).scrollIntoView()),t.preventDefault()}};function Sn(r){return{left:r.clientX,top:r.clientY}}function za(r,e){let t=e.x-r.clientX,n=e.y-r.clientY;return t*t+n*n<100}function Cr(r,e,t,n,i){if(n==-1)return!1;let s=r.state.doc.resolve(n);for(let o=s.depth+1;o>0;o--)if(r.someProp(e,l=>o>s.depth?l(r,t,s.nodeAfter,s.before(o),i,!0):l(r,t,s.node(o),s.before(o),i,!1)))return!0;return!1}function et(r,e,t){if(r.focused||r.focus(),r.state.selection.eq(e))return;let n=r.state.tr.setSelection(e);n.setMeta("pointer",!0),r.dispatch(n)}function va(r,e){if(e==-1)return!1;let t=r.state.doc.resolve(e),n=t.nodeAfter;return n&&n.isAtom&&x.isSelectable(n)?(et(r,new x(t)),!0):!1}function Pa(r,e){if(e==-1)return!1;let t=r.state.selection,n,i;t instanceof x&&(n=t.node);let s=r.state.doc.resolve(e);for(let o=s.depth+1;o>0;o--){let l=o>s.depth?s.nodeAfter:s.node(o);if(x.isSelectable(l)){n&&t.$from.depth>0&&o>=t.$from.depth&&s.before(t.$from.depth+1)==t.$from.pos?i=s.before(t.$from.depth):i=s.before(o);break}}return i!=null?(et(r,x.create(r.state.doc,i)),!0):!1}function Ba(r,e,t,n,i){return Cr(r,"handleClickOn",e,t,n)||r.someProp("handleClick",s=>s(r,e,n))||(i?Pa(r,t):va(r,t))}function Fa(r,e,t,n){return Cr(r,"handleDoubleClickOn",e,t,n)||r.someProp("handleDoubleClick",i=>i(r,e,n))}function Va(r,e,t,n){return Cr(r,"handleTripleClickOn",e,t,n)||r.someProp("handleTripleClick",i=>i(r,e,n))||La(r,t,n)}function La(r,e,t){if(t.button!=0)return!1;let n=r.state.doc;if(e==-1)return n.inlineContent?(et(r,M.create(n,0,n.content.size)),!0):!1;let i=n.resolve(e);for(let s=i.depth+1;s>0;s--){let o=s>i.depth?i.nodeAfter:i.node(s),l=i.before(s);if(o.inlineContent)et(r,M.create(n,l+1,l+1+o.content.size));else if(x.isSelectable(o))et(r,x.create(n,l));else continue;return!0}}function Nr(r){return an(r)}const Ys=Y?"metaKey":"ctrlKey";W.mousedown=(r,e)=>{let t=e;r.input.shiftKey=t.shiftKey;let n=Nr(r),i=Date.now(),s="singleClick";i-r.input.lastClick.time<500&&za(t,r.input.lastClick)&&!t[Ys]&&(r.input.lastClick.type=="singleClick"?s="doubleClick":r.input.lastClick.type=="doubleClick"&&(s="tripleClick")),r.input.lastClick={time:i,x:t.clientX,y:t.clientY,type:s};let o=r.posAtCoords(Sn(t));o&&(s=="singleClick"?(r.input.mouseDown&&r.input.mouseDown.done(),r.input.mouseDown=new Ja(r,o,t,!!n)):(s=="doubleClick"?Fa:Va)(r,o.pos,o.inside,t)?t.preventDefault():be(r,"pointer"))};class Ja{constructor(e,t,n,i){this.view=e,this.pos=t,this.event=n,this.flushed=i,this.delayedSelectionSync=!1,this.mightDrag=null,this.startDoc=e.state.doc,this.selectNode=!!n[Ys],this.allowDefault=n.shiftKey;let s,o;if(t.inside>-1)s=e.state.doc.nodeAt(t.inside),o=t.inside;else{let c=e.state.doc.resolve(t.pos);s=c.parent,o=c.depth?c.before():0}const l=i?null:n.target,a=l?e.docView.nearestDesc(l,!0):null;this.target=a&&a.dom.nodeType==1?a.dom:null;let{selection:h}=e.state;(n.button==0&&s.type.spec.draggable&&s.type.spec.selectable!==!1||h instanceof x&&h.from<=o&&h.to>o)&&(this.mightDrag={node:s,pos:o,addAttr:!!(this.target&&!this.target.draggable),setUneditable:!!(this.target&&ee&&!this.target.hasAttribute("contentEditable"))}),this.target&&this.mightDrag&&(this.mightDrag.addAttr||this.mightDrag.setUneditable)&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&(this.target.draggable=!0),this.mightDrag.setUneditable&&setTimeout(()=>{this.view.input.mouseDown==this&&this.target.setAttribute("contentEditable","false")},20),this.view.domObserver.start()),e.root.addEventListener("mouseup",this.up=this.up.bind(this)),e.root.addEventListener("mousemove",this.move=this.move.bind(this)),be(e,"pointer")}done(){this.view.root.removeEventListener("mouseup",this.up),this.view.root.removeEventListener("mousemove",this.move),this.mightDrag&&this.target&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&this.target.removeAttribute("draggable"),this.mightDrag.setUneditable&&this.target.removeAttribute("contentEditable"),this.view.domObserver.start()),this.delayedSelectionSync&&setTimeout(()=>fe(this.view)),this.view.input.mouseDown=null}up(e){if(this.done(),!this.view.dom.contains(e.target))return;let t=this.pos;this.view.state.doc!=this.startDoc&&(t=this.view.posAtCoords(Sn(e))),this.updateAllowDefault(e),this.allowDefault||!t?be(this.view,"pointer"):Ba(this.view,t.pos,t.inside,e,this.selectNode)?e.preventDefault():e.button==0&&(this.flushed||$&&this.mightDrag&&!this.mightDrag.node.isAtom||B&&!this.view.state.selection.visible&&Math.min(Math.abs(t.pos-this.view.state.selection.from),Math.abs(t.pos-this.view.state.selection.to))<=2)?(et(this.view,w.near(this.view.state.doc.resolve(t.pos))),e.preventDefault()):be(this.view,"pointer")}move(e){this.updateAllowDefault(e),be(this.view,"pointer"),e.buttons==0&&this.done()}updateAllowDefault(e){!this.allowDefault&&(Math.abs(this.event.x-e.clientX)>4||Math.abs(this.event.y-e.clientY)>4)&&(this.allowDefault=!0)}}W.touchstart=r=>{r.input.lastTouch=Date.now(),Nr(r),be(r,"pointer")};W.touchmove=r=>{r.input.lastTouch=Date.now(),be(r,"pointer")};W.contextmenu=r=>Nr(r);function js(r,e){return r.composing?!0:$&&Math.abs(e.timeStamp-r.input.compositionEndedAt)<500?(r.input.compositionEndedAt=-2e8,!0):!1}const $a=he?5e3:-1;q.compositionstart=q.compositionupdate=r=>{if(!r.composing){r.domObserver.flush();let{state:e}=r,t=e.selection.$to;if(e.selection instanceof M&&(e.storedMarks||!t.textOffset&&t.parentOffset&&t.nodeBefore.marks.some(n=>n.type.spec.inclusive===!1)))r.markCursor=r.state.storedMarks||t.marks(),an(r,!0),r.markCursor=null;else if(an(r,!e.selection.empty),ee&&e.selection.empty&&t.parentOffset&&!t.textOffset&&t.nodeBefore.marks.length){let n=r.domSelectionRange();for(let i=n.focusNode,s=n.focusOffset;i&&i.nodeType==1&&s!=0;){let o=s<0?i.lastChild:i.childNodes[s-1];if(!o)break;if(o.nodeType==3){let l=r.domSelection();l&&l.collapse(o,o.nodeValue.length);break}else i=o,s=-1}}r.input.composing=!0}Xs(r,$a)};q.compositionend=(r,e)=>{r.composing&&(r.input.composing=!1,r.input.compositionEndedAt=e.timeStamp,r.input.compositionPendingChanges=r.domObserver.pendingRecords().length?r.input.compositionID:0,r.input.compositionNode=null,r.input.compositionPendingChanges&&Promise.resolve().then(()=>r.domObserver.flush()),r.input.compositionID++,Xs(r,20))};function Xs(r,e){clearTimeout(r.input.composingTimeout),e>-1&&(r.input.composingTimeout=setTimeout(()=>an(r),e))}function Zs(r){for(r.composing&&(r.input.composing=!1,r.input.compositionEndedAt=qa());r.input.compositionNodes.length>0;)r.input.compositionNodes.pop().markParentsDirty()}function Wa(r){let e=r.domSelectionRange();if(!e.focusNode)return null;let t=vl(e.focusNode,e.focusOffset),n=Pl(e.focusNode,e.focusOffset);if(t&&n&&t!=n){let i=n.pmViewDesc,s=r.domObserver.lastChangedTextNode;if(t==s||n==s)return s;if(!i||!i.isText(n.nodeValue))return n;if(r.input.compositionNode==n){let o=t.pmViewDesc;if(!(!o||!o.isText(t.nodeValue)))return n}}return t||n}function qa(){let r=document.createEvent("Event");return r.initEvent("event",!0,!0),r.timeStamp}function an(r,e=!1){if(!(he&&r.domObserver.flushingSoon>=0)){if(r.domObserver.forceFlush(),Zs(r),e||r.docView&&r.docView.dirty){let t=xr(r);return t&&!t.eq(r.state.selection)?r.dispatch(r.state.tr.setSelection(t)):(r.markCursor||e)&&!r.state.selection.empty?r.dispatch(r.state.tr.deleteSelection()):r.updateState(r.state),!0}return!1}}function Ka(r,e){if(!r.dom.parentNode)return;let t=r.dom.parentNode.appendChild(document.createElement("div"));t.appendChild(e),t.style.cssText="position: fixed; left: -10000px; top: 10px";let n=getSelection(),i=document.createRange();i.selectNodeContents(e),r.dom.blur(),n.removeAllRanges(),n.addRange(i),setTimeout(()=>{t.parentNode&&t.parentNode.removeChild(t),r.focus()},50)}const At=H&&we<15||it&&Jl<604;W.copy=q.cut=(r,e)=>{let t=e,n=r.state.selection,i=t.type=="cut";if(n.empty)return;let s=At?null:t.clipboardData,o=n.content(),{dom:l,text:a}=$s(r,o);s?(t.preventDefault(),s.clearData(),s.setData("text/html",l.innerHTML),s.setData("text/plain",a)):Ka(r,l),i&&r.dispatch(r.state.tr.deleteSelection().scrollIntoView().setMeta("uiEvent","cut"))};function Ha(r){return r.openStart==0&&r.openEnd==0&&r.content.childCount==1?r.content.firstChild:null}function Ua(r,e){if(!r.dom.parentNode)return;let t=r.input.shiftKey||r.state.selection.$from.parent.type.spec.code,n=r.dom.parentNode.appendChild(document.createElement(t?"textarea":"div"));t||(n.contentEditable="true"),n.style.cssText="position: fixed; left: -10000px; top: 10px",n.focus();let i=r.input.shiftKey&&r.input.lastKeyCode!=45;setTimeout(()=>{r.focus(),n.parentNode&&n.parentNode.removeChild(n),t?Rt(r,n.value,null,i,e):Rt(r,n.textContent,n.innerHTML,i,e)},50)}function Rt(r,e,t,n,i){let s=Ws(r,e,t,n,r.state.selection.$from);if(r.someProp("handlePaste",a=>a(r,i,s||S.empty)))return!0;if(!s)return!1;let o=Ha(s),l=o?r.state.tr.replaceSelectionWith(o,n):r.state.tr.replaceSelection(s);return r.dispatch(l.scrollIntoView().setMeta("paste",!0).setMeta("uiEvent","paste")),!0}function Qs(r){let e=r.getData("text/plain")||r.getData("Text");if(e)return e;let t=r.getData("text/uri-list");return t?t.replace(/\r?\n/g," "):""}q.paste=(r,e)=>{let t=e;if(r.composing&&!he)return;let n=At?null:t.clipboardData,i=r.input.shiftKey&&r.input.lastKeyCode!=45;n&&Rt(r,Qs(n),n.getData("text/html"),i,t)?t.preventDefault():Ua(r,t)};class _s{constructor(e,t,n){this.slice=e,this.move=t,this.node=n}}const eo=Y?"altKey":"ctrlKey";W.dragstart=(r,e)=>{let t=e,n=r.input.mouseDown;if(n&&n.done(),!t.dataTransfer)return;let i=r.state.selection,s=i.empty?null:r.posAtCoords(Sn(t)),o;if(!(s&&s.pos>=i.from&&s.pos<=(i instanceof x?i.to-1:i.to))){if(n&&n.mightDrag)o=x.create(r.state.doc,n.mightDrag.pos);else if(t.target&&t.target.nodeType==1){let f=r.docView.nearestDesc(t.target,!0);f&&f.node.type.spec.draggable&&f!=r.docView&&(o=x.create(r.state.doc,f.posBefore))}}let l=(o||r.state.selection).content(),{dom:a,text:h,slice:c}=$s(r,l);(!t.dataTransfer.files.length||!B||Os>120)&&t.dataTransfer.clearData(),t.dataTransfer.setData(At?"Text":"text/html",a.innerHTML),t.dataTransfer.effectAllowed="copyMove",At||t.dataTransfer.setData("text/plain",h),r.dragging=new _s(c,!t[eo],o)};W.dragend=r=>{let e=r.dragging;window.setTimeout(()=>{r.dragging==e&&(r.dragging=null)},50)};q.dragover=q.dragenter=(r,e)=>e.preventDefault();q.drop=(r,e)=>{let t=e,n=r.dragging;if(r.dragging=null,!t.dataTransfer)return;let i=r.posAtCoords(Sn(t));if(!i)return;let s=r.state.doc.resolve(i.pos),o=n&&n.slice;o?r.someProp("transformPasted",u=>{o=u(o,r)}):o=Ws(r,Qs(t.dataTransfer),At?null:t.dataTransfer.getData("text/html"),!1,s);let l=!!(n&&!t[eo]);if(r.someProp("handleDrop",u=>u(r,t,o||S.empty,l))){t.preventDefault();return}if(!o)return;t.preventDefault();let a=o?kl(r.state.doc,s.pos,o):s.pos;a==null&&(a=s.pos);let h=r.state.tr;if(l){let{node:u}=n;u?u.replace(h):h.deleteSelection()}let c=h.mapping.map(a),f=o.openStart==0&&o.openEnd==0&&o.content.childCount==1,d=h.doc;if(f?h.replaceRangeWith(c,c,o.content.firstChild):h.replaceRange(c,c,o),h.doc.eq(d))return;let p=h.doc.resolve(c);if(f&&x.isSelectable(o.content.firstChild)&&p.nodeAfter&&p.nodeAfter.sameMarkup(o.content.firstChild))h.setSelection(new x(p));else{let u=h.mapping.map(a);h.mapping.maps[h.mapping.maps.length-1].forEach((m,g,k,T)=>u=T),h.setSelection(br(r,p,h.doc.resolve(u)))}r.focus(),r.dispatch(h.setMeta("uiEvent","drop"))};W.focus=r=>{r.input.lastFocus=Date.now(),r.focused||(r.domObserver.stop(),r.dom.classList.add("ProseMirror-focused"),r.domObserver.start(),r.focused=!0,setTimeout(()=>{r.docView&&r.hasFocus()&&!r.domObserver.currentSelection.eq(r.domSelectionRange())&&fe(r)},20))};W.blur=(r,e)=>{let t=e;r.focused&&(r.domObserver.stop(),r.dom.classList.remove("ProseMirror-focused"),r.domObserver.start(),t.relatedTarget&&r.dom.contains(t.relatedTarget)&&r.domObserver.currentSelection.clear(),r.focused=!1)};W.beforeinput=(r,e)=>{if(B&&he&&e.inputType=="deleteContentBackward"){r.domObserver.flushSoon();let{domChangeCount:n}=r.input;setTimeout(()=>{if(r.input.domChangeCount!=n||(r.dom.blur(),r.focus(),r.someProp("handleKeyDown",s=>s(r,De(8,"Backspace")))))return;let{$cursor:i}=r.state.selection;i&&i.pos>0&&r.dispatch(r.state.tr.delete(i.pos-1,i.pos).scrollIntoView())},50)}};for(let r in q)W[r]=q[r];function It(r,e){if(r==e)return!0;for(let t in r)if(r[t]!==e[t])return!1;for(let t in e)if(!(t in r))return!1;return!0}class hn{constructor(e,t){this.toDOM=e,this.spec=t||Ve,this.side=this.spec.side||0}map(e,t,n,i){let{pos:s,deleted:o}=e.mapResult(t.from+i,this.side<0?-1:1);return o?null:new Q(s-n,s-n,this)}valid(){return!0}eq(e){return this==e||e instanceof hn&&(this.spec.key&&this.spec.key==e.spec.key||this.toDOM==e.toDOM&&It(this.spec,e.spec))}destroy(e){this.spec.destroy&&this.spec.destroy(e)}}class Ne{constructor(e,t){this.attrs=e,this.spec=t||Ve}map(e,t,n,i){let s=e.map(t.from+i,this.spec.inclusiveStart?-1:1)-n,o=e.map(t.to+i,this.spec.inclusiveEnd?1:-1)-n;return s>=o?null:new Q(s,o,this)}valid(e,t){return t.from=e&&(!s||s(l.spec))&&n.push(l.copy(l.from+i,l.to+i))}for(let o=0;oe){let l=this.children[o]+1;this.children[o+2].findInner(e-l,t-l,n,i+l,s)}}map(e,t,n){return this==P||e.maps.length==0?this:this.mapInner(e,t,0,0,n||Ve)}mapInner(e,t,n,i,s){let o;for(let l=0;l{let h=a+n,c;if(c=no(t,l,h)){for(i||(i=this.children.slice());sl&&f.to=e){this.children[l]==e&&(n=this.children[l+2]);break}let s=e+1,o=s+t.content.size;for(let l=0;ls&&a.type instanceof Ne){let h=Math.max(s,a.from)-s,c=Math.min(o,a.to)-s;hi.map(e,t,Ve));return xe.from(n)}forChild(e,t){if(t.isLeaf)return D.empty;let n=[];for(let i=0;it instanceof D)?e:e.reduce((t,n)=>t.concat(n instanceof D?n:n.members),[]))}}forEachSet(e){for(let t=0;t{let g=m-u-(p-d);for(let k=0;kT+c-f)continue;let K=l[k]+c-f;p>=K?l[k+1]=d<=K?-2:-1:d>=c&&g&&(l[k]+=g,l[k+1]+=g)}f+=g}),c=t.maps[h].map(c,-1)}let a=!1;for(let h=0;h=n.content.size){a=!0;continue}let d=t.map(r[h+1]+s,-1),p=d-i,{index:u,offset:m}=n.content.findIndex(f),g=n.maybeChild(u);if(g&&m==f&&m+g.nodeSize==p){let k=l[h+2].mapInner(t,g,c+1,r[h]+s+1,o);k!=P?(l[h]=f,l[h+1]=p,l[h+2]=k):(l[h+1]=-2,a=!0)}else a=!0}if(a){let h=Ya(l,r,e,t,i,s,o),c=cn(h,n,0,o);e=c.local;for(let f=0;ft&&o.to{let h=no(r,l,a+t);if(h){s=!0;let c=cn(h,l,t+a+1,n);c!=P&&i.push(a,a+l.nodeSize,c)}});let o=to(s?ro(r):r,-t).sort(Le);for(let l=0;l0;)e++;r.splice(e,0,t)}function zn(r){let e=[];return r.someProp("decorations",t=>{let n=t(r.state);n&&n!=P&&e.push(n)}),r.cursorWrapper&&e.push(D.create(r.state.doc,[r.cursorWrapper.deco])),xe.from(e)}const ja={childList:!0,characterData:!0,characterDataOldValue:!0,attributes:!0,attributeOldValue:!0,subtree:!0},Xa=H&&we<=11;class Za{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}set(e){this.anchorNode=e.anchorNode,this.anchorOffset=e.anchorOffset,this.focusNode=e.focusNode,this.focusOffset=e.focusOffset}clear(){this.anchorNode=this.focusNode=null}eq(e){return e.anchorNode==this.anchorNode&&e.anchorOffset==this.anchorOffset&&e.focusNode==this.focusNode&&e.focusOffset==this.focusOffset}}class Qa{constructor(e,t){this.view=e,this.handleDOMChange=t,this.queue=[],this.flushingSoon=-1,this.observer=null,this.currentSelection=new Za,this.onCharData=null,this.suppressingSelectionUpdates=!1,this.lastChangedTextNode=null,this.observer=window.MutationObserver&&new window.MutationObserver(n=>{for(let i=0;ii.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),Xa&&(this.onCharData=n=>{this.queue.push({target:n.target,type:"characterData",oldValue:n.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this)}flushSoon(){this.flushingSoon<0&&(this.flushingSoon=window.setTimeout(()=>{this.flushingSoon=-1,this.flush()},20))}forceFlush(){this.flushingSoon>-1&&(window.clearTimeout(this.flushingSoon),this.flushingSoon=-1,this.flush())}start(){this.observer&&(this.observer.takeRecords(),this.observer.observe(this.view.dom,ja)),this.onCharData&&this.view.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.connectSelection()}stop(){if(this.observer){let e=this.observer.takeRecords();if(e.length){for(let t=0;tthis.flush(),20)}this.observer.disconnect()}this.onCharData&&this.view.dom.removeEventListener("DOMCharacterDataModified",this.onCharData),this.disconnectSelection()}connectSelection(){this.view.dom.ownerDocument.addEventListener("selectionchange",this.onSelectionChange)}disconnectSelection(){this.view.dom.ownerDocument.removeEventListener("selectionchange",this.onSelectionChange)}suppressSelectionUpdates(){this.suppressingSelectionUpdates=!0,setTimeout(()=>this.suppressingSelectionUpdates=!1,50)}onSelectionChange(){if(hi(this.view)){if(this.suppressingSelectionUpdates)return fe(this.view);if(H&&we<=11&&!this.view.state.selection.empty){let e=this.view.domSelectionRange();if(e.focusNode&&qe(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset))return this.flushSoon()}this.flush()}}setCurSelection(){this.currentSelection.set(this.view.domSelectionRange())}ignoreSelectionChange(e){if(!e.focusNode)return!0;let t=new Set,n;for(let s=e.focusNode;s;s=Dt(s))t.add(s);for(let s=e.anchorNode;s;s=Dt(s))if(t.has(s)){n=s;break}let i=n&&this.view.docView.nearestDesc(n);if(i&&i.ignoreMutation({type:"selection",target:n.nodeType==3?n.parentNode:n}))return this.setCurSelection(),!0}pendingRecords(){if(this.observer)for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}flush(){let{view:e}=this;if(!e.docView||this.flushingSoon>-1)return;let t=this.pendingRecords();t.length&&(this.queue=[]);let n=e.domSelectionRange(),i=!this.suppressingSelectionUpdates&&!this.currentSelection.eq(n)&&hi(e)&&!this.ignoreSelectionChange(n),s=-1,o=-1,l=!1,a=[];if(e.editable)for(let c=0;cf.nodeName=="BR");if(c.length==2){let[f,d]=c;f.parentNode&&f.parentNode.parentNode==d.parentNode?d.remove():f.remove()}else{let{focusNode:f}=this.currentSelection;for(let d of c){let p=d.parentNode;p&&p.nodeName=="LI"&&(!f||th(e,f)!=p)&&d.remove()}}}let h=null;s<0&&i&&e.input.lastFocus>Date.now()-200&&Math.max(e.input.lastTouch,e.input.lastClick.time)-1||i)&&(s>-1&&(e.docView.markDirty(s,o),_a(e)),this.handleDOMChange(s,o,l,a),e.docView&&e.docView.dirty?e.updateState(e.state):this.currentSelection.eq(n)||fe(e),this.currentSelection.set(n))}registerMutation(e,t){if(t.indexOf(e.target)>-1)return null;let n=this.view.docView.nearestDesc(e.target);if(e.type=="attributes"&&(n==this.view.docView||e.attributeName=="contenteditable"||e.attributeName=="style"&&!e.oldValue&&!e.target.getAttribute("style"))||!n||n.ignoreMutation(e))return null;if(e.type=="childList"){for(let c=0;ci;g--){let k=n.childNodes[g-1],T=k.pmViewDesc;if(k.nodeName=="BR"&&!T){s=g;break}if(!T||T.size)break}let f=r.state.doc,d=r.someProp("domParser")||Tt.fromSchema(r.state.schema),p=f.resolve(o),u=null,m=d.parse(n,{topNode:p.parent,topMatch:p.parent.contentMatchAt(p.index()),topOpen:!0,from:i,to:s,preserveWhitespace:p.parent.type.whitespace=="pre"?"full":!0,findPositions:h,ruleFromNode:rh,context:p});if(h&&h[0].pos!=null){let g=h[0].pos,k=h[1]&&h[1].pos;k==null&&(k=g),u={anchor:g+o,head:k+o}}return{doc:m,sel:u,from:o,to:l}}function rh(r){let e=r.pmViewDesc;if(e)return e.parseRule();if(r.nodeName=="BR"&&r.parentNode){if($&&/^(ul|ol)$/i.test(r.parentNode.nodeName)){let t=document.createElement("div");return t.appendChild(document.createElement("li")),{skip:t}}else if(r.parentNode.lastChild==r||$&&/^(tr|table)$/i.test(r.parentNode.nodeName))return{ignore:!0}}else if(r.nodeName=="IMG"&&r.getAttribute("mark-placeholder"))return{ignore:!0};return null}const ih=/^(a|abbr|acronym|b|bd[io]|big|br|button|cite|code|data(list)?|del|dfn|em|i|ins|kbd|label|map|mark|meter|output|q|ruby|s|samp|small|span|strong|su[bp]|time|u|tt|var)$/i;function sh(r,e,t,n,i){let s=r.input.compositionPendingChanges||(r.composing?r.input.compositionID:0);if(r.input.compositionPendingChanges=0,e<0){let b=r.input.lastSelectionTime>Date.now()-50?r.input.lastSelectionOrigin:null,ge=xr(r,b);if(ge&&!r.state.selection.eq(ge)){if(B&&he&&r.input.lastKeyCode===13&&Date.now()-100Mo(r,De(13,"Enter"))))return;let Jt=r.state.tr.setSelection(ge);b=="pointer"?Jt.setMeta("pointer",!0):b=="key"&&Jt.scrollIntoView(),s&&Jt.setMeta("composition",s),r.dispatch(Jt)}return}let o=r.state.doc.resolve(e),l=o.sharedDepth(t);e=o.before(l+1),t=r.state.doc.resolve(t).after(l+1);let a=r.state.selection,h=nh(r,e,t),c=r.state.doc,f=c.slice(h.from,h.to),d,p;r.input.lastKeyCode===8&&Date.now()-100Date.now()-225||he)&&i.some(b=>b.nodeType==1&&!ih.test(b.nodeName))&&(!u||u.endA>=u.endB)&&r.someProp("handleKeyDown",b=>b(r,De(13,"Enter")))){r.input.lastIOSEnter=0;return}if(!u)if(n&&a instanceof M&&!a.empty&&a.$head.sameParent(a.$anchor)&&!r.composing&&!(h.sel&&h.sel.anchor!=h.sel.head))u={start:a.from,endA:a.to,endB:a.to};else{if(h.sel){let b=bi(r,r.state.doc,h.sel);if(b&&!b.eq(r.state.selection)){let ge=r.state.tr.setSelection(b);s&&ge.setMeta("composition",s),r.dispatch(ge)}}return}r.state.selection.fromr.state.selection.from&&u.start<=r.state.selection.from+2&&r.state.selection.from>=h.from?u.start=r.state.selection.from:u.endA=r.state.selection.to-2&&r.state.selection.to<=h.to&&(u.endB+=r.state.selection.to-u.endA,u.endA=r.state.selection.to)),H&&we<=11&&u.endB==u.start+1&&u.endA==u.start&&u.start>h.from&&h.doc.textBetween(u.start-h.from-1,u.start-h.from+1)=="  "&&(u.start--,u.endA--,u.endB--);let m=h.doc.resolveNoCache(u.start-h.from),g=h.doc.resolveNoCache(u.endB-h.from),k=c.resolve(u.start),T=m.sameParent(g)&&m.parent.inlineContent&&k.end()>=u.endA,K;if((it&&r.input.lastIOSEnter>Date.now()-225&&(!T||i.some(b=>b.nodeName=="DIV"||b.nodeName=="P"))||!T&&m.posb(r,De(13,"Enter")))){r.input.lastIOSEnter=0;return}if(r.state.selection.anchor>u.start&&lh(c,u.start,u.endA,m,g)&&r.someProp("handleKeyDown",b=>b(r,De(8,"Backspace")))){he&&B&&r.domObserver.suppressSelectionUpdates();return}B&&u.endB==u.start&&(r.input.lastChromeDelete=Date.now()),he&&!T&&m.start()!=g.start()&&g.parentOffset==0&&m.depth==g.depth&&h.sel&&h.sel.anchor==h.sel.head&&h.sel.head==u.endA&&(u.endB-=2,g=h.doc.resolveNoCache(u.endB-h.from),setTimeout(()=>{r.someProp("handleKeyDown",function(b){return b(r,De(13,"Enter"))})},20));let me=u.start,Te=u.endA,U,bn,Lt;if(T){if(m.pos==g.pos)H&&we<=11&&m.parentOffset==0&&(r.domObserver.suppressSelectionUpdates(),setTimeout(()=>fe(r),20)),U=r.state.tr.delete(me,Te),bn=c.resolve(u.start).marksAcross(c.resolve(u.endA));else if(u.endA==u.endB&&(Lt=oh(m.parent.content.cut(m.parentOffset,g.parentOffset),k.parent.content.cut(k.parentOffset,u.endA-k.start()))))U=r.state.tr,Lt.type=="add"?U.addMark(me,Te,Lt.mark):U.removeMark(me,Te,Lt.mark);else if(m.parent.child(m.index()).isText&&m.index()==g.index()-(g.textOffset?0:1)){let b=m.parent.textBetween(m.parentOffset,g.parentOffset);if(r.someProp("handleTextInput",ge=>ge(r,me,Te,b)))return;U=r.state.tr.insertText(b,me,Te)}}if(U||(U=r.state.tr.replace(me,Te,h.doc.slice(u.start-h.from,u.endB-h.from))),h.sel){let b=bi(r,U.doc,h.sel);b&&!(B&&r.composing&&b.empty&&(u.start!=u.endB||r.input.lastChromeDeletee.content.size?null:br(r,e.resolve(t.anchor),e.resolve(t.head))}function oh(r,e){let t=r.firstChild.marks,n=e.firstChild.marks,i=t,s=n,o,l,a;for(let c=0;cc.mark(l.addToSet(c.marks));else if(i.length==0&&s.length==1)l=s[0],o="remove",a=c=>c.mark(l.removeFromSet(c.marks));else return null;let h=[];for(let c=0;ct||vn(o,!0,!1)0&&(e||r.indexAfter(n)==r.node(n).childCount);)n--,i++,e=!1;if(t){let s=r.node(n).maybeChild(r.indexAfter(n));for(;s&&!s.isLeaf;)s=s.firstChild,i++}return i}function ah(r,e,t,n,i){let s=r.findDiffStart(e,t);if(s==null)return null;let{a:o,b:l}=r.findDiffEnd(e,t+r.size,t+e.size);if(i=="end"){let a=Math.max(0,s-Math.min(o,l));n-=o+a-s}if(o=o?s-n:0;s-=a,s&&s=l?s-n:0;s-=a,s&&s=56320&&e<=57343&&t>=55296&&t<=56319}class hh{constructor(e,t){this._root=null,this.focused=!1,this.trackWrites=null,this.mounted=!1,this.markCursor=null,this.cursorWrapper=null,this.lastSelectedViewDesc=void 0,this.input=new Ea,this.prevDirectPlugins=[],this.pluginViews=[],this.requiresGeckoHackNode=!1,this.dragging=null,this._props=t,this.state=t.state,this.directPlugins=t.plugins||[],this.directPlugins.forEach(Ti),this.dispatch=this.dispatch.bind(this),this.dom=e&&e.mount||document.createElement("div"),e&&(e.appendChild?e.appendChild(this.dom):typeof e=="function"?e(this.dom):e.mount&&(this.mounted=!0)),this.editable=Oi(this),Ni(this),this.nodeViews=Mi(this),this.docView=ri(this.state.doc,Ci(this),zn(this),this.dom,this),this.domObserver=new Qa(this,(n,i,s,o)=>sh(this,n,i,s,o)),this.domObserver.start(),Da(this),this.updatePluginViews()}get composing(){return this.input.composing}get props(){if(this._props.state!=this.state){let e=this._props;this._props={};for(let t in e)this._props[t]=e[t];this._props.state=this.state}return this._props}update(e){e.handleDOMEvents!=this._props.handleDOMEvents&&or(this);let t=this._props;this._props=e,e.plugins&&(e.plugins.forEach(Ti),this.directPlugins=e.plugins),this.updateStateInner(e.state,t)}setProps(e){let t={};for(let n in this._props)t[n]=this._props[n];t.state=this.state;for(let n in e)t[n]=e[n];this.update(t)}updateState(e){this.updateStateInner(e,this._props)}updateStateInner(e,t){var n;let i=this.state,s=!1,o=!1;e.storedMarks&&this.composing&&(Zs(this),o=!0),this.state=e;let l=i.plugins!=e.plugins||this._props.plugins!=t.plugins;if(l||this._props.plugins!=t.plugins||this._props.nodeViews!=t.nodeViews){let p=Mi(this);fh(p,this.nodeViews)&&(this.nodeViews=p,s=!0)}(l||t.handleDOMEvents!=this._props.handleDOMEvents)&&or(this),this.editable=Oi(this),Ni(this);let a=zn(this),h=Ci(this),c=i.plugins!=e.plugins&&!i.doc.eq(e.doc)?"reset":e.scrollToSelection>i.scrollToSelection?"to selection":"preserve",f=s||!this.docView.matchesNode(e.doc,h,a);(f||!e.selection.eq(i.selection))&&(o=!0);let d=c=="preserve"&&o&&this.dom.style.overflowAnchor==null&&ql(this);if(o){this.domObserver.stop();let p=f&&(H||B)&&!this.composing&&!i.selection.empty&&!e.selection.empty&&ch(i.selection,e.selection);if(f){let u=B?this.trackWrites=this.domSelectionRange().focusNode:null;this.composing&&(this.input.compositionNode=Wa(this)),(s||!this.docView.update(e.doc,h,a,this))&&(this.docView.updateOuterDeco(h),this.docView.destroy(),this.docView=ri(e.doc,h,a,this.dom,this)),u&&!this.trackWrites&&(p=!0)}p||!(this.input.mouseDown&&this.domObserver.currentSelection.eq(this.domSelectionRange())&&da(this))?fe(this,p):(Vs(this,e.selection),this.domObserver.setCurSelection()),this.domObserver.start()}this.updatePluginViews(i),!((n=this.dragging)===null||n===void 0)&&n.node&&!i.doc.eq(e.doc)&&this.updateDraggedNode(this.dragging,i),c=="reset"?this.dom.scrollTop=0:c=="to selection"?this.scrollToSelection():d&&Kl(d)}scrollToSelection(){let e=this.domSelectionRange().focusNode;if(!this.someProp("handleScrollToSelection",t=>t(this)))if(this.state.selection instanceof x){let t=this.docView.domAfterPos(this.state.selection.from);t.nodeType==1&&Zr(this,t.getBoundingClientRect(),e)}else Zr(this,this.coordsAtPos(this.state.selection.head,1),e)}destroyPluginViews(){let e;for(;e=this.pluginViews.pop();)e.destroy&&e.destroy()}updatePluginViews(e){if(!e||e.plugins!=this.state.plugins||this.directPlugins!=this.prevDirectPlugins){this.prevDirectPlugins=this.directPlugins,this.destroyPluginViews();for(let t=0;t0&&this.state.doc.nodeAt(s))==n.node&&(i=s)}this.dragging=new _s(e.slice,e.move,i<0?void 0:x.create(this.state.doc,i))}someProp(e,t){let n=this._props&&this._props[e],i;if(n!=null&&(i=t?t(n):n))return i;for(let o=0;ot.ownerDocument.getSelection()),this._root=t}return e||document}updateRoot(){this._root=null}posAtCoords(e){return Xl(this,e)}coordsAtPos(e,t=1){return As(this,e,t)}domAtPos(e,t=0){return this.docView.domFromPos(e,t)}nodeDOM(e){let t=this.docView.descAt(e);return t?t.nodeDOM:null}posAtDOM(e,t,n=-1){let i=this.docView.posFromDOM(e,t,n);if(i==null)throw new RangeError("DOM position not inside the editor");return i}endOfTextblock(e,t){return ta(this,t||this.state,e)}pasteHTML(e,t){return Rt(this,"",e,!1,t||new ClipboardEvent("paste"))}pasteText(e,t){return Rt(this,e,null,!0,t||new ClipboardEvent("paste"))}destroy(){this.docView&&(Aa(this),this.destroyPluginViews(),this.mounted?(this.docView.update(this.state.doc,[],zn(this),this),this.dom.textContent=""):this.dom.parentNode&&this.dom.parentNode.removeChild(this.dom),this.docView.destroy(),this.docView=null,Il())}get isDestroyed(){return this.docView==null}dispatchEvent(e){return Ia(this,e)}dispatch(e){let t=this._props.dispatchTransaction;t?t.call(this,e):this.updateState(this.state.apply(e))}domSelectionRange(){let e=this.domSelection();return e?$&&this.root.nodeType===11&&Fl(this.dom.ownerDocument)==this.dom&&eh(this,e)||e:{focusNode:null,focusOffset:0,anchorNode:null,anchorOffset:0}}domSelection(){return this.root.getSelection()}}function Ci(r){let e=Object.create(null);return e.class="ProseMirror",e.contenteditable=String(r.editable),r.someProp("attributes",t=>{if(typeof t=="function"&&(t=t(r.state)),t)for(let n in t)n=="class"?e.class+=" "+t[n]:n=="style"?e.style=(e.style?e.style+";":"")+t[n]:!e[n]&&n!="contenteditable"&&n!="nodeName"&&(e[n]=String(t[n]))}),e.translate||(e.translate="no"),[Q.node(0,r.state.doc.content.size,e)]}function Ni(r){if(r.markCursor){let e=document.createElement("img");e.className="ProseMirror-separator",e.setAttribute("mark-placeholder","true"),e.setAttribute("alt",""),r.cursorWrapper={dom:e,deco:Q.widget(r.state.selection.from,e,{raw:!0,marks:r.markCursor})}}else r.cursorWrapper=null}function Oi(r){return!r.someProp("editable",e=>e(r.state)===!1)}function ch(r,e){let t=Math.min(r.$anchor.sharedDepth(r.head),e.$anchor.sharedDepth(e.head));return r.$anchor.start(t)!=e.$anchor.start(t)}function Mi(r){let e=Object.create(null);function t(n){for(let i in n)Object.prototype.hasOwnProperty.call(e,i)||(e[i]=n[i])}return r.someProp("nodeViews",t),r.someProp("markViews",t),e}function fh(r,e){let t=0,n=0;for(let i in r){if(r[i]!=e[i])return!0;t++}for(let i in e)n++;return t!=n}function Ti(r){if(r.spec.state||r.spec.filterTransaction||r.spec.appendTransaction)throw new RangeError("Plugins passed directly to the view must not have a state component")}var Oe={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},fn={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},uh=typeof navigator<"u"&&/Mac/.test(navigator.platform),dh=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var v=0;v<10;v++)Oe[48+v]=Oe[96+v]=String(v);for(var v=1;v<=24;v++)Oe[v+111]="F"+v;for(var v=65;v<=90;v++)Oe[v]=String.fromCharCode(v+32),fn[v]=String.fromCharCode(v);for(var Pn in Oe)fn.hasOwnProperty(Pn)||(fn[Pn]=Oe[Pn]);function ph(r){var e=uh&&r.metaKey&&r.shiftKey&&!r.ctrlKey&&!r.altKey||dh&&r.shiftKey&&r.key&&r.key.length==1||r.key=="Unidentified",t=!e&&r.key||(r.shiftKey?fn:Oe)[r.keyCode]||r.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function io(r,e,t){for(let n=0;;n++){if(n==r.childCount||n==e.childCount)return r.childCount==e.childCount?null:t;let i=r.child(n),s=e.child(n);if(i==s){t+=i.nodeSize;continue}if(!i.sameMarkup(s))return t;if(i.isText&&i.text!=s.text){for(let o=0;i.text[o]==s.text[o];o++)t++;return t}if(i.content.size||s.content.size){let o=io(i.content,s.content,t+1);if(o!=null)return o}t+=i.nodeSize}}function so(r,e,t,n){for(let i=r.childCount,s=e.childCount;;){if(i==0||s==0)return i==s?null:{a:t,b:n};let o=r.child(--i),l=e.child(--s),a=o.nodeSize;if(o==l){t-=a,n-=a;continue}if(!o.sameMarkup(l))return{a:t,b:n};if(o.isText&&o.text!=l.text){let h=0,c=Math.min(o.text.length,l.text.length);for(;he&&n(a,i+l,s||null,o)!==!1&&a.content.size){let c=l+1;a.nodesBetween(Math.max(0,e-c),Math.min(a.content.size,t-c),n,i+c)}l=h}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,n,i){let s="",o=!0;return this.nodesBetween(e,t,(l,a)=>{let h=l.isText?l.text.slice(Math.max(e,a)-a,t-a):l.isLeaf?i?typeof i=="function"?i(l):i:l.type.spec.leafText?l.type.spec.leafText(l):"":"";l.isBlock&&(l.isLeaf&&h||l.isTextblock)&&n&&(o?o=!1:s+=n),s+=h},0),s}append(e){if(!e.size)return this;if(!this.size)return e;let t=this.lastChild,n=e.firstChild,i=this.content.slice(),s=0;for(t.isText&&t.sameMarkup(n)&&(i[i.length-1]=t.withText(t.text+n.text),s=1);se)for(let s=0,o=0;oe&&((ot)&&(l.isText?l=l.cut(Math.max(0,e-o),Math.min(l.text.length,t-o)):l=l.cut(Math.max(0,e-o-1),Math.min(l.content.size,t-o-1))),n.push(l),i+=l.nodeSize),o=a}return new O(n,i)}cutByIndex(e,t){return e==t?O.empty:e==0&&t==this.content.length?this:new O(this.content.slice(e,t))}replaceChild(e,t){let n=this.content[e];if(n==t)return this;let i=this.content.slice(),s=this.size+t.nodeSize-n.nodeSize;return i[e]=t,new O(i,s)}addToStart(e){return new O([e].concat(this.content),this.size+e.nodeSize)}addToEnd(e){return new O(this.content.concat(e),this.size+e.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;tthis.size||e<0)throw new RangeError(`Position ${e} outside of fragment (${this})`);for(let n=0,i=0;;n++){let s=this.child(n),o=i+s.nodeSize;if(o>=e)return o==e||t>0?Kt(n+1,o):Kt(n,i);i=o}}toString(){return"<"+this.toStringInner()+">"}toStringInner(){return this.content.join(", ")}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(e,t){if(!t)return O.empty;if(!Array.isArray(t))throw new RangeError("Invalid input for Fragment.fromJSON");return new O(t.map(e.nodeFromJSON))}static fromArray(e){if(!e.length)return O.empty;let t,n=0;for(let i=0;i0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(e,t){if(!t)return N.empty;let n=t.openStart||0,i=t.openEnd||0;if(typeof n!="number"||typeof i!="number")throw new RangeError("Invalid input for Slice.fromJSON");return new N(O.fromJSON(e,t.content),n,i)}static maxOpen(e,t=!0){let n=0,i=0;for(let s=e.firstChild;s&&!s.isLeaf&&(t||!s.type.spec.isolating);s=s.firstChild)n++;for(let s=e.lastChild;s&&!s.isLeaf&&(t||!s.type.spec.isolating);s=s.lastChild)i++;return new N(e,n,i)}}N.empty=new N(O.empty,0,0);function oo(r,e,t){let{index:n,offset:i}=r.findIndex(e),s=r.maybeChild(n),{index:o,offset:l}=r.findIndex(t);if(i==e||s.isText){if(l!=t&&!r.child(o).isText)throw new RangeError("Removing non-flat range");return r.cut(0,e).append(r.cut(t))}if(n!=o)throw new RangeError("Removing non-flat range");return r.replaceChild(n,s.copy(oo(s.content,e-i-1,t-i-1)))}function lo(r,e,t,n){let{index:i,offset:s}=r.findIndex(e),o=r.maybeChild(i);if(s==e||o.isText)return r.cut(0,e).append(t).append(r.cut(e));let l=lo(o.content,e-s-1,t);return l&&r.replaceChild(i,o.copy(l))}const ao=65535,ho=Math.pow(2,16);function gh(r,e){return r+e*ho}function Ei(r){return r&ao}function yh(r){return(r-(r&ao))/ho}const co=1,fo=2,_t=4,uo=8;class Di{constructor(e,t,n){this.pos=e,this.delInfo=t,this.recover=n}get deleted(){return(this.delInfo&uo)>0}get deletedBefore(){return(this.delInfo&(co|_t))>0}get deletedAfter(){return(this.delInfo&(fo|_t))>0}get deletedAcross(){return(this.delInfo&_t)>0}}class G{constructor(e,t=!1){if(this.ranges=e,this.inverted=t,!e.length&&G.empty)return G.empty}recover(e){let t=0,n=Ei(e);if(!this.inverted)for(let i=0;ie)break;let h=this.ranges[l+s],c=this.ranges[l+o],f=a+h;if(e<=f){let d=h?e==a?-1:e==f?1:t:t,p=a+i+(d<0?0:c);if(n)return p;let u=e==(t<0?a:f)?null:gh(l/3,e-a),m=e==a?fo:e==f?co:_t;return(t<0?e!=a:e!=f)&&(m|=uo),new Di(p,m,u)}i+=c-h}return n?e+i:new Di(e+i,0,null)}touches(e,t){let n=0,i=Ei(t),s=this.inverted?2:1,o=this.inverted?1:2;for(let l=0;le)break;let h=this.ranges[l+s],c=a+h;if(e<=c&&l==i*3)return!0;n+=this.ranges[l+o]-h}return!1}forEach(e){let t=this.inverted?2:1,n=this.inverted?1:2;for(let i=0,s=0;i!o.isAtom||!l.type.allowsMarkType(this.mark.type)?o:o.mark(this.mark.addToSet(o.marks)),i),t.openStart,t.openEnd);return E.fromReplace(e,this.from,this.to,s)}invert(){return new ze(this.from,this.to,this.mark)}map(e){let t=e.mapResult(this.from,1),n=e.mapResult(this.to,-1);return t.deleted&&n.deleted||t.pos>=n.pos?null:new Ie(t.pos,n.pos,this.mark)}merge(e){return e instanceof Ie&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new Ie(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"addMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,t){if(typeof t.from!="number"||typeof t.to!="number")throw new RangeError("Invalid input for AddMarkStep.fromJSON");return new Ie(t.from,t.to,e.markFromJSON(t.mark))}}V.jsonID("addMark",Ie);class ze extends V{constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}apply(e){let t=e.slice(this.from,this.to),n=new N(Tr(t.content,i=>i.mark(this.mark.removeFromSet(i.marks)),e),t.openStart,t.openEnd);return E.fromReplace(e,this.from,this.to,n)}invert(){return new Ie(this.from,this.to,this.mark)}map(e){let t=e.mapResult(this.from,1),n=e.mapResult(this.to,-1);return t.deleted&&n.deleted||t.pos>=n.pos?null:new ze(t.pos,n.pos,this.mark)}merge(e){return e instanceof ze&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new ze(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"removeMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,t){if(typeof t.from!="number"||typeof t.to!="number")throw new RangeError("Invalid input for RemoveMarkStep.fromJSON");return new ze(t.from,t.to,e.markFromJSON(t.mark))}}V.jsonID("removeMark",ze);class ve extends V{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return E.fail("No node at mark step's position");let n=t.type.create(t.attrs,null,this.mark.addToSet(t.marks));return E.fromReplace(e,this.pos,this.pos+1,new N(O.from(n),0,t.isLeaf?0:1))}invert(e){let t=e.nodeAt(this.pos);if(t){let n=this.mark.addToSet(t.marks);if(n.length==t.marks.length){for(let i=0;in.pos?null:new tt(t.pos,n.pos,i,s,this.slice,this.insert,this.structure)}toJSON(){let e={stepType:"replaceAround",from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(e,t){if(typeof t.from!="number"||typeof t.to!="number"||typeof t.gapFrom!="number"||typeof t.gapTo!="number"||typeof t.insert!="number")throw new RangeError("Invalid input for ReplaceAroundStep.fromJSON");return new tt(t.from,t.to,t.gapFrom,t.gapTo,N.fromJSON(e,t.slice),t.insert,!!t.structure)}}V.jsonID("replaceAround",tt);function lr(r,e,t){let n=r.resolve(e),i=t-e,s=n.depth;for(;i>0&&s>0&&n.indexAfter(s)==n.node(s).childCount;)s--,i--;if(i>0){let o=n.node(s).maybeChild(n.indexAfter(s));for(;i>0;){if(!o||o.isLeaf)return!0;o=o.firstChild,i--}}return!1}class Ct extends V{constructor(e,t,n){super(),this.pos=e,this.attr=t,this.value=n}apply(e){let t=e.nodeAt(this.pos);if(!t)return E.fail("No node at attribute step's position");let n=Object.create(null);for(let s in t.attrs)n[s]=t.attrs[s];n[this.attr]=this.value;let i=t.type.create(n,null,t.marks);return E.fromReplace(e,this.pos,this.pos+1,new N(O.from(i),0,t.isLeaf?0:1))}getMap(){return G.empty}invert(e){return new Ct(this.pos,this.attr,e.nodeAt(this.pos).attrs[this.attr])}map(e){let t=e.mapResult(this.pos,1);return t.deletedAfter?null:new Ct(t.pos,this.attr,this.value)}toJSON(){return{stepType:"attr",pos:this.pos,attr:this.attr,value:this.value}}static fromJSON(e,t){if(typeof t.pos!="number"||typeof t.attr!="string")throw new RangeError("Invalid input for AttrStep.fromJSON");return new Ct(t.pos,t.attr,t.value)}}V.jsonID("attr",Ct);class un extends V{constructor(e,t){super(),this.attr=e,this.value=t}apply(e){let t=Object.create(null);for(let i in e.attrs)t[i]=e.attrs[i];t[this.attr]=this.value;let n=e.type.create(t,e.content,e.marks);return E.ok(n)}getMap(){return G.empty}invert(e){return new un(this.attr,e.attrs[this.attr])}map(e){return this}toJSON(){return{stepType:"docAttr",attr:this.attr,value:this.value}}static fromJSON(e,t){if(typeof t.attr!="string")throw new RangeError("Invalid input for DocAttrStep.fromJSON");return new un(t.attr,t.value)}}V.jsonID("docAttr",un);let vt=class extends Error{};vt=function r(e){let t=Error.call(this,e);return t.__proto__=r.prototype,t};vt.prototype=Object.create(Error.prototype);vt.prototype.constructor=vt;vt.prototype.name="TransformError";const Vn=Object.create(null);class A{constructor(e,t,n){this.$anchor=e,this.$head=t,this.ranges=n||[new Sh(e.min(t),e.max(t))]}get anchor(){return this.$anchor.pos}get head(){return this.$head.pos}get from(){return this.$from.pos}get to(){return this.$to.pos}get $from(){return this.ranges[0].$from}get $to(){return this.ranges[0].$to}get empty(){let e=this.ranges;for(let t=0;t=0;s--){let o=t<0?Ze(e.node(0),e.node(s),e.before(s+1),e.index(s),t,n):Ze(e.node(0),e.node(s),e.after(s+1),e.index(s)+1,t,n);if(o)return o}return null}static near(e,t=1){return this.findFrom(e,t)||this.findFrom(e,-t)||new ue(e.node(0))}static atStart(e){return Ze(e,e,0,0,1)||new ue(e)}static atEnd(e){return Ze(e,e,e.content.size,e.childCount,-1)||new ue(e)}static fromJSON(e,t){if(!t||!t.type)throw new RangeError("Invalid input for Selection.fromJSON");let n=Vn[t.type];if(!n)throw new RangeError(`No selection type ${t.type} defined`);return n.fromJSON(e,t)}static jsonID(e,t){if(e in Vn)throw new RangeError("Duplicate use of selection JSON ID "+e);return Vn[e]=t,t.prototype.jsonID=e,t}getBookmark(){return ne.between(this.$anchor,this.$head).getBookmark()}}A.prototype.visible=!0;class Sh{constructor(e,t){this.$from=e,this.$to=t}}let Ai=!1;function Ri(r){!Ai&&!r.parent.inlineContent&&(Ai=!0,console.warn("TextSelection endpoint not pointing into a node with inline content ("+r.parent.type.name+")"))}class ne extends A{constructor(e,t=e){Ri(e),Ri(t),super(e,t)}get $cursor(){return this.$anchor.pos==this.$head.pos?this.$head:null}map(e,t){let n=e.resolve(t.map(this.head));if(!n.parent.inlineContent)return A.near(n);let i=e.resolve(t.map(this.anchor));return new ne(i.parent.inlineContent?i:n,n)}replace(e,t=N.empty){if(super.replace(e,t),t==N.empty){let n=this.$from.marksAcross(this.$to);n&&e.ensureMarks(n)}}eq(e){return e instanceof ne&&e.anchor==this.anchor&&e.head==this.head}getBookmark(){return new kn(this.anchor,this.head)}toJSON(){return{type:"text",anchor:this.anchor,head:this.head}}static fromJSON(e,t){if(typeof t.anchor!="number"||typeof t.head!="number")throw new RangeError("Invalid input for TextSelection.fromJSON");return new ne(e.resolve(t.anchor),e.resolve(t.head))}static create(e,t,n=t){let i=e.resolve(t);return new this(i,n==t?i:e.resolve(n))}static between(e,t,n){let i=e.pos-t.pos;if((!n||i)&&(n=i>=0?1:-1),!t.parent.inlineContent){let s=A.findFrom(t,n,!0)||A.findFrom(t,-n,!0);if(s)t=s.$head;else return A.near(t,n)}return e.parent.inlineContent||(i==0?e=t:(e=(A.findFrom(e,-n,!0)||A.findFrom(e,n,!0)).$anchor,e.pos0?0:1);i>0?o=0;o+=i){let l=e.child(o);if(l.isAtom){if(!s&&_.isSelectable(l))return _.create(r,t-(i<0?l.nodeSize:0))}else{let a=Ze(r,l,t+i,i<0?l.childCount:0,i,s);if(a)return a}t+=l.nodeSize*i}return null}function Ii(r,e,t){let n=r.steps.length-1;if(n{o==null&&(o=c)}),r.setSelection(A.near(r.doc.resolve(o),t))}function zi(r,e){return!e||!r?r:r.bind(e)}class Ht{constructor(e,t,n){this.name=e,this.init=zi(t.init,n),this.apply=zi(t.apply,n)}}new Ht("doc",{init(r){return r.doc||r.schema.topNodeType.createAndFill()},apply(r){return r.doc}}),new Ht("selection",{init(r,e){return r.selection||A.atStart(e.doc)},apply(r){return r.selection}}),new Ht("storedMarks",{init(r){return r.storedMarks||null},apply(r,e,t,n){return n.selection.$cursor?r.storedMarks:null}}),new Ht("scrollToSelection",{init(){return 0},apply(r,e){return r.scrolledIntoView?e+1:e}});function po(r,e,t){for(let n in r){let i=r[n];i instanceof Function?i=i.bind(e):n=="handleDOMEvents"&&(i=po(i,e,{})),t[n]=i}return t}class xh{constructor(e){this.spec=e,this.props={},e.props&&po(e.props,this,this.props),this.key=e.key?e.key.key:bh("plugin")}getState(e){return e[this.key]}}const Ln=Object.create(null);function bh(r){return r in Ln?r+"$"+ ++Ln[r]:(Ln[r]=0,r+"$")}const wh=typeof navigator<"u"?/Mac|iP(hone|[oa]d)/.test(navigator.platform):!1;function Ch(r){let e=r.split(/-(?!$)/),t=e[e.length-1];t=="Space"&&(t=" ");let n,i,s,o;for(let l=0;l127)&&(s=Oe[n.keyCode])&&s!=i){let l=e[Jn(s,n)];if(l&&l(t.state,t.dispatch,t))return!0}}return!1}}const mo=(r,e)=>r.selection.empty?!1:(e&&e(r.tr.deleteSelection().scrollIntoView()),!0);function Mh(r,e){let{$cursor:t}=r.selection;return!t||(e?!e.endOfTextblock("backward",r):t.parentOffset>0)?null:t}const Th=(r,e,t)=>{let n=Mh(r,t);if(!n)return!1;let i=go(n);if(!i){let o=n.blockRange(),l=o&&mr(o);return l==null?!1:(e&&e(r.tr.lift(o,l).scrollIntoView()),!0)}let s=i.nodeBefore;if(So(r,i,e,-1))return!0;if(n.parent.content.size==0&&(st(s,"end")||x.isSelectable(s)))for(let o=n.depth;;o--){let l=gr(r.doc,n.before(o),n.after(o),S.empty);if(l&&l.slice.size1)break}return s.isAtom&&i.depth==n.depth-1?(e&&e(r.tr.delete(i.pos-s.nodeSize,i.pos).scrollIntoView()),!0):!1};function st(r,e,t=!1){for(let n=r;n;n=e=="start"?n.firstChild:n.lastChild){if(n.isTextblock)return!0;if(t&&n.childCount!=1)return!1}return!1}const Eh=(r,e,t)=>{let{$head:n,empty:i}=r.selection,s=n;if(!i)return!1;if(n.parent.isTextblock){if(t?!t.endOfTextblock("backward",r):n.parentOffset>0)return!1;s=go(n)}let o=s&&s.nodeBefore;return!o||!x.isSelectable(o)?!1:(e&&e(r.tr.setSelection(x.create(r.doc,s.pos-o.nodeSize)).scrollIntoView()),!0)};function go(r){if(!r.parent.type.spec.isolating)for(let e=r.depth-1;e>=0;e--){if(r.index(e)>0)return r.doc.resolve(r.before(e+1));if(r.node(e).type.spec.isolating)break}return null}function Dh(r,e){let{$cursor:t}=r.selection;return!t||(e?!e.endOfTextblock("forward",r):t.parentOffset{let n=Dh(r,t);if(!n)return!1;let i=yo(n);if(!i)return!1;let s=i.nodeAfter;if(So(r,i,e,1))return!0;if(n.parent.content.size==0&&(st(s,"start")||x.isSelectable(s))){let o=gr(r.doc,n.before(),n.after(),S.empty);if(o&&o.slice.size{let{$head:n,empty:i}=r.selection,s=n;if(!i)return!1;if(n.parent.isTextblock){if(t?!t.endOfTextblock("forward",r):n.parentOffset=0;e--){let t=r.node(e);if(r.index(e)+1{let{$head:t,$anchor:n}=r.selection;return!t.parent.type.spec.code||!t.sameParent(n)?!1:(e&&e(r.tr.insertText(` +`).scrollIntoView()),!0)};function Dr(r){for(let e=0;e{let{$head:t,$anchor:n}=r.selection;if(!t.parent.type.spec.code||!t.sameParent(n))return!1;let i=t.node(-1),s=t.indexAfter(-1),o=Dr(i.contentMatchAt(s));if(!o||!i.canReplaceWith(s,s,o))return!1;if(e){let l=t.after(),a=r.tr.replaceWith(l,l,o.createAndFill());a.setSelection(w.near(a.doc.resolve(l),1)),e(a.scrollIntoView())}return!0},vh=(r,e)=>{let t=r.selection,{$from:n,$to:i}=t;if(t instanceof ce||n.parent.inlineContent||i.parent.inlineContent)return!1;let s=Dr(i.parent.contentMatchAt(i.indexAfter()));if(!s||!s.isTextblock)return!1;if(e){let o=(!n.parentOffset&&i.index(){let{$cursor:t}=r.selection;if(!t||t.parent.content.size)return!1;if(t.depth>1&&t.after()!=t.end(-1)){let s=t.before();if(Xt(r.doc,s))return e&&e(r.tr.split(s).scrollIntoView()),!0}let n=t.blockRange(),i=n&&mr(n);return i==null?!1:(e&&e(r.tr.lift(n,i).scrollIntoView()),!0)};function Bh(r){return(e,t)=>{let{$from:n,$to:i}=e.selection;if(e.selection instanceof x&&e.selection.node.isBlock)return!n.parentOffset||!Xt(e.doc,n.pos)?!1:(t&&t(e.tr.split(n.pos).scrollIntoView()),!0);if(!n.depth)return!1;let s=[],o,l,a=!1,h=!1;for(let p=n.depth;;p--)if(n.node(p).isBlock){a=n.end(p)==n.pos+(n.depth-p),h=n.start(p)==n.pos-(n.depth-p),l=Dr(n.node(p-1).contentMatchAt(n.indexAfter(p-1))),s.unshift(a&&l?{type:l}:null),o=p;break}else{if(p==1)return!1;s.unshift(null)}let c=e.tr;(e.selection instanceof M||e.selection instanceof ce)&&c.deleteSelection();let f=c.mapping.map(n.pos),d=Xt(c.doc,f,s.length,s);if(d||(s[0]=l?{type:l}:null,d=Xt(c.doc,f,s.length,s)),c.split(f,s.length,s),!a&&h&&n.node(o).type!=l){let p=c.mapping.map(n.before(o)),u=c.doc.resolve(p);l&&n.node(o-1).canReplaceWith(u.index(),u.index()+1,l)&&c.setNodeMarkup(c.mapping.map(n.before(o)),l)}return t&&t(c.scrollIntoView()),!0}}const Fh=Bh(),Vh=(r,e)=>(e&&e(r.tr.setSelection(new ce(r.doc))),!0);function Lh(r,e,t){let n=e.nodeBefore,i=e.nodeAfter,s=e.index();return!n||!i||!n.type.compatibleContent(i.type)?!1:!n.content.size&&e.parent.canReplace(s-1,s)?(t&&t(r.tr.delete(e.pos-n.nodeSize,e.pos).scrollIntoView()),!0):!e.parent.canReplace(s,s+1)||!(i.isTextblock||us(r.doc,e.pos))?!1:(t&&t(r.tr.join(e.pos).scrollIntoView()),!0)}function So(r,e,t,n){let i=e.nodeBefore,s=e.nodeAfter,o,l,a=i.type.spec.isolating||s.type.spec.isolating;if(!a&&Lh(r,e,t))return!0;let h=!a&&e.parent.canReplace(e.index(),e.index()+1);if(h&&(o=(l=i.contentMatchAt(i.childCount)).findWrapping(s.type))&&l.matchType(o[0]||s.type).validEnd){if(t){let p=e.pos+s.nodeSize,u=y.empty;for(let k=o.length-1;k>=0;k--)u=y.from(o[k].create(null,u));u=y.from(i.copy(u));let m=r.tr.step(new pe(e.pos-1,p,e.pos,p,new S(u,1,0),o.length,!0)),g=m.doc.resolve(p+2*o.length);g.nodeAfter&&g.nodeAfter.type==i.type&&us(m.doc,g.pos)&&m.join(g.pos),t(m.scrollIntoView())}return!0}let c=s.type.spec.isolating||n>0&&a?null:w.findFrom(e,1),f=c&&c.$from.blockRange(c.$to),d=f&&mr(f);if(d!=null&&d>=e.depth)return t&&t(r.tr.lift(f,d).scrollIntoView()),!0;if(h&&st(s,"start",!0)&&st(i,"end")){let p=i,u=[];for(;u.push(p),!p.isTextblock;)p=p.lastChild;let m=s,g=1;for(;!m.isTextblock;m=m.firstChild)g++;if(p.canReplace(p.childCount,p.childCount,m.content)){if(t){let k=y.empty;for(let K=u.length-1;K>=0;K--)k=y.from(u[K].copy(k));let T=r.tr.step(new pe(e.pos-u.length,e.pos+s.nodeSize,e.pos+g,e.pos+s.nodeSize-g,new S(k,u.length,0),0,!0));t(T.scrollIntoView())}return!0}}return!1}function ko(r){return function(e,t){let n=e.selection,i=r<0?n.$from:n.$to,s=i.depth;for(;i.node(s).isInline;){if(!s)return!1;s--}return i.node(s).isTextblock?(t&&t(e.tr.setSelection(M.create(e.doc,r<0?i.start(s):i.end(s)))),!0):!1}}const Jh=ko(-1),$h=ko(1);function Wh(r,e,t,n){for(let i=0;i{if(l||!n)return!1;l=a.inlineContent&&a.type.allowsMarkType(t)}),l)return!0}return!1}function dn(r,e=null,t){let n=t!==!1;return function(i,s){let{empty:o,$cursor:l,ranges:a}=i.selection;if(o&&!l||!Wh(i.doc,a,r,n))return!1;if(s)if(l)r.isInSet(i.storedMarks||l.marks())?s(i.tr.removeStoredMark(r)):s(i.tr.addStoredMark(r.create(e)));else{let h,c=i.tr;h=!a.some(f=>i.doc.rangeHasMark(f.$from.pos,f.$to.pos,r));for(let f=0;f=t?R.empty:this.sliceInner(Math.max(0,e),Math.min(this.length,t))};R.prototype.get=function(e){if(!(e<0||e>=this.length))return this.getInner(e)};R.prototype.forEach=function(e,t,n){t===void 0&&(t=0),n===void 0&&(n=this.length),t<=n?this.forEachInner(e,t,n,0):this.forEachInvertedInner(e,t,n,0)};R.prototype.map=function(e,t,n){t===void 0&&(t=0),n===void 0&&(n=this.length);var i=[];return this.forEach(function(s,o){return i.push(e(s,o))},t,n),i};R.from=function(e){return e instanceof R?e:e&&e.length?new bo(e):R.empty};var bo=function(r){function e(n){r.call(this),this.values=n}r&&(e.__proto__=r),e.prototype=Object.create(r&&r.prototype),e.prototype.constructor=e;var t={length:{configurable:!0},depth:{configurable:!0}};return e.prototype.flatten=function(){return this.values},e.prototype.sliceInner=function(i,s){return i==0&&s==this.length?this:new e(this.values.slice(i,s))},e.prototype.getInner=function(i){return this.values[i]},e.prototype.forEachInner=function(i,s,o,l){for(var a=s;a=o;a--)if(i(this.values[a],l+a)===!1)return!1},e.prototype.leafAppend=function(i){if(this.length+i.length<=pn)return new e(this.values.concat(i.flatten()))},e.prototype.leafPrepend=function(i){if(this.length+i.length<=pn)return new e(i.flatten().concat(this.values))},t.length.get=function(){return this.values.length},t.depth.get=function(){return 0},Object.defineProperties(e.prototype,t),e}(R);R.empty=new bo([]);var Hh=function(r){function e(t,n){r.call(this),this.left=t,this.right=n,this.length=t.length+n.length,this.depth=Math.max(t.depth,n.depth)+1}return r&&(e.__proto__=r),e.prototype=Object.create(r&&r.prototype),e.prototype.constructor=e,e.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},e.prototype.getInner=function(n){return nl&&this.right.forEachInner(n,Math.max(i-l,0),Math.min(this.length,s)-l,o+l)===!1)return!1},e.prototype.forEachInvertedInner=function(n,i,s,o){var l=this.left.length;if(i>l&&this.right.forEachInvertedInner(n,i-l,Math.max(s,l)-l,o+l)===!1||s=s?this.right.slice(n-s,i-s):this.left.slice(n,s).append(this.right.slice(0,i-s))},e.prototype.leafAppend=function(n){var i=this.right.leafAppend(n);if(i)return new e(this.left,i)},e.prototype.leafPrepend=function(n){var i=this.left.leafPrepend(n);if(i)return new e(i,this.right)},e.prototype.appendInner=function(n){return this.left.depth>=Math.max(this.right.depth,n.depth)+1?new e(this.left,new e(this.right,n)):new e(this,n)},e}(R);const Uh=500;class Z{constructor(e,t){this.items=e,this.eventCount=t}popEvent(e,t){if(this.eventCount==0)return null;let n=this.items.length;for(;;n--)if(this.items.get(n-1).selection){--n;break}let i,s;t&&(i=this.remapping(n,this.items.length),s=i.maps.length);let o=e.tr,l,a,h=[],c=[];return this.items.forEach((f,d)=>{if(!f.step){i||(i=this.remapping(n,d+1),s=i.maps.length),s--,c.push(f);return}if(i){c.push(new te(f.map));let p=f.step.map(i.slice(s)),u;p&&o.maybeStep(p).doc&&(u=o.mapping.maps[o.mapping.maps.length-1],h.push(new te(u,void 0,void 0,h.length+c.length))),s--,u&&i.appendMap(u,s)}else o.maybeStep(f.step);if(f.selection)return l=i?f.selection.map(i.slice(s)):f.selection,a=new Z(this.items.slice(0,n).append(c.reverse().concat(h)),this.eventCount-1),!1},this.items.length,0),{remaining:a,transform:o,selection:l}}addTransform(e,t,n,i){let s=[],o=this.eventCount,l=this.items,a=!i&&l.length?l.get(l.length-1):null;for(let c=0;cYh&&(l=Gh(l,h),o-=h),new Z(l.append(s),o)}remapping(e,t){let n=new _e;return this.items.forEach((i,s)=>{let o=i.mirrorOffset!=null&&s-i.mirrorOffset>=e?n.maps.length-i.mirrorOffset:void 0;n.appendMap(i.map,o)},e,t),n}addMaps(e){return this.eventCount==0?this:new Z(this.items.append(e.map(t=>new te(t))),this.eventCount)}rebased(e,t){if(!this.eventCount)return this;let n=[],i=Math.max(0,this.items.length-t),s=e.mapping,o=e.steps.length,l=this.eventCount;this.items.forEach(d=>{d.selection&&l--},i);let a=t;this.items.forEach(d=>{let p=s.getMirror(--a);if(p==null)return;o=Math.min(o,p);let u=s.maps[p];if(d.step){let m=e.steps[p].invert(e.docs[p]),g=d.selection&&d.selection.map(s.slice(a+1,p));g&&l++,n.push(new te(u,m,g))}else n.push(new te(u))},i);let h=[];for(let d=t;dUh&&(f=f.compress(this.items.length-n.length)),f}emptyItemCount(){let e=0;return this.items.forEach(t=>{t.step||e++}),e}compress(e=this.items.length){let t=this.remapping(0,e),n=t.maps.length,i=[],s=0;return this.items.forEach((o,l)=>{if(l>=e)i.push(o),o.selection&&s++;else if(o.step){let a=o.step.map(t.slice(n)),h=a&&a.getMap();if(n--,h&&t.appendMap(h,n),a){let c=o.selection&&o.selection.map(t.slice(n));c&&s++;let f=new te(h.invert(),a,c),d,p=i.length-1;(d=i.length&&i[p].merge(f))?i[p]=d:i.push(f)}}else o.map&&n--},this.items.length,0),new Z(R.from(i.reverse()),s)}}Z.empty=new Z(R.empty,0);function Gh(r,e){let t;return r.forEach((n,i)=>{if(n.selection&&e--==0)return t=i,!1}),r.slice(t)}class te{constructor(e,t,n,i){this.map=e,this.step=t,this.selection=n,this.mirrorOffset=i}merge(e){if(this.step&&e.step&&!e.selection){let t=e.step.merge(this.step);if(t)return new te(t.getMap().invert(),t,this.selection)}}}class ke{constructor(e,t,n,i,s){this.done=e,this.undone=t,this.prevRanges=n,this.prevTime=i,this.prevComposition=s}}const Yh=20;function jh(r,e,t,n){let i=t.getMeta(Je),s;if(i)return i.historyState;t.getMeta(Qh)&&(r=new ke(r.done,r.undone,null,0,-1));let o=t.getMeta("appendedTransaction");if(t.steps.length==0)return r;if(o&&o.getMeta(Je))return o.getMeta(Je).redo?new ke(r.done.addTransform(t,void 0,n,en(e)),r.undone,Pi(t.mapping.maps),r.prevTime,r.prevComposition):new ke(r.done,r.undone.addTransform(t,void 0,n,en(e)),null,r.prevTime,r.prevComposition);if(t.getMeta("addToHistory")!==!1&&!(o&&o.getMeta("addToHistory")===!1)){let l=t.getMeta("composition"),a=r.prevTime==0||!o&&r.prevComposition!=l&&(r.prevTime<(t.time||0)-n.newGroupDelay||!Xh(t,r.prevRanges)),h=o?Wn(r.prevRanges,t.mapping):Pi(t.mapping.maps);return new ke(r.done.addTransform(t,a?e.selection.getBookmark():void 0,n,en(e)),Z.empty,h,t.time,l??r.prevComposition)}else return(s=t.getMeta("rebased"))?new ke(r.done.rebased(t,s),r.undone.rebased(t,s),Wn(r.prevRanges,t.mapping),r.prevTime,r.prevComposition):new ke(r.done.addMaps(t.mapping.maps),r.undone.addMaps(t.mapping.maps),Wn(r.prevRanges,t.mapping),r.prevTime,r.prevComposition)}function Xh(r,e){if(!e)return!1;if(!r.docChanged)return!0;let t=!1;return r.mapping.maps[0].forEach((n,i)=>{for(let s=0;s=e[s]&&(t=!0)}),t}function Pi(r){let e=[];for(let t=r.length-1;t>=0&&e.length==0;t--)r[t].forEach((n,i,s,o)=>e.push(s,o));return e}function Wn(r,e){if(!r)return null;let t=[];for(let n=0;n{let i=Je.getState(t);if(!i||(r?i.undone:i.done).eventCount==0)return!1;if(n){let s=Zh(i,t,r);s&&n(e?s.scrollIntoView():s)}return!0}}const Co=wo(!1,!0),No=wo(!0,!0);function nt(){var r=arguments[0];typeof r=="string"&&(r=document.createElement(r));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var i=t[n];typeof i=="string"?r.setAttribute(n,i):i!=null&&(r[n]=i)}e++}for(;e{s.preventDefault(),n.classList.contains(Ot+"-disabled")||t.run(e.state,e.dispatch,e,s)});function i(s){if(t.select){let l=t.select(s);if(n.style.display=l?"":"none",!l)return!1}let o=!0;if(t.enable&&(o=t.enable(s)||!1,Li(n,Ot+"-disabled",!o)),t.active){let l=o&&t.active(s)||!1;Li(n,Ot+"-active",l)}return!0}return{dom:n,update:i}}}function Vi(r,e){return r._props.translate?r._props.translate(e):e}function ic(r,e){return t=>{let n=!1;for(let i=0;i"u")return!1;let r=navigator.userAgent;return!/Edge\/\d/.test(r)&&/AppleWebKit/.test(r)&&/Mobile\/\w+/.test(r)}function ac(r){return new yr({view(e){return new hc(e,r)}})}class hc{constructor(e,t){this.editorView=e,this.options=t,this.spacer=null,this.maxHeight=0,this.widthForMaxHeight=0,this.floating=!1,this.scrollHandler=null,this.wrapper=nt("div",{class:Ut+"-wrapper"}),this.menu=this.wrapper.appendChild(nt("div",{class:Ut})),this.menu.className=Ut,e.dom.parentNode&&e.dom.parentNode.replaceChild(this.wrapper,e.dom),this.wrapper.appendChild(e.dom);let{dom:n,update:i}=sc(this.editorView,this.options.content);if(this.contentUpdate=i,this.menu.appendChild(n),this.update(),t.floating&&!lc()){this.updateFloat();let s=uc(this.wrapper);this.scrollHandler=o=>{let l=this.editorView.root;(l.body||l).contains(this.wrapper)?this.updateFloat(o.target.getBoundingClientRect?o.target:void 0):s.forEach(a=>a.removeEventListener("scroll",this.scrollHandler))},s.forEach(o=>o.addEventListener("scroll",this.scrollHandler))}}update(){this.contentUpdate(this.editorView.state),this.floating?this.updateScrollCursor():(this.menu.offsetWidth!=this.widthForMaxHeight&&(this.widthForMaxHeight=this.menu.offsetWidth,this.maxHeight=0),this.menu.offsetHeight>this.maxHeight&&(this.maxHeight=this.menu.offsetHeight,this.menu.style.minHeight=this.maxHeight+"px"))}updateScrollCursor(){let e=this.editorView.root.getSelection();if(!e.focusNode)return;let t=e.getRangeAt(0).getClientRects(),n=t[cc(e)?0:t.length-1];if(!n)return;let i=this.menu.getBoundingClientRect();if(n.topi.top){let s=fc(this.wrapper);s&&(s.scrollTop-=i.bottom-n.top)}}updateFloat(e){let t=this.wrapper,n=t.getBoundingClientRect(),i=e?Math.max(0,e.getBoundingClientRect().top):0;if(this.floating)if(n.top>=i||n.bottom(this.editorView.dom.ownerDocument.defaultView||window).innerHeight?"none":"",e&&(this.menu.style.top=i+"px")}else if(n.top=this.menu.offsetHeight+10){this.floating=!0;let s=this.menu.getBoundingClientRect();this.menu.style.left=s.left+"px",this.menu.style.width=s.width+"px",e&&(this.menu.style.top=i+"px"),this.menu.style.position="fixed",this.spacer=nt("div",{class:Ut+"-spacer",style:`height: ${s.height}px`}),t.insertBefore(this.spacer,this.menu)}}destroy(){this.wrapper.parentNode&&this.wrapper.parentNode.replaceChild(this.editorView.dom,this.wrapper)}}function cc(r){return r.anchorNode==r.focusNode?r.anchorOffset>r.focusOffset:r.anchorNode.compareDocumentPosition(r.focusNode)==Node.DOCUMENT_POSITION_FOLLOWING}function fc(r){for(let e=r.parentNode;e;e=e.parentNode)if(e.scrollHeight>e.clientHeight)return e}function uc(r){let e=[r.ownerDocument.defaultView||window];for(let t=r.parentNode;t;t=t.parentNode)e.push(t);return e}const dc=new Sr("menuPlugin");function pc(r){const e=new Fi({title:"Bold",run:dn(r.marks.bold),active:i=>i.selection.$head.marks().some(s=>s.type===r.marks.bold)}),t=new Fi({title:"Italic",run:dn(r.marks.italic),active:i=>i.selection.$head.marks().some(s=>s.type===r.marks.italic)});return ac({content:[[e,t]],floating:!0}),console.log("Creating menu plugin"),new yr({key:dc})}var mc=Object.defineProperty,gc=Object.getOwnPropertyDescriptor,xn=(r,e,t,n)=>{for(var i=n>1?void 0:n?gc(e,t):e,s=r.length-1,o;s>=0;s--)(o=r[s])&&(i=(n?o(e,t,i):o(i))||i);return n&&i&&mc(e,t,i),i};const ot=new Xo({nodes:{text:{group:"inline"},star:{inline:!0,group:"inline",toDOM(){return["star","⭐"]},parseDOM:[{tag:"star"}]},paragraph:{group:"block",content:"inline*",toDOM(){return["p",0]},parseDOM:[{tag:"p"}]},boring_paragraph:{group:"block",content:"text*",marks:"",toDOM(){return["p",{class:"boring"},0]},parseDOM:[{tag:"p.boring",priority:60}]},doc:{content:"block+"}},marks:{shouting:{toDOM(){return["shouting",0]},parseDOM:[{tag:"shouting"}]},link:{attrs:{href:{}},toDOM(r){return["a",{href:r.attrs.href},0]},parseDOM:[{tag:"a",getAttrs(r){return{href:r}}}],inclusive:!1}}}),yc=pc(ot);function Sc(r,e){const t=ot.nodes.star,{$from:n}=r.selection;return n.parent.canReplaceWith(n.index(),n.index(),t)?(e&&e(r.tr.replaceSelectionWith(t.create())),!0):!1}function kc(r,e){let{doc:t,selection:n}=r;if(n.empty)return!1;let i=null;return!t.rangeHasMark(n.from,n.to,ot.marks.link)&&(i={href:prompt("Link to where?","")},!i.href)?!1:dn(ot.marks.link,i)(r,e)}const xc=ar({"Ctrl-Space":Sc,"Ctrl-b":(r,e)=>(console.log("Ctrl-b pressed, toggling shouting mark..."),dn(ot.marks.shouting)(r,e)),"Ctrl-q":(r,e)=>(console.log("you should have just gotten an alert"),kc(r,e))});let lt=class extends To{constructor(){super(...arguments),this.placeholder="Compose your note..."}async firstUpdated(){console.log("Welcome to the compose page"),await this.updateComplete,this.initializeEditor()}initializeEditor(){if(!this.editorContainer){console.error("Editor container not here");return}const r=ot.nodes.doc.createAndFill();if(!r){console.error("failed to create initial document");return}const e=Qe.create({doc:r,plugins:[yc,_h(),ar({"Mod-z":Co,"Mod-y":No}),ar(Kh),xc]});let t=new hh(this.editorContainer,{state:e,dispatchTransaction(n){console.log("Document size went from",n.before.content.size,"to",n.doc.content.size);let i=t.state.apply(n);t.updateState(i)}});this.editorView=t,console.log(e.plugins),console.log("editor initialized")}disconnectedCallback(){super.disconnectedCallback(),this.editorView&&(this.editorView.destroy(),this.editorView=null)}render(){return Eo` + + +
    +
    + + +
    +

    Editor Demo

    +
    + + + +

    Instructions

    +

    Click inside the white text area to highlight with your cursor. + You can type and press enter to insert a new block below.

    +
    +

    Try to highlight a piece of text, then CTRL+X to cut and + CTRL+V to paste.


    +

    Press Ctrl+Space to add a yellow star to the document.

    +

    Press Ctrl+B over a highlighted selection to add a "shouting" + mark and format it all caps and red.

    + +
    + +
    +
    +
    + `}};lt.styles=[Do,Ao` + :host { + display: block; + } + + shouting { + all: unset; /* Remove inherited or conflicting styles */ + font-weight: bold; + text-transform: uppercase; + color: red; /* Add a visible color for debugging */ +} + + `];xn([Ji({type:String})],lt.prototype,"placeholder",2);xn([Ji({type:String})],lt.prototype,"value",2);xn([Ro("#editor")],lt.prototype,"editorContainer",2);lt=xn([Io("app-write")],lt);export{lt as AppWrite,ot as customSchema}; +//# sourceMappingURL=app-write-DLE2Mxxa.js.map diff --git a/dist2/code/app-write-DLE2Mxxa.js.map b/dist2/code/app-write-DLE2Mxxa.js.map new file mode 100644 index 0000000..74161d4 --- /dev/null +++ b/dist2/code/app-write-DLE2Mxxa.js.map @@ -0,0 +1 @@ +{"version":3,"file":"app-write-DLE2Mxxa.js","sources":["../../node_modules/orderedmap/dist/index.js","../../node_modules/prosemirror-model/dist/index.js","../../node_modules/prosemirror-transform/dist/index.js","../../node_modules/prosemirror-state/dist/index.js","../../node_modules/prosemirror-view/dist/index.js","../../../node_modules/w3c-keyname/index.js","../../../node_modules/prosemirror-model/dist/index.js","../../../node_modules/prosemirror-transform/dist/index.js","../../../node_modules/prosemirror-state/dist/index.js","../../../node_modules/prosemirror-keymap/dist/index.js","../../node_modules/prosemirror-commands/dist/index.js","../../node_modules/rope-sequence/dist/index.js","../../node_modules/prosemirror-history/dist/index.js","../../node_modules/crelt/index.js","../../node_modules/prosemirror-menu/dist/index.js","../../src/components/menu-plugin.ts","../../src/pages/app-write/app-write.ts"],"sourcesContent":["// ::- Persistent data structure representing an ordered mapping from\n// strings to values, with some convenient update methods.\nfunction OrderedMap(content) {\n this.content = content;\n}\n\nOrderedMap.prototype = {\n constructor: OrderedMap,\n\n find: function(key) {\n for (var i = 0; i < this.content.length; i += 2)\n if (this.content[i] === key) return i\n return -1\n },\n\n // :: (string) → ?any\n // Retrieve the value stored under `key`, or return undefined when\n // no such key exists.\n get: function(key) {\n var found = this.find(key);\n return found == -1 ? undefined : this.content[found + 1]\n },\n\n // :: (string, any, ?string) → OrderedMap\n // Create a new map by replacing the value of `key` with a new\n // value, or adding a binding to the end of the map. If `newKey` is\n // given, the key of the binding will be replaced with that key.\n update: function(key, value, newKey) {\n var self = newKey && newKey != key ? this.remove(newKey) : this;\n var found = self.find(key), content = self.content.slice();\n if (found == -1) {\n content.push(newKey || key, value);\n } else {\n content[found + 1] = value;\n if (newKey) content[found] = newKey;\n }\n return new OrderedMap(content)\n },\n\n // :: (string) → OrderedMap\n // Return a map with the given key removed, if it existed.\n remove: function(key) {\n var found = this.find(key);\n if (found == -1) return this\n var content = this.content.slice();\n content.splice(found, 2);\n return new OrderedMap(content)\n },\n\n // :: (string, any) → OrderedMap\n // Add a new key to the start of the map.\n addToStart: function(key, value) {\n return new OrderedMap([key, value].concat(this.remove(key).content))\n },\n\n // :: (string, any) → OrderedMap\n // Add a new key to the end of the map.\n addToEnd: function(key, value) {\n var content = this.remove(key).content.slice();\n content.push(key, value);\n return new OrderedMap(content)\n },\n\n // :: (string, string, any) → OrderedMap\n // Add a key after the given key. If `place` is not found, the new\n // key is added to the end.\n addBefore: function(place, key, value) {\n var without = this.remove(key), content = without.content.slice();\n var found = without.find(place);\n content.splice(found == -1 ? content.length : found, 0, key, value);\n return new OrderedMap(content)\n },\n\n // :: ((key: string, value: any))\n // Call the given function for each key/value pair in the map, in\n // order.\n forEach: function(f) {\n for (var i = 0; i < this.content.length; i += 2)\n f(this.content[i], this.content[i + 1]);\n },\n\n // :: (union) → OrderedMap\n // Create a new map by prepending the keys in this map that don't\n // appear in `map` before the keys in `map`.\n prepend: function(map) {\n map = OrderedMap.from(map);\n if (!map.size) return this\n return new OrderedMap(map.content.concat(this.subtract(map).content))\n },\n\n // :: (union) → OrderedMap\n // Create a new map by appending the keys in this map that don't\n // appear in `map` after the keys in `map`.\n append: function(map) {\n map = OrderedMap.from(map);\n if (!map.size) return this\n return new OrderedMap(this.subtract(map).content.concat(map.content))\n },\n\n // :: (union) → OrderedMap\n // Create a map containing all the keys in this map that don't\n // appear in `map`.\n subtract: function(map) {\n var result = this;\n map = OrderedMap.from(map);\n for (var i = 0; i < map.content.length; i += 2)\n result = result.remove(map.content[i]);\n return result\n },\n\n // :: () → Object\n // Turn ordered map into a plain object.\n toObject: function() {\n var result = {};\n this.forEach(function(key, value) { result[key] = value; });\n return result\n },\n\n // :: number\n // The amount of keys in this map.\n get size() {\n return this.content.length >> 1\n }\n};\n\n// :: (?union) → OrderedMap\n// Return a map with the given content. If null, create an empty\n// map. If given an ordered map, return that map itself. If given an\n// object, create a map from the object's properties.\nOrderedMap.from = function(value) {\n if (value instanceof OrderedMap) return value\n var content = [];\n if (value) for (var prop in value) content.push(prop, value[prop]);\n return new OrderedMap(content)\n};\n\nexport default OrderedMap;\n","import OrderedMap from 'orderedmap';\n\nfunction findDiffStart(a, b, pos) {\n for (let i = 0;; i++) {\n if (i == a.childCount || i == b.childCount)\n return a.childCount == b.childCount ? null : pos;\n let childA = a.child(i), childB = b.child(i);\n if (childA == childB) {\n pos += childA.nodeSize;\n continue;\n }\n if (!childA.sameMarkup(childB))\n return pos;\n if (childA.isText && childA.text != childB.text) {\n for (let j = 0; childA.text[j] == childB.text[j]; j++)\n pos++;\n return pos;\n }\n if (childA.content.size || childB.content.size) {\n let inner = findDiffStart(childA.content, childB.content, pos + 1);\n if (inner != null)\n return inner;\n }\n pos += childA.nodeSize;\n }\n}\nfunction findDiffEnd(a, b, posA, posB) {\n for (let iA = a.childCount, iB = b.childCount;;) {\n if (iA == 0 || iB == 0)\n return iA == iB ? null : { a: posA, b: posB };\n let childA = a.child(--iA), childB = b.child(--iB), size = childA.nodeSize;\n if (childA == childB) {\n posA -= size;\n posB -= size;\n continue;\n }\n if (!childA.sameMarkup(childB))\n return { a: posA, b: posB };\n if (childA.isText && childA.text != childB.text) {\n let same = 0, minSize = Math.min(childA.text.length, childB.text.length);\n while (same < minSize && childA.text[childA.text.length - same - 1] == childB.text[childB.text.length - same - 1]) {\n same++;\n posA--;\n posB--;\n }\n return { a: posA, b: posB };\n }\n if (childA.content.size || childB.content.size) {\n let inner = findDiffEnd(childA.content, childB.content, posA - 1, posB - 1);\n if (inner)\n return inner;\n }\n posA -= size;\n posB -= size;\n }\n}\n\n/**\nA fragment represents a node's collection of child nodes.\n\nLike nodes, fragments are persistent data structures, and you\nshould not mutate them or their content. Rather, you create new\ninstances whenever needed. The API tries to make this easy.\n*/\nclass Fragment {\n /**\n @internal\n */\n constructor(\n /**\n The child nodes in this fragment.\n */\n content, size) {\n this.content = content;\n this.size = size || 0;\n if (size == null)\n for (let i = 0; i < content.length; i++)\n this.size += content[i].nodeSize;\n }\n /**\n Invoke a callback for all descendant nodes between the given two\n positions (relative to start of this fragment). Doesn't descend\n into a node when the callback returns `false`.\n */\n nodesBetween(from, to, f, nodeStart = 0, parent) {\n for (let i = 0, pos = 0; pos < to; i++) {\n let child = this.content[i], end = pos + child.nodeSize;\n if (end > from && f(child, nodeStart + pos, parent || null, i) !== false && child.content.size) {\n let start = pos + 1;\n child.nodesBetween(Math.max(0, from - start), Math.min(child.content.size, to - start), f, nodeStart + start);\n }\n pos = end;\n }\n }\n /**\n Call the given callback for every descendant node. `pos` will be\n relative to the start of the fragment. The callback may return\n `false` to prevent traversal of a given node's children.\n */\n descendants(f) {\n this.nodesBetween(0, this.size, f);\n }\n /**\n Extract the text between `from` and `to`. See the same method on\n [`Node`](https://prosemirror.net/docs/ref/#model.Node.textBetween).\n */\n textBetween(from, to, blockSeparator, leafText) {\n let text = \"\", first = true;\n this.nodesBetween(from, to, (node, pos) => {\n let nodeText = node.isText ? node.text.slice(Math.max(from, pos) - pos, to - pos)\n : !node.isLeaf ? \"\"\n : leafText ? (typeof leafText === \"function\" ? leafText(node) : leafText)\n : node.type.spec.leafText ? node.type.spec.leafText(node)\n : \"\";\n if (node.isBlock && (node.isLeaf && nodeText || node.isTextblock) && blockSeparator) {\n if (first)\n first = false;\n else\n text += blockSeparator;\n }\n text += nodeText;\n }, 0);\n return text;\n }\n /**\n Create a new fragment containing the combined content of this\n fragment and the other.\n */\n append(other) {\n if (!other.size)\n return this;\n if (!this.size)\n return other;\n let last = this.lastChild, first = other.firstChild, content = this.content.slice(), i = 0;\n if (last.isText && last.sameMarkup(first)) {\n content[content.length - 1] = last.withText(last.text + first.text);\n i = 1;\n }\n for (; i < other.content.length; i++)\n content.push(other.content[i]);\n return new Fragment(content, this.size + other.size);\n }\n /**\n Cut out the sub-fragment between the two given positions.\n */\n cut(from, to = this.size) {\n if (from == 0 && to == this.size)\n return this;\n let result = [], size = 0;\n if (to > from)\n for (let i = 0, pos = 0; pos < to; i++) {\n let child = this.content[i], end = pos + child.nodeSize;\n if (end > from) {\n if (pos < from || end > to) {\n if (child.isText)\n child = child.cut(Math.max(0, from - pos), Math.min(child.text.length, to - pos));\n else\n child = child.cut(Math.max(0, from - pos - 1), Math.min(child.content.size, to - pos - 1));\n }\n result.push(child);\n size += child.nodeSize;\n }\n pos = end;\n }\n return new Fragment(result, size);\n }\n /**\n @internal\n */\n cutByIndex(from, to) {\n if (from == to)\n return Fragment.empty;\n if (from == 0 && to == this.content.length)\n return this;\n return new Fragment(this.content.slice(from, to));\n }\n /**\n Create a new fragment in which the node at the given index is\n replaced by the given node.\n */\n replaceChild(index, node) {\n let current = this.content[index];\n if (current == node)\n return this;\n let copy = this.content.slice();\n let size = this.size + node.nodeSize - current.nodeSize;\n copy[index] = node;\n return new Fragment(copy, size);\n }\n /**\n Create a new fragment by prepending the given node to this\n fragment.\n */\n addToStart(node) {\n return new Fragment([node].concat(this.content), this.size + node.nodeSize);\n }\n /**\n Create a new fragment by appending the given node to this\n fragment.\n */\n addToEnd(node) {\n return new Fragment(this.content.concat(node), this.size + node.nodeSize);\n }\n /**\n Compare this fragment to another one.\n */\n eq(other) {\n if (this.content.length != other.content.length)\n return false;\n for (let i = 0; i < this.content.length; i++)\n if (!this.content[i].eq(other.content[i]))\n return false;\n return true;\n }\n /**\n The first child of the fragment, or `null` if it is empty.\n */\n get firstChild() { return this.content.length ? this.content[0] : null; }\n /**\n The last child of the fragment, or `null` if it is empty.\n */\n get lastChild() { return this.content.length ? this.content[this.content.length - 1] : null; }\n /**\n The number of child nodes in this fragment.\n */\n get childCount() { return this.content.length; }\n /**\n Get the child node at the given index. Raise an error when the\n index is out of range.\n */\n child(index) {\n let found = this.content[index];\n if (!found)\n throw new RangeError(\"Index \" + index + \" out of range for \" + this);\n return found;\n }\n /**\n Get the child node at the given index, if it exists.\n */\n maybeChild(index) {\n return this.content[index] || null;\n }\n /**\n Call `f` for every child node, passing the node, its offset\n into this parent node, and its index.\n */\n forEach(f) {\n for (let i = 0, p = 0; i < this.content.length; i++) {\n let child = this.content[i];\n f(child, p, i);\n p += child.nodeSize;\n }\n }\n /**\n Find the first position at which this fragment and another\n fragment differ, or `null` if they are the same.\n */\n findDiffStart(other, pos = 0) {\n return findDiffStart(this, other, pos);\n }\n /**\n Find the first position, searching from the end, at which this\n fragment and the given fragment differ, or `null` if they are\n the same. Since this position will not be the same in both\n nodes, an object with two separate positions is returned.\n */\n findDiffEnd(other, pos = this.size, otherPos = other.size) {\n return findDiffEnd(this, other, pos, otherPos);\n }\n /**\n Find the index and inner offset corresponding to a given relative\n position in this fragment. The result object will be reused\n (overwritten) the next time the function is called. @internal\n */\n findIndex(pos, round = -1) {\n if (pos == 0)\n return retIndex(0, pos);\n if (pos == this.size)\n return retIndex(this.content.length, pos);\n if (pos > this.size || pos < 0)\n throw new RangeError(`Position ${pos} outside of fragment (${this})`);\n for (let i = 0, curPos = 0;; i++) {\n let cur = this.child(i), end = curPos + cur.nodeSize;\n if (end >= pos) {\n if (end == pos || round > 0)\n return retIndex(i + 1, end);\n return retIndex(i, curPos);\n }\n curPos = end;\n }\n }\n /**\n Return a debugging string that describes this fragment.\n */\n toString() { return \"<\" + this.toStringInner() + \">\"; }\n /**\n @internal\n */\n toStringInner() { return this.content.join(\", \"); }\n /**\n Create a JSON-serializeable representation of this fragment.\n */\n toJSON() {\n return this.content.length ? this.content.map(n => n.toJSON()) : null;\n }\n /**\n Deserialize a fragment from its JSON representation.\n */\n static fromJSON(schema, value) {\n if (!value)\n return Fragment.empty;\n if (!Array.isArray(value))\n throw new RangeError(\"Invalid input for Fragment.fromJSON\");\n return new Fragment(value.map(schema.nodeFromJSON));\n }\n /**\n Build a fragment from an array of nodes. Ensures that adjacent\n text nodes with the same marks are joined together.\n */\n static fromArray(array) {\n if (!array.length)\n return Fragment.empty;\n let joined, size = 0;\n for (let i = 0; i < array.length; i++) {\n let node = array[i];\n size += node.nodeSize;\n if (i && node.isText && array[i - 1].sameMarkup(node)) {\n if (!joined)\n joined = array.slice(0, i);\n joined[joined.length - 1] = node\n .withText(joined[joined.length - 1].text + node.text);\n }\n else if (joined) {\n joined.push(node);\n }\n }\n return new Fragment(joined || array, size);\n }\n /**\n Create a fragment from something that can be interpreted as a\n set of nodes. For `null`, it returns the empty fragment. For a\n fragment, the fragment itself. For a node or array of nodes, a\n fragment containing those nodes.\n */\n static from(nodes) {\n if (!nodes)\n return Fragment.empty;\n if (nodes instanceof Fragment)\n return nodes;\n if (Array.isArray(nodes))\n return this.fromArray(nodes);\n if (nodes.attrs)\n return new Fragment([nodes], nodes.nodeSize);\n throw new RangeError(\"Can not convert \" + nodes + \" to a Fragment\" +\n (nodes.nodesBetween ? \" (looks like multiple versions of prosemirror-model were loaded)\" : \"\"));\n }\n}\n/**\nAn empty fragment. Intended to be reused whenever a node doesn't\ncontain anything (rather than allocating a new empty fragment for\neach leaf node).\n*/\nFragment.empty = new Fragment([], 0);\nconst found = { index: 0, offset: 0 };\nfunction retIndex(index, offset) {\n found.index = index;\n found.offset = offset;\n return found;\n}\n\nfunction compareDeep(a, b) {\n if (a === b)\n return true;\n if (!(a && typeof a == \"object\") ||\n !(b && typeof b == \"object\"))\n return false;\n let array = Array.isArray(a);\n if (Array.isArray(b) != array)\n return false;\n if (array) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!compareDeep(a[i], b[i]))\n return false;\n }\n else {\n for (let p in a)\n if (!(p in b) || !compareDeep(a[p], b[p]))\n return false;\n for (let p in b)\n if (!(p in a))\n return false;\n }\n return true;\n}\n\n/**\nA mark is a piece of information that can be attached to a node,\nsuch as it being emphasized, in code font, or a link. It has a\ntype and optionally a set of attributes that provide further\ninformation (such as the target of the link). Marks are created\nthrough a `Schema`, which controls which types exist and which\nattributes they have.\n*/\nclass Mark {\n /**\n @internal\n */\n constructor(\n /**\n The type of this mark.\n */\n type, \n /**\n The attributes associated with this mark.\n */\n attrs) {\n this.type = type;\n this.attrs = attrs;\n }\n /**\n Given a set of marks, create a new set which contains this one as\n well, in the right position. If this mark is already in the set,\n the set itself is returned. If any marks that are set to be\n [exclusive](https://prosemirror.net/docs/ref/#model.MarkSpec.excludes) with this mark are present,\n those are replaced by this one.\n */\n addToSet(set) {\n let copy, placed = false;\n for (let i = 0; i < set.length; i++) {\n let other = set[i];\n if (this.eq(other))\n return set;\n if (this.type.excludes(other.type)) {\n if (!copy)\n copy = set.slice(0, i);\n }\n else if (other.type.excludes(this.type)) {\n return set;\n }\n else {\n if (!placed && other.type.rank > this.type.rank) {\n if (!copy)\n copy = set.slice(0, i);\n copy.push(this);\n placed = true;\n }\n if (copy)\n copy.push(other);\n }\n }\n if (!copy)\n copy = set.slice();\n if (!placed)\n copy.push(this);\n return copy;\n }\n /**\n Remove this mark from the given set, returning a new set. If this\n mark is not in the set, the set itself is returned.\n */\n removeFromSet(set) {\n for (let i = 0; i < set.length; i++)\n if (this.eq(set[i]))\n return set.slice(0, i).concat(set.slice(i + 1));\n return set;\n }\n /**\n Test whether this mark is in the given set of marks.\n */\n isInSet(set) {\n for (let i = 0; i < set.length; i++)\n if (this.eq(set[i]))\n return true;\n return false;\n }\n /**\n Test whether this mark has the same type and attributes as\n another mark.\n */\n eq(other) {\n return this == other ||\n (this.type == other.type && compareDeep(this.attrs, other.attrs));\n }\n /**\n Convert this mark to a JSON-serializeable representation.\n */\n toJSON() {\n let obj = { type: this.type.name };\n for (let _ in this.attrs) {\n obj.attrs = this.attrs;\n break;\n }\n return obj;\n }\n /**\n Deserialize a mark from JSON.\n */\n static fromJSON(schema, json) {\n if (!json)\n throw new RangeError(\"Invalid input for Mark.fromJSON\");\n let type = schema.marks[json.type];\n if (!type)\n throw new RangeError(`There is no mark type ${json.type} in this schema`);\n let mark = type.create(json.attrs);\n type.checkAttrs(mark.attrs);\n return mark;\n }\n /**\n Test whether two sets of marks are identical.\n */\n static sameSet(a, b) {\n if (a == b)\n return true;\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!a[i].eq(b[i]))\n return false;\n return true;\n }\n /**\n Create a properly sorted mark set from null, a single mark, or an\n unsorted array of marks.\n */\n static setFrom(marks) {\n if (!marks || Array.isArray(marks) && marks.length == 0)\n return Mark.none;\n if (marks instanceof Mark)\n return [marks];\n let copy = marks.slice();\n copy.sort((a, b) => a.type.rank - b.type.rank);\n return copy;\n }\n}\n/**\nThe empty set of marks.\n*/\nMark.none = [];\n\n/**\nError type raised by [`Node.replace`](https://prosemirror.net/docs/ref/#model.Node.replace) when\ngiven an invalid replacement.\n*/\nclass ReplaceError extends Error {\n}\n/*\nReplaceError = function(this: any, message: string) {\n let err = Error.call(this, message)\n ;(err as any).__proto__ = ReplaceError.prototype\n return err\n} as any\n\nReplaceError.prototype = Object.create(Error.prototype)\nReplaceError.prototype.constructor = ReplaceError\nReplaceError.prototype.name = \"ReplaceError\"\n*/\n/**\nA slice represents a piece cut out of a larger document. It\nstores not only a fragment, but also the depth up to which nodes on\nboth side are ‘open’ (cut through).\n*/\nclass Slice {\n /**\n Create a slice. When specifying a non-zero open depth, you must\n make sure that there are nodes of at least that depth at the\n appropriate side of the fragment—i.e. if the fragment is an\n empty paragraph node, `openStart` and `openEnd` can't be greater\n than 1.\n \n It is not necessary for the content of open nodes to conform to\n the schema's content constraints, though it should be a valid\n start/end/middle for such a node, depending on which sides are\n open.\n */\n constructor(\n /**\n The slice's content.\n */\n content, \n /**\n The open depth at the start of the fragment.\n */\n openStart, \n /**\n The open depth at the end.\n */\n openEnd) {\n this.content = content;\n this.openStart = openStart;\n this.openEnd = openEnd;\n }\n /**\n The size this slice would add when inserted into a document.\n */\n get size() {\n return this.content.size - this.openStart - this.openEnd;\n }\n /**\n @internal\n */\n insertAt(pos, fragment) {\n let content = insertInto(this.content, pos + this.openStart, fragment);\n return content && new Slice(content, this.openStart, this.openEnd);\n }\n /**\n @internal\n */\n removeBetween(from, to) {\n return new Slice(removeRange(this.content, from + this.openStart, to + this.openStart), this.openStart, this.openEnd);\n }\n /**\n Tests whether this slice is equal to another slice.\n */\n eq(other) {\n return this.content.eq(other.content) && this.openStart == other.openStart && this.openEnd == other.openEnd;\n }\n /**\n @internal\n */\n toString() {\n return this.content + \"(\" + this.openStart + \",\" + this.openEnd + \")\";\n }\n /**\n Convert a slice to a JSON-serializable representation.\n */\n toJSON() {\n if (!this.content.size)\n return null;\n let json = { content: this.content.toJSON() };\n if (this.openStart > 0)\n json.openStart = this.openStart;\n if (this.openEnd > 0)\n json.openEnd = this.openEnd;\n return json;\n }\n /**\n Deserialize a slice from its JSON representation.\n */\n static fromJSON(schema, json) {\n if (!json)\n return Slice.empty;\n let openStart = json.openStart || 0, openEnd = json.openEnd || 0;\n if (typeof openStart != \"number\" || typeof openEnd != \"number\")\n throw new RangeError(\"Invalid input for Slice.fromJSON\");\n return new Slice(Fragment.fromJSON(schema, json.content), openStart, openEnd);\n }\n /**\n Create a slice from a fragment by taking the maximum possible\n open value on both side of the fragment.\n */\n static maxOpen(fragment, openIsolating = true) {\n let openStart = 0, openEnd = 0;\n for (let n = fragment.firstChild; n && !n.isLeaf && (openIsolating || !n.type.spec.isolating); n = n.firstChild)\n openStart++;\n for (let n = fragment.lastChild; n && !n.isLeaf && (openIsolating || !n.type.spec.isolating); n = n.lastChild)\n openEnd++;\n return new Slice(fragment, openStart, openEnd);\n }\n}\n/**\nThe empty slice.\n*/\nSlice.empty = new Slice(Fragment.empty, 0, 0);\nfunction removeRange(content, from, to) {\n let { index, offset } = content.findIndex(from), child = content.maybeChild(index);\n let { index: indexTo, offset: offsetTo } = content.findIndex(to);\n if (offset == from || child.isText) {\n if (offsetTo != to && !content.child(indexTo).isText)\n throw new RangeError(\"Removing non-flat range\");\n return content.cut(0, from).append(content.cut(to));\n }\n if (index != indexTo)\n throw new RangeError(\"Removing non-flat range\");\n return content.replaceChild(index, child.copy(removeRange(child.content, from - offset - 1, to - offset - 1)));\n}\nfunction insertInto(content, dist, insert, parent) {\n let { index, offset } = content.findIndex(dist), child = content.maybeChild(index);\n if (offset == dist || child.isText) {\n if (parent && !parent.canReplace(index, index, insert))\n return null;\n return content.cut(0, dist).append(insert).append(content.cut(dist));\n }\n let inner = insertInto(child.content, dist - offset - 1, insert);\n return inner && content.replaceChild(index, child.copy(inner));\n}\nfunction replace($from, $to, slice) {\n if (slice.openStart > $from.depth)\n throw new ReplaceError(\"Inserted content deeper than insertion position\");\n if ($from.depth - slice.openStart != $to.depth - slice.openEnd)\n throw new ReplaceError(\"Inconsistent open depths\");\n return replaceOuter($from, $to, slice, 0);\n}\nfunction replaceOuter($from, $to, slice, depth) {\n let index = $from.index(depth), node = $from.node(depth);\n if (index == $to.index(depth) && depth < $from.depth - slice.openStart) {\n let inner = replaceOuter($from, $to, slice, depth + 1);\n return node.copy(node.content.replaceChild(index, inner));\n }\n else if (!slice.content.size) {\n return close(node, replaceTwoWay($from, $to, depth));\n }\n else if (!slice.openStart && !slice.openEnd && $from.depth == depth && $to.depth == depth) { // Simple, flat case\n let parent = $from.parent, content = parent.content;\n return close(parent, content.cut(0, $from.parentOffset).append(slice.content).append(content.cut($to.parentOffset)));\n }\n else {\n let { start, end } = prepareSliceForReplace(slice, $from);\n return close(node, replaceThreeWay($from, start, end, $to, depth));\n }\n}\nfunction checkJoin(main, sub) {\n if (!sub.type.compatibleContent(main.type))\n throw new ReplaceError(\"Cannot join \" + sub.type.name + \" onto \" + main.type.name);\n}\nfunction joinable($before, $after, depth) {\n let node = $before.node(depth);\n checkJoin(node, $after.node(depth));\n return node;\n}\nfunction addNode(child, target) {\n let last = target.length - 1;\n if (last >= 0 && child.isText && child.sameMarkup(target[last]))\n target[last] = child.withText(target[last].text + child.text);\n else\n target.push(child);\n}\nfunction addRange($start, $end, depth, target) {\n let node = ($end || $start).node(depth);\n let startIndex = 0, endIndex = $end ? $end.index(depth) : node.childCount;\n if ($start) {\n startIndex = $start.index(depth);\n if ($start.depth > depth) {\n startIndex++;\n }\n else if ($start.textOffset) {\n addNode($start.nodeAfter, target);\n startIndex++;\n }\n }\n for (let i = startIndex; i < endIndex; i++)\n addNode(node.child(i), target);\n if ($end && $end.depth == depth && $end.textOffset)\n addNode($end.nodeBefore, target);\n}\nfunction close(node, content) {\n node.type.checkContent(content);\n return node.copy(content);\n}\nfunction replaceThreeWay($from, $start, $end, $to, depth) {\n let openStart = $from.depth > depth && joinable($from, $start, depth + 1);\n let openEnd = $to.depth > depth && joinable($end, $to, depth + 1);\n let content = [];\n addRange(null, $from, depth, content);\n if (openStart && openEnd && $start.index(depth) == $end.index(depth)) {\n checkJoin(openStart, openEnd);\n addNode(close(openStart, replaceThreeWay($from, $start, $end, $to, depth + 1)), content);\n }\n else {\n if (openStart)\n addNode(close(openStart, replaceTwoWay($from, $start, depth + 1)), content);\n addRange($start, $end, depth, content);\n if (openEnd)\n addNode(close(openEnd, replaceTwoWay($end, $to, depth + 1)), content);\n }\n addRange($to, null, depth, content);\n return new Fragment(content);\n}\nfunction replaceTwoWay($from, $to, depth) {\n let content = [];\n addRange(null, $from, depth, content);\n if ($from.depth > depth) {\n let type = joinable($from, $to, depth + 1);\n addNode(close(type, replaceTwoWay($from, $to, depth + 1)), content);\n }\n addRange($to, null, depth, content);\n return new Fragment(content);\n}\nfunction prepareSliceForReplace(slice, $along) {\n let extra = $along.depth - slice.openStart, parent = $along.node(extra);\n let node = parent.copy(slice.content);\n for (let i = extra - 1; i >= 0; i--)\n node = $along.node(i).copy(Fragment.from(node));\n return { start: node.resolveNoCache(slice.openStart + extra),\n end: node.resolveNoCache(node.content.size - slice.openEnd - extra) };\n}\n\n/**\nYou can [_resolve_](https://prosemirror.net/docs/ref/#model.Node.resolve) a position to get more\ninformation about it. Objects of this class represent such a\nresolved position, providing various pieces of context\ninformation, and some helper methods.\n\nThroughout this interface, methods that take an optional `depth`\nparameter will interpret undefined as `this.depth` and negative\nnumbers as `this.depth + value`.\n*/\nclass ResolvedPos {\n /**\n @internal\n */\n constructor(\n /**\n The position that was resolved.\n */\n pos, \n /**\n @internal\n */\n path, \n /**\n The offset this position has into its parent node.\n */\n parentOffset) {\n this.pos = pos;\n this.path = path;\n this.parentOffset = parentOffset;\n this.depth = path.length / 3 - 1;\n }\n /**\n @internal\n */\n resolveDepth(val) {\n if (val == null)\n return this.depth;\n if (val < 0)\n return this.depth + val;\n return val;\n }\n /**\n The parent node that the position points into. Note that even if\n a position points into a text node, that node is not considered\n the parent—text nodes are ‘flat’ in this model, and have no content.\n */\n get parent() { return this.node(this.depth); }\n /**\n The root node in which the position was resolved.\n */\n get doc() { return this.node(0); }\n /**\n The ancestor node at the given level. `p.node(p.depth)` is the\n same as `p.parent`.\n */\n node(depth) { return this.path[this.resolveDepth(depth) * 3]; }\n /**\n The index into the ancestor at the given level. If this points\n at the 3rd node in the 2nd paragraph on the top level, for\n example, `p.index(0)` is 1 and `p.index(1)` is 2.\n */\n index(depth) { return this.path[this.resolveDepth(depth) * 3 + 1]; }\n /**\n The index pointing after this position into the ancestor at the\n given level.\n */\n indexAfter(depth) {\n depth = this.resolveDepth(depth);\n return this.index(depth) + (depth == this.depth && !this.textOffset ? 0 : 1);\n }\n /**\n The (absolute) position at the start of the node at the given\n level.\n */\n start(depth) {\n depth = this.resolveDepth(depth);\n return depth == 0 ? 0 : this.path[depth * 3 - 1] + 1;\n }\n /**\n The (absolute) position at the end of the node at the given\n level.\n */\n end(depth) {\n depth = this.resolveDepth(depth);\n return this.start(depth) + this.node(depth).content.size;\n }\n /**\n The (absolute) position directly before the wrapping node at the\n given level, or, when `depth` is `this.depth + 1`, the original\n position.\n */\n before(depth) {\n depth = this.resolveDepth(depth);\n if (!depth)\n throw new RangeError(\"There is no position before the top-level node\");\n return depth == this.depth + 1 ? this.pos : this.path[depth * 3 - 1];\n }\n /**\n The (absolute) position directly after the wrapping node at the\n given level, or the original position when `depth` is `this.depth + 1`.\n */\n after(depth) {\n depth = this.resolveDepth(depth);\n if (!depth)\n throw new RangeError(\"There is no position after the top-level node\");\n return depth == this.depth + 1 ? this.pos : this.path[depth * 3 - 1] + this.path[depth * 3].nodeSize;\n }\n /**\n When this position points into a text node, this returns the\n distance between the position and the start of the text node.\n Will be zero for positions that point between nodes.\n */\n get textOffset() { return this.pos - this.path[this.path.length - 1]; }\n /**\n Get the node directly after the position, if any. If the position\n points into a text node, only the part of that node after the\n position is returned.\n */\n get nodeAfter() {\n let parent = this.parent, index = this.index(this.depth);\n if (index == parent.childCount)\n return null;\n let dOff = this.pos - this.path[this.path.length - 1], child = parent.child(index);\n return dOff ? parent.child(index).cut(dOff) : child;\n }\n /**\n Get the node directly before the position, if any. If the\n position points into a text node, only the part of that node\n before the position is returned.\n */\n get nodeBefore() {\n let index = this.index(this.depth);\n let dOff = this.pos - this.path[this.path.length - 1];\n if (dOff)\n return this.parent.child(index).cut(0, dOff);\n return index == 0 ? null : this.parent.child(index - 1);\n }\n /**\n Get the position at the given index in the parent node at the\n given depth (which defaults to `this.depth`).\n */\n posAtIndex(index, depth) {\n depth = this.resolveDepth(depth);\n let node = this.path[depth * 3], pos = depth == 0 ? 0 : this.path[depth * 3 - 1] + 1;\n for (let i = 0; i < index; i++)\n pos += node.child(i).nodeSize;\n return pos;\n }\n /**\n Get the marks at this position, factoring in the surrounding\n marks' [`inclusive`](https://prosemirror.net/docs/ref/#model.MarkSpec.inclusive) property. If the\n position is at the start of a non-empty node, the marks of the\n node after it (if any) are returned.\n */\n marks() {\n let parent = this.parent, index = this.index();\n // In an empty parent, return the empty array\n if (parent.content.size == 0)\n return Mark.none;\n // When inside a text node, just return the text node's marks\n if (this.textOffset)\n return parent.child(index).marks;\n let main = parent.maybeChild(index - 1), other = parent.maybeChild(index);\n // If the `after` flag is true of there is no node before, make\n // the node after this position the main reference.\n if (!main) {\n let tmp = main;\n main = other;\n other = tmp;\n }\n // Use all marks in the main node, except those that have\n // `inclusive` set to false and are not present in the other node.\n let marks = main.marks;\n for (var i = 0; i < marks.length; i++)\n if (marks[i].type.spec.inclusive === false && (!other || !marks[i].isInSet(other.marks)))\n marks = marks[i--].removeFromSet(marks);\n return marks;\n }\n /**\n Get the marks after the current position, if any, except those\n that are non-inclusive and not present at position `$end`. This\n is mostly useful for getting the set of marks to preserve after a\n deletion. Will return `null` if this position is at the end of\n its parent node or its parent node isn't a textblock (in which\n case no marks should be preserved).\n */\n marksAcross($end) {\n let after = this.parent.maybeChild(this.index());\n if (!after || !after.isInline)\n return null;\n let marks = after.marks, next = $end.parent.maybeChild($end.index());\n for (var i = 0; i < marks.length; i++)\n if (marks[i].type.spec.inclusive === false && (!next || !marks[i].isInSet(next.marks)))\n marks = marks[i--].removeFromSet(marks);\n return marks;\n }\n /**\n The depth up to which this position and the given (non-resolved)\n position share the same parent nodes.\n */\n sharedDepth(pos) {\n for (let depth = this.depth; depth > 0; depth--)\n if (this.start(depth) <= pos && this.end(depth) >= pos)\n return depth;\n return 0;\n }\n /**\n Returns a range based on the place where this position and the\n given position diverge around block content. If both point into\n the same textblock, for example, a range around that textblock\n will be returned. If they point into different blocks, the range\n around those blocks in their shared ancestor is returned. You can\n pass in an optional predicate that will be called with a parent\n node to see if a range into that parent is acceptable.\n */\n blockRange(other = this, pred) {\n if (other.pos < this.pos)\n return other.blockRange(this);\n for (let d = this.depth - (this.parent.inlineContent || this.pos == other.pos ? 1 : 0); d >= 0; d--)\n if (other.pos <= this.end(d) && (!pred || pred(this.node(d))))\n return new NodeRange(this, other, d);\n return null;\n }\n /**\n Query whether the given position shares the same parent node.\n */\n sameParent(other) {\n return this.pos - this.parentOffset == other.pos - other.parentOffset;\n }\n /**\n Return the greater of this and the given position.\n */\n max(other) {\n return other.pos > this.pos ? other : this;\n }\n /**\n Return the smaller of this and the given position.\n */\n min(other) {\n return other.pos < this.pos ? other : this;\n }\n /**\n @internal\n */\n toString() {\n let str = \"\";\n for (let i = 1; i <= this.depth; i++)\n str += (str ? \"/\" : \"\") + this.node(i).type.name + \"_\" + this.index(i - 1);\n return str + \":\" + this.parentOffset;\n }\n /**\n @internal\n */\n static resolve(doc, pos) {\n if (!(pos >= 0 && pos <= doc.content.size))\n throw new RangeError(\"Position \" + pos + \" out of range\");\n let path = [];\n let start = 0, parentOffset = pos;\n for (let node = doc;;) {\n let { index, offset } = node.content.findIndex(parentOffset);\n let rem = parentOffset - offset;\n path.push(node, index, start + offset);\n if (!rem)\n break;\n node = node.child(index);\n if (node.isText)\n break;\n parentOffset = rem - 1;\n start += offset + 1;\n }\n return new ResolvedPos(pos, path, parentOffset);\n }\n /**\n @internal\n */\n static resolveCached(doc, pos) {\n let cache = resolveCache.get(doc);\n if (cache) {\n for (let i = 0; i < cache.elts.length; i++) {\n let elt = cache.elts[i];\n if (elt.pos == pos)\n return elt;\n }\n }\n else {\n resolveCache.set(doc, cache = new ResolveCache);\n }\n let result = cache.elts[cache.i] = ResolvedPos.resolve(doc, pos);\n cache.i = (cache.i + 1) % resolveCacheSize;\n return result;\n }\n}\nclass ResolveCache {\n constructor() {\n this.elts = [];\n this.i = 0;\n }\n}\nconst resolveCacheSize = 12, resolveCache = new WeakMap();\n/**\nRepresents a flat range of content, i.e. one that starts and\nends in the same node.\n*/\nclass NodeRange {\n /**\n Construct a node range. `$from` and `$to` should point into the\n same node until at least the given `depth`, since a node range\n denotes an adjacent set of nodes in a single parent node.\n */\n constructor(\n /**\n A resolved position along the start of the content. May have a\n `depth` greater than this object's `depth` property, since\n these are the positions that were used to compute the range,\n not re-resolved positions directly at its boundaries.\n */\n $from, \n /**\n A position along the end of the content. See\n caveat for [`$from`](https://prosemirror.net/docs/ref/#model.NodeRange.$from).\n */\n $to, \n /**\n The depth of the node that this range points into.\n */\n depth) {\n this.$from = $from;\n this.$to = $to;\n this.depth = depth;\n }\n /**\n The position at the start of the range.\n */\n get start() { return this.$from.before(this.depth + 1); }\n /**\n The position at the end of the range.\n */\n get end() { return this.$to.after(this.depth + 1); }\n /**\n The parent node that the range points into.\n */\n get parent() { return this.$from.node(this.depth); }\n /**\n The start index of the range in the parent node.\n */\n get startIndex() { return this.$from.index(this.depth); }\n /**\n The end index of the range in the parent node.\n */\n get endIndex() { return this.$to.indexAfter(this.depth); }\n}\n\nconst emptyAttrs = Object.create(null);\n/**\nThis class represents a node in the tree that makes up a\nProseMirror document. So a document is an instance of `Node`, with\nchildren that are also instances of `Node`.\n\nNodes are persistent data structures. Instead of changing them, you\ncreate new ones with the content you want. Old ones keep pointing\nat the old document shape. This is made cheaper by sharing\nstructure between the old and new data as much as possible, which a\ntree shape like this (without back pointers) makes easy.\n\n**Do not** directly mutate the properties of a `Node` object. See\n[the guide](/docs/guide/#doc) for more information.\n*/\nclass Node {\n /**\n @internal\n */\n constructor(\n /**\n The type of node that this is.\n */\n type, \n /**\n An object mapping attribute names to values. The kind of\n attributes allowed and required are\n [determined](https://prosemirror.net/docs/ref/#model.NodeSpec.attrs) by the node type.\n */\n attrs, \n // A fragment holding the node's children.\n content, \n /**\n The marks (things like whether it is emphasized or part of a\n link) applied to this node.\n */\n marks = Mark.none) {\n this.type = type;\n this.attrs = attrs;\n this.marks = marks;\n this.content = content || Fragment.empty;\n }\n /**\n The array of this node's child nodes.\n */\n get children() { return this.content.content; }\n /**\n The size of this node, as defined by the integer-based [indexing\n scheme](/docs/guide/#doc.indexing). For text nodes, this is the\n amount of characters. For other leaf nodes, it is one. For\n non-leaf nodes, it is the size of the content plus two (the\n start and end token).\n */\n get nodeSize() { return this.isLeaf ? 1 : 2 + this.content.size; }\n /**\n The number of children that the node has.\n */\n get childCount() { return this.content.childCount; }\n /**\n Get the child node at the given index. Raises an error when the\n index is out of range.\n */\n child(index) { return this.content.child(index); }\n /**\n Get the child node at the given index, if it exists.\n */\n maybeChild(index) { return this.content.maybeChild(index); }\n /**\n Call `f` for every child node, passing the node, its offset\n into this parent node, and its index.\n */\n forEach(f) { this.content.forEach(f); }\n /**\n Invoke a callback for all descendant nodes recursively between\n the given two positions that are relative to start of this\n node's content. The callback is invoked with the node, its\n position relative to the original node (method receiver),\n its parent node, and its child index. When the callback returns\n false for a given node, that node's children will not be\n recursed over. The last parameter can be used to specify a\n starting position to count from.\n */\n nodesBetween(from, to, f, startPos = 0) {\n this.content.nodesBetween(from, to, f, startPos, this);\n }\n /**\n Call the given callback for every descendant node. Doesn't\n descend into a node when the callback returns `false`.\n */\n descendants(f) {\n this.nodesBetween(0, this.content.size, f);\n }\n /**\n Concatenates all the text nodes found in this fragment and its\n children.\n */\n get textContent() {\n return (this.isLeaf && this.type.spec.leafText)\n ? this.type.spec.leafText(this)\n : this.textBetween(0, this.content.size, \"\");\n }\n /**\n Get all text between positions `from` and `to`. When\n `blockSeparator` is given, it will be inserted to separate text\n from different block nodes. If `leafText` is given, it'll be\n inserted for every non-text leaf node encountered, otherwise\n [`leafText`](https://prosemirror.net/docs/ref/#model.NodeSpec^leafText) will be used.\n */\n textBetween(from, to, blockSeparator, leafText) {\n return this.content.textBetween(from, to, blockSeparator, leafText);\n }\n /**\n Returns this node's first child, or `null` if there are no\n children.\n */\n get firstChild() { return this.content.firstChild; }\n /**\n Returns this node's last child, or `null` if there are no\n children.\n */\n get lastChild() { return this.content.lastChild; }\n /**\n Test whether two nodes represent the same piece of document.\n */\n eq(other) {\n return this == other || (this.sameMarkup(other) && this.content.eq(other.content));\n }\n /**\n Compare the markup (type, attributes, and marks) of this node to\n those of another. Returns `true` if both have the same markup.\n */\n sameMarkup(other) {\n return this.hasMarkup(other.type, other.attrs, other.marks);\n }\n /**\n Check whether this node's markup correspond to the given type,\n attributes, and marks.\n */\n hasMarkup(type, attrs, marks) {\n return this.type == type &&\n compareDeep(this.attrs, attrs || type.defaultAttrs || emptyAttrs) &&\n Mark.sameSet(this.marks, marks || Mark.none);\n }\n /**\n Create a new node with the same markup as this node, containing\n the given content (or empty, if no content is given).\n */\n copy(content = null) {\n if (content == this.content)\n return this;\n return new Node(this.type, this.attrs, content, this.marks);\n }\n /**\n Create a copy of this node, with the given set of marks instead\n of the node's own marks.\n */\n mark(marks) {\n return marks == this.marks ? this : new Node(this.type, this.attrs, this.content, marks);\n }\n /**\n Create a copy of this node with only the content between the\n given positions. If `to` is not given, it defaults to the end of\n the node.\n */\n cut(from, to = this.content.size) {\n if (from == 0 && to == this.content.size)\n return this;\n return this.copy(this.content.cut(from, to));\n }\n /**\n Cut out the part of the document between the given positions, and\n return it as a `Slice` object.\n */\n slice(from, to = this.content.size, includeParents = false) {\n if (from == to)\n return Slice.empty;\n let $from = this.resolve(from), $to = this.resolve(to);\n let depth = includeParents ? 0 : $from.sharedDepth(to);\n let start = $from.start(depth), node = $from.node(depth);\n let content = node.content.cut($from.pos - start, $to.pos - start);\n return new Slice(content, $from.depth - depth, $to.depth - depth);\n }\n /**\n Replace the part of the document between the given positions with\n the given slice. The slice must 'fit', meaning its open sides\n must be able to connect to the surrounding content, and its\n content nodes must be valid children for the node they are placed\n into. If any of this is violated, an error of type\n [`ReplaceError`](https://prosemirror.net/docs/ref/#model.ReplaceError) is thrown.\n */\n replace(from, to, slice) {\n return replace(this.resolve(from), this.resolve(to), slice);\n }\n /**\n Find the node directly after the given position.\n */\n nodeAt(pos) {\n for (let node = this;;) {\n let { index, offset } = node.content.findIndex(pos);\n node = node.maybeChild(index);\n if (!node)\n return null;\n if (offset == pos || node.isText)\n return node;\n pos -= offset + 1;\n }\n }\n /**\n Find the (direct) child node after the given offset, if any,\n and return it along with its index and offset relative to this\n node.\n */\n childAfter(pos) {\n let { index, offset } = this.content.findIndex(pos);\n return { node: this.content.maybeChild(index), index, offset };\n }\n /**\n Find the (direct) child node before the given offset, if any,\n and return it along with its index and offset relative to this\n node.\n */\n childBefore(pos) {\n if (pos == 0)\n return { node: null, index: 0, offset: 0 };\n let { index, offset } = this.content.findIndex(pos);\n if (offset < pos)\n return { node: this.content.child(index), index, offset };\n let node = this.content.child(index - 1);\n return { node, index: index - 1, offset: offset - node.nodeSize };\n }\n /**\n Resolve the given position in the document, returning an\n [object](https://prosemirror.net/docs/ref/#model.ResolvedPos) with information about its context.\n */\n resolve(pos) { return ResolvedPos.resolveCached(this, pos); }\n /**\n @internal\n */\n resolveNoCache(pos) { return ResolvedPos.resolve(this, pos); }\n /**\n Test whether a given mark or mark type occurs in this document\n between the two given positions.\n */\n rangeHasMark(from, to, type) {\n let found = false;\n if (to > from)\n this.nodesBetween(from, to, node => {\n if (type.isInSet(node.marks))\n found = true;\n return !found;\n });\n return found;\n }\n /**\n True when this is a block (non-inline node)\n */\n get isBlock() { return this.type.isBlock; }\n /**\n True when this is a textblock node, a block node with inline\n content.\n */\n get isTextblock() { return this.type.isTextblock; }\n /**\n True when this node allows inline content.\n */\n get inlineContent() { return this.type.inlineContent; }\n /**\n True when this is an inline node (a text node or a node that can\n appear among text).\n */\n get isInline() { return this.type.isInline; }\n /**\n True when this is a text node.\n */\n get isText() { return this.type.isText; }\n /**\n True when this is a leaf node.\n */\n get isLeaf() { return this.type.isLeaf; }\n /**\n True when this is an atom, i.e. when it does not have directly\n editable content. This is usually the same as `isLeaf`, but can\n be configured with the [`atom` property](https://prosemirror.net/docs/ref/#model.NodeSpec.atom)\n on a node's spec (typically used when the node is displayed as\n an uneditable [node view](https://prosemirror.net/docs/ref/#view.NodeView)).\n */\n get isAtom() { return this.type.isAtom; }\n /**\n Return a string representation of this node for debugging\n purposes.\n */\n toString() {\n if (this.type.spec.toDebugString)\n return this.type.spec.toDebugString(this);\n let name = this.type.name;\n if (this.content.size)\n name += \"(\" + this.content.toStringInner() + \")\";\n return wrapMarks(this.marks, name);\n }\n /**\n Get the content match in this node at the given index.\n */\n contentMatchAt(index) {\n let match = this.type.contentMatch.matchFragment(this.content, 0, index);\n if (!match)\n throw new Error(\"Called contentMatchAt on a node with invalid content\");\n return match;\n }\n /**\n Test whether replacing the range between `from` and `to` (by\n child index) with the given replacement fragment (which defaults\n to the empty fragment) would leave the node's content valid. You\n can optionally pass `start` and `end` indices into the\n replacement fragment.\n */\n canReplace(from, to, replacement = Fragment.empty, start = 0, end = replacement.childCount) {\n let one = this.contentMatchAt(from).matchFragment(replacement, start, end);\n let two = one && one.matchFragment(this.content, to);\n if (!two || !two.validEnd)\n return false;\n for (let i = start; i < end; i++)\n if (!this.type.allowsMarks(replacement.child(i).marks))\n return false;\n return true;\n }\n /**\n Test whether replacing the range `from` to `to` (by index) with\n a node of the given type would leave the node's content valid.\n */\n canReplaceWith(from, to, type, marks) {\n if (marks && !this.type.allowsMarks(marks))\n return false;\n let start = this.contentMatchAt(from).matchType(type);\n let end = start && start.matchFragment(this.content, to);\n return end ? end.validEnd : false;\n }\n /**\n Test whether the given node's content could be appended to this\n node. If that node is empty, this will only return true if there\n is at least one node type that can appear in both nodes (to avoid\n merging completely incompatible nodes).\n */\n canAppend(other) {\n if (other.content.size)\n return this.canReplace(this.childCount, this.childCount, other.content);\n else\n return this.type.compatibleContent(other.type);\n }\n /**\n Check whether this node and its descendants conform to the\n schema, and raise an exception when they do not.\n */\n check() {\n this.type.checkContent(this.content);\n this.type.checkAttrs(this.attrs);\n let copy = Mark.none;\n for (let i = 0; i < this.marks.length; i++) {\n let mark = this.marks[i];\n mark.type.checkAttrs(mark.attrs);\n copy = mark.addToSet(copy);\n }\n if (!Mark.sameSet(copy, this.marks))\n throw new RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(m => m.type.name)}`);\n this.content.forEach(node => node.check());\n }\n /**\n Return a JSON-serializeable representation of this node.\n */\n toJSON() {\n let obj = { type: this.type.name };\n for (let _ in this.attrs) {\n obj.attrs = this.attrs;\n break;\n }\n if (this.content.size)\n obj.content = this.content.toJSON();\n if (this.marks.length)\n obj.marks = this.marks.map(n => n.toJSON());\n return obj;\n }\n /**\n Deserialize a node from its JSON representation.\n */\n static fromJSON(schema, json) {\n if (!json)\n throw new RangeError(\"Invalid input for Node.fromJSON\");\n let marks = undefined;\n if (json.marks) {\n if (!Array.isArray(json.marks))\n throw new RangeError(\"Invalid mark data for Node.fromJSON\");\n marks = json.marks.map(schema.markFromJSON);\n }\n if (json.type == \"text\") {\n if (typeof json.text != \"string\")\n throw new RangeError(\"Invalid text node in JSON\");\n return schema.text(json.text, marks);\n }\n let content = Fragment.fromJSON(schema, json.content);\n let node = schema.nodeType(json.type).create(json.attrs, content, marks);\n node.type.checkAttrs(node.attrs);\n return node;\n }\n}\nNode.prototype.text = undefined;\nclass TextNode extends Node {\n /**\n @internal\n */\n constructor(type, attrs, content, marks) {\n super(type, attrs, null, marks);\n if (!content)\n throw new RangeError(\"Empty text nodes are not allowed\");\n this.text = content;\n }\n toString() {\n if (this.type.spec.toDebugString)\n return this.type.spec.toDebugString(this);\n return wrapMarks(this.marks, JSON.stringify(this.text));\n }\n get textContent() { return this.text; }\n textBetween(from, to) { return this.text.slice(from, to); }\n get nodeSize() { return this.text.length; }\n mark(marks) {\n return marks == this.marks ? this : new TextNode(this.type, this.attrs, this.text, marks);\n }\n withText(text) {\n if (text == this.text)\n return this;\n return new TextNode(this.type, this.attrs, text, this.marks);\n }\n cut(from = 0, to = this.text.length) {\n if (from == 0 && to == this.text.length)\n return this;\n return this.withText(this.text.slice(from, to));\n }\n eq(other) {\n return this.sameMarkup(other) && this.text == other.text;\n }\n toJSON() {\n let base = super.toJSON();\n base.text = this.text;\n return base;\n }\n}\nfunction wrapMarks(marks, str) {\n for (let i = marks.length - 1; i >= 0; i--)\n str = marks[i].type.name + \"(\" + str + \")\";\n return str;\n}\n\n/**\nInstances of this class represent a match state of a node type's\n[content expression](https://prosemirror.net/docs/ref/#model.NodeSpec.content), and can be used to\nfind out whether further content matches here, and whether a given\nposition is a valid end of the node.\n*/\nclass ContentMatch {\n /**\n @internal\n */\n constructor(\n /**\n True when this match state represents a valid end of the node.\n */\n validEnd) {\n this.validEnd = validEnd;\n /**\n @internal\n */\n this.next = [];\n /**\n @internal\n */\n this.wrapCache = [];\n }\n /**\n @internal\n */\n static parse(string, nodeTypes) {\n let stream = new TokenStream(string, nodeTypes);\n if (stream.next == null)\n return ContentMatch.empty;\n let expr = parseExpr(stream);\n if (stream.next)\n stream.err(\"Unexpected trailing text\");\n let match = dfa(nfa(expr));\n checkForDeadEnds(match, stream);\n return match;\n }\n /**\n Match a node type, returning a match after that node if\n successful.\n */\n matchType(type) {\n for (let i = 0; i < this.next.length; i++)\n if (this.next[i].type == type)\n return this.next[i].next;\n return null;\n }\n /**\n Try to match a fragment. Returns the resulting match when\n successful.\n */\n matchFragment(frag, start = 0, end = frag.childCount) {\n let cur = this;\n for (let i = start; cur && i < end; i++)\n cur = cur.matchType(frag.child(i).type);\n return cur;\n }\n /**\n @internal\n */\n get inlineContent() {\n return this.next.length != 0 && this.next[0].type.isInline;\n }\n /**\n Get the first matching node type at this match position that can\n be generated.\n */\n get defaultType() {\n for (let i = 0; i < this.next.length; i++) {\n let { type } = this.next[i];\n if (!(type.isText || type.hasRequiredAttrs()))\n return type;\n }\n return null;\n }\n /**\n @internal\n */\n compatible(other) {\n for (let i = 0; i < this.next.length; i++)\n for (let j = 0; j < other.next.length; j++)\n if (this.next[i].type == other.next[j].type)\n return true;\n return false;\n }\n /**\n Try to match the given fragment, and if that fails, see if it can\n be made to match by inserting nodes in front of it. When\n successful, return a fragment of inserted nodes (which may be\n empty if nothing had to be inserted). When `toEnd` is true, only\n return a fragment if the resulting match goes to the end of the\n content expression.\n */\n fillBefore(after, toEnd = false, startIndex = 0) {\n let seen = [this];\n function search(match, types) {\n let finished = match.matchFragment(after, startIndex);\n if (finished && (!toEnd || finished.validEnd))\n return Fragment.from(types.map(tp => tp.createAndFill()));\n for (let i = 0; i < match.next.length; i++) {\n let { type, next } = match.next[i];\n if (!(type.isText || type.hasRequiredAttrs()) && seen.indexOf(next) == -1) {\n seen.push(next);\n let found = search(next, types.concat(type));\n if (found)\n return found;\n }\n }\n return null;\n }\n return search(this, []);\n }\n /**\n Find a set of wrapping node types that would allow a node of the\n given type to appear at this position. The result may be empty\n (when it fits directly) and will be null when no such wrapping\n exists.\n */\n findWrapping(target) {\n for (let i = 0; i < this.wrapCache.length; i += 2)\n if (this.wrapCache[i] == target)\n return this.wrapCache[i + 1];\n let computed = this.computeWrapping(target);\n this.wrapCache.push(target, computed);\n return computed;\n }\n /**\n @internal\n */\n computeWrapping(target) {\n let seen = Object.create(null), active = [{ match: this, type: null, via: null }];\n while (active.length) {\n let current = active.shift(), match = current.match;\n if (match.matchType(target)) {\n let result = [];\n for (let obj = current; obj.type; obj = obj.via)\n result.push(obj.type);\n return result.reverse();\n }\n for (let i = 0; i < match.next.length; i++) {\n let { type, next } = match.next[i];\n if (!type.isLeaf && !type.hasRequiredAttrs() && !(type.name in seen) && (!current.type || next.validEnd)) {\n active.push({ match: type.contentMatch, type, via: current });\n seen[type.name] = true;\n }\n }\n }\n return null;\n }\n /**\n The number of outgoing edges this node has in the finite\n automaton that describes the content expression.\n */\n get edgeCount() {\n return this.next.length;\n }\n /**\n Get the _n_​th outgoing edge from this node in the finite\n automaton that describes the content expression.\n */\n edge(n) {\n if (n >= this.next.length)\n throw new RangeError(`There's no ${n}th edge in this content match`);\n return this.next[n];\n }\n /**\n @internal\n */\n toString() {\n let seen = [];\n function scan(m) {\n seen.push(m);\n for (let i = 0; i < m.next.length; i++)\n if (seen.indexOf(m.next[i].next) == -1)\n scan(m.next[i].next);\n }\n scan(this);\n return seen.map((m, i) => {\n let out = i + (m.validEnd ? \"*\" : \" \") + \" \";\n for (let i = 0; i < m.next.length; i++)\n out += (i ? \", \" : \"\") + m.next[i].type.name + \"->\" + seen.indexOf(m.next[i].next);\n return out;\n }).join(\"\\n\");\n }\n}\n/**\n@internal\n*/\nContentMatch.empty = new ContentMatch(true);\nclass TokenStream {\n constructor(string, nodeTypes) {\n this.string = string;\n this.nodeTypes = nodeTypes;\n this.inline = null;\n this.pos = 0;\n this.tokens = string.split(/\\s*(?=\\b|\\W|$)/);\n if (this.tokens[this.tokens.length - 1] == \"\")\n this.tokens.pop();\n if (this.tokens[0] == \"\")\n this.tokens.shift();\n }\n get next() { return this.tokens[this.pos]; }\n eat(tok) { return this.next == tok && (this.pos++ || true); }\n err(str) { throw new SyntaxError(str + \" (in content expression '\" + this.string + \"')\"); }\n}\nfunction parseExpr(stream) {\n let exprs = [];\n do {\n exprs.push(parseExprSeq(stream));\n } while (stream.eat(\"|\"));\n return exprs.length == 1 ? exprs[0] : { type: \"choice\", exprs };\n}\nfunction parseExprSeq(stream) {\n let exprs = [];\n do {\n exprs.push(parseExprSubscript(stream));\n } while (stream.next && stream.next != \")\" && stream.next != \"|\");\n return exprs.length == 1 ? exprs[0] : { type: \"seq\", exprs };\n}\nfunction parseExprSubscript(stream) {\n let expr = parseExprAtom(stream);\n for (;;) {\n if (stream.eat(\"+\"))\n expr = { type: \"plus\", expr };\n else if (stream.eat(\"*\"))\n expr = { type: \"star\", expr };\n else if (stream.eat(\"?\"))\n expr = { type: \"opt\", expr };\n else if (stream.eat(\"{\"))\n expr = parseExprRange(stream, expr);\n else\n break;\n }\n return expr;\n}\nfunction parseNum(stream) {\n if (/\\D/.test(stream.next))\n stream.err(\"Expected number, got '\" + stream.next + \"'\");\n let result = Number(stream.next);\n stream.pos++;\n return result;\n}\nfunction parseExprRange(stream, expr) {\n let min = parseNum(stream), max = min;\n if (stream.eat(\",\")) {\n if (stream.next != \"}\")\n max = parseNum(stream);\n else\n max = -1;\n }\n if (!stream.eat(\"}\"))\n stream.err(\"Unclosed braced range\");\n return { type: \"range\", min, max, expr };\n}\nfunction resolveName(stream, name) {\n let types = stream.nodeTypes, type = types[name];\n if (type)\n return [type];\n let result = [];\n for (let typeName in types) {\n let type = types[typeName];\n if (type.isInGroup(name))\n result.push(type);\n }\n if (result.length == 0)\n stream.err(\"No node type or group '\" + name + \"' found\");\n return result;\n}\nfunction parseExprAtom(stream) {\n if (stream.eat(\"(\")) {\n let expr = parseExpr(stream);\n if (!stream.eat(\")\"))\n stream.err(\"Missing closing paren\");\n return expr;\n }\n else if (!/\\W/.test(stream.next)) {\n let exprs = resolveName(stream, stream.next).map(type => {\n if (stream.inline == null)\n stream.inline = type.isInline;\n else if (stream.inline != type.isInline)\n stream.err(\"Mixing inline and block content\");\n return { type: \"name\", value: type };\n });\n stream.pos++;\n return exprs.length == 1 ? exprs[0] : { type: \"choice\", exprs };\n }\n else {\n stream.err(\"Unexpected token '\" + stream.next + \"'\");\n }\n}\n// Construct an NFA from an expression as returned by the parser. The\n// NFA is represented as an array of states, which are themselves\n// arrays of edges, which are `{term, to}` objects. The first state is\n// the entry state and the last node is the success state.\n//\n// Note that unlike typical NFAs, the edge ordering in this one is\n// significant, in that it is used to contruct filler content when\n// necessary.\nfunction nfa(expr) {\n let nfa = [[]];\n connect(compile(expr, 0), node());\n return nfa;\n function node() { return nfa.push([]) - 1; }\n function edge(from, to, term) {\n let edge = { term, to };\n nfa[from].push(edge);\n return edge;\n }\n function connect(edges, to) {\n edges.forEach(edge => edge.to = to);\n }\n function compile(expr, from) {\n if (expr.type == \"choice\") {\n return expr.exprs.reduce((out, expr) => out.concat(compile(expr, from)), []);\n }\n else if (expr.type == \"seq\") {\n for (let i = 0;; i++) {\n let next = compile(expr.exprs[i], from);\n if (i == expr.exprs.length - 1)\n return next;\n connect(next, from = node());\n }\n }\n else if (expr.type == \"star\") {\n let loop = node();\n edge(from, loop);\n connect(compile(expr.expr, loop), loop);\n return [edge(loop)];\n }\n else if (expr.type == \"plus\") {\n let loop = node();\n connect(compile(expr.expr, from), loop);\n connect(compile(expr.expr, loop), loop);\n return [edge(loop)];\n }\n else if (expr.type == \"opt\") {\n return [edge(from)].concat(compile(expr.expr, from));\n }\n else if (expr.type == \"range\") {\n let cur = from;\n for (let i = 0; i < expr.min; i++) {\n let next = node();\n connect(compile(expr.expr, cur), next);\n cur = next;\n }\n if (expr.max == -1) {\n connect(compile(expr.expr, cur), cur);\n }\n else {\n for (let i = expr.min; i < expr.max; i++) {\n let next = node();\n edge(cur, next);\n connect(compile(expr.expr, cur), next);\n cur = next;\n }\n }\n return [edge(cur)];\n }\n else if (expr.type == \"name\") {\n return [edge(from, undefined, expr.value)];\n }\n else {\n throw new Error(\"Unknown expr type\");\n }\n }\n}\nfunction cmp(a, b) { return b - a; }\n// Get the set of nodes reachable by null edges from `node`. Omit\n// nodes with only a single null-out-edge, since they may lead to\n// needless duplicated nodes.\nfunction nullFrom(nfa, node) {\n let result = [];\n scan(node);\n return result.sort(cmp);\n function scan(node) {\n let edges = nfa[node];\n if (edges.length == 1 && !edges[0].term)\n return scan(edges[0].to);\n result.push(node);\n for (let i = 0; i < edges.length; i++) {\n let { term, to } = edges[i];\n if (!term && result.indexOf(to) == -1)\n scan(to);\n }\n }\n}\n// Compiles an NFA as produced by `nfa` into a DFA, modeled as a set\n// of state objects (`ContentMatch` instances) with transitions\n// between them.\nfunction dfa(nfa) {\n let labeled = Object.create(null);\n return explore(nullFrom(nfa, 0));\n function explore(states) {\n let out = [];\n states.forEach(node => {\n nfa[node].forEach(({ term, to }) => {\n if (!term)\n return;\n let set;\n for (let i = 0; i < out.length; i++)\n if (out[i][0] == term)\n set = out[i][1];\n nullFrom(nfa, to).forEach(node => {\n if (!set)\n out.push([term, set = []]);\n if (set.indexOf(node) == -1)\n set.push(node);\n });\n });\n });\n let state = labeled[states.join(\",\")] = new ContentMatch(states.indexOf(nfa.length - 1) > -1);\n for (let i = 0; i < out.length; i++) {\n let states = out[i][1].sort(cmp);\n state.next.push({ type: out[i][0], next: labeled[states.join(\",\")] || explore(states) });\n }\n return state;\n }\n}\nfunction checkForDeadEnds(match, stream) {\n for (let i = 0, work = [match]; i < work.length; i++) {\n let state = work[i], dead = !state.validEnd, nodes = [];\n for (let j = 0; j < state.next.length; j++) {\n let { type, next } = state.next[j];\n nodes.push(type.name);\n if (dead && !(type.isText || type.hasRequiredAttrs()))\n dead = false;\n if (work.indexOf(next) == -1)\n work.push(next);\n }\n if (dead)\n stream.err(\"Only non-generatable nodes (\" + nodes.join(\", \") + \") in a required position (see https://prosemirror.net/docs/guide/#generatable)\");\n }\n}\n\n// For node types where all attrs have a default value (or which don't\n// have any attributes), build up a single reusable default attribute\n// object, and use it for all nodes that don't specify specific\n// attributes.\nfunction defaultAttrs(attrs) {\n let defaults = Object.create(null);\n for (let attrName in attrs) {\n let attr = attrs[attrName];\n if (!attr.hasDefault)\n return null;\n defaults[attrName] = attr.default;\n }\n return defaults;\n}\nfunction computeAttrs(attrs, value) {\n let built = Object.create(null);\n for (let name in attrs) {\n let given = value && value[name];\n if (given === undefined) {\n let attr = attrs[name];\n if (attr.hasDefault)\n given = attr.default;\n else\n throw new RangeError(\"No value supplied for attribute \" + name);\n }\n built[name] = given;\n }\n return built;\n}\nfunction checkAttrs(attrs, values, type, name) {\n for (let name in values)\n if (!(name in attrs))\n throw new RangeError(`Unsupported attribute ${name} for ${type} of type ${name}`);\n for (let name in attrs) {\n let attr = attrs[name];\n if (attr.validate)\n attr.validate(values[name]);\n }\n}\nfunction initAttrs(typeName, attrs) {\n let result = Object.create(null);\n if (attrs)\n for (let name in attrs)\n result[name] = new Attribute(typeName, name, attrs[name]);\n return result;\n}\n/**\nNode types are objects allocated once per `Schema` and used to\n[tag](https://prosemirror.net/docs/ref/#model.Node.type) `Node` instances. They contain information\nabout the node type, such as its name and what kind of node it\nrepresents.\n*/\nclass NodeType {\n /**\n @internal\n */\n constructor(\n /**\n The name the node type has in this schema.\n */\n name, \n /**\n A link back to the `Schema` the node type belongs to.\n */\n schema, \n /**\n The spec that this type is based on\n */\n spec) {\n this.name = name;\n this.schema = schema;\n this.spec = spec;\n /**\n The set of marks allowed in this node. `null` means all marks\n are allowed.\n */\n this.markSet = null;\n this.groups = spec.group ? spec.group.split(\" \") : [];\n this.attrs = initAttrs(name, spec.attrs);\n this.defaultAttrs = defaultAttrs(this.attrs);\n this.contentMatch = null;\n this.inlineContent = null;\n this.isBlock = !(spec.inline || name == \"text\");\n this.isText = name == \"text\";\n }\n /**\n True if this is an inline type.\n */\n get isInline() { return !this.isBlock; }\n /**\n True if this is a textblock type, a block that contains inline\n content.\n */\n get isTextblock() { return this.isBlock && this.inlineContent; }\n /**\n True for node types that allow no content.\n */\n get isLeaf() { return this.contentMatch == ContentMatch.empty; }\n /**\n True when this node is an atom, i.e. when it does not have\n directly editable content.\n */\n get isAtom() { return this.isLeaf || !!this.spec.atom; }\n /**\n Return true when this node type is part of the given\n [group](https://prosemirror.net/docs/ref/#model.NodeSpec.group).\n */\n isInGroup(group) {\n return this.groups.indexOf(group) > -1;\n }\n /**\n The node type's [whitespace](https://prosemirror.net/docs/ref/#model.NodeSpec.whitespace) option.\n */\n get whitespace() {\n return this.spec.whitespace || (this.spec.code ? \"pre\" : \"normal\");\n }\n /**\n Tells you whether this node type has any required attributes.\n */\n hasRequiredAttrs() {\n for (let n in this.attrs)\n if (this.attrs[n].isRequired)\n return true;\n return false;\n }\n /**\n Indicates whether this node allows some of the same content as\n the given node type.\n */\n compatibleContent(other) {\n return this == other || this.contentMatch.compatible(other.contentMatch);\n }\n /**\n @internal\n */\n computeAttrs(attrs) {\n if (!attrs && this.defaultAttrs)\n return this.defaultAttrs;\n else\n return computeAttrs(this.attrs, attrs);\n }\n /**\n Create a `Node` of this type. The given attributes are\n checked and defaulted (you can pass `null` to use the type's\n defaults entirely, if no required attributes exist). `content`\n may be a `Fragment`, a node, an array of nodes, or\n `null`. Similarly `marks` may be `null` to default to the empty\n set of marks.\n */\n create(attrs = null, content, marks) {\n if (this.isText)\n throw new Error(\"NodeType.create can't construct text nodes\");\n return new Node(this, this.computeAttrs(attrs), Fragment.from(content), Mark.setFrom(marks));\n }\n /**\n Like [`create`](https://prosemirror.net/docs/ref/#model.NodeType.create), but check the given content\n against the node type's content restrictions, and throw an error\n if it doesn't match.\n */\n createChecked(attrs = null, content, marks) {\n content = Fragment.from(content);\n this.checkContent(content);\n return new Node(this, this.computeAttrs(attrs), content, Mark.setFrom(marks));\n }\n /**\n Like [`create`](https://prosemirror.net/docs/ref/#model.NodeType.create), but see if it is\n necessary to add nodes to the start or end of the given fragment\n to make it fit the node. If no fitting wrapping can be found,\n return null. Note that, due to the fact that required nodes can\n always be created, this will always succeed if you pass null or\n `Fragment.empty` as content.\n */\n createAndFill(attrs = null, content, marks) {\n attrs = this.computeAttrs(attrs);\n content = Fragment.from(content);\n if (content.size) {\n let before = this.contentMatch.fillBefore(content);\n if (!before)\n return null;\n content = before.append(content);\n }\n let matched = this.contentMatch.matchFragment(content);\n let after = matched && matched.fillBefore(Fragment.empty, true);\n if (!after)\n return null;\n return new Node(this, attrs, content.append(after), Mark.setFrom(marks));\n }\n /**\n Returns true if the given fragment is valid content for this node\n type.\n */\n validContent(content) {\n let result = this.contentMatch.matchFragment(content);\n if (!result || !result.validEnd)\n return false;\n for (let i = 0; i < content.childCount; i++)\n if (!this.allowsMarks(content.child(i).marks))\n return false;\n return true;\n }\n /**\n Throws a RangeError if the given fragment is not valid content for this\n node type.\n @internal\n */\n checkContent(content) {\n if (!this.validContent(content))\n throw new RangeError(`Invalid content for node ${this.name}: ${content.toString().slice(0, 50)}`);\n }\n /**\n @internal\n */\n checkAttrs(attrs) {\n checkAttrs(this.attrs, attrs, \"node\", this.name);\n }\n /**\n Check whether the given mark type is allowed in this node.\n */\n allowsMarkType(markType) {\n return this.markSet == null || this.markSet.indexOf(markType) > -1;\n }\n /**\n Test whether the given set of marks are allowed in this node.\n */\n allowsMarks(marks) {\n if (this.markSet == null)\n return true;\n for (let i = 0; i < marks.length; i++)\n if (!this.allowsMarkType(marks[i].type))\n return false;\n return true;\n }\n /**\n Removes the marks that are not allowed in this node from the given set.\n */\n allowedMarks(marks) {\n if (this.markSet == null)\n return marks;\n let copy;\n for (let i = 0; i < marks.length; i++) {\n if (!this.allowsMarkType(marks[i].type)) {\n if (!copy)\n copy = marks.slice(0, i);\n }\n else if (copy) {\n copy.push(marks[i]);\n }\n }\n return !copy ? marks : copy.length ? copy : Mark.none;\n }\n /**\n @internal\n */\n static compile(nodes, schema) {\n let result = Object.create(null);\n nodes.forEach((name, spec) => result[name] = new NodeType(name, schema, spec));\n let topType = schema.spec.topNode || \"doc\";\n if (!result[topType])\n throw new RangeError(\"Schema is missing its top node type ('\" + topType + \"')\");\n if (!result.text)\n throw new RangeError(\"Every schema needs a 'text' type\");\n for (let _ in result.text.attrs)\n throw new RangeError(\"The text node type should not have attributes\");\n return result;\n }\n}\nfunction validateType(typeName, attrName, type) {\n let types = type.split(\"|\");\n return (value) => {\n let name = value === null ? \"null\" : typeof value;\n if (types.indexOf(name) < 0)\n throw new RangeError(`Expected value of type ${types} for attribute ${attrName} on type ${typeName}, got ${name}`);\n };\n}\n// Attribute descriptors\nclass Attribute {\n constructor(typeName, attrName, options) {\n this.hasDefault = Object.prototype.hasOwnProperty.call(options, \"default\");\n this.default = options.default;\n this.validate = typeof options.validate == \"string\" ? validateType(typeName, attrName, options.validate) : options.validate;\n }\n get isRequired() {\n return !this.hasDefault;\n }\n}\n// Marks\n/**\nLike nodes, marks (which are associated with nodes to signify\nthings like emphasis or being part of a link) are\n[tagged](https://prosemirror.net/docs/ref/#model.Mark.type) with type objects, which are\ninstantiated once per `Schema`.\n*/\nclass MarkType {\n /**\n @internal\n */\n constructor(\n /**\n The name of the mark type.\n */\n name, \n /**\n @internal\n */\n rank, \n /**\n The schema that this mark type instance is part of.\n */\n schema, \n /**\n The spec on which the type is based.\n */\n spec) {\n this.name = name;\n this.rank = rank;\n this.schema = schema;\n this.spec = spec;\n this.attrs = initAttrs(name, spec.attrs);\n this.excluded = null;\n let defaults = defaultAttrs(this.attrs);\n this.instance = defaults ? new Mark(this, defaults) : null;\n }\n /**\n Create a mark of this type. `attrs` may be `null` or an object\n containing only some of the mark's attributes. The others, if\n they have defaults, will be added.\n */\n create(attrs = null) {\n if (!attrs && this.instance)\n return this.instance;\n return new Mark(this, computeAttrs(this.attrs, attrs));\n }\n /**\n @internal\n */\n static compile(marks, schema) {\n let result = Object.create(null), rank = 0;\n marks.forEach((name, spec) => result[name] = new MarkType(name, rank++, schema, spec));\n return result;\n }\n /**\n When there is a mark of this type in the given set, a new set\n without it is returned. Otherwise, the input set is returned.\n */\n removeFromSet(set) {\n for (var i = 0; i < set.length; i++)\n if (set[i].type == this) {\n set = set.slice(0, i).concat(set.slice(i + 1));\n i--;\n }\n return set;\n }\n /**\n Tests whether there is a mark of this type in the given set.\n */\n isInSet(set) {\n for (let i = 0; i < set.length; i++)\n if (set[i].type == this)\n return set[i];\n }\n /**\n @internal\n */\n checkAttrs(attrs) {\n checkAttrs(this.attrs, attrs, \"mark\", this.name);\n }\n /**\n Queries whether a given mark type is\n [excluded](https://prosemirror.net/docs/ref/#model.MarkSpec.excludes) by this one.\n */\n excludes(other) {\n return this.excluded.indexOf(other) > -1;\n }\n}\n/**\nA document schema. Holds [node](https://prosemirror.net/docs/ref/#model.NodeType) and [mark\ntype](https://prosemirror.net/docs/ref/#model.MarkType) objects for the nodes and marks that may\noccur in conforming documents, and provides functionality for\ncreating and deserializing such documents.\n\nWhen given, the type parameters provide the names of the nodes and\nmarks in this schema.\n*/\nclass Schema {\n /**\n Construct a schema from a schema [specification](https://prosemirror.net/docs/ref/#model.SchemaSpec).\n */\n constructor(spec) {\n /**\n The [linebreak\n replacement](https://prosemirror.net/docs/ref/#model.NodeSpec.linebreakReplacement) node defined\n in this schema, if any.\n */\n this.linebreakReplacement = null;\n /**\n An object for storing whatever values modules may want to\n compute and cache per schema. (If you want to store something\n in it, try to use property names unlikely to clash.)\n */\n this.cached = Object.create(null);\n let instanceSpec = this.spec = {};\n for (let prop in spec)\n instanceSpec[prop] = spec[prop];\n instanceSpec.nodes = OrderedMap.from(spec.nodes),\n instanceSpec.marks = OrderedMap.from(spec.marks || {}),\n this.nodes = NodeType.compile(this.spec.nodes, this);\n this.marks = MarkType.compile(this.spec.marks, this);\n let contentExprCache = Object.create(null);\n for (let prop in this.nodes) {\n if (prop in this.marks)\n throw new RangeError(prop + \" can not be both a node and a mark\");\n let type = this.nodes[prop], contentExpr = type.spec.content || \"\", markExpr = type.spec.marks;\n type.contentMatch = contentExprCache[contentExpr] ||\n (contentExprCache[contentExpr] = ContentMatch.parse(contentExpr, this.nodes));\n type.inlineContent = type.contentMatch.inlineContent;\n if (type.spec.linebreakReplacement) {\n if (this.linebreakReplacement)\n throw new RangeError(\"Multiple linebreak nodes defined\");\n if (!type.isInline || !type.isLeaf)\n throw new RangeError(\"Linebreak replacement nodes must be inline leaf nodes\");\n this.linebreakReplacement = type;\n }\n type.markSet = markExpr == \"_\" ? null :\n markExpr ? gatherMarks(this, markExpr.split(\" \")) :\n markExpr == \"\" || !type.inlineContent ? [] : null;\n }\n for (let prop in this.marks) {\n let type = this.marks[prop], excl = type.spec.excludes;\n type.excluded = excl == null ? [type] : excl == \"\" ? [] : gatherMarks(this, excl.split(\" \"));\n }\n this.nodeFromJSON = this.nodeFromJSON.bind(this);\n this.markFromJSON = this.markFromJSON.bind(this);\n this.topNodeType = this.nodes[this.spec.topNode || \"doc\"];\n this.cached.wrappings = Object.create(null);\n }\n /**\n Create a node in this schema. The `type` may be a string or a\n `NodeType` instance. Attributes will be extended with defaults,\n `content` may be a `Fragment`, `null`, a `Node`, or an array of\n nodes.\n */\n node(type, attrs = null, content, marks) {\n if (typeof type == \"string\")\n type = this.nodeType(type);\n else if (!(type instanceof NodeType))\n throw new RangeError(\"Invalid node type: \" + type);\n else if (type.schema != this)\n throw new RangeError(\"Node type from different schema used (\" + type.name + \")\");\n return type.createChecked(attrs, content, marks);\n }\n /**\n Create a text node in the schema. Empty text nodes are not\n allowed.\n */\n text(text, marks) {\n let type = this.nodes.text;\n return new TextNode(type, type.defaultAttrs, text, Mark.setFrom(marks));\n }\n /**\n Create a mark with the given type and attributes.\n */\n mark(type, attrs) {\n if (typeof type == \"string\")\n type = this.marks[type];\n return type.create(attrs);\n }\n /**\n Deserialize a node from its JSON representation. This method is\n bound.\n */\n nodeFromJSON(json) {\n return Node.fromJSON(this, json);\n }\n /**\n Deserialize a mark from its JSON representation. This method is\n bound.\n */\n markFromJSON(json) {\n return Mark.fromJSON(this, json);\n }\n /**\n @internal\n */\n nodeType(name) {\n let found = this.nodes[name];\n if (!found)\n throw new RangeError(\"Unknown node type: \" + name);\n return found;\n }\n}\nfunction gatherMarks(schema, marks) {\n let found = [];\n for (let i = 0; i < marks.length; i++) {\n let name = marks[i], mark = schema.marks[name], ok = mark;\n if (mark) {\n found.push(mark);\n }\n else {\n for (let prop in schema.marks) {\n let mark = schema.marks[prop];\n if (name == \"_\" || (mark.spec.group && mark.spec.group.split(\" \").indexOf(name) > -1))\n found.push(ok = mark);\n }\n }\n if (!ok)\n throw new SyntaxError(\"Unknown mark type: '\" + marks[i] + \"'\");\n }\n return found;\n}\n\nfunction isTagRule(rule) { return rule.tag != null; }\nfunction isStyleRule(rule) { return rule.style != null; }\n/**\nA DOM parser represents a strategy for parsing DOM content into a\nProseMirror document conforming to a given schema. Its behavior is\ndefined by an array of [rules](https://prosemirror.net/docs/ref/#model.ParseRule).\n*/\nclass DOMParser {\n /**\n Create a parser that targets the given schema, using the given\n parsing rules.\n */\n constructor(\n /**\n The schema into which the parser parses.\n */\n schema, \n /**\n The set of [parse rules](https://prosemirror.net/docs/ref/#model.ParseRule) that the parser\n uses, in order of precedence.\n */\n rules) {\n this.schema = schema;\n this.rules = rules;\n /**\n @internal\n */\n this.tags = [];\n /**\n @internal\n */\n this.styles = [];\n let matchedStyles = this.matchedStyles = [];\n rules.forEach(rule => {\n if (isTagRule(rule)) {\n this.tags.push(rule);\n }\n else if (isStyleRule(rule)) {\n let prop = /[^=]*/.exec(rule.style)[0];\n if (matchedStyles.indexOf(prop) < 0)\n matchedStyles.push(prop);\n this.styles.push(rule);\n }\n });\n // Only normalize list elements when lists in the schema can't directly contain themselves\n this.normalizeLists = !this.tags.some(r => {\n if (!/^(ul|ol)\\b/.test(r.tag) || !r.node)\n return false;\n let node = schema.nodes[r.node];\n return node.contentMatch.matchType(node);\n });\n }\n /**\n Parse a document from the content of a DOM node.\n */\n parse(dom, options = {}) {\n let context = new ParseContext(this, options, false);\n context.addAll(dom, Mark.none, options.from, options.to);\n return context.finish();\n }\n /**\n Parses the content of the given DOM node, like\n [`parse`](https://prosemirror.net/docs/ref/#model.DOMParser.parse), and takes the same set of\n options. But unlike that method, which produces a whole node,\n this one returns a slice that is open at the sides, meaning that\n the schema constraints aren't applied to the start of nodes to\n the left of the input and the end of nodes at the end.\n */\n parseSlice(dom, options = {}) {\n let context = new ParseContext(this, options, true);\n context.addAll(dom, Mark.none, options.from, options.to);\n return Slice.maxOpen(context.finish());\n }\n /**\n @internal\n */\n matchTag(dom, context, after) {\n for (let i = after ? this.tags.indexOf(after) + 1 : 0; i < this.tags.length; i++) {\n let rule = this.tags[i];\n if (matches(dom, rule.tag) &&\n (rule.namespace === undefined || dom.namespaceURI == rule.namespace) &&\n (!rule.context || context.matchesContext(rule.context))) {\n if (rule.getAttrs) {\n let result = rule.getAttrs(dom);\n if (result === false)\n continue;\n rule.attrs = result || undefined;\n }\n return rule;\n }\n }\n }\n /**\n @internal\n */\n matchStyle(prop, value, context, after) {\n for (let i = after ? this.styles.indexOf(after) + 1 : 0; i < this.styles.length; i++) {\n let rule = this.styles[i], style = rule.style;\n if (style.indexOf(prop) != 0 ||\n rule.context && !context.matchesContext(rule.context) ||\n // Test that the style string either precisely matches the prop,\n // or has an '=' sign after the prop, followed by the given\n // value.\n style.length > prop.length &&\n (style.charCodeAt(prop.length) != 61 || style.slice(prop.length + 1) != value))\n continue;\n if (rule.getAttrs) {\n let result = rule.getAttrs(value);\n if (result === false)\n continue;\n rule.attrs = result || undefined;\n }\n return rule;\n }\n }\n /**\n @internal\n */\n static schemaRules(schema) {\n let result = [];\n function insert(rule) {\n let priority = rule.priority == null ? 50 : rule.priority, i = 0;\n for (; i < result.length; i++) {\n let next = result[i], nextPriority = next.priority == null ? 50 : next.priority;\n if (nextPriority < priority)\n break;\n }\n result.splice(i, 0, rule);\n }\n for (let name in schema.marks) {\n let rules = schema.marks[name].spec.parseDOM;\n if (rules)\n rules.forEach(rule => {\n insert(rule = copy(rule));\n if (!(rule.mark || rule.ignore || rule.clearMark))\n rule.mark = name;\n });\n }\n for (let name in schema.nodes) {\n let rules = schema.nodes[name].spec.parseDOM;\n if (rules)\n rules.forEach(rule => {\n insert(rule = copy(rule));\n if (!(rule.node || rule.ignore || rule.mark))\n rule.node = name;\n });\n }\n return result;\n }\n /**\n Construct a DOM parser using the parsing rules listed in a\n schema's [node specs](https://prosemirror.net/docs/ref/#model.NodeSpec.parseDOM), reordered by\n [priority](https://prosemirror.net/docs/ref/#model.ParseRule.priority).\n */\n static fromSchema(schema) {\n return schema.cached.domParser ||\n (schema.cached.domParser = new DOMParser(schema, DOMParser.schemaRules(schema)));\n }\n}\nconst blockTags = {\n address: true, article: true, aside: true, blockquote: true, canvas: true,\n dd: true, div: true, dl: true, fieldset: true, figcaption: true, figure: true,\n footer: true, form: true, h1: true, h2: true, h3: true, h4: true, h5: true,\n h6: true, header: true, hgroup: true, hr: true, li: true, noscript: true, ol: true,\n output: true, p: true, pre: true, section: true, table: true, tfoot: true, ul: true\n};\nconst ignoreTags = {\n head: true, noscript: true, object: true, script: true, style: true, title: true\n};\nconst listTags = { ol: true, ul: true };\n// Using a bitfield for node context options\nconst OPT_PRESERVE_WS = 1, OPT_PRESERVE_WS_FULL = 2, OPT_OPEN_LEFT = 4;\nfunction wsOptionsFor(type, preserveWhitespace, base) {\n if (preserveWhitespace != null)\n return (preserveWhitespace ? OPT_PRESERVE_WS : 0) |\n (preserveWhitespace === \"full\" ? OPT_PRESERVE_WS_FULL : 0);\n return type && type.whitespace == \"pre\" ? OPT_PRESERVE_WS | OPT_PRESERVE_WS_FULL : base & ~OPT_OPEN_LEFT;\n}\nclass NodeContext {\n constructor(type, attrs, marks, solid, match, options) {\n this.type = type;\n this.attrs = attrs;\n this.marks = marks;\n this.solid = solid;\n this.options = options;\n this.content = [];\n // Marks applied to the node's children\n this.activeMarks = Mark.none;\n this.match = match || (options & OPT_OPEN_LEFT ? null : type.contentMatch);\n }\n findWrapping(node) {\n if (!this.match) {\n if (!this.type)\n return [];\n let fill = this.type.contentMatch.fillBefore(Fragment.from(node));\n if (fill) {\n this.match = this.type.contentMatch.matchFragment(fill);\n }\n else {\n let start = this.type.contentMatch, wrap;\n if (wrap = start.findWrapping(node.type)) {\n this.match = start;\n return wrap;\n }\n else {\n return null;\n }\n }\n }\n return this.match.findWrapping(node.type);\n }\n finish(openEnd) {\n if (!(this.options & OPT_PRESERVE_WS)) { // Strip trailing whitespace\n let last = this.content[this.content.length - 1], m;\n if (last && last.isText && (m = /[ \\t\\r\\n\\u000c]+$/.exec(last.text))) {\n let text = last;\n if (last.text.length == m[0].length)\n this.content.pop();\n else\n this.content[this.content.length - 1] = text.withText(text.text.slice(0, text.text.length - m[0].length));\n }\n }\n let content = Fragment.from(this.content);\n if (!openEnd && this.match)\n content = content.append(this.match.fillBefore(Fragment.empty, true));\n return this.type ? this.type.create(this.attrs, content, this.marks) : content;\n }\n inlineContext(node) {\n if (this.type)\n return this.type.inlineContent;\n if (this.content.length)\n return this.content[0].isInline;\n return node.parentNode && !blockTags.hasOwnProperty(node.parentNode.nodeName.toLowerCase());\n }\n}\nclass ParseContext {\n constructor(\n // The parser we are using.\n parser, \n // The options passed to this parse.\n options, isOpen) {\n this.parser = parser;\n this.options = options;\n this.isOpen = isOpen;\n this.open = 0;\n this.localPreserveWS = false;\n let topNode = options.topNode, topContext;\n let topOptions = wsOptionsFor(null, options.preserveWhitespace, 0) | (isOpen ? OPT_OPEN_LEFT : 0);\n if (topNode)\n topContext = new NodeContext(topNode.type, topNode.attrs, Mark.none, true, options.topMatch || topNode.type.contentMatch, topOptions);\n else if (isOpen)\n topContext = new NodeContext(null, null, Mark.none, true, null, topOptions);\n else\n topContext = new NodeContext(parser.schema.topNodeType, null, Mark.none, true, null, topOptions);\n this.nodes = [topContext];\n this.find = options.findPositions;\n this.needsBlock = false;\n }\n get top() {\n return this.nodes[this.open];\n }\n // Add a DOM node to the content. Text is inserted as text node,\n // otherwise, the node is passed to `addElement` or, if it has a\n // `style` attribute, `addElementWithStyles`.\n addDOM(dom, marks) {\n if (dom.nodeType == 3)\n this.addTextNode(dom, marks);\n else if (dom.nodeType == 1)\n this.addElement(dom, marks);\n }\n addTextNode(dom, marks) {\n let value = dom.nodeValue;\n let top = this.top, preserveWS = (top.options & OPT_PRESERVE_WS_FULL) ? \"full\"\n : this.localPreserveWS || (top.options & OPT_PRESERVE_WS) > 0;\n if (preserveWS === \"full\" ||\n top.inlineContext(dom) ||\n /[^ \\t\\r\\n\\u000c]/.test(value)) {\n if (!preserveWS) {\n value = value.replace(/[ \\t\\r\\n\\u000c]+/g, \" \");\n // If this starts with whitespace, and there is no node before it, or\n // a hard break, or a text node that ends with whitespace, strip the\n // leading space.\n if (/^[ \\t\\r\\n\\u000c]/.test(value) && this.open == this.nodes.length - 1) {\n let nodeBefore = top.content[top.content.length - 1];\n let domNodeBefore = dom.previousSibling;\n if (!nodeBefore ||\n (domNodeBefore && domNodeBefore.nodeName == 'BR') ||\n (nodeBefore.isText && /[ \\t\\r\\n\\u000c]$/.test(nodeBefore.text)))\n value = value.slice(1);\n }\n }\n else if (preserveWS !== \"full\") {\n value = value.replace(/\\r?\\n|\\r/g, \" \");\n }\n else {\n value = value.replace(/\\r\\n?/g, \"\\n\");\n }\n if (value)\n this.insertNode(this.parser.schema.text(value), marks);\n this.findInText(dom);\n }\n else {\n this.findInside(dom);\n }\n }\n // Try to find a handler for the given tag and use that to parse. If\n // none is found, the element's content nodes are added directly.\n addElement(dom, marks, matchAfter) {\n let outerWS = this.localPreserveWS, top = this.top;\n if (dom.tagName == \"PRE\" || /pre/.test(dom.style && dom.style.whiteSpace))\n this.localPreserveWS = true;\n let name = dom.nodeName.toLowerCase(), ruleID;\n if (listTags.hasOwnProperty(name) && this.parser.normalizeLists)\n normalizeList(dom);\n let rule = (this.options.ruleFromNode && this.options.ruleFromNode(dom)) ||\n (ruleID = this.parser.matchTag(dom, this, matchAfter));\n out: if (rule ? rule.ignore : ignoreTags.hasOwnProperty(name)) {\n this.findInside(dom);\n this.ignoreFallback(dom, marks);\n }\n else if (!rule || rule.skip || rule.closeParent) {\n if (rule && rule.closeParent)\n this.open = Math.max(0, this.open - 1);\n else if (rule && rule.skip.nodeType)\n dom = rule.skip;\n let sync, oldNeedsBlock = this.needsBlock;\n if (blockTags.hasOwnProperty(name)) {\n if (top.content.length && top.content[0].isInline && this.open) {\n this.open--;\n top = this.top;\n }\n sync = true;\n if (!top.type)\n this.needsBlock = true;\n }\n else if (!dom.firstChild) {\n this.leafFallback(dom, marks);\n break out;\n }\n let innerMarks = rule && rule.skip ? marks : this.readStyles(dom, marks);\n if (innerMarks)\n this.addAll(dom, innerMarks);\n if (sync)\n this.sync(top);\n this.needsBlock = oldNeedsBlock;\n }\n else {\n let innerMarks = this.readStyles(dom, marks);\n if (innerMarks)\n this.addElementByRule(dom, rule, innerMarks, rule.consuming === false ? ruleID : undefined);\n }\n this.localPreserveWS = outerWS;\n }\n // Called for leaf DOM nodes that would otherwise be ignored\n leafFallback(dom, marks) {\n if (dom.nodeName == \"BR\" && this.top.type && this.top.type.inlineContent)\n this.addTextNode(dom.ownerDocument.createTextNode(\"\\n\"), marks);\n }\n // Called for ignored nodes\n ignoreFallback(dom, marks) {\n // Ignored BR nodes should at least create an inline context\n if (dom.nodeName == \"BR\" && (!this.top.type || !this.top.type.inlineContent))\n this.findPlace(this.parser.schema.text(\"-\"), marks);\n }\n // Run any style parser associated with the node's styles. Either\n // return an updated array of marks, or null to indicate some of the\n // styles had a rule with `ignore` set.\n readStyles(dom, marks) {\n let styles = dom.style;\n // Because many properties will only show up in 'normalized' form\n // in `style.item` (i.e. text-decoration becomes\n // text-decoration-line, text-decoration-color, etc), we directly\n // query the styles mentioned in our rules instead of iterating\n // over the items.\n if (styles && styles.length)\n for (let i = 0; i < this.parser.matchedStyles.length; i++) {\n let name = this.parser.matchedStyles[i], value = styles.getPropertyValue(name);\n if (value)\n for (let after = undefined;;) {\n let rule = this.parser.matchStyle(name, value, this, after);\n if (!rule)\n break;\n if (rule.ignore)\n return null;\n if (rule.clearMark)\n marks = marks.filter(m => !rule.clearMark(m));\n else\n marks = marks.concat(this.parser.schema.marks[rule.mark].create(rule.attrs));\n if (rule.consuming === false)\n after = rule;\n else\n break;\n }\n }\n return marks;\n }\n // Look up a handler for the given node. If none are found, return\n // false. Otherwise, apply it, use its return value to drive the way\n // the node's content is wrapped, and return true.\n addElementByRule(dom, rule, marks, continueAfter) {\n let sync, nodeType;\n if (rule.node) {\n nodeType = this.parser.schema.nodes[rule.node];\n if (!nodeType.isLeaf) {\n let inner = this.enter(nodeType, rule.attrs || null, marks, rule.preserveWhitespace);\n if (inner) {\n sync = true;\n marks = inner;\n }\n }\n else if (!this.insertNode(nodeType.create(rule.attrs), marks)) {\n this.leafFallback(dom, marks);\n }\n }\n else {\n let markType = this.parser.schema.marks[rule.mark];\n marks = marks.concat(markType.create(rule.attrs));\n }\n let startIn = this.top;\n if (nodeType && nodeType.isLeaf) {\n this.findInside(dom);\n }\n else if (continueAfter) {\n this.addElement(dom, marks, continueAfter);\n }\n else if (rule.getContent) {\n this.findInside(dom);\n rule.getContent(dom, this.parser.schema).forEach(node => this.insertNode(node, marks));\n }\n else {\n let contentDOM = dom;\n if (typeof rule.contentElement == \"string\")\n contentDOM = dom.querySelector(rule.contentElement);\n else if (typeof rule.contentElement == \"function\")\n contentDOM = rule.contentElement(dom);\n else if (rule.contentElement)\n contentDOM = rule.contentElement;\n this.findAround(dom, contentDOM, true);\n this.addAll(contentDOM, marks);\n this.findAround(dom, contentDOM, false);\n }\n if (sync && this.sync(startIn))\n this.open--;\n }\n // Add all child nodes between `startIndex` and `endIndex` (or the\n // whole node, if not given). If `sync` is passed, use it to\n // synchronize after every block element.\n addAll(parent, marks, startIndex, endIndex) {\n let index = startIndex || 0;\n for (let dom = startIndex ? parent.childNodes[startIndex] : parent.firstChild, end = endIndex == null ? null : parent.childNodes[endIndex]; dom != end; dom = dom.nextSibling, ++index) {\n this.findAtPoint(parent, index);\n this.addDOM(dom, marks);\n }\n this.findAtPoint(parent, index);\n }\n // Try to find a way to fit the given node type into the current\n // context. May add intermediate wrappers and/or leave non-solid\n // nodes that we're in.\n findPlace(node, marks) {\n let route, sync;\n for (let depth = this.open; depth >= 0; depth--) {\n let cx = this.nodes[depth];\n let found = cx.findWrapping(node);\n if (found && (!route || route.length > found.length)) {\n route = found;\n sync = cx;\n if (!found.length)\n break;\n }\n if (cx.solid)\n break;\n }\n if (!route)\n return null;\n this.sync(sync);\n for (let i = 0; i < route.length; i++)\n marks = this.enterInner(route[i], null, marks, false);\n return marks;\n }\n // Try to insert the given node, adjusting the context when needed.\n insertNode(node, marks) {\n if (node.isInline && this.needsBlock && !this.top.type) {\n let block = this.textblockFromContext();\n if (block)\n marks = this.enterInner(block, null, marks);\n }\n let innerMarks = this.findPlace(node, marks);\n if (innerMarks) {\n this.closeExtra();\n let top = this.top;\n if (top.match)\n top.match = top.match.matchType(node.type);\n let nodeMarks = Mark.none;\n for (let m of innerMarks.concat(node.marks))\n if (top.type ? top.type.allowsMarkType(m.type) : markMayApply(m.type, node.type))\n nodeMarks = m.addToSet(nodeMarks);\n top.content.push(node.mark(nodeMarks));\n return true;\n }\n return false;\n }\n // Try to start a node of the given type, adjusting the context when\n // necessary.\n enter(type, attrs, marks, preserveWS) {\n let innerMarks = this.findPlace(type.create(attrs), marks);\n if (innerMarks)\n innerMarks = this.enterInner(type, attrs, marks, true, preserveWS);\n return innerMarks;\n }\n // Open a node of the given type\n enterInner(type, attrs, marks, solid = false, preserveWS) {\n this.closeExtra();\n let top = this.top;\n top.match = top.match && top.match.matchType(type);\n let options = wsOptionsFor(type, preserveWS, top.options);\n if ((top.options & OPT_OPEN_LEFT) && top.content.length == 0)\n options |= OPT_OPEN_LEFT;\n let applyMarks = Mark.none;\n marks = marks.filter(m => {\n if (top.type ? top.type.allowsMarkType(m.type) : markMayApply(m.type, type)) {\n applyMarks = m.addToSet(applyMarks);\n return false;\n }\n return true;\n });\n this.nodes.push(new NodeContext(type, attrs, applyMarks, solid, null, options));\n this.open++;\n return marks;\n }\n // Make sure all nodes above this.open are finished and added to\n // their parents\n closeExtra(openEnd = false) {\n let i = this.nodes.length - 1;\n if (i > this.open) {\n for (; i > this.open; i--)\n this.nodes[i - 1].content.push(this.nodes[i].finish(openEnd));\n this.nodes.length = this.open + 1;\n }\n }\n finish() {\n this.open = 0;\n this.closeExtra(this.isOpen);\n return this.nodes[0].finish(!!(this.isOpen || this.options.topOpen));\n }\n sync(to) {\n for (let i = this.open; i >= 0; i--) {\n if (this.nodes[i] == to) {\n this.open = i;\n return true;\n }\n else if (this.localPreserveWS) {\n this.nodes[i].options |= OPT_PRESERVE_WS;\n }\n }\n return false;\n }\n get currentPos() {\n this.closeExtra();\n let pos = 0;\n for (let i = this.open; i >= 0; i--) {\n let content = this.nodes[i].content;\n for (let j = content.length - 1; j >= 0; j--)\n pos += content[j].nodeSize;\n if (i)\n pos++;\n }\n return pos;\n }\n findAtPoint(parent, offset) {\n if (this.find)\n for (let i = 0; i < this.find.length; i++) {\n if (this.find[i].node == parent && this.find[i].offset == offset)\n this.find[i].pos = this.currentPos;\n }\n }\n findInside(parent) {\n if (this.find)\n for (let i = 0; i < this.find.length; i++) {\n if (this.find[i].pos == null && parent.nodeType == 1 && parent.contains(this.find[i].node))\n this.find[i].pos = this.currentPos;\n }\n }\n findAround(parent, content, before) {\n if (parent != content && this.find)\n for (let i = 0; i < this.find.length; i++) {\n if (this.find[i].pos == null && parent.nodeType == 1 && parent.contains(this.find[i].node)) {\n let pos = content.compareDocumentPosition(this.find[i].node);\n if (pos & (before ? 2 : 4))\n this.find[i].pos = this.currentPos;\n }\n }\n }\n findInText(textNode) {\n if (this.find)\n for (let i = 0; i < this.find.length; i++) {\n if (this.find[i].node == textNode)\n this.find[i].pos = this.currentPos - (textNode.nodeValue.length - this.find[i].offset);\n }\n }\n // Determines whether the given context string matches this context.\n matchesContext(context) {\n if (context.indexOf(\"|\") > -1)\n return context.split(/\\s*\\|\\s*/).some(this.matchesContext, this);\n let parts = context.split(\"/\");\n let option = this.options.context;\n let useRoot = !this.isOpen && (!option || option.parent.type == this.nodes[0].type);\n let minDepth = -(option ? option.depth + 1 : 0) + (useRoot ? 0 : 1);\n let match = (i, depth) => {\n for (; i >= 0; i--) {\n let part = parts[i];\n if (part == \"\") {\n if (i == parts.length - 1 || i == 0)\n continue;\n for (; depth >= minDepth; depth--)\n if (match(i - 1, depth))\n return true;\n return false;\n }\n else {\n let next = depth > 0 || (depth == 0 && useRoot) ? this.nodes[depth].type\n : option && depth >= minDepth ? option.node(depth - minDepth).type\n : null;\n if (!next || (next.name != part && !next.isInGroup(part)))\n return false;\n depth--;\n }\n }\n return true;\n };\n return match(parts.length - 1, this.open);\n }\n textblockFromContext() {\n let $context = this.options.context;\n if ($context)\n for (let d = $context.depth; d >= 0; d--) {\n let deflt = $context.node(d).contentMatchAt($context.indexAfter(d)).defaultType;\n if (deflt && deflt.isTextblock && deflt.defaultAttrs)\n return deflt;\n }\n for (let name in this.parser.schema.nodes) {\n let type = this.parser.schema.nodes[name];\n if (type.isTextblock && type.defaultAttrs)\n return type;\n }\n }\n}\n// Kludge to work around directly nested list nodes produced by some\n// tools and allowed by browsers to mean that the nested list is\n// actually part of the list item above it.\nfunction normalizeList(dom) {\n for (let child = dom.firstChild, prevItem = null; child; child = child.nextSibling) {\n let name = child.nodeType == 1 ? child.nodeName.toLowerCase() : null;\n if (name && listTags.hasOwnProperty(name) && prevItem) {\n prevItem.appendChild(child);\n child = prevItem;\n }\n else if (name == \"li\") {\n prevItem = child;\n }\n else if (name) {\n prevItem = null;\n }\n }\n}\n// Apply a CSS selector.\nfunction matches(dom, selector) {\n return (dom.matches || dom.msMatchesSelector || dom.webkitMatchesSelector || dom.mozMatchesSelector).call(dom, selector);\n}\nfunction copy(obj) {\n let copy = {};\n for (let prop in obj)\n copy[prop] = obj[prop];\n return copy;\n}\n// Used when finding a mark at the top level of a fragment parse.\n// Checks whether it would be reasonable to apply a given mark type to\n// a given node, by looking at the way the mark occurs in the schema.\nfunction markMayApply(markType, nodeType) {\n let nodes = nodeType.schema.nodes;\n for (let name in nodes) {\n let parent = nodes[name];\n if (!parent.allowsMarkType(markType))\n continue;\n let seen = [], scan = (match) => {\n seen.push(match);\n for (let i = 0; i < match.edgeCount; i++) {\n let { type, next } = match.edge(i);\n if (type == nodeType)\n return true;\n if (seen.indexOf(next) < 0 && scan(next))\n return true;\n }\n };\n if (scan(parent.contentMatch))\n return true;\n }\n}\n\n/**\nA DOM serializer knows how to convert ProseMirror nodes and\nmarks of various types to DOM nodes.\n*/\nclass DOMSerializer {\n /**\n Create a serializer. `nodes` should map node names to functions\n that take a node and return a description of the corresponding\n DOM. `marks` does the same for mark names, but also gets an\n argument that tells it whether the mark's content is block or\n inline content (for typical use, it'll always be inline). A mark\n serializer may be `null` to indicate that marks of that type\n should not be serialized.\n */\n constructor(\n /**\n The node serialization functions.\n */\n nodes, \n /**\n The mark serialization functions.\n */\n marks) {\n this.nodes = nodes;\n this.marks = marks;\n }\n /**\n Serialize the content of this fragment to a DOM fragment. When\n not in the browser, the `document` option, containing a DOM\n document, should be passed so that the serializer can create\n nodes.\n */\n serializeFragment(fragment, options = {}, target) {\n if (!target)\n target = doc(options).createDocumentFragment();\n let top = target, active = [];\n fragment.forEach(node => {\n if (active.length || node.marks.length) {\n let keep = 0, rendered = 0;\n while (keep < active.length && rendered < node.marks.length) {\n let next = node.marks[rendered];\n if (!this.marks[next.type.name]) {\n rendered++;\n continue;\n }\n if (!next.eq(active[keep][0]) || next.type.spec.spanning === false)\n break;\n keep++;\n rendered++;\n }\n while (keep < active.length)\n top = active.pop()[1];\n while (rendered < node.marks.length) {\n let add = node.marks[rendered++];\n let markDOM = this.serializeMark(add, node.isInline, options);\n if (markDOM) {\n active.push([add, top]);\n top.appendChild(markDOM.dom);\n top = markDOM.contentDOM || markDOM.dom;\n }\n }\n }\n top.appendChild(this.serializeNodeInner(node, options));\n });\n return target;\n }\n /**\n @internal\n */\n serializeNodeInner(node, options) {\n let { dom, contentDOM } = renderSpec(doc(options), this.nodes[node.type.name](node), null, node.attrs);\n if (contentDOM) {\n if (node.isLeaf)\n throw new RangeError(\"Content hole not allowed in a leaf node spec\");\n this.serializeFragment(node.content, options, contentDOM);\n }\n return dom;\n }\n /**\n Serialize this node to a DOM node. This can be useful when you\n need to serialize a part of a document, as opposed to the whole\n document. To serialize a whole document, use\n [`serializeFragment`](https://prosemirror.net/docs/ref/#model.DOMSerializer.serializeFragment) on\n its [content](https://prosemirror.net/docs/ref/#model.Node.content).\n */\n serializeNode(node, options = {}) {\n let dom = this.serializeNodeInner(node, options);\n for (let i = node.marks.length - 1; i >= 0; i--) {\n let wrap = this.serializeMark(node.marks[i], node.isInline, options);\n if (wrap) {\n (wrap.contentDOM || wrap.dom).appendChild(dom);\n dom = wrap.dom;\n }\n }\n return dom;\n }\n /**\n @internal\n */\n serializeMark(mark, inline, options = {}) {\n let toDOM = this.marks[mark.type.name];\n return toDOM && renderSpec(doc(options), toDOM(mark, inline), null, mark.attrs);\n }\n static renderSpec(doc, structure, xmlNS = null, blockArraysIn) {\n return renderSpec(doc, structure, xmlNS, blockArraysIn);\n }\n /**\n Build a serializer using the [`toDOM`](https://prosemirror.net/docs/ref/#model.NodeSpec.toDOM)\n properties in a schema's node and mark specs.\n */\n static fromSchema(schema) {\n return schema.cached.domSerializer ||\n (schema.cached.domSerializer = new DOMSerializer(this.nodesFromSchema(schema), this.marksFromSchema(schema)));\n }\n /**\n Gather the serializers in a schema's node specs into an object.\n This can be useful as a base to build a custom serializer from.\n */\n static nodesFromSchema(schema) {\n let result = gatherToDOM(schema.nodes);\n if (!result.text)\n result.text = node => node.text;\n return result;\n }\n /**\n Gather the serializers in a schema's mark specs into an object.\n */\n static marksFromSchema(schema) {\n return gatherToDOM(schema.marks);\n }\n}\nfunction gatherToDOM(obj) {\n let result = {};\n for (let name in obj) {\n let toDOM = obj[name].spec.toDOM;\n if (toDOM)\n result[name] = toDOM;\n }\n return result;\n}\nfunction doc(options) {\n return options.document || window.document;\n}\nconst suspiciousAttributeCache = new WeakMap();\nfunction suspiciousAttributes(attrs) {\n let value = suspiciousAttributeCache.get(attrs);\n if (value === undefined)\n suspiciousAttributeCache.set(attrs, value = suspiciousAttributesInner(attrs));\n return value;\n}\nfunction suspiciousAttributesInner(attrs) {\n let result = null;\n function scan(value) {\n if (value && typeof value == \"object\") {\n if (Array.isArray(value)) {\n if (typeof value[0] == \"string\") {\n if (!result)\n result = [];\n result.push(value);\n }\n else {\n for (let i = 0; i < value.length; i++)\n scan(value[i]);\n }\n }\n else {\n for (let prop in value)\n scan(value[prop]);\n }\n }\n }\n scan(attrs);\n return result;\n}\nfunction renderSpec(doc, structure, xmlNS, blockArraysIn) {\n if (typeof structure == \"string\")\n return { dom: doc.createTextNode(structure) };\n if (structure.nodeType != null)\n return { dom: structure };\n if (structure.dom && structure.dom.nodeType != null)\n return structure;\n let tagName = structure[0], suspicious;\n if (typeof tagName != \"string\")\n throw new RangeError(\"Invalid array passed to renderSpec\");\n if (blockArraysIn && (suspicious = suspiciousAttributes(blockArraysIn)) &&\n suspicious.indexOf(structure) > -1)\n throw new RangeError(\"Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.\");\n let space = tagName.indexOf(\" \");\n if (space > 0) {\n xmlNS = tagName.slice(0, space);\n tagName = tagName.slice(space + 1);\n }\n let contentDOM;\n let dom = (xmlNS ? doc.createElementNS(xmlNS, tagName) : doc.createElement(tagName));\n let attrs = structure[1], start = 1;\n if (attrs && typeof attrs == \"object\" && attrs.nodeType == null && !Array.isArray(attrs)) {\n start = 2;\n for (let name in attrs)\n if (attrs[name] != null) {\n let space = name.indexOf(\" \");\n if (space > 0)\n dom.setAttributeNS(name.slice(0, space), name.slice(space + 1), attrs[name]);\n else\n dom.setAttribute(name, attrs[name]);\n }\n }\n for (let i = start; i < structure.length; i++) {\n let child = structure[i];\n if (child === 0) {\n if (i < structure.length - 1 || i > start)\n throw new RangeError(\"Content hole must be the only child of its parent node\");\n return { dom, contentDOM: dom };\n }\n else {\n let { dom: inner, contentDOM: innerContent } = renderSpec(doc, child, xmlNS, blockArraysIn);\n dom.appendChild(inner);\n if (innerContent) {\n if (contentDOM)\n throw new RangeError(\"Multiple content holes\");\n contentDOM = innerContent;\n }\n }\n }\n return { dom, contentDOM };\n}\n\nexport { ContentMatch, DOMParser, DOMSerializer, Fragment, Mark, MarkType, Node, NodeRange, NodeType, ReplaceError, ResolvedPos, Schema, Slice };\n","import { ReplaceError, Slice, Fragment, MarkType, Mark } from 'prosemirror-model';\n\n// Recovery values encode a range index and an offset. They are\n// represented as numbers, because tons of them will be created when\n// mapping, for example, a large number of decorations. The number's\n// lower 16 bits provide the index, the remaining bits the offset.\n//\n// Note: We intentionally don't use bit shift operators to en- and\n// decode these, since those clip to 32 bits, which we might in rare\n// cases want to overflow. A 64-bit float can represent 48-bit\n// integers precisely.\nconst lower16 = 0xffff;\nconst factor16 = Math.pow(2, 16);\nfunction makeRecover(index, offset) { return index + offset * factor16; }\nfunction recoverIndex(value) { return value & lower16; }\nfunction recoverOffset(value) { return (value - (value & lower16)) / factor16; }\nconst DEL_BEFORE = 1, DEL_AFTER = 2, DEL_ACROSS = 4, DEL_SIDE = 8;\n/**\nAn object representing a mapped position with extra\ninformation.\n*/\nclass MapResult {\n /**\n @internal\n */\n constructor(\n /**\n The mapped version of the position.\n */\n pos, \n /**\n @internal\n */\n delInfo, \n /**\n @internal\n */\n recover) {\n this.pos = pos;\n this.delInfo = delInfo;\n this.recover = recover;\n }\n /**\n Tells you whether the position was deleted, that is, whether the\n step removed the token on the side queried (via the `assoc`)\n argument from the document.\n */\n get deleted() { return (this.delInfo & DEL_SIDE) > 0; }\n /**\n Tells you whether the token before the mapped position was deleted.\n */\n get deletedBefore() { return (this.delInfo & (DEL_BEFORE | DEL_ACROSS)) > 0; }\n /**\n True when the token after the mapped position was deleted.\n */\n get deletedAfter() { return (this.delInfo & (DEL_AFTER | DEL_ACROSS)) > 0; }\n /**\n Tells whether any of the steps mapped through deletes across the\n position (including both the token before and after the\n position).\n */\n get deletedAcross() { return (this.delInfo & DEL_ACROSS) > 0; }\n}\n/**\nA map describing the deletions and insertions made by a step, which\ncan be used to find the correspondence between positions in the\npre-step version of a document and the same position in the\npost-step version.\n*/\nclass StepMap {\n /**\n Create a position map. The modifications to the document are\n represented as an array of numbers, in which each group of three\n represents a modified chunk as `[start, oldSize, newSize]`.\n */\n constructor(\n /**\n @internal\n */\n ranges, \n /**\n @internal\n */\n inverted = false) {\n this.ranges = ranges;\n this.inverted = inverted;\n if (!ranges.length && StepMap.empty)\n return StepMap.empty;\n }\n /**\n @internal\n */\n recover(value) {\n let diff = 0, index = recoverIndex(value);\n if (!this.inverted)\n for (let i = 0; i < index; i++)\n diff += this.ranges[i * 3 + 2] - this.ranges[i * 3 + 1];\n return this.ranges[index * 3] + diff + recoverOffset(value);\n }\n mapResult(pos, assoc = 1) { return this._map(pos, assoc, false); }\n map(pos, assoc = 1) { return this._map(pos, assoc, true); }\n /**\n @internal\n */\n _map(pos, assoc, simple) {\n let diff = 0, oldIndex = this.inverted ? 2 : 1, newIndex = this.inverted ? 1 : 2;\n for (let i = 0; i < this.ranges.length; i += 3) {\n let start = this.ranges[i] - (this.inverted ? diff : 0);\n if (start > pos)\n break;\n let oldSize = this.ranges[i + oldIndex], newSize = this.ranges[i + newIndex], end = start + oldSize;\n if (pos <= end) {\n let side = !oldSize ? assoc : pos == start ? -1 : pos == end ? 1 : assoc;\n let result = start + diff + (side < 0 ? 0 : newSize);\n if (simple)\n return result;\n let recover = pos == (assoc < 0 ? start : end) ? null : makeRecover(i / 3, pos - start);\n let del = pos == start ? DEL_AFTER : pos == end ? DEL_BEFORE : DEL_ACROSS;\n if (assoc < 0 ? pos != start : pos != end)\n del |= DEL_SIDE;\n return new MapResult(result, del, recover);\n }\n diff += newSize - oldSize;\n }\n return simple ? pos + diff : new MapResult(pos + diff, 0, null);\n }\n /**\n @internal\n */\n touches(pos, recover) {\n let diff = 0, index = recoverIndex(recover);\n let oldIndex = this.inverted ? 2 : 1, newIndex = this.inverted ? 1 : 2;\n for (let i = 0; i < this.ranges.length; i += 3) {\n let start = this.ranges[i] - (this.inverted ? diff : 0);\n if (start > pos)\n break;\n let oldSize = this.ranges[i + oldIndex], end = start + oldSize;\n if (pos <= end && i == index * 3)\n return true;\n diff += this.ranges[i + newIndex] - oldSize;\n }\n return false;\n }\n /**\n Calls the given function on each of the changed ranges included in\n this map.\n */\n forEach(f) {\n let oldIndex = this.inverted ? 2 : 1, newIndex = this.inverted ? 1 : 2;\n for (let i = 0, diff = 0; i < this.ranges.length; i += 3) {\n let start = this.ranges[i], oldStart = start - (this.inverted ? diff : 0), newStart = start + (this.inverted ? 0 : diff);\n let oldSize = this.ranges[i + oldIndex], newSize = this.ranges[i + newIndex];\n f(oldStart, oldStart + oldSize, newStart, newStart + newSize);\n diff += newSize - oldSize;\n }\n }\n /**\n Create an inverted version of this map. The result can be used to\n map positions in the post-step document to the pre-step document.\n */\n invert() {\n return new StepMap(this.ranges, !this.inverted);\n }\n /**\n @internal\n */\n toString() {\n return (this.inverted ? \"-\" : \"\") + JSON.stringify(this.ranges);\n }\n /**\n Create a map that moves all positions by offset `n` (which may be\n negative). This can be useful when applying steps meant for a\n sub-document to a larger document, or vice-versa.\n */\n static offset(n) {\n return n == 0 ? StepMap.empty : new StepMap(n < 0 ? [0, -n, 0] : [0, 0, n]);\n }\n}\n/**\nA StepMap that contains no changed ranges.\n*/\nStepMap.empty = new StepMap([]);\n/**\nA mapping represents a pipeline of zero or more [step\nmaps](https://prosemirror.net/docs/ref/#transform.StepMap). It has special provisions for losslessly\nhandling mapping positions through a series of steps in which some\nsteps are inverted versions of earlier steps. (This comes up when\n‘[rebasing](/docs/guide/#transform.rebasing)’ steps for\ncollaboration or history management.)\n*/\nclass Mapping {\n /**\n Create a new mapping with the given position maps.\n */\n constructor(\n /**\n The step maps in this mapping.\n */\n maps = [], \n /**\n @internal\n */\n mirror, \n /**\n The starting position in the `maps` array, used when `map` or\n `mapResult` is called.\n */\n from = 0, \n /**\n The end position in the `maps` array.\n */\n to = maps.length) {\n this.maps = maps;\n this.mirror = mirror;\n this.from = from;\n this.to = to;\n }\n /**\n Create a mapping that maps only through a part of this one.\n */\n slice(from = 0, to = this.maps.length) {\n return new Mapping(this.maps, this.mirror, from, to);\n }\n /**\n @internal\n */\n copy() {\n return new Mapping(this.maps.slice(), this.mirror && this.mirror.slice(), this.from, this.to);\n }\n /**\n Add a step map to the end of this mapping. If `mirrors` is\n given, it should be the index of the step map that is the mirror\n image of this one.\n */\n appendMap(map, mirrors) {\n this.to = this.maps.push(map);\n if (mirrors != null)\n this.setMirror(this.maps.length - 1, mirrors);\n }\n /**\n Add all the step maps in a given mapping to this one (preserving\n mirroring information).\n */\n appendMapping(mapping) {\n for (let i = 0, startSize = this.maps.length; i < mapping.maps.length; i++) {\n let mirr = mapping.getMirror(i);\n this.appendMap(mapping.maps[i], mirr != null && mirr < i ? startSize + mirr : undefined);\n }\n }\n /**\n Finds the offset of the step map that mirrors the map at the\n given offset, in this mapping (as per the second argument to\n `appendMap`).\n */\n getMirror(n) {\n if (this.mirror)\n for (let i = 0; i < this.mirror.length; i++)\n if (this.mirror[i] == n)\n return this.mirror[i + (i % 2 ? -1 : 1)];\n }\n /**\n @internal\n */\n setMirror(n, m) {\n if (!this.mirror)\n this.mirror = [];\n this.mirror.push(n, m);\n }\n /**\n Append the inverse of the given mapping to this one.\n */\n appendMappingInverted(mapping) {\n for (let i = mapping.maps.length - 1, totalSize = this.maps.length + mapping.maps.length; i >= 0; i--) {\n let mirr = mapping.getMirror(i);\n this.appendMap(mapping.maps[i].invert(), mirr != null && mirr > i ? totalSize - mirr - 1 : undefined);\n }\n }\n /**\n Create an inverted version of this mapping.\n */\n invert() {\n let inverse = new Mapping;\n inverse.appendMappingInverted(this);\n return inverse;\n }\n /**\n Map a position through this mapping.\n */\n map(pos, assoc = 1) {\n if (this.mirror)\n return this._map(pos, assoc, true);\n for (let i = this.from; i < this.to; i++)\n pos = this.maps[i].map(pos, assoc);\n return pos;\n }\n /**\n Map a position through this mapping, returning a mapping\n result.\n */\n mapResult(pos, assoc = 1) { return this._map(pos, assoc, false); }\n /**\n @internal\n */\n _map(pos, assoc, simple) {\n let delInfo = 0;\n for (let i = this.from; i < this.to; i++) {\n let map = this.maps[i], result = map.mapResult(pos, assoc);\n if (result.recover != null) {\n let corr = this.getMirror(i);\n if (corr != null && corr > i && corr < this.to) {\n i = corr;\n pos = this.maps[corr].recover(result.recover);\n continue;\n }\n }\n delInfo |= result.delInfo;\n pos = result.pos;\n }\n return simple ? pos : new MapResult(pos, delInfo, null);\n }\n}\n\nconst stepsByID = Object.create(null);\n/**\nA step object represents an atomic change. It generally applies\nonly to the document it was created for, since the positions\nstored in it will only make sense for that document.\n\nNew steps are defined by creating classes that extend `Step`,\noverriding the `apply`, `invert`, `map`, `getMap` and `fromJSON`\nmethods, and registering your class with a unique\nJSON-serialization identifier using\n[`Step.jsonID`](https://prosemirror.net/docs/ref/#transform.Step^jsonID).\n*/\nclass Step {\n /**\n Get the step map that represents the changes made by this step,\n and which can be used to transform between positions in the old\n and the new document.\n */\n getMap() { return StepMap.empty; }\n /**\n Try to merge this step with another one, to be applied directly\n after it. Returns the merged step when possible, null if the\n steps can't be merged.\n */\n merge(other) { return null; }\n /**\n Deserialize a step from its JSON representation. Will call\n through to the step class' own implementation of this method.\n */\n static fromJSON(schema, json) {\n if (!json || !json.stepType)\n throw new RangeError(\"Invalid input for Step.fromJSON\");\n let type = stepsByID[json.stepType];\n if (!type)\n throw new RangeError(`No step type ${json.stepType} defined`);\n return type.fromJSON(schema, json);\n }\n /**\n To be able to serialize steps to JSON, each step needs a string\n ID to attach to its JSON representation. Use this method to\n register an ID for your step classes. Try to pick something\n that's unlikely to clash with steps from other modules.\n */\n static jsonID(id, stepClass) {\n if (id in stepsByID)\n throw new RangeError(\"Duplicate use of step JSON ID \" + id);\n stepsByID[id] = stepClass;\n stepClass.prototype.jsonID = id;\n return stepClass;\n }\n}\n/**\nThe result of [applying](https://prosemirror.net/docs/ref/#transform.Step.apply) a step. Contains either a\nnew document or a failure value.\n*/\nclass StepResult {\n /**\n @internal\n */\n constructor(\n /**\n The transformed document, if successful.\n */\n doc, \n /**\n The failure message, if unsuccessful.\n */\n failed) {\n this.doc = doc;\n this.failed = failed;\n }\n /**\n Create a successful step result.\n */\n static ok(doc) { return new StepResult(doc, null); }\n /**\n Create a failed step result.\n */\n static fail(message) { return new StepResult(null, message); }\n /**\n Call [`Node.replace`](https://prosemirror.net/docs/ref/#model.Node.replace) with the given\n arguments. Create a successful result if it succeeds, and a\n failed one if it throws a `ReplaceError`.\n */\n static fromReplace(doc, from, to, slice) {\n try {\n return StepResult.ok(doc.replace(from, to, slice));\n }\n catch (e) {\n if (e instanceof ReplaceError)\n return StepResult.fail(e.message);\n throw e;\n }\n }\n}\n\nfunction mapFragment(fragment, f, parent) {\n let mapped = [];\n for (let i = 0; i < fragment.childCount; i++) {\n let child = fragment.child(i);\n if (child.content.size)\n child = child.copy(mapFragment(child.content, f, child));\n if (child.isInline)\n child = f(child, parent, i);\n mapped.push(child);\n }\n return Fragment.fromArray(mapped);\n}\n/**\nAdd a mark to all inline content between two positions.\n*/\nclass AddMarkStep extends Step {\n /**\n Create a mark step.\n */\n constructor(\n /**\n The start of the marked range.\n */\n from, \n /**\n The end of the marked range.\n */\n to, \n /**\n The mark to add.\n */\n mark) {\n super();\n this.from = from;\n this.to = to;\n this.mark = mark;\n }\n apply(doc) {\n let oldSlice = doc.slice(this.from, this.to), $from = doc.resolve(this.from);\n let parent = $from.node($from.sharedDepth(this.to));\n let slice = new Slice(mapFragment(oldSlice.content, (node, parent) => {\n if (!node.isAtom || !parent.type.allowsMarkType(this.mark.type))\n return node;\n return node.mark(this.mark.addToSet(node.marks));\n }, parent), oldSlice.openStart, oldSlice.openEnd);\n return StepResult.fromReplace(doc, this.from, this.to, slice);\n }\n invert() {\n return new RemoveMarkStep(this.from, this.to, this.mark);\n }\n map(mapping) {\n let from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n if (from.deleted && to.deleted || from.pos >= to.pos)\n return null;\n return new AddMarkStep(from.pos, to.pos, this.mark);\n }\n merge(other) {\n if (other instanceof AddMarkStep &&\n other.mark.eq(this.mark) &&\n this.from <= other.to && this.to >= other.from)\n return new AddMarkStep(Math.min(this.from, other.from), Math.max(this.to, other.to), this.mark);\n return null;\n }\n toJSON() {\n return { stepType: \"addMark\", mark: this.mark.toJSON(),\n from: this.from, to: this.to };\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\")\n throw new RangeError(\"Invalid input for AddMarkStep.fromJSON\");\n return new AddMarkStep(json.from, json.to, schema.markFromJSON(json.mark));\n }\n}\nStep.jsonID(\"addMark\", AddMarkStep);\n/**\nRemove a mark from all inline content between two positions.\n*/\nclass RemoveMarkStep extends Step {\n /**\n Create a mark-removing step.\n */\n constructor(\n /**\n The start of the unmarked range.\n */\n from, \n /**\n The end of the unmarked range.\n */\n to, \n /**\n The mark to remove.\n */\n mark) {\n super();\n this.from = from;\n this.to = to;\n this.mark = mark;\n }\n apply(doc) {\n let oldSlice = doc.slice(this.from, this.to);\n let slice = new Slice(mapFragment(oldSlice.content, node => {\n return node.mark(this.mark.removeFromSet(node.marks));\n }, doc), oldSlice.openStart, oldSlice.openEnd);\n return StepResult.fromReplace(doc, this.from, this.to, slice);\n }\n invert() {\n return new AddMarkStep(this.from, this.to, this.mark);\n }\n map(mapping) {\n let from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n if (from.deleted && to.deleted || from.pos >= to.pos)\n return null;\n return new RemoveMarkStep(from.pos, to.pos, this.mark);\n }\n merge(other) {\n if (other instanceof RemoveMarkStep &&\n other.mark.eq(this.mark) &&\n this.from <= other.to && this.to >= other.from)\n return new RemoveMarkStep(Math.min(this.from, other.from), Math.max(this.to, other.to), this.mark);\n return null;\n }\n toJSON() {\n return { stepType: \"removeMark\", mark: this.mark.toJSON(),\n from: this.from, to: this.to };\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\")\n throw new RangeError(\"Invalid input for RemoveMarkStep.fromJSON\");\n return new RemoveMarkStep(json.from, json.to, schema.markFromJSON(json.mark));\n }\n}\nStep.jsonID(\"removeMark\", RemoveMarkStep);\n/**\nAdd a mark to a specific node.\n*/\nclass AddNodeMarkStep extends Step {\n /**\n Create a node mark step.\n */\n constructor(\n /**\n The position of the target node.\n */\n pos, \n /**\n The mark to add.\n */\n mark) {\n super();\n this.pos = pos;\n this.mark = mark;\n }\n apply(doc) {\n let node = doc.nodeAt(this.pos);\n if (!node)\n return StepResult.fail(\"No node at mark step's position\");\n let updated = node.type.create(node.attrs, null, this.mark.addToSet(node.marks));\n return StepResult.fromReplace(doc, this.pos, this.pos + 1, new Slice(Fragment.from(updated), 0, node.isLeaf ? 0 : 1));\n }\n invert(doc) {\n let node = doc.nodeAt(this.pos);\n if (node) {\n let newSet = this.mark.addToSet(node.marks);\n if (newSet.length == node.marks.length) {\n for (let i = 0; i < node.marks.length; i++)\n if (!node.marks[i].isInSet(newSet))\n return new AddNodeMarkStep(this.pos, node.marks[i]);\n return new AddNodeMarkStep(this.pos, this.mark);\n }\n }\n return new RemoveNodeMarkStep(this.pos, this.mark);\n }\n map(mapping) {\n let pos = mapping.mapResult(this.pos, 1);\n return pos.deletedAfter ? null : new AddNodeMarkStep(pos.pos, this.mark);\n }\n toJSON() {\n return { stepType: \"addNodeMark\", pos: this.pos, mark: this.mark.toJSON() };\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.pos != \"number\")\n throw new RangeError(\"Invalid input for AddNodeMarkStep.fromJSON\");\n return new AddNodeMarkStep(json.pos, schema.markFromJSON(json.mark));\n }\n}\nStep.jsonID(\"addNodeMark\", AddNodeMarkStep);\n/**\nRemove a mark from a specific node.\n*/\nclass RemoveNodeMarkStep extends Step {\n /**\n Create a mark-removing step.\n */\n constructor(\n /**\n The position of the target node.\n */\n pos, \n /**\n The mark to remove.\n */\n mark) {\n super();\n this.pos = pos;\n this.mark = mark;\n }\n apply(doc) {\n let node = doc.nodeAt(this.pos);\n if (!node)\n return StepResult.fail(\"No node at mark step's position\");\n let updated = node.type.create(node.attrs, null, this.mark.removeFromSet(node.marks));\n return StepResult.fromReplace(doc, this.pos, this.pos + 1, new Slice(Fragment.from(updated), 0, node.isLeaf ? 0 : 1));\n }\n invert(doc) {\n let node = doc.nodeAt(this.pos);\n if (!node || !this.mark.isInSet(node.marks))\n return this;\n return new AddNodeMarkStep(this.pos, this.mark);\n }\n map(mapping) {\n let pos = mapping.mapResult(this.pos, 1);\n return pos.deletedAfter ? null : new RemoveNodeMarkStep(pos.pos, this.mark);\n }\n toJSON() {\n return { stepType: \"removeNodeMark\", pos: this.pos, mark: this.mark.toJSON() };\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.pos != \"number\")\n throw new RangeError(\"Invalid input for RemoveNodeMarkStep.fromJSON\");\n return new RemoveNodeMarkStep(json.pos, schema.markFromJSON(json.mark));\n }\n}\nStep.jsonID(\"removeNodeMark\", RemoveNodeMarkStep);\n\n/**\nReplace a part of the document with a slice of new content.\n*/\nclass ReplaceStep extends Step {\n /**\n The given `slice` should fit the 'gap' between `from` and\n `to`—the depths must line up, and the surrounding nodes must be\n able to be joined with the open sides of the slice. When\n `structure` is true, the step will fail if the content between\n from and to is not just a sequence of closing and then opening\n tokens (this is to guard against rebased replace steps\n overwriting something they weren't supposed to).\n */\n constructor(\n /**\n The start position of the replaced range.\n */\n from, \n /**\n The end position of the replaced range.\n */\n to, \n /**\n The slice to insert.\n */\n slice, \n /**\n @internal\n */\n structure = false) {\n super();\n this.from = from;\n this.to = to;\n this.slice = slice;\n this.structure = structure;\n }\n apply(doc) {\n if (this.structure && contentBetween(doc, this.from, this.to))\n return StepResult.fail(\"Structure replace would overwrite content\");\n return StepResult.fromReplace(doc, this.from, this.to, this.slice);\n }\n getMap() {\n return new StepMap([this.from, this.to - this.from, this.slice.size]);\n }\n invert(doc) {\n return new ReplaceStep(this.from, this.from + this.slice.size, doc.slice(this.from, this.to));\n }\n map(mapping) {\n let from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n if (from.deletedAcross && to.deletedAcross)\n return null;\n return new ReplaceStep(from.pos, Math.max(from.pos, to.pos), this.slice);\n }\n merge(other) {\n if (!(other instanceof ReplaceStep) || other.structure || this.structure)\n return null;\n if (this.from + this.slice.size == other.from && !this.slice.openEnd && !other.slice.openStart) {\n let slice = this.slice.size + other.slice.size == 0 ? Slice.empty\n : new Slice(this.slice.content.append(other.slice.content), this.slice.openStart, other.slice.openEnd);\n return new ReplaceStep(this.from, this.to + (other.to - other.from), slice, this.structure);\n }\n else if (other.to == this.from && !this.slice.openStart && !other.slice.openEnd) {\n let slice = this.slice.size + other.slice.size == 0 ? Slice.empty\n : new Slice(other.slice.content.append(this.slice.content), other.slice.openStart, this.slice.openEnd);\n return new ReplaceStep(other.from, this.to, slice, this.structure);\n }\n else {\n return null;\n }\n }\n toJSON() {\n let json = { stepType: \"replace\", from: this.from, to: this.to };\n if (this.slice.size)\n json.slice = this.slice.toJSON();\n if (this.structure)\n json.structure = true;\n return json;\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\")\n throw new RangeError(\"Invalid input for ReplaceStep.fromJSON\");\n return new ReplaceStep(json.from, json.to, Slice.fromJSON(schema, json.slice), !!json.structure);\n }\n}\nStep.jsonID(\"replace\", ReplaceStep);\n/**\nReplace a part of the document with a slice of content, but\npreserve a range of the replaced content by moving it into the\nslice.\n*/\nclass ReplaceAroundStep extends Step {\n /**\n Create a replace-around step with the given range and gap.\n `insert` should be the point in the slice into which the content\n of the gap should be moved. `structure` has the same meaning as\n it has in the [`ReplaceStep`](https://prosemirror.net/docs/ref/#transform.ReplaceStep) class.\n */\n constructor(\n /**\n The start position of the replaced range.\n */\n from, \n /**\n The end position of the replaced range.\n */\n to, \n /**\n The start of preserved range.\n */\n gapFrom, \n /**\n The end of preserved range.\n */\n gapTo, \n /**\n The slice to insert.\n */\n slice, \n /**\n The position in the slice where the preserved range should be\n inserted.\n */\n insert, \n /**\n @internal\n */\n structure = false) {\n super();\n this.from = from;\n this.to = to;\n this.gapFrom = gapFrom;\n this.gapTo = gapTo;\n this.slice = slice;\n this.insert = insert;\n this.structure = structure;\n }\n apply(doc) {\n if (this.structure && (contentBetween(doc, this.from, this.gapFrom) ||\n contentBetween(doc, this.gapTo, this.to)))\n return StepResult.fail(\"Structure gap-replace would overwrite content\");\n let gap = doc.slice(this.gapFrom, this.gapTo);\n if (gap.openStart || gap.openEnd)\n return StepResult.fail(\"Gap is not a flat range\");\n let inserted = this.slice.insertAt(this.insert, gap.content);\n if (!inserted)\n return StepResult.fail(\"Content does not fit in gap\");\n return StepResult.fromReplace(doc, this.from, this.to, inserted);\n }\n getMap() {\n return new StepMap([this.from, this.gapFrom - this.from, this.insert,\n this.gapTo, this.to - this.gapTo, this.slice.size - this.insert]);\n }\n invert(doc) {\n let gap = this.gapTo - this.gapFrom;\n return new ReplaceAroundStep(this.from, this.from + this.slice.size + gap, this.from + this.insert, this.from + this.insert + gap, doc.slice(this.from, this.to).removeBetween(this.gapFrom - this.from, this.gapTo - this.from), this.gapFrom - this.from, this.structure);\n }\n map(mapping) {\n let from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n let gapFrom = this.from == this.gapFrom ? from.pos : mapping.map(this.gapFrom, -1);\n let gapTo = this.to == this.gapTo ? to.pos : mapping.map(this.gapTo, 1);\n if ((from.deletedAcross && to.deletedAcross) || gapFrom < from.pos || gapTo > to.pos)\n return null;\n return new ReplaceAroundStep(from.pos, to.pos, gapFrom, gapTo, this.slice, this.insert, this.structure);\n }\n toJSON() {\n let json = { stepType: \"replaceAround\", from: this.from, to: this.to,\n gapFrom: this.gapFrom, gapTo: this.gapTo, insert: this.insert };\n if (this.slice.size)\n json.slice = this.slice.toJSON();\n if (this.structure)\n json.structure = true;\n return json;\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\" ||\n typeof json.gapFrom != \"number\" || typeof json.gapTo != \"number\" || typeof json.insert != \"number\")\n throw new RangeError(\"Invalid input for ReplaceAroundStep.fromJSON\");\n return new ReplaceAroundStep(json.from, json.to, json.gapFrom, json.gapTo, Slice.fromJSON(schema, json.slice), json.insert, !!json.structure);\n }\n}\nStep.jsonID(\"replaceAround\", ReplaceAroundStep);\nfunction contentBetween(doc, from, to) {\n let $from = doc.resolve(from), dist = to - from, depth = $from.depth;\n while (dist > 0 && depth > 0 && $from.indexAfter(depth) == $from.node(depth).childCount) {\n depth--;\n dist--;\n }\n if (dist > 0) {\n let next = $from.node(depth).maybeChild($from.indexAfter(depth));\n while (dist > 0) {\n if (!next || next.isLeaf)\n return true;\n next = next.firstChild;\n dist--;\n }\n }\n return false;\n}\n\nfunction addMark(tr, from, to, mark) {\n let removed = [], added = [];\n let removing, adding;\n tr.doc.nodesBetween(from, to, (node, pos, parent) => {\n if (!node.isInline)\n return;\n let marks = node.marks;\n if (!mark.isInSet(marks) && parent.type.allowsMarkType(mark.type)) {\n let start = Math.max(pos, from), end = Math.min(pos + node.nodeSize, to);\n let newSet = mark.addToSet(marks);\n for (let i = 0; i < marks.length; i++) {\n if (!marks[i].isInSet(newSet)) {\n if (removing && removing.to == start && removing.mark.eq(marks[i]))\n removing.to = end;\n else\n removed.push(removing = new RemoveMarkStep(start, end, marks[i]));\n }\n }\n if (adding && adding.to == start)\n adding.to = end;\n else\n added.push(adding = new AddMarkStep(start, end, mark));\n }\n });\n removed.forEach(s => tr.step(s));\n added.forEach(s => tr.step(s));\n}\nfunction removeMark(tr, from, to, mark) {\n let matched = [], step = 0;\n tr.doc.nodesBetween(from, to, (node, pos) => {\n if (!node.isInline)\n return;\n step++;\n let toRemove = null;\n if (mark instanceof MarkType) {\n let set = node.marks, found;\n while (found = mark.isInSet(set)) {\n (toRemove || (toRemove = [])).push(found);\n set = found.removeFromSet(set);\n }\n }\n else if (mark) {\n if (mark.isInSet(node.marks))\n toRemove = [mark];\n }\n else {\n toRemove = node.marks;\n }\n if (toRemove && toRemove.length) {\n let end = Math.min(pos + node.nodeSize, to);\n for (let i = 0; i < toRemove.length; i++) {\n let style = toRemove[i], found;\n for (let j = 0; j < matched.length; j++) {\n let m = matched[j];\n if (m.step == step - 1 && style.eq(matched[j].style))\n found = m;\n }\n if (found) {\n found.to = end;\n found.step = step;\n }\n else {\n matched.push({ style, from: Math.max(pos, from), to: end, step });\n }\n }\n }\n });\n matched.forEach(m => tr.step(new RemoveMarkStep(m.from, m.to, m.style)));\n}\nfunction clearIncompatible(tr, pos, parentType, match = parentType.contentMatch, clearNewlines = true) {\n let node = tr.doc.nodeAt(pos);\n let replSteps = [], cur = pos + 1;\n for (let i = 0; i < node.childCount; i++) {\n let child = node.child(i), end = cur + child.nodeSize;\n let allowed = match.matchType(child.type);\n if (!allowed) {\n replSteps.push(new ReplaceStep(cur, end, Slice.empty));\n }\n else {\n match = allowed;\n for (let j = 0; j < child.marks.length; j++)\n if (!parentType.allowsMarkType(child.marks[j].type))\n tr.step(new RemoveMarkStep(cur, end, child.marks[j]));\n if (clearNewlines && child.isText && parentType.whitespace != \"pre\") {\n let m, newline = /\\r?\\n|\\r/g, slice;\n while (m = newline.exec(child.text)) {\n if (!slice)\n slice = new Slice(Fragment.from(parentType.schema.text(\" \", parentType.allowedMarks(child.marks))), 0, 0);\n replSteps.push(new ReplaceStep(cur + m.index, cur + m.index + m[0].length, slice));\n }\n }\n }\n cur = end;\n }\n if (!match.validEnd) {\n let fill = match.fillBefore(Fragment.empty, true);\n tr.replace(cur, cur, new Slice(fill, 0, 0));\n }\n for (let i = replSteps.length - 1; i >= 0; i--)\n tr.step(replSteps[i]);\n}\n\nfunction canCut(node, start, end) {\n return (start == 0 || node.canReplace(start, node.childCount)) &&\n (end == node.childCount || node.canReplace(0, end));\n}\n/**\nTry to find a target depth to which the content in the given range\ncan be lifted. Will not go across\n[isolating](https://prosemirror.net/docs/ref/#model.NodeSpec.isolating) parent nodes.\n*/\nfunction liftTarget(range) {\n let parent = range.parent;\n let content = parent.content.cutByIndex(range.startIndex, range.endIndex);\n for (let depth = range.depth;; --depth) {\n let node = range.$from.node(depth);\n let index = range.$from.index(depth), endIndex = range.$to.indexAfter(depth);\n if (depth < range.depth && node.canReplace(index, endIndex, content))\n return depth;\n if (depth == 0 || node.type.spec.isolating || !canCut(node, index, endIndex))\n break;\n }\n return null;\n}\nfunction lift(tr, range, target) {\n let { $from, $to, depth } = range;\n let gapStart = $from.before(depth + 1), gapEnd = $to.after(depth + 1);\n let start = gapStart, end = gapEnd;\n let before = Fragment.empty, openStart = 0;\n for (let d = depth, splitting = false; d > target; d--)\n if (splitting || $from.index(d) > 0) {\n splitting = true;\n before = Fragment.from($from.node(d).copy(before));\n openStart++;\n }\n else {\n start--;\n }\n let after = Fragment.empty, openEnd = 0;\n for (let d = depth, splitting = false; d > target; d--)\n if (splitting || $to.after(d + 1) < $to.end(d)) {\n splitting = true;\n after = Fragment.from($to.node(d).copy(after));\n openEnd++;\n }\n else {\n end++;\n }\n tr.step(new ReplaceAroundStep(start, end, gapStart, gapEnd, new Slice(before.append(after), openStart, openEnd), before.size - openStart, true));\n}\n/**\nTry to find a valid way to wrap the content in the given range in a\nnode of the given type. May introduce extra nodes around and inside\nthe wrapper node, if necessary. Returns null if no valid wrapping\ncould be found. When `innerRange` is given, that range's content is\nused as the content to fit into the wrapping, instead of the\ncontent of `range`.\n*/\nfunction findWrapping(range, nodeType, attrs = null, innerRange = range) {\n let around = findWrappingOutside(range, nodeType);\n let inner = around && findWrappingInside(innerRange, nodeType);\n if (!inner)\n return null;\n return around.map(withAttrs)\n .concat({ type: nodeType, attrs }).concat(inner.map(withAttrs));\n}\nfunction withAttrs(type) { return { type, attrs: null }; }\nfunction findWrappingOutside(range, type) {\n let { parent, startIndex, endIndex } = range;\n let around = parent.contentMatchAt(startIndex).findWrapping(type);\n if (!around)\n return null;\n let outer = around.length ? around[0] : type;\n return parent.canReplaceWith(startIndex, endIndex, outer) ? around : null;\n}\nfunction findWrappingInside(range, type) {\n let { parent, startIndex, endIndex } = range;\n let inner = parent.child(startIndex);\n let inside = type.contentMatch.findWrapping(inner.type);\n if (!inside)\n return null;\n let lastType = inside.length ? inside[inside.length - 1] : type;\n let innerMatch = lastType.contentMatch;\n for (let i = startIndex; innerMatch && i < endIndex; i++)\n innerMatch = innerMatch.matchType(parent.child(i).type);\n if (!innerMatch || !innerMatch.validEnd)\n return null;\n return inside;\n}\nfunction wrap(tr, range, wrappers) {\n let content = Fragment.empty;\n for (let i = wrappers.length - 1; i >= 0; i--) {\n if (content.size) {\n let match = wrappers[i].type.contentMatch.matchFragment(content);\n if (!match || !match.validEnd)\n throw new RangeError(\"Wrapper type given to Transform.wrap does not form valid content of its parent wrapper\");\n }\n content = Fragment.from(wrappers[i].type.create(wrappers[i].attrs, content));\n }\n let start = range.start, end = range.end;\n tr.step(new ReplaceAroundStep(start, end, start, end, new Slice(content, 0, 0), wrappers.length, true));\n}\nfunction setBlockType(tr, from, to, type, attrs) {\n if (!type.isTextblock)\n throw new RangeError(\"Type given to setBlockType should be a textblock\");\n let mapFrom = tr.steps.length;\n tr.doc.nodesBetween(from, to, (node, pos) => {\n let attrsHere = typeof attrs == \"function\" ? attrs(node) : attrs;\n if (node.isTextblock && !node.hasMarkup(type, attrsHere) &&\n canChangeType(tr.doc, tr.mapping.slice(mapFrom).map(pos), type)) {\n let convertNewlines = null;\n if (type.schema.linebreakReplacement) {\n let pre = type.whitespace == \"pre\", supportLinebreak = !!type.contentMatch.matchType(type.schema.linebreakReplacement);\n if (pre && !supportLinebreak)\n convertNewlines = false;\n else if (!pre && supportLinebreak)\n convertNewlines = true;\n }\n // Ensure all markup that isn't allowed in the new node type is cleared\n if (convertNewlines === false)\n replaceLinebreaks(tr, node, pos, mapFrom);\n clearIncompatible(tr, tr.mapping.slice(mapFrom).map(pos, 1), type, undefined, convertNewlines === null);\n let mapping = tr.mapping.slice(mapFrom);\n let startM = mapping.map(pos, 1), endM = mapping.map(pos + node.nodeSize, 1);\n tr.step(new ReplaceAroundStep(startM, endM, startM + 1, endM - 1, new Slice(Fragment.from(type.create(attrsHere, null, node.marks)), 0, 0), 1, true));\n if (convertNewlines === true)\n replaceNewlines(tr, node, pos, mapFrom);\n return false;\n }\n });\n}\nfunction replaceNewlines(tr, node, pos, mapFrom) {\n node.forEach((child, offset) => {\n if (child.isText) {\n let m, newline = /\\r?\\n|\\r/g;\n while (m = newline.exec(child.text)) {\n let start = tr.mapping.slice(mapFrom).map(pos + 1 + offset + m.index);\n tr.replaceWith(start, start + 1, node.type.schema.linebreakReplacement.create());\n }\n }\n });\n}\nfunction replaceLinebreaks(tr, node, pos, mapFrom) {\n node.forEach((child, offset) => {\n if (child.type == child.type.schema.linebreakReplacement) {\n let start = tr.mapping.slice(mapFrom).map(pos + 1 + offset);\n tr.replaceWith(start, start + 1, node.type.schema.text(\"\\n\"));\n }\n });\n}\nfunction canChangeType(doc, pos, type) {\n let $pos = doc.resolve(pos), index = $pos.index();\n return $pos.parent.canReplaceWith(index, index + 1, type);\n}\n/**\nChange the type, attributes, and/or marks of the node at `pos`.\nWhen `type` isn't given, the existing node type is preserved,\n*/\nfunction setNodeMarkup(tr, pos, type, attrs, marks) {\n let node = tr.doc.nodeAt(pos);\n if (!node)\n throw new RangeError(\"No node at given position\");\n if (!type)\n type = node.type;\n let newNode = type.create(attrs, null, marks || node.marks);\n if (node.isLeaf)\n return tr.replaceWith(pos, pos + node.nodeSize, newNode);\n if (!type.validContent(node.content))\n throw new RangeError(\"Invalid content for node type \" + type.name);\n tr.step(new ReplaceAroundStep(pos, pos + node.nodeSize, pos + 1, pos + node.nodeSize - 1, new Slice(Fragment.from(newNode), 0, 0), 1, true));\n}\n/**\nCheck whether splitting at the given position is allowed.\n*/\nfunction canSplit(doc, pos, depth = 1, typesAfter) {\n let $pos = doc.resolve(pos), base = $pos.depth - depth;\n let innerType = (typesAfter && typesAfter[typesAfter.length - 1]) || $pos.parent;\n if (base < 0 || $pos.parent.type.spec.isolating ||\n !$pos.parent.canReplace($pos.index(), $pos.parent.childCount) ||\n !innerType.type.validContent($pos.parent.content.cutByIndex($pos.index(), $pos.parent.childCount)))\n return false;\n for (let d = $pos.depth - 1, i = depth - 2; d > base; d--, i--) {\n let node = $pos.node(d), index = $pos.index(d);\n if (node.type.spec.isolating)\n return false;\n let rest = node.content.cutByIndex(index, node.childCount);\n let overrideChild = typesAfter && typesAfter[i + 1];\n if (overrideChild)\n rest = rest.replaceChild(0, overrideChild.type.create(overrideChild.attrs));\n let after = (typesAfter && typesAfter[i]) || node;\n if (!node.canReplace(index + 1, node.childCount) || !after.type.validContent(rest))\n return false;\n }\n let index = $pos.indexAfter(base);\n let baseType = typesAfter && typesAfter[0];\n return $pos.node(base).canReplaceWith(index, index, baseType ? baseType.type : $pos.node(base + 1).type);\n}\nfunction split(tr, pos, depth = 1, typesAfter) {\n let $pos = tr.doc.resolve(pos), before = Fragment.empty, after = Fragment.empty;\n for (let d = $pos.depth, e = $pos.depth - depth, i = depth - 1; d > e; d--, i--) {\n before = Fragment.from($pos.node(d).copy(before));\n let typeAfter = typesAfter && typesAfter[i];\n after = Fragment.from(typeAfter ? typeAfter.type.create(typeAfter.attrs, after) : $pos.node(d).copy(after));\n }\n tr.step(new ReplaceStep(pos, pos, new Slice(before.append(after), depth, depth), true));\n}\n/**\nTest whether the blocks before and after a given position can be\njoined.\n*/\nfunction canJoin(doc, pos) {\n let $pos = doc.resolve(pos), index = $pos.index();\n return joinable($pos.nodeBefore, $pos.nodeAfter) &&\n $pos.parent.canReplace(index, index + 1);\n}\nfunction canAppendWithSubstitutedLinebreaks(a, b) {\n if (!b.content.size)\n a.type.compatibleContent(b.type);\n let match = a.contentMatchAt(a.childCount);\n let { linebreakReplacement } = a.type.schema;\n for (let i = 0; i < b.childCount; i++) {\n let child = b.child(i);\n let type = child.type == linebreakReplacement ? a.type.schema.nodes.text : child.type;\n match = match.matchType(type);\n if (!match)\n return false;\n if (!a.type.allowsMarks(child.marks))\n return false;\n }\n return match.validEnd;\n}\nfunction joinable(a, b) {\n return !!(a && b && !a.isLeaf && canAppendWithSubstitutedLinebreaks(a, b));\n}\n/**\nFind an ancestor of the given position that can be joined to the\nblock before (or after if `dir` is positive). Returns the joinable\npoint, if any.\n*/\nfunction joinPoint(doc, pos, dir = -1) {\n let $pos = doc.resolve(pos);\n for (let d = $pos.depth;; d--) {\n let before, after, index = $pos.index(d);\n if (d == $pos.depth) {\n before = $pos.nodeBefore;\n after = $pos.nodeAfter;\n }\n else if (dir > 0) {\n before = $pos.node(d + 1);\n index++;\n after = $pos.node(d).maybeChild(index);\n }\n else {\n before = $pos.node(d).maybeChild(index - 1);\n after = $pos.node(d + 1);\n }\n if (before && !before.isTextblock && joinable(before, after) &&\n $pos.node(d).canReplace(index, index + 1))\n return pos;\n if (d == 0)\n break;\n pos = dir < 0 ? $pos.before(d) : $pos.after(d);\n }\n}\nfunction join(tr, pos, depth) {\n let convertNewlines = null;\n let { linebreakReplacement } = tr.doc.type.schema;\n let $before = tr.doc.resolve(pos - depth), beforeType = $before.node().type;\n if (linebreakReplacement && beforeType.inlineContent) {\n let pre = beforeType.whitespace == \"pre\";\n let supportLinebreak = !!beforeType.contentMatch.matchType(linebreakReplacement);\n if (pre && !supportLinebreak)\n convertNewlines = false;\n else if (!pre && supportLinebreak)\n convertNewlines = true;\n }\n let mapFrom = tr.steps.length;\n if (convertNewlines === false) {\n let $after = tr.doc.resolve(pos + depth);\n replaceLinebreaks(tr, $after.node(), $after.before(), mapFrom);\n }\n if (beforeType.inlineContent)\n clearIncompatible(tr, pos + depth - 1, beforeType, $before.node().contentMatchAt($before.index()), convertNewlines == null);\n let mapping = tr.mapping.slice(mapFrom), start = mapping.map(pos - depth);\n tr.step(new ReplaceStep(start, mapping.map(pos + depth, -1), Slice.empty, true));\n if (convertNewlines === true) {\n let $full = tr.doc.resolve(start);\n replaceNewlines(tr, $full.node(), $full.before(), tr.steps.length);\n }\n return tr;\n}\n/**\nTry to find a point where a node of the given type can be inserted\nnear `pos`, by searching up the node hierarchy when `pos` itself\nisn't a valid place but is at the start or end of a node. Return\nnull if no position was found.\n*/\nfunction insertPoint(doc, pos, nodeType) {\n let $pos = doc.resolve(pos);\n if ($pos.parent.canReplaceWith($pos.index(), $pos.index(), nodeType))\n return pos;\n if ($pos.parentOffset == 0)\n for (let d = $pos.depth - 1; d >= 0; d--) {\n let index = $pos.index(d);\n if ($pos.node(d).canReplaceWith(index, index, nodeType))\n return $pos.before(d + 1);\n if (index > 0)\n return null;\n }\n if ($pos.parentOffset == $pos.parent.content.size)\n for (let d = $pos.depth - 1; d >= 0; d--) {\n let index = $pos.indexAfter(d);\n if ($pos.node(d).canReplaceWith(index, index, nodeType))\n return $pos.after(d + 1);\n if (index < $pos.node(d).childCount)\n return null;\n }\n return null;\n}\n/**\nFinds a position at or around the given position where the given\nslice can be inserted. Will look at parent nodes' nearest boundary\nand try there, even if the original position wasn't directly at the\nstart or end of that node. Returns null when no position was found.\n*/\nfunction dropPoint(doc, pos, slice) {\n let $pos = doc.resolve(pos);\n if (!slice.content.size)\n return pos;\n let content = slice.content;\n for (let i = 0; i < slice.openStart; i++)\n content = content.firstChild.content;\n for (let pass = 1; pass <= (slice.openStart == 0 && slice.size ? 2 : 1); pass++) {\n for (let d = $pos.depth; d >= 0; d--) {\n let bias = d == $pos.depth ? 0 : $pos.pos <= ($pos.start(d + 1) + $pos.end(d + 1)) / 2 ? -1 : 1;\n let insertPos = $pos.index(d) + (bias > 0 ? 1 : 0);\n let parent = $pos.node(d), fits = false;\n if (pass == 1) {\n fits = parent.canReplace(insertPos, insertPos, content);\n }\n else {\n let wrapping = parent.contentMatchAt(insertPos).findWrapping(content.firstChild.type);\n fits = wrapping && parent.canReplaceWith(insertPos, insertPos, wrapping[0]);\n }\n if (fits)\n return bias == 0 ? $pos.pos : bias < 0 ? $pos.before(d + 1) : $pos.after(d + 1);\n }\n }\n return null;\n}\n\n/**\n‘Fit’ a slice into a given position in the document, producing a\n[step](https://prosemirror.net/docs/ref/#transform.Step) that inserts it. Will return null if\nthere's no meaningful way to insert the slice here, or inserting it\nwould be a no-op (an empty slice over an empty range).\n*/\nfunction replaceStep(doc, from, to = from, slice = Slice.empty) {\n if (from == to && !slice.size)\n return null;\n let $from = doc.resolve(from), $to = doc.resolve(to);\n // Optimization -- avoid work if it's obvious that it's not needed.\n if (fitsTrivially($from, $to, slice))\n return new ReplaceStep(from, to, slice);\n return new Fitter($from, $to, slice).fit();\n}\nfunction fitsTrivially($from, $to, slice) {\n return !slice.openStart && !slice.openEnd && $from.start() == $to.start() &&\n $from.parent.canReplace($from.index(), $to.index(), slice.content);\n}\n// Algorithm for 'placing' the elements of a slice into a gap:\n//\n// We consider the content of each node that is open to the left to be\n// independently placeable. I.e. in , when the\n// paragraph on the left is open, \"foo\" can be placed (somewhere on\n// the left side of the replacement gap) independently from p(\"bar\").\n//\n// This class tracks the state of the placement progress in the\n// following properties:\n//\n// - `frontier` holds a stack of `{type, match}` objects that\n// represent the open side of the replacement. It starts at\n// `$from`, then moves forward as content is placed, and is finally\n// reconciled with `$to`.\n//\n// - `unplaced` is a slice that represents the content that hasn't\n// been placed yet.\n//\n// - `placed` is a fragment of placed content. Its open-start value\n// is implicit in `$from`, and its open-end value in `frontier`.\nclass Fitter {\n constructor($from, $to, unplaced) {\n this.$from = $from;\n this.$to = $to;\n this.unplaced = unplaced;\n this.frontier = [];\n this.placed = Fragment.empty;\n for (let i = 0; i <= $from.depth; i++) {\n let node = $from.node(i);\n this.frontier.push({\n type: node.type,\n match: node.contentMatchAt($from.indexAfter(i))\n });\n }\n for (let i = $from.depth; i > 0; i--)\n this.placed = Fragment.from($from.node(i).copy(this.placed));\n }\n get depth() { return this.frontier.length - 1; }\n fit() {\n // As long as there's unplaced content, try to place some of it.\n // If that fails, either increase the open score of the unplaced\n // slice, or drop nodes from it, and then try again.\n while (this.unplaced.size) {\n let fit = this.findFittable();\n if (fit)\n this.placeNodes(fit);\n else\n this.openMore() || this.dropNode();\n }\n // When there's inline content directly after the frontier _and_\n // directly after `this.$to`, we must generate a `ReplaceAround`\n // step that pulls that content into the node after the frontier.\n // That means the fitting must be done to the end of the textblock\n // node after `this.$to`, not `this.$to` itself.\n let moveInline = this.mustMoveInline(), placedSize = this.placed.size - this.depth - this.$from.depth;\n let $from = this.$from, $to = this.close(moveInline < 0 ? this.$to : $from.doc.resolve(moveInline));\n if (!$to)\n return null;\n // If closing to `$to` succeeded, create a step\n let content = this.placed, openStart = $from.depth, openEnd = $to.depth;\n while (openStart && openEnd && content.childCount == 1) { // Normalize by dropping open parent nodes\n content = content.firstChild.content;\n openStart--;\n openEnd--;\n }\n let slice = new Slice(content, openStart, openEnd);\n if (moveInline > -1)\n return new ReplaceAroundStep($from.pos, moveInline, this.$to.pos, this.$to.end(), slice, placedSize);\n if (slice.size || $from.pos != this.$to.pos) // Don't generate no-op steps\n return new ReplaceStep($from.pos, $to.pos, slice);\n return null;\n }\n // Find a position on the start spine of `this.unplaced` that has\n // content that can be moved somewhere on the frontier. Returns two\n // depths, one for the slice and one for the frontier.\n findFittable() {\n let startDepth = this.unplaced.openStart;\n for (let cur = this.unplaced.content, d = 0, openEnd = this.unplaced.openEnd; d < startDepth; d++) {\n let node = cur.firstChild;\n if (cur.childCount > 1)\n openEnd = 0;\n if (node.type.spec.isolating && openEnd <= d) {\n startDepth = d;\n break;\n }\n cur = node.content;\n }\n // Only try wrapping nodes (pass 2) after finding a place without\n // wrapping failed.\n for (let pass = 1; pass <= 2; pass++) {\n for (let sliceDepth = pass == 1 ? startDepth : this.unplaced.openStart; sliceDepth >= 0; sliceDepth--) {\n let fragment, parent = null;\n if (sliceDepth) {\n parent = contentAt(this.unplaced.content, sliceDepth - 1).firstChild;\n fragment = parent.content;\n }\n else {\n fragment = this.unplaced.content;\n }\n let first = fragment.firstChild;\n for (let frontierDepth = this.depth; frontierDepth >= 0; frontierDepth--) {\n let { type, match } = this.frontier[frontierDepth], wrap, inject = null;\n // In pass 1, if the next node matches, or there is no next\n // node but the parents look compatible, we've found a\n // place.\n if (pass == 1 && (first ? match.matchType(first.type) || (inject = match.fillBefore(Fragment.from(first), false))\n : parent && type.compatibleContent(parent.type)))\n return { sliceDepth, frontierDepth, parent, inject };\n // In pass 2, look for a set of wrapping nodes that make\n // `first` fit here.\n else if (pass == 2 && first && (wrap = match.findWrapping(first.type)))\n return { sliceDepth, frontierDepth, parent, wrap };\n // Don't continue looking further up if the parent node\n // would fit here.\n if (parent && match.matchType(parent.type))\n break;\n }\n }\n }\n }\n openMore() {\n let { content, openStart, openEnd } = this.unplaced;\n let inner = contentAt(content, openStart);\n if (!inner.childCount || inner.firstChild.isLeaf)\n return false;\n this.unplaced = new Slice(content, openStart + 1, Math.max(openEnd, inner.size + openStart >= content.size - openEnd ? openStart + 1 : 0));\n return true;\n }\n dropNode() {\n let { content, openStart, openEnd } = this.unplaced;\n let inner = contentAt(content, openStart);\n if (inner.childCount <= 1 && openStart > 0) {\n let openAtEnd = content.size - openStart <= openStart + inner.size;\n this.unplaced = new Slice(dropFromFragment(content, openStart - 1, 1), openStart - 1, openAtEnd ? openStart - 1 : openEnd);\n }\n else {\n this.unplaced = new Slice(dropFromFragment(content, openStart, 1), openStart, openEnd);\n }\n }\n // Move content from the unplaced slice at `sliceDepth` to the\n // frontier node at `frontierDepth`. Close that frontier node when\n // applicable.\n placeNodes({ sliceDepth, frontierDepth, parent, inject, wrap }) {\n while (this.depth > frontierDepth)\n this.closeFrontierNode();\n if (wrap)\n for (let i = 0; i < wrap.length; i++)\n this.openFrontierNode(wrap[i]);\n let slice = this.unplaced, fragment = parent ? parent.content : slice.content;\n let openStart = slice.openStart - sliceDepth;\n let taken = 0, add = [];\n let { match, type } = this.frontier[frontierDepth];\n if (inject) {\n for (let i = 0; i < inject.childCount; i++)\n add.push(inject.child(i));\n match = match.matchFragment(inject);\n }\n // Computes the amount of (end) open nodes at the end of the\n // fragment. When 0, the parent is open, but no more. When\n // negative, nothing is open.\n let openEndCount = (fragment.size + sliceDepth) - (slice.content.size - slice.openEnd);\n // Scan over the fragment, fitting as many child nodes as\n // possible.\n while (taken < fragment.childCount) {\n let next = fragment.child(taken), matches = match.matchType(next.type);\n if (!matches)\n break;\n taken++;\n if (taken > 1 || openStart == 0 || next.content.size) { // Drop empty open nodes\n match = matches;\n add.push(closeNodeStart(next.mark(type.allowedMarks(next.marks)), taken == 1 ? openStart : 0, taken == fragment.childCount ? openEndCount : -1));\n }\n }\n let toEnd = taken == fragment.childCount;\n if (!toEnd)\n openEndCount = -1;\n this.placed = addToFragment(this.placed, frontierDepth, Fragment.from(add));\n this.frontier[frontierDepth].match = match;\n // If the parent types match, and the entire node was moved, and\n // it's not open, close this frontier node right away.\n if (toEnd && openEndCount < 0 && parent && parent.type == this.frontier[this.depth].type && this.frontier.length > 1)\n this.closeFrontierNode();\n // Add new frontier nodes for any open nodes at the end.\n for (let i = 0, cur = fragment; i < openEndCount; i++) {\n let node = cur.lastChild;\n this.frontier.push({ type: node.type, match: node.contentMatchAt(node.childCount) });\n cur = node.content;\n }\n // Update `this.unplaced`. Drop the entire node from which we\n // placed it we got to its end, otherwise just drop the placed\n // nodes.\n this.unplaced = !toEnd ? new Slice(dropFromFragment(slice.content, sliceDepth, taken), slice.openStart, slice.openEnd)\n : sliceDepth == 0 ? Slice.empty\n : new Slice(dropFromFragment(slice.content, sliceDepth - 1, 1), sliceDepth - 1, openEndCount < 0 ? slice.openEnd : sliceDepth - 1);\n }\n mustMoveInline() {\n if (!this.$to.parent.isTextblock)\n return -1;\n let top = this.frontier[this.depth], level;\n if (!top.type.isTextblock || !contentAfterFits(this.$to, this.$to.depth, top.type, top.match, false) ||\n (this.$to.depth == this.depth && (level = this.findCloseLevel(this.$to)) && level.depth == this.depth))\n return -1;\n let { depth } = this.$to, after = this.$to.after(depth);\n while (depth > 1 && after == this.$to.end(--depth))\n ++after;\n return after;\n }\n findCloseLevel($to) {\n scan: for (let i = Math.min(this.depth, $to.depth); i >= 0; i--) {\n let { match, type } = this.frontier[i];\n let dropInner = i < $to.depth && $to.end(i + 1) == $to.pos + ($to.depth - (i + 1));\n let fit = contentAfterFits($to, i, type, match, dropInner);\n if (!fit)\n continue;\n for (let d = i - 1; d >= 0; d--) {\n let { match, type } = this.frontier[d];\n let matches = contentAfterFits($to, d, type, match, true);\n if (!matches || matches.childCount)\n continue scan;\n }\n return { depth: i, fit, move: dropInner ? $to.doc.resolve($to.after(i + 1)) : $to };\n }\n }\n close($to) {\n let close = this.findCloseLevel($to);\n if (!close)\n return null;\n while (this.depth > close.depth)\n this.closeFrontierNode();\n if (close.fit.childCount)\n this.placed = addToFragment(this.placed, close.depth, close.fit);\n $to = close.move;\n for (let d = close.depth + 1; d <= $to.depth; d++) {\n let node = $to.node(d), add = node.type.contentMatch.fillBefore(node.content, true, $to.index(d));\n this.openFrontierNode(node.type, node.attrs, add);\n }\n return $to;\n }\n openFrontierNode(type, attrs = null, content) {\n let top = this.frontier[this.depth];\n top.match = top.match.matchType(type);\n this.placed = addToFragment(this.placed, this.depth, Fragment.from(type.create(attrs, content)));\n this.frontier.push({ type, match: type.contentMatch });\n }\n closeFrontierNode() {\n let open = this.frontier.pop();\n let add = open.match.fillBefore(Fragment.empty, true);\n if (add.childCount)\n this.placed = addToFragment(this.placed, this.frontier.length, add);\n }\n}\nfunction dropFromFragment(fragment, depth, count) {\n if (depth == 0)\n return fragment.cutByIndex(count, fragment.childCount);\n return fragment.replaceChild(0, fragment.firstChild.copy(dropFromFragment(fragment.firstChild.content, depth - 1, count)));\n}\nfunction addToFragment(fragment, depth, content) {\n if (depth == 0)\n return fragment.append(content);\n return fragment.replaceChild(fragment.childCount - 1, fragment.lastChild.copy(addToFragment(fragment.lastChild.content, depth - 1, content)));\n}\nfunction contentAt(fragment, depth) {\n for (let i = 0; i < depth; i++)\n fragment = fragment.firstChild.content;\n return fragment;\n}\nfunction closeNodeStart(node, openStart, openEnd) {\n if (openStart <= 0)\n return node;\n let frag = node.content;\n if (openStart > 1)\n frag = frag.replaceChild(0, closeNodeStart(frag.firstChild, openStart - 1, frag.childCount == 1 ? openEnd - 1 : 0));\n if (openStart > 0) {\n frag = node.type.contentMatch.fillBefore(frag).append(frag);\n if (openEnd <= 0)\n frag = frag.append(node.type.contentMatch.matchFragment(frag).fillBefore(Fragment.empty, true));\n }\n return node.copy(frag);\n}\nfunction contentAfterFits($to, depth, type, match, open) {\n let node = $to.node(depth), index = open ? $to.indexAfter(depth) : $to.index(depth);\n if (index == node.childCount && !type.compatibleContent(node.type))\n return null;\n let fit = match.fillBefore(node.content, true, index);\n return fit && !invalidMarks(type, node.content, index) ? fit : null;\n}\nfunction invalidMarks(type, fragment, start) {\n for (let i = start; i < fragment.childCount; i++)\n if (!type.allowsMarks(fragment.child(i).marks))\n return true;\n return false;\n}\nfunction definesContent(type) {\n return type.spec.defining || type.spec.definingForContent;\n}\nfunction replaceRange(tr, from, to, slice) {\n if (!slice.size)\n return tr.deleteRange(from, to);\n let $from = tr.doc.resolve(from), $to = tr.doc.resolve(to);\n if (fitsTrivially($from, $to, slice))\n return tr.step(new ReplaceStep(from, to, slice));\n let targetDepths = coveredDepths($from, tr.doc.resolve(to));\n // Can't replace the whole document, so remove 0 if it's present\n if (targetDepths[targetDepths.length - 1] == 0)\n targetDepths.pop();\n // Negative numbers represent not expansion over the whole node at\n // that depth, but replacing from $from.before(-D) to $to.pos.\n let preferredTarget = -($from.depth + 1);\n targetDepths.unshift(preferredTarget);\n // This loop picks a preferred target depth, if one of the covering\n // depths is not outside of a defining node, and adds negative\n // depths for any depth that has $from at its start and does not\n // cross a defining node.\n for (let d = $from.depth, pos = $from.pos - 1; d > 0; d--, pos--) {\n let spec = $from.node(d).type.spec;\n if (spec.defining || spec.definingAsContext || spec.isolating)\n break;\n if (targetDepths.indexOf(d) > -1)\n preferredTarget = d;\n else if ($from.before(d) == pos)\n targetDepths.splice(1, 0, -d);\n }\n // Try to fit each possible depth of the slice into each possible\n // target depth, starting with the preferred depths.\n let preferredTargetIndex = targetDepths.indexOf(preferredTarget);\n let leftNodes = [], preferredDepth = slice.openStart;\n for (let content = slice.content, i = 0;; i++) {\n let node = content.firstChild;\n leftNodes.push(node);\n if (i == slice.openStart)\n break;\n content = node.content;\n }\n // Back up preferredDepth to cover defining textblocks directly\n // above it, possibly skipping a non-defining textblock.\n for (let d = preferredDepth - 1; d >= 0; d--) {\n let leftNode = leftNodes[d], def = definesContent(leftNode.type);\n if (def && !leftNode.sameMarkup($from.node(Math.abs(preferredTarget) - 1)))\n preferredDepth = d;\n else if (def || !leftNode.type.isTextblock)\n break;\n }\n for (let j = slice.openStart; j >= 0; j--) {\n let openDepth = (j + preferredDepth + 1) % (slice.openStart + 1);\n let insert = leftNodes[openDepth];\n if (!insert)\n continue;\n for (let i = 0; i < targetDepths.length; i++) {\n // Loop over possible expansion levels, starting with the\n // preferred one\n let targetDepth = targetDepths[(i + preferredTargetIndex) % targetDepths.length], expand = true;\n if (targetDepth < 0) {\n expand = false;\n targetDepth = -targetDepth;\n }\n let parent = $from.node(targetDepth - 1), index = $from.index(targetDepth - 1);\n if (parent.canReplaceWith(index, index, insert.type, insert.marks))\n return tr.replace($from.before(targetDepth), expand ? $to.after(targetDepth) : to, new Slice(closeFragment(slice.content, 0, slice.openStart, openDepth), openDepth, slice.openEnd));\n }\n }\n let startSteps = tr.steps.length;\n for (let i = targetDepths.length - 1; i >= 0; i--) {\n tr.replace(from, to, slice);\n if (tr.steps.length > startSteps)\n break;\n let depth = targetDepths[i];\n if (depth < 0)\n continue;\n from = $from.before(depth);\n to = $to.after(depth);\n }\n}\nfunction closeFragment(fragment, depth, oldOpen, newOpen, parent) {\n if (depth < oldOpen) {\n let first = fragment.firstChild;\n fragment = fragment.replaceChild(0, first.copy(closeFragment(first.content, depth + 1, oldOpen, newOpen, first)));\n }\n if (depth > newOpen) {\n let match = parent.contentMatchAt(0);\n let start = match.fillBefore(fragment).append(fragment);\n fragment = start.append(match.matchFragment(start).fillBefore(Fragment.empty, true));\n }\n return fragment;\n}\nfunction replaceRangeWith(tr, from, to, node) {\n if (!node.isInline && from == to && tr.doc.resolve(from).parent.content.size) {\n let point = insertPoint(tr.doc, from, node.type);\n if (point != null)\n from = to = point;\n }\n tr.replaceRange(from, to, new Slice(Fragment.from(node), 0, 0));\n}\nfunction deleteRange(tr, from, to) {\n let $from = tr.doc.resolve(from), $to = tr.doc.resolve(to);\n let covered = coveredDepths($from, $to);\n for (let i = 0; i < covered.length; i++) {\n let depth = covered[i], last = i == covered.length - 1;\n if ((last && depth == 0) || $from.node(depth).type.contentMatch.validEnd)\n return tr.delete($from.start(depth), $to.end(depth));\n if (depth > 0 && (last || $from.node(depth - 1).canReplace($from.index(depth - 1), $to.indexAfter(depth - 1))))\n return tr.delete($from.before(depth), $to.after(depth));\n }\n for (let d = 1; d <= $from.depth && d <= $to.depth; d++) {\n if (from - $from.start(d) == $from.depth - d && to > $from.end(d) && $to.end(d) - to != $to.depth - d &&\n $from.start(d - 1) == $to.start(d - 1) && $from.node(d - 1).canReplace($from.index(d - 1), $to.index(d - 1)))\n return tr.delete($from.before(d), to);\n }\n tr.delete(from, to);\n}\n// Returns an array of all depths for which $from - $to spans the\n// whole content of the nodes at that depth.\nfunction coveredDepths($from, $to) {\n let result = [], minDepth = Math.min($from.depth, $to.depth);\n for (let d = minDepth; d >= 0; d--) {\n let start = $from.start(d);\n if (start < $from.pos - ($from.depth - d) ||\n $to.end(d) > $to.pos + ($to.depth - d) ||\n $from.node(d).type.spec.isolating ||\n $to.node(d).type.spec.isolating)\n break;\n if (start == $to.start(d) ||\n (d == $from.depth && d == $to.depth && $from.parent.inlineContent && $to.parent.inlineContent &&\n d && $to.start(d - 1) == start - 1))\n result.push(d);\n }\n return result;\n}\n\n/**\nUpdate an attribute in a specific node.\n*/\nclass AttrStep extends Step {\n /**\n Construct an attribute step.\n */\n constructor(\n /**\n The position of the target node.\n */\n pos, \n /**\n The attribute to set.\n */\n attr, \n // The attribute's new value.\n value) {\n super();\n this.pos = pos;\n this.attr = attr;\n this.value = value;\n }\n apply(doc) {\n let node = doc.nodeAt(this.pos);\n if (!node)\n return StepResult.fail(\"No node at attribute step's position\");\n let attrs = Object.create(null);\n for (let name in node.attrs)\n attrs[name] = node.attrs[name];\n attrs[this.attr] = this.value;\n let updated = node.type.create(attrs, null, node.marks);\n return StepResult.fromReplace(doc, this.pos, this.pos + 1, new Slice(Fragment.from(updated), 0, node.isLeaf ? 0 : 1));\n }\n getMap() {\n return StepMap.empty;\n }\n invert(doc) {\n return new AttrStep(this.pos, this.attr, doc.nodeAt(this.pos).attrs[this.attr]);\n }\n map(mapping) {\n let pos = mapping.mapResult(this.pos, 1);\n return pos.deletedAfter ? null : new AttrStep(pos.pos, this.attr, this.value);\n }\n toJSON() {\n return { stepType: \"attr\", pos: this.pos, attr: this.attr, value: this.value };\n }\n static fromJSON(schema, json) {\n if (typeof json.pos != \"number\" || typeof json.attr != \"string\")\n throw new RangeError(\"Invalid input for AttrStep.fromJSON\");\n return new AttrStep(json.pos, json.attr, json.value);\n }\n}\nStep.jsonID(\"attr\", AttrStep);\n/**\nUpdate an attribute in the doc node.\n*/\nclass DocAttrStep extends Step {\n /**\n Construct an attribute step.\n */\n constructor(\n /**\n The attribute to set.\n */\n attr, \n // The attribute's new value.\n value) {\n super();\n this.attr = attr;\n this.value = value;\n }\n apply(doc) {\n let attrs = Object.create(null);\n for (let name in doc.attrs)\n attrs[name] = doc.attrs[name];\n attrs[this.attr] = this.value;\n let updated = doc.type.create(attrs, doc.content, doc.marks);\n return StepResult.ok(updated);\n }\n getMap() {\n return StepMap.empty;\n }\n invert(doc) {\n return new DocAttrStep(this.attr, doc.attrs[this.attr]);\n }\n map(mapping) {\n return this;\n }\n toJSON() {\n return { stepType: \"docAttr\", attr: this.attr, value: this.value };\n }\n static fromJSON(schema, json) {\n if (typeof json.attr != \"string\")\n throw new RangeError(\"Invalid input for DocAttrStep.fromJSON\");\n return new DocAttrStep(json.attr, json.value);\n }\n}\nStep.jsonID(\"docAttr\", DocAttrStep);\n\n/**\n@internal\n*/\nlet TransformError = class extends Error {\n};\nTransformError = function TransformError(message) {\n let err = Error.call(this, message);\n err.__proto__ = TransformError.prototype;\n return err;\n};\nTransformError.prototype = Object.create(Error.prototype);\nTransformError.prototype.constructor = TransformError;\nTransformError.prototype.name = \"TransformError\";\n/**\nAbstraction to build up and track an array of\n[steps](https://prosemirror.net/docs/ref/#transform.Step) representing a document transformation.\n\nMost transforming methods return the `Transform` object itself, so\nthat they can be chained.\n*/\nclass Transform {\n /**\n Create a transform that starts with the given document.\n */\n constructor(\n /**\n The current document (the result of applying the steps in the\n transform).\n */\n doc) {\n this.doc = doc;\n /**\n The steps in this transform.\n */\n this.steps = [];\n /**\n The documents before each of the steps.\n */\n this.docs = [];\n /**\n A mapping with the maps for each of the steps in this transform.\n */\n this.mapping = new Mapping;\n }\n /**\n The starting document.\n */\n get before() { return this.docs.length ? this.docs[0] : this.doc; }\n /**\n Apply a new step in this transform, saving the result. Throws an\n error when the step fails.\n */\n step(step) {\n let result = this.maybeStep(step);\n if (result.failed)\n throw new TransformError(result.failed);\n return this;\n }\n /**\n Try to apply a step in this transformation, ignoring it if it\n fails. Returns the step result.\n */\n maybeStep(step) {\n let result = step.apply(this.doc);\n if (!result.failed)\n this.addStep(step, result.doc);\n return result;\n }\n /**\n True when the document has been changed (when there are any\n steps).\n */\n get docChanged() {\n return this.steps.length > 0;\n }\n /**\n @internal\n */\n addStep(step, doc) {\n this.docs.push(this.doc);\n this.steps.push(step);\n this.mapping.appendMap(step.getMap());\n this.doc = doc;\n }\n /**\n Replace the part of the document between `from` and `to` with the\n given `slice`.\n */\n replace(from, to = from, slice = Slice.empty) {\n let step = replaceStep(this.doc, from, to, slice);\n if (step)\n this.step(step);\n return this;\n }\n /**\n Replace the given range with the given content, which may be a\n fragment, node, or array of nodes.\n */\n replaceWith(from, to, content) {\n return this.replace(from, to, new Slice(Fragment.from(content), 0, 0));\n }\n /**\n Delete the content between the given positions.\n */\n delete(from, to) {\n return this.replace(from, to, Slice.empty);\n }\n /**\n Insert the given content at the given position.\n */\n insert(pos, content) {\n return this.replaceWith(pos, pos, content);\n }\n /**\n Replace a range of the document with a given slice, using\n `from`, `to`, and the slice's\n [`openStart`](https://prosemirror.net/docs/ref/#model.Slice.openStart) property as hints, rather\n than fixed start and end points. This method may grow the\n replaced area or close open nodes in the slice in order to get a\n fit that is more in line with WYSIWYG expectations, by dropping\n fully covered parent nodes of the replaced region when they are\n marked [non-defining as\n context](https://prosemirror.net/docs/ref/#model.NodeSpec.definingAsContext), or including an\n open parent node from the slice that _is_ marked as [defining\n its content](https://prosemirror.net/docs/ref/#model.NodeSpec.definingForContent).\n \n This is the method, for example, to handle paste. The similar\n [`replace`](https://prosemirror.net/docs/ref/#transform.Transform.replace) method is a more\n primitive tool which will _not_ move the start and end of its given\n range, and is useful in situations where you need more precise\n control over what happens.\n */\n replaceRange(from, to, slice) {\n replaceRange(this, from, to, slice);\n return this;\n }\n /**\n Replace the given range with a node, but use `from` and `to` as\n hints, rather than precise positions. When from and to are the same\n and are at the start or end of a parent node in which the given\n node doesn't fit, this method may _move_ them out towards a parent\n that does allow the given node to be placed. When the given range\n completely covers a parent node, this method may completely replace\n that parent node.\n */\n replaceRangeWith(from, to, node) {\n replaceRangeWith(this, from, to, node);\n return this;\n }\n /**\n Delete the given range, expanding it to cover fully covered\n parent nodes until a valid replace is found.\n */\n deleteRange(from, to) {\n deleteRange(this, from, to);\n return this;\n }\n /**\n Split the content in the given range off from its parent, if there\n is sibling content before or after it, and move it up the tree to\n the depth specified by `target`. You'll probably want to use\n [`liftTarget`](https://prosemirror.net/docs/ref/#transform.liftTarget) to compute `target`, to make\n sure the lift is valid.\n */\n lift(range, target) {\n lift(this, range, target);\n return this;\n }\n /**\n Join the blocks around the given position. If depth is 2, their\n last and first siblings are also joined, and so on.\n */\n join(pos, depth = 1) {\n join(this, pos, depth);\n return this;\n }\n /**\n Wrap the given [range](https://prosemirror.net/docs/ref/#model.NodeRange) in the given set of wrappers.\n The wrappers are assumed to be valid in this position, and should\n probably be computed with [`findWrapping`](https://prosemirror.net/docs/ref/#transform.findWrapping).\n */\n wrap(range, wrappers) {\n wrap(this, range, wrappers);\n return this;\n }\n /**\n Set the type of all textblocks (partly) between `from` and `to` to\n the given node type with the given attributes.\n */\n setBlockType(from, to = from, type, attrs = null) {\n setBlockType(this, from, to, type, attrs);\n return this;\n }\n /**\n Change the type, attributes, and/or marks of the node at `pos`.\n When `type` isn't given, the existing node type is preserved,\n */\n setNodeMarkup(pos, type, attrs = null, marks) {\n setNodeMarkup(this, pos, type, attrs, marks);\n return this;\n }\n /**\n Set a single attribute on a given node to a new value.\n The `pos` addresses the document content. Use `setDocAttribute`\n to set attributes on the document itself.\n */\n setNodeAttribute(pos, attr, value) {\n this.step(new AttrStep(pos, attr, value));\n return this;\n }\n /**\n Set a single attribute on the document to a new value.\n */\n setDocAttribute(attr, value) {\n this.step(new DocAttrStep(attr, value));\n return this;\n }\n /**\n Add a mark to the node at position `pos`.\n */\n addNodeMark(pos, mark) {\n this.step(new AddNodeMarkStep(pos, mark));\n return this;\n }\n /**\n Remove a mark (or a mark of the given type) from the node at\n position `pos`.\n */\n removeNodeMark(pos, mark) {\n if (!(mark instanceof Mark)) {\n let node = this.doc.nodeAt(pos);\n if (!node)\n throw new RangeError(\"No node at position \" + pos);\n mark = mark.isInSet(node.marks);\n if (!mark)\n return this;\n }\n this.step(new RemoveNodeMarkStep(pos, mark));\n return this;\n }\n /**\n Split the node at the given position, and optionally, if `depth` is\n greater than one, any number of nodes above that. By default, the\n parts split off will inherit the node type of the original node.\n This can be changed by passing an array of types and attributes to\n use after the split.\n */\n split(pos, depth = 1, typesAfter) {\n split(this, pos, depth, typesAfter);\n return this;\n }\n /**\n Add the given mark to the inline content between `from` and `to`.\n */\n addMark(from, to, mark) {\n addMark(this, from, to, mark);\n return this;\n }\n /**\n Remove marks from inline nodes between `from` and `to`. When\n `mark` is a single mark, remove precisely that mark. When it is\n a mark type, remove all marks of that type. When it is null,\n remove all marks of any type.\n */\n removeMark(from, to, mark) {\n removeMark(this, from, to, mark);\n return this;\n }\n /**\n Removes all marks and nodes from the content of the node at\n `pos` that don't match the given new parent node type. Accepts\n an optional starting [content match](https://prosemirror.net/docs/ref/#model.ContentMatch) as\n third argument.\n */\n clearIncompatible(pos, parentType, match) {\n clearIncompatible(this, pos, parentType, match);\n return this;\n }\n}\n\nexport { AddMarkStep, AddNodeMarkStep, AttrStep, DocAttrStep, MapResult, Mapping, RemoveMarkStep, RemoveNodeMarkStep, ReplaceAroundStep, ReplaceStep, Step, StepMap, StepResult, Transform, TransformError, canJoin, canSplit, dropPoint, findWrapping, insertPoint, joinPoint, liftTarget, replaceStep };\n","import { Slice, Fragment, Mark, Node } from 'prosemirror-model';\nimport { ReplaceStep, ReplaceAroundStep, Transform } from 'prosemirror-transform';\n\nconst classesById = Object.create(null);\n/**\nSuperclass for editor selections. Every selection type should\nextend this. Should not be instantiated directly.\n*/\nclass Selection {\n /**\n Initialize a selection with the head and anchor and ranges. If no\n ranges are given, constructs a single range across `$anchor` and\n `$head`.\n */\n constructor(\n /**\n The resolved anchor of the selection (the side that stays in\n place when the selection is modified).\n */\n $anchor, \n /**\n The resolved head of the selection (the side that moves when\n the selection is modified).\n */\n $head, ranges) {\n this.$anchor = $anchor;\n this.$head = $head;\n this.ranges = ranges || [new SelectionRange($anchor.min($head), $anchor.max($head))];\n }\n /**\n The selection's anchor, as an unresolved position.\n */\n get anchor() { return this.$anchor.pos; }\n /**\n The selection's head.\n */\n get head() { return this.$head.pos; }\n /**\n The lower bound of the selection's main range.\n */\n get from() { return this.$from.pos; }\n /**\n The upper bound of the selection's main range.\n */\n get to() { return this.$to.pos; }\n /**\n The resolved lower bound of the selection's main range.\n */\n get $from() {\n return this.ranges[0].$from;\n }\n /**\n The resolved upper bound of the selection's main range.\n */\n get $to() {\n return this.ranges[0].$to;\n }\n /**\n Indicates whether the selection contains any content.\n */\n get empty() {\n let ranges = this.ranges;\n for (let i = 0; i < ranges.length; i++)\n if (ranges[i].$from.pos != ranges[i].$to.pos)\n return false;\n return true;\n }\n /**\n Get the content of this selection as a slice.\n */\n content() {\n return this.$from.doc.slice(this.from, this.to, true);\n }\n /**\n Replace the selection with a slice or, if no slice is given,\n delete the selection. Will append to the given transaction.\n */\n replace(tr, content = Slice.empty) {\n // Put the new selection at the position after the inserted\n // content. When that ended in an inline node, search backwards,\n // to get the position after that node. If not, search forward.\n let lastNode = content.content.lastChild, lastParent = null;\n for (let i = 0; i < content.openEnd; i++) {\n lastParent = lastNode;\n lastNode = lastNode.lastChild;\n }\n let mapFrom = tr.steps.length, ranges = this.ranges;\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i], mapping = tr.mapping.slice(mapFrom);\n tr.replaceRange(mapping.map($from.pos), mapping.map($to.pos), i ? Slice.empty : content);\n if (i == 0)\n selectionToInsertionEnd(tr, mapFrom, (lastNode ? lastNode.isInline : lastParent && lastParent.isTextblock) ? -1 : 1);\n }\n }\n /**\n Replace the selection with the given node, appending the changes\n to the given transaction.\n */\n replaceWith(tr, node) {\n let mapFrom = tr.steps.length, ranges = this.ranges;\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i], mapping = tr.mapping.slice(mapFrom);\n let from = mapping.map($from.pos), to = mapping.map($to.pos);\n if (i) {\n tr.deleteRange(from, to);\n }\n else {\n tr.replaceRangeWith(from, to, node);\n selectionToInsertionEnd(tr, mapFrom, node.isInline ? -1 : 1);\n }\n }\n }\n /**\n Find a valid cursor or leaf node selection starting at the given\n position and searching back if `dir` is negative, and forward if\n positive. When `textOnly` is true, only consider cursor\n selections. Will return null when no valid selection position is\n found.\n */\n static findFrom($pos, dir, textOnly = false) {\n let inner = $pos.parent.inlineContent ? new TextSelection($pos)\n : findSelectionIn($pos.node(0), $pos.parent, $pos.pos, $pos.index(), dir, textOnly);\n if (inner)\n return inner;\n for (let depth = $pos.depth - 1; depth >= 0; depth--) {\n let found = dir < 0\n ? findSelectionIn($pos.node(0), $pos.node(depth), $pos.before(depth + 1), $pos.index(depth), dir, textOnly)\n : findSelectionIn($pos.node(0), $pos.node(depth), $pos.after(depth + 1), $pos.index(depth) + 1, dir, textOnly);\n if (found)\n return found;\n }\n return null;\n }\n /**\n Find a valid cursor or leaf node selection near the given\n position. Searches forward first by default, but if `bias` is\n negative, it will search backwards first.\n */\n static near($pos, bias = 1) {\n return this.findFrom($pos, bias) || this.findFrom($pos, -bias) || new AllSelection($pos.node(0));\n }\n /**\n Find the cursor or leaf node selection closest to the start of\n the given document. Will return an\n [`AllSelection`](https://prosemirror.net/docs/ref/#state.AllSelection) if no valid position\n exists.\n */\n static atStart(doc) {\n return findSelectionIn(doc, doc, 0, 0, 1) || new AllSelection(doc);\n }\n /**\n Find the cursor or leaf node selection closest to the end of the\n given document.\n */\n static atEnd(doc) {\n return findSelectionIn(doc, doc, doc.content.size, doc.childCount, -1) || new AllSelection(doc);\n }\n /**\n Deserialize the JSON representation of a selection. Must be\n implemented for custom classes (as a static class method).\n */\n static fromJSON(doc, json) {\n if (!json || !json.type)\n throw new RangeError(\"Invalid input for Selection.fromJSON\");\n let cls = classesById[json.type];\n if (!cls)\n throw new RangeError(`No selection type ${json.type} defined`);\n return cls.fromJSON(doc, json);\n }\n /**\n To be able to deserialize selections from JSON, custom selection\n classes must register themselves with an ID string, so that they\n can be disambiguated. Try to pick something that's unlikely to\n clash with classes from other modules.\n */\n static jsonID(id, selectionClass) {\n if (id in classesById)\n throw new RangeError(\"Duplicate use of selection JSON ID \" + id);\n classesById[id] = selectionClass;\n selectionClass.prototype.jsonID = id;\n return selectionClass;\n }\n /**\n Get a [bookmark](https://prosemirror.net/docs/ref/#state.SelectionBookmark) for this selection,\n which is a value that can be mapped without having access to a\n current document, and later resolved to a real selection for a\n given document again. (This is used mostly by the history to\n track and restore old selections.) The default implementation of\n this method just converts the selection to a text selection and\n returns the bookmark for that.\n */\n getBookmark() {\n return TextSelection.between(this.$anchor, this.$head).getBookmark();\n }\n}\nSelection.prototype.visible = true;\n/**\nRepresents a selected range in a document.\n*/\nclass SelectionRange {\n /**\n Create a range.\n */\n constructor(\n /**\n The lower bound of the range.\n */\n $from, \n /**\n The upper bound of the range.\n */\n $to) {\n this.$from = $from;\n this.$to = $to;\n }\n}\nlet warnedAboutTextSelection = false;\nfunction checkTextSelection($pos) {\n if (!warnedAboutTextSelection && !$pos.parent.inlineContent) {\n warnedAboutTextSelection = true;\n console[\"warn\"](\"TextSelection endpoint not pointing into a node with inline content (\" + $pos.parent.type.name + \")\");\n }\n}\n/**\nA text selection represents a classical editor selection, with a\nhead (the moving side) and anchor (immobile side), both of which\npoint into textblock nodes. It can be empty (a regular cursor\nposition).\n*/\nclass TextSelection extends Selection {\n /**\n Construct a text selection between the given points.\n */\n constructor($anchor, $head = $anchor) {\n checkTextSelection($anchor);\n checkTextSelection($head);\n super($anchor, $head);\n }\n /**\n Returns a resolved position if this is a cursor selection (an\n empty text selection), and null otherwise.\n */\n get $cursor() { return this.$anchor.pos == this.$head.pos ? this.$head : null; }\n map(doc, mapping) {\n let $head = doc.resolve(mapping.map(this.head));\n if (!$head.parent.inlineContent)\n return Selection.near($head);\n let $anchor = doc.resolve(mapping.map(this.anchor));\n return new TextSelection($anchor.parent.inlineContent ? $anchor : $head, $head);\n }\n replace(tr, content = Slice.empty) {\n super.replace(tr, content);\n if (content == Slice.empty) {\n let marks = this.$from.marksAcross(this.$to);\n if (marks)\n tr.ensureMarks(marks);\n }\n }\n eq(other) {\n return other instanceof TextSelection && other.anchor == this.anchor && other.head == this.head;\n }\n getBookmark() {\n return new TextBookmark(this.anchor, this.head);\n }\n toJSON() {\n return { type: \"text\", anchor: this.anchor, head: this.head };\n }\n /**\n @internal\n */\n static fromJSON(doc, json) {\n if (typeof json.anchor != \"number\" || typeof json.head != \"number\")\n throw new RangeError(\"Invalid input for TextSelection.fromJSON\");\n return new TextSelection(doc.resolve(json.anchor), doc.resolve(json.head));\n }\n /**\n Create a text selection from non-resolved positions.\n */\n static create(doc, anchor, head = anchor) {\n let $anchor = doc.resolve(anchor);\n return new this($anchor, head == anchor ? $anchor : doc.resolve(head));\n }\n /**\n Return a text selection that spans the given positions or, if\n they aren't text positions, find a text selection near them.\n `bias` determines whether the method searches forward (default)\n or backwards (negative number) first. Will fall back to calling\n [`Selection.near`](https://prosemirror.net/docs/ref/#state.Selection^near) when the document\n doesn't contain a valid text position.\n */\n static between($anchor, $head, bias) {\n let dPos = $anchor.pos - $head.pos;\n if (!bias || dPos)\n bias = dPos >= 0 ? 1 : -1;\n if (!$head.parent.inlineContent) {\n let found = Selection.findFrom($head, bias, true) || Selection.findFrom($head, -bias, true);\n if (found)\n $head = found.$head;\n else\n return Selection.near($head, bias);\n }\n if (!$anchor.parent.inlineContent) {\n if (dPos == 0) {\n $anchor = $head;\n }\n else {\n $anchor = (Selection.findFrom($anchor, -bias, true) || Selection.findFrom($anchor, bias, true)).$anchor;\n if (($anchor.pos < $head.pos) != (dPos < 0))\n $anchor = $head;\n }\n }\n return new TextSelection($anchor, $head);\n }\n}\nSelection.jsonID(\"text\", TextSelection);\nclass TextBookmark {\n constructor(anchor, head) {\n this.anchor = anchor;\n this.head = head;\n }\n map(mapping) {\n return new TextBookmark(mapping.map(this.anchor), mapping.map(this.head));\n }\n resolve(doc) {\n return TextSelection.between(doc.resolve(this.anchor), doc.resolve(this.head));\n }\n}\n/**\nA node selection is a selection that points at a single node. All\nnodes marked [selectable](https://prosemirror.net/docs/ref/#model.NodeSpec.selectable) can be the\ntarget of a node selection. In such a selection, `from` and `to`\npoint directly before and after the selected node, `anchor` equals\n`from`, and `head` equals `to`..\n*/\nclass NodeSelection extends Selection {\n /**\n Create a node selection. Does not verify the validity of its\n argument.\n */\n constructor($pos) {\n let node = $pos.nodeAfter;\n let $end = $pos.node(0).resolve($pos.pos + node.nodeSize);\n super($pos, $end);\n this.node = node;\n }\n map(doc, mapping) {\n let { deleted, pos } = mapping.mapResult(this.anchor);\n let $pos = doc.resolve(pos);\n if (deleted)\n return Selection.near($pos);\n return new NodeSelection($pos);\n }\n content() {\n return new Slice(Fragment.from(this.node), 0, 0);\n }\n eq(other) {\n return other instanceof NodeSelection && other.anchor == this.anchor;\n }\n toJSON() {\n return { type: \"node\", anchor: this.anchor };\n }\n getBookmark() { return new NodeBookmark(this.anchor); }\n /**\n @internal\n */\n static fromJSON(doc, json) {\n if (typeof json.anchor != \"number\")\n throw new RangeError(\"Invalid input for NodeSelection.fromJSON\");\n return new NodeSelection(doc.resolve(json.anchor));\n }\n /**\n Create a node selection from non-resolved positions.\n */\n static create(doc, from) {\n return new NodeSelection(doc.resolve(from));\n }\n /**\n Determines whether the given node may be selected as a node\n selection.\n */\n static isSelectable(node) {\n return !node.isText && node.type.spec.selectable !== false;\n }\n}\nNodeSelection.prototype.visible = false;\nSelection.jsonID(\"node\", NodeSelection);\nclass NodeBookmark {\n constructor(anchor) {\n this.anchor = anchor;\n }\n map(mapping) {\n let { deleted, pos } = mapping.mapResult(this.anchor);\n return deleted ? new TextBookmark(pos, pos) : new NodeBookmark(pos);\n }\n resolve(doc) {\n let $pos = doc.resolve(this.anchor), node = $pos.nodeAfter;\n if (node && NodeSelection.isSelectable(node))\n return new NodeSelection($pos);\n return Selection.near($pos);\n }\n}\n/**\nA selection type that represents selecting the whole document\n(which can not necessarily be expressed with a text selection, when\nthere are for example leaf block nodes at the start or end of the\ndocument).\n*/\nclass AllSelection extends Selection {\n /**\n Create an all-selection over the given document.\n */\n constructor(doc) {\n super(doc.resolve(0), doc.resolve(doc.content.size));\n }\n replace(tr, content = Slice.empty) {\n if (content == Slice.empty) {\n tr.delete(0, tr.doc.content.size);\n let sel = Selection.atStart(tr.doc);\n if (!sel.eq(tr.selection))\n tr.setSelection(sel);\n }\n else {\n super.replace(tr, content);\n }\n }\n toJSON() { return { type: \"all\" }; }\n /**\n @internal\n */\n static fromJSON(doc) { return new AllSelection(doc); }\n map(doc) { return new AllSelection(doc); }\n eq(other) { return other instanceof AllSelection; }\n getBookmark() { return AllBookmark; }\n}\nSelection.jsonID(\"all\", AllSelection);\nconst AllBookmark = {\n map() { return this; },\n resolve(doc) { return new AllSelection(doc); }\n};\n// FIXME we'll need some awareness of text direction when scanning for selections\n// Try to find a selection inside the given node. `pos` points at the\n// position where the search starts. When `text` is true, only return\n// text selections.\nfunction findSelectionIn(doc, node, pos, index, dir, text = false) {\n if (node.inlineContent)\n return TextSelection.create(doc, pos);\n for (let i = index - (dir > 0 ? 0 : 1); dir > 0 ? i < node.childCount : i >= 0; i += dir) {\n let child = node.child(i);\n if (!child.isAtom) {\n let inner = findSelectionIn(doc, child, pos + dir, dir < 0 ? child.childCount : 0, dir, text);\n if (inner)\n return inner;\n }\n else if (!text && NodeSelection.isSelectable(child)) {\n return NodeSelection.create(doc, pos - (dir < 0 ? child.nodeSize : 0));\n }\n pos += child.nodeSize * dir;\n }\n return null;\n}\nfunction selectionToInsertionEnd(tr, startLen, bias) {\n let last = tr.steps.length - 1;\n if (last < startLen)\n return;\n let step = tr.steps[last];\n if (!(step instanceof ReplaceStep || step instanceof ReplaceAroundStep))\n return;\n let map = tr.mapping.maps[last], end;\n map.forEach((_from, _to, _newFrom, newTo) => { if (end == null)\n end = newTo; });\n tr.setSelection(Selection.near(tr.doc.resolve(end), bias));\n}\n\nconst UPDATED_SEL = 1, UPDATED_MARKS = 2, UPDATED_SCROLL = 4;\n/**\nAn editor state transaction, which can be applied to a state to\ncreate an updated state. Use\n[`EditorState.tr`](https://prosemirror.net/docs/ref/#state.EditorState.tr) to create an instance.\n\nTransactions track changes to the document (they are a subclass of\n[`Transform`](https://prosemirror.net/docs/ref/#transform.Transform)), but also other state changes,\nlike selection updates and adjustments of the set of [stored\nmarks](https://prosemirror.net/docs/ref/#state.EditorState.storedMarks). In addition, you can store\nmetadata properties in a transaction, which are extra pieces of\ninformation that client code or plugins can use to describe what a\ntransaction represents, so that they can update their [own\nstate](https://prosemirror.net/docs/ref/#state.StateField) accordingly.\n\nThe [editor view](https://prosemirror.net/docs/ref/#view.EditorView) uses a few metadata\nproperties: it will attach a property `\"pointer\"` with the value\n`true` to selection transactions directly caused by mouse or touch\ninput, a `\"composition\"` property holding an ID identifying the\ncomposition that caused it to transactions caused by composed DOM\ninput, and a `\"uiEvent\"` property of that may be `\"paste\"`,\n`\"cut\"`, or `\"drop\"`.\n*/\nclass Transaction extends Transform {\n /**\n @internal\n */\n constructor(state) {\n super(state.doc);\n // The step count for which the current selection is valid.\n this.curSelectionFor = 0;\n // Bitfield to track which aspects of the state were updated by\n // this transaction.\n this.updated = 0;\n // Object used to store metadata properties for the transaction.\n this.meta = Object.create(null);\n this.time = Date.now();\n this.curSelection = state.selection;\n this.storedMarks = state.storedMarks;\n }\n /**\n The transaction's current selection. This defaults to the editor\n selection [mapped](https://prosemirror.net/docs/ref/#state.Selection.map) through the steps in the\n transaction, but can be overwritten with\n [`setSelection`](https://prosemirror.net/docs/ref/#state.Transaction.setSelection).\n */\n get selection() {\n if (this.curSelectionFor < this.steps.length) {\n this.curSelection = this.curSelection.map(this.doc, this.mapping.slice(this.curSelectionFor));\n this.curSelectionFor = this.steps.length;\n }\n return this.curSelection;\n }\n /**\n Update the transaction's current selection. Will determine the\n selection that the editor gets when the transaction is applied.\n */\n setSelection(selection) {\n if (selection.$from.doc != this.doc)\n throw new RangeError(\"Selection passed to setSelection must point at the current document\");\n this.curSelection = selection;\n this.curSelectionFor = this.steps.length;\n this.updated = (this.updated | UPDATED_SEL) & ~UPDATED_MARKS;\n this.storedMarks = null;\n return this;\n }\n /**\n Whether the selection was explicitly updated by this transaction.\n */\n get selectionSet() {\n return (this.updated & UPDATED_SEL) > 0;\n }\n /**\n Set the current stored marks.\n */\n setStoredMarks(marks) {\n this.storedMarks = marks;\n this.updated |= UPDATED_MARKS;\n return this;\n }\n /**\n Make sure the current stored marks or, if that is null, the marks\n at the selection, match the given set of marks. Does nothing if\n this is already the case.\n */\n ensureMarks(marks) {\n if (!Mark.sameSet(this.storedMarks || this.selection.$from.marks(), marks))\n this.setStoredMarks(marks);\n return this;\n }\n /**\n Add a mark to the set of stored marks.\n */\n addStoredMark(mark) {\n return this.ensureMarks(mark.addToSet(this.storedMarks || this.selection.$head.marks()));\n }\n /**\n Remove a mark or mark type from the set of stored marks.\n */\n removeStoredMark(mark) {\n return this.ensureMarks(mark.removeFromSet(this.storedMarks || this.selection.$head.marks()));\n }\n /**\n Whether the stored marks were explicitly set for this transaction.\n */\n get storedMarksSet() {\n return (this.updated & UPDATED_MARKS) > 0;\n }\n /**\n @internal\n */\n addStep(step, doc) {\n super.addStep(step, doc);\n this.updated = this.updated & ~UPDATED_MARKS;\n this.storedMarks = null;\n }\n /**\n Update the timestamp for the transaction.\n */\n setTime(time) {\n this.time = time;\n return this;\n }\n /**\n Replace the current selection with the given slice.\n */\n replaceSelection(slice) {\n this.selection.replace(this, slice);\n return this;\n }\n /**\n Replace the selection with the given node. When `inheritMarks` is\n true and the content is inline, it inherits the marks from the\n place where it is inserted.\n */\n replaceSelectionWith(node, inheritMarks = true) {\n let selection = this.selection;\n if (inheritMarks)\n node = node.mark(this.storedMarks || (selection.empty ? selection.$from.marks() : (selection.$from.marksAcross(selection.$to) || Mark.none)));\n selection.replaceWith(this, node);\n return this;\n }\n /**\n Delete the selection.\n */\n deleteSelection() {\n this.selection.replace(this);\n return this;\n }\n /**\n Replace the given range, or the selection if no range is given,\n with a text node containing the given string.\n */\n insertText(text, from, to) {\n let schema = this.doc.type.schema;\n if (from == null) {\n if (!text)\n return this.deleteSelection();\n return this.replaceSelectionWith(schema.text(text), true);\n }\n else {\n if (to == null)\n to = from;\n to = to == null ? from : to;\n if (!text)\n return this.deleteRange(from, to);\n let marks = this.storedMarks;\n if (!marks) {\n let $from = this.doc.resolve(from);\n marks = to == from ? $from.marks() : $from.marksAcross(this.doc.resolve(to));\n }\n this.replaceRangeWith(from, to, schema.text(text, marks));\n if (!this.selection.empty)\n this.setSelection(Selection.near(this.selection.$to));\n return this;\n }\n }\n /**\n Store a metadata property in this transaction, keyed either by\n name or by plugin.\n */\n setMeta(key, value) {\n this.meta[typeof key == \"string\" ? key : key.key] = value;\n return this;\n }\n /**\n Retrieve a metadata property for a given name or plugin.\n */\n getMeta(key) {\n return this.meta[typeof key == \"string\" ? key : key.key];\n }\n /**\n Returns true if this transaction doesn't contain any metadata,\n and can thus safely be extended.\n */\n get isGeneric() {\n for (let _ in this.meta)\n return false;\n return true;\n }\n /**\n Indicate that the editor should scroll the selection into view\n when updated to the state produced by this transaction.\n */\n scrollIntoView() {\n this.updated |= UPDATED_SCROLL;\n return this;\n }\n /**\n True when this transaction has had `scrollIntoView` called on it.\n */\n get scrolledIntoView() {\n return (this.updated & UPDATED_SCROLL) > 0;\n }\n}\n\nfunction bind(f, self) {\n return !self || !f ? f : f.bind(self);\n}\nclass FieldDesc {\n constructor(name, desc, self) {\n this.name = name;\n this.init = bind(desc.init, self);\n this.apply = bind(desc.apply, self);\n }\n}\nconst baseFields = [\n new FieldDesc(\"doc\", {\n init(config) { return config.doc || config.schema.topNodeType.createAndFill(); },\n apply(tr) { return tr.doc; }\n }),\n new FieldDesc(\"selection\", {\n init(config, instance) { return config.selection || Selection.atStart(instance.doc); },\n apply(tr) { return tr.selection; }\n }),\n new FieldDesc(\"storedMarks\", {\n init(config) { return config.storedMarks || null; },\n apply(tr, _marks, _old, state) { return state.selection.$cursor ? tr.storedMarks : null; }\n }),\n new FieldDesc(\"scrollToSelection\", {\n init() { return 0; },\n apply(tr, prev) { return tr.scrolledIntoView ? prev + 1 : prev; }\n })\n];\n// Object wrapping the part of a state object that stays the same\n// across transactions. Stored in the state's `config` property.\nclass Configuration {\n constructor(schema, plugins) {\n this.schema = schema;\n this.plugins = [];\n this.pluginsByKey = Object.create(null);\n this.fields = baseFields.slice();\n if (plugins)\n plugins.forEach(plugin => {\n if (this.pluginsByKey[plugin.key])\n throw new RangeError(\"Adding different instances of a keyed plugin (\" + plugin.key + \")\");\n this.plugins.push(plugin);\n this.pluginsByKey[plugin.key] = plugin;\n if (plugin.spec.state)\n this.fields.push(new FieldDesc(plugin.key, plugin.spec.state, plugin));\n });\n }\n}\n/**\nThe state of a ProseMirror editor is represented by an object of\nthis type. A state is a persistent data structure—it isn't\nupdated, but rather a new state value is computed from an old one\nusing the [`apply`](https://prosemirror.net/docs/ref/#state.EditorState.apply) method.\n\nA state holds a number of built-in fields, and plugins can\n[define](https://prosemirror.net/docs/ref/#state.PluginSpec.state) additional fields.\n*/\nclass EditorState {\n /**\n @internal\n */\n constructor(\n /**\n @internal\n */\n config) {\n this.config = config;\n }\n /**\n The schema of the state's document.\n */\n get schema() {\n return this.config.schema;\n }\n /**\n The plugins that are active in this state.\n */\n get plugins() {\n return this.config.plugins;\n }\n /**\n Apply the given transaction to produce a new state.\n */\n apply(tr) {\n return this.applyTransaction(tr).state;\n }\n /**\n @internal\n */\n filterTransaction(tr, ignore = -1) {\n for (let i = 0; i < this.config.plugins.length; i++)\n if (i != ignore) {\n let plugin = this.config.plugins[i];\n if (plugin.spec.filterTransaction && !plugin.spec.filterTransaction.call(plugin, tr, this))\n return false;\n }\n return true;\n }\n /**\n Verbose variant of [`apply`](https://prosemirror.net/docs/ref/#state.EditorState.apply) that\n returns the precise transactions that were applied (which might\n be influenced by the [transaction\n hooks](https://prosemirror.net/docs/ref/#state.PluginSpec.filterTransaction) of\n plugins) along with the new state.\n */\n applyTransaction(rootTr) {\n if (!this.filterTransaction(rootTr))\n return { state: this, transactions: [] };\n let trs = [rootTr], newState = this.applyInner(rootTr), seen = null;\n // This loop repeatedly gives plugins a chance to respond to\n // transactions as new transactions are added, making sure to only\n // pass the transactions the plugin did not see before.\n for (;;) {\n let haveNew = false;\n for (let i = 0; i < this.config.plugins.length; i++) {\n let plugin = this.config.plugins[i];\n if (plugin.spec.appendTransaction) {\n let n = seen ? seen[i].n : 0, oldState = seen ? seen[i].state : this;\n let tr = n < trs.length &&\n plugin.spec.appendTransaction.call(plugin, n ? trs.slice(n) : trs, oldState, newState);\n if (tr && newState.filterTransaction(tr, i)) {\n tr.setMeta(\"appendedTransaction\", rootTr);\n if (!seen) {\n seen = [];\n for (let j = 0; j < this.config.plugins.length; j++)\n seen.push(j < i ? { state: newState, n: trs.length } : { state: this, n: 0 });\n }\n trs.push(tr);\n newState = newState.applyInner(tr);\n haveNew = true;\n }\n if (seen)\n seen[i] = { state: newState, n: trs.length };\n }\n }\n if (!haveNew)\n return { state: newState, transactions: trs };\n }\n }\n /**\n @internal\n */\n applyInner(tr) {\n if (!tr.before.eq(this.doc))\n throw new RangeError(\"Applying a mismatched transaction\");\n let newInstance = new EditorState(this.config), fields = this.config.fields;\n for (let i = 0; i < fields.length; i++) {\n let field = fields[i];\n newInstance[field.name] = field.apply(tr, this[field.name], this, newInstance);\n }\n return newInstance;\n }\n /**\n Start a [transaction](https://prosemirror.net/docs/ref/#state.Transaction) from this state.\n */\n get tr() { return new Transaction(this); }\n /**\n Create a new state.\n */\n static create(config) {\n let $config = new Configuration(config.doc ? config.doc.type.schema : config.schema, config.plugins);\n let instance = new EditorState($config);\n for (let i = 0; i < $config.fields.length; i++)\n instance[$config.fields[i].name] = $config.fields[i].init(config, instance);\n return instance;\n }\n /**\n Create a new state based on this one, but with an adjusted set\n of active plugins. State fields that exist in both sets of\n plugins are kept unchanged. Those that no longer exist are\n dropped, and those that are new are initialized using their\n [`init`](https://prosemirror.net/docs/ref/#state.StateField.init) method, passing in the new\n configuration object..\n */\n reconfigure(config) {\n let $config = new Configuration(this.schema, config.plugins);\n let fields = $config.fields, instance = new EditorState($config);\n for (let i = 0; i < fields.length; i++) {\n let name = fields[i].name;\n instance[name] = this.hasOwnProperty(name) ? this[name] : fields[i].init(config, instance);\n }\n return instance;\n }\n /**\n Serialize this state to JSON. If you want to serialize the state\n of plugins, pass an object mapping property names to use in the\n resulting JSON object to plugin objects. The argument may also be\n a string or number, in which case it is ignored, to support the\n way `JSON.stringify` calls `toString` methods.\n */\n toJSON(pluginFields) {\n let result = { doc: this.doc.toJSON(), selection: this.selection.toJSON() };\n if (this.storedMarks)\n result.storedMarks = this.storedMarks.map(m => m.toJSON());\n if (pluginFields && typeof pluginFields == 'object')\n for (let prop in pluginFields) {\n if (prop == \"doc\" || prop == \"selection\")\n throw new RangeError(\"The JSON fields `doc` and `selection` are reserved\");\n let plugin = pluginFields[prop], state = plugin.spec.state;\n if (state && state.toJSON)\n result[prop] = state.toJSON.call(plugin, this[plugin.key]);\n }\n return result;\n }\n /**\n Deserialize a JSON representation of a state. `config` should\n have at least a `schema` field, and should contain array of\n plugins to initialize the state with. `pluginFields` can be used\n to deserialize the state of plugins, by associating plugin\n instances with the property names they use in the JSON object.\n */\n static fromJSON(config, json, pluginFields) {\n if (!json)\n throw new RangeError(\"Invalid input for EditorState.fromJSON\");\n if (!config.schema)\n throw new RangeError(\"Required config field 'schema' missing\");\n let $config = new Configuration(config.schema, config.plugins);\n let instance = new EditorState($config);\n $config.fields.forEach(field => {\n if (field.name == \"doc\") {\n instance.doc = Node.fromJSON(config.schema, json.doc);\n }\n else if (field.name == \"selection\") {\n instance.selection = Selection.fromJSON(instance.doc, json.selection);\n }\n else if (field.name == \"storedMarks\") {\n if (json.storedMarks)\n instance.storedMarks = json.storedMarks.map(config.schema.markFromJSON);\n }\n else {\n if (pluginFields)\n for (let prop in pluginFields) {\n let plugin = pluginFields[prop], state = plugin.spec.state;\n if (plugin.key == field.name && state && state.fromJSON &&\n Object.prototype.hasOwnProperty.call(json, prop)) {\n instance[field.name] = state.fromJSON.call(plugin, config, json[prop], instance);\n return;\n }\n }\n instance[field.name] = field.init(config, instance);\n }\n });\n return instance;\n }\n}\n\nfunction bindProps(obj, self, target) {\n for (let prop in obj) {\n let val = obj[prop];\n if (val instanceof Function)\n val = val.bind(self);\n else if (prop == \"handleDOMEvents\")\n val = bindProps(val, self, {});\n target[prop] = val;\n }\n return target;\n}\n/**\nPlugins bundle functionality that can be added to an editor.\nThey are part of the [editor state](https://prosemirror.net/docs/ref/#state.EditorState) and\nmay influence that state and the view that contains it.\n*/\nclass Plugin {\n /**\n Create a plugin.\n */\n constructor(\n /**\n The plugin's [spec object](https://prosemirror.net/docs/ref/#state.PluginSpec).\n */\n spec) {\n this.spec = spec;\n /**\n The [props](https://prosemirror.net/docs/ref/#view.EditorProps) exported by this plugin.\n */\n this.props = {};\n if (spec.props)\n bindProps(spec.props, this, this.props);\n this.key = spec.key ? spec.key.key : createKey(\"plugin\");\n }\n /**\n Extract the plugin's state field from an editor state.\n */\n getState(state) { return state[this.key]; }\n}\nconst keys = Object.create(null);\nfunction createKey(name) {\n if (name in keys)\n return name + \"$\" + ++keys[name];\n keys[name] = 0;\n return name + \"$\";\n}\n/**\nA key is used to [tag](https://prosemirror.net/docs/ref/#state.PluginSpec.key) plugins in a way\nthat makes it possible to find them, given an editor state.\nAssigning a key does mean only one plugin of that type can be\nactive in a state.\n*/\nclass PluginKey {\n /**\n Create a plugin key.\n */\n constructor(name = \"key\") { this.key = createKey(name); }\n /**\n Get the active plugin with this key, if any, from an editor\n state.\n */\n get(state) { return state.config.pluginsByKey[this.key]; }\n /**\n Get the plugin's state from an editor state.\n */\n getState(state) { return state[this.key]; }\n}\n\nexport { AllSelection, EditorState, NodeSelection, Plugin, PluginKey, Selection, SelectionRange, TextSelection, Transaction };\n","import { TextSelection, NodeSelection, AllSelection, Selection } from 'prosemirror-state';\nimport { DOMSerializer, Fragment, Mark, Slice, DOMParser } from 'prosemirror-model';\nimport { dropPoint } from 'prosemirror-transform';\n\nconst domIndex = function (node) {\n for (var index = 0;; index++) {\n node = node.previousSibling;\n if (!node)\n return index;\n }\n};\nconst parentNode = function (node) {\n let parent = node.assignedSlot || node.parentNode;\n return parent && parent.nodeType == 11 ? parent.host : parent;\n};\nlet reusedRange = null;\n// Note that this will always return the same range, because DOM range\n// objects are every expensive, and keep slowing down subsequent DOM\n// updates, for some reason.\nconst textRange = function (node, from, to) {\n let range = reusedRange || (reusedRange = document.createRange());\n range.setEnd(node, to == null ? node.nodeValue.length : to);\n range.setStart(node, from || 0);\n return range;\n};\nconst clearReusedRange = function () {\n reusedRange = null;\n};\n// Scans forward and backward through DOM positions equivalent to the\n// given one to see if the two are in the same place (i.e. after a\n// text node vs at the end of that text node)\nconst isEquivalentPosition = function (node, off, targetNode, targetOff) {\n return targetNode && (scanFor(node, off, targetNode, targetOff, -1) ||\n scanFor(node, off, targetNode, targetOff, 1));\n};\nconst atomElements = /^(img|br|input|textarea|hr)$/i;\nfunction scanFor(node, off, targetNode, targetOff, dir) {\n for (;;) {\n if (node == targetNode && off == targetOff)\n return true;\n if (off == (dir < 0 ? 0 : nodeSize(node))) {\n let parent = node.parentNode;\n if (!parent || parent.nodeType != 1 || hasBlockDesc(node) || atomElements.test(node.nodeName) ||\n node.contentEditable == \"false\")\n return false;\n off = domIndex(node) + (dir < 0 ? 0 : 1);\n node = parent;\n }\n else if (node.nodeType == 1) {\n node = node.childNodes[off + (dir < 0 ? -1 : 0)];\n if (node.contentEditable == \"false\")\n return false;\n off = dir < 0 ? nodeSize(node) : 0;\n }\n else {\n return false;\n }\n }\n}\nfunction nodeSize(node) {\n return node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length;\n}\nfunction textNodeBefore$1(node, offset) {\n for (;;) {\n if (node.nodeType == 3 && offset)\n return node;\n if (node.nodeType == 1 && offset > 0) {\n if (node.contentEditable == \"false\")\n return null;\n node = node.childNodes[offset - 1];\n offset = nodeSize(node);\n }\n else if (node.parentNode && !hasBlockDesc(node)) {\n offset = domIndex(node);\n node = node.parentNode;\n }\n else {\n return null;\n }\n }\n}\nfunction textNodeAfter$1(node, offset) {\n for (;;) {\n if (node.nodeType == 3 && offset < node.nodeValue.length)\n return node;\n if (node.nodeType == 1 && offset < node.childNodes.length) {\n if (node.contentEditable == \"false\")\n return null;\n node = node.childNodes[offset];\n offset = 0;\n }\n else if (node.parentNode && !hasBlockDesc(node)) {\n offset = domIndex(node) + 1;\n node = node.parentNode;\n }\n else {\n return null;\n }\n }\n}\nfunction isOnEdge(node, offset, parent) {\n for (let atStart = offset == 0, atEnd = offset == nodeSize(node); atStart || atEnd;) {\n if (node == parent)\n return true;\n let index = domIndex(node);\n node = node.parentNode;\n if (!node)\n return false;\n atStart = atStart && index == 0;\n atEnd = atEnd && index == nodeSize(node);\n }\n}\nfunction hasBlockDesc(dom) {\n let desc;\n for (let cur = dom; cur; cur = cur.parentNode)\n if (desc = cur.pmViewDesc)\n break;\n return desc && desc.node && desc.node.isBlock && (desc.dom == dom || desc.contentDOM == dom);\n}\n// Work around Chrome issue https://bugs.chromium.org/p/chromium/issues/detail?id=447523\n// (isCollapsed inappropriately returns true in shadow dom)\nconst selectionCollapsed = function (domSel) {\n return domSel.focusNode && isEquivalentPosition(domSel.focusNode, domSel.focusOffset, domSel.anchorNode, domSel.anchorOffset);\n};\nfunction keyEvent(keyCode, key) {\n let event = document.createEvent(\"Event\");\n event.initEvent(\"keydown\", true, true);\n event.keyCode = keyCode;\n event.key = event.code = key;\n return event;\n}\nfunction deepActiveElement(doc) {\n let elt = doc.activeElement;\n while (elt && elt.shadowRoot)\n elt = elt.shadowRoot.activeElement;\n return elt;\n}\nfunction caretFromPoint(doc, x, y) {\n if (doc.caretPositionFromPoint) {\n try { // Firefox throws for this call in hard-to-predict circumstances (#994)\n let pos = doc.caretPositionFromPoint(x, y);\n // Clip the offset, because Chrome will return a text offset\n // into nodes, which can't be treated as a regular DOM\n // offset\n if (pos)\n return { node: pos.offsetNode, offset: Math.min(nodeSize(pos.offsetNode), pos.offset) };\n }\n catch (_) { }\n }\n if (doc.caretRangeFromPoint) {\n let range = doc.caretRangeFromPoint(x, y);\n if (range)\n return { node: range.startContainer, offset: Math.min(nodeSize(range.startContainer), range.startOffset) };\n }\n}\n\nconst nav = typeof navigator != \"undefined\" ? navigator : null;\nconst doc = typeof document != \"undefined\" ? document : null;\nconst agent = (nav && nav.userAgent) || \"\";\nconst ie_edge = /Edge\\/(\\d+)/.exec(agent);\nconst ie_upto10 = /MSIE \\d/.exec(agent);\nconst ie_11up = /Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(agent);\nconst ie = !!(ie_upto10 || ie_11up || ie_edge);\nconst ie_version = ie_upto10 ? document.documentMode : ie_11up ? +ie_11up[1] : ie_edge ? +ie_edge[1] : 0;\nconst gecko = !ie && /gecko\\/(\\d+)/i.test(agent);\ngecko && +(/Firefox\\/(\\d+)/.exec(agent) || [0, 0])[1];\nconst _chrome = !ie && /Chrome\\/(\\d+)/.exec(agent);\nconst chrome = !!_chrome;\nconst chrome_version = _chrome ? +_chrome[1] : 0;\nconst safari = !ie && !!nav && /Apple Computer/.test(nav.vendor);\n// Is true for both iOS and iPadOS for convenience\nconst ios = safari && (/Mobile\\/\\w+/.test(agent) || !!nav && nav.maxTouchPoints > 2);\nconst mac = ios || (nav ? /Mac/.test(nav.platform) : false);\nconst windows = nav ? /Win/.test(nav.platform) : false;\nconst android = /Android \\d/.test(agent);\nconst webkit = !!doc && \"webkitFontSmoothing\" in doc.documentElement.style;\nconst webkit_version = webkit ? +(/\\bAppleWebKit\\/(\\d+)/.exec(navigator.userAgent) || [0, 0])[1] : 0;\n\nfunction windowRect(doc) {\n let vp = doc.defaultView && doc.defaultView.visualViewport;\n if (vp)\n return {\n left: 0, right: vp.width,\n top: 0, bottom: vp.height\n };\n return { left: 0, right: doc.documentElement.clientWidth,\n top: 0, bottom: doc.documentElement.clientHeight };\n}\nfunction getSide(value, side) {\n return typeof value == \"number\" ? value : value[side];\n}\nfunction clientRect(node) {\n let rect = node.getBoundingClientRect();\n // Adjust for elements with style \"transform: scale()\"\n let scaleX = (rect.width / node.offsetWidth) || 1;\n let scaleY = (rect.height / node.offsetHeight) || 1;\n // Make sure scrollbar width isn't included in the rectangle\n return { left: rect.left, right: rect.left + node.clientWidth * scaleX,\n top: rect.top, bottom: rect.top + node.clientHeight * scaleY };\n}\nfunction scrollRectIntoView(view, rect, startDOM) {\n let scrollThreshold = view.someProp(\"scrollThreshold\") || 0, scrollMargin = view.someProp(\"scrollMargin\") || 5;\n let doc = view.dom.ownerDocument;\n for (let parent = startDOM || view.dom;; parent = parentNode(parent)) {\n if (!parent)\n break;\n if (parent.nodeType != 1)\n continue;\n let elt = parent;\n let atTop = elt == doc.body;\n let bounding = atTop ? windowRect(doc) : clientRect(elt);\n let moveX = 0, moveY = 0;\n if (rect.top < bounding.top + getSide(scrollThreshold, \"top\"))\n moveY = -(bounding.top - rect.top + getSide(scrollMargin, \"top\"));\n else if (rect.bottom > bounding.bottom - getSide(scrollThreshold, \"bottom\"))\n moveY = rect.bottom - rect.top > bounding.bottom - bounding.top\n ? rect.top + getSide(scrollMargin, \"top\") - bounding.top\n : rect.bottom - bounding.bottom + getSide(scrollMargin, \"bottom\");\n if (rect.left < bounding.left + getSide(scrollThreshold, \"left\"))\n moveX = -(bounding.left - rect.left + getSide(scrollMargin, \"left\"));\n else if (rect.right > bounding.right - getSide(scrollThreshold, \"right\"))\n moveX = rect.right - bounding.right + getSide(scrollMargin, \"right\");\n if (moveX || moveY) {\n if (atTop) {\n doc.defaultView.scrollBy(moveX, moveY);\n }\n else {\n let startX = elt.scrollLeft, startY = elt.scrollTop;\n if (moveY)\n elt.scrollTop += moveY;\n if (moveX)\n elt.scrollLeft += moveX;\n let dX = elt.scrollLeft - startX, dY = elt.scrollTop - startY;\n rect = { left: rect.left - dX, top: rect.top - dY, right: rect.right - dX, bottom: rect.bottom - dY };\n }\n }\n if (atTop || /^(fixed|sticky)$/.test(getComputedStyle(parent).position))\n break;\n }\n}\n// Store the scroll position of the editor's parent nodes, along with\n// the top position of an element near the top of the editor, which\n// will be used to make sure the visible viewport remains stable even\n// when the size of the content above changes.\nfunction storeScrollPos(view) {\n let rect = view.dom.getBoundingClientRect(), startY = Math.max(0, rect.top);\n let refDOM, refTop;\n for (let x = (rect.left + rect.right) / 2, y = startY + 1; y < Math.min(innerHeight, rect.bottom); y += 5) {\n let dom = view.root.elementFromPoint(x, y);\n if (!dom || dom == view.dom || !view.dom.contains(dom))\n continue;\n let localRect = dom.getBoundingClientRect();\n if (localRect.top >= startY - 20) {\n refDOM = dom;\n refTop = localRect.top;\n break;\n }\n }\n return { refDOM: refDOM, refTop: refTop, stack: scrollStack(view.dom) };\n}\nfunction scrollStack(dom) {\n let stack = [], doc = dom.ownerDocument;\n for (let cur = dom; cur; cur = parentNode(cur)) {\n stack.push({ dom: cur, top: cur.scrollTop, left: cur.scrollLeft });\n if (dom == doc)\n break;\n }\n return stack;\n}\n// Reset the scroll position of the editor's parent nodes to that what\n// it was before, when storeScrollPos was called.\nfunction resetScrollPos({ refDOM, refTop, stack }) {\n let newRefTop = refDOM ? refDOM.getBoundingClientRect().top : 0;\n restoreScrollStack(stack, newRefTop == 0 ? 0 : newRefTop - refTop);\n}\nfunction restoreScrollStack(stack, dTop) {\n for (let i = 0; i < stack.length; i++) {\n let { dom, top, left } = stack[i];\n if (dom.scrollTop != top + dTop)\n dom.scrollTop = top + dTop;\n if (dom.scrollLeft != left)\n dom.scrollLeft = left;\n }\n}\nlet preventScrollSupported = null;\n// Feature-detects support for .focus({preventScroll: true}), and uses\n// a fallback kludge when not supported.\nfunction focusPreventScroll(dom) {\n if (dom.setActive)\n return dom.setActive(); // in IE\n if (preventScrollSupported)\n return dom.focus(preventScrollSupported);\n let stored = scrollStack(dom);\n dom.focus(preventScrollSupported == null ? {\n get preventScroll() {\n preventScrollSupported = { preventScroll: true };\n return true;\n }\n } : undefined);\n if (!preventScrollSupported) {\n preventScrollSupported = false;\n restoreScrollStack(stored, 0);\n }\n}\nfunction findOffsetInNode(node, coords) {\n let closest, dxClosest = 2e8, coordsClosest, offset = 0;\n let rowBot = coords.top, rowTop = coords.top;\n let firstBelow, coordsBelow;\n for (let child = node.firstChild, childIndex = 0; child; child = child.nextSibling, childIndex++) {\n let rects;\n if (child.nodeType == 1)\n rects = child.getClientRects();\n else if (child.nodeType == 3)\n rects = textRange(child).getClientRects();\n else\n continue;\n for (let i = 0; i < rects.length; i++) {\n let rect = rects[i];\n if (rect.top <= rowBot && rect.bottom >= rowTop) {\n rowBot = Math.max(rect.bottom, rowBot);\n rowTop = Math.min(rect.top, rowTop);\n let dx = rect.left > coords.left ? rect.left - coords.left\n : rect.right < coords.left ? coords.left - rect.right : 0;\n if (dx < dxClosest) {\n closest = child;\n dxClosest = dx;\n coordsClosest = dx && closest.nodeType == 3 ? {\n left: rect.right < coords.left ? rect.right : rect.left,\n top: coords.top\n } : coords;\n if (child.nodeType == 1 && dx)\n offset = childIndex + (coords.left >= (rect.left + rect.right) / 2 ? 1 : 0);\n continue;\n }\n }\n else if (rect.top > coords.top && !firstBelow && rect.left <= coords.left && rect.right >= coords.left) {\n firstBelow = child;\n coordsBelow = { left: Math.max(rect.left, Math.min(rect.right, coords.left)), top: rect.top };\n }\n if (!closest && (coords.left >= rect.right && coords.top >= rect.top ||\n coords.left >= rect.left && coords.top >= rect.bottom))\n offset = childIndex + 1;\n }\n }\n if (!closest && firstBelow) {\n closest = firstBelow;\n coordsClosest = coordsBelow;\n dxClosest = 0;\n }\n if (closest && closest.nodeType == 3)\n return findOffsetInText(closest, coordsClosest);\n if (!closest || (dxClosest && closest.nodeType == 1))\n return { node, offset };\n return findOffsetInNode(closest, coordsClosest);\n}\nfunction findOffsetInText(node, coords) {\n let len = node.nodeValue.length;\n let range = document.createRange();\n for (let i = 0; i < len; i++) {\n range.setEnd(node, i + 1);\n range.setStart(node, i);\n let rect = singleRect(range, 1);\n if (rect.top == rect.bottom)\n continue;\n if (inRect(coords, rect))\n return { node, offset: i + (coords.left >= (rect.left + rect.right) / 2 ? 1 : 0) };\n }\n return { node, offset: 0 };\n}\nfunction inRect(coords, rect) {\n return coords.left >= rect.left - 1 && coords.left <= rect.right + 1 &&\n coords.top >= rect.top - 1 && coords.top <= rect.bottom + 1;\n}\nfunction targetKludge(dom, coords) {\n let parent = dom.parentNode;\n if (parent && /^li$/i.test(parent.nodeName) && coords.left < dom.getBoundingClientRect().left)\n return parent;\n return dom;\n}\nfunction posFromElement(view, elt, coords) {\n let { node, offset } = findOffsetInNode(elt, coords), bias = -1;\n if (node.nodeType == 1 && !node.firstChild) {\n let rect = node.getBoundingClientRect();\n bias = rect.left != rect.right && coords.left > (rect.left + rect.right) / 2 ? 1 : -1;\n }\n return view.docView.posFromDOM(node, offset, bias);\n}\nfunction posFromCaret(view, node, offset, coords) {\n // Browser (in caretPosition/RangeFromPoint) will agressively\n // normalize towards nearby inline nodes. Since we are interested in\n // positions between block nodes too, we first walk up the hierarchy\n // of nodes to see if there are block nodes that the coordinates\n // fall outside of. If so, we take the position before/after that\n // block. If not, we call `posFromDOM` on the raw node/offset.\n let outsideBlock = -1;\n for (let cur = node, sawBlock = false;;) {\n if (cur == view.dom)\n break;\n let desc = view.docView.nearestDesc(cur, true), rect;\n if (!desc)\n return null;\n if (desc.dom.nodeType == 1 && (desc.node.isBlock && desc.parent || !desc.contentDOM) &&\n // Ignore elements with zero-size bounding rectangles\n ((rect = desc.dom.getBoundingClientRect()).width || rect.height)) {\n if (desc.node.isBlock && desc.parent) {\n // Only apply the horizontal test to the innermost block. Vertical for any parent.\n if (!sawBlock && rect.left > coords.left || rect.top > coords.top)\n outsideBlock = desc.posBefore;\n else if (!sawBlock && rect.right < coords.left || rect.bottom < coords.top)\n outsideBlock = desc.posAfter;\n sawBlock = true;\n }\n if (!desc.contentDOM && outsideBlock < 0 && !desc.node.isText) {\n // If we are inside a leaf, return the side of the leaf closer to the coords\n let before = desc.node.isBlock ? coords.top < (rect.top + rect.bottom) / 2\n : coords.left < (rect.left + rect.right) / 2;\n return before ? desc.posBefore : desc.posAfter;\n }\n }\n cur = desc.dom.parentNode;\n }\n return outsideBlock > -1 ? outsideBlock : view.docView.posFromDOM(node, offset, -1);\n}\nfunction elementFromPoint(element, coords, box) {\n let len = element.childNodes.length;\n if (len && box.top < box.bottom) {\n for (let startI = Math.max(0, Math.min(len - 1, Math.floor(len * (coords.top - box.top) / (box.bottom - box.top)) - 2)), i = startI;;) {\n let child = element.childNodes[i];\n if (child.nodeType == 1) {\n let rects = child.getClientRects();\n for (let j = 0; j < rects.length; j++) {\n let rect = rects[j];\n if (inRect(coords, rect))\n return elementFromPoint(child, coords, rect);\n }\n }\n if ((i = (i + 1) % len) == startI)\n break;\n }\n }\n return element;\n}\n// Given an x,y position on the editor, get the position in the document.\nfunction posAtCoords(view, coords) {\n let doc = view.dom.ownerDocument, node, offset = 0;\n let caret = caretFromPoint(doc, coords.left, coords.top);\n if (caret)\n ({ node, offset } = caret);\n let elt = (view.root.elementFromPoint ? view.root : doc)\n .elementFromPoint(coords.left, coords.top);\n let pos;\n if (!elt || !view.dom.contains(elt.nodeType != 1 ? elt.parentNode : elt)) {\n let box = view.dom.getBoundingClientRect();\n if (!inRect(coords, box))\n return null;\n elt = elementFromPoint(view.dom, coords, box);\n if (!elt)\n return null;\n }\n // Safari's caretRangeFromPoint returns nonsense when on a draggable element\n if (safari) {\n for (let p = elt; node && p; p = parentNode(p))\n if (p.draggable)\n node = undefined;\n }\n elt = targetKludge(elt, coords);\n if (node) {\n if (gecko && node.nodeType == 1) {\n // Firefox will sometimes return offsets into nodes, which\n // have no actual children, from caretPositionFromPoint (#953)\n offset = Math.min(offset, node.childNodes.length);\n // It'll also move the returned position before image nodes,\n // even if those are behind it.\n if (offset < node.childNodes.length) {\n let next = node.childNodes[offset], box;\n if (next.nodeName == \"IMG\" && (box = next.getBoundingClientRect()).right <= coords.left &&\n box.bottom > coords.top)\n offset++;\n }\n }\n let prev;\n // When clicking above the right side of an uneditable node, Chrome will report a cursor position after that node.\n if (webkit && offset && node.nodeType == 1 && (prev = node.childNodes[offset - 1]).nodeType == 1 &&\n prev.contentEditable == \"false\" && prev.getBoundingClientRect().top >= coords.top)\n offset--;\n // Suspiciously specific kludge to work around caret*FromPoint\n // never returning a position at the end of the document\n if (node == view.dom && offset == node.childNodes.length - 1 && node.lastChild.nodeType == 1 &&\n coords.top > node.lastChild.getBoundingClientRect().bottom)\n pos = view.state.doc.content.size;\n // Ignore positions directly after a BR, since caret*FromPoint\n // 'round up' positions that would be more accurately placed\n // before the BR node.\n else if (offset == 0 || node.nodeType != 1 || node.childNodes[offset - 1].nodeName != \"BR\")\n pos = posFromCaret(view, node, offset, coords);\n }\n if (pos == null)\n pos = posFromElement(view, elt, coords);\n let desc = view.docView.nearestDesc(elt, true);\n return { pos, inside: desc ? desc.posAtStart - desc.border : -1 };\n}\nfunction nonZero(rect) {\n return rect.top < rect.bottom || rect.left < rect.right;\n}\nfunction singleRect(target, bias) {\n let rects = target.getClientRects();\n if (rects.length) {\n let first = rects[bias < 0 ? 0 : rects.length - 1];\n if (nonZero(first))\n return first;\n }\n return Array.prototype.find.call(rects, nonZero) || target.getBoundingClientRect();\n}\nconst BIDI = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\n// Given a position in the document model, get a bounding box of the\n// character at that position, relative to the window.\nfunction coordsAtPos(view, pos, side) {\n let { node, offset, atom } = view.docView.domFromPos(pos, side < 0 ? -1 : 1);\n let supportEmptyRange = webkit || gecko;\n if (node.nodeType == 3) {\n // These browsers support querying empty text ranges. Prefer that in\n // bidi context or when at the end of a node.\n if (supportEmptyRange && (BIDI.test(node.nodeValue) || (side < 0 ? !offset : offset == node.nodeValue.length))) {\n let rect = singleRect(textRange(node, offset, offset), side);\n // Firefox returns bad results (the position before the space)\n // when querying a position directly after line-broken\n // whitespace. Detect this situation and and kludge around it\n if (gecko && offset && /\\s/.test(node.nodeValue[offset - 1]) && offset < node.nodeValue.length) {\n let rectBefore = singleRect(textRange(node, offset - 1, offset - 1), -1);\n if (rectBefore.top == rect.top) {\n let rectAfter = singleRect(textRange(node, offset, offset + 1), -1);\n if (rectAfter.top != rect.top)\n return flattenV(rectAfter, rectAfter.left < rectBefore.left);\n }\n }\n return rect;\n }\n else {\n let from = offset, to = offset, takeSide = side < 0 ? 1 : -1;\n if (side < 0 && !offset) {\n to++;\n takeSide = -1;\n }\n else if (side >= 0 && offset == node.nodeValue.length) {\n from--;\n takeSide = 1;\n }\n else if (side < 0) {\n from--;\n }\n else {\n to++;\n }\n return flattenV(singleRect(textRange(node, from, to), takeSide), takeSide < 0);\n }\n }\n let $dom = view.state.doc.resolve(pos - (atom || 0));\n // Return a horizontal line in block context\n if (!$dom.parent.inlineContent) {\n if (atom == null && offset && (side < 0 || offset == nodeSize(node))) {\n let before = node.childNodes[offset - 1];\n if (before.nodeType == 1)\n return flattenH(before.getBoundingClientRect(), false);\n }\n if (atom == null && offset < nodeSize(node)) {\n let after = node.childNodes[offset];\n if (after.nodeType == 1)\n return flattenH(after.getBoundingClientRect(), true);\n }\n return flattenH(node.getBoundingClientRect(), side >= 0);\n }\n // Inline, not in text node (this is not Bidi-safe)\n if (atom == null && offset && (side < 0 || offset == nodeSize(node))) {\n let before = node.childNodes[offset - 1];\n let target = before.nodeType == 3 ? textRange(before, nodeSize(before) - (supportEmptyRange ? 0 : 1))\n // BR nodes tend to only return the rectangle before them.\n // Only use them if they are the last element in their parent\n : before.nodeType == 1 && (before.nodeName != \"BR\" || !before.nextSibling) ? before : null;\n if (target)\n return flattenV(singleRect(target, 1), false);\n }\n if (atom == null && offset < nodeSize(node)) {\n let after = node.childNodes[offset];\n while (after.pmViewDesc && after.pmViewDesc.ignoreForCoords)\n after = after.nextSibling;\n let target = !after ? null : after.nodeType == 3 ? textRange(after, 0, (supportEmptyRange ? 0 : 1))\n : after.nodeType == 1 ? after : null;\n if (target)\n return flattenV(singleRect(target, -1), true);\n }\n // All else failed, just try to get a rectangle for the target node\n return flattenV(singleRect(node.nodeType == 3 ? textRange(node) : node, -side), side >= 0);\n}\nfunction flattenV(rect, left) {\n if (rect.width == 0)\n return rect;\n let x = left ? rect.left : rect.right;\n return { top: rect.top, bottom: rect.bottom, left: x, right: x };\n}\nfunction flattenH(rect, top) {\n if (rect.height == 0)\n return rect;\n let y = top ? rect.top : rect.bottom;\n return { top: y, bottom: y, left: rect.left, right: rect.right };\n}\nfunction withFlushedState(view, state, f) {\n let viewState = view.state, active = view.root.activeElement;\n if (viewState != state)\n view.updateState(state);\n if (active != view.dom)\n view.focus();\n try {\n return f();\n }\n finally {\n if (viewState != state)\n view.updateState(viewState);\n if (active != view.dom && active)\n active.focus();\n }\n}\n// Whether vertical position motion in a given direction\n// from a position would leave a text block.\nfunction endOfTextblockVertical(view, state, dir) {\n let sel = state.selection;\n let $pos = dir == \"up\" ? sel.$from : sel.$to;\n return withFlushedState(view, state, () => {\n let { node: dom } = view.docView.domFromPos($pos.pos, dir == \"up\" ? -1 : 1);\n for (;;) {\n let nearest = view.docView.nearestDesc(dom, true);\n if (!nearest)\n break;\n if (nearest.node.isBlock) {\n dom = nearest.contentDOM || nearest.dom;\n break;\n }\n dom = nearest.dom.parentNode;\n }\n let coords = coordsAtPos(view, $pos.pos, 1);\n for (let child = dom.firstChild; child; child = child.nextSibling) {\n let boxes;\n if (child.nodeType == 1)\n boxes = child.getClientRects();\n else if (child.nodeType == 3)\n boxes = textRange(child, 0, child.nodeValue.length).getClientRects();\n else\n continue;\n for (let i = 0; i < boxes.length; i++) {\n let box = boxes[i];\n if (box.bottom > box.top + 1 &&\n (dir == \"up\" ? coords.top - box.top > (box.bottom - coords.top) * 2\n : box.bottom - coords.bottom > (coords.bottom - box.top) * 2))\n return false;\n }\n }\n return true;\n });\n}\nconst maybeRTL = /[\\u0590-\\u08ac]/;\nfunction endOfTextblockHorizontal(view, state, dir) {\n let { $head } = state.selection;\n if (!$head.parent.isTextblock)\n return false;\n let offset = $head.parentOffset, atStart = !offset, atEnd = offset == $head.parent.content.size;\n let sel = view.domSelection();\n if (!sel)\n return $head.pos == $head.start() || $head.pos == $head.end();\n // If the textblock is all LTR, or the browser doesn't support\n // Selection.modify (Edge), fall back to a primitive approach\n if (!maybeRTL.test($head.parent.textContent) || !sel.modify)\n return dir == \"left\" || dir == \"backward\" ? atStart : atEnd;\n return withFlushedState(view, state, () => {\n // This is a huge hack, but appears to be the best we can\n // currently do: use `Selection.modify` to move the selection by\n // one character, and see if that moves the cursor out of the\n // textblock (or doesn't move it at all, when at the start/end of\n // the document).\n let { focusNode: oldNode, focusOffset: oldOff, anchorNode, anchorOffset } = view.domSelectionRange();\n let oldBidiLevel = sel.caretBidiLevel // Only for Firefox\n ;\n sel.modify(\"move\", dir, \"character\");\n let parentDOM = $head.depth ? view.docView.domAfterPos($head.before()) : view.dom;\n let { focusNode: newNode, focusOffset: newOff } = view.domSelectionRange();\n let result = newNode && !parentDOM.contains(newNode.nodeType == 1 ? newNode : newNode.parentNode) ||\n (oldNode == newNode && oldOff == newOff);\n // Restore the previous selection\n try {\n sel.collapse(anchorNode, anchorOffset);\n if (oldNode && (oldNode != anchorNode || oldOff != anchorOffset) && sel.extend)\n sel.extend(oldNode, oldOff);\n }\n catch (_) { }\n if (oldBidiLevel != null)\n sel.caretBidiLevel = oldBidiLevel;\n return result;\n });\n}\nlet cachedState = null;\nlet cachedDir = null;\nlet cachedResult = false;\nfunction endOfTextblock(view, state, dir) {\n if (cachedState == state && cachedDir == dir)\n return cachedResult;\n cachedState = state;\n cachedDir = dir;\n return cachedResult = dir == \"up\" || dir == \"down\"\n ? endOfTextblockVertical(view, state, dir)\n : endOfTextblockHorizontal(view, state, dir);\n}\n\n// View descriptions are data structures that describe the DOM that is\n// used to represent the editor's content. They are used for:\n//\n// - Incremental redrawing when the document changes\n//\n// - Figuring out what part of the document a given DOM position\n// corresponds to\n//\n// - Wiring in custom implementations of the editing interface for a\n// given node\n//\n// They form a doubly-linked mutable tree, starting at `view.docView`.\nconst NOT_DIRTY = 0, CHILD_DIRTY = 1, CONTENT_DIRTY = 2, NODE_DIRTY = 3;\n// Superclass for the various kinds of descriptions. Defines their\n// basic structure and shared methods.\nclass ViewDesc {\n constructor(parent, children, dom, \n // This is the node that holds the child views. It may be null for\n // descs that don't have children.\n contentDOM) {\n this.parent = parent;\n this.children = children;\n this.dom = dom;\n this.contentDOM = contentDOM;\n this.dirty = NOT_DIRTY;\n // An expando property on the DOM node provides a link back to its\n // description.\n dom.pmViewDesc = this;\n }\n // Used to check whether a given description corresponds to a\n // widget/mark/node.\n matchesWidget(widget) { return false; }\n matchesMark(mark) { return false; }\n matchesNode(node, outerDeco, innerDeco) { return false; }\n matchesHack(nodeName) { return false; }\n // When parsing in-editor content (in domchange.js), we allow\n // descriptions to determine the parse rules that should be used to\n // parse them.\n parseRule() { return null; }\n // Used by the editor's event handler to ignore events that come\n // from certain descs.\n stopEvent(event) { return false; }\n // The size of the content represented by this desc.\n get size() {\n let size = 0;\n for (let i = 0; i < this.children.length; i++)\n size += this.children[i].size;\n return size;\n }\n // For block nodes, this represents the space taken up by their\n // start/end tokens.\n get border() { return 0; }\n destroy() {\n this.parent = undefined;\n if (this.dom.pmViewDesc == this)\n this.dom.pmViewDesc = undefined;\n for (let i = 0; i < this.children.length; i++)\n this.children[i].destroy();\n }\n posBeforeChild(child) {\n for (let i = 0, pos = this.posAtStart;; i++) {\n let cur = this.children[i];\n if (cur == child)\n return pos;\n pos += cur.size;\n }\n }\n get posBefore() {\n return this.parent.posBeforeChild(this);\n }\n get posAtStart() {\n return this.parent ? this.parent.posBeforeChild(this) + this.border : 0;\n }\n get posAfter() {\n return this.posBefore + this.size;\n }\n get posAtEnd() {\n return this.posAtStart + this.size - 2 * this.border;\n }\n localPosFromDOM(dom, offset, bias) {\n // If the DOM position is in the content, use the child desc after\n // it to figure out a position.\n if (this.contentDOM && this.contentDOM.contains(dom.nodeType == 1 ? dom : dom.parentNode)) {\n if (bias < 0) {\n let domBefore, desc;\n if (dom == this.contentDOM) {\n domBefore = dom.childNodes[offset - 1];\n }\n else {\n while (dom.parentNode != this.contentDOM)\n dom = dom.parentNode;\n domBefore = dom.previousSibling;\n }\n while (domBefore && !((desc = domBefore.pmViewDesc) && desc.parent == this))\n domBefore = domBefore.previousSibling;\n return domBefore ? this.posBeforeChild(desc) + desc.size : this.posAtStart;\n }\n else {\n let domAfter, desc;\n if (dom == this.contentDOM) {\n domAfter = dom.childNodes[offset];\n }\n else {\n while (dom.parentNode != this.contentDOM)\n dom = dom.parentNode;\n domAfter = dom.nextSibling;\n }\n while (domAfter && !((desc = domAfter.pmViewDesc) && desc.parent == this))\n domAfter = domAfter.nextSibling;\n return domAfter ? this.posBeforeChild(desc) : this.posAtEnd;\n }\n }\n // Otherwise, use various heuristics, falling back on the bias\n // parameter, to determine whether to return the position at the\n // start or at the end of this view desc.\n let atEnd;\n if (dom == this.dom && this.contentDOM) {\n atEnd = offset > domIndex(this.contentDOM);\n }\n else if (this.contentDOM && this.contentDOM != this.dom && this.dom.contains(this.contentDOM)) {\n atEnd = dom.compareDocumentPosition(this.contentDOM) & 2;\n }\n else if (this.dom.firstChild) {\n if (offset == 0)\n for (let search = dom;; search = search.parentNode) {\n if (search == this.dom) {\n atEnd = false;\n break;\n }\n if (search.previousSibling)\n break;\n }\n if (atEnd == null && offset == dom.childNodes.length)\n for (let search = dom;; search = search.parentNode) {\n if (search == this.dom) {\n atEnd = true;\n break;\n }\n if (search.nextSibling)\n break;\n }\n }\n return (atEnd == null ? bias > 0 : atEnd) ? this.posAtEnd : this.posAtStart;\n }\n nearestDesc(dom, onlyNodes = false) {\n for (let first = true, cur = dom; cur; cur = cur.parentNode) {\n let desc = this.getDesc(cur), nodeDOM;\n if (desc && (!onlyNodes || desc.node)) {\n // If dom is outside of this desc's nodeDOM, don't count it.\n if (first && (nodeDOM = desc.nodeDOM) &&\n !(nodeDOM.nodeType == 1 ? nodeDOM.contains(dom.nodeType == 1 ? dom : dom.parentNode) : nodeDOM == dom))\n first = false;\n else\n return desc;\n }\n }\n }\n getDesc(dom) {\n let desc = dom.pmViewDesc;\n for (let cur = desc; cur; cur = cur.parent)\n if (cur == this)\n return desc;\n }\n posFromDOM(dom, offset, bias) {\n for (let scan = dom; scan; scan = scan.parentNode) {\n let desc = this.getDesc(scan);\n if (desc)\n return desc.localPosFromDOM(dom, offset, bias);\n }\n return -1;\n }\n // Find the desc for the node after the given pos, if any. (When a\n // parent node overrode rendering, there might not be one.)\n descAt(pos) {\n for (let i = 0, offset = 0; i < this.children.length; i++) {\n let child = this.children[i], end = offset + child.size;\n if (offset == pos && end != offset) {\n while (!child.border && child.children.length)\n child = child.children[0];\n return child;\n }\n if (pos < end)\n return child.descAt(pos - offset - child.border);\n offset = end;\n }\n }\n domFromPos(pos, side) {\n if (!this.contentDOM)\n return { node: this.dom, offset: 0, atom: pos + 1 };\n // First find the position in the child array\n let i = 0, offset = 0;\n for (let curPos = 0; i < this.children.length; i++) {\n let child = this.children[i], end = curPos + child.size;\n if (end > pos || child instanceof TrailingHackViewDesc) {\n offset = pos - curPos;\n break;\n }\n curPos = end;\n }\n // If this points into the middle of a child, call through\n if (offset)\n return this.children[i].domFromPos(offset - this.children[i].border, side);\n // Go back if there were any zero-length widgets with side >= 0 before this point\n for (let prev; i && !(prev = this.children[i - 1]).size && prev instanceof WidgetViewDesc && prev.side >= 0; i--) { }\n // Scan towards the first useable node\n if (side <= 0) {\n let prev, enter = true;\n for (;; i--, enter = false) {\n prev = i ? this.children[i - 1] : null;\n if (!prev || prev.dom.parentNode == this.contentDOM)\n break;\n }\n if (prev && side && enter && !prev.border && !prev.domAtom)\n return prev.domFromPos(prev.size, side);\n return { node: this.contentDOM, offset: prev ? domIndex(prev.dom) + 1 : 0 };\n }\n else {\n let next, enter = true;\n for (;; i++, enter = false) {\n next = i < this.children.length ? this.children[i] : null;\n if (!next || next.dom.parentNode == this.contentDOM)\n break;\n }\n if (next && enter && !next.border && !next.domAtom)\n return next.domFromPos(0, side);\n return { node: this.contentDOM, offset: next ? domIndex(next.dom) : this.contentDOM.childNodes.length };\n }\n }\n // Used to find a DOM range in a single parent for a given changed\n // range.\n parseRange(from, to, base = 0) {\n if (this.children.length == 0)\n return { node: this.contentDOM, from, to, fromOffset: 0, toOffset: this.contentDOM.childNodes.length };\n let fromOffset = -1, toOffset = -1;\n for (let offset = base, i = 0;; i++) {\n let child = this.children[i], end = offset + child.size;\n if (fromOffset == -1 && from <= end) {\n let childBase = offset + child.border;\n // FIXME maybe descend mark views to parse a narrower range?\n if (from >= childBase && to <= end - child.border && child.node &&\n child.contentDOM && this.contentDOM.contains(child.contentDOM))\n return child.parseRange(from, to, childBase);\n from = offset;\n for (let j = i; j > 0; j--) {\n let prev = this.children[j - 1];\n if (prev.size && prev.dom.parentNode == this.contentDOM && !prev.emptyChildAt(1)) {\n fromOffset = domIndex(prev.dom) + 1;\n break;\n }\n from -= prev.size;\n }\n if (fromOffset == -1)\n fromOffset = 0;\n }\n if (fromOffset > -1 && (end > to || i == this.children.length - 1)) {\n to = end;\n for (let j = i + 1; j < this.children.length; j++) {\n let next = this.children[j];\n if (next.size && next.dom.parentNode == this.contentDOM && !next.emptyChildAt(-1)) {\n toOffset = domIndex(next.dom);\n break;\n }\n to += next.size;\n }\n if (toOffset == -1)\n toOffset = this.contentDOM.childNodes.length;\n break;\n }\n offset = end;\n }\n return { node: this.contentDOM, from, to, fromOffset, toOffset };\n }\n emptyChildAt(side) {\n if (this.border || !this.contentDOM || !this.children.length)\n return false;\n let child = this.children[side < 0 ? 0 : this.children.length - 1];\n return child.size == 0 || child.emptyChildAt(side);\n }\n domAfterPos(pos) {\n let { node, offset } = this.domFromPos(pos, 0);\n if (node.nodeType != 1 || offset == node.childNodes.length)\n throw new RangeError(\"No node after pos \" + pos);\n return node.childNodes[offset];\n }\n // View descs are responsible for setting any selection that falls\n // entirely inside of them, so that custom implementations can do\n // custom things with the selection. Note that this falls apart when\n // a selection starts in such a node and ends in another, in which\n // case we just use whatever domFromPos produces as a best effort.\n setSelection(anchor, head, view, force = false) {\n // If the selection falls entirely in a child, give it to that child\n let from = Math.min(anchor, head), to = Math.max(anchor, head);\n for (let i = 0, offset = 0; i < this.children.length; i++) {\n let child = this.children[i], end = offset + child.size;\n if (from > offset && to < end)\n return child.setSelection(anchor - offset - child.border, head - offset - child.border, view, force);\n offset = end;\n }\n let anchorDOM = this.domFromPos(anchor, anchor ? -1 : 1);\n let headDOM = head == anchor ? anchorDOM : this.domFromPos(head, head ? -1 : 1);\n let domSel = view.root.getSelection();\n let selRange = view.domSelectionRange();\n let brKludge = false;\n // On Firefox, using Selection.collapse to put the cursor after a\n // BR node for some reason doesn't always work (#1073). On Safari,\n // the cursor sometimes inexplicable visually lags behind its\n // reported position in such situations (#1092).\n if ((gecko || safari) && anchor == head) {\n let { node, offset } = anchorDOM;\n if (node.nodeType == 3) {\n brKludge = !!(offset && node.nodeValue[offset - 1] == \"\\n\");\n // Issue #1128\n if (brKludge && offset == node.nodeValue.length) {\n for (let scan = node, after; scan; scan = scan.parentNode) {\n if (after = scan.nextSibling) {\n if (after.nodeName == \"BR\")\n anchorDOM = headDOM = { node: after.parentNode, offset: domIndex(after) + 1 };\n break;\n }\n let desc = scan.pmViewDesc;\n if (desc && desc.node && desc.node.isBlock)\n break;\n }\n }\n }\n else {\n let prev = node.childNodes[offset - 1];\n brKludge = prev && (prev.nodeName == \"BR\" || prev.contentEditable == \"false\");\n }\n }\n // Firefox can act strangely when the selection is in front of an\n // uneditable node. See #1163 and https://bugzilla.mozilla.org/show_bug.cgi?id=1709536\n if (gecko && selRange.focusNode && selRange.focusNode != headDOM.node && selRange.focusNode.nodeType == 1) {\n let after = selRange.focusNode.childNodes[selRange.focusOffset];\n if (after && after.contentEditable == \"false\")\n force = true;\n }\n if (!(force || brKludge && safari) &&\n isEquivalentPosition(anchorDOM.node, anchorDOM.offset, selRange.anchorNode, selRange.anchorOffset) &&\n isEquivalentPosition(headDOM.node, headDOM.offset, selRange.focusNode, selRange.focusOffset))\n return;\n // Selection.extend can be used to create an 'inverted' selection\n // (one where the focus is before the anchor), but not all\n // browsers support it yet.\n let domSelExtended = false;\n if ((domSel.extend || anchor == head) && !brKludge) {\n domSel.collapse(anchorDOM.node, anchorDOM.offset);\n try {\n if (anchor != head)\n domSel.extend(headDOM.node, headDOM.offset);\n domSelExtended = true;\n }\n catch (_) {\n // In some cases with Chrome the selection is empty after calling\n // collapse, even when it should be valid. This appears to be a bug, but\n // it is difficult to isolate. If this happens fallback to the old path\n // without using extend.\n // Similarly, this could crash on Safari if the editor is hidden, and\n // there was no selection.\n }\n }\n if (!domSelExtended) {\n if (anchor > head) {\n let tmp = anchorDOM;\n anchorDOM = headDOM;\n headDOM = tmp;\n }\n let range = document.createRange();\n range.setEnd(headDOM.node, headDOM.offset);\n range.setStart(anchorDOM.node, anchorDOM.offset);\n domSel.removeAllRanges();\n domSel.addRange(range);\n }\n }\n ignoreMutation(mutation) {\n return !this.contentDOM && mutation.type != \"selection\";\n }\n get contentLost() {\n return this.contentDOM && this.contentDOM != this.dom && !this.dom.contains(this.contentDOM);\n }\n // Remove a subtree of the element tree that has been touched\n // by a DOM change, so that the next update will redraw it.\n markDirty(from, to) {\n for (let offset = 0, i = 0; i < this.children.length; i++) {\n let child = this.children[i], end = offset + child.size;\n if (offset == end ? from <= end && to >= offset : from < end && to > offset) {\n let startInside = offset + child.border, endInside = end - child.border;\n if (from >= startInside && to <= endInside) {\n this.dirty = from == offset || to == end ? CONTENT_DIRTY : CHILD_DIRTY;\n if (from == startInside && to == endInside &&\n (child.contentLost || child.dom.parentNode != this.contentDOM))\n child.dirty = NODE_DIRTY;\n else\n child.markDirty(from - startInside, to - startInside);\n return;\n }\n else {\n child.dirty = child.dom == child.contentDOM && child.dom.parentNode == this.contentDOM && !child.children.length\n ? CONTENT_DIRTY : NODE_DIRTY;\n }\n }\n offset = end;\n }\n this.dirty = CONTENT_DIRTY;\n }\n markParentsDirty() {\n let level = 1;\n for (let node = this.parent; node; node = node.parent, level++) {\n let dirty = level == 1 ? CONTENT_DIRTY : CHILD_DIRTY;\n if (node.dirty < dirty)\n node.dirty = dirty;\n }\n }\n get domAtom() { return false; }\n get ignoreForCoords() { return false; }\n isText(text) { return false; }\n}\n// A widget desc represents a widget decoration, which is a DOM node\n// drawn between the document nodes.\nclass WidgetViewDesc extends ViewDesc {\n constructor(parent, widget, view, pos) {\n let self, dom = widget.type.toDOM;\n if (typeof dom == \"function\")\n dom = dom(view, () => {\n if (!self)\n return pos;\n if (self.parent)\n return self.parent.posBeforeChild(self);\n });\n if (!widget.type.spec.raw) {\n if (dom.nodeType != 1) {\n let wrap = document.createElement(\"span\");\n wrap.appendChild(dom);\n dom = wrap;\n }\n dom.contentEditable = \"false\";\n dom.classList.add(\"ProseMirror-widget\");\n }\n super(parent, [], dom, null);\n this.widget = widget;\n this.widget = widget;\n self = this;\n }\n matchesWidget(widget) {\n return this.dirty == NOT_DIRTY && widget.type.eq(this.widget.type);\n }\n parseRule() { return { ignore: true }; }\n stopEvent(event) {\n let stop = this.widget.spec.stopEvent;\n return stop ? stop(event) : false;\n }\n ignoreMutation(mutation) {\n return mutation.type != \"selection\" || this.widget.spec.ignoreSelection;\n }\n destroy() {\n this.widget.type.destroy(this.dom);\n super.destroy();\n }\n get domAtom() { return true; }\n get side() { return this.widget.type.side; }\n}\nclass CompositionViewDesc extends ViewDesc {\n constructor(parent, dom, textDOM, text) {\n super(parent, [], dom, null);\n this.textDOM = textDOM;\n this.text = text;\n }\n get size() { return this.text.length; }\n localPosFromDOM(dom, offset) {\n if (dom != this.textDOM)\n return this.posAtStart + (offset ? this.size : 0);\n return this.posAtStart + offset;\n }\n domFromPos(pos) {\n return { node: this.textDOM, offset: pos };\n }\n ignoreMutation(mut) {\n return mut.type === 'characterData' && mut.target.nodeValue == mut.oldValue;\n }\n}\n// A mark desc represents a mark. May have multiple children,\n// depending on how the mark is split. Note that marks are drawn using\n// a fixed nesting order, for simplicity and predictability, so in\n// some cases they will be split more often than would appear\n// necessary.\nclass MarkViewDesc extends ViewDesc {\n constructor(parent, mark, dom, contentDOM, spec) {\n super(parent, [], dom, contentDOM);\n this.mark = mark;\n this.spec = spec;\n }\n static create(parent, mark, inline, view) {\n let custom = view.nodeViews[mark.type.name];\n let spec = custom && custom(mark, view, inline);\n if (!spec || !spec.dom)\n spec = DOMSerializer.renderSpec(document, mark.type.spec.toDOM(mark, inline), null, mark.attrs);\n return new MarkViewDesc(parent, mark, spec.dom, spec.contentDOM || spec.dom, spec);\n }\n parseRule() {\n if ((this.dirty & NODE_DIRTY) || this.mark.type.spec.reparseInView)\n return null;\n return { mark: this.mark.type.name, attrs: this.mark.attrs, contentElement: this.contentDOM };\n }\n matchesMark(mark) { return this.dirty != NODE_DIRTY && this.mark.eq(mark); }\n markDirty(from, to) {\n super.markDirty(from, to);\n // Move dirty info to nearest node view\n if (this.dirty != NOT_DIRTY) {\n let parent = this.parent;\n while (!parent.node)\n parent = parent.parent;\n if (parent.dirty < this.dirty)\n parent.dirty = this.dirty;\n this.dirty = NOT_DIRTY;\n }\n }\n slice(from, to, view) {\n let copy = MarkViewDesc.create(this.parent, this.mark, true, view);\n let nodes = this.children, size = this.size;\n if (to < size)\n nodes = replaceNodes(nodes, to, size, view);\n if (from > 0)\n nodes = replaceNodes(nodes, 0, from, view);\n for (let i = 0; i < nodes.length; i++)\n nodes[i].parent = copy;\n copy.children = nodes;\n return copy;\n }\n ignoreMutation(mutation) {\n return this.spec.ignoreMutation ? this.spec.ignoreMutation(mutation) : super.ignoreMutation(mutation);\n }\n destroy() {\n if (this.spec.destroy)\n this.spec.destroy();\n super.destroy();\n }\n}\n// Node view descs are the main, most common type of view desc, and\n// correspond to an actual node in the document. Unlike mark descs,\n// they populate their child array themselves.\nclass NodeViewDesc extends ViewDesc {\n constructor(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos) {\n super(parent, [], dom, contentDOM);\n this.node = node;\n this.outerDeco = outerDeco;\n this.innerDeco = innerDeco;\n this.nodeDOM = nodeDOM;\n }\n // By default, a node is rendered using the `toDOM` method from the\n // node type spec. But client code can use the `nodeViews` spec to\n // supply a custom node view, which can influence various aspects of\n // the way the node works.\n //\n // (Using subclassing for this was intentionally decided against,\n // since it'd require exposing a whole slew of finicky\n // implementation details to the user code that they probably will\n // never need.)\n static create(parent, node, outerDeco, innerDeco, view, pos) {\n let custom = view.nodeViews[node.type.name], descObj;\n let spec = custom && custom(node, view, () => {\n // (This is a function that allows the custom view to find its\n // own position)\n if (!descObj)\n return pos;\n if (descObj.parent)\n return descObj.parent.posBeforeChild(descObj);\n }, outerDeco, innerDeco);\n let dom = spec && spec.dom, contentDOM = spec && spec.contentDOM;\n if (node.isText) {\n if (!dom)\n dom = document.createTextNode(node.text);\n else if (dom.nodeType != 3)\n throw new RangeError(\"Text must be rendered as a DOM text node\");\n }\n else if (!dom) {\n let spec = DOMSerializer.renderSpec(document, node.type.spec.toDOM(node), null, node.attrs);\n ({ dom, contentDOM } = spec);\n }\n if (!contentDOM && !node.isText && dom.nodeName != \"BR\") { // Chrome gets confused by
    \n if (!dom.hasAttribute(\"contenteditable\"))\n dom.contentEditable = \"false\";\n if (node.type.spec.draggable)\n dom.draggable = true;\n }\n let nodeDOM = dom;\n dom = applyOuterDeco(dom, outerDeco, node);\n if (spec)\n return descObj = new CustomNodeViewDesc(parent, node, outerDeco, innerDeco, dom, contentDOM || null, nodeDOM, spec, view, pos + 1);\n else if (node.isText)\n return new TextViewDesc(parent, node, outerDeco, innerDeco, dom, nodeDOM, view);\n else\n return new NodeViewDesc(parent, node, outerDeco, innerDeco, dom, contentDOM || null, nodeDOM, view, pos + 1);\n }\n parseRule() {\n // Experimental kludge to allow opt-in re-parsing of nodes\n if (this.node.type.spec.reparseInView)\n return null;\n // FIXME the assumption that this can always return the current\n // attrs means that if the user somehow manages to change the\n // attrs in the dom, that won't be picked up. Not entirely sure\n // whether this is a problem\n let rule = { node: this.node.type.name, attrs: this.node.attrs };\n if (this.node.type.whitespace == \"pre\")\n rule.preserveWhitespace = \"full\";\n if (!this.contentDOM) {\n rule.getContent = () => this.node.content;\n }\n else if (!this.contentLost) {\n rule.contentElement = this.contentDOM;\n }\n else {\n // Chrome likes to randomly recreate parent nodes when\n // backspacing things. When that happens, this tries to find the\n // new parent.\n for (let i = this.children.length - 1; i >= 0; i--) {\n let child = this.children[i];\n if (this.dom.contains(child.dom.parentNode)) {\n rule.contentElement = child.dom.parentNode;\n break;\n }\n }\n if (!rule.contentElement)\n rule.getContent = () => Fragment.empty;\n }\n return rule;\n }\n matchesNode(node, outerDeco, innerDeco) {\n return this.dirty == NOT_DIRTY && node.eq(this.node) &&\n sameOuterDeco(outerDeco, this.outerDeco) && innerDeco.eq(this.innerDeco);\n }\n get size() { return this.node.nodeSize; }\n get border() { return this.node.isLeaf ? 0 : 1; }\n // Syncs `this.children` to match `this.node.content` and the local\n // decorations, possibly introducing nesting for marks. Then, in a\n // separate step, syncs the DOM inside `this.contentDOM` to\n // `this.children`.\n updateChildren(view, pos) {\n let inline = this.node.inlineContent, off = pos;\n let composition = view.composing ? this.localCompositionInfo(view, pos) : null;\n let localComposition = composition && composition.pos > -1 ? composition : null;\n let compositionInChild = composition && composition.pos < 0;\n let updater = new ViewTreeUpdater(this, localComposition && localComposition.node, view);\n iterDeco(this.node, this.innerDeco, (widget, i, insideNode) => {\n if (widget.spec.marks)\n updater.syncToMarks(widget.spec.marks, inline, view);\n else if (widget.type.side >= 0 && !insideNode)\n updater.syncToMarks(i == this.node.childCount ? Mark.none : this.node.child(i).marks, inline, view);\n // If the next node is a desc matching this widget, reuse it,\n // otherwise insert the widget as a new view desc.\n updater.placeWidget(widget, view, off);\n }, (child, outerDeco, innerDeco, i) => {\n // Make sure the wrapping mark descs match the node's marks.\n updater.syncToMarks(child.marks, inline, view);\n // Try several strategies for drawing this node\n let compIndex;\n if (updater.findNodeMatch(child, outerDeco, innerDeco, i)) ;\n else if (compositionInChild && view.state.selection.from > off &&\n view.state.selection.to < off + child.nodeSize &&\n (compIndex = updater.findIndexWithChild(composition.node)) > -1 &&\n updater.updateNodeAt(child, outerDeco, innerDeco, compIndex, view)) ;\n else if (updater.updateNextNode(child, outerDeco, innerDeco, view, i, off)) ;\n else {\n // Add it as a new view\n updater.addNode(child, outerDeco, innerDeco, view, off);\n }\n off += child.nodeSize;\n });\n // Drop all remaining descs after the current position.\n updater.syncToMarks([], inline, view);\n if (this.node.isTextblock)\n updater.addTextblockHacks();\n updater.destroyRest();\n // Sync the DOM if anything changed\n if (updater.changed || this.dirty == CONTENT_DIRTY) {\n // May have to protect focused DOM from being changed if a composition is active\n if (localComposition)\n this.protectLocalComposition(view, localComposition);\n renderDescs(this.contentDOM, this.children, view);\n if (ios)\n iosHacks(this.dom);\n }\n }\n localCompositionInfo(view, pos) {\n // Only do something if both the selection and a focused text node\n // are inside of this node\n let { from, to } = view.state.selection;\n if (!(view.state.selection instanceof TextSelection) || from < pos || to > pos + this.node.content.size)\n return null;\n let textNode = view.input.compositionNode;\n if (!textNode || !this.dom.contains(textNode.parentNode))\n return null;\n if (this.node.inlineContent) {\n // Find the text in the focused node in the node, stop if it's not\n // there (may have been modified through other means, in which\n // case it should overwritten)\n let text = textNode.nodeValue;\n let textPos = findTextInFragment(this.node.content, text, from - pos, to - pos);\n return textPos < 0 ? null : { node: textNode, pos: textPos, text };\n }\n else {\n return { node: textNode, pos: -1, text: \"\" };\n }\n }\n protectLocalComposition(view, { node, pos, text }) {\n // The node is already part of a local view desc, leave it there\n if (this.getDesc(node))\n return;\n // Create a composition view for the orphaned nodes\n let topNode = node;\n for (;; topNode = topNode.parentNode) {\n if (topNode.parentNode == this.contentDOM)\n break;\n while (topNode.previousSibling)\n topNode.parentNode.removeChild(topNode.previousSibling);\n while (topNode.nextSibling)\n topNode.parentNode.removeChild(topNode.nextSibling);\n if (topNode.pmViewDesc)\n topNode.pmViewDesc = undefined;\n }\n let desc = new CompositionViewDesc(this, topNode, node, text);\n view.input.compositionNodes.push(desc);\n // Patch up this.children to contain the composition view\n this.children = replaceNodes(this.children, pos, pos + text.length, view, desc);\n }\n // If this desc must be updated to match the given node decoration,\n // do so and return true.\n update(node, outerDeco, innerDeco, view) {\n if (this.dirty == NODE_DIRTY ||\n !node.sameMarkup(this.node))\n return false;\n this.updateInner(node, outerDeco, innerDeco, view);\n return true;\n }\n updateInner(node, outerDeco, innerDeco, view) {\n this.updateOuterDeco(outerDeco);\n this.node = node;\n this.innerDeco = innerDeco;\n if (this.contentDOM)\n this.updateChildren(view, this.posAtStart);\n this.dirty = NOT_DIRTY;\n }\n updateOuterDeco(outerDeco) {\n if (sameOuterDeco(outerDeco, this.outerDeco))\n return;\n let needsWrap = this.nodeDOM.nodeType != 1;\n let oldDOM = this.dom;\n this.dom = patchOuterDeco(this.dom, this.nodeDOM, computeOuterDeco(this.outerDeco, this.node, needsWrap), computeOuterDeco(outerDeco, this.node, needsWrap));\n if (this.dom != oldDOM) {\n oldDOM.pmViewDesc = undefined;\n this.dom.pmViewDesc = this;\n }\n this.outerDeco = outerDeco;\n }\n // Mark this node as being the selected node.\n selectNode() {\n if (this.nodeDOM.nodeType == 1)\n this.nodeDOM.classList.add(\"ProseMirror-selectednode\");\n if (this.contentDOM || !this.node.type.spec.draggable)\n this.dom.draggable = true;\n }\n // Remove selected node marking from this node.\n deselectNode() {\n if (this.nodeDOM.nodeType == 1) {\n this.nodeDOM.classList.remove(\"ProseMirror-selectednode\");\n if (this.contentDOM || !this.node.type.spec.draggable)\n this.dom.removeAttribute(\"draggable\");\n }\n }\n get domAtom() { return this.node.isAtom; }\n}\n// Create a view desc for the top-level document node, to be exported\n// and used by the view class.\nfunction docViewDesc(doc, outerDeco, innerDeco, dom, view) {\n applyOuterDeco(dom, outerDeco, doc);\n let docView = new NodeViewDesc(undefined, doc, outerDeco, innerDeco, dom, dom, dom, view, 0);\n if (docView.contentDOM)\n docView.updateChildren(view, 0);\n return docView;\n}\nclass TextViewDesc extends NodeViewDesc {\n constructor(parent, node, outerDeco, innerDeco, dom, nodeDOM, view) {\n super(parent, node, outerDeco, innerDeco, dom, null, nodeDOM, view, 0);\n }\n parseRule() {\n let skip = this.nodeDOM.parentNode;\n while (skip && skip != this.dom && !skip.pmIsDeco)\n skip = skip.parentNode;\n return { skip: (skip || true) };\n }\n update(node, outerDeco, innerDeco, view) {\n if (this.dirty == NODE_DIRTY || (this.dirty != NOT_DIRTY && !this.inParent()) ||\n !node.sameMarkup(this.node))\n return false;\n this.updateOuterDeco(outerDeco);\n if ((this.dirty != NOT_DIRTY || node.text != this.node.text) && node.text != this.nodeDOM.nodeValue) {\n this.nodeDOM.nodeValue = node.text;\n if (view.trackWrites == this.nodeDOM)\n view.trackWrites = null;\n }\n this.node = node;\n this.dirty = NOT_DIRTY;\n return true;\n }\n inParent() {\n let parentDOM = this.parent.contentDOM;\n for (let n = this.nodeDOM; n; n = n.parentNode)\n if (n == parentDOM)\n return true;\n return false;\n }\n domFromPos(pos) {\n return { node: this.nodeDOM, offset: pos };\n }\n localPosFromDOM(dom, offset, bias) {\n if (dom == this.nodeDOM)\n return this.posAtStart + Math.min(offset, this.node.text.length);\n return super.localPosFromDOM(dom, offset, bias);\n }\n ignoreMutation(mutation) {\n return mutation.type != \"characterData\" && mutation.type != \"selection\";\n }\n slice(from, to, view) {\n let node = this.node.cut(from, to), dom = document.createTextNode(node.text);\n return new TextViewDesc(this.parent, node, this.outerDeco, this.innerDeco, dom, dom, view);\n }\n markDirty(from, to) {\n super.markDirty(from, to);\n if (this.dom != this.nodeDOM && (from == 0 || to == this.nodeDOM.nodeValue.length))\n this.dirty = NODE_DIRTY;\n }\n get domAtom() { return false; }\n isText(text) { return this.node.text == text; }\n}\n// A dummy desc used to tag trailing BR or IMG nodes created to work\n// around contentEditable terribleness.\nclass TrailingHackViewDesc extends ViewDesc {\n parseRule() { return { ignore: true }; }\n matchesHack(nodeName) { return this.dirty == NOT_DIRTY && this.dom.nodeName == nodeName; }\n get domAtom() { return true; }\n get ignoreForCoords() { return this.dom.nodeName == \"IMG\"; }\n}\n// A separate subclass is used for customized node views, so that the\n// extra checks only have to be made for nodes that are actually\n// customized.\nclass CustomNodeViewDesc extends NodeViewDesc {\n constructor(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, spec, view, pos) {\n super(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos);\n this.spec = spec;\n }\n // A custom `update` method gets to decide whether the update goes\n // through. If it does, and there's a `contentDOM` node, our logic\n // updates the children.\n update(node, outerDeco, innerDeco, view) {\n if (this.dirty == NODE_DIRTY)\n return false;\n if (this.spec.update && (this.node.type == node.type || this.spec.multiType)) {\n let result = this.spec.update(node, outerDeco, innerDeco);\n if (result)\n this.updateInner(node, outerDeco, innerDeco, view);\n return result;\n }\n else if (!this.contentDOM && !node.isLeaf) {\n return false;\n }\n else {\n return super.update(node, outerDeco, innerDeco, view);\n }\n }\n selectNode() {\n this.spec.selectNode ? this.spec.selectNode() : super.selectNode();\n }\n deselectNode() {\n this.spec.deselectNode ? this.spec.deselectNode() : super.deselectNode();\n }\n setSelection(anchor, head, view, force) {\n this.spec.setSelection ? this.spec.setSelection(anchor, head, view.root)\n : super.setSelection(anchor, head, view, force);\n }\n destroy() {\n if (this.spec.destroy)\n this.spec.destroy();\n super.destroy();\n }\n stopEvent(event) {\n return this.spec.stopEvent ? this.spec.stopEvent(event) : false;\n }\n ignoreMutation(mutation) {\n return this.spec.ignoreMutation ? this.spec.ignoreMutation(mutation) : super.ignoreMutation(mutation);\n }\n}\n// Sync the content of the given DOM node with the nodes associated\n// with the given array of view descs, recursing into mark descs\n// because this should sync the subtree for a whole node at a time.\nfunction renderDescs(parentDOM, descs, view) {\n let dom = parentDOM.firstChild, written = false;\n for (let i = 0; i < descs.length; i++) {\n let desc = descs[i], childDOM = desc.dom;\n if (childDOM.parentNode == parentDOM) {\n while (childDOM != dom) {\n dom = rm(dom);\n written = true;\n }\n dom = dom.nextSibling;\n }\n else {\n written = true;\n parentDOM.insertBefore(childDOM, dom);\n }\n if (desc instanceof MarkViewDesc) {\n let pos = dom ? dom.previousSibling : parentDOM.lastChild;\n renderDescs(desc.contentDOM, desc.children, view);\n dom = pos ? pos.nextSibling : parentDOM.firstChild;\n }\n }\n while (dom) {\n dom = rm(dom);\n written = true;\n }\n if (written && view.trackWrites == parentDOM)\n view.trackWrites = null;\n}\nconst OuterDecoLevel = function (nodeName) {\n if (nodeName)\n this.nodeName = nodeName;\n};\nOuterDecoLevel.prototype = Object.create(null);\nconst noDeco = [new OuterDecoLevel];\nfunction computeOuterDeco(outerDeco, node, needsWrap) {\n if (outerDeco.length == 0)\n return noDeco;\n let top = needsWrap ? noDeco[0] : new OuterDecoLevel, result = [top];\n for (let i = 0; i < outerDeco.length; i++) {\n let attrs = outerDeco[i].type.attrs;\n if (!attrs)\n continue;\n if (attrs.nodeName)\n result.push(top = new OuterDecoLevel(attrs.nodeName));\n for (let name in attrs) {\n let val = attrs[name];\n if (val == null)\n continue;\n if (needsWrap && result.length == 1)\n result.push(top = new OuterDecoLevel(node.isInline ? \"span\" : \"div\"));\n if (name == \"class\")\n top.class = (top.class ? top.class + \" \" : \"\") + val;\n else if (name == \"style\")\n top.style = (top.style ? top.style + \";\" : \"\") + val;\n else if (name != \"nodeName\")\n top[name] = val;\n }\n }\n return result;\n}\nfunction patchOuterDeco(outerDOM, nodeDOM, prevComputed, curComputed) {\n // Shortcut for trivial case\n if (prevComputed == noDeco && curComputed == noDeco)\n return nodeDOM;\n let curDOM = nodeDOM;\n for (let i = 0; i < curComputed.length; i++) {\n let deco = curComputed[i], prev = prevComputed[i];\n if (i) {\n let parent;\n if (prev && prev.nodeName == deco.nodeName && curDOM != outerDOM &&\n (parent = curDOM.parentNode) && parent.nodeName.toLowerCase() == deco.nodeName) {\n curDOM = parent;\n }\n else {\n parent = document.createElement(deco.nodeName);\n parent.pmIsDeco = true;\n parent.appendChild(curDOM);\n prev = noDeco[0];\n curDOM = parent;\n }\n }\n patchAttributes(curDOM, prev || noDeco[0], deco);\n }\n return curDOM;\n}\nfunction patchAttributes(dom, prev, cur) {\n for (let name in prev)\n if (name != \"class\" && name != \"style\" && name != \"nodeName\" && !(name in cur))\n dom.removeAttribute(name);\n for (let name in cur)\n if (name != \"class\" && name != \"style\" && name != \"nodeName\" && cur[name] != prev[name])\n dom.setAttribute(name, cur[name]);\n if (prev.class != cur.class) {\n let prevList = prev.class ? prev.class.split(\" \").filter(Boolean) : [];\n let curList = cur.class ? cur.class.split(\" \").filter(Boolean) : [];\n for (let i = 0; i < prevList.length; i++)\n if (curList.indexOf(prevList[i]) == -1)\n dom.classList.remove(prevList[i]);\n for (let i = 0; i < curList.length; i++)\n if (prevList.indexOf(curList[i]) == -1)\n dom.classList.add(curList[i]);\n if (dom.classList.length == 0)\n dom.removeAttribute(\"class\");\n }\n if (prev.style != cur.style) {\n if (prev.style) {\n let prop = /\\s*([\\w\\-\\xa1-\\uffff]+)\\s*:(?:\"(?:\\\\.|[^\"])*\"|'(?:\\\\.|[^'])*'|\\(.*?\\)|[^;])*/g, m;\n while (m = prop.exec(prev.style))\n dom.style.removeProperty(m[1]);\n }\n if (cur.style)\n dom.style.cssText += cur.style;\n }\n}\nfunction applyOuterDeco(dom, deco, node) {\n return patchOuterDeco(dom, dom, noDeco, computeOuterDeco(deco, node, dom.nodeType != 1));\n}\nfunction sameOuterDeco(a, b) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!a[i].type.eq(b[i].type))\n return false;\n return true;\n}\n// Remove a DOM node and return its next sibling.\nfunction rm(dom) {\n let next = dom.nextSibling;\n dom.parentNode.removeChild(dom);\n return next;\n}\n// Helper class for incrementally updating a tree of mark descs and\n// the widget and node descs inside of them.\nclass ViewTreeUpdater {\n constructor(top, lock, view) {\n this.lock = lock;\n this.view = view;\n // Index into `this.top`'s child array, represents the current\n // update position.\n this.index = 0;\n // When entering a mark, the current top and index are pushed\n // onto this.\n this.stack = [];\n // Tracks whether anything was changed\n this.changed = false;\n this.top = top;\n this.preMatch = preMatch(top.node.content, top);\n }\n // Destroy and remove the children between the given indices in\n // `this.top`.\n destroyBetween(start, end) {\n if (start == end)\n return;\n for (let i = start; i < end; i++)\n this.top.children[i].destroy();\n this.top.children.splice(start, end - start);\n this.changed = true;\n }\n // Destroy all remaining children in `this.top`.\n destroyRest() {\n this.destroyBetween(this.index, this.top.children.length);\n }\n // Sync the current stack of mark descs with the given array of\n // marks, reusing existing mark descs when possible.\n syncToMarks(marks, inline, view) {\n let keep = 0, depth = this.stack.length >> 1;\n let maxKeep = Math.min(depth, marks.length);\n while (keep < maxKeep &&\n (keep == depth - 1 ? this.top : this.stack[(keep + 1) << 1])\n .matchesMark(marks[keep]) && marks[keep].type.spec.spanning !== false)\n keep++;\n while (keep < depth) {\n this.destroyRest();\n this.top.dirty = NOT_DIRTY;\n this.index = this.stack.pop();\n this.top = this.stack.pop();\n depth--;\n }\n while (depth < marks.length) {\n this.stack.push(this.top, this.index + 1);\n let found = -1;\n for (let i = this.index; i < Math.min(this.index + 3, this.top.children.length); i++) {\n let next = this.top.children[i];\n if (next.matchesMark(marks[depth]) && !this.isLocked(next.dom)) {\n found = i;\n break;\n }\n }\n if (found > -1) {\n if (found > this.index) {\n this.changed = true;\n this.destroyBetween(this.index, found);\n }\n this.top = this.top.children[this.index];\n }\n else {\n let markDesc = MarkViewDesc.create(this.top, marks[depth], inline, view);\n this.top.children.splice(this.index, 0, markDesc);\n this.top = markDesc;\n this.changed = true;\n }\n this.index = 0;\n depth++;\n }\n }\n // Try to find a node desc matching the given data. Skip over it and\n // return true when successful.\n findNodeMatch(node, outerDeco, innerDeco, index) {\n let found = -1, targetDesc;\n if (index >= this.preMatch.index &&\n (targetDesc = this.preMatch.matches[index - this.preMatch.index]).parent == this.top &&\n targetDesc.matchesNode(node, outerDeco, innerDeco)) {\n found = this.top.children.indexOf(targetDesc, this.index);\n }\n else {\n for (let i = this.index, e = Math.min(this.top.children.length, i + 5); i < e; i++) {\n let child = this.top.children[i];\n if (child.matchesNode(node, outerDeco, innerDeco) && !this.preMatch.matched.has(child)) {\n found = i;\n break;\n }\n }\n }\n if (found < 0)\n return false;\n this.destroyBetween(this.index, found);\n this.index++;\n return true;\n }\n updateNodeAt(node, outerDeco, innerDeco, index, view) {\n let child = this.top.children[index];\n if (child.dirty == NODE_DIRTY && child.dom == child.contentDOM)\n child.dirty = CONTENT_DIRTY;\n if (!child.update(node, outerDeco, innerDeco, view))\n return false;\n this.destroyBetween(this.index, index);\n this.index++;\n return true;\n }\n findIndexWithChild(domNode) {\n for (;;) {\n let parent = domNode.parentNode;\n if (!parent)\n return -1;\n if (parent == this.top.contentDOM) {\n let desc = domNode.pmViewDesc;\n if (desc)\n for (let i = this.index; i < this.top.children.length; i++) {\n if (this.top.children[i] == desc)\n return i;\n }\n return -1;\n }\n domNode = parent;\n }\n }\n // Try to update the next node, if any, to the given data. Checks\n // pre-matches to avoid overwriting nodes that could still be used.\n updateNextNode(node, outerDeco, innerDeco, view, index, pos) {\n for (let i = this.index; i < this.top.children.length; i++) {\n let next = this.top.children[i];\n if (next instanceof NodeViewDesc) {\n let preMatch = this.preMatch.matched.get(next);\n if (preMatch != null && preMatch != index)\n return false;\n let nextDOM = next.dom, updated;\n // Can't update if nextDOM is or contains this.lock, except if\n // it's a text node whose content already matches the new text\n // and whose decorations match the new ones.\n let locked = this.isLocked(nextDOM) &&\n !(node.isText && next.node && next.node.isText && next.nodeDOM.nodeValue == node.text &&\n next.dirty != NODE_DIRTY && sameOuterDeco(outerDeco, next.outerDeco));\n if (!locked && next.update(node, outerDeco, innerDeco, view)) {\n this.destroyBetween(this.index, i);\n if (next.dom != nextDOM)\n this.changed = true;\n this.index++;\n return true;\n }\n else if (!locked && (updated = this.recreateWrapper(next, node, outerDeco, innerDeco, view, pos))) {\n this.destroyBetween(this.index, i);\n this.top.children[this.index] = updated;\n if (updated.contentDOM) {\n updated.dirty = CONTENT_DIRTY;\n updated.updateChildren(view, pos + 1);\n updated.dirty = NOT_DIRTY;\n }\n this.changed = true;\n this.index++;\n return true;\n }\n break;\n }\n }\n return false;\n }\n // When a node with content is replaced by a different node with\n // identical content, move over its children.\n recreateWrapper(next, node, outerDeco, innerDeco, view, pos) {\n if (next.dirty || node.isAtom || !next.children.length ||\n !next.node.content.eq(node.content) ||\n !sameOuterDeco(outerDeco, next.outerDeco) || !innerDeco.eq(next.innerDeco))\n return null;\n let wrapper = NodeViewDesc.create(this.top, node, outerDeco, innerDeco, view, pos);\n if (wrapper.contentDOM) {\n wrapper.children = next.children;\n next.children = [];\n for (let ch of wrapper.children)\n ch.parent = wrapper;\n }\n next.destroy();\n return wrapper;\n }\n // Insert the node as a newly created node desc.\n addNode(node, outerDeco, innerDeco, view, pos) {\n let desc = NodeViewDesc.create(this.top, node, outerDeco, innerDeco, view, pos);\n if (desc.contentDOM)\n desc.updateChildren(view, pos + 1);\n this.top.children.splice(this.index++, 0, desc);\n this.changed = true;\n }\n placeWidget(widget, view, pos) {\n let next = this.index < this.top.children.length ? this.top.children[this.index] : null;\n if (next && next.matchesWidget(widget) &&\n (widget == next.widget || !next.widget.type.toDOM.parentNode)) {\n this.index++;\n }\n else {\n let desc = new WidgetViewDesc(this.top, widget, view, pos);\n this.top.children.splice(this.index++, 0, desc);\n this.changed = true;\n }\n }\n // Make sure a textblock looks and behaves correctly in\n // contentEditable.\n addTextblockHacks() {\n let lastChild = this.top.children[this.index - 1], parent = this.top;\n while (lastChild instanceof MarkViewDesc) {\n parent = lastChild;\n lastChild = parent.children[parent.children.length - 1];\n }\n if (!lastChild || // Empty textblock\n !(lastChild instanceof TextViewDesc) ||\n /\\n$/.test(lastChild.node.text) ||\n (this.view.requiresGeckoHackNode && /\\s$/.test(lastChild.node.text))) {\n // Avoid bugs in Safari's cursor drawing (#1165) and Chrome's mouse selection (#1152)\n if ((safari || chrome) && lastChild && lastChild.dom.contentEditable == \"false\")\n this.addHackNode(\"IMG\", parent);\n this.addHackNode(\"BR\", this.top);\n }\n }\n addHackNode(nodeName, parent) {\n if (parent == this.top && this.index < parent.children.length && parent.children[this.index].matchesHack(nodeName)) {\n this.index++;\n }\n else {\n let dom = document.createElement(nodeName);\n if (nodeName == \"IMG\") {\n dom.className = \"ProseMirror-separator\";\n dom.alt = \"\";\n }\n if (nodeName == \"BR\")\n dom.className = \"ProseMirror-trailingBreak\";\n let hack = new TrailingHackViewDesc(this.top, [], dom, null);\n if (parent != this.top)\n parent.children.push(hack);\n else\n parent.children.splice(this.index++, 0, hack);\n this.changed = true;\n }\n }\n isLocked(node) {\n return this.lock && (node == this.lock || node.nodeType == 1 && node.contains(this.lock.parentNode));\n }\n}\n// Iterate from the end of the fragment and array of descs to find\n// directly matching ones, in order to avoid overeagerly reusing those\n// for other nodes. Returns the fragment index of the first node that\n// is part of the sequence of matched nodes at the end of the\n// fragment.\nfunction preMatch(frag, parentDesc) {\n let curDesc = parentDesc, descI = curDesc.children.length;\n let fI = frag.childCount, matched = new Map, matches = [];\n outer: while (fI > 0) {\n let desc;\n for (;;) {\n if (descI) {\n let next = curDesc.children[descI - 1];\n if (next instanceof MarkViewDesc) {\n curDesc = next;\n descI = next.children.length;\n }\n else {\n desc = next;\n descI--;\n break;\n }\n }\n else if (curDesc == parentDesc) {\n break outer;\n }\n else {\n // FIXME\n descI = curDesc.parent.children.indexOf(curDesc);\n curDesc = curDesc.parent;\n }\n }\n let node = desc.node;\n if (!node)\n continue;\n if (node != frag.child(fI - 1))\n break;\n --fI;\n matched.set(desc, fI);\n matches.push(desc);\n }\n return { index: fI, matched, matches: matches.reverse() };\n}\nfunction compareSide(a, b) {\n return a.type.side - b.type.side;\n}\n// This function abstracts iterating over the nodes and decorations in\n// a fragment. Calls `onNode` for each node, with its local and child\n// decorations. Splits text nodes when there is a decoration starting\n// or ending inside of them. Calls `onWidget` for each widget.\nfunction iterDeco(parent, deco, onWidget, onNode) {\n let locals = deco.locals(parent), offset = 0;\n // Simple, cheap variant for when there are no local decorations\n if (locals.length == 0) {\n for (let i = 0; i < parent.childCount; i++) {\n let child = parent.child(i);\n onNode(child, locals, deco.forChild(offset, child), i);\n offset += child.nodeSize;\n }\n return;\n }\n let decoIndex = 0, active = [], restNode = null;\n for (let parentIndex = 0;;) {\n let widget, widgets;\n while (decoIndex < locals.length && locals[decoIndex].to == offset) {\n let next = locals[decoIndex++];\n if (next.widget) {\n if (!widget)\n widget = next;\n else\n (widgets || (widgets = [widget])).push(next);\n }\n }\n if (widget) {\n if (widgets) {\n widgets.sort(compareSide);\n for (let i = 0; i < widgets.length; i++)\n onWidget(widgets[i], parentIndex, !!restNode);\n }\n else {\n onWidget(widget, parentIndex, !!restNode);\n }\n }\n let child, index;\n if (restNode) {\n index = -1;\n child = restNode;\n restNode = null;\n }\n else if (parentIndex < parent.childCount) {\n index = parentIndex;\n child = parent.child(parentIndex++);\n }\n else {\n break;\n }\n for (let i = 0; i < active.length; i++)\n if (active[i].to <= offset)\n active.splice(i--, 1);\n while (decoIndex < locals.length && locals[decoIndex].from <= offset && locals[decoIndex].to > offset)\n active.push(locals[decoIndex++]);\n let end = offset + child.nodeSize;\n if (child.isText) {\n let cutAt = end;\n if (decoIndex < locals.length && locals[decoIndex].from < cutAt)\n cutAt = locals[decoIndex].from;\n for (let i = 0; i < active.length; i++)\n if (active[i].to < cutAt)\n cutAt = active[i].to;\n if (cutAt < end) {\n restNode = child.cut(cutAt - offset);\n child = child.cut(0, cutAt - offset);\n end = cutAt;\n index = -1;\n }\n }\n else {\n while (decoIndex < locals.length && locals[decoIndex].to < end)\n decoIndex++;\n }\n let outerDeco = child.isInline && !child.isLeaf ? active.filter(d => !d.inline) : active.slice();\n onNode(child, outerDeco, deco.forChild(offset, child), index);\n offset = end;\n }\n}\n// List markers in Mobile Safari will mysteriously disappear\n// sometimes. This works around that.\nfunction iosHacks(dom) {\n if (dom.nodeName == \"UL\" || dom.nodeName == \"OL\") {\n let oldCSS = dom.style.cssText;\n dom.style.cssText = oldCSS + \"; list-style: square !important\";\n window.getComputedStyle(dom).listStyle;\n dom.style.cssText = oldCSS;\n }\n}\n// Find a piece of text in an inline fragment, overlapping from-to\nfunction findTextInFragment(frag, text, from, to) {\n for (let i = 0, pos = 0; i < frag.childCount && pos <= to;) {\n let child = frag.child(i++), childStart = pos;\n pos += child.nodeSize;\n if (!child.isText)\n continue;\n let str = child.text;\n while (i < frag.childCount) {\n let next = frag.child(i++);\n pos += next.nodeSize;\n if (!next.isText)\n break;\n str += next.text;\n }\n if (pos >= from) {\n if (pos >= to && str.slice(to - text.length - childStart, to - childStart) == text)\n return to - text.length;\n let found = childStart < to ? str.lastIndexOf(text, to - childStart - 1) : -1;\n if (found >= 0 && found + text.length + childStart >= from)\n return childStart + found;\n if (from == to && str.length >= (to + text.length) - childStart &&\n str.slice(to - childStart, to - childStart + text.length) == text)\n return to;\n }\n }\n return -1;\n}\n// Replace range from-to in an array of view descs with replacement\n// (may be null to just delete). This goes very much against the grain\n// of the rest of this code, which tends to create nodes with the\n// right shape in one go, rather than messing with them after\n// creation, but is necessary in the composition hack.\nfunction replaceNodes(nodes, from, to, view, replacement) {\n let result = [];\n for (let i = 0, off = 0; i < nodes.length; i++) {\n let child = nodes[i], start = off, end = off += child.size;\n if (start >= to || end <= from) {\n result.push(child);\n }\n else {\n if (start < from)\n result.push(child.slice(0, from - start, view));\n if (replacement) {\n result.push(replacement);\n replacement = undefined;\n }\n if (end > to)\n result.push(child.slice(to - start, child.size, view));\n }\n }\n return result;\n}\n\nfunction selectionFromDOM(view, origin = null) {\n let domSel = view.domSelectionRange(), doc = view.state.doc;\n if (!domSel.focusNode)\n return null;\n let nearestDesc = view.docView.nearestDesc(domSel.focusNode), inWidget = nearestDesc && nearestDesc.size == 0;\n let head = view.docView.posFromDOM(domSel.focusNode, domSel.focusOffset, 1);\n if (head < 0)\n return null;\n let $head = doc.resolve(head), anchor, selection;\n if (selectionCollapsed(domSel)) {\n anchor = head;\n while (nearestDesc && !nearestDesc.node)\n nearestDesc = nearestDesc.parent;\n let nearestDescNode = nearestDesc.node;\n if (nearestDesc && nearestDescNode.isAtom && NodeSelection.isSelectable(nearestDescNode) && nearestDesc.parent\n && !(nearestDescNode.isInline && isOnEdge(domSel.focusNode, domSel.focusOffset, nearestDesc.dom))) {\n let pos = nearestDesc.posBefore;\n selection = new NodeSelection(head == pos ? $head : doc.resolve(pos));\n }\n }\n else {\n if (domSel instanceof view.dom.ownerDocument.defaultView.Selection && domSel.rangeCount > 1) {\n let min = head, max = head;\n for (let i = 0; i < domSel.rangeCount; i++) {\n let range = domSel.getRangeAt(i);\n min = Math.min(min, view.docView.posFromDOM(range.startContainer, range.startOffset, 1));\n max = Math.max(max, view.docView.posFromDOM(range.endContainer, range.endOffset, -1));\n }\n if (min < 0)\n return null;\n [anchor, head] = max == view.state.selection.anchor ? [max, min] : [min, max];\n $head = doc.resolve(head);\n }\n else {\n anchor = view.docView.posFromDOM(domSel.anchorNode, domSel.anchorOffset, 1);\n }\n if (anchor < 0)\n return null;\n }\n let $anchor = doc.resolve(anchor);\n if (!selection) {\n let bias = origin == \"pointer\" || (view.state.selection.head < $head.pos && !inWidget) ? 1 : -1;\n selection = selectionBetween(view, $anchor, $head, bias);\n }\n return selection;\n}\nfunction editorOwnsSelection(view) {\n return view.editable ? view.hasFocus() :\n hasSelection(view) && document.activeElement && document.activeElement.contains(view.dom);\n}\nfunction selectionToDOM(view, force = false) {\n let sel = view.state.selection;\n syncNodeSelection(view, sel);\n if (!editorOwnsSelection(view))\n return;\n // The delayed drag selection causes issues with Cell Selections\n // in Safari. And the drag selection delay is to workarond issues\n // which only present in Chrome.\n if (!force && view.input.mouseDown && view.input.mouseDown.allowDefault && chrome) {\n let domSel = view.domSelectionRange(), curSel = view.domObserver.currentSelection;\n if (domSel.anchorNode && curSel.anchorNode &&\n isEquivalentPosition(domSel.anchorNode, domSel.anchorOffset, curSel.anchorNode, curSel.anchorOffset)) {\n view.input.mouseDown.delayedSelectionSync = true;\n view.domObserver.setCurSelection();\n return;\n }\n }\n view.domObserver.disconnectSelection();\n if (view.cursorWrapper) {\n selectCursorWrapper(view);\n }\n else {\n let { anchor, head } = sel, resetEditableFrom, resetEditableTo;\n if (brokenSelectBetweenUneditable && !(sel instanceof TextSelection)) {\n if (!sel.$from.parent.inlineContent)\n resetEditableFrom = temporarilyEditableNear(view, sel.from);\n if (!sel.empty && !sel.$from.parent.inlineContent)\n resetEditableTo = temporarilyEditableNear(view, sel.to);\n }\n view.docView.setSelection(anchor, head, view, force);\n if (brokenSelectBetweenUneditable) {\n if (resetEditableFrom)\n resetEditable(resetEditableFrom);\n if (resetEditableTo)\n resetEditable(resetEditableTo);\n }\n if (sel.visible) {\n view.dom.classList.remove(\"ProseMirror-hideselection\");\n }\n else {\n view.dom.classList.add(\"ProseMirror-hideselection\");\n if (\"onselectionchange\" in document)\n removeClassOnSelectionChange(view);\n }\n }\n view.domObserver.setCurSelection();\n view.domObserver.connectSelection();\n}\n// Kludge to work around Webkit not allowing a selection to start/end\n// between non-editable block nodes. We briefly make something\n// editable, set the selection, then set it uneditable again.\nconst brokenSelectBetweenUneditable = safari || chrome && chrome_version < 63;\nfunction temporarilyEditableNear(view, pos) {\n let { node, offset } = view.docView.domFromPos(pos, 0);\n let after = offset < node.childNodes.length ? node.childNodes[offset] : null;\n let before = offset ? node.childNodes[offset - 1] : null;\n if (safari && after && after.contentEditable == \"false\")\n return setEditable(after);\n if ((!after || after.contentEditable == \"false\") &&\n (!before || before.contentEditable == \"false\")) {\n if (after)\n return setEditable(after);\n else if (before)\n return setEditable(before);\n }\n}\nfunction setEditable(element) {\n element.contentEditable = \"true\";\n if (safari && element.draggable) {\n element.draggable = false;\n element.wasDraggable = true;\n }\n return element;\n}\nfunction resetEditable(element) {\n element.contentEditable = \"false\";\n if (element.wasDraggable) {\n element.draggable = true;\n element.wasDraggable = null;\n }\n}\nfunction removeClassOnSelectionChange(view) {\n let doc = view.dom.ownerDocument;\n doc.removeEventListener(\"selectionchange\", view.input.hideSelectionGuard);\n let domSel = view.domSelectionRange();\n let node = domSel.anchorNode, offset = domSel.anchorOffset;\n doc.addEventListener(\"selectionchange\", view.input.hideSelectionGuard = () => {\n if (domSel.anchorNode != node || domSel.anchorOffset != offset) {\n doc.removeEventListener(\"selectionchange\", view.input.hideSelectionGuard);\n setTimeout(() => {\n if (!editorOwnsSelection(view) || view.state.selection.visible)\n view.dom.classList.remove(\"ProseMirror-hideselection\");\n }, 20);\n }\n });\n}\nfunction selectCursorWrapper(view) {\n let domSel = view.domSelection(), range = document.createRange();\n if (!domSel)\n return;\n let node = view.cursorWrapper.dom, img = node.nodeName == \"IMG\";\n if (img)\n range.setStart(node.parentNode, domIndex(node) + 1);\n else\n range.setStart(node, 0);\n range.collapse(true);\n domSel.removeAllRanges();\n domSel.addRange(range);\n // Kludge to kill 'control selection' in IE11 when selecting an\n // invisible cursor wrapper, since that would result in those weird\n // resize handles and a selection that considers the absolutely\n // positioned wrapper, rather than the root editable node, the\n // focused element.\n if (!img && !view.state.selection.visible && ie && ie_version <= 11) {\n node.disabled = true;\n node.disabled = false;\n }\n}\nfunction syncNodeSelection(view, sel) {\n if (sel instanceof NodeSelection) {\n let desc = view.docView.descAt(sel.from);\n if (desc != view.lastSelectedViewDesc) {\n clearNodeSelection(view);\n if (desc)\n desc.selectNode();\n view.lastSelectedViewDesc = desc;\n }\n }\n else {\n clearNodeSelection(view);\n }\n}\n// Clear all DOM statefulness of the last node selection.\nfunction clearNodeSelection(view) {\n if (view.lastSelectedViewDesc) {\n if (view.lastSelectedViewDesc.parent)\n view.lastSelectedViewDesc.deselectNode();\n view.lastSelectedViewDesc = undefined;\n }\n}\nfunction selectionBetween(view, $anchor, $head, bias) {\n return view.someProp(\"createSelectionBetween\", f => f(view, $anchor, $head))\n || TextSelection.between($anchor, $head, bias);\n}\nfunction hasFocusAndSelection(view) {\n if (view.editable && !view.hasFocus())\n return false;\n return hasSelection(view);\n}\nfunction hasSelection(view) {\n let sel = view.domSelectionRange();\n if (!sel.anchorNode)\n return false;\n try {\n // Firefox will raise 'permission denied' errors when accessing\n // properties of `sel.anchorNode` when it's in a generated CSS\n // element.\n return view.dom.contains(sel.anchorNode.nodeType == 3 ? sel.anchorNode.parentNode : sel.anchorNode) &&\n (view.editable || view.dom.contains(sel.focusNode.nodeType == 3 ? sel.focusNode.parentNode : sel.focusNode));\n }\n catch (_) {\n return false;\n }\n}\nfunction anchorInRightPlace(view) {\n let anchorDOM = view.docView.domFromPos(view.state.selection.anchor, 0);\n let domSel = view.domSelectionRange();\n return isEquivalentPosition(anchorDOM.node, anchorDOM.offset, domSel.anchorNode, domSel.anchorOffset);\n}\n\nfunction moveSelectionBlock(state, dir) {\n let { $anchor, $head } = state.selection;\n let $side = dir > 0 ? $anchor.max($head) : $anchor.min($head);\n let $start = !$side.parent.inlineContent ? $side : $side.depth ? state.doc.resolve(dir > 0 ? $side.after() : $side.before()) : null;\n return $start && Selection.findFrom($start, dir);\n}\nfunction apply(view, sel) {\n view.dispatch(view.state.tr.setSelection(sel).scrollIntoView());\n return true;\n}\nfunction selectHorizontally(view, dir, mods) {\n let sel = view.state.selection;\n if (sel instanceof TextSelection) {\n if (mods.indexOf(\"s\") > -1) {\n let { $head } = sel, node = $head.textOffset ? null : dir < 0 ? $head.nodeBefore : $head.nodeAfter;\n if (!node || node.isText || !node.isLeaf)\n return false;\n let $newHead = view.state.doc.resolve($head.pos + node.nodeSize * (dir < 0 ? -1 : 1));\n return apply(view, new TextSelection(sel.$anchor, $newHead));\n }\n else if (!sel.empty) {\n return false;\n }\n else if (view.endOfTextblock(dir > 0 ? \"forward\" : \"backward\")) {\n let next = moveSelectionBlock(view.state, dir);\n if (next && (next instanceof NodeSelection))\n return apply(view, next);\n return false;\n }\n else if (!(mac && mods.indexOf(\"m\") > -1)) {\n let $head = sel.$head, node = $head.textOffset ? null : dir < 0 ? $head.nodeBefore : $head.nodeAfter, desc;\n if (!node || node.isText)\n return false;\n let nodePos = dir < 0 ? $head.pos - node.nodeSize : $head.pos;\n if (!(node.isAtom || (desc = view.docView.descAt(nodePos)) && !desc.contentDOM))\n return false;\n if (NodeSelection.isSelectable(node)) {\n return apply(view, new NodeSelection(dir < 0 ? view.state.doc.resolve($head.pos - node.nodeSize) : $head));\n }\n else if (webkit) {\n // Chrome and Safari will introduce extra pointless cursor\n // positions around inline uneditable nodes, so we have to\n // take over and move the cursor past them (#937)\n return apply(view, new TextSelection(view.state.doc.resolve(dir < 0 ? nodePos : nodePos + node.nodeSize)));\n }\n else {\n return false;\n }\n }\n }\n else if (sel instanceof NodeSelection && sel.node.isInline) {\n return apply(view, new TextSelection(dir > 0 ? sel.$to : sel.$from));\n }\n else {\n let next = moveSelectionBlock(view.state, dir);\n if (next)\n return apply(view, next);\n return false;\n }\n}\nfunction nodeLen(node) {\n return node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length;\n}\nfunction isIgnorable(dom, dir) {\n let desc = dom.pmViewDesc;\n return desc && desc.size == 0 && (dir < 0 || dom.nextSibling || dom.nodeName != \"BR\");\n}\nfunction skipIgnoredNodes(view, dir) {\n return dir < 0 ? skipIgnoredNodesBefore(view) : skipIgnoredNodesAfter(view);\n}\n// Make sure the cursor isn't directly after one or more ignored\n// nodes, which will confuse the browser's cursor motion logic.\nfunction skipIgnoredNodesBefore(view) {\n let sel = view.domSelectionRange();\n let node = sel.focusNode, offset = sel.focusOffset;\n if (!node)\n return;\n let moveNode, moveOffset, force = false;\n // Gecko will do odd things when the selection is directly in front\n // of a non-editable node, so in that case, move it into the next\n // node if possible. Issue prosemirror/prosemirror#832.\n if (gecko && node.nodeType == 1 && offset < nodeLen(node) && isIgnorable(node.childNodes[offset], -1))\n force = true;\n for (;;) {\n if (offset > 0) {\n if (node.nodeType != 1) {\n break;\n }\n else {\n let before = node.childNodes[offset - 1];\n if (isIgnorable(before, -1)) {\n moveNode = node;\n moveOffset = --offset;\n }\n else if (before.nodeType == 3) {\n node = before;\n offset = node.nodeValue.length;\n }\n else\n break;\n }\n }\n else if (isBlockNode(node)) {\n break;\n }\n else {\n let prev = node.previousSibling;\n while (prev && isIgnorable(prev, -1)) {\n moveNode = node.parentNode;\n moveOffset = domIndex(prev);\n prev = prev.previousSibling;\n }\n if (!prev) {\n node = node.parentNode;\n if (node == view.dom)\n break;\n offset = 0;\n }\n else {\n node = prev;\n offset = nodeLen(node);\n }\n }\n }\n if (force)\n setSelFocus(view, node, offset);\n else if (moveNode)\n setSelFocus(view, moveNode, moveOffset);\n}\n// Make sure the cursor isn't directly before one or more ignored\n// nodes.\nfunction skipIgnoredNodesAfter(view) {\n let sel = view.domSelectionRange();\n let node = sel.focusNode, offset = sel.focusOffset;\n if (!node)\n return;\n let len = nodeLen(node);\n let moveNode, moveOffset;\n for (;;) {\n if (offset < len) {\n if (node.nodeType != 1)\n break;\n let after = node.childNodes[offset];\n if (isIgnorable(after, 1)) {\n moveNode = node;\n moveOffset = ++offset;\n }\n else\n break;\n }\n else if (isBlockNode(node)) {\n break;\n }\n else {\n let next = node.nextSibling;\n while (next && isIgnorable(next, 1)) {\n moveNode = next.parentNode;\n moveOffset = domIndex(next) + 1;\n next = next.nextSibling;\n }\n if (!next) {\n node = node.parentNode;\n if (node == view.dom)\n break;\n offset = len = 0;\n }\n else {\n node = next;\n offset = 0;\n len = nodeLen(node);\n }\n }\n }\n if (moveNode)\n setSelFocus(view, moveNode, moveOffset);\n}\nfunction isBlockNode(dom) {\n let desc = dom.pmViewDesc;\n return desc && desc.node && desc.node.isBlock;\n}\nfunction textNodeAfter(node, offset) {\n while (node && offset == node.childNodes.length && !hasBlockDesc(node)) {\n offset = domIndex(node) + 1;\n node = node.parentNode;\n }\n while (node && offset < node.childNodes.length) {\n let next = node.childNodes[offset];\n if (next.nodeType == 3)\n return next;\n if (next.nodeType == 1 && next.contentEditable == \"false\")\n break;\n node = next;\n offset = 0;\n }\n}\nfunction textNodeBefore(node, offset) {\n while (node && !offset && !hasBlockDesc(node)) {\n offset = domIndex(node);\n node = node.parentNode;\n }\n while (node && offset) {\n let next = node.childNodes[offset - 1];\n if (next.nodeType == 3)\n return next;\n if (next.nodeType == 1 && next.contentEditable == \"false\")\n break;\n node = next;\n offset = node.childNodes.length;\n }\n}\nfunction setSelFocus(view, node, offset) {\n if (node.nodeType != 3) {\n let before, after;\n if (after = textNodeAfter(node, offset)) {\n node = after;\n offset = 0;\n }\n else if (before = textNodeBefore(node, offset)) {\n node = before;\n offset = before.nodeValue.length;\n }\n }\n let sel = view.domSelection();\n if (!sel)\n return;\n if (selectionCollapsed(sel)) {\n let range = document.createRange();\n range.setEnd(node, offset);\n range.setStart(node, offset);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n else if (sel.extend) {\n sel.extend(node, offset);\n }\n view.domObserver.setCurSelection();\n let { state } = view;\n // If no state update ends up happening, reset the selection.\n setTimeout(() => {\n if (view.state == state)\n selectionToDOM(view);\n }, 50);\n}\nfunction findDirection(view, pos) {\n let $pos = view.state.doc.resolve(pos);\n if (!(chrome || windows) && $pos.parent.inlineContent) {\n let coords = view.coordsAtPos(pos);\n if (pos > $pos.start()) {\n let before = view.coordsAtPos(pos - 1);\n let mid = (before.top + before.bottom) / 2;\n if (mid > coords.top && mid < coords.bottom && Math.abs(before.left - coords.left) > 1)\n return before.left < coords.left ? \"ltr\" : \"rtl\";\n }\n if (pos < $pos.end()) {\n let after = view.coordsAtPos(pos + 1);\n let mid = (after.top + after.bottom) / 2;\n if (mid > coords.top && mid < coords.bottom && Math.abs(after.left - coords.left) > 1)\n return after.left > coords.left ? \"ltr\" : \"rtl\";\n }\n }\n let computed = getComputedStyle(view.dom).direction;\n return computed == \"rtl\" ? \"rtl\" : \"ltr\";\n}\n// Check whether vertical selection motion would involve node\n// selections. If so, apply it (if not, the result is left to the\n// browser)\nfunction selectVertically(view, dir, mods) {\n let sel = view.state.selection;\n if (sel instanceof TextSelection && !sel.empty || mods.indexOf(\"s\") > -1)\n return false;\n if (mac && mods.indexOf(\"m\") > -1)\n return false;\n let { $from, $to } = sel;\n if (!$from.parent.inlineContent || view.endOfTextblock(dir < 0 ? \"up\" : \"down\")) {\n let next = moveSelectionBlock(view.state, dir);\n if (next && (next instanceof NodeSelection))\n return apply(view, next);\n }\n if (!$from.parent.inlineContent) {\n let side = dir < 0 ? $from : $to;\n let beyond = sel instanceof AllSelection ? Selection.near(side, dir) : Selection.findFrom(side, dir);\n return beyond ? apply(view, beyond) : false;\n }\n return false;\n}\nfunction stopNativeHorizontalDelete(view, dir) {\n if (!(view.state.selection instanceof TextSelection))\n return true;\n let { $head, $anchor, empty } = view.state.selection;\n if (!$head.sameParent($anchor))\n return true;\n if (!empty)\n return false;\n if (view.endOfTextblock(dir > 0 ? \"forward\" : \"backward\"))\n return true;\n let nextNode = !$head.textOffset && (dir < 0 ? $head.nodeBefore : $head.nodeAfter);\n if (nextNode && !nextNode.isText) {\n let tr = view.state.tr;\n if (dir < 0)\n tr.delete($head.pos - nextNode.nodeSize, $head.pos);\n else\n tr.delete($head.pos, $head.pos + nextNode.nodeSize);\n view.dispatch(tr);\n return true;\n }\n return false;\n}\nfunction switchEditable(view, node, state) {\n view.domObserver.stop();\n node.contentEditable = state;\n view.domObserver.start();\n}\n// Issue #867 / #1090 / https://bugs.chromium.org/p/chromium/issues/detail?id=903821\n// In which Safari (and at some point in the past, Chrome) does really\n// wrong things when the down arrow is pressed when the cursor is\n// directly at the start of a textblock and has an uneditable node\n// after it\nfunction safariDownArrowBug(view) {\n if (!safari || view.state.selection.$head.parentOffset > 0)\n return false;\n let { focusNode, focusOffset } = view.domSelectionRange();\n if (focusNode && focusNode.nodeType == 1 && focusOffset == 0 &&\n focusNode.firstChild && focusNode.firstChild.contentEditable == \"false\") {\n let child = focusNode.firstChild;\n switchEditable(view, child, \"true\");\n setTimeout(() => switchEditable(view, child, \"false\"), 20);\n }\n return false;\n}\n// A backdrop key mapping used to make sure we always suppress keys\n// that have a dangerous default effect, even if the commands they are\n// bound to return false, and to make sure that cursor-motion keys\n// find a cursor (as opposed to a node selection) when pressed. For\n// cursor-motion keys, the code in the handlers also takes care of\n// block selections.\nfunction getMods(event) {\n let result = \"\";\n if (event.ctrlKey)\n result += \"c\";\n if (event.metaKey)\n result += \"m\";\n if (event.altKey)\n result += \"a\";\n if (event.shiftKey)\n result += \"s\";\n return result;\n}\nfunction captureKeyDown(view, event) {\n let code = event.keyCode, mods = getMods(event);\n if (code == 8 || (mac && code == 72 && mods == \"c\")) { // Backspace, Ctrl-h on Mac\n return stopNativeHorizontalDelete(view, -1) || skipIgnoredNodes(view, -1);\n }\n else if ((code == 46 && !event.shiftKey) || (mac && code == 68 && mods == \"c\")) { // Delete, Ctrl-d on Mac\n return stopNativeHorizontalDelete(view, 1) || skipIgnoredNodes(view, 1);\n }\n else if (code == 13 || code == 27) { // Enter, Esc\n return true;\n }\n else if (code == 37 || (mac && code == 66 && mods == \"c\")) { // Left arrow, Ctrl-b on Mac\n let dir = code == 37 ? (findDirection(view, view.state.selection.from) == \"ltr\" ? -1 : 1) : -1;\n return selectHorizontally(view, dir, mods) || skipIgnoredNodes(view, dir);\n }\n else if (code == 39 || (mac && code == 70 && mods == \"c\")) { // Right arrow, Ctrl-f on Mac\n let dir = code == 39 ? (findDirection(view, view.state.selection.from) == \"ltr\" ? 1 : -1) : 1;\n return selectHorizontally(view, dir, mods) || skipIgnoredNodes(view, dir);\n }\n else if (code == 38 || (mac && code == 80 && mods == \"c\")) { // Up arrow, Ctrl-p on Mac\n return selectVertically(view, -1, mods) || skipIgnoredNodes(view, -1);\n }\n else if (code == 40 || (mac && code == 78 && mods == \"c\")) { // Down arrow, Ctrl-n on Mac\n return safariDownArrowBug(view) || selectVertically(view, 1, mods) || skipIgnoredNodes(view, 1);\n }\n else if (mods == (mac ? \"m\" : \"c\") &&\n (code == 66 || code == 73 || code == 89 || code == 90)) { // Mod-[biyz]\n return true;\n }\n return false;\n}\n\nfunction serializeForClipboard(view, slice) {\n view.someProp(\"transformCopied\", f => { slice = f(slice, view); });\n let context = [], { content, openStart, openEnd } = slice;\n while (openStart > 1 && openEnd > 1 && content.childCount == 1 && content.firstChild.childCount == 1) {\n openStart--;\n openEnd--;\n let node = content.firstChild;\n context.push(node.type.name, node.attrs != node.type.defaultAttrs ? node.attrs : null);\n content = node.content;\n }\n let serializer = view.someProp(\"clipboardSerializer\") || DOMSerializer.fromSchema(view.state.schema);\n let doc = detachedDoc(), wrap = doc.createElement(\"div\");\n wrap.appendChild(serializer.serializeFragment(content, { document: doc }));\n let firstChild = wrap.firstChild, needsWrap, wrappers = 0;\n while (firstChild && firstChild.nodeType == 1 && (needsWrap = wrapMap[firstChild.nodeName.toLowerCase()])) {\n for (let i = needsWrap.length - 1; i >= 0; i--) {\n let wrapper = doc.createElement(needsWrap[i]);\n while (wrap.firstChild)\n wrapper.appendChild(wrap.firstChild);\n wrap.appendChild(wrapper);\n wrappers++;\n }\n firstChild = wrap.firstChild;\n }\n if (firstChild && firstChild.nodeType == 1)\n firstChild.setAttribute(\"data-pm-slice\", `${openStart} ${openEnd}${wrappers ? ` -${wrappers}` : \"\"} ${JSON.stringify(context)}`);\n let text = view.someProp(\"clipboardTextSerializer\", f => f(slice, view)) ||\n slice.content.textBetween(0, slice.content.size, \"\\n\\n\");\n return { dom: wrap, text, slice };\n}\n// Read a slice of content from the clipboard (or drop data).\nfunction parseFromClipboard(view, text, html, plainText, $context) {\n let inCode = $context.parent.type.spec.code;\n let dom, slice;\n if (!html && !text)\n return null;\n let asText = text && (plainText || inCode || !html);\n if (asText) {\n view.someProp(\"transformPastedText\", f => { text = f(text, inCode || plainText, view); });\n if (inCode)\n return text ? new Slice(Fragment.from(view.state.schema.text(text.replace(/\\r\\n?/g, \"\\n\"))), 0, 0) : Slice.empty;\n let parsed = view.someProp(\"clipboardTextParser\", f => f(text, $context, plainText, view));\n if (parsed) {\n slice = parsed;\n }\n else {\n let marks = $context.marks();\n let { schema } = view.state, serializer = DOMSerializer.fromSchema(schema);\n dom = document.createElement(\"div\");\n text.split(/(?:\\r\\n?|\\n)+/).forEach(block => {\n let p = dom.appendChild(document.createElement(\"p\"));\n if (block)\n p.appendChild(serializer.serializeNode(schema.text(block, marks)));\n });\n }\n }\n else {\n view.someProp(\"transformPastedHTML\", f => { html = f(html, view); });\n dom = readHTML(html);\n if (webkit)\n restoreReplacedSpaces(dom);\n }\n let contextNode = dom && dom.querySelector(\"[data-pm-slice]\");\n let sliceData = contextNode && /^(\\d+) (\\d+)(?: -(\\d+))? (.*)/.exec(contextNode.getAttribute(\"data-pm-slice\") || \"\");\n if (sliceData && sliceData[3])\n for (let i = +sliceData[3]; i > 0; i--) {\n let child = dom.firstChild;\n while (child && child.nodeType != 1)\n child = child.nextSibling;\n if (!child)\n break;\n dom = child;\n }\n if (!slice) {\n let parser = view.someProp(\"clipboardParser\") || view.someProp(\"domParser\") || DOMParser.fromSchema(view.state.schema);\n slice = parser.parseSlice(dom, {\n preserveWhitespace: !!(asText || sliceData),\n context: $context,\n ruleFromNode(dom) {\n if (dom.nodeName == \"BR\" && !dom.nextSibling &&\n dom.parentNode && !inlineParents.test(dom.parentNode.nodeName))\n return { ignore: true };\n return null;\n }\n });\n }\n if (sliceData) {\n slice = addContext(closeSlice(slice, +sliceData[1], +sliceData[2]), sliceData[4]);\n }\n else { // HTML wasn't created by ProseMirror. Make sure top-level siblings are coherent\n slice = Slice.maxOpen(normalizeSiblings(slice.content, $context), true);\n if (slice.openStart || slice.openEnd) {\n let openStart = 0, openEnd = 0;\n for (let node = slice.content.firstChild; openStart < slice.openStart && !node.type.spec.isolating; openStart++, node = node.firstChild) { }\n for (let node = slice.content.lastChild; openEnd < slice.openEnd && !node.type.spec.isolating; openEnd++, node = node.lastChild) { }\n slice = closeSlice(slice, openStart, openEnd);\n }\n }\n view.someProp(\"transformPasted\", f => { slice = f(slice, view); });\n return slice;\n}\nconst inlineParents = /^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;\n// Takes a slice parsed with parseSlice, which means there hasn't been\n// any content-expression checking done on the top nodes, tries to\n// find a parent node in the current context that might fit the nodes,\n// and if successful, rebuilds the slice so that it fits into that parent.\n//\n// This addresses the problem that Transform.replace expects a\n// coherent slice, and will fail to place a set of siblings that don't\n// fit anywhere in the schema.\nfunction normalizeSiblings(fragment, $context) {\n if (fragment.childCount < 2)\n return fragment;\n for (let d = $context.depth; d >= 0; d--) {\n let parent = $context.node(d);\n let match = parent.contentMatchAt($context.index(d));\n let lastWrap, result = [];\n fragment.forEach(node => {\n if (!result)\n return;\n let wrap = match.findWrapping(node.type), inLast;\n if (!wrap)\n return result = null;\n if (inLast = result.length && lastWrap.length && addToSibling(wrap, lastWrap, node, result[result.length - 1], 0)) {\n result[result.length - 1] = inLast;\n }\n else {\n if (result.length)\n result[result.length - 1] = closeRight(result[result.length - 1], lastWrap.length);\n let wrapped = withWrappers(node, wrap);\n result.push(wrapped);\n match = match.matchType(wrapped.type);\n lastWrap = wrap;\n }\n });\n if (result)\n return Fragment.from(result);\n }\n return fragment;\n}\nfunction withWrappers(node, wrap, from = 0) {\n for (let i = wrap.length - 1; i >= from; i--)\n node = wrap[i].create(null, Fragment.from(node));\n return node;\n}\n// Used to group adjacent nodes wrapped in similar parents by\n// normalizeSiblings into the same parent node\nfunction addToSibling(wrap, lastWrap, node, sibling, depth) {\n if (depth < wrap.length && depth < lastWrap.length && wrap[depth] == lastWrap[depth]) {\n let inner = addToSibling(wrap, lastWrap, node, sibling.lastChild, depth + 1);\n if (inner)\n return sibling.copy(sibling.content.replaceChild(sibling.childCount - 1, inner));\n let match = sibling.contentMatchAt(sibling.childCount);\n if (match.matchType(depth == wrap.length - 1 ? node.type : wrap[depth + 1]))\n return sibling.copy(sibling.content.append(Fragment.from(withWrappers(node, wrap, depth + 1))));\n }\n}\nfunction closeRight(node, depth) {\n if (depth == 0)\n return node;\n let fragment = node.content.replaceChild(node.childCount - 1, closeRight(node.lastChild, depth - 1));\n let fill = node.contentMatchAt(node.childCount).fillBefore(Fragment.empty, true);\n return node.copy(fragment.append(fill));\n}\nfunction closeRange(fragment, side, from, to, depth, openEnd) {\n let node = side < 0 ? fragment.firstChild : fragment.lastChild, inner = node.content;\n if (fragment.childCount > 1)\n openEnd = 0;\n if (depth < to - 1)\n inner = closeRange(inner, side, from, to, depth + 1, openEnd);\n if (depth >= from)\n inner = side < 0 ? node.contentMatchAt(0).fillBefore(inner, openEnd <= depth).append(inner)\n : inner.append(node.contentMatchAt(node.childCount).fillBefore(Fragment.empty, true));\n return fragment.replaceChild(side < 0 ? 0 : fragment.childCount - 1, node.copy(inner));\n}\nfunction closeSlice(slice, openStart, openEnd) {\n if (openStart < slice.openStart)\n slice = new Slice(closeRange(slice.content, -1, openStart, slice.openStart, 0, slice.openEnd), openStart, slice.openEnd);\n if (openEnd < slice.openEnd)\n slice = new Slice(closeRange(slice.content, 1, openEnd, slice.openEnd, 0, 0), slice.openStart, openEnd);\n return slice;\n}\n// Trick from jQuery -- some elements must be wrapped in other\n// elements for innerHTML to work. I.e. if you do `div.innerHTML =\n// \"..\"` the table cells are ignored.\nconst wrapMap = {\n thead: [\"table\"],\n tbody: [\"table\"],\n tfoot: [\"table\"],\n caption: [\"table\"],\n colgroup: [\"table\"],\n col: [\"table\", \"colgroup\"],\n tr: [\"table\", \"tbody\"],\n td: [\"table\", \"tbody\", \"tr\"],\n th: [\"table\", \"tbody\", \"tr\"]\n};\nlet _detachedDoc = null;\nfunction detachedDoc() {\n return _detachedDoc || (_detachedDoc = document.implementation.createHTMLDocument(\"title\"));\n}\nlet _policy = null;\nfunction maybeWrapTrusted(html) {\n let trustedTypes = window.trustedTypes;\n if (!trustedTypes)\n return html;\n // With the require-trusted-types-for CSP, Chrome will block\n // innerHTML, even on a detached document. This wraps the string in\n // a way that makes the browser allow us to use its parser again.\n if (!_policy)\n _policy = trustedTypes.createPolicy(\"ProseMirrorClipboard\", { createHTML: (s) => s });\n return _policy.createHTML(html);\n}\nfunction readHTML(html) {\n let metas = /^(\\s*]*>)*/.exec(html);\n if (metas)\n html = html.slice(metas[0].length);\n let elt = detachedDoc().createElement(\"div\");\n let firstTag = /<([a-z][^>\\s]+)/i.exec(html), wrap;\n if (wrap = firstTag && wrapMap[firstTag[1].toLowerCase()])\n html = wrap.map(n => \"<\" + n + \">\").join(\"\") + html + wrap.map(n => \"\").reverse().join(\"\");\n elt.innerHTML = maybeWrapTrusted(html);\n if (wrap)\n for (let i = 0; i < wrap.length; i++)\n elt = elt.querySelector(wrap[i]) || elt;\n return elt;\n}\n// Webkit browsers do some hard-to-predict replacement of regular\n// spaces with non-breaking spaces when putting content on the\n// clipboard. This tries to convert such non-breaking spaces (which\n// will be wrapped in a plain span on Chrome, a span with class\n// Apple-converted-space on Safari) back to regular spaces.\nfunction restoreReplacedSpaces(dom) {\n let nodes = dom.querySelectorAll(chrome ? \"span:not([class]):not([style])\" : \"span.Apple-converted-space\");\n for (let i = 0; i < nodes.length; i++) {\n let node = nodes[i];\n if (node.childNodes.length == 1 && node.textContent == \"\\u00a0\" && node.parentNode)\n node.parentNode.replaceChild(dom.ownerDocument.createTextNode(\" \"), node);\n }\n}\nfunction addContext(slice, context) {\n if (!slice.size)\n return slice;\n let schema = slice.content.firstChild.type.schema, array;\n try {\n array = JSON.parse(context);\n }\n catch (e) {\n return slice;\n }\n let { content, openStart, openEnd } = slice;\n for (let i = array.length - 2; i >= 0; i -= 2) {\n let type = schema.nodes[array[i]];\n if (!type || type.hasRequiredAttrs())\n break;\n content = Fragment.from(type.create(array[i + 1], content));\n openStart++;\n openEnd++;\n }\n return new Slice(content, openStart, openEnd);\n}\n\n// A collection of DOM events that occur within the editor, and callback functions\n// to invoke when the event fires.\nconst handlers = {};\nconst editHandlers = {};\nconst passiveHandlers = { touchstart: true, touchmove: true };\nclass InputState {\n constructor() {\n this.shiftKey = false;\n this.mouseDown = null;\n this.lastKeyCode = null;\n this.lastKeyCodeTime = 0;\n this.lastClick = { time: 0, x: 0, y: 0, type: \"\" };\n this.lastSelectionOrigin = null;\n this.lastSelectionTime = 0;\n this.lastIOSEnter = 0;\n this.lastIOSEnterFallbackTimeout = -1;\n this.lastFocus = 0;\n this.lastTouch = 0;\n this.lastChromeDelete = 0;\n this.composing = false;\n this.compositionNode = null;\n this.composingTimeout = -1;\n this.compositionNodes = [];\n this.compositionEndedAt = -2e8;\n this.compositionID = 1;\n // Set to a composition ID when there are pending changes at compositionend\n this.compositionPendingChanges = 0;\n this.domChangeCount = 0;\n this.eventHandlers = Object.create(null);\n this.hideSelectionGuard = null;\n }\n}\nfunction initInput(view) {\n for (let event in handlers) {\n let handler = handlers[event];\n view.dom.addEventListener(event, view.input.eventHandlers[event] = (event) => {\n if (eventBelongsToView(view, event) && !runCustomHandler(view, event) &&\n (view.editable || !(event.type in editHandlers)))\n handler(view, event);\n }, passiveHandlers[event] ? { passive: true } : undefined);\n }\n // On Safari, for reasons beyond my understanding, adding an input\n // event handler makes an issue where the composition vanishes when\n // you press enter go away.\n if (safari)\n view.dom.addEventListener(\"input\", () => null);\n ensureListeners(view);\n}\nfunction setSelectionOrigin(view, origin) {\n view.input.lastSelectionOrigin = origin;\n view.input.lastSelectionTime = Date.now();\n}\nfunction destroyInput(view) {\n view.domObserver.stop();\n for (let type in view.input.eventHandlers)\n view.dom.removeEventListener(type, view.input.eventHandlers[type]);\n clearTimeout(view.input.composingTimeout);\n clearTimeout(view.input.lastIOSEnterFallbackTimeout);\n}\nfunction ensureListeners(view) {\n view.someProp(\"handleDOMEvents\", currentHandlers => {\n for (let type in currentHandlers)\n if (!view.input.eventHandlers[type])\n view.dom.addEventListener(type, view.input.eventHandlers[type] = event => runCustomHandler(view, event));\n });\n}\nfunction runCustomHandler(view, event) {\n return view.someProp(\"handleDOMEvents\", handlers => {\n let handler = handlers[event.type];\n return handler ? handler(view, event) || event.defaultPrevented : false;\n });\n}\nfunction eventBelongsToView(view, event) {\n if (!event.bubbles)\n return true;\n if (event.defaultPrevented)\n return false;\n for (let node = event.target; node != view.dom; node = node.parentNode)\n if (!node || node.nodeType == 11 ||\n (node.pmViewDesc && node.pmViewDesc.stopEvent(event)))\n return false;\n return true;\n}\nfunction dispatchEvent(view, event) {\n if (!runCustomHandler(view, event) && handlers[event.type] &&\n (view.editable || !(event.type in editHandlers)))\n handlers[event.type](view, event);\n}\neditHandlers.keydown = (view, _event) => {\n let event = _event;\n view.input.shiftKey = event.keyCode == 16 || event.shiftKey;\n if (inOrNearComposition(view, event))\n return;\n view.input.lastKeyCode = event.keyCode;\n view.input.lastKeyCodeTime = Date.now();\n // Suppress enter key events on Chrome Android, because those tend\n // to be part of a confused sequence of composition events fired,\n // and handling them eagerly tends to corrupt the input.\n if (android && chrome && event.keyCode == 13)\n return;\n if (event.keyCode != 229)\n view.domObserver.forceFlush();\n // On iOS, if we preventDefault enter key presses, the virtual\n // keyboard gets confused. So the hack here is to set a flag that\n // makes the DOM change code recognize that what just happens should\n // be replaced by whatever the Enter key handlers do.\n if (ios && event.keyCode == 13 && !event.ctrlKey && !event.altKey && !event.metaKey) {\n let now = Date.now();\n view.input.lastIOSEnter = now;\n view.input.lastIOSEnterFallbackTimeout = setTimeout(() => {\n if (view.input.lastIOSEnter == now) {\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(13, \"Enter\")));\n view.input.lastIOSEnter = 0;\n }\n }, 200);\n }\n else if (view.someProp(\"handleKeyDown\", f => f(view, event)) || captureKeyDown(view, event)) {\n event.preventDefault();\n }\n else {\n setSelectionOrigin(view, \"key\");\n }\n};\neditHandlers.keyup = (view, event) => {\n if (event.keyCode == 16)\n view.input.shiftKey = false;\n};\neditHandlers.keypress = (view, _event) => {\n let event = _event;\n if (inOrNearComposition(view, event) || !event.charCode ||\n event.ctrlKey && !event.altKey || mac && event.metaKey)\n return;\n if (view.someProp(\"handleKeyPress\", f => f(view, event))) {\n event.preventDefault();\n return;\n }\n let sel = view.state.selection;\n if (!(sel instanceof TextSelection) || !sel.$from.sameParent(sel.$to)) {\n let text = String.fromCharCode(event.charCode);\n if (!/[\\r\\n]/.test(text) && !view.someProp(\"handleTextInput\", f => f(view, sel.$from.pos, sel.$to.pos, text)))\n view.dispatch(view.state.tr.insertText(text).scrollIntoView());\n event.preventDefault();\n }\n};\nfunction eventCoords(event) { return { left: event.clientX, top: event.clientY }; }\nfunction isNear(event, click) {\n let dx = click.x - event.clientX, dy = click.y - event.clientY;\n return dx * dx + dy * dy < 100;\n}\nfunction runHandlerOnContext(view, propName, pos, inside, event) {\n if (inside == -1)\n return false;\n let $pos = view.state.doc.resolve(inside);\n for (let i = $pos.depth + 1; i > 0; i--) {\n if (view.someProp(propName, f => i > $pos.depth ? f(view, pos, $pos.nodeAfter, $pos.before(i), event, true)\n : f(view, pos, $pos.node(i), $pos.before(i), event, false)))\n return true;\n }\n return false;\n}\nfunction updateSelection(view, selection, origin) {\n if (!view.focused)\n view.focus();\n if (view.state.selection.eq(selection))\n return;\n let tr = view.state.tr.setSelection(selection);\n if (origin == \"pointer\")\n tr.setMeta(\"pointer\", true);\n view.dispatch(tr);\n}\nfunction selectClickedLeaf(view, inside) {\n if (inside == -1)\n return false;\n let $pos = view.state.doc.resolve(inside), node = $pos.nodeAfter;\n if (node && node.isAtom && NodeSelection.isSelectable(node)) {\n updateSelection(view, new NodeSelection($pos), \"pointer\");\n return true;\n }\n return false;\n}\nfunction selectClickedNode(view, inside) {\n if (inside == -1)\n return false;\n let sel = view.state.selection, selectedNode, selectAt;\n if (sel instanceof NodeSelection)\n selectedNode = sel.node;\n let $pos = view.state.doc.resolve(inside);\n for (let i = $pos.depth + 1; i > 0; i--) {\n let node = i > $pos.depth ? $pos.nodeAfter : $pos.node(i);\n if (NodeSelection.isSelectable(node)) {\n if (selectedNode && sel.$from.depth > 0 &&\n i >= sel.$from.depth && $pos.before(sel.$from.depth + 1) == sel.$from.pos)\n selectAt = $pos.before(sel.$from.depth);\n else\n selectAt = $pos.before(i);\n break;\n }\n }\n if (selectAt != null) {\n updateSelection(view, NodeSelection.create(view.state.doc, selectAt), \"pointer\");\n return true;\n }\n else {\n return false;\n }\n}\nfunction handleSingleClick(view, pos, inside, event, selectNode) {\n return runHandlerOnContext(view, \"handleClickOn\", pos, inside, event) ||\n view.someProp(\"handleClick\", f => f(view, pos, event)) ||\n (selectNode ? selectClickedNode(view, inside) : selectClickedLeaf(view, inside));\n}\nfunction handleDoubleClick(view, pos, inside, event) {\n return runHandlerOnContext(view, \"handleDoubleClickOn\", pos, inside, event) ||\n view.someProp(\"handleDoubleClick\", f => f(view, pos, event));\n}\nfunction handleTripleClick(view, pos, inside, event) {\n return runHandlerOnContext(view, \"handleTripleClickOn\", pos, inside, event) ||\n view.someProp(\"handleTripleClick\", f => f(view, pos, event)) ||\n defaultTripleClick(view, inside, event);\n}\nfunction defaultTripleClick(view, inside, event) {\n if (event.button != 0)\n return false;\n let doc = view.state.doc;\n if (inside == -1) {\n if (doc.inlineContent) {\n updateSelection(view, TextSelection.create(doc, 0, doc.content.size), \"pointer\");\n return true;\n }\n return false;\n }\n let $pos = doc.resolve(inside);\n for (let i = $pos.depth + 1; i > 0; i--) {\n let node = i > $pos.depth ? $pos.nodeAfter : $pos.node(i);\n let nodePos = $pos.before(i);\n if (node.inlineContent)\n updateSelection(view, TextSelection.create(doc, nodePos + 1, nodePos + 1 + node.content.size), \"pointer\");\n else if (NodeSelection.isSelectable(node))\n updateSelection(view, NodeSelection.create(doc, nodePos), \"pointer\");\n else\n continue;\n return true;\n }\n}\nfunction forceDOMFlush(view) {\n return endComposition(view);\n}\nconst selectNodeModifier = mac ? \"metaKey\" : \"ctrlKey\";\nhandlers.mousedown = (view, _event) => {\n let event = _event;\n view.input.shiftKey = event.shiftKey;\n let flushed = forceDOMFlush(view);\n let now = Date.now(), type = \"singleClick\";\n if (now - view.input.lastClick.time < 500 && isNear(event, view.input.lastClick) && !event[selectNodeModifier]) {\n if (view.input.lastClick.type == \"singleClick\")\n type = \"doubleClick\";\n else if (view.input.lastClick.type == \"doubleClick\")\n type = \"tripleClick\";\n }\n view.input.lastClick = { time: now, x: event.clientX, y: event.clientY, type };\n let pos = view.posAtCoords(eventCoords(event));\n if (!pos)\n return;\n if (type == \"singleClick\") {\n if (view.input.mouseDown)\n view.input.mouseDown.done();\n view.input.mouseDown = new MouseDown(view, pos, event, !!flushed);\n }\n else if ((type == \"doubleClick\" ? handleDoubleClick : handleTripleClick)(view, pos.pos, pos.inside, event)) {\n event.preventDefault();\n }\n else {\n setSelectionOrigin(view, \"pointer\");\n }\n};\nclass MouseDown {\n constructor(view, pos, event, flushed) {\n this.view = view;\n this.pos = pos;\n this.event = event;\n this.flushed = flushed;\n this.delayedSelectionSync = false;\n this.mightDrag = null;\n this.startDoc = view.state.doc;\n this.selectNode = !!event[selectNodeModifier];\n this.allowDefault = event.shiftKey;\n let targetNode, targetPos;\n if (pos.inside > -1) {\n targetNode = view.state.doc.nodeAt(pos.inside);\n targetPos = pos.inside;\n }\n else {\n let $pos = view.state.doc.resolve(pos.pos);\n targetNode = $pos.parent;\n targetPos = $pos.depth ? $pos.before() : 0;\n }\n const target = flushed ? null : event.target;\n const targetDesc = target ? view.docView.nearestDesc(target, true) : null;\n this.target = targetDesc && targetDesc.dom.nodeType == 1 ? targetDesc.dom : null;\n let { selection } = view.state;\n if (event.button == 0 &&\n targetNode.type.spec.draggable && targetNode.type.spec.selectable !== false ||\n selection instanceof NodeSelection && selection.from <= targetPos && selection.to > targetPos)\n this.mightDrag = {\n node: targetNode,\n pos: targetPos,\n addAttr: !!(this.target && !this.target.draggable),\n setUneditable: !!(this.target && gecko && !this.target.hasAttribute(\"contentEditable\"))\n };\n if (this.target && this.mightDrag && (this.mightDrag.addAttr || this.mightDrag.setUneditable)) {\n this.view.domObserver.stop();\n if (this.mightDrag.addAttr)\n this.target.draggable = true;\n if (this.mightDrag.setUneditable)\n setTimeout(() => {\n if (this.view.input.mouseDown == this)\n this.target.setAttribute(\"contentEditable\", \"false\");\n }, 20);\n this.view.domObserver.start();\n }\n view.root.addEventListener(\"mouseup\", this.up = this.up.bind(this));\n view.root.addEventListener(\"mousemove\", this.move = this.move.bind(this));\n setSelectionOrigin(view, \"pointer\");\n }\n done() {\n this.view.root.removeEventListener(\"mouseup\", this.up);\n this.view.root.removeEventListener(\"mousemove\", this.move);\n if (this.mightDrag && this.target) {\n this.view.domObserver.stop();\n if (this.mightDrag.addAttr)\n this.target.removeAttribute(\"draggable\");\n if (this.mightDrag.setUneditable)\n this.target.removeAttribute(\"contentEditable\");\n this.view.domObserver.start();\n }\n if (this.delayedSelectionSync)\n setTimeout(() => selectionToDOM(this.view));\n this.view.input.mouseDown = null;\n }\n up(event) {\n this.done();\n if (!this.view.dom.contains(event.target))\n return;\n let pos = this.pos;\n if (this.view.state.doc != this.startDoc)\n pos = this.view.posAtCoords(eventCoords(event));\n this.updateAllowDefault(event);\n if (this.allowDefault || !pos) {\n setSelectionOrigin(this.view, \"pointer\");\n }\n else if (handleSingleClick(this.view, pos.pos, pos.inside, event, this.selectNode)) {\n event.preventDefault();\n }\n else if (event.button == 0 &&\n (this.flushed ||\n // Safari ignores clicks on draggable elements\n (safari && this.mightDrag && !this.mightDrag.node.isAtom) ||\n // Chrome will sometimes treat a node selection as a\n // cursor, but still report that the node is selected\n // when asked through getSelection. You'll then get a\n // situation where clicking at the point where that\n // (hidden) cursor is doesn't change the selection, and\n // thus doesn't get a reaction from ProseMirror. This\n // works around that.\n (chrome && !this.view.state.selection.visible &&\n Math.min(Math.abs(pos.pos - this.view.state.selection.from), Math.abs(pos.pos - this.view.state.selection.to)) <= 2))) {\n updateSelection(this.view, Selection.near(this.view.state.doc.resolve(pos.pos)), \"pointer\");\n event.preventDefault();\n }\n else {\n setSelectionOrigin(this.view, \"pointer\");\n }\n }\n move(event) {\n this.updateAllowDefault(event);\n setSelectionOrigin(this.view, \"pointer\");\n if (event.buttons == 0)\n this.done();\n }\n updateAllowDefault(event) {\n if (!this.allowDefault && (Math.abs(this.event.x - event.clientX) > 4 ||\n Math.abs(this.event.y - event.clientY) > 4))\n this.allowDefault = true;\n }\n}\nhandlers.touchstart = view => {\n view.input.lastTouch = Date.now();\n forceDOMFlush(view);\n setSelectionOrigin(view, \"pointer\");\n};\nhandlers.touchmove = view => {\n view.input.lastTouch = Date.now();\n setSelectionOrigin(view, \"pointer\");\n};\nhandlers.contextmenu = view => forceDOMFlush(view);\nfunction inOrNearComposition(view, event) {\n if (view.composing)\n return true;\n // See https://www.stum.de/2016/06/24/handling-ime-events-in-javascript/.\n // On Japanese input method editors (IMEs), the Enter key is used to confirm character\n // selection. On Safari, when Enter is pressed, compositionend and keydown events are\n // emitted. The keydown event triggers newline insertion, which we don't want.\n // This method returns true if the keydown event should be ignored.\n // We only ignore it once, as pressing Enter a second time *should* insert a newline.\n // Furthermore, the keydown event timestamp must be close to the compositionEndedAt timestamp.\n // This guards against the case where compositionend is triggered without the keyboard\n // (e.g. character confirmation may be done with the mouse), and keydown is triggered\n // afterwards- we wouldn't want to ignore the keydown event in this case.\n if (safari && Math.abs(event.timeStamp - view.input.compositionEndedAt) < 500) {\n view.input.compositionEndedAt = -2e8;\n return true;\n }\n return false;\n}\n// Drop active composition after 5 seconds of inactivity on Android\nconst timeoutComposition = android ? 5000 : -1;\neditHandlers.compositionstart = editHandlers.compositionupdate = view => {\n if (!view.composing) {\n view.domObserver.flush();\n let { state } = view, $pos = state.selection.$to;\n if (state.selection instanceof TextSelection &&\n (state.storedMarks ||\n (!$pos.textOffset && $pos.parentOffset && $pos.nodeBefore.marks.some(m => m.type.spec.inclusive === false)))) {\n // Need to wrap the cursor in mark nodes different from the ones in the DOM context\n view.markCursor = view.state.storedMarks || $pos.marks();\n endComposition(view, true);\n view.markCursor = null;\n }\n else {\n endComposition(view, !state.selection.empty);\n // In firefox, if the cursor is after but outside a marked node,\n // the inserted text won't inherit the marks. So this moves it\n // inside if necessary.\n if (gecko && state.selection.empty && $pos.parentOffset && !$pos.textOffset && $pos.nodeBefore.marks.length) {\n let sel = view.domSelectionRange();\n for (let node = sel.focusNode, offset = sel.focusOffset; node && node.nodeType == 1 && offset != 0;) {\n let before = offset < 0 ? node.lastChild : node.childNodes[offset - 1];\n if (!before)\n break;\n if (before.nodeType == 3) {\n let sel = view.domSelection();\n if (sel)\n sel.collapse(before, before.nodeValue.length);\n break;\n }\n else {\n node = before;\n offset = -1;\n }\n }\n }\n }\n view.input.composing = true;\n }\n scheduleComposeEnd(view, timeoutComposition);\n};\neditHandlers.compositionend = (view, event) => {\n if (view.composing) {\n view.input.composing = false;\n view.input.compositionEndedAt = event.timeStamp;\n view.input.compositionPendingChanges = view.domObserver.pendingRecords().length ? view.input.compositionID : 0;\n view.input.compositionNode = null;\n if (view.input.compositionPendingChanges)\n Promise.resolve().then(() => view.domObserver.flush());\n view.input.compositionID++;\n scheduleComposeEnd(view, 20);\n }\n};\nfunction scheduleComposeEnd(view, delay) {\n clearTimeout(view.input.composingTimeout);\n if (delay > -1)\n view.input.composingTimeout = setTimeout(() => endComposition(view), delay);\n}\nfunction clearComposition(view) {\n if (view.composing) {\n view.input.composing = false;\n view.input.compositionEndedAt = timestampFromCustomEvent();\n }\n while (view.input.compositionNodes.length > 0)\n view.input.compositionNodes.pop().markParentsDirty();\n}\nfunction findCompositionNode(view) {\n let sel = view.domSelectionRange();\n if (!sel.focusNode)\n return null;\n let textBefore = textNodeBefore$1(sel.focusNode, sel.focusOffset);\n let textAfter = textNodeAfter$1(sel.focusNode, sel.focusOffset);\n if (textBefore && textAfter && textBefore != textAfter) {\n let descAfter = textAfter.pmViewDesc, lastChanged = view.domObserver.lastChangedTextNode;\n if (textBefore == lastChanged || textAfter == lastChanged)\n return lastChanged;\n if (!descAfter || !descAfter.isText(textAfter.nodeValue)) {\n return textAfter;\n }\n else if (view.input.compositionNode == textAfter) {\n let descBefore = textBefore.pmViewDesc;\n if (!(!descBefore || !descBefore.isText(textBefore.nodeValue)))\n return textAfter;\n }\n }\n return textBefore || textAfter;\n}\nfunction timestampFromCustomEvent() {\n let event = document.createEvent(\"Event\");\n event.initEvent(\"event\", true, true);\n return event.timeStamp;\n}\n/**\n@internal\n*/\nfunction endComposition(view, restarting = false) {\n if (android && view.domObserver.flushingSoon >= 0)\n return;\n view.domObserver.forceFlush();\n clearComposition(view);\n if (restarting || view.docView && view.docView.dirty) {\n let sel = selectionFromDOM(view);\n if (sel && !sel.eq(view.state.selection))\n view.dispatch(view.state.tr.setSelection(sel));\n else if ((view.markCursor || restarting) && !view.state.selection.empty)\n view.dispatch(view.state.tr.deleteSelection());\n else\n view.updateState(view.state);\n return true;\n }\n return false;\n}\nfunction captureCopy(view, dom) {\n // The extra wrapper is somehow necessary on IE/Edge to prevent the\n // content from being mangled when it is put onto the clipboard\n if (!view.dom.parentNode)\n return;\n let wrap = view.dom.parentNode.appendChild(document.createElement(\"div\"));\n wrap.appendChild(dom);\n wrap.style.cssText = \"position: fixed; left: -10000px; top: 10px\";\n let sel = getSelection(), range = document.createRange();\n range.selectNodeContents(dom);\n // Done because IE will fire a selectionchange moving the selection\n // to its start when removeAllRanges is called and the editor still\n // has focus (which will mess up the editor's selection state).\n view.dom.blur();\n sel.removeAllRanges();\n sel.addRange(range);\n setTimeout(() => {\n if (wrap.parentNode)\n wrap.parentNode.removeChild(wrap);\n view.focus();\n }, 50);\n}\n// This is very crude, but unfortunately both these browsers _pretend_\n// that they have a clipboard API—all the objects and methods are\n// there, they just don't work, and they are hard to test.\nconst brokenClipboardAPI = (ie && ie_version < 15) ||\n (ios && webkit_version < 604);\nhandlers.copy = editHandlers.cut = (view, _event) => {\n let event = _event;\n let sel = view.state.selection, cut = event.type == \"cut\";\n if (sel.empty)\n return;\n // IE and Edge's clipboard interface is completely broken\n let data = brokenClipboardAPI ? null : event.clipboardData;\n let slice = sel.content(), { dom, text } = serializeForClipboard(view, slice);\n if (data) {\n event.preventDefault();\n data.clearData();\n data.setData(\"text/html\", dom.innerHTML);\n data.setData(\"text/plain\", text);\n }\n else {\n captureCopy(view, dom);\n }\n if (cut)\n view.dispatch(view.state.tr.deleteSelection().scrollIntoView().setMeta(\"uiEvent\", \"cut\"));\n};\nfunction sliceSingleNode(slice) {\n return slice.openStart == 0 && slice.openEnd == 0 && slice.content.childCount == 1 ? slice.content.firstChild : null;\n}\nfunction capturePaste(view, event) {\n if (!view.dom.parentNode)\n return;\n let plainText = view.input.shiftKey || view.state.selection.$from.parent.type.spec.code;\n let target = view.dom.parentNode.appendChild(document.createElement(plainText ? \"textarea\" : \"div\"));\n if (!plainText)\n target.contentEditable = \"true\";\n target.style.cssText = \"position: fixed; left: -10000px; top: 10px\";\n target.focus();\n let plain = view.input.shiftKey && view.input.lastKeyCode != 45;\n setTimeout(() => {\n view.focus();\n if (target.parentNode)\n target.parentNode.removeChild(target);\n if (plainText)\n doPaste(view, target.value, null, plain, event);\n else\n doPaste(view, target.textContent, target.innerHTML, plain, event);\n }, 50);\n}\nfunction doPaste(view, text, html, preferPlain, event) {\n let slice = parseFromClipboard(view, text, html, preferPlain, view.state.selection.$from);\n if (view.someProp(\"handlePaste\", f => f(view, event, slice || Slice.empty)))\n return true;\n if (!slice)\n return false;\n let singleNode = sliceSingleNode(slice);\n let tr = singleNode\n ? view.state.tr.replaceSelectionWith(singleNode, preferPlain)\n : view.state.tr.replaceSelection(slice);\n view.dispatch(tr.scrollIntoView().setMeta(\"paste\", true).setMeta(\"uiEvent\", \"paste\"));\n return true;\n}\nfunction getText(clipboardData) {\n let text = clipboardData.getData(\"text/plain\") || clipboardData.getData(\"Text\");\n if (text)\n return text;\n let uris = clipboardData.getData(\"text/uri-list\");\n return uris ? uris.replace(/\\r?\\n/g, \" \") : \"\";\n}\neditHandlers.paste = (view, _event) => {\n let event = _event;\n // Handling paste from JavaScript during composition is very poorly\n // handled by browsers, so as a dodgy but preferable kludge, we just\n // let the browser do its native thing there, except on Android,\n // where the editor is almost always composing.\n if (view.composing && !android)\n return;\n let data = brokenClipboardAPI ? null : event.clipboardData;\n let plain = view.input.shiftKey && view.input.lastKeyCode != 45;\n if (data && doPaste(view, getText(data), data.getData(\"text/html\"), plain, event))\n event.preventDefault();\n else\n capturePaste(view, event);\n};\nclass Dragging {\n constructor(slice, move, node) {\n this.slice = slice;\n this.move = move;\n this.node = node;\n }\n}\nconst dragCopyModifier = mac ? \"altKey\" : \"ctrlKey\";\nhandlers.dragstart = (view, _event) => {\n let event = _event;\n let mouseDown = view.input.mouseDown;\n if (mouseDown)\n mouseDown.done();\n if (!event.dataTransfer)\n return;\n let sel = view.state.selection;\n let pos = sel.empty ? null : view.posAtCoords(eventCoords(event));\n let node;\n if (pos && pos.pos >= sel.from && pos.pos <= (sel instanceof NodeSelection ? sel.to - 1 : sel.to)) ;\n else if (mouseDown && mouseDown.mightDrag) {\n node = NodeSelection.create(view.state.doc, mouseDown.mightDrag.pos);\n }\n else if (event.target && event.target.nodeType == 1) {\n let desc = view.docView.nearestDesc(event.target, true);\n if (desc && desc.node.type.spec.draggable && desc != view.docView)\n node = NodeSelection.create(view.state.doc, desc.posBefore);\n }\n let draggedSlice = (node || view.state.selection).content();\n let { dom, text, slice } = serializeForClipboard(view, draggedSlice);\n // Pre-120 Chrome versions clear files when calling `clearData` (#1472)\n if (!event.dataTransfer.files.length || !chrome || chrome_version > 120)\n event.dataTransfer.clearData();\n event.dataTransfer.setData(brokenClipboardAPI ? \"Text\" : \"text/html\", dom.innerHTML);\n // See https://github.com/ProseMirror/prosemirror/issues/1156\n event.dataTransfer.effectAllowed = \"copyMove\";\n if (!brokenClipboardAPI)\n event.dataTransfer.setData(\"text/plain\", text);\n view.dragging = new Dragging(slice, !event[dragCopyModifier], node);\n};\nhandlers.dragend = view => {\n let dragging = view.dragging;\n window.setTimeout(() => {\n if (view.dragging == dragging)\n view.dragging = null;\n }, 50);\n};\neditHandlers.dragover = editHandlers.dragenter = (_, e) => e.preventDefault();\neditHandlers.drop = (view, _event) => {\n let event = _event;\n let dragging = view.dragging;\n view.dragging = null;\n if (!event.dataTransfer)\n return;\n let eventPos = view.posAtCoords(eventCoords(event));\n if (!eventPos)\n return;\n let $mouse = view.state.doc.resolve(eventPos.pos);\n let slice = dragging && dragging.slice;\n if (slice) {\n view.someProp(\"transformPasted\", f => { slice = f(slice, view); });\n }\n else {\n slice = parseFromClipboard(view, getText(event.dataTransfer), brokenClipboardAPI ? null : event.dataTransfer.getData(\"text/html\"), false, $mouse);\n }\n let move = !!(dragging && !event[dragCopyModifier]);\n if (view.someProp(\"handleDrop\", f => f(view, event, slice || Slice.empty, move))) {\n event.preventDefault();\n return;\n }\n if (!slice)\n return;\n event.preventDefault();\n let insertPos = slice ? dropPoint(view.state.doc, $mouse.pos, slice) : $mouse.pos;\n if (insertPos == null)\n insertPos = $mouse.pos;\n let tr = view.state.tr;\n if (move) {\n let { node } = dragging;\n if (node)\n node.replace(tr);\n else\n tr.deleteSelection();\n }\n let pos = tr.mapping.map(insertPos);\n let isNode = slice.openStart == 0 && slice.openEnd == 0 && slice.content.childCount == 1;\n let beforeInsert = tr.doc;\n if (isNode)\n tr.replaceRangeWith(pos, pos, slice.content.firstChild);\n else\n tr.replaceRange(pos, pos, slice);\n if (tr.doc.eq(beforeInsert))\n return;\n let $pos = tr.doc.resolve(pos);\n if (isNode && NodeSelection.isSelectable(slice.content.firstChild) &&\n $pos.nodeAfter && $pos.nodeAfter.sameMarkup(slice.content.firstChild)) {\n tr.setSelection(new NodeSelection($pos));\n }\n else {\n let end = tr.mapping.map(insertPos);\n tr.mapping.maps[tr.mapping.maps.length - 1].forEach((_from, _to, _newFrom, newTo) => end = newTo);\n tr.setSelection(selectionBetween(view, $pos, tr.doc.resolve(end)));\n }\n view.focus();\n view.dispatch(tr.setMeta(\"uiEvent\", \"drop\"));\n};\nhandlers.focus = view => {\n view.input.lastFocus = Date.now();\n if (!view.focused) {\n view.domObserver.stop();\n view.dom.classList.add(\"ProseMirror-focused\");\n view.domObserver.start();\n view.focused = true;\n setTimeout(() => {\n if (view.docView && view.hasFocus() && !view.domObserver.currentSelection.eq(view.domSelectionRange()))\n selectionToDOM(view);\n }, 20);\n }\n};\nhandlers.blur = (view, _event) => {\n let event = _event;\n if (view.focused) {\n view.domObserver.stop();\n view.dom.classList.remove(\"ProseMirror-focused\");\n view.domObserver.start();\n if (event.relatedTarget && view.dom.contains(event.relatedTarget))\n view.domObserver.currentSelection.clear();\n view.focused = false;\n }\n};\nhandlers.beforeinput = (view, _event) => {\n let event = _event;\n // We should probably do more with beforeinput events, but support\n // is so spotty that I'm still waiting to see where they are going.\n // Very specific hack to deal with backspace sometimes failing on\n // Chrome Android when after an uneditable node.\n if (chrome && android && event.inputType == \"deleteContentBackward\") {\n view.domObserver.flushSoon();\n let { domChangeCount } = view.input;\n setTimeout(() => {\n if (view.input.domChangeCount != domChangeCount)\n return; // Event already had some effect\n // This bug tends to close the virtual keyboard, so we refocus\n view.dom.blur();\n view.focus();\n if (view.someProp(\"handleKeyDown\", f => f(view, keyEvent(8, \"Backspace\"))))\n return;\n let { $cursor } = view.state.selection;\n // Crude approximation of backspace behavior when no command handled it\n if ($cursor && $cursor.pos > 0)\n view.dispatch(view.state.tr.delete($cursor.pos - 1, $cursor.pos).scrollIntoView());\n }, 50);\n }\n};\n// Make sure all handlers get registered\nfor (let prop in editHandlers)\n handlers[prop] = editHandlers[prop];\n\nfunction compareObjs(a, b) {\n if (a == b)\n return true;\n for (let p in a)\n if (a[p] !== b[p])\n return false;\n for (let p in b)\n if (!(p in a))\n return false;\n return true;\n}\nclass WidgetType {\n constructor(toDOM, spec) {\n this.toDOM = toDOM;\n this.spec = spec || noSpec;\n this.side = this.spec.side || 0;\n }\n map(mapping, span, offset, oldOffset) {\n let { pos, deleted } = mapping.mapResult(span.from + oldOffset, this.side < 0 ? -1 : 1);\n return deleted ? null : new Decoration(pos - offset, pos - offset, this);\n }\n valid() { return true; }\n eq(other) {\n return this == other ||\n (other instanceof WidgetType &&\n (this.spec.key && this.spec.key == other.spec.key ||\n this.toDOM == other.toDOM && compareObjs(this.spec, other.spec)));\n }\n destroy(node) {\n if (this.spec.destroy)\n this.spec.destroy(node);\n }\n}\nclass InlineType {\n constructor(attrs, spec) {\n this.attrs = attrs;\n this.spec = spec || noSpec;\n }\n map(mapping, span, offset, oldOffset) {\n let from = mapping.map(span.from + oldOffset, this.spec.inclusiveStart ? -1 : 1) - offset;\n let to = mapping.map(span.to + oldOffset, this.spec.inclusiveEnd ? 1 : -1) - offset;\n return from >= to ? null : new Decoration(from, to, this);\n }\n valid(_, span) { return span.from < span.to; }\n eq(other) {\n return this == other ||\n (other instanceof InlineType && compareObjs(this.attrs, other.attrs) &&\n compareObjs(this.spec, other.spec));\n }\n static is(span) { return span.type instanceof InlineType; }\n destroy() { }\n}\nclass NodeType {\n constructor(attrs, spec) {\n this.attrs = attrs;\n this.spec = spec || noSpec;\n }\n map(mapping, span, offset, oldOffset) {\n let from = mapping.mapResult(span.from + oldOffset, 1);\n if (from.deleted)\n return null;\n let to = mapping.mapResult(span.to + oldOffset, -1);\n if (to.deleted || to.pos <= from.pos)\n return null;\n return new Decoration(from.pos - offset, to.pos - offset, this);\n }\n valid(node, span) {\n let { index, offset } = node.content.findIndex(span.from), child;\n return offset == span.from && !(child = node.child(index)).isText && offset + child.nodeSize == span.to;\n }\n eq(other) {\n return this == other ||\n (other instanceof NodeType && compareObjs(this.attrs, other.attrs) &&\n compareObjs(this.spec, other.spec));\n }\n destroy() { }\n}\n/**\nDecoration objects can be provided to the view through the\n[`decorations` prop](https://prosemirror.net/docs/ref/#view.EditorProps.decorations). They come in\nseveral variants—see the static members of this class for details.\n*/\nclass Decoration {\n /**\n @internal\n */\n constructor(\n /**\n The start position of the decoration.\n */\n from, \n /**\n The end position. Will be the same as `from` for [widget\n decorations](https://prosemirror.net/docs/ref/#view.Decoration^widget).\n */\n to, \n /**\n @internal\n */\n type) {\n this.from = from;\n this.to = to;\n this.type = type;\n }\n /**\n @internal\n */\n copy(from, to) {\n return new Decoration(from, to, this.type);\n }\n /**\n @internal\n */\n eq(other, offset = 0) {\n return this.type.eq(other.type) && this.from + offset == other.from && this.to + offset == other.to;\n }\n /**\n @internal\n */\n map(mapping, offset, oldOffset) {\n return this.type.map(mapping, this, offset, oldOffset);\n }\n /**\n Creates a widget decoration, which is a DOM node that's shown in\n the document at the given position. It is recommended that you\n delay rendering the widget by passing a function that will be\n called when the widget is actually drawn in a view, but you can\n also directly pass a DOM node. `getPos` can be used to find the\n widget's current document position.\n */\n static widget(pos, toDOM, spec) {\n return new Decoration(pos, pos, new WidgetType(toDOM, spec));\n }\n /**\n Creates an inline decoration, which adds the given attributes to\n each inline node between `from` and `to`.\n */\n static inline(from, to, attrs, spec) {\n return new Decoration(from, to, new InlineType(attrs, spec));\n }\n /**\n Creates a node decoration. `from` and `to` should point precisely\n before and after a node in the document. That node, and only that\n node, will receive the given attributes.\n */\n static node(from, to, attrs, spec) {\n return new Decoration(from, to, new NodeType(attrs, spec));\n }\n /**\n The spec provided when creating this decoration. Can be useful\n if you've stored extra information in that object.\n */\n get spec() { return this.type.spec; }\n /**\n @internal\n */\n get inline() { return this.type instanceof InlineType; }\n /**\n @internal\n */\n get widget() { return this.type instanceof WidgetType; }\n}\nconst none = [], noSpec = {};\n/**\nA collection of [decorations](https://prosemirror.net/docs/ref/#view.Decoration), organized in such\na way that the drawing algorithm can efficiently use and compare\nthem. This is a persistent data structure—it is not modified,\nupdates create a new value.\n*/\nclass DecorationSet {\n /**\n @internal\n */\n constructor(local, children) {\n this.local = local.length ? local : none;\n this.children = children.length ? children : none;\n }\n /**\n Create a set of decorations, using the structure of the given\n document. This will consume (modify) the `decorations` array, so\n you must make a copy if you want need to preserve that.\n */\n static create(doc, decorations) {\n return decorations.length ? buildTree(decorations, doc, 0, noSpec) : empty;\n }\n /**\n Find all decorations in this set which touch the given range\n (including decorations that start or end directly at the\n boundaries) and match the given predicate on their spec. When\n `start` and `end` are omitted, all decorations in the set are\n considered. When `predicate` isn't given, all decorations are\n assumed to match.\n */\n find(start, end, predicate) {\n let result = [];\n this.findInner(start == null ? 0 : start, end == null ? 1e9 : end, result, 0, predicate);\n return result;\n }\n findInner(start, end, result, offset, predicate) {\n for (let i = 0; i < this.local.length; i++) {\n let span = this.local[i];\n if (span.from <= end && span.to >= start && (!predicate || predicate(span.spec)))\n result.push(span.copy(span.from + offset, span.to + offset));\n }\n for (let i = 0; i < this.children.length; i += 3) {\n if (this.children[i] < end && this.children[i + 1] > start) {\n let childOff = this.children[i] + 1;\n this.children[i + 2].findInner(start - childOff, end - childOff, result, offset + childOff, predicate);\n }\n }\n }\n /**\n Map the set of decorations in response to a change in the\n document.\n */\n map(mapping, doc, options) {\n if (this == empty || mapping.maps.length == 0)\n return this;\n return this.mapInner(mapping, doc, 0, 0, options || noSpec);\n }\n /**\n @internal\n */\n mapInner(mapping, node, offset, oldOffset, options) {\n let newLocal;\n for (let i = 0; i < this.local.length; i++) {\n let mapped = this.local[i].map(mapping, offset, oldOffset);\n if (mapped && mapped.type.valid(node, mapped))\n (newLocal || (newLocal = [])).push(mapped);\n else if (options.onRemove)\n options.onRemove(this.local[i].spec);\n }\n if (this.children.length)\n return mapChildren(this.children, newLocal || [], mapping, node, offset, oldOffset, options);\n else\n return newLocal ? new DecorationSet(newLocal.sort(byPos), none) : empty;\n }\n /**\n Add the given array of decorations to the ones in the set,\n producing a new set. Consumes the `decorations` array. Needs\n access to the current document to create the appropriate tree\n structure.\n */\n add(doc, decorations) {\n if (!decorations.length)\n return this;\n if (this == empty)\n return DecorationSet.create(doc, decorations);\n return this.addInner(doc, decorations, 0);\n }\n addInner(doc, decorations, offset) {\n let children, childIndex = 0;\n doc.forEach((childNode, childOffset) => {\n let baseOffset = childOffset + offset, found;\n if (!(found = takeSpansForNode(decorations, childNode, baseOffset)))\n return;\n if (!children)\n children = this.children.slice();\n while (childIndex < children.length && children[childIndex] < childOffset)\n childIndex += 3;\n if (children[childIndex] == childOffset)\n children[childIndex + 2] = children[childIndex + 2].addInner(childNode, found, baseOffset + 1);\n else\n children.splice(childIndex, 0, childOffset, childOffset + childNode.nodeSize, buildTree(found, childNode, baseOffset + 1, noSpec));\n childIndex += 3;\n });\n let local = moveSpans(childIndex ? withoutNulls(decorations) : decorations, -offset);\n for (let i = 0; i < local.length; i++)\n if (!local[i].type.valid(doc, local[i]))\n local.splice(i--, 1);\n return new DecorationSet(local.length ? this.local.concat(local).sort(byPos) : this.local, children || this.children);\n }\n /**\n Create a new set that contains the decorations in this set, minus\n the ones in the given array.\n */\n remove(decorations) {\n if (decorations.length == 0 || this == empty)\n return this;\n return this.removeInner(decorations, 0);\n }\n removeInner(decorations, offset) {\n let children = this.children, local = this.local;\n for (let i = 0; i < children.length; i += 3) {\n let found;\n let from = children[i] + offset, to = children[i + 1] + offset;\n for (let j = 0, span; j < decorations.length; j++)\n if (span = decorations[j]) {\n if (span.from > from && span.to < to) {\n decorations[j] = null;\n (found || (found = [])).push(span);\n }\n }\n if (!found)\n continue;\n if (children == this.children)\n children = this.children.slice();\n let removed = children[i + 2].removeInner(found, from + 1);\n if (removed != empty) {\n children[i + 2] = removed;\n }\n else {\n children.splice(i, 3);\n i -= 3;\n }\n }\n if (local.length)\n for (let i = 0, span; i < decorations.length; i++)\n if (span = decorations[i]) {\n for (let j = 0; j < local.length; j++)\n if (local[j].eq(span, offset)) {\n if (local == this.local)\n local = this.local.slice();\n local.splice(j--, 1);\n }\n }\n if (children == this.children && local == this.local)\n return this;\n return local.length || children.length ? new DecorationSet(local, children) : empty;\n }\n forChild(offset, node) {\n if (this == empty)\n return this;\n if (node.isLeaf)\n return DecorationSet.empty;\n let child, local;\n for (let i = 0; i < this.children.length; i += 3)\n if (this.children[i] >= offset) {\n if (this.children[i] == offset)\n child = this.children[i + 2];\n break;\n }\n let start = offset + 1, end = start + node.content.size;\n for (let i = 0; i < this.local.length; i++) {\n let dec = this.local[i];\n if (dec.from < end && dec.to > start && (dec.type instanceof InlineType)) {\n let from = Math.max(start, dec.from) - start, to = Math.min(end, dec.to) - start;\n if (from < to)\n (local || (local = [])).push(dec.copy(from, to));\n }\n }\n if (local) {\n let localSet = new DecorationSet(local.sort(byPos), none);\n return child ? new DecorationGroup([localSet, child]) : localSet;\n }\n return child || empty;\n }\n /**\n @internal\n */\n eq(other) {\n if (this == other)\n return true;\n if (!(other instanceof DecorationSet) ||\n this.local.length != other.local.length ||\n this.children.length != other.children.length)\n return false;\n for (let i = 0; i < this.local.length; i++)\n if (!this.local[i].eq(other.local[i]))\n return false;\n for (let i = 0; i < this.children.length; i += 3)\n if (this.children[i] != other.children[i] ||\n this.children[i + 1] != other.children[i + 1] ||\n !this.children[i + 2].eq(other.children[i + 2]))\n return false;\n return true;\n }\n /**\n @internal\n */\n locals(node) {\n return removeOverlap(this.localsInner(node));\n }\n /**\n @internal\n */\n localsInner(node) {\n if (this == empty)\n return none;\n if (node.inlineContent || !this.local.some(InlineType.is))\n return this.local;\n let result = [];\n for (let i = 0; i < this.local.length; i++) {\n if (!(this.local[i].type instanceof InlineType))\n result.push(this.local[i]);\n }\n return result;\n }\n forEachSet(f) { f(this); }\n}\n/**\nThe empty set of decorations.\n*/\nDecorationSet.empty = new DecorationSet([], []);\n/**\n@internal\n*/\nDecorationSet.removeOverlap = removeOverlap;\nconst empty = DecorationSet.empty;\n// An abstraction that allows the code dealing with decorations to\n// treat multiple DecorationSet objects as if it were a single object\n// with (a subset of) the same interface.\nclass DecorationGroup {\n constructor(members) {\n this.members = members;\n }\n map(mapping, doc) {\n const mappedDecos = this.members.map(member => member.map(mapping, doc, noSpec));\n return DecorationGroup.from(mappedDecos);\n }\n forChild(offset, child) {\n if (child.isLeaf)\n return DecorationSet.empty;\n let found = [];\n for (let i = 0; i < this.members.length; i++) {\n let result = this.members[i].forChild(offset, child);\n if (result == empty)\n continue;\n if (result instanceof DecorationGroup)\n found = found.concat(result.members);\n else\n found.push(result);\n }\n return DecorationGroup.from(found);\n }\n eq(other) {\n if (!(other instanceof DecorationGroup) ||\n other.members.length != this.members.length)\n return false;\n for (let i = 0; i < this.members.length; i++)\n if (!this.members[i].eq(other.members[i]))\n return false;\n return true;\n }\n locals(node) {\n let result, sorted = true;\n for (let i = 0; i < this.members.length; i++) {\n let locals = this.members[i].localsInner(node);\n if (!locals.length)\n continue;\n if (!result) {\n result = locals;\n }\n else {\n if (sorted) {\n result = result.slice();\n sorted = false;\n }\n for (let j = 0; j < locals.length; j++)\n result.push(locals[j]);\n }\n }\n return result ? removeOverlap(sorted ? result : result.sort(byPos)) : none;\n }\n // Create a group for the given array of decoration sets, or return\n // a single set when possible.\n static from(members) {\n switch (members.length) {\n case 0: return empty;\n case 1: return members[0];\n default: return new DecorationGroup(members.every(m => m instanceof DecorationSet) ? members :\n members.reduce((r, m) => r.concat(m instanceof DecorationSet ? m : m.members), []));\n }\n }\n forEachSet(f) {\n for (let i = 0; i < this.members.length; i++)\n this.members[i].forEachSet(f);\n }\n}\nfunction mapChildren(oldChildren, newLocal, mapping, node, offset, oldOffset, options) {\n let children = oldChildren.slice();\n // Mark the children that are directly touched by changes, and\n // move those that are after the changes.\n for (let i = 0, baseOffset = oldOffset; i < mapping.maps.length; i++) {\n let moved = 0;\n mapping.maps[i].forEach((oldStart, oldEnd, newStart, newEnd) => {\n let dSize = (newEnd - newStart) - (oldEnd - oldStart);\n for (let i = 0; i < children.length; i += 3) {\n let end = children[i + 1];\n if (end < 0 || oldStart > end + baseOffset - moved)\n continue;\n let start = children[i] + baseOffset - moved;\n if (oldEnd >= start) {\n children[i + 1] = oldStart <= start ? -2 : -1;\n }\n else if (oldStart >= baseOffset && dSize) {\n children[i] += dSize;\n children[i + 1] += dSize;\n }\n }\n moved += dSize;\n });\n baseOffset = mapping.maps[i].map(baseOffset, -1);\n }\n // Find the child nodes that still correspond to a single node,\n // recursively call mapInner on them and update their positions.\n let mustRebuild = false;\n for (let i = 0; i < children.length; i += 3)\n if (children[i + 1] < 0) { // Touched nodes\n if (children[i + 1] == -2) {\n mustRebuild = true;\n children[i + 1] = -1;\n continue;\n }\n let from = mapping.map(oldChildren[i] + oldOffset), fromLocal = from - offset;\n if (fromLocal < 0 || fromLocal >= node.content.size) {\n mustRebuild = true;\n continue;\n }\n // Must read oldChildren because children was tagged with -1\n let to = mapping.map(oldChildren[i + 1] + oldOffset, -1), toLocal = to - offset;\n let { index, offset: childOffset } = node.content.findIndex(fromLocal);\n let childNode = node.maybeChild(index);\n if (childNode && childOffset == fromLocal && childOffset + childNode.nodeSize == toLocal) {\n let mapped = children[i + 2]\n .mapInner(mapping, childNode, from + 1, oldChildren[i] + oldOffset + 1, options);\n if (mapped != empty) {\n children[i] = fromLocal;\n children[i + 1] = toLocal;\n children[i + 2] = mapped;\n }\n else {\n children[i + 1] = -2;\n mustRebuild = true;\n }\n }\n else {\n mustRebuild = true;\n }\n }\n // Remaining children must be collected and rebuilt into the appropriate structure\n if (mustRebuild) {\n let decorations = mapAndGatherRemainingDecorations(children, oldChildren, newLocal, mapping, offset, oldOffset, options);\n let built = buildTree(decorations, node, 0, options);\n newLocal = built.local;\n for (let i = 0; i < children.length; i += 3)\n if (children[i + 1] < 0) {\n children.splice(i, 3);\n i -= 3;\n }\n for (let i = 0, j = 0; i < built.children.length; i += 3) {\n let from = built.children[i];\n while (j < children.length && children[j] < from)\n j += 3;\n children.splice(j, 0, built.children[i], built.children[i + 1], built.children[i + 2]);\n }\n }\n return new DecorationSet(newLocal.sort(byPos), children);\n}\nfunction moveSpans(spans, offset) {\n if (!offset || !spans.length)\n return spans;\n let result = [];\n for (let i = 0; i < spans.length; i++) {\n let span = spans[i];\n result.push(new Decoration(span.from + offset, span.to + offset, span.type));\n }\n return result;\n}\nfunction mapAndGatherRemainingDecorations(children, oldChildren, decorations, mapping, offset, oldOffset, options) {\n // Gather all decorations from the remaining marked children\n function gather(set, oldOffset) {\n for (let i = 0; i < set.local.length; i++) {\n let mapped = set.local[i].map(mapping, offset, oldOffset);\n if (mapped)\n decorations.push(mapped);\n else if (options.onRemove)\n options.onRemove(set.local[i].spec);\n }\n for (let i = 0; i < set.children.length; i += 3)\n gather(set.children[i + 2], set.children[i] + oldOffset + 1);\n }\n for (let i = 0; i < children.length; i += 3)\n if (children[i + 1] == -1)\n gather(children[i + 2], oldChildren[i] + oldOffset + 1);\n return decorations;\n}\nfunction takeSpansForNode(spans, node, offset) {\n if (node.isLeaf)\n return null;\n let end = offset + node.nodeSize, found = null;\n for (let i = 0, span; i < spans.length; i++) {\n if ((span = spans[i]) && span.from > offset && span.to < end) {\n (found || (found = [])).push(span);\n spans[i] = null;\n }\n }\n return found;\n}\nfunction withoutNulls(array) {\n let result = [];\n for (let i = 0; i < array.length; i++)\n if (array[i] != null)\n result.push(array[i]);\n return result;\n}\n// Build up a tree that corresponds to a set of decorations. `offset`\n// is a base offset that should be subtracted from the `from` and `to`\n// positions in the spans (so that we don't have to allocate new spans\n// for recursive calls).\nfunction buildTree(spans, node, offset, options) {\n let children = [], hasNulls = false;\n node.forEach((childNode, localStart) => {\n let found = takeSpansForNode(spans, childNode, localStart + offset);\n if (found) {\n hasNulls = true;\n let subtree = buildTree(found, childNode, offset + localStart + 1, options);\n if (subtree != empty)\n children.push(localStart, localStart + childNode.nodeSize, subtree);\n }\n });\n let locals = moveSpans(hasNulls ? withoutNulls(spans) : spans, -offset).sort(byPos);\n for (let i = 0; i < locals.length; i++)\n if (!locals[i].type.valid(node, locals[i])) {\n if (options.onRemove)\n options.onRemove(locals[i].spec);\n locals.splice(i--, 1);\n }\n return locals.length || children.length ? new DecorationSet(locals, children) : empty;\n}\n// Used to sort decorations so that ones with a low start position\n// come first, and within a set with the same start position, those\n// with an smaller end position come first.\nfunction byPos(a, b) {\n return a.from - b.from || a.to - b.to;\n}\n// Scan a sorted array of decorations for partially overlapping spans,\n// and split those so that only fully overlapping spans are left (to\n// make subsequent rendering easier). Will return the input array if\n// no partially overlapping spans are found (the common case).\nfunction removeOverlap(spans) {\n let working = spans;\n for (let i = 0; i < working.length - 1; i++) {\n let span = working[i];\n if (span.from != span.to)\n for (let j = i + 1; j < working.length; j++) {\n let next = working[j];\n if (next.from == span.from) {\n if (next.to != span.to) {\n if (working == spans)\n working = spans.slice();\n // Followed by a partially overlapping larger span. Split that\n // span.\n working[j] = next.copy(next.from, span.to);\n insertAhead(working, j + 1, next.copy(span.to, next.to));\n }\n continue;\n }\n else {\n if (next.from < span.to) {\n if (working == spans)\n working = spans.slice();\n // The end of this one overlaps with a subsequent span. Split\n // this one.\n working[i] = span.copy(span.from, next.from);\n insertAhead(working, j, span.copy(next.from, span.to));\n }\n break;\n }\n }\n }\n return working;\n}\nfunction insertAhead(array, i, deco) {\n while (i < array.length && byPos(deco, array[i]) > 0)\n i++;\n array.splice(i, 0, deco);\n}\n// Get the decorations associated with the current props of a view.\nfunction viewDecorations(view) {\n let found = [];\n view.someProp(\"decorations\", f => {\n let result = f(view.state);\n if (result && result != empty)\n found.push(result);\n });\n if (view.cursorWrapper)\n found.push(DecorationSet.create(view.state.doc, [view.cursorWrapper.deco]));\n return DecorationGroup.from(found);\n}\n\nconst observeOptions = {\n childList: true,\n characterData: true,\n characterDataOldValue: true,\n attributes: true,\n attributeOldValue: true,\n subtree: true\n};\n// IE11 has very broken mutation observers, so we also listen to DOMCharacterDataModified\nconst useCharData = ie && ie_version <= 11;\nclass SelectionState {\n constructor() {\n this.anchorNode = null;\n this.anchorOffset = 0;\n this.focusNode = null;\n this.focusOffset = 0;\n }\n set(sel) {\n this.anchorNode = sel.anchorNode;\n this.anchorOffset = sel.anchorOffset;\n this.focusNode = sel.focusNode;\n this.focusOffset = sel.focusOffset;\n }\n clear() {\n this.anchorNode = this.focusNode = null;\n }\n eq(sel) {\n return sel.anchorNode == this.anchorNode && sel.anchorOffset == this.anchorOffset &&\n sel.focusNode == this.focusNode && sel.focusOffset == this.focusOffset;\n }\n}\nclass DOMObserver {\n constructor(view, handleDOMChange) {\n this.view = view;\n this.handleDOMChange = handleDOMChange;\n this.queue = [];\n this.flushingSoon = -1;\n this.observer = null;\n this.currentSelection = new SelectionState;\n this.onCharData = null;\n this.suppressingSelectionUpdates = false;\n this.lastChangedTextNode = null;\n this.observer = window.MutationObserver &&\n new window.MutationObserver(mutations => {\n for (let i = 0; i < mutations.length; i++)\n this.queue.push(mutations[i]);\n // IE11 will sometimes (on backspacing out a single character\n // text node after a BR node) call the observer callback\n // before actually updating the DOM, which will cause\n // ProseMirror to miss the change (see #930)\n if (ie && ie_version <= 11 && mutations.some(m => m.type == \"childList\" && m.removedNodes.length ||\n m.type == \"characterData\" && m.oldValue.length > m.target.nodeValue.length))\n this.flushSoon();\n else\n this.flush();\n });\n if (useCharData) {\n this.onCharData = e => {\n this.queue.push({ target: e.target, type: \"characterData\", oldValue: e.prevValue });\n this.flushSoon();\n };\n }\n this.onSelectionChange = this.onSelectionChange.bind(this);\n }\n flushSoon() {\n if (this.flushingSoon < 0)\n this.flushingSoon = window.setTimeout(() => { this.flushingSoon = -1; this.flush(); }, 20);\n }\n forceFlush() {\n if (this.flushingSoon > -1) {\n window.clearTimeout(this.flushingSoon);\n this.flushingSoon = -1;\n this.flush();\n }\n }\n start() {\n if (this.observer) {\n this.observer.takeRecords();\n this.observer.observe(this.view.dom, observeOptions);\n }\n if (this.onCharData)\n this.view.dom.addEventListener(\"DOMCharacterDataModified\", this.onCharData);\n this.connectSelection();\n }\n stop() {\n if (this.observer) {\n let take = this.observer.takeRecords();\n if (take.length) {\n for (let i = 0; i < take.length; i++)\n this.queue.push(take[i]);\n window.setTimeout(() => this.flush(), 20);\n }\n this.observer.disconnect();\n }\n if (this.onCharData)\n this.view.dom.removeEventListener(\"DOMCharacterDataModified\", this.onCharData);\n this.disconnectSelection();\n }\n connectSelection() {\n this.view.dom.ownerDocument.addEventListener(\"selectionchange\", this.onSelectionChange);\n }\n disconnectSelection() {\n this.view.dom.ownerDocument.removeEventListener(\"selectionchange\", this.onSelectionChange);\n }\n suppressSelectionUpdates() {\n this.suppressingSelectionUpdates = true;\n setTimeout(() => this.suppressingSelectionUpdates = false, 50);\n }\n onSelectionChange() {\n if (!hasFocusAndSelection(this.view))\n return;\n if (this.suppressingSelectionUpdates)\n return selectionToDOM(this.view);\n // Deletions on IE11 fire their events in the wrong order, giving\n // us a selection change event before the DOM changes are\n // reported.\n if (ie && ie_version <= 11 && !this.view.state.selection.empty) {\n let sel = this.view.domSelectionRange();\n // Selection.isCollapsed isn't reliable on IE\n if (sel.focusNode && isEquivalentPosition(sel.focusNode, sel.focusOffset, sel.anchorNode, sel.anchorOffset))\n return this.flushSoon();\n }\n this.flush();\n }\n setCurSelection() {\n this.currentSelection.set(this.view.domSelectionRange());\n }\n ignoreSelectionChange(sel) {\n if (!sel.focusNode)\n return true;\n let ancestors = new Set, container;\n for (let scan = sel.focusNode; scan; scan = parentNode(scan))\n ancestors.add(scan);\n for (let scan = sel.anchorNode; scan; scan = parentNode(scan))\n if (ancestors.has(scan)) {\n container = scan;\n break;\n }\n let desc = container && this.view.docView.nearestDesc(container);\n if (desc && desc.ignoreMutation({\n type: \"selection\",\n target: container.nodeType == 3 ? container.parentNode : container\n })) {\n this.setCurSelection();\n return true;\n }\n }\n pendingRecords() {\n if (this.observer)\n for (let mut of this.observer.takeRecords())\n this.queue.push(mut);\n return this.queue;\n }\n flush() {\n let { view } = this;\n if (!view.docView || this.flushingSoon > -1)\n return;\n let mutations = this.pendingRecords();\n if (mutations.length)\n this.queue = [];\n let sel = view.domSelectionRange();\n let newSel = !this.suppressingSelectionUpdates && !this.currentSelection.eq(sel) && hasFocusAndSelection(view) && !this.ignoreSelectionChange(sel);\n let from = -1, to = -1, typeOver = false, added = [];\n if (view.editable) {\n for (let i = 0; i < mutations.length; i++) {\n let result = this.registerMutation(mutations[i], added);\n if (result) {\n from = from < 0 ? result.from : Math.min(result.from, from);\n to = to < 0 ? result.to : Math.max(result.to, to);\n if (result.typeOver)\n typeOver = true;\n }\n }\n }\n if (gecko && added.length) {\n let brs = added.filter(n => n.nodeName == \"BR\");\n if (brs.length == 2) {\n let [a, b] = brs;\n if (a.parentNode && a.parentNode.parentNode == b.parentNode)\n b.remove();\n else\n a.remove();\n }\n else {\n let { focusNode } = this.currentSelection;\n for (let br of brs) {\n let parent = br.parentNode;\n if (parent && parent.nodeName == \"LI\" && (!focusNode || blockParent(view, focusNode) != parent))\n br.remove();\n }\n }\n }\n let readSel = null;\n // If it looks like the browser has reset the selection to the\n // start of the document after focus, restore the selection from\n // the state\n if (from < 0 && newSel && view.input.lastFocus > Date.now() - 200 &&\n Math.max(view.input.lastTouch, view.input.lastClick.time) < Date.now() - 300 &&\n selectionCollapsed(sel) && (readSel = selectionFromDOM(view)) &&\n readSel.eq(Selection.near(view.state.doc.resolve(0), 1))) {\n view.input.lastFocus = 0;\n selectionToDOM(view);\n this.currentSelection.set(sel);\n view.scrollToSelection();\n }\n else if (from > -1 || newSel) {\n if (from > -1) {\n view.docView.markDirty(from, to);\n checkCSS(view);\n }\n this.handleDOMChange(from, to, typeOver, added);\n if (view.docView && view.docView.dirty)\n view.updateState(view.state);\n else if (!this.currentSelection.eq(sel))\n selectionToDOM(view);\n this.currentSelection.set(sel);\n }\n }\n registerMutation(mut, added) {\n // Ignore mutations inside nodes that were already noted as inserted\n if (added.indexOf(mut.target) > -1)\n return null;\n let desc = this.view.docView.nearestDesc(mut.target);\n if (mut.type == \"attributes\" &&\n (desc == this.view.docView || mut.attributeName == \"contenteditable\" ||\n // Firefox sometimes fires spurious events for null/empty styles\n (mut.attributeName == \"style\" && !mut.oldValue && !mut.target.getAttribute(\"style\"))))\n return null;\n if (!desc || desc.ignoreMutation(mut))\n return null;\n if (mut.type == \"childList\") {\n for (let i = 0; i < mut.addedNodes.length; i++) {\n let node = mut.addedNodes[i];\n added.push(node);\n if (node.nodeType == 3)\n this.lastChangedTextNode = node;\n }\n if (desc.contentDOM && desc.contentDOM != desc.dom && !desc.contentDOM.contains(mut.target))\n return { from: desc.posBefore, to: desc.posAfter };\n let prev = mut.previousSibling, next = mut.nextSibling;\n if (ie && ie_version <= 11 && mut.addedNodes.length) {\n // IE11 gives us incorrect next/prev siblings for some\n // insertions, so if there are added nodes, recompute those\n for (let i = 0; i < mut.addedNodes.length; i++) {\n let { previousSibling, nextSibling } = mut.addedNodes[i];\n if (!previousSibling || Array.prototype.indexOf.call(mut.addedNodes, previousSibling) < 0)\n prev = previousSibling;\n if (!nextSibling || Array.prototype.indexOf.call(mut.addedNodes, nextSibling) < 0)\n next = nextSibling;\n }\n }\n let fromOffset = prev && prev.parentNode == mut.target\n ? domIndex(prev) + 1 : 0;\n let from = desc.localPosFromDOM(mut.target, fromOffset, -1);\n let toOffset = next && next.parentNode == mut.target\n ? domIndex(next) : mut.target.childNodes.length;\n let to = desc.localPosFromDOM(mut.target, toOffset, 1);\n return { from, to };\n }\n else if (mut.type == \"attributes\") {\n return { from: desc.posAtStart - desc.border, to: desc.posAtEnd + desc.border };\n }\n else { // \"characterData\"\n this.lastChangedTextNode = mut.target;\n return {\n from: desc.posAtStart,\n to: desc.posAtEnd,\n // An event was generated for a text change that didn't change\n // any text. Mark the dom change to fall back to assuming the\n // selection was typed over with an identical value if it can't\n // find another change.\n typeOver: mut.target.nodeValue == mut.oldValue\n };\n }\n }\n}\nlet cssChecked = new WeakMap();\nlet cssCheckWarned = false;\nfunction checkCSS(view) {\n if (cssChecked.has(view))\n return;\n cssChecked.set(view, null);\n if (['normal', 'nowrap', 'pre-line'].indexOf(getComputedStyle(view.dom).whiteSpace) !== -1) {\n view.requiresGeckoHackNode = gecko;\n if (cssCheckWarned)\n return;\n console[\"warn\"](\"ProseMirror expects the CSS white-space property to be set, preferably to 'pre-wrap'. It is recommended to load style/prosemirror.css from the prosemirror-view package.\");\n cssCheckWarned = true;\n }\n}\nfunction rangeToSelectionRange(view, range) {\n let anchorNode = range.startContainer, anchorOffset = range.startOffset;\n let focusNode = range.endContainer, focusOffset = range.endOffset;\n let currentAnchor = view.domAtPos(view.state.selection.anchor);\n // Since such a range doesn't distinguish between anchor and head,\n // use a heuristic that flips it around if its end matches the\n // current anchor.\n if (isEquivalentPosition(currentAnchor.node, currentAnchor.offset, focusNode, focusOffset))\n [anchorNode, anchorOffset, focusNode, focusOffset] = [focusNode, focusOffset, anchorNode, anchorOffset];\n return { anchorNode, anchorOffset, focusNode, focusOffset };\n}\n// Used to work around a Safari Selection/shadow DOM bug\n// Based on https://github.com/codemirror/dev/issues/414 fix\nfunction safariShadowSelectionRange(view, selection) {\n if (selection.getComposedRanges) {\n let range = selection.getComposedRanges(view.root)[0];\n if (range)\n return rangeToSelectionRange(view, range);\n }\n let found;\n function read(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n found = event.getTargetRanges()[0];\n }\n // Because Safari (at least in 2018-2022) doesn't provide regular\n // access to the selection inside a shadowRoot, we have to perform a\n // ridiculous hack to get at it—using `execCommand` to trigger a\n // `beforeInput` event so that we can read the target range from the\n // event.\n view.dom.addEventListener(\"beforeinput\", read, true);\n document.execCommand(\"indent\");\n view.dom.removeEventListener(\"beforeinput\", read, true);\n return found ? rangeToSelectionRange(view, found) : null;\n}\nfunction blockParent(view, node) {\n for (let p = node.parentNode; p && p != view.dom; p = p.parentNode) {\n let desc = view.docView.nearestDesc(p, true);\n if (desc && desc.node.isBlock)\n return p;\n }\n return null;\n}\n\n// Note that all referencing and parsing is done with the\n// start-of-operation selection and document, since that's the one\n// that the DOM represents. If any changes came in in the meantime,\n// the modification is mapped over those before it is applied, in\n// readDOMChange.\nfunction parseBetween(view, from_, to_) {\n let { node: parent, fromOffset, toOffset, from, to } = view.docView.parseRange(from_, to_);\n let domSel = view.domSelectionRange();\n let find;\n let anchor = domSel.anchorNode;\n if (anchor && view.dom.contains(anchor.nodeType == 1 ? anchor : anchor.parentNode)) {\n find = [{ node: anchor, offset: domSel.anchorOffset }];\n if (!selectionCollapsed(domSel))\n find.push({ node: domSel.focusNode, offset: domSel.focusOffset });\n }\n // Work around issue in Chrome where backspacing sometimes replaces\n // the deleted content with a random BR node (issues #799, #831)\n if (chrome && view.input.lastKeyCode === 8) {\n for (let off = toOffset; off > fromOffset; off--) {\n let node = parent.childNodes[off - 1], desc = node.pmViewDesc;\n if (node.nodeName == \"BR\" && !desc) {\n toOffset = off;\n break;\n }\n if (!desc || desc.size)\n break;\n }\n }\n let startDoc = view.state.doc;\n let parser = view.someProp(\"domParser\") || DOMParser.fromSchema(view.state.schema);\n let $from = startDoc.resolve(from);\n let sel = null, doc = parser.parse(parent, {\n topNode: $from.parent,\n topMatch: $from.parent.contentMatchAt($from.index()),\n topOpen: true,\n from: fromOffset,\n to: toOffset,\n preserveWhitespace: $from.parent.type.whitespace == \"pre\" ? \"full\" : true,\n findPositions: find,\n ruleFromNode,\n context: $from\n });\n if (find && find[0].pos != null) {\n let anchor = find[0].pos, head = find[1] && find[1].pos;\n if (head == null)\n head = anchor;\n sel = { anchor: anchor + from, head: head + from };\n }\n return { doc, sel, from, to };\n}\nfunction ruleFromNode(dom) {\n let desc = dom.pmViewDesc;\n if (desc) {\n return desc.parseRule();\n }\n else if (dom.nodeName == \"BR\" && dom.parentNode) {\n // Safari replaces the list item or table cell with a BR\n // directly in the list node (?!) if you delete the last\n // character in a list item or table cell (#708, #862)\n if (safari && /^(ul|ol)$/i.test(dom.parentNode.nodeName)) {\n let skip = document.createElement(\"div\");\n skip.appendChild(document.createElement(\"li\"));\n return { skip };\n }\n else if (dom.parentNode.lastChild == dom || safari && /^(tr|table)$/i.test(dom.parentNode.nodeName)) {\n return { ignore: true };\n }\n }\n else if (dom.nodeName == \"IMG\" && dom.getAttribute(\"mark-placeholder\")) {\n return { ignore: true };\n }\n return null;\n}\nconst isInline = /^(a|abbr|acronym|b|bd[io]|big|br|button|cite|code|data(list)?|del|dfn|em|i|ins|kbd|label|map|mark|meter|output|q|ruby|s|samp|small|span|strong|su[bp]|time|u|tt|var)$/i;\nfunction readDOMChange(view, from, to, typeOver, addedNodes) {\n let compositionID = view.input.compositionPendingChanges || (view.composing ? view.input.compositionID : 0);\n view.input.compositionPendingChanges = 0;\n if (from < 0) {\n let origin = view.input.lastSelectionTime > Date.now() - 50 ? view.input.lastSelectionOrigin : null;\n let newSel = selectionFromDOM(view, origin);\n if (newSel && !view.state.selection.eq(newSel)) {\n if (chrome && android &&\n view.input.lastKeyCode === 13 && Date.now() - 100 < view.input.lastKeyCodeTime &&\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(13, \"Enter\"))))\n return;\n let tr = view.state.tr.setSelection(newSel);\n if (origin == \"pointer\")\n tr.setMeta(\"pointer\", true);\n else if (origin == \"key\")\n tr.scrollIntoView();\n if (compositionID)\n tr.setMeta(\"composition\", compositionID);\n view.dispatch(tr);\n }\n return;\n }\n let $before = view.state.doc.resolve(from);\n let shared = $before.sharedDepth(to);\n from = $before.before(shared + 1);\n to = view.state.doc.resolve(to).after(shared + 1);\n let sel = view.state.selection;\n let parse = parseBetween(view, from, to);\n let doc = view.state.doc, compare = doc.slice(parse.from, parse.to);\n let preferredPos, preferredSide;\n // Prefer anchoring to end when Backspace is pressed\n if (view.input.lastKeyCode === 8 && Date.now() - 100 < view.input.lastKeyCodeTime) {\n preferredPos = view.state.selection.to;\n preferredSide = \"end\";\n }\n else {\n preferredPos = view.state.selection.from;\n preferredSide = \"start\";\n }\n view.input.lastKeyCode = null;\n let change = findDiff(compare.content, parse.doc.content, parse.from, preferredPos, preferredSide);\n if (change)\n view.input.domChangeCount++;\n if ((ios && view.input.lastIOSEnter > Date.now() - 225 || android) &&\n addedNodes.some(n => n.nodeType == 1 && !isInline.test(n.nodeName)) &&\n (!change || change.endA >= change.endB) &&\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(13, \"Enter\")))) {\n view.input.lastIOSEnter = 0;\n return;\n }\n if (!change) {\n if (typeOver && sel instanceof TextSelection && !sel.empty && sel.$head.sameParent(sel.$anchor) &&\n !view.composing && !(parse.sel && parse.sel.anchor != parse.sel.head)) {\n change = { start: sel.from, endA: sel.to, endB: sel.to };\n }\n else {\n if (parse.sel) {\n let sel = resolveSelection(view, view.state.doc, parse.sel);\n if (sel && !sel.eq(view.state.selection)) {\n let tr = view.state.tr.setSelection(sel);\n if (compositionID)\n tr.setMeta(\"composition\", compositionID);\n view.dispatch(tr);\n }\n }\n return;\n }\n }\n // Handle the case where overwriting a selection by typing matches\n // the start or end of the selected content, creating a change\n // that's smaller than what was actually overwritten.\n if (view.state.selection.from < view.state.selection.to &&\n change.start == change.endB &&\n view.state.selection instanceof TextSelection) {\n if (change.start > view.state.selection.from && change.start <= view.state.selection.from + 2 &&\n view.state.selection.from >= parse.from) {\n change.start = view.state.selection.from;\n }\n else if (change.endA < view.state.selection.to && change.endA >= view.state.selection.to - 2 &&\n view.state.selection.to <= parse.to) {\n change.endB += (view.state.selection.to - change.endA);\n change.endA = view.state.selection.to;\n }\n }\n // IE11 will insert a non-breaking space _ahead_ of the space after\n // the cursor space when adding a space before another space. When\n // that happened, adjust the change to cover the space instead.\n if (ie && ie_version <= 11 && change.endB == change.start + 1 &&\n change.endA == change.start && change.start > parse.from &&\n parse.doc.textBetween(change.start - parse.from - 1, change.start - parse.from + 1) == \" \\u00a0\") {\n change.start--;\n change.endA--;\n change.endB--;\n }\n let $from = parse.doc.resolveNoCache(change.start - parse.from);\n let $to = parse.doc.resolveNoCache(change.endB - parse.from);\n let $fromA = doc.resolve(change.start);\n let inlineChange = $from.sameParent($to) && $from.parent.inlineContent && $fromA.end() >= change.endA;\n let nextSel;\n // If this looks like the effect of pressing Enter (or was recorded\n // as being an iOS enter press), just dispatch an Enter key instead.\n if (((ios && view.input.lastIOSEnter > Date.now() - 225 &&\n (!inlineChange || addedNodes.some(n => n.nodeName == \"DIV\" || n.nodeName == \"P\"))) ||\n (!inlineChange && $from.pos < parse.doc.content.size && !$from.sameParent($to) &&\n (nextSel = Selection.findFrom(parse.doc.resolve($from.pos + 1), 1, true)) &&\n nextSel.head == $to.pos)) &&\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(13, \"Enter\")))) {\n view.input.lastIOSEnter = 0;\n return;\n }\n // Same for backspace\n if (view.state.selection.anchor > change.start &&\n looksLikeBackspace(doc, change.start, change.endA, $from, $to) &&\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(8, \"Backspace\")))) {\n if (android && chrome)\n view.domObserver.suppressSelectionUpdates(); // #820\n return;\n }\n // Chrome will occasionally, during composition, delete the\n // entire composition and then immediately insert it again. This is\n // used to detect that situation.\n if (chrome && change.endB == change.start)\n view.input.lastChromeDelete = Date.now();\n // This tries to detect Android virtual keyboard\n // enter-and-pick-suggestion action. That sometimes (see issue\n // #1059) first fires a DOM mutation, before moving the selection to\n // the newly created block. And then, because ProseMirror cleans up\n // the DOM selection, it gives up moving the selection entirely,\n // leaving the cursor in the wrong place. When that happens, we drop\n // the new paragraph from the initial change, and fire a simulated\n // enter key afterwards.\n if (android && !inlineChange && $from.start() != $to.start() && $to.parentOffset == 0 && $from.depth == $to.depth &&\n parse.sel && parse.sel.anchor == parse.sel.head && parse.sel.head == change.endA) {\n change.endB -= 2;\n $to = parse.doc.resolveNoCache(change.endB - parse.from);\n setTimeout(() => {\n view.someProp(\"handleKeyDown\", function (f) { return f(view, keyEvent(13, \"Enter\")); });\n }, 20);\n }\n let chFrom = change.start, chTo = change.endA;\n let tr, storedMarks, markChange;\n if (inlineChange) {\n if ($from.pos == $to.pos) { // Deletion\n // IE11 sometimes weirdly moves the DOM selection around after\n // backspacing out the first element in a textblock\n if (ie && ie_version <= 11 && $from.parentOffset == 0) {\n view.domObserver.suppressSelectionUpdates();\n setTimeout(() => selectionToDOM(view), 20);\n }\n tr = view.state.tr.delete(chFrom, chTo);\n storedMarks = doc.resolve(change.start).marksAcross(doc.resolve(change.endA));\n }\n else if ( // Adding or removing a mark\n change.endA == change.endB &&\n (markChange = isMarkChange($from.parent.content.cut($from.parentOffset, $to.parentOffset), $fromA.parent.content.cut($fromA.parentOffset, change.endA - $fromA.start())))) {\n tr = view.state.tr;\n if (markChange.type == \"add\")\n tr.addMark(chFrom, chTo, markChange.mark);\n else\n tr.removeMark(chFrom, chTo, markChange.mark);\n }\n else if ($from.parent.child($from.index()).isText && $from.index() == $to.index() - ($to.textOffset ? 0 : 1)) {\n // Both positions in the same text node -- simply insert text\n let text = $from.parent.textBetween($from.parentOffset, $to.parentOffset);\n if (view.someProp(\"handleTextInput\", f => f(view, chFrom, chTo, text)))\n return;\n tr = view.state.tr.insertText(text, chFrom, chTo);\n }\n }\n if (!tr)\n tr = view.state.tr.replace(chFrom, chTo, parse.doc.slice(change.start - parse.from, change.endB - parse.from));\n if (parse.sel) {\n let sel = resolveSelection(view, tr.doc, parse.sel);\n // Chrome will sometimes, during composition, report the\n // selection in the wrong place. If it looks like that is\n // happening, don't update the selection.\n // Edge just doesn't move the cursor forward when you start typing\n // in an empty block or between br nodes.\n if (sel && !(chrome && view.composing && sel.empty &&\n (change.start != change.endB || view.input.lastChromeDelete < Date.now() - 100) &&\n (sel.head == chFrom || sel.head == tr.mapping.map(chTo) - 1) ||\n ie && sel.empty && sel.head == chFrom))\n tr.setSelection(sel);\n }\n if (storedMarks)\n tr.ensureMarks(storedMarks);\n if (compositionID)\n tr.setMeta(\"composition\", compositionID);\n view.dispatch(tr.scrollIntoView());\n}\nfunction resolveSelection(view, doc, parsedSel) {\n if (Math.max(parsedSel.anchor, parsedSel.head) > doc.content.size)\n return null;\n return selectionBetween(view, doc.resolve(parsedSel.anchor), doc.resolve(parsedSel.head));\n}\n// Given two same-length, non-empty fragments of inline content,\n// determine whether the first could be created from the second by\n// removing or adding a single mark type.\nfunction isMarkChange(cur, prev) {\n let curMarks = cur.firstChild.marks, prevMarks = prev.firstChild.marks;\n let added = curMarks, removed = prevMarks, type, mark, update;\n for (let i = 0; i < prevMarks.length; i++)\n added = prevMarks[i].removeFromSet(added);\n for (let i = 0; i < curMarks.length; i++)\n removed = curMarks[i].removeFromSet(removed);\n if (added.length == 1 && removed.length == 0) {\n mark = added[0];\n type = \"add\";\n update = (node) => node.mark(mark.addToSet(node.marks));\n }\n else if (added.length == 0 && removed.length == 1) {\n mark = removed[0];\n type = \"remove\";\n update = (node) => node.mark(mark.removeFromSet(node.marks));\n }\n else {\n return null;\n }\n let updated = [];\n for (let i = 0; i < prev.childCount; i++)\n updated.push(update(prev.child(i)));\n if (Fragment.from(updated).eq(cur))\n return { mark, type };\n}\nfunction looksLikeBackspace(old, start, end, $newStart, $newEnd) {\n if ( // The content must have shrunk\n end - start <= $newEnd.pos - $newStart.pos ||\n // newEnd must point directly at or after the end of the block that newStart points into\n skipClosingAndOpening($newStart, true, false) < $newEnd.pos)\n return false;\n let $start = old.resolve(start);\n // Handle the case where, rather than joining blocks, the change just removed an entire block\n if (!$newStart.parent.isTextblock) {\n let after = $start.nodeAfter;\n return after != null && end == start + after.nodeSize;\n }\n // Start must be at the end of a block\n if ($start.parentOffset < $start.parent.content.size || !$start.parent.isTextblock)\n return false;\n let $next = old.resolve(skipClosingAndOpening($start, true, true));\n // The next textblock must start before end and end near it\n if (!$next.parent.isTextblock || $next.pos > end ||\n skipClosingAndOpening($next, true, false) < end)\n return false;\n // The fragments after the join point must match\n return $newStart.parent.content.cut($newStart.parentOffset).eq($next.parent.content);\n}\nfunction skipClosingAndOpening($pos, fromEnd, mayOpen) {\n let depth = $pos.depth, end = fromEnd ? $pos.end() : $pos.pos;\n while (depth > 0 && (fromEnd || $pos.indexAfter(depth) == $pos.node(depth).childCount)) {\n depth--;\n end++;\n fromEnd = false;\n }\n if (mayOpen) {\n let next = $pos.node(depth).maybeChild($pos.indexAfter(depth));\n while (next && !next.isLeaf) {\n next = next.firstChild;\n end++;\n }\n }\n return end;\n}\nfunction findDiff(a, b, pos, preferredPos, preferredSide) {\n let start = a.findDiffStart(b, pos);\n if (start == null)\n return null;\n let { a: endA, b: endB } = a.findDiffEnd(b, pos + a.size, pos + b.size);\n if (preferredSide == \"end\") {\n let adjust = Math.max(0, start - Math.min(endA, endB));\n preferredPos -= endA + adjust - start;\n }\n if (endA < start && a.size < b.size) {\n let move = preferredPos <= start && preferredPos >= endA ? start - preferredPos : 0;\n start -= move;\n if (start && start < b.size && isSurrogatePair(b.textBetween(start - 1, start + 1)))\n start += move ? 1 : -1;\n endB = start + (endB - endA);\n endA = start;\n }\n else if (endB < start) {\n let move = preferredPos <= start && preferredPos >= endB ? start - preferredPos : 0;\n start -= move;\n if (start && start < a.size && isSurrogatePair(a.textBetween(start - 1, start + 1)))\n start += move ? 1 : -1;\n endA = start + (endA - endB);\n endB = start;\n }\n return { start, endA, endB };\n}\nfunction isSurrogatePair(str) {\n if (str.length != 2)\n return false;\n let a = str.charCodeAt(0), b = str.charCodeAt(1);\n return a >= 0xDC00 && a <= 0xDFFF && b >= 0xD800 && b <= 0xDBFF;\n}\n\n/**\n@internal\n*/\nconst __serializeForClipboard = serializeForClipboard;\n/**\n@internal\n*/\nconst __parseFromClipboard = parseFromClipboard;\n/**\n@internal\n*/\nconst __endComposition = endComposition;\n/**\nAn editor view manages the DOM structure that represents an\neditable document. Its state and behavior are determined by its\n[props](https://prosemirror.net/docs/ref/#view.DirectEditorProps).\n*/\nclass EditorView {\n /**\n Create a view. `place` may be a DOM node that the editor should\n be appended to, a function that will place it into the document,\n or an object whose `mount` property holds the node to use as the\n document container. If it is `null`, the editor will not be\n added to the document.\n */\n constructor(place, props) {\n this._root = null;\n /**\n @internal\n */\n this.focused = false;\n /**\n Kludge used to work around a Chrome bug @internal\n */\n this.trackWrites = null;\n this.mounted = false;\n /**\n @internal\n */\n this.markCursor = null;\n /**\n @internal\n */\n this.cursorWrapper = null;\n /**\n @internal\n */\n this.lastSelectedViewDesc = undefined;\n /**\n @internal\n */\n this.input = new InputState;\n this.prevDirectPlugins = [];\n this.pluginViews = [];\n /**\n Holds `true` when a hack node is needed in Firefox to prevent the\n [space is eaten issue](https://github.com/ProseMirror/prosemirror/issues/651)\n @internal\n */\n this.requiresGeckoHackNode = false;\n /**\n When editor content is being dragged, this object contains\n information about the dragged slice and whether it is being\n copied or moved. At any other time, it is null.\n */\n this.dragging = null;\n this._props = props;\n this.state = props.state;\n this.directPlugins = props.plugins || [];\n this.directPlugins.forEach(checkStateComponent);\n this.dispatch = this.dispatch.bind(this);\n this.dom = (place && place.mount) || document.createElement(\"div\");\n if (place) {\n if (place.appendChild)\n place.appendChild(this.dom);\n else if (typeof place == \"function\")\n place(this.dom);\n else if (place.mount)\n this.mounted = true;\n }\n this.editable = getEditable(this);\n updateCursorWrapper(this);\n this.nodeViews = buildNodeViews(this);\n this.docView = docViewDesc(this.state.doc, computeDocDeco(this), viewDecorations(this), this.dom, this);\n this.domObserver = new DOMObserver(this, (from, to, typeOver, added) => readDOMChange(this, from, to, typeOver, added));\n this.domObserver.start();\n initInput(this);\n this.updatePluginViews();\n }\n /**\n Holds `true` when a\n [composition](https://w3c.github.io/uievents/#events-compositionevents)\n is active.\n */\n get composing() { return this.input.composing; }\n /**\n The view's current [props](https://prosemirror.net/docs/ref/#view.EditorProps).\n */\n get props() {\n if (this._props.state != this.state) {\n let prev = this._props;\n this._props = {};\n for (let name in prev)\n this._props[name] = prev[name];\n this._props.state = this.state;\n }\n return this._props;\n }\n /**\n Update the view's props. Will immediately cause an update to\n the DOM.\n */\n update(props) {\n if (props.handleDOMEvents != this._props.handleDOMEvents)\n ensureListeners(this);\n let prevProps = this._props;\n this._props = props;\n if (props.plugins) {\n props.plugins.forEach(checkStateComponent);\n this.directPlugins = props.plugins;\n }\n this.updateStateInner(props.state, prevProps);\n }\n /**\n Update the view by updating existing props object with the object\n given as argument. Equivalent to `view.update(Object.assign({},\n view.props, props))`.\n */\n setProps(props) {\n let updated = {};\n for (let name in this._props)\n updated[name] = this._props[name];\n updated.state = this.state;\n for (let name in props)\n updated[name] = props[name];\n this.update(updated);\n }\n /**\n Update the editor's `state` prop, without touching any of the\n other props.\n */\n updateState(state) {\n this.updateStateInner(state, this._props);\n }\n updateStateInner(state, prevProps) {\n var _a;\n let prev = this.state, redraw = false, updateSel = false;\n // When stored marks are added, stop composition, so that they can\n // be displayed.\n if (state.storedMarks && this.composing) {\n clearComposition(this);\n updateSel = true;\n }\n this.state = state;\n let pluginsChanged = prev.plugins != state.plugins || this._props.plugins != prevProps.plugins;\n if (pluginsChanged || this._props.plugins != prevProps.plugins || this._props.nodeViews != prevProps.nodeViews) {\n let nodeViews = buildNodeViews(this);\n if (changedNodeViews(nodeViews, this.nodeViews)) {\n this.nodeViews = nodeViews;\n redraw = true;\n }\n }\n if (pluginsChanged || prevProps.handleDOMEvents != this._props.handleDOMEvents) {\n ensureListeners(this);\n }\n this.editable = getEditable(this);\n updateCursorWrapper(this);\n let innerDeco = viewDecorations(this), outerDeco = computeDocDeco(this);\n let scroll = prev.plugins != state.plugins && !prev.doc.eq(state.doc) ? \"reset\"\n : state.scrollToSelection > prev.scrollToSelection ? \"to selection\" : \"preserve\";\n let updateDoc = redraw || !this.docView.matchesNode(state.doc, outerDeco, innerDeco);\n if (updateDoc || !state.selection.eq(prev.selection))\n updateSel = true;\n let oldScrollPos = scroll == \"preserve\" && updateSel && this.dom.style.overflowAnchor == null && storeScrollPos(this);\n if (updateSel) {\n this.domObserver.stop();\n // Work around an issue in Chrome, IE, and Edge where changing\n // the DOM around an active selection puts it into a broken\n // state where the thing the user sees differs from the\n // selection reported by the Selection object (#710, #973,\n // #1011, #1013, #1035).\n let forceSelUpdate = updateDoc && (ie || chrome) && !this.composing &&\n !prev.selection.empty && !state.selection.empty && selectionContextChanged(prev.selection, state.selection);\n if (updateDoc) {\n // If the node that the selection points into is written to,\n // Chrome sometimes starts misreporting the selection, so this\n // tracks that and forces a selection reset when our update\n // did write to the node.\n let chromeKludge = chrome ? (this.trackWrites = this.domSelectionRange().focusNode) : null;\n if (this.composing)\n this.input.compositionNode = findCompositionNode(this);\n if (redraw || !this.docView.update(state.doc, outerDeco, innerDeco, this)) {\n this.docView.updateOuterDeco(outerDeco);\n this.docView.destroy();\n this.docView = docViewDesc(state.doc, outerDeco, innerDeco, this.dom, this);\n }\n if (chromeKludge && !this.trackWrites)\n forceSelUpdate = true;\n }\n // Work around for an issue where an update arriving right between\n // a DOM selection change and the \"selectionchange\" event for it\n // can cause a spurious DOM selection update, disrupting mouse\n // drag selection.\n if (forceSelUpdate ||\n !(this.input.mouseDown && this.domObserver.currentSelection.eq(this.domSelectionRange()) &&\n anchorInRightPlace(this))) {\n selectionToDOM(this, forceSelUpdate);\n }\n else {\n syncNodeSelection(this, state.selection);\n this.domObserver.setCurSelection();\n }\n this.domObserver.start();\n }\n this.updatePluginViews(prev);\n if (((_a = this.dragging) === null || _a === void 0 ? void 0 : _a.node) && !prev.doc.eq(state.doc))\n this.updateDraggedNode(this.dragging, prev);\n if (scroll == \"reset\") {\n this.dom.scrollTop = 0;\n }\n else if (scroll == \"to selection\") {\n this.scrollToSelection();\n }\n else if (oldScrollPos) {\n resetScrollPos(oldScrollPos);\n }\n }\n /**\n @internal\n */\n scrollToSelection() {\n let startDOM = this.domSelectionRange().focusNode;\n if (this.someProp(\"handleScrollToSelection\", f => f(this))) ;\n else if (this.state.selection instanceof NodeSelection) {\n let target = this.docView.domAfterPos(this.state.selection.from);\n if (target.nodeType == 1)\n scrollRectIntoView(this, target.getBoundingClientRect(), startDOM);\n }\n else {\n scrollRectIntoView(this, this.coordsAtPos(this.state.selection.head, 1), startDOM);\n }\n }\n destroyPluginViews() {\n let view;\n while (view = this.pluginViews.pop())\n if (view.destroy)\n view.destroy();\n }\n updatePluginViews(prevState) {\n if (!prevState || prevState.plugins != this.state.plugins || this.directPlugins != this.prevDirectPlugins) {\n this.prevDirectPlugins = this.directPlugins;\n this.destroyPluginViews();\n for (let i = 0; i < this.directPlugins.length; i++) {\n let plugin = this.directPlugins[i];\n if (plugin.spec.view)\n this.pluginViews.push(plugin.spec.view(this));\n }\n for (let i = 0; i < this.state.plugins.length; i++) {\n let plugin = this.state.plugins[i];\n if (plugin.spec.view)\n this.pluginViews.push(plugin.spec.view(this));\n }\n }\n else {\n for (let i = 0; i < this.pluginViews.length; i++) {\n let pluginView = this.pluginViews[i];\n if (pluginView.update)\n pluginView.update(this, prevState);\n }\n }\n }\n updateDraggedNode(dragging, prev) {\n let sel = dragging.node, found = -1;\n if (this.state.doc.nodeAt(sel.from) == sel.node) {\n found = sel.from;\n }\n else {\n let movedPos = sel.from + (this.state.doc.content.size - prev.doc.content.size);\n let moved = movedPos > 0 && this.state.doc.nodeAt(movedPos);\n if (moved == sel.node)\n found = movedPos;\n }\n this.dragging = new Dragging(dragging.slice, dragging.move, found < 0 ? undefined : NodeSelection.create(this.state.doc, found));\n }\n someProp(propName, f) {\n let prop = this._props && this._props[propName], value;\n if (prop != null && (value = f ? f(prop) : prop))\n return value;\n for (let i = 0; i < this.directPlugins.length; i++) {\n let prop = this.directPlugins[i].props[propName];\n if (prop != null && (value = f ? f(prop) : prop))\n return value;\n }\n let plugins = this.state.plugins;\n if (plugins)\n for (let i = 0; i < plugins.length; i++) {\n let prop = plugins[i].props[propName];\n if (prop != null && (value = f ? f(prop) : prop))\n return value;\n }\n }\n /**\n Query whether the view has focus.\n */\n hasFocus() {\n // Work around IE not handling focus correctly if resize handles are shown.\n // If the cursor is inside an element with resize handles, activeElement\n // will be that element instead of this.dom.\n if (ie) {\n // If activeElement is within this.dom, and there are no other elements\n // setting `contenteditable` to false in between, treat it as focused.\n let node = this.root.activeElement;\n if (node == this.dom)\n return true;\n if (!node || !this.dom.contains(node))\n return false;\n while (node && this.dom != node && this.dom.contains(node)) {\n if (node.contentEditable == 'false')\n return false;\n node = node.parentElement;\n }\n return true;\n }\n return this.root.activeElement == this.dom;\n }\n /**\n Focus the editor.\n */\n focus() {\n this.domObserver.stop();\n if (this.editable)\n focusPreventScroll(this.dom);\n selectionToDOM(this);\n this.domObserver.start();\n }\n /**\n Get the document root in which the editor exists. This will\n usually be the top-level `document`, but might be a [shadow\n DOM](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Shadow_DOM)\n root if the editor is inside one.\n */\n get root() {\n let cached = this._root;\n if (cached == null)\n for (let search = this.dom.parentNode; search; search = search.parentNode) {\n if (search.nodeType == 9 || (search.nodeType == 11 && search.host)) {\n if (!search.getSelection)\n Object.getPrototypeOf(search).getSelection = () => search.ownerDocument.getSelection();\n return this._root = search;\n }\n }\n return cached || document;\n }\n /**\n When an existing editor view is moved to a new document or\n shadow tree, call this to make it recompute its root.\n */\n updateRoot() {\n this._root = null;\n }\n /**\n Given a pair of viewport coordinates, return the document\n position that corresponds to them. May return null if the given\n coordinates aren't inside of the editor. When an object is\n returned, its `pos` property is the position nearest to the\n coordinates, and its `inside` property holds the position of the\n inner node that the position falls inside of, or -1 if it is at\n the top level, not in any node.\n */\n posAtCoords(coords) {\n return posAtCoords(this, coords);\n }\n /**\n Returns the viewport rectangle at a given document position.\n `left` and `right` will be the same number, as this returns a\n flat cursor-ish rectangle. If the position is between two things\n that aren't directly adjacent, `side` determines which element\n is used. When < 0, the element before the position is used,\n otherwise the element after.\n */\n coordsAtPos(pos, side = 1) {\n return coordsAtPos(this, pos, side);\n }\n /**\n Find the DOM position that corresponds to the given document\n position. When `side` is negative, find the position as close as\n possible to the content before the position. When positive,\n prefer positions close to the content after the position. When\n zero, prefer as shallow a position as possible.\n \n Note that you should **not** mutate the editor's internal DOM,\n only inspect it (and even that is usually not necessary).\n */\n domAtPos(pos, side = 0) {\n return this.docView.domFromPos(pos, side);\n }\n /**\n Find the DOM node that represents the document node after the\n given position. May return `null` when the position doesn't point\n in front of a node or if the node is inside an opaque node view.\n \n This is intended to be able to call things like\n `getBoundingClientRect` on that DOM node. Do **not** mutate the\n editor DOM directly, or add styling this way, since that will be\n immediately overriden by the editor as it redraws the node.\n */\n nodeDOM(pos) {\n let desc = this.docView.descAt(pos);\n return desc ? desc.nodeDOM : null;\n }\n /**\n Find the document position that corresponds to a given DOM\n position. (Whenever possible, it is preferable to inspect the\n document structure directly, rather than poking around in the\n DOM, but sometimes—for example when interpreting an event\n target—you don't have a choice.)\n \n The `bias` parameter can be used to influence which side of a DOM\n node to use when the position is inside a leaf node.\n */\n posAtDOM(node, offset, bias = -1) {\n let pos = this.docView.posFromDOM(node, offset, bias);\n if (pos == null)\n throw new RangeError(\"DOM position not inside the editor\");\n return pos;\n }\n /**\n Find out whether the selection is at the end of a textblock when\n moving in a given direction. When, for example, given `\"left\"`,\n it will return true if moving left from the current cursor\n position would leave that position's parent textblock. Will apply\n to the view's current state by default, but it is possible to\n pass a different state.\n */\n endOfTextblock(dir, state) {\n return endOfTextblock(this, state || this.state, dir);\n }\n /**\n Run the editor's paste logic with the given HTML string. The\n `event`, if given, will be passed to the\n [`handlePaste`](https://prosemirror.net/docs/ref/#view.EditorProps.handlePaste) hook.\n */\n pasteHTML(html, event) {\n return doPaste(this, \"\", html, false, event || new ClipboardEvent(\"paste\"));\n }\n /**\n Run the editor's paste logic with the given plain-text input.\n */\n pasteText(text, event) {\n return doPaste(this, text, null, true, event || new ClipboardEvent(\"paste\"));\n }\n /**\n Removes the editor from the DOM and destroys all [node\n views](https://prosemirror.net/docs/ref/#view.NodeView).\n */\n destroy() {\n if (!this.docView)\n return;\n destroyInput(this);\n this.destroyPluginViews();\n if (this.mounted) {\n this.docView.update(this.state.doc, [], viewDecorations(this), this);\n this.dom.textContent = \"\";\n }\n else if (this.dom.parentNode) {\n this.dom.parentNode.removeChild(this.dom);\n }\n this.docView.destroy();\n this.docView = null;\n clearReusedRange();\n }\n /**\n This is true when the view has been\n [destroyed](https://prosemirror.net/docs/ref/#view.EditorView.destroy) (and thus should not be\n used anymore).\n */\n get isDestroyed() {\n return this.docView == null;\n }\n /**\n Used for testing.\n */\n dispatchEvent(event) {\n return dispatchEvent(this, event);\n }\n /**\n Dispatch a transaction. Will call\n [`dispatchTransaction`](https://prosemirror.net/docs/ref/#view.DirectEditorProps.dispatchTransaction)\n when given, and otherwise defaults to applying the transaction to\n the current state and calling\n [`updateState`](https://prosemirror.net/docs/ref/#view.EditorView.updateState) with the result.\n This method is bound to the view instance, so that it can be\n easily passed around.\n */\n dispatch(tr) {\n let dispatchTransaction = this._props.dispatchTransaction;\n if (dispatchTransaction)\n dispatchTransaction.call(this, tr);\n else\n this.updateState(this.state.apply(tr));\n }\n /**\n @internal\n */\n domSelectionRange() {\n let sel = this.domSelection();\n if (!sel)\n return { focusNode: null, focusOffset: 0, anchorNode: null, anchorOffset: 0 };\n return safari && this.root.nodeType === 11 &&\n deepActiveElement(this.dom.ownerDocument) == this.dom && safariShadowSelectionRange(this, sel) || sel;\n }\n /**\n @internal\n */\n domSelection() {\n return this.root.getSelection();\n }\n}\nfunction computeDocDeco(view) {\n let attrs = Object.create(null);\n attrs.class = \"ProseMirror\";\n attrs.contenteditable = String(view.editable);\n view.someProp(\"attributes\", value => {\n if (typeof value == \"function\")\n value = value(view.state);\n if (value)\n for (let attr in value) {\n if (attr == \"class\")\n attrs.class += \" \" + value[attr];\n else if (attr == \"style\")\n attrs.style = (attrs.style ? attrs.style + \";\" : \"\") + value[attr];\n else if (!attrs[attr] && attr != \"contenteditable\" && attr != \"nodeName\")\n attrs[attr] = String(value[attr]);\n }\n });\n if (!attrs.translate)\n attrs.translate = \"no\";\n return [Decoration.node(0, view.state.doc.content.size, attrs)];\n}\nfunction updateCursorWrapper(view) {\n if (view.markCursor) {\n let dom = document.createElement(\"img\");\n dom.className = \"ProseMirror-separator\";\n dom.setAttribute(\"mark-placeholder\", \"true\");\n dom.setAttribute(\"alt\", \"\");\n view.cursorWrapper = { dom, deco: Decoration.widget(view.state.selection.from, dom, { raw: true, marks: view.markCursor }) };\n }\n else {\n view.cursorWrapper = null;\n }\n}\nfunction getEditable(view) {\n return !view.someProp(\"editable\", value => value(view.state) === false);\n}\nfunction selectionContextChanged(sel1, sel2) {\n let depth = Math.min(sel1.$anchor.sharedDepth(sel1.head), sel2.$anchor.sharedDepth(sel2.head));\n return sel1.$anchor.start(depth) != sel2.$anchor.start(depth);\n}\nfunction buildNodeViews(view) {\n let result = Object.create(null);\n function add(obj) {\n for (let prop in obj)\n if (!Object.prototype.hasOwnProperty.call(result, prop))\n result[prop] = obj[prop];\n }\n view.someProp(\"nodeViews\", add);\n view.someProp(\"markViews\", add);\n return result;\n}\nfunction changedNodeViews(a, b) {\n let nA = 0, nB = 0;\n for (let prop in a) {\n if (a[prop] != b[prop])\n return true;\n nA++;\n }\n for (let _ in b)\n nB++;\n return nA != nB;\n}\nfunction checkStateComponent(plugin) {\n if (plugin.spec.state || plugin.spec.filterTransaction || plugin.spec.appendTransaction)\n throw new RangeError(\"Plugins passed directly to the view must not have a state component\");\n}\n\nexport { Decoration, DecorationSet, EditorView, __endComposition, __parseFromClipboard, __serializeForClipboard };\n","export var base = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 10: \"Enter\",\n 12: \"NumLock\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 44: \"PrintScreen\",\n 45: \"Insert\",\n 46: \"Delete\",\n 59: \";\",\n 61: \"=\",\n 91: \"Meta\",\n 92: \"Meta\",\n 106: \"*\",\n 107: \"+\",\n 108: \",\",\n 109: \"-\",\n 110: \".\",\n 111: \"/\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 160: \"Shift\",\n 161: \"Shift\",\n 162: \"Control\",\n 163: \"Control\",\n 164: \"Alt\",\n 165: \"Alt\",\n 173: \"-\",\n 186: \";\",\n 187: \"=\",\n 188: \",\",\n 189: \"-\",\n 190: \".\",\n 191: \"/\",\n 192: \"`\",\n 219: \"[\",\n 220: \"\\\\\",\n 221: \"]\",\n 222: \"'\"\n}\n\nexport var shift = {\n 48: \")\",\n 49: \"!\",\n 50: \"@\",\n 51: \"#\",\n 52: \"$\",\n 53: \"%\",\n 54: \"^\",\n 55: \"&\",\n 56: \"*\",\n 57: \"(\",\n 59: \":\",\n 61: \"+\",\n 173: \"_\",\n 186: \":\",\n 187: \"+\",\n 188: \"<\",\n 189: \"_\",\n 190: \">\",\n 191: \"?\",\n 192: \"~\",\n 219: \"{\",\n 220: \"|\",\n 221: \"}\",\n 222: \"\\\"\"\n}\n\nvar mac = typeof navigator != \"undefined\" && /Mac/.test(navigator.platform)\nvar ie = typeof navigator != \"undefined\" && /MSIE \\d|Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(navigator.userAgent)\n\n// Fill in the digit keys\nfor (var i = 0; i < 10; i++) base[48 + i] = base[96 + i] = String(i)\n\n// The function keys\nfor (var i = 1; i <= 24; i++) base[i + 111] = \"F\" + i\n\n// And the alphabetic keys\nfor (var i = 65; i <= 90; i++) {\n base[i] = String.fromCharCode(i + 32)\n shift[i] = String.fromCharCode(i)\n}\n\n// For each code that doesn't have a shift-equivalent, copy the base name\nfor (var code in base) if (!shift.hasOwnProperty(code)) shift[code] = base[code]\n\nexport function keyName(event) {\n // On macOS, keys held with Shift and Cmd don't reflect the effect of Shift in `.key`.\n // On IE, shift effect is never included in `.key`.\n var ignoreKey = mac && event.metaKey && event.shiftKey && !event.ctrlKey && !event.altKey ||\n ie && event.shiftKey && event.key && event.key.length == 1 ||\n event.key == \"Unidentified\"\n var name = (!ignoreKey && event.key) ||\n (event.shiftKey ? shift : base)[event.keyCode] ||\n event.key || \"Unidentified\"\n // Edge sometimes produces wrong names (Issue #3)\n if (name == \"Esc\") name = \"Escape\"\n if (name == \"Del\") name = \"Delete\"\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8860571/\n if (name == \"Left\") name = \"ArrowLeft\"\n if (name == \"Up\") name = \"ArrowUp\"\n if (name == \"Right\") name = \"ArrowRight\"\n if (name == \"Down\") name = \"ArrowDown\"\n return name\n}\n","import OrderedMap from 'orderedmap';\n\nfunction findDiffStart(a, b, pos) {\n for (let i = 0;; i++) {\n if (i == a.childCount || i == b.childCount)\n return a.childCount == b.childCount ? null : pos;\n let childA = a.child(i), childB = b.child(i);\n if (childA == childB) {\n pos += childA.nodeSize;\n continue;\n }\n if (!childA.sameMarkup(childB))\n return pos;\n if (childA.isText && childA.text != childB.text) {\n for (let j = 0; childA.text[j] == childB.text[j]; j++)\n pos++;\n return pos;\n }\n if (childA.content.size || childB.content.size) {\n let inner = findDiffStart(childA.content, childB.content, pos + 1);\n if (inner != null)\n return inner;\n }\n pos += childA.nodeSize;\n }\n}\nfunction findDiffEnd(a, b, posA, posB) {\n for (let iA = a.childCount, iB = b.childCount;;) {\n if (iA == 0 || iB == 0)\n return iA == iB ? null : { a: posA, b: posB };\n let childA = a.child(--iA), childB = b.child(--iB), size = childA.nodeSize;\n if (childA == childB) {\n posA -= size;\n posB -= size;\n continue;\n }\n if (!childA.sameMarkup(childB))\n return { a: posA, b: posB };\n if (childA.isText && childA.text != childB.text) {\n let same = 0, minSize = Math.min(childA.text.length, childB.text.length);\n while (same < minSize && childA.text[childA.text.length - same - 1] == childB.text[childB.text.length - same - 1]) {\n same++;\n posA--;\n posB--;\n }\n return { a: posA, b: posB };\n }\n if (childA.content.size || childB.content.size) {\n let inner = findDiffEnd(childA.content, childB.content, posA - 1, posB - 1);\n if (inner)\n return inner;\n }\n posA -= size;\n posB -= size;\n }\n}\n\n/**\nA fragment represents a node's collection of child nodes.\n\nLike nodes, fragments are persistent data structures, and you\nshould not mutate them or their content. Rather, you create new\ninstances whenever needed. The API tries to make this easy.\n*/\nclass Fragment {\n /**\n @internal\n */\n constructor(\n /**\n The child nodes in this fragment.\n */\n content, size) {\n this.content = content;\n this.size = size || 0;\n if (size == null)\n for (let i = 0; i < content.length; i++)\n this.size += content[i].nodeSize;\n }\n /**\n Invoke a callback for all descendant nodes between the given two\n positions (relative to start of this fragment). Doesn't descend\n into a node when the callback returns `false`.\n */\n nodesBetween(from, to, f, nodeStart = 0, parent) {\n for (let i = 0, pos = 0; pos < to; i++) {\n let child = this.content[i], end = pos + child.nodeSize;\n if (end > from && f(child, nodeStart + pos, parent || null, i) !== false && child.content.size) {\n let start = pos + 1;\n child.nodesBetween(Math.max(0, from - start), Math.min(child.content.size, to - start), f, nodeStart + start);\n }\n pos = end;\n }\n }\n /**\n Call the given callback for every descendant node. `pos` will be\n relative to the start of the fragment. The callback may return\n `false` to prevent traversal of a given node's children.\n */\n descendants(f) {\n this.nodesBetween(0, this.size, f);\n }\n /**\n Extract the text between `from` and `to`. See the same method on\n [`Node`](https://prosemirror.net/docs/ref/#model.Node.textBetween).\n */\n textBetween(from, to, blockSeparator, leafText) {\n let text = \"\", first = true;\n this.nodesBetween(from, to, (node, pos) => {\n let nodeText = node.isText ? node.text.slice(Math.max(from, pos) - pos, to - pos)\n : !node.isLeaf ? \"\"\n : leafText ? (typeof leafText === \"function\" ? leafText(node) : leafText)\n : node.type.spec.leafText ? node.type.spec.leafText(node)\n : \"\";\n if (node.isBlock && (node.isLeaf && nodeText || node.isTextblock) && blockSeparator) {\n if (first)\n first = false;\n else\n text += blockSeparator;\n }\n text += nodeText;\n }, 0);\n return text;\n }\n /**\n Create a new fragment containing the combined content of this\n fragment and the other.\n */\n append(other) {\n if (!other.size)\n return this;\n if (!this.size)\n return other;\n let last = this.lastChild, first = other.firstChild, content = this.content.slice(), i = 0;\n if (last.isText && last.sameMarkup(first)) {\n content[content.length - 1] = last.withText(last.text + first.text);\n i = 1;\n }\n for (; i < other.content.length; i++)\n content.push(other.content[i]);\n return new Fragment(content, this.size + other.size);\n }\n /**\n Cut out the sub-fragment between the two given positions.\n */\n cut(from, to = this.size) {\n if (from == 0 && to == this.size)\n return this;\n let result = [], size = 0;\n if (to > from)\n for (let i = 0, pos = 0; pos < to; i++) {\n let child = this.content[i], end = pos + child.nodeSize;\n if (end > from) {\n if (pos < from || end > to) {\n if (child.isText)\n child = child.cut(Math.max(0, from - pos), Math.min(child.text.length, to - pos));\n else\n child = child.cut(Math.max(0, from - pos - 1), Math.min(child.content.size, to - pos - 1));\n }\n result.push(child);\n size += child.nodeSize;\n }\n pos = end;\n }\n return new Fragment(result, size);\n }\n /**\n @internal\n */\n cutByIndex(from, to) {\n if (from == to)\n return Fragment.empty;\n if (from == 0 && to == this.content.length)\n return this;\n return new Fragment(this.content.slice(from, to));\n }\n /**\n Create a new fragment in which the node at the given index is\n replaced by the given node.\n */\n replaceChild(index, node) {\n let current = this.content[index];\n if (current == node)\n return this;\n let copy = this.content.slice();\n let size = this.size + node.nodeSize - current.nodeSize;\n copy[index] = node;\n return new Fragment(copy, size);\n }\n /**\n Create a new fragment by prepending the given node to this\n fragment.\n */\n addToStart(node) {\n return new Fragment([node].concat(this.content), this.size + node.nodeSize);\n }\n /**\n Create a new fragment by appending the given node to this\n fragment.\n */\n addToEnd(node) {\n return new Fragment(this.content.concat(node), this.size + node.nodeSize);\n }\n /**\n Compare this fragment to another one.\n */\n eq(other) {\n if (this.content.length != other.content.length)\n return false;\n for (let i = 0; i < this.content.length; i++)\n if (!this.content[i].eq(other.content[i]))\n return false;\n return true;\n }\n /**\n The first child of the fragment, or `null` if it is empty.\n */\n get firstChild() { return this.content.length ? this.content[0] : null; }\n /**\n The last child of the fragment, or `null` if it is empty.\n */\n get lastChild() { return this.content.length ? this.content[this.content.length - 1] : null; }\n /**\n The number of child nodes in this fragment.\n */\n get childCount() { return this.content.length; }\n /**\n Get the child node at the given index. Raise an error when the\n index is out of range.\n */\n child(index) {\n let found = this.content[index];\n if (!found)\n throw new RangeError(\"Index \" + index + \" out of range for \" + this);\n return found;\n }\n /**\n Get the child node at the given index, if it exists.\n */\n maybeChild(index) {\n return this.content[index] || null;\n }\n /**\n Call `f` for every child node, passing the node, its offset\n into this parent node, and its index.\n */\n forEach(f) {\n for (let i = 0, p = 0; i < this.content.length; i++) {\n let child = this.content[i];\n f(child, p, i);\n p += child.nodeSize;\n }\n }\n /**\n Find the first position at which this fragment and another\n fragment differ, or `null` if they are the same.\n */\n findDiffStart(other, pos = 0) {\n return findDiffStart(this, other, pos);\n }\n /**\n Find the first position, searching from the end, at which this\n fragment and the given fragment differ, or `null` if they are\n the same. Since this position will not be the same in both\n nodes, an object with two separate positions is returned.\n */\n findDiffEnd(other, pos = this.size, otherPos = other.size) {\n return findDiffEnd(this, other, pos, otherPos);\n }\n /**\n Find the index and inner offset corresponding to a given relative\n position in this fragment. The result object will be reused\n (overwritten) the next time the function is called. @internal\n */\n findIndex(pos, round = -1) {\n if (pos == 0)\n return retIndex(0, pos);\n if (pos == this.size)\n return retIndex(this.content.length, pos);\n if (pos > this.size || pos < 0)\n throw new RangeError(`Position ${pos} outside of fragment (${this})`);\n for (let i = 0, curPos = 0;; i++) {\n let cur = this.child(i), end = curPos + cur.nodeSize;\n if (end >= pos) {\n if (end == pos || round > 0)\n return retIndex(i + 1, end);\n return retIndex(i, curPos);\n }\n curPos = end;\n }\n }\n /**\n Return a debugging string that describes this fragment.\n */\n toString() { return \"<\" + this.toStringInner() + \">\"; }\n /**\n @internal\n */\n toStringInner() { return this.content.join(\", \"); }\n /**\n Create a JSON-serializeable representation of this fragment.\n */\n toJSON() {\n return this.content.length ? this.content.map(n => n.toJSON()) : null;\n }\n /**\n Deserialize a fragment from its JSON representation.\n */\n static fromJSON(schema, value) {\n if (!value)\n return Fragment.empty;\n if (!Array.isArray(value))\n throw new RangeError(\"Invalid input for Fragment.fromJSON\");\n return new Fragment(value.map(schema.nodeFromJSON));\n }\n /**\n Build a fragment from an array of nodes. Ensures that adjacent\n text nodes with the same marks are joined together.\n */\n static fromArray(array) {\n if (!array.length)\n return Fragment.empty;\n let joined, size = 0;\n for (let i = 0; i < array.length; i++) {\n let node = array[i];\n size += node.nodeSize;\n if (i && node.isText && array[i - 1].sameMarkup(node)) {\n if (!joined)\n joined = array.slice(0, i);\n joined[joined.length - 1] = node\n .withText(joined[joined.length - 1].text + node.text);\n }\n else if (joined) {\n joined.push(node);\n }\n }\n return new Fragment(joined || array, size);\n }\n /**\n Create a fragment from something that can be interpreted as a\n set of nodes. For `null`, it returns the empty fragment. For a\n fragment, the fragment itself. For a node or array of nodes, a\n fragment containing those nodes.\n */\n static from(nodes) {\n if (!nodes)\n return Fragment.empty;\n if (nodes instanceof Fragment)\n return nodes;\n if (Array.isArray(nodes))\n return this.fromArray(nodes);\n if (nodes.attrs)\n return new Fragment([nodes], nodes.nodeSize);\n throw new RangeError(\"Can not convert \" + nodes + \" to a Fragment\" +\n (nodes.nodesBetween ? \" (looks like multiple versions of prosemirror-model were loaded)\" : \"\"));\n }\n}\n/**\nAn empty fragment. Intended to be reused whenever a node doesn't\ncontain anything (rather than allocating a new empty fragment for\neach leaf node).\n*/\nFragment.empty = new Fragment([], 0);\nconst found = { index: 0, offset: 0 };\nfunction retIndex(index, offset) {\n found.index = index;\n found.offset = offset;\n return found;\n}\n\nfunction compareDeep(a, b) {\n if (a === b)\n return true;\n if (!(a && typeof a == \"object\") ||\n !(b && typeof b == \"object\"))\n return false;\n let array = Array.isArray(a);\n if (Array.isArray(b) != array)\n return false;\n if (array) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!compareDeep(a[i], b[i]))\n return false;\n }\n else {\n for (let p in a)\n if (!(p in b) || !compareDeep(a[p], b[p]))\n return false;\n for (let p in b)\n if (!(p in a))\n return false;\n }\n return true;\n}\n\n/**\nA mark is a piece of information that can be attached to a node,\nsuch as it being emphasized, in code font, or a link. It has a\ntype and optionally a set of attributes that provide further\ninformation (such as the target of the link). Marks are created\nthrough a `Schema`, which controls which types exist and which\nattributes they have.\n*/\nclass Mark {\n /**\n @internal\n */\n constructor(\n /**\n The type of this mark.\n */\n type, \n /**\n The attributes associated with this mark.\n */\n attrs) {\n this.type = type;\n this.attrs = attrs;\n }\n /**\n Given a set of marks, create a new set which contains this one as\n well, in the right position. If this mark is already in the set,\n the set itself is returned. If any marks that are set to be\n [exclusive](https://prosemirror.net/docs/ref/#model.MarkSpec.excludes) with this mark are present,\n those are replaced by this one.\n */\n addToSet(set) {\n let copy, placed = false;\n for (let i = 0; i < set.length; i++) {\n let other = set[i];\n if (this.eq(other))\n return set;\n if (this.type.excludes(other.type)) {\n if (!copy)\n copy = set.slice(0, i);\n }\n else if (other.type.excludes(this.type)) {\n return set;\n }\n else {\n if (!placed && other.type.rank > this.type.rank) {\n if (!copy)\n copy = set.slice(0, i);\n copy.push(this);\n placed = true;\n }\n if (copy)\n copy.push(other);\n }\n }\n if (!copy)\n copy = set.slice();\n if (!placed)\n copy.push(this);\n return copy;\n }\n /**\n Remove this mark from the given set, returning a new set. If this\n mark is not in the set, the set itself is returned.\n */\n removeFromSet(set) {\n for (let i = 0; i < set.length; i++)\n if (this.eq(set[i]))\n return set.slice(0, i).concat(set.slice(i + 1));\n return set;\n }\n /**\n Test whether this mark is in the given set of marks.\n */\n isInSet(set) {\n for (let i = 0; i < set.length; i++)\n if (this.eq(set[i]))\n return true;\n return false;\n }\n /**\n Test whether this mark has the same type and attributes as\n another mark.\n */\n eq(other) {\n return this == other ||\n (this.type == other.type && compareDeep(this.attrs, other.attrs));\n }\n /**\n Convert this mark to a JSON-serializeable representation.\n */\n toJSON() {\n let obj = { type: this.type.name };\n for (let _ in this.attrs) {\n obj.attrs = this.attrs;\n break;\n }\n return obj;\n }\n /**\n Deserialize a mark from JSON.\n */\n static fromJSON(schema, json) {\n if (!json)\n throw new RangeError(\"Invalid input for Mark.fromJSON\");\n let type = schema.marks[json.type];\n if (!type)\n throw new RangeError(`There is no mark type ${json.type} in this schema`);\n let mark = type.create(json.attrs);\n type.checkAttrs(mark.attrs);\n return mark;\n }\n /**\n Test whether two sets of marks are identical.\n */\n static sameSet(a, b) {\n if (a == b)\n return true;\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!a[i].eq(b[i]))\n return false;\n return true;\n }\n /**\n Create a properly sorted mark set from null, a single mark, or an\n unsorted array of marks.\n */\n static setFrom(marks) {\n if (!marks || Array.isArray(marks) && marks.length == 0)\n return Mark.none;\n if (marks instanceof Mark)\n return [marks];\n let copy = marks.slice();\n copy.sort((a, b) => a.type.rank - b.type.rank);\n return copy;\n }\n}\n/**\nThe empty set of marks.\n*/\nMark.none = [];\n\n/**\nError type raised by [`Node.replace`](https://prosemirror.net/docs/ref/#model.Node.replace) when\ngiven an invalid replacement.\n*/\nclass ReplaceError extends Error {\n}\n/*\nReplaceError = function(this: any, message: string) {\n let err = Error.call(this, message)\n ;(err as any).__proto__ = ReplaceError.prototype\n return err\n} as any\n\nReplaceError.prototype = Object.create(Error.prototype)\nReplaceError.prototype.constructor = ReplaceError\nReplaceError.prototype.name = \"ReplaceError\"\n*/\n/**\nA slice represents a piece cut out of a larger document. It\nstores not only a fragment, but also the depth up to which nodes on\nboth side are ‘open’ (cut through).\n*/\nclass Slice {\n /**\n Create a slice. When specifying a non-zero open depth, you must\n make sure that there are nodes of at least that depth at the\n appropriate side of the fragment—i.e. if the fragment is an\n empty paragraph node, `openStart` and `openEnd` can't be greater\n than 1.\n \n It is not necessary for the content of open nodes to conform to\n the schema's content constraints, though it should be a valid\n start/end/middle for such a node, depending on which sides are\n open.\n */\n constructor(\n /**\n The slice's content.\n */\n content, \n /**\n The open depth at the start of the fragment.\n */\n openStart, \n /**\n The open depth at the end.\n */\n openEnd) {\n this.content = content;\n this.openStart = openStart;\n this.openEnd = openEnd;\n }\n /**\n The size this slice would add when inserted into a document.\n */\n get size() {\n return this.content.size - this.openStart - this.openEnd;\n }\n /**\n @internal\n */\n insertAt(pos, fragment) {\n let content = insertInto(this.content, pos + this.openStart, fragment);\n return content && new Slice(content, this.openStart, this.openEnd);\n }\n /**\n @internal\n */\n removeBetween(from, to) {\n return new Slice(removeRange(this.content, from + this.openStart, to + this.openStart), this.openStart, this.openEnd);\n }\n /**\n Tests whether this slice is equal to another slice.\n */\n eq(other) {\n return this.content.eq(other.content) && this.openStart == other.openStart && this.openEnd == other.openEnd;\n }\n /**\n @internal\n */\n toString() {\n return this.content + \"(\" + this.openStart + \",\" + this.openEnd + \")\";\n }\n /**\n Convert a slice to a JSON-serializable representation.\n */\n toJSON() {\n if (!this.content.size)\n return null;\n let json = { content: this.content.toJSON() };\n if (this.openStart > 0)\n json.openStart = this.openStart;\n if (this.openEnd > 0)\n json.openEnd = this.openEnd;\n return json;\n }\n /**\n Deserialize a slice from its JSON representation.\n */\n static fromJSON(schema, json) {\n if (!json)\n return Slice.empty;\n let openStart = json.openStart || 0, openEnd = json.openEnd || 0;\n if (typeof openStart != \"number\" || typeof openEnd != \"number\")\n throw new RangeError(\"Invalid input for Slice.fromJSON\");\n return new Slice(Fragment.fromJSON(schema, json.content), openStart, openEnd);\n }\n /**\n Create a slice from a fragment by taking the maximum possible\n open value on both side of the fragment.\n */\n static maxOpen(fragment, openIsolating = true) {\n let openStart = 0, openEnd = 0;\n for (let n = fragment.firstChild; n && !n.isLeaf && (openIsolating || !n.type.spec.isolating); n = n.firstChild)\n openStart++;\n for (let n = fragment.lastChild; n && !n.isLeaf && (openIsolating || !n.type.spec.isolating); n = n.lastChild)\n openEnd++;\n return new Slice(fragment, openStart, openEnd);\n }\n}\n/**\nThe empty slice.\n*/\nSlice.empty = new Slice(Fragment.empty, 0, 0);\nfunction removeRange(content, from, to) {\n let { index, offset } = content.findIndex(from), child = content.maybeChild(index);\n let { index: indexTo, offset: offsetTo } = content.findIndex(to);\n if (offset == from || child.isText) {\n if (offsetTo != to && !content.child(indexTo).isText)\n throw new RangeError(\"Removing non-flat range\");\n return content.cut(0, from).append(content.cut(to));\n }\n if (index != indexTo)\n throw new RangeError(\"Removing non-flat range\");\n return content.replaceChild(index, child.copy(removeRange(child.content, from - offset - 1, to - offset - 1)));\n}\nfunction insertInto(content, dist, insert, parent) {\n let { index, offset } = content.findIndex(dist), child = content.maybeChild(index);\n if (offset == dist || child.isText) {\n if (parent && !parent.canReplace(index, index, insert))\n return null;\n return content.cut(0, dist).append(insert).append(content.cut(dist));\n }\n let inner = insertInto(child.content, dist - offset - 1, insert);\n return inner && content.replaceChild(index, child.copy(inner));\n}\nfunction replace($from, $to, slice) {\n if (slice.openStart > $from.depth)\n throw new ReplaceError(\"Inserted content deeper than insertion position\");\n if ($from.depth - slice.openStart != $to.depth - slice.openEnd)\n throw new ReplaceError(\"Inconsistent open depths\");\n return replaceOuter($from, $to, slice, 0);\n}\nfunction replaceOuter($from, $to, slice, depth) {\n let index = $from.index(depth), node = $from.node(depth);\n if (index == $to.index(depth) && depth < $from.depth - slice.openStart) {\n let inner = replaceOuter($from, $to, slice, depth + 1);\n return node.copy(node.content.replaceChild(index, inner));\n }\n else if (!slice.content.size) {\n return close(node, replaceTwoWay($from, $to, depth));\n }\n else if (!slice.openStart && !slice.openEnd && $from.depth == depth && $to.depth == depth) { // Simple, flat case\n let parent = $from.parent, content = parent.content;\n return close(parent, content.cut(0, $from.parentOffset).append(slice.content).append(content.cut($to.parentOffset)));\n }\n else {\n let { start, end } = prepareSliceForReplace(slice, $from);\n return close(node, replaceThreeWay($from, start, end, $to, depth));\n }\n}\nfunction checkJoin(main, sub) {\n if (!sub.type.compatibleContent(main.type))\n throw new ReplaceError(\"Cannot join \" + sub.type.name + \" onto \" + main.type.name);\n}\nfunction joinable($before, $after, depth) {\n let node = $before.node(depth);\n checkJoin(node, $after.node(depth));\n return node;\n}\nfunction addNode(child, target) {\n let last = target.length - 1;\n if (last >= 0 && child.isText && child.sameMarkup(target[last]))\n target[last] = child.withText(target[last].text + child.text);\n else\n target.push(child);\n}\nfunction addRange($start, $end, depth, target) {\n let node = ($end || $start).node(depth);\n let startIndex = 0, endIndex = $end ? $end.index(depth) : node.childCount;\n if ($start) {\n startIndex = $start.index(depth);\n if ($start.depth > depth) {\n startIndex++;\n }\n else if ($start.textOffset) {\n addNode($start.nodeAfter, target);\n startIndex++;\n }\n }\n for (let i = startIndex; i < endIndex; i++)\n addNode(node.child(i), target);\n if ($end && $end.depth == depth && $end.textOffset)\n addNode($end.nodeBefore, target);\n}\nfunction close(node, content) {\n node.type.checkContent(content);\n return node.copy(content);\n}\nfunction replaceThreeWay($from, $start, $end, $to, depth) {\n let openStart = $from.depth > depth && joinable($from, $start, depth + 1);\n let openEnd = $to.depth > depth && joinable($end, $to, depth + 1);\n let content = [];\n addRange(null, $from, depth, content);\n if (openStart && openEnd && $start.index(depth) == $end.index(depth)) {\n checkJoin(openStart, openEnd);\n addNode(close(openStart, replaceThreeWay($from, $start, $end, $to, depth + 1)), content);\n }\n else {\n if (openStart)\n addNode(close(openStart, replaceTwoWay($from, $start, depth + 1)), content);\n addRange($start, $end, depth, content);\n if (openEnd)\n addNode(close(openEnd, replaceTwoWay($end, $to, depth + 1)), content);\n }\n addRange($to, null, depth, content);\n return new Fragment(content);\n}\nfunction replaceTwoWay($from, $to, depth) {\n let content = [];\n addRange(null, $from, depth, content);\n if ($from.depth > depth) {\n let type = joinable($from, $to, depth + 1);\n addNode(close(type, replaceTwoWay($from, $to, depth + 1)), content);\n }\n addRange($to, null, depth, content);\n return new Fragment(content);\n}\nfunction prepareSliceForReplace(slice, $along) {\n let extra = $along.depth - slice.openStart, parent = $along.node(extra);\n let node = parent.copy(slice.content);\n for (let i = extra - 1; i >= 0; i--)\n node = $along.node(i).copy(Fragment.from(node));\n return { start: node.resolveNoCache(slice.openStart + extra),\n end: node.resolveNoCache(node.content.size - slice.openEnd - extra) };\n}\n\n/**\nYou can [_resolve_](https://prosemirror.net/docs/ref/#model.Node.resolve) a position to get more\ninformation about it. Objects of this class represent such a\nresolved position, providing various pieces of context\ninformation, and some helper methods.\n\nThroughout this interface, methods that take an optional `depth`\nparameter will interpret undefined as `this.depth` and negative\nnumbers as `this.depth + value`.\n*/\nclass ResolvedPos {\n /**\n @internal\n */\n constructor(\n /**\n The position that was resolved.\n */\n pos, \n /**\n @internal\n */\n path, \n /**\n The offset this position has into its parent node.\n */\n parentOffset) {\n this.pos = pos;\n this.path = path;\n this.parentOffset = parentOffset;\n this.depth = path.length / 3 - 1;\n }\n /**\n @internal\n */\n resolveDepth(val) {\n if (val == null)\n return this.depth;\n if (val < 0)\n return this.depth + val;\n return val;\n }\n /**\n The parent node that the position points into. Note that even if\n a position points into a text node, that node is not considered\n the parent—text nodes are ‘flat’ in this model, and have no content.\n */\n get parent() { return this.node(this.depth); }\n /**\n The root node in which the position was resolved.\n */\n get doc() { return this.node(0); }\n /**\n The ancestor node at the given level. `p.node(p.depth)` is the\n same as `p.parent`.\n */\n node(depth) { return this.path[this.resolveDepth(depth) * 3]; }\n /**\n The index into the ancestor at the given level. If this points\n at the 3rd node in the 2nd paragraph on the top level, for\n example, `p.index(0)` is 1 and `p.index(1)` is 2.\n */\n index(depth) { return this.path[this.resolveDepth(depth) * 3 + 1]; }\n /**\n The index pointing after this position into the ancestor at the\n given level.\n */\n indexAfter(depth) {\n depth = this.resolveDepth(depth);\n return this.index(depth) + (depth == this.depth && !this.textOffset ? 0 : 1);\n }\n /**\n The (absolute) position at the start of the node at the given\n level.\n */\n start(depth) {\n depth = this.resolveDepth(depth);\n return depth == 0 ? 0 : this.path[depth * 3 - 1] + 1;\n }\n /**\n The (absolute) position at the end of the node at the given\n level.\n */\n end(depth) {\n depth = this.resolveDepth(depth);\n return this.start(depth) + this.node(depth).content.size;\n }\n /**\n The (absolute) position directly before the wrapping node at the\n given level, or, when `depth` is `this.depth + 1`, the original\n position.\n */\n before(depth) {\n depth = this.resolveDepth(depth);\n if (!depth)\n throw new RangeError(\"There is no position before the top-level node\");\n return depth == this.depth + 1 ? this.pos : this.path[depth * 3 - 1];\n }\n /**\n The (absolute) position directly after the wrapping node at the\n given level, or the original position when `depth` is `this.depth + 1`.\n */\n after(depth) {\n depth = this.resolveDepth(depth);\n if (!depth)\n throw new RangeError(\"There is no position after the top-level node\");\n return depth == this.depth + 1 ? this.pos : this.path[depth * 3 - 1] + this.path[depth * 3].nodeSize;\n }\n /**\n When this position points into a text node, this returns the\n distance between the position and the start of the text node.\n Will be zero for positions that point between nodes.\n */\n get textOffset() { return this.pos - this.path[this.path.length - 1]; }\n /**\n Get the node directly after the position, if any. If the position\n points into a text node, only the part of that node after the\n position is returned.\n */\n get nodeAfter() {\n let parent = this.parent, index = this.index(this.depth);\n if (index == parent.childCount)\n return null;\n let dOff = this.pos - this.path[this.path.length - 1], child = parent.child(index);\n return dOff ? parent.child(index).cut(dOff) : child;\n }\n /**\n Get the node directly before the position, if any. If the\n position points into a text node, only the part of that node\n before the position is returned.\n */\n get nodeBefore() {\n let index = this.index(this.depth);\n let dOff = this.pos - this.path[this.path.length - 1];\n if (dOff)\n return this.parent.child(index).cut(0, dOff);\n return index == 0 ? null : this.parent.child(index - 1);\n }\n /**\n Get the position at the given index in the parent node at the\n given depth (which defaults to `this.depth`).\n */\n posAtIndex(index, depth) {\n depth = this.resolveDepth(depth);\n let node = this.path[depth * 3], pos = depth == 0 ? 0 : this.path[depth * 3 - 1] + 1;\n for (let i = 0; i < index; i++)\n pos += node.child(i).nodeSize;\n return pos;\n }\n /**\n Get the marks at this position, factoring in the surrounding\n marks' [`inclusive`](https://prosemirror.net/docs/ref/#model.MarkSpec.inclusive) property. If the\n position is at the start of a non-empty node, the marks of the\n node after it (if any) are returned.\n */\n marks() {\n let parent = this.parent, index = this.index();\n // In an empty parent, return the empty array\n if (parent.content.size == 0)\n return Mark.none;\n // When inside a text node, just return the text node's marks\n if (this.textOffset)\n return parent.child(index).marks;\n let main = parent.maybeChild(index - 1), other = parent.maybeChild(index);\n // If the `after` flag is true of there is no node before, make\n // the node after this position the main reference.\n if (!main) {\n let tmp = main;\n main = other;\n other = tmp;\n }\n // Use all marks in the main node, except those that have\n // `inclusive` set to false and are not present in the other node.\n let marks = main.marks;\n for (var i = 0; i < marks.length; i++)\n if (marks[i].type.spec.inclusive === false && (!other || !marks[i].isInSet(other.marks)))\n marks = marks[i--].removeFromSet(marks);\n return marks;\n }\n /**\n Get the marks after the current position, if any, except those\n that are non-inclusive and not present at position `$end`. This\n is mostly useful for getting the set of marks to preserve after a\n deletion. Will return `null` if this position is at the end of\n its parent node or its parent node isn't a textblock (in which\n case no marks should be preserved).\n */\n marksAcross($end) {\n let after = this.parent.maybeChild(this.index());\n if (!after || !after.isInline)\n return null;\n let marks = after.marks, next = $end.parent.maybeChild($end.index());\n for (var i = 0; i < marks.length; i++)\n if (marks[i].type.spec.inclusive === false && (!next || !marks[i].isInSet(next.marks)))\n marks = marks[i--].removeFromSet(marks);\n return marks;\n }\n /**\n The depth up to which this position and the given (non-resolved)\n position share the same parent nodes.\n */\n sharedDepth(pos) {\n for (let depth = this.depth; depth > 0; depth--)\n if (this.start(depth) <= pos && this.end(depth) >= pos)\n return depth;\n return 0;\n }\n /**\n Returns a range based on the place where this position and the\n given position diverge around block content. If both point into\n the same textblock, for example, a range around that textblock\n will be returned. If they point into different blocks, the range\n around those blocks in their shared ancestor is returned. You can\n pass in an optional predicate that will be called with a parent\n node to see if a range into that parent is acceptable.\n */\n blockRange(other = this, pred) {\n if (other.pos < this.pos)\n return other.blockRange(this);\n for (let d = this.depth - (this.parent.inlineContent || this.pos == other.pos ? 1 : 0); d >= 0; d--)\n if (other.pos <= this.end(d) && (!pred || pred(this.node(d))))\n return new NodeRange(this, other, d);\n return null;\n }\n /**\n Query whether the given position shares the same parent node.\n */\n sameParent(other) {\n return this.pos - this.parentOffset == other.pos - other.parentOffset;\n }\n /**\n Return the greater of this and the given position.\n */\n max(other) {\n return other.pos > this.pos ? other : this;\n }\n /**\n Return the smaller of this and the given position.\n */\n min(other) {\n return other.pos < this.pos ? other : this;\n }\n /**\n @internal\n */\n toString() {\n let str = \"\";\n for (let i = 1; i <= this.depth; i++)\n str += (str ? \"/\" : \"\") + this.node(i).type.name + \"_\" + this.index(i - 1);\n return str + \":\" + this.parentOffset;\n }\n /**\n @internal\n */\n static resolve(doc, pos) {\n if (!(pos >= 0 && pos <= doc.content.size))\n throw new RangeError(\"Position \" + pos + \" out of range\");\n let path = [];\n let start = 0, parentOffset = pos;\n for (let node = doc;;) {\n let { index, offset } = node.content.findIndex(parentOffset);\n let rem = parentOffset - offset;\n path.push(node, index, start + offset);\n if (!rem)\n break;\n node = node.child(index);\n if (node.isText)\n break;\n parentOffset = rem - 1;\n start += offset + 1;\n }\n return new ResolvedPos(pos, path, parentOffset);\n }\n /**\n @internal\n */\n static resolveCached(doc, pos) {\n let cache = resolveCache.get(doc);\n if (cache) {\n for (let i = 0; i < cache.elts.length; i++) {\n let elt = cache.elts[i];\n if (elt.pos == pos)\n return elt;\n }\n }\n else {\n resolveCache.set(doc, cache = new ResolveCache);\n }\n let result = cache.elts[cache.i] = ResolvedPos.resolve(doc, pos);\n cache.i = (cache.i + 1) % resolveCacheSize;\n return result;\n }\n}\nclass ResolveCache {\n constructor() {\n this.elts = [];\n this.i = 0;\n }\n}\nconst resolveCacheSize = 12, resolveCache = new WeakMap();\n/**\nRepresents a flat range of content, i.e. one that starts and\nends in the same node.\n*/\nclass NodeRange {\n /**\n Construct a node range. `$from` and `$to` should point into the\n same node until at least the given `depth`, since a node range\n denotes an adjacent set of nodes in a single parent node.\n */\n constructor(\n /**\n A resolved position along the start of the content. May have a\n `depth` greater than this object's `depth` property, since\n these are the positions that were used to compute the range,\n not re-resolved positions directly at its boundaries.\n */\n $from, \n /**\n A position along the end of the content. See\n caveat for [`$from`](https://prosemirror.net/docs/ref/#model.NodeRange.$from).\n */\n $to, \n /**\n The depth of the node that this range points into.\n */\n depth) {\n this.$from = $from;\n this.$to = $to;\n this.depth = depth;\n }\n /**\n The position at the start of the range.\n */\n get start() { return this.$from.before(this.depth + 1); }\n /**\n The position at the end of the range.\n */\n get end() { return this.$to.after(this.depth + 1); }\n /**\n The parent node that the range points into.\n */\n get parent() { return this.$from.node(this.depth); }\n /**\n The start index of the range in the parent node.\n */\n get startIndex() { return this.$from.index(this.depth); }\n /**\n The end index of the range in the parent node.\n */\n get endIndex() { return this.$to.indexAfter(this.depth); }\n}\n\nconst emptyAttrs = Object.create(null);\n/**\nThis class represents a node in the tree that makes up a\nProseMirror document. So a document is an instance of `Node`, with\nchildren that are also instances of `Node`.\n\nNodes are persistent data structures. Instead of changing them, you\ncreate new ones with the content you want. Old ones keep pointing\nat the old document shape. This is made cheaper by sharing\nstructure between the old and new data as much as possible, which a\ntree shape like this (without back pointers) makes easy.\n\n**Do not** directly mutate the properties of a `Node` object. See\n[the guide](/docs/guide/#doc) for more information.\n*/\nclass Node {\n /**\n @internal\n */\n constructor(\n /**\n The type of node that this is.\n */\n type, \n /**\n An object mapping attribute names to values. The kind of\n attributes allowed and required are\n [determined](https://prosemirror.net/docs/ref/#model.NodeSpec.attrs) by the node type.\n */\n attrs, \n // A fragment holding the node's children.\n content, \n /**\n The marks (things like whether it is emphasized or part of a\n link) applied to this node.\n */\n marks = Mark.none) {\n this.type = type;\n this.attrs = attrs;\n this.marks = marks;\n this.content = content || Fragment.empty;\n }\n /**\n The array of this node's child nodes.\n */\n get children() { return this.content.content; }\n /**\n The size of this node, as defined by the integer-based [indexing\n scheme](/docs/guide/#doc.indexing). For text nodes, this is the\n amount of characters. For other leaf nodes, it is one. For\n non-leaf nodes, it is the size of the content plus two (the\n start and end token).\n */\n get nodeSize() { return this.isLeaf ? 1 : 2 + this.content.size; }\n /**\n The number of children that the node has.\n */\n get childCount() { return this.content.childCount; }\n /**\n Get the child node at the given index. Raises an error when the\n index is out of range.\n */\n child(index) { return this.content.child(index); }\n /**\n Get the child node at the given index, if it exists.\n */\n maybeChild(index) { return this.content.maybeChild(index); }\n /**\n Call `f` for every child node, passing the node, its offset\n into this parent node, and its index.\n */\n forEach(f) { this.content.forEach(f); }\n /**\n Invoke a callback for all descendant nodes recursively between\n the given two positions that are relative to start of this\n node's content. The callback is invoked with the node, its\n position relative to the original node (method receiver),\n its parent node, and its child index. When the callback returns\n false for a given node, that node's children will not be\n recursed over. The last parameter can be used to specify a\n starting position to count from.\n */\n nodesBetween(from, to, f, startPos = 0) {\n this.content.nodesBetween(from, to, f, startPos, this);\n }\n /**\n Call the given callback for every descendant node. Doesn't\n descend into a node when the callback returns `false`.\n */\n descendants(f) {\n this.nodesBetween(0, this.content.size, f);\n }\n /**\n Concatenates all the text nodes found in this fragment and its\n children.\n */\n get textContent() {\n return (this.isLeaf && this.type.spec.leafText)\n ? this.type.spec.leafText(this)\n : this.textBetween(0, this.content.size, \"\");\n }\n /**\n Get all text between positions `from` and `to`. When\n `blockSeparator` is given, it will be inserted to separate text\n from different block nodes. If `leafText` is given, it'll be\n inserted for every non-text leaf node encountered, otherwise\n [`leafText`](https://prosemirror.net/docs/ref/#model.NodeSpec^leafText) will be used.\n */\n textBetween(from, to, blockSeparator, leafText) {\n return this.content.textBetween(from, to, blockSeparator, leafText);\n }\n /**\n Returns this node's first child, or `null` if there are no\n children.\n */\n get firstChild() { return this.content.firstChild; }\n /**\n Returns this node's last child, or `null` if there are no\n children.\n */\n get lastChild() { return this.content.lastChild; }\n /**\n Test whether two nodes represent the same piece of document.\n */\n eq(other) {\n return this == other || (this.sameMarkup(other) && this.content.eq(other.content));\n }\n /**\n Compare the markup (type, attributes, and marks) of this node to\n those of another. Returns `true` if both have the same markup.\n */\n sameMarkup(other) {\n return this.hasMarkup(other.type, other.attrs, other.marks);\n }\n /**\n Check whether this node's markup correspond to the given type,\n attributes, and marks.\n */\n hasMarkup(type, attrs, marks) {\n return this.type == type &&\n compareDeep(this.attrs, attrs || type.defaultAttrs || emptyAttrs) &&\n Mark.sameSet(this.marks, marks || Mark.none);\n }\n /**\n Create a new node with the same markup as this node, containing\n the given content (or empty, if no content is given).\n */\n copy(content = null) {\n if (content == this.content)\n return this;\n return new Node(this.type, this.attrs, content, this.marks);\n }\n /**\n Create a copy of this node, with the given set of marks instead\n of the node's own marks.\n */\n mark(marks) {\n return marks == this.marks ? this : new Node(this.type, this.attrs, this.content, marks);\n }\n /**\n Create a copy of this node with only the content between the\n given positions. If `to` is not given, it defaults to the end of\n the node.\n */\n cut(from, to = this.content.size) {\n if (from == 0 && to == this.content.size)\n return this;\n return this.copy(this.content.cut(from, to));\n }\n /**\n Cut out the part of the document between the given positions, and\n return it as a `Slice` object.\n */\n slice(from, to = this.content.size, includeParents = false) {\n if (from == to)\n return Slice.empty;\n let $from = this.resolve(from), $to = this.resolve(to);\n let depth = includeParents ? 0 : $from.sharedDepth(to);\n let start = $from.start(depth), node = $from.node(depth);\n let content = node.content.cut($from.pos - start, $to.pos - start);\n return new Slice(content, $from.depth - depth, $to.depth - depth);\n }\n /**\n Replace the part of the document between the given positions with\n the given slice. The slice must 'fit', meaning its open sides\n must be able to connect to the surrounding content, and its\n content nodes must be valid children for the node they are placed\n into. If any of this is violated, an error of type\n [`ReplaceError`](https://prosemirror.net/docs/ref/#model.ReplaceError) is thrown.\n */\n replace(from, to, slice) {\n return replace(this.resolve(from), this.resolve(to), slice);\n }\n /**\n Find the node directly after the given position.\n */\n nodeAt(pos) {\n for (let node = this;;) {\n let { index, offset } = node.content.findIndex(pos);\n node = node.maybeChild(index);\n if (!node)\n return null;\n if (offset == pos || node.isText)\n return node;\n pos -= offset + 1;\n }\n }\n /**\n Find the (direct) child node after the given offset, if any,\n and return it along with its index and offset relative to this\n node.\n */\n childAfter(pos) {\n let { index, offset } = this.content.findIndex(pos);\n return { node: this.content.maybeChild(index), index, offset };\n }\n /**\n Find the (direct) child node before the given offset, if any,\n and return it along with its index and offset relative to this\n node.\n */\n childBefore(pos) {\n if (pos == 0)\n return { node: null, index: 0, offset: 0 };\n let { index, offset } = this.content.findIndex(pos);\n if (offset < pos)\n return { node: this.content.child(index), index, offset };\n let node = this.content.child(index - 1);\n return { node, index: index - 1, offset: offset - node.nodeSize };\n }\n /**\n Resolve the given position in the document, returning an\n [object](https://prosemirror.net/docs/ref/#model.ResolvedPos) with information about its context.\n */\n resolve(pos) { return ResolvedPos.resolveCached(this, pos); }\n /**\n @internal\n */\n resolveNoCache(pos) { return ResolvedPos.resolve(this, pos); }\n /**\n Test whether a given mark or mark type occurs in this document\n between the two given positions.\n */\n rangeHasMark(from, to, type) {\n let found = false;\n if (to > from)\n this.nodesBetween(from, to, node => {\n if (type.isInSet(node.marks))\n found = true;\n return !found;\n });\n return found;\n }\n /**\n True when this is a block (non-inline node)\n */\n get isBlock() { return this.type.isBlock; }\n /**\n True when this is a textblock node, a block node with inline\n content.\n */\n get isTextblock() { return this.type.isTextblock; }\n /**\n True when this node allows inline content.\n */\n get inlineContent() { return this.type.inlineContent; }\n /**\n True when this is an inline node (a text node or a node that can\n appear among text).\n */\n get isInline() { return this.type.isInline; }\n /**\n True when this is a text node.\n */\n get isText() { return this.type.isText; }\n /**\n True when this is a leaf node.\n */\n get isLeaf() { return this.type.isLeaf; }\n /**\n True when this is an atom, i.e. when it does not have directly\n editable content. This is usually the same as `isLeaf`, but can\n be configured with the [`atom` property](https://prosemirror.net/docs/ref/#model.NodeSpec.atom)\n on a node's spec (typically used when the node is displayed as\n an uneditable [node view](https://prosemirror.net/docs/ref/#view.NodeView)).\n */\n get isAtom() { return this.type.isAtom; }\n /**\n Return a string representation of this node for debugging\n purposes.\n */\n toString() {\n if (this.type.spec.toDebugString)\n return this.type.spec.toDebugString(this);\n let name = this.type.name;\n if (this.content.size)\n name += \"(\" + this.content.toStringInner() + \")\";\n return wrapMarks(this.marks, name);\n }\n /**\n Get the content match in this node at the given index.\n */\n contentMatchAt(index) {\n let match = this.type.contentMatch.matchFragment(this.content, 0, index);\n if (!match)\n throw new Error(\"Called contentMatchAt on a node with invalid content\");\n return match;\n }\n /**\n Test whether replacing the range between `from` and `to` (by\n child index) with the given replacement fragment (which defaults\n to the empty fragment) would leave the node's content valid. You\n can optionally pass `start` and `end` indices into the\n replacement fragment.\n */\n canReplace(from, to, replacement = Fragment.empty, start = 0, end = replacement.childCount) {\n let one = this.contentMatchAt(from).matchFragment(replacement, start, end);\n let two = one && one.matchFragment(this.content, to);\n if (!two || !two.validEnd)\n return false;\n for (let i = start; i < end; i++)\n if (!this.type.allowsMarks(replacement.child(i).marks))\n return false;\n return true;\n }\n /**\n Test whether replacing the range `from` to `to` (by index) with\n a node of the given type would leave the node's content valid.\n */\n canReplaceWith(from, to, type, marks) {\n if (marks && !this.type.allowsMarks(marks))\n return false;\n let start = this.contentMatchAt(from).matchType(type);\n let end = start && start.matchFragment(this.content, to);\n return end ? end.validEnd : false;\n }\n /**\n Test whether the given node's content could be appended to this\n node. If that node is empty, this will only return true if there\n is at least one node type that can appear in both nodes (to avoid\n merging completely incompatible nodes).\n */\n canAppend(other) {\n if (other.content.size)\n return this.canReplace(this.childCount, this.childCount, other.content);\n else\n return this.type.compatibleContent(other.type);\n }\n /**\n Check whether this node and its descendants conform to the\n schema, and raise an exception when they do not.\n */\n check() {\n this.type.checkContent(this.content);\n this.type.checkAttrs(this.attrs);\n let copy = Mark.none;\n for (let i = 0; i < this.marks.length; i++) {\n let mark = this.marks[i];\n mark.type.checkAttrs(mark.attrs);\n copy = mark.addToSet(copy);\n }\n if (!Mark.sameSet(copy, this.marks))\n throw new RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(m => m.type.name)}`);\n this.content.forEach(node => node.check());\n }\n /**\n Return a JSON-serializeable representation of this node.\n */\n toJSON() {\n let obj = { type: this.type.name };\n for (let _ in this.attrs) {\n obj.attrs = this.attrs;\n break;\n }\n if (this.content.size)\n obj.content = this.content.toJSON();\n if (this.marks.length)\n obj.marks = this.marks.map(n => n.toJSON());\n return obj;\n }\n /**\n Deserialize a node from its JSON representation.\n */\n static fromJSON(schema, json) {\n if (!json)\n throw new RangeError(\"Invalid input for Node.fromJSON\");\n let marks = undefined;\n if (json.marks) {\n if (!Array.isArray(json.marks))\n throw new RangeError(\"Invalid mark data for Node.fromJSON\");\n marks = json.marks.map(schema.markFromJSON);\n }\n if (json.type == \"text\") {\n if (typeof json.text != \"string\")\n throw new RangeError(\"Invalid text node in JSON\");\n return schema.text(json.text, marks);\n }\n let content = Fragment.fromJSON(schema, json.content);\n let node = schema.nodeType(json.type).create(json.attrs, content, marks);\n node.type.checkAttrs(node.attrs);\n return node;\n }\n}\nNode.prototype.text = undefined;\nclass TextNode extends Node {\n /**\n @internal\n */\n constructor(type, attrs, content, marks) {\n super(type, attrs, null, marks);\n if (!content)\n throw new RangeError(\"Empty text nodes are not allowed\");\n this.text = content;\n }\n toString() {\n if (this.type.spec.toDebugString)\n return this.type.spec.toDebugString(this);\n return wrapMarks(this.marks, JSON.stringify(this.text));\n }\n get textContent() { return this.text; }\n textBetween(from, to) { return this.text.slice(from, to); }\n get nodeSize() { return this.text.length; }\n mark(marks) {\n return marks == this.marks ? this : new TextNode(this.type, this.attrs, this.text, marks);\n }\n withText(text) {\n if (text == this.text)\n return this;\n return new TextNode(this.type, this.attrs, text, this.marks);\n }\n cut(from = 0, to = this.text.length) {\n if (from == 0 && to == this.text.length)\n return this;\n return this.withText(this.text.slice(from, to));\n }\n eq(other) {\n return this.sameMarkup(other) && this.text == other.text;\n }\n toJSON() {\n let base = super.toJSON();\n base.text = this.text;\n return base;\n }\n}\nfunction wrapMarks(marks, str) {\n for (let i = marks.length - 1; i >= 0; i--)\n str = marks[i].type.name + \"(\" + str + \")\";\n return str;\n}\n\n/**\nInstances of this class represent a match state of a node type's\n[content expression](https://prosemirror.net/docs/ref/#model.NodeSpec.content), and can be used to\nfind out whether further content matches here, and whether a given\nposition is a valid end of the node.\n*/\nclass ContentMatch {\n /**\n @internal\n */\n constructor(\n /**\n True when this match state represents a valid end of the node.\n */\n validEnd) {\n this.validEnd = validEnd;\n /**\n @internal\n */\n this.next = [];\n /**\n @internal\n */\n this.wrapCache = [];\n }\n /**\n @internal\n */\n static parse(string, nodeTypes) {\n let stream = new TokenStream(string, nodeTypes);\n if (stream.next == null)\n return ContentMatch.empty;\n let expr = parseExpr(stream);\n if (stream.next)\n stream.err(\"Unexpected trailing text\");\n let match = dfa(nfa(expr));\n checkForDeadEnds(match, stream);\n return match;\n }\n /**\n Match a node type, returning a match after that node if\n successful.\n */\n matchType(type) {\n for (let i = 0; i < this.next.length; i++)\n if (this.next[i].type == type)\n return this.next[i].next;\n return null;\n }\n /**\n Try to match a fragment. Returns the resulting match when\n successful.\n */\n matchFragment(frag, start = 0, end = frag.childCount) {\n let cur = this;\n for (let i = start; cur && i < end; i++)\n cur = cur.matchType(frag.child(i).type);\n return cur;\n }\n /**\n @internal\n */\n get inlineContent() {\n return this.next.length != 0 && this.next[0].type.isInline;\n }\n /**\n Get the first matching node type at this match position that can\n be generated.\n */\n get defaultType() {\n for (let i = 0; i < this.next.length; i++) {\n let { type } = this.next[i];\n if (!(type.isText || type.hasRequiredAttrs()))\n return type;\n }\n return null;\n }\n /**\n @internal\n */\n compatible(other) {\n for (let i = 0; i < this.next.length; i++)\n for (let j = 0; j < other.next.length; j++)\n if (this.next[i].type == other.next[j].type)\n return true;\n return false;\n }\n /**\n Try to match the given fragment, and if that fails, see if it can\n be made to match by inserting nodes in front of it. When\n successful, return a fragment of inserted nodes (which may be\n empty if nothing had to be inserted). When `toEnd` is true, only\n return a fragment if the resulting match goes to the end of the\n content expression.\n */\n fillBefore(after, toEnd = false, startIndex = 0) {\n let seen = [this];\n function search(match, types) {\n let finished = match.matchFragment(after, startIndex);\n if (finished && (!toEnd || finished.validEnd))\n return Fragment.from(types.map(tp => tp.createAndFill()));\n for (let i = 0; i < match.next.length; i++) {\n let { type, next } = match.next[i];\n if (!(type.isText || type.hasRequiredAttrs()) && seen.indexOf(next) == -1) {\n seen.push(next);\n let found = search(next, types.concat(type));\n if (found)\n return found;\n }\n }\n return null;\n }\n return search(this, []);\n }\n /**\n Find a set of wrapping node types that would allow a node of the\n given type to appear at this position. The result may be empty\n (when it fits directly) and will be null when no such wrapping\n exists.\n */\n findWrapping(target) {\n for (let i = 0; i < this.wrapCache.length; i += 2)\n if (this.wrapCache[i] == target)\n return this.wrapCache[i + 1];\n let computed = this.computeWrapping(target);\n this.wrapCache.push(target, computed);\n return computed;\n }\n /**\n @internal\n */\n computeWrapping(target) {\n let seen = Object.create(null), active = [{ match: this, type: null, via: null }];\n while (active.length) {\n let current = active.shift(), match = current.match;\n if (match.matchType(target)) {\n let result = [];\n for (let obj = current; obj.type; obj = obj.via)\n result.push(obj.type);\n return result.reverse();\n }\n for (let i = 0; i < match.next.length; i++) {\n let { type, next } = match.next[i];\n if (!type.isLeaf && !type.hasRequiredAttrs() && !(type.name in seen) && (!current.type || next.validEnd)) {\n active.push({ match: type.contentMatch, type, via: current });\n seen[type.name] = true;\n }\n }\n }\n return null;\n }\n /**\n The number of outgoing edges this node has in the finite\n automaton that describes the content expression.\n */\n get edgeCount() {\n return this.next.length;\n }\n /**\n Get the _n_​th outgoing edge from this node in the finite\n automaton that describes the content expression.\n */\n edge(n) {\n if (n >= this.next.length)\n throw new RangeError(`There's no ${n}th edge in this content match`);\n return this.next[n];\n }\n /**\n @internal\n */\n toString() {\n let seen = [];\n function scan(m) {\n seen.push(m);\n for (let i = 0; i < m.next.length; i++)\n if (seen.indexOf(m.next[i].next) == -1)\n scan(m.next[i].next);\n }\n scan(this);\n return seen.map((m, i) => {\n let out = i + (m.validEnd ? \"*\" : \" \") + \" \";\n for (let i = 0; i < m.next.length; i++)\n out += (i ? \", \" : \"\") + m.next[i].type.name + \"->\" + seen.indexOf(m.next[i].next);\n return out;\n }).join(\"\\n\");\n }\n}\n/**\n@internal\n*/\nContentMatch.empty = new ContentMatch(true);\nclass TokenStream {\n constructor(string, nodeTypes) {\n this.string = string;\n this.nodeTypes = nodeTypes;\n this.inline = null;\n this.pos = 0;\n this.tokens = string.split(/\\s*(?=\\b|\\W|$)/);\n if (this.tokens[this.tokens.length - 1] == \"\")\n this.tokens.pop();\n if (this.tokens[0] == \"\")\n this.tokens.shift();\n }\n get next() { return this.tokens[this.pos]; }\n eat(tok) { return this.next == tok && (this.pos++ || true); }\n err(str) { throw new SyntaxError(str + \" (in content expression '\" + this.string + \"')\"); }\n}\nfunction parseExpr(stream) {\n let exprs = [];\n do {\n exprs.push(parseExprSeq(stream));\n } while (stream.eat(\"|\"));\n return exprs.length == 1 ? exprs[0] : { type: \"choice\", exprs };\n}\nfunction parseExprSeq(stream) {\n let exprs = [];\n do {\n exprs.push(parseExprSubscript(stream));\n } while (stream.next && stream.next != \")\" && stream.next != \"|\");\n return exprs.length == 1 ? exprs[0] : { type: \"seq\", exprs };\n}\nfunction parseExprSubscript(stream) {\n let expr = parseExprAtom(stream);\n for (;;) {\n if (stream.eat(\"+\"))\n expr = { type: \"plus\", expr };\n else if (stream.eat(\"*\"))\n expr = { type: \"star\", expr };\n else if (stream.eat(\"?\"))\n expr = { type: \"opt\", expr };\n else if (stream.eat(\"{\"))\n expr = parseExprRange(stream, expr);\n else\n break;\n }\n return expr;\n}\nfunction parseNum(stream) {\n if (/\\D/.test(stream.next))\n stream.err(\"Expected number, got '\" + stream.next + \"'\");\n let result = Number(stream.next);\n stream.pos++;\n return result;\n}\nfunction parseExprRange(stream, expr) {\n let min = parseNum(stream), max = min;\n if (stream.eat(\",\")) {\n if (stream.next != \"}\")\n max = parseNum(stream);\n else\n max = -1;\n }\n if (!stream.eat(\"}\"))\n stream.err(\"Unclosed braced range\");\n return { type: \"range\", min, max, expr };\n}\nfunction resolveName(stream, name) {\n let types = stream.nodeTypes, type = types[name];\n if (type)\n return [type];\n let result = [];\n for (let typeName in types) {\n let type = types[typeName];\n if (type.isInGroup(name))\n result.push(type);\n }\n if (result.length == 0)\n stream.err(\"No node type or group '\" + name + \"' found\");\n return result;\n}\nfunction parseExprAtom(stream) {\n if (stream.eat(\"(\")) {\n let expr = parseExpr(stream);\n if (!stream.eat(\")\"))\n stream.err(\"Missing closing paren\");\n return expr;\n }\n else if (!/\\W/.test(stream.next)) {\n let exprs = resolveName(stream, stream.next).map(type => {\n if (stream.inline == null)\n stream.inline = type.isInline;\n else if (stream.inline != type.isInline)\n stream.err(\"Mixing inline and block content\");\n return { type: \"name\", value: type };\n });\n stream.pos++;\n return exprs.length == 1 ? exprs[0] : { type: \"choice\", exprs };\n }\n else {\n stream.err(\"Unexpected token '\" + stream.next + \"'\");\n }\n}\n// Construct an NFA from an expression as returned by the parser. The\n// NFA is represented as an array of states, which are themselves\n// arrays of edges, which are `{term, to}` objects. The first state is\n// the entry state and the last node is the success state.\n//\n// Note that unlike typical NFAs, the edge ordering in this one is\n// significant, in that it is used to contruct filler content when\n// necessary.\nfunction nfa(expr) {\n let nfa = [[]];\n connect(compile(expr, 0), node());\n return nfa;\n function node() { return nfa.push([]) - 1; }\n function edge(from, to, term) {\n let edge = { term, to };\n nfa[from].push(edge);\n return edge;\n }\n function connect(edges, to) {\n edges.forEach(edge => edge.to = to);\n }\n function compile(expr, from) {\n if (expr.type == \"choice\") {\n return expr.exprs.reduce((out, expr) => out.concat(compile(expr, from)), []);\n }\n else if (expr.type == \"seq\") {\n for (let i = 0;; i++) {\n let next = compile(expr.exprs[i], from);\n if (i == expr.exprs.length - 1)\n return next;\n connect(next, from = node());\n }\n }\n else if (expr.type == \"star\") {\n let loop = node();\n edge(from, loop);\n connect(compile(expr.expr, loop), loop);\n return [edge(loop)];\n }\n else if (expr.type == \"plus\") {\n let loop = node();\n connect(compile(expr.expr, from), loop);\n connect(compile(expr.expr, loop), loop);\n return [edge(loop)];\n }\n else if (expr.type == \"opt\") {\n return [edge(from)].concat(compile(expr.expr, from));\n }\n else if (expr.type == \"range\") {\n let cur = from;\n for (let i = 0; i < expr.min; i++) {\n let next = node();\n connect(compile(expr.expr, cur), next);\n cur = next;\n }\n if (expr.max == -1) {\n connect(compile(expr.expr, cur), cur);\n }\n else {\n for (let i = expr.min; i < expr.max; i++) {\n let next = node();\n edge(cur, next);\n connect(compile(expr.expr, cur), next);\n cur = next;\n }\n }\n return [edge(cur)];\n }\n else if (expr.type == \"name\") {\n return [edge(from, undefined, expr.value)];\n }\n else {\n throw new Error(\"Unknown expr type\");\n }\n }\n}\nfunction cmp(a, b) { return b - a; }\n// Get the set of nodes reachable by null edges from `node`. Omit\n// nodes with only a single null-out-edge, since they may lead to\n// needless duplicated nodes.\nfunction nullFrom(nfa, node) {\n let result = [];\n scan(node);\n return result.sort(cmp);\n function scan(node) {\n let edges = nfa[node];\n if (edges.length == 1 && !edges[0].term)\n return scan(edges[0].to);\n result.push(node);\n for (let i = 0; i < edges.length; i++) {\n let { term, to } = edges[i];\n if (!term && result.indexOf(to) == -1)\n scan(to);\n }\n }\n}\n// Compiles an NFA as produced by `nfa` into a DFA, modeled as a set\n// of state objects (`ContentMatch` instances) with transitions\n// between them.\nfunction dfa(nfa) {\n let labeled = Object.create(null);\n return explore(nullFrom(nfa, 0));\n function explore(states) {\n let out = [];\n states.forEach(node => {\n nfa[node].forEach(({ term, to }) => {\n if (!term)\n return;\n let set;\n for (let i = 0; i < out.length; i++)\n if (out[i][0] == term)\n set = out[i][1];\n nullFrom(nfa, to).forEach(node => {\n if (!set)\n out.push([term, set = []]);\n if (set.indexOf(node) == -1)\n set.push(node);\n });\n });\n });\n let state = labeled[states.join(\",\")] = new ContentMatch(states.indexOf(nfa.length - 1) > -1);\n for (let i = 0; i < out.length; i++) {\n let states = out[i][1].sort(cmp);\n state.next.push({ type: out[i][0], next: labeled[states.join(\",\")] || explore(states) });\n }\n return state;\n }\n}\nfunction checkForDeadEnds(match, stream) {\n for (let i = 0, work = [match]; i < work.length; i++) {\n let state = work[i], dead = !state.validEnd, nodes = [];\n for (let j = 0; j < state.next.length; j++) {\n let { type, next } = state.next[j];\n nodes.push(type.name);\n if (dead && !(type.isText || type.hasRequiredAttrs()))\n dead = false;\n if (work.indexOf(next) == -1)\n work.push(next);\n }\n if (dead)\n stream.err(\"Only non-generatable nodes (\" + nodes.join(\", \") + \") in a required position (see https://prosemirror.net/docs/guide/#generatable)\");\n }\n}\n\n// For node types where all attrs have a default value (or which don't\n// have any attributes), build up a single reusable default attribute\n// object, and use it for all nodes that don't specify specific\n// attributes.\nfunction defaultAttrs(attrs) {\n let defaults = Object.create(null);\n for (let attrName in attrs) {\n let attr = attrs[attrName];\n if (!attr.hasDefault)\n return null;\n defaults[attrName] = attr.default;\n }\n return defaults;\n}\nfunction computeAttrs(attrs, value) {\n let built = Object.create(null);\n for (let name in attrs) {\n let given = value && value[name];\n if (given === undefined) {\n let attr = attrs[name];\n if (attr.hasDefault)\n given = attr.default;\n else\n throw new RangeError(\"No value supplied for attribute \" + name);\n }\n built[name] = given;\n }\n return built;\n}\nfunction checkAttrs(attrs, values, type, name) {\n for (let name in values)\n if (!(name in attrs))\n throw new RangeError(`Unsupported attribute ${name} for ${type} of type ${name}`);\n for (let name in attrs) {\n let attr = attrs[name];\n if (attr.validate)\n attr.validate(values[name]);\n }\n}\nfunction initAttrs(typeName, attrs) {\n let result = Object.create(null);\n if (attrs)\n for (let name in attrs)\n result[name] = new Attribute(typeName, name, attrs[name]);\n return result;\n}\n/**\nNode types are objects allocated once per `Schema` and used to\n[tag](https://prosemirror.net/docs/ref/#model.Node.type) `Node` instances. They contain information\nabout the node type, such as its name and what kind of node it\nrepresents.\n*/\nclass NodeType {\n /**\n @internal\n */\n constructor(\n /**\n The name the node type has in this schema.\n */\n name, \n /**\n A link back to the `Schema` the node type belongs to.\n */\n schema, \n /**\n The spec that this type is based on\n */\n spec) {\n this.name = name;\n this.schema = schema;\n this.spec = spec;\n /**\n The set of marks allowed in this node. `null` means all marks\n are allowed.\n */\n this.markSet = null;\n this.groups = spec.group ? spec.group.split(\" \") : [];\n this.attrs = initAttrs(name, spec.attrs);\n this.defaultAttrs = defaultAttrs(this.attrs);\n this.contentMatch = null;\n this.inlineContent = null;\n this.isBlock = !(spec.inline || name == \"text\");\n this.isText = name == \"text\";\n }\n /**\n True if this is an inline type.\n */\n get isInline() { return !this.isBlock; }\n /**\n True if this is a textblock type, a block that contains inline\n content.\n */\n get isTextblock() { return this.isBlock && this.inlineContent; }\n /**\n True for node types that allow no content.\n */\n get isLeaf() { return this.contentMatch == ContentMatch.empty; }\n /**\n True when this node is an atom, i.e. when it does not have\n directly editable content.\n */\n get isAtom() { return this.isLeaf || !!this.spec.atom; }\n /**\n Return true when this node type is part of the given\n [group](https://prosemirror.net/docs/ref/#model.NodeSpec.group).\n */\n isInGroup(group) {\n return this.groups.indexOf(group) > -1;\n }\n /**\n The node type's [whitespace](https://prosemirror.net/docs/ref/#model.NodeSpec.whitespace) option.\n */\n get whitespace() {\n return this.spec.whitespace || (this.spec.code ? \"pre\" : \"normal\");\n }\n /**\n Tells you whether this node type has any required attributes.\n */\n hasRequiredAttrs() {\n for (let n in this.attrs)\n if (this.attrs[n].isRequired)\n return true;\n return false;\n }\n /**\n Indicates whether this node allows some of the same content as\n the given node type.\n */\n compatibleContent(other) {\n return this == other || this.contentMatch.compatible(other.contentMatch);\n }\n /**\n @internal\n */\n computeAttrs(attrs) {\n if (!attrs && this.defaultAttrs)\n return this.defaultAttrs;\n else\n return computeAttrs(this.attrs, attrs);\n }\n /**\n Create a `Node` of this type. The given attributes are\n checked and defaulted (you can pass `null` to use the type's\n defaults entirely, if no required attributes exist). `content`\n may be a `Fragment`, a node, an array of nodes, or\n `null`. Similarly `marks` may be `null` to default to the empty\n set of marks.\n */\n create(attrs = null, content, marks) {\n if (this.isText)\n throw new Error(\"NodeType.create can't construct text nodes\");\n return new Node(this, this.computeAttrs(attrs), Fragment.from(content), Mark.setFrom(marks));\n }\n /**\n Like [`create`](https://prosemirror.net/docs/ref/#model.NodeType.create), but check the given content\n against the node type's content restrictions, and throw an error\n if it doesn't match.\n */\n createChecked(attrs = null, content, marks) {\n content = Fragment.from(content);\n this.checkContent(content);\n return new Node(this, this.computeAttrs(attrs), content, Mark.setFrom(marks));\n }\n /**\n Like [`create`](https://prosemirror.net/docs/ref/#model.NodeType.create), but see if it is\n necessary to add nodes to the start or end of the given fragment\n to make it fit the node. If no fitting wrapping can be found,\n return null. Note that, due to the fact that required nodes can\n always be created, this will always succeed if you pass null or\n `Fragment.empty` as content.\n */\n createAndFill(attrs = null, content, marks) {\n attrs = this.computeAttrs(attrs);\n content = Fragment.from(content);\n if (content.size) {\n let before = this.contentMatch.fillBefore(content);\n if (!before)\n return null;\n content = before.append(content);\n }\n let matched = this.contentMatch.matchFragment(content);\n let after = matched && matched.fillBefore(Fragment.empty, true);\n if (!after)\n return null;\n return new Node(this, attrs, content.append(after), Mark.setFrom(marks));\n }\n /**\n Returns true if the given fragment is valid content for this node\n type.\n */\n validContent(content) {\n let result = this.contentMatch.matchFragment(content);\n if (!result || !result.validEnd)\n return false;\n for (let i = 0; i < content.childCount; i++)\n if (!this.allowsMarks(content.child(i).marks))\n return false;\n return true;\n }\n /**\n Throws a RangeError if the given fragment is not valid content for this\n node type.\n @internal\n */\n checkContent(content) {\n if (!this.validContent(content))\n throw new RangeError(`Invalid content for node ${this.name}: ${content.toString().slice(0, 50)}`);\n }\n /**\n @internal\n */\n checkAttrs(attrs) {\n checkAttrs(this.attrs, attrs, \"node\", this.name);\n }\n /**\n Check whether the given mark type is allowed in this node.\n */\n allowsMarkType(markType) {\n return this.markSet == null || this.markSet.indexOf(markType) > -1;\n }\n /**\n Test whether the given set of marks are allowed in this node.\n */\n allowsMarks(marks) {\n if (this.markSet == null)\n return true;\n for (let i = 0; i < marks.length; i++)\n if (!this.allowsMarkType(marks[i].type))\n return false;\n return true;\n }\n /**\n Removes the marks that are not allowed in this node from the given set.\n */\n allowedMarks(marks) {\n if (this.markSet == null)\n return marks;\n let copy;\n for (let i = 0; i < marks.length; i++) {\n if (!this.allowsMarkType(marks[i].type)) {\n if (!copy)\n copy = marks.slice(0, i);\n }\n else if (copy) {\n copy.push(marks[i]);\n }\n }\n return !copy ? marks : copy.length ? copy : Mark.none;\n }\n /**\n @internal\n */\n static compile(nodes, schema) {\n let result = Object.create(null);\n nodes.forEach((name, spec) => result[name] = new NodeType(name, schema, spec));\n let topType = schema.spec.topNode || \"doc\";\n if (!result[topType])\n throw new RangeError(\"Schema is missing its top node type ('\" + topType + \"')\");\n if (!result.text)\n throw new RangeError(\"Every schema needs a 'text' type\");\n for (let _ in result.text.attrs)\n throw new RangeError(\"The text node type should not have attributes\");\n return result;\n }\n}\nfunction validateType(typeName, attrName, type) {\n let types = type.split(\"|\");\n return (value) => {\n let name = value === null ? \"null\" : typeof value;\n if (types.indexOf(name) < 0)\n throw new RangeError(`Expected value of type ${types} for attribute ${attrName} on type ${typeName}, got ${name}`);\n };\n}\n// Attribute descriptors\nclass Attribute {\n constructor(typeName, attrName, options) {\n this.hasDefault = Object.prototype.hasOwnProperty.call(options, \"default\");\n this.default = options.default;\n this.validate = typeof options.validate == \"string\" ? validateType(typeName, attrName, options.validate) : options.validate;\n }\n get isRequired() {\n return !this.hasDefault;\n }\n}\n// Marks\n/**\nLike nodes, marks (which are associated with nodes to signify\nthings like emphasis or being part of a link) are\n[tagged](https://prosemirror.net/docs/ref/#model.Mark.type) with type objects, which are\ninstantiated once per `Schema`.\n*/\nclass MarkType {\n /**\n @internal\n */\n constructor(\n /**\n The name of the mark type.\n */\n name, \n /**\n @internal\n */\n rank, \n /**\n The schema that this mark type instance is part of.\n */\n schema, \n /**\n The spec on which the type is based.\n */\n spec) {\n this.name = name;\n this.rank = rank;\n this.schema = schema;\n this.spec = spec;\n this.attrs = initAttrs(name, spec.attrs);\n this.excluded = null;\n let defaults = defaultAttrs(this.attrs);\n this.instance = defaults ? new Mark(this, defaults) : null;\n }\n /**\n Create a mark of this type. `attrs` may be `null` or an object\n containing only some of the mark's attributes. The others, if\n they have defaults, will be added.\n */\n create(attrs = null) {\n if (!attrs && this.instance)\n return this.instance;\n return new Mark(this, computeAttrs(this.attrs, attrs));\n }\n /**\n @internal\n */\n static compile(marks, schema) {\n let result = Object.create(null), rank = 0;\n marks.forEach((name, spec) => result[name] = new MarkType(name, rank++, schema, spec));\n return result;\n }\n /**\n When there is a mark of this type in the given set, a new set\n without it is returned. Otherwise, the input set is returned.\n */\n removeFromSet(set) {\n for (var i = 0; i < set.length; i++)\n if (set[i].type == this) {\n set = set.slice(0, i).concat(set.slice(i + 1));\n i--;\n }\n return set;\n }\n /**\n Tests whether there is a mark of this type in the given set.\n */\n isInSet(set) {\n for (let i = 0; i < set.length; i++)\n if (set[i].type == this)\n return set[i];\n }\n /**\n @internal\n */\n checkAttrs(attrs) {\n checkAttrs(this.attrs, attrs, \"mark\", this.name);\n }\n /**\n Queries whether a given mark type is\n [excluded](https://prosemirror.net/docs/ref/#model.MarkSpec.excludes) by this one.\n */\n excludes(other) {\n return this.excluded.indexOf(other) > -1;\n }\n}\n/**\nA document schema. Holds [node](https://prosemirror.net/docs/ref/#model.NodeType) and [mark\ntype](https://prosemirror.net/docs/ref/#model.MarkType) objects for the nodes and marks that may\noccur in conforming documents, and provides functionality for\ncreating and deserializing such documents.\n\nWhen given, the type parameters provide the names of the nodes and\nmarks in this schema.\n*/\nclass Schema {\n /**\n Construct a schema from a schema [specification](https://prosemirror.net/docs/ref/#model.SchemaSpec).\n */\n constructor(spec) {\n /**\n The [linebreak\n replacement](https://prosemirror.net/docs/ref/#model.NodeSpec.linebreakReplacement) node defined\n in this schema, if any.\n */\n this.linebreakReplacement = null;\n /**\n An object for storing whatever values modules may want to\n compute and cache per schema. (If you want to store something\n in it, try to use property names unlikely to clash.)\n */\n this.cached = Object.create(null);\n let instanceSpec = this.spec = {};\n for (let prop in spec)\n instanceSpec[prop] = spec[prop];\n instanceSpec.nodes = OrderedMap.from(spec.nodes),\n instanceSpec.marks = OrderedMap.from(spec.marks || {}),\n this.nodes = NodeType.compile(this.spec.nodes, this);\n this.marks = MarkType.compile(this.spec.marks, this);\n let contentExprCache = Object.create(null);\n for (let prop in this.nodes) {\n if (prop in this.marks)\n throw new RangeError(prop + \" can not be both a node and a mark\");\n let type = this.nodes[prop], contentExpr = type.spec.content || \"\", markExpr = type.spec.marks;\n type.contentMatch = contentExprCache[contentExpr] ||\n (contentExprCache[contentExpr] = ContentMatch.parse(contentExpr, this.nodes));\n type.inlineContent = type.contentMatch.inlineContent;\n if (type.spec.linebreakReplacement) {\n if (this.linebreakReplacement)\n throw new RangeError(\"Multiple linebreak nodes defined\");\n if (!type.isInline || !type.isLeaf)\n throw new RangeError(\"Linebreak replacement nodes must be inline leaf nodes\");\n this.linebreakReplacement = type;\n }\n type.markSet = markExpr == \"_\" ? null :\n markExpr ? gatherMarks(this, markExpr.split(\" \")) :\n markExpr == \"\" || !type.inlineContent ? [] : null;\n }\n for (let prop in this.marks) {\n let type = this.marks[prop], excl = type.spec.excludes;\n type.excluded = excl == null ? [type] : excl == \"\" ? [] : gatherMarks(this, excl.split(\" \"));\n }\n this.nodeFromJSON = this.nodeFromJSON.bind(this);\n this.markFromJSON = this.markFromJSON.bind(this);\n this.topNodeType = this.nodes[this.spec.topNode || \"doc\"];\n this.cached.wrappings = Object.create(null);\n }\n /**\n Create a node in this schema. The `type` may be a string or a\n `NodeType` instance. Attributes will be extended with defaults,\n `content` may be a `Fragment`, `null`, a `Node`, or an array of\n nodes.\n */\n node(type, attrs = null, content, marks) {\n if (typeof type == \"string\")\n type = this.nodeType(type);\n else if (!(type instanceof NodeType))\n throw new RangeError(\"Invalid node type: \" + type);\n else if (type.schema != this)\n throw new RangeError(\"Node type from different schema used (\" + type.name + \")\");\n return type.createChecked(attrs, content, marks);\n }\n /**\n Create a text node in the schema. Empty text nodes are not\n allowed.\n */\n text(text, marks) {\n let type = this.nodes.text;\n return new TextNode(type, type.defaultAttrs, text, Mark.setFrom(marks));\n }\n /**\n Create a mark with the given type and attributes.\n */\n mark(type, attrs) {\n if (typeof type == \"string\")\n type = this.marks[type];\n return type.create(attrs);\n }\n /**\n Deserialize a node from its JSON representation. This method is\n bound.\n */\n nodeFromJSON(json) {\n return Node.fromJSON(this, json);\n }\n /**\n Deserialize a mark from its JSON representation. This method is\n bound.\n */\n markFromJSON(json) {\n return Mark.fromJSON(this, json);\n }\n /**\n @internal\n */\n nodeType(name) {\n let found = this.nodes[name];\n if (!found)\n throw new RangeError(\"Unknown node type: \" + name);\n return found;\n }\n}\nfunction gatherMarks(schema, marks) {\n let found = [];\n for (let i = 0; i < marks.length; i++) {\n let name = marks[i], mark = schema.marks[name], ok = mark;\n if (mark) {\n found.push(mark);\n }\n else {\n for (let prop in schema.marks) {\n let mark = schema.marks[prop];\n if (name == \"_\" || (mark.spec.group && mark.spec.group.split(\" \").indexOf(name) > -1))\n found.push(ok = mark);\n }\n }\n if (!ok)\n throw new SyntaxError(\"Unknown mark type: '\" + marks[i] + \"'\");\n }\n return found;\n}\n\nfunction isTagRule(rule) { return rule.tag != null; }\nfunction isStyleRule(rule) { return rule.style != null; }\n/**\nA DOM parser represents a strategy for parsing DOM content into a\nProseMirror document conforming to a given schema. Its behavior is\ndefined by an array of [rules](https://prosemirror.net/docs/ref/#model.ParseRule).\n*/\nclass DOMParser {\n /**\n Create a parser that targets the given schema, using the given\n parsing rules.\n */\n constructor(\n /**\n The schema into which the parser parses.\n */\n schema, \n /**\n The set of [parse rules](https://prosemirror.net/docs/ref/#model.ParseRule) that the parser\n uses, in order of precedence.\n */\n rules) {\n this.schema = schema;\n this.rules = rules;\n /**\n @internal\n */\n this.tags = [];\n /**\n @internal\n */\n this.styles = [];\n let matchedStyles = this.matchedStyles = [];\n rules.forEach(rule => {\n if (isTagRule(rule)) {\n this.tags.push(rule);\n }\n else if (isStyleRule(rule)) {\n let prop = /[^=]*/.exec(rule.style)[0];\n if (matchedStyles.indexOf(prop) < 0)\n matchedStyles.push(prop);\n this.styles.push(rule);\n }\n });\n // Only normalize list elements when lists in the schema can't directly contain themselves\n this.normalizeLists = !this.tags.some(r => {\n if (!/^(ul|ol)\\b/.test(r.tag) || !r.node)\n return false;\n let node = schema.nodes[r.node];\n return node.contentMatch.matchType(node);\n });\n }\n /**\n Parse a document from the content of a DOM node.\n */\n parse(dom, options = {}) {\n let context = new ParseContext(this, options, false);\n context.addAll(dom, Mark.none, options.from, options.to);\n return context.finish();\n }\n /**\n Parses the content of the given DOM node, like\n [`parse`](https://prosemirror.net/docs/ref/#model.DOMParser.parse), and takes the same set of\n options. But unlike that method, which produces a whole node,\n this one returns a slice that is open at the sides, meaning that\n the schema constraints aren't applied to the start of nodes to\n the left of the input and the end of nodes at the end.\n */\n parseSlice(dom, options = {}) {\n let context = new ParseContext(this, options, true);\n context.addAll(dom, Mark.none, options.from, options.to);\n return Slice.maxOpen(context.finish());\n }\n /**\n @internal\n */\n matchTag(dom, context, after) {\n for (let i = after ? this.tags.indexOf(after) + 1 : 0; i < this.tags.length; i++) {\n let rule = this.tags[i];\n if (matches(dom, rule.tag) &&\n (rule.namespace === undefined || dom.namespaceURI == rule.namespace) &&\n (!rule.context || context.matchesContext(rule.context))) {\n if (rule.getAttrs) {\n let result = rule.getAttrs(dom);\n if (result === false)\n continue;\n rule.attrs = result || undefined;\n }\n return rule;\n }\n }\n }\n /**\n @internal\n */\n matchStyle(prop, value, context, after) {\n for (let i = after ? this.styles.indexOf(after) + 1 : 0; i < this.styles.length; i++) {\n let rule = this.styles[i], style = rule.style;\n if (style.indexOf(prop) != 0 ||\n rule.context && !context.matchesContext(rule.context) ||\n // Test that the style string either precisely matches the prop,\n // or has an '=' sign after the prop, followed by the given\n // value.\n style.length > prop.length &&\n (style.charCodeAt(prop.length) != 61 || style.slice(prop.length + 1) != value))\n continue;\n if (rule.getAttrs) {\n let result = rule.getAttrs(value);\n if (result === false)\n continue;\n rule.attrs = result || undefined;\n }\n return rule;\n }\n }\n /**\n @internal\n */\n static schemaRules(schema) {\n let result = [];\n function insert(rule) {\n let priority = rule.priority == null ? 50 : rule.priority, i = 0;\n for (; i < result.length; i++) {\n let next = result[i], nextPriority = next.priority == null ? 50 : next.priority;\n if (nextPriority < priority)\n break;\n }\n result.splice(i, 0, rule);\n }\n for (let name in schema.marks) {\n let rules = schema.marks[name].spec.parseDOM;\n if (rules)\n rules.forEach(rule => {\n insert(rule = copy(rule));\n if (!(rule.mark || rule.ignore || rule.clearMark))\n rule.mark = name;\n });\n }\n for (let name in schema.nodes) {\n let rules = schema.nodes[name].spec.parseDOM;\n if (rules)\n rules.forEach(rule => {\n insert(rule = copy(rule));\n if (!(rule.node || rule.ignore || rule.mark))\n rule.node = name;\n });\n }\n return result;\n }\n /**\n Construct a DOM parser using the parsing rules listed in a\n schema's [node specs](https://prosemirror.net/docs/ref/#model.NodeSpec.parseDOM), reordered by\n [priority](https://prosemirror.net/docs/ref/#model.ParseRule.priority).\n */\n static fromSchema(schema) {\n return schema.cached.domParser ||\n (schema.cached.domParser = new DOMParser(schema, DOMParser.schemaRules(schema)));\n }\n}\nconst blockTags = {\n address: true, article: true, aside: true, blockquote: true, canvas: true,\n dd: true, div: true, dl: true, fieldset: true, figcaption: true, figure: true,\n footer: true, form: true, h1: true, h2: true, h3: true, h4: true, h5: true,\n h6: true, header: true, hgroup: true, hr: true, li: true, noscript: true, ol: true,\n output: true, p: true, pre: true, section: true, table: true, tfoot: true, ul: true\n};\nconst ignoreTags = {\n head: true, noscript: true, object: true, script: true, style: true, title: true\n};\nconst listTags = { ol: true, ul: true };\n// Using a bitfield for node context options\nconst OPT_PRESERVE_WS = 1, OPT_PRESERVE_WS_FULL = 2, OPT_OPEN_LEFT = 4;\nfunction wsOptionsFor(type, preserveWhitespace, base) {\n if (preserveWhitespace != null)\n return (preserveWhitespace ? OPT_PRESERVE_WS : 0) |\n (preserveWhitespace === \"full\" ? OPT_PRESERVE_WS_FULL : 0);\n return type && type.whitespace == \"pre\" ? OPT_PRESERVE_WS | OPT_PRESERVE_WS_FULL : base & ~OPT_OPEN_LEFT;\n}\nclass NodeContext {\n constructor(type, attrs, marks, solid, match, options) {\n this.type = type;\n this.attrs = attrs;\n this.marks = marks;\n this.solid = solid;\n this.options = options;\n this.content = [];\n // Marks applied to the node's children\n this.activeMarks = Mark.none;\n this.match = match || (options & OPT_OPEN_LEFT ? null : type.contentMatch);\n }\n findWrapping(node) {\n if (!this.match) {\n if (!this.type)\n return [];\n let fill = this.type.contentMatch.fillBefore(Fragment.from(node));\n if (fill) {\n this.match = this.type.contentMatch.matchFragment(fill);\n }\n else {\n let start = this.type.contentMatch, wrap;\n if (wrap = start.findWrapping(node.type)) {\n this.match = start;\n return wrap;\n }\n else {\n return null;\n }\n }\n }\n return this.match.findWrapping(node.type);\n }\n finish(openEnd) {\n if (!(this.options & OPT_PRESERVE_WS)) { // Strip trailing whitespace\n let last = this.content[this.content.length - 1], m;\n if (last && last.isText && (m = /[ \\t\\r\\n\\u000c]+$/.exec(last.text))) {\n let text = last;\n if (last.text.length == m[0].length)\n this.content.pop();\n else\n this.content[this.content.length - 1] = text.withText(text.text.slice(0, text.text.length - m[0].length));\n }\n }\n let content = Fragment.from(this.content);\n if (!openEnd && this.match)\n content = content.append(this.match.fillBefore(Fragment.empty, true));\n return this.type ? this.type.create(this.attrs, content, this.marks) : content;\n }\n inlineContext(node) {\n if (this.type)\n return this.type.inlineContent;\n if (this.content.length)\n return this.content[0].isInline;\n return node.parentNode && !blockTags.hasOwnProperty(node.parentNode.nodeName.toLowerCase());\n }\n}\nclass ParseContext {\n constructor(\n // The parser we are using.\n parser, \n // The options passed to this parse.\n options, isOpen) {\n this.parser = parser;\n this.options = options;\n this.isOpen = isOpen;\n this.open = 0;\n this.localPreserveWS = false;\n let topNode = options.topNode, topContext;\n let topOptions = wsOptionsFor(null, options.preserveWhitespace, 0) | (isOpen ? OPT_OPEN_LEFT : 0);\n if (topNode)\n topContext = new NodeContext(topNode.type, topNode.attrs, Mark.none, true, options.topMatch || topNode.type.contentMatch, topOptions);\n else if (isOpen)\n topContext = new NodeContext(null, null, Mark.none, true, null, topOptions);\n else\n topContext = new NodeContext(parser.schema.topNodeType, null, Mark.none, true, null, topOptions);\n this.nodes = [topContext];\n this.find = options.findPositions;\n this.needsBlock = false;\n }\n get top() {\n return this.nodes[this.open];\n }\n // Add a DOM node to the content. Text is inserted as text node,\n // otherwise, the node is passed to `addElement` or, if it has a\n // `style` attribute, `addElementWithStyles`.\n addDOM(dom, marks) {\n if (dom.nodeType == 3)\n this.addTextNode(dom, marks);\n else if (dom.nodeType == 1)\n this.addElement(dom, marks);\n }\n addTextNode(dom, marks) {\n let value = dom.nodeValue;\n let top = this.top, preserveWS = (top.options & OPT_PRESERVE_WS_FULL) ? \"full\"\n : this.localPreserveWS || (top.options & OPT_PRESERVE_WS) > 0;\n if (preserveWS === \"full\" ||\n top.inlineContext(dom) ||\n /[^ \\t\\r\\n\\u000c]/.test(value)) {\n if (!preserveWS) {\n value = value.replace(/[ \\t\\r\\n\\u000c]+/g, \" \");\n // If this starts with whitespace, and there is no node before it, or\n // a hard break, or a text node that ends with whitespace, strip the\n // leading space.\n if (/^[ \\t\\r\\n\\u000c]/.test(value) && this.open == this.nodes.length - 1) {\n let nodeBefore = top.content[top.content.length - 1];\n let domNodeBefore = dom.previousSibling;\n if (!nodeBefore ||\n (domNodeBefore && domNodeBefore.nodeName == 'BR') ||\n (nodeBefore.isText && /[ \\t\\r\\n\\u000c]$/.test(nodeBefore.text)))\n value = value.slice(1);\n }\n }\n else if (preserveWS !== \"full\") {\n value = value.replace(/\\r?\\n|\\r/g, \" \");\n }\n else {\n value = value.replace(/\\r\\n?/g, \"\\n\");\n }\n if (value)\n this.insertNode(this.parser.schema.text(value), marks);\n this.findInText(dom);\n }\n else {\n this.findInside(dom);\n }\n }\n // Try to find a handler for the given tag and use that to parse. If\n // none is found, the element's content nodes are added directly.\n addElement(dom, marks, matchAfter) {\n let outerWS = this.localPreserveWS, top = this.top;\n if (dom.tagName == \"PRE\" || /pre/.test(dom.style && dom.style.whiteSpace))\n this.localPreserveWS = true;\n let name = dom.nodeName.toLowerCase(), ruleID;\n if (listTags.hasOwnProperty(name) && this.parser.normalizeLists)\n normalizeList(dom);\n let rule = (this.options.ruleFromNode && this.options.ruleFromNode(dom)) ||\n (ruleID = this.parser.matchTag(dom, this, matchAfter));\n out: if (rule ? rule.ignore : ignoreTags.hasOwnProperty(name)) {\n this.findInside(dom);\n this.ignoreFallback(dom, marks);\n }\n else if (!rule || rule.skip || rule.closeParent) {\n if (rule && rule.closeParent)\n this.open = Math.max(0, this.open - 1);\n else if (rule && rule.skip.nodeType)\n dom = rule.skip;\n let sync, oldNeedsBlock = this.needsBlock;\n if (blockTags.hasOwnProperty(name)) {\n if (top.content.length && top.content[0].isInline && this.open) {\n this.open--;\n top = this.top;\n }\n sync = true;\n if (!top.type)\n this.needsBlock = true;\n }\n else if (!dom.firstChild) {\n this.leafFallback(dom, marks);\n break out;\n }\n let innerMarks = rule && rule.skip ? marks : this.readStyles(dom, marks);\n if (innerMarks)\n this.addAll(dom, innerMarks);\n if (sync)\n this.sync(top);\n this.needsBlock = oldNeedsBlock;\n }\n else {\n let innerMarks = this.readStyles(dom, marks);\n if (innerMarks)\n this.addElementByRule(dom, rule, innerMarks, rule.consuming === false ? ruleID : undefined);\n }\n this.localPreserveWS = outerWS;\n }\n // Called for leaf DOM nodes that would otherwise be ignored\n leafFallback(dom, marks) {\n if (dom.nodeName == \"BR\" && this.top.type && this.top.type.inlineContent)\n this.addTextNode(dom.ownerDocument.createTextNode(\"\\n\"), marks);\n }\n // Called for ignored nodes\n ignoreFallback(dom, marks) {\n // Ignored BR nodes should at least create an inline context\n if (dom.nodeName == \"BR\" && (!this.top.type || !this.top.type.inlineContent))\n this.findPlace(this.parser.schema.text(\"-\"), marks);\n }\n // Run any style parser associated with the node's styles. Either\n // return an updated array of marks, or null to indicate some of the\n // styles had a rule with `ignore` set.\n readStyles(dom, marks) {\n let styles = dom.style;\n // Because many properties will only show up in 'normalized' form\n // in `style.item` (i.e. text-decoration becomes\n // text-decoration-line, text-decoration-color, etc), we directly\n // query the styles mentioned in our rules instead of iterating\n // over the items.\n if (styles && styles.length)\n for (let i = 0; i < this.parser.matchedStyles.length; i++) {\n let name = this.parser.matchedStyles[i], value = styles.getPropertyValue(name);\n if (value)\n for (let after = undefined;;) {\n let rule = this.parser.matchStyle(name, value, this, after);\n if (!rule)\n break;\n if (rule.ignore)\n return null;\n if (rule.clearMark)\n marks = marks.filter(m => !rule.clearMark(m));\n else\n marks = marks.concat(this.parser.schema.marks[rule.mark].create(rule.attrs));\n if (rule.consuming === false)\n after = rule;\n else\n break;\n }\n }\n return marks;\n }\n // Look up a handler for the given node. If none are found, return\n // false. Otherwise, apply it, use its return value to drive the way\n // the node's content is wrapped, and return true.\n addElementByRule(dom, rule, marks, continueAfter) {\n let sync, nodeType;\n if (rule.node) {\n nodeType = this.parser.schema.nodes[rule.node];\n if (!nodeType.isLeaf) {\n let inner = this.enter(nodeType, rule.attrs || null, marks, rule.preserveWhitespace);\n if (inner) {\n sync = true;\n marks = inner;\n }\n }\n else if (!this.insertNode(nodeType.create(rule.attrs), marks)) {\n this.leafFallback(dom, marks);\n }\n }\n else {\n let markType = this.parser.schema.marks[rule.mark];\n marks = marks.concat(markType.create(rule.attrs));\n }\n let startIn = this.top;\n if (nodeType && nodeType.isLeaf) {\n this.findInside(dom);\n }\n else if (continueAfter) {\n this.addElement(dom, marks, continueAfter);\n }\n else if (rule.getContent) {\n this.findInside(dom);\n rule.getContent(dom, this.parser.schema).forEach(node => this.insertNode(node, marks));\n }\n else {\n let contentDOM = dom;\n if (typeof rule.contentElement == \"string\")\n contentDOM = dom.querySelector(rule.contentElement);\n else if (typeof rule.contentElement == \"function\")\n contentDOM = rule.contentElement(dom);\n else if (rule.contentElement)\n contentDOM = rule.contentElement;\n this.findAround(dom, contentDOM, true);\n this.addAll(contentDOM, marks);\n this.findAround(dom, contentDOM, false);\n }\n if (sync && this.sync(startIn))\n this.open--;\n }\n // Add all child nodes between `startIndex` and `endIndex` (or the\n // whole node, if not given). If `sync` is passed, use it to\n // synchronize after every block element.\n addAll(parent, marks, startIndex, endIndex) {\n let index = startIndex || 0;\n for (let dom = startIndex ? parent.childNodes[startIndex] : parent.firstChild, end = endIndex == null ? null : parent.childNodes[endIndex]; dom != end; dom = dom.nextSibling, ++index) {\n this.findAtPoint(parent, index);\n this.addDOM(dom, marks);\n }\n this.findAtPoint(parent, index);\n }\n // Try to find a way to fit the given node type into the current\n // context. May add intermediate wrappers and/or leave non-solid\n // nodes that we're in.\n findPlace(node, marks) {\n let route, sync;\n for (let depth = this.open; depth >= 0; depth--) {\n let cx = this.nodes[depth];\n let found = cx.findWrapping(node);\n if (found && (!route || route.length > found.length)) {\n route = found;\n sync = cx;\n if (!found.length)\n break;\n }\n if (cx.solid)\n break;\n }\n if (!route)\n return null;\n this.sync(sync);\n for (let i = 0; i < route.length; i++)\n marks = this.enterInner(route[i], null, marks, false);\n return marks;\n }\n // Try to insert the given node, adjusting the context when needed.\n insertNode(node, marks) {\n if (node.isInline && this.needsBlock && !this.top.type) {\n let block = this.textblockFromContext();\n if (block)\n marks = this.enterInner(block, null, marks);\n }\n let innerMarks = this.findPlace(node, marks);\n if (innerMarks) {\n this.closeExtra();\n let top = this.top;\n if (top.match)\n top.match = top.match.matchType(node.type);\n let nodeMarks = Mark.none;\n for (let m of innerMarks.concat(node.marks))\n if (top.type ? top.type.allowsMarkType(m.type) : markMayApply(m.type, node.type))\n nodeMarks = m.addToSet(nodeMarks);\n top.content.push(node.mark(nodeMarks));\n return true;\n }\n return false;\n }\n // Try to start a node of the given type, adjusting the context when\n // necessary.\n enter(type, attrs, marks, preserveWS) {\n let innerMarks = this.findPlace(type.create(attrs), marks);\n if (innerMarks)\n innerMarks = this.enterInner(type, attrs, marks, true, preserveWS);\n return innerMarks;\n }\n // Open a node of the given type\n enterInner(type, attrs, marks, solid = false, preserveWS) {\n this.closeExtra();\n let top = this.top;\n top.match = top.match && top.match.matchType(type);\n let options = wsOptionsFor(type, preserveWS, top.options);\n if ((top.options & OPT_OPEN_LEFT) && top.content.length == 0)\n options |= OPT_OPEN_LEFT;\n let applyMarks = Mark.none;\n marks = marks.filter(m => {\n if (top.type ? top.type.allowsMarkType(m.type) : markMayApply(m.type, type)) {\n applyMarks = m.addToSet(applyMarks);\n return false;\n }\n return true;\n });\n this.nodes.push(new NodeContext(type, attrs, applyMarks, solid, null, options));\n this.open++;\n return marks;\n }\n // Make sure all nodes above this.open are finished and added to\n // their parents\n closeExtra(openEnd = false) {\n let i = this.nodes.length - 1;\n if (i > this.open) {\n for (; i > this.open; i--)\n this.nodes[i - 1].content.push(this.nodes[i].finish(openEnd));\n this.nodes.length = this.open + 1;\n }\n }\n finish() {\n this.open = 0;\n this.closeExtra(this.isOpen);\n return this.nodes[0].finish(!!(this.isOpen || this.options.topOpen));\n }\n sync(to) {\n for (let i = this.open; i >= 0; i--) {\n if (this.nodes[i] == to) {\n this.open = i;\n return true;\n }\n else if (this.localPreserveWS) {\n this.nodes[i].options |= OPT_PRESERVE_WS;\n }\n }\n return false;\n }\n get currentPos() {\n this.closeExtra();\n let pos = 0;\n for (let i = this.open; i >= 0; i--) {\n let content = this.nodes[i].content;\n for (let j = content.length - 1; j >= 0; j--)\n pos += content[j].nodeSize;\n if (i)\n pos++;\n }\n return pos;\n }\n findAtPoint(parent, offset) {\n if (this.find)\n for (let i = 0; i < this.find.length; i++) {\n if (this.find[i].node == parent && this.find[i].offset == offset)\n this.find[i].pos = this.currentPos;\n }\n }\n findInside(parent) {\n if (this.find)\n for (let i = 0; i < this.find.length; i++) {\n if (this.find[i].pos == null && parent.nodeType == 1 && parent.contains(this.find[i].node))\n this.find[i].pos = this.currentPos;\n }\n }\n findAround(parent, content, before) {\n if (parent != content && this.find)\n for (let i = 0; i < this.find.length; i++) {\n if (this.find[i].pos == null && parent.nodeType == 1 && parent.contains(this.find[i].node)) {\n let pos = content.compareDocumentPosition(this.find[i].node);\n if (pos & (before ? 2 : 4))\n this.find[i].pos = this.currentPos;\n }\n }\n }\n findInText(textNode) {\n if (this.find)\n for (let i = 0; i < this.find.length; i++) {\n if (this.find[i].node == textNode)\n this.find[i].pos = this.currentPos - (textNode.nodeValue.length - this.find[i].offset);\n }\n }\n // Determines whether the given context string matches this context.\n matchesContext(context) {\n if (context.indexOf(\"|\") > -1)\n return context.split(/\\s*\\|\\s*/).some(this.matchesContext, this);\n let parts = context.split(\"/\");\n let option = this.options.context;\n let useRoot = !this.isOpen && (!option || option.parent.type == this.nodes[0].type);\n let minDepth = -(option ? option.depth + 1 : 0) + (useRoot ? 0 : 1);\n let match = (i, depth) => {\n for (; i >= 0; i--) {\n let part = parts[i];\n if (part == \"\") {\n if (i == parts.length - 1 || i == 0)\n continue;\n for (; depth >= minDepth; depth--)\n if (match(i - 1, depth))\n return true;\n return false;\n }\n else {\n let next = depth > 0 || (depth == 0 && useRoot) ? this.nodes[depth].type\n : option && depth >= minDepth ? option.node(depth - minDepth).type\n : null;\n if (!next || (next.name != part && !next.isInGroup(part)))\n return false;\n depth--;\n }\n }\n return true;\n };\n return match(parts.length - 1, this.open);\n }\n textblockFromContext() {\n let $context = this.options.context;\n if ($context)\n for (let d = $context.depth; d >= 0; d--) {\n let deflt = $context.node(d).contentMatchAt($context.indexAfter(d)).defaultType;\n if (deflt && deflt.isTextblock && deflt.defaultAttrs)\n return deflt;\n }\n for (let name in this.parser.schema.nodes) {\n let type = this.parser.schema.nodes[name];\n if (type.isTextblock && type.defaultAttrs)\n return type;\n }\n }\n}\n// Kludge to work around directly nested list nodes produced by some\n// tools and allowed by browsers to mean that the nested list is\n// actually part of the list item above it.\nfunction normalizeList(dom) {\n for (let child = dom.firstChild, prevItem = null; child; child = child.nextSibling) {\n let name = child.nodeType == 1 ? child.nodeName.toLowerCase() : null;\n if (name && listTags.hasOwnProperty(name) && prevItem) {\n prevItem.appendChild(child);\n child = prevItem;\n }\n else if (name == \"li\") {\n prevItem = child;\n }\n else if (name) {\n prevItem = null;\n }\n }\n}\n// Apply a CSS selector.\nfunction matches(dom, selector) {\n return (dom.matches || dom.msMatchesSelector || dom.webkitMatchesSelector || dom.mozMatchesSelector).call(dom, selector);\n}\nfunction copy(obj) {\n let copy = {};\n for (let prop in obj)\n copy[prop] = obj[prop];\n return copy;\n}\n// Used when finding a mark at the top level of a fragment parse.\n// Checks whether it would be reasonable to apply a given mark type to\n// a given node, by looking at the way the mark occurs in the schema.\nfunction markMayApply(markType, nodeType) {\n let nodes = nodeType.schema.nodes;\n for (let name in nodes) {\n let parent = nodes[name];\n if (!parent.allowsMarkType(markType))\n continue;\n let seen = [], scan = (match) => {\n seen.push(match);\n for (let i = 0; i < match.edgeCount; i++) {\n let { type, next } = match.edge(i);\n if (type == nodeType)\n return true;\n if (seen.indexOf(next) < 0 && scan(next))\n return true;\n }\n };\n if (scan(parent.contentMatch))\n return true;\n }\n}\n\n/**\nA DOM serializer knows how to convert ProseMirror nodes and\nmarks of various types to DOM nodes.\n*/\nclass DOMSerializer {\n /**\n Create a serializer. `nodes` should map node names to functions\n that take a node and return a description of the corresponding\n DOM. `marks` does the same for mark names, but also gets an\n argument that tells it whether the mark's content is block or\n inline content (for typical use, it'll always be inline). A mark\n serializer may be `null` to indicate that marks of that type\n should not be serialized.\n */\n constructor(\n /**\n The node serialization functions.\n */\n nodes, \n /**\n The mark serialization functions.\n */\n marks) {\n this.nodes = nodes;\n this.marks = marks;\n }\n /**\n Serialize the content of this fragment to a DOM fragment. When\n not in the browser, the `document` option, containing a DOM\n document, should be passed so that the serializer can create\n nodes.\n */\n serializeFragment(fragment, options = {}, target) {\n if (!target)\n target = doc(options).createDocumentFragment();\n let top = target, active = [];\n fragment.forEach(node => {\n if (active.length || node.marks.length) {\n let keep = 0, rendered = 0;\n while (keep < active.length && rendered < node.marks.length) {\n let next = node.marks[rendered];\n if (!this.marks[next.type.name]) {\n rendered++;\n continue;\n }\n if (!next.eq(active[keep][0]) || next.type.spec.spanning === false)\n break;\n keep++;\n rendered++;\n }\n while (keep < active.length)\n top = active.pop()[1];\n while (rendered < node.marks.length) {\n let add = node.marks[rendered++];\n let markDOM = this.serializeMark(add, node.isInline, options);\n if (markDOM) {\n active.push([add, top]);\n top.appendChild(markDOM.dom);\n top = markDOM.contentDOM || markDOM.dom;\n }\n }\n }\n top.appendChild(this.serializeNodeInner(node, options));\n });\n return target;\n }\n /**\n @internal\n */\n serializeNodeInner(node, options) {\n let { dom, contentDOM } = renderSpec(doc(options), this.nodes[node.type.name](node), null, node.attrs);\n if (contentDOM) {\n if (node.isLeaf)\n throw new RangeError(\"Content hole not allowed in a leaf node spec\");\n this.serializeFragment(node.content, options, contentDOM);\n }\n return dom;\n }\n /**\n Serialize this node to a DOM node. This can be useful when you\n need to serialize a part of a document, as opposed to the whole\n document. To serialize a whole document, use\n [`serializeFragment`](https://prosemirror.net/docs/ref/#model.DOMSerializer.serializeFragment) on\n its [content](https://prosemirror.net/docs/ref/#model.Node.content).\n */\n serializeNode(node, options = {}) {\n let dom = this.serializeNodeInner(node, options);\n for (let i = node.marks.length - 1; i >= 0; i--) {\n let wrap = this.serializeMark(node.marks[i], node.isInline, options);\n if (wrap) {\n (wrap.contentDOM || wrap.dom).appendChild(dom);\n dom = wrap.dom;\n }\n }\n return dom;\n }\n /**\n @internal\n */\n serializeMark(mark, inline, options = {}) {\n let toDOM = this.marks[mark.type.name];\n return toDOM && renderSpec(doc(options), toDOM(mark, inline), null, mark.attrs);\n }\n static renderSpec(doc, structure, xmlNS = null, blockArraysIn) {\n return renderSpec(doc, structure, xmlNS, blockArraysIn);\n }\n /**\n Build a serializer using the [`toDOM`](https://prosemirror.net/docs/ref/#model.NodeSpec.toDOM)\n properties in a schema's node and mark specs.\n */\n static fromSchema(schema) {\n return schema.cached.domSerializer ||\n (schema.cached.domSerializer = new DOMSerializer(this.nodesFromSchema(schema), this.marksFromSchema(schema)));\n }\n /**\n Gather the serializers in a schema's node specs into an object.\n This can be useful as a base to build a custom serializer from.\n */\n static nodesFromSchema(schema) {\n let result = gatherToDOM(schema.nodes);\n if (!result.text)\n result.text = node => node.text;\n return result;\n }\n /**\n Gather the serializers in a schema's mark specs into an object.\n */\n static marksFromSchema(schema) {\n return gatherToDOM(schema.marks);\n }\n}\nfunction gatherToDOM(obj) {\n let result = {};\n for (let name in obj) {\n let toDOM = obj[name].spec.toDOM;\n if (toDOM)\n result[name] = toDOM;\n }\n return result;\n}\nfunction doc(options) {\n return options.document || window.document;\n}\nconst suspiciousAttributeCache = new WeakMap();\nfunction suspiciousAttributes(attrs) {\n let value = suspiciousAttributeCache.get(attrs);\n if (value === undefined)\n suspiciousAttributeCache.set(attrs, value = suspiciousAttributesInner(attrs));\n return value;\n}\nfunction suspiciousAttributesInner(attrs) {\n let result = null;\n function scan(value) {\n if (value && typeof value == \"object\") {\n if (Array.isArray(value)) {\n if (typeof value[0] == \"string\") {\n if (!result)\n result = [];\n result.push(value);\n }\n else {\n for (let i = 0; i < value.length; i++)\n scan(value[i]);\n }\n }\n else {\n for (let prop in value)\n scan(value[prop]);\n }\n }\n }\n scan(attrs);\n return result;\n}\nfunction renderSpec(doc, structure, xmlNS, blockArraysIn) {\n if (typeof structure == \"string\")\n return { dom: doc.createTextNode(structure) };\n if (structure.nodeType != null)\n return { dom: structure };\n if (structure.dom && structure.dom.nodeType != null)\n return structure;\n let tagName = structure[0], suspicious;\n if (typeof tagName != \"string\")\n throw new RangeError(\"Invalid array passed to renderSpec\");\n if (blockArraysIn && (suspicious = suspiciousAttributes(blockArraysIn)) &&\n suspicious.indexOf(structure) > -1)\n throw new RangeError(\"Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.\");\n let space = tagName.indexOf(\" \");\n if (space > 0) {\n xmlNS = tagName.slice(0, space);\n tagName = tagName.slice(space + 1);\n }\n let contentDOM;\n let dom = (xmlNS ? doc.createElementNS(xmlNS, tagName) : doc.createElement(tagName));\n let attrs = structure[1], start = 1;\n if (attrs && typeof attrs == \"object\" && attrs.nodeType == null && !Array.isArray(attrs)) {\n start = 2;\n for (let name in attrs)\n if (attrs[name] != null) {\n let space = name.indexOf(\" \");\n if (space > 0)\n dom.setAttributeNS(name.slice(0, space), name.slice(space + 1), attrs[name]);\n else\n dom.setAttribute(name, attrs[name]);\n }\n }\n for (let i = start; i < structure.length; i++) {\n let child = structure[i];\n if (child === 0) {\n if (i < structure.length - 1 || i > start)\n throw new RangeError(\"Content hole must be the only child of its parent node\");\n return { dom, contentDOM: dom };\n }\n else {\n let { dom: inner, contentDOM: innerContent } = renderSpec(doc, child, xmlNS, blockArraysIn);\n dom.appendChild(inner);\n if (innerContent) {\n if (contentDOM)\n throw new RangeError(\"Multiple content holes\");\n contentDOM = innerContent;\n }\n }\n }\n return { dom, contentDOM };\n}\n\nexport { ContentMatch, DOMParser, DOMSerializer, Fragment, Mark, MarkType, Node, NodeRange, NodeType, ReplaceError, ResolvedPos, Schema, Slice };\n","import { ReplaceError, Slice, Fragment, MarkType, Mark } from 'prosemirror-model';\n\n// Recovery values encode a range index and an offset. They are\n// represented as numbers, because tons of them will be created when\n// mapping, for example, a large number of decorations. The number's\n// lower 16 bits provide the index, the remaining bits the offset.\n//\n// Note: We intentionally don't use bit shift operators to en- and\n// decode these, since those clip to 32 bits, which we might in rare\n// cases want to overflow. A 64-bit float can represent 48-bit\n// integers precisely.\nconst lower16 = 0xffff;\nconst factor16 = Math.pow(2, 16);\nfunction makeRecover(index, offset) { return index + offset * factor16; }\nfunction recoverIndex(value) { return value & lower16; }\nfunction recoverOffset(value) { return (value - (value & lower16)) / factor16; }\nconst DEL_BEFORE = 1, DEL_AFTER = 2, DEL_ACROSS = 4, DEL_SIDE = 8;\n/**\nAn object representing a mapped position with extra\ninformation.\n*/\nclass MapResult {\n /**\n @internal\n */\n constructor(\n /**\n The mapped version of the position.\n */\n pos, \n /**\n @internal\n */\n delInfo, \n /**\n @internal\n */\n recover) {\n this.pos = pos;\n this.delInfo = delInfo;\n this.recover = recover;\n }\n /**\n Tells you whether the position was deleted, that is, whether the\n step removed the token on the side queried (via the `assoc`)\n argument from the document.\n */\n get deleted() { return (this.delInfo & DEL_SIDE) > 0; }\n /**\n Tells you whether the token before the mapped position was deleted.\n */\n get deletedBefore() { return (this.delInfo & (DEL_BEFORE | DEL_ACROSS)) > 0; }\n /**\n True when the token after the mapped position was deleted.\n */\n get deletedAfter() { return (this.delInfo & (DEL_AFTER | DEL_ACROSS)) > 0; }\n /**\n Tells whether any of the steps mapped through deletes across the\n position (including both the token before and after the\n position).\n */\n get deletedAcross() { return (this.delInfo & DEL_ACROSS) > 0; }\n}\n/**\nA map describing the deletions and insertions made by a step, which\ncan be used to find the correspondence between positions in the\npre-step version of a document and the same position in the\npost-step version.\n*/\nclass StepMap {\n /**\n Create a position map. The modifications to the document are\n represented as an array of numbers, in which each group of three\n represents a modified chunk as `[start, oldSize, newSize]`.\n */\n constructor(\n /**\n @internal\n */\n ranges, \n /**\n @internal\n */\n inverted = false) {\n this.ranges = ranges;\n this.inverted = inverted;\n if (!ranges.length && StepMap.empty)\n return StepMap.empty;\n }\n /**\n @internal\n */\n recover(value) {\n let diff = 0, index = recoverIndex(value);\n if (!this.inverted)\n for (let i = 0; i < index; i++)\n diff += this.ranges[i * 3 + 2] - this.ranges[i * 3 + 1];\n return this.ranges[index * 3] + diff + recoverOffset(value);\n }\n mapResult(pos, assoc = 1) { return this._map(pos, assoc, false); }\n map(pos, assoc = 1) { return this._map(pos, assoc, true); }\n /**\n @internal\n */\n _map(pos, assoc, simple) {\n let diff = 0, oldIndex = this.inverted ? 2 : 1, newIndex = this.inverted ? 1 : 2;\n for (let i = 0; i < this.ranges.length; i += 3) {\n let start = this.ranges[i] - (this.inverted ? diff : 0);\n if (start > pos)\n break;\n let oldSize = this.ranges[i + oldIndex], newSize = this.ranges[i + newIndex], end = start + oldSize;\n if (pos <= end) {\n let side = !oldSize ? assoc : pos == start ? -1 : pos == end ? 1 : assoc;\n let result = start + diff + (side < 0 ? 0 : newSize);\n if (simple)\n return result;\n let recover = pos == (assoc < 0 ? start : end) ? null : makeRecover(i / 3, pos - start);\n let del = pos == start ? DEL_AFTER : pos == end ? DEL_BEFORE : DEL_ACROSS;\n if (assoc < 0 ? pos != start : pos != end)\n del |= DEL_SIDE;\n return new MapResult(result, del, recover);\n }\n diff += newSize - oldSize;\n }\n return simple ? pos + diff : new MapResult(pos + diff, 0, null);\n }\n /**\n @internal\n */\n touches(pos, recover) {\n let diff = 0, index = recoverIndex(recover);\n let oldIndex = this.inverted ? 2 : 1, newIndex = this.inverted ? 1 : 2;\n for (let i = 0; i < this.ranges.length; i += 3) {\n let start = this.ranges[i] - (this.inverted ? diff : 0);\n if (start > pos)\n break;\n let oldSize = this.ranges[i + oldIndex], end = start + oldSize;\n if (pos <= end && i == index * 3)\n return true;\n diff += this.ranges[i + newIndex] - oldSize;\n }\n return false;\n }\n /**\n Calls the given function on each of the changed ranges included in\n this map.\n */\n forEach(f) {\n let oldIndex = this.inverted ? 2 : 1, newIndex = this.inverted ? 1 : 2;\n for (let i = 0, diff = 0; i < this.ranges.length; i += 3) {\n let start = this.ranges[i], oldStart = start - (this.inverted ? diff : 0), newStart = start + (this.inverted ? 0 : diff);\n let oldSize = this.ranges[i + oldIndex], newSize = this.ranges[i + newIndex];\n f(oldStart, oldStart + oldSize, newStart, newStart + newSize);\n diff += newSize - oldSize;\n }\n }\n /**\n Create an inverted version of this map. The result can be used to\n map positions in the post-step document to the pre-step document.\n */\n invert() {\n return new StepMap(this.ranges, !this.inverted);\n }\n /**\n @internal\n */\n toString() {\n return (this.inverted ? \"-\" : \"\") + JSON.stringify(this.ranges);\n }\n /**\n Create a map that moves all positions by offset `n` (which may be\n negative). This can be useful when applying steps meant for a\n sub-document to a larger document, or vice-versa.\n */\n static offset(n) {\n return n == 0 ? StepMap.empty : new StepMap(n < 0 ? [0, -n, 0] : [0, 0, n]);\n }\n}\n/**\nA StepMap that contains no changed ranges.\n*/\nStepMap.empty = new StepMap([]);\n/**\nA mapping represents a pipeline of zero or more [step\nmaps](https://prosemirror.net/docs/ref/#transform.StepMap). It has special provisions for losslessly\nhandling mapping positions through a series of steps in which some\nsteps are inverted versions of earlier steps. (This comes up when\n‘[rebasing](/docs/guide/#transform.rebasing)’ steps for\ncollaboration or history management.)\n*/\nclass Mapping {\n /**\n Create a new mapping with the given position maps.\n */\n constructor(\n /**\n The step maps in this mapping.\n */\n maps = [], \n /**\n @internal\n */\n mirror, \n /**\n The starting position in the `maps` array, used when `map` or\n `mapResult` is called.\n */\n from = 0, \n /**\n The end position in the `maps` array.\n */\n to = maps.length) {\n this.maps = maps;\n this.mirror = mirror;\n this.from = from;\n this.to = to;\n }\n /**\n Create a mapping that maps only through a part of this one.\n */\n slice(from = 0, to = this.maps.length) {\n return new Mapping(this.maps, this.mirror, from, to);\n }\n /**\n @internal\n */\n copy() {\n return new Mapping(this.maps.slice(), this.mirror && this.mirror.slice(), this.from, this.to);\n }\n /**\n Add a step map to the end of this mapping. If `mirrors` is\n given, it should be the index of the step map that is the mirror\n image of this one.\n */\n appendMap(map, mirrors) {\n this.to = this.maps.push(map);\n if (mirrors != null)\n this.setMirror(this.maps.length - 1, mirrors);\n }\n /**\n Add all the step maps in a given mapping to this one (preserving\n mirroring information).\n */\n appendMapping(mapping) {\n for (let i = 0, startSize = this.maps.length; i < mapping.maps.length; i++) {\n let mirr = mapping.getMirror(i);\n this.appendMap(mapping.maps[i], mirr != null && mirr < i ? startSize + mirr : undefined);\n }\n }\n /**\n Finds the offset of the step map that mirrors the map at the\n given offset, in this mapping (as per the second argument to\n `appendMap`).\n */\n getMirror(n) {\n if (this.mirror)\n for (let i = 0; i < this.mirror.length; i++)\n if (this.mirror[i] == n)\n return this.mirror[i + (i % 2 ? -1 : 1)];\n }\n /**\n @internal\n */\n setMirror(n, m) {\n if (!this.mirror)\n this.mirror = [];\n this.mirror.push(n, m);\n }\n /**\n Append the inverse of the given mapping to this one.\n */\n appendMappingInverted(mapping) {\n for (let i = mapping.maps.length - 1, totalSize = this.maps.length + mapping.maps.length; i >= 0; i--) {\n let mirr = mapping.getMirror(i);\n this.appendMap(mapping.maps[i].invert(), mirr != null && mirr > i ? totalSize - mirr - 1 : undefined);\n }\n }\n /**\n Create an inverted version of this mapping.\n */\n invert() {\n let inverse = new Mapping;\n inverse.appendMappingInverted(this);\n return inverse;\n }\n /**\n Map a position through this mapping.\n */\n map(pos, assoc = 1) {\n if (this.mirror)\n return this._map(pos, assoc, true);\n for (let i = this.from; i < this.to; i++)\n pos = this.maps[i].map(pos, assoc);\n return pos;\n }\n /**\n Map a position through this mapping, returning a mapping\n result.\n */\n mapResult(pos, assoc = 1) { return this._map(pos, assoc, false); }\n /**\n @internal\n */\n _map(pos, assoc, simple) {\n let delInfo = 0;\n for (let i = this.from; i < this.to; i++) {\n let map = this.maps[i], result = map.mapResult(pos, assoc);\n if (result.recover != null) {\n let corr = this.getMirror(i);\n if (corr != null && corr > i && corr < this.to) {\n i = corr;\n pos = this.maps[corr].recover(result.recover);\n continue;\n }\n }\n delInfo |= result.delInfo;\n pos = result.pos;\n }\n return simple ? pos : new MapResult(pos, delInfo, null);\n }\n}\n\nconst stepsByID = Object.create(null);\n/**\nA step object represents an atomic change. It generally applies\nonly to the document it was created for, since the positions\nstored in it will only make sense for that document.\n\nNew steps are defined by creating classes that extend `Step`,\noverriding the `apply`, `invert`, `map`, `getMap` and `fromJSON`\nmethods, and registering your class with a unique\nJSON-serialization identifier using\n[`Step.jsonID`](https://prosemirror.net/docs/ref/#transform.Step^jsonID).\n*/\nclass Step {\n /**\n Get the step map that represents the changes made by this step,\n and which can be used to transform between positions in the old\n and the new document.\n */\n getMap() { return StepMap.empty; }\n /**\n Try to merge this step with another one, to be applied directly\n after it. Returns the merged step when possible, null if the\n steps can't be merged.\n */\n merge(other) { return null; }\n /**\n Deserialize a step from its JSON representation. Will call\n through to the step class' own implementation of this method.\n */\n static fromJSON(schema, json) {\n if (!json || !json.stepType)\n throw new RangeError(\"Invalid input for Step.fromJSON\");\n let type = stepsByID[json.stepType];\n if (!type)\n throw new RangeError(`No step type ${json.stepType} defined`);\n return type.fromJSON(schema, json);\n }\n /**\n To be able to serialize steps to JSON, each step needs a string\n ID to attach to its JSON representation. Use this method to\n register an ID for your step classes. Try to pick something\n that's unlikely to clash with steps from other modules.\n */\n static jsonID(id, stepClass) {\n if (id in stepsByID)\n throw new RangeError(\"Duplicate use of step JSON ID \" + id);\n stepsByID[id] = stepClass;\n stepClass.prototype.jsonID = id;\n return stepClass;\n }\n}\n/**\nThe result of [applying](https://prosemirror.net/docs/ref/#transform.Step.apply) a step. Contains either a\nnew document or a failure value.\n*/\nclass StepResult {\n /**\n @internal\n */\n constructor(\n /**\n The transformed document, if successful.\n */\n doc, \n /**\n The failure message, if unsuccessful.\n */\n failed) {\n this.doc = doc;\n this.failed = failed;\n }\n /**\n Create a successful step result.\n */\n static ok(doc) { return new StepResult(doc, null); }\n /**\n Create a failed step result.\n */\n static fail(message) { return new StepResult(null, message); }\n /**\n Call [`Node.replace`](https://prosemirror.net/docs/ref/#model.Node.replace) with the given\n arguments. Create a successful result if it succeeds, and a\n failed one if it throws a `ReplaceError`.\n */\n static fromReplace(doc, from, to, slice) {\n try {\n return StepResult.ok(doc.replace(from, to, slice));\n }\n catch (e) {\n if (e instanceof ReplaceError)\n return StepResult.fail(e.message);\n throw e;\n }\n }\n}\n\nfunction mapFragment(fragment, f, parent) {\n let mapped = [];\n for (let i = 0; i < fragment.childCount; i++) {\n let child = fragment.child(i);\n if (child.content.size)\n child = child.copy(mapFragment(child.content, f, child));\n if (child.isInline)\n child = f(child, parent, i);\n mapped.push(child);\n }\n return Fragment.fromArray(mapped);\n}\n/**\nAdd a mark to all inline content between two positions.\n*/\nclass AddMarkStep extends Step {\n /**\n Create a mark step.\n */\n constructor(\n /**\n The start of the marked range.\n */\n from, \n /**\n The end of the marked range.\n */\n to, \n /**\n The mark to add.\n */\n mark) {\n super();\n this.from = from;\n this.to = to;\n this.mark = mark;\n }\n apply(doc) {\n let oldSlice = doc.slice(this.from, this.to), $from = doc.resolve(this.from);\n let parent = $from.node($from.sharedDepth(this.to));\n let slice = new Slice(mapFragment(oldSlice.content, (node, parent) => {\n if (!node.isAtom || !parent.type.allowsMarkType(this.mark.type))\n return node;\n return node.mark(this.mark.addToSet(node.marks));\n }, parent), oldSlice.openStart, oldSlice.openEnd);\n return StepResult.fromReplace(doc, this.from, this.to, slice);\n }\n invert() {\n return new RemoveMarkStep(this.from, this.to, this.mark);\n }\n map(mapping) {\n let from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n if (from.deleted && to.deleted || from.pos >= to.pos)\n return null;\n return new AddMarkStep(from.pos, to.pos, this.mark);\n }\n merge(other) {\n if (other instanceof AddMarkStep &&\n other.mark.eq(this.mark) &&\n this.from <= other.to && this.to >= other.from)\n return new AddMarkStep(Math.min(this.from, other.from), Math.max(this.to, other.to), this.mark);\n return null;\n }\n toJSON() {\n return { stepType: \"addMark\", mark: this.mark.toJSON(),\n from: this.from, to: this.to };\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\")\n throw new RangeError(\"Invalid input for AddMarkStep.fromJSON\");\n return new AddMarkStep(json.from, json.to, schema.markFromJSON(json.mark));\n }\n}\nStep.jsonID(\"addMark\", AddMarkStep);\n/**\nRemove a mark from all inline content between two positions.\n*/\nclass RemoveMarkStep extends Step {\n /**\n Create a mark-removing step.\n */\n constructor(\n /**\n The start of the unmarked range.\n */\n from, \n /**\n The end of the unmarked range.\n */\n to, \n /**\n The mark to remove.\n */\n mark) {\n super();\n this.from = from;\n this.to = to;\n this.mark = mark;\n }\n apply(doc) {\n let oldSlice = doc.slice(this.from, this.to);\n let slice = new Slice(mapFragment(oldSlice.content, node => {\n return node.mark(this.mark.removeFromSet(node.marks));\n }, doc), oldSlice.openStart, oldSlice.openEnd);\n return StepResult.fromReplace(doc, this.from, this.to, slice);\n }\n invert() {\n return new AddMarkStep(this.from, this.to, this.mark);\n }\n map(mapping) {\n let from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n if (from.deleted && to.deleted || from.pos >= to.pos)\n return null;\n return new RemoveMarkStep(from.pos, to.pos, this.mark);\n }\n merge(other) {\n if (other instanceof RemoveMarkStep &&\n other.mark.eq(this.mark) &&\n this.from <= other.to && this.to >= other.from)\n return new RemoveMarkStep(Math.min(this.from, other.from), Math.max(this.to, other.to), this.mark);\n return null;\n }\n toJSON() {\n return { stepType: \"removeMark\", mark: this.mark.toJSON(),\n from: this.from, to: this.to };\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\")\n throw new RangeError(\"Invalid input for RemoveMarkStep.fromJSON\");\n return new RemoveMarkStep(json.from, json.to, schema.markFromJSON(json.mark));\n }\n}\nStep.jsonID(\"removeMark\", RemoveMarkStep);\n/**\nAdd a mark to a specific node.\n*/\nclass AddNodeMarkStep extends Step {\n /**\n Create a node mark step.\n */\n constructor(\n /**\n The position of the target node.\n */\n pos, \n /**\n The mark to add.\n */\n mark) {\n super();\n this.pos = pos;\n this.mark = mark;\n }\n apply(doc) {\n let node = doc.nodeAt(this.pos);\n if (!node)\n return StepResult.fail(\"No node at mark step's position\");\n let updated = node.type.create(node.attrs, null, this.mark.addToSet(node.marks));\n return StepResult.fromReplace(doc, this.pos, this.pos + 1, new Slice(Fragment.from(updated), 0, node.isLeaf ? 0 : 1));\n }\n invert(doc) {\n let node = doc.nodeAt(this.pos);\n if (node) {\n let newSet = this.mark.addToSet(node.marks);\n if (newSet.length == node.marks.length) {\n for (let i = 0; i < node.marks.length; i++)\n if (!node.marks[i].isInSet(newSet))\n return new AddNodeMarkStep(this.pos, node.marks[i]);\n return new AddNodeMarkStep(this.pos, this.mark);\n }\n }\n return new RemoveNodeMarkStep(this.pos, this.mark);\n }\n map(mapping) {\n let pos = mapping.mapResult(this.pos, 1);\n return pos.deletedAfter ? null : new AddNodeMarkStep(pos.pos, this.mark);\n }\n toJSON() {\n return { stepType: \"addNodeMark\", pos: this.pos, mark: this.mark.toJSON() };\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.pos != \"number\")\n throw new RangeError(\"Invalid input for AddNodeMarkStep.fromJSON\");\n return new AddNodeMarkStep(json.pos, schema.markFromJSON(json.mark));\n }\n}\nStep.jsonID(\"addNodeMark\", AddNodeMarkStep);\n/**\nRemove a mark from a specific node.\n*/\nclass RemoveNodeMarkStep extends Step {\n /**\n Create a mark-removing step.\n */\n constructor(\n /**\n The position of the target node.\n */\n pos, \n /**\n The mark to remove.\n */\n mark) {\n super();\n this.pos = pos;\n this.mark = mark;\n }\n apply(doc) {\n let node = doc.nodeAt(this.pos);\n if (!node)\n return StepResult.fail(\"No node at mark step's position\");\n let updated = node.type.create(node.attrs, null, this.mark.removeFromSet(node.marks));\n return StepResult.fromReplace(doc, this.pos, this.pos + 1, new Slice(Fragment.from(updated), 0, node.isLeaf ? 0 : 1));\n }\n invert(doc) {\n let node = doc.nodeAt(this.pos);\n if (!node || !this.mark.isInSet(node.marks))\n return this;\n return new AddNodeMarkStep(this.pos, this.mark);\n }\n map(mapping) {\n let pos = mapping.mapResult(this.pos, 1);\n return pos.deletedAfter ? null : new RemoveNodeMarkStep(pos.pos, this.mark);\n }\n toJSON() {\n return { stepType: \"removeNodeMark\", pos: this.pos, mark: this.mark.toJSON() };\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.pos != \"number\")\n throw new RangeError(\"Invalid input for RemoveNodeMarkStep.fromJSON\");\n return new RemoveNodeMarkStep(json.pos, schema.markFromJSON(json.mark));\n }\n}\nStep.jsonID(\"removeNodeMark\", RemoveNodeMarkStep);\n\n/**\nReplace a part of the document with a slice of new content.\n*/\nclass ReplaceStep extends Step {\n /**\n The given `slice` should fit the 'gap' between `from` and\n `to`—the depths must line up, and the surrounding nodes must be\n able to be joined with the open sides of the slice. When\n `structure` is true, the step will fail if the content between\n from and to is not just a sequence of closing and then opening\n tokens (this is to guard against rebased replace steps\n overwriting something they weren't supposed to).\n */\n constructor(\n /**\n The start position of the replaced range.\n */\n from, \n /**\n The end position of the replaced range.\n */\n to, \n /**\n The slice to insert.\n */\n slice, \n /**\n @internal\n */\n structure = false) {\n super();\n this.from = from;\n this.to = to;\n this.slice = slice;\n this.structure = structure;\n }\n apply(doc) {\n if (this.structure && contentBetween(doc, this.from, this.to))\n return StepResult.fail(\"Structure replace would overwrite content\");\n return StepResult.fromReplace(doc, this.from, this.to, this.slice);\n }\n getMap() {\n return new StepMap([this.from, this.to - this.from, this.slice.size]);\n }\n invert(doc) {\n return new ReplaceStep(this.from, this.from + this.slice.size, doc.slice(this.from, this.to));\n }\n map(mapping) {\n let from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n if (from.deletedAcross && to.deletedAcross)\n return null;\n return new ReplaceStep(from.pos, Math.max(from.pos, to.pos), this.slice);\n }\n merge(other) {\n if (!(other instanceof ReplaceStep) || other.structure || this.structure)\n return null;\n if (this.from + this.slice.size == other.from && !this.slice.openEnd && !other.slice.openStart) {\n let slice = this.slice.size + other.slice.size == 0 ? Slice.empty\n : new Slice(this.slice.content.append(other.slice.content), this.slice.openStart, other.slice.openEnd);\n return new ReplaceStep(this.from, this.to + (other.to - other.from), slice, this.structure);\n }\n else if (other.to == this.from && !this.slice.openStart && !other.slice.openEnd) {\n let slice = this.slice.size + other.slice.size == 0 ? Slice.empty\n : new Slice(other.slice.content.append(this.slice.content), other.slice.openStart, this.slice.openEnd);\n return new ReplaceStep(other.from, this.to, slice, this.structure);\n }\n else {\n return null;\n }\n }\n toJSON() {\n let json = { stepType: \"replace\", from: this.from, to: this.to };\n if (this.slice.size)\n json.slice = this.slice.toJSON();\n if (this.structure)\n json.structure = true;\n return json;\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\")\n throw new RangeError(\"Invalid input for ReplaceStep.fromJSON\");\n return new ReplaceStep(json.from, json.to, Slice.fromJSON(schema, json.slice), !!json.structure);\n }\n}\nStep.jsonID(\"replace\", ReplaceStep);\n/**\nReplace a part of the document with a slice of content, but\npreserve a range of the replaced content by moving it into the\nslice.\n*/\nclass ReplaceAroundStep extends Step {\n /**\n Create a replace-around step with the given range and gap.\n `insert` should be the point in the slice into which the content\n of the gap should be moved. `structure` has the same meaning as\n it has in the [`ReplaceStep`](https://prosemirror.net/docs/ref/#transform.ReplaceStep) class.\n */\n constructor(\n /**\n The start position of the replaced range.\n */\n from, \n /**\n The end position of the replaced range.\n */\n to, \n /**\n The start of preserved range.\n */\n gapFrom, \n /**\n The end of preserved range.\n */\n gapTo, \n /**\n The slice to insert.\n */\n slice, \n /**\n The position in the slice where the preserved range should be\n inserted.\n */\n insert, \n /**\n @internal\n */\n structure = false) {\n super();\n this.from = from;\n this.to = to;\n this.gapFrom = gapFrom;\n this.gapTo = gapTo;\n this.slice = slice;\n this.insert = insert;\n this.structure = structure;\n }\n apply(doc) {\n if (this.structure && (contentBetween(doc, this.from, this.gapFrom) ||\n contentBetween(doc, this.gapTo, this.to)))\n return StepResult.fail(\"Structure gap-replace would overwrite content\");\n let gap = doc.slice(this.gapFrom, this.gapTo);\n if (gap.openStart || gap.openEnd)\n return StepResult.fail(\"Gap is not a flat range\");\n let inserted = this.slice.insertAt(this.insert, gap.content);\n if (!inserted)\n return StepResult.fail(\"Content does not fit in gap\");\n return StepResult.fromReplace(doc, this.from, this.to, inserted);\n }\n getMap() {\n return new StepMap([this.from, this.gapFrom - this.from, this.insert,\n this.gapTo, this.to - this.gapTo, this.slice.size - this.insert]);\n }\n invert(doc) {\n let gap = this.gapTo - this.gapFrom;\n return new ReplaceAroundStep(this.from, this.from + this.slice.size + gap, this.from + this.insert, this.from + this.insert + gap, doc.slice(this.from, this.to).removeBetween(this.gapFrom - this.from, this.gapTo - this.from), this.gapFrom - this.from, this.structure);\n }\n map(mapping) {\n let from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n let gapFrom = this.from == this.gapFrom ? from.pos : mapping.map(this.gapFrom, -1);\n let gapTo = this.to == this.gapTo ? to.pos : mapping.map(this.gapTo, 1);\n if ((from.deletedAcross && to.deletedAcross) || gapFrom < from.pos || gapTo > to.pos)\n return null;\n return new ReplaceAroundStep(from.pos, to.pos, gapFrom, gapTo, this.slice, this.insert, this.structure);\n }\n toJSON() {\n let json = { stepType: \"replaceAround\", from: this.from, to: this.to,\n gapFrom: this.gapFrom, gapTo: this.gapTo, insert: this.insert };\n if (this.slice.size)\n json.slice = this.slice.toJSON();\n if (this.structure)\n json.structure = true;\n return json;\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\" ||\n typeof json.gapFrom != \"number\" || typeof json.gapTo != \"number\" || typeof json.insert != \"number\")\n throw new RangeError(\"Invalid input for ReplaceAroundStep.fromJSON\");\n return new ReplaceAroundStep(json.from, json.to, json.gapFrom, json.gapTo, Slice.fromJSON(schema, json.slice), json.insert, !!json.structure);\n }\n}\nStep.jsonID(\"replaceAround\", ReplaceAroundStep);\nfunction contentBetween(doc, from, to) {\n let $from = doc.resolve(from), dist = to - from, depth = $from.depth;\n while (dist > 0 && depth > 0 && $from.indexAfter(depth) == $from.node(depth).childCount) {\n depth--;\n dist--;\n }\n if (dist > 0) {\n let next = $from.node(depth).maybeChild($from.indexAfter(depth));\n while (dist > 0) {\n if (!next || next.isLeaf)\n return true;\n next = next.firstChild;\n dist--;\n }\n }\n return false;\n}\n\nfunction addMark(tr, from, to, mark) {\n let removed = [], added = [];\n let removing, adding;\n tr.doc.nodesBetween(from, to, (node, pos, parent) => {\n if (!node.isInline)\n return;\n let marks = node.marks;\n if (!mark.isInSet(marks) && parent.type.allowsMarkType(mark.type)) {\n let start = Math.max(pos, from), end = Math.min(pos + node.nodeSize, to);\n let newSet = mark.addToSet(marks);\n for (let i = 0; i < marks.length; i++) {\n if (!marks[i].isInSet(newSet)) {\n if (removing && removing.to == start && removing.mark.eq(marks[i]))\n removing.to = end;\n else\n removed.push(removing = new RemoveMarkStep(start, end, marks[i]));\n }\n }\n if (adding && adding.to == start)\n adding.to = end;\n else\n added.push(adding = new AddMarkStep(start, end, mark));\n }\n });\n removed.forEach(s => tr.step(s));\n added.forEach(s => tr.step(s));\n}\nfunction removeMark(tr, from, to, mark) {\n let matched = [], step = 0;\n tr.doc.nodesBetween(from, to, (node, pos) => {\n if (!node.isInline)\n return;\n step++;\n let toRemove = null;\n if (mark instanceof MarkType) {\n let set = node.marks, found;\n while (found = mark.isInSet(set)) {\n (toRemove || (toRemove = [])).push(found);\n set = found.removeFromSet(set);\n }\n }\n else if (mark) {\n if (mark.isInSet(node.marks))\n toRemove = [mark];\n }\n else {\n toRemove = node.marks;\n }\n if (toRemove && toRemove.length) {\n let end = Math.min(pos + node.nodeSize, to);\n for (let i = 0; i < toRemove.length; i++) {\n let style = toRemove[i], found;\n for (let j = 0; j < matched.length; j++) {\n let m = matched[j];\n if (m.step == step - 1 && style.eq(matched[j].style))\n found = m;\n }\n if (found) {\n found.to = end;\n found.step = step;\n }\n else {\n matched.push({ style, from: Math.max(pos, from), to: end, step });\n }\n }\n }\n });\n matched.forEach(m => tr.step(new RemoveMarkStep(m.from, m.to, m.style)));\n}\nfunction clearIncompatible(tr, pos, parentType, match = parentType.contentMatch, clearNewlines = true) {\n let node = tr.doc.nodeAt(pos);\n let replSteps = [], cur = pos + 1;\n for (let i = 0; i < node.childCount; i++) {\n let child = node.child(i), end = cur + child.nodeSize;\n let allowed = match.matchType(child.type);\n if (!allowed) {\n replSteps.push(new ReplaceStep(cur, end, Slice.empty));\n }\n else {\n match = allowed;\n for (let j = 0; j < child.marks.length; j++)\n if (!parentType.allowsMarkType(child.marks[j].type))\n tr.step(new RemoveMarkStep(cur, end, child.marks[j]));\n if (clearNewlines && child.isText && parentType.whitespace != \"pre\") {\n let m, newline = /\\r?\\n|\\r/g, slice;\n while (m = newline.exec(child.text)) {\n if (!slice)\n slice = new Slice(Fragment.from(parentType.schema.text(\" \", parentType.allowedMarks(child.marks))), 0, 0);\n replSteps.push(new ReplaceStep(cur + m.index, cur + m.index + m[0].length, slice));\n }\n }\n }\n cur = end;\n }\n if (!match.validEnd) {\n let fill = match.fillBefore(Fragment.empty, true);\n tr.replace(cur, cur, new Slice(fill, 0, 0));\n }\n for (let i = replSteps.length - 1; i >= 0; i--)\n tr.step(replSteps[i]);\n}\n\nfunction canCut(node, start, end) {\n return (start == 0 || node.canReplace(start, node.childCount)) &&\n (end == node.childCount || node.canReplace(0, end));\n}\n/**\nTry to find a target depth to which the content in the given range\ncan be lifted. Will not go across\n[isolating](https://prosemirror.net/docs/ref/#model.NodeSpec.isolating) parent nodes.\n*/\nfunction liftTarget(range) {\n let parent = range.parent;\n let content = parent.content.cutByIndex(range.startIndex, range.endIndex);\n for (let depth = range.depth;; --depth) {\n let node = range.$from.node(depth);\n let index = range.$from.index(depth), endIndex = range.$to.indexAfter(depth);\n if (depth < range.depth && node.canReplace(index, endIndex, content))\n return depth;\n if (depth == 0 || node.type.spec.isolating || !canCut(node, index, endIndex))\n break;\n }\n return null;\n}\nfunction lift(tr, range, target) {\n let { $from, $to, depth } = range;\n let gapStart = $from.before(depth + 1), gapEnd = $to.after(depth + 1);\n let start = gapStart, end = gapEnd;\n let before = Fragment.empty, openStart = 0;\n for (let d = depth, splitting = false; d > target; d--)\n if (splitting || $from.index(d) > 0) {\n splitting = true;\n before = Fragment.from($from.node(d).copy(before));\n openStart++;\n }\n else {\n start--;\n }\n let after = Fragment.empty, openEnd = 0;\n for (let d = depth, splitting = false; d > target; d--)\n if (splitting || $to.after(d + 1) < $to.end(d)) {\n splitting = true;\n after = Fragment.from($to.node(d).copy(after));\n openEnd++;\n }\n else {\n end++;\n }\n tr.step(new ReplaceAroundStep(start, end, gapStart, gapEnd, new Slice(before.append(after), openStart, openEnd), before.size - openStart, true));\n}\n/**\nTry to find a valid way to wrap the content in the given range in a\nnode of the given type. May introduce extra nodes around and inside\nthe wrapper node, if necessary. Returns null if no valid wrapping\ncould be found. When `innerRange` is given, that range's content is\nused as the content to fit into the wrapping, instead of the\ncontent of `range`.\n*/\nfunction findWrapping(range, nodeType, attrs = null, innerRange = range) {\n let around = findWrappingOutside(range, nodeType);\n let inner = around && findWrappingInside(innerRange, nodeType);\n if (!inner)\n return null;\n return around.map(withAttrs)\n .concat({ type: nodeType, attrs }).concat(inner.map(withAttrs));\n}\nfunction withAttrs(type) { return { type, attrs: null }; }\nfunction findWrappingOutside(range, type) {\n let { parent, startIndex, endIndex } = range;\n let around = parent.contentMatchAt(startIndex).findWrapping(type);\n if (!around)\n return null;\n let outer = around.length ? around[0] : type;\n return parent.canReplaceWith(startIndex, endIndex, outer) ? around : null;\n}\nfunction findWrappingInside(range, type) {\n let { parent, startIndex, endIndex } = range;\n let inner = parent.child(startIndex);\n let inside = type.contentMatch.findWrapping(inner.type);\n if (!inside)\n return null;\n let lastType = inside.length ? inside[inside.length - 1] : type;\n let innerMatch = lastType.contentMatch;\n for (let i = startIndex; innerMatch && i < endIndex; i++)\n innerMatch = innerMatch.matchType(parent.child(i).type);\n if (!innerMatch || !innerMatch.validEnd)\n return null;\n return inside;\n}\nfunction wrap(tr, range, wrappers) {\n let content = Fragment.empty;\n for (let i = wrappers.length - 1; i >= 0; i--) {\n if (content.size) {\n let match = wrappers[i].type.contentMatch.matchFragment(content);\n if (!match || !match.validEnd)\n throw new RangeError(\"Wrapper type given to Transform.wrap does not form valid content of its parent wrapper\");\n }\n content = Fragment.from(wrappers[i].type.create(wrappers[i].attrs, content));\n }\n let start = range.start, end = range.end;\n tr.step(new ReplaceAroundStep(start, end, start, end, new Slice(content, 0, 0), wrappers.length, true));\n}\nfunction setBlockType(tr, from, to, type, attrs) {\n if (!type.isTextblock)\n throw new RangeError(\"Type given to setBlockType should be a textblock\");\n let mapFrom = tr.steps.length;\n tr.doc.nodesBetween(from, to, (node, pos) => {\n let attrsHere = typeof attrs == \"function\" ? attrs(node) : attrs;\n if (node.isTextblock && !node.hasMarkup(type, attrsHere) &&\n canChangeType(tr.doc, tr.mapping.slice(mapFrom).map(pos), type)) {\n let convertNewlines = null;\n if (type.schema.linebreakReplacement) {\n let pre = type.whitespace == \"pre\", supportLinebreak = !!type.contentMatch.matchType(type.schema.linebreakReplacement);\n if (pre && !supportLinebreak)\n convertNewlines = false;\n else if (!pre && supportLinebreak)\n convertNewlines = true;\n }\n // Ensure all markup that isn't allowed in the new node type is cleared\n if (convertNewlines === false)\n replaceLinebreaks(tr, node, pos, mapFrom);\n clearIncompatible(tr, tr.mapping.slice(mapFrom).map(pos, 1), type, undefined, convertNewlines === null);\n let mapping = tr.mapping.slice(mapFrom);\n let startM = mapping.map(pos, 1), endM = mapping.map(pos + node.nodeSize, 1);\n tr.step(new ReplaceAroundStep(startM, endM, startM + 1, endM - 1, new Slice(Fragment.from(type.create(attrsHere, null, node.marks)), 0, 0), 1, true));\n if (convertNewlines === true)\n replaceNewlines(tr, node, pos, mapFrom);\n return false;\n }\n });\n}\nfunction replaceNewlines(tr, node, pos, mapFrom) {\n node.forEach((child, offset) => {\n if (child.isText) {\n let m, newline = /\\r?\\n|\\r/g;\n while (m = newline.exec(child.text)) {\n let start = tr.mapping.slice(mapFrom).map(pos + 1 + offset + m.index);\n tr.replaceWith(start, start + 1, node.type.schema.linebreakReplacement.create());\n }\n }\n });\n}\nfunction replaceLinebreaks(tr, node, pos, mapFrom) {\n node.forEach((child, offset) => {\n if (child.type == child.type.schema.linebreakReplacement) {\n let start = tr.mapping.slice(mapFrom).map(pos + 1 + offset);\n tr.replaceWith(start, start + 1, node.type.schema.text(\"\\n\"));\n }\n });\n}\nfunction canChangeType(doc, pos, type) {\n let $pos = doc.resolve(pos), index = $pos.index();\n return $pos.parent.canReplaceWith(index, index + 1, type);\n}\n/**\nChange the type, attributes, and/or marks of the node at `pos`.\nWhen `type` isn't given, the existing node type is preserved,\n*/\nfunction setNodeMarkup(tr, pos, type, attrs, marks) {\n let node = tr.doc.nodeAt(pos);\n if (!node)\n throw new RangeError(\"No node at given position\");\n if (!type)\n type = node.type;\n let newNode = type.create(attrs, null, marks || node.marks);\n if (node.isLeaf)\n return tr.replaceWith(pos, pos + node.nodeSize, newNode);\n if (!type.validContent(node.content))\n throw new RangeError(\"Invalid content for node type \" + type.name);\n tr.step(new ReplaceAroundStep(pos, pos + node.nodeSize, pos + 1, pos + node.nodeSize - 1, new Slice(Fragment.from(newNode), 0, 0), 1, true));\n}\n/**\nCheck whether splitting at the given position is allowed.\n*/\nfunction canSplit(doc, pos, depth = 1, typesAfter) {\n let $pos = doc.resolve(pos), base = $pos.depth - depth;\n let innerType = (typesAfter && typesAfter[typesAfter.length - 1]) || $pos.parent;\n if (base < 0 || $pos.parent.type.spec.isolating ||\n !$pos.parent.canReplace($pos.index(), $pos.parent.childCount) ||\n !innerType.type.validContent($pos.parent.content.cutByIndex($pos.index(), $pos.parent.childCount)))\n return false;\n for (let d = $pos.depth - 1, i = depth - 2; d > base; d--, i--) {\n let node = $pos.node(d), index = $pos.index(d);\n if (node.type.spec.isolating)\n return false;\n let rest = node.content.cutByIndex(index, node.childCount);\n let overrideChild = typesAfter && typesAfter[i + 1];\n if (overrideChild)\n rest = rest.replaceChild(0, overrideChild.type.create(overrideChild.attrs));\n let after = (typesAfter && typesAfter[i]) || node;\n if (!node.canReplace(index + 1, node.childCount) || !after.type.validContent(rest))\n return false;\n }\n let index = $pos.indexAfter(base);\n let baseType = typesAfter && typesAfter[0];\n return $pos.node(base).canReplaceWith(index, index, baseType ? baseType.type : $pos.node(base + 1).type);\n}\nfunction split(tr, pos, depth = 1, typesAfter) {\n let $pos = tr.doc.resolve(pos), before = Fragment.empty, after = Fragment.empty;\n for (let d = $pos.depth, e = $pos.depth - depth, i = depth - 1; d > e; d--, i--) {\n before = Fragment.from($pos.node(d).copy(before));\n let typeAfter = typesAfter && typesAfter[i];\n after = Fragment.from(typeAfter ? typeAfter.type.create(typeAfter.attrs, after) : $pos.node(d).copy(after));\n }\n tr.step(new ReplaceStep(pos, pos, new Slice(before.append(after), depth, depth), true));\n}\n/**\nTest whether the blocks before and after a given position can be\njoined.\n*/\nfunction canJoin(doc, pos) {\n let $pos = doc.resolve(pos), index = $pos.index();\n return joinable($pos.nodeBefore, $pos.nodeAfter) &&\n $pos.parent.canReplace(index, index + 1);\n}\nfunction canAppendWithSubstitutedLinebreaks(a, b) {\n if (!b.content.size)\n a.type.compatibleContent(b.type);\n let match = a.contentMatchAt(a.childCount);\n let { linebreakReplacement } = a.type.schema;\n for (let i = 0; i < b.childCount; i++) {\n let child = b.child(i);\n let type = child.type == linebreakReplacement ? a.type.schema.nodes.text : child.type;\n match = match.matchType(type);\n if (!match)\n return false;\n if (!a.type.allowsMarks(child.marks))\n return false;\n }\n return match.validEnd;\n}\nfunction joinable(a, b) {\n return !!(a && b && !a.isLeaf && canAppendWithSubstitutedLinebreaks(a, b));\n}\n/**\nFind an ancestor of the given position that can be joined to the\nblock before (or after if `dir` is positive). Returns the joinable\npoint, if any.\n*/\nfunction joinPoint(doc, pos, dir = -1) {\n let $pos = doc.resolve(pos);\n for (let d = $pos.depth;; d--) {\n let before, after, index = $pos.index(d);\n if (d == $pos.depth) {\n before = $pos.nodeBefore;\n after = $pos.nodeAfter;\n }\n else if (dir > 0) {\n before = $pos.node(d + 1);\n index++;\n after = $pos.node(d).maybeChild(index);\n }\n else {\n before = $pos.node(d).maybeChild(index - 1);\n after = $pos.node(d + 1);\n }\n if (before && !before.isTextblock && joinable(before, after) &&\n $pos.node(d).canReplace(index, index + 1))\n return pos;\n if (d == 0)\n break;\n pos = dir < 0 ? $pos.before(d) : $pos.after(d);\n }\n}\nfunction join(tr, pos, depth) {\n let convertNewlines = null;\n let { linebreakReplacement } = tr.doc.type.schema;\n let $before = tr.doc.resolve(pos - depth), beforeType = $before.node().type;\n if (linebreakReplacement && beforeType.inlineContent) {\n let pre = beforeType.whitespace == \"pre\";\n let supportLinebreak = !!beforeType.contentMatch.matchType(linebreakReplacement);\n if (pre && !supportLinebreak)\n convertNewlines = false;\n else if (!pre && supportLinebreak)\n convertNewlines = true;\n }\n let mapFrom = tr.steps.length;\n if (convertNewlines === false) {\n let $after = tr.doc.resolve(pos + depth);\n replaceLinebreaks(tr, $after.node(), $after.before(), mapFrom);\n }\n if (beforeType.inlineContent)\n clearIncompatible(tr, pos + depth - 1, beforeType, $before.node().contentMatchAt($before.index()), convertNewlines == null);\n let mapping = tr.mapping.slice(mapFrom), start = mapping.map(pos - depth);\n tr.step(new ReplaceStep(start, mapping.map(pos + depth, -1), Slice.empty, true));\n if (convertNewlines === true) {\n let $full = tr.doc.resolve(start);\n replaceNewlines(tr, $full.node(), $full.before(), tr.steps.length);\n }\n return tr;\n}\n/**\nTry to find a point where a node of the given type can be inserted\nnear `pos`, by searching up the node hierarchy when `pos` itself\nisn't a valid place but is at the start or end of a node. Return\nnull if no position was found.\n*/\nfunction insertPoint(doc, pos, nodeType) {\n let $pos = doc.resolve(pos);\n if ($pos.parent.canReplaceWith($pos.index(), $pos.index(), nodeType))\n return pos;\n if ($pos.parentOffset == 0)\n for (let d = $pos.depth - 1; d >= 0; d--) {\n let index = $pos.index(d);\n if ($pos.node(d).canReplaceWith(index, index, nodeType))\n return $pos.before(d + 1);\n if (index > 0)\n return null;\n }\n if ($pos.parentOffset == $pos.parent.content.size)\n for (let d = $pos.depth - 1; d >= 0; d--) {\n let index = $pos.indexAfter(d);\n if ($pos.node(d).canReplaceWith(index, index, nodeType))\n return $pos.after(d + 1);\n if (index < $pos.node(d).childCount)\n return null;\n }\n return null;\n}\n/**\nFinds a position at or around the given position where the given\nslice can be inserted. Will look at parent nodes' nearest boundary\nand try there, even if the original position wasn't directly at the\nstart or end of that node. Returns null when no position was found.\n*/\nfunction dropPoint(doc, pos, slice) {\n let $pos = doc.resolve(pos);\n if (!slice.content.size)\n return pos;\n let content = slice.content;\n for (let i = 0; i < slice.openStart; i++)\n content = content.firstChild.content;\n for (let pass = 1; pass <= (slice.openStart == 0 && slice.size ? 2 : 1); pass++) {\n for (let d = $pos.depth; d >= 0; d--) {\n let bias = d == $pos.depth ? 0 : $pos.pos <= ($pos.start(d + 1) + $pos.end(d + 1)) / 2 ? -1 : 1;\n let insertPos = $pos.index(d) + (bias > 0 ? 1 : 0);\n let parent = $pos.node(d), fits = false;\n if (pass == 1) {\n fits = parent.canReplace(insertPos, insertPos, content);\n }\n else {\n let wrapping = parent.contentMatchAt(insertPos).findWrapping(content.firstChild.type);\n fits = wrapping && parent.canReplaceWith(insertPos, insertPos, wrapping[0]);\n }\n if (fits)\n return bias == 0 ? $pos.pos : bias < 0 ? $pos.before(d + 1) : $pos.after(d + 1);\n }\n }\n return null;\n}\n\n/**\n‘Fit’ a slice into a given position in the document, producing a\n[step](https://prosemirror.net/docs/ref/#transform.Step) that inserts it. Will return null if\nthere's no meaningful way to insert the slice here, or inserting it\nwould be a no-op (an empty slice over an empty range).\n*/\nfunction replaceStep(doc, from, to = from, slice = Slice.empty) {\n if (from == to && !slice.size)\n return null;\n let $from = doc.resolve(from), $to = doc.resolve(to);\n // Optimization -- avoid work if it's obvious that it's not needed.\n if (fitsTrivially($from, $to, slice))\n return new ReplaceStep(from, to, slice);\n return new Fitter($from, $to, slice).fit();\n}\nfunction fitsTrivially($from, $to, slice) {\n return !slice.openStart && !slice.openEnd && $from.start() == $to.start() &&\n $from.parent.canReplace($from.index(), $to.index(), slice.content);\n}\n// Algorithm for 'placing' the elements of a slice into a gap:\n//\n// We consider the content of each node that is open to the left to be\n// independently placeable. I.e. in , when the\n// paragraph on the left is open, \"foo\" can be placed (somewhere on\n// the left side of the replacement gap) independently from p(\"bar\").\n//\n// This class tracks the state of the placement progress in the\n// following properties:\n//\n// - `frontier` holds a stack of `{type, match}` objects that\n// represent the open side of the replacement. It starts at\n// `$from`, then moves forward as content is placed, and is finally\n// reconciled with `$to`.\n//\n// - `unplaced` is a slice that represents the content that hasn't\n// been placed yet.\n//\n// - `placed` is a fragment of placed content. Its open-start value\n// is implicit in `$from`, and its open-end value in `frontier`.\nclass Fitter {\n constructor($from, $to, unplaced) {\n this.$from = $from;\n this.$to = $to;\n this.unplaced = unplaced;\n this.frontier = [];\n this.placed = Fragment.empty;\n for (let i = 0; i <= $from.depth; i++) {\n let node = $from.node(i);\n this.frontier.push({\n type: node.type,\n match: node.contentMatchAt($from.indexAfter(i))\n });\n }\n for (let i = $from.depth; i > 0; i--)\n this.placed = Fragment.from($from.node(i).copy(this.placed));\n }\n get depth() { return this.frontier.length - 1; }\n fit() {\n // As long as there's unplaced content, try to place some of it.\n // If that fails, either increase the open score of the unplaced\n // slice, or drop nodes from it, and then try again.\n while (this.unplaced.size) {\n let fit = this.findFittable();\n if (fit)\n this.placeNodes(fit);\n else\n this.openMore() || this.dropNode();\n }\n // When there's inline content directly after the frontier _and_\n // directly after `this.$to`, we must generate a `ReplaceAround`\n // step that pulls that content into the node after the frontier.\n // That means the fitting must be done to the end of the textblock\n // node after `this.$to`, not `this.$to` itself.\n let moveInline = this.mustMoveInline(), placedSize = this.placed.size - this.depth - this.$from.depth;\n let $from = this.$from, $to = this.close(moveInline < 0 ? this.$to : $from.doc.resolve(moveInline));\n if (!$to)\n return null;\n // If closing to `$to` succeeded, create a step\n let content = this.placed, openStart = $from.depth, openEnd = $to.depth;\n while (openStart && openEnd && content.childCount == 1) { // Normalize by dropping open parent nodes\n content = content.firstChild.content;\n openStart--;\n openEnd--;\n }\n let slice = new Slice(content, openStart, openEnd);\n if (moveInline > -1)\n return new ReplaceAroundStep($from.pos, moveInline, this.$to.pos, this.$to.end(), slice, placedSize);\n if (slice.size || $from.pos != this.$to.pos) // Don't generate no-op steps\n return new ReplaceStep($from.pos, $to.pos, slice);\n return null;\n }\n // Find a position on the start spine of `this.unplaced` that has\n // content that can be moved somewhere on the frontier. Returns two\n // depths, one for the slice and one for the frontier.\n findFittable() {\n let startDepth = this.unplaced.openStart;\n for (let cur = this.unplaced.content, d = 0, openEnd = this.unplaced.openEnd; d < startDepth; d++) {\n let node = cur.firstChild;\n if (cur.childCount > 1)\n openEnd = 0;\n if (node.type.spec.isolating && openEnd <= d) {\n startDepth = d;\n break;\n }\n cur = node.content;\n }\n // Only try wrapping nodes (pass 2) after finding a place without\n // wrapping failed.\n for (let pass = 1; pass <= 2; pass++) {\n for (let sliceDepth = pass == 1 ? startDepth : this.unplaced.openStart; sliceDepth >= 0; sliceDepth--) {\n let fragment, parent = null;\n if (sliceDepth) {\n parent = contentAt(this.unplaced.content, sliceDepth - 1).firstChild;\n fragment = parent.content;\n }\n else {\n fragment = this.unplaced.content;\n }\n let first = fragment.firstChild;\n for (let frontierDepth = this.depth; frontierDepth >= 0; frontierDepth--) {\n let { type, match } = this.frontier[frontierDepth], wrap, inject = null;\n // In pass 1, if the next node matches, or there is no next\n // node but the parents look compatible, we've found a\n // place.\n if (pass == 1 && (first ? match.matchType(first.type) || (inject = match.fillBefore(Fragment.from(first), false))\n : parent && type.compatibleContent(parent.type)))\n return { sliceDepth, frontierDepth, parent, inject };\n // In pass 2, look for a set of wrapping nodes that make\n // `first` fit here.\n else if (pass == 2 && first && (wrap = match.findWrapping(first.type)))\n return { sliceDepth, frontierDepth, parent, wrap };\n // Don't continue looking further up if the parent node\n // would fit here.\n if (parent && match.matchType(parent.type))\n break;\n }\n }\n }\n }\n openMore() {\n let { content, openStart, openEnd } = this.unplaced;\n let inner = contentAt(content, openStart);\n if (!inner.childCount || inner.firstChild.isLeaf)\n return false;\n this.unplaced = new Slice(content, openStart + 1, Math.max(openEnd, inner.size + openStart >= content.size - openEnd ? openStart + 1 : 0));\n return true;\n }\n dropNode() {\n let { content, openStart, openEnd } = this.unplaced;\n let inner = contentAt(content, openStart);\n if (inner.childCount <= 1 && openStart > 0) {\n let openAtEnd = content.size - openStart <= openStart + inner.size;\n this.unplaced = new Slice(dropFromFragment(content, openStart - 1, 1), openStart - 1, openAtEnd ? openStart - 1 : openEnd);\n }\n else {\n this.unplaced = new Slice(dropFromFragment(content, openStart, 1), openStart, openEnd);\n }\n }\n // Move content from the unplaced slice at `sliceDepth` to the\n // frontier node at `frontierDepth`. Close that frontier node when\n // applicable.\n placeNodes({ sliceDepth, frontierDepth, parent, inject, wrap }) {\n while (this.depth > frontierDepth)\n this.closeFrontierNode();\n if (wrap)\n for (let i = 0; i < wrap.length; i++)\n this.openFrontierNode(wrap[i]);\n let slice = this.unplaced, fragment = parent ? parent.content : slice.content;\n let openStart = slice.openStart - sliceDepth;\n let taken = 0, add = [];\n let { match, type } = this.frontier[frontierDepth];\n if (inject) {\n for (let i = 0; i < inject.childCount; i++)\n add.push(inject.child(i));\n match = match.matchFragment(inject);\n }\n // Computes the amount of (end) open nodes at the end of the\n // fragment. When 0, the parent is open, but no more. When\n // negative, nothing is open.\n let openEndCount = (fragment.size + sliceDepth) - (slice.content.size - slice.openEnd);\n // Scan over the fragment, fitting as many child nodes as\n // possible.\n while (taken < fragment.childCount) {\n let next = fragment.child(taken), matches = match.matchType(next.type);\n if (!matches)\n break;\n taken++;\n if (taken > 1 || openStart == 0 || next.content.size) { // Drop empty open nodes\n match = matches;\n add.push(closeNodeStart(next.mark(type.allowedMarks(next.marks)), taken == 1 ? openStart : 0, taken == fragment.childCount ? openEndCount : -1));\n }\n }\n let toEnd = taken == fragment.childCount;\n if (!toEnd)\n openEndCount = -1;\n this.placed = addToFragment(this.placed, frontierDepth, Fragment.from(add));\n this.frontier[frontierDepth].match = match;\n // If the parent types match, and the entire node was moved, and\n // it's not open, close this frontier node right away.\n if (toEnd && openEndCount < 0 && parent && parent.type == this.frontier[this.depth].type && this.frontier.length > 1)\n this.closeFrontierNode();\n // Add new frontier nodes for any open nodes at the end.\n for (let i = 0, cur = fragment; i < openEndCount; i++) {\n let node = cur.lastChild;\n this.frontier.push({ type: node.type, match: node.contentMatchAt(node.childCount) });\n cur = node.content;\n }\n // Update `this.unplaced`. Drop the entire node from which we\n // placed it we got to its end, otherwise just drop the placed\n // nodes.\n this.unplaced = !toEnd ? new Slice(dropFromFragment(slice.content, sliceDepth, taken), slice.openStart, slice.openEnd)\n : sliceDepth == 0 ? Slice.empty\n : new Slice(dropFromFragment(slice.content, sliceDepth - 1, 1), sliceDepth - 1, openEndCount < 0 ? slice.openEnd : sliceDepth - 1);\n }\n mustMoveInline() {\n if (!this.$to.parent.isTextblock)\n return -1;\n let top = this.frontier[this.depth], level;\n if (!top.type.isTextblock || !contentAfterFits(this.$to, this.$to.depth, top.type, top.match, false) ||\n (this.$to.depth == this.depth && (level = this.findCloseLevel(this.$to)) && level.depth == this.depth))\n return -1;\n let { depth } = this.$to, after = this.$to.after(depth);\n while (depth > 1 && after == this.$to.end(--depth))\n ++after;\n return after;\n }\n findCloseLevel($to) {\n scan: for (let i = Math.min(this.depth, $to.depth); i >= 0; i--) {\n let { match, type } = this.frontier[i];\n let dropInner = i < $to.depth && $to.end(i + 1) == $to.pos + ($to.depth - (i + 1));\n let fit = contentAfterFits($to, i, type, match, dropInner);\n if (!fit)\n continue;\n for (let d = i - 1; d >= 0; d--) {\n let { match, type } = this.frontier[d];\n let matches = contentAfterFits($to, d, type, match, true);\n if (!matches || matches.childCount)\n continue scan;\n }\n return { depth: i, fit, move: dropInner ? $to.doc.resolve($to.after(i + 1)) : $to };\n }\n }\n close($to) {\n let close = this.findCloseLevel($to);\n if (!close)\n return null;\n while (this.depth > close.depth)\n this.closeFrontierNode();\n if (close.fit.childCount)\n this.placed = addToFragment(this.placed, close.depth, close.fit);\n $to = close.move;\n for (let d = close.depth + 1; d <= $to.depth; d++) {\n let node = $to.node(d), add = node.type.contentMatch.fillBefore(node.content, true, $to.index(d));\n this.openFrontierNode(node.type, node.attrs, add);\n }\n return $to;\n }\n openFrontierNode(type, attrs = null, content) {\n let top = this.frontier[this.depth];\n top.match = top.match.matchType(type);\n this.placed = addToFragment(this.placed, this.depth, Fragment.from(type.create(attrs, content)));\n this.frontier.push({ type, match: type.contentMatch });\n }\n closeFrontierNode() {\n let open = this.frontier.pop();\n let add = open.match.fillBefore(Fragment.empty, true);\n if (add.childCount)\n this.placed = addToFragment(this.placed, this.frontier.length, add);\n }\n}\nfunction dropFromFragment(fragment, depth, count) {\n if (depth == 0)\n return fragment.cutByIndex(count, fragment.childCount);\n return fragment.replaceChild(0, fragment.firstChild.copy(dropFromFragment(fragment.firstChild.content, depth - 1, count)));\n}\nfunction addToFragment(fragment, depth, content) {\n if (depth == 0)\n return fragment.append(content);\n return fragment.replaceChild(fragment.childCount - 1, fragment.lastChild.copy(addToFragment(fragment.lastChild.content, depth - 1, content)));\n}\nfunction contentAt(fragment, depth) {\n for (let i = 0; i < depth; i++)\n fragment = fragment.firstChild.content;\n return fragment;\n}\nfunction closeNodeStart(node, openStart, openEnd) {\n if (openStart <= 0)\n return node;\n let frag = node.content;\n if (openStart > 1)\n frag = frag.replaceChild(0, closeNodeStart(frag.firstChild, openStart - 1, frag.childCount == 1 ? openEnd - 1 : 0));\n if (openStart > 0) {\n frag = node.type.contentMatch.fillBefore(frag).append(frag);\n if (openEnd <= 0)\n frag = frag.append(node.type.contentMatch.matchFragment(frag).fillBefore(Fragment.empty, true));\n }\n return node.copy(frag);\n}\nfunction contentAfterFits($to, depth, type, match, open) {\n let node = $to.node(depth), index = open ? $to.indexAfter(depth) : $to.index(depth);\n if (index == node.childCount && !type.compatibleContent(node.type))\n return null;\n let fit = match.fillBefore(node.content, true, index);\n return fit && !invalidMarks(type, node.content, index) ? fit : null;\n}\nfunction invalidMarks(type, fragment, start) {\n for (let i = start; i < fragment.childCount; i++)\n if (!type.allowsMarks(fragment.child(i).marks))\n return true;\n return false;\n}\nfunction definesContent(type) {\n return type.spec.defining || type.spec.definingForContent;\n}\nfunction replaceRange(tr, from, to, slice) {\n if (!slice.size)\n return tr.deleteRange(from, to);\n let $from = tr.doc.resolve(from), $to = tr.doc.resolve(to);\n if (fitsTrivially($from, $to, slice))\n return tr.step(new ReplaceStep(from, to, slice));\n let targetDepths = coveredDepths($from, tr.doc.resolve(to));\n // Can't replace the whole document, so remove 0 if it's present\n if (targetDepths[targetDepths.length - 1] == 0)\n targetDepths.pop();\n // Negative numbers represent not expansion over the whole node at\n // that depth, but replacing from $from.before(-D) to $to.pos.\n let preferredTarget = -($from.depth + 1);\n targetDepths.unshift(preferredTarget);\n // This loop picks a preferred target depth, if one of the covering\n // depths is not outside of a defining node, and adds negative\n // depths for any depth that has $from at its start and does not\n // cross a defining node.\n for (let d = $from.depth, pos = $from.pos - 1; d > 0; d--, pos--) {\n let spec = $from.node(d).type.spec;\n if (spec.defining || spec.definingAsContext || spec.isolating)\n break;\n if (targetDepths.indexOf(d) > -1)\n preferredTarget = d;\n else if ($from.before(d) == pos)\n targetDepths.splice(1, 0, -d);\n }\n // Try to fit each possible depth of the slice into each possible\n // target depth, starting with the preferred depths.\n let preferredTargetIndex = targetDepths.indexOf(preferredTarget);\n let leftNodes = [], preferredDepth = slice.openStart;\n for (let content = slice.content, i = 0;; i++) {\n let node = content.firstChild;\n leftNodes.push(node);\n if (i == slice.openStart)\n break;\n content = node.content;\n }\n // Back up preferredDepth to cover defining textblocks directly\n // above it, possibly skipping a non-defining textblock.\n for (let d = preferredDepth - 1; d >= 0; d--) {\n let leftNode = leftNodes[d], def = definesContent(leftNode.type);\n if (def && !leftNode.sameMarkup($from.node(Math.abs(preferredTarget) - 1)))\n preferredDepth = d;\n else if (def || !leftNode.type.isTextblock)\n break;\n }\n for (let j = slice.openStart; j >= 0; j--) {\n let openDepth = (j + preferredDepth + 1) % (slice.openStart + 1);\n let insert = leftNodes[openDepth];\n if (!insert)\n continue;\n for (let i = 0; i < targetDepths.length; i++) {\n // Loop over possible expansion levels, starting with the\n // preferred one\n let targetDepth = targetDepths[(i + preferredTargetIndex) % targetDepths.length], expand = true;\n if (targetDepth < 0) {\n expand = false;\n targetDepth = -targetDepth;\n }\n let parent = $from.node(targetDepth - 1), index = $from.index(targetDepth - 1);\n if (parent.canReplaceWith(index, index, insert.type, insert.marks))\n return tr.replace($from.before(targetDepth), expand ? $to.after(targetDepth) : to, new Slice(closeFragment(slice.content, 0, slice.openStart, openDepth), openDepth, slice.openEnd));\n }\n }\n let startSteps = tr.steps.length;\n for (let i = targetDepths.length - 1; i >= 0; i--) {\n tr.replace(from, to, slice);\n if (tr.steps.length > startSteps)\n break;\n let depth = targetDepths[i];\n if (depth < 0)\n continue;\n from = $from.before(depth);\n to = $to.after(depth);\n }\n}\nfunction closeFragment(fragment, depth, oldOpen, newOpen, parent) {\n if (depth < oldOpen) {\n let first = fragment.firstChild;\n fragment = fragment.replaceChild(0, first.copy(closeFragment(first.content, depth + 1, oldOpen, newOpen, first)));\n }\n if (depth > newOpen) {\n let match = parent.contentMatchAt(0);\n let start = match.fillBefore(fragment).append(fragment);\n fragment = start.append(match.matchFragment(start).fillBefore(Fragment.empty, true));\n }\n return fragment;\n}\nfunction replaceRangeWith(tr, from, to, node) {\n if (!node.isInline && from == to && tr.doc.resolve(from).parent.content.size) {\n let point = insertPoint(tr.doc, from, node.type);\n if (point != null)\n from = to = point;\n }\n tr.replaceRange(from, to, new Slice(Fragment.from(node), 0, 0));\n}\nfunction deleteRange(tr, from, to) {\n let $from = tr.doc.resolve(from), $to = tr.doc.resolve(to);\n let covered = coveredDepths($from, $to);\n for (let i = 0; i < covered.length; i++) {\n let depth = covered[i], last = i == covered.length - 1;\n if ((last && depth == 0) || $from.node(depth).type.contentMatch.validEnd)\n return tr.delete($from.start(depth), $to.end(depth));\n if (depth > 0 && (last || $from.node(depth - 1).canReplace($from.index(depth - 1), $to.indexAfter(depth - 1))))\n return tr.delete($from.before(depth), $to.after(depth));\n }\n for (let d = 1; d <= $from.depth && d <= $to.depth; d++) {\n if (from - $from.start(d) == $from.depth - d && to > $from.end(d) && $to.end(d) - to != $to.depth - d &&\n $from.start(d - 1) == $to.start(d - 1) && $from.node(d - 1).canReplace($from.index(d - 1), $to.index(d - 1)))\n return tr.delete($from.before(d), to);\n }\n tr.delete(from, to);\n}\n// Returns an array of all depths for which $from - $to spans the\n// whole content of the nodes at that depth.\nfunction coveredDepths($from, $to) {\n let result = [], minDepth = Math.min($from.depth, $to.depth);\n for (let d = minDepth; d >= 0; d--) {\n let start = $from.start(d);\n if (start < $from.pos - ($from.depth - d) ||\n $to.end(d) > $to.pos + ($to.depth - d) ||\n $from.node(d).type.spec.isolating ||\n $to.node(d).type.spec.isolating)\n break;\n if (start == $to.start(d) ||\n (d == $from.depth && d == $to.depth && $from.parent.inlineContent && $to.parent.inlineContent &&\n d && $to.start(d - 1) == start - 1))\n result.push(d);\n }\n return result;\n}\n\n/**\nUpdate an attribute in a specific node.\n*/\nclass AttrStep extends Step {\n /**\n Construct an attribute step.\n */\n constructor(\n /**\n The position of the target node.\n */\n pos, \n /**\n The attribute to set.\n */\n attr, \n // The attribute's new value.\n value) {\n super();\n this.pos = pos;\n this.attr = attr;\n this.value = value;\n }\n apply(doc) {\n let node = doc.nodeAt(this.pos);\n if (!node)\n return StepResult.fail(\"No node at attribute step's position\");\n let attrs = Object.create(null);\n for (let name in node.attrs)\n attrs[name] = node.attrs[name];\n attrs[this.attr] = this.value;\n let updated = node.type.create(attrs, null, node.marks);\n return StepResult.fromReplace(doc, this.pos, this.pos + 1, new Slice(Fragment.from(updated), 0, node.isLeaf ? 0 : 1));\n }\n getMap() {\n return StepMap.empty;\n }\n invert(doc) {\n return new AttrStep(this.pos, this.attr, doc.nodeAt(this.pos).attrs[this.attr]);\n }\n map(mapping) {\n let pos = mapping.mapResult(this.pos, 1);\n return pos.deletedAfter ? null : new AttrStep(pos.pos, this.attr, this.value);\n }\n toJSON() {\n return { stepType: \"attr\", pos: this.pos, attr: this.attr, value: this.value };\n }\n static fromJSON(schema, json) {\n if (typeof json.pos != \"number\" || typeof json.attr != \"string\")\n throw new RangeError(\"Invalid input for AttrStep.fromJSON\");\n return new AttrStep(json.pos, json.attr, json.value);\n }\n}\nStep.jsonID(\"attr\", AttrStep);\n/**\nUpdate an attribute in the doc node.\n*/\nclass DocAttrStep extends Step {\n /**\n Construct an attribute step.\n */\n constructor(\n /**\n The attribute to set.\n */\n attr, \n // The attribute's new value.\n value) {\n super();\n this.attr = attr;\n this.value = value;\n }\n apply(doc) {\n let attrs = Object.create(null);\n for (let name in doc.attrs)\n attrs[name] = doc.attrs[name];\n attrs[this.attr] = this.value;\n let updated = doc.type.create(attrs, doc.content, doc.marks);\n return StepResult.ok(updated);\n }\n getMap() {\n return StepMap.empty;\n }\n invert(doc) {\n return new DocAttrStep(this.attr, doc.attrs[this.attr]);\n }\n map(mapping) {\n return this;\n }\n toJSON() {\n return { stepType: \"docAttr\", attr: this.attr, value: this.value };\n }\n static fromJSON(schema, json) {\n if (typeof json.attr != \"string\")\n throw new RangeError(\"Invalid input for DocAttrStep.fromJSON\");\n return new DocAttrStep(json.attr, json.value);\n }\n}\nStep.jsonID(\"docAttr\", DocAttrStep);\n\n/**\n@internal\n*/\nlet TransformError = class extends Error {\n};\nTransformError = function TransformError(message) {\n let err = Error.call(this, message);\n err.__proto__ = TransformError.prototype;\n return err;\n};\nTransformError.prototype = Object.create(Error.prototype);\nTransformError.prototype.constructor = TransformError;\nTransformError.prototype.name = \"TransformError\";\n/**\nAbstraction to build up and track an array of\n[steps](https://prosemirror.net/docs/ref/#transform.Step) representing a document transformation.\n\nMost transforming methods return the `Transform` object itself, so\nthat they can be chained.\n*/\nclass Transform {\n /**\n Create a transform that starts with the given document.\n */\n constructor(\n /**\n The current document (the result of applying the steps in the\n transform).\n */\n doc) {\n this.doc = doc;\n /**\n The steps in this transform.\n */\n this.steps = [];\n /**\n The documents before each of the steps.\n */\n this.docs = [];\n /**\n A mapping with the maps for each of the steps in this transform.\n */\n this.mapping = new Mapping;\n }\n /**\n The starting document.\n */\n get before() { return this.docs.length ? this.docs[0] : this.doc; }\n /**\n Apply a new step in this transform, saving the result. Throws an\n error when the step fails.\n */\n step(step) {\n let result = this.maybeStep(step);\n if (result.failed)\n throw new TransformError(result.failed);\n return this;\n }\n /**\n Try to apply a step in this transformation, ignoring it if it\n fails. Returns the step result.\n */\n maybeStep(step) {\n let result = step.apply(this.doc);\n if (!result.failed)\n this.addStep(step, result.doc);\n return result;\n }\n /**\n True when the document has been changed (when there are any\n steps).\n */\n get docChanged() {\n return this.steps.length > 0;\n }\n /**\n @internal\n */\n addStep(step, doc) {\n this.docs.push(this.doc);\n this.steps.push(step);\n this.mapping.appendMap(step.getMap());\n this.doc = doc;\n }\n /**\n Replace the part of the document between `from` and `to` with the\n given `slice`.\n */\n replace(from, to = from, slice = Slice.empty) {\n let step = replaceStep(this.doc, from, to, slice);\n if (step)\n this.step(step);\n return this;\n }\n /**\n Replace the given range with the given content, which may be a\n fragment, node, or array of nodes.\n */\n replaceWith(from, to, content) {\n return this.replace(from, to, new Slice(Fragment.from(content), 0, 0));\n }\n /**\n Delete the content between the given positions.\n */\n delete(from, to) {\n return this.replace(from, to, Slice.empty);\n }\n /**\n Insert the given content at the given position.\n */\n insert(pos, content) {\n return this.replaceWith(pos, pos, content);\n }\n /**\n Replace a range of the document with a given slice, using\n `from`, `to`, and the slice's\n [`openStart`](https://prosemirror.net/docs/ref/#model.Slice.openStart) property as hints, rather\n than fixed start and end points. This method may grow the\n replaced area or close open nodes in the slice in order to get a\n fit that is more in line with WYSIWYG expectations, by dropping\n fully covered parent nodes of the replaced region when they are\n marked [non-defining as\n context](https://prosemirror.net/docs/ref/#model.NodeSpec.definingAsContext), or including an\n open parent node from the slice that _is_ marked as [defining\n its content](https://prosemirror.net/docs/ref/#model.NodeSpec.definingForContent).\n \n This is the method, for example, to handle paste. The similar\n [`replace`](https://prosemirror.net/docs/ref/#transform.Transform.replace) method is a more\n primitive tool which will _not_ move the start and end of its given\n range, and is useful in situations where you need more precise\n control over what happens.\n */\n replaceRange(from, to, slice) {\n replaceRange(this, from, to, slice);\n return this;\n }\n /**\n Replace the given range with a node, but use `from` and `to` as\n hints, rather than precise positions. When from and to are the same\n and are at the start or end of a parent node in which the given\n node doesn't fit, this method may _move_ them out towards a parent\n that does allow the given node to be placed. When the given range\n completely covers a parent node, this method may completely replace\n that parent node.\n */\n replaceRangeWith(from, to, node) {\n replaceRangeWith(this, from, to, node);\n return this;\n }\n /**\n Delete the given range, expanding it to cover fully covered\n parent nodes until a valid replace is found.\n */\n deleteRange(from, to) {\n deleteRange(this, from, to);\n return this;\n }\n /**\n Split the content in the given range off from its parent, if there\n is sibling content before or after it, and move it up the tree to\n the depth specified by `target`. You'll probably want to use\n [`liftTarget`](https://prosemirror.net/docs/ref/#transform.liftTarget) to compute `target`, to make\n sure the lift is valid.\n */\n lift(range, target) {\n lift(this, range, target);\n return this;\n }\n /**\n Join the blocks around the given position. If depth is 2, their\n last and first siblings are also joined, and so on.\n */\n join(pos, depth = 1) {\n join(this, pos, depth);\n return this;\n }\n /**\n Wrap the given [range](https://prosemirror.net/docs/ref/#model.NodeRange) in the given set of wrappers.\n The wrappers are assumed to be valid in this position, and should\n probably be computed with [`findWrapping`](https://prosemirror.net/docs/ref/#transform.findWrapping).\n */\n wrap(range, wrappers) {\n wrap(this, range, wrappers);\n return this;\n }\n /**\n Set the type of all textblocks (partly) between `from` and `to` to\n the given node type with the given attributes.\n */\n setBlockType(from, to = from, type, attrs = null) {\n setBlockType(this, from, to, type, attrs);\n return this;\n }\n /**\n Change the type, attributes, and/or marks of the node at `pos`.\n When `type` isn't given, the existing node type is preserved,\n */\n setNodeMarkup(pos, type, attrs = null, marks) {\n setNodeMarkup(this, pos, type, attrs, marks);\n return this;\n }\n /**\n Set a single attribute on a given node to a new value.\n The `pos` addresses the document content. Use `setDocAttribute`\n to set attributes on the document itself.\n */\n setNodeAttribute(pos, attr, value) {\n this.step(new AttrStep(pos, attr, value));\n return this;\n }\n /**\n Set a single attribute on the document to a new value.\n */\n setDocAttribute(attr, value) {\n this.step(new DocAttrStep(attr, value));\n return this;\n }\n /**\n Add a mark to the node at position `pos`.\n */\n addNodeMark(pos, mark) {\n this.step(new AddNodeMarkStep(pos, mark));\n return this;\n }\n /**\n Remove a mark (or a mark of the given type) from the node at\n position `pos`.\n */\n removeNodeMark(pos, mark) {\n if (!(mark instanceof Mark)) {\n let node = this.doc.nodeAt(pos);\n if (!node)\n throw new RangeError(\"No node at position \" + pos);\n mark = mark.isInSet(node.marks);\n if (!mark)\n return this;\n }\n this.step(new RemoveNodeMarkStep(pos, mark));\n return this;\n }\n /**\n Split the node at the given position, and optionally, if `depth` is\n greater than one, any number of nodes above that. By default, the\n parts split off will inherit the node type of the original node.\n This can be changed by passing an array of types and attributes to\n use after the split.\n */\n split(pos, depth = 1, typesAfter) {\n split(this, pos, depth, typesAfter);\n return this;\n }\n /**\n Add the given mark to the inline content between `from` and `to`.\n */\n addMark(from, to, mark) {\n addMark(this, from, to, mark);\n return this;\n }\n /**\n Remove marks from inline nodes between `from` and `to`. When\n `mark` is a single mark, remove precisely that mark. When it is\n a mark type, remove all marks of that type. When it is null,\n remove all marks of any type.\n */\n removeMark(from, to, mark) {\n removeMark(this, from, to, mark);\n return this;\n }\n /**\n Removes all marks and nodes from the content of the node at\n `pos` that don't match the given new parent node type. Accepts\n an optional starting [content match](https://prosemirror.net/docs/ref/#model.ContentMatch) as\n third argument.\n */\n clearIncompatible(pos, parentType, match) {\n clearIncompatible(this, pos, parentType, match);\n return this;\n }\n}\n\nexport { AddMarkStep, AddNodeMarkStep, AttrStep, DocAttrStep, MapResult, Mapping, RemoveMarkStep, RemoveNodeMarkStep, ReplaceAroundStep, ReplaceStep, Step, StepMap, StepResult, Transform, TransformError, canJoin, canSplit, dropPoint, findWrapping, insertPoint, joinPoint, liftTarget, replaceStep };\n","import { Slice, Fragment, Mark, Node } from 'prosemirror-model';\nimport { ReplaceStep, ReplaceAroundStep, Transform } from 'prosemirror-transform';\n\nconst classesById = Object.create(null);\n/**\nSuperclass for editor selections. Every selection type should\nextend this. Should not be instantiated directly.\n*/\nclass Selection {\n /**\n Initialize a selection with the head and anchor and ranges. If no\n ranges are given, constructs a single range across `$anchor` and\n `$head`.\n */\n constructor(\n /**\n The resolved anchor of the selection (the side that stays in\n place when the selection is modified).\n */\n $anchor, \n /**\n The resolved head of the selection (the side that moves when\n the selection is modified).\n */\n $head, ranges) {\n this.$anchor = $anchor;\n this.$head = $head;\n this.ranges = ranges || [new SelectionRange($anchor.min($head), $anchor.max($head))];\n }\n /**\n The selection's anchor, as an unresolved position.\n */\n get anchor() { return this.$anchor.pos; }\n /**\n The selection's head.\n */\n get head() { return this.$head.pos; }\n /**\n The lower bound of the selection's main range.\n */\n get from() { return this.$from.pos; }\n /**\n The upper bound of the selection's main range.\n */\n get to() { return this.$to.pos; }\n /**\n The resolved lower bound of the selection's main range.\n */\n get $from() {\n return this.ranges[0].$from;\n }\n /**\n The resolved upper bound of the selection's main range.\n */\n get $to() {\n return this.ranges[0].$to;\n }\n /**\n Indicates whether the selection contains any content.\n */\n get empty() {\n let ranges = this.ranges;\n for (let i = 0; i < ranges.length; i++)\n if (ranges[i].$from.pos != ranges[i].$to.pos)\n return false;\n return true;\n }\n /**\n Get the content of this selection as a slice.\n */\n content() {\n return this.$from.doc.slice(this.from, this.to, true);\n }\n /**\n Replace the selection with a slice or, if no slice is given,\n delete the selection. Will append to the given transaction.\n */\n replace(tr, content = Slice.empty) {\n // Put the new selection at the position after the inserted\n // content. When that ended in an inline node, search backwards,\n // to get the position after that node. If not, search forward.\n let lastNode = content.content.lastChild, lastParent = null;\n for (let i = 0; i < content.openEnd; i++) {\n lastParent = lastNode;\n lastNode = lastNode.lastChild;\n }\n let mapFrom = tr.steps.length, ranges = this.ranges;\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i], mapping = tr.mapping.slice(mapFrom);\n tr.replaceRange(mapping.map($from.pos), mapping.map($to.pos), i ? Slice.empty : content);\n if (i == 0)\n selectionToInsertionEnd(tr, mapFrom, (lastNode ? lastNode.isInline : lastParent && lastParent.isTextblock) ? -1 : 1);\n }\n }\n /**\n Replace the selection with the given node, appending the changes\n to the given transaction.\n */\n replaceWith(tr, node) {\n let mapFrom = tr.steps.length, ranges = this.ranges;\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i], mapping = tr.mapping.slice(mapFrom);\n let from = mapping.map($from.pos), to = mapping.map($to.pos);\n if (i) {\n tr.deleteRange(from, to);\n }\n else {\n tr.replaceRangeWith(from, to, node);\n selectionToInsertionEnd(tr, mapFrom, node.isInline ? -1 : 1);\n }\n }\n }\n /**\n Find a valid cursor or leaf node selection starting at the given\n position and searching back if `dir` is negative, and forward if\n positive. When `textOnly` is true, only consider cursor\n selections. Will return null when no valid selection position is\n found.\n */\n static findFrom($pos, dir, textOnly = false) {\n let inner = $pos.parent.inlineContent ? new TextSelection($pos)\n : findSelectionIn($pos.node(0), $pos.parent, $pos.pos, $pos.index(), dir, textOnly);\n if (inner)\n return inner;\n for (let depth = $pos.depth - 1; depth >= 0; depth--) {\n let found = dir < 0\n ? findSelectionIn($pos.node(0), $pos.node(depth), $pos.before(depth + 1), $pos.index(depth), dir, textOnly)\n : findSelectionIn($pos.node(0), $pos.node(depth), $pos.after(depth + 1), $pos.index(depth) + 1, dir, textOnly);\n if (found)\n return found;\n }\n return null;\n }\n /**\n Find a valid cursor or leaf node selection near the given\n position. Searches forward first by default, but if `bias` is\n negative, it will search backwards first.\n */\n static near($pos, bias = 1) {\n return this.findFrom($pos, bias) || this.findFrom($pos, -bias) || new AllSelection($pos.node(0));\n }\n /**\n Find the cursor or leaf node selection closest to the start of\n the given document. Will return an\n [`AllSelection`](https://prosemirror.net/docs/ref/#state.AllSelection) if no valid position\n exists.\n */\n static atStart(doc) {\n return findSelectionIn(doc, doc, 0, 0, 1) || new AllSelection(doc);\n }\n /**\n Find the cursor or leaf node selection closest to the end of the\n given document.\n */\n static atEnd(doc) {\n return findSelectionIn(doc, doc, doc.content.size, doc.childCount, -1) || new AllSelection(doc);\n }\n /**\n Deserialize the JSON representation of a selection. Must be\n implemented for custom classes (as a static class method).\n */\n static fromJSON(doc, json) {\n if (!json || !json.type)\n throw new RangeError(\"Invalid input for Selection.fromJSON\");\n let cls = classesById[json.type];\n if (!cls)\n throw new RangeError(`No selection type ${json.type} defined`);\n return cls.fromJSON(doc, json);\n }\n /**\n To be able to deserialize selections from JSON, custom selection\n classes must register themselves with an ID string, so that they\n can be disambiguated. Try to pick something that's unlikely to\n clash with classes from other modules.\n */\n static jsonID(id, selectionClass) {\n if (id in classesById)\n throw new RangeError(\"Duplicate use of selection JSON ID \" + id);\n classesById[id] = selectionClass;\n selectionClass.prototype.jsonID = id;\n return selectionClass;\n }\n /**\n Get a [bookmark](https://prosemirror.net/docs/ref/#state.SelectionBookmark) for this selection,\n which is a value that can be mapped without having access to a\n current document, and later resolved to a real selection for a\n given document again. (This is used mostly by the history to\n track and restore old selections.) The default implementation of\n this method just converts the selection to a text selection and\n returns the bookmark for that.\n */\n getBookmark() {\n return TextSelection.between(this.$anchor, this.$head).getBookmark();\n }\n}\nSelection.prototype.visible = true;\n/**\nRepresents a selected range in a document.\n*/\nclass SelectionRange {\n /**\n Create a range.\n */\n constructor(\n /**\n The lower bound of the range.\n */\n $from, \n /**\n The upper bound of the range.\n */\n $to) {\n this.$from = $from;\n this.$to = $to;\n }\n}\nlet warnedAboutTextSelection = false;\nfunction checkTextSelection($pos) {\n if (!warnedAboutTextSelection && !$pos.parent.inlineContent) {\n warnedAboutTextSelection = true;\n console[\"warn\"](\"TextSelection endpoint not pointing into a node with inline content (\" + $pos.parent.type.name + \")\");\n }\n}\n/**\nA text selection represents a classical editor selection, with a\nhead (the moving side) and anchor (immobile side), both of which\npoint into textblock nodes. It can be empty (a regular cursor\nposition).\n*/\nclass TextSelection extends Selection {\n /**\n Construct a text selection between the given points.\n */\n constructor($anchor, $head = $anchor) {\n checkTextSelection($anchor);\n checkTextSelection($head);\n super($anchor, $head);\n }\n /**\n Returns a resolved position if this is a cursor selection (an\n empty text selection), and null otherwise.\n */\n get $cursor() { return this.$anchor.pos == this.$head.pos ? this.$head : null; }\n map(doc, mapping) {\n let $head = doc.resolve(mapping.map(this.head));\n if (!$head.parent.inlineContent)\n return Selection.near($head);\n let $anchor = doc.resolve(mapping.map(this.anchor));\n return new TextSelection($anchor.parent.inlineContent ? $anchor : $head, $head);\n }\n replace(tr, content = Slice.empty) {\n super.replace(tr, content);\n if (content == Slice.empty) {\n let marks = this.$from.marksAcross(this.$to);\n if (marks)\n tr.ensureMarks(marks);\n }\n }\n eq(other) {\n return other instanceof TextSelection && other.anchor == this.anchor && other.head == this.head;\n }\n getBookmark() {\n return new TextBookmark(this.anchor, this.head);\n }\n toJSON() {\n return { type: \"text\", anchor: this.anchor, head: this.head };\n }\n /**\n @internal\n */\n static fromJSON(doc, json) {\n if (typeof json.anchor != \"number\" || typeof json.head != \"number\")\n throw new RangeError(\"Invalid input for TextSelection.fromJSON\");\n return new TextSelection(doc.resolve(json.anchor), doc.resolve(json.head));\n }\n /**\n Create a text selection from non-resolved positions.\n */\n static create(doc, anchor, head = anchor) {\n let $anchor = doc.resolve(anchor);\n return new this($anchor, head == anchor ? $anchor : doc.resolve(head));\n }\n /**\n Return a text selection that spans the given positions or, if\n they aren't text positions, find a text selection near them.\n `bias` determines whether the method searches forward (default)\n or backwards (negative number) first. Will fall back to calling\n [`Selection.near`](https://prosemirror.net/docs/ref/#state.Selection^near) when the document\n doesn't contain a valid text position.\n */\n static between($anchor, $head, bias) {\n let dPos = $anchor.pos - $head.pos;\n if (!bias || dPos)\n bias = dPos >= 0 ? 1 : -1;\n if (!$head.parent.inlineContent) {\n let found = Selection.findFrom($head, bias, true) || Selection.findFrom($head, -bias, true);\n if (found)\n $head = found.$head;\n else\n return Selection.near($head, bias);\n }\n if (!$anchor.parent.inlineContent) {\n if (dPos == 0) {\n $anchor = $head;\n }\n else {\n $anchor = (Selection.findFrom($anchor, -bias, true) || Selection.findFrom($anchor, bias, true)).$anchor;\n if (($anchor.pos < $head.pos) != (dPos < 0))\n $anchor = $head;\n }\n }\n return new TextSelection($anchor, $head);\n }\n}\nSelection.jsonID(\"text\", TextSelection);\nclass TextBookmark {\n constructor(anchor, head) {\n this.anchor = anchor;\n this.head = head;\n }\n map(mapping) {\n return new TextBookmark(mapping.map(this.anchor), mapping.map(this.head));\n }\n resolve(doc) {\n return TextSelection.between(doc.resolve(this.anchor), doc.resolve(this.head));\n }\n}\n/**\nA node selection is a selection that points at a single node. All\nnodes marked [selectable](https://prosemirror.net/docs/ref/#model.NodeSpec.selectable) can be the\ntarget of a node selection. In such a selection, `from` and `to`\npoint directly before and after the selected node, `anchor` equals\n`from`, and `head` equals `to`..\n*/\nclass NodeSelection extends Selection {\n /**\n Create a node selection. Does not verify the validity of its\n argument.\n */\n constructor($pos) {\n let node = $pos.nodeAfter;\n let $end = $pos.node(0).resolve($pos.pos + node.nodeSize);\n super($pos, $end);\n this.node = node;\n }\n map(doc, mapping) {\n let { deleted, pos } = mapping.mapResult(this.anchor);\n let $pos = doc.resolve(pos);\n if (deleted)\n return Selection.near($pos);\n return new NodeSelection($pos);\n }\n content() {\n return new Slice(Fragment.from(this.node), 0, 0);\n }\n eq(other) {\n return other instanceof NodeSelection && other.anchor == this.anchor;\n }\n toJSON() {\n return { type: \"node\", anchor: this.anchor };\n }\n getBookmark() { return new NodeBookmark(this.anchor); }\n /**\n @internal\n */\n static fromJSON(doc, json) {\n if (typeof json.anchor != \"number\")\n throw new RangeError(\"Invalid input for NodeSelection.fromJSON\");\n return new NodeSelection(doc.resolve(json.anchor));\n }\n /**\n Create a node selection from non-resolved positions.\n */\n static create(doc, from) {\n return new NodeSelection(doc.resolve(from));\n }\n /**\n Determines whether the given node may be selected as a node\n selection.\n */\n static isSelectable(node) {\n return !node.isText && node.type.spec.selectable !== false;\n }\n}\nNodeSelection.prototype.visible = false;\nSelection.jsonID(\"node\", NodeSelection);\nclass NodeBookmark {\n constructor(anchor) {\n this.anchor = anchor;\n }\n map(mapping) {\n let { deleted, pos } = mapping.mapResult(this.anchor);\n return deleted ? new TextBookmark(pos, pos) : new NodeBookmark(pos);\n }\n resolve(doc) {\n let $pos = doc.resolve(this.anchor), node = $pos.nodeAfter;\n if (node && NodeSelection.isSelectable(node))\n return new NodeSelection($pos);\n return Selection.near($pos);\n }\n}\n/**\nA selection type that represents selecting the whole document\n(which can not necessarily be expressed with a text selection, when\nthere are for example leaf block nodes at the start or end of the\ndocument).\n*/\nclass AllSelection extends Selection {\n /**\n Create an all-selection over the given document.\n */\n constructor(doc) {\n super(doc.resolve(0), doc.resolve(doc.content.size));\n }\n replace(tr, content = Slice.empty) {\n if (content == Slice.empty) {\n tr.delete(0, tr.doc.content.size);\n let sel = Selection.atStart(tr.doc);\n if (!sel.eq(tr.selection))\n tr.setSelection(sel);\n }\n else {\n super.replace(tr, content);\n }\n }\n toJSON() { return { type: \"all\" }; }\n /**\n @internal\n */\n static fromJSON(doc) { return new AllSelection(doc); }\n map(doc) { return new AllSelection(doc); }\n eq(other) { return other instanceof AllSelection; }\n getBookmark() { return AllBookmark; }\n}\nSelection.jsonID(\"all\", AllSelection);\nconst AllBookmark = {\n map() { return this; },\n resolve(doc) { return new AllSelection(doc); }\n};\n// FIXME we'll need some awareness of text direction when scanning for selections\n// Try to find a selection inside the given node. `pos` points at the\n// position where the search starts. When `text` is true, only return\n// text selections.\nfunction findSelectionIn(doc, node, pos, index, dir, text = false) {\n if (node.inlineContent)\n return TextSelection.create(doc, pos);\n for (let i = index - (dir > 0 ? 0 : 1); dir > 0 ? i < node.childCount : i >= 0; i += dir) {\n let child = node.child(i);\n if (!child.isAtom) {\n let inner = findSelectionIn(doc, child, pos + dir, dir < 0 ? child.childCount : 0, dir, text);\n if (inner)\n return inner;\n }\n else if (!text && NodeSelection.isSelectable(child)) {\n return NodeSelection.create(doc, pos - (dir < 0 ? child.nodeSize : 0));\n }\n pos += child.nodeSize * dir;\n }\n return null;\n}\nfunction selectionToInsertionEnd(tr, startLen, bias) {\n let last = tr.steps.length - 1;\n if (last < startLen)\n return;\n let step = tr.steps[last];\n if (!(step instanceof ReplaceStep || step instanceof ReplaceAroundStep))\n return;\n let map = tr.mapping.maps[last], end;\n map.forEach((_from, _to, _newFrom, newTo) => { if (end == null)\n end = newTo; });\n tr.setSelection(Selection.near(tr.doc.resolve(end), bias));\n}\n\nconst UPDATED_SEL = 1, UPDATED_MARKS = 2, UPDATED_SCROLL = 4;\n/**\nAn editor state transaction, which can be applied to a state to\ncreate an updated state. Use\n[`EditorState.tr`](https://prosemirror.net/docs/ref/#state.EditorState.tr) to create an instance.\n\nTransactions track changes to the document (they are a subclass of\n[`Transform`](https://prosemirror.net/docs/ref/#transform.Transform)), but also other state changes,\nlike selection updates and adjustments of the set of [stored\nmarks](https://prosemirror.net/docs/ref/#state.EditorState.storedMarks). In addition, you can store\nmetadata properties in a transaction, which are extra pieces of\ninformation that client code or plugins can use to describe what a\ntransaction represents, so that they can update their [own\nstate](https://prosemirror.net/docs/ref/#state.StateField) accordingly.\n\nThe [editor view](https://prosemirror.net/docs/ref/#view.EditorView) uses a few metadata\nproperties: it will attach a property `\"pointer\"` with the value\n`true` to selection transactions directly caused by mouse or touch\ninput, a `\"composition\"` property holding an ID identifying the\ncomposition that caused it to transactions caused by composed DOM\ninput, and a `\"uiEvent\"` property of that may be `\"paste\"`,\n`\"cut\"`, or `\"drop\"`.\n*/\nclass Transaction extends Transform {\n /**\n @internal\n */\n constructor(state) {\n super(state.doc);\n // The step count for which the current selection is valid.\n this.curSelectionFor = 0;\n // Bitfield to track which aspects of the state were updated by\n // this transaction.\n this.updated = 0;\n // Object used to store metadata properties for the transaction.\n this.meta = Object.create(null);\n this.time = Date.now();\n this.curSelection = state.selection;\n this.storedMarks = state.storedMarks;\n }\n /**\n The transaction's current selection. This defaults to the editor\n selection [mapped](https://prosemirror.net/docs/ref/#state.Selection.map) through the steps in the\n transaction, but can be overwritten with\n [`setSelection`](https://prosemirror.net/docs/ref/#state.Transaction.setSelection).\n */\n get selection() {\n if (this.curSelectionFor < this.steps.length) {\n this.curSelection = this.curSelection.map(this.doc, this.mapping.slice(this.curSelectionFor));\n this.curSelectionFor = this.steps.length;\n }\n return this.curSelection;\n }\n /**\n Update the transaction's current selection. Will determine the\n selection that the editor gets when the transaction is applied.\n */\n setSelection(selection) {\n if (selection.$from.doc != this.doc)\n throw new RangeError(\"Selection passed to setSelection must point at the current document\");\n this.curSelection = selection;\n this.curSelectionFor = this.steps.length;\n this.updated = (this.updated | UPDATED_SEL) & ~UPDATED_MARKS;\n this.storedMarks = null;\n return this;\n }\n /**\n Whether the selection was explicitly updated by this transaction.\n */\n get selectionSet() {\n return (this.updated & UPDATED_SEL) > 0;\n }\n /**\n Set the current stored marks.\n */\n setStoredMarks(marks) {\n this.storedMarks = marks;\n this.updated |= UPDATED_MARKS;\n return this;\n }\n /**\n Make sure the current stored marks or, if that is null, the marks\n at the selection, match the given set of marks. Does nothing if\n this is already the case.\n */\n ensureMarks(marks) {\n if (!Mark.sameSet(this.storedMarks || this.selection.$from.marks(), marks))\n this.setStoredMarks(marks);\n return this;\n }\n /**\n Add a mark to the set of stored marks.\n */\n addStoredMark(mark) {\n return this.ensureMarks(mark.addToSet(this.storedMarks || this.selection.$head.marks()));\n }\n /**\n Remove a mark or mark type from the set of stored marks.\n */\n removeStoredMark(mark) {\n return this.ensureMarks(mark.removeFromSet(this.storedMarks || this.selection.$head.marks()));\n }\n /**\n Whether the stored marks were explicitly set for this transaction.\n */\n get storedMarksSet() {\n return (this.updated & UPDATED_MARKS) > 0;\n }\n /**\n @internal\n */\n addStep(step, doc) {\n super.addStep(step, doc);\n this.updated = this.updated & ~UPDATED_MARKS;\n this.storedMarks = null;\n }\n /**\n Update the timestamp for the transaction.\n */\n setTime(time) {\n this.time = time;\n return this;\n }\n /**\n Replace the current selection with the given slice.\n */\n replaceSelection(slice) {\n this.selection.replace(this, slice);\n return this;\n }\n /**\n Replace the selection with the given node. When `inheritMarks` is\n true and the content is inline, it inherits the marks from the\n place where it is inserted.\n */\n replaceSelectionWith(node, inheritMarks = true) {\n let selection = this.selection;\n if (inheritMarks)\n node = node.mark(this.storedMarks || (selection.empty ? selection.$from.marks() : (selection.$from.marksAcross(selection.$to) || Mark.none)));\n selection.replaceWith(this, node);\n return this;\n }\n /**\n Delete the selection.\n */\n deleteSelection() {\n this.selection.replace(this);\n return this;\n }\n /**\n Replace the given range, or the selection if no range is given,\n with a text node containing the given string.\n */\n insertText(text, from, to) {\n let schema = this.doc.type.schema;\n if (from == null) {\n if (!text)\n return this.deleteSelection();\n return this.replaceSelectionWith(schema.text(text), true);\n }\n else {\n if (to == null)\n to = from;\n to = to == null ? from : to;\n if (!text)\n return this.deleteRange(from, to);\n let marks = this.storedMarks;\n if (!marks) {\n let $from = this.doc.resolve(from);\n marks = to == from ? $from.marks() : $from.marksAcross(this.doc.resolve(to));\n }\n this.replaceRangeWith(from, to, schema.text(text, marks));\n if (!this.selection.empty)\n this.setSelection(Selection.near(this.selection.$to));\n return this;\n }\n }\n /**\n Store a metadata property in this transaction, keyed either by\n name or by plugin.\n */\n setMeta(key, value) {\n this.meta[typeof key == \"string\" ? key : key.key] = value;\n return this;\n }\n /**\n Retrieve a metadata property for a given name or plugin.\n */\n getMeta(key) {\n return this.meta[typeof key == \"string\" ? key : key.key];\n }\n /**\n Returns true if this transaction doesn't contain any metadata,\n and can thus safely be extended.\n */\n get isGeneric() {\n for (let _ in this.meta)\n return false;\n return true;\n }\n /**\n Indicate that the editor should scroll the selection into view\n when updated to the state produced by this transaction.\n */\n scrollIntoView() {\n this.updated |= UPDATED_SCROLL;\n return this;\n }\n /**\n True when this transaction has had `scrollIntoView` called on it.\n */\n get scrolledIntoView() {\n return (this.updated & UPDATED_SCROLL) > 0;\n }\n}\n\nfunction bind(f, self) {\n return !self || !f ? f : f.bind(self);\n}\nclass FieldDesc {\n constructor(name, desc, self) {\n this.name = name;\n this.init = bind(desc.init, self);\n this.apply = bind(desc.apply, self);\n }\n}\nconst baseFields = [\n new FieldDesc(\"doc\", {\n init(config) { return config.doc || config.schema.topNodeType.createAndFill(); },\n apply(tr) { return tr.doc; }\n }),\n new FieldDesc(\"selection\", {\n init(config, instance) { return config.selection || Selection.atStart(instance.doc); },\n apply(tr) { return tr.selection; }\n }),\n new FieldDesc(\"storedMarks\", {\n init(config) { return config.storedMarks || null; },\n apply(tr, _marks, _old, state) { return state.selection.$cursor ? tr.storedMarks : null; }\n }),\n new FieldDesc(\"scrollToSelection\", {\n init() { return 0; },\n apply(tr, prev) { return tr.scrolledIntoView ? prev + 1 : prev; }\n })\n];\n// Object wrapping the part of a state object that stays the same\n// across transactions. Stored in the state's `config` property.\nclass Configuration {\n constructor(schema, plugins) {\n this.schema = schema;\n this.plugins = [];\n this.pluginsByKey = Object.create(null);\n this.fields = baseFields.slice();\n if (plugins)\n plugins.forEach(plugin => {\n if (this.pluginsByKey[plugin.key])\n throw new RangeError(\"Adding different instances of a keyed plugin (\" + plugin.key + \")\");\n this.plugins.push(plugin);\n this.pluginsByKey[plugin.key] = plugin;\n if (plugin.spec.state)\n this.fields.push(new FieldDesc(plugin.key, plugin.spec.state, plugin));\n });\n }\n}\n/**\nThe state of a ProseMirror editor is represented by an object of\nthis type. A state is a persistent data structure—it isn't\nupdated, but rather a new state value is computed from an old one\nusing the [`apply`](https://prosemirror.net/docs/ref/#state.EditorState.apply) method.\n\nA state holds a number of built-in fields, and plugins can\n[define](https://prosemirror.net/docs/ref/#state.PluginSpec.state) additional fields.\n*/\nclass EditorState {\n /**\n @internal\n */\n constructor(\n /**\n @internal\n */\n config) {\n this.config = config;\n }\n /**\n The schema of the state's document.\n */\n get schema() {\n return this.config.schema;\n }\n /**\n The plugins that are active in this state.\n */\n get plugins() {\n return this.config.plugins;\n }\n /**\n Apply the given transaction to produce a new state.\n */\n apply(tr) {\n return this.applyTransaction(tr).state;\n }\n /**\n @internal\n */\n filterTransaction(tr, ignore = -1) {\n for (let i = 0; i < this.config.plugins.length; i++)\n if (i != ignore) {\n let plugin = this.config.plugins[i];\n if (plugin.spec.filterTransaction && !plugin.spec.filterTransaction.call(plugin, tr, this))\n return false;\n }\n return true;\n }\n /**\n Verbose variant of [`apply`](https://prosemirror.net/docs/ref/#state.EditorState.apply) that\n returns the precise transactions that were applied (which might\n be influenced by the [transaction\n hooks](https://prosemirror.net/docs/ref/#state.PluginSpec.filterTransaction) of\n plugins) along with the new state.\n */\n applyTransaction(rootTr) {\n if (!this.filterTransaction(rootTr))\n return { state: this, transactions: [] };\n let trs = [rootTr], newState = this.applyInner(rootTr), seen = null;\n // This loop repeatedly gives plugins a chance to respond to\n // transactions as new transactions are added, making sure to only\n // pass the transactions the plugin did not see before.\n for (;;) {\n let haveNew = false;\n for (let i = 0; i < this.config.plugins.length; i++) {\n let plugin = this.config.plugins[i];\n if (plugin.spec.appendTransaction) {\n let n = seen ? seen[i].n : 0, oldState = seen ? seen[i].state : this;\n let tr = n < trs.length &&\n plugin.spec.appendTransaction.call(plugin, n ? trs.slice(n) : trs, oldState, newState);\n if (tr && newState.filterTransaction(tr, i)) {\n tr.setMeta(\"appendedTransaction\", rootTr);\n if (!seen) {\n seen = [];\n for (let j = 0; j < this.config.plugins.length; j++)\n seen.push(j < i ? { state: newState, n: trs.length } : { state: this, n: 0 });\n }\n trs.push(tr);\n newState = newState.applyInner(tr);\n haveNew = true;\n }\n if (seen)\n seen[i] = { state: newState, n: trs.length };\n }\n }\n if (!haveNew)\n return { state: newState, transactions: trs };\n }\n }\n /**\n @internal\n */\n applyInner(tr) {\n if (!tr.before.eq(this.doc))\n throw new RangeError(\"Applying a mismatched transaction\");\n let newInstance = new EditorState(this.config), fields = this.config.fields;\n for (let i = 0; i < fields.length; i++) {\n let field = fields[i];\n newInstance[field.name] = field.apply(tr, this[field.name], this, newInstance);\n }\n return newInstance;\n }\n /**\n Start a [transaction](https://prosemirror.net/docs/ref/#state.Transaction) from this state.\n */\n get tr() { return new Transaction(this); }\n /**\n Create a new state.\n */\n static create(config) {\n let $config = new Configuration(config.doc ? config.doc.type.schema : config.schema, config.plugins);\n let instance = new EditorState($config);\n for (let i = 0; i < $config.fields.length; i++)\n instance[$config.fields[i].name] = $config.fields[i].init(config, instance);\n return instance;\n }\n /**\n Create a new state based on this one, but with an adjusted set\n of active plugins. State fields that exist in both sets of\n plugins are kept unchanged. Those that no longer exist are\n dropped, and those that are new are initialized using their\n [`init`](https://prosemirror.net/docs/ref/#state.StateField.init) method, passing in the new\n configuration object..\n */\n reconfigure(config) {\n let $config = new Configuration(this.schema, config.plugins);\n let fields = $config.fields, instance = new EditorState($config);\n for (let i = 0; i < fields.length; i++) {\n let name = fields[i].name;\n instance[name] = this.hasOwnProperty(name) ? this[name] : fields[i].init(config, instance);\n }\n return instance;\n }\n /**\n Serialize this state to JSON. If you want to serialize the state\n of plugins, pass an object mapping property names to use in the\n resulting JSON object to plugin objects. The argument may also be\n a string or number, in which case it is ignored, to support the\n way `JSON.stringify` calls `toString` methods.\n */\n toJSON(pluginFields) {\n let result = { doc: this.doc.toJSON(), selection: this.selection.toJSON() };\n if (this.storedMarks)\n result.storedMarks = this.storedMarks.map(m => m.toJSON());\n if (pluginFields && typeof pluginFields == 'object')\n for (let prop in pluginFields) {\n if (prop == \"doc\" || prop == \"selection\")\n throw new RangeError(\"The JSON fields `doc` and `selection` are reserved\");\n let plugin = pluginFields[prop], state = plugin.spec.state;\n if (state && state.toJSON)\n result[prop] = state.toJSON.call(plugin, this[plugin.key]);\n }\n return result;\n }\n /**\n Deserialize a JSON representation of a state. `config` should\n have at least a `schema` field, and should contain array of\n plugins to initialize the state with. `pluginFields` can be used\n to deserialize the state of plugins, by associating plugin\n instances with the property names they use in the JSON object.\n */\n static fromJSON(config, json, pluginFields) {\n if (!json)\n throw new RangeError(\"Invalid input for EditorState.fromJSON\");\n if (!config.schema)\n throw new RangeError(\"Required config field 'schema' missing\");\n let $config = new Configuration(config.schema, config.plugins);\n let instance = new EditorState($config);\n $config.fields.forEach(field => {\n if (field.name == \"doc\") {\n instance.doc = Node.fromJSON(config.schema, json.doc);\n }\n else if (field.name == \"selection\") {\n instance.selection = Selection.fromJSON(instance.doc, json.selection);\n }\n else if (field.name == \"storedMarks\") {\n if (json.storedMarks)\n instance.storedMarks = json.storedMarks.map(config.schema.markFromJSON);\n }\n else {\n if (pluginFields)\n for (let prop in pluginFields) {\n let plugin = pluginFields[prop], state = plugin.spec.state;\n if (plugin.key == field.name && state && state.fromJSON &&\n Object.prototype.hasOwnProperty.call(json, prop)) {\n instance[field.name] = state.fromJSON.call(plugin, config, json[prop], instance);\n return;\n }\n }\n instance[field.name] = field.init(config, instance);\n }\n });\n return instance;\n }\n}\n\nfunction bindProps(obj, self, target) {\n for (let prop in obj) {\n let val = obj[prop];\n if (val instanceof Function)\n val = val.bind(self);\n else if (prop == \"handleDOMEvents\")\n val = bindProps(val, self, {});\n target[prop] = val;\n }\n return target;\n}\n/**\nPlugins bundle functionality that can be added to an editor.\nThey are part of the [editor state](https://prosemirror.net/docs/ref/#state.EditorState) and\nmay influence that state and the view that contains it.\n*/\nclass Plugin {\n /**\n Create a plugin.\n */\n constructor(\n /**\n The plugin's [spec object](https://prosemirror.net/docs/ref/#state.PluginSpec).\n */\n spec) {\n this.spec = spec;\n /**\n The [props](https://prosemirror.net/docs/ref/#view.EditorProps) exported by this plugin.\n */\n this.props = {};\n if (spec.props)\n bindProps(spec.props, this, this.props);\n this.key = spec.key ? spec.key.key : createKey(\"plugin\");\n }\n /**\n Extract the plugin's state field from an editor state.\n */\n getState(state) { return state[this.key]; }\n}\nconst keys = Object.create(null);\nfunction createKey(name) {\n if (name in keys)\n return name + \"$\" + ++keys[name];\n keys[name] = 0;\n return name + \"$\";\n}\n/**\nA key is used to [tag](https://prosemirror.net/docs/ref/#state.PluginSpec.key) plugins in a way\nthat makes it possible to find them, given an editor state.\nAssigning a key does mean only one plugin of that type can be\nactive in a state.\n*/\nclass PluginKey {\n /**\n Create a plugin key.\n */\n constructor(name = \"key\") { this.key = createKey(name); }\n /**\n Get the active plugin with this key, if any, from an editor\n state.\n */\n get(state) { return state.config.pluginsByKey[this.key]; }\n /**\n Get the plugin's state from an editor state.\n */\n getState(state) { return state[this.key]; }\n}\n\nexport { AllSelection, EditorState, NodeSelection, Plugin, PluginKey, Selection, SelectionRange, TextSelection, Transaction };\n","import { keyName, base } from 'w3c-keyname';\nimport { Plugin } from 'prosemirror-state';\n\nconst mac = typeof navigator != \"undefined\" ? /Mac|iP(hone|[oa]d)/.test(navigator.platform) : false;\nfunction normalizeKeyName(name) {\n let parts = name.split(/-(?!$)/), result = parts[parts.length - 1];\n if (result == \"Space\")\n result = \" \";\n let alt, ctrl, shift, meta;\n for (let i = 0; i < parts.length - 1; i++) {\n let mod = parts[i];\n if (/^(cmd|meta|m)$/i.test(mod))\n meta = true;\n else if (/^a(lt)?$/i.test(mod))\n alt = true;\n else if (/^(c|ctrl|control)$/i.test(mod))\n ctrl = true;\n else if (/^s(hift)?$/i.test(mod))\n shift = true;\n else if (/^mod$/i.test(mod)) {\n if (mac)\n meta = true;\n else\n ctrl = true;\n }\n else\n throw new Error(\"Unrecognized modifier name: \" + mod);\n }\n if (alt)\n result = \"Alt-\" + result;\n if (ctrl)\n result = \"Ctrl-\" + result;\n if (meta)\n result = \"Meta-\" + result;\n if (shift)\n result = \"Shift-\" + result;\n return result;\n}\nfunction normalize(map) {\n let copy = Object.create(null);\n for (let prop in map)\n copy[normalizeKeyName(prop)] = map[prop];\n return copy;\n}\nfunction modifiers(name, event, shift = true) {\n if (event.altKey)\n name = \"Alt-\" + name;\n if (event.ctrlKey)\n name = \"Ctrl-\" + name;\n if (event.metaKey)\n name = \"Meta-\" + name;\n if (shift && event.shiftKey)\n name = \"Shift-\" + name;\n return name;\n}\n/**\nCreate a keymap plugin for the given set of bindings.\n\nBindings should map key names to [command](https://prosemirror.net/docs/ref/#commands)-style\nfunctions, which will be called with `(EditorState, dispatch,\nEditorView)` arguments, and should return true when they've handled\nthe key. Note that the view argument isn't part of the command\nprotocol, but can be used as an escape hatch if a binding needs to\ndirectly interact with the UI.\n\nKey names may be strings like `\"Shift-Ctrl-Enter\"`—a key\nidentifier prefixed with zero or more modifiers. Key identifiers\nare based on the strings that can appear in\n[`KeyEvent.key`](https:developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key).\nUse lowercase letters to refer to letter keys (or uppercase letters\nif you want shift to be held). You may use `\"Space\"` as an alias\nfor the `\" \"` name.\n\nModifiers can be given in any order. `Shift-` (or `s-`), `Alt-` (or\n`a-`), `Ctrl-` (or `c-` or `Control-`) and `Cmd-` (or `m-` or\n`Meta-`) are recognized. For characters that are created by holding\nshift, the `Shift-` prefix is implied, and should not be added\nexplicitly.\n\nYou can use `Mod-` as a shorthand for `Cmd-` on Mac and `Ctrl-` on\nother platforms.\n\nYou can add multiple keymap plugins to an editor. The order in\nwhich they appear determines their precedence (the ones early in\nthe array get to dispatch first).\n*/\nfunction keymap(bindings) {\n return new Plugin({ props: { handleKeyDown: keydownHandler(bindings) } });\n}\n/**\nGiven a set of bindings (using the same format as\n[`keymap`](https://prosemirror.net/docs/ref/#keymap.keymap)), return a [keydown\nhandler](https://prosemirror.net/docs/ref/#view.EditorProps.handleKeyDown) that handles them.\n*/\nfunction keydownHandler(bindings) {\n let map = normalize(bindings);\n return function (view, event) {\n let name = keyName(event), baseName, direct = map[modifiers(name, event)];\n if (direct && direct(view.state, view.dispatch, view))\n return true;\n // A character key\n if (name.length == 1 && name != \" \") {\n if (event.shiftKey) {\n // In case the name was already modified by shift, try looking\n // it up without its shift modifier\n let noShift = map[modifiers(name, event, false)];\n if (noShift && noShift(view.state, view.dispatch, view))\n return true;\n }\n if ((event.shiftKey || event.altKey || event.metaKey || name.charCodeAt(0) > 127) &&\n (baseName = base[event.keyCode]) && baseName != name) {\n // Try falling back to the keyCode when there's a modifier\n // active or the character produced isn't ASCII, and our table\n // produces a different name from the the keyCode. See #668,\n // #1060\n let fromCode = map[modifiers(baseName, event)];\n if (fromCode && fromCode(view.state, view.dispatch, view))\n return true;\n }\n }\n return false;\n };\n}\n\nexport { keydownHandler, keymap };\n","import { liftTarget, replaceStep, ReplaceStep, canJoin, joinPoint, canSplit, ReplaceAroundStep, findWrapping } from 'prosemirror-transform';\nimport { Slice, Fragment } from 'prosemirror-model';\nimport { NodeSelection, Selection, TextSelection, AllSelection, SelectionRange } from 'prosemirror-state';\n\n/**\nDelete the selection, if there is one.\n*/\nconst deleteSelection = (state, dispatch) => {\n if (state.selection.empty)\n return false;\n if (dispatch)\n dispatch(state.tr.deleteSelection().scrollIntoView());\n return true;\n};\nfunction atBlockStart(state, view) {\n let { $cursor } = state.selection;\n if (!$cursor || (view ? !view.endOfTextblock(\"backward\", state)\n : $cursor.parentOffset > 0))\n return null;\n return $cursor;\n}\n/**\nIf the selection is empty and at the start of a textblock, try to\nreduce the distance between that block and the one before it—if\nthere's a block directly before it that can be joined, join them.\nIf not, try to move the selected block closer to the next one in\nthe document structure by lifting it out of its parent or moving it\ninto a parent of the previous block. Will use the view for accurate\n(bidi-aware) start-of-textblock detection if given.\n*/\nconst joinBackward = (state, dispatch, view) => {\n let $cursor = atBlockStart(state, view);\n if (!$cursor)\n return false;\n let $cut = findCutBefore($cursor);\n // If there is no node before this, try to lift\n if (!$cut) {\n let range = $cursor.blockRange(), target = range && liftTarget(range);\n if (target == null)\n return false;\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n }\n let before = $cut.nodeBefore;\n // Apply the joining algorithm\n if (deleteBarrier(state, $cut, dispatch, -1))\n return true;\n // If the node below has no content and the node above is\n // selectable, delete the node below and select the one above.\n if ($cursor.parent.content.size == 0 &&\n (textblockAt(before, \"end\") || NodeSelection.isSelectable(before))) {\n for (let depth = $cursor.depth;; depth--) {\n let delStep = replaceStep(state.doc, $cursor.before(depth), $cursor.after(depth), Slice.empty);\n if (delStep && delStep.slice.size < delStep.to - delStep.from) {\n if (dispatch) {\n let tr = state.tr.step(delStep);\n tr.setSelection(textblockAt(before, \"end\")\n ? Selection.findFrom(tr.doc.resolve(tr.mapping.map($cut.pos, -1)), -1)\n : NodeSelection.create(tr.doc, $cut.pos - before.nodeSize));\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n if (depth == 1 || $cursor.node(depth - 1).childCount > 1)\n break;\n }\n }\n // If the node before is an atom, delete it\n if (before.isAtom && $cut.depth == $cursor.depth - 1) {\n if (dispatch)\n dispatch(state.tr.delete($cut.pos - before.nodeSize, $cut.pos).scrollIntoView());\n return true;\n }\n return false;\n};\n/**\nA more limited form of [`joinBackward`]($commands.joinBackward)\nthat only tries to join the current textblock to the one before\nit, if the cursor is at the start of a textblock.\n*/\nconst joinTextblockBackward = (state, dispatch, view) => {\n let $cursor = atBlockStart(state, view);\n if (!$cursor)\n return false;\n let $cut = findCutBefore($cursor);\n return $cut ? joinTextblocksAround(state, $cut, dispatch) : false;\n};\n/**\nA more limited form of [`joinForward`]($commands.joinForward)\nthat only tries to join the current textblock to the one after\nit, if the cursor is at the end of a textblock.\n*/\nconst joinTextblockForward = (state, dispatch, view) => {\n let $cursor = atBlockEnd(state, view);\n if (!$cursor)\n return false;\n let $cut = findCutAfter($cursor);\n return $cut ? joinTextblocksAround(state, $cut, dispatch) : false;\n};\nfunction joinTextblocksAround(state, $cut, dispatch) {\n let before = $cut.nodeBefore, beforeText = before, beforePos = $cut.pos - 1;\n for (; !beforeText.isTextblock; beforePos--) {\n if (beforeText.type.spec.isolating)\n return false;\n let child = beforeText.lastChild;\n if (!child)\n return false;\n beforeText = child;\n }\n let after = $cut.nodeAfter, afterText = after, afterPos = $cut.pos + 1;\n for (; !afterText.isTextblock; afterPos++) {\n if (afterText.type.spec.isolating)\n return false;\n let child = afterText.firstChild;\n if (!child)\n return false;\n afterText = child;\n }\n let step = replaceStep(state.doc, beforePos, afterPos, Slice.empty);\n if (!step || step.from != beforePos ||\n step instanceof ReplaceStep && step.slice.size >= afterPos - beforePos)\n return false;\n if (dispatch) {\n let tr = state.tr.step(step);\n tr.setSelection(TextSelection.create(tr.doc, beforePos));\n dispatch(tr.scrollIntoView());\n }\n return true;\n}\nfunction textblockAt(node, side, only = false) {\n for (let scan = node; scan; scan = (side == \"start\" ? scan.firstChild : scan.lastChild)) {\n if (scan.isTextblock)\n return true;\n if (only && scan.childCount != 1)\n return false;\n }\n return false;\n}\n/**\nWhen the selection is empty and at the start of a textblock, select\nthe node before that textblock, if possible. This is intended to be\nbound to keys like backspace, after\n[`joinBackward`](https://prosemirror.net/docs/ref/#commands.joinBackward) or other deleting\ncommands, as a fall-back behavior when the schema doesn't allow\ndeletion at the selected point.\n*/\nconst selectNodeBackward = (state, dispatch, view) => {\n let { $head, empty } = state.selection, $cut = $head;\n if (!empty)\n return false;\n if ($head.parent.isTextblock) {\n if (view ? !view.endOfTextblock(\"backward\", state) : $head.parentOffset > 0)\n return false;\n $cut = findCutBefore($head);\n }\n let node = $cut && $cut.nodeBefore;\n if (!node || !NodeSelection.isSelectable(node))\n return false;\n if (dispatch)\n dispatch(state.tr.setSelection(NodeSelection.create(state.doc, $cut.pos - node.nodeSize)).scrollIntoView());\n return true;\n};\nfunction findCutBefore($pos) {\n if (!$pos.parent.type.spec.isolating)\n for (let i = $pos.depth - 1; i >= 0; i--) {\n if ($pos.index(i) > 0)\n return $pos.doc.resolve($pos.before(i + 1));\n if ($pos.node(i).type.spec.isolating)\n break;\n }\n return null;\n}\nfunction atBlockEnd(state, view) {\n let { $cursor } = state.selection;\n if (!$cursor || (view ? !view.endOfTextblock(\"forward\", state)\n : $cursor.parentOffset < $cursor.parent.content.size))\n return null;\n return $cursor;\n}\n/**\nIf the selection is empty and the cursor is at the end of a\ntextblock, try to reduce or remove the boundary between that block\nand the one after it, either by joining them or by moving the other\nblock closer to this one in the tree structure. Will use the view\nfor accurate start-of-textblock detection if given.\n*/\nconst joinForward = (state, dispatch, view) => {\n let $cursor = atBlockEnd(state, view);\n if (!$cursor)\n return false;\n let $cut = findCutAfter($cursor);\n // If there is no node after this, there's nothing to do\n if (!$cut)\n return false;\n let after = $cut.nodeAfter;\n // Try the joining algorithm\n if (deleteBarrier(state, $cut, dispatch, 1))\n return true;\n // If the node above has no content and the node below is\n // selectable, delete the node above and select the one below.\n if ($cursor.parent.content.size == 0 &&\n (textblockAt(after, \"start\") || NodeSelection.isSelectable(after))) {\n let delStep = replaceStep(state.doc, $cursor.before(), $cursor.after(), Slice.empty);\n if (delStep && delStep.slice.size < delStep.to - delStep.from) {\n if (dispatch) {\n let tr = state.tr.step(delStep);\n tr.setSelection(textblockAt(after, \"start\") ? Selection.findFrom(tr.doc.resolve(tr.mapping.map($cut.pos)), 1)\n : NodeSelection.create(tr.doc, tr.mapping.map($cut.pos)));\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n }\n // If the next node is an atom, delete it\n if (after.isAtom && $cut.depth == $cursor.depth - 1) {\n if (dispatch)\n dispatch(state.tr.delete($cut.pos, $cut.pos + after.nodeSize).scrollIntoView());\n return true;\n }\n return false;\n};\n/**\nWhen the selection is empty and at the end of a textblock, select\nthe node coming after that textblock, if possible. This is intended\nto be bound to keys like delete, after\n[`joinForward`](https://prosemirror.net/docs/ref/#commands.joinForward) and similar deleting\ncommands, to provide a fall-back behavior when the schema doesn't\nallow deletion at the selected point.\n*/\nconst selectNodeForward = (state, dispatch, view) => {\n let { $head, empty } = state.selection, $cut = $head;\n if (!empty)\n return false;\n if ($head.parent.isTextblock) {\n if (view ? !view.endOfTextblock(\"forward\", state) : $head.parentOffset < $head.parent.content.size)\n return false;\n $cut = findCutAfter($head);\n }\n let node = $cut && $cut.nodeAfter;\n if (!node || !NodeSelection.isSelectable(node))\n return false;\n if (dispatch)\n dispatch(state.tr.setSelection(NodeSelection.create(state.doc, $cut.pos)).scrollIntoView());\n return true;\n};\nfunction findCutAfter($pos) {\n if (!$pos.parent.type.spec.isolating)\n for (let i = $pos.depth - 1; i >= 0; i--) {\n let parent = $pos.node(i);\n if ($pos.index(i) + 1 < parent.childCount)\n return $pos.doc.resolve($pos.after(i + 1));\n if (parent.type.spec.isolating)\n break;\n }\n return null;\n}\n/**\nJoin the selected block or, if there is a text selection, the\nclosest ancestor block of the selection that can be joined, with\nthe sibling above it.\n*/\nconst joinUp = (state, dispatch) => {\n let sel = state.selection, nodeSel = sel instanceof NodeSelection, point;\n if (nodeSel) {\n if (sel.node.isTextblock || !canJoin(state.doc, sel.from))\n return false;\n point = sel.from;\n }\n else {\n point = joinPoint(state.doc, sel.from, -1);\n if (point == null)\n return false;\n }\n if (dispatch) {\n let tr = state.tr.join(point);\n if (nodeSel)\n tr.setSelection(NodeSelection.create(tr.doc, point - state.doc.resolve(point).nodeBefore.nodeSize));\n dispatch(tr.scrollIntoView());\n }\n return true;\n};\n/**\nJoin the selected block, or the closest ancestor of the selection\nthat can be joined, with the sibling after it.\n*/\nconst joinDown = (state, dispatch) => {\n let sel = state.selection, point;\n if (sel instanceof NodeSelection) {\n if (sel.node.isTextblock || !canJoin(state.doc, sel.to))\n return false;\n point = sel.to;\n }\n else {\n point = joinPoint(state.doc, sel.to, 1);\n if (point == null)\n return false;\n }\n if (dispatch)\n dispatch(state.tr.join(point).scrollIntoView());\n return true;\n};\n/**\nLift the selected block, or the closest ancestor block of the\nselection that can be lifted, out of its parent node.\n*/\nconst lift = (state, dispatch) => {\n let { $from, $to } = state.selection;\n let range = $from.blockRange($to), target = range && liftTarget(range);\n if (target == null)\n return false;\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n};\n/**\nIf the selection is in a node whose type has a truthy\n[`code`](https://prosemirror.net/docs/ref/#model.NodeSpec.code) property in its spec, replace the\nselection with a newline character.\n*/\nconst newlineInCode = (state, dispatch) => {\n let { $head, $anchor } = state.selection;\n if (!$head.parent.type.spec.code || !$head.sameParent($anchor))\n return false;\n if (dispatch)\n dispatch(state.tr.insertText(\"\\n\").scrollIntoView());\n return true;\n};\nfunction defaultBlockAt(match) {\n for (let i = 0; i < match.edgeCount; i++) {\n let { type } = match.edge(i);\n if (type.isTextblock && !type.hasRequiredAttrs())\n return type;\n }\n return null;\n}\n/**\nWhen the selection is in a node with a truthy\n[`code`](https://prosemirror.net/docs/ref/#model.NodeSpec.code) property in its spec, create a\ndefault block after the code block, and move the cursor there.\n*/\nconst exitCode = (state, dispatch) => {\n let { $head, $anchor } = state.selection;\n if (!$head.parent.type.spec.code || !$head.sameParent($anchor))\n return false;\n let above = $head.node(-1), after = $head.indexAfter(-1), type = defaultBlockAt(above.contentMatchAt(after));\n if (!type || !above.canReplaceWith(after, after, type))\n return false;\n if (dispatch) {\n let pos = $head.after(), tr = state.tr.replaceWith(pos, pos, type.createAndFill());\n tr.setSelection(Selection.near(tr.doc.resolve(pos), 1));\n dispatch(tr.scrollIntoView());\n }\n return true;\n};\n/**\nIf a block node is selected, create an empty paragraph before (if\nit is its parent's first child) or after it.\n*/\nconst createParagraphNear = (state, dispatch) => {\n let sel = state.selection, { $from, $to } = sel;\n if (sel instanceof AllSelection || $from.parent.inlineContent || $to.parent.inlineContent)\n return false;\n let type = defaultBlockAt($to.parent.contentMatchAt($to.indexAfter()));\n if (!type || !type.isTextblock)\n return false;\n if (dispatch) {\n let side = (!$from.parentOffset && $to.index() < $to.parent.childCount ? $from : $to).pos;\n let tr = state.tr.insert(side, type.createAndFill());\n tr.setSelection(TextSelection.create(tr.doc, side + 1));\n dispatch(tr.scrollIntoView());\n }\n return true;\n};\n/**\nIf the cursor is in an empty textblock that can be lifted, lift the\nblock.\n*/\nconst liftEmptyBlock = (state, dispatch) => {\n let { $cursor } = state.selection;\n if (!$cursor || $cursor.parent.content.size)\n return false;\n if ($cursor.depth > 1 && $cursor.after() != $cursor.end(-1)) {\n let before = $cursor.before();\n if (canSplit(state.doc, before)) {\n if (dispatch)\n dispatch(state.tr.split(before).scrollIntoView());\n return true;\n }\n }\n let range = $cursor.blockRange(), target = range && liftTarget(range);\n if (target == null)\n return false;\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n};\n/**\nCreate a variant of [`splitBlock`](https://prosemirror.net/docs/ref/#commands.splitBlock) that uses\na custom function to determine the type of the newly split off block.\n*/\nfunction splitBlockAs(splitNode) {\n return (state, dispatch) => {\n let { $from, $to } = state.selection;\n if (state.selection instanceof NodeSelection && state.selection.node.isBlock) {\n if (!$from.parentOffset || !canSplit(state.doc, $from.pos))\n return false;\n if (dispatch)\n dispatch(state.tr.split($from.pos).scrollIntoView());\n return true;\n }\n if (!$from.depth)\n return false;\n let types = [];\n let splitDepth, deflt, atEnd = false, atStart = false;\n for (let d = $from.depth;; d--) {\n let node = $from.node(d);\n if (node.isBlock) {\n atEnd = $from.end(d) == $from.pos + ($from.depth - d);\n atStart = $from.start(d) == $from.pos - ($from.depth - d);\n deflt = defaultBlockAt($from.node(d - 1).contentMatchAt($from.indexAfter(d - 1)));\n let splitType = splitNode && splitNode($to.parent, atEnd, $from);\n types.unshift(splitType || (atEnd && deflt ? { type: deflt } : null));\n splitDepth = d;\n break;\n }\n else {\n if (d == 1)\n return false;\n types.unshift(null);\n }\n }\n let tr = state.tr;\n if (state.selection instanceof TextSelection || state.selection instanceof AllSelection)\n tr.deleteSelection();\n let splitPos = tr.mapping.map($from.pos);\n let can = canSplit(tr.doc, splitPos, types.length, types);\n if (!can) {\n types[0] = deflt ? { type: deflt } : null;\n can = canSplit(tr.doc, splitPos, types.length, types);\n }\n tr.split(splitPos, types.length, types);\n if (!atEnd && atStart && $from.node(splitDepth).type != deflt) {\n let first = tr.mapping.map($from.before(splitDepth)), $first = tr.doc.resolve(first);\n if (deflt && $from.node(splitDepth - 1).canReplaceWith($first.index(), $first.index() + 1, deflt))\n tr.setNodeMarkup(tr.mapping.map($from.before(splitDepth)), deflt);\n }\n if (dispatch)\n dispatch(tr.scrollIntoView());\n return true;\n };\n}\n/**\nSplit the parent block of the selection. If the selection is a text\nselection, also delete its content.\n*/\nconst splitBlock = splitBlockAs();\n/**\nActs like [`splitBlock`](https://prosemirror.net/docs/ref/#commands.splitBlock), but without\nresetting the set of active marks at the cursor.\n*/\nconst splitBlockKeepMarks = (state, dispatch) => {\n return splitBlock(state, dispatch && (tr => {\n let marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks());\n if (marks)\n tr.ensureMarks(marks);\n dispatch(tr);\n }));\n};\n/**\nMove the selection to the node wrapping the current selection, if\nany. (Will not select the document node.)\n*/\nconst selectParentNode = (state, dispatch) => {\n let { $from, to } = state.selection, pos;\n let same = $from.sharedDepth(to);\n if (same == 0)\n return false;\n pos = $from.before(same);\n if (dispatch)\n dispatch(state.tr.setSelection(NodeSelection.create(state.doc, pos)));\n return true;\n};\n/**\nSelect the whole document.\n*/\nconst selectAll = (state, dispatch) => {\n if (dispatch)\n dispatch(state.tr.setSelection(new AllSelection(state.doc)));\n return true;\n};\nfunction joinMaybeClear(state, $pos, dispatch) {\n let before = $pos.nodeBefore, after = $pos.nodeAfter, index = $pos.index();\n if (!before || !after || !before.type.compatibleContent(after.type))\n return false;\n if (!before.content.size && $pos.parent.canReplace(index - 1, index)) {\n if (dispatch)\n dispatch(state.tr.delete($pos.pos - before.nodeSize, $pos.pos).scrollIntoView());\n return true;\n }\n if (!$pos.parent.canReplace(index, index + 1) || !(after.isTextblock || canJoin(state.doc, $pos.pos)))\n return false;\n if (dispatch)\n dispatch(state.tr.join($pos.pos).scrollIntoView());\n return true;\n}\nfunction deleteBarrier(state, $cut, dispatch, dir) {\n let before = $cut.nodeBefore, after = $cut.nodeAfter, conn, match;\n let isolated = before.type.spec.isolating || after.type.spec.isolating;\n if (!isolated && joinMaybeClear(state, $cut, dispatch))\n return true;\n let canDelAfter = !isolated && $cut.parent.canReplace($cut.index(), $cut.index() + 1);\n if (canDelAfter &&\n (conn = (match = before.contentMatchAt(before.childCount)).findWrapping(after.type)) &&\n match.matchType(conn[0] || after.type).validEnd) {\n if (dispatch) {\n let end = $cut.pos + after.nodeSize, wrap = Fragment.empty;\n for (let i = conn.length - 1; i >= 0; i--)\n wrap = Fragment.from(conn[i].create(null, wrap));\n wrap = Fragment.from(before.copy(wrap));\n let tr = state.tr.step(new ReplaceAroundStep($cut.pos - 1, end, $cut.pos, end, new Slice(wrap, 1, 0), conn.length, true));\n let $joinAt = tr.doc.resolve(end + 2 * conn.length);\n if ($joinAt.nodeAfter && $joinAt.nodeAfter.type == before.type &&\n canJoin(tr.doc, $joinAt.pos))\n tr.join($joinAt.pos);\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n let selAfter = after.type.spec.isolating || (dir > 0 && isolated) ? null : Selection.findFrom($cut, 1);\n let range = selAfter && selAfter.$from.blockRange(selAfter.$to), target = range && liftTarget(range);\n if (target != null && target >= $cut.depth) {\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n }\n if (canDelAfter && textblockAt(after, \"start\", true) && textblockAt(before, \"end\")) {\n let at = before, wrap = [];\n for (;;) {\n wrap.push(at);\n if (at.isTextblock)\n break;\n at = at.lastChild;\n }\n let afterText = after, afterDepth = 1;\n for (; !afterText.isTextblock; afterText = afterText.firstChild)\n afterDepth++;\n if (at.canReplace(at.childCount, at.childCount, afterText.content)) {\n if (dispatch) {\n let end = Fragment.empty;\n for (let i = wrap.length - 1; i >= 0; i--)\n end = Fragment.from(wrap[i].copy(end));\n let tr = state.tr.step(new ReplaceAroundStep($cut.pos - wrap.length, $cut.pos + after.nodeSize, $cut.pos + afterDepth, $cut.pos + after.nodeSize - afterDepth, new Slice(end, wrap.length, 0), 0, true));\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n }\n return false;\n}\nfunction selectTextblockSide(side) {\n return function (state, dispatch) {\n let sel = state.selection, $pos = side < 0 ? sel.$from : sel.$to;\n let depth = $pos.depth;\n while ($pos.node(depth).isInline) {\n if (!depth)\n return false;\n depth--;\n }\n if (!$pos.node(depth).isTextblock)\n return false;\n if (dispatch)\n dispatch(state.tr.setSelection(TextSelection.create(state.doc, side < 0 ? $pos.start(depth) : $pos.end(depth))));\n return true;\n };\n}\n/**\nMoves the cursor to the start of current text block.\n*/\nconst selectTextblockStart = selectTextblockSide(-1);\n/**\nMoves the cursor to the end of current text block.\n*/\nconst selectTextblockEnd = selectTextblockSide(1);\n// Parameterized commands\n/**\nWrap the selection in a node of the given type with the given\nattributes.\n*/\nfunction wrapIn(nodeType, attrs = null) {\n return function (state, dispatch) {\n let { $from, $to } = state.selection;\n let range = $from.blockRange($to), wrapping = range && findWrapping(range, nodeType, attrs);\n if (!wrapping)\n return false;\n if (dispatch)\n dispatch(state.tr.wrap(range, wrapping).scrollIntoView());\n return true;\n };\n}\n/**\nReturns a command that tries to set the selected textblocks to the\ngiven node type with the given attributes.\n*/\nfunction setBlockType(nodeType, attrs = null) {\n return function (state, dispatch) {\n let applicable = false;\n for (let i = 0; i < state.selection.ranges.length && !applicable; i++) {\n let { $from: { pos: from }, $to: { pos: to } } = state.selection.ranges[i];\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (applicable)\n return false;\n if (!node.isTextblock || node.hasMarkup(nodeType, attrs))\n return;\n if (node.type == nodeType) {\n applicable = true;\n }\n else {\n let $pos = state.doc.resolve(pos), index = $pos.index();\n applicable = $pos.parent.canReplaceWith(index, index + 1, nodeType);\n }\n });\n }\n if (!applicable)\n return false;\n if (dispatch) {\n let tr = state.tr;\n for (let i = 0; i < state.selection.ranges.length; i++) {\n let { $from: { pos: from }, $to: { pos: to } } = state.selection.ranges[i];\n tr.setBlockType(from, to, nodeType, attrs);\n }\n dispatch(tr.scrollIntoView());\n }\n return true;\n };\n}\nfunction markApplies(doc, ranges, type, enterAtoms) {\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i];\n let can = $from.depth == 0 ? doc.inlineContent && doc.type.allowsMarkType(type) : false;\n doc.nodesBetween($from.pos, $to.pos, (node, pos) => {\n if (can || !enterAtoms && node.isAtom && node.isInline && pos >= $from.pos && pos + node.nodeSize <= $to.pos)\n return false;\n can = node.inlineContent && node.type.allowsMarkType(type);\n });\n if (can)\n return true;\n }\n return false;\n}\nfunction removeInlineAtoms(ranges) {\n let result = [];\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i];\n $from.doc.nodesBetween($from.pos, $to.pos, (node, pos) => {\n if (node.isAtom && node.content.size && node.isInline && pos >= $from.pos && pos + node.nodeSize <= $to.pos) {\n if (pos + 1 > $from.pos)\n result.push(new SelectionRange($from, $from.doc.resolve(pos + 1)));\n $from = $from.doc.resolve(pos + 1 + node.content.size);\n return false;\n }\n });\n if ($from.pos < $to.pos)\n result.push(new SelectionRange($from, $to));\n }\n return result;\n}\n/**\nCreate a command function that toggles the given mark with the\ngiven attributes. Will return `false` when the current selection\ndoesn't support that mark. This will remove the mark if any marks\nof that type exist in the selection, or add it otherwise. If the\nselection is empty, this applies to the [stored\nmarks](https://prosemirror.net/docs/ref/#state.EditorState.storedMarks) instead of a range of the\ndocument.\n*/\nfunction toggleMark(markType, attrs = null, options) {\n let removeWhenPresent = (options && options.removeWhenPresent) !== false;\n let enterAtoms = (options && options.enterInlineAtoms) !== false;\n return function (state, dispatch) {\n let { empty, $cursor, ranges } = state.selection;\n if ((empty && !$cursor) || !markApplies(state.doc, ranges, markType, enterAtoms))\n return false;\n if (dispatch) {\n if ($cursor) {\n if (markType.isInSet(state.storedMarks || $cursor.marks()))\n dispatch(state.tr.removeStoredMark(markType));\n else\n dispatch(state.tr.addStoredMark(markType.create(attrs)));\n }\n else {\n let add, tr = state.tr;\n if (!enterAtoms)\n ranges = removeInlineAtoms(ranges);\n if (removeWhenPresent) {\n add = !ranges.some(r => state.doc.rangeHasMark(r.$from.pos, r.$to.pos, markType));\n }\n else {\n add = !ranges.every(r => {\n let missing = false;\n tr.doc.nodesBetween(r.$from.pos, r.$to.pos, (node, pos, parent) => {\n if (missing)\n return false;\n missing = !markType.isInSet(node.marks) && !!parent && parent.type.allowsMarkType(markType) &&\n !(node.isText && /^\\s*$/.test(node.textBetween(Math.max(0, r.$from.pos - pos), Math.min(node.nodeSize, r.$to.pos - pos))));\n });\n return !missing;\n });\n }\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i];\n if (!add) {\n tr.removeMark($from.pos, $to.pos, markType);\n }\n else {\n let from = $from.pos, to = $to.pos, start = $from.nodeAfter, end = $to.nodeBefore;\n let spaceStart = start && start.isText ? /^\\s*/.exec(start.text)[0].length : 0;\n let spaceEnd = end && end.isText ? /\\s*$/.exec(end.text)[0].length : 0;\n if (from + spaceStart < to) {\n from += spaceStart;\n to -= spaceEnd;\n }\n tr.addMark(from, to, markType.create(attrs));\n }\n }\n dispatch(tr.scrollIntoView());\n }\n }\n return true;\n };\n}\nfunction wrapDispatchForJoin(dispatch, isJoinable) {\n return (tr) => {\n if (!tr.isGeneric)\n return dispatch(tr);\n let ranges = [];\n for (let i = 0; i < tr.mapping.maps.length; i++) {\n let map = tr.mapping.maps[i];\n for (let j = 0; j < ranges.length; j++)\n ranges[j] = map.map(ranges[j]);\n map.forEach((_s, _e, from, to) => ranges.push(from, to));\n }\n // Figure out which joinable points exist inside those ranges,\n // by checking all node boundaries in their parent nodes.\n let joinable = [];\n for (let i = 0; i < ranges.length; i += 2) {\n let from = ranges[i], to = ranges[i + 1];\n let $from = tr.doc.resolve(from), depth = $from.sharedDepth(to), parent = $from.node(depth);\n for (let index = $from.indexAfter(depth), pos = $from.after(depth + 1); pos <= to; ++index) {\n let after = parent.maybeChild(index);\n if (!after)\n break;\n if (index && joinable.indexOf(pos) == -1) {\n let before = parent.child(index - 1);\n if (before.type == after.type && isJoinable(before, after))\n joinable.push(pos);\n }\n pos += after.nodeSize;\n }\n }\n // Join the joinable points\n joinable.sort((a, b) => a - b);\n for (let i = joinable.length - 1; i >= 0; i--) {\n if (canJoin(tr.doc, joinable[i]))\n tr.join(joinable[i]);\n }\n dispatch(tr);\n };\n}\n/**\nWrap a command so that, when it produces a transform that causes\ntwo joinable nodes to end up next to each other, those are joined.\nNodes are considered joinable when they are of the same type and\nwhen the `isJoinable` predicate returns true for them or, if an\narray of strings was passed, if their node type name is in that\narray.\n*/\nfunction autoJoin(command, isJoinable) {\n let canJoin = Array.isArray(isJoinable) ? (node) => isJoinable.indexOf(node.type.name) > -1\n : isJoinable;\n return (state, dispatch, view) => command(state, dispatch && wrapDispatchForJoin(dispatch, canJoin), view);\n}\n/**\nCombine a number of command functions into a single function (which\ncalls them one by one until one returns true).\n*/\nfunction chainCommands(...commands) {\n return function (state, dispatch, view) {\n for (let i = 0; i < commands.length; i++)\n if (commands[i](state, dispatch, view))\n return true;\n return false;\n };\n}\nlet backspace = chainCommands(deleteSelection, joinBackward, selectNodeBackward);\nlet del = chainCommands(deleteSelection, joinForward, selectNodeForward);\n/**\nA basic keymap containing bindings not specific to any schema.\nBinds the following keys (when multiple commands are listed, they\nare chained with [`chainCommands`](https://prosemirror.net/docs/ref/#commands.chainCommands)):\n\n* **Enter** to `newlineInCode`, `createParagraphNear`, `liftEmptyBlock`, `splitBlock`\n* **Mod-Enter** to `exitCode`\n* **Backspace** and **Mod-Backspace** to `deleteSelection`, `joinBackward`, `selectNodeBackward`\n* **Delete** and **Mod-Delete** to `deleteSelection`, `joinForward`, `selectNodeForward`\n* **Mod-Delete** to `deleteSelection`, `joinForward`, `selectNodeForward`\n* **Mod-a** to `selectAll`\n*/\nconst pcBaseKeymap = {\n \"Enter\": chainCommands(newlineInCode, createParagraphNear, liftEmptyBlock, splitBlock),\n \"Mod-Enter\": exitCode,\n \"Backspace\": backspace,\n \"Mod-Backspace\": backspace,\n \"Shift-Backspace\": backspace,\n \"Delete\": del,\n \"Mod-Delete\": del,\n \"Mod-a\": selectAll\n};\n/**\nA copy of `pcBaseKeymap` that also binds **Ctrl-h** like Backspace,\n**Ctrl-d** like Delete, **Alt-Backspace** like Ctrl-Backspace, and\n**Ctrl-Alt-Backspace**, **Alt-Delete**, and **Alt-d** like\nCtrl-Delete.\n*/\nconst macBaseKeymap = {\n \"Ctrl-h\": pcBaseKeymap[\"Backspace\"],\n \"Alt-Backspace\": pcBaseKeymap[\"Mod-Backspace\"],\n \"Ctrl-d\": pcBaseKeymap[\"Delete\"],\n \"Ctrl-Alt-Backspace\": pcBaseKeymap[\"Mod-Delete\"],\n \"Alt-Delete\": pcBaseKeymap[\"Mod-Delete\"],\n \"Alt-d\": pcBaseKeymap[\"Mod-Delete\"],\n \"Ctrl-a\": selectTextblockStart,\n \"Ctrl-e\": selectTextblockEnd\n};\nfor (let key in pcBaseKeymap)\n macBaseKeymap[key] = pcBaseKeymap[key];\nconst mac = typeof navigator != \"undefined\" ? /Mac|iP(hone|[oa]d)/.test(navigator.platform)\n // @ts-ignore\n : typeof os != \"undefined\" && os.platform ? os.platform() == \"darwin\" : false;\n/**\nDepending on the detected platform, this will hold\n[`pcBasekeymap`](https://prosemirror.net/docs/ref/#commands.pcBaseKeymap) or\n[`macBaseKeymap`](https://prosemirror.net/docs/ref/#commands.macBaseKeymap).\n*/\nconst baseKeymap = mac ? macBaseKeymap : pcBaseKeymap;\n\nexport { autoJoin, baseKeymap, chainCommands, createParagraphNear, deleteSelection, exitCode, joinBackward, joinDown, joinForward, joinTextblockBackward, joinTextblockForward, joinUp, lift, liftEmptyBlock, macBaseKeymap, newlineInCode, pcBaseKeymap, selectAll, selectNodeBackward, selectNodeForward, selectParentNode, selectTextblockEnd, selectTextblockStart, setBlockType, splitBlock, splitBlockAs, splitBlockKeepMarks, toggleMark, wrapIn };\n","var GOOD_LEAF_SIZE = 200;\n\n// :: class A rope sequence is a persistent sequence data structure\n// that supports appending, prepending, and slicing without doing a\n// full copy. It is represented as a mostly-balanced tree.\nvar RopeSequence = function RopeSequence () {};\n\nRopeSequence.prototype.append = function append (other) {\n if (!other.length) { return this }\n other = RopeSequence.from(other);\n\n return (!this.length && other) ||\n (other.length < GOOD_LEAF_SIZE && this.leafAppend(other)) ||\n (this.length < GOOD_LEAF_SIZE && other.leafPrepend(this)) ||\n this.appendInner(other)\n};\n\n// :: (union<[T], RopeSequence>) → RopeSequence\n// Prepend an array or other rope to this one, returning a new rope.\nRopeSequence.prototype.prepend = function prepend (other) {\n if (!other.length) { return this }\n return RopeSequence.from(other).append(this)\n};\n\nRopeSequence.prototype.appendInner = function appendInner (other) {\n return new Append(this, other)\n};\n\n// :: (?number, ?number) → RopeSequence\n// Create a rope repesenting a sub-sequence of this rope.\nRopeSequence.prototype.slice = function slice (from, to) {\n if ( from === void 0 ) from = 0;\n if ( to === void 0 ) to = this.length;\n\n if (from >= to) { return RopeSequence.empty }\n return this.sliceInner(Math.max(0, from), Math.min(this.length, to))\n};\n\n// :: (number) → T\n// Retrieve the element at the given position from this rope.\nRopeSequence.prototype.get = function get (i) {\n if (i < 0 || i >= this.length) { return undefined }\n return this.getInner(i)\n};\n\n// :: ((element: T, index: number) → ?bool, ?number, ?number)\n// Call the given function for each element between the given\n// indices. This tends to be more efficient than looping over the\n// indices and calling `get`, because it doesn't have to descend the\n// tree for every element.\nRopeSequence.prototype.forEach = function forEach (f, from, to) {\n if ( from === void 0 ) from = 0;\n if ( to === void 0 ) to = this.length;\n\n if (from <= to)\n { this.forEachInner(f, from, to, 0); }\n else\n { this.forEachInvertedInner(f, from, to, 0); }\n};\n\n// :: ((element: T, index: number) → U, ?number, ?number) → [U]\n// Map the given functions over the elements of the rope, producing\n// a flat array.\nRopeSequence.prototype.map = function map (f, from, to) {\n if ( from === void 0 ) from = 0;\n if ( to === void 0 ) to = this.length;\n\n var result = [];\n this.forEach(function (elt, i) { return result.push(f(elt, i)); }, from, to);\n return result\n};\n\n// :: (?union<[T], RopeSequence>) → RopeSequence\n// Create a rope representing the given array, or return the rope\n// itself if a rope was given.\nRopeSequence.from = function from (values) {\n if (values instanceof RopeSequence) { return values }\n return values && values.length ? new Leaf(values) : RopeSequence.empty\n};\n\nvar Leaf = /*@__PURE__*/(function (RopeSequence) {\n function Leaf(values) {\n RopeSequence.call(this);\n this.values = values;\n }\n\n if ( RopeSequence ) Leaf.__proto__ = RopeSequence;\n Leaf.prototype = Object.create( RopeSequence && RopeSequence.prototype );\n Leaf.prototype.constructor = Leaf;\n\n var prototypeAccessors = { length: { configurable: true },depth: { configurable: true } };\n\n Leaf.prototype.flatten = function flatten () {\n return this.values\n };\n\n Leaf.prototype.sliceInner = function sliceInner (from, to) {\n if (from == 0 && to == this.length) { return this }\n return new Leaf(this.values.slice(from, to))\n };\n\n Leaf.prototype.getInner = function getInner (i) {\n return this.values[i]\n };\n\n Leaf.prototype.forEachInner = function forEachInner (f, from, to, start) {\n for (var i = from; i < to; i++)\n { if (f(this.values[i], start + i) === false) { return false } }\n };\n\n Leaf.prototype.forEachInvertedInner = function forEachInvertedInner (f, from, to, start) {\n for (var i = from - 1; i >= to; i--)\n { if (f(this.values[i], start + i) === false) { return false } }\n };\n\n Leaf.prototype.leafAppend = function leafAppend (other) {\n if (this.length + other.length <= GOOD_LEAF_SIZE)\n { return new Leaf(this.values.concat(other.flatten())) }\n };\n\n Leaf.prototype.leafPrepend = function leafPrepend (other) {\n if (this.length + other.length <= GOOD_LEAF_SIZE)\n { return new Leaf(other.flatten().concat(this.values)) }\n };\n\n prototypeAccessors.length.get = function () { return this.values.length };\n\n prototypeAccessors.depth.get = function () { return 0 };\n\n Object.defineProperties( Leaf.prototype, prototypeAccessors );\n\n return Leaf;\n}(RopeSequence));\n\n// :: RopeSequence\n// The empty rope sequence.\nRopeSequence.empty = new Leaf([]);\n\nvar Append = /*@__PURE__*/(function (RopeSequence) {\n function Append(left, right) {\n RopeSequence.call(this);\n this.left = left;\n this.right = right;\n this.length = left.length + right.length;\n this.depth = Math.max(left.depth, right.depth) + 1;\n }\n\n if ( RopeSequence ) Append.__proto__ = RopeSequence;\n Append.prototype = Object.create( RopeSequence && RopeSequence.prototype );\n Append.prototype.constructor = Append;\n\n Append.prototype.flatten = function flatten () {\n return this.left.flatten().concat(this.right.flatten())\n };\n\n Append.prototype.getInner = function getInner (i) {\n return i < this.left.length ? this.left.get(i) : this.right.get(i - this.left.length)\n };\n\n Append.prototype.forEachInner = function forEachInner (f, from, to, start) {\n var leftLen = this.left.length;\n if (from < leftLen &&\n this.left.forEachInner(f, from, Math.min(to, leftLen), start) === false)\n { return false }\n if (to > leftLen &&\n this.right.forEachInner(f, Math.max(from - leftLen, 0), Math.min(this.length, to) - leftLen, start + leftLen) === false)\n { return false }\n };\n\n Append.prototype.forEachInvertedInner = function forEachInvertedInner (f, from, to, start) {\n var leftLen = this.left.length;\n if (from > leftLen &&\n this.right.forEachInvertedInner(f, from - leftLen, Math.max(to, leftLen) - leftLen, start + leftLen) === false)\n { return false }\n if (to < leftLen &&\n this.left.forEachInvertedInner(f, Math.min(from, leftLen), to, start) === false)\n { return false }\n };\n\n Append.prototype.sliceInner = function sliceInner (from, to) {\n if (from == 0 && to == this.length) { return this }\n var leftLen = this.left.length;\n if (to <= leftLen) { return this.left.slice(from, to) }\n if (from >= leftLen) { return this.right.slice(from - leftLen, to - leftLen) }\n return this.left.slice(from, leftLen).append(this.right.slice(0, to - leftLen))\n };\n\n Append.prototype.leafAppend = function leafAppend (other) {\n var inner = this.right.leafAppend(other);\n if (inner) { return new Append(this.left, inner) }\n };\n\n Append.prototype.leafPrepend = function leafPrepend (other) {\n var inner = this.left.leafPrepend(other);\n if (inner) { return new Append(inner, this.right) }\n };\n\n Append.prototype.appendInner = function appendInner (other) {\n if (this.left.depth >= Math.max(this.right.depth, other.depth) + 1)\n { return new Append(this.left, new Append(this.right, other)) }\n return new Append(this, other)\n };\n\n return Append;\n}(RopeSequence));\n\nexport default RopeSequence;\n","import RopeSequence from 'rope-sequence';\nimport { Mapping } from 'prosemirror-transform';\nimport { PluginKey, Plugin } from 'prosemirror-state';\n\n// ProseMirror's history isn't simply a way to roll back to a previous\n// state, because ProseMirror supports applying changes without adding\n// them to the history (for example during collaboration).\n//\n// To this end, each 'Branch' (one for the undo history and one for\n// the redo history) keeps an array of 'Items', which can optionally\n// hold a step (an actual undoable change), and always hold a position\n// map (which is needed to move changes below them to apply to the\n// current document).\n//\n// An item that has both a step and a selection bookmark is the start\n// of an 'event' — a group of changes that will be undone or redone at\n// once. (It stores only the bookmark, since that way we don't have to\n// provide a document until the selection is actually applied, which\n// is useful when compressing.)\n// Used to schedule history compression\nconst max_empty_items = 500;\nclass Branch {\n constructor(items, eventCount) {\n this.items = items;\n this.eventCount = eventCount;\n }\n // Pop the latest event off the branch's history and apply it\n // to a document transform.\n popEvent(state, preserveItems) {\n if (this.eventCount == 0)\n return null;\n let end = this.items.length;\n for (;; end--) {\n let next = this.items.get(end - 1);\n if (next.selection) {\n --end;\n break;\n }\n }\n let remap, mapFrom;\n if (preserveItems) {\n remap = this.remapping(end, this.items.length);\n mapFrom = remap.maps.length;\n }\n let transform = state.tr;\n let selection, remaining;\n let addAfter = [], addBefore = [];\n this.items.forEach((item, i) => {\n if (!item.step) {\n if (!remap) {\n remap = this.remapping(end, i + 1);\n mapFrom = remap.maps.length;\n }\n mapFrom--;\n addBefore.push(item);\n return;\n }\n if (remap) {\n addBefore.push(new Item(item.map));\n let step = item.step.map(remap.slice(mapFrom)), map;\n if (step && transform.maybeStep(step).doc) {\n map = transform.mapping.maps[transform.mapping.maps.length - 1];\n addAfter.push(new Item(map, undefined, undefined, addAfter.length + addBefore.length));\n }\n mapFrom--;\n if (map)\n remap.appendMap(map, mapFrom);\n }\n else {\n transform.maybeStep(item.step);\n }\n if (item.selection) {\n selection = remap ? item.selection.map(remap.slice(mapFrom)) : item.selection;\n remaining = new Branch(this.items.slice(0, end).append(addBefore.reverse().concat(addAfter)), this.eventCount - 1);\n return false;\n }\n }, this.items.length, 0);\n return { remaining: remaining, transform, selection: selection };\n }\n // Create a new branch with the given transform added.\n addTransform(transform, selection, histOptions, preserveItems) {\n let newItems = [], eventCount = this.eventCount;\n let oldItems = this.items, lastItem = !preserveItems && oldItems.length ? oldItems.get(oldItems.length - 1) : null;\n for (let i = 0; i < transform.steps.length; i++) {\n let step = transform.steps[i].invert(transform.docs[i]);\n let item = new Item(transform.mapping.maps[i], step, selection), merged;\n if (merged = lastItem && lastItem.merge(item)) {\n item = merged;\n if (i)\n newItems.pop();\n else\n oldItems = oldItems.slice(0, oldItems.length - 1);\n }\n newItems.push(item);\n if (selection) {\n eventCount++;\n selection = undefined;\n }\n if (!preserveItems)\n lastItem = item;\n }\n let overflow = eventCount - histOptions.depth;\n if (overflow > DEPTH_OVERFLOW) {\n oldItems = cutOffEvents(oldItems, overflow);\n eventCount -= overflow;\n }\n return new Branch(oldItems.append(newItems), eventCount);\n }\n remapping(from, to) {\n let maps = new Mapping;\n this.items.forEach((item, i) => {\n let mirrorPos = item.mirrorOffset != null && i - item.mirrorOffset >= from\n ? maps.maps.length - item.mirrorOffset : undefined;\n maps.appendMap(item.map, mirrorPos);\n }, from, to);\n return maps;\n }\n addMaps(array) {\n if (this.eventCount == 0)\n return this;\n return new Branch(this.items.append(array.map(map => new Item(map))), this.eventCount);\n }\n // When the collab module receives remote changes, the history has\n // to know about those, so that it can adjust the steps that were\n // rebased on top of the remote changes, and include the position\n // maps for the remote changes in its array of items.\n rebased(rebasedTransform, rebasedCount) {\n if (!this.eventCount)\n return this;\n let rebasedItems = [], start = Math.max(0, this.items.length - rebasedCount);\n let mapping = rebasedTransform.mapping;\n let newUntil = rebasedTransform.steps.length;\n let eventCount = this.eventCount;\n this.items.forEach(item => { if (item.selection)\n eventCount--; }, start);\n let iRebased = rebasedCount;\n this.items.forEach(item => {\n let pos = mapping.getMirror(--iRebased);\n if (pos == null)\n return;\n newUntil = Math.min(newUntil, pos);\n let map = mapping.maps[pos];\n if (item.step) {\n let step = rebasedTransform.steps[pos].invert(rebasedTransform.docs[pos]);\n let selection = item.selection && item.selection.map(mapping.slice(iRebased + 1, pos));\n if (selection)\n eventCount++;\n rebasedItems.push(new Item(map, step, selection));\n }\n else {\n rebasedItems.push(new Item(map));\n }\n }, start);\n let newMaps = [];\n for (let i = rebasedCount; i < newUntil; i++)\n newMaps.push(new Item(mapping.maps[i]));\n let items = this.items.slice(0, start).append(newMaps).append(rebasedItems);\n let branch = new Branch(items, eventCount);\n if (branch.emptyItemCount() > max_empty_items)\n branch = branch.compress(this.items.length - rebasedItems.length);\n return branch;\n }\n emptyItemCount() {\n let count = 0;\n this.items.forEach(item => { if (!item.step)\n count++; });\n return count;\n }\n // Compressing a branch means rewriting it to push the air (map-only\n // items) out. During collaboration, these naturally accumulate\n // because each remote change adds one. The `upto` argument is used\n // to ensure that only the items below a given level are compressed,\n // because `rebased` relies on a clean, untouched set of items in\n // order to associate old items with rebased steps.\n compress(upto = this.items.length) {\n let remap = this.remapping(0, upto), mapFrom = remap.maps.length;\n let items = [], events = 0;\n this.items.forEach((item, i) => {\n if (i >= upto) {\n items.push(item);\n if (item.selection)\n events++;\n }\n else if (item.step) {\n let step = item.step.map(remap.slice(mapFrom)), map = step && step.getMap();\n mapFrom--;\n if (map)\n remap.appendMap(map, mapFrom);\n if (step) {\n let selection = item.selection && item.selection.map(remap.slice(mapFrom));\n if (selection)\n events++;\n let newItem = new Item(map.invert(), step, selection), merged, last = items.length - 1;\n if (merged = items.length && items[last].merge(newItem))\n items[last] = merged;\n else\n items.push(newItem);\n }\n }\n else if (item.map) {\n mapFrom--;\n }\n }, this.items.length, 0);\n return new Branch(RopeSequence.from(items.reverse()), events);\n }\n}\nBranch.empty = new Branch(RopeSequence.empty, 0);\nfunction cutOffEvents(items, n) {\n let cutPoint;\n items.forEach((item, i) => {\n if (item.selection && (n-- == 0)) {\n cutPoint = i;\n return false;\n }\n });\n return items.slice(cutPoint);\n}\nclass Item {\n constructor(\n // The (forward) step map for this item.\n map, \n // The inverted step\n step, \n // If this is non-null, this item is the start of a group, and\n // this selection is the starting selection for the group (the one\n // that was active before the first step was applied)\n selection, \n // If this item is the inverse of a previous mapping on the stack,\n // this points at the inverse's offset\n mirrorOffset) {\n this.map = map;\n this.step = step;\n this.selection = selection;\n this.mirrorOffset = mirrorOffset;\n }\n merge(other) {\n if (this.step && other.step && !other.selection) {\n let step = other.step.merge(this.step);\n if (step)\n return new Item(step.getMap().invert(), step, this.selection);\n }\n }\n}\n// The value of the state field that tracks undo/redo history for that\n// state. Will be stored in the plugin state when the history plugin\n// is active.\nclass HistoryState {\n constructor(done, undone, prevRanges, prevTime, prevComposition) {\n this.done = done;\n this.undone = undone;\n this.prevRanges = prevRanges;\n this.prevTime = prevTime;\n this.prevComposition = prevComposition;\n }\n}\nconst DEPTH_OVERFLOW = 20;\n// Record a transformation in undo history.\nfunction applyTransaction(history, state, tr, options) {\n let historyTr = tr.getMeta(historyKey), rebased;\n if (historyTr)\n return historyTr.historyState;\n if (tr.getMeta(closeHistoryKey))\n history = new HistoryState(history.done, history.undone, null, 0, -1);\n let appended = tr.getMeta(\"appendedTransaction\");\n if (tr.steps.length == 0) {\n return history;\n }\n else if (appended && appended.getMeta(historyKey)) {\n if (appended.getMeta(historyKey).redo)\n return new HistoryState(history.done.addTransform(tr, undefined, options, mustPreserveItems(state)), history.undone, rangesFor(tr.mapping.maps), history.prevTime, history.prevComposition);\n else\n return new HistoryState(history.done, history.undone.addTransform(tr, undefined, options, mustPreserveItems(state)), null, history.prevTime, history.prevComposition);\n }\n else if (tr.getMeta(\"addToHistory\") !== false && !(appended && appended.getMeta(\"addToHistory\") === false)) {\n // Group transforms that occur in quick succession into one event.\n let composition = tr.getMeta(\"composition\");\n let newGroup = history.prevTime == 0 ||\n (!appended && history.prevComposition != composition &&\n (history.prevTime < (tr.time || 0) - options.newGroupDelay || !isAdjacentTo(tr, history.prevRanges)));\n let prevRanges = appended ? mapRanges(history.prevRanges, tr.mapping) : rangesFor(tr.mapping.maps);\n return new HistoryState(history.done.addTransform(tr, newGroup ? state.selection.getBookmark() : undefined, options, mustPreserveItems(state)), Branch.empty, prevRanges, tr.time, composition == null ? history.prevComposition : composition);\n }\n else if (rebased = tr.getMeta(\"rebased\")) {\n // Used by the collab module to tell the history that some of its\n // content has been rebased.\n return new HistoryState(history.done.rebased(tr, rebased), history.undone.rebased(tr, rebased), mapRanges(history.prevRanges, tr.mapping), history.prevTime, history.prevComposition);\n }\n else {\n return new HistoryState(history.done.addMaps(tr.mapping.maps), history.undone.addMaps(tr.mapping.maps), mapRanges(history.prevRanges, tr.mapping), history.prevTime, history.prevComposition);\n }\n}\nfunction isAdjacentTo(transform, prevRanges) {\n if (!prevRanges)\n return false;\n if (!transform.docChanged)\n return true;\n let adjacent = false;\n transform.mapping.maps[0].forEach((start, end) => {\n for (let i = 0; i < prevRanges.length; i += 2)\n if (start <= prevRanges[i + 1] && end >= prevRanges[i])\n adjacent = true;\n });\n return adjacent;\n}\nfunction rangesFor(maps) {\n let result = [];\n for (let i = maps.length - 1; i >= 0 && result.length == 0; i--)\n maps[i].forEach((_from, _to, from, to) => result.push(from, to));\n return result;\n}\nfunction mapRanges(ranges, mapping) {\n if (!ranges)\n return null;\n let result = [];\n for (let i = 0; i < ranges.length; i += 2) {\n let from = mapping.map(ranges[i], 1), to = mapping.map(ranges[i + 1], -1);\n if (from <= to)\n result.push(from, to);\n }\n return result;\n}\n// Apply the latest event from one branch to the document and shift the event\n// onto the other branch.\nfunction histTransaction(history, state, redo) {\n let preserveItems = mustPreserveItems(state);\n let histOptions = historyKey.get(state).spec.config;\n let pop = (redo ? history.undone : history.done).popEvent(state, preserveItems);\n if (!pop)\n return null;\n let selection = pop.selection.resolve(pop.transform.doc);\n let added = (redo ? history.done : history.undone).addTransform(pop.transform, state.selection.getBookmark(), histOptions, preserveItems);\n let newHist = new HistoryState(redo ? added : pop.remaining, redo ? pop.remaining : added, null, 0, -1);\n return pop.transform.setSelection(selection).setMeta(historyKey, { redo, historyState: newHist });\n}\nlet cachedPreserveItems = false, cachedPreserveItemsPlugins = null;\n// Check whether any plugin in the given state has a\n// `historyPreserveItems` property in its spec, in which case we must\n// preserve steps exactly as they came in, so that they can be\n// rebased.\nfunction mustPreserveItems(state) {\n let plugins = state.plugins;\n if (cachedPreserveItemsPlugins != plugins) {\n cachedPreserveItems = false;\n cachedPreserveItemsPlugins = plugins;\n for (let i = 0; i < plugins.length; i++)\n if (plugins[i].spec.historyPreserveItems) {\n cachedPreserveItems = true;\n break;\n }\n }\n return cachedPreserveItems;\n}\n/**\nSet a flag on the given transaction that will prevent further steps\nfrom being appended to an existing history event (so that they\nrequire a separate undo command to undo).\n*/\nfunction closeHistory(tr) {\n return tr.setMeta(closeHistoryKey, true);\n}\nconst historyKey = new PluginKey(\"history\");\nconst closeHistoryKey = new PluginKey(\"closeHistory\");\n/**\nReturns a plugin that enables the undo history for an editor. The\nplugin will track undo and redo stacks, which can be used with the\n[`undo`](https://prosemirror.net/docs/ref/#history.undo) and [`redo`](https://prosemirror.net/docs/ref/#history.redo) commands.\n\nYou can set an `\"addToHistory\"` [metadata\nproperty](https://prosemirror.net/docs/ref/#state.Transaction.setMeta) of `false` on a transaction\nto prevent it from being rolled back by undo.\n*/\nfunction history(config = {}) {\n config = { depth: config.depth || 100,\n newGroupDelay: config.newGroupDelay || 500 };\n return new Plugin({\n key: historyKey,\n state: {\n init() {\n return new HistoryState(Branch.empty, Branch.empty, null, 0, -1);\n },\n apply(tr, hist, state) {\n return applyTransaction(hist, state, tr, config);\n }\n },\n config,\n props: {\n handleDOMEvents: {\n beforeinput(view, e) {\n let inputType = e.inputType;\n let command = inputType == \"historyUndo\" ? undo : inputType == \"historyRedo\" ? redo : null;\n if (!command)\n return false;\n e.preventDefault();\n return command(view.state, view.dispatch);\n }\n }\n }\n });\n}\nfunction buildCommand(redo, scroll) {\n return (state, dispatch) => {\n let hist = historyKey.getState(state);\n if (!hist || (redo ? hist.undone : hist.done).eventCount == 0)\n return false;\n if (dispatch) {\n let tr = histTransaction(hist, state, redo);\n if (tr)\n dispatch(scroll ? tr.scrollIntoView() : tr);\n }\n return true;\n };\n}\n/**\nA command function that undoes the last change, if any.\n*/\nconst undo = buildCommand(false, true);\n/**\nA command function that redoes the last undone change, if any.\n*/\nconst redo = buildCommand(true, true);\n/**\nA command function that undoes the last change. Don't scroll the\nselection into view.\n*/\nconst undoNoScroll = buildCommand(false, false);\n/**\nA command function that redoes the last undone change. Don't\nscroll the selection into view.\n*/\nconst redoNoScroll = buildCommand(true, false);\n/**\nThe amount of undoable events available in a given state.\n*/\nfunction undoDepth(state) {\n let hist = historyKey.getState(state);\n return hist ? hist.done.eventCount : 0;\n}\n/**\nThe amount of redoable events available in a given editor state.\n*/\nfunction redoDepth(state) {\n let hist = historyKey.getState(state);\n return hist ? hist.undone.eventCount : 0;\n}\n\nexport { closeHistory, history, redo, redoDepth, redoNoScroll, undo, undoDepth, undoNoScroll };\n","export default function crelt() {\n var elt = arguments[0]\n if (typeof elt == \"string\") elt = document.createElement(elt)\n var i = 1, next = arguments[1]\n if (next && typeof next == \"object\" && next.nodeType == null && !Array.isArray(next)) {\n for (var name in next) if (Object.prototype.hasOwnProperty.call(next, name)) {\n var value = next[name]\n if (typeof value == \"string\") elt.setAttribute(name, value)\n else if (value != null) elt[name] = value\n }\n i++\n }\n for (; i < arguments.length; i++) add(elt, arguments[i])\n return elt\n}\n\nfunction add(elt, child) {\n if (typeof child == \"string\") {\n elt.appendChild(document.createTextNode(child))\n } else if (child == null) {\n } else if (child.nodeType != null) {\n elt.appendChild(child)\n } else if (Array.isArray(child)) {\n for (var i = 0; i < child.length; i++) add(elt, child[i])\n } else {\n throw new RangeError(\"Unsupported child node: \" + child)\n }\n}\n","import crel from 'crelt';\nimport { joinUp, lift, selectParentNode, setBlockType, wrapIn } from 'prosemirror-commands';\nimport { undo, redo } from 'prosemirror-history';\nimport { Plugin } from 'prosemirror-state';\n\nconst SVG = \"http://www.w3.org/2000/svg\";\nconst XLINK = \"http://www.w3.org/1999/xlink\";\nconst prefix$2 = \"ProseMirror-icon\";\nfunction hashPath(path) {\n let hash = 0;\n for (let i = 0; i < path.length; i++)\n hash = (((hash << 5) - hash) + path.charCodeAt(i)) | 0;\n return hash;\n}\nfunction getIcon(root, icon) {\n let doc = (root.nodeType == 9 ? root : root.ownerDocument) || document;\n let node = doc.createElement(\"div\");\n node.className = prefix$2;\n if (icon.path) {\n let { path, width, height } = icon;\n let name = \"pm-icon-\" + hashPath(path).toString(16);\n if (!doc.getElementById(name))\n buildSVG(root, name, icon);\n let svg = node.appendChild(doc.createElementNS(SVG, \"svg\"));\n svg.style.width = (width / height) + \"em\";\n let use = svg.appendChild(doc.createElementNS(SVG, \"use\"));\n use.setAttributeNS(XLINK, \"href\", /([^#]*)/.exec(doc.location.toString())[1] + \"#\" + name);\n }\n else if (icon.dom) {\n node.appendChild(icon.dom.cloneNode(true));\n }\n else {\n let { text, css } = icon;\n node.appendChild(doc.createElement(\"span\")).textContent = text || '';\n if (css)\n node.firstChild.style.cssText = css;\n }\n return node;\n}\nfunction buildSVG(root, name, data) {\n let [doc, top] = root.nodeType == 9 ? [root, root.body] : [root.ownerDocument || document, root];\n let collection = doc.getElementById(prefix$2 + \"-collection\");\n if (!collection) {\n collection = doc.createElementNS(SVG, \"svg\");\n collection.id = prefix$2 + \"-collection\";\n collection.style.display = \"none\";\n top.insertBefore(collection, top.firstChild);\n }\n let sym = doc.createElementNS(SVG, \"symbol\");\n sym.id = name;\n sym.setAttribute(\"viewBox\", \"0 0 \" + data.width + \" \" + data.height);\n let path = sym.appendChild(doc.createElementNS(SVG, \"path\"));\n path.setAttribute(\"d\", data.path);\n collection.appendChild(sym);\n}\n\nconst prefix$1 = \"ProseMirror-menu\";\n/**\nAn icon or label that, when clicked, executes a command.\n*/\nclass MenuItem {\n /**\n Create a menu item.\n */\n constructor(\n /**\n The spec used to create this item.\n */\n spec) {\n this.spec = spec;\n }\n /**\n Renders the icon according to its [display\n spec](https://prosemirror.net/docs/ref/#menu.MenuItemSpec.display), and adds an event handler which\n executes the command when the representation is clicked.\n */\n render(view) {\n let spec = this.spec;\n let dom = spec.render ? spec.render(view)\n : spec.icon ? getIcon(view.root, spec.icon)\n : spec.label ? crel(\"div\", null, translate(view, spec.label))\n : null;\n if (!dom)\n throw new RangeError(\"MenuItem without icon or label property\");\n if (spec.title) {\n const title = (typeof spec.title === \"function\" ? spec.title(view.state) : spec.title);\n dom.setAttribute(\"title\", translate(view, title));\n }\n if (spec.class)\n dom.classList.add(spec.class);\n if (spec.css)\n dom.style.cssText += spec.css;\n dom.addEventListener(\"mousedown\", e => {\n e.preventDefault();\n if (!dom.classList.contains(prefix$1 + \"-disabled\"))\n spec.run(view.state, view.dispatch, view, e);\n });\n function update(state) {\n if (spec.select) {\n let selected = spec.select(state);\n dom.style.display = selected ? \"\" : \"none\";\n if (!selected)\n return false;\n }\n let enabled = true;\n if (spec.enable) {\n enabled = spec.enable(state) || false;\n setClass(dom, prefix$1 + \"-disabled\", !enabled);\n }\n if (spec.active) {\n let active = enabled && spec.active(state) || false;\n setClass(dom, prefix$1 + \"-active\", active);\n }\n return true;\n }\n return { dom, update };\n }\n}\nfunction translate(view, text) {\n return view._props.translate ? view._props.translate(text) : text;\n}\nlet lastMenuEvent = { time: 0, node: null };\nfunction markMenuEvent(e) {\n lastMenuEvent.time = Date.now();\n lastMenuEvent.node = e.target;\n}\nfunction isMenuEvent(wrapper) {\n return Date.now() - 100 < lastMenuEvent.time &&\n lastMenuEvent.node && wrapper.contains(lastMenuEvent.node);\n}\n/**\nA drop-down menu, displayed as a label with a downwards-pointing\ntriangle to the right of it.\n*/\nclass Dropdown {\n /**\n Create a dropdown wrapping the elements.\n */\n constructor(content, \n /**\n @internal\n */\n options = {}) {\n this.options = options;\n this.options = options || {};\n this.content = Array.isArray(content) ? content : [content];\n }\n /**\n Render the dropdown menu and sub-items.\n */\n render(view) {\n let content = renderDropdownItems(this.content, view);\n let win = view.dom.ownerDocument.defaultView || window;\n let label = crel(\"div\", { class: prefix$1 + \"-dropdown \" + (this.options.class || \"\"),\n style: this.options.css }, translate(view, this.options.label || \"\"));\n if (this.options.title)\n label.setAttribute(\"title\", translate(view, this.options.title));\n let wrap = crel(\"div\", { class: prefix$1 + \"-dropdown-wrap\" }, label);\n let open = null;\n let listeningOnClose = null;\n let close = () => {\n if (open && open.close()) {\n open = null;\n win.removeEventListener(\"mousedown\", listeningOnClose);\n }\n };\n label.addEventListener(\"mousedown\", e => {\n e.preventDefault();\n markMenuEvent(e);\n if (open) {\n close();\n }\n else {\n open = this.expand(wrap, content.dom);\n win.addEventListener(\"mousedown\", listeningOnClose = () => {\n if (!isMenuEvent(wrap))\n close();\n });\n }\n });\n function update(state) {\n let inner = content.update(state);\n wrap.style.display = inner ? \"\" : \"none\";\n return inner;\n }\n return { dom: wrap, update };\n }\n /**\n @internal\n */\n expand(dom, items) {\n let menuDOM = crel(\"div\", { class: prefix$1 + \"-dropdown-menu \" + (this.options.class || \"\") }, items);\n let done = false;\n function close() {\n if (done)\n return false;\n done = true;\n dom.removeChild(menuDOM);\n return true;\n }\n dom.appendChild(menuDOM);\n return { close, node: menuDOM };\n }\n}\nfunction renderDropdownItems(items, view) {\n let rendered = [], updates = [];\n for (let i = 0; i < items.length; i++) {\n let { dom, update } = items[i].render(view);\n rendered.push(crel(\"div\", { class: prefix$1 + \"-dropdown-item\" }, dom));\n updates.push(update);\n }\n return { dom: rendered, update: combineUpdates(updates, rendered) };\n}\nfunction combineUpdates(updates, nodes) {\n return (state) => {\n let something = false;\n for (let i = 0; i < updates.length; i++) {\n let up = updates[i](state);\n nodes[i].style.display = up ? \"\" : \"none\";\n if (up)\n something = true;\n }\n return something;\n };\n}\n/**\nRepresents a submenu wrapping a group of elements that start\nhidden and expand to the right when hovered over or tapped.\n*/\nclass DropdownSubmenu {\n /**\n Creates a submenu for the given group of menu elements. The\n following options are recognized:\n */\n constructor(content, \n /**\n @internal\n */\n options = {}) {\n this.options = options;\n this.content = Array.isArray(content) ? content : [content];\n }\n /**\n Renders the submenu.\n */\n render(view) {\n let items = renderDropdownItems(this.content, view);\n let win = view.dom.ownerDocument.defaultView || window;\n let label = crel(\"div\", { class: prefix$1 + \"-submenu-label\" }, translate(view, this.options.label || \"\"));\n let wrap = crel(\"div\", { class: prefix$1 + \"-submenu-wrap\" }, label, crel(\"div\", { class: prefix$1 + \"-submenu\" }, items.dom));\n let listeningOnClose = null;\n label.addEventListener(\"mousedown\", e => {\n e.preventDefault();\n markMenuEvent(e);\n setClass(wrap, prefix$1 + \"-submenu-wrap-active\", false);\n if (!listeningOnClose)\n win.addEventListener(\"mousedown\", listeningOnClose = () => {\n if (!isMenuEvent(wrap)) {\n wrap.classList.remove(prefix$1 + \"-submenu-wrap-active\");\n win.removeEventListener(\"mousedown\", listeningOnClose);\n listeningOnClose = null;\n }\n });\n });\n function update(state) {\n let inner = items.update(state);\n wrap.style.display = inner ? \"\" : \"none\";\n return inner;\n }\n return { dom: wrap, update };\n }\n}\n/**\nRender the given, possibly nested, array of menu elements into a\ndocument fragment, placing separators between them (and ensuring no\nsuperfluous separators appear when some of the groups turn out to\nbe empty).\n*/\nfunction renderGrouped(view, content) {\n let result = document.createDocumentFragment();\n let updates = [], separators = [];\n for (let i = 0; i < content.length; i++) {\n let items = content[i], localUpdates = [], localNodes = [];\n for (let j = 0; j < items.length; j++) {\n let { dom, update } = items[j].render(view);\n let span = crel(\"span\", { class: prefix$1 + \"item\" }, dom);\n result.appendChild(span);\n localNodes.push(span);\n localUpdates.push(update);\n }\n if (localUpdates.length) {\n updates.push(combineUpdates(localUpdates, localNodes));\n if (i < content.length - 1)\n separators.push(result.appendChild(separator()));\n }\n }\n function update(state) {\n let something = false, needSep = false;\n for (let i = 0; i < updates.length; i++) {\n let hasContent = updates[i](state);\n if (i)\n separators[i - 1].style.display = needSep && hasContent ? \"\" : \"none\";\n needSep = hasContent;\n if (hasContent)\n something = true;\n }\n return something;\n }\n return { dom: result, update };\n}\nfunction separator() {\n return crel(\"span\", { class: prefix$1 + \"separator\" });\n}\n/**\nA set of basic editor-related icons. Contains the properties\n`join`, `lift`, `selectParentNode`, `undo`, `redo`, `strong`, `em`,\n`code`, `link`, `bulletList`, `orderedList`, and `blockquote`, each\nholding an object that can be used as the `icon` option to\n`MenuItem`.\n*/\nconst icons = {\n join: {\n width: 800, height: 900,\n path: \"M0 75h800v125h-800z M0 825h800v-125h-800z M250 400h100v-100h100v100h100v100h-100v100h-100v-100h-100z\"\n },\n lift: {\n width: 1024, height: 1024,\n path: \"M219 310v329q0 7-5 12t-12 5q-8 0-13-5l-164-164q-5-5-5-13t5-13l164-164q5-5 13-5 7 0 12 5t5 12zM1024 749v109q0 7-5 12t-12 5h-987q-7 0-12-5t-5-12v-109q0-7 5-12t12-5h987q7 0 12 5t5 12zM1024 530v109q0 7-5 12t-12 5h-621q-7 0-12-5t-5-12v-109q0-7 5-12t12-5h621q7 0 12 5t5 12zM1024 310v109q0 7-5 12t-12 5h-621q-7 0-12-5t-5-12v-109q0-7 5-12t12-5h621q7 0 12 5t5 12zM1024 91v109q0 7-5 12t-12 5h-987q-7 0-12-5t-5-12v-109q0-7 5-12t12-5h987q7 0 12 5t5 12z\"\n },\n selectParentNode: { text: \"\\u2b1a\", css: \"font-weight: bold\" },\n undo: {\n width: 1024, height: 1024,\n path: \"M761 1024c113-206 132-520-313-509v253l-384-384 384-384v248c534-13 594 472 313 775z\"\n },\n redo: {\n width: 1024, height: 1024,\n path: \"M576 248v-248l384 384-384 384v-253c-446-10-427 303-313 509-280-303-221-789 313-775z\"\n },\n strong: {\n width: 805, height: 1024,\n path: \"M317 869q42 18 80 18 214 0 214-191 0-65-23-102-15-25-35-42t-38-26-46-14-48-6-54-1q-41 0-57 5 0 30-0 90t-0 90q0 4-0 38t-0 55 2 47 6 38zM309 442q24 4 62 4 46 0 81-7t62-25 42-51 14-81q0-40-16-70t-45-46-61-24-70-8q-28 0-74 7 0 28 2 86t2 86q0 15-0 45t-0 45q0 26 0 39zM0 950l1-53q8-2 48-9t60-15q4-6 7-15t4-19 3-18 1-21 0-19v-37q0-561-12-585-2-4-12-8t-25-6-28-4-27-2-17-1l-2-47q56-1 194-6t213-5q13 0 39 0t38 0q40 0 78 7t73 24 61 40 42 59 16 78q0 29-9 54t-22 41-36 32-41 25-48 22q88 20 146 76t58 141q0 57-20 102t-53 74-78 48-93 27-100 8q-25 0-75-1t-75-1q-60 0-175 6t-132 6z\"\n },\n em: {\n width: 585, height: 1024,\n path: \"M0 949l9-48q3-1 46-12t63-21q16-20 23-57 0-4 35-165t65-310 29-169v-14q-13-7-31-10t-39-4-33-3l10-58q18 1 68 3t85 4 68 1q27 0 56-1t69-4 56-3q-2 22-10 50-17 5-58 16t-62 19q-4 10-8 24t-5 22-4 26-3 24q-15 84-50 239t-44 203q-1 5-7 33t-11 51-9 47-3 32l0 10q9 2 105 17-1 25-9 56-6 0-18 0t-18 0q-16 0-49-5t-49-5q-78-1-117-1-29 0-81 5t-69 6z\"\n },\n code: {\n width: 896, height: 1024,\n path: \"M608 192l-96 96 224 224-224 224 96 96 288-320-288-320zM288 192l-288 320 288 320 96-96-224-224 224-224-96-96z\"\n },\n link: {\n width: 951, height: 1024,\n path: \"M832 694q0-22-16-38l-118-118q-16-16-38-16-24 0-41 18 1 1 10 10t12 12 8 10 7 14 2 15q0 22-16 38t-38 16q-8 0-15-2t-14-7-10-8-12-12-10-10q-18 17-18 41 0 22 16 38l117 118q15 15 38 15 22 0 38-14l84-83q16-16 16-38zM430 292q0-22-16-38l-117-118q-16-16-38-16-22 0-38 15l-84 83q-16 16-16 38 0 22 16 38l118 118q15 15 38 15 24 0 41-17-1-1-10-10t-12-12-8-10-7-14-2-15q0-22 16-38t38-16q8 0 15 2t14 7 10 8 12 12 10 10q18-17 18-41zM941 694q0 68-48 116l-84 83q-47 47-116 47-69 0-116-48l-117-118q-47-47-47-116 0-70 50-119l-50-50q-49 50-118 50-68 0-116-48l-118-118q-48-48-48-116t48-116l84-83q47-47 116-47 69 0 116 48l117 118q47 47 47 116 0 70-50 119l50 50q49-50 118-50 68 0 116 48l118 118q48 48 48 116z\"\n },\n bulletList: {\n width: 768, height: 896,\n path: \"M0 512h128v-128h-128v128zM0 256h128v-128h-128v128zM0 768h128v-128h-128v128zM256 512h512v-128h-512v128zM256 256h512v-128h-512v128zM256 768h512v-128h-512v128z\"\n },\n orderedList: {\n width: 768, height: 896,\n path: \"M320 512h448v-128h-448v128zM320 768h448v-128h-448v128zM320 128v128h448v-128h-448zM79 384h78v-256h-36l-85 23v50l43-2v185zM189 590c0-36-12-78-96-78-33 0-64 6-83 16l1 66c21-10 42-15 67-15s32 11 32 28c0 26-30 58-110 112v50h192v-67l-91 2c49-30 87-66 87-113l1-1z\"\n },\n blockquote: {\n width: 640, height: 896,\n path: \"M0 448v256h256v-256h-128c0 0 0-128 128-128v-128c0 0-256 0-256 256zM640 320v-128c0 0-256 0-256 256v256h256v-256h-128c0 0 0-128 128-128z\"\n }\n};\n/**\nMenu item for the `joinUp` command.\n*/\nconst joinUpItem = new MenuItem({\n title: \"Join with above block\",\n run: joinUp,\n select: state => joinUp(state),\n icon: icons.join\n});\n/**\nMenu item for the `lift` command.\n*/\nconst liftItem = new MenuItem({\n title: \"Lift out of enclosing block\",\n run: lift,\n select: state => lift(state),\n icon: icons.lift\n});\n/**\nMenu item for the `selectParentNode` command.\n*/\nconst selectParentNodeItem = new MenuItem({\n title: \"Select parent node\",\n run: selectParentNode,\n select: state => selectParentNode(state),\n icon: icons.selectParentNode\n});\n/**\nMenu item for the `undo` command.\n*/\nlet undoItem = new MenuItem({\n title: \"Undo last change\",\n run: undo,\n enable: state => undo(state),\n icon: icons.undo\n});\n/**\nMenu item for the `redo` command.\n*/\nlet redoItem = new MenuItem({\n title: \"Redo last undone change\",\n run: redo,\n enable: state => redo(state),\n icon: icons.redo\n});\n/**\nBuild a menu item for wrapping the selection in a given node type.\nAdds `run` and `select` properties to the ones present in\n`options`. `options.attrs` may be an object that provides\nattributes for the wrapping node.\n*/\nfunction wrapItem(nodeType, options) {\n let passedOptions = {\n run(state, dispatch) {\n return wrapIn(nodeType, options.attrs)(state, dispatch);\n },\n select(state) {\n return wrapIn(nodeType, options.attrs)(state);\n }\n };\n for (let prop in options)\n passedOptions[prop] = options[prop];\n return new MenuItem(passedOptions);\n}\n/**\nBuild a menu item for changing the type of the textblock around the\nselection to the given type. Provides `run`, `active`, and `select`\nproperties. Others must be given in `options`. `options.attrs` may\nbe an object to provide the attributes for the textblock node.\n*/\nfunction blockTypeItem(nodeType, options) {\n let command = setBlockType(nodeType, options.attrs);\n let passedOptions = {\n run: command,\n enable(state) { return command(state); },\n active(state) {\n let { $from, to, node } = state.selection;\n if (node)\n return node.hasMarkup(nodeType, options.attrs);\n return to <= $from.end() && $from.parent.hasMarkup(nodeType, options.attrs);\n }\n };\n for (let prop in options)\n passedOptions[prop] = options[prop];\n return new MenuItem(passedOptions);\n}\n// Work around classList.toggle being broken in IE11\nfunction setClass(dom, cls, on) {\n if (on)\n dom.classList.add(cls);\n else\n dom.classList.remove(cls);\n}\n\nconst prefix = \"ProseMirror-menubar\";\nfunction isIOS() {\n if (typeof navigator == \"undefined\")\n return false;\n let agent = navigator.userAgent;\n return !/Edge\\/\\d/.test(agent) && /AppleWebKit/.test(agent) && /Mobile\\/\\w+/.test(agent);\n}\n/**\nA plugin that will place a menu bar above the editor. Note that\nthis involves wrapping the editor in an additional `
    `.\n*/\nfunction menuBar(options) {\n return new Plugin({\n view(editorView) { return new MenuBarView(editorView, options); }\n });\n}\nclass MenuBarView {\n constructor(editorView, options) {\n this.editorView = editorView;\n this.options = options;\n this.spacer = null;\n this.maxHeight = 0;\n this.widthForMaxHeight = 0;\n this.floating = false;\n this.scrollHandler = null;\n this.wrapper = crel(\"div\", { class: prefix + \"-wrapper\" });\n this.menu = this.wrapper.appendChild(crel(\"div\", { class: prefix }));\n this.menu.className = prefix;\n if (editorView.dom.parentNode)\n editorView.dom.parentNode.replaceChild(this.wrapper, editorView.dom);\n this.wrapper.appendChild(editorView.dom);\n let { dom, update } = renderGrouped(this.editorView, this.options.content);\n this.contentUpdate = update;\n this.menu.appendChild(dom);\n this.update();\n if (options.floating && !isIOS()) {\n this.updateFloat();\n let potentialScrollers = getAllWrapping(this.wrapper);\n this.scrollHandler = (e) => {\n let root = this.editorView.root;\n if (!(root.body || root).contains(this.wrapper))\n potentialScrollers.forEach(el => el.removeEventListener(\"scroll\", this.scrollHandler));\n else\n this.updateFloat(e.target.getBoundingClientRect ? e.target : undefined);\n };\n potentialScrollers.forEach(el => el.addEventListener('scroll', this.scrollHandler));\n }\n }\n update() {\n this.contentUpdate(this.editorView.state);\n if (this.floating) {\n this.updateScrollCursor();\n }\n else {\n if (this.menu.offsetWidth != this.widthForMaxHeight) {\n this.widthForMaxHeight = this.menu.offsetWidth;\n this.maxHeight = 0;\n }\n if (this.menu.offsetHeight > this.maxHeight) {\n this.maxHeight = this.menu.offsetHeight;\n this.menu.style.minHeight = this.maxHeight + \"px\";\n }\n }\n }\n updateScrollCursor() {\n let selection = this.editorView.root.getSelection();\n if (!selection.focusNode)\n return;\n let rects = selection.getRangeAt(0).getClientRects();\n let selRect = rects[selectionIsInverted(selection) ? 0 : rects.length - 1];\n if (!selRect)\n return;\n let menuRect = this.menu.getBoundingClientRect();\n if (selRect.top < menuRect.bottom && selRect.bottom > menuRect.top) {\n let scrollable = findWrappingScrollable(this.wrapper);\n if (scrollable)\n scrollable.scrollTop -= (menuRect.bottom - selRect.top);\n }\n }\n updateFloat(scrollAncestor) {\n let parent = this.wrapper, editorRect = parent.getBoundingClientRect(), top = scrollAncestor ? Math.max(0, scrollAncestor.getBoundingClientRect().top) : 0;\n if (this.floating) {\n if (editorRect.top >= top || editorRect.bottom < this.menu.offsetHeight + 10) {\n this.floating = false;\n this.menu.style.position = this.menu.style.left = this.menu.style.top = this.menu.style.width = \"\";\n this.menu.style.display = \"\";\n this.spacer.parentNode.removeChild(this.spacer);\n this.spacer = null;\n }\n else {\n let border = (parent.offsetWidth - parent.clientWidth) / 2;\n this.menu.style.left = (editorRect.left + border) + \"px\";\n this.menu.style.display = editorRect.top > (this.editorView.dom.ownerDocument.defaultView || window).innerHeight\n ? \"none\" : \"\";\n if (scrollAncestor)\n this.menu.style.top = top + \"px\";\n }\n }\n else {\n if (editorRect.top < top && editorRect.bottom >= this.menu.offsetHeight + 10) {\n this.floating = true;\n let menuRect = this.menu.getBoundingClientRect();\n this.menu.style.left = menuRect.left + \"px\";\n this.menu.style.width = menuRect.width + \"px\";\n if (scrollAncestor)\n this.menu.style.top = top + \"px\";\n this.menu.style.position = \"fixed\";\n this.spacer = crel(\"div\", { class: prefix + \"-spacer\", style: `height: ${menuRect.height}px` });\n parent.insertBefore(this.spacer, this.menu);\n }\n }\n }\n destroy() {\n if (this.wrapper.parentNode)\n this.wrapper.parentNode.replaceChild(this.editorView.dom, this.wrapper);\n }\n}\n// Not precise, but close enough\nfunction selectionIsInverted(selection) {\n if (selection.anchorNode == selection.focusNode)\n return selection.anchorOffset > selection.focusOffset;\n return selection.anchorNode.compareDocumentPosition(selection.focusNode) == Node.DOCUMENT_POSITION_FOLLOWING;\n}\nfunction findWrappingScrollable(node) {\n for (let cur = node.parentNode; cur; cur = cur.parentNode)\n if (cur.scrollHeight > cur.clientHeight)\n return cur;\n}\nfunction getAllWrapping(node) {\n let res = [node.ownerDocument.defaultView || window];\n for (let cur = node.parentNode; cur; cur = cur.parentNode)\n res.push(cur);\n return res;\n}\n\nexport { Dropdown, DropdownSubmenu, MenuItem, blockTypeItem, icons, joinUpItem, liftItem, menuBar, redoItem, renderGrouped, selectParentNodeItem, undoItem, wrapItem };\n","// menu-plugin.ts\nimport { MenuItem } from \"prosemirror-menu\";\nimport { menuBar } from \"prosemirror-menu\";\nimport { toggleMark } from \"prosemirror-commands\";\nimport { Plugin, PluginKey } from \"prosemirror-state\";\n\n\nconst menuPluginKey = new PluginKey('menuPlugin')\n// Modify the menuBar function to accept customSchema as a parameter\nexport function createMenuPlugin(customSchema: any) {\n const boldButton = new MenuItem({\n title: \"Bold\",\n run: toggleMark(customSchema.marks.bold),\n active: (state) => state.selection.$head.marks().some(mark => mark.type === customSchema.marks.bold),\n });\n\n const italicButton = new MenuItem({\n title: \"Italic\",\n run: toggleMark(customSchema.marks.italic),\n active: (state) => state.selection.$head.marks().some(mark => mark.type === customSchema.marks.italic),\n });\n\n const menuContent = [\n [boldButton, italicButton] // Array of buttons or other menu items\n ];\n\n menuBar({\n content: menuContent,\n floating: true,\n });\n console.log('Creating menu plugin');\n\n return new Plugin({\n key: menuPluginKey\n })\n\n}\n","import { LitElement, css, html } from 'lit';\nimport { property, customElement, query } from 'lit/decorators.js';\n\nimport '@shoelace-style/shoelace/dist/components/card/card.js';\n\nimport '@shoelace-style/shoelace/dist/components/button/button.js';\n\nimport { styles } from '../../styles/shared-styles';\n\nimport {EditorState} from 'prosemirror-state'\nimport { Transaction } from 'prosemirror-state';\nimport { EditorView } from 'prosemirror-view';\nimport { Schema } from 'prosemirror-model';\n\n\nimport { keymap } from 'prosemirror-keymap';\nimport { toggleMark } from 'prosemirror-commands';\nimport {undo, redo, history} from 'prosemirror-history'\nimport { baseKeymap } from 'prosemirror-commands';\n\nimport {createMenuPlugin} from '../../components/menu-plugin'\n\n\nexport const customSchema = new Schema({\n\tnodes: {\n\t text: {\n\t\tgroup: 'inline',\n\t },\n\t star: {\n\t\tinline: true,\n\t\tgroup: 'inline',\n\t\ttoDOM() {\n\t\t return ['star', '⭐'];\n\t\t},\n\t\tparseDOM: [{ tag: 'star' }],\n\t },\n\t paragraph: {\n\t\tgroup: 'block',\n\t\tcontent: 'inline*',\n\t\ttoDOM() {\n\t\t return ['p', 0];\n\t\t},\n\t\tparseDOM: [{ tag: 'p' }],\n\t },\n\t boring_paragraph: {\n\t\tgroup: 'block',\n\t\tcontent: 'text*',\n\t\tmarks: '',\n\t\ttoDOM() {\n\t\t return ['p', { class: 'boring' }, 0];\n\t\t},\n\t\tparseDOM: [{ tag: 'p.boring', priority: 60 }],\n\t },\n\t doc: {\n\t\tcontent: 'block+',\n\t },\n\t},\n\tmarks: {\n\t shouting: {\n\t\ttoDOM() {\n\t\t return ['shouting', 0];\n\t\t},\n\t\tparseDOM: [{ tag: 'shouting' }],\n\t },\n\t link: {\n\t\tattrs: { href: {} },\n\t\ttoDOM(node) {\n\t\t return ['a', { href: node.attrs.href }, 0];\n\t\t},\n\t\tparseDOM: [\n\t\t {\n\t\t\ttag: 'a',\n\t\t\tgetAttrs(dom) {\n\t\t\t return { href: dom };\n\t\t\t},\n\t\t },\n\t\t],\n\t\tinclusive: false,\n\t },\n\t},\n });\n\n// Create the menu plugin\nconst menuPlugin = createMenuPlugin(customSchema);\n\n // Commands\nfunction insertStar(state: EditorState, dispatch?: (tr: Transaction) => void): boolean {\n\tconst type = customSchema.nodes.star;\n\tconst { $from } = state.selection;\n\n\t// If the parent cannot replace with the 'star' node, return false\n\tif (!$from.parent.canReplaceWith($from.index(), $from.index(), type)) {\n\t return false;\n\t}\n\n\t// If dispatch is provided, apply the transaction\n\tif (dispatch) {\n\t dispatch(state.tr.replaceSelectionWith(type.create()));\n\t}\n\n\t// Always return true if insertion conditions are met\n\treturn true;\n }\n\nfunction toggleLink(state: EditorState, dispatch?: (tr: Transaction) => void): boolean {\n\tlet {doc, selection} = state\n\tif (selection.empty) return false\n\tlet attrs = null\n\tif (!doc.rangeHasMark(selection.from, selection.to, customSchema.marks.link)) {\n\t attrs = {href: prompt(\"Link to where?\", \"\")}\n\t if (!attrs.href) return false\n\t}\n\treturn toggleMark(customSchema.marks.link, attrs)(state, dispatch)\n }\n\n\n // Keymap\nconst customKeymap = keymap({\n\t'Ctrl-Space': insertStar,\n\t\"Ctrl-b\": (state, dispatch) => {\n console.log(\"Ctrl-b pressed, toggling shouting mark...\");\n return toggleMark(customSchema.marks.shouting)(state, dispatch);\n },\n \t'Ctrl-q': (state, dispatch) => {\n\t\tconsole.log(\"you should have just gotten an alert\");\n\t\treturn toggleLink(state, dispatch);\n\t},\n\n });\n\n\n\n\n@customElement('app-write')\nexport class AppWrite extends LitElement {\n\t@property({ type: String }) placeholder: string = 'Compose your note...';\n\t@property({ type: String }) public value?: string;\n\n\t// Reference to the ProseMirror container\n\t@query('#editor') editorContainer!: HTMLElement;\n\n\tprivate editorView!: EditorView\n\n\n\n\n static styles = [\n styles, css`\n\t\t:host {\n\t\tdisplay: block;\n\t\t}\n\n\t\tshouting {\n all: unset; /* Remove inherited or conflicting styles */\n font-weight: bold;\n text-transform: uppercase;\n color: red; /* Add a visible color for debugging */\n}\n\n\t\t`\n\n ];\n\n protected async firstUpdated() {\n\t\tconsole.log(\"Welcome to the compose page\");\n\t\tawait this.updateComplete;\n\t\tthis.initializeEditor()\n\n}\nprivate initializeEditor() {\n\t\tif (!this.editorContainer) {\n\t\t\tconsole.error('Editor container not here');\n\t\t\treturn\n\t\t}\n \tconst doc = customSchema.nodes.doc.createAndFill();\n\t if (!doc) {\n\t\tconsole.error(\"failed to create initial document\")\n\t\treturn;\n\t}\n\n\tconst state = EditorState.create({\n \tdoc,\n \tplugins: [\n\t\t\tmenuPlugin,\n\t\t\thistory(),\n \t\tkeymap({\n \t'Mod-z': undo,\n \t'Mod-y': redo,\n \t\t}),\n \t\tkeymap(baseKeymap),\n \t // Add the plus-button plugin here\n\t\t\tcustomKeymap\n \t\t],\n\t \t});\n\n\n\n\t\tlet view = new EditorView(this.editorContainer, {\n\t\t\tstate,\n\t\t\tdispatchTransaction(transaction) {\n\t\t\t\tconsole.log('Document size went from', transaction.before.content.size, \"to\",\n\t\t\t\t\ttransaction.doc.content.size\n\t\t\t\t)\n\t\t\t\tlet newState = view.state.apply(transaction)\n\t\t\t\tview.updateState(newState)\n\t\t\t}\n\t\t});\n\t\tthis.editorView = view;\n\t\tconsole.log(state.plugins);\n\n\t\tconsole.log('editor initialized')\n\n\t}\n\n\t/* connectedCallback(): void {\n\t\tsuper.connectedCallback();\n\t\tif(!this.editorView) {\n\t\t\tthis.editorView;\n\t\t}\n\t} */\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n\t\tif (this.editorView) {\n\t\t\tthis.editorView.destroy();\n\t\t\tthis.editorView = null!\n\t\t}\n }\n\n\n\n protected render() {\n return html`\n \n\n\t\t
    \n\t\t
    \n\n \n
    \n

    Editor Demo

    \n
    \n\n\n\n\t\t\t

    Instructions

    \n\t\t\t

    Click inside the white text area to highlight with your cursor.\n\t\t\tYou can type and press enter to insert a new block below.

    \n\t\t\t
    \n\t\t\t

    Try to highlight a piece of text, then CTRL+X to cut and\n\t\t\tCTRL+V to paste.


    \n\t\t\t

    Press Ctrl+Space to add a yellow star to the document.

    \n\t\t\t

    Press Ctrl+B over a highlighted selection to add a \"shouting\"\n\t\t\tmark and format it all caps and red.

    \n\n
    \n\n
    \n
    \n
    \n `}\n\t}"],"names":["OrderedMap","content","key","i","found","value","newKey","self","place","without","f","map","result","prop","findDiffStart","a","b","pos","childA","childB","j","inner","findDiffEnd","posA","posB","iA","iB","size","same","minSize","Fragment$1","Fragment","from","to","nodeStart","parent","child","end","start","blockSeparator","leafText","text","first","node","nodeText","other","last","index","current","copy","p","otherPos","round","retIndex","curPos","cur","n","schema","array","joined","nodes","offset","compareDeep","Mark","type","attrs","set","placed","obj","_","json","mark","marks","Slice$1","Slice","openStart","openEnd","fragment","insertInto","removeRange","openIsolating","indexTo","offsetTo","dist","insert","replace","$from","$to","slice","ReplaceError","replaceOuter","depth","close","prepareSliceForReplace","replaceThreeWay","replaceTwoWay","checkJoin","main","sub","joinable","$before","$after","addNode","target","addRange","$start","$end","startIndex","endIndex","$along","extra","ResolvedPos","path","parentOffset","val","dOff","tmp","after","next","pred","d","NodeRange","str","doc","rem","cache","resolveCache","elt","ResolveCache","resolveCacheSize","emptyAttrs","Node$1","Node","startPos","includeParents","name","wrapMarks","match","replacement","one","two","m","TextNode","base","ContentMatch","validEnd","string","nodeTypes","stream","TokenStream","expr","parseExpr","dfa","nfa","checkForDeadEnds","frag","toEnd","seen","search","types","finished","tp","computed","active","scan","out","tok","exprs","parseExprSeq","parseExprSubscript","parseExprAtom","parseExprRange","parseNum","min","max","resolveName","typeName","connect","compile","edge","term","edges","loop","cmp","nullFrom","labeled","explore","states","state","work","dead","defaultAttrs","defaults","attrName","attr","computeAttrs","built","given","checkAttrs","values","initAttrs","Attribute","NodeType$1","NodeType","spec","group","before","matched","markType","topType","validateType","options","MarkType","rank","Schema","instanceSpec","contentExprCache","contentExpr","markExpr","gatherMarks","excl","ok","isTagRule","rule","isStyleRule","DOMParser","rules","matchedStyles","r","dom","context","ParseContext","matches","style","priority","blockTags","ignoreTags","listTags","OPT_PRESERVE_WS","OPT_PRESERVE_WS_FULL","OPT_OPEN_LEFT","wsOptionsFor","preserveWhitespace","NodeContext","solid","fill","wrap","parser","isOpen","topNode","topContext","topOptions","top","preserveWS","nodeBefore","domNodeBefore","matchAfter","outerWS","ruleID","normalizeList","sync","oldNeedsBlock","innerMarks","styles","continueAfter","nodeType","startIn","contentDOM","route","cx","block","nodeMarks","markMayApply","applyMarks","textNode","parts","option","useRoot","minDepth","part","$context","deflt","prevItem","selector","DOMSerializer","keep","rendered","add","markDOM","renderSpec","inline","toDOM","structure","xmlNS","blockArraysIn","gatherToDOM","suspiciousAttributeCache","suspiciousAttributes","suspiciousAttributesInner","tagName","suspicious","space","innerContent","lower16","factor16","makeRecover","recoverIndex","recoverOffset","DEL_BEFORE","DEL_AFTER","DEL_ACROSS","DEL_SIDE","MapResult$1","delInfo","recover","StepMap$1","StepMap","ranges","inverted","diff","assoc","simple","oldIndex","newIndex","oldSize","newSize","side","del","MapResult","oldStart","newStart","Mapping","maps","mirror","mirrors","mapping","startSize","mirr","totalSize","inverse","corr","stepsByID","Step$1","id","stepClass","StepResult$1","StepResult","failed","message","e","mapFragment","mapped","AddMarkStep","Step","oldSlice","RemoveMarkStep","AddNodeMarkStep","updated","newSet","RemoveNodeMarkStep","ReplaceStep","contentBetween","ReplaceAroundStep","gapFrom","gapTo","gap","inserted","addMark","tr","removed","added","removing","adding","s","removeMark","step","toRemove","clearIncompatible","parentType","clearNewlines","replSteps","allowed","newline","canCut","liftTarget","range","lift","gapStart","gapEnd","splitting","wrappers","setBlockType","mapFrom","attrsHere","canChangeType","convertNewlines","pre","supportLinebreak","replaceLinebreaks","startM","endM","replaceNewlines","$pos","setNodeMarkup","newNode","canSplit","typesAfter","innerType","rest","overrideChild","baseType","split","typeAfter","canJoin","canAppendWithSubstitutedLinebreaks","linebreakReplacement","join","beforeType","$full","insertPoint","dropPoint","pass","bias","insertPos","fits","wrapping","replaceStep","fitsTrivially","Fitter","unplaced","fit","moveInline","placedSize","startDepth","sliceDepth","contentAt","frontierDepth","inject","openAtEnd","dropFromFragment","taken","openEndCount","closeNodeStart","addToFragment","level","contentAfterFits","dropInner","count","open","invalidMarks","definesContent","replaceRange","targetDepths","coveredDepths","preferredTarget","preferredTargetIndex","leftNodes","preferredDepth","leftNode","def","openDepth","targetDepth","expand","closeFragment","startSteps","oldOpen","newOpen","replaceRangeWith","point","deleteRange","covered","AttrStep","DocAttrStep","TransformError","err","Transform","classesById","Selection$1","$anchor","$head","SelectionRange","lastNode","lastParent","selectionToInsertionEnd","dir","textOnly","TextSelection","findSelectionIn","AllSelection","cls","selectionClass","Selection","SelectionRange$1","warnedAboutTextSelection","checkTextSelection","TextBookmark","anchor","head","dPos","TextBookmark$1","NodeSelection","deleted","NodeBookmark","NodeBookmark$1","sel","AllBookmark","startLen","_from","_to","_newFrom","newTo","UPDATED_SEL","UPDATED_MARKS","UPDATED_SCROLL","Transaction","selection","time","inheritMarks","bind","FieldDesc$1","desc","baseFields","FieldDesc","config","instance","_marks","_old","prev","Configuration","plugins","plugin","EditorState","ignore","rootTr","trs","newState","haveNew","oldState","newInstance","fields","field","$config","pluginFields","bindProps","Plugin$1","createKey","keys","PluginKey","domIndex","parentNode","reusedRange","textRange","clearReusedRange","isEquivalentPosition","off","targetNode","targetOff","scanFor","atomElements","nodeSize","hasBlockDesc","textNodeBefore$1","textNodeAfter$1","isOnEdge","atStart","atEnd","selectionCollapsed","domSel","keyEvent","keyCode","event","deepActiveElement","caretFromPoint","x","y","nav","agent","ie_edge","ie_upto10","ie_11up","ie","ie_version","gecko","_chrome","chrome","chrome_version","safari","ios","mac","windows","android","webkit","webkit_version","windowRect","vp","getSide","clientRect","rect","scaleX","scaleY","scrollRectIntoView","view","startDOM","scrollThreshold","scrollMargin","atTop","bounding","moveX","moveY","startX","startY","dX","dY","storeScrollPos","refDOM","refTop","localRect","scrollStack","stack","resetScrollPos","newRefTop","restoreScrollStack","dTop","left","preventScrollSupported","focusPreventScroll","stored","findOffsetInNode","coords","closest","dxClosest","coordsClosest","rowBot","rowTop","firstBelow","coordsBelow","childIndex","rects","dx","findOffsetInText","len","singleRect","inRect","targetKludge","posFromElement","posFromCaret","outsideBlock","sawBlock","elementFromPoint","element","box","startI","posAtCoords","caret","nonZero","BIDI","coordsAtPos","atom","supportEmptyRange","rectBefore","rectAfter","flattenV","takeSide","flattenH","withFlushedState","viewState","endOfTextblockVertical","nearest","boxes","maybeRTL","endOfTextblockHorizontal","oldNode","oldOff","anchorNode","anchorOffset","oldBidiLevel","parentDOM","newOff","cachedState","cachedDir","cachedResult","endOfTextblock","NOT_DIRTY","CHILD_DIRTY","CONTENT_DIRTY","NODE_DIRTY","ViewDesc","children","widget","outerDeco","innerDeco","nodeName","domBefore","domAfter","onlyNodes","nodeDOM","TrailingHackViewDesc","WidgetViewDesc","enter","fromOffset","toOffset","childBase","force","anchorDOM","headDOM","selRange","brKludge","domSelExtended","mutation","startInside","endInside","dirty","stop","CompositionViewDesc","textDOM","mut","MarkViewDesc","custom","replaceNodes","NodeViewDesc","descObj","applyOuterDeco","CustomNodeViewDesc","TextViewDesc","sameOuterDeco","composition","localComposition","compositionInChild","updater","ViewTreeUpdater","iterDeco","insideNode","compIndex","renderDescs","iosHacks","textPos","findTextInFragment","needsWrap","oldDOM","patchOuterDeco","computeOuterDeco","docViewDesc","docView","skip","descs","written","childDOM","rm","OuterDecoLevel","noDeco","outerDOM","prevComputed","curComputed","curDOM","deco","patchAttributes","prevList","curList","lock","preMatch","maxKeep","markDesc","targetDesc","domNode","nextDOM","locked","wrapper","ch","lastChild","hack","parentDesc","curDesc","descI","fI","outer","compareSide","onWidget","onNode","locals","decoIndex","restNode","parentIndex","widgets","cutAt","oldCSS","childStart","selectionFromDOM","origin","nearestDesc","inWidget","nearestDescNode","selectionBetween","editorOwnsSelection","hasSelection","selectionToDOM","syncNodeSelection","curSel","selectCursorWrapper","resetEditableFrom","resetEditableTo","brokenSelectBetweenUneditable","temporarilyEditableNear","resetEditable","removeClassOnSelectionChange","setEditable","img","clearNodeSelection","hasFocusAndSelection","anchorInRightPlace","moveSelectionBlock","$side","apply","selectHorizontally","mods","$newHead","nodePos","nodeLen","isIgnorable","skipIgnoredNodes","skipIgnoredNodesBefore","skipIgnoredNodesAfter","moveNode","moveOffset","isBlockNode","setSelFocus","textNodeAfter","textNodeBefore","findDirection","mid","selectVertically","beyond","stopNativeHorizontalDelete","empty","nextNode","switchEditable","safariDownArrowBug","focusNode","focusOffset","getMods","captureKeyDown","code","serializeForClipboard","serializer","detachedDoc","firstChild","wrapMap","parseFromClipboard","html","plainText","inCode","asText","parsed","readHTML","restoreReplacedSpaces","contextNode","sliceData","inlineParents","addContext","closeSlice","normalizeSiblings","lastWrap","inLast","addToSibling","closeRight","wrapped","withWrappers","sibling","closeRange","_detachedDoc","_policy","maybeWrapTrusted","trustedTypes","metas","firstTag","handlers","editHandlers","passiveHandlers","InputState","initInput","handler","eventBelongsToView","runCustomHandler","ensureListeners","setSelectionOrigin","destroyInput","currentHandlers","dispatchEvent","_event","inOrNearComposition","now","eventCoords","isNear","click","dy","runHandlerOnContext","propName","inside","updateSelection","selectClickedLeaf","selectClickedNode","selectedNode","selectAt","handleSingleClick","selectNode","handleDoubleClick","handleTripleClick","defaultTripleClick","forceDOMFlush","endComposition","selectNodeModifier","flushed","MouseDown","targetPos","timeoutComposition","scheduleComposeEnd","delay","clearComposition","timestampFromCustomEvent","findCompositionNode","textBefore","textAfter","descAfter","lastChanged","descBefore","restarting","captureCopy","brokenClipboardAPI","cut","data","sliceSingleNode","capturePaste","plain","doPaste","preferPlain","singleNode","getText","clipboardData","uris","Dragging","move","dragCopyModifier","mouseDown","draggedSlice","dragging","eventPos","$mouse","isNode","beforeInsert","domChangeCount","$cursor","compareObjs","WidgetType","noSpec","span","oldOffset","Decoration","InlineType","none","DecorationSet","local","decorations","buildTree","predicate","childOff","newLocal","mapChildren","byPos","childNode","childOffset","baseOffset","takeSpansForNode","moveSpans","withoutNulls","dec","localSet","DecorationGroup","removeOverlap","members","mappedDecos","member","sorted","oldChildren","moved","oldEnd","newEnd","dSize","mustRebuild","fromLocal","toLocal","mapAndGatherRemainingDecorations","spans","gather","hasNulls","localStart","subtree","working","insertAhead","viewDecorations","observeOptions","useCharData","SelectionState","DOMObserver","handleDOMChange","mutations","take","ancestors","container","newSel","typeOver","brs","br","blockParent","readSel","checkCSS","previousSibling","nextSibling","cssChecked","cssCheckWarned","rangeToSelectionRange","currentAnchor","safariShadowSelectionRange","read","parseBetween","from_","to_","find","startDoc","ruleFromNode","isInline","readDOMChange","addedNodes","compositionID","shared","parse","compare","preferredPos","preferredSide","change","findDiff","resolveSelection","$fromA","inlineChange","nextSel","looksLikeBackspace","chFrom","chTo","storedMarks","markChange","isMarkChange","parsedSel","curMarks","prevMarks","update","old","$newStart","$newEnd","skipClosingAndOpening","$next","fromEnd","mayOpen","endA","endB","adjust","isSurrogatePair","EditorView","props","checkStateComponent","getEditable","updateCursorWrapper","buildNodeViews","computeDocDeco","prevProps","_a","redraw","updateSel","pluginsChanged","nodeViews","changedNodeViews","scroll","updateDoc","oldScrollPos","forceSelUpdate","selectionContextChanged","chromeKludge","prevState","pluginView","movedPos","cached","dispatchTransaction","sel1","sel2","nA","nB","shift","keyName","ignoreKey","Plugin","normalizeKeyName","alt","ctrl","meta","mod","normalize","modifiers","keymap","bindings","keydownHandler","baseName","direct","noShift","fromCode","deleteSelection","dispatch","atBlockStart","joinBackward","$cut","findCutBefore","deleteBarrier","textblockAt","delStep","only","selectNodeBackward","atBlockEnd","joinForward","findCutAfter","selectNodeForward","newlineInCode","defaultBlockAt","exitCode","above","createParagraphNear","liftEmptyBlock","splitBlockAs","splitNode","splitDepth","splitPos","can","$first","splitBlock","selectAll","joinMaybeClear","conn","isolated","canDelAfter","$joinAt","selAfter","at","afterText","afterDepth","selectTextblockSide","selectTextblockStart","selectTextblockEnd","markApplies","enterAtoms","toggleMark","spaceStart","spaceEnd","chainCommands","commands","backspace","pcBaseKeymap","macBaseKeymap","baseKeymap","GOOD_LEAF_SIZE","RopeSequence","Append","Leaf","prototypeAccessors","right","leftLen","max_empty_items","Branch","items","eventCount","preserveItems","remap","transform","remaining","addAfter","addBefore","item","Item","histOptions","newItems","oldItems","lastItem","merged","overflow","DEPTH_OVERFLOW","cutOffEvents","mirrorPos","rebasedTransform","rebasedCount","rebasedItems","newUntil","iRebased","newMaps","branch","upto","events","newItem","cutPoint","mirrorOffset","HistoryState","done","undone","prevRanges","prevTime","prevComposition","applyTransaction","history","historyTr","historyKey","rebased","closeHistoryKey","appended","mustPreserveItems","rangesFor","newGroup","isAdjacentTo","mapRanges","adjacent","histTransaction","redo","pop","newHist","cachedPreserveItems","cachedPreserveItemsPlugins","hist","inputType","command","undo","buildCommand","crelt","SVG","XLINK","prefix$2","hashPath","hash","getIcon","root","icon","width","height","buildSVG","svg","css","collection","sym","prefix$1","MenuItem","crel","translate","title","selected","enabled","setClass","combineUpdates","updates","something","up","renderGrouped","separators","localUpdates","localNodes","separator","needSep","hasContent","on","prefix","isIOS","menuBar","editorView","MenuBarView","potentialScrollers","getAllWrapping","el","selRect","selectionIsInverted","menuRect","scrollable","findWrappingScrollable","scrollAncestor","editorRect","border","res","menuPluginKey","createMenuPlugin","customSchema","boldButton","italicButton","menuPlugin","insertStar","toggleLink","customKeymap","AppWrite","LitElement","transaction","__decorateClass","property","query","customElement"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]} \ No newline at end of file diff --git a/dist2/code/index-CBloBB_n.js b/dist2/code/index-CBloBB_n.js new file mode 100644 index 0000000..d889aad --- /dev/null +++ b/dist2/code/index-CBloBB_n.js @@ -0,0 +1,2 @@ +var P=class{type=3;name="";prefix="";value="";suffix="";modifier=3;constructor(t,e,s,r,h,u){this.type=t,this.name=e,this.prefix=s,this.value=r,this.suffix=h,this.modifier=u}hasCustomName(){return this.name!==""&&typeof this.name!="number"}},J=/[$_\p{ID_Start}]/u,Q=/[$_\u200C\u200D\p{ID_Continue}]/u,D=".*";function Y(t,e){return/^[\x00-\x7F]*$/.test(t)}function M(t,e=!1){let s=[],r=0;for(;r{if(on("OTHER_MODIFIER")??n("ASTERISK"),f=p=>{let c=n(p);if(c!==void 0)return c;let{type:l,index:E}=s[o];throw new TypeError(`Unexpected ${l} at ${E}, expected ${p}`)},w=()=>{let p="",c;for(;c=n("CHAR")??n("ESCAPED_CHAR");)p+=c;return p},k=p=>p,T=e.encodePart||k,O="",U=p=>{O+=p},I=()=>{O.length&&(h.push(new P(3,"","",T(O),"",3)),O="")},_=(p,c,l,E,v)=>{let g=3;switch(v){case"?":g=1;break;case"*":g=0;break;case"+":g=2;break}if(!c&&!l&&g===3){U(p);return}if(I(),!c&&!l){if(!p)return;h.push(new P(3,"","",T(p),"",g));return}let m;l?l==="*"?m=D:m=l:m=r;let C=2;m===r?(C=1,m=""):m===D&&(C=0,m="");let b;if(c?b=c:l&&(b=u++),i.has(b))throw new TypeError(`Duplicate name '${b}'.`);i.add(b),h.push(new P(C,b,T(p),m,T(E),g))};for(;o-1)}return o||(r+=`(?=${u}|${h})`),new RegExp(r,j(s))}var $={delimiter:"",prefixes:"",sensitive:!0,strict:!0},et={delimiter:".",prefixes:"",sensitive:!0,strict:!0},st={delimiter:"/",prefixes:"/",sensitive:!0,strict:!0};function it(t,e){return t.length?t[0]==="/"?!0:!e||t.length<2?!1:(t[0]=="\\"||t[0]=="{")&&t[1]=="/":!1}function G(t,e){return t.startsWith(e)?t.substring(e.length,t.length):t}function rt(t,e){return t.endsWith(e)?t.substr(0,t.length-e.length):t}function K(t){return!t||t.length<2?!1:t[0]==="["||(t[0]==="\\"||t[0]==="{")&&t[1]==="["}var X=["ftp","file","http","https","ws","wss"];function V(t){if(!t)return!0;for(let e of X)if(t.test(e))return!0;return!1}function nt(t,e){if(t=G(t,"#"),e||t==="")return t;let s=new URL("https://example.com");return s.hash=t,s.hash?s.hash.substring(1,s.hash.length):""}function ot(t,e){if(t=G(t,"?"),e||t==="")return t;let s=new URL("https://example.com");return s.search=t,s.search?s.search.substring(1,s.search.length):""}function ht(t,e){return e||t===""?t:K(t)?q(t):Z(t)}function at(t,e){if(e||t==="")return t;let s=new URL("https://example.com");return s.password=t,s.password}function ut(t,e){if(e||t==="")return t;let s=new URL("https://example.com");return s.username=t,s.username}function pt(t,e,s){if(s||t==="")return t;if(e&&!X.includes(e))return new URL(`${e}:${t}`).pathname;let r=t[0]=="/";return t=new URL(r?t:"/-"+t,"https://example.com").pathname,r||(t=t.substring(2,t.length)),t}function ct(t,e,s){return z(e)===t&&(t=""),s||t===""?t:B(t)}function ft(t,e){return t=rt(t,":"),e||t===""?t:N(t)}function z(t){switch(t){case"ws":case"http":return"80";case"wws":case"https":return"443";case"ftp":return"21";default:return""}}function N(t){if(t==="")return t;if(/^[-+.A-Za-z0-9]*$/.test(t))return t.toLowerCase();throw new TypeError(`Invalid protocol '${t}'.`)}function lt(t){if(t==="")return t;let e=new URL("https://example.com");return e.username=t,e.username}function mt(t){if(t==="")return t;let e=new URL("https://example.com");return e.password=t,e.password}function Z(t){if(t==="")return t;if(/[\t\n\r #%/:<>?@[\]^\\|]/g.test(t))throw new TypeError(`Invalid hostname '${t}'`);let e=new URL("https://example.com");return e.hostname=t,e.hostname}function q(t){if(t==="")return t;if(/[^0-9a-fA-F[\]:]/g.test(t))throw new TypeError(`Invalid IPv6 hostname '${t}'`);return t.toLowerCase()}function B(t){if(t===""||/^[0-9]*$/.test(t)&&parseInt(t)<=65535)return t;throw new TypeError(`Invalid port '${t}'.`)}function dt(t){if(t==="")return t;let e=new URL("https://example.com");return e.pathname=t[0]!=="/"?"/-"+t:t,t[0]!=="/"?e.pathname.substring(2,e.pathname.length):e.pathname}function gt(t){return t===""?t:new URL(`data:${t}`).pathname}function wt(t){if(t==="")return t;let e=new URL("https://example.com");return e.search=t,e.search.substring(1,e.search.length)}function yt(t){if(t==="")return t;let e=new URL("https://example.com");return e.hash=t,e.hash.substring(1,e.hash.length)}var vt=class{#n;#i=[];#e={};#t=0;#r=1;#u=0;#h=0;#l=0;#m=0;#d=!1;constructor(t){this.#n=t}get result(){return this.#e}parse(){for(this.#i=M(this.#n,!0);this.#t0)if(this.#C())this.#l-=1;else continue;if(this.#k()){this.#l+=1;continue}switch(this.#h){case 0:this.#b()&&this.#f(1);break;case 1:if(this.#b()){this.#P();let t=7,e=1;this.#$()?(t=2,e=3):this.#d&&(t=2),this.#s(t,e)}break;case 2:this.#w()?this.#f(3):(this.#y()||this.#c()||this.#p())&&this.#f(5);break;case 3:this.#E()?this.#s(4,1):this.#w()&&this.#s(5,1);break;case 4:this.#w()&&this.#s(5,1);break;case 5:this.#L()?this.#m+=1:this.#A()&&(this.#m-=1),this.#R()&&!this.#m?this.#s(6,1):this.#y()?this.#s(7,0):this.#c()?this.#s(8,1):this.#p()&&this.#s(9,1);break;case 6:this.#y()?this.#s(7,0):this.#c()?this.#s(8,1):this.#p()&&this.#s(9,1);break;case 7:this.#c()?this.#s(8,1):this.#p()&&this.#s(9,1);break;case 8:this.#p()&&this.#s(9,1);break}}this.#e.hostname!==void 0&&this.#e.port===void 0&&(this.#e.port="")}#s(t,e){switch(this.#h){case 0:break;case 1:this.#e.protocol=this.#a();break;case 2:break;case 3:this.#e.username=this.#a();break;case 4:this.#e.password=this.#a();break;case 5:this.#e.hostname=this.#a();break;case 6:this.#e.port=this.#a();break;case 7:this.#e.pathname=this.#a();break;case 8:this.#e.search=this.#a();break;case 9:this.#e.hash=this.#a();break}this.#h!==0&&t!==10&&([1,2,3,4].includes(this.#h)&&[6,7,8,9].includes(t)&&(this.#e.hostname??=""),[1,2,3,4,5,6].includes(this.#h)&&[8,9].includes(t)&&(this.#e.pathname??=this.#d?"/":""),[1,2,3,4,5,6,7].includes(this.#h)&&t===9&&(this.#e.search??="")),this.#x(t,e)}#x(t,e){this.#h=t,this.#u=this.#t+e,this.#t+=e,this.#r=0}#v(){this.#t=this.#u,this.#r=0}#f(t){this.#v(),this.#h=t}#g(t){return t<0&&(t=this.#i.length-t),t=0&&(t.pathname=y(r.pathname.substring(0,h+1),s)+t.pathname)}t.pathname=pt(t.pathname,t.protocol,s)}return typeof e.search=="string"&&(t.search=ot(e.search,s)),typeof e.hash=="string"&&(t.hash=nt(e.hash,s)),t}function A(t){return t.replace(/([+*?:{}()\\])/g,"\\$1")}function bt(t){return t.replace(/([.+*?^${}()[\]|/\\])/g,"\\$1")}function xt(t,e){e.delimiter??="/#?",e.prefixes??="./",e.sensitive??=!1,e.strict??=!1,e.end??=!0,e.start??=!0,e.endsWith="";let s=".*",r=`[^${bt(e.delimiter)}]+?`,h=/[$_\u200C\u200D\p{ID_Continue}]/u,u="";for(let o=0;o0?t[o-1]:null,w=o0?w.value[0]:"";a=h.test(k)}else a=!w.hasCustomName();if(!a&&!i.prefix.length&&f&&f.type===3){let k=f.value[f.value.length-1];a=e.prefixes.includes(k)}a&&(u+="{"),u+=A(i.prefix),n&&(u+=`:${i.name}`),i.type===2?u+=`(${i.value})`:i.type===1?n||(u+=`(${r})`):i.type===0&&(!n&&(!f||f.type===3||f.modifier!==3||a||i.prefix!=="")?u+="*":u+=`(${s})`),i.type===1&&n&&i.suffix.length&&h.test(i.suffix[0])&&(u+="\\"),u+=A(i.suffix),a&&(u+="}"),i.modifier!==3&&(u+=R(i.modifier))}return u}var $t=class{#n;#i={};#e={};#t={};#r={};#u=!1;constructor(t={},e,s){try{let r;if(typeof e=="string"?r=e:s=e,typeof t=="string"){let i=new vt(t);if(i.parse(),t=i.result,r===void 0&&typeof t.protocol!="string")throw new TypeError("A base URL must be provided for a relative constructor string.");t.baseURL=r}else{if(!t||typeof t!="object")throw new TypeError("parameter 1 is not of type 'string' and cannot convert to dictionary.");if(r)throw new TypeError("parameter 1 is not of type 'string'.")}typeof s>"u"&&(s={ignoreCase:!1});let h={ignoreCase:s.ignoreCase===!0},u={pathname:x,protocol:x,username:x,password:x,hostname:x,port:x,search:x,hash:x};this.#n=L(u,t,!0),z(this.#n.protocol)===this.#n.port&&(this.#n.port="");let o;for(o of S){if(!(o in this.#n))continue;let i={},n=this.#n[o];switch(this.#e[o]=[],o){case"protocol":Object.assign(i,$),i.encodePart=N;break;case"username":Object.assign(i,$),i.encodePart=lt;break;case"password":Object.assign(i,$),i.encodePart=mt;break;case"hostname":Object.assign(i,et),K(n)?i.encodePart=q:i.encodePart=Z;break;case"port":Object.assign(i,$),i.encodePart=B;break;case"pathname":V(this.#i.protocol)?(Object.assign(i,st,h),i.encodePart=dt):(Object.assign(i,$,h),i.encodePart=gt);break;case"search":Object.assign(i,$,h),i.encodePart=wt;break;case"hash":Object.assign(i,$,h),i.encodePart=yt;break}try{this.#r[o]=W(n,i),this.#i[o]=F(this.#r[o],this.#e[o],i),this.#t[o]=xt(this.#r[o],i),this.#u=this.#u||this.#r[o].some(a=>a.type===2)}catch{throw new TypeError(`invalid ${o} pattern '${this.#n[o]}'.`)}}}catch(r){throw new TypeError(`Failed to construct 'URLPattern': ${r.message}`)}}test(t={},e){let s={pathname:"",protocol:"",username:"",password:"",hostname:"",port:"",search:"",hash:""};if(typeof t!="string"&&e)throw new TypeError("parameter 1 is not of type 'string'.");if(typeof t>"u")return!1;try{typeof t=="object"?s=L(s,t,!1):s=L(s,H(t,e),!1)}catch{return!1}let r;for(r of S)if(!this.#i[r].exec(s[r]))return!1;return!0}exec(t={},e){let s={pathname:"",protocol:"",username:"",password:"",hostname:"",port:"",search:"",hash:""};if(typeof t!="string"&&e)throw new TypeError("parameter 1 is not of type 'string'.");if(typeof t>"u")return;try{typeof t=="object"?s=L(s,t,!1):s=L(s,H(t,e),!1)}catch{return null}let r={};e?r.inputs=[t,e]:r.inputs=[t];let h;for(h of S){let u=this.#i[h].exec(s[h]);if(!u)return null;let o={};for(let[i,n]of this.#e[h].entries())if(typeof n=="string"||typeof n=="number"){let a=u[i+1];o[n]=a}r[h]={input:s[h]??"",groups:o}}return r}static compareComponent(t,e,s){let r=(i,n)=>{for(let a of["type","modifier","prefix","value","suffix"]){if(i[a]{let a=0;for(;a{if(la(\"OTHER_MODIFIER\")??a(\"ASTERISK\"),d=h=>{let u=a(h);if(u!==void 0)return u;let{type:p,index:A}=r[l];throw new TypeError(`Unexpected ${p} at ${A}, expected ${h}`)},T=()=>{let h=\"\",u;for(;u=a(\"CHAR\")??a(\"ESCAPED_CHAR\");)h+=u;return h},Se=h=>h,L=t.encodePart||Se,I=\"\",U=h=>{I+=h},$=()=>{I.length&&(o.push(new R(3,\"\",\"\",L(I),\"\",3)),I=\"\")},V=(h,u,p,A,Y)=>{let g=3;switch(Y){case\"?\":g=1;break;case\"*\":g=0;break;case\"+\":g=2;break}if(!u&&!p&&g===3){U(h);return}if($(),!u&&!p){if(!h)return;o.push(new R(3,\"\",\"\",L(h),\"\",g));return}let m;p?p===\"*\"?m=M:m=p:m=n;let O=2;m===n?(O=1,m=\"\"):m===M&&(O=0,m=\"\");let P;if(u?P=u:p&&(P=c++),i.has(P))throw new TypeError(`Duplicate name '${P}'.`);i.add(P),o.push(new R(O,P,L(h),m,L(A),g))};for(;l-1)}return l||(n+=`(?=${c}|${o})`),new RegExp(n,X(r))}var x={delimiter:\"\",prefixes:\"\",sensitive:!0,strict:!0},B={delimiter:\".\",prefixes:\"\",sensitive:!0,strict:!0},q={delimiter:\"/\",prefixes:\"/\",sensitive:!0,strict:!0};function J(e,t){return e.length?e[0]===\"/\"?!0:!t||e.length<2?!1:(e[0]==\"\\\\\"||e[0]==\"{\")&&e[1]==\"/\":!1}function Q(e,t){return e.startsWith(t)?e.substring(t.length,e.length):e}function Ee(e,t){return e.endsWith(t)?e.substr(0,e.length-t.length):e}function W(e){return!e||e.length<2?!1:e[0]===\"[\"||(e[0]===\"\\\\\"||e[0]===\"{\")&&e[1]===\"[\"}var ee=[\"ftp\",\"file\",\"http\",\"https\",\"ws\",\"wss\"];function N(e){if(!e)return!0;for(let t of ee)if(e.test(t))return!0;return!1}function te(e,t){if(e=Q(e,\"#\"),t||e===\"\")return e;let r=new URL(\"https://example.com\");return r.hash=e,r.hash?r.hash.substring(1,r.hash.length):\"\"}function re(e,t){if(e=Q(e,\"?\"),t||e===\"\")return e;let r=new URL(\"https://example.com\");return r.search=e,r.search?r.search.substring(1,r.search.length):\"\"}function ne(e,t){return t||e===\"\"?e:W(e)?j(e):z(e)}function se(e,t){if(t||e===\"\")return e;let r=new URL(\"https://example.com\");return r.password=e,r.password}function ie(e,t){if(t||e===\"\")return e;let r=new URL(\"https://example.com\");return r.username=e,r.username}function ae(e,t,r){if(r||e===\"\")return e;if(t&&!ee.includes(t))return new URL(`${t}:${e}`).pathname;let n=e[0]==\"/\";return e=new URL(n?e:\"/-\"+e,\"https://example.com\").pathname,n||(e=e.substring(2,e.length)),e}function oe(e,t,r){return _(t)===e&&(e=\"\"),r||e===\"\"?e:K(e)}function ce(e,t){return e=Ee(e,\":\"),t||e===\"\"?e:y(e)}function _(e){switch(e){case\"ws\":case\"http\":return\"80\";case\"wws\":case\"https\":return\"443\";case\"ftp\":return\"21\";default:return\"\"}}function y(e){if(e===\"\")return e;if(/^[-+.A-Za-z0-9]*$/.test(e))return e.toLowerCase();throw new TypeError(`Invalid protocol '${e}'.`)}function le(e){if(e===\"\")return e;let t=new URL(\"https://example.com\");return t.username=e,t.username}function fe(e){if(e===\"\")return e;let t=new URL(\"https://example.com\");return t.password=e,t.password}function z(e){if(e===\"\")return e;if(/[\\t\\n\\r #%/:<>?@[\\]^\\\\|]/g.test(e))throw new TypeError(`Invalid hostname '${e}'`);let t=new URL(\"https://example.com\");return t.hostname=e,t.hostname}function j(e){if(e===\"\")return e;if(/[^0-9a-fA-F[\\]:]/g.test(e))throw new TypeError(`Invalid IPv6 hostname '${e}'`);return e.toLowerCase()}function K(e){if(e===\"\"||/^[0-9]*$/.test(e)&&parseInt(e)<=65535)return e;throw new TypeError(`Invalid port '${e}'.`)}function he(e){if(e===\"\")return e;let t=new URL(\"https://example.com\");return t.pathname=e[0]!==\"/\"?\"/-\"+e:e,e[0]!==\"/\"?t.pathname.substring(2,t.pathname.length):t.pathname}function ue(e){return e===\"\"?e:new URL(`data:${e}`).pathname}function de(e){if(e===\"\")return e;let t=new URL(\"https://example.com\");return t.search=e,t.search.substring(1,t.search.length)}function pe(e){if(e===\"\")return e;let t=new URL(\"https://example.com\");return t.hash=e,t.hash.substring(1,t.hash.length)}var H=class{#i;#n=[];#t={};#e=0;#s=1;#l=0;#o=0;#d=0;#p=0;#g=!1;constructor(t){this.#i=t}get result(){return this.#t}parse(){for(this.#n=v(this.#i,!0);this.#e0)if(this.#A())this.#d-=1;else continue;if(this.#T()){this.#d+=1;continue}switch(this.#o){case 0:this.#P()&&this.#u(1);break;case 1:if(this.#P()){this.#C();let t=7,r=1;this.#E()?(t=2,r=3):this.#g&&(t=2),this.#r(t,r)}break;case 2:this.#S()?this.#u(3):(this.#x()||this.#h()||this.#f())&&this.#u(5);break;case 3:this.#O()?this.#r(4,1):this.#S()&&this.#r(5,1);break;case 4:this.#S()&&this.#r(5,1);break;case 5:this.#y()?this.#p+=1:this.#w()&&(this.#p-=1),this.#k()&&!this.#p?this.#r(6,1):this.#x()?this.#r(7,0):this.#h()?this.#r(8,1):this.#f()&&this.#r(9,1);break;case 6:this.#x()?this.#r(7,0):this.#h()?this.#r(8,1):this.#f()&&this.#r(9,1);break;case 7:this.#h()?this.#r(8,1):this.#f()&&this.#r(9,1);break;case 8:this.#f()&&this.#r(9,1);break;case 9:break;case 10:break}}this.#t.hostname!==void 0&&this.#t.port===void 0&&(this.#t.port=\"\")}#r(t,r){switch(this.#o){case 0:break;case 1:this.#t.protocol=this.#c();break;case 2:break;case 3:this.#t.username=this.#c();break;case 4:this.#t.password=this.#c();break;case 5:this.#t.hostname=this.#c();break;case 6:this.#t.port=this.#c();break;case 7:this.#t.pathname=this.#c();break;case 8:this.#t.search=this.#c();break;case 9:this.#t.hash=this.#c();break;case 10:break}this.#o!==0&&t!==10&&([1,2,3,4].includes(this.#o)&&[6,7,8,9].includes(t)&&(this.#t.hostname??=\"\"),[1,2,3,4,5,6].includes(this.#o)&&[8,9].includes(t)&&(this.#t.pathname??=this.#g?\"/\":\"\"),[1,2,3,4,5,6,7].includes(this.#o)&&t===9&&(this.#t.search??=\"\")),this.#R(t,r)}#R(t,r){this.#o=t,this.#l=this.#e+r,this.#e+=r,this.#s=0}#b(){this.#e=this.#l,this.#s=0}#u(t){this.#b(),this.#o=t}#m(t){return t<0&&(t=this.#n.length-t),t=0&&(e.pathname=b(n.pathname.substring(0,o+1),r)+e.pathname)}e.pathname=ae(e.pathname,e.protocol,r)}return typeof t.search==\"string\"&&(e.search=re(t.search,r)),typeof t.hash==\"string\"&&(e.hash=te(t.hash,r)),e}function C(e){return e.replace(/([+*?:{}()\\\\])/g,\"\\\\$1\")}function Oe(e){return e.replace(/([.+*?^${}()[\\]|/\\\\])/g,\"\\\\$1\")}function ke(e,t){t.delimiter??=\"/#?\",t.prefixes??=\"./\",t.sensitive??=!1,t.strict??=!1,t.end??=!0,t.start??=!0,t.endsWith=\"\";let r=\".*\",n=`[^${Oe(t.delimiter)}]+?`,o=/[$_\\u200C\\u200D\\p{ID_Continue}]/u,c=\"\";for(let l=0;l0?e[l-1]:null,d=l0?d.value[0]:\"\";a=o.test(T)}else a=!d.hasCustomName();if(!a&&!s.prefix.length&&f&&f.type===3){let T=f.value[f.value.length-1];a=t.prefixes.includes(T)}a&&(c+=\"{\"),c+=C(s.prefix),i&&(c+=`:${s.name}`),s.type===2?c+=`(${s.value})`:s.type===1?i||(c+=`(${n})`):s.type===0&&(!i&&(!f||f.type===3||f.modifier!==3||a||s.prefix!==\"\")?c+=\"*\":c+=`(${r})`),s.type===1&&i&&s.suffix.length&&o.test(s.suffix[0])&&(c+=\"\\\\\"),c+=C(s.suffix),a&&(c+=\"}\"),s.modifier!==3&&(c+=k(s.modifier))}return c}var me=class{#i;#n={};#t={};#e={};#s={};#l=!1;constructor(t={},r,n){try{let o;if(typeof r==\"string\"?o=r:n=r,typeof t==\"string\"){let i=new H(t);if(i.parse(),t=i.result,o===void 0&&typeof t.protocol!=\"string\")throw new TypeError(\"A base URL must be provided for a relative constructor string.\");t.baseURL=o}else{if(!t||typeof t!=\"object\")throw new TypeError(\"parameter 1 is not of type 'string' and cannot convert to dictionary.\");if(o)throw new TypeError(\"parameter 1 is not of type 'string'.\")}typeof n>\"u\"&&(n={ignoreCase:!1});let c={ignoreCase:n.ignoreCase===!0},l={pathname:E,protocol:E,username:E,password:E,hostname:E,port:E,search:E,hash:E};this.#i=w(l,t,!0),_(this.#i.protocol)===this.#i.port&&(this.#i.port=\"\");let s;for(s of G){if(!(s in this.#i))continue;let i={},a=this.#i[s];switch(this.#t[s]=[],s){case\"protocol\":Object.assign(i,x),i.encodePart=y;break;case\"username\":Object.assign(i,x),i.encodePart=le;break;case\"password\":Object.assign(i,x),i.encodePart=fe;break;case\"hostname\":Object.assign(i,B),W(a)?i.encodePart=j:i.encodePart=z;break;case\"port\":Object.assign(i,x),i.encodePart=K;break;case\"pathname\":N(this.#n.protocol)?(Object.assign(i,q,c),i.encodePart=he):(Object.assign(i,x,c),i.encodePart=ue);break;case\"search\":Object.assign(i,x,c),i.encodePart=de;break;case\"hash\":Object.assign(i,x,c),i.encodePart=pe;break}try{this.#s[s]=D(a,i),this.#n[s]=F(this.#s[s],this.#t[s],i),this.#e[s]=ke(this.#s[s],i),this.#l=this.#l||this.#s[s].some(f=>f.type===2)}catch{throw new TypeError(`invalid ${s} pattern '${this.#i[s]}'.`)}}}catch(o){throw new TypeError(`Failed to construct 'URLPattern': ${o.message}`)}}test(t={},r){let n={pathname:\"\",protocol:\"\",username:\"\",password:\"\",hostname:\"\",port:\"\",search:\"\",hash:\"\"};if(typeof t!=\"string\"&&r)throw new TypeError(\"parameter 1 is not of type 'string'.\");if(typeof t>\"u\")return!1;try{typeof t==\"object\"?n=w(n,t,!1):n=w(n,ge(t,r),!1)}catch{return!1}let o;for(o of G)if(!this.#n[o].exec(n[o]))return!1;return!0}exec(t={},r){let n={pathname:\"\",protocol:\"\",username:\"\",password:\"\",hostname:\"\",port:\"\",search:\"\",hash:\"\"};if(typeof t!=\"string\"&&r)throw new TypeError(\"parameter 1 is not of type 'string'.\");if(typeof t>\"u\")return;try{typeof t==\"object\"?n=w(n,t,!1):n=w(n,ge(t,r),!1)}catch{return null}let o={};r?o.inputs=[t,r]:o.inputs=[t];let c;for(c of G){let l=this.#n[c].exec(n[c]);if(!l)return null;let s={};for(let[i,a]of this.#t[c].entries())if(typeof a==\"string\"||typeof a==\"number\"){let f=l[i+1];s[a]=f}o[c]={input:n[c]??\"\",groups:s}}return o}static compareComponent(t,r,n){let o=(i,a)=>{for(let f of[\"type\",\"modifier\",\"prefix\",\"value\",\"suffix\"]){if(i[f]{let f=0;for(;f{for(const i of o)if(i.type==="childList")for(const s of i.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&n(s)}).observe(document,{childList:!0,subtree:!0});function r(o){const i={};return o.integrity&&(i.integrity=o.integrity),o.referrerPolicy&&(i.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?i.credentials="include":o.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function n(o){if(o.ep)return;o.ep=!0;const i=r(o);fetch(o.href,i)}})();var Ar="";function Sr(e){Ar=e}function ps(e=""){if(!Ar){const t=[...document.getElementsByTagName("script")],r=t.find(n=>n.hasAttribute("data-shoelace"));if(r)Sr(r.getAttribute("data-shoelace"));else{const n=t.find(i=>/shoelace(\.min)?\.js($|\?)/.test(i.src)||/shoelace-autoloader(\.min)?\.js($|\?)/.test(i.src));let o="";n&&(o=n.getAttribute("src")),Sr(o.split("/").slice(0,-1).join("/"))}}return Ar.replace(/\/$/,"")+(e?`/${e.replace(/^\//,"")}`:"")}var go=Object.defineProperty,gs=Object.defineProperties,bs=Object.getOwnPropertyDescriptor,ms=Object.getOwnPropertyDescriptors,Tn=Object.getOwnPropertySymbols,ys=Object.prototype.hasOwnProperty,ws=Object.prototype.propertyIsEnumerable,In=(e,t,r)=>t in e?go(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,_e=(e,t)=>{for(var r in t||(t={}))ys.call(t,r)&&In(e,r,t[r]);if(Tn)for(var r of Tn(t))ws.call(t,r)&&In(e,r,t[r]);return e},bo=(e,t)=>gs(e,ms(t)),T=(e,t,r,n)=>{for(var o=n>1?void 0:n?bs(t,r):t,i=e.length-1,s;i>=0;i--)(s=e[i])&&(o=(n?s(t,r,o):s(o))||o);return n&&o&&go(t,r,o),o},mo=(e,t,r)=>{if(!t.has(e))throw TypeError("Cannot "+r)},vs=(e,t,r)=>(mo(e,t,"read from private field"),t.get(e)),xs=(e,t,r)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,r)},Es=(e,t,r,n)=>(mo(e,t,"write to private field"),t.set(e,r),r);Sr("https://cdn.jsdelivr.net/npm/@shoelace-style/shoelace@2.16.0/cdn/");/** + * @license + * Copyright 2019 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const Be=globalThis,qr=Be.ShadowRoot&&(Be.ShadyCSS===void 0||Be.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,jr=Symbol(),Mn=new WeakMap;let yo=class{constructor(t,r,n){if(this._$cssResult$=!0,n!==jr)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=r}get styleSheet(){let t=this.o;const r=this.t;if(qr&&t===void 0){const n=r!==void 0&&r.length===1;n&&(t=Mn.get(r)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),n&&Mn.set(r,t))}return t}toString(){return this.cssText}};const _s=e=>new yo(typeof e=="string"?e:e+"",void 0,jr),ct=(e,...t)=>{const r=e.length===1?e[0]:t.reduce((n,o,i)=>n+(s=>{if(s._$cssResult$===!0)return s.cssText;if(typeof s=="number")return s;throw Error("Value passed to 'css' function must be a 'css' function result: "+s+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(o)+e[i+1],e[0]);return new yo(r,e,jr)},$s=(e,t)=>{if(qr)e.adoptedStyleSheets=t.map(r=>r instanceof CSSStyleSheet?r:r.styleSheet);else for(const r of t){const n=document.createElement("style"),o=Be.litNonce;o!==void 0&&n.setAttribute("nonce",o),n.textContent=r.cssText,e.appendChild(n)}},Rn=qr?e=>e:e=>e instanceof CSSStyleSheet?(t=>{let r="";for(const n of t.cssRules)r+=n.cssText;return _s(r)})(e):e;/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const{is:As,defineProperty:Ss,getOwnPropertyDescriptor:ks,getOwnPropertyNames:Ps,getOwnPropertySymbols:Cs,getPrototypeOf:Bs}=Object,Ve=globalThis,Nn=Ve.trustedTypes,Ls=Nn?Nn.emptyScript:"",Us=Ve.reactiveElementPolyfillSupport,me=(e,t)=>e,Ie={toAttribute(e,t){switch(t){case Boolean:e=e?Ls:null;break;case Object:case Array:e=e==null?e:JSON.stringify(e)}return e},fromAttribute(e,t){let r=e;switch(t){case Boolean:r=e!==null;break;case Number:r=e===null?null:Number(e);break;case Object:case Array:try{r=JSON.parse(e)}catch{r=null}}return r}},Fr=(e,t)=>!As(e,t),On={attribute:!0,type:String,converter:Ie,reflect:!1,hasChanged:Fr};Symbol.metadata??=Symbol("metadata"),Ve.litPropertyMetadata??=new WeakMap;class Yt extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,r=On){if(r.state&&(r.attribute=!1),this._$Ei(),this.elementProperties.set(t,r),!r.noAccessor){const n=Symbol(),o=this.getPropertyDescriptor(t,n,r);o!==void 0&&Ss(this.prototype,t,o)}}static getPropertyDescriptor(t,r,n){const{get:o,set:i}=ks(this.prototype,t)??{get(){return this[r]},set(s){this[r]=s}};return{get(){return o?.call(this)},set(s){const l=o?.call(this);i.call(this,s),this.requestUpdate(t,l,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??On}static _$Ei(){if(this.hasOwnProperty(me("elementProperties")))return;const t=Bs(this);t.finalize(),t.l!==void 0&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(me("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(me("properties"))){const r=this.properties,n=[...Ps(r),...Cs(r)];for(const o of n)this.createProperty(o,r[o])}const t=this[Symbol.metadata];if(t!==null){const r=litPropertyMetadata.get(t);if(r!==void 0)for(const[n,o]of r)this.elementProperties.set(n,o)}this._$Eh=new Map;for(const[r,n]of this.elementProperties){const o=this._$Eu(r,n);o!==void 0&&this._$Eh.set(o,r)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){const r=[];if(Array.isArray(t)){const n=new Set(t.flat(1/0).reverse());for(const o of n)r.unshift(Rn(o))}else t!==void 0&&r.push(Rn(t));return r}static _$Eu(t,r){const n=r.attribute;return n===!1?void 0:typeof n=="string"?n:typeof t=="string"?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),this.renderRoot!==void 0&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,r=this.constructor.elementProperties;for(const n of r.keys())this.hasOwnProperty(n)&&(t.set(n,this[n]),delete this[n]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return $s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,r,n){this._$AK(t,n)}_$EC(t,r){const n=this.constructor.elementProperties.get(t),o=this.constructor._$Eu(t,n);if(o!==void 0&&n.reflect===!0){const i=(n.converter?.toAttribute!==void 0?n.converter:Ie).toAttribute(r,n.type);this._$Em=t,i==null?this.removeAttribute(o):this.setAttribute(o,i),this._$Em=null}}_$AK(t,r){const n=this.constructor,o=n._$Eh.get(t);if(o!==void 0&&this._$Em!==o){const i=n.getPropertyOptions(o),s=typeof i.converter=="function"?{fromAttribute:i.converter}:i.converter?.fromAttribute!==void 0?i.converter:Ie;this._$Em=o,this[o]=s.fromAttribute(r,i.type),this._$Em=null}}requestUpdate(t,r,n){if(t!==void 0){if(n??=this.constructor.getPropertyOptions(t),!(n.hasChanged??Fr)(this[t],r))return;this.P(t,r,n)}this.isUpdatePending===!1&&(this._$ES=this._$ET())}P(t,r,n){this._$AL.has(t)||this._$AL.set(t,r),n.reflect===!0&&this._$Em!==t&&(this._$Ej??=new Set).add(t)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(r){Promise.reject(r)}const t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[o,i]of this._$Ep)this[o]=i;this._$Ep=void 0}const n=this.constructor.elementProperties;if(n.size>0)for(const[o,i]of n)i.wrapped!==!0||this._$AL.has(o)||this[o]===void 0||this.P(o,this[o],i)}let t=!1;const r=this._$AL;try{t=this.shouldUpdate(r),t?(this.willUpdate(r),this._$EO?.forEach(n=>n.hostUpdate?.()),this.update(r)):this._$EU()}catch(n){throw t=!1,this._$EU(),n}t&&this._$AE(r)}willUpdate(t){}_$AE(t){this._$EO?.forEach(r=>r.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Ej&&=this._$Ej.forEach(r=>this._$EC(r,this[r])),this._$EU()}updated(t){}firstUpdated(t){}}Yt.elementStyles=[],Yt.shadowRootOptions={mode:"open"},Yt[me("elementProperties")]=new Map,Yt[me("finalized")]=new Map,Us?.({ReactiveElement:Yt}),(Ve.reactiveElementVersions??=[]).push("2.0.4");/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const Wr=globalThis,Me=Wr.trustedTypes,Hn=Me?Me.createPolicy("lit-html",{createHTML:e=>e}):void 0,wo="$lit$",Ct=`lit$${Math.random().toFixed(9).slice(2)}$`,vo="?"+Ct,Ts=`<${vo}>`,qt=document,ye=()=>qt.createComment(""),we=e=>e===null||typeof e!="object"&&typeof e!="function",Kr=Array.isArray,Is=e=>Kr(e)||typeof e?.[Symbol.iterator]=="function",lr=`[ +\f\r]`,de=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,zn=/-->/g,Vn=/>/g,Ot=RegExp(`>|${lr}(?:([^\\s"'>=/]+)(${lr}*=${lr}*(?:[^ +\f\r"'\`<>=]|("|')|))|$)`,"g"),Dn=/'/g,qn=/"/g,xo=/^(?:script|style|textarea|title)$/i,Ms=e=>(t,...r)=>({_$litType$:e,strings:t,values:r}),G=Ms(1),jt=Symbol.for("lit-noChange"),F=Symbol.for("lit-nothing"),jn=new WeakMap,Vt=qt.createTreeWalker(qt,129);function Eo(e,t){if(!Kr(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return Hn!==void 0?Hn.createHTML(t):t}const Rs=(e,t)=>{const r=e.length-1,n=[];let o,i=t===2?"":t===3?"":"",s=de;for(let l=0;l"?(s=o??de,d=-1):u[1]===void 0?d=-2:(d=s.lastIndex-u[2].length,c=u[1],s=u[3]===void 0?Ot:u[3]==='"'?qn:Dn):s===qn||s===Dn?s=Ot:s===zn||s===Vn?s=de:(s=Ot,o=void 0);const g=s===Ot&&e[l+1].startsWith("/>")?" ":"";i+=s===de?a+Ts:d>=0?(n.push(c),a.slice(0,d)+wo+a.slice(d)+Ct+g):a+Ct+(d===-2?l:g)}return[Eo(e,i+(e[r]||"")+(t===2?"":t===3?"":"")),n]};class ve{constructor({strings:t,_$litType$:r},n){let o;this.parts=[];let i=0,s=0;const l=t.length-1,a=this.parts,[c,u]=Rs(t,r);if(this.el=ve.createElement(c,n),Vt.currentNode=this.el.content,r===2||r===3){const d=this.el.content.firstChild;d.replaceWith(...d.childNodes)}for(;(o=Vt.nextNode())!==null&&a.length0){o.textContent=Me?Me.emptyScript:"";for(let g=0;g2||n[0]!==""||n[1]!==""?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=F}_$AI(t,r=this,n,o){const i=this.strings;let s=!1;if(i===void 0)t=te(this,t,r,0),s=!we(t)||t!==this._$AH&&t!==jt,s&&(this._$AH=t);else{const l=t;let a,c;for(t=i[0],a=0;a{const n=r?.renderBefore??t;let o=n._$litPart$;if(o===void 0){const i=r?.renderBefore??null;n._$litPart$=o=new $e(t.insertBefore(ye(),i),i,void 0,r??{})}return o._$AI(e),o};/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */let gt=class extends Yt{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=qs(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return jt}};gt._$litElement$=!0,gt.finalized=!0,globalThis.litElementHydrateSupport?.({LitElement:gt});const js=globalThis.litElementPolyfillSupport;js?.({LitElement:gt});(globalThis.litElementVersions??=[]).push("4.1.1");/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const qe=e=>(t,r)=>{r!==void 0?r.addInitializer(()=>{customElements.define(e,t)}):customElements.define(e,t)};/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const Fs={attribute:!0,type:String,converter:Ie,reflect:!1,hasChanged:Fr},Ws=(e=Fs,t,r)=>{const{kind:n,metadata:o}=r;let i=globalThis.litPropertyMetadata.get(o);if(i===void 0&&globalThis.litPropertyMetadata.set(o,i=new Map),i.set(r.name,e),n==="accessor"){const{name:s}=r;return{set(l){const a=t.get.call(this);t.set.call(this,l),this.requestUpdate(s,a,e)},init(l){return l!==void 0&&this.P(s,void 0,e),l}}}if(n==="setter"){const{name:s}=r;return function(l){const a=this[s];t.call(this,l),this.requestUpdate(s,a,e)}}throw Error("Unsupported decorator location: "+n)};function S(e){return(t,r)=>typeof r=="object"?Ws(e,t,r):((n,o,i)=>{const s=o.hasOwnProperty(i);return o.constructor.createProperty(i,s?{...n,wrapped:!0}:n),s?Object.getOwnPropertyDescriptor(o,i):void 0})(e,t,r)}/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */function Zr(e){return S({...e,state:!0,attribute:!1})}/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const Ks=(e,t,r)=>(r.configurable=!0,r.enumerable=!0,Reflect.decorate&&typeof t!="object"&&Object.defineProperty(e,t,r),r);/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */function Zs(e,t){return(r,n,o)=>{const i=s=>s.renderRoot?.querySelector(e)??null;return Ks(r,n,{get(){return i(this)}})}}function Fn(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function _o(e,...t){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function Gs(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Fn(e.outputLen),Fn(e.blockLen)}function Re(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Js(e,t){_o(e);const r=t.outputLen;if(e.lengthe instanceof Uint8Array,dr=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),ot=(e,t)=>e<<32-t|e>>>t,Ys=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Ys)throw new Error("Non little-endian hardware is not supported");function Xs(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function Gr(e){if(typeof e=="string"&&(e=Xs(e)),!$o(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}function Qs(...e){const t=new Uint8Array(e.reduce((n,o)=>n+o.length,0));let r=0;return e.forEach(n=>{if(!$o(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}let Ao=class{clone(){return this._cloneInto()}};function ta(e){const t=n=>e().update(Gr(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function So(e=32){if(cr&&typeof cr.getRandomValues=="function")return cr.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function ea(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);const o=BigInt(32),i=BigInt(4294967295),s=Number(r>>o&i),l=Number(r&i),a=n?4:0,c=n?0:4;e.setUint32(t+a,s,n),e.setUint32(t+c,l,n)}let ra=class extends Ao{constructor(t,r,n,o){super(),this.blockLen=t,this.outputLen=r,this.padOffset=n,this.isLE=o,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=dr(this.buffer)}update(t){Re(this);const{view:r,buffer:n,blockLen:o}=this;t=Gr(t);const i=t.length;for(let s=0;so-s&&(this.process(n,0),s=0);for(let d=s;du.length)throw new Error("_sha2: outputLen bigger than state");for(let d=0;de&t^~e&r,oa=(e,t,r)=>e&t^e&r^t&r,ia=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),$t=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),At=new Uint32Array(64);let sa=class extends ra{constructor(){super(64,32,8,!1),this.A=$t[0]|0,this.B=$t[1]|0,this.C=$t[2]|0,this.D=$t[3]|0,this.E=$t[4]|0,this.F=$t[5]|0,this.G=$t[6]|0,this.H=$t[7]|0}get(){const{A:t,B:r,C:n,D:o,E:i,F:s,G:l,H:a}=this;return[t,r,n,o,i,s,l,a]}set(t,r,n,o,i,s,l,a){this.A=t|0,this.B=r|0,this.C=n|0,this.D=o|0,this.E=i|0,this.F=s|0,this.G=l|0,this.H=a|0}process(t,r){for(let d=0;d<16;d++,r+=4)At[d]=t.getUint32(r,!1);for(let d=16;d<64;d++){const m=At[d-15],g=At[d-2],p=ot(m,7)^ot(m,18)^m>>>3,h=ot(g,17)^ot(g,19)^g>>>10;At[d]=h+At[d-7]+p+At[d-16]|0}let{A:n,B:o,C:i,D:s,E:l,F:a,G:c,H:u}=this;for(let d=0;d<64;d++){const m=ot(l,6)^ot(l,11)^ot(l,25),g=u+m+na(l,a,c)+ia[d]+At[d]|0,h=(ot(n,2)^ot(n,13)^ot(n,22))+oa(n,o,i)|0;u=c,c=a,a=l,l=s+g|0,s=i,i=o,o=n,n=g+h|0}n=n+this.A|0,o=o+this.B|0,i=i+this.C|0,s=s+this.D|0,l=l+this.E|0,a=a+this.F|0,c=c+this.G|0,u=u+this.H|0,this.set(n,o,i,s,l,a,c,u)}roundClean(){At.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};const kr=ta(()=>new sa);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const ko=BigInt(0),je=BigInt(1),aa=BigInt(2),Fe=e=>e instanceof Uint8Array,la=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function ee(e){if(!Fe(e))throw new Error("Uint8Array expected");let t="";for(let r=0;rn+o.length,0));let r=0;return e.forEach(n=>{if(!Fe(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}function da(e,t){if(e.length!==t.length)return!1;for(let r=0;rko;e>>=je,t+=1);return t}function fa(e,t){return e>>BigInt(t)&je}const pa=(e,t,r)=>e|(r?je:ko)<(aa<new Uint8Array(e),Wn=e=>Uint8Array.from(e);function Co(e,t,r){if(typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof r!="function")throw new Error("hmacFn must be a function");let n=ur(e),o=ur(e),i=0;const s=()=>{n.fill(1),o.fill(0),i=0},l=(...d)=>r(o,n,...d),a=(d=ur())=>{o=l(Wn([0]),d),n=l(),d.length!==0&&(o=l(Wn([1]),d),n=l())},c=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let d=0;const m=[];for(;d{s(),a(d);let g;for(;!(g=m(c()));)a();return s(),g}}const ga={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",stringOrUint8Array:e=>typeof e=="string"||e instanceof Uint8Array,isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>typeof e=="function"&&Number.isSafeInteger(e.outputLen)};function Ae(e,t,r={}){const n=(o,i,s)=>{const l=ga[i];if(typeof l!="function")throw new Error(`Invalid validator "${i}", expected function`);const a=e[o];if(!(s&&a===void 0)&&!l(a,e))throw new Error(`Invalid param ${String(o)}=${a} (${typeof a}), expected ${i}`)};for(const[o,i]of Object.entries(t))n(o,i,!1);for(const[o,i]of Object.entries(r))n(o,i,!0);return e}const ba=Object.freeze(Object.defineProperty({__proto__:null,bitGet:fa,bitLen:ha,bitMask:Qr,bitSet:pa,bytesToHex:ee,bytesToNumberBE:X,bytesToNumberLE:Yr,concatBytes:Ft,createHmacDrbg:Co,ensureBytes:Z,equalBytes:da,hexToBytes:re,hexToNumber:Jr,numberToBytesBE:Tt,numberToBytesLE:Xr,numberToHexUnpadded:Po,numberToVarBytesBE:ca,utf8ToBytes:ua,validateObject:Ae},Symbol.toStringTag,{value:"Module"}));/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const W=BigInt(0),j=BigInt(1),Ht=BigInt(2),ma=BigInt(3),Pr=BigInt(4),Kn=BigInt(5),Zn=BigInt(8);BigInt(9);BigInt(16);function K(e,t){const r=e%t;return r>=W?r:t+r}function ya(e,t,r){if(r<=W||t 0");if(r===j)return W;let n=j;for(;t>W;)t&j&&(n=n*e%r),e=e*e%r,t>>=j;return n}function Q(e,t,r){let n=e;for(;t-- >W;)n*=n,n%=r;return n}function Cr(e,t){if(e===W||t<=W)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=K(e,t),n=t,o=W,i=j;for(;r!==W;){const l=n/r,a=n%r,c=o-i*l;n=r,r=a,o=i,i=c}if(n!==j)throw new Error("invert: does not exist");return K(o,t)}function wa(e){const t=(e-j)/Ht;let r,n,o;for(r=e-j,n=0;r%Ht===W;r/=Ht,n++);for(o=Ht;o(n[o]="function",n),t);return Ae(e,r)}function _a(e,t,r){if(r 0");if(r===W)return e.ONE;if(r===j)return t;let n=e.ONE,o=t;for(;r>W;)r&j&&(n=e.mul(n,o)),o=e.sqr(o),r>>=j;return n}function $a(e,t){const r=new Array(t.length),n=t.reduce((i,s,l)=>e.is0(s)?i:(r[l]=i,e.mul(i,s)),e.ONE),o=e.inv(n);return t.reduceRight((i,s,l)=>e.is0(s)?i:(r[l]=e.mul(i,r[l]),e.mul(i,s)),o),r}function Bo(e,t){const r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function Aa(e,t,r=!1,n={}){if(e<=W)throw new Error(`Expected Field ORDER > 0, got ${e}`);const{nBitLength:o,nByteLength:i}=Bo(e,t);if(i>2048)throw new Error("Field lengths over 2048 bytes are not supported");const s=va(e),l=Object.freeze({ORDER:e,BITS:o,BYTES:i,MASK:Qr(o),ZERO:W,ONE:j,create:a=>K(a,e),isValid:a=>{if(typeof a!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof a}`);return W<=a&&aa===W,isOdd:a=>(a&j)===j,neg:a=>K(-a,e),eql:(a,c)=>a===c,sqr:a=>K(a*a,e),add:(a,c)=>K(a+c,e),sub:(a,c)=>K(a-c,e),mul:(a,c)=>K(a*c,e),pow:(a,c)=>_a(l,a,c),div:(a,c)=>K(a*Cr(c,e),e),sqrN:a=>a*a,addN:(a,c)=>a+c,subN:(a,c)=>a-c,mulN:(a,c)=>a*c,inv:a=>Cr(a,e),sqrt:n.sqrt||(a=>s(l,a)),invertBatch:a=>$a(l,a),cmov:(a,c,u)=>u?c:a,toBytes:a=>r?Xr(a,i):Tt(a,i),fromBytes:a=>{if(a.length!==i)throw new Error(`Fp.fromBytes: expected ${i}, got ${a.length}`);return r?Yr(a):X(a)}});return Object.freeze(l)}function Lo(e){if(typeof e!="bigint")throw new Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function Uo(e){const t=Lo(e);return t+Math.ceil(t/2)}function Sa(e,t,r=!1){const n=e.length,o=Lo(t),i=Uo(t);if(n<16||n1024)throw new Error(`expected ${i}-1024 bytes of input, got ${n}`);const s=r?X(e):Yr(e),l=K(s,t-j)+j;return r?Xr(l,o):Tt(l,o)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const ka=BigInt(0),hr=BigInt(1);function Pa(e,t){const r=(o,i)=>{const s=i.negate();return o?s:i},n=o=>{const i=Math.ceil(t/o)+1,s=2**(o-1);return{windows:i,windowSize:s}};return{constTimeNegate:r,unsafeLadder(o,i){let s=e.ZERO,l=o;for(;i>ka;)i&hr&&(s=s.add(l)),l=l.double(),i>>=hr;return s},precomputeWindow(o,i){const{windows:s,windowSize:l}=n(i),a=[];let c=o,u=c;for(let d=0;d>=g,f>a&&(f-=m,s+=hr);const b=h,x=h+Math.abs(f)-1,A=p%2!==0,U=f<0;f===0?u=u.add(r(A,i[b])):c=c.add(r(U,i[x]))}return{p:c,f:u}},wNAFCached(o,i,s,l){const a=o._WINDOW_SIZE||1;let c=i.get(o);return c||(c=this.precomputeWindow(o,a),a!==1&&i.set(o,l(c))),this.wNAF(a,c,s)}}}function To(e){return Ea(e.Fp),Ae(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Bo(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Ca(e){const t=To(e);Ae(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:r,Fp:n,a:o}=t;if(r){if(!n.eql(o,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof r!="object"||typeof r.beta!="bigint"||typeof r.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}const{bytesToNumberBE:Ba,hexToBytes:La}=ba,Dt={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(e){const{Err:t}=Dt;if(e.length<2||e[0]!==2)throw new t("Invalid signature integer tag");const r=e[1],n=e.subarray(2,r+2);if(!r||n.length!==r)throw new t("Invalid signature integer: wrong length");if(n[0]&128)throw new t("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new t("Invalid signature integer: unnecessary leading zero");return{d:Ba(n),l:e.subarray(r+2)}},toSig(e){const{Err:t}=Dt,r=typeof e=="string"?La(e):e;if(!(r instanceof Uint8Array))throw new Error("ui8a expected");let n=r.length;if(n<2||r[0]!=48)throw new t("Invalid signature tag");if(r[1]!==n-2)throw new t("Invalid signature: incorrect length");const{d:o,l:i}=Dt._parseInt(r.subarray(2)),{d:s,l}=Dt._parseInt(i);if(l.length)throw new t("Invalid signature: left bytes after parsing");return{r:o,s}},hexFromSig(e){const t=c=>Number.parseInt(c[0],16)&8?"00"+c:c,r=c=>{const u=c.toString(16);return u.length&1?`0${u}`:u},n=t(r(e.s)),o=t(r(e.r)),i=n.length/2,s=o.length/2,l=r(i),a=r(s);return`30${r(s+i+4)}02${a}${o}02${l}${n}`}},ht=BigInt(0),tt=BigInt(1);BigInt(2);const Gn=BigInt(3);BigInt(4);function Ua(e){const t=Ca(e),{Fp:r}=t,n=t.toBytes||((p,h,f)=>{const b=h.toAffine();return Ft(Uint8Array.from([4]),r.toBytes(b.x),r.toBytes(b.y))}),o=t.fromBytes||(p=>{const h=p.subarray(1),f=r.fromBytes(h.subarray(0,r.BYTES)),b=r.fromBytes(h.subarray(r.BYTES,2*r.BYTES));return{x:f,y:b}});function i(p){const{a:h,b:f}=t,b=r.sqr(p),x=r.mul(b,p);return r.add(r.add(x,r.mul(p,h)),f)}if(!r.eql(r.sqr(t.Gy),i(t.Gx)))throw new Error("bad generator point: equation left != right");function s(p){return typeof p=="bigint"&&htr.eql(A,r.ZERO);return x(f)&&x(b)?d.ZERO:new d(f,b,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(h){const f=r.invertBatch(h.map(b=>b.pz));return h.map((b,x)=>b.toAffine(f[x])).map(d.fromAffine)}static fromHex(h){const f=d.fromAffine(o(Z("pointHex",h)));return f.assertValidity(),f}static fromPrivateKey(h){return d.BASE.multiply(a(h))}_setWindowSize(h){this._WINDOW_SIZE=h,c.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint&&!r.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:h,y:f}=this.toAffine();if(!r.isValid(h)||!r.isValid(f))throw new Error("bad point: x or y not FE");const b=r.sqr(f),x=i(h);if(!r.eql(b,x))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:h}=this.toAffine();if(r.isOdd)return!r.isOdd(h);throw new Error("Field doesn't support isOdd")}equals(h){u(h);const{px:f,py:b,pz:x}=this,{px:A,py:U,pz:C}=h,v=r.eql(r.mul(f,C),r.mul(A,x)),E=r.eql(r.mul(b,C),r.mul(U,x));return v&&E}negate(){return new d(this.px,r.neg(this.py),this.pz)}double(){const{a:h,b:f}=t,b=r.mul(f,Gn),{px:x,py:A,pz:U}=this;let C=r.ZERO,v=r.ZERO,E=r.ZERO,_=r.mul(x,x),V=r.mul(A,A),L=r.mul(U,U),k=r.mul(x,A);return k=r.add(k,k),E=r.mul(x,U),E=r.add(E,E),C=r.mul(h,E),v=r.mul(b,L),v=r.add(C,v),C=r.sub(V,v),v=r.add(V,v),v=r.mul(C,v),C=r.mul(k,C),E=r.mul(b,E),L=r.mul(h,L),k=r.sub(_,L),k=r.mul(h,k),k=r.add(k,E),E=r.add(_,_),_=r.add(E,_),_=r.add(_,L),_=r.mul(_,k),v=r.add(v,_),L=r.mul(A,U),L=r.add(L,L),_=r.mul(L,k),C=r.sub(C,_),E=r.mul(L,V),E=r.add(E,E),E=r.add(E,E),new d(C,v,E)}add(h){u(h);const{px:f,py:b,pz:x}=this,{px:A,py:U,pz:C}=h;let v=r.ZERO,E=r.ZERO,_=r.ZERO;const V=t.a,L=r.mul(t.b,Gn);let k=r.mul(f,A),O=r.mul(b,U),H=r.mul(x,C),D=r.add(f,b),y=r.add(A,U);D=r.mul(D,y),y=r.add(k,O),D=r.sub(D,y),y=r.add(f,x);let w=r.add(A,C);return y=r.mul(y,w),w=r.add(k,H),y=r.sub(y,w),w=r.add(b,x),v=r.add(U,C),w=r.mul(w,v),v=r.add(O,H),w=r.sub(w,v),_=r.mul(V,y),v=r.mul(L,H),_=r.add(v,_),v=r.sub(O,_),_=r.add(O,_),E=r.mul(v,_),O=r.add(k,k),O=r.add(O,k),H=r.mul(V,H),y=r.mul(L,y),O=r.add(O,H),H=r.sub(k,H),H=r.mul(V,H),y=r.add(y,H),k=r.mul(O,y),E=r.add(E,k),k=r.mul(w,y),v=r.mul(D,v),v=r.sub(v,k),k=r.mul(D,O),_=r.mul(w,_),_=r.add(_,k),new d(v,E,_)}subtract(h){return this.add(h.negate())}is0(){return this.equals(d.ZERO)}wNAF(h){return g.wNAFCached(this,c,h,f=>{const b=r.invertBatch(f.map(x=>x.pz));return f.map((x,A)=>x.toAffine(b[A])).map(d.fromAffine)})}multiplyUnsafe(h){const f=d.ZERO;if(h===ht)return f;if(l(h),h===tt)return this;const{endo:b}=t;if(!b)return g.unsafeLadder(this,h);let{k1neg:x,k1:A,k2neg:U,k2:C}=b.splitScalar(h),v=f,E=f,_=this;for(;A>ht||C>ht;)A&tt&&(v=v.add(_)),C&tt&&(E=E.add(_)),_=_.double(),A>>=tt,C>>=tt;return x&&(v=v.negate()),U&&(E=E.negate()),E=new d(r.mul(E.px,b.beta),E.py,E.pz),v.add(E)}multiply(h){l(h);let f=h,b,x;const{endo:A}=t;if(A){const{k1neg:U,k1:C,k2neg:v,k2:E}=A.splitScalar(f);let{p:_,f:V}=this.wNAF(C),{p:L,f:k}=this.wNAF(E);_=g.constTimeNegate(U,_),L=g.constTimeNegate(v,L),L=new d(r.mul(L.px,A.beta),L.py,L.pz),b=_.add(L),x=V.add(k)}else{const{p:U,f:C}=this.wNAF(f);b=U,x=C}return d.normalizeZ([b,x])[0]}multiplyAndAddUnsafe(h,f,b){const x=d.BASE,A=(C,v)=>v===ht||v===tt||!C.equals(x)?C.multiplyUnsafe(v):C.multiply(v),U=A(this,f).add(A(h,b));return U.is0()?void 0:U}toAffine(h){const{px:f,py:b,pz:x}=this,A=this.is0();h==null&&(h=A?r.ONE:r.inv(x));const U=r.mul(f,h),C=r.mul(b,h),v=r.mul(x,h);if(A)return{x:r.ZERO,y:r.ZERO};if(!r.eql(v,r.ONE))throw new Error("invZ was invalid");return{x:U,y:C}}isTorsionFree(){const{h,isTorsionFree:f}=t;if(h===tt)return!0;if(f)return f(d,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h,clearCofactor:f}=t;return h===tt?this:f?f(d,this):this.multiplyUnsafe(t.h)}toRawBytes(h=!0){return this.assertValidity(),n(d,this,h)}toHex(h=!0){return ee(this.toRawBytes(h))}}d.BASE=new d(t.Gx,t.Gy,r.ONE),d.ZERO=new d(r.ZERO,r.ONE,r.ZERO);const m=t.nBitLength,g=Pa(d,t.endo?Math.ceil(m/2):m);return{CURVE:t,ProjectivePoint:d,normPrivateKeyToScalar:a,weierstrassEquation:i,isWithinCurveOrder:s}}function Ta(e){const t=To(e);return Ae(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function Ia(e){const t=Ta(e),{Fp:r,n}=t,o=r.BYTES+1,i=2*r.BYTES+1;function s(y){return htee(Tt(y,t.nByteLength));function p(y){const w=n>>tt;return y>w}function h(y){return p(y)?l(-y):y}const f=(y,w,$)=>X(y.slice(w,$));class b{constructor(w,$,B){this.r=w,this.s=$,this.recovery=B,this.assertValidity()}static fromCompact(w){const $=t.nByteLength;return w=Z("compactSignature",w,$*2),new b(f(w,0,$),f(w,$,2*$))}static fromDER(w){const{r:$,s:B}=Dt.toSig(Z("DER",w));return new b($,B)}assertValidity(){if(!m(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!m(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(w){return new b(this.r,this.s,w)}recoverPublicKey(w){const{r:$,s:B,recovery:P}=this,I=E(Z("msgHash",w));if(P==null||![0,1,2,3].includes(P))throw new Error("recovery id invalid");const z=P===2||P===3?$+t.n:$;if(z>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");const R=P&1?"03":"02",et=c.fromHex(R+g(z)),Et=a(z),Kt=l(-I*Et),ce=l(B*Et),_t=c.BASE.multiplyAndAddUnsafe(et,Kt,ce);if(!_t)throw new Error("point at infinify");return _t.assertValidity(),_t}hasHighS(){return p(this.s)}normalizeS(){return this.hasHighS()?new b(this.r,l(-this.s),this.recovery):this}toDERRawBytes(){return re(this.toDERHex())}toDERHex(){return Dt.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return re(this.toCompactHex())}toCompactHex(){return g(this.r)+g(this.s)}}const x={isValidPrivateKey(y){try{return u(y),!0}catch{return!1}},normPrivateKeyToScalar:u,randomPrivateKey:()=>{const y=Uo(t.n);return Sa(t.randomBytes(y),t.n)},precompute(y=8,w=c.BASE){return w._setWindowSize(y),w.multiply(BigInt(3)),w}};function A(y,w=!0){return c.fromPrivateKey(y).toRawBytes(w)}function U(y){const w=y instanceof Uint8Array,$=typeof y=="string",B=(w||$)&&y.length;return w?B===o||B===i:$?B===2*o||B===2*i:y instanceof c}function C(y,w,$=!0){if(U(y))throw new Error("first arg must be private key");if(!U(w))throw new Error("second arg must be public key");return c.fromHex(w).multiply(u(y)).toRawBytes($)}const v=t.bits2int||function(y){const w=X(y),$=y.length*8-t.nBitLength;return $>0?w>>BigInt($):w},E=t.bits2int_modN||function(y){return l(v(y))},_=Qr(t.nBitLength);function V(y){if(typeof y!="bigint")throw new Error("bigint expected");if(!(ht<=y&&y<_))throw new Error(`bigint expected < 2^${t.nBitLength}`);return Tt(y,t.nByteLength)}function L(y,w,$=k){if(["recovered","canonical"].some(Nt=>Nt in $))throw new Error("sign() legacy options not supported");const{hash:B,randomBytes:P}=t;let{lowS:I,prehash:z,extraEntropy:R}=$;I==null&&(I=!0),y=Z("msgHash",y),z&&(y=Z("prehashed msgHash",B(y)));const et=E(y),Et=u(w),Kt=[V(Et),V(et)];if(R!=null){const Nt=R===!0?P(r.BYTES):R;Kt.push(Z("extraEntropy",Nt))}const ce=Ft(...Kt),_t=et;function ar(Nt){const Zt=v(Nt);if(!m(Zt))return;const Bn=a(Zt),nt=c.BASE.multiply(Zt).toAffine(),Gt=l(nt.x);if(Gt===ht)return;const Se=l(Bn*l(_t+Gt*Et));if(Se===ht)return;let Ln=(nt.x===Gt?0:2)|Number(nt.y&tt),Un=Se;return I&&p(Se)&&(Un=h(Se),Ln^=1),new b(Gt,Un,Ln)}return{seed:ce,k2sig:ar}}const k={lowS:t.lowS,prehash:!1},O={lowS:t.lowS,prehash:!1};function H(y,w,$=k){const{seed:B,k2sig:P}=L(y,w,$),I=t;return Co(I.hash.outputLen,I.nByteLength,I.hmac)(B,P)}c.BASE._setWindowSize(8);function D(y,w,$,B=O){const P=y;if(w=Z("msgHash",w),$=Z("publicKey",$),"strict"in B)throw new Error("options.strict was renamed to lowS");const{lowS:I,prehash:z}=B;let R,et;try{if(typeof P=="string"||P instanceof Uint8Array)try{R=b.fromDER(P)}catch(nt){if(!(nt instanceof Dt.Err))throw nt;R=b.fromCompact(P)}else if(typeof P=="object"&&typeof P.r=="bigint"&&typeof P.s=="bigint"){const{r:nt,s:Gt}=P;R=new b(nt,Gt)}else throw new Error("PARSE");et=c.fromHex($)}catch(nt){if(nt.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(I&&R.hasHighS())return!1;z&&(w=t.hash(w));const{r:Et,s:Kt}=R,ce=E(w),_t=a(Kt),ar=l(ce*_t),Nt=l(Et*_t),Zt=c.BASE.multiplyAndAddUnsafe(et,ar,Nt)?.toAffine();return Zt?l(Zt.x)===Et:!1}return{CURVE:t,getPublicKey:A,getSharedSecret:C,sign:H,verify:D,ProjectivePoint:c,Signature:b,utils:x}}let Io=class extends Ao{constructor(t,r){super(),this.finished=!1,this.destroyed=!1,Gs(t);const n=Gr(r);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const o=this.blockLen,i=new Uint8Array(o);i.set(n.length>o?t.create().update(n).digest():n);for(let s=0;snew Io(e,t).update(r).digest();Mo.create=(e,t)=>new Io(e,t);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Ma(e){return{hash:e,hmac:(t,...r)=>Mo(e,t,Qs(...r)),randomBytes:So}}function Ra(e,t){const r=n=>Ia({...e,...Ma(n)});return Object.freeze({...r(t),create:r})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const We=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Ne=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Ro=BigInt(1),Oe=BigInt(2),Jn=(e,t)=>(e+t/Oe)/t;function No(e){const t=We,r=BigInt(3),n=BigInt(6),o=BigInt(11),i=BigInt(22),s=BigInt(23),l=BigInt(44),a=BigInt(88),c=e*e*e%t,u=c*c*e%t,d=Q(u,r,t)*u%t,m=Q(d,r,t)*u%t,g=Q(m,Oe,t)*c%t,p=Q(g,o,t)*g%t,h=Q(p,i,t)*p%t,f=Q(h,l,t)*h%t,b=Q(f,a,t)*f%t,x=Q(b,l,t)*h%t,A=Q(x,r,t)*u%t,U=Q(A,s,t)*p%t,C=Q(U,n,t)*c%t,v=Q(C,Oe,t);if(!Br.eql(Br.sqr(v),e))throw new Error("Cannot find square root");return v}const Br=Aa(We,void 0,void 0,{sqrt:No}),se=Ra({a:BigInt(0),b:BigInt(7),Fp:Br,n:Ne,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const t=Ne,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Ro*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),o=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=r,s=BigInt("0x100000000000000000000000000000000"),l=Jn(i*e,t),a=Jn(-n*e,t);let c=K(e-l*r-a*o,t),u=K(-l*n-a*i,t);const d=c>s,m=u>s;if(d&&(c=t-c),m&&(u=t-u),c>s||u>s)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:d,k1:c,k2neg:m,k2:u}}}},kr),Ke=BigInt(0),Oo=e=>typeof e=="bigint"&&Ketypeof e=="bigint"&&Keo.charCodeAt(0)));r=Ft(n,n),Yn[e]=r}return kr(Ft(r,...t))}const tn=e=>e.toRawBytes(!0).slice(1),Lr=e=>Tt(e,32),fr=e=>K(e,We),xe=e=>K(e,Ne),en=se.ProjectivePoint,Oa=(e,t,r)=>en.BASE.multiplyAndAddUnsafe(e,t,r);function Ur(e){let t=se.utils.normPrivateKeyToScalar(e),r=en.fromPrivateKey(t);return{scalar:r.hasEvenY()?t:xe(-t),bytes:tn(r)}}function Ho(e){if(!Oo(e))throw new Error("bad x: need 0 < x < p");const t=fr(e*e),r=fr(t*e+BigInt(7));let n=No(r);n%Oe!==Ke&&(n=fr(-n));const o=new en(e,n,Ro);return o.assertValidity(),o}function zo(...e){return xe(X(He("BIP0340/challenge",...e)))}function Ha(e){return Ur(e).bytes}function za(e,t,r=So(32)){const n=Z("message",e),{bytes:o,scalar:i}=Ur(t),s=Z("auxRand",r,32),l=Lr(i^X(He("BIP0340/aux",s))),a=He("BIP0340/nonce",l,o,n),c=xe(X(a));if(c===Ke)throw new Error("sign failed: k is zero");const{bytes:u,scalar:d}=Ur(c),m=zo(u,o,n),g=new Uint8Array(64);if(g.set(u,0),g.set(Lr(xe(d+m*i)),32),!Vo(g,n,o))throw new Error("sign: Invalid signature produced");return g}function Vo(e,t,r){const n=Z("signature",e,64),o=Z("message",t),i=Z("publicKey",r,32);try{const s=Ho(X(i)),l=X(n.subarray(0,32));if(!Oo(l))return!1;const a=X(n.subarray(32,64));if(!Na(a))return!1;const c=zo(Lr(l),tn(s),o),u=Oa(s,a,xe(-c));return!(!u||!u.hasEvenY()||u.toAffine().x!==l)}catch{return!1}}const ue={getPublicKey:Ha,sign:za,verify:Vo,utils:{randomPrivateKey:se.utils.randomPrivateKey,lift_x:Ho,pointToBytes:tn,numberToBytesBE:Tt,bytesToNumberBE:X,taggedHash:He,mod:K}},pr=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */const rn=e=>e instanceof Uint8Array,gr=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),it=(e,t)=>e<<32-t|e>>>t,Va=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Va)throw new Error("Non little-endian hardware is not supported");const Da=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Y(e){if(!rn(e))throw new Error("Uint8Array expected");let t="";for(let r=0;rn+o.length,0));let r=0;return e.forEach(n=>{if(!rn(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}class Do{clone(){return this._cloneInto()}}function qo(e){const t=n=>e().update(Ee(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function jo(e=32){if(pr&&typeof pr.getRandomValues=="function")return pr.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function Tr(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function ja(e){if(typeof e!="boolean")throw new Error(`Expected boolean, not ${e}`)}function Fo(e,...t){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function Fa(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Tr(e.outputLen),Tr(e.blockLen)}function Wa(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Ka(e,t){Fo(e);const r=t.outputLen;if(e.length>o&i),l=Number(r&i),a=n?4:0,c=n?0:4;e.setUint32(t+a,s,n),e.setUint32(t+c,l,n)}class Ga extends Do{constructor(t,r,n,o){super(),this.blockLen=t,this.outputLen=r,this.padOffset=n,this.isLE=o,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=gr(this.buffer)}update(t){st.exists(this);const{view:r,buffer:n,blockLen:o}=this;t=Ee(t);const i=t.length;for(let s=0;so-s&&(this.process(n,0),s=0);for(let d=s;du.length)throw new Error("_sha2: outputLen bigger than state");for(let d=0;de&t^~e&r,Ya=(e,t,r)=>e&t^e&r^t&r,Xa=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),St=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),kt=new Uint32Array(64);class Wo extends Ga{constructor(){super(64,32,8,!1),this.A=St[0]|0,this.B=St[1]|0,this.C=St[2]|0,this.D=St[3]|0,this.E=St[4]|0,this.F=St[5]|0,this.G=St[6]|0,this.H=St[7]|0}get(){const{A:t,B:r,C:n,D:o,E:i,F:s,G:l,H:a}=this;return[t,r,n,o,i,s,l,a]}set(t,r,n,o,i,s,l,a){this.A=t|0,this.B=r|0,this.C=n|0,this.D=o|0,this.E=i|0,this.F=s|0,this.G=l|0,this.H=a|0}process(t,r){for(let d=0;d<16;d++,r+=4)kt[d]=t.getUint32(r,!1);for(let d=16;d<64;d++){const m=kt[d-15],g=kt[d-2],p=it(m,7)^it(m,18)^m>>>3,h=it(g,17)^it(g,19)^g>>>10;kt[d]=h+kt[d-7]+p+kt[d-16]|0}let{A:n,B:o,C:i,D:s,E:l,F:a,G:c,H:u}=this;for(let d=0;d<64;d++){const m=it(l,6)^it(l,11)^it(l,25),g=u+m+Ja(l,a,c)+Xa[d]+kt[d]|0,h=(it(n,2)^it(n,13)^it(n,22))+Ya(n,o,i)|0;u=c,c=a,a=l,l=s+g|0,s=i,i=o,o=n,n=g+h|0}n=n+this.A|0,o=o+this.B|0,i=i+this.C|0,s=s+this.D|0,l=l+this.E|0,a=a+this.F|0,c=c+this.G|0,u=u+this.H|0,this.set(n,o,i,s,l,a,c,u)}roundClean(){kt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}class Qa extends Wo{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}}const ae=qo(()=>new Wo);qo(()=>new Qa);/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */function le(e){if(!Number.isSafeInteger(e))throw new Error(`Wrong integer: ${e}`)}function yt(...e){const t=(o,i)=>s=>o(i(s)),r=Array.from(e).reverse().reduce((o,i)=>o?t(o,i.encode):i.encode,void 0),n=e.reduce((o,i)=>o?t(o,i.decode):i.decode,void 0);return{encode:r,decode:n}}function wt(e){return{encode:t=>{if(!Array.isArray(t)||t.length&&typeof t[0]!="number")throw new Error("alphabet.encode input should be an array of numbers");return t.map(r=>{if(le(r),r<0||r>=e.length)throw new Error(`Digit index outside alphabet: ${r} (alphabet: ${e.length})`);return e[r]})},decode:t=>{if(!Array.isArray(t)||t.length&&typeof t[0]!="string")throw new Error("alphabet.decode input should be array of strings");return t.map(r=>{if(typeof r!="string")throw new Error(`alphabet.decode: not string element=${r}`);const n=e.indexOf(r);if(n===-1)throw new Error(`Unknown letter: "${r}". Allowed: ${e}`);return n})}}}function vt(e=""){if(typeof e!="string")throw new Error("join separator should be string");return{encode:t=>{if(!Array.isArray(t)||t.length&&typeof t[0]!="string")throw new Error("join.encode input should be array of strings");for(let r of t)if(typeof r!="string")throw new Error(`join.encode: non-string input=${r}`);return t.join(e)},decode:t=>{if(typeof t!="string")throw new Error("join.decode input should be string");return t.split(e)}}}function Ge(e,t="="){if(le(e),typeof t!="string")throw new Error("padding chr should be string");return{encode(r){if(!Array.isArray(r)||r.length&&typeof r[0]!="string")throw new Error("padding.encode input should be array of strings");for(let n of r)if(typeof n!="string")throw new Error(`padding.encode: non-string input=${n}`);for(;r.length*e%8;)r.push(t);return r},decode(r){if(!Array.isArray(r)||r.length&&typeof r[0]!="string")throw new Error("padding.encode input should be array of strings");for(let o of r)if(typeof o!="string")throw new Error(`padding.decode: non-string input=${o}`);let n=r.length;if(n*e%8)throw new Error("Invalid padding: string should have whole number of bytes");for(;n>0&&r[n-1]===t;n--)if(!((n-1)*e%8))throw new Error("Invalid padding: string has too much padding");return r.slice(0,n)}}}function Ko(e){if(typeof e!="function")throw new Error("normalize fn should be function");return{encode:t=>t,decode:t=>e(t)}}function Xn(e,t,r){if(t<2)throw new Error(`convertRadix: wrong from=${t}, base cannot be less than 2`);if(r<2)throw new Error(`convertRadix: wrong to=${r}, base cannot be less than 2`);if(!Array.isArray(e))throw new Error("convertRadix: data should be array");if(!e.length)return[];let n=0;const o=[],i=Array.from(e);for(i.forEach(s=>{if(le(s),s<0||s>=t)throw new Error(`Wrong integer: ${s}`)});;){let s=0,l=!0;for(let a=n;at?Zo(t,e%t):e,ze=(e,t)=>e+(t-Zo(e,t));function Ir(e,t,r,n){if(!Array.isArray(e))throw new Error("convertRadix2: data should be array");if(t<=0||t>32)throw new Error(`convertRadix2: wrong from=${t}`);if(r<=0||r>32)throw new Error(`convertRadix2: wrong to=${r}`);if(ze(t,r)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${r} carryBits=${ze(t,r)}`);let o=0,i=0;const s=2**r-1,l=[];for(const a of e){if(le(a),a>=2**t)throw new Error(`convertRadix2: invalid data word=${a} from=${t}`);if(o=o<32)throw new Error(`convertRadix2: carry overflow pos=${i} from=${t}`);for(i+=t;i>=r;i-=r)l.push((o>>i-r&s)>>>0);o&=2**i-1}if(o=o<=t)throw new Error("Excess padding");if(!n&&o)throw new Error(`Non-zero padding: ${o}`);return n&&i>0&&l.push(o>>>0),l}function tl(e){return le(e),{encode:t=>{if(!(t instanceof Uint8Array))throw new Error("radix.encode input should be Uint8Array");return Xn(Array.from(t),2**8,e)},decode:t=>{if(!Array.isArray(t)||t.length&&typeof t[0]!="number")throw new Error("radix.decode input should be array of strings");return Uint8Array.from(Xn(t,e,2**8))}}}function It(e,t=!1){if(le(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(ze(8,e)>32||ze(e,8)>32)throw new Error("radix2: carry overflow");return{encode:r=>{if(!(r instanceof Uint8Array))throw new Error("radix2.encode input should be Uint8Array");return Ir(Array.from(r),8,e,!t)},decode:r=>{if(!Array.isArray(r)||r.length&&typeof r[0]!="number")throw new Error("radix2.decode input should be array of strings");return Uint8Array.from(Ir(r,e,8,t))}}}function Qn(e){if(typeof e!="function")throw new Error("unsafeWrapper fn should be function");return function(...t){try{return e.apply(null,t)}catch{}}}const el=yt(It(4),wt("0123456789ABCDEF"),vt("")),rl=yt(It(5),wt("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),Ge(5),vt(""));yt(It(5),wt("0123456789ABCDEFGHIJKLMNOPQRSTUV"),Ge(5),vt(""));yt(It(5),wt("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),vt(""),Ko(e=>e.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1")));const bt=yt(It(6),wt("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),Ge(6),vt("")),nl=yt(It(6),wt("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),Ge(6),vt("")),nn=e=>yt(tl(58),wt(e),vt("")),Mr=nn("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");nn("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ");nn("rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz");const to=[0,2,3,5,6,7,9,10,11],ol={encode(e){let t="";for(let r=0;r>25;let r=(e&33554431)<<5;for(let n=0;n>n&1)===1&&(r^=eo[n]);return r}function ro(e,t,r=1){const n=e.length;let o=1;for(let i=0;i126)throw new Error(`Invalid prefix (${e})`);o=he(o)^s>>5}o=he(o);for(let i=0;im)throw new TypeError(`Length ${g} exceeds limit ${m}`);return u=u.toLowerCase(),`${u}1${Rr.encode(d)}${ro(u,d,t)}`}function l(u,d=90){if(typeof u!="string")throw new Error(`bech32.decode input should be string, not ${typeof u}`);if(u.length<8||d!==!1&&u.length>d)throw new TypeError(`Wrong string length: ${u.length} (${u}). Expected (8..${d})`);const m=u.toLowerCase();if(u!==m&&u!==u.toUpperCase())throw new Error("String must be lowercase or uppercase");u=m;const g=u.lastIndexOf("1");if(g===0||g===-1)throw new Error('Letter "1" must be present between prefix and data only');const p=u.slice(0,g),h=u.slice(g+1);if(h.length<6)throw new Error("Data must be at least 6 characters long");const f=Rr.decode(h).slice(0,-6),b=ro(p,f,t);if(!h.endsWith(b))throw new Error(`Invalid checksum in ${u}: expected "${b}"`);return{prefix:p,words:f}}const a=Qn(l);function c(u){const{prefix:d,words:m}=l(u,!1);return{prefix:d,words:m,bytes:n(m)}}return{encode:s,decode:l,decodeToBytes:c,decodeUnsafe:a,fromWords:n,fromWordsUnsafe:i,toWords:o}}const oe=Go("bech32");Go("bech32m");const il={encode:e=>new TextDecoder().decode(e),decode:e=>new TextEncoder().encode(e)},sl=yt(It(4),wt("0123456789abcdef"),vt(""),Ko(e=>{if(typeof e!="string"||e.length%2)throw new TypeError(`hex.decode: expected string, got ${typeof e} with length ${e.length}`);return e.toLowerCase()})),al={utf8:il,hex:sl,base16:el,base32:rl,base64:bt,base64url:nl,base58:Mr,base58xmr:ol};`${Object.keys(al).join(", ")}`;function br(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`positive integer expected, not ${e}`)}function no(e){if(typeof e!="boolean")throw new Error(`boolean expected, not ${e}`)}function ll(e){return e instanceof Uint8Array||e!=null&&typeof e=="object"&&e.constructor.name==="Uint8Array"}function ft(e,...t){if(!ll(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${e.length}`)}/*! noble-ciphers - MIT License (c) 2023 Paul Miller (paulmillr.com) */const J=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),cl=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!cl)throw new Error("Non little-endian hardware is not supported");function dl(e,t){if(t==null||typeof t!="object")throw new Error("options must be defined");return Object.assign(e,t)}function ul(e,t){if(e.length!==t.length)return!1;let r=0;for(let n=0;n(Object.assign(t,e),t),Ut=16,fl=283;function on(e){return e<<1^fl&-(e>>7)}function Xt(e,t){let r=0;for(;t>0;t>>=1)r^=e&-(t&1),e=on(e);return r}const Nr=(()=>{let e=new Uint8Array(256);for(let r=0,n=1;r<256;r++,n^=on(n))e[r]=n;const t=new Uint8Array(256);t[0]=99;for(let r=0;r<255;r++){let n=e[255-r];n|=n<<8,t[e[r]]=(n^n>>4^n>>5^n>>6^n>>7^99)&255}return t})(),pl=Nr.map((e,t)=>Nr.indexOf(t)),gl=e=>e<<24|e>>>8,mr=e=>e<<8|e>>>24;function Jo(e,t){if(e.length!==256)throw new Error("Wrong sbox length");const r=new Uint32Array(256).map((c,u)=>t(e[u])),n=r.map(mr),o=n.map(mr),i=o.map(mr),s=new Uint32Array(256*256),l=new Uint32Array(256*256),a=new Uint16Array(256*256);for(let c=0;c<256;c++)for(let u=0;u<256;u++){const d=c*256+u;s[d]=r[c]^n[u],l[d]=o[c]^i[u],a[d]=e[c]<<8|e[u]}return{sbox:e,sbox2:a,T0:r,T1:n,T2:o,T3:i,T01:s,T23:l}}const sn=Jo(Nr,e=>Xt(e,3)<<24|e<<16|e<<8|Xt(e,2)),Yo=Jo(pl,e=>Xt(e,11)<<24|Xt(e,13)<<16|Xt(e,9)<<8|Xt(e,14)),bl=(()=>{const e=new Uint8Array(16);for(let t=0,r=1;t<16;t++,r=on(r))e[t]=r;return e})();function Xo(e){ft(e);const t=e.length;if(![16,24,32].includes(t))throw new Error(`aes: wrong key size: should be 16, 24 or 32, got: ${t}`);const{sbox2:r}=sn,n=J(e),o=n.length,i=l=>at(r,l,l,l,l),s=new Uint32Array(t+28);s.set(n);for(let l=o;l6&&l%o===4&&(a=i(a)),s[l]=s[l-o]^a}return s}function ml(e){const t=Xo(e),r=t.slice(),n=t.length,{sbox2:o}=sn,{T0:i,T1:s,T2:l,T3:a}=Yo;for(let c=0;c>>8&255]^l[d>>>16&255]^a[d>>>24]}return r}function Bt(e,t,r,n,o,i){return e[r<<8&65280|n>>>8&255]^t[o>>>8&65280|i>>>24&255]}function at(e,t,r,n,o){return e[t&255|r&65280]|e[n>>>16&255|o>>>16&65280]<<16}function oo(e,t,r,n,o){const{sbox2:i,T01:s,T23:l}=sn;let a=0;t^=e[a++],r^=e[a++],n^=e[a++],o^=e[a++];const c=e.length/4-2;for(let p=0;p16)throw new Error(`aes/pcks5: wrong padding byte: ${n}`);const o=e.subarray(0,-n);for(let i=0;i{const l=Xo(t),{b:a,o:c,out:u}=vl(i,o,s),d=J(r);let m=d[0],g=d[1],p=d[2],h=d[3],f=0;for(;f+4<=a.length;)m^=a[f+0],g^=a[f+1],p^=a[f+2],h^=a[f+3],{s0:m,s1:g,s2:p,s3:h}=oo(l,m,g,p,h),c[f++]=m,c[f++]=g,c[f++]=p,c[f++]=h;if(o){const b=El(i.subarray(f*4));m^=b[0],g^=b[1],p^=b[2],h^=b[3],{s0:m,s1:g,s2:p,s3:h}=oo(l,m,g,p,h),c[f++]=m,c[f++]=g,c[f++]=p,c[f++]=h}return l.fill(0),u},decrypt:(i,s)=>{wl(i);const l=ml(t),a=J(r),c=Qo(i.length,s),u=J(i),d=J(c);let m=a[0],g=a[1],p=a[2],h=a[3];for(let f=0;f+4<=u.length;){const b=m,x=g,A=p,U=h;m=u[f+0],g=u[f+1],p=u[f+2],h=u[f+3];const{s0:C,s1:v,s2:E,s3:_}=yl(l,m,g,p,h);d[f++]=C^b,d[f++]=v^x,d[f++]=E^A,d[f++]=_^U}return l.fill(0),xl(c,o)}}}),ei=e=>Uint8Array.from(e.split("").map(t=>t.charCodeAt(0))),_l=ei("expand 16-byte k"),$l=ei("expand 32-byte k"),Al=J(_l),ri=J($l);ri.slice();function M(e,t){return e<>>32-t}function Or(e){return e.byteOffset%4===0}const ke=64,Sl=16,ni=2**32-1,io=new Uint32Array;function kl(e,t,r,n,o,i,s,l){const a=o.length,c=new Uint8Array(ke),u=J(c),d=Or(o)&&Or(i),m=d?J(o):io,g=d?J(i):io;for(let p=0;p=ni)throw new Error("arx: counter overflow");const h=Math.min(ke,a-p);if(d&&h===ke){const f=p/4;if(p%4!==0)throw new Error("arx: invalid block position");for(let b=0,x;b{ft(l),ft(a),ft(c);const m=c.length;if(u||(u=new Uint8Array(m)),ft(u),br(d),d<0||d>=ni)throw new Error("arx: counter overflow");if(u.length0;)g.pop().fill(0);return u}}function Cl(e,t,r,n,o,i=20){let s=e[0],l=e[1],a=e[2],c=e[3],u=t[0],d=t[1],m=t[2],g=t[3],p=t[4],h=t[5],f=t[6],b=t[7],x=o,A=r[0],U=r[1],C=r[2],v=s,E=l,_=a,V=c,L=u,k=d,O=m,H=g,D=p,y=h,w=f,$=b,B=x,P=A,I=U,z=C;for(let et=0;eto?t.create().update(n).digest():n);for(let s=0;snew ii(e,t).update(r).digest();Je.create=(e,t)=>new ii(e,t);function Bl(e,t,r){return st.hash(e),Je(e,Ee(r),Ee(t))}const yr=new Uint8Array([0]),so=new Uint8Array;function Ll(e,t,r,n=32){if(st.hash(e),st.number(n),n>255*e.outputLen)throw new Error("Length should be <= 255*HashLen");const o=Math.ceil(n/e.outputLen);r===void 0&&(r=so);const i=new Uint8Array(o*e.outputLen),s=Je.create(e,t),l=s._cloneInto(),a=new Uint8Array(s.outputLen);for(let c=0;c{for(var r in t)Ul(e,r,{get:t[r],enumerable:!0})},Jt=Symbol("verified"),Tl=e=>e instanceof Object;function an(e){if(!Tl(e)||typeof e.kind!="number"||typeof e.content!="string"||typeof e.created_at!="number"||typeof e.pubkey!="string"||!e.pubkey.match(/^[a-f0-9]{64}$/)||!Array.isArray(e.tags))return!1;for(let t=0;tli,QueueNode:()=>ai,binarySearch:()=>ln,insertEventIntoAscendingList:()=>Rl,insertEventIntoDescendingList:()=>Ml,normalizeURL:()=>si,utf8Decoder:()=>pt,utf8Encoder:()=>rt});var pt=new TextDecoder("utf-8"),rt=new TextEncoder;function si(e){e.indexOf("://")===-1&&(e="wss://"+e);let t=new URL(e);return t.pathname=t.pathname.replace(/\/+/g,"/"),t.pathname.endsWith("/")&&(t.pathname=t.pathname.slice(0,-1)),(t.port==="80"&&t.protocol==="ws:"||t.port==="443"&&t.protocol==="wss:")&&(t.port=""),t.searchParams.sort(),t.hash="",t.toString()}function Ml(e,t){const[r,n]=ln(e,o=>t.id===o.id?0:t.created_at===o.created_at?-1:o.created_at-t.created_at);return n||e.splice(r,0,t),e}function Rl(e,t){const[r,n]=ln(e,o=>t.id===o.id?0:t.created_at===o.created_at?-1:t.created_at-o.created_at);return n||e.splice(r,0,t),e}function ln(e,t){let r=0,n=e.length-1;for(;r<=n;){const o=Math.floor((r+n)/2),i=t(e[o]);if(i===0)return[o,!0];i<0?n=o-1:r=o+1}return[r,!1]}var ai=class{value;next=null;prev=null;constructor(e){this.value=e}},li=class{first;last;constructor(){this.first=null,this.last=null}enqueue(e){const t=new ai(e);return this.last?this.last===this.first?(this.last=t,this.last.prev=this.first,this.first.next=t):(t.prev=this.last,this.last.next=t,this.last=t):(this.first=t,this.last=t),!0}dequeue(){if(!this.first)return null;if(this.first===this.last){const t=this.first;return this.first=null,this.last=null,t.value}const e=this.first;return this.first=e.next,e.value}},Nl=class{generateSecretKey(){return ue.utils.randomPrivateKey()}getPublicKey(e){return Y(ue.getPublicKey(e))}finalizeEvent(e,t){const r=e;return r.pubkey=Y(ue.getPublicKey(t)),r.id=Le(r),r.sig=Y(ue.sign(Le(r),t)),r[Jt]=!0,r}verifyEvent(e){if(typeof e[Jt]=="boolean")return e[Jt];const t=Le(e);if(t!==e.id)return e[Jt]=!1,!1;try{const r=ue.verify(e.sig,t,e.pubkey);return e[Jt]=r,r}catch{return e[Jt]=!1,!1}}};function Ol(e){if(!an(e))throw new Error("can't serialize event with wrong or missing properties");return JSON.stringify([0,e.pubkey,e.created_at,e.kind,e.tags,e.content])}function Le(e){let t=ae(rt.encode(Ol(e)));return Y(t)}var Ye=new Nl,Hl=Ye.generateSecretKey,ci=Ye.getPublicKey,dt=Ye.finalizeEvent,Xe=Ye.verifyEvent,zl={};q(zl,{Application:()=>Dc,BadgeAward:()=>Gl,BadgeDefinition:()=>Mc,BlockedRelaysList:()=>wc,BookmarkList:()=>bc,Bookmarksets:()=>Uc,Calendar:()=>Gc,CalendarEventRSVP:()=>Jc,ChannelCreation:()=>gi,ChannelHideMessage:()=>yi,ChannelMessage:()=>mi,ChannelMetadata:()=>bi,ChannelMuteUser:()=>wi,ClassifiedListing:()=>Fc,ClientAuth:()=>xi,CommunitiesList:()=>mc,CommunityDefinition:()=>Qc,CommunityPostApproval:()=>ic,Contacts:()=>Wl,CreateOrUpdateProduct:()=>Oc,CreateOrUpdateStall:()=>Nc,Curationsets:()=>Tc,Date:()=>Kc,DirectMessageRelaysList:()=>_c,DraftClassifiedListing:()=>Wc,DraftLong:()=>zc,Emojisets:()=>Vc,EncryptedDirectMessage:()=>Kl,EventDeletion:()=>Zl,FileMetadata:()=>Ql,FileServerPreference:()=>$c,Followsets:()=>Cc,GenericRepost:()=>Yl,Genericlists:()=>Bc,GiftWrap:()=>vi,HTTPAuth:()=>un,Handlerinformation:()=>Xc,Handlerrecommendation:()=>Yc,Highlights:()=>hc,InterestsList:()=>xc,Interestsets:()=>Rc,JobFeedback:()=>lc,JobRequest:()=>sc,JobResult:()=>ac,Label:()=>oc,LightningPubRPC:()=>Sc,LiveChatMessage:()=>tc,LiveEvent:()=>qc,LongFormArticle:()=>Hc,Metadata:()=>ql,Mutelist:()=>fc,NWCWalletInfo:()=>Ac,NWCWalletRequest:()=>Ei,NWCWalletResponse:()=>kc,NostrConnect:()=>Pc,OpenTimestamps:()=>Xl,Pinlist:()=>pc,PrivateDirectMessage:()=>Jl,ProblemTracker:()=>ec,ProfileBadges:()=>Ic,PublicChatsList:()=>yc,Reaction:()=>dn,RecommendRelay:()=>Fl,RelayList:()=>gc,Relaysets:()=>Lc,Report:()=>rc,Reporting:()=>nc,Repost:()=>cn,Seal:()=>pi,SearchRelaysList:()=>vc,ShortTextNote:()=>jl,Time:()=>Zc,UserEmojiList:()=>Ec,UserStatuses:()=>jc,Zap:()=>uc,ZapGoal:()=>cc,ZapRequest:()=>dc,classifyKind:()=>Vl,isEphemeralKind:()=>hi,isKind:()=>Dl,isParameterizedReplaceableKind:()=>fi,isRegularKind:()=>di,isReplaceableKind:()=>ui});function di(e){return 1e3<=e&&e<1e4||[1,2,4,5,6,7,8,16,40,41,42,43,44].includes(e)}function ui(e){return[0,3].includes(e)||1e4<=e&&e<2e4}function hi(e){return 2e4<=e&&e<3e4}function fi(e){return 3e4<=e&&e<4e4}function Vl(e){return di(e)?"regular":ui(e)?"replaceable":hi(e)?"ephemeral":fi(e)?"parameterized":"unknown"}function Dl(e,t){const r=t instanceof Array?t:[t];return an(e)&&r.includes(e.kind)||!1}var ql=0,jl=1,Fl=2,Wl=3,Kl=4,Zl=5,cn=6,dn=7,Gl=8,pi=13,Jl=14,Yl=16,gi=40,bi=41,mi=42,yi=43,wi=44,Xl=1040,vi=1059,Ql=1063,tc=1311,ec=1971,rc=1984,nc=1984,oc=1985,ic=4550,sc=5999,ac=6999,lc=7e3,cc=9041,dc=9734,uc=9735,hc=9802,fc=1e4,pc=10001,gc=10002,bc=10003,mc=10004,yc=10005,wc=10006,vc=10007,xc=10015,Ec=10030,_c=10050,$c=10096,Ac=13194,Sc=21e3,xi=22242,Ei=23194,kc=23195,Pc=24133,un=27235,Cc=3e4,Bc=30001,Lc=30002,Uc=30003,Tc=30004,Ic=30008,Mc=30009,Rc=30015,Nc=30017,Oc=30018,Hc=30023,zc=30024,Vc=30030,Dc=30078,qc=30311,jc=30315,Fc=30402,Wc=30403,Kc=31922,Zc=31923,Gc=31924,Jc=31925,Yc=31989,Xc=31990,Qc=34550;function td(e,t){if(e.ids&&e.ids.indexOf(t.id)===-1||e.kinds&&e.kinds.indexOf(t.kind)===-1||e.authors&&e.authors.indexOf(t.pubkey)===-1)return!1;for(let r in e)if(r[0]==="#"){let n=r.slice(1),o=e[`#${n}`];if(o&&!t.tags.find(([i,s])=>i===r.slice(1)&&o.indexOf(s)!==-1))return!1}return!(e.since&&t.created_ate.until)}function ed(e,t){for(let r=0;rQe,getInt:()=>_i,getSubscriptionId:()=>$i,matchEventId:()=>nd,matchEventKind:()=>id,matchEventPubkey:()=>od});function Qe(e,t){let r=t.length+3,n=e.indexOf(`"${t}":`)+r,o=e.slice(n).indexOf('"')+n+1;return e.slice(o,o+64)}function _i(e,t){let r=t.length,n=e.indexOf(`"${t}":`)+r+3,o=e.slice(n),i=Math.min(o.indexOf(","),o.indexOf("}"));return parseInt(o.slice(0,i),10)}function $i(e){let t=e.slice(0,22).indexOf('"EVENT"');if(t===-1)return null;let r=e.slice(t+7+1).indexOf('"');if(r===-1)return null;let n=t+7+1+r,o=e.slice(n+1,80).indexOf('"');if(o===-1)return null;let i=n+1+o;return e.slice(n+1,i)}function nd(e,t){return t===Qe(e,"id")}function od(e,t){return t===Qe(e,"pubkey")}function id(e,t){return t===_i(e,"kind")}var sd={};q(sd,{makeAuthEvent:()=>Ai});function Ai(e,t){return{kind:xi,created_at:Math.floor(Date.now()/1e3),tags:[["relay",e],["challenge",t]],content:""}}async function ad(){return new Promise(e=>{const t=new MessageChannel,r=()=>{t.port1.removeEventListener("message",r),e()};t.port1.addEventListener("message",r),t.port2.postMessage(0),t.port1.start()})}var Si=class{url;_connected=!1;onclose=null;onnotice=e=>console.debug(`NOTICE from ${this.url}: ${e}`);_onauth=null;baseEoseTimeout=4400;connectionTimeout=4400;publishTimeout=4400;openSubs=new Map;connectionTimeoutHandle;connectionPromise;openCountRequests=new Map;openEventPublishes=new Map;ws;incomingMessageQueue=new li;queueRunning=!1;challenge;serial=0;verifyEvent;_WebSocket;constructor(e,t){this.url=si(e),this.verifyEvent=t.verifyEvent,this._WebSocket=t.websocketImplementation||WebSocket}static async connect(e,t){const r=new Si(e,t);return await r.connect(),r}closeAllSubscriptions(e){for(let[t,r]of this.openSubs)r.close(e);this.openSubs.clear();for(let[t,r]of this.openEventPublishes)r.reject(new Error(e));this.openEventPublishes.clear();for(let[t,r]of this.openCountRequests)r.reject(new Error(e));this.openCountRequests.clear()}get connected(){return this._connected}async connect(){return this.connectionPromise?this.connectionPromise:(this.challenge=void 0,this.connectionPromise=new Promise((e,t)=>{this.connectionTimeoutHandle=setTimeout(()=>{t("connection timed out"),this.connectionPromise=void 0,this.onclose?.(),this.closeAllSubscriptions("relay connection timed out")},this.connectionTimeout);try{this.ws=new this._WebSocket(this.url)}catch(r){t(r);return}this.ws.onopen=()=>{clearTimeout(this.connectionTimeoutHandle),this._connected=!0,e()},this.ws.onerror=r=>{t(r.message||"websocket error"),this._connected&&(this._connected=!1,this.connectionPromise=void 0,this.onclose?.(),this.closeAllSubscriptions("relay connection errored"))},this.ws.onclose=async()=>{this._connected&&(this._connected=!1,this.connectionPromise=void 0,this.onclose?.(),this.closeAllSubscriptions("relay connection closed"))},this.ws.onmessage=this._onmessage.bind(this)}),this.connectionPromise)}async runQueue(){for(this.queueRunning=!0;this.handleNext()!==!1;)await ad();this.queueRunning=!1}handleNext(){const e=this.incomingMessageQueue.dequeue();if(!e)return!1;const t=$i(e);if(t){const r=this.openSubs.get(t);if(!r)return;const n=Qe(e,"id"),o=r.alreadyHaveEvent?.(n);if(r.receivedEvent?.(this,n),o)return}try{let r=JSON.parse(e);switch(r[0]){case"EVENT":{const n=this.openSubs.get(r[1]),o=r[2];this.verifyEvent(o)&&ed(n.filters,o)&&n.onevent(o);return}case"COUNT":{const n=r[1],o=r[2],i=this.openCountRequests.get(n);i&&(i.resolve(o.count),this.openCountRequests.delete(n));return}case"EOSE":{const n=this.openSubs.get(r[1]);if(!n)return;n.receivedEose();return}case"OK":{const n=r[1],o=r[2],i=r[3],s=this.openEventPublishes.get(n);s&&(o?s.resolve(i):s.reject(new Error(i)),this.openEventPublishes.delete(n));return}case"CLOSED":{const n=r[1],o=this.openSubs.get(n);if(!o)return;o.closed=!0,o.close(r[2]);return}case"NOTICE":this.onnotice(r[1]);return;case"AUTH":{this.challenge=r[1],this._onauth?.(r[1]);return}}}catch{return}}async send(e){if(!this.connectionPromise)throw new Error("sending on closed connection");this.connectionPromise.then(()=>{this.ws?.send(e)})}async auth(e){if(!this.challenge)throw new Error("can't perform auth, no challenge was received");const t=await e(Ai(this.url,this.challenge)),r=new Promise((n,o)=>{this.openEventPublishes.set(t.id,{resolve:n,reject:o})});return this.send('["AUTH",'+JSON.stringify(t)+"]"),r}async publish(e){const t=new Promise((r,n)=>{this.openEventPublishes.set(e.id,{resolve:r,reject:n})});return this.send('["EVENT",'+JSON.stringify(e)+"]"),setTimeout(()=>{const r=this.openEventPublishes.get(e.id);r&&(r.reject(new Error("publish timed out")),this.openEventPublishes.delete(e.id))},this.publishTimeout),t}async count(e,t){this.serial++;const r=t?.id||"count:"+this.serial,n=new Promise((o,i)=>{this.openCountRequests.set(r,{resolve:o,reject:i})});return this.send('["COUNT","'+r+'",'+JSON.stringify(e).substring(1)),n}subscribe(e,t){const r=this.prepareSubscription(e,t);return r.fire(),r}prepareSubscription(e,t){this.serial++;const r=t.id||"sub:"+this.serial,n=new ld(this,r,e,t);return this.openSubs.set(r,n),n}close(){this.closeAllSubscriptions("relay connection closed by us"),this._connected=!1,this.ws?.close()}_onmessage(e){this.incomingMessageQueue.enqueue(e.data),this.queueRunning||this.runQueue()}},ld=class{relay;id;closed=!1;eosed=!1;filters;alreadyHaveEvent;receivedEvent;onevent;oneose;onclose;eoseTimeout;eoseTimeoutHandle;constructor(e,t,r,n){this.relay=e,this.filters=r,this.id=t,this.alreadyHaveEvent=n.alreadyHaveEvent,this.receivedEvent=n.receivedEvent,this.eoseTimeout=n.eoseTimeout||e.baseEoseTimeout,this.oneose=n.oneose,this.onclose=n.onclose,this.onevent=n.onevent||(o=>{console.warn(`onevent() callback not defined for subscription '${this.id}' in relay ${this.relay.url}. event received:`,o)})}fire(){this.relay.send('["REQ","'+this.id+'",'+JSON.stringify(this.filters).substring(1)),this.eoseTimeoutHandle=setTimeout(this.receivedEose.bind(this),this.eoseTimeout)}receivedEose(){this.eosed||(clearTimeout(this.eoseTimeoutHandle),this.eosed=!0,this.oneose?.())}close(e="closed by caller"){!this.closed&&this.relay.connected&&(this.relay.send('["CLOSE",'+JSON.stringify(this.id)+"]"),this.closed=!0),this.relay.openSubs.delete(this.id),this.onclose?.(e)}},ki;try{ki=WebSocket}catch{}var tr=class extends Si{constructor(e){super(e,{verifyEvent:Xe,websocketImplementation:ki})}static async connect(e){const t=new tr(e);return await t.connect(),t}},cd;try{cd=WebSocket}catch{}var dd={};q(dd,{BECH32_REGEX:()=>Pi,Bech32MaxSize:()=>hn,NostrTypeGuard:()=>ud,decode:()=>er,encodeBytes:()=>nr,naddrEncode:()=>yd,neventEncode:()=>md,noteEncode:()=>gd,nprofileEncode:()=>bd,npubEncode:()=>pd,nsecEncode:()=>fd});var ud={isNProfile:e=>/^nprofile1[a-z\d]+$/.test(e||""),isNEvent:e=>/^nevent1[a-z\d]+$/.test(e||""),isNAddr:e=>/^naddr1[a-z\d]+$/.test(e||""),isNSec:e=>/^nsec1[a-z\d]{58}$/.test(e||""),isNPub:e=>/^npub1[a-z\d]{58}$/.test(e||""),isNote:e=>/^note1[a-z\d]+$/.test(e||""),isNcryptsec:e=>/^ncryptsec1[a-z\d]+$/.test(e||"")},hn=5e3,Pi=/[\x21-\x7E]{1,83}1[023456789acdefghjklmnpqrstuvwxyz]{6,}/;function hd(e){const t=new Uint8Array(4);return t[0]=e>>24&255,t[1]=e>>16&255,t[2]=e>>8&255,t[3]=e&255,t}function er(e){let{prefix:t,words:r}=oe.decode(e,hn),n=new Uint8Array(oe.fromWords(r));switch(t){case"nprofile":{let o=wr(n);if(!o[0]?.[0])throw new Error("missing TLV 0 for nprofile");if(o[0][0].length!==32)throw new Error("TLV 0 should be 32 bytes");return{type:"nprofile",data:{pubkey:Y(o[0][0]),relays:o[1]?o[1].map(i=>pt.decode(i)):[]}}}case"nevent":{let o=wr(n);if(!o[0]?.[0])throw new Error("missing TLV 0 for nevent");if(o[0][0].length!==32)throw new Error("TLV 0 should be 32 bytes");if(o[2]&&o[2][0].length!==32)throw new Error("TLV 2 should be 32 bytes");if(o[3]&&o[3][0].length!==4)throw new Error("TLV 3 should be 4 bytes");return{type:"nevent",data:{id:Y(o[0][0]),relays:o[1]?o[1].map(i=>pt.decode(i)):[],author:o[2]?.[0]?Y(o[2][0]):void 0,kind:o[3]?.[0]?parseInt(Y(o[3][0]),16):void 0}}}case"naddr":{let o=wr(n);if(!o[0]?.[0])throw new Error("missing TLV 0 for naddr");if(!o[2]?.[0])throw new Error("missing TLV 2 for naddr");if(o[2][0].length!==32)throw new Error("TLV 2 should be 32 bytes");if(!o[3]?.[0])throw new Error("missing TLV 3 for naddr");if(o[3][0].length!==4)throw new Error("TLV 3 should be 4 bytes");return{type:"naddr",data:{identifier:pt.decode(o[0][0]),pubkey:Y(o[2][0]),kind:parseInt(Y(o[3][0]),16),relays:o[1]?o[1].map(i=>pt.decode(i)):[]}}}case"nsec":return{type:t,data:n};case"npub":case"note":return{type:t,data:Y(n)};default:throw new Error(`unknown prefix ${t}`)}}function wr(e){let t={},r=e;for(;r.length>0;){let n=r[0],o=r[1],i=r.slice(2,2+o);if(r=r.slice(2+o),i.lengthrt.encode(r))});return rr("nprofile",t)}function md(e){let t;e.kind!==void 0&&(t=hd(e.kind));let r=fn({0:[ne(e.id)],1:(e.relays||[]).map(n=>rt.encode(n)),2:e.author?[ne(e.author)]:[],3:t?[new Uint8Array(t)]:[]});return rr("nevent",r)}function yd(e){let t=new ArrayBuffer(4);new DataView(t).setUint32(0,e.kind,!1);let r=fn({0:[rt.encode(e.identifier)],1:(e.relays||[]).map(n=>rt.encode(n)),2:[ne(e.pubkey)],3:[new Uint8Array(t)]});return rr("naddr",r)}function fn(e){let t=[];return Object.entries(e).reverse().forEach(([r,n])=>{n.forEach(o=>{let i=new Uint8Array(o.length+2);i.set([parseInt(r)],0),i.set([o.length],1),i.set(o,2),t.push(i)})}),Ze(...t)}var wd={};q(wd,{decrypt:()=>vd,encrypt:()=>Ci});async function Ci(e,t,r){const n=e instanceof Uint8Array?Y(e):e,o=se.getSharedSecret(n,"02"+t),i=Bi(o);let s=Uint8Array.from(jo(16)),l=rt.encode(r),a=ti(i,s).encrypt(l),c=bt.encode(new Uint8Array(a)),u=bt.encode(new Uint8Array(s.buffer));return`${c}?iv=${u}`}async function vd(e,t,r){const n=e instanceof Uint8Array?Y(e):e;let[o,i]=r.split("?iv="),s=se.getSharedSecret(n,"02"+t),l=Bi(s),a=bt.decode(i),c=bt.decode(o),u=ti(l,a).decrypt(c);return pt.decode(u)}function Bi(e){return e.slice(1,33)}var xd={};q(xd,{NIP05_REGEX:()=>pn,isNip05:()=>Ed,isValid:()=>Ad,queryProfile:()=>Li,searchDomain:()=>$d,useFetchImplementation:()=>_d});var pn=/^(?:([\w.+-]+)@)?([\w_-]+(\.[\w_-]+)+)$/,Ed=e=>pn.test(e||""),or;try{or=fetch}catch{}function _d(e){or=e}async function $d(e,t=""){try{const r=`https://${e}/.well-known/nostr.json?name=${t}`,n=await or(r,{redirect:"manual"});if(n.status!==200)throw Error("Wrong response code");return(await n.json()).names}catch{return{}}}async function Li(e){const t=e.match(pn);if(!t)return null;const[,r="_",n]=t;try{const o=`https://${n}/.well-known/nostr.json?name=${r}`,i=await or(o,{redirect:"manual"});if(i.status!==200)throw Error("Wrong response code");const s=await i.json(),l=s.names[r];return l?{pubkey:l,relays:s.relays?.[l]}:null}catch{return null}}async function Ad(e,t){const r=await Li(t);return r?r.pubkey===e:!1}var Sd={};q(Sd,{parse:()=>kd});function kd(e){const t={reply:void 0,root:void 0,mentions:[],profiles:[]},r=[];for(const n of e.tags)n[0]==="e"&&n[1]&&r.push(n),n[0]==="p"&&n[1]&&t.profiles.push({pubkey:n[1],relays:n[2]?[n[2]]:[]});for(let n=0;nBd,useFetchImplementation:()=>Cd});var Ui;try{Ui=fetch}catch{}function Cd(e){Ui=e}async function Bd(e){return await(await fetch(e.replace("ws://","http://").replace("wss://","https://"),{headers:{Accept:"application/nostr+json"}})).json()}var Ld={};q(Ld,{fastEventHash:()=>Ii,getPow:()=>Ti,minePow:()=>Ud});function Ti(e){let t=0;for(let r=0;r<64;r+=8){const n=parseInt(e.substring(r,r+8),16);if(n===0)t+=32;else{t+=Math.clz32(n);break}}return t}function Ud(e,t){let r=0;const n=e,o=["nonce",r.toString(),t.toString()];for(n.tags.push(o);;){const i=Math.floor(new Date().getTime()/1e3);if(i!==n.created_at&&(r=0,n.created_at=i),o[1]=(++r).toString(),n.id=Ii(n),Ti(n.id)>=t)break}return n}function Ii(e){return Y(ae(rt.encode(JSON.stringify([0,e.pubkey,e.created_at,e.kind,e.tags,e.content]))))}var Td={};q(Td,{finishRepostEvent:()=>Id,getRepostedEvent:()=>Md,getRepostedEventPointer:()=>Mi});function Id(e,t,r,n){return dt({kind:cn,tags:[...e.tags??[],["e",t.id,r],["p",t.pubkey]],content:e.content===""?"":JSON.stringify(t),created_at:e.created_at},n)}function Mi(e){if(e.kind!==cn)return;let t,r;for(let n=e.tags.length-1;n>=0&&(t===void 0||r===void 0);n--){const o=e.tags[n];o.length>=2&&(o[0]==="e"&&t===void 0?t=o:o[0]==="p"&&r===void 0&&(r=o))}if(t!==void 0)return{id:t[1],relays:[t[2],r?.[2]].filter(n=>typeof n=="string"),author:r?.[1]}}function Md(e,{skipVerification:t}={}){const r=Mi(e);if(r===void 0||e.content==="")return;let n;try{n=JSON.parse(e.content)}catch{return}if(n.id===r.id&&!(!t&&!Xe(n)))return n}var Rd={};q(Rd,{NOSTR_URI_REGEX:()=>ir,parse:()=>Od,test:()=>Nd});var ir=new RegExp(`nostr:(${Pi.source})`);function Nd(e){return typeof e=="string"&&new RegExp(`^${ir.source}$`).test(e)}function Od(e){const t=e.match(new RegExp(`^${ir.source}$`));if(!t)throw new Error(`Invalid Nostr URI: ${e}`);return{uri:t[0],value:t[1],decoded:er(t[1])}}var Hd={};q(Hd,{finishReactionEvent:()=>zd,getReactedEventPointer:()=>Vd});function zd(e,t,r){const n=t.tags.filter(o=>o.length>=2&&(o[0]==="e"||o[0]==="p"));return dt({...e,kind:dn,tags:[...e.tags??[],...n,["e",t.id],["p",t.pubkey]],content:e.content??"+"},r)}function Vd(e){if(e.kind!==dn)return;let t,r;for(let n=e.tags.length-1;n>=0&&(t===void 0||r===void 0);n--){const o=e.tags[n];o.length>=2&&(o[0]==="e"&&t===void 0?t=o:o[0]==="p"&&r===void 0&&(r=o))}if(!(t===void 0||r===void 0))return{id:t[1],relays:[t[2],r[2]].filter(n=>n!==void 0),author:r[1]}}var Dd={};q(Dd,{matchAll:()=>qd,regex:()=>gn,replaceAll:()=>jd});var gn=()=>new RegExp(`\\b${ir.source}\\b`,"g");function*qd(e){const t=e.matchAll(gn());for(const r of t)try{const[n,o]=r;yield{uri:n,value:o,decoded:er(o),start:r.index,end:r.index+n.length}}catch{}}function jd(e,t){return e.replaceAll(gn(),(r,n)=>t({uri:r,value:n,decoded:er(n)}))}var Fd={};q(Fd,{channelCreateEvent:()=>Wd,channelHideMessageEvent:()=>Gd,channelMessageEvent:()=>Zd,channelMetadataEvent:()=>Kd,channelMuteUserEvent:()=>Jd});var Wd=(e,t)=>{let r;if(typeof e.content=="object")r=JSON.stringify(e.content);else if(typeof e.content=="string")r=e.content;else return;return dt({kind:gi,tags:[...e.tags??[]],content:r,created_at:e.created_at},t)},Kd=(e,t)=>{let r;if(typeof e.content=="object")r=JSON.stringify(e.content);else if(typeof e.content=="string")r=e.content;else return;return dt({kind:bi,tags:[["e",e.channel_create_event_id],...e.tags??[]],content:r,created_at:e.created_at},t)},Zd=(e,t)=>{const r=[["e",e.channel_create_event_id,e.relay_url,"root"]];return e.reply_to_channel_message_event_id&&r.push(["e",e.reply_to_channel_message_event_id,e.relay_url,"reply"]),dt({kind:mi,tags:[...r,...e.tags??[]],content:e.content,created_at:e.created_at},t)},Gd=(e,t)=>{let r;if(typeof e.content=="object")r=JSON.stringify(e.content);else if(typeof e.content=="string")r=e.content;else return;return dt({kind:yi,tags:[["e",e.channel_message_event_id],...e.tags??[]],content:r,created_at:e.created_at},t)},Jd=(e,t)=>{let r;if(typeof e.content=="object")r=JSON.stringify(e.content);else if(typeof e.content=="string")r=e.content;else return;return dt({kind:wi,tags:[["p",e.pubkey_to_mute],...e.tags??[]],content:r,created_at:e.created_at},t)},Yd={};q(Yd,{EMOJI_SHORTCODE_REGEX:()=>Ri,matchAll:()=>Xd,regex:()=>bn,replaceAll:()=>Qd});var Ri=/:(\w+):/,bn=()=>new RegExp(`\\B${Ri.source}\\B`,"g");function*Xd(e){const t=e.matchAll(bn());for(const r of t)try{const[n,o]=r;yield{shortcode:n,name:o,start:r.index,end:r.index+n.length}}catch{}}function Qd(e,t){return e.replaceAll(bn(),(r,n)=>t({shortcode:r,name:n}))}var tu={};q(tu,{useFetchImplementation:()=>eu,validateGithub:()=>ru});var mn;try{mn=fetch}catch{}function eu(e){mn=e}async function ru(e,t,r){try{return await(await mn(`https://gist.github.com/${t}/${r}/raw`)).text()===`Verifying that I control the following Nostr public key: ${e}`}catch{return!1}}var nu={};q(nu,{decrypt:()=>xn,encrypt:()=>vn,getConversationKey:()=>yn,v2:()=>lu});var Ni=1,Oi=65535;function yn(e,t){const r=se.getSharedSecret(e,"02"+t).subarray(1,33);return Bl(ae,r,"nip44-v2")}function Hi(e,t){const r=Ll(ae,e,t,76);return{chacha_key:r.subarray(0,32),chacha_nonce:r.subarray(32,44),hmac_key:r.subarray(44,76)}}function wn(e){if(!Number.isSafeInteger(e)||e<1)throw new Error("expected positive integer");if(e<=32)return 32;const t=1<Oi)throw new Error("invalid plaintext size: must be between 1 and 65535 bytes");const t=new Uint8Array(2);return new DataView(t.buffer).setUint16(0,e,!1),t}function iu(e){const t=rt.encode(e),r=t.length,n=ou(r),o=new Uint8Array(wn(r)-r);return Ze(n,t,o)}function su(e){const t=new DataView(e.buffer).getUint16(0),r=e.subarray(2,2+t);if(tOi||r.length!==t||e.length!==2+wn(t))throw new Error("invalid padding");return pt.decode(r)}function zi(e,t,r){if(r.length!==32)throw new Error("AAD associated data must be 32 bytes");const n=Ze(r,t);return Je(ae,e,n)}function au(e){if(typeof e!="string")throw new Error("payload must be a valid string");const t=e.length;if(t<132||t>87472)throw new Error("invalid payload length: "+t);if(e[0]==="#")throw new Error("unknown encryption version");let r;try{r=bt.decode(e)}catch(i){throw new Error("invalid base64: "+i.message)}const n=r.length;if(n<99||n>65603)throw new Error("invalid data length: "+n);const o=r[0];if(o!==2)throw new Error("unknown encryption version "+o);return{nonce:r.subarray(1,33),ciphertext:r.subarray(33,-32),mac:r.subarray(-32)}}function vn(e,t,r=jo(32)){const{chacha_key:n,chacha_nonce:o,hmac_key:i}=Hi(t,r),s=iu(e),l=oi(n,o,s),a=zi(i,l,r);return bt.encode(Ze(new Uint8Array([2]),r,l,a))}function xn(e,t){const{nonce:r,ciphertext:n,mac:o}=au(e),{chacha_key:i,chacha_nonce:s,hmac_key:l}=Hi(t,r),a=zi(l,n,r);if(!ul(a,o))throw new Error("invalid MAC");const c=oi(i,s,n);return su(c)}var lu={utils:{getConversationKey:yn,calcPaddedLen:wn},encrypt:vn,decrypt:xn},cu={};q(cu,{makeNwcRequestEvent:()=>uu,parseConnectionString:()=>du});function du(e){const{pathname:t,searchParams:r}=new URL(e),n=t,o=r.get("relay"),i=r.get("secret");if(!n||!o||!i)throw new Error("invalid connection string");return{pubkey:n,relay:o,secret:i}}async function uu(e,t,r){const o=await Ci(t,e,JSON.stringify({method:"pay_invoice",params:{invoice:r}})),i={kind:Ei,created_at:Math.round(Date.now()/1e3),content:o,tags:[["p",e]]};return dt(i,t)}var hu={};q(hu,{getZapEndpoint:()=>pu,makeZapReceipt:()=>mu,makeZapRequest:()=>gu,useFetchImplementation:()=>fu,validateZapRequest:()=>bu});var En;try{En=fetch}catch{}function fu(e){En=e}async function pu(e){try{let t="",{lud06:r,lud16:n}=JSON.parse(e.content);if(r){let{words:s}=oe.decode(r,1e3),l=oe.fromWords(s);t=pt.decode(l)}else if(n){let[s,l]=n.split("@");t=new URL(`/.well-known/lnurlp/${s}`,`https://${l}`).toString()}else return null;let i=await(await En(t)).json();if(i.allowsNostr&&i.nostrPubkey)return i.callback}catch{}return null}function gu({profile:e,event:t,amount:r,relays:n,comment:o=""}){if(!r)throw new Error("amount not given");if(!e)throw new Error("profile not given");let i={kind:9734,created_at:Math.round(Date.now()/1e3),content:o,tags:[["p",e],["amount",r.toString()],["relays",...n]]};return t&&i.tags.push(["e",t]),i}function bu(e){let t;try{t=JSON.parse(e)}catch{return"Invalid zap request JSON."}if(!an(t))return"Zap request is not a valid Nostr event.";if(!Xe(t))return"Invalid signature on zap request.";let r=t.tags.find(([i,s])=>i==="p"&&s);if(!r)return"Zap request doesn't have a 'p' tag.";if(!r[1].match(/^[a-f0-9]{64}$/))return"Zap request 'p' tag is not valid hex.";let n=t.tags.find(([i,s])=>i==="e"&&s);return n&&!n[1].match(/^[a-f0-9]{64}$/)?"Zap request 'e' tag is not valid hex.":t.tags.find(([i,s])=>i==="relays"&&s)?null:"Zap request doesn't have a 'relays' tag."}function mu({zapRequest:e,preimage:t,bolt11:r,paidAt:n}){let o=JSON.parse(e),i=o.tags.filter(([l])=>l==="e"||l==="p"||l==="a"),s={kind:9735,created_at:Math.round(n.getTime()/1e3),content:"",tags:[...i,["P",o.pubkey],["bolt11",r],["description",e]]};return t&&s.tags.push(["preimage",t]),s}var yu={};q(yu,{createRumor:()=>Fi,createSeal:()=>Wi,createWrap:()=>Ki,unwrapEvent:()=>Zi,unwrapManyEvents:()=>xu,wrapEvent:()=>Hr,wrapManyEvents:()=>vu});var wu=2*24*60*60,Vi=()=>Math.round(Date.now()/1e3),Di=()=>Math.round(Vi()-Math.random()*wu),qi=(e,t)=>yn(e,t),ji=(e,t,r)=>vn(JSON.stringify(e),qi(t,r)),ao=(e,t)=>JSON.parse(xn(e.content,qi(t,e.pubkey)));function Fi(e,t){const r={created_at:Vi(),content:"",tags:[],...e,pubkey:ci(t)};return r.id=Le(r),r}function Wi(e,t,r){return dt({kind:pi,content:ji(e,t,r),created_at:Di(),tags:[]},t)}function Ki(e,t){const r=Hl();return dt({kind:vi,content:ji(e,r,t),created_at:Di(),tags:[["p",t]]},r)}function Hr(e,t,r){const n=Fi(e,t),o=Wi(n,t,r);return Ki(o,r)}function vu(e,t,r){if(!r||r.length===0)throw new Error("At least one recipient is required.");const n=ci(t),o=[Hr(e,t,n)];return r.forEach(i=>{o.push(Hr(e,t,i))}),o}function Zi(e,t){const r=ao(e,t);return ao(r,t)}function xu(e,t){let r=[];return e.forEach(n=>{r.push(Zi(n,t))}),r.sort((n,o)=>n.created_at-o.created_at),r}var Eu={};q(Eu,{getToken:()=>_u,hashPayload:()=>_n,unpackEventFromToken:()=>Ji,validateEvent:()=>rs,validateEventKind:()=>Xi,validateEventMethodTag:()=>ts,validateEventPayloadTag:()=>es,validateEventTimestamp:()=>Yi,validateEventUrlTag:()=>Qi,validateToken:()=>$u});var Gi="Nostr ";async function _u(e,t,r,n=!1,o){const i={kind:un,tags:[["u",e],["method",t]],created_at:Math.round(new Date().getTime()/1e3),content:""};o&&i.tags.push(["payload",_n(o)]);const s=await r(i);return(n?Gi:"")+bt.encode(rt.encode(JSON.stringify(s)))}async function $u(e,t,r){const n=await Ji(e).catch(i=>{throw i});return await rs(n,t,r).catch(i=>{throw i})}async function Ji(e){if(!e)throw new Error("Missing token");e=e.replace(Gi,"");const t=pt.decode(bt.decode(e));if(!t||t.length===0||!t.startsWith("{"))throw new Error("Invalid token");return JSON.parse(t)}function Yi(e){return e.created_at?Math.round(new Date().getTime()/1e3)-e.created_at<60:!1}function Xi(e){return e.kind===un}function Qi(e,t){const r=e.tags.find(n=>n[0]==="u");return r?r.length>0&&r[1]===t:!1}function ts(e,t){const r=e.tags.find(n=>n[0]==="method");return r?r.length>0&&r[1].toLowerCase()===t.toLowerCase():!1}function _n(e){const t=ae(rt.encode(JSON.stringify(e)));return Y(t)}function es(e,t){const r=e.tags.find(o=>o[0]==="payload");if(!r)return!1;const n=_n(t);return r.length>0&&r[1]===n}async function rs(e,t,r,n){if(!Xe(e))throw new Error("Invalid nostr event, signature invalid");if(!Xi(e))throw new Error("Invalid nostr event, kind invalid");if(!Yi(e))throw new Error("Invalid nostr event, created_at timestamp invalid");if(!Qi(e,t))throw new Error("Invalid nostr event, url tag invalid");if(!ts(e,r))throw new Error("Invalid nostr event, method tag invalid");if(n&&typeof n=="object"&&Object.keys(n).length>0&&!es(e,n))throw new Error("Invalid nostr event, payload tag does not match request body hash");return!0}var Au=ct` + :host { + --border-color: var(--sl-color-neutral-200); + --border-radius: var(--sl-border-radius-medium); + --border-width: 1px; + --padding: var(--sl-spacing-large); + + display: inline-block; + } + + .card { + display: flex; + flex-direction: column; + background-color: var(--sl-panel-background-color); + box-shadow: var(--sl-shadow-x-small); + border: solid var(--border-width) var(--border-color); + border-radius: var(--border-radius); + } + + .card__image { + display: flex; + border-top-left-radius: var(--border-radius); + border-top-right-radius: var(--border-radius); + margin: calc(-1 * var(--border-width)); + overflow: hidden; + } + + .card__image::slotted(img) { + display: block; + width: 100%; + } + + .card:not(.card--has-image) .card__image { + display: none; + } + + .card__header { + display: block; + border-bottom: solid var(--border-width) var(--border-color); + padding: calc(var(--padding) / 2) var(--padding); + } + + .card:not(.card--has-header) .card__header { + display: none; + } + + .card:not(.card--has-image) .card__header { + border-top-left-radius: var(--border-radius); + border-top-right-radius: var(--border-radius); + } + + .card__body { + display: block; + padding: var(--padding); + } + + .card--has-footer .card__footer { + display: block; + border-top: solid var(--border-width) var(--border-color); + padding: var(--padding); + } + + .card:not(.card--has-footer) .card__footer { + display: none; + } +`,ns=class{constructor(e,...t){this.slotNames=[],this.handleSlotChange=r=>{const n=r.target;(this.slotNames.includes("[default]")&&!n.name||n.name&&this.slotNames.includes(n.name))&&this.host.requestUpdate()},(this.host=e).addController(this),this.slotNames=t}hasDefaultSlot(){return[...this.host.childNodes].some(e=>{if(e.nodeType===e.TEXT_NODE&&e.textContent.trim()!=="")return!0;if(e.nodeType===e.ELEMENT_NODE){const t=e;if(t.tagName.toLowerCase()==="sl-visually-hidden")return!1;if(!t.hasAttribute("slot"))return!0}return!1})}hasNamedSlot(e){return this.host.querySelector(`:scope > [slot="${e}"]`)!==null}test(e){return e==="[default]"?this.hasDefaultSlot():this.hasNamedSlot(e)}hostConnected(){this.host.shadowRoot.addEventListener("slotchange",this.handleSlotChange)}hostDisconnected(){this.host.shadowRoot.removeEventListener("slotchange",this.handleSlotChange)}},sr=ct` + :host { + box-sizing: border-box; + } + + :host *, + :host *::before, + :host *::after { + box-sizing: inherit; + } + + [hidden] { + display: none !important; + } +`,Ue,Mt=class extends gt{constructor(){super(),xs(this,Ue,!1),this.initialReflectedProperties=new Map,Object.entries(this.constructor.dependencies).forEach(([e,t])=>{this.constructor.define(e,t)})}emit(e,t){const r=new CustomEvent(e,_e({bubbles:!0,cancelable:!1,composed:!0,detail:{}},t));return this.dispatchEvent(r),r}static define(e,t=this,r={}){const n=customElements.get(e);if(!n){try{customElements.define(e,t,r)}catch{customElements.define(e,class extends t{},r)}return}let o=" (unknown version)",i=o;"version"in t&&t.version&&(o=" v"+t.version),"version"in n&&n.version&&(i=" v"+n.version),!(o&&i&&o===i)&&console.warn(`Attempted to register <${e}>${o}, but <${e}>${i} has already been registered.`)}attributeChangedCallback(e,t,r){vs(this,Ue)||(this.constructor.elementProperties.forEach((n,o)=>{n.reflect&&this[o]!=null&&this.initialReflectedProperties.set(o,this[o])}),Es(this,Ue,!0)),super.attributeChangedCallback(e,t,r)}willUpdate(e){super.willUpdate(e),this.initialReflectedProperties.forEach((t,r)=>{e.has(r)&&this[r]==null&&(this[r]=t)})}};Ue=new WeakMap;Mt.version="2.18.0";Mt.dependencies={};T([S()],Mt.prototype,"dir",2);T([S()],Mt.prototype,"lang",2);/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const Su={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},ku=e=>(...t)=>({_$litDirective$:e,values:t});let Pu=class{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,r,n){this._$Ct=t,this._$AM=r,this._$Ci=n}_$AS(t,r){return this.update(t,r)}update(t,r){return this.render(...r)}};/** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const os=ku(class extends Pu{constructor(e){if(super(e),e.type!==Su.ATTRIBUTE||e.name!=="class"||e.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(e){return" "+Object.keys(e).filter(t=>e[t]).join(" ")+" "}update(e,[t]){if(this.st===void 0){this.st=new Set,e.strings!==void 0&&(this.nt=new Set(e.strings.join(" ").split(/\s/).filter(n=>n!=="")));for(const n in t)t[n]&&!this.nt?.has(n)&&this.st.add(n);return this.render(t)}const r=e.element.classList;for(const n of this.st)n in t||(r.remove(n),this.st.delete(n));for(const n in t){const o=!!t[n];o===this.st.has(n)||this.nt?.has(n)||(o?(r.add(n),this.st.add(n)):(r.remove(n),this.st.delete(n)))}return jt}});var is=class extends Mt{constructor(){super(...arguments),this.hasSlotController=new ns(this,"footer","header","image")}render(){return G` +
    + + + + +
    + `}};is.styles=[sr,Au];is.define("sl-card");var Cu=ct` + :host { + --track-width: 2px; + --track-color: rgb(128 128 128 / 25%); + --indicator-color: var(--sl-color-primary-600); + --speed: 2s; + + display: inline-flex; + width: 1em; + height: 1em; + flex: none; + } + + .spinner { + flex: 1 1 auto; + height: 100%; + width: 100%; + } + + .spinner__track, + .spinner__indicator { + fill: none; + stroke-width: var(--track-width); + r: calc(0.5em - var(--track-width) / 2); + cx: 0.5em; + cy: 0.5em; + transform-origin: 50% 50%; + } + + .spinner__track { + stroke: var(--track-color); + transform-origin: 0% 0%; + } + + .spinner__indicator { + stroke: var(--indicator-color); + stroke-linecap: round; + stroke-dasharray: 150% 75%; + animation: spin var(--speed) linear infinite; + } + + @keyframes spin { + 0% { + transform: rotate(0deg); + stroke-dasharray: 0.05em, 3em; + } + + 50% { + transform: rotate(450deg); + stroke-dasharray: 1.375em, 1.375em; + } + + 100% { + transform: rotate(1080deg); + stroke-dasharray: 0.05em, 3em; + } + } +`;const zr=new Set,Qt=new Map;let zt,$n="ltr",An="en";const ss=typeof MutationObserver<"u"&&typeof document<"u"&&typeof document.documentElement<"u";if(ss){const e=new MutationObserver(ls);$n=document.documentElement.dir||"ltr",An=document.documentElement.lang||navigator.language,e.observe(document.documentElement,{attributes:!0,attributeFilter:["dir","lang"]})}function as(...e){e.map(t=>{const r=t.$code.toLowerCase();Qt.has(r)?Qt.set(r,Object.assign(Object.assign({},Qt.get(r)),t)):Qt.set(r,t),zt||(zt=t)}),ls()}function ls(){ss&&($n=document.documentElement.dir||"ltr",An=document.documentElement.lang||navigator.language),[...zr.keys()].map(e=>{typeof e.requestUpdate=="function"&&e.requestUpdate()})}let Bu=class{constructor(t){this.host=t,this.host.addController(this)}hostConnected(){zr.add(this.host)}hostDisconnected(){zr.delete(this.host)}dir(){return`${this.host.dir||$n}`.toLowerCase()}lang(){return`${this.host.lang||An}`.toLowerCase()}getTranslationData(t){var r,n;const o=new Intl.Locale(t.replace(/_/g,"-")),i=o?.language.toLowerCase(),s=(n=(r=o?.region)===null||r===void 0?void 0:r.toLowerCase())!==null&&n!==void 0?n:"",l=Qt.get(`${i}-${s}`),a=Qt.get(i);return{locale:o,language:i,region:s,primary:l,secondary:a}}exists(t,r){var n;const{primary:o,secondary:i}=this.getTranslationData((n=r.lang)!==null&&n!==void 0?n:this.lang());return r=Object.assign({includeFallback:!1},r),!!(o&&o[t]||i&&i[t]||r.includeFallback&&zt&&zt[t])}term(t,...r){const{primary:n,secondary:o}=this.getTranslationData(this.lang());let i;if(n&&n[t])i=n[t];else if(o&&o[t])i=o[t];else if(zt&&zt[t])i=zt[t];else return console.error(`No translation found for: ${String(t)}`),String(t);return typeof i=="function"?i(...r):i}date(t,r){return t=new Date(t),new Intl.DateTimeFormat(this.lang(),r).format(t)}number(t,r){return t=Number(t),isNaN(t)?"":new Intl.NumberFormat(this.lang(),r).format(t)}relativeTime(t,r,n){return new Intl.RelativeTimeFormat(this.lang(),n).format(t,r)}};var cs={$code:"en",$name:"English",$dir:"ltr",carousel:"Carousel",clearEntry:"Clear entry",close:"Close",copied:"Copied",copy:"Copy",currentValue:"Current value",error:"Error",goToSlide:(e,t)=>`Go to slide ${e} of ${t}`,hidePassword:"Hide password",loading:"Loading",nextSlide:"Next slide",numOptionsSelected:e=>e===0?"No options selected":e===1?"1 option selected":`${e} options selected`,previousSlide:"Previous slide",progress:"Progress",remove:"Remove",resize:"Resize",scrollToEnd:"Scroll to end",scrollToStart:"Scroll to start",selectAColorFromTheScreen:"Select a color from the screen",showPassword:"Show password",slideNum:e=>`Slide ${e}`,toggleColorFormat:"Toggle color format"};as(cs);var Lu=cs,ds=class extends Bu{};as(Lu);var us=class extends Mt{constructor(){super(...arguments),this.localize=new ds(this)}render(){return G` + + + + + `}};us.styles=[sr,Cu];var fe=new WeakMap,pe=new WeakMap,ge=new WeakMap,vr=new WeakSet,Pe=new WeakMap,Uu=class{constructor(e,t){this.handleFormData=r=>{const n=this.options.disabled(this.host),o=this.options.name(this.host),i=this.options.value(this.host),s=this.host.tagName.toLowerCase()==="sl-button";this.host.isConnected&&!n&&!s&&typeof o=="string"&&o.length>0&&typeof i<"u"&&(Array.isArray(i)?i.forEach(l=>{r.formData.append(o,l.toString())}):r.formData.append(o,i.toString()))},this.handleFormSubmit=r=>{var n;const o=this.options.disabled(this.host),i=this.options.reportValidity;this.form&&!this.form.noValidate&&((n=fe.get(this.form))==null||n.forEach(s=>{this.setUserInteracted(s,!0)})),this.form&&!this.form.noValidate&&!o&&!i(this.host)&&(r.preventDefault(),r.stopImmediatePropagation())},this.handleFormReset=()=>{this.options.setValue(this.host,this.options.defaultValue(this.host)),this.setUserInteracted(this.host,!1),Pe.set(this.host,[])},this.handleInteraction=r=>{const n=Pe.get(this.host);n.includes(r.type)||n.push(r.type),n.length===this.options.assumeInteractionOn.length&&this.setUserInteracted(this.host,!0)},this.checkFormValidity=()=>{if(this.form&&!this.form.noValidate){const r=this.form.querySelectorAll("*");for(const n of r)if(typeof n.checkValidity=="function"&&!n.checkValidity())return!1}return!0},this.reportFormValidity=()=>{if(this.form&&!this.form.noValidate){const r=this.form.querySelectorAll("*");for(const n of r)if(typeof n.reportValidity=="function"&&!n.reportValidity())return!1}return!0},(this.host=e).addController(this),this.options=_e({form:r=>{const n=r.form;if(n){const i=r.getRootNode().querySelector(`#${n}`);if(i)return i}return r.closest("form")},name:r=>r.name,value:r=>r.value,defaultValue:r=>r.defaultValue,disabled:r=>{var n;return(n=r.disabled)!=null?n:!1},reportValidity:r=>typeof r.reportValidity=="function"?r.reportValidity():!0,checkValidity:r=>typeof r.checkValidity=="function"?r.checkValidity():!0,setValue:(r,n)=>r.value=n,assumeInteractionOn:["sl-input"]},t)}hostConnected(){const e=this.options.form(this.host);e&&this.attachForm(e),Pe.set(this.host,[]),this.options.assumeInteractionOn.forEach(t=>{this.host.addEventListener(t,this.handleInteraction)})}hostDisconnected(){this.detachForm(),Pe.delete(this.host),this.options.assumeInteractionOn.forEach(e=>{this.host.removeEventListener(e,this.handleInteraction)})}hostUpdated(){const e=this.options.form(this.host);e||this.detachForm(),e&&this.form!==e&&(this.detachForm(),this.attachForm(e)),this.host.hasUpdated&&this.setValidity(this.host.validity.valid)}attachForm(e){e?(this.form=e,fe.has(this.form)?fe.get(this.form).add(this.host):fe.set(this.form,new Set([this.host])),this.form.addEventListener("formdata",this.handleFormData),this.form.addEventListener("submit",this.handleFormSubmit),this.form.addEventListener("reset",this.handleFormReset),pe.has(this.form)||(pe.set(this.form,this.form.reportValidity),this.form.reportValidity=()=>this.reportFormValidity()),ge.has(this.form)||(ge.set(this.form,this.form.checkValidity),this.form.checkValidity=()=>this.checkFormValidity())):this.form=void 0}detachForm(){if(!this.form)return;const e=fe.get(this.form);e&&(e.delete(this.host),e.size<=0&&(this.form.removeEventListener("formdata",this.handleFormData),this.form.removeEventListener("submit",this.handleFormSubmit),this.form.removeEventListener("reset",this.handleFormReset),pe.has(this.form)&&(this.form.reportValidity=pe.get(this.form),pe.delete(this.form)),ge.has(this.form)&&(this.form.checkValidity=ge.get(this.form),ge.delete(this.form)),this.form=void 0))}setUserInteracted(e,t){t?vr.add(e):vr.delete(e),e.requestUpdate()}doAction(e,t){if(this.form){const r=document.createElement("button");r.type=e,r.style.position="absolute",r.style.width="0",r.style.height="0",r.style.clipPath="inset(50%)",r.style.overflow="hidden",r.style.whiteSpace="nowrap",t&&(r.name=t.name,r.value=t.value,["formaction","formenctype","formmethod","formnovalidate","formtarget"].forEach(n=>{t.hasAttribute(n)&&r.setAttribute(n,t.getAttribute(n))})),this.form.append(r),r.click(),r.remove()}}getForm(){var e;return(e=this.form)!=null?e:null}reset(e){this.doAction("reset",e)}submit(e){this.doAction("submit",e)}setValidity(e){const t=this.host,r=!!vr.has(t),n=!!t.required;t.toggleAttribute("data-required",n),t.toggleAttribute("data-optional",!n),t.toggleAttribute("data-invalid",!e),t.toggleAttribute("data-valid",e),t.toggleAttribute("data-user-invalid",!e&&r),t.toggleAttribute("data-user-valid",e&&r)}updateValidity(){const e=this.host;this.setValidity(e.validity.valid)}emitInvalidEvent(e){const t=new CustomEvent("sl-invalid",{bubbles:!1,composed:!1,cancelable:!0,detail:{}});e||t.preventDefault(),this.host.dispatchEvent(t)||e?.preventDefault()}},Sn=Object.freeze({badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valid:!0,valueMissing:!1});Object.freeze(bo(_e({},Sn),{valid:!1,valueMissing:!0}));Object.freeze(bo(_e({},Sn),{valid:!1,customError:!0}));var Tu=ct` + :host { + display: inline-block; + position: relative; + width: auto; + cursor: pointer; + } + + .button { + display: inline-flex; + align-items: stretch; + justify-content: center; + width: 100%; + border-style: solid; + border-width: var(--sl-input-border-width); + font-family: var(--sl-input-font-family); + font-weight: var(--sl-font-weight-semibold); + text-decoration: none; + user-select: none; + -webkit-user-select: none; + white-space: nowrap; + vertical-align: middle; + padding: 0; + transition: + var(--sl-transition-x-fast) background-color, + var(--sl-transition-x-fast) color, + var(--sl-transition-x-fast) border, + var(--sl-transition-x-fast) box-shadow; + cursor: inherit; + } + + .button::-moz-focus-inner { + border: 0; + } + + .button:focus { + outline: none; + } + + .button:focus-visible { + outline: var(--sl-focus-ring); + outline-offset: var(--sl-focus-ring-offset); + } + + .button--disabled { + opacity: 0.5; + cursor: not-allowed; + } + + /* When disabled, prevent mouse events from bubbling up from children */ + .button--disabled * { + pointer-events: none; + } + + .button__prefix, + .button__suffix { + flex: 0 0 auto; + display: flex; + align-items: center; + pointer-events: none; + } + + .button__label { + display: inline-block; + } + + .button__label::slotted(sl-icon) { + vertical-align: -2px; + } + + /* + * Standard buttons + */ + + /* Default */ + .button--standard.button--default { + background-color: var(--sl-color-neutral-0); + border-color: var(--sl-input-border-color); + color: var(--sl-color-neutral-700); + } + + .button--standard.button--default:hover:not(.button--disabled) { + background-color: var(--sl-color-primary-50); + border-color: var(--sl-color-primary-300); + color: var(--sl-color-primary-700); + } + + .button--standard.button--default:active:not(.button--disabled) { + background-color: var(--sl-color-primary-100); + border-color: var(--sl-color-primary-400); + color: var(--sl-color-primary-700); + } + + /* Primary */ + .button--standard.button--primary { + background-color: var(--sl-color-primary-600); + border-color: var(--sl-color-primary-600); + color: var(--sl-color-neutral-0); + } + + .button--standard.button--primary:hover:not(.button--disabled) { + background-color: var(--sl-color-primary-500); + border-color: var(--sl-color-primary-500); + color: var(--sl-color-neutral-0); + } + + .button--standard.button--primary:active:not(.button--disabled) { + background-color: var(--sl-color-primary-600); + border-color: var(--sl-color-primary-600); + color: var(--sl-color-neutral-0); + } + + /* Success */ + .button--standard.button--success { + background-color: var(--sl-color-success-600); + border-color: var(--sl-color-success-600); + color: var(--sl-color-neutral-0); + } + + .button--standard.button--success:hover:not(.button--disabled) { + background-color: var(--sl-color-success-500); + border-color: var(--sl-color-success-500); + color: var(--sl-color-neutral-0); + } + + .button--standard.button--success:active:not(.button--disabled) { + background-color: var(--sl-color-success-600); + border-color: var(--sl-color-success-600); + color: var(--sl-color-neutral-0); + } + + /* Neutral */ + .button--standard.button--neutral { + background-color: var(--sl-color-neutral-600); + border-color: var(--sl-color-neutral-600); + color: var(--sl-color-neutral-0); + } + + .button--standard.button--neutral:hover:not(.button--disabled) { + background-color: var(--sl-color-neutral-500); + border-color: var(--sl-color-neutral-500); + color: var(--sl-color-neutral-0); + } + + .button--standard.button--neutral:active:not(.button--disabled) { + background-color: var(--sl-color-neutral-600); + border-color: var(--sl-color-neutral-600); + color: var(--sl-color-neutral-0); + } + + /* Warning */ + .button--standard.button--warning { + background-color: var(--sl-color-warning-600); + border-color: var(--sl-color-warning-600); + color: var(--sl-color-neutral-0); + } + .button--standard.button--warning:hover:not(.button--disabled) { + background-color: var(--sl-color-warning-500); + border-color: var(--sl-color-warning-500); + color: var(--sl-color-neutral-0); + } + + .button--standard.button--warning:active:not(.button--disabled) { + background-color: var(--sl-color-warning-600); + border-color: var(--sl-color-warning-600); + color: var(--sl-color-neutral-0); + } + + /* Danger */ + .button--standard.button--danger { + background-color: var(--sl-color-danger-600); + border-color: var(--sl-color-danger-600); + color: var(--sl-color-neutral-0); + } + + .button--standard.button--danger:hover:not(.button--disabled) { + background-color: var(--sl-color-danger-500); + border-color: var(--sl-color-danger-500); + color: var(--sl-color-neutral-0); + } + + .button--standard.button--danger:active:not(.button--disabled) { + background-color: var(--sl-color-danger-600); + border-color: var(--sl-color-danger-600); + color: var(--sl-color-neutral-0); + } + + /* + * Outline buttons + */ + + .button--outline { + background: none; + border: solid 1px; + } + + /* Default */ + .button--outline.button--default { + border-color: var(--sl-input-border-color); + color: var(--sl-color-neutral-700); + } + + .button--outline.button--default:hover:not(.button--disabled), + .button--outline.button--default.button--checked:not(.button--disabled) { + border-color: var(--sl-color-primary-600); + background-color: var(--sl-color-primary-600); + color: var(--sl-color-neutral-0); + } + + .button--outline.button--default:active:not(.button--disabled) { + border-color: var(--sl-color-primary-700); + background-color: var(--sl-color-primary-700); + color: var(--sl-color-neutral-0); + } + + /* Primary */ + .button--outline.button--primary { + border-color: var(--sl-color-primary-600); + color: var(--sl-color-primary-600); + } + + .button--outline.button--primary:hover:not(.button--disabled), + .button--outline.button--primary.button--checked:not(.button--disabled) { + background-color: var(--sl-color-primary-600); + color: var(--sl-color-neutral-0); + } + + .button--outline.button--primary:active:not(.button--disabled) { + border-color: var(--sl-color-primary-700); + background-color: var(--sl-color-primary-700); + color: var(--sl-color-neutral-0); + } + + /* Success */ + .button--outline.button--success { + border-color: var(--sl-color-success-600); + color: var(--sl-color-success-600); + } + + .button--outline.button--success:hover:not(.button--disabled), + .button--outline.button--success.button--checked:not(.button--disabled) { + background-color: var(--sl-color-success-600); + color: var(--sl-color-neutral-0); + } + + .button--outline.button--success:active:not(.button--disabled) { + border-color: var(--sl-color-success-700); + background-color: var(--sl-color-success-700); + color: var(--sl-color-neutral-0); + } + + /* Neutral */ + .button--outline.button--neutral { + border-color: var(--sl-color-neutral-600); + color: var(--sl-color-neutral-600); + } + + .button--outline.button--neutral:hover:not(.button--disabled), + .button--outline.button--neutral.button--checked:not(.button--disabled) { + background-color: var(--sl-color-neutral-600); + color: var(--sl-color-neutral-0); + } + + .button--outline.button--neutral:active:not(.button--disabled) { + border-color: var(--sl-color-neutral-700); + background-color: var(--sl-color-neutral-700); + color: var(--sl-color-neutral-0); + } + + /* Warning */ + .button--outline.button--warning { + border-color: var(--sl-color-warning-600); + color: var(--sl-color-warning-600); + } + + .button--outline.button--warning:hover:not(.button--disabled), + .button--outline.button--warning.button--checked:not(.button--disabled) { + background-color: var(--sl-color-warning-600); + color: var(--sl-color-neutral-0); + } + + .button--outline.button--warning:active:not(.button--disabled) { + border-color: var(--sl-color-warning-700); + background-color: var(--sl-color-warning-700); + color: var(--sl-color-neutral-0); + } + + /* Danger */ + .button--outline.button--danger { + border-color: var(--sl-color-danger-600); + color: var(--sl-color-danger-600); + } + + .button--outline.button--danger:hover:not(.button--disabled), + .button--outline.button--danger.button--checked:not(.button--disabled) { + background-color: var(--sl-color-danger-600); + color: var(--sl-color-neutral-0); + } + + .button--outline.button--danger:active:not(.button--disabled) { + border-color: var(--sl-color-danger-700); + background-color: var(--sl-color-danger-700); + color: var(--sl-color-neutral-0); + } + + @media (forced-colors: active) { + .button.button--outline.button--checked:not(.button--disabled) { + outline: solid 2px transparent; + } + } + + /* + * Text buttons + */ + + .button--text { + background-color: transparent; + border-color: transparent; + color: var(--sl-color-primary-600); + } + + .button--text:hover:not(.button--disabled) { + background-color: transparent; + border-color: transparent; + color: var(--sl-color-primary-500); + } + + .button--text:focus-visible:not(.button--disabled) { + background-color: transparent; + border-color: transparent; + color: var(--sl-color-primary-500); + } + + .button--text:active:not(.button--disabled) { + background-color: transparent; + border-color: transparent; + color: var(--sl-color-primary-700); + } + + /* + * Size modifiers + */ + + .button--small { + height: auto; + min-height: var(--sl-input-height-small); + font-size: var(--sl-button-font-size-small); + line-height: calc(var(--sl-input-height-small) - var(--sl-input-border-width) * 2); + border-radius: var(--sl-input-border-radius-small); + } + + .button--medium { + height: auto; + min-height: var(--sl-input-height-medium); + font-size: var(--sl-button-font-size-medium); + line-height: calc(var(--sl-input-height-medium) - var(--sl-input-border-width) * 2); + border-radius: var(--sl-input-border-radius-medium); + } + + .button--large { + height: auto; + min-height: var(--sl-input-height-large); + font-size: var(--sl-button-font-size-large); + line-height: calc(var(--sl-input-height-large) - var(--sl-input-border-width) * 2); + border-radius: var(--sl-input-border-radius-large); + } + + /* + * Pill modifier + */ + + .button--pill.button--small { + border-radius: var(--sl-input-height-small); + } + + .button--pill.button--medium { + border-radius: var(--sl-input-height-medium); + } + + .button--pill.button--large { + border-radius: var(--sl-input-height-large); + } + + /* + * Circle modifier + */ + + .button--circle { + padding-left: 0; + padding-right: 0; + } + + .button--circle.button--small { + width: var(--sl-input-height-small); + border-radius: 50%; + } + + .button--circle.button--medium { + width: var(--sl-input-height-medium); + border-radius: 50%; + } + + .button--circle.button--large { + width: var(--sl-input-height-large); + border-radius: 50%; + } + + .button--circle .button__prefix, + .button--circle .button__suffix, + .button--circle .button__caret { + display: none; + } + + /* + * Caret modifier + */ + + .button--caret .button__suffix { + display: none; + } + + .button--caret .button__caret { + height: auto; + } + + /* + * Loading modifier + */ + + .button--loading { + position: relative; + cursor: wait; + } + + .button--loading .button__prefix, + .button--loading .button__label, + .button--loading .button__suffix, + .button--loading .button__caret { + visibility: hidden; + } + + .button--loading sl-spinner { + --indicator-color: currentColor; + position: absolute; + font-size: 1em; + height: 1em; + width: 1em; + top: calc(50% - 0.5em); + left: calc(50% - 0.5em); + } + + /* + * Badges + */ + + .button ::slotted(sl-badge) { + position: absolute; + top: 0; + right: 0; + translate: 50% -50%; + pointer-events: none; + } + + .button--rtl ::slotted(sl-badge) { + right: auto; + left: 0; + translate: -50% -50%; + } + + /* + * Button spacing + */ + + .button--has-label.button--small .button__label { + padding: 0 var(--sl-spacing-small); + } + + .button--has-label.button--medium .button__label { + padding: 0 var(--sl-spacing-medium); + } + + .button--has-label.button--large .button__label { + padding: 0 var(--sl-spacing-large); + } + + .button--has-prefix.button--small { + padding-inline-start: var(--sl-spacing-x-small); + } + + .button--has-prefix.button--small .button__label { + padding-inline-start: var(--sl-spacing-x-small); + } + + .button--has-prefix.button--medium { + padding-inline-start: var(--sl-spacing-small); + } + + .button--has-prefix.button--medium .button__label { + padding-inline-start: var(--sl-spacing-small); + } + + .button--has-prefix.button--large { + padding-inline-start: var(--sl-spacing-small); + } + + .button--has-prefix.button--large .button__label { + padding-inline-start: var(--sl-spacing-small); + } + + .button--has-suffix.button--small, + .button--caret.button--small { + padding-inline-end: var(--sl-spacing-x-small); + } + + .button--has-suffix.button--small .button__label, + .button--caret.button--small .button__label { + padding-inline-end: var(--sl-spacing-x-small); + } + + .button--has-suffix.button--medium, + .button--caret.button--medium { + padding-inline-end: var(--sl-spacing-small); + } + + .button--has-suffix.button--medium .button__label, + .button--caret.button--medium .button__label { + padding-inline-end: var(--sl-spacing-small); + } + + .button--has-suffix.button--large, + .button--caret.button--large { + padding-inline-end: var(--sl-spacing-small); + } + + .button--has-suffix.button--large .button__label, + .button--caret.button--large .button__label { + padding-inline-end: var(--sl-spacing-small); + } + + /* + * Button groups support a variety of button types (e.g. buttons with tooltips, buttons as dropdown triggers, etc.). + * This means buttons aren't always direct descendants of the button group, thus we can't target them with the + * ::slotted selector. To work around this, the button group component does some magic to add these special classes to + * buttons and we style them here instead. + */ + + :host([data-sl-button-group__button--first]:not([data-sl-button-group__button--last])) .button { + border-start-end-radius: 0; + border-end-end-radius: 0; + } + + :host([data-sl-button-group__button--inner]) .button { + border-radius: 0; + } + + :host([data-sl-button-group__button--last]:not([data-sl-button-group__button--first])) .button { + border-start-start-radius: 0; + border-end-start-radius: 0; + } + + /* All except the first */ + :host([data-sl-button-group__button]:not([data-sl-button-group__button--first])) { + margin-inline-start: calc(-1 * var(--sl-input-border-width)); + } + + /* Add a visual separator between solid buttons */ + :host( + [data-sl-button-group__button]:not( + [data-sl-button-group__button--first], + [data-sl-button-group__button--radio], + [variant='default'] + ):not(:hover) + ) + .button:after { + content: ''; + position: absolute; + top: 0; + inset-inline-start: 0; + bottom: 0; + border-left: solid 1px rgb(128 128 128 / 33%); + mix-blend-mode: multiply; + } + + /* Bump hovered, focused, and checked buttons up so their focus ring isn't clipped */ + :host([data-sl-button-group__button--hover]) { + z-index: 1; + } + + /* Focus and checked are always on top */ + :host([data-sl-button-group__button--focus]), + :host([data-sl-button-group__button][checked]) { + z-index: 2; + } +`,Iu={name:"default",resolver:e=>ps(`assets/icons/${e}.svg`)},Mu=Iu,lo={caret:` + + + + `,check:` + + + + + + + + + + + `,"chevron-down":` + + + + `,"chevron-left":` + + + + `,"chevron-right":` + + + + `,copy:` + + + + `,eye:` + + + + + `,"eye-slash":` + + + + + + `,eyedropper:` + + + + `,"grip-vertical":` + + + + `,indeterminate:` + + + + + + + + + + `,"person-fill":` + + + + `,"play-fill":` + + + + `,"pause-fill":` + + + + `,radio:` + + + + + + + + `,"star-fill":` + + + + `,"x-lg":` + + + + `,"x-circle-fill":` + + + + `},Ru={name:"system",resolver:e=>e in lo?`data:image/svg+xml,${encodeURIComponent(lo[e])}`:""},Nu=Ru,Ou=[Mu,Nu],Vr=[];function Hu(e){Vr.push(e)}function zu(e){Vr=Vr.filter(t=>t!==e)}function co(e){return Ou.find(t=>t.name===e)}var Vu=ct` + :host { + display: inline-block; + width: 1em; + height: 1em; + box-sizing: content-box !important; + } + + svg { + display: block; + height: 100%; + width: 100%; + } +`;function kn(e,t){const r=_e({waitUntilFirstUpdate:!1},t);return(n,o)=>{const{update:i}=n,s=Array.isArray(e)?e:[e];n.update=function(l){s.forEach(a=>{const c=a;if(l.has(c)){const u=l.get(c),d=this[c];u!==d&&(!r.waitUntilFirstUpdate||this.hasUpdated)&&this[o](u,d)}}),i.call(this,l)}}}/** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const Du=(e,t)=>e?._$litType$!==void 0;var be=Symbol(),Ce=Symbol(),xr,Er=new Map,xt=class extends Mt{constructor(){super(...arguments),this.initialRender=!1,this.svg=null,this.label="",this.library="default"}async resolveIcon(e,t){var r;let n;if(t?.spriteSheet)return this.svg=G` + + `,this.svg;try{if(n=await fetch(e,{mode:"cors"}),!n.ok)return n.status===410?be:Ce}catch{return Ce}try{const o=document.createElement("div");o.innerHTML=await n.text();const i=o.firstElementChild;if(((r=i?.tagName)==null?void 0:r.toLowerCase())!=="svg")return be;xr||(xr=new DOMParser);const l=xr.parseFromString(i.outerHTML,"text/html").body.querySelector("svg");return l?(l.part.add("svg"),document.adoptNode(l)):be}catch{return be}}connectedCallback(){super.connectedCallback(),Hu(this)}firstUpdated(){this.initialRender=!0,this.setIcon()}disconnectedCallback(){super.disconnectedCallback(),zu(this)}getIconSource(){const e=co(this.library);return this.name&&e?{url:e.resolver(this.name),fromLibrary:!0}:{url:this.src,fromLibrary:!1}}handleLabelChange(){typeof this.label=="string"&&this.label.length>0?(this.setAttribute("role","img"),this.setAttribute("aria-label",this.label),this.removeAttribute("aria-hidden")):(this.removeAttribute("role"),this.removeAttribute("aria-label"),this.setAttribute("aria-hidden","true"))}async setIcon(){var e;const{url:t,fromLibrary:r}=this.getIconSource(),n=r?co(this.library):void 0;if(!t){this.svg=null;return}let o=Er.get(t);if(o||(o=this.resolveIcon(t,n),Er.set(t,o)),!this.initialRender)return;const i=await o;if(i===Ce&&Er.delete(t),t===this.getIconSource().url){if(Du(i)){if(this.svg=i,n){await this.updateComplete;const s=this.shadowRoot.querySelector("[part='svg']");typeof n.mutator=="function"&&s&&n.mutator(s)}return}switch(i){case Ce:case be:this.svg=null,this.emit("sl-error");break;default:this.svg=i.cloneNode(!0),(e=n?.mutator)==null||e.call(n,this.svg),this.emit("sl-load")}}}render(){return this.svg}};xt.styles=[sr,Vu];T([Zr()],xt.prototype,"svg",2);T([S({reflect:!0})],xt.prototype,"name",2);T([S()],xt.prototype,"src",2);T([S()],xt.prototype,"label",2);T([S({reflect:!0})],xt.prototype,"library",2);T([kn("label")],xt.prototype,"handleLabelChange",1);T([kn(["name","src","library"])],xt.prototype,"setIcon",1);/** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const hs=Symbol.for(""),qu=e=>{if(e?.r===hs)return e?._$litStatic$},uo=(e,...t)=>({_$litStatic$:t.reduce((r,n,o)=>r+(i=>{if(i._$litStatic$!==void 0)return i._$litStatic$;throw Error(`Value passed to 'literal' function must be a 'literal' result: ${i}. Use 'unsafeStatic' to pass non-literal values, but + take care to ensure page security.`)})(n)+e[o+1],e[0]),r:hs}),ho=new Map,ju=e=>(t,...r)=>{const n=r.length;let o,i;const s=[],l=[];let a,c=0,u=!1;for(;ce??F;var N=class extends Mt{constructor(){super(...arguments),this.formControlController=new Uu(this,{assumeInteractionOn:["click"]}),this.hasSlotController=new ns(this,"[default]","prefix","suffix"),this.localize=new ds(this),this.hasFocus=!1,this.invalid=!1,this.title="",this.variant="default",this.size="medium",this.caret=!1,this.disabled=!1,this.loading=!1,this.outline=!1,this.pill=!1,this.circle=!1,this.type="button",this.name="",this.value="",this.href="",this.rel="noreferrer noopener"}get validity(){return this.isButton()?this.button.validity:Sn}get validationMessage(){return this.isButton()?this.button.validationMessage:""}firstUpdated(){this.isButton()&&this.formControlController.updateValidity()}handleBlur(){this.hasFocus=!1,this.emit("sl-blur")}handleFocus(){this.hasFocus=!0,this.emit("sl-focus")}handleClick(){this.type==="submit"&&this.formControlController.submit(this),this.type==="reset"&&this.formControlController.reset(this)}handleInvalid(e){this.formControlController.setValidity(!1),this.formControlController.emitInvalidEvent(e)}isButton(){return!this.href}isLink(){return!!this.href}handleDisabledChange(){this.isButton()&&this.formControlController.setValidity(this.disabled)}click(){this.button.click()}focus(e){this.button.focus(e)}blur(){this.button.blur()}checkValidity(){return this.isButton()?this.button.checkValidity():!0}getForm(){return this.formControlController.getForm()}reportValidity(){return this.isButton()?this.button.reportValidity():!0}setCustomValidity(e){this.isButton()&&(this.button.setCustomValidity(e),this.formControlController.updateValidity())}render(){const e=this.isLink(),t=e?uo`a`:uo`button`;return _r` + <${t} + part="base" + class=${os({button:!0,"button--default":this.variant==="default","button--primary":this.variant==="primary","button--success":this.variant==="success","button--neutral":this.variant==="neutral","button--warning":this.variant==="warning","button--danger":this.variant==="danger","button--text":this.variant==="text","button--small":this.size==="small","button--medium":this.size==="medium","button--large":this.size==="large","button--caret":this.caret,"button--circle":this.circle,"button--disabled":this.disabled,"button--focused":this.hasFocus,"button--loading":this.loading,"button--standard":!this.outline,"button--outline":this.outline,"button--pill":this.pill,"button--rtl":this.localize.dir()==="rtl","button--has-label":this.hasSlotController.test("[default]"),"button--has-prefix":this.hasSlotController.test("prefix"),"button--has-suffix":this.hasSlotController.test("suffix")})} + ?disabled=${ut(e?void 0:this.disabled)} + type=${ut(e?void 0:this.type)} + title=${this.title} + name=${ut(e?void 0:this.name)} + value=${ut(e?void 0:this.value)} + href=${ut(e&&!this.disabled?this.href:void 0)} + target=${ut(e?this.target:void 0)} + download=${ut(e?this.download:void 0)} + rel=${ut(e?this.rel:void 0)} + role=${ut(e?void 0:"button")} + aria-disabled=${this.disabled?"true":"false"} + tabindex=${this.disabled?"-1":"0"} + @blur=${this.handleBlur} + @focus=${this.handleFocus} + @invalid=${this.isButton()?this.handleInvalid:null} + @click=${this.handleClick} + > + + + + ${this.caret?_r` `:""} + ${this.loading?_r``:""} + + `}};N.styles=[sr,Tu];N.dependencies={"sl-icon":xt,"sl-spinner":us};T([Zs(".button")],N.prototype,"button",2);T([Zr()],N.prototype,"hasFocus",2);T([Zr()],N.prototype,"invalid",2);T([S()],N.prototype,"title",2);T([S({reflect:!0})],N.prototype,"variant",2);T([S({reflect:!0})],N.prototype,"size",2);T([S({type:Boolean,reflect:!0})],N.prototype,"caret",2);T([S({type:Boolean,reflect:!0})],N.prototype,"disabled",2);T([S({type:Boolean,reflect:!0})],N.prototype,"loading",2);T([S({type:Boolean,reflect:!0})],N.prototype,"outline",2);T([S({type:Boolean,reflect:!0})],N.prototype,"pill",2);T([S({type:Boolean,reflect:!0})],N.prototype,"circle",2);T([S()],N.prototype,"type",2);T([S()],N.prototype,"name",2);T([S()],N.prototype,"value",2);T([S()],N.prototype,"href",2);T([S()],N.prototype,"target",2);T([S()],N.prototype,"rel",2);T([S()],N.prototype,"download",2);T([S()],N.prototype,"form",2);T([S({attribute:"formaction"})],N.prototype,"formAction",2);T([S({attribute:"formenctype"})],N.prototype,"formEnctype",2);T([S({attribute:"formmethod"})],N.prototype,"formMethod",2);T([S({attribute:"formnovalidate",type:Boolean})],N.prototype,"formNoValidate",2);T([S({attribute:"formtarget"})],N.prototype,"formTarget",2);T([kn("disabled",{waitUntilFirstUpdate:!0})],N.prototype,"handleDisabledChange",1);N.define("sl-button");const fs=ct` + @media(min-width: 1000px) { + sl-card { + max-width: 70vw; + } + } + + main { + margin-top: 70px; + padding: 12px; + } + +.ProseMirror { + position: relative; + word-wrap: break-word; + white-space: pre-wrap; + -webkit-font-variant-ligatures: none; + font-variant-ligatures: none; + padding: 1rem; + line-height: 1.2; + outline: none; + font-family: var( + --markdown-editor-typography-font-family, + var(--mdc-typography-font-family, Montserrat, sans-serif) + ); + font-size: var( + --markdown-editor-typography-font-size, + var(--mdc-typography-subtitle1-font-size, 1rem) + ); + font-weight: var( + --markdown-editor-typography-font-weight, + var(--mdc-typography-subtitle1-font-weight, 400) + ); + letter-spacing: var( + --markdown-editor-typography-letter-spacing, + var(--mdc-typography-subtitle1-letter-spacing, 0.009375em) + ); + } + + .ProseMirror pre { + white-space: pre-wrap; + } + + .ProseMirror li { + position: relative; + } + + .ProseMirror p:first-child, + .ProseMirror h1:first-child, + .ProseMirror h2:first-child, + .ProseMirror h3:first-child, + .ProseMirror h4:first-child, + .ProseMirror h5:first-child, + .ProseMirror h6:first-child { + margin-top: 10px; + } + + .ProseMirror a { + color: var(--markdown-editor-typography-anchor-color, -webkit-link); + text-decoration: var(--markdown-editor-typography-anchor-text-decoration); + } + + .ProseMirror p { + margin-bottom: 1em; + } + + .ProseMirror-hideselection { + caret-color: transparent; + } + + .ProseMirror-hideselection *::selection, + .ProseMirror-hideselection *::-moz-selection { + background: transparent; + } + + .ProseMirror-selectednode { + outline: 2px solid #8cf; + } + + /* Make sure li selections wrap around markers */ + li.ProseMirror-selectednode { + outline: none; + } + + li.ProseMirror-selectednode:after { + content: ''; + position: absolute; + left: -32px; + right: -2px; + top: -2px; + bottom: -2px; + border: 2px solid #8cf; + pointer-events: none; + } + + .ProseMirror-textblock-dropdown { + min-width: 3em; + } + + .ProseMirror-menu { + margin: 0 -4px; + line-height: 1; + } + + .ProseMirror-tooltip .ProseMirror-menu { + width: -webkit-fit-content; + width: fit-content; + white-space: pre; + } + + .ProseMirror-menuitem { + margin: 0.25rem 0.25rem 0.25rem 0; + display: flex; + justify-content: center; + align-items: center; + border-radius: 4px; + overflow: hidden; + } + .ProseMirror-menuitem:hover { + background-color: #f5f5f5; + } + + .ProseMirror-menuseparator { + margin: 0 8px; + } + + .ProseMirror-menu-dropdown, + .ProseMirror-menu-dropdown-menu { + font-size: 90%; + white-space: nowrap; + } + + .ProseMirror-menu-dropdown { + vertical-align: 1px; + cursor: pointer; + position: relative; + padding-right: 15px; + } + + .ProseMirror-menu-dropdown-wrap { + padding: 1px 0 1px 4px; + display: inline-block; + position: relative; + } + + .ProseMirror-menu-dropdown:after { + content: ''; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 4px solid currentColor; + opacity: 0.6; + position: absolute; + right: 4px; + top: calc(50% - 2px); + } + + .ProseMirror-menu-dropdown-menu, + .ProseMirror-menu-submenu { + position: absolute; + background: white; + color: #666; + border: 1px solid #aaa; + padding: 2px; + } + + .ProseMirror-menu-dropdown-menu { + z-index: 1; + min-width: 6em; + } + + .ProseMirror-menu-dropdown-item { + cursor: pointer; + } + + .ProseMirror-menu-dropdown-item:hover { + background: #f2f2f2; + } + + .ProseMirror-menu-dropdown-item > div { + padding: 0.375rem 0.5rem; + } + + .ProseMirror-menu-submenu-wrap { + position: relative; + margin-right: -4px; + } + + .ProseMirror-menu-submenu-label:after { + content: ''; + border-top: 4px solid transparent; + border-bottom: 4px solid transparent; + border-left: 4px solid currentColor; + opacity: 0.6; + position: absolute; + right: 4px; + top: calc(50% - 4px); + } + + .ProseMirror-menu-submenu { + display: none; + min-width: 4em; + left: 100%; + top: -3px; + } + + .ProseMirror-menu-active { + background: #eee; + border-radius: 4px; + color: black; + } + + .ProseMirror-menu-submenu-wrap:hover .ProseMirror-menu-submenu, + .ProseMirror-menu-submenu-wrap-active .ProseMirror-menu-submenu { + display: block; + } + + .ProseMirror-menubar { + display: flex; + flex-wrap: wrap; + position: relative; + background: white; + min-height: 1em; + overflow: visible; + z-index: 2; + top: 0; + left: 0; + right: 0; + color: #666; + padding: 1px 6px; + border-top-left-radius: inherit; + border-top-right-radius: inherit; + border-bottom: 1px solid + var(--markdown-editor-outline-idle-border-color, rgba(0, 0, 0, 0.38)); + box-sizing: border-box; + -moz-box-sizing: border-box; + } + + .ProseMirror-icon { + display: inline-block; + line-height: 0.8; + vertical-align: -2px; + /* Compensate for padding */ + padding: 2px 8px; + cursor: pointer; + } + + .ProseMirror-menu-disabled { + color: rgba(0,0,0,0.37); + background-color: rgba(0,0,0,0.12); + cursor: not-allowed; + } + + .ProseMirror-menu-disabled.ProseMirror-icon { + cursor: not-allowed; + } + + .ProseMirror-icon svg { + fill: currentColor; + height: 1em; + } + + .ProseMirror-icon span { + vertical-align: text-top; + } + + .ProseMirror-gapcursor { + display: none; + pointer-events: none; + position: absolute; + } + + .ProseMirror-gapcursor:after { + content: ''; + display: block; + position: absolute; + top: -2px; + width: 20px; + border-top: 1px solid black; + animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite; + } + + @keyframes ProseMirror-cursor-blink { + to { + visibility: hidden; + } + } + + .ProseMirror-focused .ProseMirror-gapcursor { + display: block; + } + + /* Add space around the hr to make clicking it easier */ + .ProseMirror-example-setup-style hr { + padding: 2px 10px; + border: none; + margin: 1em 0; + } + + .ProseMirror-example-setup-style hr:after { + content: ''; + display: block; + height: 1px; + background-color: silver; + line-height: 2px; + } + + .ProseMirror ul, + .ProseMirror ol { + padding-left: 30px; + } + + .ProseMirror blockquote { + padding-left: 1em; + border-left: 3px solid #eee; + margin-left: 0; + margin-right: 0; + } + + .ProseMirror-example-setup-style img { + cursor: default; + } + + .ProseMirror-invalid { + background: #ffc; + border: 1px solid #cc7; + border-radius: 4px; + padding: 5px 10px; + position: absolute; + min-width: 10em; + } + + .ProseMirror h1.title.empty-node::before, + .ProseMirror h2.instructional-prompt.empty-node::before, + .ProseMirror h3.mechanical-promp.empty-node::before { + content: 'Enter title here...'; + } + + .ProseMirror div.passage-subtitle.empty-node:first-child::before { + content: 'Enter subtitle here...'; + } + + .ProseMirror div.passage-author.empty-node:first-child::before, + .ProseMirror div.passage-cast-title.empty-node:first-child::before, + .ProseMirror div.passage-act-title.empty-node:first-child::before, + .ProseMirror div.passage-scene-title.empty-node:first-child::before, + .ProseMirror div.passage-verse.empty-node:first-child::before, + .ProseMirror div.passage-footnotes.empty-node:first-child::before, + .ProseMirror div.paragraph.empty-node:first-child::before { + content: 'Enter text here...'; + } + + div[contenteditable]:focus h1.title.empty-node::before, + div[contenteditable]:focus h2.instructional-prompt.empty-node::before, + div[contenteditable]:focus h3.mechanical-promp.empty-node::before, + div[contenteditable]:focus + div.passage-subtitle.empty-node:first-child::before, + div[contenteditable]:focus div.passage-author.empty-node:first-child::before, + div[contenteditable]:focus + div.passage-cast-title.empty-node:first-child::before, + div[contenteditable]:focus + div.passage-act-title.empty-node:first-child::before, + div[contenteditable]:focus + div.passage-scene-title.empty-node:first-child::before, + div[contenteditable]:focus div.passage-verse.empty-node:first-child::before, + div[contenteditable]:focus + div.passage-footnotes.empty-node:first-child::before, + div[contenteditable]:focus div.paragraph.empty-node:first-child::before { + content: ''; + } + + .ProseMirror .empty-node::before { + position: absolute; + color: #aaa; + cursor: text; + font-style: italic; + } + + #editor, .editor { + background: white; + color: black; + background-clip: padding-box; + padding: 5px 0; + } + + #editor[disabled] .ProseMirror-menubar { + display: none!important; + } + + drop-down-editor rich-text .inline-component-button, + expand-collapse rich-text .inline-component-button, + flip-reveal rich-text .inline-component-button, + hint-list rich-text .inline-component-button, + option-list rich-text .inline-component-button, + plankton-passage rich-text .inline-component-button { + pointer-events: none; + color: lightgray; + } + + #ProseMirror-icon-collection path { + fill-rule: evenodd; + } + #welcomeBar { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + } + + #welcomeCard, + #infoCard { + padding: 18px; + padding-top: 0px; + } + + sl-card::part(footer) { + display: flex; + justify-content: flex-end; + } + + @media(min-width: 750px) { + sl-card { + width: 70vw; + } + } + + @media (horizontal-viewport-segments: 2) { + #welcomeBar { + flex-direction: row; + align-items: flex-start; + justify-content: space-between; + } + + + + + @media (horizontal-viewport-segments: 2) { + #welcomeBar { + flex-direction: row; + align-items: flex-start; + justify-content: space-between; + } + + + } + .boring { + background: grey; + } + + .plus { + position: absolute; + + padding: 8px; + background-color: #4CAF50; + color: red; + border: none; + cursor: pointer; +} + +.plus:hover { + background-color: #45a049; +} + +.ProseMirror-textblock-dropdown { + min-width: 3em; +} +}`;var Fu=Object.defineProperty,Wu=Object.getOwnPropertyDescriptor,Pn=(e,t,r,n)=>{for(var o=n>1?void 0:n?Wu(t,r):t,i=e.length-1,s;i>=0;i--)(s=e[i])&&(o=(n?s(t,r,o):s(o))||o);return n&&o&&Fu(t,r,o),o};let ie=class extends gt{constructor(){super(...arguments),this.notes=[],this.relayName="",this.note=""}getUserLang(){return navigator.language||"en"}async firstUpdated(){console.log("Here are some recent notes from the neighborhood")}async connectedCallback(){super.connectedCallback(),await Promise.all([this.fetchNotes()])}async fetchNotes(){const e=await tr.connect("wss://notes.miguelalmodo.com");console.log(`connected to ${e.url}`),this.relayName=e.url;const t=e.subscribe([{kinds:[30023],limit:5}],{onevent:async r=>{console.log("Event received:",r),this.notes=[...this.notes,{content:r.content,date:new Date(r.created_at*1e3).toLocaleDateString()}],this.requestUpdate(),console.log(e)},oneose:()=>{t.close(),this.requestUpdate()}})}async displayLongNotes(){}share(){navigator.share&&navigator.share({title:"Nostr Micro Client",text:"Share this with your homie!",url:"https://miguelalmodo.com/"})}render(){return G` + +
    + +
    + +
    +

    Recent Notes from ${this.relayName}

    +
    + + + + + + ${this.notes.map(e=>{const t=e.content.match(/https?:\/\/[^\s]+/),r=e.content.replace(t?.[0]||"","").trim(),n=/(?:https?:\/\/(?:www\.)?youtube\.com\/watch\?v=|https?:\/\/youtu\.be\/)([a-zA-Z0-9_-]{11})/,o=t?.[0].match(n),i=o?o[1]:null,s=i?`https://img.youtube.com/vi/${i}/maxresdefault.jpg`:null,l=/(https?:\/\/[^\s]+\.(?:jpg|jpeg|png|gif))/i,a=t?.find(c=>l.test(c));return G` + + + + + `})} +

    ${e.date}

    +

    ${r}

    + ${s?G`YouTube thumbnail`:a?G`Note image`:""} +
    + + + +
    + + `}};ie.styles=[fs,ct` + +.comment-wall .main-section-header { + margin-bottom: 3px; +} + +.comment-wall .main-section-h2 { + margin-bottom: 0; +} + +#comment-counter { + margin-top: 0; + margin-left: 15px; + margin-bottom: 3px; +} + +.comment-wall table { + margin: auto; + margin-bottom: 5px; + color: black; +} + + +.comment-wall th { + width: 158px; + padding: 3px; + vertical-align: top; +} + +.comment-wall td { + vertical-align: top; + width: 269px; + padding: 3px; +} + +.comment-wall figcaption, +.comment-wall figure { + margin: 0; +} + +.comment-wall figcaption { + margin-bottom: 1em; +} + +.comment-wall figure { + margin-bottom: 49.33px; +} + +.comment-wall h3 { + font-size: 10pt; + margin: 0; + margin-bottom: 3em; +} + +.comment-wall p { + font-weight: normal; + text-align: center; + margin: 0; +} + +#add-comment { + text-align: right; + margin-right: 10px; + margin-bottom: 5px; +} + + + `];Pn([S({type:Array})],ie.prototype,"notes",2);Pn([S({type:String})],ie.prototype,"relayName",2);ie=Pn([qe("note-wall")],ie);const Ku=Object.freeze(Object.defineProperty({__proto__:null,get NoteWall(){return ie}},Symbol.toStringTag,{value:"Module"})),Zu="modulepreload",Gu=function(e){return"/"+e},fo={},Te=function(t,r,n){let o=Promise.resolve();if(r&&r.length>0){document.getElementsByTagName("link");const s=document.querySelector("meta[property=csp-nonce]"),l=s?.nonce||s?.getAttribute("nonce");o=Promise.allSettled(r.map(a=>{if(a=Gu(a),a in fo)return;fo[a]=!0;const c=a.endsWith(".css"),u=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${a}"]${u}`))return;const d=document.createElement("link");if(d.rel=c?"stylesheet":Zu,c||(d.as="script"),d.crossOrigin="",d.href=a,l&&d.setAttribute("nonce",l),document.head.appendChild(d),c)return new Promise((m,g)=>{d.addEventListener("load",m),d.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${a}`)))})}))}function i(s){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=s,window.dispatchEvent(l),!l.defaultPrevented)throw s}return o.then(s=>{for(const l of s||[])l.status==="rejected"&&i(l.reason);return t().catch(i)})},Cn=Symbol.for("app-tools::log::1.x");globalThis[Cn]={setDebug:Ju,debug:"window"in globalThis?new URL(window.location.href).searchParams.has("app-tools-debug"):!1};function Ju(e){globalThis[Cn].debug=!!e}function Yu(e,t){globalThis[Cn].debug&&(console.groupCollapsed(`[app-tools] ${e}`),t&&console.log(t),console.groupEnd())}function Xu(e){return(t,r)=>{Yu(`${e}: ${t}`,r)}}const Pt=Xu("router");class Qu extends Event{constructor(t){super("route-changed"),this.context=t}}class th extends EventTarget{context={params:{},query:{},title:"",url:new URL(window.location.href)};constructor(t){super(),this.config=t,this.routes=t.routes.map(r=>({...r,urlPattern:new URLPattern({pathname:r.path,baseURL:window.location.href,search:"*",hash:"*"})})),Pt("Initialized routes",this.routes),queueMicrotask(()=>{this.navigate(new URL(window.location.href),{replace:!0})}),window.addEventListener("popstate",this._onPopState),window.addEventListener("click",this._onAnchorClick)}uninstall(){window.removeEventListener("popstate",this._onPopState),window.removeEventListener("click",this._onAnchorClick)}get url(){return new URL(window.location.href)}get fallback(){return new URL(this.config?.fallback||this.baseUrl.href.substring(window.location.origin.length),this.baseUrl)}get baseUrl(){return new URL("./",document.baseURI)}render(){return Pt(`Rendering route ${this.context.url.pathname}${this.context.url.search}${this.context.url.hash}`,{context:this.context,route:this.route}),this.route?.render?.(this.context)}_matchRoute(t){for(const r of this.routes){const n=r.urlPattern.exec(t);if(n){const{title:o}=r,i=Object.fromEntries(new URLSearchParams(t.search)),s=n?.pathname?.groups??{};return this.context={url:t,title:typeof o=="function"?o({params:s,query:i,url:t}):o,params:s,query:i},r}}return Pt(`No route matched for ${t.pathname}${t.search}${t.hash}`,t),null}_notifyUrlChanged(){this.dispatchEvent(new Qu(this.context))}_onPopState=()=>{this.navigate(new URL(window.location.href),{backNav:!0})};_onAnchorClick=t=>{if(t.defaultPrevented||t.button!==0||t.metaKey||t.ctrlKey||t.shiftKey)return;const r=t.composedPath().find(i=>i.tagName==="A");if(!r||!r.href)return;const n=new URL(r.href);if(this.url.href===n.href||n.host!==window.location.host||r.hasAttribute("download")||r.href.includes("mailto:"))return;const o=r.getAttribute("target");o&&o!==""&&o!=="_self"||(t.preventDefault(),this.navigate(n))};_collectPlugins(t){return[...this.config?.plugins??[],...t?.plugins??[]]}async navigate(t,r={}){typeof t=="string"&&(t=new URL(t,this.baseUrl));let n=this._matchRoute(t)||this._matchRoute(this.fallback);Pt(`Navigating to ${t.pathname}${t.search}${t.hash}`,{context:this.context,route:this.route});let o=this._collectPlugins(n);for(const i of o)try{const s=await i?.shouldNavigate?.(this.context);s&&(await s.condition()||(t=new URL(s.redirect,this.baseUrl),n=this._matchRoute(t)||this._matchRoute(this.fallback),o=this._collectPlugins(n),Pt("Redirecting",{context:this.context,route:this.route})))}catch(s){throw Pt(`Plugin "${i.name}" error on shouldNavigate hook`,s),s}if(this.route=n,!this.route)throw new Error(`[ROUTER] No route or fallback matched for url ${t}`);for(const i of o)try{await i?.beforeNavigation?.(this.context)}catch(s){throw Pt(`Plugin "${i.name}" error on beforeNavigation hook`,s),s}r?.replace?window.history.replaceState(null,"",`${t.pathname}${t.search}${t.hash}`):r.backNav||window.history.pushState(null,"",`${t.pathname}${t.search}${t.hash}`),document.title=this.context.title,this._notifyUrlChanged();for(const i of o)try{await i?.afterNavigation?.(this.context)}catch(s){throw Pt(`Plugin "${i.name}" error on afterNavigation hook`,s),s}}}function $r(e){return{name:"lazy",beforeNavigation:()=>{e()}}}globalThis.URLPattern||await Te(()=>import("./index-CBloBB_n.js"),[]);const eh="/",po=new th({routes:[{path:Lt(),title:"Home",render:()=>G``},{path:Lt("about"),title:"About",plugins:[$r(()=>Te(()=>import("./app-about-BGKiJfUr.js"),[]))],render:()=>G``},{path:Lt("note-wall"),title:"Note Wall",plugins:[$r(()=>Te(()=>Promise.resolve().then(()=>Ku),void 0))],render:()=>G``},{path:Lt("write"),title:"Write",plugins:[$r(()=>Te(()=>import("./app-write-DLE2Mxxa.js"),[]))],render:()=>G``}]});function Lt(e){var t=eh;return e&&(t=t+e),t}var rh=Object.defineProperty,nh=Object.getOwnPropertyDescriptor,Wt=(e,t,r,n)=>{for(var o=n>1?void 0:n?nh(t,r):t,i=e.length-1,s;i>=0;i--)(s=e[i])&&(o=(n?s(t,r,o):s(o))||o);return n&&o&&rh(t,r,o),o};let mt=class extends gt{constructor(){super(...arguments),this.message="Welcome to my demo!",this.nostrAddy="",this.bio="",this.profilePic="",this.isSignedIn=!1,this.publicKey=""}async firstUpdated(){console.log("Welcome to my home page")}connectedCallback(){super.connectedCallback(),this.addEventListener("user-state-changed",e=>{const t=e.detail;this.nostrAddy=t.nostrAddy,this.bio=t.bio,this.profilePic=t.profilePic,this.isSignedIn=t.isSignedIn})}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("profile-updated",this.updateProfileFromEvent.bind(this)),window.removeEventListener("user-signed-out",this.handlesSignOut.bind(this))}updateProfileFromEvent(e){console.log("Profile updated event received:",e.detail);const t=e.detail;this.nostrAddy=t.nostrAddy,this.bio=t.bio,this.profilePic=t.profilePic,this.isSignedIn=!0,this.requestUpdate()}handlesSignOut(){this.profilePic="",this.bio="",this.nostrAddy="Guest",this.isSignedIn=!1,this.requestUpdate()}async fetchAndDisplayProfile(e){this.nostrAddy=e,this.bio="Loading profile info...",this.profilePic="/assets/img/loading_pfp.png";try{const r=(await tr.connect("wss://notes.miguelalmodo.com")).subscribe([{kinds:[0],authors:[e]}],{onevent:n=>{const o=JSON.parse(n.content);this.nostrAddy=o.nip05||"No address available",this.bio=o.about||"No bio available",this.profilePic=o.picture||"/assets/img/default_pfp.png",this.requestUpdate()},oneose:()=>r.close()})}catch(t){console.error("Error fetching profile:",t),this.displayGuestView()}}displayGuestView(){this.nostrAddy="",this.bio="Welcome, guest! Please sign in with a browser extension to view your profile.",this.profilePic="/assets/img/default_pfp.png",this.isSignedIn=!1}share(){navigator.share&&navigator.share({title:"A MiggyMofongo Project",text:"This is a personal progressive social web app",url:"https://miguelalmodo.com/dist2"})}render(){return G` + + +
    +
    + +
    +

    Welcome to ${this.nostrAddy||"Guest"}'s Profile

    +
    +

    + You can upgrade your website into + a micro blog client with a social protocol to do things + like browse a feed, compose a note, or post to your network. + +

    + + +
    +Profile Picture + +

    ${this.bio||"Welcome, guest! Please sign in to view your profile."}

    + +
    + + ${"share"in navigator?G` + + Share this personal website with a friend! + `:null} +
    + + + +
    +
    + `}};mt.styles=[fs,ct` + + + + @media (horizontal-viewport-segments: 2) { + #welcomeBar { + flex-direction: row; + align-items: flex-start; + justify-content: space-between; + } + + #welcomeCard { + margin-right: 64px; + } + } + + /* +======================================== +Profile Picture Container +======================================== +*/ +.profile-picture-container { + display: grid; + grid-template-columns: 400px 200px; + grid-template-rows: 250px; + grid-column-gap: 15px; + margin-bottom: 12px; + +} + +.profile-picture-container p { + margin: 0; +} + +.profile-pic { + grid-area: 1/1; + margin-top: 25px; + margin-left: 100px; + margin-bottom: 10px; + border-radius: 50%; +} + +.personal-msg { + grid-area: 1/2; + align-content: center; + align-items: center; +} + + + +.nav-button-container { + justify-self: center; + align-self: end; +} + + `];Wt([S()],mt.prototype,"message",2);Wt([S({type:String})],mt.prototype,"nostrAddy",2);Wt([S({type:String})],mt.prototype,"bio",2);Wt([S({type:String})],mt.prototype,"profilePic",2);Wt([S({type:Boolean})],mt.prototype,"isSignedIn",2);Wt([S({type:String})],mt.prototype,"publicKey",2);mt=Wt([qe("app-home")],mt);var oh=Object.defineProperty,ih=Object.getOwnPropertyDescriptor,Rt=(e,t,r,n)=>{for(var o=n>1?void 0:n?ih(t,r):t,i=e.length-1,s;i>=0;i--)(s=e[i])&&(o=(n?s(t,r,o):s(o))||o);return n&&o&&oh(t,r,o),o};let lt=class extends gt{constructor(){super(...arguments),this.title="fostr",this.enableBack=!1,this.nostrAddy="",this.bio="",this.profilePic="",this.isSignedIn=!1,this.publicKey=""}connectedCallback(){super.connectedCallback();const e=localStorage.getItem("pubkey");e?(this.isSignedIn=!0,this.fetchProfileMetadata(e)):this.displayGuestView()}displayGuestView(){this.nostrAddy="",this.bio="Welcome, guest! Please sign in with a browser extension to view your profile.",this.profilePic="/public/assets/img/default_pfp.png",this.isSignedIn=!1,this.dispatchUserStateChanged()}async fetchProfileMetadata(e){try{const r=(await tr.connect("wss://notes.miguelalmodo.com")).subscribe([{kinds:[0],authors:[e]}],{onevent:n=>{const o=JSON.parse(n.content);this.profilePic=o.picture||"/assets/img/default_pfp.png",this.nostrAddy=o.nip05||"no addy available",this.bio=o.about||"bio not available",this.dispatchUserStateChanged()},oneose:()=>r.close()})}catch(t){console.error("Failed to fetch profile metadata:",t),this.displayGuestView()}}async signInWithNostr(){if(window.nostr)try{const e=await window.nostr.getPublicKey();this.isSignedIn=!0,localStorage.setItem("pubkey",e),await this.fetchProfileMetadata(e)}catch(e){console.error("Failed to sign in:",e),this.isSignedIn=!1}else alert("Nostr extension not detected. Please install a Nostr extension.")}signOut(){localStorage.removeItem("pubkey"),this.displayGuestView()}dispatchUserStateChanged(){this.dispatchEvent(new CustomEvent("user-state-changed",{detail:{isSignedIn:this.isSignedIn,nostrAddy:this.nostrAddy,bio:this.bio,profilePic:this.profilePic},bubbles:!0,composed:!0}))}render(){return G` +
    + +
    + ${this.enableBack?G` + Back + `:null} + +

    ${this.title}

    +
    + + + ${this.isSignedIn?"Sign out":"Sign in"} + + +
    + `}};lt.styles=ct` + header { + display: flex; + justify-content: space-between; + align-items: center; + background: var(--app-color-primary); + color: white; + padding: 12px; + padding-top: 4px; + + position: fixed; + left: env(titlebar-area-x, 0); + top: env(titlebar-area-y, 0); + height: env(titlebar-area-height, 30px); + width: env(titlebar-area-width, 100%); + -webkit-app-region: drag; + } + + header h1 { + margin-top: 0; + margin-bottom: 0; + font-size: 12px; + font-weight: bold; + } + + nav a { + margin-left: 10px; + } + + #back-button-block { + display: flex; + justify-content: space-between; + align-items: center; + gap: 8px; + } + + @media(prefers-color-scheme: light) { + header { + color: black; + } + + nav a { + color: initial; + } + } + `;Rt([S({type:String})],lt.prototype,"title",2);Rt([S({type:Boolean})],lt.prototype,"enableBack",2);Rt([S({type:String})],lt.prototype,"nostrAddy",2);Rt([S({type:String})],lt.prototype,"bio",2);Rt([S({type:String})],lt.prototype,"profilePic",2);Rt([S({type:Boolean})],lt.prototype,"isSignedIn",2);Rt([S({type:String})],lt.prototype,"publicKey",2);lt=Rt([qe("app-header")],lt);var sh=Object.defineProperty,ah=Object.getOwnPropertyDescriptor,lh=(e,t,r,n)=>{for(var o=n>1?void 0:n?ah(t,r):t,i=e.length-1,s;i>=0;i--)(s=e[i])&&(o=(n?s(t,r,o):s(o))||o);return n&&o&&sh(t,r,o),o};let Dr=class extends gt{firstUpdated(){po.addEventListener("route-changed",()=>{"startViewTransition"in document?document.startViewTransition(()=>this.requestUpdate()):this.requestUpdate()})}render(){return po.render()}};Dr.styles=ct` + main { + padding-left: 16px; + padding-right: 16px; + padding-bottom: 16px; + } + `;Dr=lh([qe("app-index")],Dr);export{Zs as e,ct as i,S as n,gt as r,fs as s,qe as t,G as x}; +//# sourceMappingURL=index-COc6jZBc.js.map diff --git a/dist2/code/index-COc6jZBc.js.map b/dist2/code/index-COc6jZBc.js.map new file mode 100644 index 0000000..7705cd7 --- /dev/null +++ b/dist2/code/index-COc6jZBc.js.map @@ -0,0 +1 @@ +{"version":3,"mappings":"ssBACA,IAAIA,GAAW,GACf,SAASC,GAAYC,EAAM,CACzBF,GAAWE,CACb,CACA,SAASC,GAAYC,EAAU,GAAI,CACjC,GAAI,CAACJ,GAAU,CACb,MAAMK,EAAU,CAAC,GAAG,SAAS,qBAAqB,QAAQ,CAAC,EACrDC,EAAeD,EAAQ,KAAME,GAAWA,EAAO,aAAa,eAAe,CAAC,EAClF,GAAID,EACFL,GAAYK,EAAa,aAAa,eAAe,CAAC,MACjD,CACL,MAAME,EAAiBH,EAAQ,KAAMI,GAC5B,6BAA6B,KAAKA,EAAE,GAAG,GAAK,wCAAwC,KAAKA,EAAE,GAAG,CACtG,EACD,IAAIP,EAAO,GACPM,IACFN,EAAOM,EAAe,aAAa,KAAK,GAE1CP,GAAYC,EAAK,MAAM,GAAG,EAAE,MAAM,EAAG,EAAE,EAAE,KAAK,GAAG,CAAC,CACxD,CACA,CACE,OAAOF,GAAS,QAAQ,MAAO,EAAE,GAAKI,EAAU,IAAIA,EAAQ,QAAQ,MAAO,EAAE,CAAC,GAAK,GACrF,CCvBA,IAAIM,GAAY,OAAO,eACnBC,GAAa,OAAO,iBACpBC,GAAmB,OAAO,yBAC1BC,GAAoB,OAAO,0BAC3BC,GAAsB,OAAO,sBAC7BC,GAAe,OAAO,UAAU,eAChCC,GAAe,OAAO,UAAU,qBAIhCC,GAAkB,CAACC,EAAKC,EAAKC,IAAUD,KAAOD,EAAMR,GAAUQ,EAAKC,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAC,CAAK,CAAE,EAAIF,EAAIC,CAAG,EAAIC,EACtJC,GAAiB,CAACC,EAAGC,IAAM,CAC7B,QAASC,KAAQD,IAAMA,EAAI,IACrBR,GAAa,KAAKQ,EAAGC,CAAI,GAC3BP,GAAgBK,EAAGE,EAAMD,EAAEC,CAAI,CAAC,EACpC,GAAIV,GACF,QAASU,KAAQV,GAAoBS,CAAC,EAChCP,GAAa,KAAKO,EAAGC,CAAI,GAC3BP,GAAgBK,EAAGE,EAAMD,EAAEC,CAAI,CAAC,EAEtC,OAAOF,CACT,EACIG,GAAgB,CAACH,EAAGC,IAAMZ,GAAWW,EAAGT,GAAkBU,CAAC,CAAC,EAC5DG,EAAkB,CAACC,EAAYC,EAAQT,EAAKU,IAAS,CAEvD,QADIC,EAASD,EAAO,EAAI,OAASA,EAAOjB,GAAiBgB,EAAQT,CAAG,EAAIS,EAC/D,EAAID,EAAW,OAAS,EAAGI,EAAW,GAAK,EAAG,KACjDA,EAAYJ,EAAW,CAAC,KAC1BG,GAAUD,EAAOE,EAAUH,EAAQT,EAAKW,CAAM,EAAIC,EAAUD,CAAM,IAAMA,GAC5E,OAAID,GAAQC,GACVpB,GAAUkB,EAAQT,EAAKW,CAAM,EACxBA,CACT,EACIE,GAAgB,CAACd,EAAKe,EAAQC,IAAQ,CACxC,GAAI,CAACD,EAAO,IAAIf,CAAG,EACjB,MAAM,UAAU,UAAYgB,CAAG,CACnC,EACIC,GAAe,CAACjB,EAAKe,EAAQG,KAC/BJ,GAAcd,EAAKe,EAAQ,yBAAyB,EACjBA,EAAO,IAAIf,CAAG,GAE/CmB,GAAe,CAACnB,EAAKe,EAAQb,IAAU,CACzC,GAAIa,EAAO,IAAIf,CAAG,EAChB,MAAM,UAAU,mDAAmD,EACrEe,aAAkB,QAAUA,EAAO,IAAIf,CAAG,EAAIe,EAAO,IAAIf,EAAKE,CAAK,CACrE,EACIkB,GAAe,CAACpB,EAAKe,EAAQb,EAAOmB,KACtCP,GAAcd,EAAKe,EAAQ,wBAAwB,EAChBA,EAAO,IAAIf,EAAKE,CAAK,EACjDA,GC9CLnB,GAAY,mEAAmE,ECFnF;AAAA;AAAA;AAAA;AAAA,GAKA,MAAMuC,GAAE,WAAWC,GAAED,GAAE,aAAsBA,GAAE,WAAX,QAAqBA,GAAE,SAAS,eAAe,uBAAuB,SAAS,WAAW,YAAY,cAAc,UAAU/B,GAAE,OAAM,EAAGiC,GAAE,IAAI,QAAQ,IAAAC,GAAA,KAAO,CAAC,YAAY,EAAEF,EAAEC,EAAE,CAAC,GAAG,KAAK,aAAa,GAAGA,IAAIjC,GAAE,MAAM,MAAM,mEAAmE,EAAE,KAAK,QAAQ,EAAE,KAAK,EAAEgC,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,MAAMhC,EAAE,KAAK,EAAE,GAAGgC,IAAY,IAAT,OAAW,CAAC,MAAMA,EAAWhC,IAAT,QAAgBA,EAAE,SAAN,EAAagC,IAAI,EAAEC,GAAE,IAAIjC,CAAC,GAAY,IAAT,UAAc,KAAK,EAAE,EAAE,IAAI,eAAe,YAAY,KAAK,OAAO,EAAEgC,GAAGC,GAAE,IAAIjC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,OAAO,KAAK,OAAO,CAAC,EAAM,MAACmC,GAAEJ,GAAG,IAAIK,GAAY,OAAOL,GAAjB,SAAmBA,EAAEA,EAAE,GAAG,OAAO/B,EAAC,EAAEqC,GAAE,CAACN,KAAKC,IAAI,CAAC,MAAMC,EAAMF,EAAE,SAAN,EAAaA,EAAE,CAAC,EAAEC,EAAE,OAAQ,CAACA,EAAEhC,EAAEiC,IAAID,GAAGD,GAAG,CAAC,GAAQA,EAAE,eAAP,GAAoB,OAAOA,EAAE,QAAQ,GAAa,OAAOA,GAAjB,SAAmB,OAAOA,EAAE,MAAM,MAAM,mEAAmEA,EAAE,sFAAsF,CAAC,GAAG/B,CAAC,EAAE+B,EAAEE,EAAE,CAAC,EAAGF,EAAE,CAAC,CAAC,EAAE,OAAO,IAAIK,GAAEH,EAAEF,EAAE/B,EAAC,CAAC,EAAEsC,GAAE,CAACtC,EAAEiC,IAAI,CAAC,GAAGD,GAAEhC,EAAE,mBAAmBiC,EAAE,IAAKF,GAAGA,aAAa,cAAcA,EAAEA,EAAE,UAAY,MAAM,WAAUC,KAAKC,EAAE,CAAC,MAAMA,EAAE,SAAS,cAAc,OAAO,EAAEG,EAAEL,GAAE,SAAkBK,IAAT,QAAYH,EAAE,aAAa,QAAQG,CAAC,EAAEH,EAAE,YAAYD,EAAE,QAAQhC,EAAE,YAAYiC,CAAC,CAAC,CAAC,EAAEM,GAAEP,GAAED,GAAGA,EAAEA,GAAGA,aAAa,eAAe,GAAG,CAAC,IAAIC,EAAE,GAAG,UAAUhC,KAAK,EAAE,SAASgC,GAAGhC,EAAE,QAAQ,OAAOmC,GAAEH,CAAC,CAAC,GAAGD,CAAC,EAAEA,ECJ3zC;AAAA;AAAA;AAAA;AAAA,GAIG,KAAK,CAAC,GAAGM,GAAE,eAAeL,GAAE,yBAAyBG,GAAE,oBAAoBK,GAAE,sBAAsBP,GAAE,eAAeG,EAAC,EAAE,OAAOvB,GAAE,WAAW0B,GAAE1B,GAAE,aAAa4B,GAAEF,GAAEA,GAAE,YAAY,GAAGG,GAAE7B,GAAE,+BAA+B8B,GAAE,CAACZ,EAAE/B,IAAI+B,EAAEa,GAAE,CAAC,YAAYb,EAAE/B,EAAE,CAAC,OAAOA,EAAC,CAAE,KAAK,QAAQ+B,EAAEA,EAAEU,GAAE,KAAK,MAAM,KAAK,OAAO,KAAK,MAAMV,EAAQA,GAAN,KAAQA,EAAE,KAAK,UAAUA,CAAC,CAAC,CAAC,OAAOA,CAAC,EAAE,cAAcA,EAAE/B,EAAE,CAAC,IAAIqC,EAAEN,EAAE,OAAO/B,EAAG,MAAK,QAAQqC,EAASN,IAAP,KAAS,MAAM,KAAK,OAAOM,EAASN,IAAP,KAAS,KAAK,OAAOA,CAAC,EAAE,MAAM,KAAK,OAAO,KAAK,MAAM,GAAG,CAACM,EAAE,KAAK,MAAMN,CAAC,CAAC,MAAS,CAACM,EAAE,IAAI,CAAC,CAAC,OAAOA,CAAC,CAAC,EAAEQ,GAAE,CAACd,EAAE/B,IAAI,CAACqC,GAAEN,EAAE/B,CAAC,EAAE8C,GAAE,CAAC,UAAU,GAAG,KAAK,OAAO,UAAUF,GAAE,QAAQ,GAAG,WAAWC,EAAC,EAAE,OAAO,WAAW,OAAO,UAAU,EAAEhC,GAAE,sBAAsB,IAAI,QAAQ,MAAMC,WAAU,WAAW,CAAC,OAAO,eAAe,EAAE,CAAC,KAAK,KAAM,GAAE,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,WAAW,oBAAoB,CAAC,OAAO,KAAK,WAAW,KAAK,MAAM,CAAC,GAAG,KAAK,KAAK,KAAM,EAAC,CAAC,OAAO,eAAe,EAAEd,EAAE8C,GAAE,CAAC,GAAG9C,EAAE,QAAQA,EAAE,UAAU,IAAI,KAAK,KAAM,EAAC,KAAK,kBAAkB,IAAI,EAAEA,CAAC,EAAE,CAACA,EAAE,WAAW,CAAC,MAAMqC,EAAE,OAAM,EAAGF,EAAE,KAAK,sBAAsB,EAAEE,EAAErC,CAAC,EAAWmC,IAAT,QAAYH,GAAE,KAAK,UAAU,EAAEG,CAAC,CAAC,CAAC,CAAC,OAAO,sBAAsB,EAAEnC,EAAEqC,EAAE,CAAC,KAAK,CAAC,IAAIL,EAAE,IAAIQ,CAAC,EAAEL,GAAE,KAAK,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,KAAKnC,CAAC,CAAC,EAAE,IAAI+B,EAAE,CAAC,KAAK/B,CAAC,EAAE+B,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,OAAOC,GAAG,KAAK,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,MAAMG,EAAEH,GAAG,KAAK,IAAI,EAAEQ,EAAE,KAAK,KAAK,CAAC,EAAE,KAAK,cAAc,EAAEL,EAAEE,CAAC,CAAC,EAAE,aAAa,GAAG,WAAW,EAAE,CAAC,CAAC,OAAO,mBAAmB,EAAE,CAAC,OAAO,KAAK,kBAAkB,IAAI,CAAC,GAAGS,EAAC,CAAC,OAAO,MAAM,CAAC,GAAG,KAAK,eAAeH,GAAE,mBAAmB,CAAC,EAAE,OAAO,MAAM,EAAEP,GAAE,IAAI,EAAE,EAAE,SAAU,EAAU,EAAE,IAAX,SAAe,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,kBAAkB,IAAI,IAAI,EAAE,iBAAiB,CAAC,CAAC,OAAO,UAAU,CAAC,GAAG,KAAK,eAAeO,GAAE,WAAW,CAAC,EAAE,OAAO,GAAG,KAAK,UAAU,GAAG,KAAK,KAAI,EAAG,KAAK,eAAeA,GAAE,YAAY,CAAC,EAAE,CAAC,MAAMZ,EAAE,KAAK,WAAW/B,EAAE,CAAC,GAAGwC,GAAET,CAAC,EAAE,GAAGE,GAAEF,CAAC,CAAC,EAAE,UAAUM,KAAKrC,EAAE,KAAK,eAAeqC,EAAEN,EAAEM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,OAAO,QAAQ,EAAE,GAAU,IAAP,KAAS,CAAC,MAAMrC,EAAE,oBAAoB,IAAI,CAAC,EAAE,GAAYA,IAAT,OAAW,SAAS,CAAC+B,EAAEM,CAAC,IAAIrC,EAAE,KAAK,kBAAkB,IAAI+B,EAAEM,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,SAAS,CAACN,EAAE/B,CAAC,IAAI,KAAK,kBAAkB,CAAC,MAAMqC,EAAE,KAAK,KAAKN,EAAE/B,CAAC,EAAWqC,IAAT,QAAY,KAAK,KAAK,IAAIA,EAAEN,CAAC,CAAC,CAAC,KAAK,cAAc,KAAK,eAAe,KAAK,MAAM,CAAC,CAAC,OAAO,eAAe/B,EAAE,CAAC,MAAMqC,EAAE,GAAG,GAAG,MAAM,QAAQrC,CAAC,EAAE,CAAC,MAAMgC,EAAE,IAAI,IAAIhC,EAAE,KAAK,GAAG,EAAE,QAAO,CAAE,EAAE,UAAUA,KAAKgC,EAAEK,EAAE,QAAQN,GAAE/B,CAAC,CAAC,CAAC,MAAeA,IAAT,QAAYqC,EAAE,KAAKN,GAAE/B,CAAC,CAAC,EAAE,OAAOqC,CAAC,CAAC,OAAO,KAAK,EAAErC,EAAE,CAAC,MAAMqC,EAAErC,EAAE,UAAU,OAAWqC,IAAL,GAAO,OAAiB,OAAOA,GAAjB,SAAmBA,EAAY,OAAO,GAAjB,SAAmB,EAAE,YAAa,EAAC,MAAM,CAAC,aAAa,CAAC,MAAK,EAAG,KAAK,KAAK,OAAO,KAAK,gBAAgB,GAAG,KAAK,WAAW,GAAG,KAAK,KAAK,KAAK,KAAK,KAAI,CAAE,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,QAAS,GAAG,KAAK,eAAe,GAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAI,EAAG,KAAK,cAAe,EAAC,KAAK,YAAY,GAAG,QAAS,GAAG,EAAE,IAAI,CAAG,EAAC,cAAc,EAAE,EAAE,KAAK,OAAO,IAAI,KAAK,IAAI,CAAC,EAAW,KAAK,aAAd,QAA0B,KAAK,aAAa,EAAE,gBAAa,CAAI,CAAC,iBAAiB,EAAE,CAAC,KAAK,MAAM,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,IAAIrC,EAAE,KAAK,YAAY,kBAAkB,UAAUqC,KAAKrC,EAAE,KAAM,EAAC,KAAK,eAAeqC,CAAC,IAAI,EAAE,IAAIA,EAAE,KAAKA,CAAC,CAAC,EAAE,OAAO,KAAKA,CAAC,GAAG,EAAE,KAAK,IAAI,KAAK,KAAK,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,YAAY,KAAK,aAAa,KAAK,YAAY,iBAAiB,EAAE,OAAOrC,GAAE,EAAE,KAAK,YAAY,aAAa,EAAE,CAAC,CAAC,mBAAmB,CAAC,KAAK,aAAa,KAAK,iBAAkB,EAAC,KAAK,eAAe,EAAE,EAAE,KAAK,MAAM,QAAS,GAAG,EAAE,gBAAa,CAAM,EAAC,eAAe,EAAE,CAAE,uBAAsB,CAAC,KAAK,MAAM,QAAS,GAAG,EAAE,mBAAgB,CAAM,EAAC,yBAAyB,EAAEA,EAAEqC,EAAE,CAAC,KAAK,KAAK,EAAEA,CAAC,CAAC,CAAC,KAAK,EAAErC,EAAE,CAAC,MAAMqC,EAAE,KAAK,YAAY,kBAAkB,IAAI,CAAC,EAAEL,EAAE,KAAK,YAAY,KAAK,EAAEK,CAAC,EAAE,GAAYL,IAAT,QAAiBK,EAAE,UAAP,GAAe,CAAC,MAAMF,GAAYE,EAAE,WAAW,cAAtB,OAAkCA,EAAE,UAAUO,IAAG,YAAY5C,EAAEqC,EAAE,IAAI,EAAE,KAAK,KAAK,EAAQF,GAAN,KAAQ,KAAK,gBAAgBH,CAAC,EAAE,KAAK,aAAaA,EAAEG,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,EAAEnC,EAAE,CAAC,MAAMqC,EAAE,KAAK,YAAYL,EAAEK,EAAE,KAAK,IAAI,CAAC,EAAE,GAAYL,IAAT,QAAY,KAAK,OAAOA,EAAE,CAAC,MAAMD,EAAEM,EAAE,mBAAmBL,CAAC,EAAEG,EAAc,OAAOJ,EAAE,WAArB,WAA+B,CAAC,cAAcA,EAAE,SAAS,EAAWA,EAAE,WAAW,gBAAtB,OAAoCA,EAAE,UAAUa,GAAE,KAAK,KAAKZ,EAAE,KAAKA,CAAC,EAAEG,EAAE,cAAcnC,EAAE+B,EAAE,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,cAAc,EAAE/B,EAAEqC,EAAE,CAAC,GAAY,IAAT,OAAW,CAAC,GAAGA,IAAI,KAAK,YAAY,mBAAmB,CAAC,EAAE,EAAEA,EAAE,YAAYQ,IAAG,KAAK,CAAC,EAAE7C,CAAC,EAAE,OAAO,KAAK,EAAE,EAAEA,EAAEqC,CAAC,CAAC,CAAM,KAAK,kBAAV,KAA4B,KAAK,KAAK,KAAK,KAAM,EAAC,CAAC,EAAE,EAAErC,EAAEqC,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,GAAG,KAAK,KAAK,IAAI,EAAErC,CAAC,EAAOqC,EAAE,UAAP,IAAgB,KAAK,OAAO,IAAI,KAAK,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,KAAK,gBAAgB,GAAG,GAAG,CAAC,MAAM,KAAK,IAAI,OAAON,EAAE,CAAC,QAAQ,OAAOA,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,eAAgB,EAAC,OAAa,GAAN,MAAS,MAAM,EAAE,CAAC,KAAK,eAAe,CAAC,gBAAgB,CAAC,OAAO,KAAK,cAAe,EAAC,eAAe,CAAC,GAAG,CAAC,KAAK,gBAAgB,OAAO,GAAG,CAAC,KAAK,WAAW,CAAC,GAAG,KAAK,aAAa,KAAK,iBAAgB,EAAG,KAAK,KAAK,CAAC,SAAS,CAACA,EAAE/B,CAAC,IAAI,KAAK,KAAK,KAAK+B,CAAC,EAAE/B,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM+B,EAAE,KAAK,YAAY,kBAAkB,GAAGA,EAAE,KAAK,EAAE,SAAS,CAAC/B,EAAE,CAAC,IAAI+B,EAAO,EAAE,UAAP,IAAgB,KAAK,KAAK,IAAI/B,CAAC,GAAY,KAAKA,CAAC,IAAf,QAAkB,KAAK,EAAEA,EAAE,KAAKA,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,MAAMA,EAAE,KAAK,KAAK,GAAG,CAAC,EAAE,KAAK,aAAaA,CAAC,EAAE,GAAG,KAAK,WAAWA,CAAC,EAAE,KAAK,MAAM,QAAS+B,GAAGA,EAAE,aAAU,CAAM,EAAC,KAAK,OAAO/B,CAAC,GAAG,KAAK,KAAM,QAAOA,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,KAAI,EAAGA,CAAC,CAAC,GAAG,KAAK,KAAKA,CAAC,CAAC,CAAC,WAAW,EAAE,CAAE,MAAK,EAAE,CAAC,KAAK,MAAM,QAAS+B,GAAGA,EAAE,cAAe,GAAG,KAAK,aAAa,KAAK,WAAW,GAAG,KAAK,aAAa,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC,IAAI,gBAAgB,CAAC,OAAO,KAAK,kBAAiB,CAAE,CAAC,mBAAmB,CAAC,OAAO,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,KAAK,KAAK,QAASA,GAAG,KAAK,KAAKA,EAAE,KAAKA,CAAC,CAAC,CAAG,EAAC,KAAK,KAAI,CAAE,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,EAAE,CAACjB,GAAE,cAAc,GAAGA,GAAE,kBAAkB,CAAC,KAAK,MAAM,EAAEA,GAAE6B,GAAE,mBAAmB,CAAC,EAAE,IAAI,IAAI7B,GAAE6B,GAAE,WAAW,CAAC,EAAE,IAAI,IAAID,KAAI,CAAC,gBAAgB5B,EAAC,CAAC,GAAGD,GAAE,0BAA0B,IAAI,KAAK,OAAO,ECLx7K;AAAA;AAAA;AAAA;AAAA,GAKK,MAACkB,GAAE,WAAWM,GAAEN,GAAE,aAAa/B,GAAEqC,GAAEA,GAAE,aAAa,WAAW,CAAC,WAAWN,GAAGA,CAAC,CAAC,EAAE,OAAOC,GAAE,QAAQQ,GAAE,OAAO,KAAK,OAAM,EAAG,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,IAAIP,GAAE,IAAIO,GAAEJ,GAAE,IAAIH,EAAC,IAAIE,GAAE,SAASM,GAAE,IAAIN,GAAE,cAAc,EAAE,EAAEI,GAAER,GAAUA,IAAP,MAAoB,OAAOA,GAAjB,UAAgC,OAAOA,GAAnB,WAAqBlB,GAAE,MAAM,QAAQ+B,GAAEb,GAAGlB,GAAEkB,CAAC,GAAe,OAAOA,IAAI,OAAO,QAAQ,GAAtC,WAAwCY,GAAE;AAAA,OAAcE,GAAE,sDAAsDE,GAAE,OAAOC,GAAE,KAAKC,GAAE,OAAO,KAAKN,EAAC,qBAAqBA,EAAC,KAAKA,EAAC;AAAA,0BAAsC,GAAG,EAAED,GAAE,KAAKQ,GAAE,KAAKC,GAAE,qCAAqCL,GAAEf,GAAG,CAACM,KAAKrC,KAAK,CAAC,WAAW+B,EAAE,QAAQM,EAAE,OAAOrC,CAAC,GAAGoD,EAAEN,GAAE,CAAC,EAAgBO,GAAE,OAAO,IAAI,cAAc,EAAEC,EAAE,OAAO,IAAI,aAAa,EAAEC,GAAE,IAAI,QAAQC,GAAErB,GAAE,iBAAiBA,GAAE,GAAG,EAAE,SAASsB,GAAE1B,EAAEM,EAAE,CAAC,GAAG,CAACxB,GAAEkB,CAAC,GAAG,CAACA,EAAE,eAAe,KAAK,EAAE,MAAM,MAAM,gCAAgC,EAAE,OAAgB/B,KAAT,OAAWA,GAAE,WAAWqC,CAAC,EAAEA,CAAC,CAAC,MAAMqB,GAAE,CAAC3B,EAAEM,IAAI,CAAC,MAAMrC,EAAE+B,EAAE,OAAO,EAAEE,EAAE,CAAE,EAAC,IAAIE,EAAEM,EAAMJ,IAAJ,EAAM,QAAYA,IAAJ,EAAM,SAAS,GAAGE,EAAEM,GAAE,QAAQR,EAAE,EAAEA,EAAErC,EAAEqC,IAAI,CAAC,MAAMrC,EAAE+B,EAAEM,CAAC,EAAE,IAAIxB,EAAE,EAAE,EAAE,GAAGiC,EAAE,EAAE,KAAKA,EAAE9C,EAAE,SAASuC,EAAE,UAAUO,EAAE,EAAEP,EAAE,KAAKvC,CAAC,EAAS,IAAP,OAAW8C,EAAEP,EAAE,UAAUA,IAAIM,GAAU,EAAE,CAAC,IAAX,MAAaN,EAAEQ,GAAW,EAAE,CAAC,IAAZ,OAAcR,EAAES,GAAW,EAAE,CAAC,IAAZ,QAAeG,GAAE,KAAK,EAAE,CAAC,CAAC,IAAIhB,EAAE,OAAO,KAAK,EAAE,CAAC,EAAE,GAAG,GAAGI,EAAEU,IAAY,EAAE,CAAC,IAAZ,SAAgBV,EAAEU,IAAGV,IAAIU,GAAQ,EAAE,CAAC,IAAT,KAAYV,EAAEJ,GAAGU,GAAE,EAAE,IAAa,EAAE,CAAC,IAAZ,OAAc,EAAE,IAAI,EAAEN,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO1B,EAAE,EAAE,CAAC,EAAE0B,EAAW,EAAE,CAAC,IAAZ,OAAcU,GAAQ,EAAE,CAAC,IAAT,IAAWC,GAAER,IAAGH,IAAIW,IAAGX,IAAIG,GAAEH,EAAEU,GAAEV,IAAIQ,IAAGR,IAAIS,GAAET,EAAEM,IAAGN,EAAEU,GAAEd,EAAE,QAAQ,MAAMiB,EAAEb,IAAIU,IAAGlB,EAAEM,EAAE,CAAC,EAAE,WAAW,IAAI,EAAE,IAAI,GAAGI,GAAGF,IAAIM,GAAE7C,EAAEoC,GAAE,GAAG,GAAGH,EAAE,KAAKpB,CAAC,EAAEb,EAAE,MAAM,EAAE,CAAC,EAAEgC,GAAEhC,EAAE,MAAM,CAAC,EAAEwC,GAAEY,GAAGpD,EAAEwC,IAAQ,IAAL,GAAOH,EAAEe,EAAE,CAAC,MAAM,CAACK,GAAE1B,EAAEU,GAAGV,EAAE/B,CAAC,GAAG,QAAYqC,IAAJ,EAAM,SAAaA,IAAJ,EAAM,UAAU,GAAG,EAAEJ,CAAC,CAAC,EAAE,MAAM0B,EAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,WAAW3D,CAAC,EAAE,EAAE,CAAC,IAAImC,EAAE,KAAK,MAAM,CAAE,EAAC,IAAII,EAAE,EAAE1B,EAAE,EAAE,MAAM+B,EAAE,EAAE,OAAO,EAAED,EAAE,KAAK,MAAM,CAACE,EAAEE,CAAC,EAAEW,GAAE,EAAE1D,CAAC,EAAE,GAAG,KAAK,GAAG2D,GAAE,cAAcd,EAAE,CAAC,EAAEW,GAAE,YAAY,KAAK,GAAG,QAAYxD,IAAJ,GAAWA,IAAJ,EAAM,CAAC,MAAM+B,EAAE,KAAK,GAAG,QAAQ,WAAWA,EAAE,YAAY,GAAGA,EAAE,UAAU,CAAC,CAAC,MAAaI,EAAEqB,GAAE,SAAU,KAAtB,MAAyBb,EAAE,OAAOC,GAAG,CAAC,GAAOT,EAAE,WAAN,EAAe,CAAC,GAAGA,EAAE,gBAAgB,UAAUJ,KAAKI,EAAE,kBAAiB,EAAG,GAAGJ,EAAE,SAASC,EAAC,EAAE,CAAC,MAAMK,EAAEU,EAAElC,GAAG,EAAEb,EAAEmC,EAAE,aAAaJ,CAAC,EAAE,MAAMS,EAAC,EAAER,EAAE,eAAe,KAAKK,CAAC,EAAEM,EAAE,KAAK,CAAC,KAAK,EAAE,MAAMJ,EAAE,KAAKP,EAAE,CAAC,EAAE,QAAQhC,EAAE,KAAWgC,EAAE,CAAC,IAAT,IAAW4B,GAAQ5B,EAAE,CAAC,IAAT,IAAW6B,GAAQ7B,EAAE,CAAC,IAAT,IAAW8B,GAAEC,EAAC,CAAC,EAAE5B,EAAE,gBAAgBJ,CAAC,CAAC,MAAMA,EAAE,WAAWS,EAAC,IAAIG,EAAE,KAAK,CAAC,KAAK,EAAE,MAAMJ,CAAC,CAAC,EAAEJ,EAAE,gBAAgBJ,CAAC,GAAG,GAAGoB,GAAE,KAAKhB,EAAE,OAAO,EAAE,CAAC,MAAMJ,EAAEI,EAAE,YAAY,MAAMK,EAAC,EAAExC,EAAE+B,EAAE,OAAO,EAAE,GAAG/B,EAAE,EAAE,CAACmC,EAAE,YAAYE,GAAEA,GAAE,YAAY,GAAG,QAAQA,EAAE,EAAEA,EAAErC,EAAEqC,IAAIF,EAAE,OAAOJ,EAAEM,CAAC,EAAEI,GAAG,GAAEe,GAAE,SAAQ,EAAGb,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAEJ,CAAC,CAAC,EAAEJ,EAAE,OAAOJ,EAAE/B,CAAC,EAAEyC,GAAC,CAAE,CAAC,CAAC,CAAC,SAAaN,EAAE,WAAN,EAAe,GAAGA,EAAE,OAAOF,GAAEU,EAAE,KAAK,CAAC,KAAK,EAAE,MAAMJ,CAAC,CAAC,MAAM,CAAC,IAAIR,EAAE,GAAG,MAAWA,EAAEI,EAAE,KAAK,QAAQK,GAAET,EAAE,CAAC,KAA5B,IAAgCY,EAAE,KAAK,CAAC,KAAK,EAAE,MAAMJ,CAAC,CAAC,EAAER,GAAGS,GAAE,OAAO,CAAC,CAACD,GAAG,CAAC,CAAC,OAAO,cAAc,EAAEF,EAAE,CAAC,MAAMrC,EAAEmC,GAAE,cAAc,UAAU,EAAE,OAAOnC,EAAE,UAAU,EAAEA,CAAC,CAAC,CAAC,SAASsC,GAAEP,EAAEM,EAAErC,EAAE+B,EAAEC,EAAE,CAAC,GAAGK,IAAIgB,GAAE,OAAOhB,EAAE,IAAIG,EAAWR,IAAT,OAAWhC,EAAE,OAAOgC,CAAC,EAAEhC,EAAE,KAAK,MAAMiC,EAAEM,GAAEF,CAAC,EAAE,OAAOA,EAAE,gBAAgB,OAAOG,GAAG,cAAcP,IAAIO,GAAG,OAAO,EAAE,EAAWP,IAAT,OAAWO,EAAE,QAAQA,EAAE,IAAIP,EAAEF,CAAC,EAAES,EAAE,KAAKT,EAAE/B,EAAEgC,CAAC,GAAYA,IAAT,QAAYhC,EAAE,OAAO,CAAE,GAAEgC,CAAC,EAAEQ,EAAExC,EAAE,KAAKwC,GAAYA,IAAT,SAAaH,EAAEC,GAAEP,EAAES,EAAE,KAAKT,EAAEM,EAAE,MAAM,EAAEG,EAAER,CAAC,GAAGK,CAAC,CAAC,MAAM2B,EAAC,CAAC,YAAY,EAAE3B,EAAE,CAAC,KAAK,KAAK,CAAE,EAAC,KAAK,KAAK,OAAO,KAAK,KAAK,EAAE,KAAK,KAAKA,CAAC,CAAC,IAAI,YAAY,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQA,CAAC,EAAE,MAAMrC,CAAC,EAAE,KAAK,KAAKgC,GAAG,GAAG,eAAeG,IAAG,WAAWE,EAAE,EAAE,EAAEmB,GAAE,YAAYxB,EAAE,IAAIQ,EAAEgB,GAAE,SAAQ,EAAGvB,EAAE,EAAEG,EAAE,EAAEK,EAAEzC,EAAE,CAAC,EAAE,KAAcyC,IAAT,QAAY,CAAC,GAAGR,IAAIQ,EAAE,MAAM,CAAC,IAAIJ,EAAMI,EAAE,OAAN,EAAWJ,EAAE,IAAI4B,GAAEzB,EAAEA,EAAE,YAAY,KAAK,CAAC,EAAMC,EAAE,OAAN,EAAWJ,EAAE,IAAII,EAAE,KAAKD,EAAEC,EAAE,KAAKA,EAAE,QAAQ,KAAK,CAAC,EAAMA,EAAE,OAAN,IAAaJ,EAAE,IAAI6B,GAAE1B,EAAE,KAAK,CAAC,GAAG,KAAK,KAAK,KAAKH,CAAC,EAAEI,EAAEzC,EAAE,EAAEoC,CAAC,CAAC,CAACH,IAAIQ,GAAG,QAAQD,EAAEgB,GAAE,WAAWvB,IAAI,CAAC,OAAOuB,GAAE,YAAYrB,GAAEH,CAAC,CAAC,EAAE,EAAE,CAAC,IAAIK,EAAE,EAAE,UAAUrC,KAAK,KAAK,KAAcA,IAAT,SAAsBA,EAAE,UAAX,QAAoBA,EAAE,KAAK,EAAEA,EAAEqC,CAAC,EAAEA,GAAGrC,EAAE,QAAQ,OAAO,GAAGA,EAAE,KAAK,EAAEqC,CAAC,CAAC,GAAGA,GAAG,CAAC,CAAC,MAAM4B,EAAC,CAAC,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,MAAM,KAAK,IAAI,CAAC,YAAY,EAAE5B,EAAErC,EAAEgC,EAAE,CAAC,KAAK,KAAK,EAAE,KAAK,KAAKsB,EAAE,KAAK,KAAK,OAAO,KAAK,KAAK,EAAE,KAAK,KAAKjB,EAAE,KAAK,KAAKrC,EAAE,KAAK,QAAQgC,EAAE,KAAK,KAAKA,GAAG,aAAa,EAAE,CAAC,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,KAAK,WAAW,MAAMK,EAAE,KAAK,KAAK,OAAgBA,IAAT,QAAiB,GAAG,WAAR,KAAmB,EAAEA,EAAE,YAAY,CAAC,CAAC,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,SAAS,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,EAAEA,EAAE,KAAK,CAAC,EAAEC,GAAE,KAAK,EAAED,CAAC,EAAEE,GAAE,CAAC,EAAE,IAAIe,GAAS,GAAN,MAAc,IAAL,IAAQ,KAAK,OAAOA,GAAG,KAAK,OAAO,KAAK,KAAKA,GAAG,IAAI,KAAK,MAAM,IAAID,IAAG,KAAK,EAAE,CAAC,EAAW,EAAE,aAAX,OAAsB,KAAK,EAAE,CAAC,EAAW,EAAE,WAAX,OAAoB,KAAK,EAAE,CAAC,EAAET,GAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,WAAW,aAAa,EAAE,KAAK,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,OAAO,IAAI,KAAK,KAAI,EAAG,KAAK,KAAK,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,OAAOU,GAAGf,GAAE,KAAK,IAAI,EAAE,KAAK,KAAK,YAAY,KAAK,EAAE,KAAK,EAAEJ,GAAE,eAAe,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAOE,EAAE,WAAWrC,CAAC,EAAE,EAAEgC,EAAY,OAAOhC,GAAjB,SAAmB,KAAK,KAAK,CAAC,GAAYA,EAAE,KAAX,SAAgBA,EAAE,GAAG2D,GAAE,cAAcF,GAAEzD,EAAE,EAAEA,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,OAAO,GAAGA,GAAG,GAAG,KAAK,MAAM,OAAOgC,EAAE,KAAK,KAAK,EAAEK,CAAC,MAAM,CAAC,MAAMN,EAAE,IAAIiC,GAAEhC,EAAE,IAAI,EAAE,EAAED,EAAE,EAAE,KAAK,OAAO,EAAEA,EAAE,EAAEM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,KAAKN,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAIM,EAAEkB,GAAE,IAAI,EAAE,OAAO,EAAE,OAAgBlB,IAAT,QAAYkB,GAAE,IAAI,EAAE,QAAQlB,EAAE,IAAIsB,GAAE,CAAC,CAAC,EAAEtB,CAAC,CAAC,EAAE,EAAE,CAACxB,GAAE,KAAK,IAAI,IAAI,KAAK,KAAK,GAAG,KAAK,KAAM,GAAE,MAAMwB,EAAE,KAAK,KAAK,IAAIrC,EAAEgC,EAAE,EAAE,UAAUQ,KAAK,EAAER,IAAIK,EAAE,OAAOA,EAAE,KAAKrC,EAAE,IAAIiE,GAAE,KAAK,EAAExB,GAAG,GAAE,KAAK,EAAEA,GAAG,GAAE,KAAK,KAAK,OAAO,CAAC,EAAEzC,EAAEqC,EAAEL,CAAC,EAAEhC,EAAE,KAAKwC,CAAC,EAAER,IAAIA,EAAEK,EAAE,SAAS,KAAK,KAAKrC,GAAGA,EAAE,KAAK,YAAYgC,CAAC,EAAEK,EAAE,OAAOL,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,YAAYK,EAAE,CAAC,IAAI,KAAK,OAAO,GAAG,GAAGA,CAAC,EAAE,GAAG,IAAI,KAAK,MAAM,CAAC,MAAMA,EAAE,EAAE,YAAY,EAAE,SAAS,EAAEA,CAAC,CAAC,CAAC,aAAa,EAAE,CAAU,KAAK,OAAd,SAAqB,KAAK,KAAK,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM0B,EAAC,CAAC,IAAI,SAAS,CAAC,OAAO,KAAK,QAAQ,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,YAAY,EAAE1B,EAAErC,EAAEgC,EAAEQ,EAAE,CAAC,KAAK,KAAK,EAAE,KAAK,KAAKc,EAAE,KAAK,KAAK,OAAO,KAAK,QAAQ,EAAE,KAAK,KAAKjB,EAAE,KAAK,KAAKL,EAAE,KAAK,QAAQQ,EAAExC,EAAE,OAAO,GAAQA,EAAE,CAAC,IAAR,IAAgBA,EAAE,CAAC,IAAR,IAAW,KAAK,KAAK,MAAMA,EAAE,OAAO,CAAC,EAAE,KAAK,IAAI,MAAM,EAAE,KAAK,QAAQA,GAAG,KAAK,KAAKsD,CAAC,CAAC,KAAK,EAAEjB,EAAE,KAAKrC,EAAEgC,EAAE,CAAC,MAAMQ,EAAE,KAAK,QAAQ,IAAIP,EAAE,GAAG,GAAYO,IAAT,OAAW,EAAEF,GAAE,KAAK,EAAED,EAAE,CAAC,EAAEJ,EAAE,CAACM,GAAE,CAAC,GAAG,IAAI,KAAK,MAAM,IAAIc,GAAEpB,IAAI,KAAK,KAAK,OAAO,CAAC,MAAMD,EAAE,EAAE,IAAII,EAAED,EAAE,IAAI,EAAEK,EAAE,CAAC,EAAEJ,EAAE,EAAEA,EAAEI,EAAE,OAAO,EAAEJ,IAAID,EAAEG,GAAE,KAAKN,EAAEhC,EAAEoC,CAAC,EAAEC,EAAED,CAAC,EAAED,IAAIkB,KAAIlB,EAAE,KAAK,KAAKC,CAAC,GAAGH,IAAI,CAACM,GAAEJ,CAAC,GAAGA,IAAI,KAAK,KAAKC,CAAC,EAAED,IAAImB,EAAE,EAAEA,EAAE,IAAIA,IAAI,IAAInB,GAAG,IAAIK,EAAEJ,EAAE,CAAC,GAAG,KAAK,KAAKA,CAAC,EAAED,CAAC,CAACF,GAAG,CAACD,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAIsB,EAAE,KAAK,QAAQ,gBAAgB,KAAK,IAAI,EAAE,KAAK,QAAQ,aAAa,KAAK,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,MAAMM,WAAUG,EAAC,CAAC,aAAa,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,QAAQ,KAAK,IAAI,EAAE,IAAIT,EAAE,OAAO,CAAC,CAAC,CAAC,MAAMO,WAAUE,EAAC,CAAC,aAAa,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,QAAQ,gBAAgB,KAAK,KAAK,CAAC,CAAC,GAAG,IAAIT,CAAC,CAAC,CAAC,CAAC,MAAMQ,WAAUC,EAAC,CAAC,YAAY,EAAE1B,EAAErC,EAAEgC,EAAEQ,EAAE,CAAC,MAAM,EAAEH,EAAErC,EAAEgC,EAAEQ,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,KAAK,EAAEH,EAAE,KAAK,CAAC,IAAI,EAAEC,GAAE,KAAK,EAAED,EAAE,CAAC,GAAGiB,KAAKD,GAAE,OAAO,MAAMrD,EAAE,KAAK,KAAKgC,EAAE,IAAIsB,GAAGtD,IAAIsD,GAAG,EAAE,UAAUtD,EAAE,SAAS,EAAE,OAAOA,EAAE,MAAM,EAAE,UAAUA,EAAE,QAAQwC,EAAE,IAAIc,IAAItD,IAAIsD,GAAGtB,GAAGA,GAAG,KAAK,QAAQ,oBAAoB,KAAK,KAAK,KAAKhC,CAAC,EAAEwC,GAAG,KAAK,QAAQ,iBAAiB,KAAK,KAAK,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,YAAY,EAAE,CAAa,OAAO,KAAK,MAAxB,WAA6B,KAAK,KAAK,KAAK,KAAK,SAAS,MAAM,KAAK,QAAQ,CAAC,EAAE,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM0B,EAAC,CAAC,YAAY,EAAE7B,EAAErC,EAAE,CAAC,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,OAAO,KAAK,KAAKqC,EAAE,KAAK,QAAQrC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,CAACsC,GAAE,KAAK,CAAC,CAAC,CAAC,CAAM,MAA6D6B,GAAEpC,GAAE,uBAAuBoC,KAAIR,GAAEM,EAAC,GAAGlC,GAAE,kBAAkB,CAAE,GAAE,KAAK,OAAO,EAAE,MAAMqC,GAAE,CAACrC,EAAEM,EAAErC,IAAI,CAAC,MAAMgC,EAAEhC,GAAG,cAAcqC,EAAE,IAAIG,EAAER,EAAE,WAAW,GAAYQ,IAAT,OAAW,CAAC,MAAMT,EAAE/B,GAAG,cAAc,KAAKgC,EAAE,WAAWQ,EAAE,IAAIyB,GAAE5B,EAAE,aAAaI,KAAIV,CAAC,EAAEA,EAAE,OAAO/B,GAAG,EAAE,CAAC,CAAC,OAAOwC,EAAE,KAAKT,CAAC,EAAES,CAAC,ECJ76N;AAAA;AAAA;AAAA;AAAA,GAIG,IAAA6B,GAAA,cAAgBtC,EAAC,CAAC,aAAa,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,cAAc,CAAC,KAAK,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,iBAAkB,EAAC,OAAO,KAAK,cAAc,eAAe,EAAE,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM/B,EAAE,KAAK,OAAQ,EAAC,KAAK,aAAa,KAAK,cAAc,YAAY,KAAK,aAAa,MAAM,OAAO,CAAC,EAAE,KAAK,KAAKgC,GAAEhC,EAAE,KAAK,WAAW,KAAK,aAAa,CAAC,CAAC,mBAAmB,CAAC,MAAM,oBAAoB,KAAK,MAAM,aAAa,EAAE,CAAC,CAAC,sBAAsB,CAAC,MAAM,qBAAoB,EAAG,KAAK,MAAM,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAOA,EAAC,CAAC,EAACmC,GAAE,cAAc,GAAGA,GAAE,UAAa,GAAG,WAAW,2BAA2B,CAAC,WAAWA,EAAC,CAAC,EAAE,MAAME,GAAE,WAAW,0BAA0BA,KAAI,CAAC,WAAWF,EAAC,CAAC,GAAwD,WAAW,qBAAqB,IAAI,KAAK,OAAO,ECLvyB;AAAA;AAAA;AAAA;AAAA,GAKK,MAACJ,GAAEA,GAAG,CAACC,EAAEC,IAAI,CAAUA,IAAT,OAAWA,EAAE,eAAgB,IAAI,CAAC,eAAe,OAAOF,EAAEC,CAAC,CAAC,CAAG,EAAC,eAAe,OAAOD,EAAEC,CAAC,CAAC,ECJ7G;AAAA;AAAA;AAAA;AAAA,GAIG,MAAMC,GAAE,CAAC,UAAU,GAAG,KAAK,OAAO,UAAUF,GAAE,QAAQ,GAAG,WAAWC,EAAC,EAAEG,GAAE,CAACJ,EAAEE,GAAED,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,SAASK,CAAC,EAAE,EAAE,IAAIrC,EAAE,WAAW,oBAAoB,IAAIqC,CAAC,EAAE,GAAYrC,IAAT,QAAY,WAAW,oBAAoB,IAAIqC,EAAErC,EAAE,IAAI,GAAG,EAAEA,EAAE,IAAI,EAAE,KAAK+B,CAAC,EAAe,IAAb,WAAe,CAAC,KAAK,CAAC,KAAKE,CAAC,EAAE,EAAE,MAAM,CAAC,IAAIE,EAAE,CAAC,MAAMC,EAAEJ,EAAE,IAAI,KAAK,IAAI,EAAEA,EAAE,IAAI,KAAK,KAAKG,CAAC,EAAE,KAAK,cAAcF,EAAEG,EAAEL,CAAC,CAAC,EAAE,KAAKC,EAAE,CAAC,OAAgBA,IAAT,QAAY,KAAK,EAAEC,EAAE,OAAOF,CAAC,EAAEC,CAAC,CAAC,CAAC,CAAC,GAAc,IAAX,SAAa,CAAC,KAAK,CAAC,KAAKC,CAAC,EAAE,EAAE,OAAO,SAASE,EAAE,CAAC,MAAMC,EAAE,KAAKH,CAAC,EAAED,EAAE,KAAK,KAAKG,CAAC,EAAE,KAAK,cAAcF,EAAEG,EAAEL,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,mCAAmC,CAAC,CAAC,EAAE,SAASK,EAAEL,EAAE,CAAC,MAAM,CAACC,EAAEC,IAAc,OAAOA,GAAjB,SAAmBE,GAAEJ,EAAEC,EAAEC,CAAC,GAAG,CAACF,EAAEC,EAAEC,IAAI,CAAC,MAAME,EAAEH,EAAE,eAAeC,CAAC,EAAE,OAAOD,EAAE,YAAY,eAAeC,EAAEE,EAAE,CAAC,GAAGJ,EAAE,QAAQ,EAAE,EAAEA,CAAC,EAAEI,EAAE,OAAO,yBAAyBH,EAAEC,CAAC,EAAE,MAAM,GAAGF,EAAEC,EAAEC,CAAC,CAAC,CCJvwB;AAAA;AAAA;AAAA;AAAA,GAIG,SAASE,GAAEA,EAAE,CAAC,OAAOJ,EAAE,CAAC,GAAGI,EAAE,MAAM,GAAG,UAAU,EAAE,CAAC,CAAC,CCLvD;AAAA;AAAA;AAAA;AAAA,GAKA,MAAMH,GAAE,CAAC,EAAE,EAAEO,KAAKA,EAAE,aAAa,GAAGA,EAAE,WAAW,GAAG,QAAQ,UAAoB,OAAO,GAAjB,UAAoB,OAAO,eAAe,EAAE,EAAEA,CAAC,EAAEA,GCJvH;AAAA;AAAA;AAAA;AAAA,GAIG,SAASP,GAAE,EAAEG,EAAE,CAAC,MAAM,CAACC,EAAEpC,EAAEqC,IAAI,CAAC,MAAMJ,EAAEF,GAAGA,EAAE,YAAY,cAAc,CAAC,GAAG,KAAwP,OAAOA,GAAEK,EAAEpC,EAAE,CAAC,KAAK,CAAC,OAAOiC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CCL5W,SAASqC,GAAOlC,EAAG,CACf,GAAI,CAAC,OAAO,cAAcA,CAAC,GAAKA,EAAI,EAChC,MAAM,IAAI,MAAM,2BAA2BA,CAAC,EAAE,CACtD,CAKA,SAASmC,GAAMzD,KAAM0D,EAAS,CAC1B,GAAI,EAAE1D,aAAa,YACf,MAAM,IAAI,MAAM,qBAAqB,EACzC,GAAI0D,EAAQ,OAAS,GAAK,CAACA,EAAQ,SAAS1D,EAAE,MAAM,EAChD,MAAM,IAAI,MAAM,iCAAiC0D,CAAO,mBAAmB1D,EAAE,MAAM,EAAE,CAC7F,CACA,SAAS2D,GAAKA,EAAM,CAChB,GAAI,OAAOA,GAAS,YAAc,OAAOA,EAAK,QAAW,WACrD,MAAM,IAAI,MAAM,iDAAiD,EACrEH,GAAOG,EAAK,SAAS,EACrBH,GAAOG,EAAK,QAAQ,CACxB,CACA,SAASC,GAAOC,EAAUC,EAAgB,GAAM,CAC5C,GAAID,EAAS,UACT,MAAM,IAAI,MAAM,kCAAkC,EACtD,GAAIC,GAAiBD,EAAS,SAC1B,MAAM,IAAI,MAAM,uCAAuC,CAC/D,CACA,SAASE,GAAOC,EAAKH,EAAU,CAC3BJ,GAAMO,CAAG,EACT,MAAMC,EAAMJ,EAAS,UACrB,GAAIG,EAAI,OAASC,EACb,MAAM,IAAI,MAAM,yDAAyDA,CAAG,EAAE,CAEtF,CChCO,MAAMC,GAAS,OAAO,YAAe,UAAY,WAAY,WAAa,WAAW,OAAS,OCArG,sEAQA,MAAMC,GAAOpE,GAAMA,aAAa,WAKnBqE,GAAcC,GAAQ,IAAI,SAASA,EAAI,OAAQA,EAAI,WAAYA,EAAI,UAAU,EAE7EC,GAAO,CAACC,EAAMC,IAAWD,GAAS,GAAKC,EAAWD,IAASC,EAG3DC,GAAO,IAAI,WAAW,IAAI,YAAY,CAAC,SAAU,CAAC,EAAE,MAAM,EAAE,CAAC,IAAM,GAChF,GAAI,CAACA,GACD,MAAM,IAAI,MAAM,6CAA6C,EAuD1D,SAASC,GAAYC,EAAK,CAC7B,GAAI,OAAOA,GAAQ,SACf,MAAM,IAAI,MAAM,oCAAoC,OAAOA,CAAG,EAAE,EACpE,OAAO,IAAI,WAAW,IAAI,YAAa,EAAC,OAAOA,CAAG,CAAC,CACvD,CAMO,SAASC,GAAQC,EAAM,CAG1B,GAFI,OAAOA,GAAS,WAChBA,EAAOH,GAAYG,CAAI,GACvB,CAACV,GAAIU,CAAI,EACT,MAAM,IAAI,MAAM,4BAA4B,OAAOA,CAAI,EAAE,EAC7D,OAAOA,CACX,CAIO,SAASC,MAAeC,EAAQ,CACnC,MAAM1D,EAAI,IAAI,WAAW0D,EAAO,OAAO,CAACC,EAAKjF,IAAMiF,EAAMjF,EAAE,OAAQ,CAAC,CAAC,EACrE,IAAIkF,EAAM,EACV,OAAAF,EAAO,QAAShF,GAAM,CAClB,GAAI,CAACoE,GAAIpE,CAAC,EACN,MAAM,IAAI,MAAM,qBAAqB,EACzCsB,EAAE,IAAItB,EAAGkF,CAAG,EACZA,GAAOlF,EAAE,MACjB,CAAK,EACMsB,CACX,CAEO,IAAA6D,GAAA,KAAW,CAEd,OAAQ,CACJ,OAAO,KAAK,WAAY,CAChC,CACA,EAQO,SAASC,GAAgBC,EAAU,CACtC,MAAMC,EAAS1E,GAAQyE,EAAU,EAAC,OAAOR,GAAQjE,CAAG,CAAC,EAAE,OAAQ,EACzD2E,EAAMF,EAAU,EACtB,OAAAC,EAAM,UAAYC,EAAI,UACtBD,EAAM,SAAWC,EAAI,SACrBD,EAAM,OAAS,IAAMD,EAAU,EACxBC,CACX,CAoBO,SAASE,GAAYC,EAAc,GAAI,CAC1C,GAAItB,IAAU,OAAOA,GAAO,iBAAoB,WAC5C,OAAOA,GAAO,gBAAgB,IAAI,WAAWsB,CAAW,CAAC,EAE7D,MAAM,IAAI,MAAM,wCAAwC,CAC5D,CCrJA,SAASC,GAAaC,EAAMC,EAAY9F,EAAO4E,EAAM,CACjD,GAAI,OAAOiB,EAAK,cAAiB,WAC7B,OAAOA,EAAK,aAAaC,EAAY9F,EAAO4E,CAAI,EACpD,MAAMmB,EAAO,OAAO,EAAE,EAChBC,EAAW,OAAO,UAAU,EAC5BC,EAAK,OAAQjG,GAAS+F,EAAQC,CAAQ,EACtCE,EAAK,OAAOlG,EAAQgG,CAAQ,EAC5BnE,EAAI+C,EAAO,EAAI,EACf9C,EAAI8C,EAAO,EAAI,EACrBiB,EAAK,UAAUC,EAAajE,EAAGoE,EAAIrB,CAAI,EACvCiB,EAAK,UAAUC,EAAahE,EAAGoE,EAAItB,CAAI,CAC3C,QAEO,cAAmBuB,EAAK,CAC3B,YAAYC,EAAUC,EAAWC,EAAW1B,EAAM,CAC9C,MAAO,EACP,KAAK,SAAWwB,EAChB,KAAK,UAAYC,EACjB,KAAK,UAAYC,EACjB,KAAK,KAAO1B,EACZ,KAAK,SAAW,GAChB,KAAK,OAAS,EACd,KAAK,IAAM,EACX,KAAK,UAAY,GACjB,KAAK,OAAS,IAAI,WAAWwB,CAAQ,EACrC,KAAK,KAAO7B,GAAW,KAAK,MAAM,CAC1C,CACI,OAAOS,EAAM,CACTjB,GAAO,IAAI,EACX,KAAM,CAAE,KAAA8B,EAAM,OAAAU,EAAQ,SAAAH,CAAU,EAAG,KACnCpB,EAAOD,GAAQC,CAAI,EACnB,MAAMwB,EAAMxB,EAAK,OACjB,QAASyB,EAAM,EAAGA,EAAMD,GAAM,CAC1B,MAAME,EAAO,KAAK,IAAIN,EAAW,KAAK,IAAKI,EAAMC,CAAG,EAEpD,GAAIC,IAASN,EAAU,CACnB,MAAMO,EAAWpC,GAAWS,CAAI,EAChC,KAAOoB,GAAYI,EAAMC,EAAKA,GAAOL,EACjC,KAAK,QAAQO,EAAUF,CAAG,EAC9B,QAChB,CACYF,EAAO,IAAIvB,EAAK,SAASyB,EAAKA,EAAMC,CAAI,EAAG,KAAK,GAAG,EACnD,KAAK,KAAOA,EACZD,GAAOC,EACH,KAAK,MAAQN,IACb,KAAK,QAAQP,EAAM,CAAC,EACpB,KAAK,IAAM,EAE3B,CACQ,YAAK,QAAUb,EAAK,OACpB,KAAK,WAAY,EACV,IACf,CACI,WAAWb,EAAK,CACZJ,GAAO,IAAI,EACXG,GAAOC,EAAK,IAAI,EAChB,KAAK,SAAW,GAIhB,KAAM,CAAE,OAAAoC,EAAQ,KAAAV,EAAM,SAAAO,EAAU,KAAAxB,CAAM,EAAG,KACzC,GAAI,CAAE,IAAA6B,CAAG,EAAK,KAEdF,EAAOE,GAAK,EAAI,IAChB,KAAK,OAAO,SAASA,CAAG,EAAE,KAAK,CAAC,EAE5B,KAAK,UAAYL,EAAWK,IAC5B,KAAK,QAAQZ,EAAM,CAAC,EACpBY,EAAM,GAGV,QAAS/E,EAAI+E,EAAK/E,EAAI0E,EAAU1E,IAC5B6E,EAAO7E,CAAC,EAAI,EAIhBkE,GAAaC,EAAMO,EAAW,EAAG,OAAO,KAAK,OAAS,CAAC,EAAGxB,CAAI,EAC9D,KAAK,QAAQiB,EAAM,CAAC,EACpB,MAAMe,EAAQrC,GAAWJ,CAAG,EACtBqC,EAAM,KAAK,UAEjB,GAAIA,EAAM,EACN,MAAM,IAAI,MAAM,6CAA6C,EACjE,MAAMK,EAASL,EAAM,EACfM,EAAQ,KAAK,IAAK,EACxB,GAAID,EAASC,EAAM,OACf,MAAM,IAAI,MAAM,oCAAoC,EACxD,QAASpF,EAAI,EAAGA,EAAImF,EAAQnF,IACxBkF,EAAM,UAAU,EAAIlF,EAAGoF,EAAMpF,CAAC,EAAGkD,CAAI,CACjD,CACI,QAAS,CACL,KAAM,CAAE,OAAA2B,EAAQ,UAAAF,CAAS,EAAK,KAC9B,KAAK,WAAWE,CAAM,EACtB,MAAMQ,EAAMR,EAAO,MAAM,EAAGF,CAAS,EACrC,YAAK,QAAS,EACPU,CACf,CACI,WAAWC,EAAI,CACXA,IAAOA,EAAK,IAAI,KAAK,aACrBA,EAAG,IAAI,GAAG,KAAK,IAAG,CAAE,EACpB,KAAM,CAAE,SAAAZ,EAAU,OAAAG,EAAQ,OAAAU,EAAQ,SAAAC,EAAU,UAAAC,EAAW,IAAAV,CAAG,EAAK,KAC/D,OAAAO,EAAG,OAASC,EACZD,EAAG,IAAMP,EACTO,EAAG,SAAWE,EACdF,EAAG,UAAYG,EACXF,EAASb,GACTY,EAAG,OAAO,IAAIT,CAAM,EACjBS,CACf,CACA,EC3GA,MAAMI,GAAM,CAAClH,EAAGC,EAAGyB,IAAO1B,EAAIC,EAAM,CAACD,EAAI0B,EAEnCyF,GAAM,CAACnH,EAAGC,EAAGyB,IAAO1B,EAAIC,EAAMD,EAAI0B,EAAMzB,EAAIyB,EAI5C0F,GAA2B,IAAI,YAAY,CAC7C,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WACpF,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UACpF,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UACpF,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UACxF,CAAC,EAGKC,GAAqB,IAAI,YAAY,CACvC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UACxF,CAAC,EAGKC,GAA2B,IAAI,YAAY,EAAE,SACnD,cAAqBC,EAAK,CACtB,aAAc,CACV,MAAM,GAAI,GAAI,EAAG,EAAK,EAGtB,KAAK,EAAIF,GAAG,CAAC,EAAI,EACjB,KAAK,EAAIA,GAAG,CAAC,EAAI,EACjB,KAAK,EAAIA,GAAG,CAAC,EAAI,EACjB,KAAK,EAAIA,GAAG,CAAC,EAAI,EACjB,KAAK,EAAIA,GAAG,CAAC,EAAI,EACjB,KAAK,EAAIA,GAAG,CAAC,EAAI,EACjB,KAAK,EAAIA,GAAG,CAAC,EAAI,EACjB,KAAK,EAAIA,GAAG,CAAC,EAAI,CACzB,CACI,KAAM,CACF,KAAM,CAAE,EAAA3E,EAAG,EAAAa,EAAG,EAAAZ,EAAG,EAAA6E,EAAG,EAAA/E,EAAG,EAAAgF,EAAG,EAAAC,EAAG,EAAA3E,CAAC,EAAK,KACnC,MAAO,CAACL,EAAGa,EAAGZ,EAAG6E,EAAG/E,EAAGgF,EAAGC,EAAG3E,CAAC,CACtC,CAEI,IAAIL,EAAGa,EAAGZ,EAAG6E,EAAG/E,EAAGgF,EAAGC,EAAG3E,EAAG,CACxB,KAAK,EAAIL,EAAI,EACb,KAAK,EAAIa,EAAI,EACb,KAAK,EAAIZ,EAAI,EACb,KAAK,EAAI6E,EAAI,EACb,KAAK,EAAI/E,EAAI,EACb,KAAK,EAAIgF,EAAI,EACb,KAAK,EAAIC,EAAI,EACb,KAAK,EAAI3E,EAAI,CACrB,CACI,QAAQ4C,EAAMgC,EAAQ,CAElB,QAASnG,EAAI,EAAGA,EAAI,GAAIA,IAAKmG,GAAU,EACnCL,GAAS9F,CAAC,EAAImE,EAAK,UAAUgC,EAAQ,EAAK,EAC9C,QAASnG,EAAI,GAAIA,EAAI,GAAIA,IAAK,CAC1B,MAAMoG,EAAMN,GAAS9F,EAAI,EAAE,EACrBqG,EAAKP,GAAS9F,EAAI,CAAC,EACnBsG,EAAKvD,GAAKqD,EAAK,CAAC,EAAIrD,GAAKqD,EAAK,EAAE,EAAKA,IAAQ,EAC7CG,EAAKxD,GAAKsD,EAAI,EAAE,EAAItD,GAAKsD,EAAI,EAAE,EAAKA,IAAO,GACjDP,GAAS9F,CAAC,EAAKuG,EAAKT,GAAS9F,EAAI,CAAC,EAAIsG,EAAKR,GAAS9F,EAAI,EAAE,EAAK,CAC3E,CAEQ,GAAI,CAAE,EAAAkB,EAAG,EAAAa,EAAG,EAAAZ,EAAG,EAAA6E,EAAG,EAAA/E,EAAG,EAAAgF,EAAG,EAAAC,EAAG,EAAA3E,CAAC,EAAK,KACjC,QAASvB,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACzB,MAAMwG,EAASzD,GAAK9B,EAAG,CAAC,EAAI8B,GAAK9B,EAAG,EAAE,EAAI8B,GAAK9B,EAAG,EAAE,EAC9CwF,EAAMlF,EAAIiF,EAASd,GAAIzE,EAAGgF,EAAGC,CAAC,EAAIN,GAAS5F,CAAC,EAAI8F,GAAS9F,CAAC,EAAK,EAE/D0G,GADS3D,GAAK7B,EAAG,CAAC,EAAI6B,GAAK7B,EAAG,EAAE,EAAI6B,GAAK7B,EAAG,EAAE,GAC/ByE,GAAIzE,EAAGa,EAAGZ,CAAC,EAAK,EACrCI,EAAI2E,EACJA,EAAID,EACJA,EAAIhF,EACJA,EAAK+E,EAAIS,EAAM,EACfT,EAAI7E,EACJA,EAAIY,EACJA,EAAIb,EACJA,EAAKuF,EAAKC,EAAM,CAC5B,CAEQxF,EAAKA,EAAI,KAAK,EAAK,EACnBa,EAAKA,EAAI,KAAK,EAAK,EACnBZ,EAAKA,EAAI,KAAK,EAAK,EACnB6E,EAAKA,EAAI,KAAK,EAAK,EACnB/E,EAAKA,EAAI,KAAK,EAAK,EACnBgF,EAAKA,EAAI,KAAK,EAAK,EACnBC,EAAKA,EAAI,KAAK,EAAK,EACnB3E,EAAKA,EAAI,KAAK,EAAK,EACnB,KAAK,IAAIL,EAAGa,EAAGZ,EAAG6E,EAAG/E,EAAGgF,EAAGC,EAAG3E,CAAC,CACvC,CACI,YAAa,CACTuE,GAAS,KAAK,CAAC,CACvB,CACI,SAAU,CACN,KAAK,IAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAC/B,KAAK,OAAO,KAAK,CAAC,CAC1B,CACA,EAoBO,MAAMa,GAAyB/C,GAAgB,IAAM,IAAIgD,EAAQ,EC3HxE,sEAKA,MAAMC,GAAM,OAAO,CAAC,EACdC,GAAM,OAAO,CAAC,EACdC,GAAM,OAAO,CAAC,EACdnE,GAAOpE,GAAMA,aAAa,WAC1BwI,GAAwB,MAAM,KAAK,CAAE,OAAQ,GAAK,EAAE,CAACrG,EAAGX,IAAMA,EAAE,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,CAAC,EAI5F,SAASiH,GAAW/E,EAAO,CAC9B,GAAI,CAACU,GAAIV,CAAK,EACV,MAAM,IAAI,MAAM,qBAAqB,EAEzC,IAAIgF,EAAM,GACV,QAASlH,EAAI,EAAGA,EAAIkC,EAAM,OAAQlC,IAC9BkH,GAAOF,GAAM9E,EAAMlC,CAAC,CAAC,EAEzB,OAAOkH,CACX,CACO,SAASC,GAAoBC,EAAK,CACrC,MAAMF,EAAME,EAAI,SAAS,EAAE,EAC3B,OAAOF,EAAI,OAAS,EAAI,IAAIA,CAAG,GAAKA,CACxC,CACO,SAASG,GAAYH,EAAK,CAC7B,GAAI,OAAOA,GAAQ,SACf,MAAM,IAAI,MAAM,4BAA8B,OAAOA,CAAG,EAE5D,OAAO,OAAOA,IAAQ,GAAK,IAAM,KAAKA,CAAG,EAAE,CAC/C,CAIO,SAASI,GAAWJ,EAAK,CAC5B,GAAI,OAAOA,GAAQ,SACf,MAAM,IAAI,MAAM,4BAA8B,OAAOA,CAAG,EAC5D,MAAMpC,EAAMoC,EAAI,OAChB,GAAIpC,EAAM,EACN,MAAM,IAAI,MAAM,0DAA4DA,CAAG,EACnF,MAAMyC,EAAQ,IAAI,WAAWzC,EAAM,CAAC,EACpC,QAAS9E,EAAI,EAAGA,EAAIuH,EAAM,OAAQvH,IAAK,CACnC,MAAM8B,EAAI9B,EAAI,EACRwH,EAAUN,EAAI,MAAMpF,EAAGA,EAAI,CAAC,EAC5B2F,EAAO,OAAO,SAASD,EAAS,EAAE,EACxC,GAAI,OAAO,MAAMC,CAAI,GAAKA,EAAO,EAC7B,MAAM,IAAI,MAAM,uBAAuB,EAC3CF,EAAMvH,CAAC,EAAIyH,CACnB,CACI,OAAOF,CACX,CAEO,SAASG,EAAgBxF,EAAO,CACnC,OAAOmF,GAAYJ,GAAW/E,CAAK,CAAC,CACxC,CACO,SAASyF,GAAgBzF,EAAO,CACnC,GAAI,CAACU,GAAIV,CAAK,EACV,MAAM,IAAI,MAAM,qBAAqB,EACzC,OAAOmF,GAAYJ,GAAW,WAAW,KAAK/E,CAAK,EAAE,QAAO,CAAE,CAAC,CACnE,CACO,SAAS0F,GAAgB7H,EAAG+E,EAAK,CACpC,OAAOwC,GAAWvH,EAAE,SAAS,EAAE,EAAE,SAAS+E,EAAM,EAAG,GAAG,CAAC,CAC3D,CACO,SAAS+C,GAAgB9H,EAAG+E,EAAK,CACpC,OAAO8C,GAAgB7H,EAAG+E,CAAG,EAAE,QAAS,CAC5C,CAEO,SAASgD,GAAmB/H,EAAG,CAClC,OAAOuH,GAAWH,GAAoBpH,CAAC,CAAC,CAC5C,CAUO,SAASgI,EAAYC,EAAOd,EAAKe,EAAgB,CACpD,IAAI5C,EACJ,GAAI,OAAO6B,GAAQ,SACf,GAAI,CACA7B,EAAMiC,GAAWJ,CAAG,CAChC,OACevH,EAAG,CACN,MAAM,IAAI,MAAM,GAAGqI,CAAK,mCAAmCd,CAAG,aAAavH,CAAC,EAAE,CAC1F,SAEaiD,GAAIsE,CAAG,EAGZ7B,EAAM,WAAW,KAAK6B,CAAG,MAGzB,OAAM,IAAI,MAAM,GAAGc,CAAK,mCAAmC,EAE/D,MAAMlD,EAAMO,EAAI,OAChB,GAAI,OAAO4C,GAAmB,UAAYnD,IAAQmD,EAC9C,MAAM,IAAI,MAAM,GAAGD,CAAK,aAAaC,CAAc,eAAenD,CAAG,EAAE,EAC3E,OAAOO,CACX,CAIO,SAAS9B,MAAeC,EAAQ,CACnC,MAAM1D,EAAI,IAAI,WAAW0D,EAAO,OAAO,CAACC,EAAKjF,IAAMiF,EAAMjF,EAAE,OAAQ,CAAC,CAAC,EACrE,IAAIkF,EAAM,EACV,OAAAF,EAAO,QAAShF,GAAM,CAClB,GAAI,CAACoE,GAAIpE,CAAC,EACN,MAAM,IAAI,MAAM,qBAAqB,EACzCsB,EAAE,IAAItB,EAAGkF,CAAG,EACZA,GAAOlF,EAAE,MACjB,CAAK,EACMsB,CACX,CACO,SAASoI,GAAWC,EAAIC,EAAI,CAE/B,GAAID,EAAG,SAAWC,EAAG,OACjB,MAAO,GACX,QAASpI,EAAI,EAAGA,EAAImI,EAAG,OAAQnI,IAC3B,GAAImI,EAAGnI,CAAC,IAAMoI,EAAGpI,CAAC,EACd,MAAO,GACf,MAAO,EACX,CAIO,SAASmD,GAAYC,EAAK,CAC7B,GAAI,OAAOA,GAAQ,SACf,MAAM,IAAI,MAAM,oCAAoC,OAAOA,CAAG,EAAE,EACpE,OAAO,IAAI,WAAW,IAAI,YAAa,EAAC,OAAOA,CAAG,CAAC,CACvD,CAMO,SAASiF,GAAOtI,EAAG,CACtB,IAAI+E,EACJ,IAAKA,EAAM,EAAG/E,EAAI8G,GAAK9G,IAAM+G,GAAKhC,GAAO,EACrC,CACJ,OAAOA,CACX,CAMO,SAASwD,GAAOvI,EAAGgF,EAAK,CAC3B,OAAQhF,GAAK,OAAOgF,CAAG,EAAK+B,EAChC,CAIO,MAAMyB,GAAS,CAACxI,EAAGgF,EAAKzG,IACpByB,GAAMzB,EAAQwI,GAAMD,KAAQ,OAAO9B,CAAG,EAMpCyD,GAAWzI,IAAOgH,IAAO,OAAOhH,EAAI,CAAC,GAAK+G,GAEjD2B,GAAOnF,GAAS,IAAI,WAAWA,CAAI,EACnCoF,GAAQ5F,GAAQ,WAAW,KAAKA,CAAG,EAQlC,SAAS6F,GAAeC,EAASC,EAAUC,EAAQ,CACtD,GAAI,OAAOF,GAAY,UAAYA,EAAU,EACzC,MAAM,IAAI,MAAM,0BAA0B,EAC9C,GAAI,OAAOC,GAAa,UAAYA,EAAW,EAC3C,MAAM,IAAI,MAAM,2BAA2B,EAC/C,GAAI,OAAOC,GAAW,WAClB,MAAM,IAAI,MAAM,2BAA2B,EAE/C,IAAIpI,EAAI+H,GAAIG,CAAO,EACflH,EAAI+G,GAAIG,CAAO,EACf,EAAI,EACR,MAAMG,EAAQ,IAAM,CAChBrI,EAAE,KAAK,CAAC,EACRgB,EAAE,KAAK,CAAC,EACR,EAAI,CACP,EACKvB,EAAI,IAAI1B,IAAMqK,EAAOpH,EAAGhB,EAAG,GAAGjC,CAAC,EAC/BuK,EAAS,CAACC,EAAOR,OAAU,CAE7B/G,EAAIvB,EAAEuI,GAAK,CAAC,CAAI,CAAC,EAAGO,CAAI,EACxBvI,EAAIP,EAAC,EACD8I,EAAK,SAAW,IAEpBvH,EAAIvB,EAAEuI,GAAK,CAAC,CAAI,CAAC,EAAGO,CAAI,EACxBvI,EAAIP,EAAC,EACR,EACK+I,EAAM,IAAM,CAEd,GAAI,KAAO,IACP,MAAM,IAAI,MAAM,yBAAyB,EAC7C,IAAIpE,EAAM,EACV,MAAMrC,EAAM,CAAE,EACd,KAAOqC,EAAM+D,GAAU,CACnBnI,EAAIP,EAAG,EACP,MAAMgJ,EAAKzI,EAAE,MAAO,EACpB+B,EAAI,KAAK0G,CAAE,EACXrE,GAAOpE,EAAE,MACrB,CACQ,OAAO6C,GAAY,GAAGd,CAAG,CAC5B,EAUD,MATiB,CAACwG,EAAMG,IAAS,CAC7BL,EAAO,EACPC,EAAOC,CAAI,EACX,IAAI5D,EACJ,KAAO,EAAEA,EAAM+D,EAAKF,EAAK,KACrBF,EAAQ,EACZ,OAAAD,EAAO,EACA1D,CACV,CAEL,CAEA,MAAMgE,GAAe,CACjB,OAASC,GAAQ,OAAOA,GAAQ,SAChC,SAAWA,GAAQ,OAAOA,GAAQ,WAClC,QAAUA,GAAQ,OAAOA,GAAQ,UACjC,OAASA,GAAQ,OAAOA,GAAQ,SAChC,mBAAqBA,GAAQ,OAAOA,GAAQ,UAAYA,aAAe,WACvE,cAAgBA,GAAQ,OAAO,cAAcA,CAAG,EAChD,MAAQA,GAAQ,MAAM,QAAQA,CAAG,EACjC,MAAO,CAACA,EAAKC,IAAWA,EAAO,GAAG,QAAQD,CAAG,EAC7C,KAAOA,GAAQ,OAAOA,GAAQ,YAAc,OAAO,cAAcA,EAAI,SAAS,CAClF,EAEO,SAASE,GAAeD,EAAQE,EAAYC,EAAgB,GAAI,CACnE,MAAMC,EAAa,CAACC,EAAWC,EAAMC,IAAe,CAChD,MAAMC,EAAWV,GAAaQ,CAAI,EAClC,GAAI,OAAOE,GAAa,WACpB,MAAM,IAAI,MAAM,sBAAsBF,CAAI,sBAAsB,EACpE,MAAMP,EAAMC,EAAOK,CAAS,EAC5B,GAAI,EAAAE,GAAcR,IAAQ,SAEtB,CAACS,EAAST,EAAKC,CAAM,EACrB,MAAM,IAAI,MAAM,iBAAiB,OAAOK,CAAS,CAAC,IAAIN,CAAG,KAAK,OAAOA,CAAG,eAAeO,CAAI,EAAE,CAEpG,EACD,SAAW,CAACD,EAAWC,CAAI,IAAK,OAAO,QAAQJ,CAAU,EACrDE,EAAWC,EAAWC,EAAM,EAAK,EACrC,SAAW,CAACD,EAAWC,CAAI,IAAK,OAAO,QAAQH,CAAa,EACxDC,EAAWC,EAAWC,EAAM,EAAI,EACpC,OAAON,CACX,+YChQA,sEAIA,MAAM1C,EAAM,OAAO,CAAC,EAAGC,EAAM,OAAO,CAAC,EAAGC,GAAM,OAAO,CAAC,EAAGiD,GAAM,OAAO,CAAC,EAEjEC,GAAM,OAAO,CAAC,EAAGC,GAAM,OAAO,CAAC,EAAGC,GAAM,OAAO,CAAC,EAE1C,OAAO,CAAC,EAAU,OAAO,EAAE,EAEhC,SAASC,EAAI5L,EAAGC,EAAG,CACtB,MAAMO,EAASR,EAAIC,EACnB,OAAOO,GAAU6H,EAAM7H,EAASP,EAAIO,CACxC,CAQO,SAASqL,GAAIjD,EAAKkD,EAAOC,EAAQ,CACpC,GAAIA,GAAU1D,GAAOyD,EAAQzD,EACzB,MAAM,IAAI,MAAM,2BAA2B,EAC/C,GAAI0D,IAAWzD,EACX,OAAOD,EACX,IAAIxB,EAAMyB,EACV,KAAOwD,EAAQzD,GACPyD,EAAQxD,IACRzB,EAAOA,EAAM+B,EAAOmD,GACxBnD,EAAOA,EAAMA,EAAOmD,EACpBD,IAAUxD,EAEd,OAAOzB,CACX,CAEO,SAASmF,EAAKzJ,EAAGuJ,EAAOC,EAAQ,CACnC,IAAIlF,EAAMtE,EACV,KAAOuJ,KAAUzD,GACbxB,GAAOA,EACPA,GAAOkF,EAEX,OAAOlF,CACX,CAEO,SAASoF,GAAOxI,EAAQsI,EAAQ,CACnC,GAAItI,IAAW4E,GAAO0D,GAAU1D,EAC5B,MAAM,IAAI,MAAM,6CAA6C5E,CAAM,QAAQsI,CAAM,EAAE,EAIvF,IAAI/L,EAAI4L,EAAInI,EAAQsI,CAAM,EACtB9L,EAAI8L,EAEJxJ,EAAI8F,EAActG,EAAIuG,EAC1B,KAAOtI,IAAMqI,GAAK,CAEd,MAAM6D,EAAIjM,EAAID,EACRsB,EAAIrB,EAAID,EACRoC,EAAIG,EAAIR,EAAImK,EAGlBjM,EAAID,EAAGA,EAAIsB,EAAGiB,EAAIR,EAAUA,EAAIK,CACxC,CAEI,GADYnC,IACAqI,EACR,MAAM,IAAI,MAAM,wBAAwB,EAC5C,OAAOsD,EAAIrJ,EAAGwJ,CAAM,CACxB,CASO,SAASI,GAAcvJ,EAAG,CAM7B,MAAMwJ,GAAaxJ,EAAI0F,GAAOC,GAC9B,IAAI8D,EAAG5K,EAAG6K,EAGV,IAAKD,EAAIzJ,EAAI0F,EAAK7G,EAAI,EAAG4K,EAAI9D,KAAQF,EAAKgE,GAAK9D,GAAK9G,IAChD,CAEJ,IAAK6K,EAAI/D,GAAK+D,EAAI1J,GAAKiJ,GAAIS,EAAGF,EAAWxJ,CAAC,IAAMA,EAAI0F,EAAKgE,IACrD,CAEJ,GAAI7K,IAAM,EAAG,CACT,MAAM8K,GAAU3J,EAAI0F,GAAOmD,GAC3B,OAAO,SAAqBe,EAAIjL,EAAG,CAC/B,MAAMkL,EAAOD,EAAG,IAAIjL,EAAGgL,CAAM,EAC7B,GAAI,CAACC,EAAG,IAAIA,EAAG,IAAIC,CAAI,EAAGlL,CAAC,EACvB,MAAM,IAAI,MAAM,yBAAyB,EAC7C,OAAOkL,CACV,CACT,CAEI,MAAMC,GAAUL,EAAI/D,GAAOC,GAC3B,OAAO,SAAqBiE,EAAIjL,EAAG,CAE/B,GAAIiL,EAAG,IAAIjL,EAAG6K,CAAS,IAAMI,EAAG,IAAIA,EAAG,GAAG,EACtC,MAAM,IAAI,MAAM,yBAAyB,EAC7C,IAAIlL,EAAIG,EAEJY,EAAImK,EAAG,IAAIA,EAAG,IAAIA,EAAG,IAAKF,CAAC,EAAGD,CAAC,EAC/B9J,EAAIiK,EAAG,IAAIjL,EAAGmL,CAAM,EACpBzM,EAAIuM,EAAG,IAAIjL,EAAG8K,CAAC,EACnB,KAAO,CAACG,EAAG,IAAIvM,EAAGuM,EAAG,GAAG,GAAG,CACvB,GAAIA,EAAG,IAAIvM,EAAGuM,EAAG,IAAI,EACjB,OAAOA,EAAG,KAEd,IAAIpK,EAAI,EACR,QAASuK,EAAKH,EAAG,IAAIvM,CAAC,EAAGmC,EAAId,GACrB,CAAAkL,EAAG,IAAIG,EAAIH,EAAG,GAAG,EADOpK,IAG5BuK,EAAKH,EAAG,IAAIG,CAAE,EAGlB,MAAMC,EAAKJ,EAAG,IAAInK,EAAGiG,GAAO,OAAOhH,EAAIc,EAAI,CAAC,CAAC,EAC7CC,EAAImK,EAAG,IAAII,CAAE,EACbrK,EAAIiK,EAAG,IAAIjK,EAAGqK,CAAE,EAChB3M,EAAIuM,EAAG,IAAIvM,EAAGoC,CAAC,EACff,EAAIc,CAChB,CACQ,OAAOG,CACV,CACL,CACO,SAASsK,GAAOjK,EAAG,CAKtB,GAAIA,EAAI6I,KAAQD,GAAK,CAKjB,MAAMe,GAAU3J,EAAI0F,GAAOmD,GAC3B,OAAO,SAAmBe,EAAIjL,EAAG,CAC7B,MAAMkL,EAAOD,EAAG,IAAIjL,EAAGgL,CAAM,EAE7B,GAAI,CAACC,EAAG,IAAIA,EAAG,IAAIC,CAAI,EAAGlL,CAAC,EACvB,MAAM,IAAI,MAAM,yBAAyB,EAC7C,OAAOkL,CACV,CACT,CAEI,GAAI7J,EAAI+I,KAAQD,GAAK,CACjB,MAAMoB,GAAMlK,EAAI8I,IAAOC,GACvB,OAAO,SAAmBa,EAAIjL,EAAG,CAC7B,MAAMwL,EAAKP,EAAG,IAAIjL,EAAGgH,EAAG,EAClBrG,EAAIsK,EAAG,IAAIO,EAAID,CAAE,EACjBE,EAAKR,EAAG,IAAIjL,EAAGW,CAAC,EAChBV,EAAIgL,EAAG,IAAIA,EAAG,IAAIQ,EAAIzE,EAAG,EAAGrG,CAAC,EAC7BuK,EAAOD,EAAG,IAAIQ,EAAIR,EAAG,IAAIhL,EAAGgL,EAAG,GAAG,CAAC,EACzC,GAAI,CAACA,EAAG,IAAIA,EAAG,IAAIC,CAAI,EAAGlL,CAAC,EACvB,MAAM,IAAI,MAAM,yBAAyB,EAC7C,OAAOkL,CACV,CACT,CAwBI,OAAON,GAAcvJ,CAAC,CAC1B,CAIA,MAAMqK,GAAe,CACjB,SAAU,UAAW,MAAO,MAAO,MAAO,OAAQ,MAClD,MAAO,MAAO,MAAO,MAAO,MAAO,MACnC,OAAQ,OAAQ,OAAQ,MAC5B,EACO,SAASC,GAAcC,EAAO,CACjC,MAAMC,EAAU,CACZ,MAAO,SACP,KAAM,SACN,MAAO,gBACP,KAAM,eACT,EACKC,EAAOJ,GAAa,OAAO,CAACK,EAAKxC,KACnCwC,EAAIxC,CAAG,EAAI,WACJwC,GACRF,CAAO,EACV,OAAOpC,GAAemC,EAAOE,CAAI,CACrC,CAMO,SAASE,GAAMvL,EAAG4G,EAAKkD,EAAO,CAGjC,GAAIA,EAAQzD,EACR,MAAM,IAAI,MAAM,oBAAoB,EACxC,GAAIyD,IAAUzD,EACV,OAAOrG,EAAE,IACb,GAAI8J,IAAUxD,EACV,OAAOM,EACX,IAAI/G,EAAIG,EAAE,IACNF,EAAI8G,EACR,KAAOkD,EAAQzD,GACPyD,EAAQxD,IACRzG,EAAIG,EAAE,IAAIH,EAAGC,CAAC,GAClBA,EAAIE,EAAE,IAAIF,CAAC,EACXgK,IAAUxD,EAEd,OAAOzG,CACX,CAKO,SAAS2L,GAAcxL,EAAGyL,EAAM,CACnC,MAAMlI,EAAM,IAAI,MAAMkI,EAAK,MAAM,EAE3BC,EAAiBD,EAAK,OAAO,CAACE,EAAK/E,EAAKpH,IACtCQ,EAAE,IAAI4G,CAAG,EACF+E,GACXpI,EAAI/D,CAAC,EAAImM,EACF3L,EAAE,IAAI2L,EAAK/E,CAAG,GACtB5G,EAAE,GAAG,EAEF4L,EAAW5L,EAAE,IAAI0L,CAAc,EAErC,OAAAD,EAAK,YAAY,CAACE,EAAK/E,EAAKpH,IACpBQ,EAAE,IAAI4G,CAAG,EACF+E,GACXpI,EAAI/D,CAAC,EAAIQ,EAAE,IAAI2L,EAAKpI,EAAI/D,CAAC,CAAC,EACnBQ,EAAE,IAAI2L,EAAK/E,CAAG,GACtBgF,CAAQ,EACJrI,CACX,CAaO,SAASsI,GAAQtM,EAAGuM,EAAY,CAEnC,MAAMC,EAAcD,IAAe,OAAYA,EAAavM,EAAE,SAAS,CAAC,EAAE,OACpEyM,EAAc,KAAK,KAAKD,EAAc,CAAC,EAC7C,MAAO,CAAE,WAAYA,EAAa,YAAAC,CAAa,CACnD,CAaO,SAASC,GAAMC,EAAOrE,EAAQnF,EAAO,GAAOyJ,EAAQ,GAAI,CAC3D,GAAID,GAAS7F,EACT,MAAM,IAAI,MAAM,iCAAiC6F,CAAK,EAAE,EAC5D,KAAM,CAAE,WAAYE,EAAM,YAAaC,CAAK,EAAKR,GAAQK,EAAOrE,CAAM,EACtE,GAAIwE,EAAQ,KACR,MAAM,IAAI,MAAM,iDAAiD,EACrE,MAAMC,EAAQzB,GAAOqB,CAAK,EACpBlM,EAAI,OAAO,OAAO,CACpB,MAAAkM,EACA,KAAAE,EACA,MAAAC,EACA,KAAMrE,GAAQoE,CAAI,EAClB,KAAM/F,EACN,IAAKC,EACL,OAASM,GAAQgD,EAAIhD,EAAKsF,CAAK,EAC/B,QAAUtF,GAAQ,CACd,GAAI,OAAOA,GAAQ,SACf,MAAM,IAAI,MAAM,+CAA+C,OAAOA,CAAG,EAAE,EAC/E,OAAOP,GAAOO,GAAOA,EAAMsF,CAC9B,EACD,IAAMtF,GAAQA,IAAQP,EACtB,MAAQO,IAASA,EAAMN,KAASA,EAChC,IAAMM,GAAQgD,EAAI,CAAChD,EAAKsF,CAAK,EAC7B,IAAK,CAACK,EAAKC,IAAQD,IAAQC,EAC3B,IAAM5F,GAAQgD,EAAIhD,EAAMA,EAAKsF,CAAK,EAClC,IAAK,CAACK,EAAKC,IAAQ5C,EAAI2C,EAAMC,EAAKN,CAAK,EACvC,IAAK,CAACK,EAAKC,IAAQ5C,EAAI2C,EAAMC,EAAKN,CAAK,EACvC,IAAK,CAACK,EAAKC,IAAQ5C,EAAI2C,EAAMC,EAAKN,CAAK,EACvC,IAAK,CAACtF,EAAKkD,IAAUyB,GAAMvL,EAAG4G,EAAKkD,CAAK,EACxC,IAAK,CAACyC,EAAKC,IAAQ5C,EAAI2C,EAAMtC,GAAOuC,EAAKN,CAAK,EAAGA,CAAK,EAEtD,KAAOtF,GAAQA,EAAMA,EACrB,KAAM,CAAC2F,EAAKC,IAAQD,EAAMC,EAC1B,KAAM,CAACD,EAAKC,IAAQD,EAAMC,EAC1B,KAAM,CAACD,EAAKC,IAAQD,EAAMC,EAC1B,IAAM5F,GAAQqD,GAAOrD,EAAKsF,CAAK,EAC/B,KAAMC,EAAM,OAAU5M,GAAM+M,EAAMtM,EAAGT,CAAC,GACtC,YAAckN,GAAQjB,GAAcxL,EAAGyM,CAAG,EAG1C,KAAM,CAAC,EAAGxO,EAAGyB,IAAOA,EAAIzB,EAAI,EAC5B,QAAU2I,GAASlE,EAAO2E,GAAgBT,EAAKyF,CAAK,EAAIjF,GAAgBR,EAAKyF,CAAK,EAClF,UAAY3K,GAAU,CAClB,GAAIA,EAAM,SAAW2K,EACjB,MAAM,IAAI,MAAM,0BAA0BA,CAAK,SAAS3K,EAAM,MAAM,EAAE,EAC1E,OAAOgB,EAAOyE,GAAgBzF,CAAK,EAAIwF,EAAgBxF,CAAK,CAC/D,CACT,CAAK,EACD,OAAO,OAAO,OAAO1B,CAAC,CAC1B,CAkCO,SAAS0M,GAAoBC,EAAY,CAC5C,GAAI,OAAOA,GAAe,SACtB,MAAM,IAAI,MAAM,4BAA4B,EAChD,MAAMC,EAAYD,EAAW,SAAS,CAAC,EAAE,OACzC,OAAO,KAAK,KAAKC,EAAY,CAAC,CAClC,CAQO,SAASC,GAAiBF,EAAY,CACzC,MAAM5H,EAAS2H,GAAoBC,CAAU,EAC7C,OAAO5H,EAAS,KAAK,KAAKA,EAAS,CAAC,CACxC,CAcO,SAAS+H,GAAejP,EAAK8O,EAAYjK,EAAO,GAAO,CAC1D,MAAM4B,EAAMzG,EAAI,OACVkP,EAAWL,GAAoBC,CAAU,EACzCK,EAASH,GAAiBF,CAAU,EAE1C,GAAIrI,EAAM,IAAMA,EAAM0I,GAAU1I,EAAM,KAClC,MAAM,IAAI,MAAM,YAAY0I,CAAM,6BAA6B1I,CAAG,EAAE,EACxE,MAAMsC,EAAMlE,EAAOwE,EAAgBrJ,CAAG,EAAIsJ,GAAgBtJ,CAAG,EAEvDoP,EAAUrD,EAAIhD,EAAK+F,EAAarG,CAAG,EAAIA,EAC7C,OAAO5D,EAAO2E,GAAgB4F,EAASF,CAAQ,EAAI3F,GAAgB6F,EAASF,CAAQ,CACxF,CC9ZA,sEAIA,MAAM1G,GAAM,OAAO,CAAC,EACdC,GAAM,OAAO,CAAC,EAYb,SAAS4G,GAAKxN,EAAGyN,EAAM,CAC1B,MAAMC,EAAkB,CAACC,EAAWC,IAAS,CACzC,MAAMC,EAAMD,EAAK,OAAQ,EACzB,OAAOD,EAAYE,EAAMD,CAC5B,EACKjC,EAAQmC,GAAM,CAChB,MAAMC,EAAU,KAAK,KAAKN,EAAOK,CAAC,EAAI,EAChCE,EAAa,IAAMF,EAAI,GAC7B,MAAO,CAAE,QAAAC,EAAS,WAAAC,CAAY,CACjC,EACD,MAAO,CACH,gBAAAN,EAEA,aAAaO,EAAKpO,EAAG,CACjB,IAAIM,EAAIH,EAAE,KACNI,EAAI6N,EACR,KAAOpO,EAAI8G,IACH9G,EAAI+G,KACJzG,EAAIA,EAAE,IAAIC,CAAC,GACfA,EAAIA,EAAE,OAAQ,EACdP,IAAM+G,GAEV,OAAOzG,CACV,EAWD,iBAAiB8N,EAAKH,EAAG,CACrB,KAAM,CAAE,QAAAC,EAAS,WAAAC,GAAerC,EAAKmC,CAAC,EAChCI,EAAS,CAAE,EACjB,IAAI/N,EAAI8N,EACJE,EAAOhO,EACX,QAASiO,EAAS,EAAGA,EAASL,EAASK,IAAU,CAC7CD,EAAOhO,EACP+N,EAAO,KAAKC,CAAI,EAEhB,QAASrO,EAAI,EAAGA,EAAIkO,EAAYlO,IAC5BqO,EAAOA,EAAK,IAAIhO,CAAC,EACjB+N,EAAO,KAAKC,CAAI,EAEpBhO,EAAIgO,EAAK,OAAQ,CACjC,CACY,OAAOD,CACV,EAQD,KAAKJ,EAAGO,EAAaxO,EAAG,CAGpB,KAAM,CAAE,QAAAkO,EAAS,WAAAC,GAAerC,EAAKmC,CAAC,EACtC,IAAI3N,EAAIH,EAAE,KACNM,EAAIN,EAAE,KACV,MAAMsO,EAAO,OAAO,GAAKR,EAAI,CAAC,EACxBS,EAAY,GAAKT,EACjBU,EAAU,OAAOV,CAAC,EACxB,QAASM,EAAS,EAAGA,EAASL,EAASK,IAAU,CAC7C,MAAMnI,EAASmI,EAASJ,EAExB,IAAIS,EAAQ,OAAO5O,EAAIyO,CAAI,EAE3BzO,IAAM2O,EAGFC,EAAQT,IACRS,GAASF,EACT1O,GAAK+G,IAST,MAAM8H,EAAUzI,EACV0I,EAAU1I,EAAS,KAAK,IAAIwI,CAAK,EAAI,EACrCG,EAAQR,EAAS,IAAM,EACvBS,EAAQJ,EAAQ,EAClBA,IAAU,EAEVnO,EAAIA,EAAE,IAAIoN,EAAgBkB,EAAOP,EAAYK,CAAO,CAAC,CAAC,EAGtDvO,EAAIA,EAAE,IAAIuN,EAAgBmB,EAAOR,EAAYM,CAAO,CAAC,CAAC,CAE1E,CAMY,MAAO,CAAE,EAAAxO,EAAG,EAAAG,CAAG,CAClB,EACD,WAAWY,EAAG4N,EAAgBjP,EAAGkP,EAAW,CAExC,MAAMjB,EAAI5M,EAAE,cAAgB,EAE5B,IAAI8N,EAAOF,EAAe,IAAI5N,CAAC,EAC/B,OAAK8N,IACDA,EAAO,KAAK,iBAAiB9N,EAAG4M,CAAC,EAC7BA,IAAM,GACNgB,EAAe,IAAI5N,EAAG6N,EAAUC,CAAI,CAAC,GAGtC,KAAK,KAAKlB,EAAGkB,EAAMnP,CAAC,CAC9B,CACJ,CACL,CACO,SAASoP,GAAcC,EAAO,CACjC,OAAA1D,GAAc0D,EAAM,EAAE,EACtB5F,GAAe4F,EAAO,CAClB,EAAG,SACH,EAAG,SACH,GAAI,QACJ,GAAI,OACZ,EAAO,CACC,WAAY,gBACZ,YAAa,eACrB,CAAK,EAEM,OAAO,OAAO,CACjB,GAAG/C,GAAQ+C,EAAM,EAAGA,EAAM,UAAU,EACpC,GAAGA,EACE,EAAGA,EAAM,GAAG,KACzB,CAAK,CACL,CC1JA,sEAMA,SAASC,GAAkBD,EAAO,CAC9B,MAAMvD,EAAOsD,GAAcC,CAAK,EAChCE,GAAkBzD,EAAM,CACpB,EAAG,QACH,EAAG,OACX,EAAO,CACC,yBAA0B,QAC1B,eAAgB,UAChB,cAAe,WACf,cAAe,WACf,mBAAoB,UACpB,UAAW,WACX,QAAS,UACjB,CAAK,EACD,KAAM,CAAE,KAAA0D,EAAM,GAAAvE,EAAI,EAAAxM,CAAG,EAAGqN,EACxB,GAAI0D,EAAM,CACN,GAAI,CAACvE,EAAG,IAAIxM,EAAGwM,EAAG,IAAI,EAClB,MAAM,IAAI,MAAM,mEAAmE,EAEvF,GAAI,OAAOuE,GAAS,UAChB,OAAOA,EAAK,MAAS,UACrB,OAAOA,EAAK,aAAgB,WAC5B,MAAM,IAAI,MAAM,mEAAmE,CAE/F,CACI,OAAO,OAAO,OAAO,CAAE,GAAG1D,CAAI,CAAE,CACpC,CAEA,KAAM,CAAE,gBAAiB2D,GAAK,WAAYC,EAAK,EAAGC,GACrCC,GAAM,CAEf,IAAK,cAAqB,KAAM,CAC5B,YAAY/O,EAAI,GAAI,CAChB,MAAMA,CAAC,CACnB,CACK,EACD,UAAU0C,EAAM,CACZ,KAAM,CAAE,IAAKrC,CAAC,EAAK0O,GACnB,GAAIrM,EAAK,OAAS,GAAKA,EAAK,CAAC,IAAM,EAC/B,MAAM,IAAIrC,EAAE,+BAA+B,EAC/C,MAAM6D,EAAMxB,EAAK,CAAC,EACZ+B,EAAM/B,EAAK,SAAS,EAAGwB,EAAM,CAAC,EACpC,GAAI,CAACA,GAAOO,EAAI,SAAWP,EACvB,MAAM,IAAI7D,EAAE,yCAAyC,EAKzD,GAAIoE,EAAI,CAAC,EAAI,IACT,MAAM,IAAIpE,EAAE,qCAAqC,EACrD,GAAIoE,EAAI,CAAC,IAAM,GAAQ,EAAEA,EAAI,CAAC,EAAI,KAC9B,MAAM,IAAIpE,EAAE,qDAAqD,EACrE,MAAO,CAAE,EAAGuO,GAAInK,CAAG,EAAG,EAAG/B,EAAK,SAASwB,EAAM,CAAC,EACjD,EACD,MAAMoC,EAAK,CAEP,KAAM,CAAE,IAAKjG,CAAC,EAAK0O,GACbrM,EAAO,OAAO4D,GAAQ,SAAWuI,GAAIvI,CAAG,EAAIA,EAClD,GAAI,EAAE5D,aAAgB,YAClB,MAAM,IAAI,MAAM,eAAe,EACnC,IAAIlD,EAAIkD,EAAK,OACb,GAAIlD,EAAI,GAAKkD,EAAK,CAAC,GAAK,GACpB,MAAM,IAAIrC,EAAE,uBAAuB,EACvC,GAAIqC,EAAK,CAAC,IAAMlD,EAAI,EAChB,MAAM,IAAIa,EAAE,qCAAqC,EACrD,KAAM,CAAE,EAAGnB,EAAG,EAAG8P,CAAM,EAAKD,GAAI,UAAUrM,EAAK,SAAS,CAAC,CAAC,EACpD,CAAE,EAAG,EAAGuM,CAAa,EAAKF,GAAI,UAAUC,CAAM,EACpD,GAAIC,EAAW,OACX,MAAM,IAAI5O,EAAE,6CAA6C,EAC7D,MAAO,CAAE,EAAAnB,EAAG,CAAG,CAClB,EACD,WAAWgQ,EAAK,CAEZ,MAAMC,EAASpS,GAAO,OAAO,SAASA,EAAE,CAAC,EAAG,EAAE,EAAI,EAAS,KAAOA,EAAIA,EAChEwC,EAAKiH,GAAQ,CACf,MAAMF,EAAME,EAAI,SAAS,EAAE,EAC3B,OAAOF,EAAI,OAAS,EAAI,IAAIA,CAAG,GAAKA,CACvC,EACKvJ,EAAIoS,EAAM5P,EAAE2P,EAAI,CAAC,CAAC,EAClBhQ,EAAIiQ,EAAM5P,EAAE2P,EAAI,CAAC,CAAC,EAClBE,EAAMrS,EAAE,OAAS,EACjBsS,EAAMnQ,EAAE,OAAS,EACjBqJ,EAAKhJ,EAAE6P,CAAG,EACVE,EAAK/P,EAAE8P,CAAG,EAChB,MAAO,KAAK9P,EAAE8P,EAAMD,EAAM,CAAC,CAAC,KAAKE,CAAE,GAAGpQ,CAAC,KAAKqJ,CAAE,GAAGxL,CAAC,EACrD,CACL,EAGMkJ,GAAM,OAAO,CAAC,EAAGC,GAAM,OAAO,CAAC,EAAS,OAAO,CAAC,EAAE,MAACkD,GAAM,OAAO,CAAC,EAAS,OAAO,CAAC,EACjF,SAASmG,GAAkBtE,EAAM,CACpC,MAAMuE,EAAQf,GAAkBxD,CAAI,EAC9B,CAAE,GAAAb,CAAI,EAAGoF,EACT/M,EAAU+M,EAAM,UACjB,CAACC,EAAIC,EAAOC,IAAkB,CAC3B,MAAM/R,EAAI8R,EAAM,SAAU,EAC1B,OAAOE,GAAe,WAAW,KAAK,CAAC,CAAI,CAAC,EAAGxF,EAAG,QAAQxM,EAAE,CAAC,EAAGwM,EAAG,QAAQxM,EAAE,CAAC,CAAC,CAC3F,GACUiS,EAAYL,EAAM,YAClBlO,GAAU,CAER,MAAMwO,EAAOxO,EAAM,SAAS,CAAC,EAEvBnB,EAAIiK,EAAG,UAAU0F,EAAK,SAAS,EAAG1F,EAAG,KAAK,CAAC,EAC3CvK,EAAIuK,EAAG,UAAU0F,EAAK,SAAS1F,EAAG,MAAO,EAAIA,EAAG,KAAK,CAAC,EAC5D,MAAO,CAAE,EAAAjK,EAAG,EAAAN,CAAG,CAC3B,GAKI,SAASkQ,EAAoB5P,EAAG,CAC5B,KAAM,CAAE,EAAAvC,EAAG,EAAAC,CAAC,EAAK2R,EACXQ,EAAK5F,EAAG,IAAIjK,CAAC,EACb8P,EAAK7F,EAAG,IAAI4F,EAAI7P,CAAC,EACvB,OAAOiK,EAAG,IAAIA,EAAG,IAAI6F,EAAI7F,EAAG,IAAIjK,EAAGvC,CAAC,CAAC,EAAGC,CAAC,CACjD,CAKI,GAAI,CAACuM,EAAG,IAAIA,EAAG,IAAIoF,EAAM,EAAE,EAAGO,EAAoBP,EAAM,EAAE,CAAC,EACvD,MAAM,IAAI,MAAM,6CAA6C,EAEjE,SAASU,EAAmB1J,EAAK,CAC7B,OAAO,OAAOA,GAAQ,UAAYP,GAAMO,GAAOA,EAAMgJ,EAAM,CACnE,CACI,SAASW,EAAS3J,EAAK,CACnB,GAAI,CAAC0J,EAAmB1J,CAAG,EACvB,MAAM,IAAI,MAAM,6CAA6C,CACzE,CAGI,SAAS4J,EAAuB3S,EAAK,CACjC,KAAM,CAAE,yBAA0B8D,EAAS,YAAAqK,EAAa,eAAAyE,EAAgB,EAAAlR,CAAC,EAAKqQ,EAC9E,GAAIjO,GAAW,OAAO9D,GAAQ,SAAU,CAIpC,GAHIA,aAAe,aACfA,EAAM6S,GAAc7S,CAAG,GAEvB,OAAOA,GAAQ,UAAY,CAAC8D,EAAQ,SAAS9D,EAAI,MAAM,EACvD,MAAM,IAAI,MAAM,aAAa,EACjCA,EAAMA,EAAI,SAASmO,EAAc,EAAG,GAAG,CACnD,CACQ,IAAIpF,EACJ,GAAI,CACAA,EACI,OAAO/I,GAAQ,SACTA,EACA8S,EAAmBpJ,EAAY,cAAe1J,EAAKmO,CAAW,CAAC,CACrF,MACsB,CACV,MAAM,IAAI,MAAM,uBAAuBA,CAAW,8BAA8B,OAAOnO,CAAG,EAAE,CACxG,CACQ,OAAI4S,IACA7J,EAAMgK,EAAQhK,EAAKrH,CAAC,GACxBgR,EAAS3J,CAAG,EACLA,CACf,CACI,MAAMiK,EAAmB,IAAI,IAC7B,SAASC,EAAeC,EAAO,CAC3B,GAAI,EAAEA,aAAiBC,GACnB,MAAM,IAAI,MAAM,0BAA0B,CACtD,CAMI,MAAMA,CAAM,CACR,YAAYC,EAAIC,EAAIC,EAAI,CAIpB,GAHA,KAAK,GAAKF,EACV,KAAK,GAAKC,EACV,KAAK,GAAKC,EACNF,GAAM,MAAQ,CAACzG,EAAG,QAAQyG,CAAE,EAC5B,MAAM,IAAI,MAAM,YAAY,EAChC,GAAIC,GAAM,MAAQ,CAAC1G,EAAG,QAAQ0G,CAAE,EAC5B,MAAM,IAAI,MAAM,YAAY,EAChC,GAAIC,GAAM,MAAQ,CAAC3G,EAAG,QAAQ2G,CAAE,EAC5B,MAAM,IAAI,MAAM,YAAY,CAC5C,CAGQ,OAAO,WAAWtR,EAAG,CACjB,KAAM,CAAE,EAAAU,EAAG,EAAAN,CAAG,EAAGJ,GAAK,CAAE,EACxB,GAAI,CAACA,GAAK,CAAC2K,EAAG,QAAQjK,CAAC,GAAK,CAACiK,EAAG,QAAQvK,CAAC,EACrC,MAAM,IAAI,MAAM,sBAAsB,EAC1C,GAAIJ,aAAamR,EACb,MAAM,IAAI,MAAM,8BAA8B,EAClD,MAAMI,EAAO5R,GAAMgL,EAAG,IAAIhL,EAAGgL,EAAG,IAAI,EAEpC,OAAI4G,EAAI7Q,CAAC,GAAK6Q,EAAInR,CAAC,EACR+Q,EAAM,KACV,IAAIA,EAAMzQ,EAAGN,EAAGuK,EAAG,GAAG,CACzC,CACQ,IAAI,GAAI,CACJ,OAAO,KAAK,SAAQ,EAAG,CACnC,CACQ,IAAI,GAAI,CACJ,OAAO,KAAK,SAAQ,EAAG,CACnC,CAOQ,OAAO,WAAWoD,EAAQ,CACtB,MAAMyD,EAAQ7G,EAAG,YAAYoD,EAAO,IAAK/N,GAAMA,EAAE,EAAE,CAAC,EACpD,OAAO+N,EAAO,IAAI,CAAC/N,EAAGL,IAAMK,EAAE,SAASwR,EAAM7R,CAAC,CAAC,CAAC,EAAE,IAAIwR,EAAM,UAAU,CAClF,CAKQ,OAAO,QAAQtK,EAAK,CAChB,MAAM9F,EAAIoQ,EAAM,WAAWf,EAAU1I,EAAY,WAAYb,CAAG,CAAC,CAAC,EAClE,OAAA9F,EAAE,eAAgB,EACXA,CACnB,CAEQ,OAAO,eAAe0Q,EAAY,CAC9B,OAAON,EAAM,KAAK,SAASR,EAAuBc,CAAU,CAAC,CACzE,CAEQ,eAAe5D,EAAY,CACvB,KAAK,aAAeA,EACpBmD,EAAiB,OAAO,IAAI,CACxC,CAEQ,gBAAiB,CACb,GAAI,KAAK,MAAO,CAIZ,GAAIjB,EAAM,oBAAsB,CAACpF,EAAG,IAAI,KAAK,EAAE,EAC3C,OACJ,MAAM,IAAI,MAAM,iBAAiB,CACjD,CAEY,KAAM,CAAE,EAAAjK,EAAG,EAAAN,GAAM,KAAK,SAAU,EAEhC,GAAI,CAACuK,EAAG,QAAQjK,CAAC,GAAK,CAACiK,EAAG,QAAQvK,CAAC,EAC/B,MAAM,IAAI,MAAM,0BAA0B,EAC9C,MAAMsR,EAAO/G,EAAG,IAAIvK,CAAC,EACfuR,EAAQrB,EAAoB5P,CAAC,EACnC,GAAI,CAACiK,EAAG,IAAI+G,EAAMC,CAAK,EACnB,MAAM,IAAI,MAAM,mCAAmC,EACvD,GAAI,CAAC,KAAK,cAAe,EACrB,MAAM,IAAI,MAAM,wCAAwC,CACxE,CACQ,UAAW,CACP,KAAM,CAAE,EAAAvR,CAAC,EAAK,KAAK,SAAU,EAC7B,GAAIuK,EAAG,MACH,MAAO,CAACA,EAAG,MAAMvK,CAAC,EACtB,MAAM,IAAI,MAAM,6BAA6B,CACzD,CAIQ,OAAO8Q,EAAO,CACVD,EAAeC,CAAK,EACpB,KAAM,CAAE,GAAIU,EAAI,GAAIC,EAAI,GAAIC,CAAE,EAAK,KAC7B,CAAE,GAAIC,EAAI,GAAIC,EAAI,GAAIC,CAAE,EAAKf,EAC7BgB,EAAKvH,EAAG,IAAIA,EAAG,IAAIiH,EAAIK,CAAE,EAAGtH,EAAG,IAAIoH,EAAID,CAAE,CAAC,EAC1CK,EAAKxH,EAAG,IAAIA,EAAG,IAAIkH,EAAII,CAAE,EAAGtH,EAAG,IAAIqH,EAAIF,CAAE,CAAC,EAChD,OAAOI,GAAMC,CACzB,CAIQ,QAAS,CACL,OAAO,IAAIhB,EAAM,KAAK,GAAIxG,EAAG,IAAI,KAAK,EAAE,EAAG,KAAK,EAAE,CAC9D,CAKQ,QAAS,CACL,KAAM,CAAE,EAAAxM,EAAG,EAAAC,CAAC,EAAK2R,EACXqC,EAAKzH,EAAG,IAAIvM,EAAGuL,EAAG,EAClB,CAAE,GAAIiI,EAAI,GAAIC,EAAI,GAAIC,CAAE,EAAK,KACnC,IAAIO,EAAK1H,EAAG,KAAM2H,EAAK3H,EAAG,KAAM4H,EAAK5H,EAAG,KACpC6H,EAAK7H,EAAG,IAAIiH,EAAIA,CAAE,EAClBa,EAAK9H,EAAG,IAAIkH,EAAIA,CAAE,EAClB/G,EAAKH,EAAG,IAAImH,EAAIA,CAAE,EAClBY,EAAK/H,EAAG,IAAIiH,EAAIC,CAAE,EACtB,OAAAa,EAAK/H,EAAG,IAAI+H,EAAIA,CAAE,EAClBH,EAAK5H,EAAG,IAAIiH,EAAIE,CAAE,EAClBS,EAAK5H,EAAG,IAAI4H,EAAIA,CAAE,EAClBF,EAAK1H,EAAG,IAAIxM,EAAGoU,CAAE,EACjBD,EAAK3H,EAAG,IAAIyH,EAAItH,CAAE,EAClBwH,EAAK3H,EAAG,IAAI0H,EAAIC,CAAE,EAClBD,EAAK1H,EAAG,IAAI8H,EAAIH,CAAE,EAClBA,EAAK3H,EAAG,IAAI8H,EAAIH,CAAE,EAClBA,EAAK3H,EAAG,IAAI0H,EAAIC,CAAE,EAClBD,EAAK1H,EAAG,IAAI+H,EAAIL,CAAE,EAClBE,EAAK5H,EAAG,IAAIyH,EAAIG,CAAE,EAClBzH,EAAKH,EAAG,IAAIxM,EAAG2M,CAAE,EACjB4H,EAAK/H,EAAG,IAAI6H,EAAI1H,CAAE,EAClB4H,EAAK/H,EAAG,IAAIxM,EAAGuU,CAAE,EACjBA,EAAK/H,EAAG,IAAI+H,EAAIH,CAAE,EAClBA,EAAK5H,EAAG,IAAI6H,EAAIA,CAAE,EAClBA,EAAK7H,EAAG,IAAI4H,EAAIC,CAAE,EAClBA,EAAK7H,EAAG,IAAI6H,EAAI1H,CAAE,EAClB0H,EAAK7H,EAAG,IAAI6H,EAAIE,CAAE,EAClBJ,EAAK3H,EAAG,IAAI2H,EAAIE,CAAE,EAClB1H,EAAKH,EAAG,IAAIkH,EAAIC,CAAE,EAClBhH,EAAKH,EAAG,IAAIG,EAAIA,CAAE,EAClB0H,EAAK7H,EAAG,IAAIG,EAAI4H,CAAE,EAClBL,EAAK1H,EAAG,IAAI0H,EAAIG,CAAE,EAClBD,EAAK5H,EAAG,IAAIG,EAAI2H,CAAE,EAClBF,EAAK5H,EAAG,IAAI4H,EAAIA,CAAE,EAClBA,EAAK5H,EAAG,IAAI4H,EAAIA,CAAE,EACX,IAAIpB,EAAMkB,EAAIC,EAAIC,CAAE,CACvC,CAKQ,IAAIrB,EAAO,CACPD,EAAeC,CAAK,EACpB,KAAM,CAAE,GAAIU,EAAI,GAAIC,EAAI,GAAIC,CAAE,EAAK,KAC7B,CAAE,GAAIC,EAAI,GAAIC,EAAI,GAAIC,CAAE,EAAKf,EACnC,IAAImB,EAAK1H,EAAG,KAAM2H,EAAK3H,EAAG,KAAM4H,EAAK5H,EAAG,KACxC,MAAMxM,EAAI4R,EAAM,EACVqC,EAAKzH,EAAG,IAAIoF,EAAM,EAAGpG,EAAG,EAC9B,IAAI6I,EAAK7H,EAAG,IAAIiH,EAAIG,CAAE,EAClBU,EAAK9H,EAAG,IAAIkH,EAAIG,CAAE,EAClBlH,EAAKH,EAAG,IAAImH,EAAIG,CAAE,EAClBS,EAAK/H,EAAG,IAAIiH,EAAIC,CAAE,EAClBc,EAAKhI,EAAG,IAAIoH,EAAIC,CAAE,EACtBU,EAAK/H,EAAG,IAAI+H,EAAIC,CAAE,EAClBA,EAAKhI,EAAG,IAAI6H,EAAIC,CAAE,EAClBC,EAAK/H,EAAG,IAAI+H,EAAIC,CAAE,EAClBA,EAAKhI,EAAG,IAAIiH,EAAIE,CAAE,EAClB,IAAIc,EAAKjI,EAAG,IAAIoH,EAAIE,CAAE,EACtB,OAAAU,EAAKhI,EAAG,IAAIgI,EAAIC,CAAE,EAClBA,EAAKjI,EAAG,IAAI6H,EAAI1H,CAAE,EAClB6H,EAAKhI,EAAG,IAAIgI,EAAIC,CAAE,EAClBA,EAAKjI,EAAG,IAAIkH,EAAIC,CAAE,EAClBO,EAAK1H,EAAG,IAAIqH,EAAIC,CAAE,EAClBW,EAAKjI,EAAG,IAAIiI,EAAIP,CAAE,EAClBA,EAAK1H,EAAG,IAAI8H,EAAI3H,CAAE,EAClB8H,EAAKjI,EAAG,IAAIiI,EAAIP,CAAE,EAClBE,EAAK5H,EAAG,IAAIxM,EAAGwU,CAAE,EACjBN,EAAK1H,EAAG,IAAIyH,EAAItH,CAAE,EAClByH,EAAK5H,EAAG,IAAI0H,EAAIE,CAAE,EAClBF,EAAK1H,EAAG,IAAI8H,EAAIF,CAAE,EAClBA,EAAK5H,EAAG,IAAI8H,EAAIF,CAAE,EAClBD,EAAK3H,EAAG,IAAI0H,EAAIE,CAAE,EAClBE,EAAK9H,EAAG,IAAI6H,EAAIA,CAAE,EAClBC,EAAK9H,EAAG,IAAI8H,EAAID,CAAE,EAClB1H,EAAKH,EAAG,IAAIxM,EAAG2M,CAAE,EACjB6H,EAAKhI,EAAG,IAAIyH,EAAIO,CAAE,EAClBF,EAAK9H,EAAG,IAAI8H,EAAI3H,CAAE,EAClBA,EAAKH,EAAG,IAAI6H,EAAI1H,CAAE,EAClBA,EAAKH,EAAG,IAAIxM,EAAG2M,CAAE,EACjB6H,EAAKhI,EAAG,IAAIgI,EAAI7H,CAAE,EAClB0H,EAAK7H,EAAG,IAAI8H,EAAIE,CAAE,EAClBL,EAAK3H,EAAG,IAAI2H,EAAIE,CAAE,EAClBA,EAAK7H,EAAG,IAAIiI,EAAID,CAAE,EAClBN,EAAK1H,EAAG,IAAI+H,EAAIL,CAAE,EAClBA,EAAK1H,EAAG,IAAI0H,EAAIG,CAAE,EAClBA,EAAK7H,EAAG,IAAI+H,EAAID,CAAE,EAClBF,EAAK5H,EAAG,IAAIiI,EAAIL,CAAE,EAClBA,EAAK5H,EAAG,IAAI4H,EAAIC,CAAE,EACX,IAAIrB,EAAMkB,EAAIC,EAAIC,CAAE,CACvC,CACQ,SAASrB,EAAO,CACZ,OAAO,KAAK,IAAIA,EAAM,OAAM,CAAE,CAC1C,CACQ,KAAM,CACF,OAAO,KAAK,OAAOC,EAAM,IAAI,CACzC,CACQ,KAAKzR,EAAG,CACJ,OAAOmT,EAAK,WAAW,KAAM7B,EAAkBtR,EAAImP,GAAS,CACxD,MAAM2C,EAAQ7G,EAAG,YAAYkE,EAAK,IAAK7O,GAAMA,EAAE,EAAE,CAAC,EAClD,OAAO6O,EAAK,IAAI,CAAC7O,EAAGL,IAAMK,EAAE,SAASwR,EAAM7R,CAAC,CAAC,CAAC,EAAE,IAAIwR,EAAM,UAAU,CACpF,CAAa,CACb,CAMQ,eAAezR,EAAG,CACd,MAAMyB,EAAIgQ,EAAM,KAChB,GAAIzR,IAAM8G,GACN,OAAOrF,EAEX,GADAuP,EAAShR,CAAC,EACNA,IAAM+G,GACN,OAAO,KACX,KAAM,CAAE,KAAAyI,CAAI,EAAKa,EACjB,GAAI,CAACb,EACD,OAAO2D,EAAK,aAAa,KAAMnT,CAAC,EAEpC,GAAI,CAAE,MAAAoT,EAAO,GAAAC,EAAI,MAAAC,EAAO,GAAAC,CAAE,EAAK/D,EAAK,YAAYxP,CAAC,EAC7CwT,EAAM/R,EACNgS,EAAMhS,EACNlB,EAAI,KACR,KAAO8S,EAAKvM,IAAOyM,EAAKzM,IAChBuM,EAAKtM,KACLyM,EAAMA,EAAI,IAAIjT,CAAC,GACfgT,EAAKxM,KACL0M,EAAMA,EAAI,IAAIlT,CAAC,GACnBA,EAAIA,EAAE,OAAQ,EACd8S,IAAOtM,GACPwM,IAAOxM,GAEX,OAAIqM,IACAI,EAAMA,EAAI,OAAQ,GAClBF,IACAG,EAAMA,EAAI,OAAQ,GACtBA,EAAM,IAAIhC,EAAMxG,EAAG,IAAIwI,EAAI,GAAIjE,EAAK,IAAI,EAAGiE,EAAI,GAAIA,EAAI,EAAE,EAClDD,EAAI,IAAIC,CAAG,CAC9B,CAUQ,SAASC,EAAQ,CACb1C,EAAS0C,CAAM,EACf,IAAI1T,EAAI0T,EACJnD,EAAOoD,EACX,KAAM,CAAE,KAAAnE,CAAI,EAAKa,EACjB,GAAIb,EAAM,CACN,KAAM,CAAE,MAAA4D,EAAO,GAAAC,EAAI,MAAAC,EAAO,GAAAC,CAAE,EAAK/D,EAAK,YAAYxP,CAAC,EACnD,GAAI,CAAE,EAAGwT,EAAK,EAAGI,CAAG,EAAK,KAAK,KAAKP,CAAE,EACjC,CAAE,EAAGI,EAAK,EAAGI,CAAG,EAAK,KAAK,KAAKN,CAAE,EACrCC,EAAML,EAAK,gBAAgBC,EAAOI,CAAG,EACrCC,EAAMN,EAAK,gBAAgBG,EAAOG,CAAG,EACrCA,EAAM,IAAIhC,EAAMxG,EAAG,IAAIwI,EAAI,GAAIjE,EAAK,IAAI,EAAGiE,EAAI,GAAIA,EAAI,EAAE,EACzDlD,EAAQiD,EAAI,IAAIC,CAAG,EACnBE,EAAOC,EAAI,IAAIC,CAAG,CAClC,KACiB,CACD,KAAM,CAAE,EAAAvT,EAAG,EAAAG,CAAC,EAAK,KAAK,KAAKT,CAAC,EAC5BuQ,EAAQjQ,EACRqT,EAAOlT,CACvB,CAEY,OAAOgR,EAAM,WAAW,CAAClB,EAAOoD,CAAI,CAAC,EAAE,CAAC,CACpD,CAOQ,qBAAqB7I,EAAGrM,EAAG,EAAG,CAC1B,MAAM0H,EAAIsL,EAAM,KACVqC,EAAM,CAACzS,EAAG5C,IACVA,IAAMqI,IAAOrI,IAAMsI,IAAO,CAAC1F,EAAE,OAAO8E,CAAC,EAAI9E,EAAE,eAAe5C,CAAC,EAAI4C,EAAE,SAAS5C,CAAC,EAC3EiF,EAAMoQ,EAAI,KAAMrV,CAAC,EAAE,IAAIqV,EAAIhJ,EAAG,CAAC,CAAC,EACtC,OAAOpH,EAAI,MAAQ,OAAYA,CAC3C,CAIQ,SAASqQ,EAAI,CACT,KAAM,CAAE,GAAI/S,EAAG,GAAIN,EAAG,GAAIoB,CAAC,EAAK,KAC1B+P,EAAM,KAAK,IAAK,EAGlBkC,GAAM,OACNA,EAAKlC,EAAM5G,EAAG,IAAMA,EAAG,IAAInJ,CAAC,GAChC,MAAMkS,EAAK/I,EAAG,IAAIjK,EAAG+S,CAAE,EACjBE,EAAKhJ,EAAG,IAAIvK,EAAGqT,CAAE,EACjBG,EAAKjJ,EAAG,IAAInJ,EAAGiS,CAAE,EACvB,GAAIlC,EACA,MAAO,CAAE,EAAG5G,EAAG,KAAM,EAAGA,EAAG,IAAM,EACrC,GAAI,CAACA,EAAG,IAAIiJ,EAAIjJ,EAAG,GAAG,EAClB,MAAM,IAAI,MAAM,kBAAkB,EACtC,MAAO,CAAE,EAAG+I,EAAI,EAAGC,CAAI,CACnC,CACQ,eAAgB,CACZ,KAAM,CAAEE,EAAa,cAAAC,CAAe,EAAG/D,EACvC,GAAI8D,IAAapN,GACb,MAAO,GACX,GAAIqN,EACA,OAAOA,EAAc3C,EAAO,IAAI,EACpC,MAAM,IAAI,MAAM,8DAA8D,CAC1F,CACQ,eAAgB,CACZ,KAAM,CAAE0C,EAAa,cAAAE,CAAe,EAAGhE,EACvC,OAAI8D,IAAapN,GACN,KACPsN,EACOA,EAAc5C,EAAO,IAAI,EAC7B,KAAK,eAAepB,EAAM,CAAC,CAC9C,CACQ,WAAWiE,EAAe,GAAM,CAC5B,YAAK,eAAgB,EACdhR,EAAQmO,EAAO,KAAM6C,CAAY,CACpD,CACQ,MAAMA,EAAe,GAAM,CACvB,OAAOnD,GAAc,KAAK,WAAWmD,CAAY,CAAC,CAC9D,CACA,CACI7C,EAAM,KAAO,IAAIA,EAAMpB,EAAM,GAAIA,EAAM,GAAIpF,EAAG,GAAG,EACjDwG,EAAM,KAAO,IAAIA,EAAMxG,EAAG,KAAMA,EAAG,IAAKA,EAAG,IAAI,EAC/C,MAAMsJ,EAAQlE,EAAM,WACd8C,EAAOxF,GAAK8D,EAAOpB,EAAM,KAAO,KAAK,KAAKkE,EAAQ,CAAC,EAAIA,CAAK,EAElE,MAAO,CACH,MAAAlE,EACA,gBAAiBoB,EACjB,uBAAAR,EACA,oBAAAL,EACA,mBAAAG,CACH,CACL,CACA,SAASyD,GAAanF,EAAO,CACzB,MAAMvD,EAAOsD,GAAcC,CAAK,EAChCE,UAAkBzD,EAAM,CACpB,KAAM,OACN,KAAM,WACN,YAAa,UACrB,EAAO,CACC,SAAU,WACV,cAAe,WACf,KAAM,SACd,CAAK,EACM,OAAO,OAAO,CAAE,KAAM,GAAM,GAAGA,EAAM,CAChD,CACO,SAAS2I,GAAYC,EAAU,CAClC,MAAMrE,EAAQmE,GAAaE,CAAQ,EAC7B,CAAE,GAAAzJ,EAAI0J,CAAgB,EAAGtE,EACzBuE,EAAgB3J,EAAG,MAAQ,EAC3B4J,EAAkB,EAAI5J,EAAG,MAAQ,EACvC,SAAS6J,EAAoBzN,EAAK,CAC9B,OAAOP,GAAMO,GAAOA,EAAM4D,EAAG,KACrC,CACI,SAAS8J,EAAKtW,EAAG,CACb,OAAO4S,EAAQ5S,EAAGkW,CAAW,CACrC,CACI,SAASK,EAAKvW,EAAG,CACb,OAAOwW,GAAWxW,EAAGkW,CAAW,CACxC,CACI,KAAM,CAAE,gBAAiBlD,EAAO,uBAAAR,EAAwB,oBAAAL,EAAqB,mBAAAG,CAAqB,EAAGX,GAAkB,CACnH,GAAGC,EACH,QAAQC,EAAIC,EAAO+D,EAAc,CAC7B,MAAM7V,EAAI8R,EAAM,SAAU,EACpBvP,EAAIiK,EAAG,QAAQxM,EAAE,CAAC,EAClByW,EAAMzE,GACZ,OAAI6D,EACOY,EAAI,WAAW,KAAK,CAAC3E,EAAM,SAAU,EAAG,EAAO,CAAI,CAAC,EAAGvP,CAAC,EAGxDkU,EAAI,WAAW,KAAK,CAAC,CAAI,CAAC,EAAGlU,EAAGiK,EAAG,QAAQxM,EAAE,CAAC,CAAC,CAE7D,EACD,UAAU0D,EAAO,CACb,MAAM4C,EAAM5C,EAAM,OACZgT,EAAOhT,EAAM,CAAC,EACdwO,EAAOxO,EAAM,SAAS,CAAC,EAE7B,GAAI4C,IAAQ6P,IAAkBO,IAAS,GAAQA,IAAS,GAAO,CAC3D,MAAMnU,EAAIoQ,EAAmBT,CAAI,EACjC,GAAI,CAACmE,EAAoB9T,CAAC,EACtB,MAAM,IAAI,MAAM,uBAAuB,EAC3C,MAAMoU,EAAKxE,EAAoB5P,CAAC,EAChC,IAAIN,EAAIuK,EAAG,KAAKmK,CAAE,EAClB,MAAMC,GAAU3U,EAAIqG,MAASA,GAG7B,OADmBoO,EAAO,KAAO,IACfE,IACd3U,EAAIuK,EAAG,IAAIvK,CAAC,GACT,CAAE,EAAAM,EAAG,EAAAN,CAAG,CAC/B,SACqBqE,IAAQ8P,GAAmBM,IAAS,EAAM,CAC/C,MAAMnU,EAAIiK,EAAG,UAAU0F,EAAK,SAAS,EAAG1F,EAAG,KAAK,CAAC,EAC3CvK,EAAIuK,EAAG,UAAU0F,EAAK,SAAS1F,EAAG,MAAO,EAAIA,EAAG,KAAK,CAAC,EAC5D,MAAO,CAAE,EAAAjK,EAAG,EAAAN,CAAG,CAC/B,KAEgB,OAAM,IAAI,MAAM,mBAAmBqE,CAAG,0BAA0B6P,CAAa,wBAAwBC,CAAe,qBAAqB,CAEhJ,CACT,CAAK,EACKS,EAAiBjO,GAAQ8J,GAAcoE,GAAmBlO,EAAKgJ,EAAM,WAAW,CAAC,EACvF,SAASmF,EAAsBtT,EAAQ,CACnC,MAAMuT,EAAOd,GAAe5N,GAC5B,OAAO7E,EAASuT,CACxB,CACI,SAASC,EAAW9X,EAAG,CACnB,OAAO4X,EAAsB5X,CAAC,EAAImX,EAAK,CAACnX,CAAC,EAAIA,CACrD,CAEI,MAAM+X,EAAS,CAACjX,EAAGkX,EAAMrQ,IAAO6L,EAAmB1S,EAAE,MAAMkX,EAAMrQ,CAAE,CAAC,EAIpE,MAAMsQ,CAAU,CACZ,YAAY9V,EAAGnC,EAAGkY,EAAU,CACxB,KAAK,EAAI/V,EACT,KAAK,EAAInC,EACT,KAAK,SAAWkY,EAChB,KAAK,eAAgB,CACjC,CAEQ,OAAO,YAAY3O,EAAK,CACpB,MAAM9G,EAAIgQ,EAAM,YAChB,OAAAlJ,EAAMa,EAAY,mBAAoBb,EAAK9G,EAAI,CAAC,EACzC,IAAIwV,EAAUF,EAAOxO,EAAK,EAAG9G,CAAC,EAAGsV,EAAOxO,EAAK9G,EAAG,EAAIA,CAAC,CAAC,CACzE,CAGQ,OAAO,QAAQ8G,EAAK,CAChB,KAAM,CAAE,EAAApH,EAAG,EAAAnC,GAAMgS,GAAI,MAAM5H,EAAY,MAAOb,CAAG,CAAC,EAClD,OAAO,IAAI0O,EAAU9V,EAAGnC,CAAC,CACrC,CACQ,gBAAiB,CAEb,GAAI,CAACmT,EAAmB,KAAK,CAAC,EAC1B,MAAM,IAAI,MAAM,2BAA2B,EAC/C,GAAI,CAACA,EAAmB,KAAK,CAAC,EAC1B,MAAM,IAAI,MAAM,2BAA2B,CAC3D,CACQ,eAAe+E,EAAU,CACrB,OAAO,IAAID,EAAU,KAAK,EAAG,KAAK,EAAGC,CAAQ,CACzD,CACQ,iBAAiBC,EAAS,CACtB,KAAM,CAAE,EAAAhW,EAAG,EAAAnC,EAAG,SAAUoY,CAAK,EAAG,KAC1B5V,EAAI6V,EAAcjO,EAAY,UAAW+N,CAAO,CAAC,EACvD,GAAIC,GAAO,MAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,CAAC,EAAE,SAASA,CAAG,EACzC,MAAM,IAAI,MAAM,qBAAqB,EACzC,MAAME,EAAOF,IAAQ,GAAKA,IAAQ,EAAIjW,EAAIsQ,EAAM,EAAItQ,EACpD,GAAImW,GAAQjL,EAAG,MACX,MAAM,IAAI,MAAM,4BAA4B,EAChD,MAAMkL,EAAUH,EAAM,EAAkB,KAAP,KAC3BnU,GAAI4P,EAAM,QAAQ0E,EAASb,EAAcY,CAAI,CAAC,EAC9CE,GAAKpB,EAAKkB,CAAI,EACdG,GAAKtB,EAAK,CAAC3U,EAAIgW,EAAE,EACjBE,GAAKvB,EAAKnX,EAAIwY,EAAE,EAChBtL,GAAI2G,EAAM,KAAK,qBAAqB5P,GAAGwU,GAAIC,EAAE,EACnD,GAAI,CAACxL,GACD,MAAM,IAAI,MAAM,mBAAmB,EACvC,OAAAA,GAAE,eAAgB,EACXA,EACnB,CAEQ,UAAW,CACP,OAAO0K,EAAsB,KAAK,CAAC,CAC/C,CACQ,YAAa,CACT,OAAO,KAAK,SAAQ,EAAK,IAAIK,EAAU,KAAK,EAAGd,EAAK,CAAC,KAAK,CAAC,EAAG,KAAK,QAAQ,EAAI,IAC3F,CAEQ,eAAgB,CACZ,OAAOwB,GAAc,KAAK,UAAU,CAChD,CACQ,UAAW,CACP,OAAO3G,GAAI,WAAW,CAAE,EAAG,KAAK,EAAG,EAAG,KAAK,EAAG,CAC1D,CAEQ,mBAAoB,CAChB,OAAO2G,GAAc,KAAK,cAAc,CACpD,CACQ,cAAe,CACX,OAAOjB,EAAc,KAAK,CAAC,EAAIA,EAAc,KAAK,CAAC,CAC/D,CACA,CACI,MAAMkB,EAAQ,CACV,kBAAkBzE,EAAY,CAC1B,GAAI,CACA,OAAAd,EAAuBc,CAAU,EAC1B,EACvB,MAC0B,CACV,MAAO,EACvB,CACS,EACD,uBAAwBd,EAKxB,iBAAkB,IAAM,CACpB,MAAMzL,EAASiR,GAAqBpG,EAAM,CAAC,EAC3C,OAAOqG,GAAmBrG,EAAM,YAAY7K,CAAM,EAAG6K,EAAM,CAAC,CAC/D,EASD,WAAWlC,EAAa,EAAGoC,EAAQkB,EAAM,KAAM,CAC3C,OAAAlB,EAAM,eAAepC,CAAU,EAC/BoC,EAAM,SAAS,OAAO,CAAC,CAAC,EACjBA,CACV,CACJ,EAOD,SAASoG,EAAa5E,EAAYuC,EAAe,GAAM,CACnD,OAAO7C,EAAM,eAAeM,CAAU,EAAE,WAAWuC,CAAY,CACvE,CAII,SAASsC,EAAU7I,EAAM,CACrB,MAAMhL,EAAMgL,aAAgB,WACtB1K,EAAM,OAAO0K,GAAS,SACtBhJ,GAAOhC,GAAOM,IAAQ0K,EAAK,OACjC,OAAIhL,EACOgC,IAAQ6P,GAAiB7P,IAAQ8P,EACxCxR,EACO0B,IAAQ,EAAI6P,GAAiB7P,IAAQ,EAAI8P,EAChD9G,aAAgB0D,CAG5B,CAWI,SAASoF,EAAgBC,EAAUC,EAASzC,EAAe,GAAM,CAC7D,GAAIsC,EAAUE,CAAQ,EAClB,MAAM,IAAI,MAAM,+BAA+B,EACnD,GAAI,CAACF,EAAUG,CAAO,EAClB,MAAM,IAAI,MAAM,+BAA+B,EAEnD,OADUtF,EAAM,QAAQsF,CAAO,EACtB,SAAS9F,EAAuB6F,CAAQ,CAAC,EAAE,WAAWxC,CAAY,CACnF,CAKI,MAAM0C,EAAW3G,EAAM,UACnB,SAAUlO,EAAO,CAGb,MAAMkF,EAAM+J,EAAmBjP,CAAK,EAC9B8U,EAAQ9U,EAAM,OAAS,EAAIkO,EAAM,WACvC,OAAO4G,EAAQ,EAAI5P,GAAO,OAAO4P,CAAK,EAAI5P,CAC7C,EACC4O,EAAgB5F,EAAM,eACxB,SAAUlO,EAAO,CACb,OAAO4S,EAAKiC,EAAS7U,CAAK,CAAC,CAC9B,EAEC+U,EAAaC,GAAW9G,EAAM,UAAU,EAI9C,SAAS+G,EAAW/P,EAAK,CACrB,GAAI,OAAOA,GAAQ,SACf,MAAM,IAAI,MAAM,iBAAiB,EACrC,GAAI,EAAEP,IAAOO,GAAOA,EAAM6P,GACtB,MAAM,IAAI,MAAM,uBAAuB7G,EAAM,UAAU,EAAE,EAE7D,OAAOkF,GAAmBlO,EAAKgJ,EAAM,WAAW,CACxD,CAMI,SAASgH,EAAQtB,EAAShE,EAAYjG,EAAOwL,EAAgB,CACzD,GAAI,CAAC,YAAa,WAAW,EAAE,KAAM3V,IAAMA,MAAKmK,CAAI,EAChD,MAAM,IAAI,MAAM,qCAAqC,EACzD,KAAM,CAAE,KAAAzJ,EAAM,YAAA4B,CAAW,EAAKoM,EAC9B,GAAI,CAAE,KAAAkH,EAAM,QAAAC,EAAS,aAAcC,CAAG,EAAK3L,EACvCyL,GAAQ,OACRA,EAAO,IACXxB,EAAU/N,EAAY,UAAW+N,CAAO,EACpCyB,IACAzB,EAAU/N,EAAY,oBAAqB3F,EAAK0T,CAAO,CAAC,GAI5D,MAAM2B,GAAQzB,EAAcF,CAAO,EAC7BxV,GAAI0Q,EAAuBc,CAAU,EACrC4F,GAAW,CAACP,EAAW7W,EAAC,EAAG6W,EAAWM,EAAK,CAAC,EAElD,GAAID,GAAO,KAAM,CAEb,MAAM7X,GAAI6X,IAAQ,GAAOxT,EAAYgH,EAAG,KAAK,EAAIwM,EACjDE,GAAS,KAAK3P,EAAY,eAAgBpI,EAAC,CAAC,CACxD,CACQ,MAAMsJ,GAAOuH,GAAe,GAAGkH,EAAQ,EACjC9W,GAAI6W,GAEV,SAASE,GAAMC,GAAQ,CAEnB,MAAMlW,GAAIqV,EAASa,EAAM,EACzB,GAAI,CAAC9G,EAAmBpP,EAAC,EACrB,OACJ,MAAMmW,GAAK9C,EAAKrT,EAAC,EACXgJ,GAAI8G,EAAM,KAAK,SAAS9P,EAAC,EAAE,WAC3B5B,GAAIgV,EAAKpK,GAAE,CAAC,EAClB,GAAI5K,KAAM+G,GACN,OAIJ,MAAMlJ,GAAImX,EAAK+C,GAAK/C,EAAKlU,GAAId,GAAIQ,EAAC,CAAC,EACnC,GAAI3C,KAAMkJ,GACN,OACJ,IAAIgP,IAAYnL,GAAE,IAAM5K,GAAI,EAAI,GAAK,OAAO4K,GAAE,EAAI5D,EAAG,EACjDgR,GAAQna,GACZ,OAAI2Z,GAAQ/B,EAAsB5X,EAAC,IAC/Bma,GAAQrC,EAAW9X,EAAC,EACpBkY,IAAY,GAET,IAAID,EAAU9V,GAAGgY,GAAOjC,EAAQ,CACnD,CACQ,MAAO,CAAE,KAAA5M,GAAM,MAAA0O,EAAO,CAC9B,CACI,MAAMN,EAAiB,CAAE,KAAMjH,EAAM,KAAM,QAAS,EAAO,EACrD2H,EAAiB,CAAE,KAAM3H,EAAM,KAAM,QAAS,EAAO,EAc3D,SAAS4H,EAAKlC,EAASmC,EAASpM,EAAOwL,EAAgB,CACnD,KAAM,CAAE,KAAApO,EAAM,MAAA0O,CAAO,EAAGP,EAAQtB,EAASmC,EAASpM,CAAI,EAChD1K,EAAIiP,EAEV,OADa8H,GAAkB/W,EAAE,KAAK,UAAWA,EAAE,YAAaA,EAAE,IAAI,EAC1D8H,EAAM0O,CAAK,CAC/B,CAEInG,EAAM,KAAK,eAAe,CAAC,EAe3B,SAAS2G,EAAOC,EAAWtC,EAASuC,EAAWxM,EAAOkM,EAAgB,CAClE,MAAMO,EAAKF,EAGX,GAFAtC,EAAU/N,EAAY,UAAW+N,CAAO,EACxCuC,EAAYtQ,EAAY,YAAasQ,CAAS,EAC1C,WAAYxM,EACZ,MAAM,IAAI,MAAM,oCAAoC,EACxD,KAAM,CAAE,KAAAyL,EAAM,QAAAC,CAAO,EAAK1L,EAC1B,IAAI0M,EACAnX,GACJ,GAAI,CACA,GAAI,OAAOkX,GAAO,UAAYA,aAAc,WAGxC,GAAI,CACAC,EAAO3C,EAAU,QAAQ0C,CAAE,CAC/C,OACuBE,GAAU,CACb,GAAI,EAAEA,cAAoB7I,GAAI,KAC1B,MAAM6I,GACVD,EAAO3C,EAAU,YAAY0C,CAAE,CACnD,SAEqB,OAAOA,GAAO,UAAY,OAAOA,EAAG,GAAM,UAAY,OAAOA,EAAG,GAAM,SAAU,CACrF,KAAM,CAAE,EAAAxY,GAAG,EAAAnC,EAAC,EAAK2a,EACjBC,EAAO,IAAI3C,EAAU9V,GAAGnC,EAAC,CACzC,KAEgB,OAAM,IAAI,MAAM,OAAO,EAE3ByD,GAAIoQ,EAAM,QAAQ6G,CAAS,CACvC,OACeI,GAAO,CACV,GAAIA,GAAM,UAAY,QAClB,MAAM,IAAI,MAAM,gEAAgE,EACpF,MAAO,EACnB,CACQ,GAAInB,GAAQiB,EAAK,SAAU,EACvB,MAAO,GACPhB,IACAzB,EAAU1F,EAAM,KAAK0F,CAAO,GAChC,KAAM,CAAE,EAAAhW,GAAG,EAAAnC,EAAC,EAAK4a,EACXpY,GAAI6V,EAAcF,CAAO,EACzB4C,GAAK3D,EAAKpX,EAAC,EACXyY,GAAKtB,EAAK3U,GAAIuY,EAAE,EAChBrC,GAAKvB,EAAKhV,GAAI4Y,EAAE,EAChB9W,GAAI4P,EAAM,KAAK,qBAAqBpQ,GAAGgV,GAAIC,EAAE,GAAG,WACtD,OAAKzU,GAEKkT,EAAKlT,GAAE,CAAC,IACL9B,GAFF,EAGnB,CACI,MAAO,CACH,MAAAsQ,EACA,aAAAsG,EACA,gBAAAE,EACA,KAAAoB,EACA,OAAAG,EACA,gBAAiB3G,EACjB,UAAAoE,EACA,MAAAW,CACH,CACL,QCj6BO,cAAmB9R,EAAK,CAC3B,YAAYrC,EAAMuW,EAAM,CACpB,MAAO,EACP,KAAK,SAAW,GAChB,KAAK,UAAY,GACjBC,GAAWxW,CAAI,EACf,MAAM/D,EAAMgF,GAAQsV,CAAI,EAExB,GADA,KAAK,MAAQvW,EAAK,OAAQ,EACtB,OAAO,KAAK,MAAM,QAAW,WAC7B,MAAM,IAAI,MAAM,qDAAqD,EACzE,KAAK,SAAW,KAAK,MAAM,SAC3B,KAAK,UAAY,KAAK,MAAM,UAC5B,MAAMsC,EAAW,KAAK,SAChBhB,EAAM,IAAI,WAAWgB,CAAQ,EAEnChB,EAAI,IAAIrF,EAAI,OAASqG,EAAWtC,EAAK,OAAQ,EAAC,OAAO/D,CAAG,EAAE,OAAM,EAAKA,CAAG,EACxE,QAAS2B,EAAI,EAAGA,EAAI0D,EAAI,OAAQ1D,IAC5B0D,EAAI1D,CAAC,GAAK,GACd,KAAK,MAAM,OAAO0D,CAAG,EAErB,KAAK,MAAQtB,EAAK,OAAQ,EAE1B,QAASpC,EAAI,EAAGA,EAAI0D,EAAI,OAAQ1D,IAC5B0D,EAAI1D,CAAC,GAAK,IACd,KAAK,MAAM,OAAO0D,CAAG,EACrBA,EAAI,KAAK,CAAC,CAClB,CACI,OAAOmV,EAAK,CACRC,UAAa,IAAI,EACjB,KAAK,MAAM,OAAOD,CAAG,EACd,IACf,CACI,WAAWpW,EAAK,CACZqW,GAAa,IAAI,EACjBC,GAAYtW,EAAK,KAAK,SAAS,EAC/B,KAAK,SAAW,GAChB,KAAK,MAAM,WAAWA,CAAG,EACzB,KAAK,MAAM,OAAOA,CAAG,EACrB,KAAK,MAAM,WAAWA,CAAG,EACzB,KAAK,QAAS,CACtB,CACI,QAAS,CACL,MAAMA,EAAM,IAAI,WAAW,KAAK,MAAM,SAAS,EAC/C,YAAK,WAAWA,CAAG,EACZA,CACf,CACI,WAAW6C,EAAI,CAEXA,IAAOA,EAAK,OAAO,OAAO,OAAO,eAAe,IAAI,EAAG,EAAE,GACzD,KAAM,CAAE,MAAA0T,EAAO,MAAAC,EAAO,SAAAzT,EAAU,UAAAC,EAAW,SAAAf,EAAU,UAAAC,CAAS,EAAK,KACnE,OAAAW,EAAKA,EACLA,EAAG,SAAWE,EACdF,EAAG,UAAYG,EACfH,EAAG,SAAWZ,EACdY,EAAG,UAAYX,EACfW,EAAG,MAAQ0T,EAAM,WAAW1T,EAAG,KAAK,EACpCA,EAAG,MAAQ2T,EAAM,WAAW3T,EAAG,KAAK,EAC7BA,CACf,CACI,SAAU,CACN,KAAK,UAAY,GACjB,KAAK,MAAM,QAAS,EACpB,KAAK,MAAM,QAAS,CAC5B,CACA,EAOO,MAAM4T,GAAO,CAAC9W,EAAM/D,EAAK8a,IAAY,IAAIC,GAAKhX,EAAM/D,CAAG,EAAE,OAAO8a,CAAO,EAAE,OAAQ,EACxFD,GAAK,OAAS,CAAC9W,EAAM/D,IAAQ,IAAI+a,GAAKhX,EAAM/D,CAAG,EC3E/C,sEAKO,SAASgb,GAAQjX,EAAM,CAC1B,MAAO,CACH,KAAAA,EACA,KAAM,CAAC/D,KAAQib,IAASJ,GAAK9W,EAAM/D,EAAKkF,GAAY,GAAG+V,CAAI,CAAC,EACpE,YAAQtV,EACH,CACL,CACO,SAASuV,GAAY9E,EAAU+E,EAAS,CAC3C,MAAMC,EAAUrX,GAASoS,GAAY,CAAE,GAAGC,EAAU,GAAG4E,GAAQjX,CAAI,EAAG,EACtE,OAAO,OAAO,OAAO,CAAE,GAAGqX,EAAOD,CAAO,EAAG,OAAAC,EAAQ,CACvD,CCfA,sEAQA,MAAMC,GAAa,OAAO,oEAAoE,EACxFC,GAAa,OAAO,oEAAoE,EACxF7S,GAAM,OAAO,CAAC,EACdC,GAAM,OAAO,CAAC,EACd6S,GAAa,CAACpb,EAAGC,KAAOD,EAAIC,EAAIsI,IAAOtI,EAK7C,SAASob,GAAQpZ,EAAG,CAChB,MAAMW,EAAIsY,GAEJ1P,EAAM,OAAO,CAAC,EAAG8P,EAAM,OAAO,CAAC,EAAGC,EAAO,OAAO,EAAE,EAAGC,EAAO,OAAO,EAAE,EAErEC,EAAO,OAAO,EAAE,EAAGC,EAAO,OAAO,EAAE,EAAGC,EAAO,OAAO,EAAE,EACtD/R,EAAM3H,EAAIA,EAAIA,EAAKW,EACnBqR,EAAMrK,EAAKA,EAAK3H,EAAKW,EACrBgZ,EAAM5P,EAAKiI,EAAIzI,EAAK5I,CAAC,EAAIqR,EAAMrR,EAC/BiZ,EAAM7P,EAAK4P,EAAIpQ,EAAK5I,CAAC,EAAIqR,EAAMrR,EAC/BkZ,EAAO9P,EAAK6P,EAAItT,GAAK3F,CAAC,EAAIgH,EAAMhH,EAChCmZ,EAAO/P,EAAK8P,EAAKP,EAAM3Y,CAAC,EAAIkZ,EAAOlZ,EACnCoZ,EAAOhQ,EAAK+P,EAAKP,EAAM5Y,CAAC,EAAImZ,EAAOnZ,EACnCqZ,EAAOjQ,EAAKgQ,EAAKN,EAAM9Y,CAAC,EAAIoZ,EAAOpZ,EACnCsZ,EAAQlQ,EAAKiQ,EAAKN,EAAM/Y,CAAC,EAAIqZ,EAAOrZ,EACpCuZ,EAAQnQ,EAAKkQ,EAAMR,EAAM9Y,CAAC,EAAIoZ,EAAOpZ,EACrCwZ,EAAQpQ,EAAKmQ,EAAM3Q,EAAK5I,CAAC,EAAIqR,EAAMrR,EACnC0R,EAAMtI,EAAKoQ,EAAMX,EAAM7Y,CAAC,EAAImZ,EAAOnZ,EACnC+J,EAAMX,EAAKsI,EAAIgH,EAAK1Y,CAAC,EAAIgH,EAAMhH,EAC/B6J,EAAOT,EAAKW,EAAIpE,GAAK3F,CAAC,EAC5B,GAAI,CAAC4J,GAAG,IAAIA,GAAG,IAAIC,CAAI,EAAGxK,CAAC,EACvB,MAAM,IAAI,MAAM,yBAAyB,EAC7C,OAAOwK,CACX,CACA,MAAMD,GAAKyB,GAAMiN,GAAY,OAAW,OAAW,CAAE,KAAMG,GAAS,EACvDgB,GAAYtB,GAAY,CACjC,EAAG,OAAO,CAAC,EACX,EAAG,OAAO,CAAC,EACX,GAAAvO,GACA,EAAG2O,GAEH,GAAI,OAAO,+EAA+E,EAC1F,GAAI,OAAO,+EAA+E,EAC1F,EAAG,OAAO,CAAC,EACX,KAAM,GAON,KAAM,CACF,KAAM,OAAO,oEAAoE,EACjF,YAAcjY,GAAM,CAChB,MAAM3B,EAAI4Z,GACJmB,EAAK,OAAO,oCAAoC,EAChD3S,EAAK,CAACrB,GAAM,OAAO,oCAAoC,EACvDiU,EAAK,OAAO,qCAAqC,EACjD3S,EAAK0S,EACLE,EAAY,OAAO,qCAAqC,EACxD1P,EAAKsO,GAAWxR,EAAK1G,EAAG3B,CAAC,EACzBkb,EAAKrB,GAAW,CAACzR,EAAKzG,EAAG3B,CAAC,EAChC,IAAIqT,EAAKhJ,EAAI1I,EAAI4J,EAAKwP,EAAKG,EAAKF,EAAIhb,CAAC,EACjCuT,EAAKlJ,EAAI,CAACkB,EAAKnD,EAAK8S,EAAK7S,EAAIrI,CAAC,EAClC,MAAMoT,EAAQC,EAAK4H,EACb3H,EAAQC,EAAK0H,EAKnB,GAJI7H,IACAC,EAAKrT,EAAIqT,GACTC,IACAC,EAAKvT,EAAIuT,GACTF,EAAK4H,GAAa1H,EAAK0H,EACvB,MAAM,IAAI,MAAM,uCAAyCtZ,CAAC,EAE9D,MAAO,CAAE,MAAAyR,EAAO,GAAAC,EAAI,MAAAC,EAAO,GAAAC,CAAI,CAClC,CACJ,CACL,EAAG3M,EAAM,EAGHE,GAAM,OAAO,CAAC,EACdqU,GAAMna,GAAM,OAAOA,GAAM,UAAY8F,GAAM9F,GAAKA,EAAI2Y,GACpDtO,GAAMrK,GAAM,OAAOA,GAAM,UAAY8F,GAAM9F,GAAKA,EAAI4Y,GAEpDwB,GAAuB,CAAE,EAC/B,SAASC,GAAWC,KAAQC,EAAU,CAClC,IAAIC,EAAOJ,GAAqBE,CAAG,EACnC,GAAIE,IAAS,OAAW,CACpB,MAAMC,EAAO7U,GAAO,WAAW,KAAK0U,EAAMnb,GAAMA,EAAE,WAAW,CAAC,CAAC,CAAC,EAChEqb,EAAOhY,GAAYiY,EAAMA,CAAI,EAC7BL,GAAqBE,CAAG,EAAIE,CACpC,CACI,OAAO5U,GAAOpD,GAAYgY,EAAM,GAAGD,CAAQ,CAAC,CAChD,CAEA,MAAMG,GAAgBnL,GAAUA,EAAM,WAAW,EAAI,EAAE,MAAM,CAAC,EACxDoL,GAAY3b,GAAM6H,GAAgB7H,EAAG,EAAE,EACvC4b,GAAQ5a,GAAMqJ,EAAIrJ,EAAG2Y,EAAU,EAC/B5E,GAAQ/T,GAAMqJ,EAAIrJ,EAAG4Y,EAAU,EAC/BnI,GAAQqJ,GAAU,gBAClBe,GAAU,CAAC/Q,EAAGrM,EAAGC,IAAM+S,GAAM,KAAK,qBAAqB3G,EAAGrM,EAAGC,CAAC,EAEpE,SAASod,GAAoBC,EAAM,CAC/B,IAAIC,EAAKlB,GAAU,MAAM,uBAAuBiB,CAAI,EAChDzb,EAAImR,GAAM,eAAeuK,CAAE,EAE/B,MAAO,CAAE,OADM1b,EAAE,SAAQ,EAAK0b,EAAKjH,GAAK,CAACiH,CAAE,EAClB,MAAON,GAAapb,CAAC,CAAG,CACrD,CAKA,SAAS2b,GAAOjb,EAAG,CACf,GAAI,CAACma,GAAGna,CAAC,EACL,MAAM,IAAI,MAAM,uBAAuB,EAC3C,MAAMkb,EAAKN,GAAK5a,EAAIA,CAAC,EACfb,EAAIyb,GAAKM,EAAKlb,EAAI,OAAO,CAAC,CAAC,EACjC,IAAIN,EAAIoZ,GAAQ3Z,CAAC,EACbO,EAAIsG,KAAQF,KACZpG,EAAIkb,GAAK,CAAClb,CAAC,GACf,MAAMJ,EAAI,IAAImR,GAAMzQ,EAAGN,EAAGqG,EAAG,EAC7B,OAAAzG,EAAE,eAAgB,EACXA,CACX,CAIA,SAAS6b,MAAaC,EAAM,CACxB,OAAOrH,GAAKpN,EAAgB0T,GAAW,oBAAqB,GAAGe,CAAI,CAAC,CAAC,CACzE,CAIA,SAASC,GAAoBtK,EAAY,CACrC,OAAO+J,GAAoB/J,CAAU,EAAE,KAC3C,CAKA,SAASuK,GAAYlD,EAASrH,EAAYwK,EAAUtY,GAAY,EAAE,EAAG,CACjE,MAAMpD,EAAImH,EAAY,UAAWoR,CAAO,EAClC,CAAE,MAAO1H,EAAI,OAAQnR,GAAMub,GAAoB/J,CAAU,EACzDtT,EAAIuJ,EAAY,UAAWuU,EAAS,EAAE,EACtC5c,EAAIgc,GAASpb,EAAIoH,EAAgB0T,GAAW,cAAe5c,CAAC,CAAC,CAAC,EAC9D+d,EAAOnB,GAAW,gBAAiB1b,EAAG+R,EAAI7Q,CAAC,EAC3C4b,EAAK1H,GAAKpN,EAAgB6U,CAAI,CAAC,EACrC,GAAIC,IAAO3V,GACP,MAAM,IAAI,MAAM,wBAAwB,EAC5C,KAAM,CAAE,MAAO4V,EAAI,OAAQ/a,GAAMma,GAAoBW,CAAE,EACjD7c,EAAIuc,GAAUO,EAAIhL,EAAI7Q,CAAC,EACvBkP,EAAM,IAAI,WAAW,EAAE,EAI7B,GAHAA,EAAI,IAAI2M,EAAI,CAAC,EACb3M,EAAI,IAAI4L,GAAS5G,GAAKpT,EAAI/B,EAAIW,CAAC,CAAC,EAAG,EAAE,EAEjC,CAACoc,GAAc5M,EAAKlP,EAAG6Q,CAAE,EACzB,MAAM,IAAI,MAAM,kCAAkC,EACtD,OAAO3B,CACX,CAKA,SAAS4M,GAActE,EAAWe,EAASd,EAAW,CAClD,MAAMvI,EAAM/H,EAAY,YAAaqQ,EAAW,EAAE,EAC5CxX,EAAImH,EAAY,UAAWoR,CAAO,EAClCwD,EAAM5U,EAAY,YAAasQ,EAAW,EAAE,EAClD,GAAI,CACA,MAAMjX,EAAI4a,GAAOtU,EAAgBiV,CAAG,CAAC,EAC/B7c,EAAI4H,EAAgBoI,EAAI,SAAS,EAAG,EAAE,CAAC,EAC7C,GAAI,CAACoL,GAAGpb,CAAC,EACL,MAAO,GACX,MAAMnC,EAAI+J,EAAgBoI,EAAI,SAAS,GAAI,EAAE,CAAC,EAC9C,GAAI,CAAC1E,GAAGzN,CAAC,EACL,MAAO,GACX,MAAMgC,EAAIuc,GAAUR,GAAS5b,CAAC,EAAG2b,GAAara,CAAC,EAAGR,CAAC,EAC7CgB,EAAIga,GAAQxa,EAAGzD,EAAGmX,GAAK,CAACnV,CAAC,CAAC,EAChC,MAAI,GAACiC,GAAK,CAACA,EAAE,SAAU,GAAIA,EAAE,WAAW,IAAM9B,EAGtD,MACkB,CACV,MAAO,EACf,CACA,CACO,MAAM8c,GAAkC,CAC3C,aAAcR,GACd,KAAMC,GACN,OAAQK,GACR,MAAO,CACH,iBAAkB7B,GAAU,MAAM,iBAClC,OAAAmB,GACA,aAAAP,GACA,gBAAA7T,GACA,gBAAAF,EACA,WAAA0T,GACA,IAAAhR,CACH,CACL,EC5MazH,GAAS,OAAO,YAAe,UAAY,WAAY,WAAa,WAAW,OAAS,OCArG,sEAQA,MAAMC,GAAOpE,GAAMA,aAAa,WAKnBqE,GAAcC,GAAQ,IAAI,SAASA,EAAI,OAAQA,EAAI,WAAYA,EAAI,UAAU,EAE7EC,GAAO,CAACC,EAAMC,IAAWD,GAAS,GAAKC,EAAWD,IAASC,EAG3DC,GAAO,IAAI,WAAW,IAAI,YAAY,CAAC,SAAU,CAAC,EAAE,MAAM,EAAE,CAAC,IAAM,GAChF,GAAI,CAACA,GACD,MAAM,IAAI,MAAM,6CAA6C,EACjE,MAAM8D,GAAQ,MAAM,KAAK,CAAE,OAAQ,GAAK,EAAE,CAACtG,EAAGV,IAAMA,EAAE,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,CAAC,EAI5E,SAASiH,EAAW/E,EAAO,CAC9B,GAAI,CAACU,GAAIV,CAAK,EACV,MAAM,IAAI,MAAM,qBAAqB,EAEzC,IAAIgF,EAAM,GACV,QAASlH,EAAI,EAAGA,EAAIkC,EAAM,OAAQlC,IAC9BkH,GAAOF,GAAM9E,EAAMlC,CAAC,CAAC,EAEzB,OAAOkH,CACX,CAIO,SAASI,GAAWJ,EAAK,CAC5B,GAAI,OAAOA,GAAQ,SACf,MAAM,IAAI,MAAM,4BAA8B,OAAOA,CAAG,EAC5D,MAAMpC,EAAMoC,EAAI,OAChB,GAAIpC,EAAM,EACN,MAAM,IAAI,MAAM,0DAA4DA,CAAG,EACnF,MAAMyC,EAAQ,IAAI,WAAWzC,EAAM,CAAC,EACpC,QAAS9E,EAAI,EAAGA,EAAIuH,EAAM,OAAQvH,IAAK,CACnC,MAAM8B,EAAI9B,EAAI,EACRwH,EAAUN,EAAI,MAAMpF,EAAGA,EAAI,CAAC,EAC5B2F,EAAO,OAAO,SAASD,EAAS,EAAE,EACxC,GAAI,OAAO,MAAMC,CAAI,GAAKA,EAAO,EAC7B,MAAM,IAAI,MAAM,uBAAuB,EAC3CF,EAAMvH,CAAC,EAAIyH,CACnB,CACI,OAAOF,CACX,CAqBO,SAASpE,GAAYC,EAAK,CAC7B,GAAI,OAAOA,GAAQ,SACf,MAAM,IAAI,MAAM,oCAAoC,OAAOA,CAAG,EAAE,EACpE,OAAO,IAAI,WAAW,IAAI,YAAa,EAAC,OAAOA,CAAG,CAAC,CACvD,CAMO,SAASC,GAAQC,EAAM,CAG1B,GAFI,OAAOA,GAAS,WAChBA,EAAOH,GAAYG,CAAI,GACvB,CAACV,GAAIU,CAAI,EACT,MAAM,IAAI,MAAM,4BAA4B,OAAOA,CAAI,EAAE,EAC7D,OAAOA,CACX,CAIO,SAASC,MAAeC,EAAQ,CACnC,MAAM1D,EAAI,IAAI,WAAW0D,EAAO,OAAO,CAACC,EAAKjF,IAAMiF,EAAMjF,EAAE,OAAQ,CAAC,CAAC,EACrE,IAAIkF,EAAM,EACV,OAAAF,EAAO,QAAShF,GAAM,CAClB,GAAI,CAACoE,GAAIpE,CAAC,EACN,MAAM,IAAI,MAAM,qBAAqB,EACzCsB,EAAE,IAAItB,EAAGkF,CAAG,EACZA,GAAOlF,EAAE,MACjB,CAAK,EACMsB,CACX,CAEO,MAAM2E,EAAK,CAEd,OAAQ,CACJ,OAAO,KAAK,WAAY,CAChC,CACA,CASO,SAASb,GAAgBC,EAAU,CACtC,MAAMC,EAAS1E,GAAQyE,EAAU,EAAC,OAAOR,GAAQjE,CAAG,CAAC,EAAE,OAAQ,EACzD2E,EAAMF,EAAU,EACtB,OAAAC,EAAM,UAAYC,EAAI,UACtBD,EAAM,SAAWC,EAAI,SACrBD,EAAM,OAAS,IAAMD,EAAU,EACxBC,CACX,CAoBO,SAASE,GAAYC,EAAc,GAAI,CAC1C,GAAItB,IAAU,OAAOA,GAAO,iBAAoB,WAC5C,OAAOA,GAAO,gBAAgB,IAAI,WAAWsB,CAAW,CAAC,EAE7D,MAAM,IAAI,MAAM,wCAAwC,CAC5D,CCzJO,SAAShC,GAAOlC,EAAG,CACtB,GAAI,CAAC,OAAO,cAAcA,CAAC,GAAKA,EAAI,EAChC,MAAM,IAAI,MAAM,2BAA2BA,CAAC,EAAE,CACtD,CACO,SAAS8c,GAAKpe,EAAG,CACpB,GAAI,OAAOA,GAAM,UACb,MAAM,IAAI,MAAM,yBAAyBA,CAAC,EAAE,CACpD,CACO,SAASyD,GAAMzD,KAAM0D,EAAS,CACjC,GAAI,EAAE1D,aAAa,YACf,MAAM,IAAI,MAAM,qBAAqB,EACzC,GAAI0D,EAAQ,OAAS,GAAK,CAACA,EAAQ,SAAS1D,EAAE,MAAM,EAChD,MAAM,IAAI,MAAM,iCAAiC0D,CAAO,mBAAmB1D,EAAE,MAAM,EAAE,CAC7F,CACO,SAAS2D,GAAKA,EAAM,CACvB,GAAI,OAAOA,GAAS,YAAc,OAAOA,EAAK,QAAW,WACrD,MAAM,IAAI,MAAM,iDAAiD,EACrEH,GAAOG,EAAK,SAAS,EACrBH,GAAOG,EAAK,QAAQ,CACxB,CACO,SAASC,GAAOC,EAAUC,EAAgB,GAAM,CACnD,GAAID,EAAS,UACT,MAAM,IAAI,MAAM,kCAAkC,EACtD,GAAIC,GAAiBD,EAAS,SAC1B,MAAM,IAAI,MAAM,uCAAuC,CAC/D,CACO,SAASE,GAAOC,EAAKH,EAAU,CAClCJ,GAAMO,CAAG,EACT,MAAMC,EAAMJ,EAAS,UACrB,GAAIG,EAAI,OAASC,EACb,MAAM,IAAI,MAAM,yDAAyDA,CAAG,EAAE,CAEtF,CACA,MAAMoa,GAAS,CACf,OAAI7a,GACJ,KAAI4a,GACJ,MAAI3a,GACA,KAAAE,GACA,OAAAC,GACA,OAAAG,EACJ,ECrCA,SAAS0B,GAAaC,EAAMC,EAAY9F,EAAO4E,EAAM,CACjD,GAAI,OAAOiB,EAAK,cAAiB,WAC7B,OAAOA,EAAK,aAAaC,EAAY9F,EAAO4E,CAAI,EACpD,MAAMmB,EAAO,OAAO,EAAE,EAChBC,EAAW,OAAO,UAAU,EAC5BC,EAAK,OAAQjG,GAAS+F,EAAQC,CAAQ,EACtCE,EAAK,OAAOlG,EAAQgG,CAAQ,EAC5BnE,EAAI+C,EAAO,EAAI,EACf9C,EAAI8C,EAAO,EAAI,EACrBiB,EAAK,UAAUC,EAAajE,EAAGoE,EAAIrB,CAAI,EACvCiB,EAAK,UAAUC,EAAahE,EAAGoE,EAAItB,CAAI,CAC3C,CAEO,MAAM6C,WAAatB,EAAK,CAC3B,YAAYC,EAAUC,EAAWC,EAAW1B,EAAM,CAC9C,MAAO,EACP,KAAK,SAAWwB,EAChB,KAAK,UAAYC,EACjB,KAAK,UAAYC,EACjB,KAAK,KAAO1B,EACZ,KAAK,SAAW,GAChB,KAAK,OAAS,EACd,KAAK,IAAM,EACX,KAAK,UAAY,GACjB,KAAK,OAAS,IAAI,WAAWwB,CAAQ,EACrC,KAAK,KAAO7B,GAAW,KAAK,MAAM,CAC1C,CACI,OAAOS,EAAM,CACTwZ,GAAO,OAAO,IAAI,EAClB,KAAM,CAAE,KAAA3Y,EAAM,OAAAU,EAAQ,SAAAH,CAAU,EAAG,KACnCpB,EAAOD,GAAQC,CAAI,EACnB,MAAMwB,EAAMxB,EAAK,OACjB,QAASyB,EAAM,EAAGA,EAAMD,GAAM,CAC1B,MAAME,EAAO,KAAK,IAAIN,EAAW,KAAK,IAAKI,EAAMC,CAAG,EAEpD,GAAIC,IAASN,EAAU,CACnB,MAAMO,EAAWpC,GAAWS,CAAI,EAChC,KAAOoB,GAAYI,EAAMC,EAAKA,GAAOL,EACjC,KAAK,QAAQO,EAAUF,CAAG,EAC9B,QAChB,CACYF,EAAO,IAAIvB,EAAK,SAASyB,EAAKA,EAAMC,CAAI,EAAG,KAAK,GAAG,EACnD,KAAK,KAAOA,EACZD,GAAOC,EACH,KAAK,MAAQN,IACb,KAAK,QAAQP,EAAM,CAAC,EACpB,KAAK,IAAM,EAE3B,CACQ,YAAK,QAAUb,EAAK,OACpB,KAAK,WAAY,EACV,IACf,CACI,WAAWb,EAAK,CACZqa,GAAO,OAAO,IAAI,EAClBA,GAAO,OAAOra,EAAK,IAAI,EACvB,KAAK,SAAW,GAIhB,KAAM,CAAE,OAAAoC,EAAQ,KAAAV,EAAM,SAAAO,EAAU,KAAAxB,CAAM,EAAG,KACzC,GAAI,CAAE,IAAA6B,CAAG,EAAK,KAEdF,EAAOE,GAAK,EAAI,IAChB,KAAK,OAAO,SAASA,CAAG,EAAE,KAAK,CAAC,EAE5B,KAAK,UAAYL,EAAWK,IAC5B,KAAK,QAAQZ,EAAM,CAAC,EACpBY,EAAM,GAGV,QAAS/E,EAAI+E,EAAK/E,EAAI0E,EAAU1E,IAC5B6E,EAAO7E,CAAC,EAAI,EAIhBkE,GAAaC,EAAMO,EAAW,EAAG,OAAO,KAAK,OAAS,CAAC,EAAGxB,CAAI,EAC9D,KAAK,QAAQiB,EAAM,CAAC,EACpB,MAAMe,EAAQrC,GAAWJ,CAAG,EACtBqC,EAAM,KAAK,UAEjB,GAAIA,EAAM,EACN,MAAM,IAAI,MAAM,6CAA6C,EACjE,MAAMK,EAASL,EAAM,EACfM,EAAQ,KAAK,IAAK,EACxB,GAAID,EAASC,EAAM,OACf,MAAM,IAAI,MAAM,oCAAoC,EACxD,QAASpF,EAAI,EAAGA,EAAImF,EAAQnF,IACxBkF,EAAM,UAAU,EAAIlF,EAAGoF,EAAMpF,CAAC,EAAGkD,CAAI,CACjD,CACI,QAAS,CACL,KAAM,CAAE,OAAA2B,EAAQ,UAAAF,CAAS,EAAK,KAC9B,KAAK,WAAWE,CAAM,EACtB,MAAMQ,EAAMR,EAAO,MAAM,EAAGF,CAAS,EACrC,YAAK,QAAS,EACPU,CACf,CACI,WAAWC,EAAI,CACXA,IAAOA,EAAK,IAAI,KAAK,aACrBA,EAAG,IAAI,GAAG,KAAK,IAAG,CAAE,EACpB,KAAM,CAAE,SAAAZ,EAAU,OAAAG,EAAQ,OAAAU,EAAQ,SAAAC,EAAU,UAAAC,EAAW,IAAAV,CAAG,EAAK,KAC/D,OAAAO,EAAG,OAASC,EACZD,EAAG,IAAMP,EACTO,EAAG,SAAWE,EACdF,EAAG,UAAYG,EACXF,EAASb,GACTY,EAAG,OAAO,IAAIT,CAAM,EACjBS,CACf,CACA,CC7GA,MAAMI,GAAM,CAAClH,EAAGC,EAAGyB,IAAO1B,EAAIC,EAAM,CAACD,EAAI0B,EAEnCyF,GAAM,CAACnH,EAAGC,EAAGyB,IAAO1B,EAAIC,EAAMD,EAAI0B,EAAMzB,EAAIyB,EAI5C0F,GAAW,IAAI,YAAY,CAC7B,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WACpF,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UACpF,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UACpF,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UACxF,CAAC,EAGKC,GAAK,IAAI,YAAY,CACvB,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UACxF,CAAC,EAGKC,GAAW,IAAI,YAAY,EAAE,EACnC,MAAMc,WAAeb,EAAK,CACtB,aAAc,CACV,MAAM,GAAI,GAAI,EAAG,EAAK,EAGtB,KAAK,EAAIF,GAAG,CAAC,EAAI,EACjB,KAAK,EAAIA,GAAG,CAAC,EAAI,EACjB,KAAK,EAAIA,GAAG,CAAC,EAAI,EACjB,KAAK,EAAIA,GAAG,CAAC,EAAI,EACjB,KAAK,EAAIA,GAAG,CAAC,EAAI,EACjB,KAAK,EAAIA,GAAG,CAAC,EAAI,EACjB,KAAK,EAAIA,GAAG,CAAC,EAAI,EACjB,KAAK,EAAIA,GAAG,CAAC,EAAI,CACzB,CACI,KAAM,CACF,KAAM,CAAE,EAAA3E,EAAG,EAAAa,EAAG,EAAAZ,EAAG,EAAA6E,EAAG,EAAA/E,EAAG,EAAAgF,EAAG,EAAAC,EAAG,EAAA3E,CAAC,EAAK,KACnC,MAAO,CAACL,EAAGa,EAAGZ,EAAG6E,EAAG/E,EAAGgF,EAAGC,EAAG3E,CAAC,CACtC,CAEI,IAAIL,EAAGa,EAAGZ,EAAG6E,EAAG/E,EAAGgF,EAAGC,EAAG3E,EAAG,CACxB,KAAK,EAAIL,EAAI,EACb,KAAK,EAAIa,EAAI,EACb,KAAK,EAAIZ,EAAI,EACb,KAAK,EAAI6E,EAAI,EACb,KAAK,EAAI/E,EAAI,EACb,KAAK,EAAIgF,EAAI,EACb,KAAK,EAAIC,EAAI,EACb,KAAK,EAAI3E,EAAI,CACrB,CACI,QAAQ4C,EAAMgC,EAAQ,CAElB,QAASnG,EAAI,EAAGA,EAAI,GAAIA,IAAKmG,GAAU,EACnCL,GAAS9F,CAAC,EAAImE,EAAK,UAAUgC,EAAQ,EAAK,EAC9C,QAASnG,EAAI,GAAIA,EAAI,GAAIA,IAAK,CAC1B,MAAMoG,EAAMN,GAAS9F,EAAI,EAAE,EACrBqG,EAAKP,GAAS9F,EAAI,CAAC,EACnBsG,EAAKvD,GAAKqD,EAAK,CAAC,EAAIrD,GAAKqD,EAAK,EAAE,EAAKA,IAAQ,EAC7CG,EAAKxD,GAAKsD,EAAI,EAAE,EAAItD,GAAKsD,EAAI,EAAE,EAAKA,IAAO,GACjDP,GAAS9F,CAAC,EAAKuG,EAAKT,GAAS9F,EAAI,CAAC,EAAIsG,EAAKR,GAAS9F,EAAI,EAAE,EAAK,CAC3E,CAEQ,GAAI,CAAE,EAAAkB,EAAG,EAAAa,EAAG,EAAAZ,EAAG,EAAA6E,EAAG,EAAA/E,EAAG,EAAAgF,EAAG,EAAAC,EAAG,EAAA3E,CAAC,EAAK,KACjC,QAASvB,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACzB,MAAMwG,EAASzD,GAAK9B,EAAG,CAAC,EAAI8B,GAAK9B,EAAG,EAAE,EAAI8B,GAAK9B,EAAG,EAAE,EAC9CwF,EAAMlF,EAAIiF,EAASd,GAAIzE,EAAGgF,EAAGC,CAAC,EAAIN,GAAS5F,CAAC,EAAI8F,GAAS9F,CAAC,EAAK,EAE/D0G,GADS3D,GAAK7B,EAAG,CAAC,EAAI6B,GAAK7B,EAAG,EAAE,EAAI6B,GAAK7B,EAAG,EAAE,GAC/ByE,GAAIzE,EAAGa,EAAGZ,CAAC,EAAK,EACrCI,EAAI2E,EACJA,EAAID,EACJA,EAAIhF,EACJA,EAAK+E,EAAIS,EAAM,EACfT,EAAI7E,EACJA,EAAIY,EACJA,EAAIb,EACJA,EAAKuF,EAAKC,EAAM,CAC5B,CAEQxF,EAAKA,EAAI,KAAK,EAAK,EACnBa,EAAKA,EAAI,KAAK,EAAK,EACnBZ,EAAKA,EAAI,KAAK,EAAK,EACnB6E,EAAKA,EAAI,KAAK,EAAK,EACnB/E,EAAKA,EAAI,KAAK,EAAK,EACnBgF,EAAKA,EAAI,KAAK,EAAK,EACnBC,EAAKA,EAAI,KAAK,EAAK,EACnB3E,EAAKA,EAAI,KAAK,EAAK,EACnB,KAAK,IAAIL,EAAGa,EAAGZ,EAAG6E,EAAG/E,EAAGgF,EAAGC,EAAG3E,CAAC,CACvC,CACI,YAAa,CACTuE,GAAS,KAAK,CAAC,CACvB,CACI,SAAU,CACN,KAAK,IAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAC/B,KAAK,OAAO,KAAK,CAAC,CAC1B,CACA,CAEA,MAAMiX,WAAenW,EAAO,CACxB,aAAc,CACV,MAAO,EACP,KAAK,EAAI,YACT,KAAK,EAAI,UACT,KAAK,EAAI,UACT,KAAK,EAAI,WACT,KAAK,EAAI,SACT,KAAK,EAAI,WACT,KAAK,EAAI,WACT,KAAK,EAAI,YACT,KAAK,UAAY,EACzB,CACA,CAKO,MAAMD,GAAS/C,GAAgB,IAAM,IAAIgD,EAAQ,EAClChD,GAAgB,IAAM,IAAImZ,EAAQ,EC1HxD,oEACO,SAASC,GAAajd,EAAG,CAC5B,GAAI,CAAC,OAAO,cAAcA,CAAC,EACvB,MAAM,IAAI,MAAM,kBAAkBA,CAAC,EAAE,CAC7C,CACA,SAASkd,MAASd,EAAM,CACpB,MAAMe,EAAO,CAAC1e,EAAGC,IAAOyB,GAAM1B,EAAEC,EAAEyB,CAAC,CAAC,EAC9Bid,EAAS,MAAM,KAAKhB,CAAI,EACzB,QAAO,EACP,OAAO,CAAChQ,EAAK,IAAOA,EAAM+Q,EAAK/Q,EAAK,EAAE,MAAM,EAAI,EAAE,OAAS,MAAS,EACnEiR,EAASjB,EAAK,OAAO,CAAChQ,EAAK,IAAOA,EAAM+Q,EAAK/Q,EAAK,EAAE,MAAM,EAAI,EAAE,OAAS,MAAS,EACxF,MAAO,CAAE,OAAAgR,EAAQ,OAAAC,CAAQ,CAC7B,CACA,SAASC,GAASA,EAAU,CACxB,MAAO,CACH,OAASC,GAAW,CAChB,GAAI,CAAC,MAAM,QAAQA,CAAM,GAAMA,EAAO,QAAU,OAAOA,EAAO,CAAC,GAAM,SACjE,MAAM,IAAI,MAAM,qDAAqD,EACzE,OAAOA,EAAO,IAAKtd,GAAM,CAErB,GADAgd,GAAahd,CAAC,EACVA,EAAI,GAAKA,GAAKqd,EAAS,OACvB,MAAM,IAAI,MAAM,iCAAiCrd,CAAC,eAAeqd,EAAS,MAAM,GAAG,EACvF,OAAOA,EAASrd,CAAC,CACjC,CAAa,CACJ,EACD,OAASud,GAAU,CACf,GAAI,CAAC,MAAM,QAAQA,CAAK,GAAMA,EAAM,QAAU,OAAOA,EAAM,CAAC,GAAM,SAC9D,MAAM,IAAI,MAAM,kDAAkD,EACtE,OAAOA,EAAM,IAAKC,GAAW,CACzB,GAAI,OAAOA,GAAW,SAClB,MAAM,IAAI,MAAM,uCAAuCA,CAAM,EAAE,EACnE,MAAMC,EAAQJ,EAAS,QAAQG,CAAM,EACrC,GAAIC,IAAU,GACV,MAAM,IAAI,MAAM,oBAAoBD,CAAM,eAAeH,CAAQ,EAAE,EACvE,OAAOI,CACvB,CAAa,CACJ,CACJ,CACL,CACA,SAASC,GAAKC,EAAY,GAAI,CAC1B,GAAI,OAAOA,GAAc,SACrB,MAAM,IAAI,MAAM,iCAAiC,EACrD,MAAO,CACH,OAAShI,GAAS,CACd,GAAI,CAAC,MAAM,QAAQA,CAAI,GAAMA,EAAK,QAAU,OAAOA,EAAK,CAAC,GAAM,SAC3D,MAAM,IAAI,MAAM,8CAA8C,EAClE,QAAS3V,KAAK2V,EACV,GAAI,OAAO3V,GAAM,SACb,MAAM,IAAI,MAAM,iCAAiCA,CAAC,EAAE,EAC5D,OAAO2V,EAAK,KAAKgI,CAAS,CAC7B,EACD,OAASrY,GAAO,CACZ,GAAI,OAAOA,GAAO,SACd,MAAM,IAAI,MAAM,oCAAoC,EACxD,OAAOA,EAAG,MAAMqY,CAAS,CAC5B,CACJ,CACL,CACA,SAASC,GAAQjQ,EAAMkQ,EAAM,IAAK,CAE9B,GADAb,GAAarP,CAAI,EACb,OAAOkQ,GAAQ,SACf,MAAM,IAAI,MAAM,8BAA8B,EAClD,MAAO,CACH,OAAOva,EAAM,CACT,GAAI,CAAC,MAAM,QAAQA,CAAI,GAAMA,EAAK,QAAU,OAAOA,EAAK,CAAC,GAAM,SAC3D,MAAM,IAAI,MAAM,iDAAiD,EACrE,QAAStD,KAAKsD,EACV,GAAI,OAAOtD,GAAM,SACb,MAAM,IAAI,MAAM,oCAAoCA,CAAC,EAAE,EAC/D,KAAQsD,EAAK,OAASqK,EAAQ,GAC1BrK,EAAK,KAAKua,CAAG,EACjB,OAAOva,CACV,EACD,OAAOia,EAAO,CACV,GAAI,CAAC,MAAM,QAAQA,CAAK,GAAMA,EAAM,QAAU,OAAOA,EAAM,CAAC,GAAM,SAC9D,MAAM,IAAI,MAAM,iDAAiD,EACrE,QAASvd,KAAKud,EACV,GAAI,OAAOvd,GAAM,SACb,MAAM,IAAI,MAAM,oCAAoCA,CAAC,EAAE,EAC/D,IAAI8d,EAAMP,EAAM,OAChB,GAAKO,EAAMnQ,EAAQ,EACf,MAAM,IAAI,MAAM,2DAA2D,EAC/E,KAAOmQ,EAAM,GAAKP,EAAMO,EAAM,CAAC,IAAMD,EAAKC,IACtC,GAAI,GAAIA,EAAM,GAAKnQ,EAAQ,GACvB,MAAM,IAAI,MAAM,8CAA8C,EAEtE,OAAO4P,EAAM,MAAM,EAAGO,CAAG,CAC5B,CACJ,CACL,CACA,SAASC,GAAUC,EAAI,CACnB,GAAI,OAAOA,GAAO,WACd,MAAM,IAAI,MAAM,iCAAiC,EACrD,MAAO,CAAE,OAASrI,GAASA,EAAM,OAASrQ,GAAO0Y,EAAG1Y,CAAE,CAAG,CAC7D,CACA,SAAS2Y,GAAa3a,EAAMqS,EAAMrQ,EAAI,CAClC,GAAIqQ,EAAO,EACP,MAAM,IAAI,MAAM,4BAA4BA,CAAI,8BAA8B,EAClF,GAAIrQ,EAAK,EACL,MAAM,IAAI,MAAM,0BAA0BA,CAAE,8BAA8B,EAC9E,GAAI,CAAC,MAAM,QAAQhC,CAAI,EACnB,MAAM,IAAI,MAAM,oCAAoC,EACxD,GAAI,CAACA,EAAK,OACN,MAAO,CAAE,EACb,IAAIyB,EAAM,EACV,MAAMM,EAAM,CAAE,EACRiY,EAAS,MAAM,KAAKha,CAAI,EAM9B,IALAga,EAAO,QAAShd,GAAM,CAElB,GADA0c,GAAa1c,CAAC,EACVA,EAAI,GAAKA,GAAKqV,EACd,MAAM,IAAI,MAAM,kBAAkBrV,CAAC,EAAE,CACjD,CAAK,IACY,CACT,IAAI4d,EAAQ,EACRC,EAAO,GACX,QAASne,EAAI+E,EAAK/E,EAAIsd,EAAO,OAAQtd,IAAK,CACtC,MAAMoe,EAAQd,EAAOtd,CAAC,EAChBqe,EAAY1I,EAAOuI,EAAQE,EACjC,GAAI,CAAC,OAAO,cAAcC,CAAS,GAC9B1I,EAAOuI,EAASvI,IAASuI,GAC1BG,EAAYD,IAAUzI,EAAOuI,EAC7B,MAAM,IAAI,MAAM,8BAA8B,EAIlD,GAFAA,EAAQG,EAAY/Y,EACpBgY,EAAOtd,CAAC,EAAI,KAAK,MAAMqe,EAAY/Y,CAAE,EACjC,CAAC,OAAO,cAAcgY,EAAOtd,CAAC,CAAC,GAAKsd,EAAOtd,CAAC,EAAIsF,EAAK4Y,IAAUG,EAC/D,MAAM,IAAI,MAAM,8BAA8B,EAClD,GAAKF,EAEKb,EAAOtd,CAAC,EAGdme,EAAO,GAFPpZ,EAAM/E,MAFN,SAKhB,CAEQ,GADAqF,EAAI,KAAK6Y,CAAK,EACVC,EACA,KACZ,CACI,QAASne,EAAI,EAAGA,EAAIsD,EAAK,OAAS,GAAKA,EAAKtD,CAAC,IAAM,EAAGA,IAClDqF,EAAI,KAAK,CAAC,EACd,OAAOA,EAAI,QAAS,CACxB,CACA,MAAMiZ,GAAM,CAAC9f,EAAGC,IAAQA,EAAQ6f,GAAI7f,EAAGD,EAAIC,CAAC,EAAhBD,EACtB+f,GAAc,CAAC5I,EAAMrQ,IAAOqQ,GAAQrQ,EAAKgZ,GAAI3I,EAAMrQ,CAAE,GAC3D,SAASkZ,GAAclb,EAAMqS,EAAMrQ,EAAIsY,EAAS,CAC5C,GAAI,CAAC,MAAM,QAAQta,CAAI,EACnB,MAAM,IAAI,MAAM,qCAAqC,EACzD,GAAIqS,GAAQ,GAAKA,EAAO,GACpB,MAAM,IAAI,MAAM,6BAA6BA,CAAI,EAAE,EACvD,GAAIrQ,GAAM,GAAKA,EAAK,GAChB,MAAM,IAAI,MAAM,2BAA2BA,CAAE,EAAE,EACnD,GAAIiZ,GAAY5I,EAAMrQ,CAAE,EAAI,GACxB,MAAM,IAAI,MAAM,sCAAsCqQ,CAAI,OAAOrQ,CAAE,cAAciZ,GAAY5I,EAAMrQ,CAAE,CAAC,EAAE,EAE5G,IAAI4Y,EAAQ,EACRnZ,EAAM,EACV,MAAMyJ,EAAO,GAAKlJ,EAAK,EACjBD,EAAM,CAAE,EACd,UAAWtF,KAAKuD,EAAM,CAElB,GADA0Z,GAAajd,CAAC,EACVA,GAAK,GAAK4V,EACV,MAAM,IAAI,MAAM,oCAAoC5V,CAAC,SAAS4V,CAAI,EAAE,EAExE,GADAuI,EAASA,GAASvI,EAAQ5V,EACtBgF,EAAM4Q,EAAO,GACb,MAAM,IAAI,MAAM,qCAAqC5Q,CAAG,SAAS4Q,CAAI,EAAE,EAE3E,IADA5Q,GAAO4Q,EACA5Q,GAAOO,EAAIP,GAAOO,EACrBD,EAAI,MAAO6Y,GAAUnZ,EAAMO,EAAOkJ,KAAU,CAAC,EACjD0P,GAAS,GAAKnZ,EAAM,CAC5B,CAEI,GADAmZ,EAASA,GAAU5Y,EAAKP,EAAQyJ,EAC5B,CAACoP,GAAW7Y,GAAO4Q,EACnB,MAAM,IAAI,MAAM,gBAAgB,EACpC,GAAI,CAACiI,GAAWM,EACZ,MAAM,IAAI,MAAM,qBAAqBA,CAAK,EAAE,EAChD,OAAIN,GAAW7Y,EAAM,GACjBM,EAAI,KAAK6Y,IAAU,CAAC,EACjB7Y,CACX,CACA,SAASoZ,GAAMrX,EAAK,CAChB,OAAA4V,GAAa5V,CAAG,EACT,CACH,OAASlF,GAAU,CACf,GAAI,EAAEA,aAAiB,YACnB,MAAM,IAAI,MAAM,yCAAyC,EAC7D,OAAO+b,GAAa,MAAM,KAAK/b,CAAK,EAAG,GAAK,EAAGkF,CAAG,CACrD,EACD,OAASkW,GAAW,CAChB,GAAI,CAAC,MAAM,QAAQA,CAAM,GAAMA,EAAO,QAAU,OAAOA,EAAO,CAAC,GAAM,SACjE,MAAM,IAAI,MAAM,+CAA+C,EACnE,OAAO,WAAW,KAAKW,GAAaX,EAAQlW,EAAK,GAAK,CAAC,CAAC,CAC3D,CACJ,CACL,CACA,SAASsX,GAAO/Q,EAAMgR,EAAa,GAAO,CAEtC,GADA3B,GAAarP,CAAI,EACbA,GAAQ,GAAKA,EAAO,GACpB,MAAM,IAAI,MAAM,mCAAmC,EACvD,GAAI4Q,GAAY,EAAG5Q,CAAI,EAAI,IAAM4Q,GAAY5Q,EAAM,CAAC,EAAI,GACpD,MAAM,IAAI,MAAM,wBAAwB,EAC5C,MAAO,CACH,OAASzL,GAAU,CACf,GAAI,EAAEA,aAAiB,YACnB,MAAM,IAAI,MAAM,0CAA0C,EAC9D,OAAOsc,GAAc,MAAM,KAAKtc,CAAK,EAAG,EAAGyL,EAAM,CAACgR,CAAU,CAC/D,EACD,OAASrB,GAAW,CAChB,GAAI,CAAC,MAAM,QAAQA,CAAM,GAAMA,EAAO,QAAU,OAAOA,EAAO,CAAC,GAAM,SACjE,MAAM,IAAI,MAAM,gDAAgD,EACpE,OAAO,WAAW,KAAKkB,GAAclB,EAAQ3P,EAAM,EAAGgR,CAAU,CAAC,CACpE,CACJ,CACL,CACA,SAASC,GAAcZ,EAAI,CACvB,GAAI,OAAOA,GAAO,WACd,MAAM,IAAI,MAAM,qCAAqC,EACzD,OAAO,YAAa7B,EAAM,CACtB,GAAI,CACA,OAAO6B,EAAG,MAAM,KAAM7B,CAAI,CACtC,MACkB,EACb,CACL,CA6BO,MAAM0C,GAAS5B,GAAMyB,GAAO,CAAC,EAAGrB,GAAS,kBAAkB,EAAGK,GAAK,EAAE,CAAC,EAChEoB,GAAS7B,GAAMyB,GAAO,CAAC,EAAGrB,GAAS,kCAAkC,EAAGO,GAAQ,CAAC,EAAGF,GAAK,EAAE,CAAC,EAChFT,GAAMyB,GAAO,CAAC,EAAGrB,GAAS,kCAAkC,EAAGO,GAAQ,CAAC,EAAGF,GAAK,EAAE,CAAC,EAC7ET,GAAMyB,GAAO,CAAC,EAAGrB,GAAS,kCAAkC,EAAGK,GAAK,EAAE,EAAGK,GAAWpgB,GAAMA,EAAE,cAAc,QAAQ,KAAM,GAAG,EAAE,QAAQ,QAAS,GAAG,CAAC,CAAC,EAC3K,MAAMohB,GAAS9B,GAAMyB,GAAO,CAAC,EAAGrB,GAAS,kEAAkE,EAAGO,GAAQ,CAAC,EAAGF,GAAK,EAAE,CAAC,EAC5HsB,GAAY/B,GAAMyB,GAAO,CAAC,EAAGrB,GAAS,kEAAkE,EAAGO,GAAQ,CAAC,EAAGF,GAAK,EAAE,CAAC,EACtIuB,GAAaC,GAAQjC,GAAMwB,GAAM,EAAE,EAAGpB,GAAS6B,CAAG,EAAGxB,GAAK,EAAE,CAAC,EACtDyB,GAASF,GAAU,4DAA4D,EAChEA,GAAU,4DAA4D,EACzEA,GAAU,4DAA4D,EAC/F,MAAMG,GAAgB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAE,EACrCC,GAAY,CACrB,OAAO/b,EAAM,CACT,IAAI+B,EAAM,GACV,QAASrF,EAAI,EAAGA,EAAIsD,EAAK,OAAQtD,GAAK,EAAG,CACrC,MAAMsf,EAAQhc,EAAK,SAAStD,EAAGA,EAAI,CAAC,EACpCqF,GAAO8Z,GAAO,OAAOG,CAAK,EAAE,SAASF,GAAcE,EAAM,MAAM,EAAG,GAAG,CACjF,CACQ,OAAOja,CACV,EACD,OAAOjC,EAAK,CACR,IAAIiC,EAAM,CAAE,EACZ,QAASrF,EAAI,EAAGA,EAAIoD,EAAI,OAAQpD,GAAK,GAAI,CACrC,MAAM+P,EAAQ3M,EAAI,MAAMpD,EAAGA,EAAI,EAAE,EAC3B0E,EAAW0a,GAAc,QAAQrP,EAAM,MAAM,EAC7CuP,EAAQH,GAAO,OAAOpP,CAAK,EACjC,QAASjO,EAAI,EAAGA,EAAIwd,EAAM,OAAS5a,EAAU5C,IACzC,GAAIwd,EAAMxd,CAAC,IAAM,EACb,MAAM,IAAI,MAAM,0BAA0B,EAElDuD,EAAMA,EAAI,OAAO,MAAM,KAAKia,EAAM,MAAMA,EAAM,OAAS5a,CAAQ,CAAC,CAAC,CAC7E,CACQ,OAAO,WAAW,KAAKW,CAAG,CAC7B,CACL,EAEMka,GAAgBtC,GAAMI,GAAS,kCAAkC,EAAGK,GAAK,EAAE,CAAC,EAC5E8B,GAAqB,CAAC,UAAY,UAAY,UAAY,WAAY,SAAU,EACtF,SAASC,GAAcC,EAAK,CACxB,MAAMjhB,EAAIihB,GAAO,GACjB,IAAIC,GAAOD,EAAM,WAAc,EAC/B,QAAS1f,EAAI,EAAGA,EAAIwf,GAAmB,OAAQxf,KACrCvB,GAAKuB,EAAK,KAAO,IACnB2f,GAAOH,GAAmBxf,CAAC,GAEnC,OAAO2f,CACX,CACA,SAASC,GAAa1J,EAAQ2J,EAAOC,EAAgB,EAAG,CACpD,MAAMhb,EAAMoR,EAAO,OACnB,IAAIyJ,EAAM,EACV,QAAS,EAAI,EAAG,EAAI7a,EAAK,IAAK,CAC1B,MAAM5E,EAAIgW,EAAO,WAAW,CAAC,EAC7B,GAAIhW,EAAI,IAAMA,EAAI,IACd,MAAM,IAAI,MAAM,mBAAmBgW,CAAM,GAAG,EAChDyJ,EAAMF,GAAcE,CAAG,EAAKzf,GAAK,CACzC,CACIyf,EAAMF,GAAcE,CAAG,EACvB,QAAS,EAAI,EAAG,EAAI7a,EAAK,IACrB6a,EAAMF,GAAcE,CAAG,EAAKzJ,EAAO,WAAW,CAAC,EAAI,GACvD,QAASxV,KAAKmf,EACVF,EAAMF,GAAcE,CAAG,EAAIjf,EAC/B,QAAS,EAAI,EAAG,EAAI,EAAG,IACnBif,EAAMF,GAAcE,CAAG,EAC3B,OAAAA,GAAOG,EACAP,GAAc,OAAOf,GAAc,CAACmB,EAAM,GAAK,EAAE,EAAG,GAAI,EAAG,EAAK,CAAC,CAC5E,CACA,SAASI,GAAUC,EAAU,CACzB,MAAMC,EAAiBD,IAAa,SAAW,EAAI,UAC7CE,EAASxB,GAAO,CAAC,EACjByB,EAAYD,EAAO,OACnBE,EAAUF,EAAO,OACjBG,EAAkBzB,GAAcuB,CAAS,EAC/C,SAAShD,EAAOjH,EAAQ2J,EAAOS,EAAQ,GAAI,CACvC,GAAI,OAAOpK,GAAW,SAClB,MAAM,IAAI,MAAM,8CAA8C,OAAOA,CAAM,EAAE,EACjF,GAAI,CAAC,MAAM,QAAQ2J,CAAK,GAAMA,EAAM,QAAU,OAAOA,EAAM,CAAC,GAAM,SAC9D,MAAM,IAAI,MAAM,uDAAuD,OAAOA,CAAK,EAAE,EACzF,MAAMU,EAAerK,EAAO,OAAS,EAAI2J,EAAM,OAC/C,GAAIS,IAAU,IAASC,EAAeD,EAClC,MAAM,IAAI,UAAU,UAAUC,CAAY,kBAAkBD,CAAK,EAAE,EACvE,OAAApK,EAASA,EAAO,YAAa,EACtB,GAAGA,CAAM,IAAIqJ,GAAc,OAAOM,CAAK,CAAC,GAAGD,GAAa1J,EAAQ2J,EAAOI,CAAc,CAAC,EACrG,CACI,SAAS7C,EAAOha,EAAKkd,EAAQ,GAAI,CAC7B,GAAI,OAAOld,GAAQ,SACf,MAAM,IAAI,MAAM,6CAA6C,OAAOA,CAAG,EAAE,EAC7E,GAAIA,EAAI,OAAS,GAAMkd,IAAU,IAASld,EAAI,OAASkd,EACnD,MAAM,IAAI,UAAU,wBAAwBld,EAAI,MAAM,KAAKA,CAAG,mBAAmBkd,CAAK,GAAG,EAC7F,MAAME,EAAUpd,EAAI,YAAa,EACjC,GAAIA,IAAQod,GAAWpd,IAAQA,EAAI,YAAa,EAC5C,MAAM,IAAI,MAAM,uCAAuC,EAC3DA,EAAMod,EACN,MAAMC,EAAWrd,EAAI,YAAY,GAAG,EACpC,GAAIqd,IAAa,GAAKA,IAAa,GAC/B,MAAM,IAAI,MAAM,yDAAyD,EAC7E,MAAMvK,EAAS9S,EAAI,MAAM,EAAGqd,CAAQ,EAC9BP,EAAS9c,EAAI,MAAMqd,EAAW,CAAC,EACrC,GAAIP,EAAO,OAAS,EAChB,MAAM,IAAI,MAAM,yCAAyC,EAC7D,MAAML,EAAQN,GAAc,OAAOW,CAAM,EAAE,MAAM,EAAG,EAAE,EAChDzc,EAAMmc,GAAa1J,EAAQ2J,EAAOI,CAAc,EACtD,GAAI,CAACC,EAAO,SAASzc,CAAG,EACpB,MAAM,IAAI,MAAM,uBAAuBL,CAAG,eAAeK,CAAG,GAAG,EACnE,MAAO,CAAE,OAAAyS,EAAQ,MAAA2J,CAAO,CAChC,CACI,MAAMa,EAAe9B,GAAcxB,CAAM,EACzC,SAASuD,EAAcvd,EAAK,CACxB,KAAM,CAAE,OAAA8S,EAAQ,MAAA2J,CAAK,EAAKzC,EAAOha,EAAK,EAAK,EAC3C,MAAO,CAAE,OAAA8S,EAAQ,MAAA2J,EAAO,MAAOM,EAAUN,CAAK,CAAG,CACzD,CACI,MAAO,CAAE,OAAA1C,EAAQ,OAAAC,EAAQ,cAAAuD,EAAe,aAAAD,EAAc,UAAAP,EAAW,gBAAAE,EAAiB,QAAAD,CAAS,CAC/F,CACO,MAAMQ,GAASb,GAAU,QAAQ,EACjBA,GAAU,SAAS,EACnC,MAAMc,GAAO,CAChB,OAASvd,GAAS,IAAI,YAAW,EAAG,OAAOA,CAAI,EAC/C,OAASF,GAAQ,IAAI,YAAW,EAAG,OAAOA,CAAG,CACjD,EACa8D,GAAM+V,GAAMyB,GAAO,CAAC,EAAGrB,GAAS,kBAAkB,EAAGK,GAAK,EAAE,EAAGK,GAAWpgB,GAAM,CACzF,GAAI,OAAOA,GAAM,UAAYA,EAAE,OAAS,EACpC,MAAM,IAAI,UAAU,oCAAoC,OAAOA,CAAC,gBAAgBA,EAAE,MAAM,EAAE,EAC9F,OAAOA,EAAE,YAAa,CAC1B,CAAC,CAAC,EACImjB,GAAS,CACX,KAAAD,GAAM,IAAA3Z,GAAK,OAAA2X,GAAQ,OAAAC,GAAQ,OAAAC,GAAQ,UAAAC,GAAW,OAAAG,GAAQ,UAAAE,EAC1D,EACkE,UAAO,KAAKyB,EAAM,EAAE,KAAK,IAAI,ICzX/F,SAAS7e,GAAOlC,EAAG,CACf,GAAI,CAAC,OAAO,cAAcA,CAAC,GAAKA,EAAI,EAChC,MAAM,IAAI,MAAM,kCAAkCA,CAAC,EAAE,CAC7D,CACA,SAAS8c,GAAKpe,EAAG,CACb,GAAI,OAAOA,GAAM,UACb,MAAM,IAAI,MAAM,yBAAyBA,CAAC,EAAE,CACpD,CACO,SAASsiB,GAAQviB,EAAG,CACvB,OAAQA,aAAa,YAChBA,GAAK,MAAQ,OAAOA,GAAM,UAAYA,EAAE,YAAY,OAAS,YACtE,CACA,SAAS0D,GAAMzD,KAAM0D,EAAS,CAC1B,GAAI,CAAC4e,GAAQtiB,CAAC,EACV,MAAM,IAAI,MAAM,qBAAqB,EACzC,GAAI0D,EAAQ,OAAS,GAAK,CAACA,EAAQ,SAAS1D,EAAE,MAAM,EAChD,MAAM,IAAI,MAAM,iCAAiC0D,CAAO,mBAAmB1D,EAAE,MAAM,EAAE,CAC7F,CCjBA,uEAKO,MAAMuiB,EAAOle,GAAQ,IAAI,YAAYA,EAAI,OAAQA,EAAI,WAAY,KAAK,MAAMA,EAAI,WAAa,CAAC,CAAC,EAKzFI,GAAO,IAAI,WAAW,IAAI,YAAY,CAAC,SAAU,CAAC,EAAE,MAAM,EAAE,CAAC,IAAM,GAChF,GAAI,CAACA,GACD,MAAM,IAAI,MAAM,6CAA6C,EA4H1D,SAAS+d,GAAUC,EAAUrV,EAAM,CACtC,GAAIA,GAAQ,MAAQ,OAAOA,GAAS,SAChC,MAAM,IAAI,MAAM,yBAAyB,EAE7C,OADe,OAAO,OAAOqV,EAAUrV,CAAI,CAE/C,CAEO,SAAS3D,GAAW1J,EAAGC,EAAG,CAC7B,GAAID,EAAE,SAAWC,EAAE,OACf,MAAO,GACX,IAAI0iB,EAAO,EACX,QAASnhB,EAAI,EAAGA,EAAIxB,EAAE,OAAQwB,IAC1BmhB,GAAQ3iB,EAAEwB,CAAC,EAAIvB,EAAEuB,CAAC,EACtB,OAAOmhB,IAAS,CACpB,CAOO,MAAMC,GAAa,CAACC,EAAQnhB,KAC/B,OAAO,OAAOA,EAAGmhB,CAAM,EAChBnhB,GC9ILohB,GAAa,GAGbC,GAAO,IAEb,SAASC,GAAKzhB,EAAG,CACb,OAAQA,GAAK,EAAMwhB,GAAO,EAAExhB,GAAK,EACrC,CACA,SAAS8T,GAAIrV,EAAGC,EAAG,CACf,IAAI4G,EAAM,EACV,KAAO5G,EAAI,EAAGA,IAAM,EAEhB4G,GAAO7G,EAAI,EAAEC,EAAI,GACjBD,EAAIgjB,GAAKhjB,CAAC,EAEd,OAAO6G,CACX,CAGA,MAAMoc,IAAwB,IAAM,CAChC,IAAI/hB,EAAI,IAAI,WAAW,GAAG,EAC1B,QAASM,EAAI,EAAGe,EAAI,EAAGf,EAAI,IAAKA,IAAKe,GAAKygB,GAAKzgB,CAAC,EAC5CrB,EAAEM,CAAC,EAAIe,EACX,MAAM2gB,EAAM,IAAI,WAAW,GAAG,EAC9BA,EAAI,CAAC,EAAI,GACT,QAAS1hB,EAAI,EAAGA,EAAI,IAAKA,IAAK,CAC1B,IAAIe,EAAIrB,EAAE,IAAMM,CAAC,EACjBe,GAAKA,GAAK,EACV2gB,EAAIhiB,EAAEM,CAAC,CAAC,GAAKe,EAAKA,GAAK,EAAMA,GAAK,EAAMA,GAAK,EAAMA,GAAK,EAAK,IAAQ,GAC7E,CACI,OAAO2gB,CACX,GAAI,EAEEC,GAA0BF,GAAK,IAAI,CAAC9gB,EAAGmB,IAAM2f,GAAK,QAAQ3f,CAAC,CAAC,EAE5D8f,GAAY7hB,GAAOA,GAAK,GAAOA,IAAM,EACrC8hB,GAAY9hB,GAAOA,GAAK,EAAMA,IAAM,GAK1C,SAAS+hB,GAAUL,EAAMzD,EAAI,CACzB,GAAIyD,EAAK,SAAW,IAChB,MAAM,IAAI,MAAM,mBAAmB,EACvC,MAAMM,EAAK,IAAI,YAAY,GAAG,EAAE,IAAI,CAACphB,EAAGmB,IAAMkc,EAAGyD,EAAK3f,CAAC,CAAC,CAAC,EACnD2E,EAAKsb,EAAG,IAAIF,EAAQ,EACpBnb,EAAKD,EAAG,IAAIob,EAAQ,EACpBG,EAAKtb,EAAG,IAAImb,EAAQ,EACpBI,EAAM,IAAI,YAAY,IAAM,GAAG,EAC/BC,EAAM,IAAI,YAAY,IAAM,GAAG,EAC/BC,EAAQ,IAAI,YAAY,IAAM,GAAG,EACvC,QAASniB,EAAI,EAAGA,EAAI,IAAKA,IACrB,QAAS8B,EAAI,EAAGA,EAAI,IAAKA,IAAK,CAC1B,MAAMsgB,EAAMpiB,EAAI,IAAM8B,EACtBmgB,EAAIG,CAAG,EAAIL,EAAG/hB,CAAC,EAAIyG,EAAG3E,CAAC,EACvBogB,EAAIE,CAAG,EAAI1b,EAAG1G,CAAC,EAAIgiB,EAAGlgB,CAAC,EACvBqgB,EAAMC,CAAG,EAAKX,EAAKzhB,CAAC,GAAK,EAAKyhB,EAAK3f,CAAC,CAChD,CAEI,MAAO,CAAE,KAAA2f,EAAM,MAAAU,EAAO,GAAAJ,EAAI,GAAAtb,EAAI,GAAAC,EAAI,GAAAsb,EAAI,IAAAC,EAAK,IAAAC,CAAK,CACpD,CACA,MAAMG,GAAgCP,GAAUL,GAAO9jB,GAAOkW,GAAIlW,EAAG,CAAC,GAAK,GAAOA,GAAK,GAAOA,GAAK,EAAKkW,GAAIlW,EAAG,CAAC,CAAC,EAC3G2kB,GAAgCR,GAAUH,GAAUhkB,GAAOkW,GAAIlW,EAAG,EAAE,GAAK,GAAOkW,GAAIlW,EAAG,EAAE,GAAK,GAAOkW,GAAIlW,EAAG,CAAC,GAAK,EAAKkW,GAAIlW,EAAG,EAAE,CAAC,EACjI4kB,IAA2B,IAAM,CACnC,MAAMliB,EAAI,IAAI,WAAW,EAAE,EAC3B,QAASL,EAAI,EAAGe,EAAI,EAAGf,EAAI,GAAIA,IAAKe,EAAIygB,GAAKzgB,CAAC,EAC1CV,EAAEL,CAAC,EAAIe,EACX,OAAOV,CACX,GAAI,EACG,SAASmiB,GAAYnkB,EAAK,CAC7BokB,GAAOpkB,CAAG,EACV,MAAMyG,EAAMzG,EAAI,OAChB,GAAI,CAAC,CAAC,GAAI,GAAI,EAAE,EAAE,SAASyG,CAAG,EAC1B,MAAM,IAAI,MAAM,qDAAqDA,CAAG,EAAE,EAC9E,KAAM,CAAE,MAAAqd,CAAK,EAAKE,GACZK,EAAM1B,EAAI3iB,CAAG,EACbskB,EAAKD,EAAI,OACTE,EAAW7iB,GAAM8iB,GAAUV,EAAOpiB,EAAGA,EAAGA,EAAGA,CAAC,EAC5C+iB,EAAK,IAAI,YAAYhe,EAAM,EAAE,EACnCge,EAAG,IAAIJ,CAAG,EAEV,QAAS1iB,EAAI2iB,EAAI3iB,EAAI8iB,EAAG,OAAQ9iB,IAAK,CACjC,IAAIN,EAAIojB,EAAG9iB,EAAI,CAAC,EACZA,EAAI2iB,IAAO,EACXjjB,EAAIkjB,EAAQhB,GAASliB,CAAC,CAAC,EAAI6iB,GAAQviB,EAAI2iB,EAAK,CAAC,EACxCA,EAAK,GAAK3iB,EAAI2iB,IAAO,IAC1BjjB,EAAIkjB,EAAQljB,CAAC,GACjBojB,EAAG9iB,CAAC,EAAI8iB,EAAG9iB,EAAI2iB,CAAE,EAAIjjB,CAC7B,CACI,OAAOojB,CACX,CACO,SAASC,GAAe1kB,EAAK,CAChC,MAAM2kB,EAASR,GAAYnkB,CAAG,EACxBykB,EAAKE,EAAO,MAAO,EACnBL,EAAKK,EAAO,OACZ,CAAE,MAAAb,CAAK,EAAKE,GACZ,CAAE,GAAAN,EAAI,GAAAtb,EAAI,GAAAC,EAAI,GAAAsb,CAAI,EAAGM,GAE3B,QAAStiB,EAAI,EAAGA,EAAI2iB,EAAI3iB,GAAK,EACzB,QAAS8B,EAAI,EAAGA,EAAI,EAAGA,IACnBghB,EAAG9iB,EAAI8B,CAAC,EAAIkhB,EAAOL,EAAK3iB,EAAI,EAAI8B,CAAC,EAEzCkhB,EAAO,KAAK,CAAC,EAEb,QAAShjB,EAAI,EAAGA,EAAI2iB,EAAK,EAAG3iB,IAAK,CAC7B,MAAMe,EAAI+hB,EAAG9iB,CAAC,EACRijB,EAAIJ,GAAUV,EAAOphB,EAAGA,EAAGA,EAAGA,CAAC,EACrC+hB,EAAG9iB,CAAC,EAAI+hB,EAAGkB,EAAI,GAAI,EAAIxc,EAAIwc,IAAM,EAAK,GAAI,EAAIvc,EAAIuc,IAAM,GAAM,GAAI,EAAIjB,EAAGiB,IAAM,EAAE,CACzF,CACI,OAAOH,CACX,CAEA,SAASI,GAAUjB,EAAKC,EAAK5b,EAAIC,EAAI4c,EAAIC,EAAI,CACzC,OAAQnB,EAAM3b,GAAM,EAAK,MAAYC,IAAO,EAAK,GAAK,EAClD2b,EAAMiB,IAAO,EAAK,MAAYC,IAAO,GAAM,GAAK,CACxD,CACA,SAASP,GAAUV,EAAO7b,EAAIC,EAAI4c,EAAIC,EAAI,CACtC,OAAQjB,EAAO7b,EAAK,IAASC,EAAK,KAAO,EACpC4b,EAAQgB,IAAO,GAAM,IAAUC,IAAO,GAAM,KAAO,GAAK,EACjE,CACA,SAASC,GAAQP,EAAIxc,EAAIC,EAAI4c,EAAIC,EAAI,CACjC,KAAM,CAAE,MAAAjB,EAAO,IAAAF,EAAK,IAAAC,CAAK,EAAGG,GAC5B,IAAI3gB,EAAI,EACP4E,GAAMwc,EAAGphB,GAAG,EAAK6E,GAAMuc,EAAGphB,GAAG,EAAKyhB,GAAML,EAAGphB,GAAG,EAAK0hB,GAAMN,EAAGphB,GAAG,EAChE,MAAM4hB,EAASR,EAAG,OAAS,EAAI,EAC/B,QAAS9iB,EAAI,EAAGA,EAAIsjB,EAAQtjB,IAAK,CAC7B,MAAM6S,EAAKiQ,EAAGphB,GAAG,EAAIwhB,GAAUjB,EAAKC,EAAK5b,EAAIC,EAAI4c,EAAIC,CAAE,EACjDtQ,EAAKgQ,EAAGphB,GAAG,EAAIwhB,GAAUjB,EAAKC,EAAK3b,EAAI4c,EAAIC,EAAI9c,CAAE,EACjD6E,EAAK2X,EAAGphB,GAAG,EAAIwhB,GAAUjB,EAAKC,EAAKiB,EAAIC,EAAI9c,EAAIC,CAAE,EACjDwM,EAAK+P,EAAGphB,GAAG,EAAIwhB,GAAUjB,EAAKC,EAAKkB,EAAI9c,EAAIC,EAAI4c,CAAE,EACtD7c,EAAKuM,EAAMtM,EAAKuM,EAAMqQ,EAAKhY,EAAMiY,EAAKrQ,CAC/C,CAEI,MAAMF,EAAKiQ,EAAGphB,GAAG,EAAImhB,GAAUV,EAAO7b,EAAIC,EAAI4c,EAAIC,CAAE,EAC9CtQ,EAAKgQ,EAAGphB,GAAG,EAAImhB,GAAUV,EAAO5b,EAAI4c,EAAIC,EAAI9c,CAAE,EAC9C6E,EAAK2X,EAAGphB,GAAG,EAAImhB,GAAUV,EAAOgB,EAAIC,EAAI9c,EAAIC,CAAE,EAC9CwM,EAAK+P,EAAGphB,GAAG,EAAImhB,GAAUV,EAAOiB,EAAI9c,EAAIC,EAAI4c,CAAE,EACpD,MAAO,CAAE,GAAItQ,EAAI,GAAIC,EAAI,GAAI3H,EAAI,GAAI4H,CAAI,CAC7C,CACA,SAASwQ,GAAQT,EAAIxc,EAAIC,EAAI4c,EAAIC,EAAI,CACjC,KAAM,CAAE,MAAAjB,EAAO,IAAAF,EAAK,IAAAC,CAAK,EAAGI,GAC5B,IAAI5gB,EAAI,EACP4E,GAAMwc,EAAGphB,GAAG,EAAK6E,GAAMuc,EAAGphB,GAAG,EAAKyhB,GAAML,EAAGphB,GAAG,EAAK0hB,GAAMN,EAAGphB,GAAG,EAChE,MAAM4hB,EAASR,EAAG,OAAS,EAAI,EAC/B,QAAS9iB,EAAI,EAAGA,EAAIsjB,EAAQtjB,IAAK,CAC7B,MAAM6S,EAAKiQ,EAAGphB,GAAG,EAAIwhB,GAAUjB,EAAKC,EAAK5b,EAAI8c,EAAID,EAAI5c,CAAE,EACjDuM,EAAKgQ,EAAGphB,GAAG,EAAIwhB,GAAUjB,EAAKC,EAAK3b,EAAID,EAAI8c,EAAID,CAAE,EACjDhY,EAAK2X,EAAGphB,GAAG,EAAIwhB,GAAUjB,EAAKC,EAAKiB,EAAI5c,EAAID,EAAI8c,CAAE,EACjDrQ,EAAK+P,EAAGphB,GAAG,EAAIwhB,GAAUjB,EAAKC,EAAKkB,EAAID,EAAI5c,EAAID,CAAE,EACtDA,EAAKuM,EAAMtM,EAAKuM,EAAMqQ,EAAKhY,EAAMiY,EAAKrQ,CAC/C,CAEI,MAAMF,EAAKiQ,EAAGphB,GAAG,EAAImhB,GAAUV,EAAO7b,EAAI8c,EAAID,EAAI5c,CAAE,EAC9CuM,EAAKgQ,EAAGphB,GAAG,EAAImhB,GAAUV,EAAO5b,EAAID,EAAI8c,EAAID,CAAE,EAC9ChY,EAAK2X,EAAGphB,GAAG,EAAImhB,GAAUV,EAAOgB,EAAI5c,EAAID,EAAI8c,CAAE,EAC9CrQ,EAAK+P,EAAGphB,GAAG,EAAImhB,GAAUV,EAAOiB,EAAID,EAAI5c,EAAID,CAAE,EACpD,MAAO,CAAE,GAAIuM,EAAI,GAAIC,EAAI,GAAI3H,EAAI,GAAI4H,CAAI,CAC7C,CACA,SAASyQ,GAAO1e,EAAK2e,EAAK,CACtB,GAAI,CAACA,EACD,OAAO,IAAI,WAAW3e,CAAG,EAE7B,GADA2d,GAAOgB,CAAG,EACNA,EAAI,OAAS3e,EACb,MAAM,IAAI,MAAM,oDAAoDA,CAAG,UAAU2e,EAAI,MAAM,EAAE,EACjG,OAAOA,CACX,CAgGA,SAASC,GAAqBpgB,EAAM,CAEhC,GADAmf,GAAOnf,CAAI,EACPA,EAAK,OAASge,KAAe,EAC7B,MAAM,IAAI,MAAM,uEAAuEA,EAAU,EAAE,CAE3G,CACA,SAASqC,GAAqBC,EAAWC,EAAOJ,EAAK,CACjD,IAAIte,EAASye,EAAU,OACvB,MAAME,EAAY3e,EAASmc,GAC3B,GAAI,CAACuC,GAASC,IAAc,EACxB,MAAM,IAAI,MAAM,yDAAyD,EAC7E,MAAMrlB,EAAIuiB,EAAI4C,CAAS,EACvB,GAAIC,EAAO,CACP,IAAI9R,EAAOuP,GAAawC,EACnB/R,IACDA,EAAOuP,IACXnc,EAASA,EAAS4M,CAC1B,CACI,MAAMtP,EAAM+gB,GAAOre,EAAQse,CAAG,EACxB7jB,EAAIohB,EAAIve,CAAG,EACjB,MAAO,CAAE,EAAAhE,EAAG,EAAAmB,EAAG,IAAA6C,CAAK,CACxB,CACA,SAASshB,GAAazgB,EAAMugB,EAAO,CAC/B,GAAI,CAACA,EACD,OAAOvgB,EACX,MAAMwB,EAAMxB,EAAK,OACjB,GAAI,CAACwB,EACD,MAAM,IAAI,MAAM,yCAAyC,EAC7D,MAAMkf,EAAW1gB,EAAKwB,EAAM,CAAC,EAC7B,GAAIkf,GAAY,GAAKA,EAAW,GAC5B,MAAM,IAAI,MAAM,kCAAkCA,CAAQ,EAAE,EAChE,MAAMvhB,EAAMa,EAAK,SAAS,EAAG,CAAC0gB,CAAQ,EACtC,QAAS,EAAI,EAAG,EAAIA,EAAU,IAC1B,GAAI1gB,EAAKwB,EAAM,EAAI,CAAC,IAAMkf,EACtB,MAAM,IAAI,MAAM,0BAA0B,EAClD,OAAOvhB,CACX,CACA,SAASwhB,GAAQlS,EAAM,CACnB,MAAMhO,EAAM,IAAI,WAAW,EAAE,EACvBmgB,EAAQlD,EAAIjd,CAAG,EACrBA,EAAI,IAAIgO,CAAI,EACZ,MAAMoS,EAAc7C,GAAavP,EAAK,OACtC,QAAS/R,EAAIshB,GAAa6C,EAAankB,EAAIshB,GAAYthB,IACnD+D,EAAI/D,CAAC,EAAImkB,EACb,OAAOD,CACX,CA6CO,MAAME,GAAMhD,GAAW,CAAE,UAAW,GAAI,YAAa,IAAM,SAAa/iB,EAAKgmB,EAAIxY,EAAO,GAAI,CAC/F4W,GAAOpkB,CAAG,EACVokB,GAAO4B,EAAI,EAAE,EACb,MAAMR,EAAQ,CAAChY,EAAK,eACpB,MAAO,CACH,QAAS,CAAC+X,EAAWH,IAAQ,CACzB,MAAMX,EAAKN,GAAYnkB,CAAG,EACpB,CAAE,EAAAI,EAAG,EAAAmB,EAAG,IAAK0kB,CAAM,EAAGX,GAAqBC,EAAWC,EAAOJ,CAAG,EAChEc,EAAMvD,EAAIqD,CAAE,EAElB,IAAI/d,EAAKie,EAAI,CAAC,EAAGhe,EAAKge,EAAI,CAAC,EAAGpB,EAAKoB,EAAI,CAAC,EAAGnB,EAAKmB,EAAI,CAAC,EACjDvkB,EAAI,EACR,KAAOA,EAAI,GAAKvB,EAAE,QACb6H,GAAM7H,EAAEuB,EAAI,CAAC,EAAKuG,GAAM9H,EAAEuB,EAAI,CAAC,EAAKmjB,GAAM1kB,EAAEuB,EAAI,CAAC,EAAKojB,GAAM3kB,EAAEuB,EAAI,CAAC,EACnE,CAAE,GAAAsG,EAAI,GAAAC,EAAI,GAAA4c,EAAI,GAAAC,CAAI,EAAGC,GAAQP,EAAIxc,EAAIC,EAAI4c,EAAIC,CAAE,EAC/CxjB,EAAEI,GAAG,EAAIsG,EAAM1G,EAAEI,GAAG,EAAIuG,EAAM3G,EAAEI,GAAG,EAAImjB,EAAMvjB,EAAEI,GAAG,EAAIojB,EAE3D,GAAIS,EAAO,CACP,MAAMK,EAAQD,GAAQL,EAAU,SAAS5jB,EAAI,CAAC,CAAC,EAC9CsG,GAAM4d,EAAM,CAAC,EAAK3d,GAAM2d,EAAM,CAAC,EAAKf,GAAMe,EAAM,CAAC,EAAKd,GAAMc,EAAM,CAAC,EACnE,CAAE,GAAA5d,EAAI,GAAAC,EAAI,GAAA4c,EAAI,GAAAC,CAAI,EAAGC,GAAQP,EAAIxc,EAAIC,EAAI4c,EAAIC,CAAE,EAC/CxjB,EAAEI,GAAG,EAAIsG,EAAM1G,EAAEI,GAAG,EAAIuG,EAAM3G,EAAEI,GAAG,EAAImjB,EAAMvjB,EAAEI,GAAG,EAAIojB,CACvE,CACY,OAAAN,EAAG,KAAK,CAAC,EACFwB,CACV,EACD,QAAS,CAACE,EAAYf,IAAQ,CAC1BC,GAAqBc,CAAU,EAC/B,MAAM1B,EAAKC,GAAe1kB,CAAG,EACvBkmB,EAAMvD,EAAIqD,CAAE,EACZ5hB,EAAM+gB,GAAOgB,EAAW,OAAQf,CAAG,EACnChlB,EAAIuiB,EAAIwD,CAAU,EAClB5kB,EAAIohB,EAAIve,CAAG,EAEjB,IAAI6D,EAAKie,EAAI,CAAC,EAAGhe,EAAKge,EAAI,CAAC,EAAGpB,EAAKoB,EAAI,CAAC,EAAGnB,EAAKmB,EAAI,CAAC,EACrD,QAASvkB,EAAI,EAAGA,EAAI,GAAKvB,EAAE,QAAS,CAEhC,MAAMgmB,EAAMne,EAAIoe,EAAMne,EAAIoe,EAAMxB,EAAIyB,EAAMxB,EACzC9c,EAAK7H,EAAEuB,EAAI,CAAC,EAAKuG,EAAK9H,EAAEuB,EAAI,CAAC,EAAKmjB,EAAK1kB,EAAEuB,EAAI,CAAC,EAAKojB,EAAK3kB,EAAEuB,EAAI,CAAC,EAChE,KAAM,CAAE,GAAI6kB,EAAI,GAAIC,EAAI,GAAIC,EAAI,GAAIC,CAAI,EAAGzB,GAAQT,EAAIxc,EAAIC,EAAI4c,EAAIC,CAAE,EACpExjB,EAAEI,GAAG,EAAI6kB,EAAKJ,EAAO7kB,EAAEI,GAAG,EAAI8kB,EAAKJ,EAAO9kB,EAAEI,GAAG,EAAI+kB,EAAKJ,EAAO/kB,EAAEI,GAAG,EAAIglB,EAAKJ,CAC9F,CACY,OAAA9B,EAAG,KAAK,CAAC,EACFiB,GAAathB,EAAKohB,CAAK,CACjC,CACJ,CACL,CAAC,ECvXKoB,GAAgB7hB,GAAQ,WAAW,KAAKA,EAAI,MAAM,EAAE,EAAE,IAAKlD,GAAMA,EAAE,WAAW,CAAC,CAAC,CAAC,EACjFglB,GAAUD,GAAa,kBAAkB,EACzCE,GAAUF,GAAa,kBAAkB,EACzCG,GAAapE,EAAIkE,EAAO,EACxBG,GAAarE,EAAImE,EAAO,EACTE,GAAW,MAAK,EAC9B,SAASC,EAAK9mB,EAAGC,EAAG,CACvB,OAAQD,GAAKC,EAAMD,IAAO,GAAKC,CACnC,CAEA,SAAS8mB,GAAY9mB,EAAG,CACpB,OAAOA,EAAE,WAAa,IAAM,CAChC,CAEA,MAAM+mB,GAAY,GACZC,GAAc,GAGdC,GAAc,GAAK,GAAK,EACxBC,GAAY,IAAI,YACtB,SAASC,GAAUC,EAAMC,EAAOznB,EAAK0nB,EAAOziB,EAAMd,EAAQwjB,EAAS1C,EAAQ,CACvE,MAAMxe,EAAMxB,EAAK,OACXgc,EAAQ,IAAI,WAAWkG,EAAS,EAChCS,EAAMjF,EAAI1B,CAAK,EAEf4G,EAAYX,GAAYjiB,CAAI,GAAKiiB,GAAY/iB,CAAM,EACnD2jB,EAAMD,EAAYlF,EAAI1d,CAAI,EAAIqiB,GAC9BS,EAAMF,EAAYlF,EAAIxe,CAAM,EAAImjB,GACtC,QAAS5gB,EAAM,EAAGA,EAAMD,EAAKkhB,IAAW,CAEpC,GADAH,EAAKC,EAAOznB,EAAK0nB,EAAOE,EAAKD,EAAS1C,CAAM,EACxC0C,GAAWN,GACX,MAAM,IAAI,MAAM,uBAAuB,EAC3C,MAAM1gB,EAAO,KAAK,IAAIwgB,GAAW1gB,EAAMC,CAAG,EAE1C,GAAImhB,GAAalhB,IAASwgB,GAAW,CACjC,MAAMa,EAAQthB,EAAM,EACpB,GAAIA,EAAM,IAAM,EACZ,MAAM,IAAI,MAAM,6BAA6B,EACjD,QAASjD,EAAI,EAAGwkB,EAAMxkB,EAAI2jB,GAAa3jB,IACnCwkB,EAAOD,EAAQvkB,EACfskB,EAAIE,CAAI,EAAIH,EAAIG,CAAI,EAAIL,EAAInkB,CAAC,EAEjCiD,GAAOygB,GACP,QACZ,CACQ,QAAS1jB,EAAI,EAAGwkB,EAAMxkB,EAAIkD,EAAMlD,IAC5BwkB,EAAOvhB,EAAMjD,EACbU,EAAO8jB,CAAI,EAAIhjB,EAAKgjB,CAAI,EAAIhH,EAAMxd,CAAC,EAEvCiD,GAAOC,CACf,CACA,CACO,SAASuhB,GAAaV,EAAMha,EAAM,CACrC,KAAM,CAAE,eAAA2a,EAAgB,cAAAC,EAAe,cAAAC,EAAe,aAAAC,EAAc,OAAArD,CAAM,EAAKrC,GAAU,CAAE,eAAgB,GAAO,cAAe,EAAG,aAAc,GAAO,OAAQ,EAAI,EAAEpV,CAAI,EAC3K,GAAI,OAAOga,GAAS,WAChB,MAAM,IAAI,MAAM,yBAAyB,EAC7Ce,UAAQF,CAAa,EACrBE,GAAQtD,CAAM,EACduD,GAAMF,CAAY,EAClBE,GAAML,CAAc,EACb,CAACnoB,EAAK0nB,EAAOziB,EAAMd,EAAQwjB,EAAU,IAAM,CAC9CvD,GAAOpkB,CAAG,EACVokB,GAAOsD,CAAK,EACZtD,GAAOnf,CAAI,EACX,MAAMwB,EAAMxB,EAAK,OAKjB,GAJKd,IACDA,EAAS,IAAI,WAAWsC,CAAG,GAC/B2d,GAAOjgB,CAAM,EACbokB,GAAQZ,CAAO,EACXA,EAAU,GAAKA,GAAWN,GAC1B,MAAM,IAAI,MAAM,uBAAuB,EAC3C,GAAIljB,EAAO,OAASsC,EAChB,MAAM,IAAI,MAAM,gBAAgBtC,EAAO,MAAM,2BAA2BsC,CAAG,GAAG,EAClF,MAAMgiB,EAAU,CAAE,EAIlB,IAAI1mB,EAAI/B,EAAI,OAAQqD,EAAGokB,EACvB,GAAI1lB,IAAM,GACNsB,EAAIrD,EAAI,MAAO,EACfyoB,EAAQ,KAAKplB,CAAC,EACdokB,EAAQT,WAEHjlB,IAAM,IAAMomB,EACjB9kB,EAAI,IAAI,WAAW,EAAE,EACrBA,EAAE,IAAIrD,CAAG,EACTqD,EAAE,IAAIrD,EAAK,EAAE,EACbynB,EAAQV,GACR0B,EAAQ,KAAKplB,CAAC,MAGd,OAAM,IAAI,MAAM,wCAAwCtB,CAAC,EAAE,EAS1DmlB,GAAYQ,CAAK,IAClBA,EAAQA,EAAM,MAAO,EACrBe,EAAQ,KAAKf,CAAK,GAEtB,MAAMrD,EAAM1B,EAAItf,CAAC,EAEjB,GAAI+kB,EAAe,CACf,GAAIV,EAAM,SAAW,GACjB,MAAM,IAAI,MAAM,sCAAsC,EAC1DU,EAAcX,EAAOpD,EAAK1B,EAAI+E,EAAM,SAAS,EAAG,EAAE,CAAC,EAAGrD,CAAG,EACzDqD,EAAQA,EAAM,SAAS,EAAE,CACrC,CAEQ,MAAMgB,EAAa,GAAKL,EACxB,GAAIK,IAAehB,EAAM,OACrB,MAAM,IAAI,MAAM,sBAAsBgB,CAAU,cAAc,EAElE,GAAIA,IAAe,GAAI,CACnB,MAAMC,EAAK,IAAI,WAAW,EAAE,EAC5BA,EAAG,IAAIjB,EAAOY,EAAe,EAAI,GAAKZ,EAAM,MAAM,EAClDA,EAAQiB,EACRF,EAAQ,KAAKf,CAAK,CAC9B,CACQ,MAAMxB,EAAMvD,EAAI+E,CAAK,EAErB,IADAH,GAAUC,EAAMC,EAAOpD,EAAK6B,EAAKjhB,EAAMd,EAAQwjB,EAAS1C,CAAM,EACvDwD,EAAQ,OAAS,GACpBA,EAAQ,IAAG,EAAG,KAAK,CAAC,EACxB,OAAOtkB,CACV,CACL,CC5JA,SAASykB,GAAWtpB,EAAG+D,EAAG3B,EAAG0C,EAAKykB,EAAK5D,EAAS,GAAI,CAChD,IAAI6D,EAAMxpB,EAAE,CAAC,EAAGypB,EAAMzpB,EAAE,CAAC,EAAG0pB,EAAM1pB,EAAE,CAAC,EAAG2pB,EAAM3pB,EAAE,CAAC,EACjD4pB,EAAM7lB,EAAE,CAAC,EAAG8lB,EAAM9lB,EAAE,CAAC,EAAG+lB,EAAM/lB,EAAE,CAAC,EAAGgmB,EAAMhmB,EAAE,CAAC,EAC7CimB,EAAMjmB,EAAE,CAAC,EAAGkmB,EAAMlmB,EAAE,CAAC,EAAGmmB,EAAMnmB,EAAE,CAAC,EAAGomB,EAAMpmB,EAAE,CAAC,EAC7CqmB,EAAMb,EAAKc,EAAMjoB,EAAE,CAAC,EAAGkoB,EAAMloB,EAAE,CAAC,EAAGmoB,EAAMnoB,EAAE,CAAC,EAExCooB,EAAMhB,EAAKiB,EAAMhB,EAAKiB,EAAMhB,EAAKiB,EAAMhB,EAAKiB,EAAMhB,EAAKiB,EAAMhB,EAAKiB,EAAMhB,EAAKiB,EAAMhB,EAAKiB,EAAMhB,EAAKiB,EAAMhB,EAAKiB,EAAMhB,EAAKiB,EAAMhB,EAAKiB,EAAMhB,EAAKiB,EAAMhB,EAAKiB,EAAMhB,EAAKiB,EAAMhB,EAC/K,QAASpoB,GAAI,EAAGA,GAAIwjB,EAAQxjB,IAAK,EAC7BqoB,EAAOA,EAAMI,EAAO,EACpBQ,EAAMzD,EAAKyD,EAAMZ,EAAK,EAAE,EACxBQ,EAAOA,EAAMI,EAAO,EACpBR,EAAMjD,EAAKiD,EAAMI,EAAK,EAAE,EACxBR,EAAOA,EAAMI,EAAO,EACpBQ,EAAMzD,EAAKyD,EAAMZ,EAAK,CAAC,EACvBQ,EAAOA,EAAMI,EAAO,EACpBR,EAAMjD,EAAKiD,EAAMI,EAAK,CAAC,EACvBP,EAAOA,EAAMI,EAAO,EACpBQ,EAAM1D,EAAK0D,EAAMZ,EAAK,EAAE,EACxBQ,EAAOA,EAAMI,EAAO,EACpBR,EAAMlD,EAAKkD,EAAMI,EAAK,EAAE,EACxBR,EAAOA,EAAMI,EAAO,EACpBQ,EAAM1D,EAAK0D,EAAMZ,EAAK,CAAC,EACvBQ,EAAOA,EAAMI,EAAO,EACpBR,EAAMlD,EAAKkD,EAAMI,EAAK,CAAC,EACvBP,EAAOA,EAAMI,EAAO,EACpBQ,EAAM3D,EAAK2D,EAAMZ,EAAK,EAAE,EACxBQ,EAAOA,EAAMI,EAAO,EACpBR,EAAMnD,EAAKmD,EAAMI,EAAK,EAAE,EACxBR,EAAOA,EAAMI,EAAO,EACpBQ,EAAM3D,EAAK2D,EAAMZ,EAAK,CAAC,EACvBQ,EAAOA,EAAMI,EAAO,EACpBR,EAAMnD,EAAKmD,EAAMI,EAAK,CAAC,EACvBP,EAAOA,EAAMI,EAAO,EACpBQ,EAAM5D,EAAK4D,EAAMZ,EAAK,EAAE,EACxBQ,EAAOA,EAAMI,EAAO,EACpBR,EAAMpD,EAAKoD,EAAMI,EAAK,EAAE,EACxBR,EAAOA,EAAMI,EAAO,EACpBQ,EAAM5D,EAAK4D,EAAMZ,EAAK,CAAC,EACvBQ,EAAOA,EAAMI,EAAO,EACpBR,EAAMpD,EAAKoD,EAAMI,EAAK,CAAC,EACvBX,EAAOA,EAAMK,EAAO,EACpBU,EAAM5D,EAAK4D,EAAMf,EAAK,EAAE,EACxBU,EAAOA,EAAMK,EAAO,EACpBV,EAAMlD,EAAKkD,EAAMK,EAAK,EAAE,EACxBV,EAAOA,EAAMK,EAAO,EACpBU,EAAM5D,EAAK4D,EAAMf,EAAK,CAAC,EACvBU,EAAOA,EAAMK,EAAO,EACpBV,EAAMlD,EAAKkD,EAAMK,EAAK,CAAC,EACvBT,EAAOA,EAAMK,EAAO,EACpBM,EAAMzD,EAAKyD,EAAMX,EAAK,EAAE,EACxBU,EAAOA,EAAMC,EAAO,EACpBN,EAAMnD,EAAKmD,EAAMK,EAAK,EAAE,EACxBV,EAAOA,EAAMK,EAAO,EACpBM,EAAMzD,EAAKyD,EAAMX,EAAK,CAAC,EACvBU,EAAOA,EAAMC,EAAO,EACpBN,EAAMnD,EAAKmD,EAAMK,EAAK,CAAC,EACvBT,EAAOA,EAAMK,EAAO,EACpBM,EAAM1D,EAAK0D,EAAMX,EAAK,EAAE,EACxBM,EAAOA,EAAMK,EAAO,EACpBN,EAAMpD,EAAKoD,EAAMC,EAAK,EAAE,EACxBN,EAAOA,EAAMK,EAAO,EACpBM,EAAM1D,EAAK0D,EAAMX,EAAK,CAAC,EACvBM,EAAOA,EAAMK,EAAO,EACpBN,EAAMpD,EAAKoD,EAAMC,EAAK,CAAC,EACvBL,EAAOA,EAAMC,EAAO,EACpBU,EAAM3D,EAAK2D,EAAMX,EAAK,EAAE,EACxBM,EAAOA,EAAMK,EAAO,EACpBV,EAAMjD,EAAKiD,EAAMK,EAAK,EAAE,EACxBN,EAAOA,EAAMC,EAAO,EACpBU,EAAM3D,EAAK2D,EAAMX,EAAK,CAAC,EACvBM,EAAOA,EAAMK,EAAO,EACpBV,EAAMjD,EAAKiD,EAAMK,EAAK,CAAC,EAG3B,IAAIO,EAAK,EACT1mB,EAAI0mB,GAAI,EAAKhC,EAAMgB,EAAO,EAC1B1lB,EAAI0mB,GAAI,EAAK/B,EAAMgB,EAAO,EAC1B3lB,EAAI0mB,GAAI,EAAK9B,EAAMgB,EAAO,EAC1B5lB,EAAI0mB,GAAI,EAAK7B,EAAMgB,EAAO,EAC1B7lB,EAAI0mB,GAAI,EAAK5B,EAAMgB,EAAO,EAC1B9lB,EAAI0mB,GAAI,EAAK3B,EAAMgB,EAAO,EAC1B/lB,EAAI0mB,GAAI,EAAK1B,EAAMgB,EAAO,EAC1BhmB,EAAI0mB,GAAI,EAAKzB,EAAMgB,EAAO,EAC1BjmB,EAAI0mB,GAAI,EAAKxB,EAAMgB,EAAO,EAC1BlmB,EAAI0mB,GAAI,EAAKvB,EAAMgB,EAAO,EAC1BnmB,EAAI0mB,GAAI,EAAKtB,EAAMgB,EAAO,EAC1BpmB,EAAI0mB,GAAI,EAAKrB,EAAMgB,EAAO,EAC1BrmB,EAAI0mB,GAAI,EAAKpB,EAAMgB,EAAO,EAC1BtmB,EAAI0mB,GAAI,EAAKnB,EAAMgB,EAAO,EAC1BvmB,EAAI0mB,GAAI,EAAKlB,EAAMgB,EAAO,EAC1BxmB,EAAI0mB,GAAI,EAAKjB,EAAMgB,EAAO,CAC9B,CAkGO,MAAME,GAA2B7C,GAAaU,GAAY,CAC7D,aAAc,GACd,cAAe,EACf,eAAgB,EACpB,CAAC,EC1MM,MAAM7N,WAAa3U,EAAK,CAC3B,YAAYrC,EAAMuW,EAAM,CACpB,MAAO,EACP,KAAK,SAAW,GAChB,KAAK,UAAY,GACjBmE,GAAO,KAAK1a,CAAI,EAChB,MAAM/D,EAAMgF,GAAQsV,CAAI,EAExB,GADA,KAAK,MAAQvW,EAAK,OAAQ,EACtB,OAAO,KAAK,MAAM,QAAW,WAC7B,MAAM,IAAI,MAAM,qDAAqD,EACzE,KAAK,SAAW,KAAK,MAAM,SAC3B,KAAK,UAAY,KAAK,MAAM,UAC5B,MAAMsC,EAAW,KAAK,SAChBhB,EAAM,IAAI,WAAWgB,CAAQ,EAEnChB,EAAI,IAAIrF,EAAI,OAASqG,EAAWtC,EAAK,OAAQ,EAAC,OAAO/D,CAAG,EAAE,OAAM,EAAKA,CAAG,EACxE,QAAS2B,EAAI,EAAGA,EAAI0D,EAAI,OAAQ1D,IAC5B0D,EAAI1D,CAAC,GAAK,GACd,KAAK,MAAM,OAAO0D,CAAG,EAErB,KAAK,MAAQtB,EAAK,OAAQ,EAE1B,QAASpC,EAAI,EAAGA,EAAI0D,EAAI,OAAQ1D,IAC5B0D,EAAI1D,CAAC,GAAK,IACd,KAAK,MAAM,OAAO0D,CAAG,EACrBA,EAAI,KAAK,CAAC,CAClB,CACI,OAAOmV,EAAK,CACR,OAAAiE,GAAO,OAAO,IAAI,EAClB,KAAK,MAAM,OAAOjE,CAAG,EACd,IACf,CACI,WAAWpW,EAAK,CACZqa,GAAO,OAAO,IAAI,EAClBA,GAAO,MAAMra,EAAK,KAAK,SAAS,EAChC,KAAK,SAAW,GAChB,KAAK,MAAM,WAAWA,CAAG,EACzB,KAAK,MAAM,OAAOA,CAAG,EACrB,KAAK,MAAM,WAAWA,CAAG,EACzB,KAAK,QAAS,CACtB,CACI,QAAS,CACL,MAAMA,EAAM,IAAI,WAAW,KAAK,MAAM,SAAS,EAC/C,YAAK,WAAWA,CAAG,EACZA,CACf,CACI,WAAW6C,EAAI,CAEXA,IAAOA,EAAK,OAAO,OAAO,OAAO,eAAe,IAAI,EAAG,EAAE,GACzD,KAAM,CAAE,MAAA0T,EAAO,MAAAC,EAAO,SAAAzT,EAAU,UAAAC,EAAW,SAAAf,EAAU,UAAAC,CAAS,EAAK,KACnE,OAAAW,EAAKA,EACLA,EAAG,SAAWE,EACdF,EAAG,UAAYG,EACfH,EAAG,SAAWZ,EACdY,EAAG,UAAYX,EACfW,EAAG,MAAQ0T,EAAM,WAAW1T,EAAG,KAAK,EACpCA,EAAG,MAAQ2T,EAAM,WAAW3T,EAAG,KAAK,EAC7BA,CACf,CACI,SAAU,CACN,KAAK,UAAY,GACjB,KAAK,MAAM,QAAS,EACpB,KAAK,MAAM,QAAS,CAC5B,CACA,CAOO,MAAM4T,GAAO,CAAC9W,EAAM/D,EAAK8a,IAAY,IAAIC,GAAKhX,EAAM/D,CAAG,EAAE,OAAO8a,CAAO,EAAE,OAAQ,EACxFD,GAAK,OAAS,CAAC9W,EAAM/D,IAAQ,IAAI+a,GAAKhX,EAAM/D,CAAG,EC9DxC,SAASgrB,GAAQjnB,EAAMknB,EAAKC,EAAM,CACrC,OAAAzM,GAAO,KAAK1a,CAAI,EAMT8W,GAAK9W,EAAMiB,GAAQkmB,CAAI,EAAGlmB,GAAQimB,CAAG,CAAC,CACjD,CAEA,MAAME,GAAe,IAAI,WAAW,CAAC,CAAC,CAAC,EACjCC,GAAe,IAAI,WAOlB,SAASC,GAAOtnB,EAAMunB,EAAKC,EAAMrkB,EAAS,GAAI,CAGjD,GAFAuX,GAAO,KAAK1a,CAAI,EAChB0a,GAAO,OAAOvX,CAAM,EAChBA,EAAS,IAAMnD,EAAK,UACpB,MAAM,IAAI,MAAM,iCAAiC,EACrD,MAAMynB,EAAS,KAAK,KAAKtkB,EAASnD,EAAK,SAAS,EAC5CwnB,IAAS,SACTA,EAAOH,IAEX,MAAMK,EAAM,IAAI,WAAWD,EAASznB,EAAK,SAAS,EAE5CgX,EAAOF,GAAK,OAAO9W,EAAMunB,CAAG,EAC5BI,EAAU3Q,EAAK,WAAY,EAC3BpY,EAAI,IAAI,WAAWoY,EAAK,SAAS,EACvC,QAAS4M,EAAU,EAAGA,EAAU6D,EAAQ7D,IACpCwD,GAAa,CAAC,EAAIxD,EAAU,EAG5B+D,EAAQ,OAAO/D,IAAY,EAAIyD,GAAezoB,CAAC,EAC1C,OAAO4oB,CAAI,EACX,OAAOJ,EAAY,EACnB,WAAWxoB,CAAC,EACjB8oB,EAAI,IAAI9oB,EAAGoB,EAAK,UAAY4jB,CAAO,EACnC5M,EAAK,WAAW2Q,CAAO,EAE3B,OAAA3Q,EAAK,QAAS,EACd2Q,EAAQ,QAAS,EACjB/oB,EAAE,KAAK,CAAC,EACRwoB,GAAa,KAAK,CAAC,EACZM,EAAI,MAAM,EAAGvkB,CAAM,CAC9B,CC7DA,IAAI3H,GAAY,OAAO,eACnBosB,EAAW,CAAClrB,EAAQmrB,IAAQ,CAC9B,QAASC,KAAQD,EACfrsB,GAAUkB,EAAQorB,EAAM,CAAE,IAAKD,EAAIC,CAAI,EAAG,WAAY,GAAM,CAChE,EAOIC,GAAiB,OAAO,UAAU,EAClCC,GAAYhsB,GAAQA,aAAe,OACvC,SAASisB,GAAcC,EAAO,CAa5B,GAZI,CAACF,GAASE,CAAK,GAEf,OAAOA,EAAM,MAAS,UAEtB,OAAOA,EAAM,SAAY,UAEzB,OAAOA,EAAM,YAAe,UAE5B,OAAOA,EAAM,QAAW,UAExB,CAACA,EAAM,OAAO,MAAM,gBAAgB,GAEpC,CAAC,MAAM,QAAQA,EAAM,IAAI,EAC3B,MAAO,GACT,QAASC,EAAK,EAAGA,EAAKD,EAAM,KAAK,OAAQC,IAAM,CAC7C,IAAIlP,EAAMiP,EAAM,KAAKC,CAAE,EACvB,GAAI,CAAC,MAAM,QAAQlP,CAAG,EACpB,MAAO,GACT,QAASvZ,EAAI,EAAGA,EAAIuZ,EAAI,OAAQvZ,IAC9B,GAAI,OAAOuZ,EAAIvZ,CAAC,GAAM,SACpB,MAAO,EAEf,CACE,MAAO,EACT,CAcA,IAAI0oB,GAAgB,CAAE,EACtBR,EAASQ,GAAe,CACtB,MAAO,IAAMC,GACb,UAAW,IAAMC,GACjB,aAAc,IAAMC,GACpB,6BAA8B,IAAMC,GACpC,8BAA+B,IAAMC,GACrC,aAAc,IAAMC,GACpB,YAAa,IAAMC,GACnB,YAAa,IAAMC,EACrB,CAAC,EACD,IAAID,GAAc,IAAI,YAAY,OAAO,EACrCC,GAAc,IAAI,YACtB,SAASF,GAAaG,EAAK,CACrBA,EAAI,QAAQ,KAAK,IAAM,KACzBA,EAAM,SAAWA,GACnB,IAAI5qB,EAAI,IAAI,IAAI4qB,CAAG,EACnB,OAAA5qB,EAAE,SAAWA,EAAE,SAAS,QAAQ,OAAQ,GAAG,EACvCA,EAAE,SAAS,SAAS,GAAG,IACzBA,EAAE,SAAWA,EAAE,SAAS,MAAM,EAAG,EAAE,IACjCA,EAAE,OAAS,MAAQA,EAAE,WAAa,OAASA,EAAE,OAAS,OAASA,EAAE,WAAa,UAChFA,EAAE,KAAO,IACXA,EAAE,aAAa,KAAM,EACrBA,EAAE,KAAO,GACFA,EAAE,SAAU,CACrB,CACA,SAASwqB,GAA8BK,EAAaZ,EAAO,CACzD,KAAM,CAAClI,EAAK+I,CAAK,EAAIR,GAAaO,EAAczsB,GAC1C6rB,EAAM,KAAO7rB,EAAE,GACV,EACL6rB,EAAM,aAAe7rB,EAAE,WAClB,GACFA,EAAE,WAAa6rB,EAAM,UAC7B,EACD,OAAKa,GACHD,EAAY,OAAO9I,EAAK,EAAGkI,CAAK,EAE3BY,CACT,CACA,SAASN,GAA6BM,EAAaZ,EAAO,CACxD,KAAM,CAAClI,EAAK+I,CAAK,EAAIR,GAAaO,EAAczsB,GAC1C6rB,EAAM,KAAO7rB,EAAE,GACV,EACL6rB,EAAM,aAAe7rB,EAAE,WAClB,GACF6rB,EAAM,WAAa7rB,EAAE,UAC7B,EACD,OAAK0sB,GACHD,EAAY,OAAO9I,EAAK,EAAGkI,CAAK,EAE3BY,CACT,CACA,SAASP,GAAa7nB,EAAKsoB,EAAS,CAClC,IAAIC,EAAQ,EACRvN,EAAMhb,EAAI,OAAS,EACvB,KAAOuoB,GAASvN,GAAK,CACnB,MAAMwN,EAAM,KAAK,OAAOD,EAAQvN,GAAO,CAAC,EAClCyN,EAAMH,EAAQtoB,EAAIwoB,CAAG,CAAC,EAC5B,GAAIC,IAAQ,EACV,MAAO,CAACD,EAAK,EAAI,EAEfC,EAAM,EACRzN,EAAMwN,EAAM,EAEZD,EAAQC,EAAM,CAEpB,CACE,MAAO,CAACD,EAAO,EAAK,CACtB,CACA,IAAIX,GAAY,KAAM,CACpB,MACA,KAAO,KACP,KAAO,KACP,YAAYvR,EAAS,CACnB,KAAK,MAAQA,CACjB,CACA,EACIsR,GAAQ,KAAM,CAChB,MACA,KACA,aAAc,CACZ,KAAK,MAAQ,KACb,KAAK,KAAO,IAChB,CACE,QAAQnsB,EAAO,CACb,MAAMktB,EAAU,IAAId,GAAUpsB,CAAK,EACnC,OAAK,KAAK,KAGC,KAAK,OAAS,KAAK,OAC5B,KAAK,KAAOktB,EACZ,KAAK,KAAK,KAAO,KAAK,MACtB,KAAK,MAAM,KAAOA,IAElBA,EAAQ,KAAO,KAAK,KACpB,KAAK,KAAK,KAAOA,EACjB,KAAK,KAAOA,IATZ,KAAK,MAAQA,EACb,KAAK,KAAOA,GAUP,EACX,CACE,SAAU,CACR,GAAI,CAAC,KAAK,MACR,OAAO,KACT,GAAI,KAAK,QAAU,KAAK,KAAM,CAC5B,MAAMC,EAAU,KAAK,MACrB,YAAK,MAAQ,KACb,KAAK,KAAO,KACLA,EAAQ,KACrB,CACI,MAAM3sB,EAAS,KAAK,MACpB,YAAK,MAAQA,EAAO,KACbA,EAAO,KAClB,CACA,EAGI4sB,GAAK,KAAM,CACb,mBAAoB,CAClB,OAAO9O,GAAQ,MAAM,iBAAkB,CAC3C,CACE,aAAa+O,EAAW,CACtB,OAAO1kB,EAAW2V,GAAQ,aAAa+O,CAAS,CAAC,CACrD,CACE,cAAcjsB,EAAGisB,EAAW,CAC1B,MAAMrB,EAAQ5qB,EACd,OAAA4qB,EAAM,OAASrjB,EAAW2V,GAAQ,aAAa+O,CAAS,CAAC,EACzDrB,EAAM,GAAKsB,GAAatB,CAAK,EAC7BA,EAAM,IAAMrjB,EAAW2V,GAAQ,KAAKgP,GAAatB,CAAK,EAAGqB,CAAS,CAAC,EACnErB,EAAMH,EAAc,EAAI,GACjBG,CACX,CACE,YAAYA,EAAO,CACjB,GAAI,OAAOA,EAAMH,EAAc,GAAM,UACnC,OAAOG,EAAMH,EAAc,EAC7B,MAAM/nB,EAAOwpB,GAAatB,CAAK,EAC/B,GAAIloB,IAASkoB,EAAM,GACjB,OAAAA,EAAMH,EAAc,EAAI,GACjB,GAET,GAAI,CACF,MAAM0B,EAAQjP,GAAQ,OAAO0N,EAAM,IAAKloB,EAAMkoB,EAAM,MAAM,EAC1D,OAAAA,EAAMH,EAAc,EAAI0B,EACjBA,CACR,MAAa,CACZ,OAAAvB,EAAMH,EAAc,EAAI,GACjB,EACb,CACA,CACA,EACA,SAAS2B,GAAeC,EAAK,CAC3B,GAAI,CAAC1B,GAAc0B,CAAG,EACpB,MAAM,IAAI,MAAM,wDAAwD,EAC1E,OAAO,KAAK,UAAU,CAAC,EAAGA,EAAI,OAAQA,EAAI,WAAYA,EAAI,KAAMA,EAAI,KAAMA,EAAI,OAAO,CAAC,CACxF,CACA,SAASH,GAAatB,EAAO,CAC3B,IAAI0B,EAAYrlB,GAAOqkB,GAAY,OAAOc,GAAexB,CAAK,CAAC,CAAC,EAChE,OAAOrjB,EAAW+kB,CAAS,CAC7B,CACA,IAAIhsB,GAAI,IAAI0rB,GACRO,GAAoBjsB,GAAE,kBACtB0W,GAAe1W,GAAE,aACjBksB,GAAgBlsB,GAAE,cAClBmsB,GAAcnsB,GAAE,YAGhBosB,GAAgB,CAAE,EACtBpC,EAASoC,GAAe,CACtB,YAAa,IAAMC,GACnB,WAAY,IAAMC,GAClB,gBAAiB,IAAMC,GACvB,kBAAmB,IAAMC,GACzB,aAAc,IAAMC,GACpB,aAAc,IAAMC,GACpB,SAAU,IAAMC,GAChB,kBAAmB,IAAMC,GACzB,gBAAiB,IAAMC,GACvB,mBAAoB,IAAMC,GAC1B,eAAgB,IAAMC,GACtB,gBAAiB,IAAMC,GACvB,gBAAiB,IAAMC,GACvB,kBAAmB,IAAMC,GACzB,WAAY,IAAMC,GAClB,gBAAiB,IAAMC,GACvB,oBAAqB,IAAMC,GAC3B,sBAAuB,IAAMC,GAC7B,SAAU,IAAMC,GAChB,sBAAuB,IAAMC,GAC7B,oBAAqB,IAAMC,GAC3B,aAAc,IAAMC,GACpB,KAAM,IAAMC,GACZ,wBAAyB,IAAMC,GAC/B,uBAAwB,IAAMC,GAC9B,UAAW,IAAMC,GACjB,UAAW,IAAMC,GACjB,uBAAwB,IAAMC,GAC9B,cAAe,IAAMC,GACrB,aAAc,IAAMC,GACpB,qBAAsB,IAAMC,GAC5B,WAAY,IAAMC,GAClB,cAAe,IAAMC,GACrB,aAAc,IAAMC,GACpB,SAAU,IAAMC,GAChB,SAAU,IAAMC,GAChB,mBAAoB,IAAMC,GAC1B,sBAAuB,IAAMC,GAC7B,WAAY,IAAMC,GAClB,cAAe,IAAMC,GACrB,aAAc,IAAMC,GACpB,YAAa,IAAMC,GACnB,WAAY,IAAMC,GAClB,UAAW,IAAMC,GACjB,MAAO,IAAMC,GACb,gBAAiB,IAAMC,GACvB,gBAAiB,IAAMC,GACvB,UAAW,IAAMC,GACjB,gBAAiB,IAAMC,GACvB,SAAU,IAAMC,GAChB,SAAU,IAAMC,GAChB,cAAe,IAAMC,GACrB,iBAAkB,IAAMC,GACxB,kBAAmB,IAAMC,GACzB,aAAc,IAAMC,GACpB,eAAgB,IAAMC,GACtB,QAAS,IAAMC,GACf,qBAAsB,IAAMC,GAC5B,eAAgB,IAAMC,GACtB,cAAe,IAAMC,GACrB,gBAAiB,IAAMC,GACvB,SAAU,IAAMC,GAChB,eAAgB,IAAMC,GACtB,UAAW,IAAMC,GACjB,UAAW,IAAMC,GACjB,OAAQ,IAAMC,GACd,UAAW,IAAMC,GACjB,OAAQ,IAAMC,GACd,KAAM,IAAMC,GACZ,iBAAkB,IAAMC,GACxB,cAAe,IAAMC,GACrB,KAAM,IAAMC,GACZ,cAAe,IAAMC,GACrB,aAAc,IAAMC,GACpB,IAAK,IAAMC,GACX,QAAS,IAAMC,GACf,WAAY,IAAMC,GAClB,aAAc,IAAMC,GACpB,gBAAiB,IAAMC,GACvB,OAAQ,IAAMC,GACd,+BAAgC,IAAMC,GACtC,cAAe,IAAMC,GACrB,kBAAmB,IAAMC,EAC3B,CAAC,EACD,SAASD,GAAcvyB,EAAM,CAC3B,MAAO,MAAOA,GAAQA,EAAO,KAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAE,SAASA,CAAI,CACjG,CACA,SAASwyB,GAAkBxyB,EAAM,CAC/B,MAAO,CAAC,EAAG,CAAC,EAAE,SAASA,CAAI,GAAK,KAAOA,GAAQA,EAAO,GACxD,CACA,SAASoyB,GAAgBpyB,EAAM,CAC7B,MAAO,MAAOA,GAAQA,EAAO,GAC/B,CACA,SAASsyB,GAA+BtyB,EAAM,CAC5C,MAAO,MAAOA,GAAQA,EAAO,GAC/B,CACA,SAASmyB,GAAanyB,EAAM,CAC1B,OAAIuyB,GAAcvyB,CAAI,EACb,UACLwyB,GAAkBxyB,CAAI,EACjB,cACLoyB,GAAgBpyB,CAAI,EACf,YACLsyB,GAA+BtyB,CAAI,EAC9B,gBACF,SACT,CACA,SAASqyB,GAAO9G,EAAOvrB,EAAM,CAC3B,MAAMyyB,EAAczyB,aAAgB,MAAQA,EAAO,CAACA,CAAI,EACxD,OAAOsrB,GAAcC,CAAK,GAAKkH,EAAY,SAASlH,EAAM,IAAI,GAAK,EACrE,CACA,IAAIgF,GAAW,EACXqB,GAAgB,EAChBR,GAAiB,EACjB5C,GAAW,EACXS,GAAyB,EACzBC,GAAgB,EAChBuC,GAAS,EACTN,GAAW,EACX5D,GAAa,EACbmE,GAAO,GACPX,GAAuB,GACvBzB,GAAgB,GAChBxB,GAAkB,GAClBG,GAAkB,GAClBD,GAAiB,GACjBD,GAAqB,GACrBG,GAAkB,GAClB2C,GAAiB,KACjBrB,GAAW,KACXL,GAAe,KACfiB,GAAkB,KAClBY,GAAiB,KACjBO,GAAS,KACTC,GAAY,KACZtB,GAAQ,KACR3B,GAAwB,KACxByB,GAAa,KACbC,GAAY,KACZF,GAAc,IACdkC,GAAU,KACVC,GAAa,KACbF,GAAM,KACNpC,GAAa,KACbY,GAAW,IACXM,GAAU,MACVO,GAAY,MACZ3D,GAAe,MACfW,GAAkB,MAClB6C,GAAkB,MAClBzD,GAAoB,MACpBkE,GAAmB,MACnB9B,GAAgB,MAChBiC,GAAgB,MAChBjD,GAA0B,MAC1BO,GAAuB,MACvBqB,GAAgB,MAChBN,GAAkB,KAClB/B,GAAa,MACbsC,GAAmB,MACnBC,GAAoB,MACpBC,GAAe,MACfnB,GAAW,MACXJ,GAAa,IACbE,GAAe,MACf+B,GAAY,MACZ3D,GAAe,MACfgB,GAAe,MACfsC,GAAgB,MAChBzD,GAAkB,MAClBsC,GAAe,MACfpB,GAAsB,MACtBD,GAAwB,MACxB6B,GAAkB,MAClBvB,GAAY,MACZC,GAAY,MACZ1B,GAAc,MACd+C,GAAY,MACZ0B,GAAe,MACf5D,GAAoB,MACpBW,GAAyB,MACzBF,GAAQ,MACRiD,GAAO,MACPjE,GAAW,MACXC,GAAoB,MACpB8B,GAAwB,MACxBD,GAAqB,MACrBpB,GAAsB,MAG1B,SAASoE,GAAYC,EAAQpH,EAAO,CAOlC,GANIoH,EAAO,KAAOA,EAAO,IAAI,QAAQpH,EAAM,EAAE,IAAM,IAG/CoH,EAAO,OAASA,EAAO,MAAM,QAAQpH,EAAM,IAAI,IAAM,IAGrDoH,EAAO,SAAWA,EAAO,QAAQ,QAAQpH,EAAM,MAAM,IAAM,GAC7D,MAAO,GAET,QAAS9pB,KAAKkxB,EACZ,GAAIlxB,EAAE,CAAC,IAAM,IAAK,CAChB,IAAImxB,EAAUnxB,EAAE,MAAM,CAAC,EACnBoxB,EAASF,EAAO,IAAIC,CAAO,EAAE,EACjC,GAAIC,GAAU,CAACtH,EAAM,KAAK,KAAK,CAAC,CAAC5qB,EAAGgB,CAAC,IAAMhB,IAAMc,EAAE,MAAM,CAAC,GAAKoxB,EAAO,QAAQlxB,CAAC,IAAM,EAAE,EACrF,MAAO,EACf,CAIE,MAFI,EAAAgxB,EAAO,OAASpH,EAAM,WAAaoH,EAAO,OAE1CA,EAAO,OAASpH,EAAM,WAAaoH,EAAO,MAGhD,CACA,SAASG,GAAaC,EAASxH,EAAO,CACpC,QAASC,EAAK,EAAGA,EAAKuH,EAAQ,OAAQvH,IACpC,GAAIkH,GAAYK,EAAQvH,CAAE,EAAGD,CAAK,EAChC,MAAO,GAGX,MAAO,EACT,CA4CA,IAAIyH,GAAmB,CAAE,EACzB/H,EAAS+H,GAAkB,CACzB,SAAU,IAAMC,GAChB,OAAQ,IAAMC,GACd,kBAAmB,IAAMC,GACzB,aAAc,IAAMC,GACpB,eAAgB,IAAMC,GACtB,iBAAkB,IAAMC,EAC1B,CAAC,EACD,SAASL,GAASM,EAAM3mB,EAAO,CAC7B,IAAI7G,EAAM6G,EAAM,OAAS,EACrByW,EAAMkQ,EAAK,QAAQ,IAAI3mB,CAAK,IAAI,EAAI7G,EACpCnH,EAAI20B,EAAK,MAAMlQ,CAAG,EAAE,QAAQ,GAAG,EAAIA,EAAM,EAC7C,OAAOkQ,EAAK,MAAM30B,EAAGA,EAAI,EAAE,CAC7B,CACA,SAASs0B,GAAOK,EAAM3mB,EAAO,CAC3B,IAAI7G,EAAM6G,EAAM,OACZyW,EAAMkQ,EAAK,QAAQ,IAAI3mB,CAAK,IAAI,EAAI7G,EAAM,EAC1CytB,EAASD,EAAK,MAAMlQ,CAAG,EACvBtE,EAAM,KAAK,IAAIyU,EAAO,QAAQ,GAAG,EAAGA,EAAO,QAAQ,GAAG,CAAC,EAC3D,OAAO,SAASA,EAAO,MAAM,EAAGzU,CAAG,EAAG,EAAE,CAC1C,CACA,SAASoU,GAAkBI,EAAM,CAC/B,IAAIlQ,EAAMkQ,EAAK,MAAM,EAAG,EAAE,EAAE,QAAQ,SAAS,EAC7C,GAAIlQ,IAAQ,GACV,OAAO,KACT,IAAIoQ,EAASF,EAAK,MAAMlQ,EAAM,EAAI,CAAC,EAAE,QAAQ,GAAG,EAChD,GAAIoQ,IAAW,GACb,OAAO,KACT,IAAInH,EAAQjJ,EAAM,EAAI,EAAIoQ,EACtBC,EAAOH,EAAK,MAAMjH,EAAQ,EAAG,EAAE,EAAE,QAAQ,GAAG,EAChD,GAAIoH,IAAS,GACX,OAAO,KACT,IAAI3U,EAAMuN,EAAQ,EAAIoH,EACtB,OAAOH,EAAK,MAAMjH,EAAQ,EAAGvN,CAAG,CAClC,CACA,SAASqU,GAAaG,EAAMI,EAAI,CAC9B,OAAOA,IAAOV,GAASM,EAAM,IAAI,CACnC,CACA,SAASD,GAAiBC,EAAMK,EAAQ,CACtC,OAAOA,IAAWX,GAASM,EAAM,QAAQ,CAC3C,CACA,SAASF,GAAeE,EAAMvzB,EAAM,CAClC,OAAOA,IAASkzB,GAAOK,EAAM,MAAM,CACrC,CAGA,IAAIM,GAAgB,CAAE,EACtB5I,EAAS4I,GAAe,CACtB,cAAe,IAAMC,EACvB,CAAC,EACD,SAASA,GAAcC,EAAU5W,EAAW,CAC1C,MAAO,CACL,KAAMiR,GACN,WAAY,KAAK,MAAM,KAAK,IAAG,EAAK,GAAG,EACvC,KAAM,CACJ,CAAC,QAAS2F,CAAQ,EAClB,CAAC,YAAa5W,CAAS,CACxB,EACD,QAAS,EACV,CACH,CAGA,eAAe6W,IAAc,CAC3B,OAAO,IAAI,QAASC,GAAY,CAC9B,MAAMC,EAAK,IAAI,eACTC,EAAU,IAAM,CACpBD,EAAG,MAAM,oBAAoB,UAAWC,CAAO,EAC/CF,EAAS,CACV,EACDC,EAAG,MAAM,iBAAiB,UAAWC,CAAO,EAC5CD,EAAG,MAAM,YAAY,CAAC,EACtBA,EAAG,MAAM,MAAO,CACpB,CAAG,CACH,CAOA,IAAIE,GAAgB,KAAM,CACxB,IACA,WAAa,GACb,QAAU,KACV,SAAY/zB,GAAQ,QAAQ,MAAM,eAAe,KAAK,GAAG,KAAKA,CAAG,EAAE,EACnE,QAAU,KACV,gBAAkB,KAClB,kBAAoB,KACpB,eAAiB,KACjB,SAA2B,IAAI,IAC/B,wBACA,kBACA,kBAAoC,IAAI,IACxC,mBAAqC,IAAI,IACzC,GACA,qBAAuB,IAAIqrB,GAC3B,aAAe,GACf,UACA,OAAS,EACT,YACA,WACA,YAAYQ,EAAKpf,EAAM,CACrB,KAAK,IAAMif,GAAaG,CAAG,EAC3B,KAAK,YAAcpf,EAAK,YACxB,KAAK,WAAaA,EAAK,yBAA2B,SACtD,CACE,aAAa,QAAQof,EAAKpf,EAAM,CAC9B,MAAMunB,EAAQ,IAAID,GAAclI,EAAKpf,CAAI,EACzC,aAAMunB,EAAM,QAAS,EACdA,CACX,CACE,sBAAsBC,EAAQ,CAC5B,OAAS,CAAC1yB,EAAG2yB,CAAG,IAAK,KAAK,SACxBA,EAAI,MAAMD,CAAM,EAElB,KAAK,SAAS,MAAO,EACrB,OAAS,CAAC1yB,EAAG4yB,CAAE,IAAK,KAAK,mBACvBA,EAAG,OAAO,IAAI,MAAMF,CAAM,CAAC,EAE7B,KAAK,mBAAmB,MAAO,EAC/B,OAAS,CAAC1yB,EAAG6yB,CAAE,IAAK,KAAK,kBACvBA,EAAG,OAAO,IAAI,MAAMH,CAAM,CAAC,EAE7B,KAAK,kBAAkB,MAAO,CAClC,CACE,IAAI,WAAY,CACd,OAAO,KAAK,UAChB,CACE,MAAM,SAAU,CACd,OAAI,KAAK,kBACA,KAAK,mBACd,KAAK,UAAY,OACjB,KAAK,kBAAoB,IAAI,QAAQ,CAACL,EAASS,IAAW,CACxD,KAAK,wBAA0B,WAAW,IAAM,CAC9CA,EAAO,sBAAsB,EAC7B,KAAK,kBAAoB,OACzB,KAAK,UAAW,EAChB,KAAK,sBAAsB,4BAA4B,CAC/D,EAAS,KAAK,iBAAiB,EACzB,GAAI,CACF,KAAK,GAAK,IAAI,KAAK,WAAW,KAAK,GAAG,CACvC,OAAQC,EAAK,CACZD,EAAOC,CAAG,EACV,MACR,CACM,KAAK,GAAG,OAAS,IAAM,CACrB,aAAa,KAAK,uBAAuB,EACzC,KAAK,WAAa,GAClBV,EAAS,CACV,EACD,KAAK,GAAG,QAAWW,GAAO,CACxBF,EAAOE,EAAG,SAAW,iBAAiB,EAClC,KAAK,aACP,KAAK,WAAa,GAClB,KAAK,kBAAoB,OACzB,KAAK,UAAW,EAChB,KAAK,sBAAsB,0BAA0B,EAExD,EACD,KAAK,GAAG,QAAU,SAAY,CACxB,KAAK,aACP,KAAK,WAAa,GAClB,KAAK,kBAAoB,OACzB,KAAK,UAAW,EAChB,KAAK,sBAAsB,yBAAyB,EAEvD,EACD,KAAK,GAAG,UAAY,KAAK,WAAW,KAAK,IAAI,CACnD,CAAK,EACM,KAAK,kBAChB,CACE,MAAM,UAAW,CAEf,IADA,KAAK,aAAe,GAEJ,KAAK,eAAf,IAGJ,MAAMZ,GAAa,EAErB,KAAK,aAAe,EACxB,CACE,YAAa,CACX,MAAMT,EAAO,KAAK,qBAAqB,QAAS,EAChD,GAAI,CAACA,EACH,MAAO,GAET,MAAMsB,EAAQ1B,GAAkBI,CAAI,EACpC,GAAIsB,EAAO,CACT,MAAMC,EAAK,KAAK,SAAS,IAAID,CAAK,EAClC,GAAI,CAACC,EACH,OAEF,MAAMnB,EAAKV,GAASM,EAAM,IAAI,EACxBwB,EAAcD,EAAG,mBAAmBnB,CAAE,EAE5C,GADAmB,EAAG,gBAAgB,KAAMnB,CAAE,EACvBoB,EACF,MAER,CACI,GAAI,CACF,IAAIxwB,EAAO,KAAK,MAAMgvB,CAAI,EAC1B,OAAQhvB,EAAK,CAAC,EAAC,CACb,IAAK,QAAS,CACZ,MAAMuwB,EAAK,KAAK,SAAS,IAAIvwB,EAAK,CAAC,CAAC,EAC9BgnB,EAAQhnB,EAAK,CAAC,EAChB,KAAK,YAAYgnB,CAAK,GAAKuH,GAAagC,EAAG,QAASvJ,CAAK,GAC3DuJ,EAAG,QAAQvJ,CAAK,EAElB,MACV,CACQ,IAAK,QAAS,CACZ,MAAMoI,EAAKpvB,EAAK,CAAC,EACXywB,EAAUzwB,EAAK,CAAC,EAChBkwB,EAAK,KAAK,kBAAkB,IAAId,CAAE,EACpCc,IACFA,EAAG,QAAQO,EAAQ,KAAK,EACxB,KAAK,kBAAkB,OAAOrB,CAAE,GAElC,MACV,CACQ,IAAK,OAAQ,CACX,MAAMmB,EAAK,KAAK,SAAS,IAAIvwB,EAAK,CAAC,CAAC,EACpC,GAAI,CAACuwB,EACH,OACFA,EAAG,aAAc,EACjB,MACV,CACQ,IAAK,KAAM,CACT,MAAMnB,EAAKpvB,EAAK,CAAC,EACX0wB,EAAK1wB,EAAK,CAAC,EACX+vB,EAAS/vB,EAAK,CAAC,EACfiwB,EAAK,KAAK,mBAAmB,IAAIb,CAAE,EACrCa,IACES,EACFT,EAAG,QAAQF,CAAM,EAEjBE,EAAG,OAAO,IAAI,MAAMF,CAAM,CAAC,EAC7B,KAAK,mBAAmB,OAAOX,CAAE,GAEnC,MACV,CACQ,IAAK,SAAU,CACb,MAAMA,EAAKpvB,EAAK,CAAC,EACXuwB,EAAK,KAAK,SAAS,IAAInB,CAAE,EAC/B,GAAI,CAACmB,EACH,OACFA,EAAG,OAAS,GACZA,EAAG,MAAMvwB,EAAK,CAAC,CAAC,EAChB,MACV,CACQ,IAAK,SACH,KAAK,SAASA,EAAK,CAAC,CAAC,EACrB,OACF,IAAK,OAAQ,CACX,KAAK,UAAYA,EAAK,CAAC,EACvB,KAAK,UAAUA,EAAK,CAAC,CAAC,EACtB,MACV,CACA,CACK,MAAa,CACZ,MACN,CACA,CACE,MAAM,KAAK6V,EAAS,CAClB,GAAI,CAAC,KAAK,kBACR,MAAM,IAAI,MAAM,8BAA8B,EAChD,KAAK,kBAAkB,KAAK,IAAM,CAChC,KAAK,IAAI,KAAKA,CAAO,CAC3B,CAAK,CACL,CACE,MAAM,KAAK8a,EAAe,CACxB,GAAI,CAAC,KAAK,UACR,MAAM,IAAI,MAAM,+CAA+C,EACjE,MAAMlI,EAAM,MAAMkI,EAAcpB,GAAc,KAAK,IAAK,KAAK,SAAS,CAAC,EACjEqB,EAAM,IAAI,QAAQ,CAAClB,EAASS,IAAW,CAC3C,KAAK,mBAAmB,IAAI1H,EAAI,GAAI,CAAE,QAAAiH,EAAS,OAAAS,EAAQ,CAC7D,CAAK,EACD,YAAK,KAAK,WAAa,KAAK,UAAU1H,CAAG,EAAI,GAAG,EACzCmI,CACX,CACE,MAAM,QAAQ5J,EAAO,CACnB,MAAM4J,EAAM,IAAI,QAAQ,CAAClB,EAASS,IAAW,CAC3C,KAAK,mBAAmB,IAAInJ,EAAM,GAAI,CAAE,QAAA0I,EAAS,OAAAS,EAAQ,CAC/D,CAAK,EACD,YAAK,KAAK,YAAc,KAAK,UAAUnJ,CAAK,EAAI,GAAG,EACnD,WAAW,IAAM,CACf,MAAMiJ,EAAK,KAAK,mBAAmB,IAAIjJ,EAAM,EAAE,EAC3CiJ,IACFA,EAAG,OAAO,IAAI,MAAM,mBAAmB,CAAC,EACxC,KAAK,mBAAmB,OAAOjJ,EAAM,EAAE,EAE/C,EAAO,KAAK,cAAc,EACf4J,CACX,CACE,MAAM,MAAMpC,EAASzQ,EAAQ,CAC3B,KAAK,SACL,MAAMqR,EAAKrR,GAAQ,IAAM,SAAW,KAAK,OACnC6S,EAAM,IAAI,QAAQ,CAAClB,EAASS,IAAW,CAC3C,KAAK,kBAAkB,IAAIf,EAAI,CAAE,QAAAM,EAAS,OAAAS,EAAQ,CACxD,CAAK,EACD,YAAK,KAAK,aAAef,EAAK,KAAO,KAAK,UAAUZ,CAAO,EAAE,UAAU,CAAC,CAAC,EAClEoC,CACX,CACE,UAAUpC,EAASzQ,EAAQ,CACzB,MAAM8S,EAAe,KAAK,oBAAoBrC,EAASzQ,CAAM,EAC7D,OAAA8S,EAAa,KAAM,EACZA,CACX,CACE,oBAAoBrC,EAASzQ,EAAQ,CACnC,KAAK,SACL,MAAMqR,EAAKrR,EAAO,IAAM,OAAS,KAAK,OAChC8S,EAAe,IAAIC,GAAa,KAAM1B,EAAIZ,EAASzQ,CAAM,EAC/D,YAAK,SAAS,IAAIqR,EAAIyB,CAAY,EAC3BA,CACX,CACE,OAAQ,CACN,KAAK,sBAAsB,+BAA+B,EAC1D,KAAK,WAAa,GAClB,KAAK,IAAI,MAAO,CACpB,CACE,WAAWR,EAAI,CACb,KAAK,qBAAqB,QAAQA,EAAG,IAAI,EACpC,KAAK,cACR,KAAK,SAAU,CAErB,CACA,EACIS,GAAe,KAAM,CACvB,MACA,GACA,OAAS,GACT,MAAQ,GACR,QACA,iBACA,cACA,QACA,OACA,QACA,YACA,kBACA,YAAYhB,EAAOV,EAAIZ,EAASzQ,EAAQ,CACtC,KAAK,MAAQ+R,EACb,KAAK,QAAUtB,EACf,KAAK,GAAKY,EACV,KAAK,iBAAmBrR,EAAO,iBAC/B,KAAK,cAAgBA,EAAO,cAC5B,KAAK,YAAcA,EAAO,aAAe+R,EAAM,gBAC/C,KAAK,OAAS/R,EAAO,OACrB,KAAK,QAAUA,EAAO,QACtB,KAAK,QAAUA,EAAO,UAAaiJ,GAAU,CAC3C,QAAQ,KACN,oDAAoD,KAAK,EAAE,cAAc,KAAK,MAAM,GAAG,oBACvFA,CACD,CACP,EACA,CACE,MAAO,CACL,KAAK,MAAM,KAAK,WAAa,KAAK,GAAK,KAAO,KAAK,UAAU,KAAK,OAAO,EAAE,UAAU,CAAC,CAAC,EACvF,KAAK,kBAAoB,WAAW,KAAK,aAAa,KAAK,IAAI,EAAG,KAAK,WAAW,CACtF,CACE,cAAe,CACT,KAAK,QAET,aAAa,KAAK,iBAAiB,EACnC,KAAK,MAAQ,GACb,KAAK,SAAU,EACnB,CACE,MAAM+I,EAAS,mBAAoB,CAC7B,CAAC,KAAK,QAAU,KAAK,MAAM,YAC7B,KAAK,MAAM,KAAK,YAAc,KAAK,UAAU,KAAK,EAAE,EAAI,GAAG,EAC3D,KAAK,OAAS,IAEhB,KAAK,MAAM,SAAS,OAAO,KAAK,EAAE,EAClC,KAAK,UAAUA,CAAM,CACzB,CACA,EAGIgB,GACJ,GAAI,CACFA,GAAa,SACf,MAAQ,CACR,CACA,IAAIC,GAAQ,cAAcnB,EAAc,CACtC,YAAYlI,EAAK,CACf,MAAMA,EAAK,CAAE,YAAAkB,GAAa,wBAAyBkI,EAAU,CAAE,CACnE,CACE,aAAa,QAAQpJ,EAAK,CACxB,MAAMmI,EAAQ,IAAIkB,GAAMrJ,CAAG,EAC3B,aAAMmI,EAAM,QAAS,EACdA,CACX,CACA,EA8KImB,GACJ,GAAI,CACFA,GAAc,SAChB,MAAQ,CACR,CAQA,IAAIC,GAAgB,CAAE,EACtBxK,EAASwK,GAAe,CACtB,aAAc,IAAMC,GACpB,cAAe,IAAMC,GACrB,eAAgB,IAAMC,GACtB,OAAQ,IAAMvX,GACd,YAAa,IAAMwX,GACnB,YAAa,IAAMC,GACnB,aAAc,IAAMC,GACpB,WAAY,IAAMC,GAClB,eAAgB,IAAMC,GACtB,WAAY,IAAMC,GAClB,WAAY,IAAMC,EACpB,CAAC,EAGD,IAAIP,GAAiB,CACnB,WAAar2B,GAAU,sBAAsB,KAAKA,GAAS,EAAE,EAC7D,SAAWA,GAAU,oBAAoB,KAAKA,GAAS,EAAE,EACzD,QAAUA,GAAU,mBAAmB,KAAKA,GAAS,EAAE,EACvD,OAASA,GAAU,qBAAqB,KAAKA,GAAS,EAAE,EACxD,OAASA,GAAU,qBAAqB,KAAKA,GAAS,EAAE,EACxD,OAASA,GAAU,kBAAkB,KAAKA,GAAS,EAAE,EACrD,YAAcA,GAAU,uBAAuB,KAAKA,GAAS,EAAE,CACjE,EACIo2B,GAAgB,IAChBD,GAAe,2DACnB,SAASU,GAAoBlzB,EAAQ,CACnC,MAAMmzB,EAAa,IAAI,WAAW,CAAC,EACnC,OAAAA,EAAW,CAAC,EAAInzB,GAAU,GAAK,IAC/BmzB,EAAW,CAAC,EAAInzB,GAAU,GAAK,IAC/BmzB,EAAW,CAAC,EAAInzB,GAAU,EAAI,IAC9BmzB,EAAW,CAAC,EAAInzB,EAAS,IAClBmzB,CACT,CACA,SAAShY,GAAOiY,EAAO,CACrB,GAAI,CAAE,OAAAnf,EAAQ,MAAA2J,CAAO,EAAGe,GAAO,OAAOyU,EAAOX,EAAa,EACtDpxB,EAAO,IAAI,WAAWsd,GAAO,UAAUf,CAAK,CAAC,EACjD,OAAQ3J,EAAM,CACZ,IAAK,WAAY,CACf,IAAIof,EAAMC,GAASjyB,CAAI,EACvB,GAAI,CAACgyB,EAAI,CAAC,IAAI,CAAC,EACb,MAAM,IAAI,MAAM,4BAA4B,EAC9C,GAAIA,EAAI,CAAC,EAAE,CAAC,EAAE,SAAW,GACvB,MAAM,IAAI,MAAM,0BAA0B,EAC5C,MAAO,CACL,KAAM,WACN,KAAM,CACJ,OAAQE,EAAYF,EAAI,CAAC,EAAE,CAAC,CAAC,EAC7B,OAAQA,EAAI,CAAC,EAAIA,EAAI,CAAC,EAAE,IAAKh1B,GAAMyqB,GAAY,OAAOzqB,CAAC,CAAC,EAAI,EACtE,CACO,CACP,CACI,IAAK,SAAU,CACb,IAAIg1B,EAAMC,GAASjyB,CAAI,EACvB,GAAI,CAACgyB,EAAI,CAAC,IAAI,CAAC,EACb,MAAM,IAAI,MAAM,0BAA0B,EAC5C,GAAIA,EAAI,CAAC,EAAE,CAAC,EAAE,SAAW,GACvB,MAAM,IAAI,MAAM,0BAA0B,EAC5C,GAAIA,EAAI,CAAC,GAAKA,EAAI,CAAC,EAAE,CAAC,EAAE,SAAW,GACjC,MAAM,IAAI,MAAM,0BAA0B,EAC5C,GAAIA,EAAI,CAAC,GAAKA,EAAI,CAAC,EAAE,CAAC,EAAE,SAAW,EACjC,MAAM,IAAI,MAAM,yBAAyB,EAC3C,MAAO,CACL,KAAM,SACN,KAAM,CACJ,GAAIE,EAAYF,EAAI,CAAC,EAAE,CAAC,CAAC,EACzB,OAAQA,EAAI,CAAC,EAAIA,EAAI,CAAC,EAAE,IAAKh1B,GAAMyqB,GAAY,OAAOzqB,CAAC,CAAC,EAAI,CAAE,EAC9D,OAAQg1B,EAAI,CAAC,IAAI,CAAC,EAAIE,EAAYF,EAAI,CAAC,EAAE,CAAC,CAAC,EAAI,OAC/C,KAAMA,EAAI,CAAC,IAAI,CAAC,EAAI,SAASE,EAAYF,EAAI,CAAC,EAAE,CAAC,CAAC,EAAG,EAAE,EAAI,MACrE,CACO,CACP,CACI,IAAK,QAAS,CACZ,IAAIA,EAAMC,GAASjyB,CAAI,EACvB,GAAI,CAACgyB,EAAI,CAAC,IAAI,CAAC,EACb,MAAM,IAAI,MAAM,yBAAyB,EAC3C,GAAI,CAACA,EAAI,CAAC,IAAI,CAAC,EACb,MAAM,IAAI,MAAM,yBAAyB,EAC3C,GAAIA,EAAI,CAAC,EAAE,CAAC,EAAE,SAAW,GACvB,MAAM,IAAI,MAAM,0BAA0B,EAC5C,GAAI,CAACA,EAAI,CAAC,IAAI,CAAC,EACb,MAAM,IAAI,MAAM,yBAAyB,EAC3C,GAAIA,EAAI,CAAC,EAAE,CAAC,EAAE,SAAW,EACvB,MAAM,IAAI,MAAM,yBAAyB,EAC3C,MAAO,CACL,KAAM,QACN,KAAM,CACJ,WAAYvK,GAAY,OAAOuK,EAAI,CAAC,EAAE,CAAC,CAAC,EACxC,OAAQE,EAAYF,EAAI,CAAC,EAAE,CAAC,CAAC,EAC7B,KAAM,SAASE,EAAYF,EAAI,CAAC,EAAE,CAAC,CAAC,EAAG,EAAE,EACzC,OAAQA,EAAI,CAAC,EAAIA,EAAI,CAAC,EAAE,IAAKh1B,GAAMyqB,GAAY,OAAOzqB,CAAC,CAAC,EAAI,EACtE,CACO,CACP,CACI,IAAK,OACH,MAAO,CAAE,KAAM4V,EAAQ,KAAA5S,CAAM,EAC/B,IAAK,OACL,IAAK,OACH,MAAO,CAAE,KAAM4S,EAAQ,KAAMsf,EAAYlyB,CAAI,CAAG,EAClD,QACE,MAAM,IAAI,MAAM,kBAAkB4S,CAAM,EAAE,CAChD,CACA,CACA,SAASqf,GAASjyB,EAAM,CACtB,IAAItE,EAAS,CAAE,EACXy2B,EAAOnyB,EACX,KAAOmyB,EAAK,OAAS,GAAG,CACtB,IAAI/1B,EAAI+1B,EAAK,CAAC,EACVr1B,EAAIq1B,EAAK,CAAC,EACV/0B,EAAI+0B,EAAK,MAAM,EAAG,EAAIr1B,CAAC,EAE3B,GADAq1B,EAAOA,EAAK,MAAM,EAAIr1B,CAAC,EACnBM,EAAE,OAASN,EACb,MAAM,IAAI,MAAM,kCAAkCV,CAAC,EAAE,EACvDV,EAAOU,CAAC,EAAIV,EAAOU,CAAC,GAAK,CAAE,EAC3BV,EAAOU,CAAC,EAAE,KAAKgB,CAAC,CACpB,CACE,OAAO1B,CACT,CACA,SAASk2B,GAAW72B,EAAK,CACvB,OAAOu2B,GAAY,OAAQv2B,CAAG,CAChC,CACA,SAAS42B,GAAW/tB,EAAK,CACvB,OAAO0tB,GAAY,OAAQttB,GAAWJ,CAAG,CAAC,CAC5C,CACA,SAAS6tB,GAAW7tB,EAAK,CACvB,OAAO0tB,GAAY,OAAQttB,GAAWJ,CAAG,CAAC,CAC5C,CACA,SAASwuB,GAAaxf,EAAQ5S,EAAM,CAClC,IAAIuc,EAAQe,GAAO,QAAQtd,CAAI,EAC/B,OAAOsd,GAAO,OAAO1K,EAAQ2J,EAAO6U,EAAa,CACnD,CACA,SAASE,GAAY1e,EAAQhU,EAAO,CAClC,OAAOwzB,GAAaxf,EAAQhU,CAAK,CACnC,CACA,SAAS8yB,GAAeW,EAAS,CAC/B,IAAIryB,EAAOsyB,GAAU,CACnB,EAAG,CAACtuB,GAAWquB,EAAQ,MAAM,CAAC,EAC9B,GAAIA,EAAQ,QAAU,CAAE,GAAE,IAAK1K,GAAQD,GAAY,OAAOC,CAAG,CAAC,CAClE,CAAG,EACD,OAAOyK,GAAa,WAAYpyB,CAAI,CACtC,CACA,SAASwxB,GAAaxK,EAAO,CAC3B,IAAIuL,EACAvL,EAAM,OAAS,SACjBuL,EAAYV,GAAoB7K,EAAM,IAAI,GAE5C,IAAIhnB,EAAOsyB,GAAU,CACnB,EAAG,CAACtuB,GAAWgjB,EAAM,EAAE,CAAC,EACxB,GAAIA,EAAM,QAAU,IAAI,IAAKW,GAAQD,GAAY,OAAOC,CAAG,CAAC,EAC5D,EAAGX,EAAM,OAAS,CAAChjB,GAAWgjB,EAAM,MAAM,CAAC,EAAI,CAAE,EACjD,EAAGuL,EAAY,CAAC,IAAI,WAAWA,CAAS,CAAC,EAAI,EACjD,CAAG,EACD,OAAOH,GAAa,SAAUpyB,CAAI,CACpC,CACA,SAASuxB,GAAYiB,EAAM,CACzB,IAAI/2B,EAAO,IAAI,YAAY,CAAC,EAC5B,IAAI,SAASA,CAAI,EAAE,UAAU,EAAG+2B,EAAK,KAAM,EAAK,EAChD,IAAIxyB,EAAOsyB,GAAU,CACnB,EAAG,CAAC5K,GAAY,OAAO8K,EAAK,UAAU,CAAC,EACvC,GAAIA,EAAK,QAAU,IAAI,IAAK7K,GAAQD,GAAY,OAAOC,CAAG,CAAC,EAC3D,EAAG,CAAC3jB,GAAWwuB,EAAK,MAAM,CAAC,EAC3B,EAAG,CAAC,IAAI,WAAW/2B,CAAI,CAAC,CAC5B,CAAG,EACD,OAAO22B,GAAa,QAASpyB,CAAI,CACnC,CACA,SAASsyB,GAAUN,EAAK,CACtB,IAAIS,EAAU,CAAE,EAChB,cAAO,QAAQT,CAAG,EAAE,QAAO,EAAG,QAAQ,CAAC,CAAC51B,EAAGs2B,CAAE,IAAM,CACjDA,EAAG,QAASt1B,GAAM,CAChB,IAAIu1B,EAAQ,IAAI,WAAWv1B,EAAE,OAAS,CAAC,EACvCu1B,EAAM,IAAI,CAAC,SAASv2B,CAAC,CAAC,EAAG,CAAC,EAC1Bu2B,EAAM,IAAI,CAACv1B,EAAE,MAAM,EAAG,CAAC,EACvBu1B,EAAM,IAAIv1B,EAAG,CAAC,EACdq1B,EAAQ,KAAKE,CAAK,CACxB,CAAK,CACL,CAAG,EACM1yB,GAAY,GAAGwyB,CAAO,CAC/B,CA4FA,IAAIG,GAAgB,CAAE,EACtBlM,EAASkM,GAAe,CACtB,QAAS,IAAM3S,GACf,QAAS,IAAMF,EACjB,CAAC,EAKD,eAAeA,GAAQsI,EAAWgH,EAAQwD,EAAM,CAC9C,MAAMC,EAAUzK,aAAqB,WAAa0K,EAAY1K,CAAS,EAAIA,EACrEttB,EAAMwc,GAAU,gBAAgBub,EAAS,KAAOzD,CAAM,EACtD2D,EAAgBC,GAAel4B,CAAG,EACxC,IAAIgmB,EAAK,WAAW,KAAKrgB,GAAY,EAAE,CAAC,EACpC4f,EAAYoH,GAAY,OAAOmL,CAAI,EACnC3R,EAAaJ,GAAIkS,EAAejS,CAAE,EAAE,QAAQT,CAAS,EACrD4S,EAAQzX,GAAO,OAAO,IAAI,WAAWyF,CAAU,CAAC,EAChDiS,EAAQ1X,GAAO,OAAO,IAAI,WAAWsF,EAAG,MAAM,CAAC,EACnD,MAAO,GAAGmS,CAAK,OAAOC,CAAK,EAC7B,CACA,eAAelT,GAAQoI,EAAWgH,EAAQrvB,EAAM,CAC9C,MAAM8yB,EAAUzK,aAAqB,WAAa0K,EAAY1K,CAAS,EAAIA,EAC3E,GAAI,CAAC6K,EAAOC,CAAK,EAAInzB,EAAK,MAAM,MAAM,EAClCjF,EAAMwc,GAAU,gBAAgBub,EAAS,KAAOzD,CAAM,EACtD2D,EAAgBC,GAAel4B,CAAG,EAClCgmB,EAAKtF,GAAO,OAAO0X,CAAK,EACxBjS,EAAazF,GAAO,OAAOyX,CAAK,EAChC5S,EAAYQ,GAAIkS,EAAejS,CAAE,EAAE,QAAQG,CAAU,EACzD,OAAOuG,GAAY,OAAOnH,CAAS,CACrC,CACA,SAAS2S,GAAel4B,EAAK,CAC3B,OAAOA,EAAI,MAAM,EAAG,EAAE,CACxB,CAGA,IAAIq4B,GAAgB,CAAE,EACtB1M,EAAS0M,GAAe,CACtB,YAAa,IAAMC,GACnB,QAAS,IAAMC,GACf,QAAS,IAAMC,GACf,aAAc,IAAMC,GACpB,aAAc,IAAMC,GACpB,uBAAwB,IAAMC,EAChC,CAAC,EACD,IAAIL,GAAc,0CACdC,GAAWt4B,GAAUq4B,GAAY,KAAKr4B,GAAS,EAAE,EACjD24B,GACJ,GAAI,CACFA,GAAS,KACX,MAAY,CAEZ,CACA,SAASD,GAAuBE,EAAqB,CACnDD,GAASC,CACX,CACA,eAAeH,GAAaI,EAAQC,EAAQ,GAAI,CAC9C,GAAI,CACF,MAAMnM,EAAM,WAAWkM,CAAM,gCAAgCC,CAAK,GAC5D/xB,EAAM,MAAM4xB,GAAOhM,EAAK,CAAE,SAAU,SAAU,EACpD,GAAI5lB,EAAI,SAAW,IACjB,MAAM,MAAM,qBAAqB,EAGnC,OADa,MAAMA,EAAI,KAAM,GACjB,KACb,MAAW,CACV,MAAO,CAAE,CACb,CACA,CACA,eAAeyxB,GAAaO,EAAU,CACpC,MAAMC,EAAQD,EAAS,MAAMV,EAAW,EACxC,GAAI,CAACW,EACH,OAAO,KACT,KAAM,EAAGpN,EAAO,IAAKiN,CAAM,EAAIG,EAC/B,GAAI,CACF,MAAMrM,EAAM,WAAWkM,CAAM,gCAAgCjN,CAAI,GAC3D7kB,EAAM,MAAM4xB,GAAOhM,EAAK,CAAE,SAAU,SAAU,EACpD,GAAI5lB,EAAI,SAAW,IACjB,MAAM,MAAM,qBAAqB,EAEnC,MAAMitB,EAAO,MAAMjtB,EAAI,KAAM,EACvBstB,EAASL,EAAK,MAAMpI,CAAI,EAC9B,OAAOyI,EAAS,CAAE,OAAAA,EAAQ,OAAQL,EAAK,SAASK,CAAM,CAAC,EAAK,IAC7D,MAAY,CACX,OAAO,IACX,CACA,CACA,eAAekE,GAAQlE,EAAQ4E,EAAO,CACpC,MAAMlyB,EAAM,MAAMyxB,GAAaS,CAAK,EACpC,OAAOlyB,EAAMA,EAAI,SAAWstB,EAAS,EACvC,CAGA,IAAI6E,GAAgB,CAAE,EACtBxN,EAASwN,GAAe,CACtB,MAAO,IAAMC,EACf,CAAC,EACD,SAASA,GAAMnN,EAAO,CACpB,MAAMtrB,EAAS,CACb,MAAO,OACP,KAAM,OACN,SAAU,CAAE,EACZ,SAAU,EACX,EACK04B,EAAQ,CAAE,EAChB,UAAWrc,KAAOiP,EAAM,KAClBjP,EAAI,CAAC,IAAM,KAAOA,EAAI,CAAC,GACzBqc,EAAM,KAAKrc,CAAG,EAEZA,EAAI,CAAC,IAAM,KAAOA,EAAI,CAAC,GACzBrc,EAAO,SAAS,KAAK,CACnB,OAAQqc,EAAI,CAAC,EACb,OAAQA,EAAI,CAAC,EAAI,CAACA,EAAI,CAAC,CAAC,EAAI,EACpC,CAAO,EAGL,QAASsc,EAAY,EAAGA,EAAYD,EAAM,OAAQC,IAAa,CAC7D,MAAMC,EAAOF,EAAMC,CAAS,EACtB,CAACh3B,EAAGk3B,EAAaC,EAAcC,CAAU,EAAIH,EAC7CI,EAAe,CACnB,GAAIH,EACJ,OAAQC,EAAe,CAACA,CAAY,EAAI,EACzC,EACKG,EAAcN,IAAc,EAC5BO,EAAaP,IAAcD,EAAM,OAAS,EAChD,GAAIK,IAAe,OAAQ,CACzB/4B,EAAO,KAAOg5B,EACd,QACN,CACI,GAAID,IAAe,QAAS,CAC1B/4B,EAAO,MAAQg5B,EACf,QACN,CACI,GAAID,IAAe,UAAW,CAC5B/4B,EAAO,SAAS,KAAKg5B,CAAY,EACjC,QACN,CACI,GAAIC,EAAa,CACfj5B,EAAO,KAAOg5B,EACd,QACN,CACI,GAAIE,EAAY,CACdl5B,EAAO,MAAQg5B,EACf,QACN,CACIh5B,EAAO,SAAS,KAAKg5B,CAAY,CACrC,CACE,OAAOh5B,CACT,CAGA,IAAIm5B,GAAgB,CAAE,EACtBnO,EAASmO,GAAe,CACtB,sBAAuB,IAAMC,GAC7B,uBAAwB,IAAMC,EAChC,CAAC,EACD,IAAIC,GACJ,GAAI,CACFA,GAAU,KACZ,MAAQ,CACR,CACA,SAASD,GAAwBnB,EAAqB,CACpDoB,GAAUpB,CACZ,CACA,eAAekB,GAAsBnN,EAAK,CACxC,OAAO,MAAO,MAAM,MAAMA,EAAI,QAAQ,QAAS,SAAS,EAAE,QAAQ,SAAU,UAAU,EAAG,CACvF,QAAS,CAAE,OAAQ,wBAAwB,CAC5C,IAAG,KAAM,CACZ,CAGA,IAAIsN,GAAgB,CAAE,EACtBvO,EAASuO,GAAe,CACtB,cAAe,IAAMC,GACrB,OAAQ,IAAMC,GACd,QAAS,IAAMC,EACjB,CAAC,EAGD,SAASD,GAAOvxB,EAAK,CACnB,IAAIyxB,EAAQ,EACZ,QAASpO,EAAK,EAAGA,EAAK,GAAIA,GAAM,EAAG,CACjC,MAAMqO,EAAS,SAAS1xB,EAAI,UAAUqjB,EAAIA,EAAK,CAAC,EAAG,EAAE,EACrD,GAAIqO,IAAW,EACbD,GAAS,OACJ,CACLA,GAAS,KAAK,MAAMC,CAAM,EAC1B,KACN,CACA,CACE,OAAOD,CACT,CACA,SAASD,GAAQG,EAAUC,EAAY,CACrC,IAAIH,EAAQ,EACZ,MAAMrO,EAAQuO,EACRxd,EAAM,CAAC,QAASsd,EAAM,WAAYG,EAAW,UAAU,EAE7D,IADAxO,EAAM,KAAK,KAAKjP,CAAG,IACN,CACX,MAAM0d,EAAO,KAAK,MAAM,IAAI,OAAO,QAAS,EAAG,GAAG,EAOlD,GANIA,IAASzO,EAAM,aACjBqO,EAAQ,EACRrO,EAAM,WAAayO,GAErB1d,EAAI,CAAC,GAAK,EAAEsd,GAAO,SAAU,EAC7BrO,EAAM,GAAKkO,GAAclO,CAAK,EAC1BmO,GAAOnO,EAAM,EAAE,GAAKwO,EACtB,KAEN,CACE,OAAOxO,CACT,CACA,SAASkO,GAAczM,EAAK,CAC1B,OAAOiN,EACLC,GAAQjO,GAAY,OAAO,KAAK,UAAU,CAAC,EAAGe,EAAI,OAAQA,EAAI,WAAYA,EAAI,KAAMA,EAAI,KAAMA,EAAI,OAAO,CAAC,CAAC,CAAC,CAC7G,CACH,CAGA,IAAImN,GAAgB,CAAE,EACtBlP,EAASkP,GAAe,CACtB,kBAAmB,IAAMC,GACzB,iBAAkB,IAAMC,GACxB,wBAAyB,IAAMC,EACjC,CAAC,EACD,SAASF,GAAkBz5B,EAAG45B,EAAUC,EAAUznB,EAAY,CAC5D,OAAOoa,GACL,CACE,KAAMsE,GACN,KAAM,CAAC,GAAG9wB,EAAE,MAAQ,GAAI,CAAC,IAAK45B,EAAS,GAAIC,CAAQ,EAAG,CAAC,IAAKD,EAAS,MAAM,CAAC,EAC5E,QAAS55B,EAAE,UAAY,GAAK,GAAK,KAAK,UAAU45B,CAAQ,EACxD,WAAY55B,EAAE,UACf,EACDoS,CACD,CACH,CACA,SAASunB,GAAwB/O,EAAO,CACtC,GAAIA,EAAM,OAASkG,GACjB,OAEF,IAAIgJ,EACAC,EACJ,QAASlP,EAAKD,EAAM,KAAK,OAAS,EAAGC,GAAM,IAAMiP,IAAa,QAAUC,IAAa,QAASlP,IAAM,CAClG,MAAMlP,EAAMiP,EAAM,KAAKC,CAAE,EACrBlP,EAAI,QAAU,IACZA,EAAI,CAAC,IAAM,KAAOme,IAAa,OACjCA,EAAWne,EACFA,EAAI,CAAC,IAAM,KAAOoe,IAAa,SACxCA,EAAWpe,GAGnB,CACE,GAAIme,IAAa,OAGjB,MAAO,CACL,GAAIA,EAAS,CAAC,EACd,OAAQ,CAACA,EAAS,CAAC,EAAGC,IAAW,CAAC,CAAC,EAAE,OAAQ14B,GAAM,OAAOA,GAAM,QAAQ,EACxE,OAAQ04B,IAAW,CAAC,CACrB,CACH,CACA,SAASL,GAAiB9O,EAAO,CAAE,iBAAAoP,CAAgB,EAAK,GAAI,CAC1D,MAAMC,EAAUN,GAAwB/O,CAAK,EAC7C,GAAIqP,IAAY,QAAUrP,EAAM,UAAY,GAC1C,OAEF,IAAIsP,EACJ,GAAI,CACFA,EAAgB,KAAK,MAAMtP,EAAM,OAAO,CACzC,MAAe,CACd,MACJ,CACE,GAAIsP,EAAc,KAAOD,EAAQ,IAG7B,GAACD,GAAoB,CAACvN,GAAYyN,CAAa,GAGnD,OAAOA,CACT,CAGA,IAAIC,GAAgB,CAAE,EACtB7P,EAAS6P,GAAe,CACtB,gBAAiB,IAAMC,GACvB,MAAO,IAAMC,GACb,KAAM,IAAMC,EACd,CAAC,EACD,IAAIF,GAAkB,IAAI,OAAO,UAAUrF,GAAa,MAAM,GAAG,EACjE,SAASuF,GAAK17B,EAAO,CACnB,OAAO,OAAOA,GAAU,UAAY,IAAI,OAAO,IAAIw7B,GAAgB,MAAM,GAAG,EAAE,KAAKx7B,CAAK,CAC1F,CACA,SAASy7B,GAAOE,EAAK,CACnB,MAAM3C,EAAQ2C,EAAI,MAAM,IAAI,OAAO,IAAIH,GAAgB,MAAM,GAAG,CAAC,EACjE,GAAI,CAACxC,EACH,MAAM,IAAI,MAAM,sBAAsB2C,CAAG,EAAE,EAC7C,MAAO,CACL,IAAK3C,EAAM,CAAC,EACZ,MAAOA,EAAM,CAAC,EACd,QAASla,GAAOka,EAAM,CAAC,CAAC,CACzB,CACH,CAGA,IAAI4C,GAAgB,CAAE,EACtBlQ,EAASkQ,GAAe,CACtB,oBAAqB,IAAMC,GAC3B,uBAAwB,IAAMC,EAChC,CAAC,EACD,SAASD,GAAoBz6B,EAAG26B,EAASvoB,EAAY,CACnD,MAAMwoB,EAAgBD,EAAQ,KAAK,OAAQhf,GAAQA,EAAI,QAAU,IAAMA,EAAI,CAAC,IAAM,KAAOA,EAAI,CAAC,IAAM,IAAI,EACxG,OAAO6Q,GACL,CACE,GAAGxsB,EACH,KAAMwwB,GACN,KAAM,CAAC,GAAGxwB,EAAE,MAAQ,CAAE,EAAE,GAAG46B,EAAe,CAAC,IAAKD,EAAQ,EAAE,EAAG,CAAC,IAAKA,EAAQ,MAAM,CAAC,EAClF,QAAS36B,EAAE,SAAW,GACvB,EACDoS,CACD,CACH,CACA,SAASsoB,GAAuB9P,EAAO,CACrC,GAAIA,EAAM,OAAS4F,GACjB,OAEF,IAAIsJ,EACAC,EACJ,QAASlP,EAAKD,EAAM,KAAK,OAAS,EAAGC,GAAM,IAAMiP,IAAa,QAAUC,IAAa,QAASlP,IAAM,CAClG,MAAMlP,EAAMiP,EAAM,KAAKC,CAAE,EACrBlP,EAAI,QAAU,IACZA,EAAI,CAAC,IAAM,KAAOme,IAAa,OACjCA,EAAWne,EACFA,EAAI,CAAC,IAAM,KAAOoe,IAAa,SACxCA,EAAWpe,GAGnB,CACE,GAAI,EAAAme,IAAa,QAAUC,IAAa,QAGxC,MAAO,CACL,GAAID,EAAS,CAAC,EACd,OAAQ,CAACA,EAAS,CAAC,EAAGC,EAAS,CAAC,CAAC,EAAE,OAAQ14B,GAAMA,IAAM,MAAM,EAC7D,OAAQ04B,EAAS,CAAC,CACnB,CACH,CAGA,IAAIc,GAAgB,CAAE,EACtBvQ,EAASuQ,GAAe,CACtB,SAAU,IAAMC,GAChB,MAAO,IAAMC,GACb,WAAY,IAAMC,EACpB,CAAC,EACD,IAAID,GAAQ,IAAM,IAAI,OAAO,MAAMX,GAAgB,MAAM,MAAO,GAAG,EACnE,SAAUU,GAASG,EAAS,CAC1B,MAAMC,EAAUD,EAAQ,SAASF,GAAK,CAAE,EACxC,UAAWnD,KAASsD,EAClB,GAAI,CACF,KAAM,CAACX,EAAK37B,CAAK,EAAIg5B,EACrB,KAAM,CACJ,IAAA2C,EACA,MAAA37B,EACA,QAAS8e,GAAO9e,CAAK,EACrB,MAAOg5B,EAAM,MACb,IAAKA,EAAM,MAAQ2C,EAAI,MACxB,CACF,MAAY,CACjB,CAEA,CACA,SAASS,GAAWC,EAASE,EAAU,CACrC,OAAOF,EAAQ,WAAWF,GAAO,EAAE,CAACR,EAAK37B,IAChCu8B,EAAS,CACd,IAAAZ,EACA,MAAA37B,EACA,QAAS8e,GAAO9e,CAAK,CAC3B,CAAK,CACF,CACH,CAGA,IAAIw8B,GAAgB,CAAE,EACtB9Q,EAAS8Q,GAAe,CACtB,mBAAoB,IAAMC,GAC1B,wBAAyB,IAAMC,GAC/B,oBAAqB,IAAMC,GAC3B,qBAAsB,IAAMC,GAC5B,qBAAsB,IAAMC,EAC9B,CAAC,EACD,IAAIJ,GAAqB,CAACr7B,EAAGoS,IAAe,CAC1C,IAAI6oB,EACJ,GAAI,OAAOj7B,EAAE,SAAY,SACvBi7B,EAAU,KAAK,UAAUj7B,EAAE,OAAO,UACzB,OAAOA,EAAE,SAAY,SAC9Bi7B,EAAUj7B,EAAE,YAEZ,QAEF,OAAOwsB,GACL,CACE,KAAMW,GACN,KAAM,CAAC,GAAGntB,EAAE,MAAQ,EAAE,EACtB,QAAAi7B,EACA,WAAYj7B,EAAE,UACf,EACDoS,CACD,CACH,EACIopB,GAAuB,CAACx7B,EAAGoS,IAAe,CAC5C,IAAI6oB,EACJ,GAAI,OAAOj7B,EAAE,SAAY,SACvBi7B,EAAU,KAAK,UAAUj7B,EAAE,OAAO,UACzB,OAAOA,EAAE,SAAY,SAC9Bi7B,EAAUj7B,EAAE,YAEZ,QAEF,OAAOwsB,GACL,CACE,KAAMc,GACN,KAAM,CAAC,CAAC,IAAKttB,EAAE,uBAAuB,EAAG,GAAGA,EAAE,MAAQ,EAAE,EACxD,QAAAi7B,EACA,WAAYj7B,EAAE,UACf,EACDoS,CACD,CACH,EACImpB,GAAsB,CAACv7B,EAAGoS,IAAe,CAC3C,MAAMspB,EAAO,CAAC,CAAC,IAAK17B,EAAE,wBAAyBA,EAAE,UAAW,MAAM,CAAC,EACnE,OAAIA,EAAE,mCACJ07B,EAAK,KAAK,CAAC,IAAK17B,EAAE,kCAAmCA,EAAE,UAAW,OAAO,CAAC,EAErEwsB,GACL,CACE,KAAMa,GACN,KAAM,CAAC,GAAGqO,EAAM,GAAG17B,EAAE,MAAQ,EAAE,EAC/B,QAASA,EAAE,QACX,WAAYA,EAAE,UACf,EACDoS,CACD,CACH,EACIkpB,GAA0B,CAACt7B,EAAGoS,IAAe,CAC/C,IAAI6oB,EACJ,GAAI,OAAOj7B,EAAE,SAAY,SACvBi7B,EAAU,KAAK,UAAUj7B,EAAE,OAAO,UACzB,OAAOA,EAAE,SAAY,SAC9Bi7B,EAAUj7B,EAAE,YAEZ,QAEF,OAAOwsB,GACL,CACE,KAAMY,GACN,KAAM,CAAC,CAAC,IAAKptB,EAAE,wBAAwB,EAAG,GAAGA,EAAE,MAAQ,EAAE,EACzD,QAAAi7B,EACA,WAAYj7B,EAAE,UACf,EACDoS,CACD,CACH,EACIqpB,GAAuB,CAACz7B,EAAGoS,IAAe,CAC5C,IAAI6oB,EACJ,GAAI,OAAOj7B,EAAE,SAAY,SACvBi7B,EAAU,KAAK,UAAUj7B,EAAE,OAAO,UACzB,OAAOA,EAAE,SAAY,SAC9Bi7B,EAAUj7B,EAAE,YAEZ,QAEF,OAAOwsB,GACL,CACE,KAAMe,GACN,KAAM,CAAC,CAAC,IAAKvtB,EAAE,cAAc,EAAG,GAAGA,EAAE,MAAQ,EAAE,EAC/C,QAAAi7B,EACA,WAAYj7B,EAAE,UACf,EACDoS,CACD,CACH,EAGIupB,GAAgB,CAAE,EACtBrR,EAASqR,GAAe,CACtB,sBAAuB,IAAMC,GAC7B,SAAU,IAAMC,GAChB,MAAO,IAAMC,GACb,WAAY,IAAMC,EACpB,CAAC,EACD,IAAIH,GAAwB,UACxBE,GAAS,IAAM,IAAI,OAAO,MAAMF,GAAsB,MAAM,MAAO,GAAG,EAC1E,SAAUC,GAAUZ,EAAS,CAC3B,MAAMC,EAAUD,EAAQ,SAASa,GAAM,CAAE,EACzC,UAAWlE,KAASsD,EAClB,GAAI,CACF,KAAM,CAACc,EAAWxR,CAAI,EAAIoN,EAC1B,KAAM,CACJ,UAAAoE,EACA,KAAAxR,EACA,MAAOoN,EAAM,MACb,IAAKA,EAAM,MAAQoE,EAAU,MAC9B,CACF,MAAY,CACjB,CAEA,CACA,SAASD,GAAYd,EAASE,EAAU,CACtC,OAAOF,EAAQ,WAAWa,GAAQ,EAAE,CAACE,EAAWxR,IACvC2Q,EAAS,CACd,UAAAa,EACA,KAAAxR,CACN,CAAK,CACF,CACH,CAGA,IAAIyR,GAAgB,CAAE,EACtB3R,EAAS2R,GAAe,CACtB,uBAAwB,IAAMC,GAC9B,eAAgB,IAAMC,EACxB,CAAC,EACD,IAAIC,GACJ,GAAI,CACFA,GAAU,KACZ,MAAQ,CACR,CACA,SAASF,GAAwB1E,EAAqB,CACpD4E,GAAU5E,CACZ,CACA,eAAe2E,GAAelJ,EAAQoJ,EAAUC,EAAO,CACrD,GAAI,CAEF,OADU,MAAO,MAAMF,GAAQ,2BAA2BC,CAAQ,IAAIC,CAAK,MAAM,GAAG,KAAM,IAC3E,4DAA4DrJ,CAAM,EAClF,MAAW,CACV,MAAO,EACX,CACA,CAGA,IAAIsJ,GAAgB,CAAE,EACtBjS,EAASiS,GAAe,CACtB,QAAS,IAAMC,GACf,QAAS,IAAMC,GACf,mBAAoB,IAAMC,GAC1B,GAAI,IAAMC,EACZ,CAAC,EASD,IAAIC,GAAmB,EACnBC,GAAmB,MACvB,SAASH,GAAmBI,EAAUC,EAAS,CAC7C,MAAMC,EAAUC,GAAW,gBAAgBH,EAAU,KAAOC,CAAO,EAAE,SAAS,EAAG,EAAE,EACnF,OAAOG,GAAaC,GAASH,EAAS,UAAU,CAClD,CACA,SAASI,GAAeC,EAAiBhX,EAAO,CAC9C,MAAMiX,EAAOC,GAAYJ,GAASE,EAAiBhX,EAAO,EAAE,EAC5D,MAAO,CACL,WAAYiX,EAAK,SAAS,EAAG,EAAE,EAC/B,aAAcA,EAAK,SAAS,GAAI,EAAE,EAClC,SAAUA,EAAK,SAAS,GAAI,EAAE,CAC/B,CACH,CACA,SAASE,GAAcp4B,EAAK,CAC1B,GAAI,CAAC,OAAO,cAAcA,CAAG,GAAKA,EAAM,EACtC,MAAM,IAAI,MAAM,2BAA2B,EAC7C,GAAIA,GAAO,GACT,MAAO,IACT,MAAMq4B,EAAY,GAAK,KAAK,MAAM,KAAK,KAAKr4B,EAAM,CAAC,CAAC,EAAI,EAClDs4B,EAAQD,GAAa,IAAM,GAAKA,EAAY,EAClD,OAAOC,GAAS,KAAK,OAAOt4B,EAAM,GAAKs4B,CAAK,EAAI,EAClD,CACA,SAASC,GAAWj2B,EAAK,CACvB,GAAI,CAAC,OAAO,cAAcA,CAAG,GAAKA,EAAMk1B,IAAoBl1B,EAAMm1B,GAChE,MAAM,IAAI,MAAM,2DAA2D,EAC7E,MAAMz5B,EAAM,IAAI,WAAW,CAAC,EAC5B,WAAI,SAASA,EAAI,MAAM,EAAE,UAAU,EAAGsE,EAAK,EAAK,EACzCtE,CACT,CACA,SAASY,GAAIkgB,EAAW,CACtB,MAAM0Z,EAAWtS,GAAY,OAAOpH,CAAS,EACvC2Z,EAAcD,EAAS,OACvBpnB,EAASmnB,GAAWE,CAAW,EAC/BC,EAAS,IAAI,WAAWN,GAAcK,CAAW,EAAIA,CAAW,EACtE,OAAOE,GAAavnB,EAAQonB,EAAUE,CAAM,CAC9C,CACA,SAASE,GAAMC,EAAQ,CACrB,MAAMJ,EAAc,IAAI,SAASI,EAAO,MAAM,EAAE,UAAU,CAAC,EACrDL,EAAWK,EAAO,SAAS,EAAG,EAAIJ,CAAW,EACnD,GAAIA,EAAcjB,IAAoBiB,EAAchB,IAAoBe,EAAS,SAAWC,GAAeI,EAAO,SAAW,EAAIT,GAAcK,CAAW,EACxJ,MAAM,IAAI,MAAM,iBAAiB,EACnC,OAAOxS,GAAY,OAAOuS,CAAQ,CACpC,CACA,SAASM,GAAQv/B,EAAK8a,EAAS0kB,EAAK,CAClC,GAAIA,EAAI,SAAW,GACjB,MAAM,IAAI,MAAM,sCAAsC,EACxD,MAAMC,EAAWL,GAAaI,EAAK1kB,CAAO,EAC1C,OAAOD,GAAK2jB,GAASx+B,EAAKy/B,CAAQ,CACpC,CACA,SAASC,GAAchK,EAAS,CAC9B,GAAI,OAAOA,GAAY,SACrB,MAAM,IAAI,MAAM,gCAAgC,EAClD,MAAMiK,EAAOjK,EAAQ,OACrB,GAAIiK,EAAO,KAAOA,EAAO,MACvB,MAAM,IAAI,MAAM,2BAA6BA,CAAI,EACnD,GAAIjK,EAAQ,CAAC,IAAM,IACjB,MAAM,IAAI,MAAM,4BAA4B,EAC9C,IAAIzwB,EACJ,GAAI,CACFA,EAAO26B,GAAQ,OAAOlK,CAAO,CAC9B,OAAQtb,EAAO,CACd,MAAM,IAAI,MAAM,mBAAqBA,EAAM,OAAO,CACtD,CACE,MAAMylB,EAAO56B,EAAK,OAClB,GAAI46B,EAAO,IAAMA,EAAO,MACtB,MAAM,IAAI,MAAM,wBAA0BA,CAAI,EAChD,MAAMC,EAAO76B,EAAK,CAAC,EACnB,GAAI66B,IAAS,EACX,MAAM,IAAI,MAAM,8BAAgCA,CAAI,EACtD,MAAO,CACL,MAAO76B,EAAK,SAAS,EAAG,EAAE,EAC1B,WAAYA,EAAK,SAAS,GAAI,GAAG,EACjC,IAAKA,EAAK,SAAS,GAAG,CACvB,CACH,CACA,SAAS64B,GAASvY,EAAWmZ,EAAiBhX,EAAQqY,GAAa,EAAE,EAAG,CACtE,KAAM,CAAE,WAAAC,EAAY,aAAAC,EAAc,SAAAC,CAAU,EAAGzB,GAAeC,EAAiBhX,CAAK,EAC9E4X,EAASj6B,GAAIkgB,CAAS,EACtBY,EAAa4E,GAASiV,EAAYC,EAAcX,CAAM,EACtDa,EAAMZ,GAAQW,EAAU/Z,EAAYuB,CAAK,EAC/C,OAAOkY,GAAQ,OAAOR,GAAa,IAAI,WAAW,CAAC,CAAC,CAAC,EAAG1X,EAAOvB,EAAYga,CAAG,CAAC,CACjF,CACA,SAAStC,GAASnI,EAASgJ,EAAiB,CAC1C,KAAM,CAAE,MAAAhX,EAAO,WAAAvB,EAAY,IAAAga,CAAG,EAAKT,GAAchK,CAAO,EAClD,CAAE,WAAAsK,EAAY,aAAAC,EAAc,SAAAC,CAAU,EAAGzB,GAAeC,EAAiBhX,CAAK,EAC9E0Y,EAAgBb,GAAQW,EAAU/Z,EAAYuB,CAAK,EACzD,GAAI,CAAC7d,GAAWu2B,EAAeD,CAAG,EAChC,MAAM,IAAI,MAAM,aAAa,EAC/B,MAAMb,EAASvU,GAASiV,EAAYC,EAAc9Z,CAAU,EAC5D,OAAOkZ,GAAMC,CAAM,CACrB,CACA,IAAItB,GAAK,CACP,MAAO,CACL,mBAAAD,GACA,cAAAc,EACD,EACD,QAASf,GACT,QAASD,EACX,EAGIwC,GAAgB,CAAE,EACtB1U,EAAS0U,GAAe,CACtB,oBAAqB,IAAMC,GAC3B,sBAAuB,IAAMC,EAC/B,CAAC,EACD,SAASA,GAAsBC,EAAkB,CAC/C,KAAM,CAAE,SAAAC,EAAU,aAAAC,CAAc,EAAG,IAAI,IAAIF,CAAgB,EACrDlM,EAASmM,EACT1L,EAAQ2L,EAAa,IAAI,OAAO,EAChCC,EAASD,EAAa,IAAI,QAAQ,EACxC,GAAI,CAACpM,GAAU,CAACS,GAAS,CAAC4L,EACxB,MAAM,IAAI,MAAM,2BAA2B,EAE7C,MAAO,CAAE,OAAArM,EAAQ,MAAAS,EAAO,OAAA4L,CAAQ,CAClC,CACA,eAAeL,GAAoBhM,EAAQhH,EAAWsT,EAAS,CAO7D,MAAMC,EAAmB,MAAM7b,GAAQsI,EAAWgH,EAAQ,KAAK,UAN/C,CACd,OAAQ,cACR,OAAQ,CACN,QAAAsM,CACN,CACG,CAC+E,CAAC,EAC3EE,EAAgB,CACpB,KAAM1P,GACN,WAAY,KAAK,MAAM,KAAK,IAAG,EAAK,GAAG,EACvC,QAASyP,EACT,KAAM,CAAC,CAAC,IAAKvM,CAAM,CAAC,CACrB,EACD,OAAOzG,GAAciT,EAAexT,CAAS,CAC/C,CAGA,IAAIyT,GAAgB,CAAE,EACtBpV,EAASoV,GAAe,CACtB,eAAgB,IAAMC,GACtB,eAAgB,IAAMC,GACtB,eAAgB,IAAMC,GACtB,uBAAwB,IAAMC,GAC9B,mBAAoB,IAAMC,EAC5B,CAAC,EAED,IAAIC,GACJ,GAAI,CACFA,GAAU,KACZ,MAAQ,CACR,CACA,SAASF,GAAwBtI,EAAqB,CACpDwI,GAAUxI,CACZ,CACA,eAAemI,GAAeM,EAAU,CACtC,GAAI,CACF,IAAIC,EAAQ,GACR,CAAE,MAAAC,EAAO,MAAAC,CAAO,EAAG,KAAK,MAAMH,EAAS,OAAO,EAClD,GAAIE,EAAO,CACT,GAAI,CAAE,MAAAhgB,CAAK,EAAKkgB,GAAQ,OAAOF,EAAO,GAAG,EACrCv8B,EAAOy8B,GAAQ,UAAUlgB,CAAK,EAClC+f,EAAQ7U,GAAY,OAAOznB,CAAI,CAChC,SAAUw8B,EAAO,CAChB,GAAI,CAAC5V,EAAMiN,CAAM,EAAI2I,EAAM,MAAM,GAAG,EACpCF,EAAQ,IAAI,IAAI,uBAAuB1V,CAAI,GAAI,WAAWiN,CAAM,EAAE,EAAE,SAAU,CACpF,KACM,QAAO,KAGT,IAAI6I,EAAO,MADD,MAAMN,GAAQE,CAAK,GACR,KAAM,EAC3B,GAAII,EAAK,aAAeA,EAAK,YAC3B,OAAOA,EAAK,QAEf,MAAa,CAChB,CACE,OAAO,IACT,CACA,SAAST,GAAe,CACtB,QAAA5J,EACA,MAAArL,EACA,OAAA2V,EACA,OAAAC,EACA,QAAAC,EAAU,EACZ,EAAG,CACD,GAAI,CAACF,EACH,MAAM,IAAI,MAAM,kBAAkB,EACpC,GAAI,CAACtK,EACH,MAAM,IAAI,MAAM,mBAAmB,EACrC,IAAIyK,EAAK,CACP,KAAM,KACN,WAAY,KAAK,MAAM,KAAK,IAAG,EAAK,GAAG,EACvC,QAASD,EACT,KAAM,CACJ,CAAC,IAAKxK,CAAO,EACb,CAAC,SAAUsK,EAAO,UAAU,EAC5B,CAAC,SAAU,GAAGC,CAAM,CAC1B,CACG,EACD,OAAI5V,GACF8V,EAAG,KAAK,KAAK,CAAC,IAAK9V,CAAK,CAAC,EAEpB8V,CACT,CACA,SAASX,GAAmBY,EAAkB,CAC5C,IAAIC,EACJ,GAAI,CACFA,EAAa,KAAK,MAAMD,CAAgB,CACzC,MAAa,CACZ,MAAO,2BACX,CACE,GAAI,CAAChW,GAAciW,CAAU,EAC3B,MAAO,0CACT,GAAI,CAACnU,GAAYmU,CAAU,EACzB,MAAO,oCACT,IAAIjgC,EAAIigC,EAAW,KAAK,KAAK,CAAC,CAAC5gC,EAAGgB,CAAC,IAAMhB,IAAM,KAAOgB,CAAC,EACvD,GAAI,CAACL,EACH,MAAO,sCACT,GAAI,CAACA,EAAE,CAAC,EAAE,MAAM,gBAAgB,EAC9B,MAAO,wCACT,IAAIV,EAAI2gC,EAAW,KAAK,KAAK,CAAC,CAAC5gC,EAAGgB,CAAC,IAAMhB,IAAM,KAAOgB,CAAC,EACvD,OAAIf,GAAK,CAACA,EAAE,CAAC,EAAE,MAAM,gBAAgB,EAC5B,wCACI2gC,EAAW,KAAK,KAAK,CAAC,CAAC5gC,EAAGgB,CAAC,IAAMhB,IAAM,UAAYgB,CAAC,EAG1D,KADE,0CAEX,CACA,SAAS4+B,GAAe,CACtB,WAAAgB,EACA,SAAAC,EACA,OAAAC,EACA,OAAAC,CACF,EAAG,CACD,IAAIL,EAAK,KAAK,MAAME,CAAU,EAC1BI,EAAqBN,EAAG,KAAK,OAAO,CAAC,CAAC1gC,CAAC,IAAMA,IAAM,KAAOA,IAAM,KAAOA,IAAM,GAAG,EAChFihC,EAAM,CACR,KAAM,KACN,WAAY,KAAK,MAAMF,EAAO,QAAO,EAAK,GAAG,EAC7C,QAAS,GACT,KAAM,CAAC,GAAGC,EAAoB,CAAC,IAAKN,EAAG,MAAM,EAAG,CAAC,SAAUI,CAAM,EAAG,CAAC,cAAeF,CAAU,CAAC,CAChG,EACD,OAAIC,GACFI,EAAI,KAAK,KAAK,CAAC,WAAYJ,CAAQ,CAAC,EAE/BI,CACT,CAGA,IAAIC,GAAgB,CAAE,EACtB5W,EAAS4W,GAAe,CACtB,YAAa,IAAMC,GACnB,WAAY,IAAMC,GAClB,WAAY,IAAMC,GAClB,YAAa,IAAMC,GACnB,iBAAkB,IAAMC,GACxB,UAAW,IAAMC,GACjB,eAAgB,IAAMC,EACxB,CAAC,EACD,IAAIC,GAAW,EAAI,GAAK,GAAK,GACzBC,GAAM,IAAM,KAAK,MAAM,KAAK,IAAK,EAAG,GAAG,EACvCC,GAAY,IAAM,KAAK,MAAMD,GAAK,EAAG,KAAK,OAAQ,EAAGD,EAAQ,EAC7DG,GAAuB,CAACzvB,EAAYuG,IAAc+jB,GAAmBtqB,EAAYuG,CAAS,EAC1FmpB,GAAe,CAACl+B,EAAMwO,EAAYuG,IAAc8jB,GAAS,KAAK,UAAU74B,CAAI,EAAGi+B,GAAqBzvB,EAAYuG,CAAS,CAAC,EAC1HopB,GAAe,CAACn+B,EAAMwO,IAAe,KAAK,MAAMoqB,GAAS54B,EAAK,QAASi+B,GAAqBzvB,EAAYxO,EAAK,MAAM,CAAC,CAAC,EACzH,SAASu9B,GAAYvW,EAAOxY,EAAY,CACtC,MAAM4vB,EAAQ,CACZ,WAAYL,GAAK,EACjB,QAAS,GACT,KAAM,CAAE,EACR,GAAG/W,EACH,OAAQ5T,GAAa5E,CAAU,CAChC,EACD,OAAA4vB,EAAM,GAAK9V,GAAa8V,CAAK,EACtBA,CACT,CACA,SAASZ,GAAWY,EAAO5vB,EAAY6vB,EAAoB,CACzD,OAAOzV,GACL,CACE,KAAMuE,GACN,QAAS+Q,GAAaE,EAAO5vB,EAAY6vB,CAAkB,EAC3D,WAAYL,GAAW,EACvB,KAAM,EACP,EACDxvB,CACD,CACH,CACA,SAASivB,GAAWa,EAAMD,EAAoB,CAC5C,MAAME,EAAY5V,GAAmB,EACrC,OAAOC,GACL,CACE,KAAMqC,GACN,QAASiT,GAAaI,EAAMC,EAAWF,CAAkB,EACzD,WAAYL,GAAW,EACvB,KAAM,CAAC,CAAC,IAAKK,CAAkB,CAAC,CACjC,EACDE,CACD,CACH,CACA,SAASX,GAAU5W,EAAOwX,EAAkBH,EAAoB,CAC9D,MAAMD,EAAQb,GAAYvW,EAAOwX,CAAgB,EAC3CF,EAAOd,GAAWY,EAAOI,EAAkBH,CAAkB,EACnE,OAAOZ,GAAWa,EAAMD,CAAkB,CAC5C,CACA,SAASR,GAAe7W,EAAOwX,EAAkBC,EAAsB,CACrE,GAAI,CAACA,GAAwBA,EAAqB,SAAW,EAC3D,MAAM,IAAI,MAAM,qCAAqC,EAEvD,MAAMC,EAAkBtrB,GAAaorB,CAAgB,EAC/CG,EAAW,CAACf,GAAU5W,EAAOwX,EAAkBE,CAAe,CAAC,EACrE,OAAAD,EAAqB,QAASJ,GAAuB,CACnDM,EAAS,KAAKf,GAAU5W,EAAOwX,EAAkBH,CAAkB,CAAC,CACxE,CAAG,EACMM,CACT,CACA,SAASjB,GAAY9jB,EAAMglB,EAAqB,CAC9C,MAAMC,EAAgBV,GAAavkB,EAAMglB,CAAmB,EAC5D,OAAOT,GAAaU,EAAeD,CAAmB,CACxD,CACA,SAASjB,GAAiBmB,EAAeF,EAAqB,CAC5D,IAAIG,EAAkB,CAAE,EACxB,OAAAD,EAAc,QAASziC,GAAM,CAC3B0iC,EAAgB,KAAKrB,GAAYrhC,EAAGuiC,CAAmB,CAAC,CAC5D,CAAG,EACDG,EAAgB,KAAK,CAAC7jC,EAAGC,IAAMD,EAAE,WAAaC,EAAE,UAAU,EACnD4jC,CACT,CAGA,IAAIC,GAAgB,CAAE,EACtBtY,EAASsY,GAAe,CACtB,SAAU,IAAMC,GAChB,YAAa,IAAMC,GACnB,qBAAsB,IAAMC,GAC5B,cAAe,IAAMC,GACrB,kBAAmB,IAAMC,GACzB,uBAAwB,IAAMC,GAC9B,wBAAyB,IAAMC,GAC/B,uBAAwB,IAAMC,GAC9B,oBAAqB,IAAMC,GAC3B,cAAe,IAAMC,EACvB,CAAC,EAID,IAAIC,GAAuB,SAC3B,eAAeV,GAASW,EAAUC,EAAYnrB,EAAMorB,EAA6B,GAAOrP,EAAS,CAC/F,MAAMzJ,EAAQ,CACZ,KAAMkE,GACN,KAAM,CACJ,CAAC,IAAK0U,CAAQ,EACd,CAAC,SAAUC,CAAU,CACtB,EACD,WAAY,KAAK,MAAM,IAAI,KAAI,EAAG,QAAS,EAAG,GAAG,EACjD,QAAS,EACV,EACGpP,GACFzJ,EAAM,KAAK,KAAK,CAAC,UAAWkY,GAAYzO,CAAO,CAAC,CAAC,EAEnD,MAAMsP,EAAc,MAAMrrB,EAAKsS,CAAK,EAEpC,OAD4B8Y,EAA6BH,GAAuB,IACnDK,GAAQ,OAAOtY,GAAY,OAAO,KAAK,UAAUqY,CAAW,CAAC,CAAC,CAC7F,CACA,eAAeL,GAAcO,EAAOtY,EAAKuY,EAAQ,CAC/C,MAAMlZ,EAAQ,MAAMmY,GAAqBc,CAAK,EAAE,MAAO9qB,GAAU,CAC/D,MAAMA,CACV,CAAG,EAID,OAHc,MAAMiqB,GAAepY,EAAOW,EAAKuY,CAAM,EAAE,MAAO/qB,GAAU,CACtE,MAAMA,CACV,CAAG,CAEH,CACA,eAAegqB,GAAqBc,EAAO,CACzC,GAAI,CAACA,EACH,MAAM,IAAI,MAAM,eAAe,EAEjCA,EAAQA,EAAM,QAAQN,GAAsB,EAAE,EAC9C,MAAMQ,EAAW1Y,GAAY,OAAOuY,GAAQ,OAAOC,CAAK,CAAC,EACzD,GAAI,CAACE,GAAYA,EAAS,SAAW,GAAK,CAACA,EAAS,WAAW,GAAG,EAChE,MAAM,IAAI,MAAM,eAAe,EAGjC,OADc,KAAK,MAAMA,CAAQ,CAEnC,CACA,SAASX,GAAuBxY,EAAO,CACrC,OAAKA,EAAM,WAGJ,KAAK,MAAM,IAAI,KAAM,EAAC,QAAS,EAAG,GAAG,EAAIA,EAAM,WAAa,GAF1D,EAGX,CACA,SAASqY,GAAkBrY,EAAO,CAChC,OAAOA,EAAM,OAASkE,EACxB,CACA,SAASuU,GAAoBzY,EAAOW,EAAK,CACvC,MAAMyY,EAASpZ,EAAM,KAAK,KAAM5qB,GAAMA,EAAE,CAAC,IAAM,GAAG,EAClD,OAAKgkC,EAGEA,EAAO,OAAS,GAAKA,EAAO,CAAC,IAAMzY,EAFjC,EAGX,CACA,SAAS2X,GAAuBtY,EAAOkZ,EAAQ,CAC7C,MAAMG,EAAYrZ,EAAM,KAAK,KAAM5qB,GAAMA,EAAE,CAAC,IAAM,QAAQ,EAC1D,OAAKikC,EAGEA,EAAU,OAAS,GAAKA,EAAU,CAAC,EAAE,YAAW,IAAOH,EAAO,YAAa,EAFzE,EAGX,CACA,SAAShB,GAAYzO,EAAS,CAC5B,MAAM3xB,EAAOwhC,GAAQ5Y,GAAY,OAAO,KAAK,UAAU+I,CAAO,CAAC,CAAC,EAChE,OAAO8P,EAAYzhC,CAAI,CACzB,CACA,SAASygC,GAAwBvY,EAAOyJ,EAAS,CAC/C,MAAM+P,EAAaxZ,EAAM,KAAK,KAAM5qB,GAAMA,EAAE,CAAC,IAAM,SAAS,EAC5D,GAAI,CAACokC,EACH,MAAO,GAET,MAAMC,EAAcvB,GAAYzO,CAAO,EACvC,OAAO+P,EAAW,OAAS,GAAKA,EAAW,CAAC,IAAMC,CACpD,CACA,eAAerB,GAAepY,EAAOW,EAAKuY,EAAQxD,EAAM,CACtD,GAAI,CAAC7T,GAAY7B,CAAK,EACpB,MAAM,IAAI,MAAM,wCAAwC,EAE1D,GAAI,CAACqY,GAAkBrY,CAAK,EAC1B,MAAM,IAAI,MAAM,mCAAmC,EAErD,GAAI,CAACwY,GAAuBxY,CAAK,EAC/B,MAAM,IAAI,MAAM,mDAAmD,EAErE,GAAI,CAACyY,GAAoBzY,EAAOW,CAAG,EACjC,MAAM,IAAI,MAAM,sCAAsC,EAExD,GAAI,CAAC2X,GAAuBtY,EAAOkZ,CAAM,EACvC,MAAM,IAAI,MAAM,yCAAyC,EAE3D,GAAYxD,GAAS,OAAOA,GAAS,UAAY,OAAO,KAAKA,CAAI,EAAE,OAAS,GACtE,CAAC6C,GAAwBvY,EAAO0V,CAAI,EACtC,MAAM,IAAI,MAAM,mEAAmE,EAGvF,MAAO,EACT,CCnxEA,IAAIgE,GAAsBC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,ECDtBC,GAAoB,KAAM,CAC5B,YAAYC,KAASC,EAAW,CAC9B,KAAK,UAAY,CAAE,EACnB,KAAK,iBAAoB9Z,GAAU,CACjC,MAAM+Z,EAAO/Z,EAAM,QACf,KAAK,UAAU,SAAS,WAAW,GAAK,CAAC+Z,EAAK,MAAQA,EAAK,MAAQ,KAAK,UAAU,SAASA,EAAK,IAAI,IACtG,KAAK,KAAK,cAAe,CAE5B,GACA,KAAK,KAAOF,GAAM,cAAc,IAAI,EACrC,KAAK,UAAYC,CACrB,CACE,gBAAiB,CACf,MAAO,CAAC,GAAG,KAAK,KAAK,UAAU,EAAE,KAAME,GAAS,CAC9C,GAAIA,EAAK,WAAaA,EAAK,WAAaA,EAAK,YAAY,KAAM,IAAK,GAClE,MAAO,GAET,GAAIA,EAAK,WAAaA,EAAK,aAAc,CACvC,MAAMC,EAAKD,EAEX,GADgBC,EAAG,QAAQ,YAAa,IACxB,qBACd,MAAO,GAET,GAAI,CAACA,EAAG,aAAa,MAAM,EACzB,MAAO,EAEjB,CACM,MAAO,EACb,CAAK,CACL,CACE,aAAara,EAAM,CACjB,OAAO,KAAK,KAAK,cAAc,mBAAmBA,CAAI,IAAI,IAAM,IACpE,CACE,KAAKsa,EAAU,CACb,OAAOA,IAAa,YAAc,KAAK,eAAc,EAAK,KAAK,aAAaA,CAAQ,CACxF,CACE,eAAgB,CACd,KAAK,KAAK,WAAW,iBAAiB,aAAc,KAAK,gBAAgB,CAC7E,CACE,kBAAmB,CACjB,KAAK,KAAK,WAAW,oBAAoB,aAAc,KAAK,gBAAgB,CAChF,CACA,ECzCIC,GAA2BR;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,ECS3BS,GACAC,GAAkB,cAAcC,EAAW,CAC7C,aAAc,CACZ,MAAO,EACPrlC,GAAa,KAAMmlC,GAA+B,EAAK,EAEvD,KAAK,2BAA6C,IAAI,IACtD,OAAO,QAAQ,KAAK,YAAY,YAAY,EAAE,QAAQ,CAAC,CAACxa,EAAM2a,CAAS,IAAM,CAC3E,KAAK,YAAY,OAAO3a,EAAM2a,CAAS,CAC7C,CAAK,CACL,CACE,KAAK3a,EAAM4a,EAAS,CAClB,MAAMxa,EAAQ,IAAI,YAAYJ,EAAM3rB,GAAe,CACjD,QAAS,GACT,WAAY,GACZ,SAAU,GACV,OAAQ,EACT,EAAEumC,CAAO,CAAC,EACX,YAAK,cAAcxa,CAAK,EACjBA,CACX,CAEE,OAAO,OAAOJ,EAAM6a,EAAqB,KAAMD,EAAU,GAAI,CAC3D,MAAME,EAAiC,eAAe,IAAI9a,CAAI,EAC9D,GAAI,CAAC8a,EAAgC,CACnC,GAAI,CACF,eAAe,OAAO9a,EAAM6a,EAAoBD,CAAO,CACxD,MAAc,CACb,eAAe,OAAO5a,EAAM,cAAc6a,CAAmB,CAC5D,EAAED,CAAO,CAClB,CACM,MACN,CACI,IAAIG,EAAa,qBACbC,EAAkBD,EAClB,YAAaF,GAAsBA,EAAmB,UACxDE,EAAa,KAAOF,EAAmB,SAErC,YAAaC,GAAkCA,EAA+B,UAChFE,EAAkB,KAAOF,EAA+B,SAEtD,EAAAC,GAAcC,GAAmBD,IAAeC,IAGpD,QAAQ,KACN,0BAA0Bhb,CAAI,IAAI+a,CAAU,UAAU/a,CAAI,IAAIgb,CAAe,+BAC9E,CACL,CACE,yBAAyBhb,EAAMib,EAAUC,EAAU,CAC5C/lC,GAAa,KAAMqlC,EAA6B,IACnD,KAAK,YAAY,kBAAkB,QACjC,CAACtmC,EAAKM,IAAS,CACTN,EAAI,SAAW,KAAKM,CAAI,GAAK,MAC/B,KAAK,2BAA2B,IAAIA,EAAM,KAAKA,CAAI,CAAC,CAEhE,CACO,EACDc,GAAa,KAAMklC,GAA+B,EAAI,GAExD,MAAM,yBAAyBxa,EAAMib,EAAUC,CAAQ,CAC3D,CACE,WAAWC,EAAmB,CAC5B,MAAM,WAAWA,CAAiB,EAClC,KAAK,2BAA2B,QAAQ,CAAC/mC,EAAOI,IAAS,CACnD2mC,EAAkB,IAAI3mC,CAAI,GAAK,KAAKA,CAAI,GAAK,OAC/C,KAAKA,CAAI,EAAIJ,EAErB,CAAK,CACL,CACA,EACAomC,GAAgC,IAAI,QAGpCC,GAAgB,QAAU,SAC1BA,GAAgB,aAAe,CAAE,EACjC/lC,EAAgB,CACd0mC,EAAQ,CACV,EAAGX,GAAgB,UAAW,MAAO,CAAC,EACtC/lC,EAAgB,CACd0mC,EAAQ,CACV,EAAGX,GAAgB,UAAW,OAAQ,CAAC,EC3FvC;AAAA;AAAA;AAAA;AAAA,GAKA,MAAMjlC,GAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAEC,GAAED,GAAG,IAAIC,KAAK,CAAC,gBAAgBD,EAAE,OAAOC,CAAC,GAAG,IAAA4lC,GAAA,KAAO,CAAC,YAAY,EAAE,CAAE,KAAI,MAAM,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE5lC,EAAEK,EAAE,CAAC,KAAK,KAAK,EAAE,KAAK,KAAKL,EAAE,KAAK,KAAKK,CAAC,CAAC,KAAK,EAAEL,EAAE,CAAC,OAAO,KAAK,OAAO,EAAEA,CAAC,CAAC,CAAC,OAAO,EAAEA,EAAE,CAAC,OAAO,KAAK,OAAO,GAAGA,CAAC,CAAC,CAAC,ECJ3S;AAAA;AAAA;AAAA;AAAA,GAIG,MAAMA,GAAEhC,GAAE,cAAcqC,EAAC,CAAC,YAAYN,EAAE,CAAC,GAAG,MAAMA,CAAC,EAAEA,EAAE,OAAOI,GAAE,WAAqBJ,EAAE,OAAZ,SAAkBA,EAAE,SAAS,OAAO,EAAE,MAAM,MAAM,oGAAoG,CAAC,CAAC,OAAOA,EAAE,CAAC,MAAM,IAAI,OAAO,KAAKA,CAAC,EAAE,OAAQ/B,GAAG+B,EAAE/B,CAAC,GAAI,KAAK,GAAG,EAAE,GAAG,CAAC,OAAOA,EAAE,CAACqC,CAAC,EAAE,CAAC,GAAY,KAAK,KAAd,OAAiB,CAAC,KAAK,GAAG,IAAI,IAAarC,EAAE,UAAX,SAAqB,KAAK,GAAG,IAAI,IAAIA,EAAE,QAAQ,KAAK,GAAG,EAAE,MAAM,IAAI,EAAE,OAAQ+B,GAAQA,IAAL,EAAM,CAAE,GAAG,UAAUA,KAAKM,EAAEA,EAAEN,CAAC,GAAG,CAAC,KAAK,IAAI,IAAIA,CAAC,GAAG,KAAK,GAAG,IAAIA,CAAC,EAAE,OAAO,KAAK,OAAOM,CAAC,CAAC,CAAC,MAAM,EAAErC,EAAE,QAAQ,UAAU,UAAU+B,KAAK,KAAK,GAAGA,KAAKM,IAAI,EAAE,OAAON,CAAC,EAAE,KAAK,GAAG,OAAOA,CAAC,GAAG,UAAUA,KAAKM,EAAE,CAAC,MAAMrC,EAAE,CAAC,CAACqC,EAAEN,CAAC,EAAE/B,IAAI,KAAK,GAAG,IAAI+B,CAAC,GAAG,KAAK,IAAI,IAAIA,CAAC,IAAI/B,GAAG,EAAE,IAAI+B,CAAC,EAAE,KAAK,GAAG,IAAIA,CAAC,IAAI,EAAE,OAAOA,CAAC,EAAE,KAAK,GAAG,OAAOA,CAAC,GAAG,CAAC,OAAOA,EAAC,CAAC,CAAC,ECW9uB,IAAI8lC,GAAS,cAAcb,EAAgB,CACzC,aAAc,CACZ,MAAM,GAAG,SAAS,EAClB,KAAK,kBAAoB,IAAIT,GAAkB,KAAM,SAAU,SAAU,OAAO,CACpF,CACE,QAAS,CACP,OAAOuB;AAAAA;AAAAA;AAAAA,gBAGKC,GAAS,CACnB,KAAM,GACN,mBAAoB,KAAK,kBAAkB,KAAK,QAAQ,EACxD,kBAAmB,KAAK,kBAAkB,KAAK,OAAO,EACtD,mBAAoB,KAAK,kBAAkB,KAAK,QAAQ,CAC9D,CAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAQN,CACA,EACAF,GAAO,OAAS,CAACf,GAA0BT,EAAmB,EClC9DwB,GAAO,OAAO,SAAS,ECJvB,IAAIG,GAAyB1B;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,ECF7B,MAAM2B,GAAoB,IAAI,IACxBC,GAAe,IAAI,IACzB,IAAIC,GACAC,GAAoB,MACpBC,GAAmB,KACvB,MAAMC,GAAY,OAAO,iBAAqB,KAAe,OAAO,SAAa,KAAe,OAAO,SAAS,gBAAoB,IACpI,GAAIA,GAAU,CACV,MAAMC,EAA0B,IAAI,iBAAiBC,EAAM,EAC3DJ,GAAoB,SAAS,gBAAgB,KAAO,MACpDC,GAAmB,SAAS,gBAAgB,MAAQ,UAAU,SAC9DE,EAAwB,QAAQ,SAAS,gBAAiB,CACtD,WAAY,GACZ,gBAAiB,CAAC,MAAO,MAAM,CACvC,CAAK,CACL,CACO,SAASE,MAAuBC,EAAa,CAChDA,EAAY,IAAI,GAAK,CACjB,MAAMC,EAAO,EAAE,MAAM,YAAa,EAC9BT,GAAa,IAAIS,CAAI,EACrBT,GAAa,IAAIS,EAAM,OAAO,OAAO,OAAO,OAAO,CAAE,EAAET,GAAa,IAAIS,CAAI,CAAC,EAAG,CAAC,CAAC,EAGlFT,GAAa,IAAIS,EAAM,CAAC,EAEvBR,KACDA,GAAW,EAEvB,CAAK,EACDK,GAAQ,CACZ,CACO,SAASA,IAAS,CACjBF,KACAF,GAAoB,SAAS,gBAAgB,KAAO,MACpDC,GAAmB,SAAS,gBAAgB,MAAQ,UAAU,UAElE,CAAC,GAAGJ,GAAkB,KAAI,CAAE,EAAE,IAAKrB,GAAO,CAClC,OAAOA,EAAG,eAAkB,YAC5BA,EAAG,cAAe,CAE9B,CAAK,CACL,CACO,IAAAgC,GAAA,KAAyB,CAC5B,YAAYpC,EAAM,CACd,KAAK,KAAOA,EACZ,KAAK,KAAK,cAAc,IAAI,CACpC,CACI,eAAgB,CACZyB,GAAkB,IAAI,KAAK,IAAI,CACvC,CACI,kBAAmB,CACfA,GAAkB,OAAO,KAAK,IAAI,CAC1C,CACI,KAAM,CACF,MAAO,GAAG,KAAK,KAAK,KAAOG,EAAiB,GAAG,YAAa,CACpE,CACI,MAAO,CACH,MAAO,GAAG,KAAK,KAAK,MAAQC,EAAgB,GAAG,YAAa,CACpE,CACI,mBAAmBQ,EAAM,CACrB,IAAIC,EAAIC,EACR,MAAMC,EAAS,IAAI,KAAK,OAAOH,EAAK,QAAQ,KAAM,GAAG,CAAC,EAChDI,EAA2DD,GAAO,SAAS,YAAa,EACxFE,GAAUH,GAAMD,EAAqDE,GAAO,UAAY,MAAQF,IAAO,OAAS,OAASA,EAAG,YAAa,KAAM,MAAQC,IAAO,OAASA,EAAK,GAC5KI,EAAUjB,GAAa,IAAI,GAAGe,CAAQ,IAAIC,CAAM,EAAE,EAClDE,EAAYlB,GAAa,IAAIe,CAAQ,EAC3C,MAAO,CAAE,OAAAD,EAAQ,SAAAC,EAAU,OAAAC,EAAQ,QAAAC,EAAS,UAAAC,CAAW,CAC/D,CACI,OAAO1oC,EAAKymC,EAAS,CACjB,IAAI2B,EACJ,KAAM,CAAE,QAAAK,EAAS,UAAAC,CAAS,EAAK,KAAK,oBAAoBN,EAAK3B,EAAQ,QAAU,MAAQ2B,IAAO,OAASA,EAAK,KAAK,MAAM,EAEvH,OADA3B,EAAU,OAAO,OAAO,CAAE,gBAAiB,EAAO,EAAEA,CAAO,EACtD,GAAAgC,GAAWA,EAAQzoC,CAAG,GACtB0oC,GAAaA,EAAU1oC,CAAG,GAC1BymC,EAAQ,iBAAmBgB,IAAYA,GAASznC,CAAG,EAIhE,CACI,KAAKA,KAAQ8d,EAAM,CACf,KAAM,CAAE,QAAA2qB,EAAS,UAAAC,CAAW,EAAG,KAAK,mBAAmB,KAAK,MAAM,EAClE,IAAIC,EACJ,GAAIF,GAAWA,EAAQzoC,CAAG,EACtB2oC,EAAOF,EAAQzoC,CAAG,UAEb0oC,GAAaA,EAAU1oC,CAAG,EAC/B2oC,EAAOD,EAAU1oC,CAAG,UAEfynC,IAAYA,GAASznC,CAAG,EAC7B2oC,EAAOlB,GAASznC,CAAG,MAGnB,gBAAQ,MAAM,6BAA6B,OAAOA,CAAG,CAAC,EAAE,EACjD,OAAOA,CAAG,EAErB,OAAI,OAAO2oC,GAAS,WACTA,EAAK,GAAG7qB,CAAI,EAEhB6qB,CACf,CACI,KAAKC,EAAcnC,EAAS,CACxB,OAAAmC,EAAe,IAAI,KAAKA,CAAY,EAC7B,IAAI,KAAK,eAAe,KAAK,KAAI,EAAInC,CAAO,EAAE,OAAOmC,CAAY,CAChF,CACI,OAAOC,EAAgBpC,EAAS,CAC5B,OAAAoC,EAAiB,OAAOA,CAAc,EAC/B,MAAMA,CAAc,EAAI,GAAK,IAAI,KAAK,aAAa,KAAK,KAAI,EAAIpC,CAAO,EAAE,OAAOoC,CAAc,CAC7G,CACI,aAAa5oC,EAAO6oC,EAAMrC,EAAS,CAC/B,OAAO,IAAI,KAAK,mBAAmB,KAAK,OAAQA,CAAO,EAAE,OAAOxmC,EAAO6oC,CAAI,CACnF,CACA,EC5GA,IAAId,GAAc,CAChB,MAAO,KACP,MAAO,UACP,KAAM,MACN,SAAU,WACV,WAAY,cACZ,MAAO,QACP,OAAQ,SACR,KAAM,OACN,aAAc,gBACd,MAAO,QACP,UAAW,CAACe,EAAOzO,IAAU,eAAeyO,CAAK,OAAOzO,CAAK,GAC7D,aAAc,gBACd,QAAS,UACT,UAAW,aACX,mBAAqBvxB,GACfA,IAAQ,EACH,sBACLA,IAAQ,EACH,oBACF,GAAGA,CAAG,oBAEf,cAAe,iBACf,SAAU,WACV,OAAQ,SACR,OAAQ,SACR,YAAa,gBACb,cAAe,kBACf,0BAA2B,iCAC3B,aAAc,gBACd,SAAWggC,GAAU,SAASA,CAAK,GACnC,kBAAmB,qBACrB,EACAhB,GAAoBC,EAAW,EAC/B,IAAIgB,GAAahB,GC7BbiB,GAAqB,cAAcC,EAA8B,CACrE,EACAnB,GAAoBiB,EAAU,ECM9B,IAAIG,GAAY,cAAc7C,EAAgB,CAC5C,aAAc,CACZ,MAAM,GAAG,SAAS,EAClB,KAAK,SAAW,IAAI2C,GAAmB,IAAI,CAC/C,CACE,QAAS,CACP,OAAO7B;AAAAA,uEAC4D,KAAK,SAAS,KAAK,SAAS,CAAC;AAAA;AAAA;AAAA;AAAA,KAKpG,CACA,EACA+B,GAAU,OAAS,CAAC/C,GAA0BkB,EAAsB,ECvBpE,IAAI8B,GAAkC,IAAI,QACtCC,GAA0C,IAAI,QAC9CC,GAAyC,IAAI,QAC7CC,GAAyC,IAAI,QAC7CC,GAA+B,IAAI,QACnCC,GAAwB,KAAM,CAChC,YAAY3D,EAAMW,EAAS,CACzB,KAAK,eAAkBxa,GAAU,CAC/B,MAAMyd,EAAW,KAAK,QAAQ,SAAS,KAAK,IAAI,EAC1C7d,EAAO,KAAK,QAAQ,KAAK,KAAK,IAAI,EAClC5rB,EAAQ,KAAK,QAAQ,MAAM,KAAK,IAAI,EACpC0pC,EAAW,KAAK,KAAK,QAAQ,YAAa,IAAK,YACjD,KAAK,KAAK,aAAe,CAACD,GAAY,CAACC,GAAY,OAAO9d,GAAS,UAAYA,EAAK,OAAS,GAAK,OAAO5rB,EAAU,MACjH,MAAM,QAAQA,CAAK,EACrBA,EAAM,QAASgL,GAAQ,CACrBghB,EAAM,SAAS,OAAOJ,EAAM5gB,EAAI,SAAQ,CAAE,CACtD,CAAW,EAEDghB,EAAM,SAAS,OAAOJ,EAAM5rB,EAAM,SAAQ,CAAE,EAGjD,EACD,KAAK,iBAAoBgsB,GAAU,CACjC,IAAImc,EACJ,MAAMsB,EAAW,KAAK,QAAQ,SAAS,KAAK,IAAI,EAC1CE,EAAiB,KAAK,QAAQ,eAChC,KAAK,MAAQ,CAAC,KAAK,KAAK,cACzBxB,EAAKgB,GAAgB,IAAI,KAAK,IAAI,IAAM,MAAgBhB,EAAG,QAASyB,GAAY,CAC/E,KAAK,kBAAkBA,EAAS,EAAI,CAC9C,CAAS,GAEC,KAAK,MAAQ,CAAC,KAAK,KAAK,YAAc,CAACH,GAAY,CAACE,EAAe,KAAK,IAAI,IAC9E3d,EAAM,eAAgB,EACtBA,EAAM,yBAA0B,EAEnC,EACD,KAAK,gBAAkB,IAAM,CAC3B,KAAK,QAAQ,SAAS,KAAK,KAAM,KAAK,QAAQ,aAAa,KAAK,IAAI,CAAC,EACrE,KAAK,kBAAkB,KAAK,KAAM,EAAK,EACvCud,GAAa,IAAI,KAAK,KAAM,EAAE,CAC/B,EACD,KAAK,kBAAqBvd,GAAU,CAClC,MAAM6d,EAAgBN,GAAa,IAAI,KAAK,IAAI,EAC3CM,EAAc,SAAS7d,EAAM,IAAI,GACpC6d,EAAc,KAAK7d,EAAM,IAAI,EAE3B6d,EAAc,SAAW,KAAK,QAAQ,oBAAoB,QAC5D,KAAK,kBAAkB,KAAK,KAAM,EAAI,CAEzC,EACD,KAAK,kBAAoB,IAAM,CAC7B,GAAI,KAAK,MAAQ,CAAC,KAAK,KAAK,WAAY,CACtC,MAAMC,EAAW,KAAK,KAAK,iBAAiB,GAAG,EAC/C,UAAWC,KAAWD,EACpB,GAAI,OAAOC,EAAQ,eAAkB,YAC/B,CAACA,EAAQ,gBACX,MAAO,EAIrB,CACM,MAAO,EACR,EACD,KAAK,mBAAqB,IAAM,CAC9B,GAAI,KAAK,MAAQ,CAAC,KAAK,KAAK,WAAY,CACtC,MAAMD,EAAW,KAAK,KAAK,iBAAiB,GAAG,EAC/C,UAAWC,KAAWD,EACpB,GAAI,OAAOC,EAAQ,gBAAmB,YAChC,CAACA,EAAQ,iBACX,MAAO,EAIrB,CACM,MAAO,EACR,GACA,KAAK,KAAOlE,GAAM,cAAc,IAAI,EACrC,KAAK,QAAU5lC,GAAe,CAC5B,KAAOgf,GAAU,CACf,MAAM+qB,EAAS/qB,EAAM,KACrB,GAAI+qB,EAAQ,CAEV,MAAMC,EADOhrB,EAAM,YAAa,EACd,cAAc,IAAI+qB,CAAM,EAAE,EAC5C,GAAIC,EACF,OAAOA,CAEnB,CACQ,OAAOhrB,EAAM,QAAQ,MAAM,CAC5B,EACD,KAAOA,GAAUA,EAAM,KACvB,MAAQA,GAAUA,EAAM,MACxB,aAAeA,GAAUA,EAAM,aAC/B,SAAWA,GAAU,CACnB,IAAIkpB,EACJ,OAAQA,EAAKlpB,EAAM,WAAa,KAAOkpB,EAAK,EAC7C,EACD,eAAiBlpB,GAAU,OAAOA,EAAM,gBAAmB,WAAaA,EAAM,eAAc,EAAK,GACjG,cAAgBA,GAAU,OAAOA,EAAM,eAAkB,WAAaA,EAAM,cAAa,EAAK,GAC9F,SAAU,CAACA,EAAOjf,IAAUif,EAAM,MAAQjf,EAC1C,oBAAqB,CAAC,UAAU,CACjC,EAAEwmC,CAAO,CACd,CACE,eAAgB,CACd,MAAMyD,EAAO,KAAK,QAAQ,KAAK,KAAK,IAAI,EACpCA,GACF,KAAK,WAAWA,CAAI,EAEtBV,GAAa,IAAI,KAAK,KAAM,EAAE,EAC9B,KAAK,QAAQ,oBAAoB,QAASvd,GAAU,CAClD,KAAK,KAAK,iBAAiBA,EAAO,KAAK,iBAAiB,CAC9D,CAAK,CACL,CACE,kBAAmB,CACjB,KAAK,WAAY,EACjBud,GAAa,OAAO,KAAK,IAAI,EAC7B,KAAK,QAAQ,oBAAoB,QAASvd,GAAU,CAClD,KAAK,KAAK,oBAAoBA,EAAO,KAAK,iBAAiB,CACjE,CAAK,CACL,CACE,aAAc,CACZ,MAAMie,EAAO,KAAK,QAAQ,KAAK,KAAK,IAAI,EACnCA,GACH,KAAK,WAAY,EAEfA,GAAQ,KAAK,OAASA,IACxB,KAAK,WAAY,EACjB,KAAK,WAAWA,CAAI,GAElB,KAAK,KAAK,YACZ,KAAK,YAAY,KAAK,KAAK,SAAS,KAAK,CAE/C,CACE,WAAWA,EAAM,CACXA,GACF,KAAK,KAAOA,EACRd,GAAgB,IAAI,KAAK,IAAI,EAC/BA,GAAgB,IAAI,KAAK,IAAI,EAAE,IAAI,KAAK,IAAI,EAE5CA,GAAgB,IAAI,KAAK,KAAsB,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,EAErE,KAAK,KAAK,iBAAiB,WAAY,KAAK,cAAc,EAC1D,KAAK,KAAK,iBAAiB,SAAU,KAAK,gBAAgB,EAC1D,KAAK,KAAK,iBAAiB,QAAS,KAAK,eAAe,EACnDC,GAAwB,IAAI,KAAK,IAAI,IACxCA,GAAwB,IAAI,KAAK,KAAM,KAAK,KAAK,cAAc,EAC/D,KAAK,KAAK,eAAiB,IAAM,KAAK,mBAAoB,GAEvDC,GAAuB,IAAI,KAAK,IAAI,IACvCA,GAAuB,IAAI,KAAK,KAAM,KAAK,KAAK,aAAa,EAC7D,KAAK,KAAK,cAAgB,IAAM,KAAK,kBAAmB,IAG1D,KAAK,KAAO,MAElB,CACE,YAAa,CACX,GAAI,CAAC,KAAK,KACR,OACF,MAAMa,EAAiBf,GAAgB,IAAI,KAAK,IAAI,EAC/Ce,IAGLA,EAAe,OAAO,KAAK,IAAI,EAC3BA,EAAe,MAAQ,IACzB,KAAK,KAAK,oBAAoB,WAAY,KAAK,cAAc,EAC7D,KAAK,KAAK,oBAAoB,SAAU,KAAK,gBAAgB,EAC7D,KAAK,KAAK,oBAAoB,QAAS,KAAK,eAAe,EACvDd,GAAwB,IAAI,KAAK,IAAI,IACvC,KAAK,KAAK,eAAiBA,GAAwB,IAAI,KAAK,IAAI,EAChEA,GAAwB,OAAO,KAAK,IAAI,GAEtCC,GAAuB,IAAI,KAAK,IAAI,IACtC,KAAK,KAAK,cAAgBA,GAAuB,IAAI,KAAK,IAAI,EAC9DA,GAAuB,OAAO,KAAK,IAAI,GAEzC,KAAK,KAAO,QAElB,CACE,kBAAkBpD,EAAIkE,EAAe,CAC/BA,EACFb,GAAuB,IAAIrD,CAAE,EAE7BqD,GAAuB,OAAOrD,CAAE,EAElCA,EAAG,cAAe,CACtB,CACE,SAAS16B,EAAM6+B,EAAW,CACxB,GAAI,KAAK,KAAM,CACb,MAAMC,EAAS,SAAS,cAAc,QAAQ,EAC9CA,EAAO,KAAO9+B,EACd8+B,EAAO,MAAM,SAAW,WACxBA,EAAO,MAAM,MAAQ,IACrBA,EAAO,MAAM,OAAS,IACtBA,EAAO,MAAM,SAAW,aACxBA,EAAO,MAAM,SAAW,SACxBA,EAAO,MAAM,WAAa,SACtBD,IACFC,EAAO,KAAOD,EAAU,KACxBC,EAAO,MAAQD,EAAU,MACzB,CAAC,aAAc,cAAe,aAAc,iBAAkB,YAAY,EAAE,QAASE,GAAS,CACxFF,EAAU,aAAaE,CAAI,GAC7BD,EAAO,aAAaC,EAAMF,EAAU,aAAaE,CAAI,CAAC,CAElE,CAAS,GAEH,KAAK,KAAK,OAAOD,CAAM,EACvBA,EAAO,MAAO,EACdA,EAAO,OAAQ,CACrB,CACA,CAEE,SAAU,CACR,IAAIlC,EACJ,OAAQA,EAAK,KAAK,OAAS,KAAOA,EAAK,IAC3C,CAEE,MAAMiC,EAAW,CACf,KAAK,SAAS,QAASA,CAAS,CACpC,CAEE,OAAOA,EAAW,CAChB,KAAK,SAAS,SAAUA,CAAS,CACrC,CAKE,YAAY7R,EAAS,CACnB,MAAMsN,EAAO,KAAK,KACZsE,EAAgB,EAAQb,GAAuB,IAAIzD,CAAI,EACvD0E,EAAW,EAAQ1E,EAAK,SAC9BA,EAAK,gBAAgB,gBAAiB0E,CAAQ,EAC9C1E,EAAK,gBAAgB,gBAAiB,CAAC0E,CAAQ,EAC/C1E,EAAK,gBAAgB,eAAgB,CAACtN,CAAO,EAC7CsN,EAAK,gBAAgB,aAActN,CAAO,EAC1CsN,EAAK,gBAAgB,oBAAqB,CAACtN,GAAW4R,CAAa,EACnEtE,EAAK,gBAAgB,kBAAmBtN,GAAW4R,CAAa,CACpE,CAKE,gBAAiB,CACf,MAAMtE,EAAO,KAAK,KAClB,KAAK,YAAYA,EAAK,SAAS,KAAK,CACxC,CAQE,iBAAiB2E,EAAsB,CACrC,MAAMC,EAAiB,IAAI,YAAY,aAAc,CACnD,QAAS,GACT,SAAU,GACV,WAAY,GACZ,OAAQ,EACd,CAAK,EACID,GACHC,EAAe,eAAgB,EAE5B,KAAK,KAAK,cAAcA,CAAc,GACDD,GAAqB,eAAgB,CAEnF,CACA,EACIE,GAAqB,OAAO,OAAO,CACrC,SAAU,GACV,YAAa,GACb,gBAAiB,GACjB,cAAe,GACf,eAAgB,GAChB,aAAc,GACd,QAAS,GACT,SAAU,GACV,aAAc,GACd,MAAO,GACP,aAAc,EAChB,CAAC,EAC+B,OAAO,OAAOrqC,GAAcJ,GAAe,CAAE,EAAEyqC,EAAkB,EAAG,CAClG,MAAO,GACP,aAAc,EAChB,CAAC,CAAC,EAC6B,OAAO,OAAOrqC,GAAcJ,GAAe,CAAE,EAAEyqC,EAAkB,EAAG,CACjG,MAAO,GACP,YAAa,EACf,CAAC,CAAC,ECpSF,IAAIC,GAAwBhF;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAA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AAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AA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","names":["basePath","setBasePath","path","getBasePath","subpath","scripts","configScript","script","fallbackScript","s","__defProp","__defProps","__getOwnPropDesc","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","obj","key","value","__spreadValues","a","b","prop","__spreadProps","__decorateClass","decorators","target","kind","result","decorator","__accessCheck","member","msg","__privateGet","getter","__privateAdd","__privateSet","setter","t","e","o","n$4","r","n","i","S","c","h","l","p","d","u","f","y","v","_","m","g","$","x","T","E","A","C","P","V","N","H","I","L","k","M","R","z","j","B","r$2","number","bytes","lengths","hash","exists","instance","checkFinished","output","out","min","crypto","u8a","createView","arr","rotr","word","shift","isLE","utf8ToBytes","str","toBytes","data","concatBytes","arrays","sum","pad","Hash$1","wrapConstructor","hashCons","hashC","tmp","randomBytes","bytesLength","setBigUint64","view","byteOffset","_32n","_u32_max","wh","wl","Hash","blockLen","outputLen","padOffset","buffer","len","pos","take","dataView","oview","outLen","state","res","to","length","finished","destroyed","Chi","Maj","SHA256_K","IV","SHA256_W","SHA2","D","F","G","offset","W15","W2","s0","s1","sigma1","T1","T2","sha256","SHA256","_0n","_1n","_2n","hexes","bytesToHex","hex","numberToHexUnpadded","num","hexToNumber","hexToBytes","array","hexByte","byte","bytesToNumberBE","bytesToNumberLE","numberToBytesBE","numberToBytesLE","numberToVarBytesBE","ensureBytes","title","expectedLength","equalBytes","b1","b2","bitLen","bitGet","bitSet","bitMask","u8n","u8fr","createHmacDrbg","hashLen","qByteLen","hmacFn","reset","reseed","seed","gen","sl","pred","validatorFns","val","object","validateObject","validators","optValidators","checkField","fieldName","type","isOptional","checkVal","_3n","_4n","_5n","_8n","mod","pow","power","modulo","pow2","invert","q","tonelliShanks","legendreC","Q","Z","p1div4","Fp","root","Q1div2","t2","ge","FpSqrt","c1","n2","nv","FIELD_FIELDS","validateField","field","initial","opts","map","FpPow","FpInvertBatch","nums","lastMultiplied","acc","inverted","nLength","nBitLength","_nBitLength","nByteLength","Field","ORDER","redef","BITS","BYTES","sqrtP","lhs","rhs","lst","getFieldBytesLength","fieldOrder","bitLength","getMinHashLength","mapHashToField","fieldLen","minLen","reduced","wNAF","bits","constTimeNegate","condition","item","neg","W","windows","windowSize","elm","points","base","window","precomputes","mask","maxNumber","shiftBy","wbits","offset1","offset2","cond1","cond2","precomputesMap","transform","comp","validateBasic","curve","validatePointOpts","ut.validateObject","endo","b2n","h2b","ut","DER","sBytes","rBytesLeft","sig","slice","shl","rhl","rl","weierstrassPoints","CURVE","_c","point","_isCompressed","ut.concatBytes","fromBytes","tail","weierstrassEquation","x2","x3","isWithinCurveOrder","assertGE","normPrivateKeyToScalar","wrapPrivateKey","ut.bytesToHex","ut.bytesToNumberBE","mod.mod","pointPrecomputes","assertPrjPoint","other","Point","px","py","pz","is0","toInv","privateKey","left","right","X1","Y1","Z1","X2","Y2","Z2","U1","U2","b3","X3","Y3","Z3","t0","t1","t3","t4","t5","wnaf","k1neg","k1","k2neg","k2","k1p","k2p","scalar","fake","f1p","f2p","mul","iz","ax","ay","zz","cofactor","isTorsionFree","clearCofactor","isCompressed","_bits","validateOpts","weierstrass","curveDef","CURVE_ORDER","compressedLen","uncompressedLen","isValidFieldElement","modN","invN","mod.invert","cat","head","y2","isYOdd","numToNByteStr","ut.numberToBytesBE","isBiggerThanHalfOrder","HALF","normalizeS","slcNum","from","Signature","recovery","msgHash","rec","bits2int_modN","radj","prefix","ir","u1","u2","ut.hexToBytes","utils","mod.getMinHashLength","mod.mapHashToField","getPublicKey","isProbPub","getSharedSecret","privateA","publicB","bits2int","delta","ORDER_MASK","ut.bitMask","int2octets","prepSig","defaultSigOpts","lowS","prehash","ent","h1int","seedArgs","k2sig","kBytes","ik","normS","defaultVerOpts","sign","privKey","ut.createHmacDrbg","verify","signature","publicKey","sg","_sig","derError","error","is","_key","assertHash","buf","assertExists","assertBytes","oHash","iHash","hmac","message","HMAC","getHash","msgs","createCurve","defHash","create","secp256k1P","secp256k1N","divNearest","sqrtMod","_6n","_11n","_22n","_23n","_44n","_88n","b6","b9","b11","b22","b44","b88","b176","b220","b223","secp256k1","a1","a2","POW_2_128","c2","fe","TAGGED_HASH_PREFIXES","taggedHash","tag","messages","tagP","tagH","pointToBytes","numTo32b","modP","GmulAdd","schnorrGetExtPubKey","priv","d_","lift_x","xx","challenge","args","schnorrGetPublicKey","schnorrSign","auxRand","rand","k_","rx","schnorrVerify","pub","schnorr","bool","assert","SHA224","assertNumber","chain","wrap","encode","decode","alphabet","digits","input","letter","index","join","separator","padding","chr","end","normalize","fn","convertRadix","carry","done","digit","digitBase","gcd","radix2carry","convertRadix2","radix","radix2","revPadding","unsafeWrapper","base16","base32","base64","base64url","genBase58","abc","base58","XMR_BLOCK_LEN","base58xmr","block","BECH_ALPHABET","POLYMOD_GENERATORS","bech32Polymod","pre","chk","bechChecksum","words","encodingConst","genBech32","encoding","ENCODING_CONST","_words","fromWords","toWords","fromWordsUnsafe","limit","actualLength","lowered","sepIndex","decodeUnsafe","decodeToBytes","bech32","utf8","CODERS","isBytes","u32","checkOpts","defaults","diff","wrapCipher","params","BLOCK_SIZE","POLY","mul2","sbox","box","invSbox","rotr32_8","rotl32_8","genTtable","T0","T3","T01","T23","sbox2","idx","tableEncoding","tableDecoding","xPowers","expandKeyLE","abytes","k32","Nk","subByte","applySbox","xk","expandKeyDecLE","encKey","w","apply0123","s2","s3","encrypt","rounds","decrypt","getDst","dst","validateBlockDecrypt","validateBlockEncrypt","plaintext","pcks5","remaining","validatePCKS","lastByte","padPCKS","tmp32","paddingByte","cbc","iv","_out","n32","ciphertext","ps0","ps1","ps2","ps3","o0","o1","o2","o3","_utf8ToBytes","sigma16","sigma32","sigma16_32","sigma32_32","rotl","isAligned32","BLOCK_LEN","BLOCK_LEN32","MAX_COUNTER","U32_EMPTY","runCipher","core","sigma","nonce","counter","b32","isAligned","d32","o32","pos32","posj","createCipher","allowShortKeys","extendNonceFn","counterLength","counterRight","anumber","abool","toClean","nonceNcLen","nc","chachaCore","cnt","y00","y01","y02","y03","y04","y05","y06","y07","y08","y09","y10","y11","y12","y13","y14","y15","x00","x01","x02","x03","x04","x05","x06","x07","x08","x09","x10","x11","x12","x13","x14","x15","oi","chacha20","extract","ikm","salt","HKDF_COUNTER","EMPTY_BUFFER","expand","prk","info","blocks","okm","HMACTmp","__export","all","name","verifiedSymbol","isRecord","validateEvent","event","i2","utils_exports","Queue","QueueNode","binarySearch","insertEventIntoAscendingList","insertEventIntoDescendingList","normalizeURL","utf8Decoder","utf8Encoder","url","sortedArray","found","compare","start","mid","cmp","newNode","target2","JS","secretKey","getEventHash","valid","serializeEvent","evt","eventHash","generateSecretKey","finalizeEvent","verifyEvent","kinds_exports","Application","BadgeAward","BadgeDefinition","BlockedRelaysList","BookmarkList","Bookmarksets","Calendar","CalendarEventRSVP","ChannelCreation","ChannelHideMessage","ChannelMessage","ChannelMetadata","ChannelMuteUser","ClassifiedListing","ClientAuth","CommunitiesList","CommunityDefinition","CommunityPostApproval","Contacts","CreateOrUpdateProduct","CreateOrUpdateStall","Curationsets","Date2","DirectMessageRelaysList","DraftClassifiedListing","DraftLong","Emojisets","EncryptedDirectMessage","EventDeletion","FileMetadata","FileServerPreference","Followsets","GenericRepost","Genericlists","GiftWrap","HTTPAuth","Handlerinformation","Handlerrecommendation","Highlights","InterestsList","Interestsets","JobFeedback","JobRequest","JobResult","Label","LightningPubRPC","LiveChatMessage","LiveEvent","LongFormArticle","Metadata","Mutelist","NWCWalletInfo","NWCWalletRequest","NWCWalletResponse","NostrConnect","OpenTimestamps","Pinlist","PrivateDirectMessage","ProblemTracker","ProfileBadges","PublicChatsList","Reaction","RecommendRelay","RelayList","Relaysets","Report","Reporting","Repost","Seal","SearchRelaysList","ShortTextNote","Time","UserEmojiList","UserStatuses","Zap","ZapGoal","ZapRequest","classifyKind","isEphemeralKind","isKind","isParameterizedReplaceableKind","isRegularKind","isReplaceableKind","kindAsArray","matchFilter","filter","tagName","values","matchFilters","filters","fakejson_exports","getHex64","getInt","getSubscriptionId","matchEventId","matchEventKind","matchEventPubkey","json","sliced","pstart","pend","id","pubkey","nip42_exports","makeAuthEvent","relayURL","yieldThread","resolve","ch","handler","AbstractRelay","relay","reason","sub","ep","cr","reject","err","ev","subid","so","alreadyHave","payload","ok","signAuthEvent","ret","subscription","Subscription","_WebSocket","Relay","_WebSocket2","nip19_exports","BECH32_REGEX","Bech32MaxSize","NostrTypeGuard","encodeBytes","naddrEncode","neventEncode","noteEncode","nprofileEncode","npubEncode","nsecEncode","integerToUint8Array","uint8Array","nip19","tlv","parseTLV","bytesToHex2","rest","encodeBech32","profile","encodeTLV","kindArray","addr","entries","vs","entry","nip04_exports","text","privkey","bytesToHex3","normalizedKey","getNormalizedX","ctb64","ivb64","nip05_exports","NIP05_REGEX","isNip05","isValid","queryProfile","searchDomain","useFetchImplementation","_fetch","fetchImplementation","domain","query","fullname","match","nip05","nip10_exports","parse","eTags","eTagIndex","eTag","eTagEventId","eTagRelayUrl","eTagMarker","eventPointer","isFirstETag","isLastETag","nip11_exports","fetchRelayInformation","useFetchImplementation2","_fetch2","nip13_exports","fastEventHash","getPow","minePow","count","nibble","unsigned","difficulty","now2","bytesToHex4","sha2562","nip18_exports","finishRepostEvent","getRepostedEvent","getRepostedEventPointer","reposted","relayUrl","lastETag","lastPTag","skipVerification","pointer","repostedEvent","nip21_exports","NOSTR_URI_REGEX","parse2","test","uri","nip25_exports","finishReactionEvent","getReactedEventPointer","reacted","inheritedTags","nip27_exports","matchAll","regex","replaceAll","content","matches","replacer","nip28_exports","channelCreateEvent","channelHideMessageEvent","channelMessageEvent","channelMetadataEvent","channelMuteUserEvent","tags","nip30_exports","EMOJI_SHORTCODE_REGEX","matchAll2","regex2","replaceAll2","shortcode","nip39_exports","useFetchImplementation3","validateGithub","_fetch3","username","proof","nip44_exports","decrypt2","encrypt2","getConversationKey","v2","minPlaintextSize","maxPlaintextSize","privkeyA","pubkeyB","sharedX","secp256k12","hkdf_extract","sha2563","getMessageKeys","conversationKey","keys","hkdf_expand","calcPaddedLen","nextPower","chunk","writeU16BE","unpadded","unpaddedLen","suffix","concatBytes2","unpad","padded","hmacAad","aad","combined","decodePayload","plen","base642","dlen","vers","randomBytes2","chacha_key","chacha_nonce","hmac_key","mac","calculatedMac","nip47_exports","makeNwcRequestEvent","parseConnectionString","connectionString","pathname","searchParams","secret","invoice","encryptedContent","eventTemplate","nip57_exports","getZapEndpoint","makeZapReceipt","makeZapRequest","useFetchImplementation4","validateZapRequest","_fetch4","metadata","lnurl","lud06","lud16","bech322","body","amount","relays","comment","zr","zapRequestString","zapRequest","preimage","bolt11","paidAt","tagsFromZapRequest","zap","nip59_exports","createRumor","createSeal","createWrap","unwrapEvent","unwrapManyEvents","wrapEvent","wrapManyEvents","TWO_DAYS","now","randomNow","nip44ConversationKey","nip44Encrypt","nip44Decrypt","rumor","recipientPublicKey","seal","randomKey","senderPrivateKey","recipientsPublicKeys","senderPublicKey","wrappeds","recipientPrivateKey","unwrappedSeal","wrappedEvents","unwrappedEvents","nip98_exports","getToken","hashPayload","unpackEventFromToken","validateEvent2","validateEventKind","validateEventMethodTag","validateEventPayloadTag","validateEventTimestamp","validateEventUrlTag","validateToken","_authorizationScheme","loginUrl","httpMethod","includeAuthorizationScheme","signedEvent","base643","token","method","eventB64","urlTag","methodTag","sha2564","bytesToHex5","payloadTag","payloadHash","card_styles_default","css","HasSlotController","host","slotNames","slot","node","el","slotName","component_styles_default","_hasRecordedInitialProperties","ShoelaceElement","LitElement","component","options","elementConstructor","currentlyRegisteredConstructor","newVersion","existingVersion","oldValue","newValue","changedProperties","property","i$1","SlCard","html","classMap","spinner_styles_default","connectedElements","translations","fallback","documentDirection","documentLanguage","isClient","documentElementObserver","update","registerTranslation","translation","code","LocalizeController$1","lang","_a","_b","locale","language","region","primary","secondary","term","dateToFormat","numberToFormat","unit","slide","en_default","LocalizeController","DefaultLocalizationController","SlSpinner","formCollections","reportValidityOverloads","checkValidityOverloads","userInteractedControls","interactions","FormControlController","disabled","isButton","reportValidity","control","emittedEvents","elements","element","formId","form","formCollection","hasInteracted","submitter","button","attr","required","originalInvalidEvent","slInvalidEvent","validValidityState","button_styles_default","library","library_default_default","icons","systemLibrary","library_system_default","registry","watchedIcons","watchIcon","icon","unwatchIcon","getIconLibrary","lib","icon_styles_default","watch","propertyName","resolvedOptions","proto","decoratedFnName","watchedProperties","changedProps","CACHEABLE_ERROR","RETRYABLE_ERROR","parser","iconCache","SlIcon","fileData","div","svg","svgEl","fromLibrary","iconResolver","isTemplateResult","shadowSVG","SlButton","isLink","literal","ifDefined","styles","NoteWall","migsRelay","note","urlMatch","textContent","youtubeRegex","youtubeMatch","youtubeVideoId","thumbnailUrl","imgRegex","imgMatch","customElement","KEY","setDebug","log","action","createLogger","RouteEvent","context","Router","config","route","plugins","plugin","lazy","__vitePreload","baseURL","router","resolveRouterPath","noteWall","unresolvedPath","resolvedPath","AppHome","detail","profileData","AppHeader","storedPubkey","userPubkey","AppIndex"],"ignoreList":[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67,68],"sources":["../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.3Y6SB6QS.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.B3BW2AY6.js","../../index.html?html-proxy&index=0.js","../../node_modules/@lit/reactive-element/css-tag.js","../../node_modules/@lit/reactive-element/reactive-element.js","../../node_modules/lit-html/lit-html.js","../../node_modules/lit-element/lit-element.js","../../node_modules/@lit/reactive-element/decorators/custom-element.js","../../node_modules/@lit/reactive-element/decorators/property.js","../../node_modules/@lit/reactive-element/decorators/state.js","../../node_modules/@lit/reactive-element/decorators/base.js","../../node_modules/@lit/reactive-element/decorators/query.js","../../node_modules/@noble/curves/node_modules/@noble/hashes/esm/_assert.js","../../node_modules/@noble/curves/node_modules/@noble/hashes/esm/crypto.js","../../node_modules/@noble/curves/node_modules/@noble/hashes/esm/utils.js","../../node_modules/@noble/curves/node_modules/@noble/hashes/esm/_sha2.js","../../node_modules/@noble/curves/node_modules/@noble/hashes/esm/sha256.js","../../node_modules/@noble/curves/esm/abstract/utils.js","../../node_modules/@noble/curves/esm/abstract/modular.js","../../node_modules/@noble/curves/esm/abstract/curve.js","../../node_modules/@noble/curves/esm/abstract/weierstrass.js","../../node_modules/@noble/curves/node_modules/@noble/hashes/esm/hmac.js","../../node_modules/@noble/curves/esm/_shortw_utils.js","../../node_modules/@noble/curves/esm/secp256k1.js","../../node_modules/@noble/hashes/esm/crypto.js","../../node_modules/@noble/hashes/esm/utils.js","../../node_modules/@noble/hashes/esm/_assert.js","../../node_modules/@noble/hashes/esm/_sha2.js","../../node_modules/@noble/hashes/esm/sha256.js","../../node_modules/@scure/base/lib/esm/index.js","../../node_modules/@noble/ciphers/esm/_assert.js","../../node_modules/@noble/ciphers/esm/utils.js","../../node_modules/@noble/ciphers/esm/aes.js","../../node_modules/@noble/ciphers/esm/_arx.js","../../node_modules/@noble/ciphers/esm/chacha.js","../../node_modules/@noble/hashes/esm/hmac.js","../../node_modules/@noble/hashes/esm/hkdf.js","../../node_modules/nostr-tools/lib/esm/index.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.A5D6FTFY.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.NYIIDP5N.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.TUVJKY7S.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.UYAO2JRR.js","../../node_modules/lit-html/directive.js","../../node_modules/lit-html/directives/class-map.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.LJF3QW2H.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.7CVSDULN.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.7DUCI5S4.js","../../node_modules/@shoelace-style/localize/dist/index.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.MAS2SHYD.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.WLV3FVBR.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.TLKDQ5JG.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.2RCF7SLU.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.MAQXLKQ7.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.P7ZG6EMR.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.3TFKS637.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.ZL53POKZ.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.QLXRCYS4.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.CCJUT23E.js","../../node_modules/lit-html/directive-helpers.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.E6QAPUBK.js","../../node_modules/lit-html/static.js","../../node_modules/lit-html/directives/if-defined.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.N2SNE3QN.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.Q6JS2LBD.js","../../src/styles/shared-styles.ts","../../src/pages/note-wall.ts","../../node_modules/@thepassle/app-tools/utils/log.js","../../node_modules/@thepassle/app-tools/router/index.js","../../node_modules/@thepassle/app-tools/router/plugins/lazy.js","../../src/router.ts","../../src/pages/app-home.ts","../../src/components/header.ts","../../src/app-index.ts"],"sourcesContent":["// src/utilities/base-path.ts\nvar basePath = \"\";\nfunction setBasePath(path) {\n basePath = path;\n}\nfunction getBasePath(subpath = \"\") {\n if (!basePath) {\n const scripts = [...document.getElementsByTagName(\"script\")];\n const configScript = scripts.find((script) => script.hasAttribute(\"data-shoelace\"));\n if (configScript) {\n setBasePath(configScript.getAttribute(\"data-shoelace\"));\n } else {\n const fallbackScript = scripts.find((s) => {\n return /shoelace(\\.min)?\\.js($|\\?)/.test(s.src) || /shoelace-autoloader(\\.min)?\\.js($|\\?)/.test(s.src);\n });\n let path = \"\";\n if (fallbackScript) {\n path = fallbackScript.getAttribute(\"src\");\n }\n setBasePath(path.split(\"/\").slice(0, -1).join(\"/\"));\n }\n }\n return basePath.replace(/\\/$/, \"\") + (subpath ? `/${subpath.replace(/^\\//, \"\")}` : ``);\n}\n\nexport {\n setBasePath,\n getBasePath\n};\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __knownSymbol = (name, symbol) => {\n return (symbol = Symbol[name]) ? symbol : Symbol.for(\"Symbol.\" + name);\n};\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __await = function(promise, isYieldStar) {\n this[0] = promise;\n this[1] = isYieldStar;\n};\nvar __yieldStar = (value) => {\n var obj = value[__knownSymbol(\"asyncIterator\")];\n var isAwait = false;\n var method;\n var it = {};\n if (obj == null) {\n obj = value[__knownSymbol(\"iterator\")]();\n method = (k) => it[k] = (x) => obj[k](x);\n } else {\n obj = obj.call(value);\n method = (k) => it[k] = (v) => {\n if (isAwait) {\n isAwait = false;\n if (k === \"throw\")\n throw v;\n return v;\n }\n isAwait = true;\n return {\n done: false,\n value: new __await(new Promise((resolve) => {\n var x = obj[k](v);\n if (!(x instanceof Object))\n throw TypeError(\"Object expected\");\n resolve(x);\n }), 1)\n };\n };\n }\n return it[__knownSymbol(\"iterator\")] = () => it, method(\"next\"), \"throw\" in obj ? method(\"throw\") : it.throw = (x) => {\n throw x;\n }, \"return\" in obj && method(\"return\"), it;\n};\n\nexport {\n __spreadValues,\n __spreadProps,\n __decorateClass,\n __privateGet,\n __privateAdd,\n __privateSet,\n __yieldStar\n};\n","\n import { setBasePath } from '@shoelace-style/shoelace/dist/utilities/base-path.js';\n setBasePath('https://cdn.jsdelivr.net/npm/@shoelace-style/shoelace@2.16.0/cdn/');\n ","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:r,getOwnPropertyNames:h,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),y={attribute:!0,type:String,converter:u,reflect:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class b extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=y){if(s.state&&(s.attribute=!1),this._$Ei(),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),r=this.getPropertyDescriptor(t,i,s);void 0!==r&&e(this.prototype,t,r)}}static getPropertyDescriptor(t,s,i){const{get:e,set:h}=r(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get(){return e?.call(this)},set(s){const r=e?.call(this);h.call(this,s),this.requestUpdate(t,r,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??y}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...h(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$EC(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const r=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==r?this.removeAttribute(e):this.setAttribute(e,r),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),r=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e,this[e]=r.fromAttribute(s,t.type),this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){if(i??=this.constructor.getPropertyOptions(t),!(i.hasChanged??f)(this[t],s))return;this.P(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$ET())}P(t,s,i){this._$AL.has(t)||this._$AL.set(t,s),!0===i.reflect&&this._$Em!==t&&(this._$Ej??=new Set).add(t)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t)!0!==i.wrapped||this._$AL.has(s)||void 0===this[s]||this.P(s,this[s],i)}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EU()}catch(s){throw t=!1,this._$EU(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Ej&&=this._$Ej.forEach((t=>this._$EC(t,this[t]))),this._$EU()}updated(t){}firstUpdated(t){}}b.elementStyles=[],b.shadowRootOptions={mode:\"open\"},b[d(\"elementProperties\")]=new Map,b[d(\"finalized\")]=new Map,p?.({ReactiveElement:b}),(a.reactiveElementVersions??=[]).push(\"2.0.4\");export{b as ReactiveElement,u as defaultConverter,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"\":3===i?\"\":\"\",c=f;for(let i=0;i\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[P(t,l+(t[s]||\"\")+(2===i?\"\":3===i?\"\":\"\")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.nextNode())&&d.length0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E as nothing,B as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as s}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class r extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const s=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(s,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return s}}r._$litElement$=!0,r[\"finalized\"]=!0,globalThis.litElementHydrateSupport?.({LitElement:r});const i=globalThis.litElementPolyfillSupport;i?.({LitElement:r});const o={_$AK:(t,e,s)=>{t._$AK(e,s)},_$AL:t=>t._$AL};(globalThis.litElementVersions??=[]).push(\"4.1.1\");export{r as LitElement,o as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=t=>(e,o)=>{void 0!==o?o.addInitializer((()=>{customElements.define(t,e)})):customElements.define(t,e)};export{t as customElement};\n//# sourceMappingURL=custom-element.js.map\n","import{defaultConverter as t,notEqual as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:t,reflect:!1,hasChanged:e},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t)},init(e){return void 0!==e&&this.P(o,void 0,t),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,r?{...t,wrapped:!0}:t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,c)=>(c.configurable=!0,c.enumerable=!0,Reflect.decorate&&\"object\"!=typeof t&&Object.defineProperty(e,t,c),c);export{e as desc};\n//# sourceMappingURL=base.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e,r){return(n,s,i)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(r){const{get:e,set:r}=\"object\"==typeof s?n:i??(()=>{const t=Symbol();return{get(){return this[t]},set(e){this[t]=e}}})();return t(n,s,{get(){let t=e.call(this);return void 0===t&&(t=o(this),(null!==t||this.hasUpdated)&&r.call(this,t)),t}})}return t(n,s,{get(){return o(this)}})}}export{e as query};\n//# sourceMappingURL=query.js.map\n","function number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`Wrong positive integer: ${n}`);\n}\nfunction bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`Expected boolean, not ${b}`);\n}\nfunction bytes(b, ...lengths) {\n if (!(b instanceof Uint8Array))\n throw new Error('Expected Uint8Array');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);\n}\nfunction hash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\nfunction exists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\nfunction output(out, instance) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\nexport { number, bool, bytes, hash, exists, output };\nconst assert = { number, bool, bytes, hash, exists, output };\nexport default assert;\n//# sourceMappingURL=_assert.js.map","export const crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n//# sourceMappingURL=crypto.js.map","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated, we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\nconst u8a = (a) => a instanceof Uint8Array;\n// Cast array to different type\nexport const u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n// Cast array to view\nexport const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\n// big-endian hardware is rare. Just in case someone still decides to run hashes:\n// early-throw an error because we don't support BE yet.\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\nif (!isLE)\n throw new Error('Non little-endian hardware is not supported');\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n if (!u8a(bytes))\n throw new Error('Uint8Array expected');\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n const len = hex.length;\n if (len % 2)\n throw new Error('padded hex string expected, got unpadded hex of length ' + len);\n const array = new Uint8Array(len / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => { };\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await nextTick();\n ts += diff;\n }\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n if (!u8a(data))\n throw new Error(`expected Uint8Array, got ${typeof data}`);\n return data;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays) {\n const r = new Uint8Array(arrays.reduce((sum, a) => sum + a.length, 0));\n let pad = 0; // walk through each item, ensure they have proper type\n arrays.forEach((a) => {\n if (!u8a(a))\n throw new Error('Uint8Array expected');\n r.set(a, pad);\n pad += a.length;\n });\n return r;\n}\n// For runtime check if class implements interface\nexport class Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\nconst toStr = {}.toString;\nexport function checkOpts(defaults, opts) {\n if (opts !== undefined && toStr.call(opts) !== '[object Object]')\n throw new Error('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\nexport function wrapConstructor(hashCons) {\n const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\nexport function wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexport function wrapXOFConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nexport function randomBytes(bytesLength = 32) {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","import { exists, output } from './_assert.js';\nimport { Hash, createView, toBytes } from './utils.js';\n// Polyfill for Safari 14\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n// Base SHA2 class (RFC 6234)\nexport class SHA2 extends Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data) {\n exists(this);\n const { view, buffer, blockLen } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n exists(this);\n output(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4)\n throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length)\n throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++)\n oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\n//# sourceMappingURL=_sha2.js.map","import { SHA2 } from './_sha2.js';\nimport { rotr, wrapConstructor } from './utils.js';\n// SHA2-256 need to try 2^128 hashes to execute birthday attack.\n// BTC network is doing 2^67 hashes/sec as per early 2023.\n// Choice: a ? b : c\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\nconst IV = /* @__PURE__ */ new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nclass SHA256 extends SHA2 {\n constructor() {\n super(64, 32, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = IV[0] | 0;\n this.B = IV[1] | 0;\n this.C = IV[2] | 0;\n this.D = IV[3] | 0;\n this.E = IV[4] | 0;\n this.F = IV[5] | 0;\n this.G = IV[6] | 0;\n this.H = IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n constructor() {\n super();\n this.A = 0xc1059ed8 | 0;\n this.B = 0x367cd507 | 0;\n this.C = 0x3070dd17 | 0;\n this.D = 0xf70e5939 | 0;\n this.E = 0xffc00b31 | 0;\n this.F = 0x68581511 | 0;\n this.G = 0x64f98fa7 | 0;\n this.H = 0xbefa4fa4 | 0;\n this.outputLen = 28;\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = /* @__PURE__ */ wrapConstructor(() => new SHA256());\nexport const sha224 = /* @__PURE__ */ wrapConstructor(() => new SHA224());\n//# sourceMappingURL=sha256.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// 100 lines of code in the file are duplicated from noble-hashes (utils).\n// This is OK: `abstract` directory does not use noble-hashes.\n// User may opt-in into using different hashing library. This way, noble-hashes\n// won't be included into their bundle.\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst u8a = (a) => a instanceof Uint8Array;\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n if (!u8a(bytes))\n throw new Error('Uint8Array expected');\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\nexport function numberToHexUnpadded(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\nexport function hexToNumber(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n // Big Endian\n return BigInt(hex === '' ? '0' : `0x${hex}`);\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n const len = hex.length;\n if (len % 2)\n throw new Error('padded hex string expected, got unpadded hex of length ' + len);\n const array = new Uint8Array(len / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\n// BE: Big Endian, LE: Little Endian\nexport function bytesToNumberBE(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\nexport function bytesToNumberLE(bytes) {\n if (!u8a(bytes))\n throw new Error('Uint8Array expected');\n return hexToNumber(bytesToHex(Uint8Array.from(bytes).reverse()));\n}\nexport function numberToBytesBE(n, len) {\n return hexToBytes(n.toString(16).padStart(len * 2, '0'));\n}\nexport function numberToBytesLE(n, len) {\n return numberToBytesBE(n, len).reverse();\n}\n// Unpadded, rarely used\nexport function numberToVarBytesBE(n) {\n return hexToBytes(numberToHexUnpadded(n));\n}\n/**\n * Takes hex string or Uint8Array, converts to Uint8Array.\n * Validates output length.\n * Will throw error for other types.\n * @param title descriptive title for an error e.g. 'private key'\n * @param hex hex string or Uint8Array\n * @param expectedLength optional, will compare to result array's length\n * @returns\n */\nexport function ensureBytes(title, hex, expectedLength) {\n let res;\n if (typeof hex === 'string') {\n try {\n res = hexToBytes(hex);\n }\n catch (e) {\n throw new Error(`${title} must be valid hex string, got \"${hex}\". Cause: ${e}`);\n }\n }\n else if (u8a(hex)) {\n // Uint8Array.from() instead of hash.slice() because node.js Buffer\n // is instance of Uint8Array, and its slice() creates **mutable** copy\n res = Uint8Array.from(hex);\n }\n else {\n throw new Error(`${title} must be hex string or Uint8Array`);\n }\n const len = res.length;\n if (typeof expectedLength === 'number' && len !== expectedLength)\n throw new Error(`${title} expected ${expectedLength} bytes, got ${len}`);\n return res;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays) {\n const r = new Uint8Array(arrays.reduce((sum, a) => sum + a.length, 0));\n let pad = 0; // walk through each item, ensure they have proper type\n arrays.forEach((a) => {\n if (!u8a(a))\n throw new Error('Uint8Array expected');\n r.set(a, pad);\n pad += a.length;\n });\n return r;\n}\nexport function equalBytes(b1, b2) {\n // We don't care about timing attacks here\n if (b1.length !== b2.length)\n return false;\n for (let i = 0; i < b1.length; i++)\n if (b1[i] !== b2[i])\n return false;\n return true;\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n// Bit operations\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n */\nexport function bitLen(n) {\n let len;\n for (len = 0; n > _0n; n >>= _1n, len += 1)\n ;\n return len;\n}\n/**\n * Gets single bit at position.\n * NOTE: first bit position is 0 (same as arrays)\n * Same as `!!+Array.from(n.toString(2)).reverse()[pos]`\n */\nexport function bitGet(n, pos) {\n return (n >> BigInt(pos)) & _1n;\n}\n/**\n * Sets single bit at position.\n */\nexport const bitSet = (n, pos, value) => {\n return n | ((value ? _1n : _0n) << BigInt(pos));\n};\n/**\n * Calculate mask for N bits. Not using ** operator with bigints because of old engines.\n * Same as BigInt(`0b${Array(i).fill('1').join('')}`)\n */\nexport const bitMask = (n) => (_2n << BigInt(n - 1)) - _1n;\n// DRBG\nconst u8n = (data) => new Uint8Array(data); // creates Uint8Array\nconst u8fr = (arr) => Uint8Array.from(arr); // another shortcut\n/**\n * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n * @returns function that will call DRBG until 2nd arg returns something meaningful\n * @example\n * const drbg = createHmacDRBG(32, 32, hmac);\n * drbg(seed, bytesToKey); // bytesToKey must return Key or undefined\n */\nexport function createHmacDrbg(hashLen, qByteLen, hmacFn) {\n if (typeof hashLen !== 'number' || hashLen < 2)\n throw new Error('hashLen must be a number');\n if (typeof qByteLen !== 'number' || qByteLen < 2)\n throw new Error('qByteLen must be a number');\n if (typeof hmacFn !== 'function')\n throw new Error('hmacFn must be a function');\n // Step B, Step C: set hashLen to 8*ceil(hlen/8)\n let v = u8n(hashLen); // Minimal non-full-spec HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n let k = u8n(hashLen); // Steps B and C of RFC6979 3.2: set hashLen, in our case always same\n let i = 0; // Iterations counter, will throw when over 1000\n const reset = () => {\n v.fill(1);\n k.fill(0);\n i = 0;\n };\n const h = (...b) => hmacFn(k, v, ...b); // hmac(k)(v, ...values)\n const reseed = (seed = u8n()) => {\n // HMAC-DRBG reseed() function. Steps D-G\n k = h(u8fr([0x00]), seed); // k = hmac(k || v || 0x00 || seed)\n v = h(); // v = hmac(k || v)\n if (seed.length === 0)\n return;\n k = h(u8fr([0x01]), seed); // k = hmac(k || v || 0x01 || seed)\n v = h(); // v = hmac(k || v)\n };\n const gen = () => {\n // HMAC-DRBG generate() function\n if (i++ >= 1000)\n throw new Error('drbg: tried 1000 values');\n let len = 0;\n const out = [];\n while (len < qByteLen) {\n v = h();\n const sl = v.slice();\n out.push(sl);\n len += v.length;\n }\n return concatBytes(...out);\n };\n const genUntil = (seed, pred) => {\n reset();\n reseed(seed); // Steps D-G\n let res = undefined; // Step H: grind until k is in [1..n-1]\n while (!(res = pred(gen())))\n reseed();\n reset();\n return res;\n };\n return genUntil;\n}\n// Validating curves and fields\nconst validatorFns = {\n bigint: (val) => typeof val === 'bigint',\n function: (val) => typeof val === 'function',\n boolean: (val) => typeof val === 'boolean',\n string: (val) => typeof val === 'string',\n stringOrUint8Array: (val) => typeof val === 'string' || val instanceof Uint8Array,\n isSafeInteger: (val) => Number.isSafeInteger(val),\n array: (val) => Array.isArray(val),\n field: (val, object) => object.Fp.isValid(val),\n hash: (val) => typeof val === 'function' && Number.isSafeInteger(val.outputLen),\n};\n// type Record = { [P in K]: T; }\nexport function validateObject(object, validators, optValidators = {}) {\n const checkField = (fieldName, type, isOptional) => {\n const checkVal = validatorFns[type];\n if (typeof checkVal !== 'function')\n throw new Error(`Invalid validator \"${type}\", expected function`);\n const val = object[fieldName];\n if (isOptional && val === undefined)\n return;\n if (!checkVal(val, object)) {\n throw new Error(`Invalid param ${String(fieldName)}=${val} (${typeof val}), expected ${type}`);\n }\n };\n for (const [fieldName, type] of Object.entries(validators))\n checkField(fieldName, type, false);\n for (const [fieldName, type] of Object.entries(optValidators))\n checkField(fieldName, type, true);\n return object;\n}\n// validate type tests\n// const o: { a: number; b: number; c: number } = { a: 1, b: 5, c: 6 };\n// const z0 = validateObject(o, { a: 'isSafeInteger' }, { c: 'bigint' }); // Ok!\n// // Should fail type-check\n// const z1 = validateObject(o, { a: 'tmp' }, { c: 'zz' });\n// const z2 = validateObject(o, { a: 'isSafeInteger' }, { c: 'zz' });\n// const z3 = validateObject(o, { test: 'boolean', z: 'bug' });\n// const z4 = validateObject(o, { a: 'boolean', z: 'bug' });\n//# sourceMappingURL=utils.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Utilities for modular arithmetics and finite fields\nimport { bitMask, numberToBytesBE, numberToBytesLE, bytesToNumberBE, bytesToNumberLE, ensureBytes, validateObject, } from './utils.js';\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3);\n// prettier-ignore\nconst _4n = BigInt(4), _5n = BigInt(5), _8n = BigInt(8);\n// prettier-ignore\nconst _9n = BigInt(9), _16n = BigInt(16);\n// Calculates a modulo b\nexport function mod(a, b) {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\n/**\n * Efficiently raise num to power and do modular division.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n * @example\n * pow(2n, 6n, 11n) // 64n % 11n == 9n\n */\n// TODO: use field version && remove\nexport function pow(num, power, modulo) {\n if (modulo <= _0n || power < _0n)\n throw new Error('Expected power/modulo > 0');\n if (modulo === _1n)\n return _0n;\n let res = _1n;\n while (power > _0n) {\n if (power & _1n)\n res = (res * num) % modulo;\n num = (num * num) % modulo;\n power >>= _1n;\n }\n return res;\n}\n// Does x ^ (2 ^ power) mod p. pow2(30, 4) == 30 ^ (2 ^ 4)\nexport function pow2(x, power, modulo) {\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= modulo;\n }\n return res;\n}\n// Inverses number over modulo\nexport function invert(number, modulo) {\n if (number === _0n || modulo <= _0n) {\n throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n }\n // Euclidean GCD https://brilliant.org/wiki/extended-euclidean-algorithm/\n // Fermat's little theorem \"CT-like\" version inv(n) = n^(m-2) mod m is 30x slower.\n let a = mod(number, modulo);\n let b = modulo;\n // prettier-ignore\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n // JIT applies optimization if those two lines follow each other\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n // prettier-ignore\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n)\n throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\n/**\n * Tonelli-Shanks square root search algorithm.\n * 1. https://eprint.iacr.org/2012/685.pdf (page 12)\n * 2. Square Roots from 1; 24, 51, 10 to Dan Shanks\n * Will start an infinite loop if field order P is not prime.\n * @param P field order\n * @returns function that takes field Fp (created from P) and number n\n */\nexport function tonelliShanks(P) {\n // Legendre constant: used to calculate Legendre symbol (a | p),\n // which denotes the value of a^((p-1)/2) (mod p).\n // (a | p) ≡ 1 if a is a square (mod p)\n // (a | p) ≡ -1 if a is not a square (mod p)\n // (a | p) ≡ 0 if a ≡ 0 (mod p)\n const legendreC = (P - _1n) / _2n;\n let Q, S, Z;\n // Step 1: By factoring out powers of 2 from p - 1,\n // find q and s such that p - 1 = q*(2^s) with q odd\n for (Q = P - _1n, S = 0; Q % _2n === _0n; Q /= _2n, S++)\n ;\n // Step 2: Select a non-square z such that (z | p) ≡ -1 and set c ≡ zq\n for (Z = _2n; Z < P && pow(Z, legendreC, P) !== P - _1n; Z++)\n ;\n // Fast-path\n if (S === 1) {\n const p1div4 = (P + _1n) / _4n;\n return function tonelliFast(Fp, n) {\n const root = Fp.pow(n, p1div4);\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // Slow-path\n const Q1div2 = (Q + _1n) / _2n;\n return function tonelliSlow(Fp, n) {\n // Step 0: Check that n is indeed a square: (n | p) should not be ≡ -1\n if (Fp.pow(n, legendreC) === Fp.neg(Fp.ONE))\n throw new Error('Cannot find square root');\n let r = S;\n // TODO: will fail at Fp2/etc\n let g = Fp.pow(Fp.mul(Fp.ONE, Z), Q); // will update both x and b\n let x = Fp.pow(n, Q1div2); // first guess at the square root\n let b = Fp.pow(n, Q); // first guess at the fudge factor\n while (!Fp.eql(b, Fp.ONE)) {\n if (Fp.eql(b, Fp.ZERO))\n return Fp.ZERO; // https://en.wikipedia.org/wiki/Tonelli%E2%80%93Shanks_algorithm (4. If t = 0, return r = 0)\n // Find m such b^(2^m)==1\n let m = 1;\n for (let t2 = Fp.sqr(b); m < r; m++) {\n if (Fp.eql(t2, Fp.ONE))\n break;\n t2 = Fp.sqr(t2); // t2 *= t2\n }\n // NOTE: r-m-1 can be bigger than 32, need to convert to bigint before shift, otherwise there will be overflow\n const ge = Fp.pow(g, _1n << BigInt(r - m - 1)); // ge = 2^(r-m-1)\n g = Fp.sqr(ge); // g = ge * ge\n x = Fp.mul(x, ge); // x *= ge\n b = Fp.mul(b, g); // b *= g\n r = m;\n }\n return x;\n };\n}\nexport function FpSqrt(P) {\n // NOTE: different algorithms can give different roots, it is up to user to decide which one they want.\n // For example there is FpSqrtOdd/FpSqrtEven to choice root based on oddness (used for hash-to-curve).\n // P ≡ 3 (mod 4)\n // √n = n^((P+1)/4)\n if (P % _4n === _3n) {\n // Not all roots possible!\n // const ORDER =\n // 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn;\n // const NUM = 72057594037927816n;\n const p1div4 = (P + _1n) / _4n;\n return function sqrt3mod4(Fp, n) {\n const root = Fp.pow(n, p1div4);\n // Throw if root**2 != n\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // Atkin algorithm for q ≡ 5 (mod 8), https://eprint.iacr.org/2012/685.pdf (page 10)\n if (P % _8n === _5n) {\n const c1 = (P - _5n) / _8n;\n return function sqrt5mod8(Fp, n) {\n const n2 = Fp.mul(n, _2n);\n const v = Fp.pow(n2, c1);\n const nv = Fp.mul(n, v);\n const i = Fp.mul(Fp.mul(nv, _2n), v);\n const root = Fp.mul(nv, Fp.sub(i, Fp.ONE));\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // P ≡ 9 (mod 16)\n if (P % _16n === _9n) {\n // NOTE: tonelli is too slow for bls-Fp2 calculations even on start\n // Means we cannot use sqrt for constants at all!\n //\n // const c1 = Fp.sqrt(Fp.negate(Fp.ONE)); // 1. c1 = sqrt(-1) in F, i.e., (c1^2) == -1 in F\n // const c2 = Fp.sqrt(c1); // 2. c2 = sqrt(c1) in F, i.e., (c2^2) == c1 in F\n // const c3 = Fp.sqrt(Fp.negate(c1)); // 3. c3 = sqrt(-c1) in F, i.e., (c3^2) == -c1 in F\n // const c4 = (P + _7n) / _16n; // 4. c4 = (q + 7) / 16 # Integer arithmetic\n // sqrt = (x) => {\n // let tv1 = Fp.pow(x, c4); // 1. tv1 = x^c4\n // let tv2 = Fp.mul(c1, tv1); // 2. tv2 = c1 * tv1\n // const tv3 = Fp.mul(c2, tv1); // 3. tv3 = c2 * tv1\n // let tv4 = Fp.mul(c3, tv1); // 4. tv4 = c3 * tv1\n // const e1 = Fp.equals(Fp.square(tv2), x); // 5. e1 = (tv2^2) == x\n // const e2 = Fp.equals(Fp.square(tv3), x); // 6. e2 = (tv3^2) == x\n // tv1 = Fp.cmov(tv1, tv2, e1); // 7. tv1 = CMOV(tv1, tv2, e1) # Select tv2 if (tv2^2) == x\n // tv2 = Fp.cmov(tv4, tv3, e2); // 8. tv2 = CMOV(tv4, tv3, e2) # Select tv3 if (tv3^2) == x\n // const e3 = Fp.equals(Fp.square(tv2), x); // 9. e3 = (tv2^2) == x\n // return Fp.cmov(tv1, tv2, e3); // 10. z = CMOV(tv1, tv2, e3) # Select the sqrt from tv1 and tv2\n // }\n }\n // Other cases: Tonelli-Shanks algorithm\n return tonelliShanks(P);\n}\n// Little-endian check for first LE bit (last BE bit);\nexport const isNegativeLE = (num, modulo) => (mod(num, modulo) & _1n) === _1n;\n// prettier-ignore\nconst FIELD_FIELDS = [\n 'create', 'isValid', 'is0', 'neg', 'inv', 'sqrt', 'sqr',\n 'eql', 'add', 'sub', 'mul', 'pow', 'div',\n 'addN', 'subN', 'mulN', 'sqrN'\n];\nexport function validateField(field) {\n const initial = {\n ORDER: 'bigint',\n MASK: 'bigint',\n BYTES: 'isSafeInteger',\n BITS: 'isSafeInteger',\n };\n const opts = FIELD_FIELDS.reduce((map, val) => {\n map[val] = 'function';\n return map;\n }, initial);\n return validateObject(field, opts);\n}\n// Generic field functions\n/**\n * Same as `pow` but for Fp: non-constant-time.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n */\nexport function FpPow(f, num, power) {\n // Should have same speed as pow for bigints\n // TODO: benchmark!\n if (power < _0n)\n throw new Error('Expected power > 0');\n if (power === _0n)\n return f.ONE;\n if (power === _1n)\n return num;\n let p = f.ONE;\n let d = num;\n while (power > _0n) {\n if (power & _1n)\n p = f.mul(p, d);\n d = f.sqr(d);\n power >>= _1n;\n }\n return p;\n}\n/**\n * Efficiently invert an array of Field elements.\n * `inv(0)` will return `undefined` here: make sure to throw an error.\n */\nexport function FpInvertBatch(f, nums) {\n const tmp = new Array(nums.length);\n // Walk from first to last, multiply them by each other MOD p\n const lastMultiplied = nums.reduce((acc, num, i) => {\n if (f.is0(num))\n return acc;\n tmp[i] = acc;\n return f.mul(acc, num);\n }, f.ONE);\n // Invert last element\n const inverted = f.inv(lastMultiplied);\n // Walk from last to first, multiply them by inverted each other MOD p\n nums.reduceRight((acc, num, i) => {\n if (f.is0(num))\n return acc;\n tmp[i] = f.mul(acc, tmp[i]);\n return f.mul(acc, num);\n }, inverted);\n return tmp;\n}\nexport function FpDiv(f, lhs, rhs) {\n return f.mul(lhs, typeof rhs === 'bigint' ? invert(rhs, f.ORDER) : f.inv(rhs));\n}\n// This function returns True whenever the value x is a square in the field F.\nexport function FpIsSquare(f) {\n const legendreConst = (f.ORDER - _1n) / _2n; // Integer arithmetic\n return (x) => {\n const p = f.pow(x, legendreConst);\n return f.eql(p, f.ZERO) || f.eql(p, f.ONE);\n };\n}\n// CURVE.n lengths\nexport function nLength(n, nBitLength) {\n // Bit size, byte size of CURVE.n\n const _nBitLength = nBitLength !== undefined ? nBitLength : n.toString(2).length;\n const nByteLength = Math.ceil(_nBitLength / 8);\n return { nBitLength: _nBitLength, nByteLength };\n}\n/**\n * Initializes a finite field over prime. **Non-primes are not supported.**\n * Do not init in loop: slow. Very fragile: always run a benchmark on a change.\n * Major performance optimizations:\n * * a) denormalized operations like mulN instead of mul\n * * b) same object shape: never add or remove keys\n * * c) Object.freeze\n * @param ORDER prime positive bigint\n * @param bitLen how many bits the field consumes\n * @param isLE (def: false) if encoding / decoding should be in little-endian\n * @param redef optional faster redefinitions of sqrt and other methods\n */\nexport function Field(ORDER, bitLen, isLE = false, redef = {}) {\n if (ORDER <= _0n)\n throw new Error(`Expected Field ORDER > 0, got ${ORDER}`);\n const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, bitLen);\n if (BYTES > 2048)\n throw new Error('Field lengths over 2048 bytes are not supported');\n const sqrtP = FpSqrt(ORDER);\n const f = Object.freeze({\n ORDER,\n BITS,\n BYTES,\n MASK: bitMask(BITS),\n ZERO: _0n,\n ONE: _1n,\n create: (num) => mod(num, ORDER),\n isValid: (num) => {\n if (typeof num !== 'bigint')\n throw new Error(`Invalid field element: expected bigint, got ${typeof num}`);\n return _0n <= num && num < ORDER; // 0 is valid element, but it's not invertible\n },\n is0: (num) => num === _0n,\n isOdd: (num) => (num & _1n) === _1n,\n neg: (num) => mod(-num, ORDER),\n eql: (lhs, rhs) => lhs === rhs,\n sqr: (num) => mod(num * num, ORDER),\n add: (lhs, rhs) => mod(lhs + rhs, ORDER),\n sub: (lhs, rhs) => mod(lhs - rhs, ORDER),\n mul: (lhs, rhs) => mod(lhs * rhs, ORDER),\n pow: (num, power) => FpPow(f, num, power),\n div: (lhs, rhs) => mod(lhs * invert(rhs, ORDER), ORDER),\n // Same as above, but doesn't normalize\n sqrN: (num) => num * num,\n addN: (lhs, rhs) => lhs + rhs,\n subN: (lhs, rhs) => lhs - rhs,\n mulN: (lhs, rhs) => lhs * rhs,\n inv: (num) => invert(num, ORDER),\n sqrt: redef.sqrt || ((n) => sqrtP(f, n)),\n invertBatch: (lst) => FpInvertBatch(f, lst),\n // TODO: do we really need constant cmov?\n // We don't have const-time bigints anyway, so probably will be not very useful\n cmov: (a, b, c) => (c ? b : a),\n toBytes: (num) => (isLE ? numberToBytesLE(num, BYTES) : numberToBytesBE(num, BYTES)),\n fromBytes: (bytes) => {\n if (bytes.length !== BYTES)\n throw new Error(`Fp.fromBytes: expected ${BYTES}, got ${bytes.length}`);\n return isLE ? bytesToNumberLE(bytes) : bytesToNumberBE(bytes);\n },\n });\n return Object.freeze(f);\n}\nexport function FpSqrtOdd(Fp, elm) {\n if (!Fp.isOdd)\n throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? root : Fp.neg(root);\n}\nexport function FpSqrtEven(Fp, elm) {\n if (!Fp.isOdd)\n throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? Fp.neg(root) : root;\n}\n/**\n * \"Constant-time\" private key generation utility.\n * Same as mapKeyToField, but accepts less bytes (40 instead of 48 for 32-byte field).\n * Which makes it slightly more biased, less secure.\n * @deprecated use mapKeyToField instead\n */\nexport function hashToPrivateScalar(hash, groupOrder, isLE = false) {\n hash = ensureBytes('privateHash', hash);\n const hashLen = hash.length;\n const minLen = nLength(groupOrder).nByteLength + 8;\n if (minLen < 24 || hashLen < minLen || hashLen > 1024)\n throw new Error(`hashToPrivateScalar: expected ${minLen}-1024 bytes of input, got ${hashLen}`);\n const num = isLE ? bytesToNumberLE(hash) : bytesToNumberBE(hash);\n return mod(num, groupOrder - _1n) + _1n;\n}\n/**\n * Returns total number of bytes consumed by the field element.\n * For example, 32 bytes for usual 256-bit weierstrass curve.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of field\n */\nexport function getFieldBytesLength(fieldOrder) {\n if (typeof fieldOrder !== 'bigint')\n throw new Error('field order must be bigint');\n const bitLength = fieldOrder.toString(2).length;\n return Math.ceil(bitLength / 8);\n}\n/**\n * Returns minimal amount of bytes that can be safely reduced\n * by field order.\n * Should be 2^-128 for 128-bit curve such as P256.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of target hash\n */\nexport function getMinHashLength(fieldOrder) {\n const length = getFieldBytesLength(fieldOrder);\n return length + Math.ceil(length / 2);\n}\n/**\n * \"Constant-time\" private key generation utility.\n * Can take (n + n/2) or more bytes of uniform input e.g. from CSPRNG or KDF\n * and convert them into private scalar, with the modulo bias being negligible.\n * Needs at least 48 bytes of input for 32-byte private key.\n * https://research.kudelskisecurity.com/2020/07/28/the-definitive-guide-to-modulo-bias-and-how-to-avoid-it/\n * FIPS 186-5, A.2 https://csrc.nist.gov/publications/detail/fips/186/5/final\n * RFC 9380, https://www.rfc-editor.org/rfc/rfc9380#section-5\n * @param hash hash output from SHA3 or a similar function\n * @param groupOrder size of subgroup - (e.g. secp256k1.CURVE.n)\n * @param isLE interpret hash bytes as LE num\n * @returns valid private scalar\n */\nexport function mapHashToField(key, fieldOrder, isLE = false) {\n const len = key.length;\n const fieldLen = getFieldBytesLength(fieldOrder);\n const minLen = getMinHashLength(fieldOrder);\n // No small numbers: need to understand bias story. No huge numbers: easier to detect JS timings.\n if (len < 16 || len < minLen || len > 1024)\n throw new Error(`expected ${minLen}-1024 bytes of input, got ${len}`);\n const num = isLE ? bytesToNumberBE(key) : bytesToNumberLE(key);\n // `mod(x, 11)` can sometimes produce 0. `mod(x, 10) + 1` is the same, but no 0\n const reduced = mod(num, fieldOrder - _1n) + _1n;\n return isLE ? numberToBytesLE(reduced, fieldLen) : numberToBytesBE(reduced, fieldLen);\n}\n//# sourceMappingURL=modular.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Abelian group utilities\nimport { validateField, nLength } from './modular.js';\nimport { validateObject } from './utils.js';\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\n// Elliptic curve multiplication of Point by scalar. Fragile.\n// Scalars should always be less than curve order: this should be checked inside of a curve itself.\n// Creates precomputation tables for fast multiplication:\n// - private scalar is split by fixed size windows of W bits\n// - every window point is collected from window's table & added to accumulator\n// - since windows are different, same point inside tables won't be accessed more than once per calc\n// - each multiplication is 'Math.ceil(CURVE_ORDER / 𝑊) + 1' point additions (fixed for any scalar)\n// - +1 window is neccessary for wNAF\n// - wNAF reduces table size: 2x less memory + 2x faster generation, but 10% slower multiplication\n// TODO: Research returning 2d JS array of windows, instead of a single window. This would allow\n// windows to be in different memory locations\nexport function wNAF(c, bits) {\n const constTimeNegate = (condition, item) => {\n const neg = item.negate();\n return condition ? neg : item;\n };\n const opts = (W) => {\n const windows = Math.ceil(bits / W) + 1; // +1, because\n const windowSize = 2 ** (W - 1); // -1 because we skip zero\n return { windows, windowSize };\n };\n return {\n constTimeNegate,\n // non-const time multiplication ladder\n unsafeLadder(elm, n) {\n let p = c.ZERO;\n let d = elm;\n while (n > _0n) {\n if (n & _1n)\n p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n },\n /**\n * Creates a wNAF precomputation window. Used for caching.\n * Default window size is set by `utils.precompute()` and is equal to 8.\n * Number of precomputed points depends on the curve size:\n * 2^(𝑊−1) * (Math.ceil(𝑛 / 𝑊) + 1), where:\n * - 𝑊 is the window size\n * - 𝑛 is the bitlength of the curve order.\n * For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224.\n * @returns precomputed point tables flattened to a single array\n */\n precomputeWindow(elm, W) {\n const { windows, windowSize } = opts(W);\n const points = [];\n let p = elm;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n // =1, because we skip zero\n for (let i = 1; i < windowSize; i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n },\n /**\n * Implements ec multiplication using precomputed tables and w-ary non-adjacent form.\n * @param W window size\n * @param precomputes precomputed tables\n * @param n scalar (we don't check here, but should be less than curve order)\n * @returns real and fake (for const-time) points\n */\n wNAF(W, precomputes, n) {\n // TODO: maybe check that scalar is less than group order? wNAF behavious is undefined otherwise\n // But need to carefully remove other checks before wNAF. ORDER == bits here\n const { windows, windowSize } = opts(W);\n let p = c.ZERO;\n let f = c.BASE;\n const mask = BigInt(2 ** W - 1); // Create mask with W ones: 0b1111 for W=4 etc.\n const maxNumber = 2 ** W;\n const shiftBy = BigInt(W);\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n // Extract W bits.\n let wbits = Number(n & mask);\n // Shift number by W bits.\n n >>= shiftBy;\n // If the bits are bigger than max size, we'll split those.\n // +224 => 256 - 32\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n;\n }\n // This code was first written with assumption that 'f' and 'p' will never be infinity point:\n // since each addition is multiplied by 2 ** W, it cannot cancel each other. However,\n // there is negate now: it is possible that negated element from low value\n // would be the same as high element, which will create carry into next window.\n // It's not obvious how this can fail, but still worth investigating later.\n // Check if we're onto Zero point.\n // Add random point inside current window to f.\n const offset1 = offset;\n const offset2 = offset + Math.abs(wbits) - 1; // -1 because we skip zero\n const cond1 = window % 2 !== 0;\n const cond2 = wbits < 0;\n if (wbits === 0) {\n // The most important part for const-time getPublicKey\n f = f.add(constTimeNegate(cond1, precomputes[offset1]));\n }\n else {\n p = p.add(constTimeNegate(cond2, precomputes[offset2]));\n }\n }\n // JIT-compiler should not eliminate f here, since it will later be used in normalizeZ()\n // Even if the variable is still unused, there are some checks which will\n // throw an exception, so compiler needs to prove they won't happen, which is hard.\n // At this point there is a way to F be infinity-point even if p is not,\n // which makes it less const-time: around 1 bigint multiply.\n return { p, f };\n },\n wNAFCached(P, precomputesMap, n, transform) {\n // @ts-ignore\n const W = P._WINDOW_SIZE || 1;\n // Calculate precomputes on a first run, reuse them after\n let comp = precomputesMap.get(P);\n if (!comp) {\n comp = this.precomputeWindow(P, W);\n if (W !== 1) {\n precomputesMap.set(P, transform(comp));\n }\n }\n return this.wNAF(W, comp, n);\n },\n };\n}\nexport function validateBasic(curve) {\n validateField(curve.Fp);\n validateObject(curve, {\n n: 'bigint',\n h: 'bigint',\n Gx: 'field',\n Gy: 'field',\n }, {\n nBitLength: 'isSafeInteger',\n nByteLength: 'isSafeInteger',\n });\n // Set defaults\n return Object.freeze({\n ...nLength(curve.n, curve.nBitLength),\n ...curve,\n ...{ p: curve.Fp.ORDER },\n });\n}\n//# sourceMappingURL=curve.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Short Weierstrass curve. The formula is: y² = x³ + ax + b\nimport * as mod from './modular.js';\nimport * as ut from './utils.js';\nimport { ensureBytes } from './utils.js';\nimport { wNAF, validateBasic } from './curve.js';\nfunction validatePointOpts(curve) {\n const opts = validateBasic(curve);\n ut.validateObject(opts, {\n a: 'field',\n b: 'field',\n }, {\n allowedPrivateKeyLengths: 'array',\n wrapPrivateKey: 'boolean',\n isTorsionFree: 'function',\n clearCofactor: 'function',\n allowInfinityPoint: 'boolean',\n fromBytes: 'function',\n toBytes: 'function',\n });\n const { endo, Fp, a } = opts;\n if (endo) {\n if (!Fp.eql(a, Fp.ZERO)) {\n throw new Error('Endomorphism can only be defined for Koblitz curves that have a=0');\n }\n if (typeof endo !== 'object' ||\n typeof endo.beta !== 'bigint' ||\n typeof endo.splitScalar !== 'function') {\n throw new Error('Expected endomorphism with beta: bigint and splitScalar: function');\n }\n }\n return Object.freeze({ ...opts });\n}\n// ASN.1 DER encoding utilities\nconst { bytesToNumberBE: b2n, hexToBytes: h2b } = ut;\nexport const DER = {\n // asn.1 DER encoding utils\n Err: class DERErr extends Error {\n constructor(m = '') {\n super(m);\n }\n },\n _parseInt(data) {\n const { Err: E } = DER;\n if (data.length < 2 || data[0] !== 0x02)\n throw new E('Invalid signature integer tag');\n const len = data[1];\n const res = data.subarray(2, len + 2);\n if (!len || res.length !== len)\n throw new E('Invalid signature integer: wrong length');\n // https://crypto.stackexchange.com/a/57734 Leftmost bit of first byte is 'negative' flag,\n // since we always use positive integers here. It must always be empty:\n // - add zero byte if exists\n // - if next byte doesn't have a flag, leading zero is not allowed (minimal encoding)\n if (res[0] & 0b10000000)\n throw new E('Invalid signature integer: negative');\n if (res[0] === 0x00 && !(res[1] & 0b10000000))\n throw new E('Invalid signature integer: unnecessary leading zero');\n return { d: b2n(res), l: data.subarray(len + 2) }; // d is data, l is left\n },\n toSig(hex) {\n // parse DER signature\n const { Err: E } = DER;\n const data = typeof hex === 'string' ? h2b(hex) : hex;\n if (!(data instanceof Uint8Array))\n throw new Error('ui8a expected');\n let l = data.length;\n if (l < 2 || data[0] != 0x30)\n throw new E('Invalid signature tag');\n if (data[1] !== l - 2)\n throw new E('Invalid signature: incorrect length');\n const { d: r, l: sBytes } = DER._parseInt(data.subarray(2));\n const { d: s, l: rBytesLeft } = DER._parseInt(sBytes);\n if (rBytesLeft.length)\n throw new E('Invalid signature: left bytes after parsing');\n return { r, s };\n },\n hexFromSig(sig) {\n // Add leading zero if first byte has negative bit enabled. More details in '_parseInt'\n const slice = (s) => (Number.parseInt(s[0], 16) & 0b1000 ? '00' + s : s);\n const h = (num) => {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n };\n const s = slice(h(sig.s));\n const r = slice(h(sig.r));\n const shl = s.length / 2;\n const rhl = r.length / 2;\n const sl = h(shl);\n const rl = h(rhl);\n return `30${h(rhl + shl + 4)}02${rl}${r}02${sl}${s}`;\n },\n};\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3), _4n = BigInt(4);\nexport function weierstrassPoints(opts) {\n const CURVE = validatePointOpts(opts);\n const { Fp } = CURVE; // All curves has same field / group length as for now, but they can differ\n const toBytes = CURVE.toBytes ||\n ((_c, point, _isCompressed) => {\n const a = point.toAffine();\n return ut.concatBytes(Uint8Array.from([0x04]), Fp.toBytes(a.x), Fp.toBytes(a.y));\n });\n const fromBytes = CURVE.fromBytes ||\n ((bytes) => {\n // const head = bytes[0];\n const tail = bytes.subarray(1);\n // if (head !== 0x04) throw new Error('Only non-compressed encoding is supported');\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n });\n /**\n * y² = x³ + ax + b: Short weierstrass curve formula\n * @returns y²\n */\n function weierstrassEquation(x) {\n const { a, b } = CURVE;\n const x2 = Fp.sqr(x); // x * x\n const x3 = Fp.mul(x2, x); // x2 * x\n return Fp.add(Fp.add(x3, Fp.mul(x, a)), b); // x3 + a * x + b\n }\n // Validate whether the passed curve params are valid.\n // We check if curve equation works for generator point.\n // `assertValidity()` won't work: `isTorsionFree()` is not available at this point in bls12-381.\n // ProjectivePoint class has not been initialized yet.\n if (!Fp.eql(Fp.sqr(CURVE.Gy), weierstrassEquation(CURVE.Gx)))\n throw new Error('bad generator point: equation left != right');\n // Valid group elements reside in range 1..n-1\n function isWithinCurveOrder(num) {\n return typeof num === 'bigint' && _0n < num && num < CURVE.n;\n }\n function assertGE(num) {\n if (!isWithinCurveOrder(num))\n throw new Error('Expected valid bigint: 0 < bigint < curve.n');\n }\n // Validates if priv key is valid and converts it to bigint.\n // Supports options allowedPrivateKeyLengths and wrapPrivateKey.\n function normPrivateKeyToScalar(key) {\n const { allowedPrivateKeyLengths: lengths, nByteLength, wrapPrivateKey, n } = CURVE;\n if (lengths && typeof key !== 'bigint') {\n if (key instanceof Uint8Array)\n key = ut.bytesToHex(key);\n // Normalize to hex string, pad. E.g. P521 would norm 130-132 char hex to 132-char bytes\n if (typeof key !== 'string' || !lengths.includes(key.length))\n throw new Error('Invalid key');\n key = key.padStart(nByteLength * 2, '0');\n }\n let num;\n try {\n num =\n typeof key === 'bigint'\n ? key\n : ut.bytesToNumberBE(ensureBytes('private key', key, nByteLength));\n }\n catch (error) {\n throw new Error(`private key must be ${nByteLength} bytes, hex or bigint, not ${typeof key}`);\n }\n if (wrapPrivateKey)\n num = mod.mod(num, n); // disabled by default, enabled for BLS\n assertGE(num); // num in range [1..N-1]\n return num;\n }\n const pointPrecomputes = new Map();\n function assertPrjPoint(other) {\n if (!(other instanceof Point))\n throw new Error('ProjectivePoint expected');\n }\n /**\n * Projective Point works in 3d / projective (homogeneous) coordinates: (x, y, z) ∋ (x=x/z, y=y/z)\n * Default Point works in 2d / affine coordinates: (x, y)\n * We're doing calculations in projective, because its operations don't require costly inversion.\n */\n class Point {\n constructor(px, py, pz) {\n this.px = px;\n this.py = py;\n this.pz = pz;\n if (px == null || !Fp.isValid(px))\n throw new Error('x required');\n if (py == null || !Fp.isValid(py))\n throw new Error('y required');\n if (pz == null || !Fp.isValid(pz))\n throw new Error('z required');\n }\n // Does not validate if the point is on-curve.\n // Use fromHex instead, or call assertValidity() later.\n static fromAffine(p) {\n const { x, y } = p || {};\n if (!p || !Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('invalid affine point');\n if (p instanceof Point)\n throw new Error('projective point not allowed');\n const is0 = (i) => Fp.eql(i, Fp.ZERO);\n // fromAffine(x:0, y:0) would produce (x:0, y:0, z:1), but we need (x:0, y:1, z:0)\n if (is0(x) && is0(y))\n return Point.ZERO;\n return new Point(x, y, Fp.ONE);\n }\n get x() {\n return this.toAffine().x;\n }\n get y() {\n return this.toAffine().y;\n }\n /**\n * Takes a bunch of Projective Points but executes only one\n * inversion on all of them. Inversion is very slow operation,\n * so this improves performance massively.\n * Optimization: converts a list of projective points to a list of identical points with Z=1.\n */\n static normalizeZ(points) {\n const toInv = Fp.invertBatch(points.map((p) => p.pz));\n return points.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine);\n }\n /**\n * Converts hash string or Uint8Array to Point.\n * @param hex short/long ECDSA hex\n */\n static fromHex(hex) {\n const P = Point.fromAffine(fromBytes(ensureBytes('pointHex', hex)));\n P.assertValidity();\n return P;\n }\n // Multiplies generator point by privateKey.\n static fromPrivateKey(privateKey) {\n return Point.BASE.multiply(normPrivateKeyToScalar(privateKey));\n }\n // \"Private method\", don't use it directly\n _setWindowSize(windowSize) {\n this._WINDOW_SIZE = windowSize;\n pointPrecomputes.delete(this);\n }\n // A point on curve is valid if it conforms to equation.\n assertValidity() {\n if (this.is0()) {\n // (0, 1, 0) aka ZERO is invalid in most contexts.\n // In BLS, ZERO can be serialized, so we allow it.\n // (0, 0, 0) is wrong representation of ZERO and is always invalid.\n if (CURVE.allowInfinityPoint && !Fp.is0(this.py))\n return;\n throw new Error('bad point: ZERO');\n }\n // Some 3rd-party test vectors require different wording between here & `fromCompressedHex`\n const { x, y } = this.toAffine();\n // Check if x, y are valid field elements\n if (!Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('bad point: x or y not FE');\n const left = Fp.sqr(y); // y²\n const right = weierstrassEquation(x); // x³ + ax + b\n if (!Fp.eql(left, right))\n throw new Error('bad point: equation left != right');\n if (!this.isTorsionFree())\n throw new Error('bad point: not in prime-order subgroup');\n }\n hasEvenY() {\n const { y } = this.toAffine();\n if (Fp.isOdd)\n return !Fp.isOdd(y);\n throw new Error(\"Field doesn't support isOdd\");\n }\n /**\n * Compare one point to another.\n */\n equals(other) {\n assertPrjPoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n const U1 = Fp.eql(Fp.mul(X1, Z2), Fp.mul(X2, Z1));\n const U2 = Fp.eql(Fp.mul(Y1, Z2), Fp.mul(Y2, Z1));\n return U1 && U2;\n }\n /**\n * Flips point to one corresponding to (x, -y) in Affine coordinates.\n */\n negate() {\n return new Point(this.px, Fp.neg(this.py), this.pz);\n }\n // Renes-Costello-Batina exception-free doubling formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 3\n // Cost: 8M + 3S + 3*a + 2*b3 + 15add.\n double() {\n const { a, b } = CURVE;\n const b3 = Fp.mul(b, _3n);\n const { px: X1, py: Y1, pz: Z1 } = this;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n let t0 = Fp.mul(X1, X1); // step 1\n let t1 = Fp.mul(Y1, Y1);\n let t2 = Fp.mul(Z1, Z1);\n let t3 = Fp.mul(X1, Y1);\n t3 = Fp.add(t3, t3); // step 5\n Z3 = Fp.mul(X1, Z1);\n Z3 = Fp.add(Z3, Z3);\n X3 = Fp.mul(a, Z3);\n Y3 = Fp.mul(b3, t2);\n Y3 = Fp.add(X3, Y3); // step 10\n X3 = Fp.sub(t1, Y3);\n Y3 = Fp.add(t1, Y3);\n Y3 = Fp.mul(X3, Y3);\n X3 = Fp.mul(t3, X3);\n Z3 = Fp.mul(b3, Z3); // step 15\n t2 = Fp.mul(a, t2);\n t3 = Fp.sub(t0, t2);\n t3 = Fp.mul(a, t3);\n t3 = Fp.add(t3, Z3);\n Z3 = Fp.add(t0, t0); // step 20\n t0 = Fp.add(Z3, t0);\n t0 = Fp.add(t0, t2);\n t0 = Fp.mul(t0, t3);\n Y3 = Fp.add(Y3, t0);\n t2 = Fp.mul(Y1, Z1); // step 25\n t2 = Fp.add(t2, t2);\n t0 = Fp.mul(t2, t3);\n X3 = Fp.sub(X3, t0);\n Z3 = Fp.mul(t2, t1);\n Z3 = Fp.add(Z3, Z3); // step 30\n Z3 = Fp.add(Z3, Z3);\n return new Point(X3, Y3, Z3);\n }\n // Renes-Costello-Batina exception-free addition formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 1\n // Cost: 12M + 0S + 3*a + 3*b3 + 23add.\n add(other) {\n assertPrjPoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n const a = CURVE.a;\n const b3 = Fp.mul(CURVE.b, _3n);\n let t0 = Fp.mul(X1, X2); // step 1\n let t1 = Fp.mul(Y1, Y2);\n let t2 = Fp.mul(Z1, Z2);\n let t3 = Fp.add(X1, Y1);\n let t4 = Fp.add(X2, Y2); // step 5\n t3 = Fp.mul(t3, t4);\n t4 = Fp.add(t0, t1);\n t3 = Fp.sub(t3, t4);\n t4 = Fp.add(X1, Z1);\n let t5 = Fp.add(X2, Z2); // step 10\n t4 = Fp.mul(t4, t5);\n t5 = Fp.add(t0, t2);\n t4 = Fp.sub(t4, t5);\n t5 = Fp.add(Y1, Z1);\n X3 = Fp.add(Y2, Z2); // step 15\n t5 = Fp.mul(t5, X3);\n X3 = Fp.add(t1, t2);\n t5 = Fp.sub(t5, X3);\n Z3 = Fp.mul(a, t4);\n X3 = Fp.mul(b3, t2); // step 20\n Z3 = Fp.add(X3, Z3);\n X3 = Fp.sub(t1, Z3);\n Z3 = Fp.add(t1, Z3);\n Y3 = Fp.mul(X3, Z3);\n t1 = Fp.add(t0, t0); // step 25\n t1 = Fp.add(t1, t0);\n t2 = Fp.mul(a, t2);\n t4 = Fp.mul(b3, t4);\n t1 = Fp.add(t1, t2);\n t2 = Fp.sub(t0, t2); // step 30\n t2 = Fp.mul(a, t2);\n t4 = Fp.add(t4, t2);\n t0 = Fp.mul(t1, t4);\n Y3 = Fp.add(Y3, t0);\n t0 = Fp.mul(t5, t4); // step 35\n X3 = Fp.mul(t3, X3);\n X3 = Fp.sub(X3, t0);\n t0 = Fp.mul(t3, t1);\n Z3 = Fp.mul(t5, Z3);\n Z3 = Fp.add(Z3, t0); // step 40\n return new Point(X3, Y3, Z3);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n is0() {\n return this.equals(Point.ZERO);\n }\n wNAF(n) {\n return wnaf.wNAFCached(this, pointPrecomputes, n, (comp) => {\n const toInv = Fp.invertBatch(comp.map((p) => p.pz));\n return comp.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine);\n });\n }\n /**\n * Non-constant-time multiplication. Uses double-and-add algorithm.\n * It's faster, but should only be used when you don't care about\n * an exposed private key e.g. sig verification, which works over *public* keys.\n */\n multiplyUnsafe(n) {\n const I = Point.ZERO;\n if (n === _0n)\n return I;\n assertGE(n); // Will throw on 0\n if (n === _1n)\n return this;\n const { endo } = CURVE;\n if (!endo)\n return wnaf.unsafeLadder(this, n);\n // Apply endomorphism\n let { k1neg, k1, k2neg, k2 } = endo.splitScalar(n);\n let k1p = I;\n let k2p = I;\n let d = this;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n)\n k1p = k1p.add(d);\n if (k2 & _1n)\n k2p = k2p.add(d);\n d = d.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n if (k1neg)\n k1p = k1p.negate();\n if (k2neg)\n k2p = k2p.negate();\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n return k1p.add(k2p);\n }\n /**\n * Constant time multiplication.\n * Uses wNAF method. Windowed method may be 10% faster,\n * but takes 2x longer to generate and consumes 2x memory.\n * Uses precomputes when available.\n * Uses endomorphism for Koblitz curves.\n * @param scalar by which the point would be multiplied\n * @returns New point\n */\n multiply(scalar) {\n assertGE(scalar);\n let n = scalar;\n let point, fake; // Fake point is used to const-time mult\n const { endo } = CURVE;\n if (endo) {\n const { k1neg, k1, k2neg, k2 } = endo.splitScalar(n);\n let { p: k1p, f: f1p } = this.wNAF(k1);\n let { p: k2p, f: f2p } = this.wNAF(k2);\n k1p = wnaf.constTimeNegate(k1neg, k1p);\n k2p = wnaf.constTimeNegate(k2neg, k2p);\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n point = k1p.add(k2p);\n fake = f1p.add(f2p);\n }\n else {\n const { p, f } = this.wNAF(n);\n point = p;\n fake = f;\n }\n // Normalize `z` for both points, but return only real one\n return Point.normalizeZ([point, fake])[0];\n }\n /**\n * Efficiently calculate `aP + bQ`. Unsafe, can expose private key, if used incorrectly.\n * Not using Strauss-Shamir trick: precomputation tables are faster.\n * The trick could be useful if both P and Q are not G (not in our case).\n * @returns non-zero affine point\n */\n multiplyAndAddUnsafe(Q, a, b) {\n const G = Point.BASE; // No Strauss-Shamir trick: we have 10% faster G precomputes\n const mul = (P, a // Select faster multiply() method\n ) => (a === _0n || a === _1n || !P.equals(G) ? P.multiplyUnsafe(a) : P.multiply(a));\n const sum = mul(this, a).add(mul(Q, b));\n return sum.is0() ? undefined : sum;\n }\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (x, y, z) ∋ (x=x/z, y=y/z)\n toAffine(iz) {\n const { px: x, py: y, pz: z } = this;\n const is0 = this.is0();\n // If invZ was 0, we return zero point. However we still want to execute\n // all operations, so we replace invZ with a random number, 1.\n if (iz == null)\n iz = is0 ? Fp.ONE : Fp.inv(z);\n const ax = Fp.mul(x, iz);\n const ay = Fp.mul(y, iz);\n const zz = Fp.mul(z, iz);\n if (is0)\n return { x: Fp.ZERO, y: Fp.ZERO };\n if (!Fp.eql(zz, Fp.ONE))\n throw new Error('invZ was invalid');\n return { x: ax, y: ay };\n }\n isTorsionFree() {\n const { h: cofactor, isTorsionFree } = CURVE;\n if (cofactor === _1n)\n return true; // No subgroups, always torsion-free\n if (isTorsionFree)\n return isTorsionFree(Point, this);\n throw new Error('isTorsionFree() has not been declared for the elliptic curve');\n }\n clearCofactor() {\n const { h: cofactor, clearCofactor } = CURVE;\n if (cofactor === _1n)\n return this; // Fast-path\n if (clearCofactor)\n return clearCofactor(Point, this);\n return this.multiplyUnsafe(CURVE.h);\n }\n toRawBytes(isCompressed = true) {\n this.assertValidity();\n return toBytes(Point, this, isCompressed);\n }\n toHex(isCompressed = true) {\n return ut.bytesToHex(this.toRawBytes(isCompressed));\n }\n }\n Point.BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE);\n Point.ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO);\n const _bits = CURVE.nBitLength;\n const wnaf = wNAF(Point, CURVE.endo ? Math.ceil(_bits / 2) : _bits);\n // Validate if generator point is on curve\n return {\n CURVE,\n ProjectivePoint: Point,\n normPrivateKeyToScalar,\n weierstrassEquation,\n isWithinCurveOrder,\n };\n}\nfunction validateOpts(curve) {\n const opts = validateBasic(curve);\n ut.validateObject(opts, {\n hash: 'hash',\n hmac: 'function',\n randomBytes: 'function',\n }, {\n bits2int: 'function',\n bits2int_modN: 'function',\n lowS: 'boolean',\n });\n return Object.freeze({ lowS: true, ...opts });\n}\nexport function weierstrass(curveDef) {\n const CURVE = validateOpts(curveDef);\n const { Fp, n: CURVE_ORDER } = CURVE;\n const compressedLen = Fp.BYTES + 1; // e.g. 33 for 32\n const uncompressedLen = 2 * Fp.BYTES + 1; // e.g. 65 for 32\n function isValidFieldElement(num) {\n return _0n < num && num < Fp.ORDER; // 0 is banned since it's not invertible FE\n }\n function modN(a) {\n return mod.mod(a, CURVE_ORDER);\n }\n function invN(a) {\n return mod.invert(a, CURVE_ORDER);\n }\n const { ProjectivePoint: Point, normPrivateKeyToScalar, weierstrassEquation, isWithinCurveOrder, } = weierstrassPoints({\n ...CURVE,\n toBytes(_c, point, isCompressed) {\n const a = point.toAffine();\n const x = Fp.toBytes(a.x);\n const cat = ut.concatBytes;\n if (isCompressed) {\n return cat(Uint8Array.from([point.hasEvenY() ? 0x02 : 0x03]), x);\n }\n else {\n return cat(Uint8Array.from([0x04]), x, Fp.toBytes(a.y));\n }\n },\n fromBytes(bytes) {\n const len = bytes.length;\n const head = bytes[0];\n const tail = bytes.subarray(1);\n // this.assertValidity() is done inside of fromHex\n if (len === compressedLen && (head === 0x02 || head === 0x03)) {\n const x = ut.bytesToNumberBE(tail);\n if (!isValidFieldElement(x))\n throw new Error('Point is not on curve');\n const y2 = weierstrassEquation(x); // y² = x³ + ax + b\n let y = Fp.sqrt(y2); // y = y² ^ (p+1)/4\n const isYOdd = (y & _1n) === _1n;\n // ECDSA\n const isHeadOdd = (head & 1) === 1;\n if (isHeadOdd !== isYOdd)\n y = Fp.neg(y);\n return { x, y };\n }\n else if (len === uncompressedLen && head === 0x04) {\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n }\n else {\n throw new Error(`Point of length ${len} was invalid. Expected ${compressedLen} compressed bytes or ${uncompressedLen} uncompressed bytes`);\n }\n },\n });\n const numToNByteStr = (num) => ut.bytesToHex(ut.numberToBytesBE(num, CURVE.nByteLength));\n function isBiggerThanHalfOrder(number) {\n const HALF = CURVE_ORDER >> _1n;\n return number > HALF;\n }\n function normalizeS(s) {\n return isBiggerThanHalfOrder(s) ? modN(-s) : s;\n }\n // slice bytes num\n const slcNum = (b, from, to) => ut.bytesToNumberBE(b.slice(from, to));\n /**\n * ECDSA signature with its (r, s) properties. Supports DER & compact representations.\n */\n class Signature {\n constructor(r, s, recovery) {\n this.r = r;\n this.s = s;\n this.recovery = recovery;\n this.assertValidity();\n }\n // pair (bytes of r, bytes of s)\n static fromCompact(hex) {\n const l = CURVE.nByteLength;\n hex = ensureBytes('compactSignature', hex, l * 2);\n return new Signature(slcNum(hex, 0, l), slcNum(hex, l, 2 * l));\n }\n // DER encoded ECDSA signature\n // https://bitcoin.stackexchange.com/questions/57644/what-are-the-parts-of-a-bitcoin-transaction-input-script\n static fromDER(hex) {\n const { r, s } = DER.toSig(ensureBytes('DER', hex));\n return new Signature(r, s);\n }\n assertValidity() {\n // can use assertGE here\n if (!isWithinCurveOrder(this.r))\n throw new Error('r must be 0 < r < CURVE.n');\n if (!isWithinCurveOrder(this.s))\n throw new Error('s must be 0 < s < CURVE.n');\n }\n addRecoveryBit(recovery) {\n return new Signature(this.r, this.s, recovery);\n }\n recoverPublicKey(msgHash) {\n const { r, s, recovery: rec } = this;\n const h = bits2int_modN(ensureBytes('msgHash', msgHash)); // Truncate hash\n if (rec == null || ![0, 1, 2, 3].includes(rec))\n throw new Error('recovery id invalid');\n const radj = rec === 2 || rec === 3 ? r + CURVE.n : r;\n if (radj >= Fp.ORDER)\n throw new Error('recovery id 2 or 3 invalid');\n const prefix = (rec & 1) === 0 ? '02' : '03';\n const R = Point.fromHex(prefix + numToNByteStr(radj));\n const ir = invN(radj); // r^-1\n const u1 = modN(-h * ir); // -hr^-1\n const u2 = modN(s * ir); // sr^-1\n const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2); // (sr^-1)R-(hr^-1)G = -(hr^-1)G + (sr^-1)\n if (!Q)\n throw new Error('point at infinify'); // unsafe is fine: no priv data leaked\n Q.assertValidity();\n return Q;\n }\n // Signatures should be low-s, to prevent malleability.\n hasHighS() {\n return isBiggerThanHalfOrder(this.s);\n }\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, modN(-this.s), this.recovery) : this;\n }\n // DER-encoded\n toDERRawBytes() {\n return ut.hexToBytes(this.toDERHex());\n }\n toDERHex() {\n return DER.hexFromSig({ r: this.r, s: this.s });\n }\n // padded bytes of r, then padded bytes of s\n toCompactRawBytes() {\n return ut.hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n return numToNByteStr(this.r) + numToNByteStr(this.s);\n }\n }\n const utils = {\n isValidPrivateKey(privateKey) {\n try {\n normPrivateKeyToScalar(privateKey);\n return true;\n }\n catch (error) {\n return false;\n }\n },\n normPrivateKeyToScalar: normPrivateKeyToScalar,\n /**\n * Produces cryptographically secure private key from random of size\n * (groupLen + ceil(groupLen / 2)) with modulo bias being negligible.\n */\n randomPrivateKey: () => {\n const length = mod.getMinHashLength(CURVE.n);\n return mod.mapHashToField(CURVE.randomBytes(length), CURVE.n);\n },\n /**\n * Creates precompute table for an arbitrary EC point. Makes point \"cached\".\n * Allows to massively speed-up `point.multiply(scalar)`.\n * @returns cached point\n * @example\n * const fast = utils.precompute(8, ProjectivePoint.fromHex(someonesPubKey));\n * fast.multiply(privKey); // much faster ECDH now\n */\n precompute(windowSize = 8, point = Point.BASE) {\n point._setWindowSize(windowSize);\n point.multiply(BigInt(3)); // 3 is arbitrary, just need any number here\n return point;\n },\n };\n /**\n * Computes public key for a private key. Checks for validity of the private key.\n * @param privateKey private key\n * @param isCompressed whether to return compact (default), or full key\n * @returns Public key, full when isCompressed=false; short when isCompressed=true\n */\n function getPublicKey(privateKey, isCompressed = true) {\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n }\n /**\n * Quick and dirty check for item being public key. Does not validate hex, or being on-curve.\n */\n function isProbPub(item) {\n const arr = item instanceof Uint8Array;\n const str = typeof item === 'string';\n const len = (arr || str) && item.length;\n if (arr)\n return len === compressedLen || len === uncompressedLen;\n if (str)\n return len === 2 * compressedLen || len === 2 * uncompressedLen;\n if (item instanceof Point)\n return true;\n return false;\n }\n /**\n * ECDH (Elliptic Curve Diffie Hellman).\n * Computes shared public key from private key and public key.\n * Checks: 1) private key validity 2) shared key is on-curve.\n * Does NOT hash the result.\n * @param privateA private key\n * @param publicB different public key\n * @param isCompressed whether to return compact (default), or full key\n * @returns shared public key\n */\n function getSharedSecret(privateA, publicB, isCompressed = true) {\n if (isProbPub(privateA))\n throw new Error('first arg must be private key');\n if (!isProbPub(publicB))\n throw new Error('second arg must be public key');\n const b = Point.fromHex(publicB); // check for being on-curve\n return b.multiply(normPrivateKeyToScalar(privateA)).toRawBytes(isCompressed);\n }\n // RFC6979: ensure ECDSA msg is X bytes and < N. RFC suggests optional truncating via bits2octets.\n // FIPS 186-4 4.6 suggests the leftmost min(nBitLen, outLen) bits, which matches bits2int.\n // bits2int can produce res>N, we can do mod(res, N) since the bitLen is the same.\n // int2octets can't be used; pads small msgs with 0: unacceptatble for trunc as per RFC vectors\n const bits2int = CURVE.bits2int ||\n function (bytes) {\n // For curves with nBitLength % 8 !== 0: bits2octets(bits2octets(m)) !== bits2octets(m)\n // for some cases, since bytes.length * 8 is not actual bitLength.\n const num = ut.bytesToNumberBE(bytes); // check for == u8 done here\n const delta = bytes.length * 8 - CURVE.nBitLength; // truncate to nBitLength leftmost bits\n return delta > 0 ? num >> BigInt(delta) : num;\n };\n const bits2int_modN = CURVE.bits2int_modN ||\n function (bytes) {\n return modN(bits2int(bytes)); // can't use bytesToNumberBE here\n };\n // NOTE: pads output with zero as per spec\n const ORDER_MASK = ut.bitMask(CURVE.nBitLength);\n /**\n * Converts to bytes. Checks if num in `[0..ORDER_MASK-1]` e.g.: `[0..2^256-1]`.\n */\n function int2octets(num) {\n if (typeof num !== 'bigint')\n throw new Error('bigint expected');\n if (!(_0n <= num && num < ORDER_MASK))\n throw new Error(`bigint expected < 2^${CURVE.nBitLength}`);\n // works with order, can have different size than numToField!\n return ut.numberToBytesBE(num, CURVE.nByteLength);\n }\n // Steps A, D of RFC6979 3.2\n // Creates RFC6979 seed; converts msg/privKey to numbers.\n // Used only in sign, not in verify.\n // NOTE: we cannot assume here that msgHash has same amount of bytes as curve order, this will be wrong at least for P521.\n // Also it can be bigger for P224 + SHA256\n function prepSig(msgHash, privateKey, opts = defaultSigOpts) {\n if (['recovered', 'canonical'].some((k) => k in opts))\n throw new Error('sign() legacy options not supported');\n const { hash, randomBytes } = CURVE;\n let { lowS, prehash, extraEntropy: ent } = opts; // generates low-s sigs by default\n if (lowS == null)\n lowS = true; // RFC6979 3.2: we skip step A, because we already provide hash\n msgHash = ensureBytes('msgHash', msgHash);\n if (prehash)\n msgHash = ensureBytes('prehashed msgHash', hash(msgHash));\n // We can't later call bits2octets, since nested bits2int is broken for curves\n // with nBitLength % 8 !== 0. Because of that, we unwrap it here as int2octets call.\n // const bits2octets = (bits) => int2octets(bits2int_modN(bits))\n const h1int = bits2int_modN(msgHash);\n const d = normPrivateKeyToScalar(privateKey); // validate private key, convert to bigint\n const seedArgs = [int2octets(d), int2octets(h1int)];\n // extraEntropy. RFC6979 3.6: additional k' (optional).\n if (ent != null) {\n // K = HMAC_K(V || 0x00 || int2octets(x) || bits2octets(h1) || k')\n const e = ent === true ? randomBytes(Fp.BYTES) : ent; // generate random bytes OR pass as-is\n seedArgs.push(ensureBytes('extraEntropy', e)); // check for being bytes\n }\n const seed = ut.concatBytes(...seedArgs); // Step D of RFC6979 3.2\n const m = h1int; // NOTE: no need to call bits2int second time here, it is inside truncateHash!\n // Converts signature params into point w r/s, checks result for validity.\n function k2sig(kBytes) {\n // RFC 6979 Section 3.2, step 3: k = bits2int(T)\n const k = bits2int(kBytes); // Cannot use fields methods, since it is group element\n if (!isWithinCurveOrder(k))\n return; // Important: all mod() calls here must be done over N\n const ik = invN(k); // k^-1 mod n\n const q = Point.BASE.multiply(k).toAffine(); // q = Gk\n const r = modN(q.x); // r = q.x mod n\n if (r === _0n)\n return;\n // Can use scalar blinding b^-1(bm + bdr) where b ∈ [1,q−1] according to\n // https://tches.iacr.org/index.php/TCHES/article/view/7337/6509. We've decided against it:\n // a) dependency on CSPRNG b) 15% slowdown c) doesn't really help since bigints are not CT\n const s = modN(ik * modN(m + r * d)); // Not using blinding here\n if (s === _0n)\n return;\n let recovery = (q.x === r ? 0 : 2) | Number(q.y & _1n); // recovery bit (2 or 3, when q.x > n)\n let normS = s;\n if (lowS && isBiggerThanHalfOrder(s)) {\n normS = normalizeS(s); // if lowS was passed, ensure s is always\n recovery ^= 1; // // in the bottom half of N\n }\n return new Signature(r, normS, recovery); // use normS, not s\n }\n return { seed, k2sig };\n }\n const defaultSigOpts = { lowS: CURVE.lowS, prehash: false };\n const defaultVerOpts = { lowS: CURVE.lowS, prehash: false };\n /**\n * Signs message hash with a private key.\n * ```\n * sign(m, d, k) where\n * (x, y) = G × k\n * r = x mod n\n * s = (m + dr)/k mod n\n * ```\n * @param msgHash NOT message. msg needs to be hashed to `msgHash`, or use `prehash`.\n * @param privKey private key\n * @param opts lowS for non-malleable sigs. extraEntropy for mixing randomness into k. prehash will hash first arg.\n * @returns signature with recovery param\n */\n function sign(msgHash, privKey, opts = defaultSigOpts) {\n const { seed, k2sig } = prepSig(msgHash, privKey, opts); // Steps A, D of RFC6979 3.2.\n const C = CURVE;\n const drbg = ut.createHmacDrbg(C.hash.outputLen, C.nByteLength, C.hmac);\n return drbg(seed, k2sig); // Steps B, C, D, E, F, G\n }\n // Enable precomputes. Slows down first publicKey computation by 20ms.\n Point.BASE._setWindowSize(8);\n // utils.precompute(8, ProjectivePoint.BASE)\n /**\n * Verifies a signature against message hash and public key.\n * Rejects lowS signatures by default: to override,\n * specify option `{lowS: false}`. Implements section 4.1.4 from https://www.secg.org/sec1-v2.pdf:\n *\n * ```\n * verify(r, s, h, P) where\n * U1 = hs^-1 mod n\n * U2 = rs^-1 mod n\n * R = U1⋅G - U2⋅P\n * mod(R.x, n) == r\n * ```\n */\n function verify(signature, msgHash, publicKey, opts = defaultVerOpts) {\n const sg = signature;\n msgHash = ensureBytes('msgHash', msgHash);\n publicKey = ensureBytes('publicKey', publicKey);\n if ('strict' in opts)\n throw new Error('options.strict was renamed to lowS');\n const { lowS, prehash } = opts;\n let _sig = undefined;\n let P;\n try {\n if (typeof sg === 'string' || sg instanceof Uint8Array) {\n // Signature can be represented in 2 ways: compact (2*nByteLength) & DER (variable-length).\n // Since DER can also be 2*nByteLength bytes, we check for it first.\n try {\n _sig = Signature.fromDER(sg);\n }\n catch (derError) {\n if (!(derError instanceof DER.Err))\n throw derError;\n _sig = Signature.fromCompact(sg);\n }\n }\n else if (typeof sg === 'object' && typeof sg.r === 'bigint' && typeof sg.s === 'bigint') {\n const { r, s } = sg;\n _sig = new Signature(r, s);\n }\n else {\n throw new Error('PARSE');\n }\n P = Point.fromHex(publicKey);\n }\n catch (error) {\n if (error.message === 'PARSE')\n throw new Error(`signature must be Signature instance, Uint8Array or hex string`);\n return false;\n }\n if (lowS && _sig.hasHighS())\n return false;\n if (prehash)\n msgHash = CURVE.hash(msgHash);\n const { r, s } = _sig;\n const h = bits2int_modN(msgHash); // Cannot use fields methods, since it is group element\n const is = invN(s); // s^-1\n const u1 = modN(h * is); // u1 = hs^-1 mod n\n const u2 = modN(r * is); // u2 = rs^-1 mod n\n const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2)?.toAffine(); // R = u1⋅G + u2⋅P\n if (!R)\n return false;\n const v = modN(R.x);\n return v === r;\n }\n return {\n CURVE,\n getPublicKey,\n getSharedSecret,\n sign,\n verify,\n ProjectivePoint: Point,\n Signature,\n utils,\n };\n}\n/**\n * Implementation of the Shallue and van de Woestijne method for any weierstrass curve.\n * TODO: check if there is a way to merge this with uvRatio in Edwards; move to modular.\n * b = True and y = sqrt(u / v) if (u / v) is square in F, and\n * b = False and y = sqrt(Z * (u / v)) otherwise.\n * @param Fp\n * @param Z\n * @returns\n */\nexport function SWUFpSqrtRatio(Fp, Z) {\n // Generic implementation\n const q = Fp.ORDER;\n let l = _0n;\n for (let o = q - _1n; o % _2n === _0n; o /= _2n)\n l += _1n;\n const c1 = l; // 1. c1, the largest integer such that 2^c1 divides q - 1.\n // We need 2n ** c1 and 2n ** (c1-1). We can't use **; but we can use <<.\n // 2n ** c1 == 2n << (c1-1)\n const _2n_pow_c1_1 = _2n << (c1 - _1n - _1n);\n const _2n_pow_c1 = _2n_pow_c1_1 * _2n;\n const c2 = (q - _1n) / _2n_pow_c1; // 2. c2 = (q - 1) / (2^c1) # Integer arithmetic\n const c3 = (c2 - _1n) / _2n; // 3. c3 = (c2 - 1) / 2 # Integer arithmetic\n const c4 = _2n_pow_c1 - _1n; // 4. c4 = 2^c1 - 1 # Integer arithmetic\n const c5 = _2n_pow_c1_1; // 5. c5 = 2^(c1 - 1) # Integer arithmetic\n const c6 = Fp.pow(Z, c2); // 6. c6 = Z^c2\n const c7 = Fp.pow(Z, (c2 + _1n) / _2n); // 7. c7 = Z^((c2 + 1) / 2)\n let sqrtRatio = (u, v) => {\n let tv1 = c6; // 1. tv1 = c6\n let tv2 = Fp.pow(v, c4); // 2. tv2 = v^c4\n let tv3 = Fp.sqr(tv2); // 3. tv3 = tv2^2\n tv3 = Fp.mul(tv3, v); // 4. tv3 = tv3 * v\n let tv5 = Fp.mul(u, tv3); // 5. tv5 = u * tv3\n tv5 = Fp.pow(tv5, c3); // 6. tv5 = tv5^c3\n tv5 = Fp.mul(tv5, tv2); // 7. tv5 = tv5 * tv2\n tv2 = Fp.mul(tv5, v); // 8. tv2 = tv5 * v\n tv3 = Fp.mul(tv5, u); // 9. tv3 = tv5 * u\n let tv4 = Fp.mul(tv3, tv2); // 10. tv4 = tv3 * tv2\n tv5 = Fp.pow(tv4, c5); // 11. tv5 = tv4^c5\n let isQR = Fp.eql(tv5, Fp.ONE); // 12. isQR = tv5 == 1\n tv2 = Fp.mul(tv3, c7); // 13. tv2 = tv3 * c7\n tv5 = Fp.mul(tv4, tv1); // 14. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, isQR); // 15. tv3 = CMOV(tv2, tv3, isQR)\n tv4 = Fp.cmov(tv5, tv4, isQR); // 16. tv4 = CMOV(tv5, tv4, isQR)\n // 17. for i in (c1, c1 - 1, ..., 2):\n for (let i = c1; i > _1n; i--) {\n let tv5 = i - _2n; // 18. tv5 = i - 2\n tv5 = _2n << (tv5 - _1n); // 19. tv5 = 2^tv5\n let tvv5 = Fp.pow(tv4, tv5); // 20. tv5 = tv4^tv5\n const e1 = Fp.eql(tvv5, Fp.ONE); // 21. e1 = tv5 == 1\n tv2 = Fp.mul(tv3, tv1); // 22. tv2 = tv3 * tv1\n tv1 = Fp.mul(tv1, tv1); // 23. tv1 = tv1 * tv1\n tvv5 = Fp.mul(tv4, tv1); // 24. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, e1); // 25. tv3 = CMOV(tv2, tv3, e1)\n tv4 = Fp.cmov(tvv5, tv4, e1); // 26. tv4 = CMOV(tv5, tv4, e1)\n }\n return { isValid: isQR, value: tv3 };\n };\n if (Fp.ORDER % _4n === _3n) {\n // sqrt_ratio_3mod4(u, v)\n const c1 = (Fp.ORDER - _3n) / _4n; // 1. c1 = (q - 3) / 4 # Integer arithmetic\n const c2 = Fp.sqrt(Fp.neg(Z)); // 2. c2 = sqrt(-Z)\n sqrtRatio = (u, v) => {\n let tv1 = Fp.sqr(v); // 1. tv1 = v^2\n const tv2 = Fp.mul(u, v); // 2. tv2 = u * v\n tv1 = Fp.mul(tv1, tv2); // 3. tv1 = tv1 * tv2\n let y1 = Fp.pow(tv1, c1); // 4. y1 = tv1^c1\n y1 = Fp.mul(y1, tv2); // 5. y1 = y1 * tv2\n const y2 = Fp.mul(y1, c2); // 6. y2 = y1 * c2\n const tv3 = Fp.mul(Fp.sqr(y1), v); // 7. tv3 = y1^2; 8. tv3 = tv3 * v\n const isQR = Fp.eql(tv3, u); // 9. isQR = tv3 == u\n let y = Fp.cmov(y2, y1, isQR); // 10. y = CMOV(y2, y1, isQR)\n return { isValid: isQR, value: y }; // 11. return (isQR, y) isQR ? y : y*c2\n };\n }\n // No curves uses that\n // if (Fp.ORDER % _8n === _5n) // sqrt_ratio_5mod8\n return sqrtRatio;\n}\n/**\n * Simplified Shallue-van de Woestijne-Ulas Method\n * https://www.rfc-editor.org/rfc/rfc9380#section-6.6.2\n */\nexport function mapToCurveSimpleSWU(Fp, opts) {\n mod.validateField(Fp);\n if (!Fp.isValid(opts.A) || !Fp.isValid(opts.B) || !Fp.isValid(opts.Z))\n throw new Error('mapToCurveSimpleSWU: invalid opts');\n const sqrtRatio = SWUFpSqrtRatio(Fp, opts.Z);\n if (!Fp.isOdd)\n throw new Error('Fp.isOdd is not implemented!');\n // Input: u, an element of F.\n // Output: (x, y), a point on E.\n return (u) => {\n // prettier-ignore\n let tv1, tv2, tv3, tv4, tv5, tv6, x, y;\n tv1 = Fp.sqr(u); // 1. tv1 = u^2\n tv1 = Fp.mul(tv1, opts.Z); // 2. tv1 = Z * tv1\n tv2 = Fp.sqr(tv1); // 3. tv2 = tv1^2\n tv2 = Fp.add(tv2, tv1); // 4. tv2 = tv2 + tv1\n tv3 = Fp.add(tv2, Fp.ONE); // 5. tv3 = tv2 + 1\n tv3 = Fp.mul(tv3, opts.B); // 6. tv3 = B * tv3\n tv4 = Fp.cmov(opts.Z, Fp.neg(tv2), !Fp.eql(tv2, Fp.ZERO)); // 7. tv4 = CMOV(Z, -tv2, tv2 != 0)\n tv4 = Fp.mul(tv4, opts.A); // 8. tv4 = A * tv4\n tv2 = Fp.sqr(tv3); // 9. tv2 = tv3^2\n tv6 = Fp.sqr(tv4); // 10. tv6 = tv4^2\n tv5 = Fp.mul(tv6, opts.A); // 11. tv5 = A * tv6\n tv2 = Fp.add(tv2, tv5); // 12. tv2 = tv2 + tv5\n tv2 = Fp.mul(tv2, tv3); // 13. tv2 = tv2 * tv3\n tv6 = Fp.mul(tv6, tv4); // 14. tv6 = tv6 * tv4\n tv5 = Fp.mul(tv6, opts.B); // 15. tv5 = B * tv6\n tv2 = Fp.add(tv2, tv5); // 16. tv2 = tv2 + tv5\n x = Fp.mul(tv1, tv3); // 17. x = tv1 * tv3\n const { isValid, value } = sqrtRatio(tv2, tv6); // 18. (is_gx1_square, y1) = sqrt_ratio(tv2, tv6)\n y = Fp.mul(tv1, u); // 19. y = tv1 * u -> Z * u^3 * y1\n y = Fp.mul(y, value); // 20. y = y * y1\n x = Fp.cmov(x, tv3, isValid); // 21. x = CMOV(x, tv3, is_gx1_square)\n y = Fp.cmov(y, value, isValid); // 22. y = CMOV(y, y1, is_gx1_square)\n const e1 = Fp.isOdd(u) === Fp.isOdd(y); // 23. e1 = sgn0(u) == sgn0(y)\n y = Fp.cmov(Fp.neg(y), y, e1); // 24. y = CMOV(-y, y, e1)\n x = Fp.div(x, tv4); // 25. x = x / tv4\n return { x, y };\n };\n}\n//# sourceMappingURL=weierstrass.js.map","import { hash as assertHash, bytes as assertBytes, exists as assertExists } from './_assert.js';\nimport { Hash, toBytes } from './utils.js';\n// HMAC (RFC 2104)\nexport class HMAC extends Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n assertHash(hash);\n const key = toBytes(_key);\n this.iHash = hash.create();\n if (typeof this.iHash.update !== 'function')\n throw new Error('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf) {\n assertExists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n assertExists(this);\n assertBytes(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n */\nexport const hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nhmac.create = (hash, key) => new HMAC(hash, key);\n//# sourceMappingURL=hmac.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { hmac } from '@noble/hashes/hmac';\nimport { concatBytes, randomBytes } from '@noble/hashes/utils';\nimport { weierstrass } from './abstract/weierstrass.js';\n// connects noble-curves to noble-hashes\nexport function getHash(hash) {\n return {\n hash,\n hmac: (key, ...msgs) => hmac(hash, key, concatBytes(...msgs)),\n randomBytes,\n };\n}\nexport function createCurve(curveDef, defHash) {\n const create = (hash) => weierstrass({ ...curveDef, ...getHash(hash) });\n return Object.freeze({ ...create(defHash), create });\n}\n//# sourceMappingURL=_shortw_utils.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { sha256 } from '@noble/hashes/sha256';\nimport { randomBytes } from '@noble/hashes/utils';\nimport { Field, mod, pow2 } from './abstract/modular.js';\nimport { mapToCurveSimpleSWU } from './abstract/weierstrass.js';\nimport { bytesToNumberBE, concatBytes, ensureBytes, numberToBytesBE } from './abstract/utils.js';\nimport { createHasher, isogenyMap } from './abstract/hash-to-curve.js';\nimport { createCurve } from './_shortw_utils.js';\nconst secp256k1P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f');\nconst secp256k1N = BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141');\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst divNearest = (a, b) => (a + b / _2n) / b;\n/**\n * √n = n^((p+1)/4) for fields p = 3 mod 4. We unwrap the loop and multiply bit-by-bit.\n * (P+1n/4n).toString(2) would produce bits [223x 1, 0, 22x 1, 4x 0, 11, 00]\n */\nfunction sqrtMod(y) {\n const P = secp256k1P;\n // prettier-ignore\n const _3n = BigInt(3), _6n = BigInt(6), _11n = BigInt(11), _22n = BigInt(22);\n // prettier-ignore\n const _23n = BigInt(23), _44n = BigInt(44), _88n = BigInt(88);\n const b2 = (y * y * y) % P; // x^3, 11\n const b3 = (b2 * b2 * y) % P; // x^7\n const b6 = (pow2(b3, _3n, P) * b3) % P;\n const b9 = (pow2(b6, _3n, P) * b3) % P;\n const b11 = (pow2(b9, _2n, P) * b2) % P;\n const b22 = (pow2(b11, _11n, P) * b11) % P;\n const b44 = (pow2(b22, _22n, P) * b22) % P;\n const b88 = (pow2(b44, _44n, P) * b44) % P;\n const b176 = (pow2(b88, _88n, P) * b88) % P;\n const b220 = (pow2(b176, _44n, P) * b44) % P;\n const b223 = (pow2(b220, _3n, P) * b3) % P;\n const t1 = (pow2(b223, _23n, P) * b22) % P;\n const t2 = (pow2(t1, _6n, P) * b2) % P;\n const root = pow2(t2, _2n, P);\n if (!Fp.eql(Fp.sqr(root), y))\n throw new Error('Cannot find square root');\n return root;\n}\nconst Fp = Field(secp256k1P, undefined, undefined, { sqrt: sqrtMod });\nexport const secp256k1 = createCurve({\n a: BigInt(0),\n b: BigInt(7),\n Fp,\n n: secp256k1N,\n // Base point (x, y) aka generator point\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n h: BigInt(1),\n lowS: true,\n /**\n * secp256k1 belongs to Koblitz curves: it has efficiently computable endomorphism.\n * Endomorphism uses 2x less RAM, speeds up precomputation by 2x and ECDH / key recovery by 20%.\n * For precomputed wNAF it trades off 1/2 init time & 1/3 ram for 20% perf hit.\n * Explanation: https://gist.github.com/paulmillr/eb670806793e84df628a7c434a873066\n */\n endo: {\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n splitScalar: (k) => {\n const n = secp256k1N;\n const a1 = BigInt('0x3086d221a7d46bcde86c90e49284eb15');\n const b1 = -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3');\n const a2 = BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8');\n const b2 = a1;\n const POW_2_128 = BigInt('0x100000000000000000000000000000000'); // (2n**128n).toString(16)\n const c1 = divNearest(b2 * k, n);\n const c2 = divNearest(-b1 * k, n);\n let k1 = mod(k - c1 * a1 - c2 * a2, n);\n let k2 = mod(-c1 * b1 - c2 * b2, n);\n const k1neg = k1 > POW_2_128;\n const k2neg = k2 > POW_2_128;\n if (k1neg)\n k1 = n - k1;\n if (k2neg)\n k2 = n - k2;\n if (k1 > POW_2_128 || k2 > POW_2_128) {\n throw new Error('splitScalar: Endomorphism failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n },\n },\n}, sha256);\n// Schnorr signatures are superior to ECDSA from above. Below is Schnorr-specific BIP0340 code.\n// https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\nconst _0n = BigInt(0);\nconst fe = (x) => typeof x === 'bigint' && _0n < x && x < secp256k1P;\nconst ge = (x) => typeof x === 'bigint' && _0n < x && x < secp256k1N;\n/** An object mapping tags to their tagged hash prefix of [SHA256(tag) | SHA256(tag)] */\nconst TAGGED_HASH_PREFIXES = {};\nfunction taggedHash(tag, ...messages) {\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = sha256(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return sha256(concatBytes(tagP, ...messages));\n}\n// ECDSA compact points are 33-byte. Schnorr is 32: we strip first byte 0x02 or 0x03\nconst pointToBytes = (point) => point.toRawBytes(true).slice(1);\nconst numTo32b = (n) => numberToBytesBE(n, 32);\nconst modP = (x) => mod(x, secp256k1P);\nconst modN = (x) => mod(x, secp256k1N);\nconst Point = secp256k1.ProjectivePoint;\nconst GmulAdd = (Q, a, b) => Point.BASE.multiplyAndAddUnsafe(Q, a, b);\n// Calculate point, scalar and bytes\nfunction schnorrGetExtPubKey(priv) {\n let d_ = secp256k1.utils.normPrivateKeyToScalar(priv); // same method executed in fromPrivateKey\n let p = Point.fromPrivateKey(d_); // P = d'⋅G; 0 < d' < n check is done inside\n const scalar = p.hasEvenY() ? d_ : modN(-d_);\n return { scalar: scalar, bytes: pointToBytes(p) };\n}\n/**\n * lift_x from BIP340. Convert 32-byte x coordinate to elliptic curve point.\n * @returns valid point checked for being on-curve\n */\nfunction lift_x(x) {\n if (!fe(x))\n throw new Error('bad x: need 0 < x < p'); // Fail if x ≥ p.\n const xx = modP(x * x);\n const c = modP(xx * x + BigInt(7)); // Let c = x³ + 7 mod p.\n let y = sqrtMod(c); // Let y = c^(p+1)/4 mod p.\n if (y % _2n !== _0n)\n y = modP(-y); // Return the unique point P such that x(P) = x and\n const p = new Point(x, y, _1n); // y(P) = y if y mod 2 = 0 or y(P) = p-y otherwise.\n p.assertValidity();\n return p;\n}\n/**\n * Create tagged hash, convert it to bigint, reduce modulo-n.\n */\nfunction challenge(...args) {\n return modN(bytesToNumberBE(taggedHash('BIP0340/challenge', ...args)));\n}\n/**\n * Schnorr public key is just `x` coordinate of Point as per BIP340.\n */\nfunction schnorrGetPublicKey(privateKey) {\n return schnorrGetExtPubKey(privateKey).bytes; // d'=int(sk). Fail if d'=0 or d'≥n. Ret bytes(d'⋅G)\n}\n/**\n * Creates Schnorr signature as per BIP340. Verifies itself before returning anything.\n * auxRand is optional and is not the sole source of k generation: bad CSPRNG won't be dangerous.\n */\nfunction schnorrSign(message, privateKey, auxRand = randomBytes(32)) {\n const m = ensureBytes('message', message);\n const { bytes: px, scalar: d } = schnorrGetExtPubKey(privateKey); // checks for isWithinCurveOrder\n const a = ensureBytes('auxRand', auxRand, 32); // Auxiliary random data a: a 32-byte array\n const t = numTo32b(d ^ bytesToNumberBE(taggedHash('BIP0340/aux', a))); // Let t be the byte-wise xor of bytes(d) and hash/aux(a)\n const rand = taggedHash('BIP0340/nonce', t, px, m); // Let rand = hash/nonce(t || bytes(P) || m)\n const k_ = modN(bytesToNumberBE(rand)); // Let k' = int(rand) mod n\n if (k_ === _0n)\n throw new Error('sign failed: k is zero'); // Fail if k' = 0.\n const { bytes: rx, scalar: k } = schnorrGetExtPubKey(k_); // Let R = k'⋅G.\n const e = challenge(rx, px, m); // Let e = int(hash/challenge(bytes(R) || bytes(P) || m)) mod n.\n const sig = new Uint8Array(64); // Let sig = bytes(R) || bytes((k + ed) mod n).\n sig.set(rx, 0);\n sig.set(numTo32b(modN(k + e * d)), 32);\n // If Verify(bytes(P), m, sig) (see below) returns failure, abort\n if (!schnorrVerify(sig, m, px))\n throw new Error('sign: Invalid signature produced');\n return sig;\n}\n/**\n * Verifies Schnorr signature.\n * Will swallow errors & return false except for initial type validation of arguments.\n */\nfunction schnorrVerify(signature, message, publicKey) {\n const sig = ensureBytes('signature', signature, 64);\n const m = ensureBytes('message', message);\n const pub = ensureBytes('publicKey', publicKey, 32);\n try {\n const P = lift_x(bytesToNumberBE(pub)); // P = lift_x(int(pk)); fail if that fails\n const r = bytesToNumberBE(sig.subarray(0, 32)); // Let r = int(sig[0:32]); fail if r ≥ p.\n if (!fe(r))\n return false;\n const s = bytesToNumberBE(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n.\n if (!ge(s))\n return false;\n const e = challenge(numTo32b(r), pointToBytes(P), m); // int(challenge(bytes(r)||bytes(P)||m))%n\n const R = GmulAdd(P, s, modN(-e)); // R = s⋅G - e⋅P\n if (!R || !R.hasEvenY() || R.toAffine().x !== r)\n return false; // -eP == (n-e)P\n return true; // Fail if is_infinite(R) / not has_even_y(R) / x(R) ≠ r.\n }\n catch (error) {\n return false;\n }\n}\nexport const schnorr = /* @__PURE__ */ (() => ({\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n utils: {\n randomPrivateKey: secp256k1.utils.randomPrivateKey,\n lift_x,\n pointToBytes,\n numberToBytesBE,\n bytesToNumberBE,\n taggedHash,\n mod,\n },\n}))();\nconst isoMap = /* @__PURE__ */ (() => isogenyMap(Fp, [\n // xNum\n [\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7',\n '0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581',\n '0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262',\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c',\n ],\n // xDen\n [\n '0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b',\n '0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n // yNum\n [\n '0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c',\n '0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3',\n '0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931',\n '0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84',\n ],\n // yDen\n [\n '0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b',\n '0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573',\n '0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n].map((i) => i.map((j) => BigInt(j)))))();\nconst mapSWU = /* @__PURE__ */ (() => mapToCurveSimpleSWU(Fp, {\n A: BigInt('0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533'),\n B: BigInt('1771'),\n Z: Fp.create(BigInt('-11')),\n}))();\nconst htf = /* @__PURE__ */ (() => createHasher(secp256k1.ProjectivePoint, (scalars) => {\n const { x, y } = mapSWU(Fp.create(scalars[0]));\n return isoMap(x, y);\n}, {\n DST: 'secp256k1_XMD:SHA-256_SSWU_RO_',\n encodeDST: 'secp256k1_XMD:SHA-256_SSWU_NU_',\n p: Fp.ORDER,\n m: 1,\n k: 128,\n expand: 'xmd',\n hash: sha256,\n}))();\nexport const hashToCurve = /* @__PURE__ */ (() => htf.hashToCurve)();\nexport const encodeToCurve = /* @__PURE__ */ (() => htf.encodeToCurve)();\n//# sourceMappingURL=secp256k1.js.map","export const crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n//# sourceMappingURL=crypto.js.map","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated, we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\nconst u8a = (a) => a instanceof Uint8Array;\n// Cast array to different type\nexport const u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n// Cast array to view\nexport const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\n// big-endian hardware is rare. Just in case someone still decides to run hashes:\n// early-throw an error because we don't support BE yet.\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\nif (!isLE)\n throw new Error('Non little-endian hardware is not supported');\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n if (!u8a(bytes))\n throw new Error('Uint8Array expected');\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n const len = hex.length;\n if (len % 2)\n throw new Error('padded hex string expected, got unpadded hex of length ' + len);\n const array = new Uint8Array(len / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => { };\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await nextTick();\n ts += diff;\n }\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n if (!u8a(data))\n throw new Error(`expected Uint8Array, got ${typeof data}`);\n return data;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays) {\n const r = new Uint8Array(arrays.reduce((sum, a) => sum + a.length, 0));\n let pad = 0; // walk through each item, ensure they have proper type\n arrays.forEach((a) => {\n if (!u8a(a))\n throw new Error('Uint8Array expected');\n r.set(a, pad);\n pad += a.length;\n });\n return r;\n}\n// For runtime check if class implements interface\nexport class Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\n// Check if object doens't have custom constructor (like Uint8Array/Array)\nconst isPlainObject = (obj) => Object.prototype.toString.call(obj) === '[object Object]' && obj.constructor === Object;\nexport function checkOpts(defaults, opts) {\n if (opts !== undefined && (typeof opts !== 'object' || !isPlainObject(opts)))\n throw new Error('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\nexport function wrapConstructor(hashCons) {\n const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\nexport function wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexport function wrapXOFConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nexport function randomBytes(bytesLength = 32) {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","export function number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`Wrong positive integer: ${n}`);\n}\nexport function bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`Expected boolean, not ${b}`);\n}\nexport function bytes(b, ...lengths) {\n if (!(b instanceof Uint8Array))\n throw new Error('Expected Uint8Array');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);\n}\nexport function hash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\nexport function exists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\nexport function output(out, instance) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\nconst assert = {\n number,\n bool,\n bytes,\n hash,\n exists,\n output,\n};\nexport default assert;\n//# sourceMappingURL=_assert.js.map","import assert from './_assert.js';\nimport { Hash, createView, toBytes } from './utils.js';\n// Polyfill for Safari 14\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n// Base SHA2 class (RFC 6234)\nexport class SHA2 extends Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data) {\n assert.exists(this);\n const { view, buffer, blockLen } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n assert.exists(this);\n assert.output(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4)\n throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length)\n throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++)\n oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\n//# sourceMappingURL=_sha2.js.map","import { SHA2 } from './_sha2.js';\nimport { rotr, wrapConstructor } from './utils.js';\n// Choice: a ? b : c\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\nconst IV = new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = new Uint32Array(64);\nclass SHA256 extends SHA2 {\n constructor() {\n super(64, 32, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = IV[0] | 0;\n this.B = IV[1] | 0;\n this.C = IV[2] | 0;\n this.D = IV[3] | 0;\n this.E = IV[4] | 0;\n this.F = IV[5] | 0;\n this.G = IV[6] | 0;\n this.H = IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n constructor() {\n super();\n this.A = 0xc1059ed8 | 0;\n this.B = 0x367cd507 | 0;\n this.C = 0x3070dd17 | 0;\n this.D = 0xf70e5939 | 0;\n this.E = 0xffc00b31 | 0;\n this.F = 0x68581511 | 0;\n this.G = 0x64f98fa7 | 0;\n this.H = 0xbefa4fa4 | 0;\n this.outputLen = 28;\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = wrapConstructor(() => new SHA256());\nexport const sha224 = wrapConstructor(() => new SHA224());\n//# sourceMappingURL=sha256.js.map","/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nexport function assertNumber(n) {\n if (!Number.isSafeInteger(n))\n throw new Error(`Wrong integer: ${n}`);\n}\nfunction chain(...args) {\n const wrap = (a, b) => (c) => a(b(c));\n const encode = Array.from(args)\n .reverse()\n .reduce((acc, i) => (acc ? wrap(acc, i.encode) : i.encode), undefined);\n const decode = args.reduce((acc, i) => (acc ? wrap(acc, i.decode) : i.decode), undefined);\n return { encode, decode };\n}\nfunction alphabet(alphabet) {\n return {\n encode: (digits) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('alphabet.encode input should be an array of numbers');\n return digits.map((i) => {\n assertNumber(i);\n if (i < 0 || i >= alphabet.length)\n throw new Error(`Digit index outside alphabet: ${i} (alphabet: ${alphabet.length})`);\n return alphabet[i];\n });\n },\n decode: (input) => {\n if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))\n throw new Error('alphabet.decode input should be array of strings');\n return input.map((letter) => {\n if (typeof letter !== 'string')\n throw new Error(`alphabet.decode: not string element=${letter}`);\n const index = alphabet.indexOf(letter);\n if (index === -1)\n throw new Error(`Unknown letter: \"${letter}\". Allowed: ${alphabet}`);\n return index;\n });\n },\n };\n}\nfunction join(separator = '') {\n if (typeof separator !== 'string')\n throw new Error('join separator should be string');\n return {\n encode: (from) => {\n if (!Array.isArray(from) || (from.length && typeof from[0] !== 'string'))\n throw new Error('join.encode input should be array of strings');\n for (let i of from)\n if (typeof i !== 'string')\n throw new Error(`join.encode: non-string input=${i}`);\n return from.join(separator);\n },\n decode: (to) => {\n if (typeof to !== 'string')\n throw new Error('join.decode input should be string');\n return to.split(separator);\n },\n };\n}\nfunction padding(bits, chr = '=') {\n assertNumber(bits);\n if (typeof chr !== 'string')\n throw new Error('padding chr should be string');\n return {\n encode(data) {\n if (!Array.isArray(data) || (data.length && typeof data[0] !== 'string'))\n throw new Error('padding.encode input should be array of strings');\n for (let i of data)\n if (typeof i !== 'string')\n throw new Error(`padding.encode: non-string input=${i}`);\n while ((data.length * bits) % 8)\n data.push(chr);\n return data;\n },\n decode(input) {\n if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))\n throw new Error('padding.encode input should be array of strings');\n for (let i of input)\n if (typeof i !== 'string')\n throw new Error(`padding.decode: non-string input=${i}`);\n let end = input.length;\n if ((end * bits) % 8)\n throw new Error('Invalid padding: string should have whole number of bytes');\n for (; end > 0 && input[end - 1] === chr; end--) {\n if (!(((end - 1) * bits) % 8))\n throw new Error('Invalid padding: string has too much padding');\n }\n return input.slice(0, end);\n },\n };\n}\nfunction normalize(fn) {\n if (typeof fn !== 'function')\n throw new Error('normalize fn should be function');\n return { encode: (from) => from, decode: (to) => fn(to) };\n}\nfunction convertRadix(data, from, to) {\n if (from < 2)\n throw new Error(`convertRadix: wrong from=${from}, base cannot be less than 2`);\n if (to < 2)\n throw new Error(`convertRadix: wrong to=${to}, base cannot be less than 2`);\n if (!Array.isArray(data))\n throw new Error('convertRadix: data should be array');\n if (!data.length)\n return [];\n let pos = 0;\n const res = [];\n const digits = Array.from(data);\n digits.forEach((d) => {\n assertNumber(d);\n if (d < 0 || d >= from)\n throw new Error(`Wrong integer: ${d}`);\n });\n while (true) {\n let carry = 0;\n let done = true;\n for (let i = pos; i < digits.length; i++) {\n const digit = digits[i];\n const digitBase = from * carry + digit;\n if (!Number.isSafeInteger(digitBase) ||\n (from * carry) / from !== carry ||\n digitBase - digit !== from * carry) {\n throw new Error('convertRadix: carry overflow');\n }\n carry = digitBase % to;\n digits[i] = Math.floor(digitBase / to);\n if (!Number.isSafeInteger(digits[i]) || digits[i] * to + carry !== digitBase)\n throw new Error('convertRadix: carry overflow');\n if (!done)\n continue;\n else if (!digits[i])\n pos = i;\n else\n done = false;\n }\n res.push(carry);\n if (done)\n break;\n }\n for (let i = 0; i < data.length - 1 && data[i] === 0; i++)\n res.push(0);\n return res.reverse();\n}\nconst gcd = (a, b) => (!b ? a : gcd(b, a % b));\nconst radix2carry = (from, to) => from + (to - gcd(from, to));\nfunction convertRadix2(data, from, to, padding) {\n if (!Array.isArray(data))\n throw new Error('convertRadix2: data should be array');\n if (from <= 0 || from > 32)\n throw new Error(`convertRadix2: wrong from=${from}`);\n if (to <= 0 || to > 32)\n throw new Error(`convertRadix2: wrong to=${to}`);\n if (radix2carry(from, to) > 32) {\n throw new Error(`convertRadix2: carry overflow from=${from} to=${to} carryBits=${radix2carry(from, to)}`);\n }\n let carry = 0;\n let pos = 0;\n const mask = 2 ** to - 1;\n const res = [];\n for (const n of data) {\n assertNumber(n);\n if (n >= 2 ** from)\n throw new Error(`convertRadix2: invalid data word=${n} from=${from}`);\n carry = (carry << from) | n;\n if (pos + from > 32)\n throw new Error(`convertRadix2: carry overflow pos=${pos} from=${from}`);\n pos += from;\n for (; pos >= to; pos -= to)\n res.push(((carry >> (pos - to)) & mask) >>> 0);\n carry &= 2 ** pos - 1;\n }\n carry = (carry << (to - pos)) & mask;\n if (!padding && pos >= from)\n throw new Error('Excess padding');\n if (!padding && carry)\n throw new Error(`Non-zero padding: ${carry}`);\n if (padding && pos > 0)\n res.push(carry >>> 0);\n return res;\n}\nfunction radix(num) {\n assertNumber(num);\n return {\n encode: (bytes) => {\n if (!(bytes instanceof Uint8Array))\n throw new Error('radix.encode input should be Uint8Array');\n return convertRadix(Array.from(bytes), 2 ** 8, num);\n },\n decode: (digits) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('radix.decode input should be array of strings');\n return Uint8Array.from(convertRadix(digits, num, 2 ** 8));\n },\n };\n}\nfunction radix2(bits, revPadding = false) {\n assertNumber(bits);\n if (bits <= 0 || bits > 32)\n throw new Error('radix2: bits should be in (0..32]');\n if (radix2carry(8, bits) > 32 || radix2carry(bits, 8) > 32)\n throw new Error('radix2: carry overflow');\n return {\n encode: (bytes) => {\n if (!(bytes instanceof Uint8Array))\n throw new Error('radix2.encode input should be Uint8Array');\n return convertRadix2(Array.from(bytes), 8, bits, !revPadding);\n },\n decode: (digits) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('radix2.decode input should be array of strings');\n return Uint8Array.from(convertRadix2(digits, bits, 8, revPadding));\n },\n };\n}\nfunction unsafeWrapper(fn) {\n if (typeof fn !== 'function')\n throw new Error('unsafeWrapper fn should be function');\n return function (...args) {\n try {\n return fn.apply(null, args);\n }\n catch (e) { }\n };\n}\nfunction checksum(len, fn) {\n assertNumber(len);\n if (typeof fn !== 'function')\n throw new Error('checksum fn should be function');\n return {\n encode(data) {\n if (!(data instanceof Uint8Array))\n throw new Error('checksum.encode: input should be Uint8Array');\n const checksum = fn(data).slice(0, len);\n const res = new Uint8Array(data.length + len);\n res.set(data);\n res.set(checksum, data.length);\n return res;\n },\n decode(data) {\n if (!(data instanceof Uint8Array))\n throw new Error('checksum.decode: input should be Uint8Array');\n const payload = data.slice(0, -len);\n const newChecksum = fn(payload).slice(0, len);\n const oldChecksum = data.slice(-len);\n for (let i = 0; i < len; i++)\n if (newChecksum[i] !== oldChecksum[i])\n throw new Error('Invalid checksum');\n return payload;\n },\n };\n}\nexport const utils = { alphabet, chain, checksum, radix, radix2, join, padding };\nexport const base16 = chain(radix2(4), alphabet('0123456789ABCDEF'), join(''));\nexport const base32 = chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), padding(5), join(''));\nexport const base32hex = chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), padding(5), join(''));\nexport const base32crockford = chain(radix2(5), alphabet('0123456789ABCDEFGHJKMNPQRSTVWXYZ'), join(''), normalize((s) => s.toUpperCase().replace(/O/g, '0').replace(/[IL]/g, '1')));\nexport const base64 = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), padding(6), join(''));\nexport const base64url = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), padding(6), join(''));\nconst genBase58 = (abc) => chain(radix(58), alphabet(abc), join(''));\nexport const base58 = genBase58('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz');\nexport const base58flickr = genBase58('123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ');\nexport const base58xrp = genBase58('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz');\nconst XMR_BLOCK_LEN = [0, 2, 3, 5, 6, 7, 9, 10, 11];\nexport const base58xmr = {\n encode(data) {\n let res = '';\n for (let i = 0; i < data.length; i += 8) {\n const block = data.subarray(i, i + 8);\n res += base58.encode(block).padStart(XMR_BLOCK_LEN[block.length], '1');\n }\n return res;\n },\n decode(str) {\n let res = [];\n for (let i = 0; i < str.length; i += 11) {\n const slice = str.slice(i, i + 11);\n const blockLen = XMR_BLOCK_LEN.indexOf(slice.length);\n const block = base58.decode(slice);\n for (let j = 0; j < block.length - blockLen; j++) {\n if (block[j] !== 0)\n throw new Error('base58xmr: wrong padding');\n }\n res = res.concat(Array.from(block.slice(block.length - blockLen)));\n }\n return Uint8Array.from(res);\n },\n};\nexport const base58check = (sha256) => chain(checksum(4, (data) => sha256(sha256(data))), base58);\nconst BECH_ALPHABET = chain(alphabet('qpzry9x8gf2tvdw0s3jn54khce6mua7l'), join(''));\nconst POLYMOD_GENERATORS = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3];\nfunction bech32Polymod(pre) {\n const b = pre >> 25;\n let chk = (pre & 0x1ffffff) << 5;\n for (let i = 0; i < POLYMOD_GENERATORS.length; i++) {\n if (((b >> i) & 1) === 1)\n chk ^= POLYMOD_GENERATORS[i];\n }\n return chk;\n}\nfunction bechChecksum(prefix, words, encodingConst = 1) {\n const len = prefix.length;\n let chk = 1;\n for (let i = 0; i < len; i++) {\n const c = prefix.charCodeAt(i);\n if (c < 33 || c > 126)\n throw new Error(`Invalid prefix (${prefix})`);\n chk = bech32Polymod(chk) ^ (c >> 5);\n }\n chk = bech32Polymod(chk);\n for (let i = 0; i < len; i++)\n chk = bech32Polymod(chk) ^ (prefix.charCodeAt(i) & 0x1f);\n for (let v of words)\n chk = bech32Polymod(chk) ^ v;\n for (let i = 0; i < 6; i++)\n chk = bech32Polymod(chk);\n chk ^= encodingConst;\n return BECH_ALPHABET.encode(convertRadix2([chk % 2 ** 30], 30, 5, false));\n}\nfunction genBech32(encoding) {\n const ENCODING_CONST = encoding === 'bech32' ? 1 : 0x2bc830a3;\n const _words = radix2(5);\n const fromWords = _words.decode;\n const toWords = _words.encode;\n const fromWordsUnsafe = unsafeWrapper(fromWords);\n function encode(prefix, words, limit = 90) {\n if (typeof prefix !== 'string')\n throw new Error(`bech32.encode prefix should be string, not ${typeof prefix}`);\n if (!Array.isArray(words) || (words.length && typeof words[0] !== 'number'))\n throw new Error(`bech32.encode words should be array of numbers, not ${typeof words}`);\n const actualLength = prefix.length + 7 + words.length;\n if (limit !== false && actualLength > limit)\n throw new TypeError(`Length ${actualLength} exceeds limit ${limit}`);\n prefix = prefix.toLowerCase();\n return `${prefix}1${BECH_ALPHABET.encode(words)}${bechChecksum(prefix, words, ENCODING_CONST)}`;\n }\n function decode(str, limit = 90) {\n if (typeof str !== 'string')\n throw new Error(`bech32.decode input should be string, not ${typeof str}`);\n if (str.length < 8 || (limit !== false && str.length > limit))\n throw new TypeError(`Wrong string length: ${str.length} (${str}). Expected (8..${limit})`);\n const lowered = str.toLowerCase();\n if (str !== lowered && str !== str.toUpperCase())\n throw new Error(`String must be lowercase or uppercase`);\n str = lowered;\n const sepIndex = str.lastIndexOf('1');\n if (sepIndex === 0 || sepIndex === -1)\n throw new Error(`Letter \"1\" must be present between prefix and data only`);\n const prefix = str.slice(0, sepIndex);\n const _words = str.slice(sepIndex + 1);\n if (_words.length < 6)\n throw new Error('Data must be at least 6 characters long');\n const words = BECH_ALPHABET.decode(_words).slice(0, -6);\n const sum = bechChecksum(prefix, words, ENCODING_CONST);\n if (!_words.endsWith(sum))\n throw new Error(`Invalid checksum in ${str}: expected \"${sum}\"`);\n return { prefix, words };\n }\n const decodeUnsafe = unsafeWrapper(decode);\n function decodeToBytes(str) {\n const { prefix, words } = decode(str, false);\n return { prefix, words, bytes: fromWords(words) };\n }\n return { encode, decode, decodeToBytes, decodeUnsafe, fromWords, fromWordsUnsafe, toWords };\n}\nexport const bech32 = genBech32('bech32');\nexport const bech32m = genBech32('bech32m');\nexport const utf8 = {\n encode: (data) => new TextDecoder().decode(data),\n decode: (str) => new TextEncoder().encode(str),\n};\nexport const hex = chain(radix2(4), alphabet('0123456789abcdef'), join(''), normalize((s) => {\n if (typeof s !== 'string' || s.length % 2)\n throw new TypeError(`hex.decode: expected string, got ${typeof s} with length ${s.length}`);\n return s.toLowerCase();\n}));\nconst CODERS = {\n utf8, hex, base16, base32, base64, base64url, base58, base58xmr\n};\nconst coderTypeError = `Invalid encoding type. Available types: ${Object.keys(CODERS).join(', ')}`;\nexport const bytesToString = (type, bytes) => {\n if (typeof type !== 'string' || !CODERS.hasOwnProperty(type))\n throw new TypeError(coderTypeError);\n if (!(bytes instanceof Uint8Array))\n throw new TypeError('bytesToString() expects Uint8Array');\n return CODERS[type].encode(bytes);\n};\nexport const str = bytesToString;\nexport const stringToBytes = (type, str) => {\n if (!CODERS.hasOwnProperty(type))\n throw new TypeError(coderTypeError);\n if (typeof str !== 'string')\n throw new TypeError('stringToBytes() expects string');\n return CODERS[type].decode(str);\n};\nexport const bytes = stringToBytes;\n","function number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`positive integer expected, not ${n}`);\n}\nfunction bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`boolean expected, not ${b}`);\n}\nexport function isBytes(a) {\n return (a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\n}\nfunction bytes(b, ...lengths) {\n if (!isBytes(b))\n throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Uint8Array expected of length ${lengths}, not of length=${b.length}`);\n}\nfunction hash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('hash must be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\nfunction exists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\nfunction output(out, instance) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\nexport { number, bool, bytes, hash, exists, output };\nconst assert = { number, bool, bytes, hash, exists, output };\nexport default assert;\n//# sourceMappingURL=_assert.js.map","/*! noble-ciphers - MIT License (c) 2023 Paul Miller (paulmillr.com) */\nimport { bytes as abytes, isBytes } from './_assert.js';\n// Cast array to different type\nexport const u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u16 = (arr) => new Uint16Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 2));\nexport const u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n// Cast array to view\nexport const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n// big-endian hardware is rare. Just in case someone still decides to run ciphers:\n// early-throw an error because we don't support BE yet.\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\nif (!isLE)\n throw new Error('Non little-endian hardware is not supported');\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n abytes(bytes);\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 };\nfunction asciiToBase16(char) {\n if (char >= asciis._0 && char <= asciis._9)\n return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F)\n return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f)\n return char - (asciis._a - 10);\n return;\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2;\n }\n return array;\n}\nexport function hexToNumber(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n // Big Endian\n return BigInt(hex === '' ? '0' : `0x${hex}`);\n}\n// BE: Big Endian, LE: Little Endian\nexport function bytesToNumberBE(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\nexport function numberToBytesBE(n, len) {\n return hexToBytes(n.toString(16).padStart(len * 2, '0'));\n}\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => { };\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await nextTick();\n ts += diff;\n }\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`string expected, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * @example bytesToUtf8(new Uint8Array([97, 98, 99])) // 'abc'\n */\nexport function bytesToUtf8(bytes) {\n return new TextDecoder().decode(bytes);\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n else if (isBytes(data))\n data = data.slice();\n else\n throw new Error(`Uint8Array expected, got ${typeof data}`);\n return data;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\nexport function checkOpts(defaults, opts) {\n if (opts == null || typeof opts !== 'object')\n throw new Error('options must be defined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\n// Compares 2 u8a-s in kinda constant time\nexport function equalBytes(a, b) {\n if (a.length !== b.length)\n return false;\n let diff = 0;\n for (let i = 0; i < a.length; i++)\n diff |= a[i] ^ b[i];\n return diff === 0;\n}\n// For runtime check if class implements interface\nexport class Hash {\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nexport const wrapCipher = (params, c) => {\n Object.assign(c, params);\n return c;\n};\n// Polyfill for Safari 14\nexport function setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\nexport function u64Lengths(ciphertext, AAD) {\n const num = new Uint8Array(16);\n const view = createView(num);\n setBigUint64(view, 0, BigInt(AAD ? AAD.length : 0), true);\n setBigUint64(view, 8, BigInt(ciphertext.length), true);\n return num;\n}\n//# sourceMappingURL=utils.js.map","// prettier-ignore\nimport { wrapCipher, createView, setBigUint64, equalBytes, u32, u8, } from './utils.js';\nimport { ghash, polyval } from './_polyval.js';\nimport { bytes as abytes } from './_assert.js';\n/*\nAES (Advanced Encryption Standard) aka Rijndael block cipher.\n\nData is split into 128-bit blocks. Encrypted in 10/12/14 rounds (128/192/256 bits). In every round:\n1. **S-box**, table substitution\n2. **Shift rows**, cyclic shift left of all rows of data array\n3. **Mix columns**, multiplying every column by fixed polynomial\n4. **Add round key**, round_key xor i-th column of array\n\nResources:\n- FIPS-197 https://csrc.nist.gov/files/pubs/fips/197/final/docs/fips-197.pdf\n- Original proposal: https://csrc.nist.gov/csrc/media/projects/cryptographic-standards-and-guidelines/documents/aes-development/rijndael-ammended.pdf\n*/\nconst BLOCK_SIZE = 16;\nconst BLOCK_SIZE32 = 4;\nconst EMPTY_BLOCK = new Uint8Array(BLOCK_SIZE);\nconst POLY = 0x11b; // 1 + x + x**3 + x**4 + x**8\n// TODO: remove multiplication, binary ops only\nfunction mul2(n) {\n return (n << 1) ^ (POLY & -(n >> 7));\n}\nfunction mul(a, b) {\n let res = 0;\n for (; b > 0; b >>= 1) {\n // Montgomery ladder\n res ^= a & -(b & 1); // if (b&1) res ^=a (but const-time).\n a = mul2(a); // a = 2*a\n }\n return res;\n}\n// AES S-box is generated using finite field inversion,\n// an affine transform, and xor of a constant 0x63.\nconst sbox = /* @__PURE__ */ (() => {\n let t = new Uint8Array(256);\n for (let i = 0, x = 1; i < 256; i++, x ^= mul2(x))\n t[i] = x;\n const box = new Uint8Array(256);\n box[0] = 0x63; // first elm\n for (let i = 0; i < 255; i++) {\n let x = t[255 - i];\n x |= x << 8;\n box[t[i]] = (x ^ (x >> 4) ^ (x >> 5) ^ (x >> 6) ^ (x >> 7) ^ 0x63) & 0xff;\n }\n return box;\n})();\n// Inverted S-box\nconst invSbox = /* @__PURE__ */ sbox.map((_, j) => sbox.indexOf(j));\n// Rotate u32 by 8\nconst rotr32_8 = (n) => (n << 24) | (n >>> 8);\nconst rotl32_8 = (n) => (n << 8) | (n >>> 24);\n// T-table is optimization suggested in 5.2 of original proposal (missed from FIPS-197). Changes:\n// - LE instead of BE\n// - bigger tables: T0 and T1 are merged into T01 table and T2 & T3 into T23;\n// so index is u16, instead of u8. This speeds up things, unexpectedly\nfunction genTtable(sbox, fn) {\n if (sbox.length !== 256)\n throw new Error('Wrong sbox length');\n const T0 = new Uint32Array(256).map((_, j) => fn(sbox[j]));\n const T1 = T0.map(rotl32_8);\n const T2 = T1.map(rotl32_8);\n const T3 = T2.map(rotl32_8);\n const T01 = new Uint32Array(256 * 256);\n const T23 = new Uint32Array(256 * 256);\n const sbox2 = new Uint16Array(256 * 256);\n for (let i = 0; i < 256; i++) {\n for (let j = 0; j < 256; j++) {\n const idx = i * 256 + j;\n T01[idx] = T0[i] ^ T1[j];\n T23[idx] = T2[i] ^ T3[j];\n sbox2[idx] = (sbox[i] << 8) | sbox[j];\n }\n }\n return { sbox, sbox2, T0, T1, T2, T3, T01, T23 };\n}\nconst tableEncoding = /* @__PURE__ */ genTtable(sbox, (s) => (mul(s, 3) << 24) | (s << 16) | (s << 8) | mul(s, 2));\nconst tableDecoding = /* @__PURE__ */ genTtable(invSbox, (s) => (mul(s, 11) << 24) | (mul(s, 13) << 16) | (mul(s, 9) << 8) | mul(s, 14));\nconst xPowers = /* @__PURE__ */ (() => {\n const p = new Uint8Array(16);\n for (let i = 0, x = 1; i < 16; i++, x = mul2(x))\n p[i] = x;\n return p;\n})();\nexport function expandKeyLE(key) {\n abytes(key);\n const len = key.length;\n if (![16, 24, 32].includes(len))\n throw new Error(`aes: wrong key size: should be 16, 24 or 32, got: ${len}`);\n const { sbox2 } = tableEncoding;\n const k32 = u32(key);\n const Nk = k32.length;\n const subByte = (n) => applySbox(sbox2, n, n, n, n);\n const xk = new Uint32Array(len + 28); // expanded key\n xk.set(k32);\n // 4.3.1 Key expansion\n for (let i = Nk; i < xk.length; i++) {\n let t = xk[i - 1];\n if (i % Nk === 0)\n t = subByte(rotr32_8(t)) ^ xPowers[i / Nk - 1];\n else if (Nk > 6 && i % Nk === 4)\n t = subByte(t);\n xk[i] = xk[i - Nk] ^ t;\n }\n return xk;\n}\nexport function expandKeyDecLE(key) {\n const encKey = expandKeyLE(key);\n const xk = encKey.slice();\n const Nk = encKey.length;\n const { sbox2 } = tableEncoding;\n const { T0, T1, T2, T3 } = tableDecoding;\n // Inverse key by chunks of 4 (rounds)\n for (let i = 0; i < Nk; i += 4) {\n for (let j = 0; j < 4; j++)\n xk[i + j] = encKey[Nk - i - 4 + j];\n }\n encKey.fill(0);\n // apply InvMixColumn except first & last round\n for (let i = 4; i < Nk - 4; i++) {\n const x = xk[i];\n const w = applySbox(sbox2, x, x, x, x);\n xk[i] = T0[w & 0xff] ^ T1[(w >>> 8) & 0xff] ^ T2[(w >>> 16) & 0xff] ^ T3[w >>> 24];\n }\n return xk;\n}\n// Apply tables\nfunction apply0123(T01, T23, s0, s1, s2, s3) {\n return (T01[((s0 << 8) & 0xff00) | ((s1 >>> 8) & 0xff)] ^\n T23[((s2 >>> 8) & 0xff00) | ((s3 >>> 24) & 0xff)]);\n}\nfunction applySbox(sbox2, s0, s1, s2, s3) {\n return (sbox2[(s0 & 0xff) | (s1 & 0xff00)] |\n (sbox2[((s2 >>> 16) & 0xff) | ((s3 >>> 16) & 0xff00)] << 16));\n}\nfunction encrypt(xk, s0, s1, s2, s3) {\n const { sbox2, T01, T23 } = tableEncoding;\n let k = 0;\n (s0 ^= xk[k++]), (s1 ^= xk[k++]), (s2 ^= xk[k++]), (s3 ^= xk[k++]);\n const rounds = xk.length / 4 - 2;\n for (let i = 0; i < rounds; i++) {\n const t0 = xk[k++] ^ apply0123(T01, T23, s0, s1, s2, s3);\n const t1 = xk[k++] ^ apply0123(T01, T23, s1, s2, s3, s0);\n const t2 = xk[k++] ^ apply0123(T01, T23, s2, s3, s0, s1);\n const t3 = xk[k++] ^ apply0123(T01, T23, s3, s0, s1, s2);\n (s0 = t0), (s1 = t1), (s2 = t2), (s3 = t3);\n }\n // last round (without mixcolumns, so using SBOX2 table)\n const t0 = xk[k++] ^ applySbox(sbox2, s0, s1, s2, s3);\n const t1 = xk[k++] ^ applySbox(sbox2, s1, s2, s3, s0);\n const t2 = xk[k++] ^ applySbox(sbox2, s2, s3, s0, s1);\n const t3 = xk[k++] ^ applySbox(sbox2, s3, s0, s1, s2);\n return { s0: t0, s1: t1, s2: t2, s3: t3 };\n}\nfunction decrypt(xk, s0, s1, s2, s3) {\n const { sbox2, T01, T23 } = tableDecoding;\n let k = 0;\n (s0 ^= xk[k++]), (s1 ^= xk[k++]), (s2 ^= xk[k++]), (s3 ^= xk[k++]);\n const rounds = xk.length / 4 - 2;\n for (let i = 0; i < rounds; i++) {\n const t0 = xk[k++] ^ apply0123(T01, T23, s0, s3, s2, s1);\n const t1 = xk[k++] ^ apply0123(T01, T23, s1, s0, s3, s2);\n const t2 = xk[k++] ^ apply0123(T01, T23, s2, s1, s0, s3);\n const t3 = xk[k++] ^ apply0123(T01, T23, s3, s2, s1, s0);\n (s0 = t0), (s1 = t1), (s2 = t2), (s3 = t3);\n }\n // Last round\n const t0 = xk[k++] ^ applySbox(sbox2, s0, s3, s2, s1);\n const t1 = xk[k++] ^ applySbox(sbox2, s1, s0, s3, s2);\n const t2 = xk[k++] ^ applySbox(sbox2, s2, s1, s0, s3);\n const t3 = xk[k++] ^ applySbox(sbox2, s3, s2, s1, s0);\n return { s0: t0, s1: t1, s2: t2, s3: t3 };\n}\nfunction getDst(len, dst) {\n if (!dst)\n return new Uint8Array(len);\n abytes(dst);\n if (dst.length < len)\n throw new Error(`aes: wrong destination length, expected at least ${len}, got: ${dst.length}`);\n return dst;\n}\n// TODO: investigate merging with ctr32\nfunction ctrCounter(xk, nonce, src, dst) {\n abytes(nonce, BLOCK_SIZE);\n abytes(src);\n const srcLen = src.length;\n dst = getDst(srcLen, dst);\n const ctr = nonce;\n const c32 = u32(ctr);\n // Fill block (empty, ctr=0)\n let { s0, s1, s2, s3 } = encrypt(xk, c32[0], c32[1], c32[2], c32[3]);\n const src32 = u32(src);\n const dst32 = u32(dst);\n // process blocks\n for (let i = 0; i + 4 <= src32.length; i += 4) {\n dst32[i + 0] = src32[i + 0] ^ s0;\n dst32[i + 1] = src32[i + 1] ^ s1;\n dst32[i + 2] = src32[i + 2] ^ s2;\n dst32[i + 3] = src32[i + 3] ^ s3;\n // Full 128 bit counter with wrap around\n let carry = 1;\n for (let i = ctr.length - 1; i >= 0; i--) {\n carry = (carry + (ctr[i] & 0xff)) | 0;\n ctr[i] = carry & 0xff;\n carry >>>= 8;\n }\n ({ s0, s1, s2, s3 } = encrypt(xk, c32[0], c32[1], c32[2], c32[3]));\n }\n // leftovers (less than block)\n // It's possible to handle > u32 fast, but is it worth it?\n const start = BLOCK_SIZE * Math.floor(src32.length / BLOCK_SIZE32);\n if (start < srcLen) {\n const b32 = new Uint32Array([s0, s1, s2, s3]);\n const buf = u8(b32);\n for (let i = start, pos = 0; i < srcLen; i++, pos++)\n dst[i] = src[i] ^ buf[pos];\n }\n return dst;\n}\n// AES CTR with overflowing 32 bit counter\n// It's possible to do 32le significantly simpler (and probably faster) by using u32.\n// But, we need both, and perf bottleneck is in ghash anyway.\nfunction ctr32(xk, isLE, nonce, src, dst) {\n abytes(nonce, BLOCK_SIZE);\n abytes(src);\n dst = getDst(src.length, dst);\n const ctr = nonce; // write new value to nonce, so it can be re-used\n const c32 = u32(ctr);\n const view = createView(ctr);\n const src32 = u32(src);\n const dst32 = u32(dst);\n const ctrPos = isLE ? 0 : 12;\n const srcLen = src.length;\n // Fill block (empty, ctr=0)\n let ctrNum = view.getUint32(ctrPos, isLE); // read current counter value\n let { s0, s1, s2, s3 } = encrypt(xk, c32[0], c32[1], c32[2], c32[3]);\n // process blocks\n for (let i = 0; i + 4 <= src32.length; i += 4) {\n dst32[i + 0] = src32[i + 0] ^ s0;\n dst32[i + 1] = src32[i + 1] ^ s1;\n dst32[i + 2] = src32[i + 2] ^ s2;\n dst32[i + 3] = src32[i + 3] ^ s3;\n ctrNum = (ctrNum + 1) >>> 0; // u32 wrap\n view.setUint32(ctrPos, ctrNum, isLE);\n ({ s0, s1, s2, s3 } = encrypt(xk, c32[0], c32[1], c32[2], c32[3]));\n }\n // leftovers (less than a block)\n const start = BLOCK_SIZE * Math.floor(src32.length / BLOCK_SIZE32);\n if (start < srcLen) {\n const b32 = new Uint32Array([s0, s1, s2, s3]);\n const buf = u8(b32);\n for (let i = start, pos = 0; i < srcLen; i++, pos++)\n dst[i] = src[i] ^ buf[pos];\n }\n return dst;\n}\n/**\n * CTR: counter mode. Creates stream cipher.\n * Requires good IV. Parallelizable. OK, but no MAC.\n */\nexport const ctr = wrapCipher({ blockSize: 16, nonceLength: 16 }, function ctr(key, nonce) {\n abytes(key);\n abytes(nonce, BLOCK_SIZE);\n function processCtr(buf, dst) {\n const xk = expandKeyLE(key);\n const n = nonce.slice();\n const out = ctrCounter(xk, n, buf, dst);\n xk.fill(0);\n n.fill(0);\n return out;\n }\n return {\n encrypt: (plaintext, dst) => processCtr(plaintext, dst),\n decrypt: (ciphertext, dst) => processCtr(ciphertext, dst),\n };\n});\nfunction validateBlockDecrypt(data) {\n abytes(data);\n if (data.length % BLOCK_SIZE !== 0) {\n throw new Error(`aes/(cbc-ecb).decrypt ciphertext should consist of blocks with size ${BLOCK_SIZE}`);\n }\n}\nfunction validateBlockEncrypt(plaintext, pcks5, dst) {\n let outLen = plaintext.length;\n const remaining = outLen % BLOCK_SIZE;\n if (!pcks5 && remaining !== 0)\n throw new Error('aec/(cbc-ecb): unpadded plaintext with disabled padding');\n const b = u32(plaintext);\n if (pcks5) {\n let left = BLOCK_SIZE - remaining;\n if (!left)\n left = BLOCK_SIZE; // if no bytes left, create empty padding block\n outLen = outLen + left;\n }\n const out = getDst(outLen, dst);\n const o = u32(out);\n return { b, o, out };\n}\nfunction validatePCKS(data, pcks5) {\n if (!pcks5)\n return data;\n const len = data.length;\n if (!len)\n throw new Error(`aes/pcks5: empty ciphertext not allowed`);\n const lastByte = data[len - 1];\n if (lastByte <= 0 || lastByte > 16)\n throw new Error(`aes/pcks5: wrong padding byte: ${lastByte}`);\n const out = data.subarray(0, -lastByte);\n for (let i = 0; i < lastByte; i++)\n if (data[len - i - 1] !== lastByte)\n throw new Error(`aes/pcks5: wrong padding`);\n return out;\n}\nfunction padPCKS(left) {\n const tmp = new Uint8Array(16);\n const tmp32 = u32(tmp);\n tmp.set(left);\n const paddingByte = BLOCK_SIZE - left.length;\n for (let i = BLOCK_SIZE - paddingByte; i < BLOCK_SIZE; i++)\n tmp[i] = paddingByte;\n return tmp32;\n}\n/**\n * ECB: Electronic CodeBook. Simple deterministic replacement.\n * Dangerous: always map x to y. See [AES Penguin](https://words.filippo.io/the-ecb-penguin/).\n */\nexport const ecb = wrapCipher({ blockSize: 16 }, function ecb(key, opts = {}) {\n abytes(key);\n const pcks5 = !opts.disablePadding;\n return {\n encrypt: (plaintext, dst) => {\n abytes(plaintext);\n const { b, o, out: _out } = validateBlockEncrypt(plaintext, pcks5, dst);\n const xk = expandKeyLE(key);\n let i = 0;\n for (; i + 4 <= b.length;) {\n const { s0, s1, s2, s3 } = encrypt(xk, b[i + 0], b[i + 1], b[i + 2], b[i + 3]);\n (o[i++] = s0), (o[i++] = s1), (o[i++] = s2), (o[i++] = s3);\n }\n if (pcks5) {\n const tmp32 = padPCKS(plaintext.subarray(i * 4));\n const { s0, s1, s2, s3 } = encrypt(xk, tmp32[0], tmp32[1], tmp32[2], tmp32[3]);\n (o[i++] = s0), (o[i++] = s1), (o[i++] = s2), (o[i++] = s3);\n }\n xk.fill(0);\n return _out;\n },\n decrypt: (ciphertext, dst) => {\n validateBlockDecrypt(ciphertext);\n const xk = expandKeyDecLE(key);\n const out = getDst(ciphertext.length, dst);\n const b = u32(ciphertext);\n const o = u32(out);\n for (let i = 0; i + 4 <= b.length;) {\n const { s0, s1, s2, s3 } = decrypt(xk, b[i + 0], b[i + 1], b[i + 2], b[i + 3]);\n (o[i++] = s0), (o[i++] = s1), (o[i++] = s2), (o[i++] = s3);\n }\n xk.fill(0);\n return validatePCKS(out, pcks5);\n },\n };\n});\n/**\n * CBC: Cipher-Block-Chaining. Key is previous round’s block.\n * Fragile: needs proper padding. Unauthenticated: needs MAC.\n */\nexport const cbc = wrapCipher({ blockSize: 16, nonceLength: 16 }, function cbc(key, iv, opts = {}) {\n abytes(key);\n abytes(iv, 16);\n const pcks5 = !opts.disablePadding;\n return {\n encrypt: (plaintext, dst) => {\n const xk = expandKeyLE(key);\n const { b, o, out: _out } = validateBlockEncrypt(plaintext, pcks5, dst);\n const n32 = u32(iv);\n // prettier-ignore\n let s0 = n32[0], s1 = n32[1], s2 = n32[2], s3 = n32[3];\n let i = 0;\n for (; i + 4 <= b.length;) {\n (s0 ^= b[i + 0]), (s1 ^= b[i + 1]), (s2 ^= b[i + 2]), (s3 ^= b[i + 3]);\n ({ s0, s1, s2, s3 } = encrypt(xk, s0, s1, s2, s3));\n (o[i++] = s0), (o[i++] = s1), (o[i++] = s2), (o[i++] = s3);\n }\n if (pcks5) {\n const tmp32 = padPCKS(plaintext.subarray(i * 4));\n (s0 ^= tmp32[0]), (s1 ^= tmp32[1]), (s2 ^= tmp32[2]), (s3 ^= tmp32[3]);\n ({ s0, s1, s2, s3 } = encrypt(xk, s0, s1, s2, s3));\n (o[i++] = s0), (o[i++] = s1), (o[i++] = s2), (o[i++] = s3);\n }\n xk.fill(0);\n return _out;\n },\n decrypt: (ciphertext, dst) => {\n validateBlockDecrypt(ciphertext);\n const xk = expandKeyDecLE(key);\n const n32 = u32(iv);\n const out = getDst(ciphertext.length, dst);\n const b = u32(ciphertext);\n const o = u32(out);\n // prettier-ignore\n let s0 = n32[0], s1 = n32[1], s2 = n32[2], s3 = n32[3];\n for (let i = 0; i + 4 <= b.length;) {\n // prettier-ignore\n const ps0 = s0, ps1 = s1, ps2 = s2, ps3 = s3;\n (s0 = b[i + 0]), (s1 = b[i + 1]), (s2 = b[i + 2]), (s3 = b[i + 3]);\n const { s0: o0, s1: o1, s2: o2, s3: o3 } = decrypt(xk, s0, s1, s2, s3);\n (o[i++] = o0 ^ ps0), (o[i++] = o1 ^ ps1), (o[i++] = o2 ^ ps2), (o[i++] = o3 ^ ps3);\n }\n xk.fill(0);\n return validatePCKS(out, pcks5);\n },\n };\n});\n/**\n * CFB: Cipher Feedback Mode. The input for the block cipher is the previous cipher output.\n * Unauthenticated: needs MAC.\n */\nexport const cfb = wrapCipher({ blockSize: 16, nonceLength: 16 }, function cfb(key, iv) {\n abytes(key);\n abytes(iv, 16);\n function processCfb(src, isEncrypt, dst) {\n const xk = expandKeyLE(key);\n const srcLen = src.length;\n dst = getDst(srcLen, dst);\n const src32 = u32(src);\n const dst32 = u32(dst);\n const next32 = isEncrypt ? dst32 : src32;\n const n32 = u32(iv);\n // prettier-ignore\n let s0 = n32[0], s1 = n32[1], s2 = n32[2], s3 = n32[3];\n for (let i = 0; i + 4 <= src32.length;) {\n const { s0: e0, s1: e1, s2: e2, s3: e3 } = encrypt(xk, s0, s1, s2, s3);\n dst32[i + 0] = src32[i + 0] ^ e0;\n dst32[i + 1] = src32[i + 1] ^ e1;\n dst32[i + 2] = src32[i + 2] ^ e2;\n dst32[i + 3] = src32[i + 3] ^ e3;\n (s0 = next32[i++]), (s1 = next32[i++]), (s2 = next32[i++]), (s3 = next32[i++]);\n }\n // leftovers (less than block)\n const start = BLOCK_SIZE * Math.floor(src32.length / BLOCK_SIZE32);\n if (start < srcLen) {\n ({ s0, s1, s2, s3 } = encrypt(xk, s0, s1, s2, s3));\n const buf = u8(new Uint32Array([s0, s1, s2, s3]));\n for (let i = start, pos = 0; i < srcLen; i++, pos++)\n dst[i] = src[i] ^ buf[pos];\n buf.fill(0);\n }\n xk.fill(0);\n return dst;\n }\n return {\n encrypt: (plaintext, dst) => processCfb(plaintext, true, dst),\n decrypt: (ciphertext, dst) => processCfb(ciphertext, false, dst),\n };\n});\n// TODO: merge with chacha, however gcm has bitLen while chacha has byteLen\nfunction computeTag(fn, isLE, key, data, AAD) {\n const h = fn.create(key, data.length + (AAD?.length || 0));\n if (AAD)\n h.update(AAD);\n h.update(data);\n const num = new Uint8Array(16);\n const view = createView(num);\n if (AAD)\n setBigUint64(view, 0, BigInt(AAD.length * 8), isLE);\n setBigUint64(view, 8, BigInt(data.length * 8), isLE);\n h.update(num);\n return h.digest();\n}\n/**\n * GCM: Galois/Counter Mode.\n * Good, modern version of CTR, parallel, with MAC.\n * Be careful: MACs can be forged.\n */\nexport const gcm = wrapCipher({ blockSize: 16, nonceLength: 12, tagLength: 16 }, function gcm(key, nonce, AAD) {\n abytes(nonce);\n // Nonce can be pretty much anything (even 1 byte). But smaller nonces less secure.\n if (nonce.length === 0)\n throw new Error('aes/gcm: empty nonce');\n const tagLength = 16;\n function _computeTag(authKey, tagMask, data) {\n const tag = computeTag(ghash, false, authKey, data, AAD);\n for (let i = 0; i < tagMask.length; i++)\n tag[i] ^= tagMask[i];\n return tag;\n }\n function deriveKeys() {\n const xk = expandKeyLE(key);\n const authKey = EMPTY_BLOCK.slice();\n const counter = EMPTY_BLOCK.slice();\n ctr32(xk, false, counter, counter, authKey);\n if (nonce.length === 12) {\n counter.set(nonce);\n }\n else {\n // Spec (NIST 800-38d) supports variable size nonce.\n // Not supported for now, but can be useful.\n const nonceLen = EMPTY_BLOCK.slice();\n const view = createView(nonceLen);\n setBigUint64(view, 8, BigInt(nonce.length * 8), false);\n // ghash(nonce || u64be(0) || u64be(nonceLen*8))\n ghash.create(authKey).update(nonce).update(nonceLen).digestInto(counter);\n }\n const tagMask = ctr32(xk, false, counter, EMPTY_BLOCK);\n return { xk, authKey, counter, tagMask };\n }\n return {\n encrypt: (plaintext) => {\n abytes(plaintext);\n const { xk, authKey, counter, tagMask } = deriveKeys();\n const out = new Uint8Array(plaintext.length + tagLength);\n ctr32(xk, false, counter, plaintext, out);\n const tag = _computeTag(authKey, tagMask, out.subarray(0, out.length - tagLength));\n out.set(tag, plaintext.length);\n xk.fill(0);\n return out;\n },\n decrypt: (ciphertext) => {\n abytes(ciphertext);\n if (ciphertext.length < tagLength)\n throw new Error(`aes/gcm: ciphertext less than tagLen (${tagLength})`);\n const { xk, authKey, counter, tagMask } = deriveKeys();\n const data = ciphertext.subarray(0, -tagLength);\n const passedTag = ciphertext.subarray(-tagLength);\n const tag = _computeTag(authKey, tagMask, data);\n if (!equalBytes(tag, passedTag))\n throw new Error('aes/gcm: invalid ghash tag');\n const out = ctr32(xk, false, counter, data);\n authKey.fill(0);\n tagMask.fill(0);\n xk.fill(0);\n return out;\n },\n };\n});\nconst limit = (name, min, max) => (value) => {\n if (!Number.isSafeInteger(value) || min > value || value > max)\n throw new Error(`${name}: invalid value=${value}, must be [${min}..${max}]`);\n};\n/**\n * AES-GCM-SIV: classic AES-GCM with nonce-misuse resistance.\n * Guarantees that, when a nonce is repeated, the only security loss is that identical\n * plaintexts will produce identical ciphertexts.\n * RFC 8452, https://datatracker.ietf.org/doc/html/rfc8452\n */\nexport const siv = wrapCipher({ blockSize: 16, nonceLength: 12, tagLength: 16 }, function siv(key, nonce, AAD) {\n const tagLength = 16;\n // From RFC 8452: Section 6\n const AAD_LIMIT = limit('AAD', 0, 2 ** 36);\n const PLAIN_LIMIT = limit('plaintext', 0, 2 ** 36);\n const NONCE_LIMIT = limit('nonce', 12, 12);\n const CIPHER_LIMIT = limit('ciphertext', 16, 2 ** 36 + 16);\n abytes(nonce);\n NONCE_LIMIT(nonce.length);\n if (AAD) {\n abytes(AAD);\n AAD_LIMIT(AAD.length);\n }\n function deriveKeys() {\n const len = key.length;\n if (len !== 16 && len !== 24 && len !== 32)\n throw new Error(`key length must be 16, 24 or 32 bytes, got: ${len} bytes`);\n const xk = expandKeyLE(key);\n const encKey = new Uint8Array(len);\n const authKey = new Uint8Array(16);\n const n32 = u32(nonce);\n // prettier-ignore\n let s0 = 0, s1 = n32[0], s2 = n32[1], s3 = n32[2];\n let counter = 0;\n for (const derivedKey of [authKey, encKey].map(u32)) {\n const d32 = u32(derivedKey);\n for (let i = 0; i < d32.length; i += 2) {\n // aes(u32le(0) || nonce)[:8] || aes(u32le(1) || nonce)[:8] ...\n const { s0: o0, s1: o1 } = encrypt(xk, s0, s1, s2, s3);\n d32[i + 0] = o0;\n d32[i + 1] = o1;\n s0 = ++counter; // increment counter inside state\n }\n }\n xk.fill(0);\n return { authKey, encKey: expandKeyLE(encKey) };\n }\n function _computeTag(encKey, authKey, data) {\n const tag = computeTag(polyval, true, authKey, data, AAD);\n // Compute the expected tag by XORing S_s and the nonce, clearing the\n // most significant bit of the last byte and encrypting with the\n // message-encryption key.\n for (let i = 0; i < 12; i++)\n tag[i] ^= nonce[i];\n tag[15] &= 0x7f; // Clear the highest bit\n // encrypt tag as block\n const t32 = u32(tag);\n // prettier-ignore\n let s0 = t32[0], s1 = t32[1], s2 = t32[2], s3 = t32[3];\n ({ s0, s1, s2, s3 } = encrypt(encKey, s0, s1, s2, s3));\n (t32[0] = s0), (t32[1] = s1), (t32[2] = s2), (t32[3] = s3);\n return tag;\n }\n // actual decrypt/encrypt of message.\n function processSiv(encKey, tag, input) {\n let block = tag.slice();\n block[15] |= 0x80; // Force highest bit\n return ctr32(encKey, true, block, input);\n }\n return {\n encrypt: (plaintext) => {\n abytes(plaintext);\n PLAIN_LIMIT(plaintext.length);\n const { encKey, authKey } = deriveKeys();\n const tag = _computeTag(encKey, authKey, plaintext);\n const out = new Uint8Array(plaintext.length + tagLength);\n out.set(tag, plaintext.length);\n out.set(processSiv(encKey, tag, plaintext));\n encKey.fill(0);\n authKey.fill(0);\n return out;\n },\n decrypt: (ciphertext) => {\n abytes(ciphertext);\n CIPHER_LIMIT(ciphertext.length);\n const tag = ciphertext.subarray(-tagLength);\n const { encKey, authKey } = deriveKeys();\n const plaintext = processSiv(encKey, tag, ciphertext.subarray(0, -tagLength));\n const expectedTag = _computeTag(encKey, authKey, plaintext);\n encKey.fill(0);\n authKey.fill(0);\n if (!equalBytes(tag, expectedTag))\n throw new Error('invalid polyval tag');\n return plaintext;\n },\n };\n});\nfunction isBytes32(a) {\n return (a != null &&\n typeof a === 'object' &&\n (a instanceof Uint32Array || a.constructor.name === 'Uint32Array'));\n}\nfunction encryptBlock(xk, block) {\n abytes(block, 16);\n if (!isBytes32(xk))\n throw new Error('_encryptBlock accepts result of expandKeyLE');\n const b32 = u32(block);\n let { s0, s1, s2, s3 } = encrypt(xk, b32[0], b32[1], b32[2], b32[3]);\n (b32[0] = s0), (b32[1] = s1), (b32[2] = s2), (b32[3] = s3);\n return block;\n}\nfunction decryptBlock(xk, block) {\n abytes(block, 16);\n if (!isBytes32(xk))\n throw new Error('_decryptBlock accepts result of expandKeyLE');\n const b32 = u32(block);\n let { s0, s1, s2, s3 } = decrypt(xk, b32[0], b32[1], b32[2], b32[3]);\n (b32[0] = s0), (b32[1] = s1), (b32[2] = s2), (b32[3] = s3);\n return block;\n}\n// Highly unsafe private functions for implementing new modes or ciphers based on AES\n// Can change at any time, no API guarantees\nexport const unsafe = {\n expandKeyLE,\n expandKeyDecLE,\n encrypt,\n decrypt,\n encryptBlock,\n decryptBlock,\n ctrCounter,\n ctr32,\n};\n//# sourceMappingURL=aes.js.map","// Basic utils for ARX (add-rotate-xor) salsa and chacha ciphers.\nimport { number as anumber, bytes as abytes, bool as abool } from './_assert.js';\nimport { checkOpts, u32 } from './utils.js';\n/*\nRFC8439 requires multi-step cipher stream, where\nauthKey starts with counter: 0, actual msg with counter: 1.\n\nFor this, we need a way to re-use nonce / counter:\n\n const counter = new Uint8Array(4);\n chacha(..., counter, ...); // counter is now 1\n chacha(..., counter, ...); // counter is now 2\n\nThis is complicated:\n\n- 32-bit counters are enough, no need for 64-bit: max ArrayBuffer size in JS is 4GB\n- Original papers don't allow mutating counters\n- Counter overflow is undefined [^1]\n- Idea A: allow providing (nonce | counter) instead of just nonce, re-use it\n- Caveat: Cannot be re-used through all cases:\n- * chacha has (counter | nonce)\n- * xchacha has (nonce16 | counter | nonce16)\n- Idea B: separate nonce / counter and provide separate API for counter re-use\n- Caveat: there are different counter sizes depending on an algorithm.\n- salsa & chacha also differ in structures of key & sigma:\n salsa20: s[0] | k(4) | s[1] | nonce(2) | ctr(2) | s[2] | k(4) | s[3]\n chacha: s(4) | k(8) | ctr(1) | nonce(3)\n chacha20orig: s(4) | k(8) | ctr(2) | nonce(2)\n- Idea C: helper method such as `setSalsaState(key, nonce, sigma, data)`\n- Caveat: we can't re-use counter array\n\nxchacha [^2] uses the subkey and remaining 8 byte nonce with ChaCha20 as normal\n(prefixed by 4 NUL bytes, since [RFC8439] specifies a 12-byte nonce).\n\n[^1]: https://mailarchive.ietf.org/arch/msg/cfrg/gsOnTJzcbgG6OqD8Sc0GO5aR_tU/\n[^2]: https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-xchacha#appendix-A.2\n*/\n// We can't make top-level var depend on utils.utf8ToBytes\n// because it's not present in all envs. Creating a similar fn here\nconst _utf8ToBytes = (str) => Uint8Array.from(str.split('').map((c) => c.charCodeAt(0)));\nconst sigma16 = _utf8ToBytes('expand 16-byte k');\nconst sigma32 = _utf8ToBytes('expand 32-byte k');\nconst sigma16_32 = u32(sigma16);\nconst sigma32_32 = u32(sigma32);\nexport const sigma = sigma32_32.slice();\nexport function rotl(a, b) {\n return (a << b) | (a >>> (32 - b));\n}\n// Is byte array aligned to 4 byte offset (u32)?\nfunction isAligned32(b) {\n return b.byteOffset % 4 === 0;\n}\n// Salsa and Chacha block length is always 512-bit\nconst BLOCK_LEN = 64;\nconst BLOCK_LEN32 = 16;\n// new Uint32Array([2**32]) // => Uint32Array(1) [ 0 ]\n// new Uint32Array([2**32-1]) // => Uint32Array(1) [ 4294967295 ]\nconst MAX_COUNTER = 2 ** 32 - 1;\nconst U32_EMPTY = new Uint32Array();\nfunction runCipher(core, sigma, key, nonce, data, output, counter, rounds) {\n const len = data.length;\n const block = new Uint8Array(BLOCK_LEN);\n const b32 = u32(block);\n // Make sure that buffers aligned to 4 bytes\n const isAligned = isAligned32(data) && isAligned32(output);\n const d32 = isAligned ? u32(data) : U32_EMPTY;\n const o32 = isAligned ? u32(output) : U32_EMPTY;\n for (let pos = 0; pos < len; counter++) {\n core(sigma, key, nonce, b32, counter, rounds);\n if (counter >= MAX_COUNTER)\n throw new Error('arx: counter overflow');\n const take = Math.min(BLOCK_LEN, len - pos);\n // aligned to 4 bytes\n if (isAligned && take === BLOCK_LEN) {\n const pos32 = pos / 4;\n if (pos % 4 !== 0)\n throw new Error('arx: invalid block position');\n for (let j = 0, posj; j < BLOCK_LEN32; j++) {\n posj = pos32 + j;\n o32[posj] = d32[posj] ^ b32[j];\n }\n pos += BLOCK_LEN;\n continue;\n }\n for (let j = 0, posj; j < take; j++) {\n posj = pos + j;\n output[posj] = data[posj] ^ block[j];\n }\n pos += take;\n }\n}\nexport function createCipher(core, opts) {\n const { allowShortKeys, extendNonceFn, counterLength, counterRight, rounds } = checkOpts({ allowShortKeys: false, counterLength: 8, counterRight: false, rounds: 20 }, opts);\n if (typeof core !== 'function')\n throw new Error('core must be a function');\n anumber(counterLength);\n anumber(rounds);\n abool(counterRight);\n abool(allowShortKeys);\n return (key, nonce, data, output, counter = 0) => {\n abytes(key);\n abytes(nonce);\n abytes(data);\n const len = data.length;\n if (!output)\n output = new Uint8Array(len);\n abytes(output);\n anumber(counter);\n if (counter < 0 || counter >= MAX_COUNTER)\n throw new Error('arx: counter overflow');\n if (output.length < len)\n throw new Error(`arx: output (${output.length}) is shorter than data (${len})`);\n const toClean = [];\n // Key & sigma\n // key=16 -> sigma16, k=key|key\n // key=32 -> sigma32, k=key\n let l = key.length, k, sigma;\n if (l === 32) {\n k = key.slice();\n toClean.push(k);\n sigma = sigma32_32;\n }\n else if (l === 16 && allowShortKeys) {\n k = new Uint8Array(32);\n k.set(key);\n k.set(key, 16);\n sigma = sigma16_32;\n toClean.push(k);\n }\n else {\n throw new Error(`arx: invalid 32-byte key, got length=${l}`);\n }\n // Nonce\n // salsa20: 8 (8-byte counter)\n // chacha20orig: 8 (8-byte counter)\n // chacha20: 12 (4-byte counter)\n // xsalsa20: 24 (16 -> hsalsa, 8 -> old nonce)\n // xchacha20: 24 (16 -> hchacha, 8 -> old nonce)\n // Align nonce to 4 bytes\n if (!isAligned32(nonce)) {\n nonce = nonce.slice();\n toClean.push(nonce);\n }\n const k32 = u32(k);\n // hsalsa & hchacha: handle extended nonce\n if (extendNonceFn) {\n if (nonce.length !== 24)\n throw new Error(`arx: extended nonce must be 24 bytes`);\n extendNonceFn(sigma, k32, u32(nonce.subarray(0, 16)), k32);\n nonce = nonce.subarray(16);\n }\n // Handle nonce counter\n const nonceNcLen = 16 - counterLength;\n if (nonceNcLen !== nonce.length)\n throw new Error(`arx: nonce must be ${nonceNcLen} or 16 bytes`);\n // Pad counter when nonce is 64 bit\n if (nonceNcLen !== 12) {\n const nc = new Uint8Array(12);\n nc.set(nonce, counterRight ? 0 : 12 - nonce.length);\n nonce = nc;\n toClean.push(nonce);\n }\n const n32 = u32(nonce);\n runCipher(core, sigma, k32, n32, data, output, counter, rounds);\n while (toClean.length > 0)\n toClean.pop().fill(0);\n return output;\n };\n}\n//# sourceMappingURL=_arx.js.map","// prettier-ignore\nimport { wrapCipher, createView, equalBytes, setBigUint64, } from './utils.js';\nimport { poly1305 } from './_poly1305.js';\nimport { createCipher, rotl } from './_arx.js';\nimport { bytes as abytes } from './_assert.js';\n// ChaCha20 stream cipher was released in 2008. ChaCha aims to increase\n// the diffusion per round, but had slightly less cryptanalysis.\n// https://cr.yp.to/chacha.html, http://cr.yp.to/chacha/chacha-20080128.pdf\n/**\n * ChaCha core function.\n */\n// prettier-ignore\nfunction chachaCore(s, k, n, out, cnt, rounds = 20) {\n let y00 = s[0], y01 = s[1], y02 = s[2], y03 = s[3], // \"expa\" \"nd 3\" \"2-by\" \"te k\"\n y04 = k[0], y05 = k[1], y06 = k[2], y07 = k[3], // Key Key Key Key\n y08 = k[4], y09 = k[5], y10 = k[6], y11 = k[7], // Key Key Key Key\n y12 = cnt, y13 = n[0], y14 = n[1], y15 = n[2]; // Counter Counter\tNonce Nonce\n // Save state to temporary variables\n let x00 = y00, x01 = y01, x02 = y02, x03 = y03, x04 = y04, x05 = y05, x06 = y06, x07 = y07, x08 = y08, x09 = y09, x10 = y10, x11 = y11, x12 = y12, x13 = y13, x14 = y14, x15 = y15;\n for (let r = 0; r < rounds; r += 2) {\n x00 = (x00 + x04) | 0;\n x12 = rotl(x12 ^ x00, 16);\n x08 = (x08 + x12) | 0;\n x04 = rotl(x04 ^ x08, 12);\n x00 = (x00 + x04) | 0;\n x12 = rotl(x12 ^ x00, 8);\n x08 = (x08 + x12) | 0;\n x04 = rotl(x04 ^ x08, 7);\n x01 = (x01 + x05) | 0;\n x13 = rotl(x13 ^ x01, 16);\n x09 = (x09 + x13) | 0;\n x05 = rotl(x05 ^ x09, 12);\n x01 = (x01 + x05) | 0;\n x13 = rotl(x13 ^ x01, 8);\n x09 = (x09 + x13) | 0;\n x05 = rotl(x05 ^ x09, 7);\n x02 = (x02 + x06) | 0;\n x14 = rotl(x14 ^ x02, 16);\n x10 = (x10 + x14) | 0;\n x06 = rotl(x06 ^ x10, 12);\n x02 = (x02 + x06) | 0;\n x14 = rotl(x14 ^ x02, 8);\n x10 = (x10 + x14) | 0;\n x06 = rotl(x06 ^ x10, 7);\n x03 = (x03 + x07) | 0;\n x15 = rotl(x15 ^ x03, 16);\n x11 = (x11 + x15) | 0;\n x07 = rotl(x07 ^ x11, 12);\n x03 = (x03 + x07) | 0;\n x15 = rotl(x15 ^ x03, 8);\n x11 = (x11 + x15) | 0;\n x07 = rotl(x07 ^ x11, 7);\n x00 = (x00 + x05) | 0;\n x15 = rotl(x15 ^ x00, 16);\n x10 = (x10 + x15) | 0;\n x05 = rotl(x05 ^ x10, 12);\n x00 = (x00 + x05) | 0;\n x15 = rotl(x15 ^ x00, 8);\n x10 = (x10 + x15) | 0;\n x05 = rotl(x05 ^ x10, 7);\n x01 = (x01 + x06) | 0;\n x12 = rotl(x12 ^ x01, 16);\n x11 = (x11 + x12) | 0;\n x06 = rotl(x06 ^ x11, 12);\n x01 = (x01 + x06) | 0;\n x12 = rotl(x12 ^ x01, 8);\n x11 = (x11 + x12) | 0;\n x06 = rotl(x06 ^ x11, 7);\n x02 = (x02 + x07) | 0;\n x13 = rotl(x13 ^ x02, 16);\n x08 = (x08 + x13) | 0;\n x07 = rotl(x07 ^ x08, 12);\n x02 = (x02 + x07) | 0;\n x13 = rotl(x13 ^ x02, 8);\n x08 = (x08 + x13) | 0;\n x07 = rotl(x07 ^ x08, 7);\n x03 = (x03 + x04) | 0;\n x14 = rotl(x14 ^ x03, 16);\n x09 = (x09 + x14) | 0;\n x04 = rotl(x04 ^ x09, 12);\n x03 = (x03 + x04) | 0;\n x14 = rotl(x14 ^ x03, 8);\n x09 = (x09 + x14) | 0;\n x04 = rotl(x04 ^ x09, 7);\n }\n // Write output\n let oi = 0;\n out[oi++] = (y00 + x00) | 0;\n out[oi++] = (y01 + x01) | 0;\n out[oi++] = (y02 + x02) | 0;\n out[oi++] = (y03 + x03) | 0;\n out[oi++] = (y04 + x04) | 0;\n out[oi++] = (y05 + x05) | 0;\n out[oi++] = (y06 + x06) | 0;\n out[oi++] = (y07 + x07) | 0;\n out[oi++] = (y08 + x08) | 0;\n out[oi++] = (y09 + x09) | 0;\n out[oi++] = (y10 + x10) | 0;\n out[oi++] = (y11 + x11) | 0;\n out[oi++] = (y12 + x12) | 0;\n out[oi++] = (y13 + x13) | 0;\n out[oi++] = (y14 + x14) | 0;\n out[oi++] = (y15 + x15) | 0;\n}\n/**\n * hchacha helper method, used primarily in xchacha, to hash\n * key and nonce into key' and nonce'.\n * Same as chachaCore, but there doesn't seem to be a way to move the block\n * out without 25% performance hit.\n */\n// prettier-ignore\nexport function hchacha(s, k, i, o32) {\n let x00 = s[0], x01 = s[1], x02 = s[2], x03 = s[3], x04 = k[0], x05 = k[1], x06 = k[2], x07 = k[3], x08 = k[4], x09 = k[5], x10 = k[6], x11 = k[7], x12 = i[0], x13 = i[1], x14 = i[2], x15 = i[3];\n for (let r = 0; r < 20; r += 2) {\n x00 = (x00 + x04) | 0;\n x12 = rotl(x12 ^ x00, 16);\n x08 = (x08 + x12) | 0;\n x04 = rotl(x04 ^ x08, 12);\n x00 = (x00 + x04) | 0;\n x12 = rotl(x12 ^ x00, 8);\n x08 = (x08 + x12) | 0;\n x04 = rotl(x04 ^ x08, 7);\n x01 = (x01 + x05) | 0;\n x13 = rotl(x13 ^ x01, 16);\n x09 = (x09 + x13) | 0;\n x05 = rotl(x05 ^ x09, 12);\n x01 = (x01 + x05) | 0;\n x13 = rotl(x13 ^ x01, 8);\n x09 = (x09 + x13) | 0;\n x05 = rotl(x05 ^ x09, 7);\n x02 = (x02 + x06) | 0;\n x14 = rotl(x14 ^ x02, 16);\n x10 = (x10 + x14) | 0;\n x06 = rotl(x06 ^ x10, 12);\n x02 = (x02 + x06) | 0;\n x14 = rotl(x14 ^ x02, 8);\n x10 = (x10 + x14) | 0;\n x06 = rotl(x06 ^ x10, 7);\n x03 = (x03 + x07) | 0;\n x15 = rotl(x15 ^ x03, 16);\n x11 = (x11 + x15) | 0;\n x07 = rotl(x07 ^ x11, 12);\n x03 = (x03 + x07) | 0;\n x15 = rotl(x15 ^ x03, 8);\n x11 = (x11 + x15) | 0;\n x07 = rotl(x07 ^ x11, 7);\n x00 = (x00 + x05) | 0;\n x15 = rotl(x15 ^ x00, 16);\n x10 = (x10 + x15) | 0;\n x05 = rotl(x05 ^ x10, 12);\n x00 = (x00 + x05) | 0;\n x15 = rotl(x15 ^ x00, 8);\n x10 = (x10 + x15) | 0;\n x05 = rotl(x05 ^ x10, 7);\n x01 = (x01 + x06) | 0;\n x12 = rotl(x12 ^ x01, 16);\n x11 = (x11 + x12) | 0;\n x06 = rotl(x06 ^ x11, 12);\n x01 = (x01 + x06) | 0;\n x12 = rotl(x12 ^ x01, 8);\n x11 = (x11 + x12) | 0;\n x06 = rotl(x06 ^ x11, 7);\n x02 = (x02 + x07) | 0;\n x13 = rotl(x13 ^ x02, 16);\n x08 = (x08 + x13) | 0;\n x07 = rotl(x07 ^ x08, 12);\n x02 = (x02 + x07) | 0;\n x13 = rotl(x13 ^ x02, 8);\n x08 = (x08 + x13) | 0;\n x07 = rotl(x07 ^ x08, 7);\n x03 = (x03 + x04) | 0;\n x14 = rotl(x14 ^ x03, 16);\n x09 = (x09 + x14) | 0;\n x04 = rotl(x04 ^ x09, 12);\n x03 = (x03 + x04) | 0;\n x14 = rotl(x14 ^ x03, 8);\n x09 = (x09 + x14) | 0;\n x04 = rotl(x04 ^ x09, 7);\n }\n let oi = 0;\n o32[oi++] = x00;\n o32[oi++] = x01;\n o32[oi++] = x02;\n o32[oi++] = x03;\n o32[oi++] = x12;\n o32[oi++] = x13;\n o32[oi++] = x14;\n o32[oi++] = x15;\n}\n/**\n * Original, non-RFC chacha20 from DJB. 8-byte nonce, 8-byte counter.\n */\nexport const chacha20orig = /* @__PURE__ */ createCipher(chachaCore, {\n counterRight: false,\n counterLength: 8,\n allowShortKeys: true,\n});\n/**\n * ChaCha stream cipher. Conforms to RFC 8439 (IETF, TLS). 12-byte nonce, 4-byte counter.\n * With 12-byte nonce, it's not safe to use fill it with random (CSPRNG), due to collision chance.\n */\nexport const chacha20 = /* @__PURE__ */ createCipher(chachaCore, {\n counterRight: false,\n counterLength: 4,\n allowShortKeys: false,\n});\n/**\n * XChaCha eXtended-nonce ChaCha. 24-byte nonce.\n * With 24-byte nonce, it's safe to use fill it with random (CSPRNG).\n * https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-xchacha\n */\nexport const xchacha20 = /* @__PURE__ */ createCipher(chachaCore, {\n counterRight: false,\n counterLength: 8,\n extendNonceFn: hchacha,\n allowShortKeys: false,\n});\n/**\n * Reduced 8-round chacha, described in original paper.\n */\nexport const chacha8 = /* @__PURE__ */ createCipher(chachaCore, {\n counterRight: false,\n counterLength: 4,\n rounds: 8,\n});\n/**\n * Reduced 12-round chacha, described in original paper.\n */\nexport const chacha12 = /* @__PURE__ */ createCipher(chachaCore, {\n counterRight: false,\n counterLength: 4,\n rounds: 12,\n});\nconst ZEROS16 = /* @__PURE__ */ new Uint8Array(16);\n// Pad to digest size with zeros\nconst updatePadded = (h, msg) => {\n h.update(msg);\n const left = msg.length % 16;\n if (left)\n h.update(ZEROS16.subarray(left));\n};\nconst ZEROS32 = /* @__PURE__ */ new Uint8Array(32);\nfunction computeTag(fn, key, nonce, data, AAD) {\n const authKey = fn(key, nonce, ZEROS32);\n const h = poly1305.create(authKey);\n if (AAD)\n updatePadded(h, AAD);\n updatePadded(h, data);\n const num = new Uint8Array(16);\n const view = createView(num);\n setBigUint64(view, 0, BigInt(AAD ? AAD.length : 0), true);\n setBigUint64(view, 8, BigInt(data.length), true);\n h.update(num);\n const res = h.digest();\n authKey.fill(0);\n return res;\n}\n/**\n * AEAD algorithm from RFC 8439.\n * Salsa20 and chacha (RFC 8439) use poly1305 differently.\n * We could have composed them similar to:\n * https://github.com/paulmillr/scure-base/blob/b266c73dde977b1dd7ef40ef7a23cc15aab526b3/index.ts#L250\n * But it's hard because of authKey:\n * In salsa20, authKey changes position in salsa stream.\n * In chacha, authKey can't be computed inside computeTag, it modifies the counter.\n */\nexport const _poly1305_aead = (xorStream) => (key, nonce, AAD) => {\n const tagLength = 16;\n abytes(key, 32);\n abytes(nonce);\n return {\n encrypt: (plaintext, output) => {\n const plength = plaintext.length;\n const clength = plength + tagLength;\n if (output) {\n abytes(output, clength);\n }\n else {\n output = new Uint8Array(clength);\n }\n xorStream(key, nonce, plaintext, output, 1);\n const tag = computeTag(xorStream, key, nonce, output.subarray(0, -tagLength), AAD);\n output.set(tag, plength); // append tag\n return output;\n },\n decrypt: (ciphertext, output) => {\n const clength = ciphertext.length;\n const plength = clength - tagLength;\n if (clength < tagLength)\n throw new Error(`encrypted data must be at least ${tagLength} bytes`);\n if (output) {\n abytes(output, plength);\n }\n else {\n output = new Uint8Array(plength);\n }\n const data = ciphertext.subarray(0, -tagLength);\n const passedTag = ciphertext.subarray(-tagLength);\n const tag = computeTag(xorStream, key, nonce, data, AAD);\n if (!equalBytes(passedTag, tag))\n throw new Error('invalid tag');\n xorStream(key, nonce, data, output, 1);\n return output;\n },\n };\n};\n/**\n * ChaCha20-Poly1305 from RFC 8439.\n * With 12-byte nonce, it's not safe to use fill it with random (CSPRNG), due to collision chance.\n */\nexport const chacha20poly1305 = /* @__PURE__ */ wrapCipher({ blockSize: 64, nonceLength: 12, tagLength: 16 }, _poly1305_aead(chacha20));\n/**\n * XChaCha20-Poly1305 extended-nonce chacha.\n * https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-xchacha\n * With 24-byte nonce, it's safe to use fill it with random (CSPRNG).\n */\nexport const xchacha20poly1305 = /* @__PURE__ */ wrapCipher({ blockSize: 64, nonceLength: 24, tagLength: 16 }, _poly1305_aead(xchacha20));\n//# sourceMappingURL=chacha.js.map","import assert from './_assert.js';\nimport { Hash, toBytes } from './utils.js';\n// HMAC (RFC 2104)\nexport class HMAC extends Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n assert.hash(hash);\n const key = toBytes(_key);\n this.iHash = hash.create();\n if (typeof this.iHash.update !== 'function')\n throw new Error('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf) {\n assert.exists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n assert.exists(this);\n assert.bytes(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n */\nexport const hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nhmac.create = (hash, key) => new HMAC(hash, key);\n//# sourceMappingURL=hmac.js.map","import assert from './_assert.js';\nimport { toBytes } from './utils.js';\nimport { hmac } from './hmac.js';\n// HKDF (RFC 5869)\n// https://soatok.blog/2021/11/17/understanding-hkdf/\n/**\n * HKDF-Extract(IKM, salt) -> PRK\n * Arguments position differs from spec (IKM is first one, since it is not optional)\n * @param hash\n * @param ikm\n * @param salt\n * @returns\n */\nexport function extract(hash, ikm, salt) {\n assert.hash(hash);\n // NOTE: some libraries treat zero-length array as 'not provided';\n // we don't, since we have undefined as 'not provided'\n // https://github.com/RustCrypto/KDFs/issues/15\n if (salt === undefined)\n salt = new Uint8Array(hash.outputLen); // if not provided, it is set to a string of HashLen zeros\n return hmac(hash, toBytes(salt), toBytes(ikm));\n}\n// HKDF-Expand(PRK, info, L) -> OKM\nconst HKDF_COUNTER = new Uint8Array([0]);\nconst EMPTY_BUFFER = new Uint8Array();\n/**\n * HKDF-expand from the spec.\n * @param prk - a pseudorandom key of at least HashLen octets (usually, the output from the extract step)\n * @param info - optional context and application specific information (can be a zero-length string)\n * @param length - length of output keying material in octets\n */\nexport function expand(hash, prk, info, length = 32) {\n assert.hash(hash);\n assert.number(length);\n if (length > 255 * hash.outputLen)\n throw new Error('Length should be <= 255*HashLen');\n const blocks = Math.ceil(length / hash.outputLen);\n if (info === undefined)\n info = EMPTY_BUFFER;\n // first L(ength) octets of T\n const okm = new Uint8Array(blocks * hash.outputLen);\n // Re-use HMAC instance between blocks\n const HMAC = hmac.create(hash, prk);\n const HMACTmp = HMAC._cloneInto();\n const T = new Uint8Array(HMAC.outputLen);\n for (let counter = 0; counter < blocks; counter++) {\n HKDF_COUNTER[0] = counter + 1;\n // T(0) = empty string (zero length)\n // T(N) = HMAC-Hash(PRK, T(N-1) | info | N)\n HMACTmp.update(counter === 0 ? EMPTY_BUFFER : T)\n .update(info)\n .update(HKDF_COUNTER)\n .digestInto(T);\n okm.set(T, hash.outputLen * counter);\n HMAC._cloneInto(HMACTmp);\n }\n HMAC.destroy();\n HMACTmp.destroy();\n T.fill(0);\n HKDF_COUNTER.fill(0);\n return okm.slice(0, length);\n}\n/**\n * HKDF (RFC 5869): extract + expand in one step.\n * @param hash - hash function that would be used (e.g. sha256)\n * @param ikm - input keying material, the initial key\n * @param salt - optional salt value (a non-secret random value)\n * @param info - optional context and application specific information\n * @param length - length of output keying material in octets\n */\nexport const hkdf = (hash, ikm, salt, info, length) => expand(hash, extract(hash, ikm, salt), info, length);\n//# sourceMappingURL=hkdf.js.map","var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// pure.ts\nimport { schnorr } from \"@noble/curves/secp256k1\";\nimport { bytesToHex } from \"@noble/hashes/utils\";\n\n// core.ts\nvar verifiedSymbol = Symbol(\"verified\");\nvar isRecord = (obj) => obj instanceof Object;\nfunction validateEvent(event) {\n if (!isRecord(event))\n return false;\n if (typeof event.kind !== \"number\")\n return false;\n if (typeof event.content !== \"string\")\n return false;\n if (typeof event.created_at !== \"number\")\n return false;\n if (typeof event.pubkey !== \"string\")\n return false;\n if (!event.pubkey.match(/^[a-f0-9]{64}$/))\n return false;\n if (!Array.isArray(event.tags))\n return false;\n for (let i2 = 0; i2 < event.tags.length; i2++) {\n let tag = event.tags[i2];\n if (!Array.isArray(tag))\n return false;\n for (let j = 0; j < tag.length; j++) {\n if (typeof tag[j] === \"object\")\n return false;\n }\n }\n return true;\n}\nfunction sortEvents(events) {\n return events.sort((a, b) => {\n if (a.created_at !== b.created_at) {\n return b.created_at - a.created_at;\n }\n return a.id.localeCompare(b.id);\n });\n}\n\n// pure.ts\nimport { sha256 } from \"@noble/hashes/sha256\";\n\n// utils.ts\nvar utils_exports = {};\n__export(utils_exports, {\n Queue: () => Queue,\n QueueNode: () => QueueNode,\n binarySearch: () => binarySearch,\n insertEventIntoAscendingList: () => insertEventIntoAscendingList,\n insertEventIntoDescendingList: () => insertEventIntoDescendingList,\n normalizeURL: () => normalizeURL,\n utf8Decoder: () => utf8Decoder,\n utf8Encoder: () => utf8Encoder\n});\nvar utf8Decoder = new TextDecoder(\"utf-8\");\nvar utf8Encoder = new TextEncoder();\nfunction normalizeURL(url) {\n if (url.indexOf(\"://\") === -1)\n url = \"wss://\" + url;\n let p = new URL(url);\n p.pathname = p.pathname.replace(/\\/+/g, \"/\");\n if (p.pathname.endsWith(\"/\"))\n p.pathname = p.pathname.slice(0, -1);\n if (p.port === \"80\" && p.protocol === \"ws:\" || p.port === \"443\" && p.protocol === \"wss:\")\n p.port = \"\";\n p.searchParams.sort();\n p.hash = \"\";\n return p.toString();\n}\nfunction insertEventIntoDescendingList(sortedArray, event) {\n const [idx, found] = binarySearch(sortedArray, (b) => {\n if (event.id === b.id)\n return 0;\n if (event.created_at === b.created_at)\n return -1;\n return b.created_at - event.created_at;\n });\n if (!found) {\n sortedArray.splice(idx, 0, event);\n }\n return sortedArray;\n}\nfunction insertEventIntoAscendingList(sortedArray, event) {\n const [idx, found] = binarySearch(sortedArray, (b) => {\n if (event.id === b.id)\n return 0;\n if (event.created_at === b.created_at)\n return -1;\n return event.created_at - b.created_at;\n });\n if (!found) {\n sortedArray.splice(idx, 0, event);\n }\n return sortedArray;\n}\nfunction binarySearch(arr, compare) {\n let start = 0;\n let end = arr.length - 1;\n while (start <= end) {\n const mid = Math.floor((start + end) / 2);\n const cmp = compare(arr[mid]);\n if (cmp === 0) {\n return [mid, true];\n }\n if (cmp < 0) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n return [start, false];\n}\nvar QueueNode = class {\n value;\n next = null;\n prev = null;\n constructor(message) {\n this.value = message;\n }\n};\nvar Queue = class {\n first;\n last;\n constructor() {\n this.first = null;\n this.last = null;\n }\n enqueue(value) {\n const newNode = new QueueNode(value);\n if (!this.last) {\n this.first = newNode;\n this.last = newNode;\n } else if (this.last === this.first) {\n this.last = newNode;\n this.last.prev = this.first;\n this.first.next = newNode;\n } else {\n newNode.prev = this.last;\n this.last.next = newNode;\n this.last = newNode;\n }\n return true;\n }\n dequeue() {\n if (!this.first)\n return null;\n if (this.first === this.last) {\n const target2 = this.first;\n this.first = null;\n this.last = null;\n return target2.value;\n }\n const target = this.first;\n this.first = target.next;\n return target.value;\n }\n};\n\n// pure.ts\nvar JS = class {\n generateSecretKey() {\n return schnorr.utils.randomPrivateKey();\n }\n getPublicKey(secretKey) {\n return bytesToHex(schnorr.getPublicKey(secretKey));\n }\n finalizeEvent(t, secretKey) {\n const event = t;\n event.pubkey = bytesToHex(schnorr.getPublicKey(secretKey));\n event.id = getEventHash(event);\n event.sig = bytesToHex(schnorr.sign(getEventHash(event), secretKey));\n event[verifiedSymbol] = true;\n return event;\n }\n verifyEvent(event) {\n if (typeof event[verifiedSymbol] === \"boolean\")\n return event[verifiedSymbol];\n const hash = getEventHash(event);\n if (hash !== event.id) {\n event[verifiedSymbol] = false;\n return false;\n }\n try {\n const valid = schnorr.verify(event.sig, hash, event.pubkey);\n event[verifiedSymbol] = valid;\n return valid;\n } catch (err) {\n event[verifiedSymbol] = false;\n return false;\n }\n }\n};\nfunction serializeEvent(evt) {\n if (!validateEvent(evt))\n throw new Error(\"can't serialize event with wrong or missing properties\");\n return JSON.stringify([0, evt.pubkey, evt.created_at, evt.kind, evt.tags, evt.content]);\n}\nfunction getEventHash(event) {\n let eventHash = sha256(utf8Encoder.encode(serializeEvent(event)));\n return bytesToHex(eventHash);\n}\nvar i = new JS();\nvar generateSecretKey = i.generateSecretKey;\nvar getPublicKey = i.getPublicKey;\nvar finalizeEvent = i.finalizeEvent;\nvar verifyEvent = i.verifyEvent;\n\n// kinds.ts\nvar kinds_exports = {};\n__export(kinds_exports, {\n Application: () => Application,\n BadgeAward: () => BadgeAward,\n BadgeDefinition: () => BadgeDefinition,\n BlockedRelaysList: () => BlockedRelaysList,\n BookmarkList: () => BookmarkList,\n Bookmarksets: () => Bookmarksets,\n Calendar: () => Calendar,\n CalendarEventRSVP: () => CalendarEventRSVP,\n ChannelCreation: () => ChannelCreation,\n ChannelHideMessage: () => ChannelHideMessage,\n ChannelMessage: () => ChannelMessage,\n ChannelMetadata: () => ChannelMetadata,\n ChannelMuteUser: () => ChannelMuteUser,\n ClassifiedListing: () => ClassifiedListing,\n ClientAuth: () => ClientAuth,\n CommunitiesList: () => CommunitiesList,\n CommunityDefinition: () => CommunityDefinition,\n CommunityPostApproval: () => CommunityPostApproval,\n Contacts: () => Contacts,\n CreateOrUpdateProduct: () => CreateOrUpdateProduct,\n CreateOrUpdateStall: () => CreateOrUpdateStall,\n Curationsets: () => Curationsets,\n Date: () => Date2,\n DirectMessageRelaysList: () => DirectMessageRelaysList,\n DraftClassifiedListing: () => DraftClassifiedListing,\n DraftLong: () => DraftLong,\n Emojisets: () => Emojisets,\n EncryptedDirectMessage: () => EncryptedDirectMessage,\n EventDeletion: () => EventDeletion,\n FileMetadata: () => FileMetadata,\n FileServerPreference: () => FileServerPreference,\n Followsets: () => Followsets,\n GenericRepost: () => GenericRepost,\n Genericlists: () => Genericlists,\n GiftWrap: () => GiftWrap,\n HTTPAuth: () => HTTPAuth,\n Handlerinformation: () => Handlerinformation,\n Handlerrecommendation: () => Handlerrecommendation,\n Highlights: () => Highlights,\n InterestsList: () => InterestsList,\n Interestsets: () => Interestsets,\n JobFeedback: () => JobFeedback,\n JobRequest: () => JobRequest,\n JobResult: () => JobResult,\n Label: () => Label,\n LightningPubRPC: () => LightningPubRPC,\n LiveChatMessage: () => LiveChatMessage,\n LiveEvent: () => LiveEvent,\n LongFormArticle: () => LongFormArticle,\n Metadata: () => Metadata,\n Mutelist: () => Mutelist,\n NWCWalletInfo: () => NWCWalletInfo,\n NWCWalletRequest: () => NWCWalletRequest,\n NWCWalletResponse: () => NWCWalletResponse,\n NostrConnect: () => NostrConnect,\n OpenTimestamps: () => OpenTimestamps,\n Pinlist: () => Pinlist,\n PrivateDirectMessage: () => PrivateDirectMessage,\n ProblemTracker: () => ProblemTracker,\n ProfileBadges: () => ProfileBadges,\n PublicChatsList: () => PublicChatsList,\n Reaction: () => Reaction,\n RecommendRelay: () => RecommendRelay,\n RelayList: () => RelayList,\n Relaysets: () => Relaysets,\n Report: () => Report,\n Reporting: () => Reporting,\n Repost: () => Repost,\n Seal: () => Seal,\n SearchRelaysList: () => SearchRelaysList,\n ShortTextNote: () => ShortTextNote,\n Time: () => Time,\n UserEmojiList: () => UserEmojiList,\n UserStatuses: () => UserStatuses,\n Zap: () => Zap,\n ZapGoal: () => ZapGoal,\n ZapRequest: () => ZapRequest,\n classifyKind: () => classifyKind,\n isEphemeralKind: () => isEphemeralKind,\n isKind: () => isKind,\n isParameterizedReplaceableKind: () => isParameterizedReplaceableKind,\n isRegularKind: () => isRegularKind,\n isReplaceableKind: () => isReplaceableKind\n});\nfunction isRegularKind(kind) {\n return 1e3 <= kind && kind < 1e4 || [1, 2, 4, 5, 6, 7, 8, 16, 40, 41, 42, 43, 44].includes(kind);\n}\nfunction isReplaceableKind(kind) {\n return [0, 3].includes(kind) || 1e4 <= kind && kind < 2e4;\n}\nfunction isEphemeralKind(kind) {\n return 2e4 <= kind && kind < 3e4;\n}\nfunction isParameterizedReplaceableKind(kind) {\n return 3e4 <= kind && kind < 4e4;\n}\nfunction classifyKind(kind) {\n if (isRegularKind(kind))\n return \"regular\";\n if (isReplaceableKind(kind))\n return \"replaceable\";\n if (isEphemeralKind(kind))\n return \"ephemeral\";\n if (isParameterizedReplaceableKind(kind))\n return \"parameterized\";\n return \"unknown\";\n}\nfunction isKind(event, kind) {\n const kindAsArray = kind instanceof Array ? kind : [kind];\n return validateEvent(event) && kindAsArray.includes(event.kind) || false;\n}\nvar Metadata = 0;\nvar ShortTextNote = 1;\nvar RecommendRelay = 2;\nvar Contacts = 3;\nvar EncryptedDirectMessage = 4;\nvar EventDeletion = 5;\nvar Repost = 6;\nvar Reaction = 7;\nvar BadgeAward = 8;\nvar Seal = 13;\nvar PrivateDirectMessage = 14;\nvar GenericRepost = 16;\nvar ChannelCreation = 40;\nvar ChannelMetadata = 41;\nvar ChannelMessage = 42;\nvar ChannelHideMessage = 43;\nvar ChannelMuteUser = 44;\nvar OpenTimestamps = 1040;\nvar GiftWrap = 1059;\nvar FileMetadata = 1063;\nvar LiveChatMessage = 1311;\nvar ProblemTracker = 1971;\nvar Report = 1984;\nvar Reporting = 1984;\nvar Label = 1985;\nvar CommunityPostApproval = 4550;\nvar JobRequest = 5999;\nvar JobResult = 6999;\nvar JobFeedback = 7e3;\nvar ZapGoal = 9041;\nvar ZapRequest = 9734;\nvar Zap = 9735;\nvar Highlights = 9802;\nvar Mutelist = 1e4;\nvar Pinlist = 10001;\nvar RelayList = 10002;\nvar BookmarkList = 10003;\nvar CommunitiesList = 10004;\nvar PublicChatsList = 10005;\nvar BlockedRelaysList = 10006;\nvar SearchRelaysList = 10007;\nvar InterestsList = 10015;\nvar UserEmojiList = 10030;\nvar DirectMessageRelaysList = 10050;\nvar FileServerPreference = 10096;\nvar NWCWalletInfo = 13194;\nvar LightningPubRPC = 21e3;\nvar ClientAuth = 22242;\nvar NWCWalletRequest = 23194;\nvar NWCWalletResponse = 23195;\nvar NostrConnect = 24133;\nvar HTTPAuth = 27235;\nvar Followsets = 3e4;\nvar Genericlists = 30001;\nvar Relaysets = 30002;\nvar Bookmarksets = 30003;\nvar Curationsets = 30004;\nvar ProfileBadges = 30008;\nvar BadgeDefinition = 30009;\nvar Interestsets = 30015;\nvar CreateOrUpdateStall = 30017;\nvar CreateOrUpdateProduct = 30018;\nvar LongFormArticle = 30023;\nvar DraftLong = 30024;\nvar Emojisets = 30030;\nvar Application = 30078;\nvar LiveEvent = 30311;\nvar UserStatuses = 30315;\nvar ClassifiedListing = 30402;\nvar DraftClassifiedListing = 30403;\nvar Date2 = 31922;\nvar Time = 31923;\nvar Calendar = 31924;\nvar CalendarEventRSVP = 31925;\nvar Handlerrecommendation = 31989;\nvar Handlerinformation = 31990;\nvar CommunityDefinition = 34550;\n\n// filter.ts\nfunction matchFilter(filter, event) {\n if (filter.ids && filter.ids.indexOf(event.id) === -1) {\n return false;\n }\n if (filter.kinds && filter.kinds.indexOf(event.kind) === -1) {\n return false;\n }\n if (filter.authors && filter.authors.indexOf(event.pubkey) === -1) {\n return false;\n }\n for (let f in filter) {\n if (f[0] === \"#\") {\n let tagName = f.slice(1);\n let values = filter[`#${tagName}`];\n if (values && !event.tags.find(([t, v]) => t === f.slice(1) && values.indexOf(v) !== -1))\n return false;\n }\n }\n if (filter.since && event.created_at < filter.since)\n return false;\n if (filter.until && event.created_at > filter.until)\n return false;\n return true;\n}\nfunction matchFilters(filters, event) {\n for (let i2 = 0; i2 < filters.length; i2++) {\n if (matchFilter(filters[i2], event)) {\n return true;\n }\n }\n return false;\n}\nfunction mergeFilters(...filters) {\n let result = {};\n for (let i2 = 0; i2 < filters.length; i2++) {\n let filter = filters[i2];\n Object.entries(filter).forEach(([property, values]) => {\n if (property === \"kinds\" || property === \"ids\" || property === \"authors\" || property[0] === \"#\") {\n result[property] = result[property] || [];\n for (let v = 0; v < values.length; v++) {\n let value = values[v];\n if (!result[property].includes(value))\n result[property].push(value);\n }\n }\n });\n if (filter.limit && (!result.limit || filter.limit > result.limit))\n result.limit = filter.limit;\n if (filter.until && (!result.until || filter.until > result.until))\n result.until = filter.until;\n if (filter.since && (!result.since || filter.since < result.since))\n result.since = filter.since;\n }\n return result;\n}\nfunction getFilterLimit(filter) {\n if (filter.ids && !filter.ids.length)\n return 0;\n if (filter.kinds && !filter.kinds.length)\n return 0;\n if (filter.authors && !filter.authors.length)\n return 0;\n for (const [key, value] of Object.entries(filter)) {\n if (key[0] === \"#\" && Array.isArray(value) && !value.length)\n return 0;\n }\n return Math.min(\n Math.max(0, filter.limit ?? Infinity),\n filter.ids?.length ?? Infinity,\n filter.authors?.length && filter.kinds?.every((kind) => isReplaceableKind(kind)) ? filter.authors.length * filter.kinds.length : Infinity,\n filter.authors?.length && filter.kinds?.every((kind) => isParameterizedReplaceableKind(kind)) && filter[\"#d\"]?.length ? filter.authors.length * filter.kinds.length * filter[\"#d\"].length : Infinity\n );\n}\n\n// fakejson.ts\nvar fakejson_exports = {};\n__export(fakejson_exports, {\n getHex64: () => getHex64,\n getInt: () => getInt,\n getSubscriptionId: () => getSubscriptionId,\n matchEventId: () => matchEventId,\n matchEventKind: () => matchEventKind,\n matchEventPubkey: () => matchEventPubkey\n});\nfunction getHex64(json, field) {\n let len = field.length + 3;\n let idx = json.indexOf(`\"${field}\":`) + len;\n let s = json.slice(idx).indexOf(`\"`) + idx + 1;\n return json.slice(s, s + 64);\n}\nfunction getInt(json, field) {\n let len = field.length;\n let idx = json.indexOf(`\"${field}\":`) + len + 3;\n let sliced = json.slice(idx);\n let end = Math.min(sliced.indexOf(\",\"), sliced.indexOf(\"}\"));\n return parseInt(sliced.slice(0, end), 10);\n}\nfunction getSubscriptionId(json) {\n let idx = json.slice(0, 22).indexOf(`\"EVENT\"`);\n if (idx === -1)\n return null;\n let pstart = json.slice(idx + 7 + 1).indexOf(`\"`);\n if (pstart === -1)\n return null;\n let start = idx + 7 + 1 + pstart;\n let pend = json.slice(start + 1, 80).indexOf(`\"`);\n if (pend === -1)\n return null;\n let end = start + 1 + pend;\n return json.slice(start + 1, end);\n}\nfunction matchEventId(json, id) {\n return id === getHex64(json, \"id\");\n}\nfunction matchEventPubkey(json, pubkey) {\n return pubkey === getHex64(json, \"pubkey\");\n}\nfunction matchEventKind(json, kind) {\n return kind === getInt(json, \"kind\");\n}\n\n// nip42.ts\nvar nip42_exports = {};\n__export(nip42_exports, {\n makeAuthEvent: () => makeAuthEvent\n});\nfunction makeAuthEvent(relayURL, challenge) {\n return {\n kind: ClientAuth,\n created_at: Math.floor(Date.now() / 1e3),\n tags: [\n [\"relay\", relayURL],\n [\"challenge\", challenge]\n ],\n content: \"\"\n };\n}\n\n// helpers.ts\nasync function yieldThread() {\n return new Promise((resolve) => {\n const ch = new MessageChannel();\n const handler = () => {\n ch.port1.removeEventListener(\"message\", handler);\n resolve();\n };\n ch.port1.addEventListener(\"message\", handler);\n ch.port2.postMessage(0);\n ch.port1.start();\n });\n}\nvar alwaysTrue = (t) => {\n t[verifiedSymbol] = true;\n return true;\n};\n\n// abstract-relay.ts\nvar AbstractRelay = class {\n url;\n _connected = false;\n onclose = null;\n onnotice = (msg) => console.debug(`NOTICE from ${this.url}: ${msg}`);\n _onauth = null;\n baseEoseTimeout = 4400;\n connectionTimeout = 4400;\n publishTimeout = 4400;\n openSubs = /* @__PURE__ */ new Map();\n connectionTimeoutHandle;\n connectionPromise;\n openCountRequests = /* @__PURE__ */ new Map();\n openEventPublishes = /* @__PURE__ */ new Map();\n ws;\n incomingMessageQueue = new Queue();\n queueRunning = false;\n challenge;\n serial = 0;\n verifyEvent;\n _WebSocket;\n constructor(url, opts) {\n this.url = normalizeURL(url);\n this.verifyEvent = opts.verifyEvent;\n this._WebSocket = opts.websocketImplementation || WebSocket;\n }\n static async connect(url, opts) {\n const relay = new AbstractRelay(url, opts);\n await relay.connect();\n return relay;\n }\n closeAllSubscriptions(reason) {\n for (let [_, sub] of this.openSubs) {\n sub.close(reason);\n }\n this.openSubs.clear();\n for (let [_, ep] of this.openEventPublishes) {\n ep.reject(new Error(reason));\n }\n this.openEventPublishes.clear();\n for (let [_, cr] of this.openCountRequests) {\n cr.reject(new Error(reason));\n }\n this.openCountRequests.clear();\n }\n get connected() {\n return this._connected;\n }\n async connect() {\n if (this.connectionPromise)\n return this.connectionPromise;\n this.challenge = void 0;\n this.connectionPromise = new Promise((resolve, reject) => {\n this.connectionTimeoutHandle = setTimeout(() => {\n reject(\"connection timed out\");\n this.connectionPromise = void 0;\n this.onclose?.();\n this.closeAllSubscriptions(\"relay connection timed out\");\n }, this.connectionTimeout);\n try {\n this.ws = new this._WebSocket(this.url);\n } catch (err) {\n reject(err);\n return;\n }\n this.ws.onopen = () => {\n clearTimeout(this.connectionTimeoutHandle);\n this._connected = true;\n resolve();\n };\n this.ws.onerror = (ev) => {\n reject(ev.message || \"websocket error\");\n if (this._connected) {\n this._connected = false;\n this.connectionPromise = void 0;\n this.onclose?.();\n this.closeAllSubscriptions(\"relay connection errored\");\n }\n };\n this.ws.onclose = async () => {\n if (this._connected) {\n this._connected = false;\n this.connectionPromise = void 0;\n this.onclose?.();\n this.closeAllSubscriptions(\"relay connection closed\");\n }\n };\n this.ws.onmessage = this._onmessage.bind(this);\n });\n return this.connectionPromise;\n }\n async runQueue() {\n this.queueRunning = true;\n while (true) {\n if (false === this.handleNext()) {\n break;\n }\n await yieldThread();\n }\n this.queueRunning = false;\n }\n handleNext() {\n const json = this.incomingMessageQueue.dequeue();\n if (!json) {\n return false;\n }\n const subid = getSubscriptionId(json);\n if (subid) {\n const so = this.openSubs.get(subid);\n if (!so) {\n return;\n }\n const id = getHex64(json, \"id\");\n const alreadyHave = so.alreadyHaveEvent?.(id);\n so.receivedEvent?.(this, id);\n if (alreadyHave) {\n return;\n }\n }\n try {\n let data = JSON.parse(json);\n switch (data[0]) {\n case \"EVENT\": {\n const so = this.openSubs.get(data[1]);\n const event = data[2];\n if (this.verifyEvent(event) && matchFilters(so.filters, event)) {\n so.onevent(event);\n }\n return;\n }\n case \"COUNT\": {\n const id = data[1];\n const payload = data[2];\n const cr = this.openCountRequests.get(id);\n if (cr) {\n cr.resolve(payload.count);\n this.openCountRequests.delete(id);\n }\n return;\n }\n case \"EOSE\": {\n const so = this.openSubs.get(data[1]);\n if (!so)\n return;\n so.receivedEose();\n return;\n }\n case \"OK\": {\n const id = data[1];\n const ok = data[2];\n const reason = data[3];\n const ep = this.openEventPublishes.get(id);\n if (ep) {\n if (ok)\n ep.resolve(reason);\n else\n ep.reject(new Error(reason));\n this.openEventPublishes.delete(id);\n }\n return;\n }\n case \"CLOSED\": {\n const id = data[1];\n const so = this.openSubs.get(id);\n if (!so)\n return;\n so.closed = true;\n so.close(data[2]);\n return;\n }\n case \"NOTICE\":\n this.onnotice(data[1]);\n return;\n case \"AUTH\": {\n this.challenge = data[1];\n this._onauth?.(data[1]);\n return;\n }\n }\n } catch (err) {\n return;\n }\n }\n async send(message) {\n if (!this.connectionPromise)\n throw new Error(\"sending on closed connection\");\n this.connectionPromise.then(() => {\n this.ws?.send(message);\n });\n }\n async auth(signAuthEvent) {\n if (!this.challenge)\n throw new Error(\"can't perform auth, no challenge was received\");\n const evt = await signAuthEvent(makeAuthEvent(this.url, this.challenge));\n const ret = new Promise((resolve, reject) => {\n this.openEventPublishes.set(evt.id, { resolve, reject });\n });\n this.send('[\"AUTH\",' + JSON.stringify(evt) + \"]\");\n return ret;\n }\n async publish(event) {\n const ret = new Promise((resolve, reject) => {\n this.openEventPublishes.set(event.id, { resolve, reject });\n });\n this.send('[\"EVENT\",' + JSON.stringify(event) + \"]\");\n setTimeout(() => {\n const ep = this.openEventPublishes.get(event.id);\n if (ep) {\n ep.reject(new Error(\"publish timed out\"));\n this.openEventPublishes.delete(event.id);\n }\n }, this.publishTimeout);\n return ret;\n }\n async count(filters, params) {\n this.serial++;\n const id = params?.id || \"count:\" + this.serial;\n const ret = new Promise((resolve, reject) => {\n this.openCountRequests.set(id, { resolve, reject });\n });\n this.send('[\"COUNT\",\"' + id + '\",' + JSON.stringify(filters).substring(1));\n return ret;\n }\n subscribe(filters, params) {\n const subscription = this.prepareSubscription(filters, params);\n subscription.fire();\n return subscription;\n }\n prepareSubscription(filters, params) {\n this.serial++;\n const id = params.id || \"sub:\" + this.serial;\n const subscription = new Subscription(this, id, filters, params);\n this.openSubs.set(id, subscription);\n return subscription;\n }\n close() {\n this.closeAllSubscriptions(\"relay connection closed by us\");\n this._connected = false;\n this.ws?.close();\n }\n _onmessage(ev) {\n this.incomingMessageQueue.enqueue(ev.data);\n if (!this.queueRunning) {\n this.runQueue();\n }\n }\n};\nvar Subscription = class {\n relay;\n id;\n closed = false;\n eosed = false;\n filters;\n alreadyHaveEvent;\n receivedEvent;\n onevent;\n oneose;\n onclose;\n eoseTimeout;\n eoseTimeoutHandle;\n constructor(relay, id, filters, params) {\n this.relay = relay;\n this.filters = filters;\n this.id = id;\n this.alreadyHaveEvent = params.alreadyHaveEvent;\n this.receivedEvent = params.receivedEvent;\n this.eoseTimeout = params.eoseTimeout || relay.baseEoseTimeout;\n this.oneose = params.oneose;\n this.onclose = params.onclose;\n this.onevent = params.onevent || ((event) => {\n console.warn(\n `onevent() callback not defined for subscription '${this.id}' in relay ${this.relay.url}. event received:`,\n event\n );\n });\n }\n fire() {\n this.relay.send('[\"REQ\",\"' + this.id + '\",' + JSON.stringify(this.filters).substring(1));\n this.eoseTimeoutHandle = setTimeout(this.receivedEose.bind(this), this.eoseTimeout);\n }\n receivedEose() {\n if (this.eosed)\n return;\n clearTimeout(this.eoseTimeoutHandle);\n this.eosed = true;\n this.oneose?.();\n }\n close(reason = \"closed by caller\") {\n if (!this.closed && this.relay.connected) {\n this.relay.send('[\"CLOSE\",' + JSON.stringify(this.id) + \"]\");\n this.closed = true;\n }\n this.relay.openSubs.delete(this.id);\n this.onclose?.(reason);\n }\n};\n\n// relay.ts\nvar _WebSocket;\ntry {\n _WebSocket = WebSocket;\n} catch {\n}\nvar Relay = class extends AbstractRelay {\n constructor(url) {\n super(url, { verifyEvent, websocketImplementation: _WebSocket });\n }\n static async connect(url) {\n const relay = new Relay(url);\n await relay.connect();\n return relay;\n }\n};\n\n// abstract-pool.ts\nvar AbstractSimplePool = class {\n relays = /* @__PURE__ */ new Map();\n seenOn = /* @__PURE__ */ new Map();\n trackRelays = false;\n verifyEvent;\n trustedRelayURLs = /* @__PURE__ */ new Set();\n _WebSocket;\n constructor(opts) {\n this.verifyEvent = opts.verifyEvent;\n this._WebSocket = opts.websocketImplementation;\n }\n async ensureRelay(url, params) {\n url = normalizeURL(url);\n let relay = this.relays.get(url);\n if (!relay) {\n relay = new AbstractRelay(url, {\n verifyEvent: this.trustedRelayURLs.has(url) ? alwaysTrue : this.verifyEvent,\n websocketImplementation: this._WebSocket\n });\n if (params?.connectionTimeout)\n relay.connectionTimeout = params.connectionTimeout;\n this.relays.set(url, relay);\n }\n await relay.connect();\n return relay;\n }\n close(relays) {\n relays.map(normalizeURL).forEach((url) => {\n this.relays.get(url)?.close();\n });\n }\n subscribeMany(relays, filters, params) {\n return this.subscribeManyMap(Object.fromEntries(relays.map((url) => [url, filters])), params);\n }\n subscribeManyMap(requests, params) {\n if (this.trackRelays) {\n params.receivedEvent = (relay, id) => {\n let set = this.seenOn.get(id);\n if (!set) {\n set = /* @__PURE__ */ new Set();\n this.seenOn.set(id, set);\n }\n set.add(relay);\n };\n }\n const _knownIds = /* @__PURE__ */ new Set();\n const subs = [];\n const relaysLength = Object.keys(requests).length;\n const eosesReceived = [];\n let handleEose = (i2) => {\n eosesReceived[i2] = true;\n if (eosesReceived.filter((a) => a).length === relaysLength) {\n params.oneose?.();\n handleEose = () => {\n };\n }\n };\n const closesReceived = [];\n let handleClose = (i2, reason) => {\n handleEose(i2);\n closesReceived[i2] = reason;\n if (closesReceived.filter((a) => a).length === relaysLength) {\n params.onclose?.(closesReceived);\n handleClose = () => {\n };\n }\n };\n const localAlreadyHaveEventHandler = (id) => {\n if (params.alreadyHaveEvent?.(id)) {\n return true;\n }\n const have = _knownIds.has(id);\n _knownIds.add(id);\n return have;\n };\n const allOpened = Promise.all(\n Object.entries(requests).map(async (req, i2, arr) => {\n if (arr.indexOf(req) !== i2) {\n handleClose(i2, \"duplicate url\");\n return;\n }\n let [url, filters] = req;\n url = normalizeURL(url);\n let relay;\n try {\n relay = await this.ensureRelay(url, {\n connectionTimeout: params.maxWait ? Math.max(params.maxWait * 0.8, params.maxWait - 1e3) : void 0\n });\n } catch (err) {\n handleClose(i2, err?.message || String(err));\n return;\n }\n let subscription = relay.subscribe(filters, {\n ...params,\n oneose: () => handleEose(i2),\n onclose: (reason) => handleClose(i2, reason),\n alreadyHaveEvent: localAlreadyHaveEventHandler,\n eoseTimeout: params.maxWait\n });\n subs.push(subscription);\n })\n );\n return {\n async close() {\n await allOpened;\n subs.forEach((sub) => {\n sub.close();\n });\n }\n };\n }\n subscribeManyEose(relays, filters, params) {\n const subcloser = this.subscribeMany(relays, filters, {\n ...params,\n oneose() {\n subcloser.close();\n }\n });\n return subcloser;\n }\n async querySync(relays, filter, params) {\n return new Promise(async (resolve) => {\n const events = [];\n this.subscribeManyEose(relays, [filter], {\n ...params,\n onevent(event) {\n events.push(event);\n },\n onclose(_) {\n resolve(events);\n }\n });\n });\n }\n async get(relays, filter, params) {\n filter.limit = 1;\n const events = await this.querySync(relays, filter, params);\n events.sort((a, b) => b.created_at - a.created_at);\n return events[0] || null;\n }\n publish(relays, event) {\n return relays.map(normalizeURL).map(async (url, i2, arr) => {\n if (arr.indexOf(url) !== i2) {\n return Promise.reject(\"duplicate url\");\n }\n let r = await this.ensureRelay(url);\n return r.publish(event).then((reason) => {\n if (this.trackRelays) {\n let set = this.seenOn.get(event.id);\n if (!set) {\n set = /* @__PURE__ */ new Set();\n this.seenOn.set(event.id, set);\n }\n set.add(r);\n }\n return reason;\n });\n });\n }\n listConnectionStatus() {\n const map = /* @__PURE__ */ new Map();\n this.relays.forEach((relay, url) => map.set(url, relay.connected));\n return map;\n }\n destroy() {\n this.relays.forEach((conn) => conn.close());\n this.relays = /* @__PURE__ */ new Map();\n }\n};\n\n// pool.ts\nvar _WebSocket2;\ntry {\n _WebSocket2 = WebSocket;\n} catch {\n}\nvar SimplePool = class extends AbstractSimplePool {\n constructor() {\n super({ verifyEvent, websocketImplementation: _WebSocket2 });\n }\n};\n\n// nip19.ts\nvar nip19_exports = {};\n__export(nip19_exports, {\n BECH32_REGEX: () => BECH32_REGEX,\n Bech32MaxSize: () => Bech32MaxSize,\n NostrTypeGuard: () => NostrTypeGuard,\n decode: () => decode,\n encodeBytes: () => encodeBytes,\n naddrEncode: () => naddrEncode,\n neventEncode: () => neventEncode,\n noteEncode: () => noteEncode,\n nprofileEncode: () => nprofileEncode,\n npubEncode: () => npubEncode,\n nsecEncode: () => nsecEncode\n});\nimport { bytesToHex as bytesToHex2, concatBytes, hexToBytes } from \"@noble/hashes/utils\";\nimport { bech32 } from \"@scure/base\";\nvar NostrTypeGuard = {\n isNProfile: (value) => /^nprofile1[a-z\\d]+$/.test(value || \"\"),\n isNEvent: (value) => /^nevent1[a-z\\d]+$/.test(value || \"\"),\n isNAddr: (value) => /^naddr1[a-z\\d]+$/.test(value || \"\"),\n isNSec: (value) => /^nsec1[a-z\\d]{58}$/.test(value || \"\"),\n isNPub: (value) => /^npub1[a-z\\d]{58}$/.test(value || \"\"),\n isNote: (value) => /^note1[a-z\\d]+$/.test(value || \"\"),\n isNcryptsec: (value) => /^ncryptsec1[a-z\\d]+$/.test(value || \"\")\n};\nvar Bech32MaxSize = 5e3;\nvar BECH32_REGEX = /[\\x21-\\x7E]{1,83}1[023456789acdefghjklmnpqrstuvwxyz]{6,}/;\nfunction integerToUint8Array(number) {\n const uint8Array = new Uint8Array(4);\n uint8Array[0] = number >> 24 & 255;\n uint8Array[1] = number >> 16 & 255;\n uint8Array[2] = number >> 8 & 255;\n uint8Array[3] = number & 255;\n return uint8Array;\n}\nfunction decode(nip19) {\n let { prefix, words } = bech32.decode(nip19, Bech32MaxSize);\n let data = new Uint8Array(bech32.fromWords(words));\n switch (prefix) {\n case \"nprofile\": {\n let tlv = parseTLV(data);\n if (!tlv[0]?.[0])\n throw new Error(\"missing TLV 0 for nprofile\");\n if (tlv[0][0].length !== 32)\n throw new Error(\"TLV 0 should be 32 bytes\");\n return {\n type: \"nprofile\",\n data: {\n pubkey: bytesToHex2(tlv[0][0]),\n relays: tlv[1] ? tlv[1].map((d) => utf8Decoder.decode(d)) : []\n }\n };\n }\n case \"nevent\": {\n let tlv = parseTLV(data);\n if (!tlv[0]?.[0])\n throw new Error(\"missing TLV 0 for nevent\");\n if (tlv[0][0].length !== 32)\n throw new Error(\"TLV 0 should be 32 bytes\");\n if (tlv[2] && tlv[2][0].length !== 32)\n throw new Error(\"TLV 2 should be 32 bytes\");\n if (tlv[3] && tlv[3][0].length !== 4)\n throw new Error(\"TLV 3 should be 4 bytes\");\n return {\n type: \"nevent\",\n data: {\n id: bytesToHex2(tlv[0][0]),\n relays: tlv[1] ? tlv[1].map((d) => utf8Decoder.decode(d)) : [],\n author: tlv[2]?.[0] ? bytesToHex2(tlv[2][0]) : void 0,\n kind: tlv[3]?.[0] ? parseInt(bytesToHex2(tlv[3][0]), 16) : void 0\n }\n };\n }\n case \"naddr\": {\n let tlv = parseTLV(data);\n if (!tlv[0]?.[0])\n throw new Error(\"missing TLV 0 for naddr\");\n if (!tlv[2]?.[0])\n throw new Error(\"missing TLV 2 for naddr\");\n if (tlv[2][0].length !== 32)\n throw new Error(\"TLV 2 should be 32 bytes\");\n if (!tlv[3]?.[0])\n throw new Error(\"missing TLV 3 for naddr\");\n if (tlv[3][0].length !== 4)\n throw new Error(\"TLV 3 should be 4 bytes\");\n return {\n type: \"naddr\",\n data: {\n identifier: utf8Decoder.decode(tlv[0][0]),\n pubkey: bytesToHex2(tlv[2][0]),\n kind: parseInt(bytesToHex2(tlv[3][0]), 16),\n relays: tlv[1] ? tlv[1].map((d) => utf8Decoder.decode(d)) : []\n }\n };\n }\n case \"nsec\":\n return { type: prefix, data };\n case \"npub\":\n case \"note\":\n return { type: prefix, data: bytesToHex2(data) };\n default:\n throw new Error(`unknown prefix ${prefix}`);\n }\n}\nfunction parseTLV(data) {\n let result = {};\n let rest = data;\n while (rest.length > 0) {\n let t = rest[0];\n let l = rest[1];\n let v = rest.slice(2, 2 + l);\n rest = rest.slice(2 + l);\n if (v.length < l)\n throw new Error(`not enough data to read on TLV ${t}`);\n result[t] = result[t] || [];\n result[t].push(v);\n }\n return result;\n}\nfunction nsecEncode(key) {\n return encodeBytes(\"nsec\", key);\n}\nfunction npubEncode(hex) {\n return encodeBytes(\"npub\", hexToBytes(hex));\n}\nfunction noteEncode(hex) {\n return encodeBytes(\"note\", hexToBytes(hex));\n}\nfunction encodeBech32(prefix, data) {\n let words = bech32.toWords(data);\n return bech32.encode(prefix, words, Bech32MaxSize);\n}\nfunction encodeBytes(prefix, bytes) {\n return encodeBech32(prefix, bytes);\n}\nfunction nprofileEncode(profile) {\n let data = encodeTLV({\n 0: [hexToBytes(profile.pubkey)],\n 1: (profile.relays || []).map((url) => utf8Encoder.encode(url))\n });\n return encodeBech32(\"nprofile\", data);\n}\nfunction neventEncode(event) {\n let kindArray;\n if (event.kind !== void 0) {\n kindArray = integerToUint8Array(event.kind);\n }\n let data = encodeTLV({\n 0: [hexToBytes(event.id)],\n 1: (event.relays || []).map((url) => utf8Encoder.encode(url)),\n 2: event.author ? [hexToBytes(event.author)] : [],\n 3: kindArray ? [new Uint8Array(kindArray)] : []\n });\n return encodeBech32(\"nevent\", data);\n}\nfunction naddrEncode(addr) {\n let kind = new ArrayBuffer(4);\n new DataView(kind).setUint32(0, addr.kind, false);\n let data = encodeTLV({\n 0: [utf8Encoder.encode(addr.identifier)],\n 1: (addr.relays || []).map((url) => utf8Encoder.encode(url)),\n 2: [hexToBytes(addr.pubkey)],\n 3: [new Uint8Array(kind)]\n });\n return encodeBech32(\"naddr\", data);\n}\nfunction encodeTLV(tlv) {\n let entries = [];\n Object.entries(tlv).reverse().forEach(([t, vs]) => {\n vs.forEach((v) => {\n let entry = new Uint8Array(v.length + 2);\n entry.set([parseInt(t)], 0);\n entry.set([v.length], 1);\n entry.set(v, 2);\n entries.push(entry);\n });\n });\n return concatBytes(...entries);\n}\n\n// references.ts\nvar mentionRegex = /\\bnostr:((note|npub|naddr|nevent|nprofile)1\\w+)\\b|#\\[(\\d+)\\]/g;\nfunction parseReferences(evt) {\n let references = [];\n for (let ref of evt.content.matchAll(mentionRegex)) {\n if (ref[2]) {\n try {\n let { type, data } = decode(ref[1]);\n switch (type) {\n case \"npub\": {\n references.push({\n text: ref[0],\n profile: { pubkey: data, relays: [] }\n });\n break;\n }\n case \"nprofile\": {\n references.push({\n text: ref[0],\n profile: data\n });\n break;\n }\n case \"note\": {\n references.push({\n text: ref[0],\n event: { id: data, relays: [] }\n });\n break;\n }\n case \"nevent\": {\n references.push({\n text: ref[0],\n event: data\n });\n break;\n }\n case \"naddr\": {\n references.push({\n text: ref[0],\n address: data\n });\n break;\n }\n }\n } catch (err) {\n }\n } else if (ref[3]) {\n let idx = parseInt(ref[3], 10);\n let tag = evt.tags[idx];\n if (!tag)\n continue;\n switch (tag[0]) {\n case \"p\": {\n references.push({\n text: ref[0],\n profile: { pubkey: tag[1], relays: tag[2] ? [tag[2]] : [] }\n });\n break;\n }\n case \"e\": {\n references.push({\n text: ref[0],\n event: { id: tag[1], relays: tag[2] ? [tag[2]] : [] }\n });\n break;\n }\n case \"a\": {\n try {\n let [kind, pubkey, identifier] = tag[1].split(\":\");\n references.push({\n text: ref[0],\n address: {\n identifier,\n pubkey,\n kind: parseInt(kind, 10),\n relays: tag[2] ? [tag[2]] : []\n }\n });\n } catch (err) {\n }\n break;\n }\n }\n }\n }\n return references;\n}\n\n// nip04.ts\nvar nip04_exports = {};\n__export(nip04_exports, {\n decrypt: () => decrypt,\n encrypt: () => encrypt\n});\nimport { bytesToHex as bytesToHex3, randomBytes } from \"@noble/hashes/utils\";\nimport { secp256k1 } from \"@noble/curves/secp256k1\";\nimport { cbc } from \"@noble/ciphers/aes\";\nimport { base64 } from \"@scure/base\";\nasync function encrypt(secretKey, pubkey, text) {\n const privkey = secretKey instanceof Uint8Array ? bytesToHex3(secretKey) : secretKey;\n const key = secp256k1.getSharedSecret(privkey, \"02\" + pubkey);\n const normalizedKey = getNormalizedX(key);\n let iv = Uint8Array.from(randomBytes(16));\n let plaintext = utf8Encoder.encode(text);\n let ciphertext = cbc(normalizedKey, iv).encrypt(plaintext);\n let ctb64 = base64.encode(new Uint8Array(ciphertext));\n let ivb64 = base64.encode(new Uint8Array(iv.buffer));\n return `${ctb64}?iv=${ivb64}`;\n}\nasync function decrypt(secretKey, pubkey, data) {\n const privkey = secretKey instanceof Uint8Array ? bytesToHex3(secretKey) : secretKey;\n let [ctb64, ivb64] = data.split(\"?iv=\");\n let key = secp256k1.getSharedSecret(privkey, \"02\" + pubkey);\n let normalizedKey = getNormalizedX(key);\n let iv = base64.decode(ivb64);\n let ciphertext = base64.decode(ctb64);\n let plaintext = cbc(normalizedKey, iv).decrypt(ciphertext);\n return utf8Decoder.decode(plaintext);\n}\nfunction getNormalizedX(key) {\n return key.slice(1, 33);\n}\n\n// nip05.ts\nvar nip05_exports = {};\n__export(nip05_exports, {\n NIP05_REGEX: () => NIP05_REGEX,\n isNip05: () => isNip05,\n isValid: () => isValid,\n queryProfile: () => queryProfile,\n searchDomain: () => searchDomain,\n useFetchImplementation: () => useFetchImplementation\n});\nvar NIP05_REGEX = /^(?:([\\w.+-]+)@)?([\\w_-]+(\\.[\\w_-]+)+)$/;\nvar isNip05 = (value) => NIP05_REGEX.test(value || \"\");\nvar _fetch;\ntry {\n _fetch = fetch;\n} catch (_) {\n null;\n}\nfunction useFetchImplementation(fetchImplementation) {\n _fetch = fetchImplementation;\n}\nasync function searchDomain(domain, query = \"\") {\n try {\n const url = `https://${domain}/.well-known/nostr.json?name=${query}`;\n const res = await _fetch(url, { redirect: \"manual\" });\n if (res.status !== 200) {\n throw Error(\"Wrong response code\");\n }\n const json = await res.json();\n return json.names;\n } catch (_) {\n return {};\n }\n}\nasync function queryProfile(fullname) {\n const match = fullname.match(NIP05_REGEX);\n if (!match)\n return null;\n const [, name = \"_\", domain] = match;\n try {\n const url = `https://${domain}/.well-known/nostr.json?name=${name}`;\n const res = await _fetch(url, { redirect: \"manual\" });\n if (res.status !== 200) {\n throw Error(\"Wrong response code\");\n }\n const json = await res.json();\n const pubkey = json.names[name];\n return pubkey ? { pubkey, relays: json.relays?.[pubkey] } : null;\n } catch (_e) {\n return null;\n }\n}\nasync function isValid(pubkey, nip05) {\n const res = await queryProfile(nip05);\n return res ? res.pubkey === pubkey : false;\n}\n\n// nip10.ts\nvar nip10_exports = {};\n__export(nip10_exports, {\n parse: () => parse\n});\nfunction parse(event) {\n const result = {\n reply: void 0,\n root: void 0,\n mentions: [],\n profiles: []\n };\n const eTags = [];\n for (const tag of event.tags) {\n if (tag[0] === \"e\" && tag[1]) {\n eTags.push(tag);\n }\n if (tag[0] === \"p\" && tag[1]) {\n result.profiles.push({\n pubkey: tag[1],\n relays: tag[2] ? [tag[2]] : []\n });\n }\n }\n for (let eTagIndex = 0; eTagIndex < eTags.length; eTagIndex++) {\n const eTag = eTags[eTagIndex];\n const [_, eTagEventId, eTagRelayUrl, eTagMarker] = eTag;\n const eventPointer = {\n id: eTagEventId,\n relays: eTagRelayUrl ? [eTagRelayUrl] : []\n };\n const isFirstETag = eTagIndex === 0;\n const isLastETag = eTagIndex === eTags.length - 1;\n if (eTagMarker === \"root\") {\n result.root = eventPointer;\n continue;\n }\n if (eTagMarker === \"reply\") {\n result.reply = eventPointer;\n continue;\n }\n if (eTagMarker === \"mention\") {\n result.mentions.push(eventPointer);\n continue;\n }\n if (isFirstETag) {\n result.root = eventPointer;\n continue;\n }\n if (isLastETag) {\n result.reply = eventPointer;\n continue;\n }\n result.mentions.push(eventPointer);\n }\n return result;\n}\n\n// nip11.ts\nvar nip11_exports = {};\n__export(nip11_exports, {\n fetchRelayInformation: () => fetchRelayInformation,\n useFetchImplementation: () => useFetchImplementation2\n});\nvar _fetch2;\ntry {\n _fetch2 = fetch;\n} catch {\n}\nfunction useFetchImplementation2(fetchImplementation) {\n _fetch2 = fetchImplementation;\n}\nasync function fetchRelayInformation(url) {\n return await (await fetch(url.replace(\"ws://\", \"http://\").replace(\"wss://\", \"https://\"), {\n headers: { Accept: \"application/nostr+json\" }\n })).json();\n}\n\n// nip13.ts\nvar nip13_exports = {};\n__export(nip13_exports, {\n fastEventHash: () => fastEventHash,\n getPow: () => getPow,\n minePow: () => minePow\n});\nimport { bytesToHex as bytesToHex4 } from \"@noble/hashes/utils\";\nimport { sha256 as sha2562 } from \"@noble/hashes/sha256\";\nfunction getPow(hex) {\n let count = 0;\n for (let i2 = 0; i2 < 64; i2 += 8) {\n const nibble = parseInt(hex.substring(i2, i2 + 8), 16);\n if (nibble === 0) {\n count += 32;\n } else {\n count += Math.clz32(nibble);\n break;\n }\n }\n return count;\n}\nfunction minePow(unsigned, difficulty) {\n let count = 0;\n const event = unsigned;\n const tag = [\"nonce\", count.toString(), difficulty.toString()];\n event.tags.push(tag);\n while (true) {\n const now2 = Math.floor(new Date().getTime() / 1e3);\n if (now2 !== event.created_at) {\n count = 0;\n event.created_at = now2;\n }\n tag[1] = (++count).toString();\n event.id = fastEventHash(event);\n if (getPow(event.id) >= difficulty) {\n break;\n }\n }\n return event;\n}\nfunction fastEventHash(evt) {\n return bytesToHex4(\n sha2562(utf8Encoder.encode(JSON.stringify([0, evt.pubkey, evt.created_at, evt.kind, evt.tags, evt.content])))\n );\n}\n\n// nip18.ts\nvar nip18_exports = {};\n__export(nip18_exports, {\n finishRepostEvent: () => finishRepostEvent,\n getRepostedEvent: () => getRepostedEvent,\n getRepostedEventPointer: () => getRepostedEventPointer\n});\nfunction finishRepostEvent(t, reposted, relayUrl, privateKey) {\n return finalizeEvent(\n {\n kind: Repost,\n tags: [...t.tags ?? [], [\"e\", reposted.id, relayUrl], [\"p\", reposted.pubkey]],\n content: t.content === \"\" ? \"\" : JSON.stringify(reposted),\n created_at: t.created_at\n },\n privateKey\n );\n}\nfunction getRepostedEventPointer(event) {\n if (event.kind !== Repost) {\n return void 0;\n }\n let lastETag;\n let lastPTag;\n for (let i2 = event.tags.length - 1; i2 >= 0 && (lastETag === void 0 || lastPTag === void 0); i2--) {\n const tag = event.tags[i2];\n if (tag.length >= 2) {\n if (tag[0] === \"e\" && lastETag === void 0) {\n lastETag = tag;\n } else if (tag[0] === \"p\" && lastPTag === void 0) {\n lastPTag = tag;\n }\n }\n }\n if (lastETag === void 0) {\n return void 0;\n }\n return {\n id: lastETag[1],\n relays: [lastETag[2], lastPTag?.[2]].filter((x) => typeof x === \"string\"),\n author: lastPTag?.[1]\n };\n}\nfunction getRepostedEvent(event, { skipVerification } = {}) {\n const pointer = getRepostedEventPointer(event);\n if (pointer === void 0 || event.content === \"\") {\n return void 0;\n }\n let repostedEvent;\n try {\n repostedEvent = JSON.parse(event.content);\n } catch (error) {\n return void 0;\n }\n if (repostedEvent.id !== pointer.id) {\n return void 0;\n }\n if (!skipVerification && !verifyEvent(repostedEvent)) {\n return void 0;\n }\n return repostedEvent;\n}\n\n// nip21.ts\nvar nip21_exports = {};\n__export(nip21_exports, {\n NOSTR_URI_REGEX: () => NOSTR_URI_REGEX,\n parse: () => parse2,\n test: () => test\n});\nvar NOSTR_URI_REGEX = new RegExp(`nostr:(${BECH32_REGEX.source})`);\nfunction test(value) {\n return typeof value === \"string\" && new RegExp(`^${NOSTR_URI_REGEX.source}$`).test(value);\n}\nfunction parse2(uri) {\n const match = uri.match(new RegExp(`^${NOSTR_URI_REGEX.source}$`));\n if (!match)\n throw new Error(`Invalid Nostr URI: ${uri}`);\n return {\n uri: match[0],\n value: match[1],\n decoded: decode(match[1])\n };\n}\n\n// nip25.ts\nvar nip25_exports = {};\n__export(nip25_exports, {\n finishReactionEvent: () => finishReactionEvent,\n getReactedEventPointer: () => getReactedEventPointer\n});\nfunction finishReactionEvent(t, reacted, privateKey) {\n const inheritedTags = reacted.tags.filter((tag) => tag.length >= 2 && (tag[0] === \"e\" || tag[0] === \"p\"));\n return finalizeEvent(\n {\n ...t,\n kind: Reaction,\n tags: [...t.tags ?? [], ...inheritedTags, [\"e\", reacted.id], [\"p\", reacted.pubkey]],\n content: t.content ?? \"+\"\n },\n privateKey\n );\n}\nfunction getReactedEventPointer(event) {\n if (event.kind !== Reaction) {\n return void 0;\n }\n let lastETag;\n let lastPTag;\n for (let i2 = event.tags.length - 1; i2 >= 0 && (lastETag === void 0 || lastPTag === void 0); i2--) {\n const tag = event.tags[i2];\n if (tag.length >= 2) {\n if (tag[0] === \"e\" && lastETag === void 0) {\n lastETag = tag;\n } else if (tag[0] === \"p\" && lastPTag === void 0) {\n lastPTag = tag;\n }\n }\n }\n if (lastETag === void 0 || lastPTag === void 0) {\n return void 0;\n }\n return {\n id: lastETag[1],\n relays: [lastETag[2], lastPTag[2]].filter((x) => x !== void 0),\n author: lastPTag[1]\n };\n}\n\n// nip27.ts\nvar nip27_exports = {};\n__export(nip27_exports, {\n matchAll: () => matchAll,\n regex: () => regex,\n replaceAll: () => replaceAll\n});\nvar regex = () => new RegExp(`\\\\b${NOSTR_URI_REGEX.source}\\\\b`, \"g\");\nfunction* matchAll(content) {\n const matches = content.matchAll(regex());\n for (const match of matches) {\n try {\n const [uri, value] = match;\n yield {\n uri,\n value,\n decoded: decode(value),\n start: match.index,\n end: match.index + uri.length\n };\n } catch (_e) {\n }\n }\n}\nfunction replaceAll(content, replacer) {\n return content.replaceAll(regex(), (uri, value) => {\n return replacer({\n uri,\n value,\n decoded: decode(value)\n });\n });\n}\n\n// nip28.ts\nvar nip28_exports = {};\n__export(nip28_exports, {\n channelCreateEvent: () => channelCreateEvent,\n channelHideMessageEvent: () => channelHideMessageEvent,\n channelMessageEvent: () => channelMessageEvent,\n channelMetadataEvent: () => channelMetadataEvent,\n channelMuteUserEvent: () => channelMuteUserEvent\n});\nvar channelCreateEvent = (t, privateKey) => {\n let content;\n if (typeof t.content === \"object\") {\n content = JSON.stringify(t.content);\n } else if (typeof t.content === \"string\") {\n content = t.content;\n } else {\n return void 0;\n }\n return finalizeEvent(\n {\n kind: ChannelCreation,\n tags: [...t.tags ?? []],\n content,\n created_at: t.created_at\n },\n privateKey\n );\n};\nvar channelMetadataEvent = (t, privateKey) => {\n let content;\n if (typeof t.content === \"object\") {\n content = JSON.stringify(t.content);\n } else if (typeof t.content === \"string\") {\n content = t.content;\n } else {\n return void 0;\n }\n return finalizeEvent(\n {\n kind: ChannelMetadata,\n tags: [[\"e\", t.channel_create_event_id], ...t.tags ?? []],\n content,\n created_at: t.created_at\n },\n privateKey\n );\n};\nvar channelMessageEvent = (t, privateKey) => {\n const tags = [[\"e\", t.channel_create_event_id, t.relay_url, \"root\"]];\n if (t.reply_to_channel_message_event_id) {\n tags.push([\"e\", t.reply_to_channel_message_event_id, t.relay_url, \"reply\"]);\n }\n return finalizeEvent(\n {\n kind: ChannelMessage,\n tags: [...tags, ...t.tags ?? []],\n content: t.content,\n created_at: t.created_at\n },\n privateKey\n );\n};\nvar channelHideMessageEvent = (t, privateKey) => {\n let content;\n if (typeof t.content === \"object\") {\n content = JSON.stringify(t.content);\n } else if (typeof t.content === \"string\") {\n content = t.content;\n } else {\n return void 0;\n }\n return finalizeEvent(\n {\n kind: ChannelHideMessage,\n tags: [[\"e\", t.channel_message_event_id], ...t.tags ?? []],\n content,\n created_at: t.created_at\n },\n privateKey\n );\n};\nvar channelMuteUserEvent = (t, privateKey) => {\n let content;\n if (typeof t.content === \"object\") {\n content = JSON.stringify(t.content);\n } else if (typeof t.content === \"string\") {\n content = t.content;\n } else {\n return void 0;\n }\n return finalizeEvent(\n {\n kind: ChannelMuteUser,\n tags: [[\"p\", t.pubkey_to_mute], ...t.tags ?? []],\n content,\n created_at: t.created_at\n },\n privateKey\n );\n};\n\n// nip30.ts\nvar nip30_exports = {};\n__export(nip30_exports, {\n EMOJI_SHORTCODE_REGEX: () => EMOJI_SHORTCODE_REGEX,\n matchAll: () => matchAll2,\n regex: () => regex2,\n replaceAll: () => replaceAll2\n});\nvar EMOJI_SHORTCODE_REGEX = /:(\\w+):/;\nvar regex2 = () => new RegExp(`\\\\B${EMOJI_SHORTCODE_REGEX.source}\\\\B`, \"g\");\nfunction* matchAll2(content) {\n const matches = content.matchAll(regex2());\n for (const match of matches) {\n try {\n const [shortcode, name] = match;\n yield {\n shortcode,\n name,\n start: match.index,\n end: match.index + shortcode.length\n };\n } catch (_e) {\n }\n }\n}\nfunction replaceAll2(content, replacer) {\n return content.replaceAll(regex2(), (shortcode, name) => {\n return replacer({\n shortcode,\n name\n });\n });\n}\n\n// nip39.ts\nvar nip39_exports = {};\n__export(nip39_exports, {\n useFetchImplementation: () => useFetchImplementation3,\n validateGithub: () => validateGithub\n});\nvar _fetch3;\ntry {\n _fetch3 = fetch;\n} catch {\n}\nfunction useFetchImplementation3(fetchImplementation) {\n _fetch3 = fetchImplementation;\n}\nasync function validateGithub(pubkey, username, proof) {\n try {\n let res = await (await _fetch3(`https://gist.github.com/${username}/${proof}/raw`)).text();\n return res === `Verifying that I control the following Nostr public key: ${pubkey}`;\n } catch (_) {\n return false;\n }\n}\n\n// nip44.ts\nvar nip44_exports = {};\n__export(nip44_exports, {\n decrypt: () => decrypt2,\n encrypt: () => encrypt2,\n getConversationKey: () => getConversationKey,\n v2: () => v2\n});\nimport { chacha20 } from \"@noble/ciphers/chacha\";\nimport { equalBytes } from \"@noble/ciphers/utils\";\nimport { secp256k1 as secp256k12 } from \"@noble/curves/secp256k1\";\nimport { extract as hkdf_extract, expand as hkdf_expand } from \"@noble/hashes/hkdf\";\nimport { hmac } from \"@noble/hashes/hmac\";\nimport { sha256 as sha2563 } from \"@noble/hashes/sha256\";\nimport { concatBytes as concatBytes2, randomBytes as randomBytes2 } from \"@noble/hashes/utils\";\nimport { base64 as base642 } from \"@scure/base\";\nvar minPlaintextSize = 1;\nvar maxPlaintextSize = 65535;\nfunction getConversationKey(privkeyA, pubkeyB) {\n const sharedX = secp256k12.getSharedSecret(privkeyA, \"02\" + pubkeyB).subarray(1, 33);\n return hkdf_extract(sha2563, sharedX, \"nip44-v2\");\n}\nfunction getMessageKeys(conversationKey, nonce) {\n const keys = hkdf_expand(sha2563, conversationKey, nonce, 76);\n return {\n chacha_key: keys.subarray(0, 32),\n chacha_nonce: keys.subarray(32, 44),\n hmac_key: keys.subarray(44, 76)\n };\n}\nfunction calcPaddedLen(len) {\n if (!Number.isSafeInteger(len) || len < 1)\n throw new Error(\"expected positive integer\");\n if (len <= 32)\n return 32;\n const nextPower = 1 << Math.floor(Math.log2(len - 1)) + 1;\n const chunk = nextPower <= 256 ? 32 : nextPower / 8;\n return chunk * (Math.floor((len - 1) / chunk) + 1);\n}\nfunction writeU16BE(num) {\n if (!Number.isSafeInteger(num) || num < minPlaintextSize || num > maxPlaintextSize)\n throw new Error(\"invalid plaintext size: must be between 1 and 65535 bytes\");\n const arr = new Uint8Array(2);\n new DataView(arr.buffer).setUint16(0, num, false);\n return arr;\n}\nfunction pad(plaintext) {\n const unpadded = utf8Encoder.encode(plaintext);\n const unpaddedLen = unpadded.length;\n const prefix = writeU16BE(unpaddedLen);\n const suffix = new Uint8Array(calcPaddedLen(unpaddedLen) - unpaddedLen);\n return concatBytes2(prefix, unpadded, suffix);\n}\nfunction unpad(padded) {\n const unpaddedLen = new DataView(padded.buffer).getUint16(0);\n const unpadded = padded.subarray(2, 2 + unpaddedLen);\n if (unpaddedLen < minPlaintextSize || unpaddedLen > maxPlaintextSize || unpadded.length !== unpaddedLen || padded.length !== 2 + calcPaddedLen(unpaddedLen))\n throw new Error(\"invalid padding\");\n return utf8Decoder.decode(unpadded);\n}\nfunction hmacAad(key, message, aad) {\n if (aad.length !== 32)\n throw new Error(\"AAD associated data must be 32 bytes\");\n const combined = concatBytes2(aad, message);\n return hmac(sha2563, key, combined);\n}\nfunction decodePayload(payload) {\n if (typeof payload !== \"string\")\n throw new Error(\"payload must be a valid string\");\n const plen = payload.length;\n if (plen < 132 || plen > 87472)\n throw new Error(\"invalid payload length: \" + plen);\n if (payload[0] === \"#\")\n throw new Error(\"unknown encryption version\");\n let data;\n try {\n data = base642.decode(payload);\n } catch (error) {\n throw new Error(\"invalid base64: \" + error.message);\n }\n const dlen = data.length;\n if (dlen < 99 || dlen > 65603)\n throw new Error(\"invalid data length: \" + dlen);\n const vers = data[0];\n if (vers !== 2)\n throw new Error(\"unknown encryption version \" + vers);\n return {\n nonce: data.subarray(1, 33),\n ciphertext: data.subarray(33, -32),\n mac: data.subarray(-32)\n };\n}\nfunction encrypt2(plaintext, conversationKey, nonce = randomBytes2(32)) {\n const { chacha_key, chacha_nonce, hmac_key } = getMessageKeys(conversationKey, nonce);\n const padded = pad(plaintext);\n const ciphertext = chacha20(chacha_key, chacha_nonce, padded);\n const mac = hmacAad(hmac_key, ciphertext, nonce);\n return base642.encode(concatBytes2(new Uint8Array([2]), nonce, ciphertext, mac));\n}\nfunction decrypt2(payload, conversationKey) {\n const { nonce, ciphertext, mac } = decodePayload(payload);\n const { chacha_key, chacha_nonce, hmac_key } = getMessageKeys(conversationKey, nonce);\n const calculatedMac = hmacAad(hmac_key, ciphertext, nonce);\n if (!equalBytes(calculatedMac, mac))\n throw new Error(\"invalid MAC\");\n const padded = chacha20(chacha_key, chacha_nonce, ciphertext);\n return unpad(padded);\n}\nvar v2 = {\n utils: {\n getConversationKey,\n calcPaddedLen\n },\n encrypt: encrypt2,\n decrypt: decrypt2\n};\n\n// nip47.ts\nvar nip47_exports = {};\n__export(nip47_exports, {\n makeNwcRequestEvent: () => makeNwcRequestEvent,\n parseConnectionString: () => parseConnectionString\n});\nfunction parseConnectionString(connectionString) {\n const { pathname, searchParams } = new URL(connectionString);\n const pubkey = pathname;\n const relay = searchParams.get(\"relay\");\n const secret = searchParams.get(\"secret\");\n if (!pubkey || !relay || !secret) {\n throw new Error(\"invalid connection string\");\n }\n return { pubkey, relay, secret };\n}\nasync function makeNwcRequestEvent(pubkey, secretKey, invoice) {\n const content = {\n method: \"pay_invoice\",\n params: {\n invoice\n }\n };\n const encryptedContent = await encrypt(secretKey, pubkey, JSON.stringify(content));\n const eventTemplate = {\n kind: NWCWalletRequest,\n created_at: Math.round(Date.now() / 1e3),\n content: encryptedContent,\n tags: [[\"p\", pubkey]]\n };\n return finalizeEvent(eventTemplate, secretKey);\n}\n\n// nip57.ts\nvar nip57_exports = {};\n__export(nip57_exports, {\n getZapEndpoint: () => getZapEndpoint,\n makeZapReceipt: () => makeZapReceipt,\n makeZapRequest: () => makeZapRequest,\n useFetchImplementation: () => useFetchImplementation4,\n validateZapRequest: () => validateZapRequest\n});\nimport { bech32 as bech322 } from \"@scure/base\";\nvar _fetch4;\ntry {\n _fetch4 = fetch;\n} catch {\n}\nfunction useFetchImplementation4(fetchImplementation) {\n _fetch4 = fetchImplementation;\n}\nasync function getZapEndpoint(metadata) {\n try {\n let lnurl = \"\";\n let { lud06, lud16 } = JSON.parse(metadata.content);\n if (lud06) {\n let { words } = bech322.decode(lud06, 1e3);\n let data = bech322.fromWords(words);\n lnurl = utf8Decoder.decode(data);\n } else if (lud16) {\n let [name, domain] = lud16.split(\"@\");\n lnurl = new URL(`/.well-known/lnurlp/${name}`, `https://${domain}`).toString();\n } else {\n return null;\n }\n let res = await _fetch4(lnurl);\n let body = await res.json();\n if (body.allowsNostr && body.nostrPubkey) {\n return body.callback;\n }\n } catch (err) {\n }\n return null;\n}\nfunction makeZapRequest({\n profile,\n event,\n amount,\n relays,\n comment = \"\"\n}) {\n if (!amount)\n throw new Error(\"amount not given\");\n if (!profile)\n throw new Error(\"profile not given\");\n let zr = {\n kind: 9734,\n created_at: Math.round(Date.now() / 1e3),\n content: comment,\n tags: [\n [\"p\", profile],\n [\"amount\", amount.toString()],\n [\"relays\", ...relays]\n ]\n };\n if (event) {\n zr.tags.push([\"e\", event]);\n }\n return zr;\n}\nfunction validateZapRequest(zapRequestString) {\n let zapRequest;\n try {\n zapRequest = JSON.parse(zapRequestString);\n } catch (err) {\n return \"Invalid zap request JSON.\";\n }\n if (!validateEvent(zapRequest))\n return \"Zap request is not a valid Nostr event.\";\n if (!verifyEvent(zapRequest))\n return \"Invalid signature on zap request.\";\n let p = zapRequest.tags.find(([t, v]) => t === \"p\" && v);\n if (!p)\n return \"Zap request doesn't have a 'p' tag.\";\n if (!p[1].match(/^[a-f0-9]{64}$/))\n return \"Zap request 'p' tag is not valid hex.\";\n let e = zapRequest.tags.find(([t, v]) => t === \"e\" && v);\n if (e && !e[1].match(/^[a-f0-9]{64}$/))\n return \"Zap request 'e' tag is not valid hex.\";\n let relays = zapRequest.tags.find(([t, v]) => t === \"relays\" && v);\n if (!relays)\n return \"Zap request doesn't have a 'relays' tag.\";\n return null;\n}\nfunction makeZapReceipt({\n zapRequest,\n preimage,\n bolt11,\n paidAt\n}) {\n let zr = JSON.parse(zapRequest);\n let tagsFromZapRequest = zr.tags.filter(([t]) => t === \"e\" || t === \"p\" || t === \"a\");\n let zap = {\n kind: 9735,\n created_at: Math.round(paidAt.getTime() / 1e3),\n content: \"\",\n tags: [...tagsFromZapRequest, [\"P\", zr.pubkey], [\"bolt11\", bolt11], [\"description\", zapRequest]]\n };\n if (preimage) {\n zap.tags.push([\"preimage\", preimage]);\n }\n return zap;\n}\n\n// nip59.ts\nvar nip59_exports = {};\n__export(nip59_exports, {\n createRumor: () => createRumor,\n createSeal: () => createSeal,\n createWrap: () => createWrap,\n unwrapEvent: () => unwrapEvent,\n unwrapManyEvents: () => unwrapManyEvents,\n wrapEvent: () => wrapEvent,\n wrapManyEvents: () => wrapManyEvents\n});\nvar TWO_DAYS = 2 * 24 * 60 * 60;\nvar now = () => Math.round(Date.now() / 1e3);\nvar randomNow = () => Math.round(now() - Math.random() * TWO_DAYS);\nvar nip44ConversationKey = (privateKey, publicKey) => getConversationKey(privateKey, publicKey);\nvar nip44Encrypt = (data, privateKey, publicKey) => encrypt2(JSON.stringify(data), nip44ConversationKey(privateKey, publicKey));\nvar nip44Decrypt = (data, privateKey) => JSON.parse(decrypt2(data.content, nip44ConversationKey(privateKey, data.pubkey)));\nfunction createRumor(event, privateKey) {\n const rumor = {\n created_at: now(),\n content: \"\",\n tags: [],\n ...event,\n pubkey: getPublicKey(privateKey)\n };\n rumor.id = getEventHash(rumor);\n return rumor;\n}\nfunction createSeal(rumor, privateKey, recipientPublicKey) {\n return finalizeEvent(\n {\n kind: Seal,\n content: nip44Encrypt(rumor, privateKey, recipientPublicKey),\n created_at: randomNow(),\n tags: []\n },\n privateKey\n );\n}\nfunction createWrap(seal, recipientPublicKey) {\n const randomKey = generateSecretKey();\n return finalizeEvent(\n {\n kind: GiftWrap,\n content: nip44Encrypt(seal, randomKey, recipientPublicKey),\n created_at: randomNow(),\n tags: [[\"p\", recipientPublicKey]]\n },\n randomKey\n );\n}\nfunction wrapEvent(event, senderPrivateKey, recipientPublicKey) {\n const rumor = createRumor(event, senderPrivateKey);\n const seal = createSeal(rumor, senderPrivateKey, recipientPublicKey);\n return createWrap(seal, recipientPublicKey);\n}\nfunction wrapManyEvents(event, senderPrivateKey, recipientsPublicKeys) {\n if (!recipientsPublicKeys || recipientsPublicKeys.length === 0) {\n throw new Error(\"At least one recipient is required.\");\n }\n const senderPublicKey = getPublicKey(senderPrivateKey);\n const wrappeds = [wrapEvent(event, senderPrivateKey, senderPublicKey)];\n recipientsPublicKeys.forEach((recipientPublicKey) => {\n wrappeds.push(wrapEvent(event, senderPrivateKey, recipientPublicKey));\n });\n return wrappeds;\n}\nfunction unwrapEvent(wrap, recipientPrivateKey) {\n const unwrappedSeal = nip44Decrypt(wrap, recipientPrivateKey);\n return nip44Decrypt(unwrappedSeal, recipientPrivateKey);\n}\nfunction unwrapManyEvents(wrappedEvents, recipientPrivateKey) {\n let unwrappedEvents = [];\n wrappedEvents.forEach((e) => {\n unwrappedEvents.push(unwrapEvent(e, recipientPrivateKey));\n });\n unwrappedEvents.sort((a, b) => a.created_at - b.created_at);\n return unwrappedEvents;\n}\n\n// nip98.ts\nvar nip98_exports = {};\n__export(nip98_exports, {\n getToken: () => getToken,\n hashPayload: () => hashPayload,\n unpackEventFromToken: () => unpackEventFromToken,\n validateEvent: () => validateEvent2,\n validateEventKind: () => validateEventKind,\n validateEventMethodTag: () => validateEventMethodTag,\n validateEventPayloadTag: () => validateEventPayloadTag,\n validateEventTimestamp: () => validateEventTimestamp,\n validateEventUrlTag: () => validateEventUrlTag,\n validateToken: () => validateToken\n});\nimport { sha256 as sha2564 } from \"@noble/hashes/sha256\";\nimport { bytesToHex as bytesToHex5 } from \"@noble/hashes/utils\";\nimport { base64 as base643 } from \"@scure/base\";\nvar _authorizationScheme = \"Nostr \";\nasync function getToken(loginUrl, httpMethod, sign, includeAuthorizationScheme = false, payload) {\n const event = {\n kind: HTTPAuth,\n tags: [\n [\"u\", loginUrl],\n [\"method\", httpMethod]\n ],\n created_at: Math.round(new Date().getTime() / 1e3),\n content: \"\"\n };\n if (payload) {\n event.tags.push([\"payload\", hashPayload(payload)]);\n }\n const signedEvent = await sign(event);\n const authorizationScheme = includeAuthorizationScheme ? _authorizationScheme : \"\";\n return authorizationScheme + base643.encode(utf8Encoder.encode(JSON.stringify(signedEvent)));\n}\nasync function validateToken(token, url, method) {\n const event = await unpackEventFromToken(token).catch((error) => {\n throw error;\n });\n const valid = await validateEvent2(event, url, method).catch((error) => {\n throw error;\n });\n return valid;\n}\nasync function unpackEventFromToken(token) {\n if (!token) {\n throw new Error(\"Missing token\");\n }\n token = token.replace(_authorizationScheme, \"\");\n const eventB64 = utf8Decoder.decode(base643.decode(token));\n if (!eventB64 || eventB64.length === 0 || !eventB64.startsWith(\"{\")) {\n throw new Error(\"Invalid token\");\n }\n const event = JSON.parse(eventB64);\n return event;\n}\nfunction validateEventTimestamp(event) {\n if (!event.created_at) {\n return false;\n }\n return Math.round(new Date().getTime() / 1e3) - event.created_at < 60;\n}\nfunction validateEventKind(event) {\n return event.kind === HTTPAuth;\n}\nfunction validateEventUrlTag(event, url) {\n const urlTag = event.tags.find((t) => t[0] === \"u\");\n if (!urlTag) {\n return false;\n }\n return urlTag.length > 0 && urlTag[1] === url;\n}\nfunction validateEventMethodTag(event, method) {\n const methodTag = event.tags.find((t) => t[0] === \"method\");\n if (!methodTag) {\n return false;\n }\n return methodTag.length > 0 && methodTag[1].toLowerCase() === method.toLowerCase();\n}\nfunction hashPayload(payload) {\n const hash = sha2564(utf8Encoder.encode(JSON.stringify(payload)));\n return bytesToHex5(hash);\n}\nfunction validateEventPayloadTag(event, payload) {\n const payloadTag = event.tags.find((t) => t[0] === \"payload\");\n if (!payloadTag) {\n return false;\n }\n const payloadHash = hashPayload(payload);\n return payloadTag.length > 0 && payloadTag[1] === payloadHash;\n}\nasync function validateEvent2(event, url, method, body) {\n if (!verifyEvent(event)) {\n throw new Error(\"Invalid nostr event, signature invalid\");\n }\n if (!validateEventKind(event)) {\n throw new Error(\"Invalid nostr event, kind invalid\");\n }\n if (!validateEventTimestamp(event)) {\n throw new Error(\"Invalid nostr event, created_at timestamp invalid\");\n }\n if (!validateEventUrlTag(event, url)) {\n throw new Error(\"Invalid nostr event, url tag invalid\");\n }\n if (!validateEventMethodTag(event, method)) {\n throw new Error(\"Invalid nostr event, method tag invalid\");\n }\n if (Boolean(body) && typeof body === \"object\" && Object.keys(body).length > 0) {\n if (!validateEventPayloadTag(event, body)) {\n throw new Error(\"Invalid nostr event, payload tag does not match request body hash\");\n }\n }\n return true;\n}\nexport {\n Relay,\n SimplePool,\n finalizeEvent,\n fakejson_exports as fj,\n generateSecretKey,\n getEventHash,\n getFilterLimit,\n getPublicKey,\n kinds_exports as kinds,\n matchFilter,\n matchFilters,\n mergeFilters,\n nip04_exports as nip04,\n nip05_exports as nip05,\n nip10_exports as nip10,\n nip11_exports as nip11,\n nip13_exports as nip13,\n nip18_exports as nip18,\n nip19_exports as nip19,\n nip21_exports as nip21,\n nip25_exports as nip25,\n nip27_exports as nip27,\n nip28_exports as nip28,\n nip30_exports as nip30,\n nip39_exports as nip39,\n nip42_exports as nip42,\n nip44_exports as nip44,\n nip47_exports as nip47,\n nip57_exports as nip57,\n nip59_exports as nip59,\n nip98_exports as nip98,\n parseReferences,\n serializeEvent,\n sortEvents,\n utils_exports as utils,\n validateEvent,\n verifiedSymbol,\n verifyEvent\n};\n","// src/components/card/card.styles.ts\nimport { css } from \"lit\";\nvar card_styles_default = css`\n :host {\n --border-color: var(--sl-color-neutral-200);\n --border-radius: var(--sl-border-radius-medium);\n --border-width: 1px;\n --padding: var(--sl-spacing-large);\n\n display: inline-block;\n }\n\n .card {\n display: flex;\n flex-direction: column;\n background-color: var(--sl-panel-background-color);\n box-shadow: var(--sl-shadow-x-small);\n border: solid var(--border-width) var(--border-color);\n border-radius: var(--border-radius);\n }\n\n .card__image {\n display: flex;\n border-top-left-radius: var(--border-radius);\n border-top-right-radius: var(--border-radius);\n margin: calc(-1 * var(--border-width));\n overflow: hidden;\n }\n\n .card__image::slotted(img) {\n display: block;\n width: 100%;\n }\n\n .card:not(.card--has-image) .card__image {\n display: none;\n }\n\n .card__header {\n display: block;\n border-bottom: solid var(--border-width) var(--border-color);\n padding: calc(var(--padding) / 2) var(--padding);\n }\n\n .card:not(.card--has-header) .card__header {\n display: none;\n }\n\n .card:not(.card--has-image) .card__header {\n border-top-left-radius: var(--border-radius);\n border-top-right-radius: var(--border-radius);\n }\n\n .card__body {\n display: block;\n padding: var(--padding);\n }\n\n .card--has-footer .card__footer {\n display: block;\n border-top: solid var(--border-width) var(--border-color);\n padding: var(--padding);\n }\n\n .card:not(.card--has-footer) .card__footer {\n display: none;\n }\n`;\n\nexport {\n card_styles_default\n};\n","// src/internal/slot.ts\nvar HasSlotController = class {\n constructor(host, ...slotNames) {\n this.slotNames = [];\n this.handleSlotChange = (event) => {\n const slot = event.target;\n if (this.slotNames.includes(\"[default]\") && !slot.name || slot.name && this.slotNames.includes(slot.name)) {\n this.host.requestUpdate();\n }\n };\n (this.host = host).addController(this);\n this.slotNames = slotNames;\n }\n hasDefaultSlot() {\n return [...this.host.childNodes].some((node) => {\n if (node.nodeType === node.TEXT_NODE && node.textContent.trim() !== \"\") {\n return true;\n }\n if (node.nodeType === node.ELEMENT_NODE) {\n const el = node;\n const tagName = el.tagName.toLowerCase();\n if (tagName === \"sl-visually-hidden\") {\n return false;\n }\n if (!el.hasAttribute(\"slot\")) {\n return true;\n }\n }\n return false;\n });\n }\n hasNamedSlot(name) {\n return this.host.querySelector(`:scope > [slot=\"${name}\"]`) !== null;\n }\n test(slotName) {\n return slotName === \"[default]\" ? this.hasDefaultSlot() : this.hasNamedSlot(slotName);\n }\n hostConnected() {\n this.host.shadowRoot.addEventListener(\"slotchange\", this.handleSlotChange);\n }\n hostDisconnected() {\n this.host.shadowRoot.removeEventListener(\"slotchange\", this.handleSlotChange);\n }\n};\nfunction getTextContent(slot) {\n if (!slot) {\n return \"\";\n }\n const nodes = slot.assignedNodes({ flatten: true });\n let text = \"\";\n [...nodes].forEach((node) => {\n if (node.nodeType === Node.TEXT_NODE) {\n text += node.textContent;\n }\n });\n return text;\n}\n\nexport {\n HasSlotController,\n getTextContent\n};\n","// src/styles/component.styles.ts\nimport { css } from \"lit\";\nvar component_styles_default = css`\n :host {\n box-sizing: border-box;\n }\n\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: inherit;\n }\n\n [hidden] {\n display: none !important;\n }\n`;\n\nexport {\n component_styles_default\n};\n","import {\n __decorateClass,\n __privateAdd,\n __privateGet,\n __privateSet,\n __spreadValues\n} from \"./chunk.B3BW2AY6.js\";\n\n// src/internal/shoelace-element.ts\nimport { LitElement } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nvar _hasRecordedInitialProperties;\nvar ShoelaceElement = class extends LitElement {\n constructor() {\n super();\n __privateAdd(this, _hasRecordedInitialProperties, false);\n // Store the constructor value of all `static properties = {}`\n this.initialReflectedProperties = /* @__PURE__ */ new Map();\n Object.entries(this.constructor.dependencies).forEach(([name, component]) => {\n this.constructor.define(name, component);\n });\n }\n emit(name, options) {\n const event = new CustomEvent(name, __spreadValues({\n bubbles: true,\n cancelable: false,\n composed: true,\n detail: {}\n }, options));\n this.dispatchEvent(event);\n return event;\n }\n /* eslint-enable */\n static define(name, elementConstructor = this, options = {}) {\n const currentlyRegisteredConstructor = customElements.get(name);\n if (!currentlyRegisteredConstructor) {\n try {\n customElements.define(name, elementConstructor, options);\n } catch (_err) {\n customElements.define(name, class extends elementConstructor {\n }, options);\n }\n return;\n }\n let newVersion = \" (unknown version)\";\n let existingVersion = newVersion;\n if (\"version\" in elementConstructor && elementConstructor.version) {\n newVersion = \" v\" + elementConstructor.version;\n }\n if (\"version\" in currentlyRegisteredConstructor && currentlyRegisteredConstructor.version) {\n existingVersion = \" v\" + currentlyRegisteredConstructor.version;\n }\n if (newVersion && existingVersion && newVersion === existingVersion) {\n return;\n }\n console.warn(\n `Attempted to register <${name}>${newVersion}, but <${name}>${existingVersion} has already been registered.`\n );\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (!__privateGet(this, _hasRecordedInitialProperties)) {\n this.constructor.elementProperties.forEach(\n (obj, prop) => {\n if (obj.reflect && this[prop] != null) {\n this.initialReflectedProperties.set(prop, this[prop]);\n }\n }\n );\n __privateSet(this, _hasRecordedInitialProperties, true);\n }\n super.attributeChangedCallback(name, oldValue, newValue);\n }\n willUpdate(changedProperties) {\n super.willUpdate(changedProperties);\n this.initialReflectedProperties.forEach((value, prop) => {\n if (changedProperties.has(prop) && this[prop] == null) {\n this[prop] = value;\n }\n });\n }\n};\n_hasRecordedInitialProperties = new WeakMap();\n/* eslint-disable */\n// @ts-expect-error This is auto-injected at build time.\nShoelaceElement.version = \"2.18.0\";\nShoelaceElement.dependencies = {};\n__decorateClass([\n property()\n], ShoelaceElement.prototype, \"dir\", 2);\n__decorateClass([\n property()\n], ShoelaceElement.prototype, \"lang\", 2);\n\nexport {\n ShoelaceElement\n};\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{noChange as t}from\"../lit-html.js\";import{directive as s,Directive as i,PartType as r}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const e=s(class extends i{constructor(t){if(super(t),t.type!==r.ATTRIBUTE||\"class\"!==t.name||t.strings?.length>2)throw Error(\"`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.\")}render(t){return\" \"+Object.keys(t).filter((s=>t[s])).join(\" \")+\" \"}update(s,[i]){if(void 0===this.st){this.st=new Set,void 0!==s.strings&&(this.nt=new Set(s.strings.join(\" \").split(/\\s/).filter((t=>\"\"!==t))));for(const t in i)i[t]&&!this.nt?.has(t)&&this.st.add(t);return this.render(i)}const r=s.element.classList;for(const t of this.st)t in i||(r.remove(t),this.st.delete(t));for(const t in i){const s=!!i[t];s===this.st.has(t)||this.nt?.has(t)||(s?(r.add(t),this.st.add(t)):(r.remove(t),this.st.delete(t)))}return t}});export{e as classMap};\n//# sourceMappingURL=class-map.js.map\n","import {\n card_styles_default\n} from \"./chunk.A5D6FTFY.js\";\nimport {\n HasSlotController\n} from \"./chunk.NYIIDP5N.js\";\nimport {\n component_styles_default\n} from \"./chunk.TUVJKY7S.js\";\nimport {\n ShoelaceElement\n} from \"./chunk.UYAO2JRR.js\";\n\n// src/components/card/card.component.ts\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { html } from \"lit\";\nvar SlCard = class extends ShoelaceElement {\n constructor() {\n super(...arguments);\n this.hasSlotController = new HasSlotController(this, \"footer\", \"header\", \"image\");\n }\n render() {\n return html`\n \n \n \n \n \n
    \n `;\n }\n};\nSlCard.styles = [component_styles_default, card_styles_default];\n\nexport {\n SlCard\n};\n","import {\n SlCard\n} from \"./chunk.LJF3QW2H.js\";\n\n// src/components/card/card.ts\nvar card_default = SlCard;\nSlCard.define(\"sl-card\");\n\nexport {\n card_default\n};\n","// src/components/spinner/spinner.styles.ts\nimport { css } from \"lit\";\nvar spinner_styles_default = css`\n :host {\n --track-width: 2px;\n --track-color: rgb(128 128 128 / 25%);\n --indicator-color: var(--sl-color-primary-600);\n --speed: 2s;\n\n display: inline-flex;\n width: 1em;\n height: 1em;\n flex: none;\n }\n\n .spinner {\n flex: 1 1 auto;\n height: 100%;\n width: 100%;\n }\n\n .spinner__track,\n .spinner__indicator {\n fill: none;\n stroke-width: var(--track-width);\n r: calc(0.5em - var(--track-width) / 2);\n cx: 0.5em;\n cy: 0.5em;\n transform-origin: 50% 50%;\n }\n\n .spinner__track {\n stroke: var(--track-color);\n transform-origin: 0% 0%;\n }\n\n .spinner__indicator {\n stroke: var(--indicator-color);\n stroke-linecap: round;\n stroke-dasharray: 150% 75%;\n animation: spin var(--speed) linear infinite;\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n stroke-dasharray: 0.05em, 3em;\n }\n\n 50% {\n transform: rotate(450deg);\n stroke-dasharray: 1.375em, 1.375em;\n }\n\n 100% {\n transform: rotate(1080deg);\n stroke-dasharray: 0.05em, 3em;\n }\n }\n`;\n\nexport {\n spinner_styles_default\n};\n","const connectedElements = new Set();\nconst translations = new Map();\nlet fallback;\nlet documentDirection = 'ltr';\nlet documentLanguage = 'en';\nconst isClient = (typeof MutationObserver !== \"undefined\" && typeof document !== \"undefined\" && typeof document.documentElement !== \"undefined\");\nif (isClient) {\n const documentElementObserver = new MutationObserver(update);\n documentDirection = document.documentElement.dir || 'ltr';\n documentLanguage = document.documentElement.lang || navigator.language;\n documentElementObserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['dir', 'lang']\n });\n}\nexport function registerTranslation(...translation) {\n translation.map(t => {\n const code = t.$code.toLowerCase();\n if (translations.has(code)) {\n translations.set(code, Object.assign(Object.assign({}, translations.get(code)), t));\n }\n else {\n translations.set(code, t);\n }\n if (!fallback) {\n fallback = t;\n }\n });\n update();\n}\nexport function update() {\n if (isClient) {\n documentDirection = document.documentElement.dir || 'ltr';\n documentLanguage = document.documentElement.lang || navigator.language;\n }\n [...connectedElements.keys()].map((el) => {\n if (typeof el.requestUpdate === 'function') {\n el.requestUpdate();\n }\n });\n}\nexport class LocalizeController {\n constructor(host) {\n this.host = host;\n this.host.addController(this);\n }\n hostConnected() {\n connectedElements.add(this.host);\n }\n hostDisconnected() {\n connectedElements.delete(this.host);\n }\n dir() {\n return `${this.host.dir || documentDirection}`.toLowerCase();\n }\n lang() {\n return `${this.host.lang || documentLanguage}`.toLowerCase();\n }\n getTranslationData(lang) {\n var _a, _b;\n const locale = new Intl.Locale(lang.replace(/_/g, '-'));\n const language = locale === null || locale === void 0 ? void 0 : locale.language.toLowerCase();\n const region = (_b = (_a = locale === null || locale === void 0 ? void 0 : locale.region) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : '';\n const primary = translations.get(`${language}-${region}`);\n const secondary = translations.get(language);\n return { locale, language, region, primary, secondary };\n }\n exists(key, options) {\n var _a;\n const { primary, secondary } = this.getTranslationData((_a = options.lang) !== null && _a !== void 0 ? _a : this.lang());\n options = Object.assign({ includeFallback: false }, options);\n if ((primary && primary[key]) ||\n (secondary && secondary[key]) ||\n (options.includeFallback && fallback && fallback[key])) {\n return true;\n }\n return false;\n }\n term(key, ...args) {\n const { primary, secondary } = this.getTranslationData(this.lang());\n let term;\n if (primary && primary[key]) {\n term = primary[key];\n }\n else if (secondary && secondary[key]) {\n term = secondary[key];\n }\n else if (fallback && fallback[key]) {\n term = fallback[key];\n }\n else {\n console.error(`No translation found for: ${String(key)}`);\n return String(key);\n }\n if (typeof term === 'function') {\n return term(...args);\n }\n return term;\n }\n date(dateToFormat, options) {\n dateToFormat = new Date(dateToFormat);\n return new Intl.DateTimeFormat(this.lang(), options).format(dateToFormat);\n }\n number(numberToFormat, options) {\n numberToFormat = Number(numberToFormat);\n return isNaN(numberToFormat) ? '' : new Intl.NumberFormat(this.lang(), options).format(numberToFormat);\n }\n relativeTime(value, unit, options) {\n return new Intl.RelativeTimeFormat(this.lang(), options).format(value, unit);\n }\n}\n","// src/translations/en.ts\nimport { registerTranslation } from \"@shoelace-style/localize\";\nvar translation = {\n $code: \"en\",\n $name: \"English\",\n $dir: \"ltr\",\n carousel: \"Carousel\",\n clearEntry: \"Clear entry\",\n close: \"Close\",\n copied: \"Copied\",\n copy: \"Copy\",\n currentValue: \"Current value\",\n error: \"Error\",\n goToSlide: (slide, count) => `Go to slide ${slide} of ${count}`,\n hidePassword: \"Hide password\",\n loading: \"Loading\",\n nextSlide: \"Next slide\",\n numOptionsSelected: (num) => {\n if (num === 0)\n return \"No options selected\";\n if (num === 1)\n return \"1 option selected\";\n return `${num} options selected`;\n },\n previousSlide: \"Previous slide\",\n progress: \"Progress\",\n remove: \"Remove\",\n resize: \"Resize\",\n scrollToEnd: \"Scroll to end\",\n scrollToStart: \"Scroll to start\",\n selectAColorFromTheScreen: \"Select a color from the screen\",\n showPassword: \"Show password\",\n slideNum: (slide) => `Slide ${slide}`,\n toggleColorFormat: \"Toggle color format\"\n};\nregisterTranslation(translation);\nvar en_default = translation;\n\nexport {\n en_default\n};\n","import {\n en_default\n} from \"./chunk.MAS2SHYD.js\";\n\n// src/utilities/localize.ts\nimport { LocalizeController as DefaultLocalizationController, registerTranslation } from \"@shoelace-style/localize\";\nimport { registerTranslation as registerTranslation2 } from \"@shoelace-style/localize\";\nvar LocalizeController = class extends DefaultLocalizationController {\n};\nregisterTranslation(en_default);\n\nexport {\n LocalizeController,\n registerTranslation2 as registerTranslation\n};\n","import {\n spinner_styles_default\n} from \"./chunk.7DUCI5S4.js\";\nimport {\n LocalizeController\n} from \"./chunk.WLV3FVBR.js\";\nimport {\n component_styles_default\n} from \"./chunk.TUVJKY7S.js\";\nimport {\n ShoelaceElement\n} from \"./chunk.UYAO2JRR.js\";\n\n// src/components/spinner/spinner.component.ts\nimport { html } from \"lit\";\nvar SlSpinner = class extends ShoelaceElement {\n constructor() {\n super(...arguments);\n this.localize = new LocalizeController(this);\n }\n render() {\n return html`\n \n \n \n \n `;\n }\n};\nSlSpinner.styles = [component_styles_default, spinner_styles_default];\n\nexport {\n SlSpinner\n};\n","import {\n __spreadProps,\n __spreadValues\n} from \"./chunk.B3BW2AY6.js\";\n\n// src/internal/form.ts\nvar formCollections = /* @__PURE__ */ new WeakMap();\nvar reportValidityOverloads = /* @__PURE__ */ new WeakMap();\nvar checkValidityOverloads = /* @__PURE__ */ new WeakMap();\nvar userInteractedControls = /* @__PURE__ */ new WeakSet();\nvar interactions = /* @__PURE__ */ new WeakMap();\nvar FormControlController = class {\n constructor(host, options) {\n this.handleFormData = (event) => {\n const disabled = this.options.disabled(this.host);\n const name = this.options.name(this.host);\n const value = this.options.value(this.host);\n const isButton = this.host.tagName.toLowerCase() === \"sl-button\";\n if (this.host.isConnected && !disabled && !isButton && typeof name === \"string\" && name.length > 0 && typeof value !== \"undefined\") {\n if (Array.isArray(value)) {\n value.forEach((val) => {\n event.formData.append(name, val.toString());\n });\n } else {\n event.formData.append(name, value.toString());\n }\n }\n };\n this.handleFormSubmit = (event) => {\n var _a;\n const disabled = this.options.disabled(this.host);\n const reportValidity = this.options.reportValidity;\n if (this.form && !this.form.noValidate) {\n (_a = formCollections.get(this.form)) == null ? void 0 : _a.forEach((control) => {\n this.setUserInteracted(control, true);\n });\n }\n if (this.form && !this.form.noValidate && !disabled && !reportValidity(this.host)) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n };\n this.handleFormReset = () => {\n this.options.setValue(this.host, this.options.defaultValue(this.host));\n this.setUserInteracted(this.host, false);\n interactions.set(this.host, []);\n };\n this.handleInteraction = (event) => {\n const emittedEvents = interactions.get(this.host);\n if (!emittedEvents.includes(event.type)) {\n emittedEvents.push(event.type);\n }\n if (emittedEvents.length === this.options.assumeInteractionOn.length) {\n this.setUserInteracted(this.host, true);\n }\n };\n this.checkFormValidity = () => {\n if (this.form && !this.form.noValidate) {\n const elements = this.form.querySelectorAll(\"*\");\n for (const element of elements) {\n if (typeof element.checkValidity === \"function\") {\n if (!element.checkValidity()) {\n return false;\n }\n }\n }\n }\n return true;\n };\n this.reportFormValidity = () => {\n if (this.form && !this.form.noValidate) {\n const elements = this.form.querySelectorAll(\"*\");\n for (const element of elements) {\n if (typeof element.reportValidity === \"function\") {\n if (!element.reportValidity()) {\n return false;\n }\n }\n }\n }\n return true;\n };\n (this.host = host).addController(this);\n this.options = __spreadValues({\n form: (input) => {\n const formId = input.form;\n if (formId) {\n const root = input.getRootNode();\n const form = root.querySelector(`#${formId}`);\n if (form) {\n return form;\n }\n }\n return input.closest(\"form\");\n },\n name: (input) => input.name,\n value: (input) => input.value,\n defaultValue: (input) => input.defaultValue,\n disabled: (input) => {\n var _a;\n return (_a = input.disabled) != null ? _a : false;\n },\n reportValidity: (input) => typeof input.reportValidity === \"function\" ? input.reportValidity() : true,\n checkValidity: (input) => typeof input.checkValidity === \"function\" ? input.checkValidity() : true,\n setValue: (input, value) => input.value = value,\n assumeInteractionOn: [\"sl-input\"]\n }, options);\n }\n hostConnected() {\n const form = this.options.form(this.host);\n if (form) {\n this.attachForm(form);\n }\n interactions.set(this.host, []);\n this.options.assumeInteractionOn.forEach((event) => {\n this.host.addEventListener(event, this.handleInteraction);\n });\n }\n hostDisconnected() {\n this.detachForm();\n interactions.delete(this.host);\n this.options.assumeInteractionOn.forEach((event) => {\n this.host.removeEventListener(event, this.handleInteraction);\n });\n }\n hostUpdated() {\n const form = this.options.form(this.host);\n if (!form) {\n this.detachForm();\n }\n if (form && this.form !== form) {\n this.detachForm();\n this.attachForm(form);\n }\n if (this.host.hasUpdated) {\n this.setValidity(this.host.validity.valid);\n }\n }\n attachForm(form) {\n if (form) {\n this.form = form;\n if (formCollections.has(this.form)) {\n formCollections.get(this.form).add(this.host);\n } else {\n formCollections.set(this.form, /* @__PURE__ */ new Set([this.host]));\n }\n this.form.addEventListener(\"formdata\", this.handleFormData);\n this.form.addEventListener(\"submit\", this.handleFormSubmit);\n this.form.addEventListener(\"reset\", this.handleFormReset);\n if (!reportValidityOverloads.has(this.form)) {\n reportValidityOverloads.set(this.form, this.form.reportValidity);\n this.form.reportValidity = () => this.reportFormValidity();\n }\n if (!checkValidityOverloads.has(this.form)) {\n checkValidityOverloads.set(this.form, this.form.checkValidity);\n this.form.checkValidity = () => this.checkFormValidity();\n }\n } else {\n this.form = void 0;\n }\n }\n detachForm() {\n if (!this.form)\n return;\n const formCollection = formCollections.get(this.form);\n if (!formCollection) {\n return;\n }\n formCollection.delete(this.host);\n if (formCollection.size <= 0) {\n this.form.removeEventListener(\"formdata\", this.handleFormData);\n this.form.removeEventListener(\"submit\", this.handleFormSubmit);\n this.form.removeEventListener(\"reset\", this.handleFormReset);\n if (reportValidityOverloads.has(this.form)) {\n this.form.reportValidity = reportValidityOverloads.get(this.form);\n reportValidityOverloads.delete(this.form);\n }\n if (checkValidityOverloads.has(this.form)) {\n this.form.checkValidity = checkValidityOverloads.get(this.form);\n checkValidityOverloads.delete(this.form);\n }\n this.form = void 0;\n }\n }\n setUserInteracted(el, hasInteracted) {\n if (hasInteracted) {\n userInteractedControls.add(el);\n } else {\n userInteractedControls.delete(el);\n }\n el.requestUpdate();\n }\n doAction(type, submitter) {\n if (this.form) {\n const button = document.createElement(\"button\");\n button.type = type;\n button.style.position = \"absolute\";\n button.style.width = \"0\";\n button.style.height = \"0\";\n button.style.clipPath = \"inset(50%)\";\n button.style.overflow = \"hidden\";\n button.style.whiteSpace = \"nowrap\";\n if (submitter) {\n button.name = submitter.name;\n button.value = submitter.value;\n [\"formaction\", \"formenctype\", \"formmethod\", \"formnovalidate\", \"formtarget\"].forEach((attr) => {\n if (submitter.hasAttribute(attr)) {\n button.setAttribute(attr, submitter.getAttribute(attr));\n }\n });\n }\n this.form.append(button);\n button.click();\n button.remove();\n }\n }\n /** Returns the associated `
    ` element, if one exists. */\n getForm() {\n var _a;\n return (_a = this.form) != null ? _a : null;\n }\n /** Resets the form, restoring all the control to their default value */\n reset(submitter) {\n this.doAction(\"reset\", submitter);\n }\n /** Submits the form, triggering validation and form data injection. */\n submit(submitter) {\n this.doAction(\"submit\", submitter);\n }\n /**\n * Synchronously sets the form control's validity. Call this when you know the future validity but need to update\n * the host element immediately, i.e. before Lit updates the component in the next update.\n */\n setValidity(isValid) {\n const host = this.host;\n const hasInteracted = Boolean(userInteractedControls.has(host));\n const required = Boolean(host.required);\n host.toggleAttribute(\"data-required\", required);\n host.toggleAttribute(\"data-optional\", !required);\n host.toggleAttribute(\"data-invalid\", !isValid);\n host.toggleAttribute(\"data-valid\", isValid);\n host.toggleAttribute(\"data-user-invalid\", !isValid && hasInteracted);\n host.toggleAttribute(\"data-user-valid\", isValid && hasInteracted);\n }\n /**\n * Updates the form control's validity based on the current value of `host.validity.valid`. Call this when anything\n * that affects constraint validation changes so the component receives the correct validity states.\n */\n updateValidity() {\n const host = this.host;\n this.setValidity(host.validity.valid);\n }\n /**\n * Dispatches a non-bubbling, cancelable custom event of type `sl-invalid`.\n * If the `sl-invalid` event will be cancelled then the original `invalid`\n * event (which may have been passed as argument) will also be cancelled.\n * If no original `invalid` event has been passed then the `sl-invalid`\n * event will be cancelled before being dispatched.\n */\n emitInvalidEvent(originalInvalidEvent) {\n const slInvalidEvent = new CustomEvent(\"sl-invalid\", {\n bubbles: false,\n composed: false,\n cancelable: true,\n detail: {}\n });\n if (!originalInvalidEvent) {\n slInvalidEvent.preventDefault();\n }\n if (!this.host.dispatchEvent(slInvalidEvent)) {\n originalInvalidEvent == null ? void 0 : originalInvalidEvent.preventDefault();\n }\n }\n};\nvar validValidityState = Object.freeze({\n badInput: false,\n customError: false,\n patternMismatch: false,\n rangeOverflow: false,\n rangeUnderflow: false,\n stepMismatch: false,\n tooLong: false,\n tooShort: false,\n typeMismatch: false,\n valid: true,\n valueMissing: false\n});\nvar valueMissingValidityState = Object.freeze(__spreadProps(__spreadValues({}, validValidityState), {\n valid: false,\n valueMissing: true\n}));\nvar customErrorValidityState = Object.freeze(__spreadProps(__spreadValues({}, validValidityState), {\n valid: false,\n customError: true\n}));\n\nexport {\n formCollections,\n FormControlController,\n validValidityState,\n valueMissingValidityState,\n customErrorValidityState\n};\n","// src/components/button/button.styles.ts\nimport { css } from \"lit\";\nvar button_styles_default = css`\n :host {\n display: inline-block;\n position: relative;\n width: auto;\n cursor: pointer;\n }\n\n .button {\n display: inline-flex;\n align-items: stretch;\n justify-content: center;\n width: 100%;\n border-style: solid;\n border-width: var(--sl-input-border-width);\n font-family: var(--sl-input-font-family);\n font-weight: var(--sl-font-weight-semibold);\n text-decoration: none;\n user-select: none;\n -webkit-user-select: none;\n white-space: nowrap;\n vertical-align: middle;\n padding: 0;\n transition:\n var(--sl-transition-x-fast) background-color,\n var(--sl-transition-x-fast) color,\n var(--sl-transition-x-fast) border,\n var(--sl-transition-x-fast) box-shadow;\n cursor: inherit;\n }\n\n .button::-moz-focus-inner {\n border: 0;\n }\n\n .button:focus {\n outline: none;\n }\n\n .button:focus-visible {\n outline: var(--sl-focus-ring);\n outline-offset: var(--sl-focus-ring-offset);\n }\n\n .button--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n /* When disabled, prevent mouse events from bubbling up from children */\n .button--disabled * {\n pointer-events: none;\n }\n\n .button__prefix,\n .button__suffix {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n pointer-events: none;\n }\n\n .button__label {\n display: inline-block;\n }\n\n .button__label::slotted(sl-icon) {\n vertical-align: -2px;\n }\n\n /*\n * Standard buttons\n */\n\n /* Default */\n .button--standard.button--default {\n background-color: var(--sl-color-neutral-0);\n border-color: var(--sl-input-border-color);\n color: var(--sl-color-neutral-700);\n }\n\n .button--standard.button--default:hover:not(.button--disabled) {\n background-color: var(--sl-color-primary-50);\n border-color: var(--sl-color-primary-300);\n color: var(--sl-color-primary-700);\n }\n\n .button--standard.button--default:active:not(.button--disabled) {\n background-color: var(--sl-color-primary-100);\n border-color: var(--sl-color-primary-400);\n color: var(--sl-color-primary-700);\n }\n\n /* Primary */\n .button--standard.button--primary {\n background-color: var(--sl-color-primary-600);\n border-color: var(--sl-color-primary-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--standard.button--primary:hover:not(.button--disabled) {\n background-color: var(--sl-color-primary-500);\n border-color: var(--sl-color-primary-500);\n color: var(--sl-color-neutral-0);\n }\n\n .button--standard.button--primary:active:not(.button--disabled) {\n background-color: var(--sl-color-primary-600);\n border-color: var(--sl-color-primary-600);\n color: var(--sl-color-neutral-0);\n }\n\n /* Success */\n .button--standard.button--success {\n background-color: var(--sl-color-success-600);\n border-color: var(--sl-color-success-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--standard.button--success:hover:not(.button--disabled) {\n background-color: var(--sl-color-success-500);\n border-color: var(--sl-color-success-500);\n color: var(--sl-color-neutral-0);\n }\n\n .button--standard.button--success:active:not(.button--disabled) {\n background-color: var(--sl-color-success-600);\n border-color: var(--sl-color-success-600);\n color: var(--sl-color-neutral-0);\n }\n\n /* Neutral */\n .button--standard.button--neutral {\n background-color: var(--sl-color-neutral-600);\n border-color: var(--sl-color-neutral-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--standard.button--neutral:hover:not(.button--disabled) {\n background-color: var(--sl-color-neutral-500);\n border-color: var(--sl-color-neutral-500);\n color: var(--sl-color-neutral-0);\n }\n\n .button--standard.button--neutral:active:not(.button--disabled) {\n background-color: var(--sl-color-neutral-600);\n border-color: var(--sl-color-neutral-600);\n color: var(--sl-color-neutral-0);\n }\n\n /* Warning */\n .button--standard.button--warning {\n background-color: var(--sl-color-warning-600);\n border-color: var(--sl-color-warning-600);\n color: var(--sl-color-neutral-0);\n }\n .button--standard.button--warning:hover:not(.button--disabled) {\n background-color: var(--sl-color-warning-500);\n border-color: var(--sl-color-warning-500);\n color: var(--sl-color-neutral-0);\n }\n\n .button--standard.button--warning:active:not(.button--disabled) {\n background-color: var(--sl-color-warning-600);\n border-color: var(--sl-color-warning-600);\n color: var(--sl-color-neutral-0);\n }\n\n /* Danger */\n .button--standard.button--danger {\n background-color: var(--sl-color-danger-600);\n border-color: var(--sl-color-danger-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--standard.button--danger:hover:not(.button--disabled) {\n background-color: var(--sl-color-danger-500);\n border-color: var(--sl-color-danger-500);\n color: var(--sl-color-neutral-0);\n }\n\n .button--standard.button--danger:active:not(.button--disabled) {\n background-color: var(--sl-color-danger-600);\n border-color: var(--sl-color-danger-600);\n color: var(--sl-color-neutral-0);\n }\n\n /*\n * Outline buttons\n */\n\n .button--outline {\n background: none;\n border: solid 1px;\n }\n\n /* Default */\n .button--outline.button--default {\n border-color: var(--sl-input-border-color);\n color: var(--sl-color-neutral-700);\n }\n\n .button--outline.button--default:hover:not(.button--disabled),\n .button--outline.button--default.button--checked:not(.button--disabled) {\n border-color: var(--sl-color-primary-600);\n background-color: var(--sl-color-primary-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--outline.button--default:active:not(.button--disabled) {\n border-color: var(--sl-color-primary-700);\n background-color: var(--sl-color-primary-700);\n color: var(--sl-color-neutral-0);\n }\n\n /* Primary */\n .button--outline.button--primary {\n border-color: var(--sl-color-primary-600);\n color: var(--sl-color-primary-600);\n }\n\n .button--outline.button--primary:hover:not(.button--disabled),\n .button--outline.button--primary.button--checked:not(.button--disabled) {\n background-color: var(--sl-color-primary-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--outline.button--primary:active:not(.button--disabled) {\n border-color: var(--sl-color-primary-700);\n background-color: var(--sl-color-primary-700);\n color: var(--sl-color-neutral-0);\n }\n\n /* Success */\n .button--outline.button--success {\n border-color: var(--sl-color-success-600);\n color: var(--sl-color-success-600);\n }\n\n .button--outline.button--success:hover:not(.button--disabled),\n .button--outline.button--success.button--checked:not(.button--disabled) {\n background-color: var(--sl-color-success-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--outline.button--success:active:not(.button--disabled) {\n border-color: var(--sl-color-success-700);\n background-color: var(--sl-color-success-700);\n color: var(--sl-color-neutral-0);\n }\n\n /* Neutral */\n .button--outline.button--neutral {\n border-color: var(--sl-color-neutral-600);\n color: var(--sl-color-neutral-600);\n }\n\n .button--outline.button--neutral:hover:not(.button--disabled),\n .button--outline.button--neutral.button--checked:not(.button--disabled) {\n background-color: var(--sl-color-neutral-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--outline.button--neutral:active:not(.button--disabled) {\n border-color: var(--sl-color-neutral-700);\n background-color: var(--sl-color-neutral-700);\n color: var(--sl-color-neutral-0);\n }\n\n /* Warning */\n .button--outline.button--warning {\n border-color: var(--sl-color-warning-600);\n color: var(--sl-color-warning-600);\n }\n\n .button--outline.button--warning:hover:not(.button--disabled),\n .button--outline.button--warning.button--checked:not(.button--disabled) {\n background-color: var(--sl-color-warning-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--outline.button--warning:active:not(.button--disabled) {\n border-color: var(--sl-color-warning-700);\n background-color: var(--sl-color-warning-700);\n color: var(--sl-color-neutral-0);\n }\n\n /* Danger */\n .button--outline.button--danger {\n border-color: var(--sl-color-danger-600);\n color: var(--sl-color-danger-600);\n }\n\n .button--outline.button--danger:hover:not(.button--disabled),\n .button--outline.button--danger.button--checked:not(.button--disabled) {\n background-color: var(--sl-color-danger-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--outline.button--danger:active:not(.button--disabled) {\n border-color: var(--sl-color-danger-700);\n background-color: var(--sl-color-danger-700);\n color: var(--sl-color-neutral-0);\n }\n\n @media (forced-colors: active) {\n .button.button--outline.button--checked:not(.button--disabled) {\n outline: solid 2px transparent;\n }\n }\n\n /*\n * Text buttons\n */\n\n .button--text {\n background-color: transparent;\n border-color: transparent;\n color: var(--sl-color-primary-600);\n }\n\n .button--text:hover:not(.button--disabled) {\n background-color: transparent;\n border-color: transparent;\n color: var(--sl-color-primary-500);\n }\n\n .button--text:focus-visible:not(.button--disabled) {\n background-color: transparent;\n border-color: transparent;\n color: var(--sl-color-primary-500);\n }\n\n .button--text:active:not(.button--disabled) {\n background-color: transparent;\n border-color: transparent;\n color: var(--sl-color-primary-700);\n }\n\n /*\n * Size modifiers\n */\n\n .button--small {\n height: auto;\n min-height: var(--sl-input-height-small);\n font-size: var(--sl-button-font-size-small);\n line-height: calc(var(--sl-input-height-small) - var(--sl-input-border-width) * 2);\n border-radius: var(--sl-input-border-radius-small);\n }\n\n .button--medium {\n height: auto;\n min-height: var(--sl-input-height-medium);\n font-size: var(--sl-button-font-size-medium);\n line-height: calc(var(--sl-input-height-medium) - var(--sl-input-border-width) * 2);\n border-radius: var(--sl-input-border-radius-medium);\n }\n\n .button--large {\n height: auto;\n min-height: var(--sl-input-height-large);\n font-size: var(--sl-button-font-size-large);\n line-height: calc(var(--sl-input-height-large) - var(--sl-input-border-width) * 2);\n border-radius: var(--sl-input-border-radius-large);\n }\n\n /*\n * Pill modifier\n */\n\n .button--pill.button--small {\n border-radius: var(--sl-input-height-small);\n }\n\n .button--pill.button--medium {\n border-radius: var(--sl-input-height-medium);\n }\n\n .button--pill.button--large {\n border-radius: var(--sl-input-height-large);\n }\n\n /*\n * Circle modifier\n */\n\n .button--circle {\n padding-left: 0;\n padding-right: 0;\n }\n\n .button--circle.button--small {\n width: var(--sl-input-height-small);\n border-radius: 50%;\n }\n\n .button--circle.button--medium {\n width: var(--sl-input-height-medium);\n border-radius: 50%;\n }\n\n .button--circle.button--large {\n width: var(--sl-input-height-large);\n border-radius: 50%;\n }\n\n .button--circle .button__prefix,\n .button--circle .button__suffix,\n .button--circle .button__caret {\n display: none;\n }\n\n /*\n * Caret modifier\n */\n\n .button--caret .button__suffix {\n display: none;\n }\n\n .button--caret .button__caret {\n height: auto;\n }\n\n /*\n * Loading modifier\n */\n\n .button--loading {\n position: relative;\n cursor: wait;\n }\n\n .button--loading .button__prefix,\n .button--loading .button__label,\n .button--loading .button__suffix,\n .button--loading .button__caret {\n visibility: hidden;\n }\n\n .button--loading sl-spinner {\n --indicator-color: currentColor;\n position: absolute;\n font-size: 1em;\n height: 1em;\n width: 1em;\n top: calc(50% - 0.5em);\n left: calc(50% - 0.5em);\n }\n\n /*\n * Badges\n */\n\n .button ::slotted(sl-badge) {\n position: absolute;\n top: 0;\n right: 0;\n translate: 50% -50%;\n pointer-events: none;\n }\n\n .button--rtl ::slotted(sl-badge) {\n right: auto;\n left: 0;\n translate: -50% -50%;\n }\n\n /*\n * Button spacing\n */\n\n .button--has-label.button--small .button__label {\n padding: 0 var(--sl-spacing-small);\n }\n\n .button--has-label.button--medium .button__label {\n padding: 0 var(--sl-spacing-medium);\n }\n\n .button--has-label.button--large .button__label {\n padding: 0 var(--sl-spacing-large);\n }\n\n .button--has-prefix.button--small {\n padding-inline-start: var(--sl-spacing-x-small);\n }\n\n .button--has-prefix.button--small .button__label {\n padding-inline-start: var(--sl-spacing-x-small);\n }\n\n .button--has-prefix.button--medium {\n padding-inline-start: var(--sl-spacing-small);\n }\n\n .button--has-prefix.button--medium .button__label {\n padding-inline-start: var(--sl-spacing-small);\n }\n\n .button--has-prefix.button--large {\n padding-inline-start: var(--sl-spacing-small);\n }\n\n .button--has-prefix.button--large .button__label {\n padding-inline-start: var(--sl-spacing-small);\n }\n\n .button--has-suffix.button--small,\n .button--caret.button--small {\n padding-inline-end: var(--sl-spacing-x-small);\n }\n\n .button--has-suffix.button--small .button__label,\n .button--caret.button--small .button__label {\n padding-inline-end: var(--sl-spacing-x-small);\n }\n\n .button--has-suffix.button--medium,\n .button--caret.button--medium {\n padding-inline-end: var(--sl-spacing-small);\n }\n\n .button--has-suffix.button--medium .button__label,\n .button--caret.button--medium .button__label {\n padding-inline-end: var(--sl-spacing-small);\n }\n\n .button--has-suffix.button--large,\n .button--caret.button--large {\n padding-inline-end: var(--sl-spacing-small);\n }\n\n .button--has-suffix.button--large .button__label,\n .button--caret.button--large .button__label {\n padding-inline-end: var(--sl-spacing-small);\n }\n\n /*\n * Button groups support a variety of button types (e.g. buttons with tooltips, buttons as dropdown triggers, etc.).\n * This means buttons aren't always direct descendants of the button group, thus we can't target them with the\n * ::slotted selector. To work around this, the button group component does some magic to add these special classes to\n * buttons and we style them here instead.\n */\n\n :host([data-sl-button-group__button--first]:not([data-sl-button-group__button--last])) .button {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n\n :host([data-sl-button-group__button--inner]) .button {\n border-radius: 0;\n }\n\n :host([data-sl-button-group__button--last]:not([data-sl-button-group__button--first])) .button {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n\n /* All except the first */\n :host([data-sl-button-group__button]:not([data-sl-button-group__button--first])) {\n margin-inline-start: calc(-1 * var(--sl-input-border-width));\n }\n\n /* Add a visual separator between solid buttons */\n :host(\n [data-sl-button-group__button]:not(\n [data-sl-button-group__button--first],\n [data-sl-button-group__button--radio],\n [variant='default']\n ):not(:hover)\n )\n .button:after {\n content: '';\n position: absolute;\n top: 0;\n inset-inline-start: 0;\n bottom: 0;\n border-left: solid 1px rgb(128 128 128 / 33%);\n mix-blend-mode: multiply;\n }\n\n /* Bump hovered, focused, and checked buttons up so their focus ring isn't clipped */\n :host([data-sl-button-group__button--hover]) {\n z-index: 1;\n }\n\n /* Focus and checked are always on top */\n :host([data-sl-button-group__button--focus]),\n :host([data-sl-button-group__button][checked]) {\n z-index: 2;\n }\n`;\n\nexport {\n button_styles_default\n};\n","import {\n getBasePath\n} from \"./chunk.3Y6SB6QS.js\";\n\n// src/components/icon/library.default.ts\nvar library = {\n name: \"default\",\n resolver: (name) => getBasePath(`assets/icons/${name}.svg`)\n};\nvar library_default_default = library;\n\nexport {\n library_default_default\n};\n","// src/components/icon/library.system.ts\nvar icons = {\n caret: `\n \n \n \n `,\n check: `\n \n \n \n \n \n \n \n \n \n \n `,\n \"chevron-down\": `\n \n \n \n `,\n \"chevron-left\": `\n \n \n \n `,\n \"chevron-right\": `\n \n \n \n `,\n copy: `\n \n \n \n `,\n eye: `\n \n \n \n \n `,\n \"eye-slash\": `\n \n \n \n \n \n `,\n eyedropper: `\n \n \n \n `,\n \"grip-vertical\": `\n \n \n \n `,\n indeterminate: `\n \n \n \n \n \n \n \n \n \n `,\n \"person-fill\": `\n \n \n \n `,\n \"play-fill\": `\n \n \n \n `,\n \"pause-fill\": `\n \n \n \n `,\n radio: `\n \n \n \n \n \n \n \n `,\n \"star-fill\": `\n \n \n \n `,\n \"x-lg\": `\n \n \n \n `,\n \"x-circle-fill\": `\n \n \n \n `\n};\nvar systemLibrary = {\n name: \"system\",\n resolver: (name) => {\n if (name in icons) {\n return `data:image/svg+xml,${encodeURIComponent(icons[name])}`;\n }\n return \"\";\n }\n};\nvar library_system_default = systemLibrary;\n\nexport {\n library_system_default\n};\n","import {\n library_default_default\n} from \"./chunk.P7ZG6EMR.js\";\nimport {\n library_system_default\n} from \"./chunk.3TFKS637.js\";\n\n// src/components/icon/library.ts\nvar registry = [library_default_default, library_system_default];\nvar watchedIcons = [];\nfunction watchIcon(icon) {\n watchedIcons.push(icon);\n}\nfunction unwatchIcon(icon) {\n watchedIcons = watchedIcons.filter((el) => el !== icon);\n}\nfunction getIconLibrary(name) {\n return registry.find((lib) => lib.name === name);\n}\nfunction registerIconLibrary(name, options) {\n unregisterIconLibrary(name);\n registry.push({\n name,\n resolver: options.resolver,\n mutator: options.mutator,\n spriteSheet: options.spriteSheet\n });\n watchedIcons.forEach((icon) => {\n if (icon.library === name) {\n icon.setIcon();\n }\n });\n}\nfunction unregisterIconLibrary(name) {\n registry = registry.filter((lib) => lib.name !== name);\n}\n\nexport {\n watchIcon,\n unwatchIcon,\n getIconLibrary,\n registerIconLibrary,\n unregisterIconLibrary\n};\n","// src/components/icon/icon.styles.ts\nimport { css } from \"lit\";\nvar icon_styles_default = css`\n :host {\n display: inline-block;\n width: 1em;\n height: 1em;\n box-sizing: content-box !important;\n }\n\n svg {\n display: block;\n height: 100%;\n width: 100%;\n }\n`;\n\nexport {\n icon_styles_default\n};\n","import {\n __spreadValues\n} from \"./chunk.B3BW2AY6.js\";\n\n// src/internal/watch.ts\nfunction watch(propertyName, options) {\n const resolvedOptions = __spreadValues({\n waitUntilFirstUpdate: false\n }, options);\n return (proto, decoratedFnName) => {\n const { update } = proto;\n const watchedProperties = Array.isArray(propertyName) ? propertyName : [propertyName];\n proto.update = function(changedProps) {\n watchedProperties.forEach((property) => {\n const key = property;\n if (changedProps.has(key)) {\n const oldValue = changedProps.get(key);\n const newValue = this[key];\n if (oldValue !== newValue) {\n if (!resolvedOptions.waitUntilFirstUpdate || this.hasUpdated) {\n this[decoratedFnName](oldValue, newValue);\n }\n }\n }\n });\n update.call(this, changedProps);\n };\n };\n}\n\nexport {\n watch\n};\n","import{_$LH as o}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{I:t}=o,i=o=>null===o||\"object\"!=typeof o&&\"function\"!=typeof o,n={HTML:1,SVG:2,MATHML:3},e=(o,t)=>void 0===t?void 0!==o?._$litType$:o?._$litType$===t,l=o=>null!=o?._$litType$?.h,c=o=>void 0!==o?._$litDirective$,d=o=>o?._$litDirective$,f=o=>void 0===o.strings,s=()=>document.createComment(\"\"),r=(o,i,n)=>{const e=o._$AA.parentNode,l=void 0===i?o._$AB:i._$AA;if(void 0===n){const i=e.insertBefore(s(),l),c=e.insertBefore(s(),l);n=new t(i,c,o,o.options)}else{const t=n._$AB.nextSibling,i=n._$AM,c=i!==o;if(c){let t;n._$AQ?.(o),n._$AM=o,void 0!==n._$AP&&(t=o._$AU)!==i._$AU&&n._$AP(t)}if(t!==l||c){let o=n._$AA;for(;o!==t;){const t=o.nextSibling;e.insertBefore(o,l),o=t}}}return n},v=(o,t,i=o)=>(o._$AI(t,i),o),u={},m=(o,t=u)=>o._$AH=t,p=o=>o._$AH,M=o=>{o._$AP?.(!1,!0);let t=o._$AA;const i=o._$AB.nextSibling;for(;t!==i;){const o=t.nextSibling;t.remove(),t=o}},h=o=>{o._$AR()};export{n as TemplateResultType,h as clearPart,p as getCommittedValue,d as getDirectiveClass,r as insertPart,l as isCompiledTemplateResult,c as isDirectiveResult,i as isPrimitive,f as isSingleExpression,e as isTemplateResult,M as removePart,v as setChildPartValue,m as setCommittedValue};\n//# sourceMappingURL=directive-helpers.js.map\n","import {\n getIconLibrary,\n unwatchIcon,\n watchIcon\n} from \"./chunk.ZL53POKZ.js\";\nimport {\n icon_styles_default\n} from \"./chunk.QLXRCYS4.js\";\nimport {\n watch\n} from \"./chunk.CCJUT23E.js\";\nimport {\n component_styles_default\n} from \"./chunk.TUVJKY7S.js\";\nimport {\n ShoelaceElement\n} from \"./chunk.UYAO2JRR.js\";\nimport {\n __decorateClass\n} from \"./chunk.B3BW2AY6.js\";\n\n// src/components/icon/icon.component.ts\nimport { html } from \"lit\";\nimport { isTemplateResult } from \"lit/directive-helpers.js\";\nimport { property, state } from \"lit/decorators.js\";\nvar CACHEABLE_ERROR = Symbol();\nvar RETRYABLE_ERROR = Symbol();\nvar parser;\nvar iconCache = /* @__PURE__ */ new Map();\nvar SlIcon = class extends ShoelaceElement {\n constructor() {\n super(...arguments);\n this.initialRender = false;\n this.svg = null;\n this.label = \"\";\n this.library = \"default\";\n }\n /** Given a URL, this function returns the resulting SVG element or an appropriate error symbol. */\n async resolveIcon(url, library) {\n var _a;\n let fileData;\n if (library == null ? void 0 : library.spriteSheet) {\n this.svg = html`\n \n `;\n return this.svg;\n }\n try {\n fileData = await fetch(url, { mode: \"cors\" });\n if (!fileData.ok)\n return fileData.status === 410 ? CACHEABLE_ERROR : RETRYABLE_ERROR;\n } catch (e) {\n return RETRYABLE_ERROR;\n }\n try {\n const div = document.createElement(\"div\");\n div.innerHTML = await fileData.text();\n const svg = div.firstElementChild;\n if (((_a = svg == null ? void 0 : svg.tagName) == null ? void 0 : _a.toLowerCase()) !== \"svg\")\n return CACHEABLE_ERROR;\n if (!parser)\n parser = new DOMParser();\n const doc = parser.parseFromString(svg.outerHTML, \"text/html\");\n const svgEl = doc.body.querySelector(\"svg\");\n if (!svgEl)\n return CACHEABLE_ERROR;\n svgEl.part.add(\"svg\");\n return document.adoptNode(svgEl);\n } catch (e) {\n return CACHEABLE_ERROR;\n }\n }\n connectedCallback() {\n super.connectedCallback();\n watchIcon(this);\n }\n firstUpdated() {\n this.initialRender = true;\n this.setIcon();\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n unwatchIcon(this);\n }\n getIconSource() {\n const library = getIconLibrary(this.library);\n if (this.name && library) {\n return {\n url: library.resolver(this.name),\n fromLibrary: true\n };\n }\n return {\n url: this.src,\n fromLibrary: false\n };\n }\n handleLabelChange() {\n const hasLabel = typeof this.label === \"string\" && this.label.length > 0;\n if (hasLabel) {\n this.setAttribute(\"role\", \"img\");\n this.setAttribute(\"aria-label\", this.label);\n this.removeAttribute(\"aria-hidden\");\n } else {\n this.removeAttribute(\"role\");\n this.removeAttribute(\"aria-label\");\n this.setAttribute(\"aria-hidden\", \"true\");\n }\n }\n async setIcon() {\n var _a;\n const { url, fromLibrary } = this.getIconSource();\n const library = fromLibrary ? getIconLibrary(this.library) : void 0;\n if (!url) {\n this.svg = null;\n return;\n }\n let iconResolver = iconCache.get(url);\n if (!iconResolver) {\n iconResolver = this.resolveIcon(url, library);\n iconCache.set(url, iconResolver);\n }\n if (!this.initialRender) {\n return;\n }\n const svg = await iconResolver;\n if (svg === RETRYABLE_ERROR) {\n iconCache.delete(url);\n }\n if (url !== this.getIconSource().url) {\n return;\n }\n if (isTemplateResult(svg)) {\n this.svg = svg;\n if (library) {\n await this.updateComplete;\n const shadowSVG = this.shadowRoot.querySelector(\"[part='svg']\");\n if (typeof library.mutator === \"function\" && shadowSVG) {\n library.mutator(shadowSVG);\n }\n }\n return;\n }\n switch (svg) {\n case RETRYABLE_ERROR:\n case CACHEABLE_ERROR:\n this.svg = null;\n this.emit(\"sl-error\");\n break;\n default:\n this.svg = svg.cloneNode(true);\n (_a = library == null ? void 0 : library.mutator) == null ? void 0 : _a.call(library, this.svg);\n this.emit(\"sl-load\");\n }\n }\n render() {\n return this.svg;\n }\n};\nSlIcon.styles = [component_styles_default, icon_styles_default];\n__decorateClass([\n state()\n], SlIcon.prototype, \"svg\", 2);\n__decorateClass([\n property({ reflect: true })\n], SlIcon.prototype, \"name\", 2);\n__decorateClass([\n property()\n], SlIcon.prototype, \"src\", 2);\n__decorateClass([\n property()\n], SlIcon.prototype, \"label\", 2);\n__decorateClass([\n property({ reflect: true })\n], SlIcon.prototype, \"library\", 2);\n__decorateClass([\n watch(\"label\")\n], SlIcon.prototype, \"handleLabelChange\", 1);\n__decorateClass([\n watch([\"name\", \"src\", \"library\"])\n], SlIcon.prototype, \"setIcon\", 1);\n\nexport {\n SlIcon\n};\n","import{html as t,svg as r,mathml as e}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst a=Symbol.for(\"\"),o=t=>{if(t?.r===a)return t?._$litStatic$},s=t=>({_$litStatic$:t,r:a}),i=(t,...r)=>({_$litStatic$:r.reduce(((r,e,a)=>r+(t=>{if(void 0!==t._$litStatic$)return t._$litStatic$;throw Error(`Value passed to 'literal' function must be a 'literal' result: ${t}. Use 'unsafeStatic' to pass non-literal values, but\\n take care to ensure page security.`)})(e)+t[a+1]),t[0]),r:a}),l=new Map,n=t=>(r,...e)=>{const a=e.length;let s,i;const n=[],u=[];let c,$=0,f=!1;for(;$o??t;export{o as ifDefined};\n//# sourceMappingURL=if-defined.js.map\n","import {\n SlSpinner\n} from \"./chunk.TLKDQ5JG.js\";\nimport {\n FormControlController,\n validValidityState\n} from \"./chunk.2RCF7SLU.js\";\nimport {\n button_styles_default\n} from \"./chunk.MAQXLKQ7.js\";\nimport {\n LocalizeController\n} from \"./chunk.WLV3FVBR.js\";\nimport {\n HasSlotController\n} from \"./chunk.NYIIDP5N.js\";\nimport {\n SlIcon\n} from \"./chunk.E6QAPUBK.js\";\nimport {\n watch\n} from \"./chunk.CCJUT23E.js\";\nimport {\n component_styles_default\n} from \"./chunk.TUVJKY7S.js\";\nimport {\n ShoelaceElement\n} from \"./chunk.UYAO2JRR.js\";\nimport {\n __decorateClass\n} from \"./chunk.B3BW2AY6.js\";\n\n// src/components/button/button.component.ts\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { html, literal } from \"lit/static-html.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { property, query, state } from \"lit/decorators.js\";\nvar SlButton = class extends ShoelaceElement {\n constructor() {\n super(...arguments);\n this.formControlController = new FormControlController(this, {\n assumeInteractionOn: [\"click\"]\n });\n this.hasSlotController = new HasSlotController(this, \"[default]\", \"prefix\", \"suffix\");\n this.localize = new LocalizeController(this);\n this.hasFocus = false;\n this.invalid = false;\n this.title = \"\";\n this.variant = \"default\";\n this.size = \"medium\";\n this.caret = false;\n this.disabled = false;\n this.loading = false;\n this.outline = false;\n this.pill = false;\n this.circle = false;\n this.type = \"button\";\n this.name = \"\";\n this.value = \"\";\n this.href = \"\";\n this.rel = \"noreferrer noopener\";\n }\n /** Gets the validity state object */\n get validity() {\n if (this.isButton()) {\n return this.button.validity;\n }\n return validValidityState;\n }\n /** Gets the validation message */\n get validationMessage() {\n if (this.isButton()) {\n return this.button.validationMessage;\n }\n return \"\";\n }\n firstUpdated() {\n if (this.isButton()) {\n this.formControlController.updateValidity();\n }\n }\n handleBlur() {\n this.hasFocus = false;\n this.emit(\"sl-blur\");\n }\n handleFocus() {\n this.hasFocus = true;\n this.emit(\"sl-focus\");\n }\n handleClick() {\n if (this.type === \"submit\") {\n this.formControlController.submit(this);\n }\n if (this.type === \"reset\") {\n this.formControlController.reset(this);\n }\n }\n handleInvalid(event) {\n this.formControlController.setValidity(false);\n this.formControlController.emitInvalidEvent(event);\n }\n isButton() {\n return this.href ? false : true;\n }\n isLink() {\n return this.href ? true : false;\n }\n handleDisabledChange() {\n if (this.isButton()) {\n this.formControlController.setValidity(this.disabled);\n }\n }\n /** Simulates a click on the button. */\n click() {\n this.button.click();\n }\n /** Sets focus on the button. */\n focus(options) {\n this.button.focus(options);\n }\n /** Removes focus from the button. */\n blur() {\n this.button.blur();\n }\n /** Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid. */\n checkValidity() {\n if (this.isButton()) {\n return this.button.checkValidity();\n }\n return true;\n }\n /** Gets the associated form, if one exists. */\n getForm() {\n return this.formControlController.getForm();\n }\n /** Checks for validity and shows the browser's validation message if the control is invalid. */\n reportValidity() {\n if (this.isButton()) {\n return this.button.reportValidity();\n }\n return true;\n }\n /** Sets a custom validation message. Pass an empty string to restore validity. */\n setCustomValidity(message) {\n if (this.isButton()) {\n this.button.setCustomValidity(message);\n this.formControlController.updateValidity();\n }\n }\n render() {\n const isLink = this.isLink();\n const tag = isLink ? literal`a` : literal`button`;\n return html`\n <${tag}\n part=\"base\"\n class=${classMap({\n button: true,\n \"button--default\": this.variant === \"default\",\n \"button--primary\": this.variant === \"primary\",\n \"button--success\": this.variant === \"success\",\n \"button--neutral\": this.variant === \"neutral\",\n \"button--warning\": this.variant === \"warning\",\n \"button--danger\": this.variant === \"danger\",\n \"button--text\": this.variant === \"text\",\n \"button--small\": this.size === \"small\",\n \"button--medium\": this.size === \"medium\",\n \"button--large\": this.size === \"large\",\n \"button--caret\": this.caret,\n \"button--circle\": this.circle,\n \"button--disabled\": this.disabled,\n \"button--focused\": this.hasFocus,\n \"button--loading\": this.loading,\n \"button--standard\": !this.outline,\n \"button--outline\": this.outline,\n \"button--pill\": this.pill,\n \"button--rtl\": this.localize.dir() === \"rtl\",\n \"button--has-label\": this.hasSlotController.test(\"[default]\"),\n \"button--has-prefix\": this.hasSlotController.test(\"prefix\"),\n \"button--has-suffix\": this.hasSlotController.test(\"suffix\")\n })}\n ?disabled=${ifDefined(isLink ? void 0 : this.disabled)}\n type=${ifDefined(isLink ? void 0 : this.type)}\n title=${this.title}\n name=${ifDefined(isLink ? void 0 : this.name)}\n value=${ifDefined(isLink ? void 0 : this.value)}\n href=${ifDefined(isLink && !this.disabled ? this.href : void 0)}\n target=${ifDefined(isLink ? this.target : void 0)}\n download=${ifDefined(isLink ? this.download : void 0)}\n rel=${ifDefined(isLink ? this.rel : void 0)}\n role=${ifDefined(isLink ? void 0 : \"button\")}\n aria-disabled=${this.disabled ? \"true\" : \"false\"}\n tabindex=${this.disabled ? \"-1\" : \"0\"}\n @blur=${this.handleBlur}\n @focus=${this.handleFocus}\n @invalid=${this.isButton() ? this.handleInvalid : null}\n @click=${this.handleClick}\n >\n \n \n \n ${this.caret ? html` ` : \"\"}\n ${this.loading ? html`` : \"\"}\n \n `;\n }\n};\nSlButton.styles = [component_styles_default, button_styles_default];\nSlButton.dependencies = {\n \"sl-icon\": SlIcon,\n \"sl-spinner\": SlSpinner\n};\n__decorateClass([\n query(\".button\")\n], SlButton.prototype, \"button\", 2);\n__decorateClass([\n state()\n], SlButton.prototype, \"hasFocus\", 2);\n__decorateClass([\n state()\n], SlButton.prototype, \"invalid\", 2);\n__decorateClass([\n property()\n], SlButton.prototype, \"title\", 2);\n__decorateClass([\n property({ reflect: true })\n], SlButton.prototype, \"variant\", 2);\n__decorateClass([\n property({ reflect: true })\n], SlButton.prototype, \"size\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlButton.prototype, \"caret\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlButton.prototype, \"disabled\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlButton.prototype, \"loading\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlButton.prototype, \"outline\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlButton.prototype, \"pill\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlButton.prototype, \"circle\", 2);\n__decorateClass([\n property()\n], SlButton.prototype, \"type\", 2);\n__decorateClass([\n property()\n], SlButton.prototype, \"name\", 2);\n__decorateClass([\n property()\n], SlButton.prototype, \"value\", 2);\n__decorateClass([\n property()\n], SlButton.prototype, \"href\", 2);\n__decorateClass([\n property()\n], SlButton.prototype, \"target\", 2);\n__decorateClass([\n property()\n], SlButton.prototype, \"rel\", 2);\n__decorateClass([\n property()\n], SlButton.prototype, \"download\", 2);\n__decorateClass([\n property()\n], SlButton.prototype, \"form\", 2);\n__decorateClass([\n property({ attribute: \"formaction\" })\n], SlButton.prototype, \"formAction\", 2);\n__decorateClass([\n property({ attribute: \"formenctype\" })\n], SlButton.prototype, \"formEnctype\", 2);\n__decorateClass([\n property({ attribute: \"formmethod\" })\n], SlButton.prototype, \"formMethod\", 2);\n__decorateClass([\n property({ attribute: \"formnovalidate\", type: Boolean })\n], SlButton.prototype, \"formNoValidate\", 2);\n__decorateClass([\n property({ attribute: \"formtarget\" })\n], SlButton.prototype, \"formTarget\", 2);\n__decorateClass([\n watch(\"disabled\", { waitUntilFirstUpdate: true })\n], SlButton.prototype, \"handleDisabledChange\", 1);\n\nexport {\n SlButton\n};\n","import {\n SlButton\n} from \"./chunk.N2SNE3QN.js\";\n\n// src/components/button/button.ts\nvar button_default = SlButton;\nSlButton.define(\"sl-button\");\n\nexport {\n button_default\n};\n","import { css } from 'lit';\n\n// these styles can be imported from any component\n// for an example of how to use this, check /pages/about-about.ts\nexport const styles = css`\n @media(min-width: 1000px) {\n sl-card {\n max-width: 70vw;\n }\n }\n\n main {\n margin-top: 70px;\n padding: 12px;\n }\n\n.ProseMirror {\n position: relative;\n word-wrap: break-word;\n white-space: pre-wrap;\n -webkit-font-variant-ligatures: none;\n font-variant-ligatures: none;\n padding: 1rem;\n line-height: 1.2;\n outline: none;\n font-family: var(\n --markdown-editor-typography-font-family,\n var(--mdc-typography-font-family, Montserrat, sans-serif)\n );\n font-size: var(\n --markdown-editor-typography-font-size,\n var(--mdc-typography-subtitle1-font-size, 1rem)\n );\n font-weight: var(\n --markdown-editor-typography-font-weight,\n var(--mdc-typography-subtitle1-font-weight, 400)\n );\n letter-spacing: var(\n --markdown-editor-typography-letter-spacing,\n var(--mdc-typography-subtitle1-letter-spacing, 0.009375em)\n );\n }\n\n .ProseMirror pre {\n white-space: pre-wrap;\n }\n\n .ProseMirror li {\n position: relative;\n }\n\n .ProseMirror p:first-child,\n .ProseMirror h1:first-child,\n .ProseMirror h2:first-child,\n .ProseMirror h3:first-child,\n .ProseMirror h4:first-child,\n .ProseMirror h5:first-child,\n .ProseMirror h6:first-child {\n margin-top: 10px;\n }\n\n .ProseMirror a {\n color: var(--markdown-editor-typography-anchor-color, -webkit-link);\n text-decoration: var(--markdown-editor-typography-anchor-text-decoration);\n }\n\n .ProseMirror p {\n margin-bottom: 1em;\n }\n\n .ProseMirror-hideselection {\n caret-color: transparent;\n }\n\n .ProseMirror-hideselection *::selection,\n .ProseMirror-hideselection *::-moz-selection {\n background: transparent;\n }\n\n .ProseMirror-selectednode {\n outline: 2px solid #8cf;\n }\n\n /* Make sure li selections wrap around markers */\n li.ProseMirror-selectednode {\n outline: none;\n }\n\n li.ProseMirror-selectednode:after {\n content: '';\n position: absolute;\n left: -32px;\n right: -2px;\n top: -2px;\n bottom: -2px;\n border: 2px solid #8cf;\n pointer-events: none;\n }\n\n .ProseMirror-textblock-dropdown {\n min-width: 3em;\n }\n\n .ProseMirror-menu {\n margin: 0 -4px;\n line-height: 1;\n }\n\n .ProseMirror-tooltip .ProseMirror-menu {\n width: -webkit-fit-content;\n width: fit-content;\n white-space: pre;\n }\n\n .ProseMirror-menuitem {\n margin: 0.25rem 0.25rem 0.25rem 0;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 4px;\n overflow: hidden;\n }\n .ProseMirror-menuitem:hover {\n background-color: #f5f5f5;\n }\n\n .ProseMirror-menuseparator {\n margin: 0 8px;\n }\n\n .ProseMirror-menu-dropdown,\n .ProseMirror-menu-dropdown-menu {\n font-size: 90%;\n white-space: nowrap;\n }\n\n .ProseMirror-menu-dropdown {\n vertical-align: 1px;\n cursor: pointer;\n position: relative;\n padding-right: 15px;\n }\n\n .ProseMirror-menu-dropdown-wrap {\n padding: 1px 0 1px 4px;\n display: inline-block;\n position: relative;\n }\n\n .ProseMirror-menu-dropdown:after {\n content: '';\n border-left: 4px solid transparent;\n border-right: 4px solid transparent;\n border-top: 4px solid currentColor;\n opacity: 0.6;\n position: absolute;\n right: 4px;\n top: calc(50% - 2px);\n }\n\n .ProseMirror-menu-dropdown-menu,\n .ProseMirror-menu-submenu {\n position: absolute;\n background: white;\n color: #666;\n border: 1px solid #aaa;\n padding: 2px;\n }\n\n .ProseMirror-menu-dropdown-menu {\n z-index: 1;\n min-width: 6em;\n }\n\n .ProseMirror-menu-dropdown-item {\n cursor: pointer;\n }\n\n .ProseMirror-menu-dropdown-item:hover {\n background: #f2f2f2;\n }\n\n .ProseMirror-menu-dropdown-item > div {\n padding: 0.375rem 0.5rem;\n }\n\n .ProseMirror-menu-submenu-wrap {\n position: relative;\n margin-right: -4px;\n }\n\n .ProseMirror-menu-submenu-label:after {\n content: '';\n border-top: 4px solid transparent;\n border-bottom: 4px solid transparent;\n border-left: 4px solid currentColor;\n opacity: 0.6;\n position: absolute;\n right: 4px;\n top: calc(50% - 4px);\n }\n\n .ProseMirror-menu-submenu {\n display: none;\n min-width: 4em;\n left: 100%;\n top: -3px;\n }\n\n .ProseMirror-menu-active {\n background: #eee;\n border-radius: 4px;\n color: black;\n }\n\n .ProseMirror-menu-submenu-wrap:hover .ProseMirror-menu-submenu,\n .ProseMirror-menu-submenu-wrap-active .ProseMirror-menu-submenu {\n display: block;\n }\n\n .ProseMirror-menubar {\n display: flex;\n flex-wrap: wrap;\n position: relative;\n background: white;\n min-height: 1em;\n overflow: visible;\n z-index: 2;\n top: 0;\n left: 0;\n right: 0;\n color: #666;\n padding: 1px 6px;\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n border-bottom: 1px solid\n var(--markdown-editor-outline-idle-border-color, rgba(0, 0, 0, 0.38));\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n }\n\n .ProseMirror-icon {\n display: inline-block;\n line-height: 0.8;\n vertical-align: -2px;\n /* Compensate for padding */\n padding: 2px 8px;\n cursor: pointer;\n }\n\n .ProseMirror-menu-disabled {\n color: rgba(0,0,0,0.37);\n background-color: rgba(0,0,0,0.12);\n cursor: not-allowed;\n }\n\n .ProseMirror-menu-disabled.ProseMirror-icon {\n cursor: not-allowed;\n }\n\n .ProseMirror-icon svg {\n fill: currentColor;\n height: 1em;\n }\n\n .ProseMirror-icon span {\n vertical-align: text-top;\n }\n\n .ProseMirror-gapcursor {\n display: none;\n pointer-events: none;\n position: absolute;\n }\n\n .ProseMirror-gapcursor:after {\n content: '';\n display: block;\n position: absolute;\n top: -2px;\n width: 20px;\n border-top: 1px solid black;\n animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;\n }\n\n @keyframes ProseMirror-cursor-blink {\n to {\n visibility: hidden;\n }\n }\n\n .ProseMirror-focused .ProseMirror-gapcursor {\n display: block;\n }\n\n /* Add space around the hr to make clicking it easier */\n .ProseMirror-example-setup-style hr {\n padding: 2px 10px;\n border: none;\n margin: 1em 0;\n }\n\n .ProseMirror-example-setup-style hr:after {\n content: '';\n display: block;\n height: 1px;\n background-color: silver;\n line-height: 2px;\n }\n\n .ProseMirror ul,\n .ProseMirror ol {\n padding-left: 30px;\n }\n\n .ProseMirror blockquote {\n padding-left: 1em;\n border-left: 3px solid #eee;\n margin-left: 0;\n margin-right: 0;\n }\n\n .ProseMirror-example-setup-style img {\n cursor: default;\n }\n\n .ProseMirror-invalid {\n background: #ffc;\n border: 1px solid #cc7;\n border-radius: 4px;\n padding: 5px 10px;\n position: absolute;\n min-width: 10em;\n }\n\n .ProseMirror h1.title.empty-node::before,\n .ProseMirror h2.instructional-prompt.empty-node::before,\n .ProseMirror h3.mechanical-promp.empty-node::before {\n content: 'Enter title here...';\n }\n\n .ProseMirror div.passage-subtitle.empty-node:first-child::before {\n content: 'Enter subtitle here...';\n }\n\n .ProseMirror div.passage-author.empty-node:first-child::before,\n .ProseMirror div.passage-cast-title.empty-node:first-child::before,\n .ProseMirror div.passage-act-title.empty-node:first-child::before,\n .ProseMirror div.passage-scene-title.empty-node:first-child::before,\n .ProseMirror div.passage-verse.empty-node:first-child::before,\n .ProseMirror div.passage-footnotes.empty-node:first-child::before,\n .ProseMirror div.paragraph.empty-node:first-child::before {\n content: 'Enter text here...';\n }\n\n div[contenteditable]:focus h1.title.empty-node::before,\n div[contenteditable]:focus h2.instructional-prompt.empty-node::before,\n div[contenteditable]:focus h3.mechanical-promp.empty-node::before,\n div[contenteditable]:focus\n div.passage-subtitle.empty-node:first-child::before,\n div[contenteditable]:focus div.passage-author.empty-node:first-child::before,\n div[contenteditable]:focus\n div.passage-cast-title.empty-node:first-child::before,\n div[contenteditable]:focus\n div.passage-act-title.empty-node:first-child::before,\n div[contenteditable]:focus\n div.passage-scene-title.empty-node:first-child::before,\n div[contenteditable]:focus div.passage-verse.empty-node:first-child::before,\n div[contenteditable]:focus\n div.passage-footnotes.empty-node:first-child::before,\n div[contenteditable]:focus div.paragraph.empty-node:first-child::before {\n content: '';\n }\n\n .ProseMirror .empty-node::before {\n position: absolute;\n color: #aaa;\n cursor: text;\n font-style: italic;\n }\n\n #editor, .editor {\n background: white;\n color: black;\n background-clip: padding-box;\n padding: 5px 0;\n }\n\n #editor[disabled] .ProseMirror-menubar {\n display: none!important;\n }\n\n drop-down-editor rich-text .inline-component-button,\n expand-collapse rich-text .inline-component-button,\n flip-reveal rich-text .inline-component-button,\n hint-list rich-text .inline-component-button,\n option-list rich-text .inline-component-button,\n plankton-passage rich-text .inline-component-button {\n pointer-events: none;\n color: lightgray;\n }\n\n #ProseMirror-icon-collection path {\n fill-rule: evenodd;\n }\n #welcomeBar {\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n }\n\n #welcomeCard,\n #infoCard {\n padding: 18px;\n padding-top: 0px;\n }\n\n sl-card::part(footer) {\n display: flex;\n justify-content: flex-end;\n }\n\n @media(min-width: 750px) {\n sl-card {\n width: 70vw;\n }\n }\n\n @media (horizontal-viewport-segments: 2) {\n #welcomeBar {\n flex-direction: row;\n align-items: flex-start;\n justify-content: space-between;\n }\n\n\n\n\n @media (horizontal-viewport-segments: 2) {\n #welcomeBar {\n flex-direction: row;\n align-items: flex-start;\n justify-content: space-between;\n }\n\n\n }\n .boring {\n background: grey;\n }\n\n .plus {\n position: absolute;\n\n padding: 8px;\n background-color: #4CAF50;\n color: red;\n border: none;\n cursor: pointer;\n}\n\n.plus:hover {\n background-color: #45a049;\n}\n\n.ProseMirror-textblock-dropdown {\n min-width: 3em;\n}\n}`","import { LitElement, css, html } from 'lit';\nimport { property, customElement } from 'lit/decorators.js';\nimport { Relay } from 'nostr-tools';\n\nimport '@shoelace-style/shoelace/dist/components/card/card.js';\nimport '@shoelace-style/shoelace/dist/components/button/button.js';\n\nimport { styles } from '../styles/shared-styles';\n\n\n\n\n@customElement('note-wall')\nexport class NoteWall extends LitElement {\n\n@property({ type: Array }) notes: { content: string; date: string }[] = [];\n@property({ type: String }) relayName: string = '';\n\n\nnote = ''; // store notes\n\n static styles = [\n styles,\n css`\n\n.comment-wall .main-section-header {\n margin-bottom: 3px;\n}\n\n.comment-wall .main-section-h2 {\n margin-bottom: 0;\n}\n\n#comment-counter {\n margin-top: 0;\n margin-left: 15px;\n margin-bottom: 3px;\n}\n\n.comment-wall table {\n margin: auto;\n margin-bottom: 5px;\n color: black;\n}\n\n\n.comment-wall th {\n width: 158px;\n padding: 3px;\n vertical-align: top;\n}\n\n.comment-wall td {\n vertical-align: top;\n width: 269px;\n padding: 3px;\n}\n\n.comment-wall figcaption,\n.comment-wall figure {\n margin: 0;\n}\n\n.comment-wall figcaption {\n margin-bottom: 1em;\n}\n\n.comment-wall figure {\n margin-bottom: 49.33px;\n}\n\n.comment-wall h3 {\n font-size: 10pt;\n margin: 0;\n margin-bottom: 3em;\n}\n\n.comment-wall p {\n font-weight: normal;\n text-align: center;\n margin: 0;\n}\n\n#add-comment {\n text-align: right;\n margin-right: 10px;\n margin-bottom: 5px;\n}\n\n\n `];\n\n\n\n getUserLang() {\n\n return navigator.language || 'en';\n\n }\n\n async firstUpdated() {\n // this method is a lifecycle even in lit\n // for more info check out the lit docs https://lit.dev/docs/components/lifecycle/\n console.log('Here are some recent notes from the neighborhood');\n }\n\n async connectedCallback(): Promise {\n super.connectedCallback();\n await Promise.all([\n this.fetchNotes(),\n\n ]);\n\n}\n\n\n/* async translateText(text: string, targetLang: string) {\n try {\n const response = await axios.post('https://api-free.deepl.com/v2/translate', {\n text, target_lang: targetLang });\n\n return response.data.translations[0].text; // Assuming DeepL's API structure\n } catch (error: any) {\n console.error('Error during translation:', error.response?.data || error.message);\n return '';\n }\n} */\n\n\n\n\nasync fetchNotes() {\n // const ifcaRelay = await Relay.connect('wss://hi.myvoiceourstory.org');\n\n const migsRelay = await Relay.connect('wss://notes.miguelalmodo.com');\n console.log(`connected to ${migsRelay.url}`);\n\n\n// store the relay name\n this.relayName = migsRelay.url;\n\n\n const sub = migsRelay.subscribe([\n {\n kinds: [30023], // short and long form notes\n limit: 5,\n }\n ], {\n onevent: async (event) => {\n console.log('Event received:', event);\n this.notes = [...this.notes, {\n content: event.content,\n date: new Date(event.created_at * 1000).toLocaleDateString(),\n }];\n this.requestUpdate();\n console.log(migsRelay)\n\n },\n oneose: () => {\n sub.close();\n this.requestUpdate();\n },\n });\n\n}\n\nasync displayLongNotes() {\n\n}\n\n\n\n\n share() {\n if ((navigator as any).share) {\n (navigator as any).share({\n title: 'Nostr Micro Client',\n text: 'Share this with your homie!',\n url: 'https://miguelalmodo.com/',\n });\n }\n }\n\n render() {\n return html`\n \n
    \n\n
    \n\n
    \n

    Recent Notes from ${this.relayName}

    \n
    \n\n\n\n\n \n ${this.notes.map(note => {\n // extract URL from note content\n const urlMatch = note.content.match(/https?:\\/\\/[^\\s]+/);\n const textContent = note.content.replace(urlMatch?.[0] || '', '').trim();\n\n\n // Check for yt links and extract video ID\n const youtubeRegex = /(?:https?:\\/\\/(?:www\\.)?youtube\\.com\\/watch\\?v=|https?:\\/\\/youtu\\.be\\/)([a-zA-Z0-9_-]{11})/;\n const youtubeMatch = urlMatch?.[0].match(youtubeRegex);\n const youtubeVideoId = youtubeMatch ? youtubeMatch[1] : null;\n\n // build yt thumbnail URL if applicable\n const thumbnailUrl = youtubeVideoId\n ? `https://img.youtube.com/vi/${youtubeVideoId}/maxresdefault.jpg`\n : null;\n\n //check for image links\n const imgRegex = /(https?:\\/\\/[^\\s]+\\.(?:jpg|jpeg|png|gif))/i;\n const imgMatch = urlMatch?.find(url => imgRegex.test(url));\n\n return html`\n \n \n \n \n `;\n })}\n

    ${note.date}

    \n

    ${textContent}

    \n ${thumbnailUrl\n ? html`\"YouTube`\n : imgMatch\n ? html`\"Note`\n : ''}\n
    \n\n\n\n
    \n\n `;\n }\n}\n","const KEY = Symbol.for('app-tools::log::1.x');\n\nglobalThis[KEY] = { \n setDebug, \n debug: 'window' in globalThis ? new URL(window.location.href).searchParams.has('app-tools-debug') : false,\n};\n\n/**\n * @param {boolean} value \n */\nexport function setDebug(value) {\n globalThis[KEY].debug = !!value;\n}\n\n/**\n * @returns {boolean}\n */\nexport function getDebug() {\n return globalThis[KEY].debug;\n}\n\n/**\n * @param {string} action - describing the action\n * @param {*} [data] - any js value\n */\nexport function log(action, data) {\n if(globalThis[KEY].debug) {\n console.groupCollapsed(`[app-tools] ${action}`);\n if(data) {\n console.log(data);\n }\n console.groupEnd();\n }\n}\n\n/**\n * @param {string} title \n * @returns {(action: string, data?: any) => void}\n */\nexport function createLogger(title) {\n return (action, data) => {\n log(`${title}: ${action}`, data);\n }\n}","import { createLogger } from '../utils/log.js';\nconst log = createLogger('router');\n\nclass RouteEvent extends Event {\n /**\n * @param {Context} context \n */\n constructor(context) {\n super('route-changed');\n this.context = context;\n }\n}\n\n/**\n * @typedef {import('./types.js').Plugin} Plugin\n * @typedef {import('./types.js').Context} Context\n * @typedef {import('./types.js').RouteDefinition} RouteDefinition\n * @typedef {import('./types.js').Route} Route\n * @typedef {import('./types.js').Config} Config\n */\n\nexport class Router extends EventTarget {\n context = {\n params: {},\n query: {},\n title: '',\n url: new URL(window.location.href),\n }\n\n /**\n * @param {Config} config \n */\n constructor(config) {\n super();\n this.config = config;\n\n /** @type {Route[]} */\n this.routes = config.routes.map((route) => {\n const r = /** @type {unknown} */ ({\n ...route,\n // @ts-ignore\n urlPattern: new URLPattern({\n pathname: route.path,\n baseURL: window.location.href,\n search: '*',\n hash: '*',\n }),\n });\n return /** @type {Route} */ (r);\n });\n log('Initialized routes', this.routes);\n\n queueMicrotask(() => {\n this.navigate(new URL(window.location.href), { replace: true });\n });\n window.addEventListener('popstate', this._onPopState);\n window.addEventListener('click', this._onAnchorClick);\n }\n\n uninstall() {\n window.removeEventListener('popstate', this._onPopState);\n window.removeEventListener('click', this._onAnchorClick);\n }\n\n get url() {\n return new URL(window.location.href);\n }\n\n get fallback() {\n return new URL(\n this.config?.fallback || this.baseUrl.href.substring(window.location.origin.length), \n this.baseUrl\n )\n }\n\n get baseUrl() {\n return new URL('./', document.baseURI);\n }\n\n /**\n * @template RenderResult\n */\n render() {\n log(`Rendering route ${this.context.url.pathname}${this.context.url.search}${this.context.url.hash}`, { context: this.context, route: this.route });\n return /** @type {RenderResult} */ (this.route?.render?.(this.context));\n }\n\n /**\n * @private\n * @param {URL} url \n * @returns {Route | null}\n */\n _matchRoute(url) {\n for (const route of this.routes) {\n const match = route.urlPattern.exec(url);\n if (match) {\n const { title } = route;\n const query = Object.fromEntries(new URLSearchParams(url.search)); \n const params = match?.pathname?.groups ?? {};\n this.context = {\n url,\n title: typeof title === 'function' ? title({params, query, url}) : title,\n params,\n query,\n }\n return route;\n }\n }\n log(`No route matched for ${url.pathname}${url.search}${url.hash}`, url);\n return null;\n }\n \n /**\n * @private\n */\n _notifyUrlChanged() {\n this.dispatchEvent(new RouteEvent(this.context));\n }\n\n /**\n * @private\n */\n _onPopState = () => {\n this.navigate(new URL(window.location.href), { backNav: true });\n }\n\n /**\n * @private\n */\n _onAnchorClick = (e) => {\n if (\n e.defaultPrevented ||\n e.button !== 0 ||\n e.metaKey ||\n e.ctrlKey ||\n e.shiftKey\n ) {\n return;\n }\n\n const a = e.composedPath().find((el) => el.tagName === 'A');\n if (!a || !a.href) return;\n\n const url = new URL(a.href);\n\n if (this.url.href === url.href) return;\n if (url.host !== window.location.host) return;\n if (a.hasAttribute('download') || a.href.includes('mailto:')) return;\n\n const target = a.getAttribute('target');\n if (target && target !== '' && target !== '_self') return;\n \n e.preventDefault();\n this.navigate(url);\n }\n\n /**\n * @private \n */\n _collectPlugins(route) {\n return [\n ...(this.config?.plugins ?? []), \n ...(route?.plugins ?? []),\n ]\n }\n\n /**\n * @param {string | URL} url The URL to navigate to.\n * @param {{\n * backNav?: boolean,\n * replace?: boolean,\n * }} options options An options object to configure the navigation. The backNav property specifies whether the navigation is a backward navigation, which doesn't push the navigation into browser nav history.\n */\n async navigate(url, options = {}) {\n if (typeof url === 'string') {\n url = new URL(url, this.baseUrl);\n }\n \n let route = this._matchRoute(url) || this._matchRoute(this.fallback);\n log(`Navigating to ${url.pathname}${url.search}${url.hash}`, { context: this.context, route: this.route });\n\n /** @type {Plugin[]} */\n let plugins = this._collectPlugins(route);\n\n for (const plugin of plugins) {\n try {\n const result = await plugin?.shouldNavigate?.(this.context);\n if (result) {\n const condition = await result.condition();\n if (!condition) {\n url = new URL(result.redirect, this.baseUrl);\n route = this._matchRoute(url) || this._matchRoute(this.fallback);\n plugins = this._collectPlugins(route);\n log('Redirecting', { context: this.context, route: this.route });\n }\n }\n } catch(e) {\n log(`Plugin \"${plugin.name}\" error on shouldNavigate hook`, e);\n throw e;\n }\n }\n\n this.route = route;\n\n if (!this.route) {\n throw new Error(`[ROUTER] No route or fallback matched for url ${url}`);\n }\n\n for (const plugin of plugins) {\n try {\n await plugin?.beforeNavigation?.(this.context);\n } catch(e) {\n log(`Plugin \"${plugin.name}\" error on beforeNavigation hook`, e);\n throw e;\n }\n }\n\n if (options?.replace) {\n window.history.replaceState(null, '', `${url.pathname}${url.search}${url.hash}`);\n } else if (!options.backNav) {\n window.history.pushState(null, '', `${url.pathname}${url.search}${url.hash}`);\n }\n\n document.title = this.context.title;\n this._notifyUrlChanged();\n\n for (const plugin of plugins) {\n try {\n await plugin?.afterNavigation?.(this.context);\n } catch(e) {\n log(`Plugin \"${plugin.name}\" error on afterNavigation hook`, e);\n throw e;\n }\n }\n }\n}\n","/**\n * @example lazy(() => import('foo'))\n * @param {any} fn\n * @returns {import('../index.js').Plugin}\n */\nexport function lazy(fn) {\n return {\n name: 'lazy',\n beforeNavigation: () => {\n fn();\n }\n }\n}","// docs for router https://github.com/thepassle/app-tools/blob/master/router/README.md\n\nimport { html } from 'lit';\n\nif (!(globalThis as any).URLPattern) {\n await import(\"urlpattern-polyfill\");\n}\n\nimport { Router } from '@thepassle/app-tools/router.js';\nimport { lazy } from '@thepassle/app-tools/router/plugins/lazy.js';\n\n// @ts-ignore\nimport { title } from '@thepassle/app-tools/router/plugins/title.js';\n\nimport './pages/app-home.js';\n\n\nconst baseURL: string = (import.meta as any).env.BASE_URL;\n\nexport const router = new Router({\n routes: [\n {\n path: resolveRouterPath(),\n title: 'Home',\n render: () => html``\n },\n {\n path: resolveRouterPath('about'),\n title: 'About',\n plugins: [\n lazy(() => import('./pages/app-about/app-about.js')),\n ],\n render: () => html``\n },\n {\n path: resolveRouterPath('note-wall'),\n title: 'Note Wall',\n plugins: [\n lazy(() => import('./pages/note-wall.js')),\n ],\n render: () => html``\n },\n {\n path: resolveRouterPath('write'),\n title: 'Write',\n plugins: [\n lazy(() => import('./pages/app-write/app-write.js')),\n ],\n render: () => html``\n },\n ]\n });\n\n // This function will resolve a path with whatever Base URL was passed to the vite build process.\n // Use of this function throughout the starter is not required, but highly recommended, especially if you plan to use GitHub Pages to deploy.\n // If no arg is passed to this function, it will return the base URL.\n\n export function resolveRouterPath(unresolvedPath?: string) {\n var resolvedPath = baseURL;\n if(unresolvedPath) {\n resolvedPath = resolvedPath + unresolvedPath;\n }\n\n return resolvedPath;\n }\n","import { LitElement, css, html } from 'lit';\nimport { property, customElement } from 'lit/decorators.js';\nimport { resolveRouterPath } from '../router';\nimport { Relay } from 'nostr-tools';\nimport { WindowNostr } from 'nostr-tools/nip07';\n\n\nimport '@shoelace-style/shoelace/dist/components/card/card.js';\nimport '@shoelace-style/shoelace/dist/components/button/button.js';\n\nimport { styles } from '../styles/shared-styles';\n\n\ndeclare global {\n interface Window {\n nostr?: WindowNostr;\n }\n}\n\n@customElement('app-home')\nexport class AppHome extends LitElement {\n\n // For more information on using properties and state in lit\n // check out this link https://lit.dev/docs/components/properties/\n @property() message = 'Welcome to my demo!';\n @property({ type: String }) nostrAddy = '';\n @property({ type: String }) bio = '';\n @property({ type: String }) profilePic = '';\n @property({ type: Boolean }) isSignedIn = false;\n @property({ type: String }) publicKey = '';\n\n\n static styles = [\n styles,\n css`\n\n\n\n @media (horizontal-viewport-segments: 2) {\n #welcomeBar {\n flex-direction: row;\n align-items: flex-start;\n justify-content: space-between;\n }\n\n #welcomeCard {\n margin-right: 64px;\n }\n }\n\n /*\n========================================\nProfile Picture Container\n========================================\n*/\n.profile-picture-container {\n display: grid;\n grid-template-columns: 400px 200px;\n grid-template-rows: 250px;\n grid-column-gap: 15px;\n margin-bottom: 12px;\n\n}\n\n.profile-picture-container p {\n margin: 0;\n}\n\n.profile-pic {\n grid-area: 1/1;\n margin-top: 25px;\n margin-left: 100px;\n margin-bottom: 10px;\n border-radius: 50%;\n}\n\n.personal-msg {\n grid-area: 1/2;\n align-content: center;\n align-items: center;\n}\n\n\n\n.nav-button-container {\n justify-self: center;\n align-self: end;\n}\n\n `];\n\n async firstUpdated() {\n // this method is a lifecycle event in lit\n // for more info check out the lit docs https://lit.dev/docs/components/lifecycle/\n console.log('Welcome to my home page');\n }\n\n\n connectedCallback(): void {\n super.connectedCallback();\n\n this.addEventListener('user-state-changed', (event: Event) => {\n const detail = (event as CustomEvent).detail;\n this.nostrAddy = detail.nostrAddy;\n this.bio = detail.bio;\n this.profilePic = detail.profilePic;\n this.isSignedIn = detail.isSignedIn;\n });\n }\n\n\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n window.removeEventListener('profile-updated', this.updateProfileFromEvent.bind(this));\n window.removeEventListener('user-signed-out', this.handlesSignOut.bind(this));\n }\n\n updateProfileFromEvent(event: Event) {\n console.log('Profile updated event received:', (event as CustomEvent).detail);\n\n const detail = (event as CustomEvent).detail;\n this.nostrAddy = detail.nostrAddy;\n this.bio = detail.bio;\n this.profilePic = detail.profilePic;\n this.isSignedIn = true;\n this.requestUpdate();\n }\n\n handlesSignOut() {\n this.profilePic = '';\n this.bio = '';\n this.nostrAddy = 'Guest';\n this.isSignedIn = false;\n this.requestUpdate();\n }\n\n async fetchAndDisplayProfile(pubkey: string) {\n this.nostrAddy = pubkey;\n this.bio = 'Loading profile info...';\n this.profilePic = '/assets/img/loading_pfp.png';\n\n try {\n // Fetch profile metadata from a relay\n const relay = await Relay.connect('wss://notes.miguelalmodo.com'); // Example URL\n const sub = relay.subscribe([{ kinds: [0], authors: [pubkey] }], {\n onevent: (event) => {\n const profileData = JSON.parse(event.content);\n this.nostrAddy = profileData.nip05 || 'No address available';\n this.bio = profileData.about || 'No bio available';\n this.profilePic = profileData.picture || '/assets/img/default_pfp.png';\n this.requestUpdate();\n },\n oneose: () => sub.close(),\n });\n } catch (error) {\n console.error('Error fetching profile:', error);\n this.displayGuestView();\n }\n }\n\n\n displayGuestView() {\n // Set initial values for guest view\n this.nostrAddy = '';\n this.bio = 'Welcome, guest! Please sign in with a browser extension to view your profile.';\n this.profilePic = '/assets/img/default_pfp.png'; // Could be a placeholder image for guests\n this.isSignedIn = false;\n }\n\n\n share() {\n if ((navigator as any).share) {\n (navigator as any).share({\n title: 'A MiggyMofongo Project',\n text: 'This is a personal progressive social web app',\n url: 'https://miguelalmodo.com/dist2',\n });\n }\n }\n\n\n\n\n render() {\n return html`\n \n\n
    \n
    \n \n
    \n

    Welcome to ${this.nostrAddy || 'Guest'}'s Profile

    \n
    \n

    \n You can upgrade your website into\n a micro blog client with a social protocol to do things\n like browse a feed, compose a note, or post to your network.\n\n

    \n\n\n
    \n\"Profile\n\n

    ${this.bio || 'Welcome, guest! Please sign in to view your profile.'}

    \n\n
    \n
    \n About this Web App\n Feed\n Compose a Note\n
    \n ${'share' in navigator\n ? html`\n \n Share this personal website with a friend!\n `\n : null}\n
    \n\n\n\n
    \n
    \n `;\n }\n\n\n\n\n}\n","import { LitElement, css, html } from 'lit';\nimport { property, customElement } from 'lit/decorators.js';\nimport { resolveRouterPath } from '../router';\nimport { Relay } from 'nostr-tools';\n\nimport '@shoelace-style/shoelace/dist/components/button/button.js';\n@customElement('app-header')\nexport class AppHeader extends LitElement {\n @property({ type: String }) title = 'fostr';\n\n @property({ type: Boolean}) enableBack: boolean = false;\n\n @property({ type: String }) nostrAddy = '';\n @property({ type: String }) bio = '';\n @property({ type: String }) profilePic = '';\n @property({ type: Boolean }) isSignedIn = false;\n @property({ type: String }) publicKey = '';\n\n static styles = css`\n header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: var(--app-color-primary);\n color: white;\n padding: 12px;\n padding-top: 4px;\n\n position: fixed;\n left: env(titlebar-area-x, 0);\n top: env(titlebar-area-y, 0);\n height: env(titlebar-area-height, 30px);\n width: env(titlebar-area-width, 100%);\n -webkit-app-region: drag;\n }\n\n header h1 {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 12px;\n font-weight: bold;\n }\n\n nav a {\n margin-left: 10px;\n }\n\n #back-button-block {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 8px;\n }\n\n @media(prefers-color-scheme: light) {\n header {\n color: black;\n }\n\n nav a {\n color: initial;\n }\n }\n `;\n /** the connected callback method one of the lifecycle methods that runs once the element is added\n * to the dom. there is no disconnectedCallback because the header is never removed from the DOM.\n * i centralize state in this component because it's where the sign in and out button resides.\n *\n *\n */\n connectedCallback(): void {\n super.connectedCallback();\n\n // Check for stored pubkey and fetch metadata if available\n const storedPubkey = localStorage.getItem('pubkey');\n if (storedPubkey) {\n this.isSignedIn = true;\n this.fetchProfileMetadata(storedPubkey);\n } else {\n this.displayGuestView();\n }\n }\n\n displayGuestView() {\n // this method displays a guest view when the user is signed out\n this.nostrAddy = '';\n this.bio = 'Welcome, guest! Please sign in with a browser extension to view your profile.';\n this.profilePic = '/public/assets/img/default_pfp.png'; // a placeholder profile picture\n this.isSignedIn = false;\n\n this.dispatchUserStateChanged();\n }\n\n async fetchProfileMetadata(pubkey: string) {\n try {\n const relay = await Relay.connect('wss://notes.miguelalmodo.com');\n const sub = relay.subscribe(\n [{ kinds: [0], authors: [pubkey] }],\n {\n onevent: (event) => {\n const profileData = JSON.parse(event.content);\n this.profilePic = profileData.picture || '/assets/img/default_pfp.png';\n this.nostrAddy = profileData.nip05 || 'no addy available';\n this.bio = profileData.about || 'bio not available';\n\n this.dispatchUserStateChanged();\n },\n oneose: () => sub.close(),\n }\n );\n } catch (error) {\n console.error('Failed to fetch profile metadata:', error);\n this.displayGuestView();\n }\n }\n\n async signInWithNostr() {\n if (window.nostr) {\n try {\n const userPubkey = await window.nostr.getPublicKey();\n this.isSignedIn = true;\n\n //save pubkey in localStorage to keep sign-in state\n localStorage.setItem('pubkey', userPubkey)\n\n await this.fetchProfileMetadata(userPubkey);\n } catch (error) {\n console.error('Failed to sign in:', error);\n this.isSignedIn = false;\n }\n } else {\n alert('Nostr extension not detected. Please install a Nostr extension.');\n }\n }\n\n /* this sign out method clears the public key from local storage and sets the profile view\n back to guest view */\n signOut() {\n localStorage.removeItem('pubkey');\n this.displayGuestView();\n }\n\n dispatchUserStateChanged() {\n this.dispatchEvent(\n new CustomEvent('user-state-changed', {\n detail: {\n isSignedIn: this.isSignedIn,\n nostrAddy: this.nostrAddy,\n bio: this.bio,\n profilePic: this.profilePic,\n },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n render() {\n return html`\n
    \n\n
    \n ${this.enableBack ? html`\n Back\n ` : null}\n\n

    ${this.title}

    \n
    \n\n \n ${this.isSignedIn ? 'Sign out' : 'Sign in'}\n\n \n
    \n `;\n }\n}\n","import { LitElement, css } from 'lit';\nimport { customElement } from 'lit/decorators.js';\n\nimport './pages/note-wall'\nimport './pages/app-home';\nimport './components/header';\nimport './styles/global.css';\nimport { router } from './router';\n\n\n\n@customElement('app-index')\nexport class AppIndex extends LitElement {\n static styles = css`\n main {\n padding-left: 16px;\n padding-right: 16px;\n padding-bottom: 16px;\n }\n `;\n\n firstUpdated() {\n router.addEventListener('route-changed', () => {\n if (\"startViewTransition\" in document) {\n (document as any).startViewTransition(() => this.requestUpdate());\n }\n else {\n this.requestUpdate();\n }\n });\n }\n\n render() {\n // router config can be round in src/router.ts\n return router.render();\n }\n}\n"],"file":"code/index-COc6jZBc.js"} \ No newline at end of file diff --git a/dist2/code/index-DkYRBo1e.css b/dist2/code/index-DkYRBo1e.css new file mode 100644 index 0000000..b21ae66 --- /dev/null +++ b/dist2/code/index-DkYRBo1e.css @@ -0,0 +1 @@ +:root{--font-family: sans-serif}html,body{font-family:var(--font-family);padding:0;margin:0;height:100%}@media (prefers-color-scheme: dark){html,body{background-color:#181818;color:#fff}}@media (prefers-color-scheme: light){html,body{background-color:#f5f5f5;color:#000}} diff --git a/dist2/index.html b/dist2/index.html new file mode 100644 index 0000000..788c860 --- /dev/null +++ b/dist2/index.html @@ -0,0 +1,57 @@ + + + + + + fostr + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dist2/manifest.json b/dist2/manifest.json new file mode 100644 index 0000000..c01cf18 --- /dev/null +++ b/dist2/manifest.json @@ -0,0 +1,86 @@ +{ + "id": "/", + "scope": "/", + "name": "fostr", + "display": "standalone", + "start_url": "/", + "short_name": "starter", + "theme_color": "#E1477E", + "description": "This is a fostr app", + "orientation": "any", + "background_color": "#E1477E", + "related_applications": [], + "prefer_related_applications": false, + "display_override": ["window-controls-overlay"], + "launch_handler": { + "client_mode": "focus-existing" + }, + "icons": [ + { + "src": "assets/icons/512x512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "assets/icons/192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "assets/icons/48x48.png", + "sizes": "48x48", + "type": "image/png" + }, + { + "src": "assets/icons/24x24.png", + "sizes": "24x24", + "type": "image/png" + } + ], + "screenshots": [ + { + "src": "assets/screenshots/screen.png", + "sizes": "1617x1012", + "type": "image/png" + } + ], + "features": [ + "Cross Platform", + "fast", + "simple" + ], + "categories": [ + "social" + ], + "shortcuts": [ + { + "name": "Open About", + "short_name": "About", + "description": "Open the about page", + "url": "/about", + "icons": [{ "src": "assets/icons/192x192.png", "sizes": "192x192" }] + } + ], + "widgets": [ + { + "name": "Starter Widget", + "tag": "starterWidget", + "ms_ac_template": "widget/ac.json", + "data": "widget/data.json", + "description": "A simple widget example from pwa-starter.", + "screenshots": [ + { + "src": "assets/screenshots/widget-screen.png", + "sizes": "500x500", + "label": "Widget screenshot" + } + ], + "icons": [ + { + "src": "assets/icons/48x48.png", + "sizes": "48x48" + } + ] + } + ] +} diff --git a/dist2/staticwebapp.config.json b/dist2/staticwebapp.config.json new file mode 100644 index 0000000..7a4a067 --- /dev/null +++ b/dist2/staticwebapp.config.json @@ -0,0 +1,6 @@ +{ + "navigationFallback": { + "rewrite": "index.html", + "exclude": ["*.{css,js,mjs,ts,png,gif,ico,jpg,svg,json,woff2,ttf}"] + } +} diff --git a/dist2/sw.js b/dist2/sw.js new file mode 100644 index 0000000..7e34861 --- /dev/null +++ b/dist2/sw.js @@ -0,0 +1,2 @@ +importScripts("https://storage.googleapis.com/workbox-cdn/releases/7.3.0/workbox-sw.js");self.addEventListener("widgetinstall",t=>{t.waitUntil(e(t))});self.addEventListener("widgetresume",t=>{t.waitUntil(e(t))});self.addEventListener("widgetclick",t=>{t.action=="updateName"&&t.waitUntil(s(t))});self.addEventListener("widgetuninstall",t=>{});const e=async t=>{const a=t.widget.definition,i={template:JSON.stringify(await(await fetch(a.msAcTemplate)).json()),data:JSON.stringify(await(await fetch(a.data)).json())};await self.widgets.updateByInstanceId(t.instanceId,i)},s=async t=>{const a=t.data.json().name,i=t.widget.definition,n={template:JSON.stringify(await(await fetch(i.msAcTemplate)).json()),data:JSON.stringify({name:a})};await self.widgets.updateByInstanceId(t.instanceId,n)};workbox.precaching.precacheAndRoute([{"revision":"fe970448513b18d0c37b4b671ca94a06","url":"assets/icons/192x192.png"},{"revision":"5b1c195400df0f16c3f6cb2aa4665622","url":"assets/icons/24x24.png"},{"revision":"c3f013b68eae92565e8337ee50472cdc","url":"assets/icons/48x48.png"},{"revision":"e2a009c0f6aaa11d03a8e0728869b583","url":"assets/icons/512x512.png"},{"revision":"d1e55c63934b5f79f366bf723605bc26","url":"assets/icons/casto_kingdom.png"},{"revision":"a80ffffb8d3a555b25a0f19a0a9878f1","url":"assets/icons/icon_192.png"},{"revision":"04fa5b0f5827d885b678f0d131406aab","url":"assets/icons/icon_24.png"},{"revision":"3dbd388868265c8498acfe676ef27811","url":"assets/icons/icon_48.png"},{"revision":"414aacb61ad294e75f267554db7e9368","url":"assets/icons/icon_512.png"},{"revision":"67906584562cfe06b57d99c15a470a8d","url":"assets/img/default_pfp.png"},{"revision":"ee332fabed8b56f4aae86902c18146a2","url":"assets/readme/build-output.png"},{"revision":"be7f5a61d03a119f2e297d15df7dfab2","url":"assets/readme/codespace-button.png"},{"revision":"969196419238157c3d673545c2daed32","url":"assets/readme/copy-starter.png"},{"revision":"65897273261e49c6c9148df875e13e4d","url":"assets/readme/git-clone.png"},{"revision":"cd10ec0be4be4b10195986d075904542","url":"assets/readme/intro.png"},{"revision":"1b40f28a11a334cc90e6802070b9eae1","url":"assets/readme/local-button.png"},{"revision":"184b8b88c43aa759948968f69251200e","url":"assets/readme/new-repo-from-starter.png"},{"revision":"a5a5ef96823c312160626df383d0925d","url":"assets/readme/pwa-running.png"},{"revision":"480b506d1a2a832131525fd4d0fd7478","url":"assets/readme/pwa-starter-overview.png"},{"revision":"865934771530a3b8f9e10aae8d0423d9","url":"assets/readme/static-web-app-slash.png"},{"revision":"2d67dfcbdc3c8c6f8b5fefcd0016021f","url":"assets/readme/use-this-template.png"},{"revision":"fc3d41a79144a5bb00a423b78ec73c1f","url":"assets/readme/vscode-in-browser.png"},{"revision":"808ac8889e4c17f3f83fd9235f1aa28d","url":"assets/screenshots/screen.png"},{"revision":"bd2d64ab3b867df1017d43ec20b73cca","url":"assets/screenshots/widget-screen.png"},{"revision":null,"url":"code/app-about-BGKiJfUr.js"},{"revision":null,"url":"code/app-write-DLE2Mxxa.js"},{"revision":null,"url":"code/index-CBloBB_n.js"},{"revision":null,"url":"code/index-COc6jZBc.js"},{"revision":null,"url":"code/index-DkYRBo1e.css"},{"revision":"f5266149bb7950e2721802c8a674af23","url":"index.html"},{"revision":"288b15a933c65f7ad15d8d4567d18212","url":"manifest.json"},{"revision":"b1a4910d7cbaa47fcc8f72ecb2028ff1","url":"staticwebapp.config.json"},{"revision":"a7591c595c4a231a1f67943e58f3d6eb","url":"widget/ac.json"},{"revision":"a70ebb50d5f5ab6a37f24795e292547d","url":"widget/data.json"}]||[]); +//# sourceMappingURL=sw.js.map diff --git a/dist2/sw.js.map b/dist2/sw.js.map new file mode 100644 index 0000000..796621f --- /dev/null +++ b/dist2/sw.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../public/sw.js"],"names":["event","updateWidget","updateName","widgetDefinition","payload","name"],"mappings":"AAAA,cACI,yEACJ,EAMA,KAAK,iBAAiB,gBAAkB,GAAU,CAC9C,EAAM,UAAU,EAAa,CAAK,CAAC,CACvC,CAAC,EAGD,KAAK,iBAAiB,eAAiB,GAAU,CAC7C,EAAM,UAAU,EAAa,CAAK,CAAC,CACvC,CAAC,EAID,KAAK,iBAAiB,cAAgB,GAAU,CAC5C,EAAM,QAAU,cAChB,EAAM,UAAU,EAAW,CAAK,CAAC,CAErC,CAAC,EAID,KAAK,iBAAiB,kBAAoB,GAAU,CAAA,CAAE,EAEtD,MAAM,EAAe,MAAO,GAAU,CAElC,MAAM,EAAmB,EAAM,OAAO,WAGhC,EAAU,CACZ,SAAU,KAAK,UAAU,MAAO,MAAM,MAAM,EAAiB,YAAY,GAAG,MAAM,EAClF,KAAM,KAAK,UAAU,MAAO,MAAM,MAAM,EAAiB,IAAI,GAAG,MAAM,CACzE,EAGD,MAAM,KAAK,QAAQ,mBAAmB,EAAM,WAAY,CAAO,CACnE,EAEM,EAAa,MAAO,GAAU,CAChC,MAAM,EAAO,EAAM,KAAK,KAAM,EAAC,KAGzB,EAAmB,EAAM,OAAO,WAGhC,EAAU,CACZ,SAAU,KAAK,UAAU,MAAO,MAAM,MAAM,EAAiB,YAAY,GAAG,MAAM,EAClF,KAAM,KAAK,UAAU,CAAC,KAAA,CAAI,CAAC,CAC9B,EAGD,MAAM,KAAK,QAAQ,mBAAmB,EAAM,WAAY,CAAO,CACnE,EAEA,QAAQ,WAAW,iBAAiB,+mFAAK,eAAiB,CAAA,CAAE","file":"sw.js","sourcesContent":["importScripts(\n 'https://storage.googleapis.com/workbox-cdn/releases/7.3.0/workbox-sw.js'\n);\n\n// This is your Service Worker, you can put any of your custom Service Worker\n// code in this file, above the `precacheAndRoute` line.\n\n// When widget is installed/pinned, push initial state.\nself.addEventListener('widgetinstall', (event) => {\n event.waitUntil(updateWidget(event));\n});\n\n// When widget is shown, update content to ensure it is up-to-date.\nself.addEventListener('widgetresume', (event) => {\n event.waitUntil(updateWidget(event));\n});\n\n// When the user clicks an element with an associated Action.Execute,\n// handle according to the 'verb' in event.action.\nself.addEventListener('widgetclick', (event) => {\nif (event.action == \"updateName\") {\n event.waitUntil(updateName(event));\n}\n});\n\n// When the widget is uninstalled/unpinned, clean up any unnecessary\n// periodic sync or widget-related state.\nself.addEventListener('widgetuninstall', (event) => {});\n\nconst updateWidget = async (event) => {\n// The widget definition represents the fields specified in the manifest.\n const widgetDefinition = event.widget.definition;\n\n // Fetch the template and data defined in the manifest to generate the payload.\n const payload = {\n template: JSON.stringify(await (await fetch(widgetDefinition.msAcTemplate)).json()),\n data: JSON.stringify(await (await fetch(widgetDefinition.data)).json()),\n };\n\n // Push payload to widget.\n await self.widgets.updateByInstanceId(event.instanceId, payload);\n}\n\nconst updateName = async (event) => {\n const name = event.data.json().name;\n\n // The widget definition represents the fields specified in the manifest.\n const widgetDefinition = event.widget.definition;\n\n // Fetch the template and data defined in the manifest to generate the payload.\n const payload = {\n template: JSON.stringify(await (await fetch(widgetDefinition.msAcTemplate)).json()),\n data: JSON.stringify({name}),\n };\n\n // Push payload to widget.\n await self.widgets.updateByInstanceId(event.instanceId, payload);\n}\n\nworkbox.precaching.precacheAndRoute(self.__WB_MANIFEST || []);"]} \ No newline at end of file diff --git a/dist2/widget/ac.json b/dist2/widget/ac.json new file mode 100644 index 0000000..7b40171 --- /dev/null +++ b/dist2/widget/ac.json @@ -0,0 +1,24 @@ +{ + "type": "AdaptiveCard", + "body": [ + { + "type": "TextBlock", + "text": "Hello ${$root.name}!", + "wrap": true, + "horizontalAlignment": "Center", + "size": "ExtraLarge" + }, + { + "type": "Input.Text", + "placeholder": "Name", + "id": "name", + "inlineAction": { + "type": "Action.Execute", + "verb": "updateName", + "title": "Submit" + } + } + ], + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.6" + } \ No newline at end of file diff --git a/dist2/widget/data.json b/dist2/widget/data.json new file mode 100644 index 0000000..f947112 --- /dev/null +++ b/dist2/widget/data.json @@ -0,0 +1,3 @@ +{ + "name": "Widget" + } \ No newline at end of file diff --git a/src/components/header.ts b/src/components/header.ts index 355abaa..926d590 100644 --- a/src/components/header.ts +++ b/src/components/header.ts @@ -2,7 +2,6 @@ import { LitElement, css, html } from 'lit'; import { property, customElement } from 'lit/decorators.js'; import { resolveRouterPath } from '../router'; import { Relay } from 'nostr-tools'; -import { WindowNostr } from 'nostr-tools/nip07'; import '@shoelace-style/shoelace/dist/components/button/button.js'; @customElement('app-header') diff --git a/src/pages/app-about/app-about.ts b/src/pages/app-about/app-about.ts index cf77e0f..835e7a5 100644 --- a/src/pages/app-about/app-about.ts +++ b/src/pages/app-about/app-about.ts @@ -29,15 +29,15 @@ export class AppAbout extends LitElement {

    This is a personal micro-social media client that can be installed to your desktop or smartphone home screen. You can sign in via an extension - to display your profile data and notes from preprogrammed relays. You - can compose a letter to me using a rich text editor I built with Prosemirror. + to display your profile data and notes from my relay. You + can compose a note using a rich text editor I built with Prosemirror.

    How do I install this on my home screen?

    -

    Look for "Add to Home Screen" in your browser toolbar and - to save it to your homescreen.

    +

    Look for "Add to Home Screen" in your browser toolbar + to install it to your homescreen.

    What is Nostr?

    Notes and Other Stuff Transmitted Over Relays is a simple open source diff --git a/src/pages/app-home.ts b/src/pages/app-home.ts index 9aaa88d..449afd8 100644 --- a/src/pages/app-home.ts +++ b/src/pages/app-home.ts @@ -22,7 +22,7 @@ export class AppHome extends LitElement { // For more information on using properties and state in lit // check out this link https://lit.dev/docs/components/properties/ - @property() message = 'Welcome to my nostr demo!'; + @property() message = 'Welcome to my demo!'; @property({ type: String }) nostrAddy = ''; @property({ type: String }) bio = ''; @property({ type: String }) profilePic = ''; @@ -55,7 +55,7 @@ Profile Picture Container */ .profile-picture-container { display: grid; - grid-template-columns: 300px 150px; + grid-template-columns: 400px 200px; grid-template-rows: 250px; grid-column-gap: 15px; margin-bottom: 12px; @@ -68,20 +68,21 @@ Profile Picture Container .profile-pic { grid-area: 1/1; - margin-top: 10px; + margin-top: 25px; + margin-left: 100px; margin-bottom: 10px; border-radius: 50%; } .personal-msg { grid-area: 1/2; - margin-top: 300px; + align-content: center; + align-items: center; } -.pics-videos { - grid-area: 1/1; +.nav-button-container { justify-self: center; align-self: end; } @@ -171,9 +172,9 @@ Profile Picture Container share() { if ((navigator as any).share) { (navigator as any).share({ - title: 'PWABuilder pwa-starter', - text: 'Check out the PWABuilder pwa-starter!', - url: 'https://github.com/pwa-builder/pwa-starter', + title: 'A MiggyMofongo Project', + text: 'This is a personal progressive social web app', + url: 'https://miguelalmodo.com/dist2', }); } } @@ -192,9 +193,9 @@ Profile Picture Container

    Welcome to ${this.nostrAddy || 'Guest'}'s Profile

    - You can use the Nostr protocol to transform your personal website into - a micro blog client. You can compose a note and post it to your social - network. + You can upgrade your website into + a micro blog client with a social protocol to do things + like browse a feed, compose a note, or post to your network.

    @@ -205,18 +206,20 @@ Profile Picture Container

    ${this.bio || 'Welcome, guest! Please sign in to view your profile.'}

    - + ${'share' in navigator ? html` - Share this Starter! + Share this personal website with a friend! ` : null} - Navigate to About - Navigate to Note Wall - Navigate to Note Compose + diff --git a/src/pages/app-write/app-write.ts b/src/pages/app-write/app-write.ts index 2634149..9cd1b76 100644 --- a/src/pages/app-write/app-write.ts +++ b/src/pages/app-write/app-write.ts @@ -154,7 +154,7 @@ export class AppWrite extends LitElement { all: unset; /* Remove inherited or conflicting styles */ font-weight: bold; text-transform: uppercase; - color: red; /* Add a visible color for debugging */ + color: red; } ` @@ -172,14 +172,29 @@ private initializeEditor() { console.error('Editor container not here'); return } - const doc = customSchema.nodes.doc.createAndFill(); - if (!doc) { + const initialContent = customSchema.nodes.doc.createAndFill([ + customSchema.nodes.paragraph.create( + null, + customSchema.text("Welcome to the editor! Try typing here.") + ), + customSchema.nodes.paragraph.create( + null, + customSchema.text("Press Ctrl+Space to insert a ⭐.") + ), + customSchema.nodes.paragraph.create( + null, + customSchema.text("Highlight text and press Ctrl+B to SHOUT it!") + ), + ]); + + + if (!initialContent) { console.error("failed to create initial document") return; } const state = EditorState.create({ - doc, + doc: initialContent, plugins: [ menuPlugin, history(), @@ -243,14 +258,15 @@ private initializeEditor() { -

    Basic Intructions

    -

    click inside the white text area to highlight with your cursor. - You can type and press enter to insert a new block below. +

    Instructions

    +

    Click inside the white text area to highlight with your cursor. + You can type and press enter to insert a new block below.


    - Highlight a piece of text, then CTRL+X to cut and CTRL+V to paste.
    - Press Ctrl+Space to add a yellow star to the document. Press - Ctrl+B over a highlighted selection to add the "shouting" mark, making - it all caps and red.

    +

    Try to highlight a piece of text, then CTRL+X to cut and + CTRL+V to paste.


    +

    Press Ctrl+Space to add a yellow star to the document.

    +

    Press Ctrl+B over a highlighted selection to add a "shouting" + mark and format it all caps and red.

    CwtxY-Q* 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 bp5n#ZKcK2jHSIcw{kf&6rcfeh_UOL=|Di63 literal 0 HcmV?d00001 diff --git a/dist2/assets/readme/pwa-running.png b/dist2/assets/readme/pwa-running.png new file mode 100644 index 0000000000000000000000000000000000000000..1bd2e021805918e64a4140837c9b82caf58ca5f9 GIT binary patch literal 529972 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πOL>4;B2>mFn>rGLIzI|bfTCSO&ddU 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