@lichess-org/pgn-viewer 2.5.6 → 2.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -86,7 +86,9 @@ piece.fading {
86
86
 
87
87
  .cg-wrap cg-auto-pieces,
88
88
  .cg-wrap .cg-shapes,
89
- .cg-wrap .cg-custom-svgs {
89
+ .cg-wrap .cg-custom-svgs,
90
+ .cg-wrap .cg-shapes-below,
91
+ .cg-wrap .cg-custom-below {
90
92
  overflow: visible;
91
93
  position: absolute;
92
94
  top: 0px;
@@ -296,6 +298,7 @@ cg-board square.current-premove {
296
298
  color: #fff;
297
299
  }
298
300
  .lpv__fbt.disabled, .lpv__fbt[disabled] {
301
+ pointer-events: none;
299
302
  opacity: 0.4;
300
303
  cursor: default;
301
304
  }
@@ -1 +1 @@
1
- .cg-wrap{box-sizing:content-box;position:relative;display:block;height:0;padding-bottom:100%;width:100%}cg-container{position:absolute;width:100%;height:100%;display:block;top:0}cg-board{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:0;background-size:cover}cg-board square{position:absolute;top:0;left:0;width:12.5%;height:12.5%;pointer-events:none}cg-board square.move-dest{pointer-events:auto}cg-board square.last-move{will-change:transform}.cg-wrap piece{position:absolute;top:0;left:0;width:12.5%;height:12.5%;background-size:cover;z-index:2;will-change:transform;pointer-events:none}piece.anim{z-index:8}piece.fading{z-index:1;opacity:.5}.cg-wrap piece.ghost{opacity:.3}.cg-wrap piece svg{overflow:hidden;position:relative;top:0px;left:0px;width:100%;height:100%;pointer-events:none;z-index:2;opacity:.6}.cg-wrap cg-auto-pieces,.cg-wrap .cg-shapes,.cg-wrap .cg-custom-svgs{overflow:visible;position:absolute;top:0px;left:0px;width:100%;height:100%;pointer-events:none}.cg-wrap cg-auto-pieces{z-index:2}.cg-wrap cg-auto-pieces piece{opacity:.3}.cg-wrap .cg-shapes{overflow:hidden;opacity:.6;z-index:2}.cg-wrap .cg-custom-svgs{z-index:9}.cg-wrap .cg-custom-svgs svg{overflow:visible}.cg-wrap coords{position:absolute;display:flex;pointer-events:none;opacity:.8;font-family:sans-serif;font-size:9px;color:hsla(0,0%,100%,.8)}.cg-wrap coords.ranks{top:1px;right:0;flex-flow:column-reverse;height:100%;width:12px;text-align:center}.cg-wrap coords.ranks.black{flex-flow:column}.cg-wrap coords.ranks.left{left:-15px;align-items:flex-end}.cg-wrap coords.files{bottom:0;left:.7ch;flex-flow:row;width:100%;height:12px;text-transform:uppercase}.cg-wrap coords.files.black{flex-flow:row-reverse}.cg-wrap coords coord{flex:1 1 auto}cg-board{background-color:var(--board-color);background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgogICAgIHZpZXdCb3g9IjAgMCA4IDgiIHNoYXBlLXJlbmRlcmluZz0iY3Jpc3BFZGdlcyI+CjxnIGlkPSJhIj4KICA8ZyBpZD0iYiI+CiAgICA8ZyBpZD0iYyI+CiAgICAgIDxnIGlkPSJkIj4KICAgICAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBpZD0iZSIgb3BhY2l0eT0iMCIvPgogICAgICAgIDx1c2UgeD0iMSIgeT0iMSIgaHJlZj0iI2UiIHg6aHJlZj0iI2UiLz4KICAgICAgICA8cmVjdCB5PSIxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBpZD0iZiIgb3BhY2l0eT0iMC4yIi8+CiAgICAgICAgPHVzZSB4PSIxIiB5PSItMSIgaHJlZj0iI2YiIHg6aHJlZj0iI2YiLz4KICAgICAgPC9nPgogICAgICA8dXNlIHg9IjIiIGhyZWY9IiNkIiB4OmhyZWY9IiNkIi8+CiAgICA8L2c+CiAgICA8dXNlIHg9IjQiIGhyZWY9IiNjIiB4OmhyZWY9IiNjIi8+CiAgPC9nPgogIDx1c2UgeT0iMiIgaHJlZj0iI2IiIHg6aHJlZj0iI2IiLz4KPC9nPgo8dXNlIHk9IjQiIGhyZWY9IiNhIiB4OmhyZWY9IiNhIi8+Cjwvc3ZnPg==")}cg-board square.move-dest{background:radial-gradient(rgba(20, 85, 30, 0.5) 22%, #208530 0, rgba(0, 0, 0, 0.3) 0, rgba(0, 0, 0, 0) 0)}cg-board square.premove-dest{background:radial-gradient(rgba(20, 30, 85, 0.5) 22%, #203085 0, rgba(0, 0, 0, 0.3) 0, rgba(0, 0, 0, 0) 0)}cg-board square.oc.move-dest{background:radial-gradient(transparent 0%, transparent 80%, rgba(20, 85, 0, 0.3) 80%)}cg-board square.oc.premove-dest{background:radial-gradient(transparent 0%, transparent 80%, rgba(20, 30, 85, 0.2) 80%)}cg-board square.move-dest:hover{background:rgba(20, 85, 30, 0.3)}cg-board square.premove-dest:hover{background:rgba(20, 30, 85, 0.2)}cg-board square.last-move{background-color:rgba(155, 199, 0, 0.41)}cg-board square.selected{background-color:rgba(20, 85, 30, 0.5)}cg-board square.check{background:radial-gradient(ellipse at center, rgba(255, 0, 0, 1) 0%, rgba(231, 0, 0, 1) 25%, rgba(169, 0, 0, 0) 89%, rgba(158, 0, 0, 0) 100%)}cg-board square.current-premove{background-color:rgba(20, 30, 85, 0.5)}.cg-wrap piece.pawn.white{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PHBhdGggZD0iTTIyLjUgOWMtMi4yMSAwLTQgMS43OS00IDQgMCAuODkuMjkgMS43MS43OCAyLjM4QzE3LjMzIDE2LjUgMTYgMTguNTkgMTYgMjFjMCAyLjAzLjk0IDMuODQgMi40MSA1LjAzLTMgMS4wNi03LjQxIDUuNTUtNy40MSAxMy40N2gyM2MwLTcuOTItNC40MS0xMi40MS03LjQxLTEzLjQ3IDEuNDctMS4xOSAyLjQxLTMgMi40MS01LjAzIDAtMi40MS0xLjMzLTQuNS0zLjI4LTUuNjIuNDktLjY3Ljc4LTEuNDkuNzgtMi4zOCAwLTIuMjEtMS43OS00LTQtNHoiIGZpbGw9IiNmZmYiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPg==")}.cg-wrap piece.bishop.white{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxnIGZpbGw9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJidXR0Ij48cGF0aCBkPSJNOSAzNmMzLjM5LS45NyAxMC4xMS40MyAxMy41LTIgMy4zOSAyLjQzIDEwLjExIDEuMDMgMTMuNSAyIDAgMCAxLjY1LjU0IDMgMi0uNjguOTctMS42NS45OS0zIC41LTMuMzktLjk3LTEwLjExLjQ2LTEzLjUtMS0zLjM5IDEuNDYtMTAuMTEuMDMtMTMuNSAxLTEuMzU0LjQ5LTIuMzIzLjQ3LTMtLjUgMS4zNTQtMS45NCAzLTIgMy0yeiIvPjxwYXRoIGQ9Ik0xNSAzMmMyLjUgMi41IDEyLjUgMi41IDE1IDAgLjUtMS41IDAtMiAwLTIgMC0yLjUtMi41LTQtMi41LTQgNS41LTEuNSA2LTExLjUtNS0xNS41LTExIDQtMTAuNSAxNC01IDE1LjUgMCAwLTIuNSAxLjUtMi41IDQgMCAwLS41LjUgMCAyeiIvPjxwYXRoIGQ9Ik0yNSA4YTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAxIDEgNSAweiIvPjwvZz48cGF0aCBkPSJNMTcuNSAyNmgxME0xNSAzMGgxNW0tNy41LTE0LjV2NU0yMCAxOGg1IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIi8+PC9nPjwvc3ZnPg==")}.cg-wrap piece.knight.white{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMiAxMGMxMC41IDEgMTYuNSA4IDE2IDI5SDE1YzAtOSAxMC02LjUgOC0yMSIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0yNCAxOGMuMzggMi45MS01LjU1IDcuMzctOCA5LTMgMi0yLjgyIDQuMzQtNSA0LTEuMDQyLS45NCAxLjQxLTMuMDQgMC0zLTEgMCAuMTkgMS4yMy0xIDItMSAwLTQuMDAzIDEtNC00IDAtMiA2LTEyIDYtMTJzMS44OS0xLjkgMi0zLjVjLS43My0uOTk0LS41LTItLjUtMyAxLTEgMyAyLjUgMyAyLjVoMnMuNzgtMS45OTIgMi41LTNjMSAwIDEgMyAxIDMiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNOS41IDI1LjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDEgMSAxIDB6bTUuNDMzLTkuNzVhLjUgMS41IDMwIDEgMS0uODY2LS41LjUgMS41IDMwIDEgMSAuODY2LjV6IiBmaWxsPSIjMDAwIi8+PC9nPjwvc3ZnPg==")}.cg-wrap piece.rook.white{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik05IDM5aDI3di0zSDl2M3ptMy0zdi00aDIxdjRIMTJ6bS0xLTIyVjloNHYyaDVWOWg1djJoNVY5aDR2NSIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiLz48cGF0aCBkPSJNMzQgMTRsLTMgM0gxNGwtMy0zIi8+PHBhdGggZD0iTTMxIDE3djEyLjVIMTRWMTciIHN0cm9rZS1saW5lY2FwPSJidXR0IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIi8+PHBhdGggZD0iTTMxIDI5LjVsMS41IDIuNWgtMjBsMS41LTIuNSIvPjxwYXRoIGQ9Ik0xMSAxNGgyMyIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIvPjwvZz48L3N2Zz4=")}.cg-wrap piece.queen.white{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik04IDEyYTIgMiAwIDEgMS00IDAgMiAyIDAgMSAxIDQgMHptMTYuNS00LjVhMiAyIDAgMSAxLTQgMCAyIDIgMCAxIDEgNCAwek00MSAxMmEyIDIgMCAxIDEtNCAwIDIgMiAwIDEgMSA0IDB6TTE2IDguNWEyIDIgMCAxIDEtNCAwIDIgMiAwIDEgMSA0IDB6TTMzIDlhMiAyIDAgMSAxLTQgMCAyIDIgMCAxIDEgNCAweiIvPjxwYXRoIGQ9Ik05IDI2YzguNS0xLjUgMjEtMS41IDI3IDBsMi0xMi03IDExVjExbC01LjUgMTMuNS0zLTE1LTMgMTUtNS41LTE0VjI1TDcgMTRsMiAxMnoiIHN0cm9rZS1saW5lY2FwPSJidXR0Ii8+PHBhdGggZD0iTTkgMjZjMCAyIDEuNSAyIDIuNSA0IDEgMS41IDEgMSAuNSAzLjUtMS41IDEtMS41IDIuNS0xLjUgMi41LTEuNSAxLjUuNSAyLjUuNSAyLjUgNi41IDEgMTYuNSAxIDIzIDAgMCAwIDEuNS0xIDAtMi41IDAgMCAuNS0xLjUtMS0yLjUtLjUtMi41LS41LTIgLjUtMy41IDEtMiAyLjUtMiAyLjUtNC04LjUtMS41LTE4LjUtMS41LTI3IDB6IiBzdHJva2UtbGluZWNhcD0iYnV0dCIvPjxwYXRoIGQ9Ik0xMS41IDMwYzMuNS0xIDE4LjUtMSAyMiAwTTEyIDMzLjVjNi0xIDE1LTEgMjEgMCIgZmlsbD0ibm9uZSIvPjwvZz48L3N2Zz4=")}.cg-wrap piece.king.white{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMi41IDExLjYzVjZNMjAgOGg1IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIi8+PHBhdGggZD0iTTIyLjUgMjVzNC41LTcuNSAzLTEwLjVjMCAwLTEtMi41LTMtMi41cy0zIDIuNS0zIDIuNWMtMS41IDMgMyAxMC41IDMgMTAuNSIgZmlsbD0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiLz48cGF0aCBkPSJNMTEuNSAzN2M1LjUgMy41IDE1LjUgMy41IDIxIDB2LTdzOS00LjUgNi0xMC41Yy00LTYuNS0xMy41LTMuNS0xNiA0VjI3di0zLjVjLTMuNS03LjUtMTMtMTAuNS0xNi00LTMgNiA1IDEwIDUgMTBWMzd6IiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTExLjUgMzBjNS41LTMgMTUuNS0zIDIxIDBtLTIxIDMuNWM1LjUtMyAxNS41LTMgMjEgMG0tMjEgMy41YzUuNS0zIDE1LjUtMyAyMSAwIi8+PC9nPjwvc3ZnPg==")}.cg-wrap piece.pawn.black{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PHBhdGggZD0iTTIyLjUgOWMtMi4yMSAwLTQgMS43OS00IDQgMCAuODkuMjkgMS43MS43OCAyLjM4QzE3LjMzIDE2LjUgMTYgMTguNTkgMTYgMjFjMCAyLjAzLjk0IDMuODQgMi40MSA1LjAzLTMgMS4wNi03LjQxIDUuNTUtNy40MSAxMy40N2gyM2MwLTcuOTItNC40MS0xMi40MS03LjQxLTEzLjQ3IDEuNDctMS4xOSAyLjQxLTMgMi40MS01LjAzIDAtMi40MS0xLjMzLTQuNS0zLjI4LTUuNjIuNDktLjY3Ljc4LTEuNDkuNzgtMi4zOCAwLTIuMjEtMS43OS00LTQtNHoiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPg==")}.cg-wrap piece.bishop.black{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxnIGZpbGw9IiMwMDAiIHN0cm9rZS1saW5lY2FwPSJidXR0Ij48cGF0aCBkPSJNOSAzNmMzLjM5LS45NyAxMC4xMS40MyAxMy41LTIgMy4zOSAyLjQzIDEwLjExIDEuMDMgMTMuNSAyIDAgMCAxLjY1LjU0IDMgMi0uNjguOTctMS42NS45OS0zIC41LTMuMzktLjk3LTEwLjExLjQ2LTEzLjUtMS0zLjM5IDEuNDYtMTAuMTEuMDMtMTMuNSAxLTEuMzU0LjQ5LTIuMzIzLjQ3LTMtLjUgMS4zNTQtMS45NCAzLTIgMy0yeiIvPjxwYXRoIGQ9Ik0xNSAzMmMyLjUgMi41IDEyLjUgMi41IDE1IDAgLjUtMS41IDAtMiAwLTIgMC0yLjUtMi41LTQtMi41LTQgNS41LTEuNSA2LTExLjUtNS0xNS41LTExIDQtMTAuNSAxNC01IDE1LjUgMCAwLTIuNSAxLjUtMi41IDQgMCAwLS41LjUgMCAyeiIvPjxwYXRoIGQ9Ik0yNSA4YTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAxIDEgNSAweiIvPjwvZz48cGF0aCBkPSJNMTcuNSAyNmgxME0xNSAzMGgxNW0tNy41LTE0LjV2NU0yMCAxOGg1IiBzdHJva2U9IiNlY2VjZWMiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiLz48L2c+PC9zdmc+")}.cg-wrap piece.knight.black{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMiAxMGMxMC41IDEgMTYuNSA4IDE2IDI5SDE1YzAtOSAxMC02LjUgOC0yMSIgZmlsbD0iIzAwMCIvPjxwYXRoIGQ9Ik0yNCAxOGMuMzggMi45MS01LjU1IDcuMzctOCA5LTMgMi0yLjgyIDQuMzQtNSA0LTEuMDQyLS45NCAxLjQxLTMuMDQgMC0zLTEgMCAuMTkgMS4yMy0xIDItMSAwLTQuMDAzIDEtNC00IDAtMiA2LTEyIDYtMTJzMS44OS0xLjkgMi0zLjVjLS43My0uOTk0LS41LTItLjUtMyAxLTEgMyAyLjUgMyAyLjVoMnMuNzgtMS45OTIgMi41LTNjMSAwIDEgMyAxIDMiIGZpbGw9IiMwMDAiLz48cGF0aCBkPSJNOS41IDI1LjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDEgMSAxIDB6bTUuNDMzLTkuNzVhLjUgMS41IDMwIDEgMS0uODY2LS41LjUgMS41IDMwIDEgMSAuODY2LjV6IiBmaWxsPSIjZWNlY2VjIiBzdHJva2U9IiNlY2VjZWMiLz48cGF0aCBkPSJNMjQuNTUgMTAuNGwtLjQ1IDEuNDUuNS4xNWMzLjE1IDEgNS42NSAyLjQ5IDcuOSA2Ljc1UzM1Ljc1IDI5LjA2IDM1LjI1IDM5bC0uMDUuNWgyLjI1bC4wNS0uNWMuNS0xMC4wNi0uODgtMTYuODUtMy4yNS0yMS4zNC0yLjM3LTQuNDktNS43OS02LjY0LTkuMTktNy4xNmwtLjUxLS4xeiIgZmlsbD0iI2VjZWNlYyIgc3Ryb2tlPSJub25lIi8+PC9nPjwvc3ZnPg==")}.cg-wrap piece.rook.black{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik05IDM5aDI3di0zSDl2M3ptMy41LTdsMS41LTIuNWgxN2wxLjUgMi41aC0yMHptLS41IDR2LTRoMjF2NEgxMnoiIHN0cm9rZS1saW5lY2FwPSJidXR0Ii8+PHBhdGggZD0iTTE0IDI5LjV2LTEzaDE3djEzSDE0eiIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiLz48cGF0aCBkPSJNMTQgMTYuNUwxMSAxNGgyM2wtMyAyLjVIMTR6TTExIDE0VjloNHYyaDVWOWg1djJoNVY5aDR2NUgxMXoiIHN0cm9rZS1saW5lY2FwPSJidXR0Ii8+PHBhdGggZD0iTTEyIDM1LjVoMjFtLTIwLTRoMTltLTE4LTJoMTdtLTE3LTEzaDE3TTExIDE0aDIzIiBmaWxsPSJub25lIiBzdHJva2U9IiNlY2VjZWMiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIvPjwvZz48L3N2Zz4=")}.cg-wrap piece.queen.black{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxnIHN0cm9rZT0ibm9uZSI+PGNpcmNsZSBjeD0iNiIgY3k9IjEyIiByPSIyLjc1Ii8+PGNpcmNsZSBjeD0iMTQiIGN5PSI5IiByPSIyLjc1Ii8+PGNpcmNsZSBjeD0iMjIuNSIgY3k9IjgiIHI9IjIuNzUiLz48Y2lyY2xlIGN4PSIzMSIgY3k9IjkiIHI9IjIuNzUiLz48Y2lyY2xlIGN4PSIzOSIgY3k9IjEyIiByPSIyLjc1Ii8+PC9nPjxwYXRoIGQ9Ik05IDI2YzguNS0xLjUgMjEtMS41IDI3IDBsMi41LTEyLjVMMzEgMjVsLS4zLTE0LjEtNS4yIDEzLjYtMy0xNC41LTMgMTQuNS01LjItMTMuNkwxNCAyNSA2LjUgMTMuNSA5IDI2eiIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiLz48cGF0aCBkPSJNOSAyNmMwIDIgMS41IDIgMi41IDQgMSAxLjUgMSAxIC41IDMuNS0xLjUgMS0xLjUgMi41LTEuNSAyLjUtMS41IDEuNS41IDIuNS41IDIuNSA2LjUgMSAxNi41IDEgMjMgMCAwIDAgMS41LTEgMC0yLjUgMCAwIC41LTEuNS0xLTIuNS0uNS0yLjUtLjUtMiAuNS0zLjUgMS0yIDIuNS0yIDIuNS00LTguNS0xLjUtMTguNS0xLjUtMjcgMHoiIHN0cm9rZS1saW5lY2FwPSJidXR0Ii8+PHBhdGggZD0iTTExIDM4LjVhMzUgMzUgMSAwIDAgMjMgMCIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiLz48cGF0aCBkPSJNMTEgMjlhMzUgMzUgMSAwIDEgMjMgMG0tMjEuNSAyLjVoMjBtLTIxIDNhMzUgMzUgMSAwIDAgMjIgMG0tMjMgM2EzNSAzNSAxIDAgMCAyNCAwIiBmaWxsPSJub25lIiBzdHJva2U9IiNlY2VjZWMiLz48L2c+PC9zdmc+")}.cg-wrap piece.king.black{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMi41IDExLjYzVjYiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiLz48cGF0aCBkPSJNMjIuNSAyNXM0LjUtNy41IDMtMTAuNWMwIDAtMS0yLjUtMy0yLjVzLTMgMi41LTMgMi41Yy0xLjUgMyAzIDEwLjUgMyAxMC41IiBmaWxsPSIjMDAwIiBzdHJva2UtbGluZWNhcD0iYnV0dCIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIvPjxwYXRoIGQ9Ik0xMS41IDM3YzUuNSAzLjUgMTUuNSAzLjUgMjEgMHYtN3M5LTQuNSA2LTEwLjVjLTQtNi41LTEzLjUtMy41LTE2IDRWMjd2LTMuNWMtMy41LTcuNS0xMy0xMC41LTE2LTQtMyA2IDUgMTAgNSAxMFYzN3oiIGZpbGw9IiMwMDAiLz48cGF0aCBkPSJNMjAgOGg1IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIi8+PHBhdGggZD0iTTMyIDI5LjVzOC41LTQgNi4wMy05LjY1QzM0LjE1IDE0IDI1IDE4IDIyLjUgMjQuNWwuMDEgMi4xLS4wMS0yLjFDMjAgMTggOS45MDYgMTQgNi45OTcgMTkuODVjLTIuNDk3IDUuNjUgNC44NTMgOSA0Ljg1MyA5IiBzdHJva2U9IiNlY2VjZWMiLz48cGF0aCBkPSJNMTEuNSAzMGM1LjUtMyAxNS41LTMgMjEgMG0tMjEgMy41YzUuNS0zIDE1LjUtMyAyMSAwbS0yMSAzLjVjNS41LTMgMTUuNS0zIDIxIDAiIHN0cm9rZT0iI2VjZWNlYyIvPjwvZz48L3N2Zz4=")}.lpv__fbt{background:none;border:none;outline:none;color:var(--c-lpv-font, #aaa);align-items:normal;cursor:pointer;text-transform:uppercase;font-size:1em;line-height:1.5;text-decoration:none}@media(hover: hover){.lpv__fbt:hover:not(.disabled):not([disabled]){background:var(--c-lpv-fbt-hover, lpv-fbt-hover);color:#fff}}.lpv__fbt.active{background:var(--c-lpv-accent, hsl(88, 62%, 37%)) !important;color:#fff}.lpv__fbt.disabled,.lpv__fbt[disabled]{opacity:.4;cursor:default}.lpv__board .cg-wrap{position:relative;display:block;height:0;padding-bottom:100%;width:100%}.lpv__sr-only{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.lpv{display:grid;overflow:hidden;grid-row-gap:0;--controls-height: 4em}.lpv--controls-false{--controls-height: 0em}.lpv--moves-false{grid-template-areas:"board" "controls";grid-template-columns:minmax(200px, calc(100vh - var(--controls-height)));grid-template-rows:auto var(--controls-height)}.lpv--moves-right{grid-template-areas:"board side" "controls side";grid-template-columns:auto fit-content(40%);grid-template-rows:auto var(--controls-height)}.lpv--moves-bottom{grid-template-areas:"board" "controls" "side";grid-template-rows:auto var(--controls-height)}.lpv--moves-bottom .lpv__controls{border-bottom:1px solid var(--c-lpv-border, hsl(0, 0%, 25%))}.lpv--moves-auto{grid-template-areas:"board side" "controls side";grid-template-columns:minmax(200px, calc(100vh - var(--controls-height))) minmax(232px, 1fr);grid-template-rows:auto var(--controls-height)}@media(max-width: 450px){.lpv--moves-auto{grid-template-areas:"board" "controls" "side";grid-template-columns:minmax(200px, calc(100vh - var(--controls-height) - 6em));grid-template-rows:auto var(--controls-height)}}.lpv--players.lpv--moves-false{grid-template-areas:"player-top" "board" "player-bot" "controls";grid-template-rows:2em auto 2em var(--controls-height)}.lpv--players.lpv--moves-right{grid-template-areas:"player-top side" "board side" "player-bot side" "controls side";grid-template-rows:2em auto 2em var(--controls-height)}.lpv--players.lpv--moves-bottom{grid-template-areas:"player-top" "board" "player-bot" "controls" "side";grid-template-rows:2em auto 2em var(--controls-height) 6em}.lpv--players.lpv--moves-bottom .lpv__controls{border-bottom:1px solid var(--c-lpv-border, hsl(0, 0%, 25%))}.lpv--players.lpv--moves-auto{grid-template-areas:"player-top side" "board side" "player-bot side" "controls side";grid-template-columns:minmax(200px, calc(100vh - 2 * 2em - var(--controls-height))) minmax(232px, 1fr);grid-template-rows:2em auto 2em var(--controls-height)}@media(max-width: 450px){.lpv--players.lpv--moves-auto{grid-template-areas:"player-top" "board" "player-bot" "controls" "side";grid-template-columns:minmax(200px, calc(100vh - 2 * 2em - var(--controls-height) - 6em));grid-template-rows:2em auto 2em var(--controls-height) 6em}}.lpv__board{grid-area:board}.lpv__side{grid-area:side}.lpv__player--top{grid-area:player-top}.lpv__player--bottom{grid-area:player-bot}.lpv__controls{grid-area:controls}.lpv__menu,.lpv__pgn{grid-area:1/1/2/2}.lpv--players .lpv__menu,.lpv--players .lpv__pgn{grid-area:1/1/4/2}.lpv__side{overflow:hidden;display:flex;flex-flow:column}.lpv__moves{position:relative;flex:1 1 0;display:flex;flex-flow:row wrap;overflow-y:auto;background:var(--c-lpv-bg-movelist, hsl(37, 5%, 18%));align-items:center;align-content:flex-start;will-change:scroll-position;user-select:none;line-height:1.7;min-width:20ch}.lpv__moves index{color:var(--c-lpv-font-shy, rgb(109.0975, 108.21775, 106.8025))}.lpv__moves>index{flex:0 0 15%;margin-right:3%;display:flex;justify-content:flex-end}.lpv__moves .move{border:none;background:rgba(0,0,0,0);font-family:inherit;font-size:inherit;text-align:left;margin:0;padding:4px 0 6px 0;outline:none;color:inherit;border-radius:3px;padding-left:3%;font-weight:bold;white-space:nowrap}.lpv__moves .move.empty{color:var(--c-lpv-font-shy, rgb(109.0975, 108.21775, 106.8025))}.lpv__moves .move:not(.empty):hover{background:var(--c-lpv-move-hover, rgb(63.21144, 78.35895, 41.2794));color:var(--c-lpv-accent-over, white);cursor:pointer}.lpv__moves .move.ancestor{color:var(--c-lpv-past-moves, #aaa)}.lpv__moves .move.current{background:var(--c-lpv-current-move, rgb(83.23336, 120.92355, 38.1786)) !important;color:var(--c-lpv-accent-over, white)}.lpv__moves .move.inaccuracy{color:var(--c-lpv-inaccuracy, hsl(202, 78%, 62%))}.lpv__moves .move.inaccuracy:hover{background:var(--c-lpv-bg-inaccuracy-hover, rgb(58.4919, 85.98141, 100.6281))}.lpv__moves .move.mistake{color:var(--c-lpv-mistake, hsl(41, 100%, 45%))}.lpv__moves .move.mistake:hover{background:var(--c-lpv-bg-mistake-hover, rgb(102.5865, 79.55235, 30.5235))}.lpv__moves .move.blunder{color:var(--c-lpv-blunder, hsl(0, 69%, 60%))}.lpv__moves .move.blunder:hover{background:var(--c-lpv-bg-blunder-hover, rgb(100.7505, 57.29085, 55.3095))}.lpv__moves .move.good{color:var(--c-lpv-good-move, hsl(130, 67%, 62%))}.lpv__moves .move.good:hover{background:var(--c-lpv-bg-good-hover, rgb(61.6896, 99.41175, 64.9689))}.lpv__moves .move.brilliant{color:var(--c-lpv-brilliant, hsl(129, 71%, 45%))}.lpv__moves .move.brilliant:hover{background:var(--c-lpv-bg-brilliant-hover, rgb(43.71975, 91.3716, 47.839275))}.lpv__moves .move.interesting{color:var(--c-lpv-interesting, hsl(307, 80%, 70%))}.lpv__moves .move.interesting:hover{background:var(--c-lpv-bg-interesting-hover, rgb(105.6465, 67.69485, 98.1495))}.lpv__moves>.move{flex:0 0 41%;font-size:1.1em}.lpv__moves comment{user-select:text;font-size:.9em}.lpv__moves comment.result{text-align:center;font-weight:bold}.lpv__moves>comment{flex:1 1 100%;background:var(--c-lpv-bg-variation, hsl(37, 5%, 15%));border:1px solid var(--c-lpv-side-border, hsl(37, 5%, 13%));border-width:1px 0;padding:.4em 1em;line-height:1.4;overflow-wrap:break-word;word-break:break-word}.lpv__moves>comment+variation,.lpv__moves>comment+comment{border-top:none}.lpv__moves>variation{flex:1 1 100%;display:block;overflow:hidden;font-size:.8em;background:var(--c-lpv-bg-variation, hsl(37, 5%, 15%));border:1px solid var(--c-lpv-side-border, hsl(37, 5%, 13%));border-width:1px 0;padding:0em .6em}.lpv__moves>variation+variation{border-top:none}.lpv__moves>variation .move{border:none;background:rgba(0,0,0,0);font-family:inherit;font-size:inherit;margin:0;outline:none;display:inline-block;padding:.1em .2em;min-width:2.5ch;text-align:center}.lpv__moves>variation .move+index{margin-left:.2em}.lpv__moves>variation index{margin:0;padding:.1em 0}.lpv__moves>variation index+.move{margin-left:.1em}.lpv__moves>variation comment{align-self:center;margin:0 .3em}.lpv__moves>variation paren{color:var(--c-lpv-font-shy, rgb(109.0975, 108.21775, 106.8025))}.lpv__moves>variation paren.open{margin:0 .1em 0 .2em}.lpv__moves>variation paren.close{margin:0 .2em 0 .1em}.lpv__player{font-size:.8em;background:var(--c-lpv-bg-player, hsl(37, 5%, 18%));display:flex;flex-flow:row nowrap;padding:0 1em}.lpv__player--bottom{border-bottom:1px solid var(--c-lpv-border, hsl(0, 0%, 25%))}.lpv--controls-false .lpv__player--bottom{border-bottom:none}.lpv__player__person{flex:1 1 auto;display:flex;flex-flow:row nowrap;align-items:center;gap:1ch;color:var(--c-lpv-font, #aaa);text-decoration:none}.lpv__player__title{font-weight:bold}.lpv__player__clock{display:flex;flex-flow:row nowrap;align-items:center;font-family:monospace;font-size:1.4em;font-weight:bold}.lpv__player__clock.active{color:var(--c-lpv-accent, hsl(88, 62%, 37%))}.lpv__pane{z-index:2;border-bottom:2px solid var(--c-lpv-accent, hsl(88, 62%, 37%));background:var(--c-lpv-bg-pane, rgb(55.70322, 62.397225, 42.4422));display:flex;flex-flow:column;justify-content:center}.lpv__pane .lpv__fbt{text-align:left;padding:.8em 2.5em;transition:none}.lpv__pane .lpv__fbt::before{color:var(--c-lpv-accent, hsl(88, 62%, 37%));font-size:2em}.lpv__pane .lpv__fbt:hover::before{color:var(--c-lpv-accent-over, white)}.lpv__pgn__text{flex:1 1 auto;background:var(--c-lpv-pgn-text, rgb(50.447466, 51.2240175, 43.25616));color:var(--c-lpv-font, #aaa);padding:.8em 1.3em}.lpv__controls{display:flex;flex-flow:row nowrap;align-items:stretch;user-select:none;background:var(--c-lpv-bg-controls, hsl(37, 5%, 18%))}.lpv__controls .lpv__fbt{flex:1 1 auto;font-size:1.4em;padding:.4em .7em;border-left:1px solid var(--c-lpv-border, hsl(0, 0%, 25%))}.lpv__controls .lpv__fbt:first-child{border:none}.lpv__controls__menu.lpv__fbt{flex:0 1 auto;width:4em;padding:.45em 1em .35em 1em;font-size:1.1em}.lpv__controls__goto{padding:.4rem .7rem}.lpv *::-webkit-scrollbar,.lpv *::-webkit-scrollbar-corner{width:.5rem;background:var(--c-lpv-bg, hsl(37, 5%, 18%))}.lpv *::-webkit-scrollbar-thumb{background:var(--c-lpv-font-bg, rgb(72.556, 71.1484, 68.884))}.lpv *::-webkit-scrollbar-thumb:hover,.lpv *::-webkit-scrollbar-thumb:active{background:var(--c-lpv-font-shy, rgb(109.0975, 108.21775, 106.8025))}@font-face{font-family:"lpv-fontello";src:url("data:application/octet-stream;base64,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") format("woff"),url("data:application/octet-stream;base64,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") format("truetype")}.lpv__icon:before{font-family:"lpv-fontello";font-size:1.1em;width:1em;text-align:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lpv__icon-step-forward:before{content:""}.lpv__icon-step-backward:before{content:""}.lpv__icon-left-open:before{content:""}.lpv__icon-right-open:before{content:""}.lpv__icon-ellipsis-vert:before{content:""}.lpv{border-radius:5px;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);overflow:hidden;background:var(--c-lpv-bg, hsl(37, 5%, 18%));color:var(--c-lpv-font, #aaa);box-sizing:border-box}.lpv *,.lpv *::before,.lpv *::after{box-sizing:inherit}.lpv__board{user-select:none}.lpv__board cg-board{box-shadow:none}.lpv:focus{outline:auto 2px var(--c-lpv-accent, hsl(88, 62%, 37%))}
1
+ .cg-wrap{box-sizing:content-box;position:relative;display:block;height:0;padding-bottom:100%;width:100%}cg-container{position:absolute;width:100%;height:100%;display:block;top:0}cg-board{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:0;background-size:cover}cg-board square{position:absolute;top:0;left:0;width:12.5%;height:12.5%;pointer-events:none}cg-board square.move-dest{pointer-events:auto}cg-board square.last-move{will-change:transform}.cg-wrap piece{position:absolute;top:0;left:0;width:12.5%;height:12.5%;background-size:cover;z-index:2;will-change:transform;pointer-events:none}piece.anim{z-index:8}piece.fading{z-index:1;opacity:.5}.cg-wrap piece.ghost{opacity:.3}.cg-wrap piece svg{overflow:hidden;position:relative;top:0px;left:0px;width:100%;height:100%;pointer-events:none;z-index:2;opacity:.6}.cg-wrap cg-auto-pieces,.cg-wrap .cg-shapes,.cg-wrap .cg-custom-svgs,.cg-wrap .cg-shapes-below,.cg-wrap .cg-custom-below{overflow:visible;position:absolute;top:0px;left:0px;width:100%;height:100%;pointer-events:none}.cg-wrap cg-auto-pieces{z-index:2}.cg-wrap cg-auto-pieces piece{opacity:.3}.cg-wrap .cg-shapes{overflow:hidden;opacity:.6;z-index:2}.cg-wrap .cg-custom-svgs{z-index:9}.cg-wrap .cg-custom-svgs svg{overflow:visible}.cg-wrap coords{position:absolute;display:flex;pointer-events:none;opacity:.8;font-family:sans-serif;font-size:9px;color:hsla(0,0%,100%,.8)}.cg-wrap coords.ranks{top:1px;right:0;flex-flow:column-reverse;height:100%;width:12px;text-align:center}.cg-wrap coords.ranks.black{flex-flow:column}.cg-wrap coords.ranks.left{left:-15px;align-items:flex-end}.cg-wrap coords.files{bottom:0;left:.7ch;flex-flow:row;width:100%;height:12px;text-transform:uppercase}.cg-wrap coords.files.black{flex-flow:row-reverse}.cg-wrap coords coord{flex:1 1 auto}cg-board{background-color:var(--board-color);background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgogICAgIHZpZXdCb3g9IjAgMCA4IDgiIHNoYXBlLXJlbmRlcmluZz0iY3Jpc3BFZGdlcyI+CjxnIGlkPSJhIj4KICA8ZyBpZD0iYiI+CiAgICA8ZyBpZD0iYyI+CiAgICAgIDxnIGlkPSJkIj4KICAgICAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBpZD0iZSIgb3BhY2l0eT0iMCIvPgogICAgICAgIDx1c2UgeD0iMSIgeT0iMSIgaHJlZj0iI2UiIHg6aHJlZj0iI2UiLz4KICAgICAgICA8cmVjdCB5PSIxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBpZD0iZiIgb3BhY2l0eT0iMC4yIi8+CiAgICAgICAgPHVzZSB4PSIxIiB5PSItMSIgaHJlZj0iI2YiIHg6aHJlZj0iI2YiLz4KICAgICAgPC9nPgogICAgICA8dXNlIHg9IjIiIGhyZWY9IiNkIiB4OmhyZWY9IiNkIi8+CiAgICA8L2c+CiAgICA8dXNlIHg9IjQiIGhyZWY9IiNjIiB4OmhyZWY9IiNjIi8+CiAgPC9nPgogIDx1c2UgeT0iMiIgaHJlZj0iI2IiIHg6aHJlZj0iI2IiLz4KPC9nPgo8dXNlIHk9IjQiIGhyZWY9IiNhIiB4OmhyZWY9IiNhIi8+Cjwvc3ZnPg==")}cg-board square.move-dest{background:radial-gradient(rgba(20, 85, 30, 0.5) 22%, #208530 0, rgba(0, 0, 0, 0.3) 0, rgba(0, 0, 0, 0) 0)}cg-board square.premove-dest{background:radial-gradient(rgba(20, 30, 85, 0.5) 22%, #203085 0, rgba(0, 0, 0, 0.3) 0, rgba(0, 0, 0, 0) 0)}cg-board square.oc.move-dest{background:radial-gradient(transparent 0%, transparent 80%, rgba(20, 85, 0, 0.3) 80%)}cg-board square.oc.premove-dest{background:radial-gradient(transparent 0%, transparent 80%, rgba(20, 30, 85, 0.2) 80%)}cg-board square.move-dest:hover{background:rgba(20, 85, 30, 0.3)}cg-board square.premove-dest:hover{background:rgba(20, 30, 85, 0.2)}cg-board square.last-move{background-color:rgba(155, 199, 0, 0.41)}cg-board square.selected{background-color:rgba(20, 85, 30, 0.5)}cg-board square.check{background:radial-gradient(ellipse at center, rgba(255, 0, 0, 1) 0%, rgba(231, 0, 0, 1) 25%, rgba(169, 0, 0, 0) 89%, rgba(158, 0, 0, 0) 100%)}cg-board square.current-premove{background-color:rgba(20, 30, 85, 0.5)}.cg-wrap piece.pawn.white{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PHBhdGggZD0iTTIyLjUgOWMtMi4yMSAwLTQgMS43OS00IDQgMCAuODkuMjkgMS43MS43OCAyLjM4QzE3LjMzIDE2LjUgMTYgMTguNTkgMTYgMjFjMCAyLjAzLjk0IDMuODQgMi40MSA1LjAzLTMgMS4wNi03LjQxIDUuNTUtNy40MSAxMy40N2gyM2MwLTcuOTItNC40MS0xMi40MS03LjQxLTEzLjQ3IDEuNDctMS4xOSAyLjQxLTMgMi40MS01LjAzIDAtMi40MS0xLjMzLTQuNS0zLjI4LTUuNjIuNDktLjY3Ljc4LTEuNDkuNzgtMi4zOCAwLTIuMjEtMS43OS00LTQtNHoiIGZpbGw9IiNmZmYiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPg==")}.cg-wrap piece.bishop.white{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxnIGZpbGw9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJidXR0Ij48cGF0aCBkPSJNOSAzNmMzLjM5LS45NyAxMC4xMS40MyAxMy41LTIgMy4zOSAyLjQzIDEwLjExIDEuMDMgMTMuNSAyIDAgMCAxLjY1LjU0IDMgMi0uNjguOTctMS42NS45OS0zIC41LTMuMzktLjk3LTEwLjExLjQ2LTEzLjUtMS0zLjM5IDEuNDYtMTAuMTEuMDMtMTMuNSAxLTEuMzU0LjQ5LTIuMzIzLjQ3LTMtLjUgMS4zNTQtMS45NCAzLTIgMy0yeiIvPjxwYXRoIGQ9Ik0xNSAzMmMyLjUgMi41IDEyLjUgMi41IDE1IDAgLjUtMS41IDAtMiAwLTIgMC0yLjUtMi41LTQtMi41LTQgNS41LTEuNSA2LTExLjUtNS0xNS41LTExIDQtMTAuNSAxNC01IDE1LjUgMCAwLTIuNSAxLjUtMi41IDQgMCAwLS41LjUgMCAyeiIvPjxwYXRoIGQ9Ik0yNSA4YTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAxIDEgNSAweiIvPjwvZz48cGF0aCBkPSJNMTcuNSAyNmgxME0xNSAzMGgxNW0tNy41LTE0LjV2NU0yMCAxOGg1IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIi8+PC9nPjwvc3ZnPg==")}.cg-wrap piece.knight.white{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMiAxMGMxMC41IDEgMTYuNSA4IDE2IDI5SDE1YzAtOSAxMC02LjUgOC0yMSIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0yNCAxOGMuMzggMi45MS01LjU1IDcuMzctOCA5LTMgMi0yLjgyIDQuMzQtNSA0LTEuMDQyLS45NCAxLjQxLTMuMDQgMC0zLTEgMCAuMTkgMS4yMy0xIDItMSAwLTQuMDAzIDEtNC00IDAtMiA2LTEyIDYtMTJzMS44OS0xLjkgMi0zLjVjLS43My0uOTk0LS41LTItLjUtMyAxLTEgMyAyLjUgMyAyLjVoMnMuNzgtMS45OTIgMi41LTNjMSAwIDEgMyAxIDMiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNOS41IDI1LjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDEgMSAxIDB6bTUuNDMzLTkuNzVhLjUgMS41IDMwIDEgMS0uODY2LS41LjUgMS41IDMwIDEgMSAuODY2LjV6IiBmaWxsPSIjMDAwIi8+PC9nPjwvc3ZnPg==")}.cg-wrap piece.rook.white{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik05IDM5aDI3di0zSDl2M3ptMy0zdi00aDIxdjRIMTJ6bS0xLTIyVjloNHYyaDVWOWg1djJoNVY5aDR2NSIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiLz48cGF0aCBkPSJNMzQgMTRsLTMgM0gxNGwtMy0zIi8+PHBhdGggZD0iTTMxIDE3djEyLjVIMTRWMTciIHN0cm9rZS1saW5lY2FwPSJidXR0IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIi8+PHBhdGggZD0iTTMxIDI5LjVsMS41IDIuNWgtMjBsMS41LTIuNSIvPjxwYXRoIGQ9Ik0xMSAxNGgyMyIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIvPjwvZz48L3N2Zz4=")}.cg-wrap piece.queen.white{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik04IDEyYTIgMiAwIDEgMS00IDAgMiAyIDAgMSAxIDQgMHptMTYuNS00LjVhMiAyIDAgMSAxLTQgMCAyIDIgMCAxIDEgNCAwek00MSAxMmEyIDIgMCAxIDEtNCAwIDIgMiAwIDEgMSA0IDB6TTE2IDguNWEyIDIgMCAxIDEtNCAwIDIgMiAwIDEgMSA0IDB6TTMzIDlhMiAyIDAgMSAxLTQgMCAyIDIgMCAxIDEgNCAweiIvPjxwYXRoIGQ9Ik05IDI2YzguNS0xLjUgMjEtMS41IDI3IDBsMi0xMi03IDExVjExbC01LjUgMTMuNS0zLTE1LTMgMTUtNS41LTE0VjI1TDcgMTRsMiAxMnoiIHN0cm9rZS1saW5lY2FwPSJidXR0Ii8+PHBhdGggZD0iTTkgMjZjMCAyIDEuNSAyIDIuNSA0IDEgMS41IDEgMSAuNSAzLjUtMS41IDEtMS41IDIuNS0xLjUgMi41LTEuNSAxLjUuNSAyLjUuNSAyLjUgNi41IDEgMTYuNSAxIDIzIDAgMCAwIDEuNS0xIDAtMi41IDAgMCAuNS0xLjUtMS0yLjUtLjUtMi41LS41LTIgLjUtMy41IDEtMiAyLjUtMiAyLjUtNC04LjUtMS41LTE4LjUtMS41LTI3IDB6IiBzdHJva2UtbGluZWNhcD0iYnV0dCIvPjxwYXRoIGQ9Ik0xMS41IDMwYzMuNS0xIDE4LjUtMSAyMiAwTTEyIDMzLjVjNi0xIDE1LTEgMjEgMCIgZmlsbD0ibm9uZSIvPjwvZz48L3N2Zz4=")}.cg-wrap piece.king.white{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMi41IDExLjYzVjZNMjAgOGg1IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIi8+PHBhdGggZD0iTTIyLjUgMjVzNC41LTcuNSAzLTEwLjVjMCAwLTEtMi41LTMtMi41cy0zIDIuNS0zIDIuNWMtMS41IDMgMyAxMC41IDMgMTAuNSIgZmlsbD0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiLz48cGF0aCBkPSJNMTEuNSAzN2M1LjUgMy41IDE1LjUgMy41IDIxIDB2LTdzOS00LjUgNi0xMC41Yy00LTYuNS0xMy41LTMuNS0xNiA0VjI3di0zLjVjLTMuNS03LjUtMTMtMTAuNS0xNi00LTMgNiA1IDEwIDUgMTBWMzd6IiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTExLjUgMzBjNS41LTMgMTUuNS0zIDIxIDBtLTIxIDMuNWM1LjUtMyAxNS41LTMgMjEgMG0tMjEgMy41YzUuNS0zIDE1LjUtMyAyMSAwIi8+PC9nPjwvc3ZnPg==")}.cg-wrap piece.pawn.black{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PHBhdGggZD0iTTIyLjUgOWMtMi4yMSAwLTQgMS43OS00IDQgMCAuODkuMjkgMS43MS43OCAyLjM4QzE3LjMzIDE2LjUgMTYgMTguNTkgMTYgMjFjMCAyLjAzLjk0IDMuODQgMi40MSA1LjAzLTMgMS4wNi03LjQxIDUuNTUtNy40MSAxMy40N2gyM2MwLTcuOTItNC40MS0xMi40MS03LjQxLTEzLjQ3IDEuNDctMS4xOSAyLjQxLTMgMi40MS01LjAzIDAtMi40MS0xLjMzLTQuNS0zLjI4LTUuNjIuNDktLjY3Ljc4LTEuNDkuNzgtMi4zOCAwLTIuMjEtMS43OS00LTQtNHoiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPg==")}.cg-wrap piece.bishop.black{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxnIGZpbGw9IiMwMDAiIHN0cm9rZS1saW5lY2FwPSJidXR0Ij48cGF0aCBkPSJNOSAzNmMzLjM5LS45NyAxMC4xMS40MyAxMy41LTIgMy4zOSAyLjQzIDEwLjExIDEuMDMgMTMuNSAyIDAgMCAxLjY1LjU0IDMgMi0uNjguOTctMS42NS45OS0zIC41LTMuMzktLjk3LTEwLjExLjQ2LTEzLjUtMS0zLjM5IDEuNDYtMTAuMTEuMDMtMTMuNSAxLTEuMzU0LjQ5LTIuMzIzLjQ3LTMtLjUgMS4zNTQtMS45NCAzLTIgMy0yeiIvPjxwYXRoIGQ9Ik0xNSAzMmMyLjUgMi41IDEyLjUgMi41IDE1IDAgLjUtMS41IDAtMiAwLTIgMC0yLjUtMi41LTQtMi41LTQgNS41LTEuNSA2LTExLjUtNS0xNS41LTExIDQtMTAuNSAxNC01IDE1LjUgMCAwLTIuNSAxLjUtMi41IDQgMCAwLS41LjUgMCAyeiIvPjxwYXRoIGQ9Ik0yNSA4YTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAxIDEgNSAweiIvPjwvZz48cGF0aCBkPSJNMTcuNSAyNmgxME0xNSAzMGgxNW0tNy41LTE0LjV2NU0yMCAxOGg1IiBzdHJva2U9IiNlY2VjZWMiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiLz48L2c+PC9zdmc+")}.cg-wrap piece.knight.black{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMiAxMGMxMC41IDEgMTYuNSA4IDE2IDI5SDE1YzAtOSAxMC02LjUgOC0yMSIgZmlsbD0iIzAwMCIvPjxwYXRoIGQ9Ik0yNCAxOGMuMzggMi45MS01LjU1IDcuMzctOCA5LTMgMi0yLjgyIDQuMzQtNSA0LTEuMDQyLS45NCAxLjQxLTMuMDQgMC0zLTEgMCAuMTkgMS4yMy0xIDItMSAwLTQuMDAzIDEtNC00IDAtMiA2LTEyIDYtMTJzMS44OS0xLjkgMi0zLjVjLS43My0uOTk0LS41LTItLjUtMyAxLTEgMyAyLjUgMyAyLjVoMnMuNzgtMS45OTIgMi41LTNjMSAwIDEgMyAxIDMiIGZpbGw9IiMwMDAiLz48cGF0aCBkPSJNOS41IDI1LjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDEgMSAxIDB6bTUuNDMzLTkuNzVhLjUgMS41IDMwIDEgMS0uODY2LS41LjUgMS41IDMwIDEgMSAuODY2LjV6IiBmaWxsPSIjZWNlY2VjIiBzdHJva2U9IiNlY2VjZWMiLz48cGF0aCBkPSJNMjQuNTUgMTAuNGwtLjQ1IDEuNDUuNS4xNWMzLjE1IDEgNS42NSAyLjQ5IDcuOSA2Ljc1UzM1Ljc1IDI5LjA2IDM1LjI1IDM5bC0uMDUuNWgyLjI1bC4wNS0uNWMuNS0xMC4wNi0uODgtMTYuODUtMy4yNS0yMS4zNC0yLjM3LTQuNDktNS43OS02LjY0LTkuMTktNy4xNmwtLjUxLS4xeiIgZmlsbD0iI2VjZWNlYyIgc3Ryb2tlPSJub25lIi8+PC9nPjwvc3ZnPg==")}.cg-wrap piece.rook.black{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik05IDM5aDI3di0zSDl2M3ptMy41LTdsMS41LTIuNWgxN2wxLjUgMi41aC0yMHptLS41IDR2LTRoMjF2NEgxMnoiIHN0cm9rZS1saW5lY2FwPSJidXR0Ii8+PHBhdGggZD0iTTE0IDI5LjV2LTEzaDE3djEzSDE0eiIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiLz48cGF0aCBkPSJNMTQgMTYuNUwxMSAxNGgyM2wtMyAyLjVIMTR6TTExIDE0VjloNHYyaDVWOWg1djJoNVY5aDR2NUgxMXoiIHN0cm9rZS1saW5lY2FwPSJidXR0Ii8+PHBhdGggZD0iTTEyIDM1LjVoMjFtLTIwLTRoMTltLTE4LTJoMTdtLTE3LTEzaDE3TTExIDE0aDIzIiBmaWxsPSJub25lIiBzdHJva2U9IiNlY2VjZWMiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIvPjwvZz48L3N2Zz4=")}.cg-wrap piece.queen.black{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxnIHN0cm9rZT0ibm9uZSI+PGNpcmNsZSBjeD0iNiIgY3k9IjEyIiByPSIyLjc1Ii8+PGNpcmNsZSBjeD0iMTQiIGN5PSI5IiByPSIyLjc1Ii8+PGNpcmNsZSBjeD0iMjIuNSIgY3k9IjgiIHI9IjIuNzUiLz48Y2lyY2xlIGN4PSIzMSIgY3k9IjkiIHI9IjIuNzUiLz48Y2lyY2xlIGN4PSIzOSIgY3k9IjEyIiByPSIyLjc1Ii8+PC9nPjxwYXRoIGQ9Ik05IDI2YzguNS0xLjUgMjEtMS41IDI3IDBsMi41LTEyLjVMMzEgMjVsLS4zLTE0LjEtNS4yIDEzLjYtMy0xNC41LTMgMTQuNS01LjItMTMuNkwxNCAyNSA2LjUgMTMuNSA5IDI2eiIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiLz48cGF0aCBkPSJNOSAyNmMwIDIgMS41IDIgMi41IDQgMSAxLjUgMSAxIC41IDMuNS0xLjUgMS0xLjUgMi41LTEuNSAyLjUtMS41IDEuNS41IDIuNS41IDIuNSA2LjUgMSAxNi41IDEgMjMgMCAwIDAgMS41LTEgMC0yLjUgMCAwIC41LTEuNS0xLTIuNS0uNS0yLjUtLjUtMiAuNS0zLjUgMS0yIDIuNS0yIDIuNS00LTguNS0xLjUtMTguNS0xLjUtMjcgMHoiIHN0cm9rZS1saW5lY2FwPSJidXR0Ii8+PHBhdGggZD0iTTExIDM4LjVhMzUgMzUgMSAwIDAgMjMgMCIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiLz48cGF0aCBkPSJNMTEgMjlhMzUgMzUgMSAwIDEgMjMgMG0tMjEuNSAyLjVoMjBtLTIxIDNhMzUgMzUgMSAwIDAgMjIgMG0tMjMgM2EzNSAzNSAxIDAgMCAyNCAwIiBmaWxsPSJub25lIiBzdHJva2U9IiNlY2VjZWMiLz48L2c+PC9zdmc+")}.cg-wrap piece.king.black{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMi41IDExLjYzVjYiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiLz48cGF0aCBkPSJNMjIuNSAyNXM0LjUtNy41IDMtMTAuNWMwIDAtMS0yLjUtMy0yLjVzLTMgMi41LTMgMi41Yy0xLjUgMyAzIDEwLjUgMyAxMC41IiBmaWxsPSIjMDAwIiBzdHJva2UtbGluZWNhcD0iYnV0dCIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIvPjxwYXRoIGQ9Ik0xMS41IDM3YzUuNSAzLjUgMTUuNSAzLjUgMjEgMHYtN3M5LTQuNSA2LTEwLjVjLTQtNi41LTEzLjUtMy41LTE2IDRWMjd2LTMuNWMtMy41LTcuNS0xMy0xMC41LTE2LTQtMyA2IDUgMTAgNSAxMFYzN3oiIGZpbGw9IiMwMDAiLz48cGF0aCBkPSJNMjAgOGg1IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIi8+PHBhdGggZD0iTTMyIDI5LjVzOC41LTQgNi4wMy05LjY1QzM0LjE1IDE0IDI1IDE4IDIyLjUgMjQuNWwuMDEgMi4xLS4wMS0yLjFDMjAgMTggOS45MDYgMTQgNi45OTcgMTkuODVjLTIuNDk3IDUuNjUgNC44NTMgOSA0Ljg1MyA5IiBzdHJva2U9IiNlY2VjZWMiLz48cGF0aCBkPSJNMTEuNSAzMGM1LjUtMyAxNS41LTMgMjEgMG0tMjEgMy41YzUuNS0zIDE1LjUtMyAyMSAwbS0yMSAzLjVjNS41LTMgMTUuNS0zIDIxIDAiIHN0cm9rZT0iI2VjZWNlYyIvPjwvZz48L3N2Zz4=")}.lpv__fbt{background:none;border:none;outline:none;color:var(--c-lpv-font, #aaa);align-items:normal;cursor:pointer;text-transform:uppercase;font-size:1em;line-height:1.5;text-decoration:none}@media(hover: hover){.lpv__fbt:hover:not(.disabled):not([disabled]){background:var(--c-lpv-fbt-hover, lpv-fbt-hover);color:#fff}}.lpv__fbt.active{background:var(--c-lpv-accent, hsl(88, 62%, 37%)) !important;color:#fff}.lpv__fbt.disabled,.lpv__fbt[disabled]{pointer-events:none;opacity:.4;cursor:default}.lpv__board .cg-wrap{position:relative;display:block;height:0;padding-bottom:100%;width:100%}.lpv__sr-only{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.lpv{display:grid;overflow:hidden;grid-row-gap:0;--controls-height: 4em}.lpv--controls-false{--controls-height: 0em}.lpv--moves-false{grid-template-areas:"board" "controls";grid-template-columns:minmax(200px, calc(100vh - var(--controls-height)));grid-template-rows:auto var(--controls-height)}.lpv--moves-right{grid-template-areas:"board side" "controls side";grid-template-columns:auto fit-content(40%);grid-template-rows:auto var(--controls-height)}.lpv--moves-bottom{grid-template-areas:"board" "controls" "side";grid-template-rows:auto var(--controls-height)}.lpv--moves-bottom .lpv__controls{border-bottom:1px solid var(--c-lpv-border, hsl(0, 0%, 25%))}.lpv--moves-auto{grid-template-areas:"board side" "controls side";grid-template-columns:minmax(200px, calc(100vh - var(--controls-height))) minmax(232px, 1fr);grid-template-rows:auto var(--controls-height)}@media(max-width: 450px){.lpv--moves-auto{grid-template-areas:"board" "controls" "side";grid-template-columns:minmax(200px, calc(100vh - var(--controls-height) - 6em));grid-template-rows:auto var(--controls-height)}}.lpv--players.lpv--moves-false{grid-template-areas:"player-top" "board" "player-bot" "controls";grid-template-rows:2em auto 2em var(--controls-height)}.lpv--players.lpv--moves-right{grid-template-areas:"player-top side" "board side" "player-bot side" "controls side";grid-template-rows:2em auto 2em var(--controls-height)}.lpv--players.lpv--moves-bottom{grid-template-areas:"player-top" "board" "player-bot" "controls" "side";grid-template-rows:2em auto 2em var(--controls-height) 6em}.lpv--players.lpv--moves-bottom .lpv__controls{border-bottom:1px solid var(--c-lpv-border, hsl(0, 0%, 25%))}.lpv--players.lpv--moves-auto{grid-template-areas:"player-top side" "board side" "player-bot side" "controls side";grid-template-columns:minmax(200px, calc(100vh - 2 * 2em - var(--controls-height))) minmax(232px, 1fr);grid-template-rows:2em auto 2em var(--controls-height)}@media(max-width: 450px){.lpv--players.lpv--moves-auto{grid-template-areas:"player-top" "board" "player-bot" "controls" "side";grid-template-columns:minmax(200px, calc(100vh - 2 * 2em - var(--controls-height) - 6em));grid-template-rows:2em auto 2em var(--controls-height) 6em}}.lpv__board{grid-area:board}.lpv__side{grid-area:side}.lpv__player--top{grid-area:player-top}.lpv__player--bottom{grid-area:player-bot}.lpv__controls{grid-area:controls}.lpv__menu,.lpv__pgn{grid-area:1/1/2/2}.lpv--players .lpv__menu,.lpv--players .lpv__pgn{grid-area:1/1/4/2}.lpv__side{overflow:hidden;display:flex;flex-flow:column}.lpv__moves{position:relative;flex:1 1 0;display:flex;flex-flow:row wrap;overflow-y:auto;background:var(--c-lpv-bg-movelist, hsl(37, 5%, 18%));align-items:center;align-content:flex-start;will-change:scroll-position;user-select:none;line-height:1.7;min-width:20ch}.lpv__moves index{color:var(--c-lpv-font-shy, rgb(109.0975, 108.21775, 106.8025))}.lpv__moves>index{flex:0 0 15%;margin-right:3%;display:flex;justify-content:flex-end}.lpv__moves .move{border:none;background:rgba(0,0,0,0);font-family:inherit;font-size:inherit;text-align:left;margin:0;padding:4px 0 6px 0;outline:none;color:inherit;border-radius:3px;padding-left:3%;font-weight:bold;white-space:nowrap}.lpv__moves .move.empty{color:var(--c-lpv-font-shy, rgb(109.0975, 108.21775, 106.8025))}.lpv__moves .move:not(.empty):hover{background:var(--c-lpv-move-hover, rgb(63.21144, 78.35895, 41.2794));color:var(--c-lpv-accent-over, white);cursor:pointer}.lpv__moves .move.ancestor{color:var(--c-lpv-past-moves, #aaa)}.lpv__moves .move.current{background:var(--c-lpv-current-move, rgb(83.23336, 120.92355, 38.1786)) !important;color:var(--c-lpv-accent-over, white)}.lpv__moves .move.inaccuracy{color:var(--c-lpv-inaccuracy, hsl(202, 78%, 62%))}.lpv__moves .move.inaccuracy:hover{background:var(--c-lpv-bg-inaccuracy-hover, rgb(58.4919, 85.98141, 100.6281))}.lpv__moves .move.mistake{color:var(--c-lpv-mistake, hsl(41, 100%, 45%))}.lpv__moves .move.mistake:hover{background:var(--c-lpv-bg-mistake-hover, rgb(102.5865, 79.55235, 30.5235))}.lpv__moves .move.blunder{color:var(--c-lpv-blunder, hsl(0, 69%, 60%))}.lpv__moves .move.blunder:hover{background:var(--c-lpv-bg-blunder-hover, rgb(100.7505, 57.29085, 55.3095))}.lpv__moves .move.good{color:var(--c-lpv-good-move, hsl(130, 67%, 62%))}.lpv__moves .move.good:hover{background:var(--c-lpv-bg-good-hover, rgb(61.6896, 99.41175, 64.9689))}.lpv__moves .move.brilliant{color:var(--c-lpv-brilliant, hsl(129, 71%, 45%))}.lpv__moves .move.brilliant:hover{background:var(--c-lpv-bg-brilliant-hover, rgb(43.71975, 91.3716, 47.839275))}.lpv__moves .move.interesting{color:var(--c-lpv-interesting, hsl(307, 80%, 70%))}.lpv__moves .move.interesting:hover{background:var(--c-lpv-bg-interesting-hover, rgb(105.6465, 67.69485, 98.1495))}.lpv__moves>.move{flex:0 0 41%;font-size:1.1em}.lpv__moves comment{user-select:text;font-size:.9em}.lpv__moves comment.result{text-align:center;font-weight:bold}.lpv__moves>comment{flex:1 1 100%;background:var(--c-lpv-bg-variation, hsl(37, 5%, 15%));border:1px solid var(--c-lpv-side-border, hsl(37, 5%, 13%));border-width:1px 0;padding:.4em 1em;line-height:1.4;overflow-wrap:break-word;word-break:break-word}.lpv__moves>comment+variation,.lpv__moves>comment+comment{border-top:none}.lpv__moves>variation{flex:1 1 100%;display:block;overflow:hidden;font-size:.8em;background:var(--c-lpv-bg-variation, hsl(37, 5%, 15%));border:1px solid var(--c-lpv-side-border, hsl(37, 5%, 13%));border-width:1px 0;padding:0em .6em}.lpv__moves>variation+variation{border-top:none}.lpv__moves>variation .move{border:none;background:rgba(0,0,0,0);font-family:inherit;font-size:inherit;margin:0;outline:none;display:inline-block;padding:.1em .2em;min-width:2.5ch;text-align:center}.lpv__moves>variation .move+index{margin-left:.2em}.lpv__moves>variation index{margin:0;padding:.1em 0}.lpv__moves>variation index+.move{margin-left:.1em}.lpv__moves>variation comment{align-self:center;margin:0 .3em}.lpv__moves>variation paren{color:var(--c-lpv-font-shy, rgb(109.0975, 108.21775, 106.8025))}.lpv__moves>variation paren.open{margin:0 .1em 0 .2em}.lpv__moves>variation paren.close{margin:0 .2em 0 .1em}.lpv__player{font-size:.8em;background:var(--c-lpv-bg-player, hsl(37, 5%, 18%));display:flex;flex-flow:row nowrap;padding:0 1em}.lpv__player--bottom{border-bottom:1px solid var(--c-lpv-border, hsl(0, 0%, 25%))}.lpv--controls-false .lpv__player--bottom{border-bottom:none}.lpv__player__person{flex:1 1 auto;display:flex;flex-flow:row nowrap;align-items:center;gap:1ch;color:var(--c-lpv-font, #aaa);text-decoration:none}.lpv__player__title{font-weight:bold}.lpv__player__clock{display:flex;flex-flow:row nowrap;align-items:center;font-family:monospace;font-size:1.4em;font-weight:bold}.lpv__player__clock.active{color:var(--c-lpv-accent, hsl(88, 62%, 37%))}.lpv__pane{z-index:2;border-bottom:2px solid var(--c-lpv-accent, hsl(88, 62%, 37%));background:var(--c-lpv-bg-pane, rgb(55.70322, 62.397225, 42.4422));display:flex;flex-flow:column;justify-content:center}.lpv__pane .lpv__fbt{text-align:left;padding:.8em 2.5em;transition:none}.lpv__pane .lpv__fbt::before{color:var(--c-lpv-accent, hsl(88, 62%, 37%));font-size:2em}.lpv__pane .lpv__fbt:hover::before{color:var(--c-lpv-accent-over, white)}.lpv__pgn__text{flex:1 1 auto;background:var(--c-lpv-pgn-text, rgb(50.447466, 51.2240175, 43.25616));color:var(--c-lpv-font, #aaa);padding:.8em 1.3em}.lpv__controls{display:flex;flex-flow:row nowrap;align-items:stretch;user-select:none;background:var(--c-lpv-bg-controls, hsl(37, 5%, 18%))}.lpv__controls .lpv__fbt{flex:1 1 auto;font-size:1.4em;padding:.4em .7em;border-left:1px solid var(--c-lpv-border, hsl(0, 0%, 25%))}.lpv__controls .lpv__fbt:first-child{border:none}.lpv__controls__menu.lpv__fbt{flex:0 1 auto;width:4em;padding:.45em 1em .35em 1em;font-size:1.1em}.lpv__controls__goto{padding:.4rem .7rem}.lpv *::-webkit-scrollbar,.lpv *::-webkit-scrollbar-corner{width:.5rem;background:var(--c-lpv-bg, hsl(37, 5%, 18%))}.lpv *::-webkit-scrollbar-thumb{background:var(--c-lpv-font-bg, rgb(72.556, 71.1484, 68.884))}.lpv *::-webkit-scrollbar-thumb:hover,.lpv *::-webkit-scrollbar-thumb:active{background:var(--c-lpv-font-shy, rgb(109.0975, 108.21775, 106.8025))}@font-face{font-family:"lpv-fontello";src:url("data:application/octet-stream;base64,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") format("woff"),url("data:application/octet-stream;base64,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") format("truetype")}.lpv__icon:before{font-family:"lpv-fontello";font-size:1.1em;width:1em;text-align:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lpv__icon-step-forward:before{content:""}.lpv__icon-step-backward:before{content:""}.lpv__icon-left-open:before{content:""}.lpv__icon-right-open:before{content:""}.lpv__icon-ellipsis-vert:before{content:""}.lpv{border-radius:5px;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);overflow:hidden;background:var(--c-lpv-bg, hsl(37, 5%, 18%));color:var(--c-lpv-font, #aaa);box-sizing:border-box}.lpv *,.lpv *::before,.lpv *::after{box-sizing:inherit}.lpv__board{user-select:none}.lpv__board cg-board{box-shadow:none}.lpv:focus{outline:auto 2px var(--c-lpv-accent, hsl(88, 62%, 37%))}
@@ -1,4 +1,4 @@
1
- var Te=["a","b","c","d","e","f","g","h"],st=["1","2","3","4","5","6","7","8"];var F=["white","black"],W=["pawn","knight","bishop","rook","queen","king"],Hn=["a","h"],ie=e=>"role"in e;var b=e=>e!==void 0,P=e=>e==="white"?"black":"white",X=e=>e>>3,D=e=>e&7,at=(e,t)=>0<=e&&e<8&&0<=t&&t<8?e+8*t:void 0,oe=e=>{switch(e){case"pawn":return"p";case"knight":return"n";case"bishop":return"b";case"rook":return"r";case"queen":return"q";case"king":return"k"}};function Re(e){switch(e.toLowerCase()){case"p":return"pawn";case"n":return"knight";case"b":return"bishop";case"r":return"rook";case"q":return"queen";case"k":return"king";default:return}}function ue(e){if(e.length===2)return at(e.charCodeAt(0)-97,e.charCodeAt(1)-49)}var U=e=>Te[D(e)]+st[X(e)];var Ft=e=>ie(e)?`${oe(e.role).toUpperCase()}@${U(e.to)}`:U(e.from)+U(e.to)+(e.promotion?oe(e.promotion):""),Ve=(e,t)=>e==="white"?t==="a"?2:6:t==="a"?58:62,ct=(e,t)=>e==="white"?t==="a"?3:5:t==="a"?59:61;var Gn=e=>(e=e-(e>>>1&1431655765),e=(e&858993459)+(e>>>2&858993459),Math.imul(e+(e>>>4)&252645135,16843009)>>24),Vt=e=>(e=e>>>8&16711935|(e&16711935)<<8,e>>>16&65535|(e&65535)<<16),Wn=e=>(e=e>>>1&1431655765|(e&1431655765)<<1,e=e>>>2&858993459|(e&858993459)<<2,e=e>>>4&252645135|(e&252645135)<<4,Vt(e)),u=class e{constructor(t,n){this.lo=t|0,this.hi=n|0}static fromSquare(t){return t>=32?new e(0,1<<t-32):new e(1<<t,0)}static fromRank(t){return new e(255,0).shl64(8*t)}static fromFile(t){return new e(16843009<<t,16843009<<t)}static empty(){return new e(0,0)}static full(){return new e(4294967295,4294967295)}static corners(){return new e(129,2164260864)}static center(){return new e(402653184,24)}static backranks(){return new e(255,4278190080)}static backrank(t){return t==="white"?new e(255,0):new e(0,4278190080)}static lightSquares(){return new e(1437226410,1437226410)}static darkSquares(){return new e(2857740885,2857740885)}complement(){return new e(~this.lo,~this.hi)}xor(t){return new e(this.lo^t.lo,this.hi^t.hi)}union(t){return new e(this.lo|t.lo,this.hi|t.hi)}intersect(t){return new e(this.lo&t.lo,this.hi&t.hi)}diff(t){return new e(this.lo&~t.lo,this.hi&~t.hi)}intersects(t){return this.intersect(t).nonEmpty()}isDisjoint(t){return this.intersect(t).isEmpty()}supersetOf(t){return t.diff(this).isEmpty()}subsetOf(t){return this.diff(t).isEmpty()}shr64(t){return t>=64?e.empty():t>=32?new e(this.hi>>>t-32,0):t>0?new e(this.lo>>>t^this.hi<<32-t,this.hi>>>t):this}shl64(t){return t>=64?e.empty():t>=32?new e(0,this.lo<<t-32):t>0?new e(this.lo<<t,this.hi<<t^this.lo>>>32-t):this}bswap64(){return new e(Vt(this.hi),Vt(this.lo))}rbit64(){return new e(Wn(this.hi),Wn(this.lo))}minus64(t){let n=this.lo-t.lo,r=(n&t.lo&1)+(t.lo>>>1)+(n>>>1)>>>31;return new e(n,this.hi-(t.hi+r))}equals(t){return this.lo===t.lo&&this.hi===t.hi}size(){return Gn(this.lo)+Gn(this.hi)}isEmpty(){return this.lo===0&&this.hi===0}nonEmpty(){return this.lo!==0||this.hi!==0}has(t){return(t>=32?this.hi&1<<t-32:this.lo&1<<t)!==0}set(t,n){return n?this.with(t):this.without(t)}with(t){return t>=32?new e(this.lo,this.hi|1<<t-32):new e(this.lo|1<<t,this.hi)}without(t){return t>=32?new e(this.lo,this.hi&~(1<<t-32)):new e(this.lo&~(1<<t),this.hi)}toggle(t){return t>=32?new e(this.lo,this.hi^1<<t-32):new e(this.lo^1<<t,this.hi)}last(){if(this.hi!==0)return 63-Math.clz32(this.hi);if(this.lo!==0)return 31-Math.clz32(this.lo)}first(){if(this.lo!==0)return 31-Math.clz32(this.lo&-this.lo);if(this.hi!==0)return 63-Math.clz32(this.hi&-this.hi)}withoutFirst(){return this.lo!==0?new e(this.lo&this.lo-1,this.hi):new e(0,this.hi&this.hi-1)}moreThanOne(){return this.hi!==0&&this.lo!==0||(this.lo&this.lo-1)!==0||(this.hi&this.hi-1)!==0}singleSquare(){return this.moreThanOne()?void 0:this.last()}*[Symbol.iterator](){let t=this.lo,n=this.hi;for(;t!==0;){let r=31-Math.clz32(t&-t);t^=1<<r,yield r}for(;n!==0;){let r=31-Math.clz32(n&-n);n^=1<<r,yield 32+r}}*reversed(){let t=this.lo,n=this.hi;for(;n!==0;){let r=31-Math.clz32(n);n^=1<<r,yield 32+r}for(;t!==0;){let r=31-Math.clz32(t);t^=1<<r,yield r}}};var lt=(e,t)=>{let n=u.empty();for(let r of t){let i=e+r;0<=i&&i<64&&Math.abs(D(e)-D(i))<=2&&(n=n.with(i))}return n},we=e=>{let t=[];for(let n=0;n<64;n++)t[n]=e(n);return t},ji=we(e=>lt(e,[-9,-8,-7,-1,1,7,8,9])),Yi=we(e=>lt(e,[-17,-15,-10,-6,6,10,15,17])),Zi={white:we(e=>lt(e,[7,9])),black:we(e=>lt(e,[-7,-9]))},se=e=>ji[e],Le=e=>Yi[e],ve=(e,t)=>Zi[e][t],Ht=we(e=>u.fromFile(D(e)).without(e)),Gt=we(e=>u.fromRank(X(e)).without(e)),Wt=we(e=>{let t=new u(134480385,2151686160),n=8*(X(e)-D(e));return(n>=0?t.shl64(n):t.shr64(-n)).without(e)}),Ut=we(e=>{let t=new u(270549120,16909320),n=8*(X(e)+D(e)-7);return(n>=0?t.shl64(n):t.shr64(-n)).without(e)}),jt=(e,t,n)=>{let r=n.intersect(t),i=r.bswap64();return r=r.minus64(e),i=i.minus64(e.bswap64()),r.xor(i.bswap64()).intersect(t)},Qi=(e,t)=>jt(u.fromSquare(e),Ht[e],t),Xi=(e,t)=>{let n=Gt[e],r=t.intersect(n),i=r.rbit64();return r=r.minus64(u.fromSquare(e)),i=i.minus64(u.fromSquare(63-e)),r.xor(i.rbit64()).intersect(n)},ye=(e,t)=>{let n=u.fromSquare(e);return jt(n,Wt[e],t).xor(jt(n,Ut[e],t))},xe=(e,t)=>Qi(e,t).xor(Xi(e,t)),He=(e,t)=>ye(e,t).xor(xe(e,t)),ut=(e,t,n)=>{switch(e.role){case"pawn":return ve(e.color,t);case"knight":return Le(t);case"bishop":return ye(t,n);case"rook":return xe(t,n);case"queen":return He(t,n);case"king":return se(t)}},Yt=(e,t)=>{let n=u.fromSquare(t);return Gt[e].intersects(n)?Gt[e].with(e):Ut[e].intersects(n)?Ut[e].with(e):Wt[e].intersects(n)?Wt[e].with(e):Ht[e].intersects(n)?Ht[e].with(e):u.empty()},Ce=(e,t)=>Yt(e,t).intersect(u.full().shl64(e).xor(u.full().shl64(t))).withoutFirst();var he=class e{constructor(){}static default(){let t=new e;return t.reset(),t}reset(){this.occupied=new u(65535,4294901760),this.promoted=u.empty(),this.white=new u(65535,0),this.black=new u(0,4294901760),this.pawn=new u(65280,16711680),this.knight=new u(66,1107296256),this.bishop=new u(36,603979776),this.rook=new u(129,2164260864),this.queen=new u(8,134217728),this.king=new u(16,268435456)}static empty(){let t=new e;return t.clear(),t}clear(){this.occupied=u.empty(),this.promoted=u.empty();for(let t of F)this[t]=u.empty();for(let t of W)this[t]=u.empty()}clone(){let t=new e;t.occupied=this.occupied,t.promoted=this.promoted;for(let n of F)t[n]=this[n];for(let n of W)t[n]=this[n];return t}getColor(t){if(this.white.has(t))return"white";if(this.black.has(t))return"black"}getRole(t){for(let n of W)if(this[n].has(t))return n}get(t){let n=this.getColor(t);if(!n)return;let r=this.getRole(t),i=this.promoted.has(t);return{color:n,role:r,promoted:i}}take(t){let n=this.get(t);return n&&(this.occupied=this.occupied.without(t),this[n.color]=this[n.color].without(t),this[n.role]=this[n.role].without(t),n.promoted&&(this.promoted=this.promoted.without(t))),n}set(t,n){let r=this.take(t);return this.occupied=this.occupied.with(t),this[n.color]=this[n.color].with(t),this[n.role]=this[n.role].with(t),n.promoted&&(this.promoted=this.promoted.with(t)),r}has(t){return this.occupied.has(t)}*[Symbol.iterator](){for(let t of this.occupied)yield[t,this.get(t)]}pieces(t,n){return this[t].intersect(this[n])}rooksAndQueens(){return this.rook.union(this.queen)}bishopsAndQueens(){return this.bishop.union(this.queen)}steppers(){return this.knight.union(this.pawn).union(this.king)}sliders(){return this.bishop.union(this.rook).union(this.queen)}kingOf(t){return this.pieces(t,"king").singleSquare()}};var de=class e{constructor(){}static empty(){let t=new e;for(let n of W)t[n]=0;return t}static fromBoard(t,n){let r=new e;for(let i of W)r[i]=t.pieces(n,i).size();return r}clone(){let t=new e;for(let n of W)t[n]=this[n];return t}equals(t){return W.every(n=>this[n]===t[n])}add(t){let n=new e;for(let r of W)n[r]=this[r]+t[r];return n}subtract(t){let n=new e;for(let r of W)n[r]=this[r]-t[r];return n}nonEmpty(){return W.some(t=>this[t]>0)}isEmpty(){return!this.nonEmpty()}hasPawns(){return this.pawn>0}hasNonPawns(){return this.knight>0||this.bishop>0||this.rook>0||this.queen>0||this.king>0}size(){return this.pawn+this.knight+this.bishop+this.rook+this.queen+this.king}},Oe=class e{constructor(t,n){this.white=t,this.black=n}static empty(){return new e(de.empty(),de.empty())}static fromBoard(t){return new e(de.fromBoard(t,"white"),de.fromBoard(t,"black"))}clone(){return new e(this.white.clone(),this.black.clone())}equals(t){return this.white.equals(t.white)&&this.black.equals(t.black)}add(t){return new e(this.white.add(t.white),this.black.add(t.black))}subtract(t){return new e(this.white.subtract(t.white),this.black.subtract(t.black))}count(t){return this.white[t]+this.black[t]}size(){return this.white.size()+this.black.size()}isEmpty(){return this.white.isEmpty()&&this.black.isEmpty()}nonEmpty(){return!this.isEmpty()}hasPawns(){return this.white.hasPawns()||this.black.hasPawns()}hasNonPawns(){return this.white.hasNonPawns()||this.black.hasNonPawns()}},Se=class e{constructor(t,n){this.white=t,this.black=n}static default(){return new e(3,3)}clone(){return new e(this.white,this.black)}equals(t){return this.white===t.white&&this.black===t.black}};var ht=class{unwrap(t,n){let r=this._chain(i=>k.ok(t?t(i):i),i=>n?k.ok(n(i)):k.err(i));if(r.isErr)throw r.error;return r.value}map(t,n){return this._chain(r=>k.ok(t(r)),r=>k.err(n?n(r):r))}chain(t,n){return this._chain(t,n??(r=>k.err(r)))}},Zt=class extends ht{constructor(t){super(),this.value=t,this.isOk=!0,this.isErr=!1}_chain(t,n){return t(this.value)}},Qt=class extends ht{constructor(t){super(),this.error=t,this.isOk=!1,this.isErr=!0}_chain(t,n){return n(this.error)}},k;(function(e){function t(i){return new Zt(i)}e.ok=t;function n(i){return new Qt(i||new Error)}e.err=n;function r(i){if(Array.isArray(i)){let a=[];for(let l=0;l<i.length;l++){let c=i[l];if(c.isErr)return c;a.push(c.value)}return e.ok(a)}let o={},s=Object.keys(i);for(let a=0;a<s.length;a++){let l=i[s[a]];if(l.isErr)return l;o[s[a]]=l.value}return e.ok(o)}e.all=r})(k||(k={}));var R;(function(e){e.Empty="ERR_EMPTY",e.OppositeCheck="ERR_OPPOSITE_CHECK",e.PawnsOnBackrank="ERR_PAWNS_ON_BACKRANK",e.Kings="ERR_KINGS",e.Variant="ERR_VARIANT"})(R||(R={}));var O=class extends Error{},Ji=(e,t,n,r)=>n[t].intersect(xe(e,r).intersect(n.rooksAndQueens()).union(ye(e,r).intersect(n.bishopsAndQueens())).union(Le(e).intersect(n.knight)).union(se(e).intersect(n.king)).union(ve(P(t),e).intersect(n.pawn))),ae=class e{constructor(){}static default(){let t=new e;return t.castlingRights=u.corners(),t.rook={white:{a:0,h:7},black:{a:56,h:63}},t.path={white:{a:new u(14,0),h:new u(96,0)},black:{a:new u(0,234881024),h:new u(0,1610612736)}},t}static empty(){let t=new e;return t.castlingRights=u.empty(),t.rook={white:{a:void 0,h:void 0},black:{a:void 0,h:void 0}},t.path={white:{a:u.empty(),h:u.empty()},black:{a:u.empty(),h:u.empty()}},t}clone(){let t=new e;return t.castlingRights=this.castlingRights,t.rook={white:{a:this.rook.white.a,h:this.rook.white.h},black:{a:this.rook.black.a,h:this.rook.black.h}},t.path={white:{a:this.path.white.a,h:this.path.white.h},black:{a:this.path.black.a,h:this.path.black.h}},t}add(t,n,r,i){let o=Ve(t,n),s=ct(t,n);this.castlingRights=this.castlingRights.with(i),this.rook[t][n]=i,this.path[t][n]=Ce(i,s).with(s).union(Ce(r,o).with(o)).without(r).without(i)}static fromSetup(t){let n=e.empty(),r=t.castlingRights.intersect(t.board.rook);for(let i of F){let o=u.backrank(i),s=t.board.kingOf(i);if(!b(s)||!o.has(s))continue;let a=r.intersect(t.board[i]).intersect(o),l=a.first();b(l)&&l<s&&n.add(i,"a",s,l);let c=a.last();b(c)&&s<c&&n.add(i,"h",s,c)}return n}discardRook(t){if(this.castlingRights.has(t)){this.castlingRights=this.castlingRights.without(t);for(let n of F)for(let r of Hn)this.rook[n][r]===t&&(this.rook[n][r]=void 0)}}discardColor(t){this.castlingRights=this.castlingRights.diff(u.backrank(t)),this.rook[t].a=void 0,this.rook[t].h=void 0}},J=class{constructor(t){this.rules=t}reset(){this.board=he.default(),this.pockets=void 0,this.turn="white",this.castles=ae.default(),this.epSquare=void 0,this.remainingChecks=void 0,this.halfmoves=0,this.fullmoves=1}setupUnchecked(t){this.board=t.board.clone(),this.board.promoted=u.empty(),this.pockets=void 0,this.turn=t.turn,this.castles=ae.fromSetup(t),this.epSquare=eo(this,t.epSquare),this.remainingChecks=void 0,this.halfmoves=t.halfmoves,this.fullmoves=t.fullmoves}kingAttackers(t,n,r){return Ji(t,n,this.board,r)}playCaptureAt(t,n){this.halfmoves=0,n.role==="rook"&&this.castles.discardRook(t),this.pockets&&this.pockets[P(n.color)][n.promoted?"pawn":n.role]++}ctx(){let t=this.isVariantEnd(),n=this.board.kingOf(this.turn);if(!b(n))return{king:n,blockers:u.empty(),checkers:u.empty(),variantEnd:t,mustCapture:!1};let r=xe(n,u.empty()).intersect(this.board.rooksAndQueens()).union(ye(n,u.empty()).intersect(this.board.bishopsAndQueens())).intersect(this.board[P(this.turn)]),i=u.empty();for(let s of r){let a=Ce(n,s).intersect(this.board.occupied);a.moreThanOne()||(i=i.union(a))}let o=this.kingAttackers(n,P(this.turn),this.board.occupied);return{king:n,blockers:i,checkers:o,variantEnd:t,mustCapture:!1}}clone(){var t,n;let r=new this.constructor;return r.board=this.board.clone(),r.pockets=(t=this.pockets)===null||t===void 0?void 0:t.clone(),r.turn=this.turn,r.castles=this.castles.clone(),r.epSquare=this.epSquare,r.remainingChecks=(n=this.remainingChecks)===null||n===void 0?void 0:n.clone(),r.halfmoves=this.halfmoves,r.fullmoves=this.fullmoves,r}validate(){if(this.board.occupied.isEmpty())return k.err(new O(R.Empty));if(this.board.king.size()!==2)return k.err(new O(R.Kings));if(!b(this.board.kingOf(this.turn)))return k.err(new O(R.Kings));let t=this.board.kingOf(P(this.turn));return b(t)?this.kingAttackers(t,this.turn,this.board.occupied).nonEmpty()?k.err(new O(R.OppositeCheck)):u.backranks().intersects(this.board.pawn)?k.err(new O(R.PawnsOnBackrank)):k.ok(void 0):k.err(new O(R.Kings))}dropDests(t){return u.empty()}dests(t,n){if(n=n||this.ctx(),n.variantEnd)return u.empty();let r=this.board.get(t);if(!r||r.color!==this.turn)return u.empty();let i,o;if(r.role==="pawn"){i=ve(this.turn,t).intersect(this.board[P(this.turn)]);let s=this.turn==="white"?8:-8,a=t+s;if(0<=a&&a<64&&!this.board.occupied.has(a)){i=i.with(a);let l=this.turn==="white"?t<16:t>=48,c=a+s;l&&!this.board.occupied.has(c)&&(i=i.with(c))}b(this.epSquare)&&no(this,t,n)&&(o=u.fromSquare(this.epSquare))}else r.role==="bishop"?i=ye(t,this.board.occupied):r.role==="knight"?i=Le(t):r.role==="rook"?i=xe(t,this.board.occupied):r.role==="queen"?i=He(t,this.board.occupied):i=se(t);if(i=i.diff(this.board[this.turn]),b(n.king)){if(r.role==="king"){let s=this.board.occupied.without(t);for(let a of i)this.kingAttackers(a,P(this.turn),s).nonEmpty()&&(i=i.without(a));return i.union(dt(this,"a",n)).union(dt(this,"h",n))}if(n.checkers.nonEmpty()){let s=n.checkers.singleSquare();if(!b(s))return u.empty();i=i.intersect(Ce(s,n.king).with(s))}n.blockers.has(t)&&(i=i.intersect(Yt(t,n.king)))}return o&&(i=i.union(o)),i}isVariantEnd(){return!1}variantOutcome(t){}hasInsufficientMaterial(t){return this.board[t].intersect(this.board.pawn.union(this.board.rooksAndQueens())).nonEmpty()?!1:this.board[t].intersects(this.board.knight)?this.board[t].size()<=2&&this.board[P(t)].diff(this.board.king).diff(this.board.queen).isEmpty():this.board[t].intersects(this.board.bishop)?(!this.board.bishop.intersects(u.darkSquares())||!this.board.bishop.intersects(u.lightSquares()))&&this.board.pawn.isEmpty()&&this.board.knight.isEmpty():!0}toSetup(){var t,n;return{board:this.board.clone(),pockets:(t=this.pockets)===null||t===void 0?void 0:t.clone(),turn:this.turn,castlingRights:this.castles.castlingRights,epSquare:to(this),remainingChecks:(n=this.remainingChecks)===null||n===void 0?void 0:n.clone(),halfmoves:Math.min(this.halfmoves,150),fullmoves:Math.min(Math.max(this.fullmoves,1),9999)}}isInsufficientMaterial(){return F.every(t=>this.hasInsufficientMaterial(t))}hasDests(t){t=t||this.ctx();for(let n of this.board[this.turn])if(this.dests(n,t).nonEmpty())return!0;return this.dropDests(t).nonEmpty()}isLegal(t,n){if(ie(t))return!this.pockets||this.pockets[this.turn][t.role]<=0||t.role==="pawn"&&u.backranks().has(t.to)?!1:this.dropDests(n).has(t.to);{if(t.promotion==="pawn"||t.promotion==="king"&&this.rules!=="antichess"||!!t.promotion!==(this.board.pawn.has(t.from)&&u.backranks().has(t.to)))return!1;let r=this.dests(t.from,n);return r.has(t.to)||r.has(Un(this,t).to)}}isCheck(){let t=this.board.kingOf(this.turn);return b(t)&&this.kingAttackers(t,P(this.turn),this.board.occupied).nonEmpty()}isEnd(t){return(t?t.variantEnd:this.isVariantEnd())?!0:this.isInsufficientMaterial()||!this.hasDests(t)}isCheckmate(t){return t=t||this.ctx(),!t.variantEnd&&t.checkers.nonEmpty()&&!this.hasDests(t)}isStalemate(t){return t=t||this.ctx(),!t.variantEnd&&t.checkers.isEmpty()&&!this.hasDests(t)}outcome(t){let n=this.variantOutcome(t);return n||(t=t||this.ctx(),this.isCheckmate(t)?{winner:P(this.turn)}:this.isInsufficientMaterial()||this.isStalemate(t)?{winner:void 0}:void 0)}allDests(t){t=t||this.ctx();let n=new Map;if(t.variantEnd)return n;for(let r of this.board[this.turn])n.set(r,this.dests(r,t));return n}play(t){let n=this.turn,r=this.epSquare,i=Xt(this,t);if(this.epSquare=void 0,this.halfmoves+=1,n==="black"&&(this.fullmoves+=1),this.turn=P(n),ie(t))this.board.set(t.to,{role:t.role,color:n}),this.pockets&&this.pockets[n][t.role]--,t.role==="pawn"&&(this.halfmoves=0);else{let o=this.board.take(t.from);if(!o)return;let s;if(o.role==="pawn"){this.halfmoves=0,t.to===r&&(s=this.board.take(t.to+(n==="white"?-8:8)));let a=t.from-t.to;Math.abs(a)===16&&8<=t.from&&t.from<=55&&(this.epSquare=t.from+t.to>>1),t.promotion&&(o.role=t.promotion,o.promoted=!!this.pockets)}else if(o.role==="rook")this.castles.discardRook(t.from);else if(o.role==="king"){if(i){let a=this.castles.rook[n][i];if(b(a)){let l=this.board.take(a);this.board.set(Ve(n,i),o),l&&this.board.set(ct(n,i),l)}}this.castles.discardColor(n)}if(!i){let a=this.board.set(t.to,o)||s;a&&this.playCaptureAt(t.to,a)}}this.remainingChecks&&this.isCheck()&&(this.remainingChecks[n]=Math.max(this.remainingChecks[n]-1,0))}},Ge=class extends J{constructor(){super("chess")}static default(){let t=new this;return t.reset(),t}static fromSetup(t){let n=new this;return n.setupUnchecked(t),n.validate().map(r=>n)}clone(){return super.clone()}},eo=(e,t)=>{if(!b(t))return;let n=e.turn==="white"?5:2,r=e.turn==="white"?8:-8;if(X(t)!==n||e.board.occupied.has(t+r))return;let i=t-r;if(!(!e.board.pawn.has(i)||!e.board[P(e.turn)].has(i)))return t},to=e=>{if(!b(e.epSquare))return;let t=e.ctx(),r=e.board.pieces(e.turn,"pawn").intersect(ve(P(e.turn),e.epSquare));for(let i of r)if(e.dests(i,t).has(e.epSquare))return e.epSquare},no=(e,t,n)=>{if(!b(e.epSquare)||!ve(e.turn,t).has(e.epSquare))return!1;if(!b(n.king))return!0;let r=e.turn==="white"?8:-8,i=e.epSquare-r;return e.kingAttackers(n.king,P(e.turn),e.board.occupied.toggle(t).toggle(i).with(e.epSquare)).without(i).isEmpty()},dt=(e,t,n)=>{if(!b(n.king)||n.checkers.nonEmpty())return u.empty();let r=e.castles.rook[e.turn][t];if(!b(r))return u.empty();if(e.castles.path[e.turn][t].intersects(e.board.occupied))return u.empty();let i=Ve(e.turn,t),o=Ce(n.king,i),s=e.board.occupied.without(n.king);for(let c of o)if(e.kingAttackers(c,P(e.turn),s).nonEmpty())return u.empty();let a=ct(e.turn,t),l=e.board.occupied.toggle(n.king).toggle(r).toggle(a);return e.kingAttackers(i,P(e.turn),l).nonEmpty()?u.empty():u.fromSquare(r)},pt=(e,t,n)=>{if(n.variantEnd)return u.empty();let r=e.board.get(t);if(!r||r.color!==e.turn)return u.empty();let i=ut(r,t,e.board.occupied);if(r.role==="pawn"){let o=e.board[P(e.turn)];b(e.epSquare)&&(o=o.with(e.epSquare)),i=i.intersect(o);let s=e.turn==="white"?8:-8,a=t+s;if(0<=a&&a<64&&!e.board.occupied.has(a)){i=i.with(a);let l=e.turn==="white"?t<16:t>=48,c=a+s;l&&!e.board.occupied.has(c)&&(i=i.with(c))}return i}else i=i.diff(e.board[e.turn]);return t===n.king?i.union(dt(e,"a",n)).union(dt(e,"h",n)):i};var Xt=(e,t)=>{if(ie(t))return;let n=t.to-t.from;if(!(Math.abs(n)!==2&&!e.board[e.turn].has(t.to))&&e.board.king.has(t.from))return n>0?"h":"a"},Un=(e,t)=>{let n=Xt(e,t);if(!n)return t;let r=e.castles.rook[e.turn][n];return{from:t.from,to:b(r)?r:t.to}};var jn=e=>ie(e)?String.fromCharCode(35+e.to,139+["queen","rook","bishop","knight","pawn"].indexOf(e.role)):String.fromCharCode(35+e.from,e.promotion?99+8*["queen","rook","bishop","knight","king"].indexOf(e.promotion)+D(e.to):35+e.to);var io="rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR",oo=io+" w KQkq -",Ya=oo+" 0 1",so="8/8/8/8/8/8/8/8",ao=so+" w - -",Za=ao+" 0 1",I;(function(e){e.Fen="ERR_FEN",e.Board="ERR_BOARD",e.Pockets="ERR_POCKETS",e.Turn="ERR_TURN",e.Castling="ERR_CASTLING",e.EpSquare="ERR_EP_SQUARE",e.RemainingChecks="ERR_REMAINING_CHECKS",e.Halfmoves="ERR_HALFMOVES",e.Fullmoves="ERR_FULLMOVES"})(I||(I={}));var K=class extends Error{},co=(e,t,n)=>{let r=e.indexOf(t);for(;n-- >0&&r!==-1;)r=e.indexOf(t,r+t.length);return r},Ie=e=>/^\d{1,4}$/.test(e)?parseInt(e,10):void 0,Xn=e=>{let t=Re(e);return t&&{role:t,color:e.toLowerCase()===e?"black":"white"}},Jt=e=>{let t=he.empty(),n=7,r=0;for(let i=0;i<e.length;i++){let o=e[i];if(o==="/"&&r===8)r=0,n--;else{let s=parseInt(o,10);if(s>0)r+=s;else{if(r>=8||n<0)return k.err(new K(I.Board));let a=r+n*8,l=Xn(o);if(!l)return k.err(new K(I.Board));e[i+1]==="~"&&(l.promoted=!0,i++),t.set(a,l),r++}}}return n!==0||r!==8?k.err(new K(I.Board)):k.ok(t)},Yn=e=>{if(e.length>64)return k.err(new K(I.Pockets));let t=Oe.empty();for(let n of e){let r=Xn(n);if(!r)return k.err(new K(I.Pockets));t[r.color][r.role]++}return k.ok(t)},lo=(e,t)=>{let n=u.empty();if(t==="-")return k.ok(n);for(let r of t){let i=r.toLowerCase(),o=r===i?"black":"white",s=o==="white"?0:7;if("a"<=i&&i<="h")n=n.with(at(i.charCodeAt(0)-97,s));else if(i==="k"||i==="q"){let a=e[o].intersect(u.backrank(o)).intersect(e.rook.union(e.king)),l=i==="k"?a.last():a.first();n=n.with(b(l)&&e.rook.has(l)?l:at(i==="k"?7:0,s))}else return k.err(new K(I.Castling))}return F.some(r=>u.backrank(r).intersect(n).size()>2)?k.err(new K(I.Castling)):k.ok(n)},Zn=e=>{let t=e.split("+");if(t.length===3&&t[0]===""){let n=Ie(t[1]),r=Ie(t[2]);return!b(n)||n>3||!b(r)||r>3?k.err(new K(I.RemainingChecks)):k.ok(new Se(3-n,3-r))}else if(t.length===2){let n=Ie(t[0]),r=Ie(t[1]);return!b(n)||n>3||!b(r)||r>3?k.err(new K(I.RemainingChecks)):k.ok(new Se(n,r))}else return k.err(new K(I.RemainingChecks))},Jn=e=>{let t=e.split(/[\s_]+/),n=t.shift(),r,i=k.ok(void 0);if(n.endsWith("]")){let a=n.indexOf("[");if(a===-1)return k.err(new K(I.Fen));r=Jt(n.slice(0,a)),i=Yn(n.slice(a+1,-1))}else{let a=co(n,"/",7);a===-1?r=Jt(n):(r=Jt(n.slice(0,a)),i=Yn(n.slice(a+1)))}let o,s=t.shift();if(!b(s)||s==="w")o="white";else if(s==="b")o="black";else return k.err(new K(I.Turn));return r.chain(a=>{let l=t.shift(),c=b(l)?lo(a,l):k.ok(u.empty()),d=t.shift(),p;if(b(d)&&d!=="-"&&(p=ue(d),!b(p)))return k.err(new K(I.EpSquare));let y=t.shift(),m;b(y)&&y.includes("+")&&(m=Zn(y),y=t.shift());let h=b(y)?Ie(y):0;if(!b(h))return k.err(new K(I.Halfmoves));let f=t.shift(),w=b(f)?Ie(f):1;if(!b(w))return k.err(new K(I.Fullmoves));let g=t.shift(),M=k.ok(void 0);if(b(g)){if(b(m))return k.err(new K(I.RemainingChecks));M=Zn(g)}else b(m)&&(M=m);return t.length>0?k.err(new K(I.Fen)):i.chain(A=>c.chain(v=>M.map(E=>({board:a,pockets:A,turn:o,castlingRights:v,remainingChecks:E,epSquare:p,halfmoves:h,fullmoves:Math.max(1,w)}))))})};var uo=e=>{let t=oe(e.role);return e.color==="white"&&(t=t.toUpperCase()),e.promoted&&(t+="~"),t},ho=e=>{let t="",n=0;for(let r=7;r>=0;r--)for(let i=0;i<8;i++){let o=i+r*8,s=e.get(o);s?(n>0&&(t+=n,n=0),t+=uo(s)):n++,i===7&&(n>0&&(t+=n,n=0),r!==0&&(t+="/"))}return t},Qn=e=>W.map(t=>oe(t).repeat(e[t])).join(""),po=e=>Qn(e.white).toUpperCase()+Qn(e.black),fo=(e,t)=>{let n="";for(let r of F){let i=u.backrank(r),o=e.kingOf(r);b(o)&&!i.has(o)&&(o=void 0);let s=e.pieces(r,"rook").intersect(i);for(let a of t.intersect(i).reversed())if(a===s.first()&&b(o)&&a<o)n+=r==="white"?"Q":"q";else if(a===s.last()&&b(o)&&o<a)n+=r==="white"?"K":"k";else{let l=Te[D(a)];n+=r==="white"?l.toUpperCase():l}}return n||"-"},mo=e=>`${e.white}+${e.black}`,ft=(e,t)=>[ho(e.board)+(e.pockets?`[${po(e.pockets)}]`:""),e.turn[0],fo(e.board,e.castlingRights),b(e.epSquare)?U(e.epSquare):"-",...e.remainingChecks?[mo(e.remainingChecks)]:[],...t?.epd?[]:[Math.max(0,Math.min(e.halfmoves,9999)),Math.max(1,Math.min(e.fullmoves,9999))]].join(" ");var ko=(e,t)=>{let n="";if(ie(t))t.role!=="pawn"&&(n=oe(t.role).toUpperCase()),n+="@"+U(t.to);else{let r=e.board.getRole(t.from);if(!r)return"--";if(r==="king"&&(e.board[e.turn].has(t.to)||Math.abs(t.to-t.from)===2))n=t.to>t.from?"O-O":"O-O-O";else{let i=e.board.occupied.has(t.to)||r==="pawn"&&D(t.from)!==D(t.to);if(r!=="pawn"){n=oe(r).toUpperCase();let o;if(r==="king"?o=se(t.to).intersect(e.board.king):r==="queen"?o=He(t.to,e.board.occupied).intersect(e.board.queen):r==="rook"?o=xe(t.to,e.board.occupied).intersect(e.board.rook):r==="bishop"?o=ye(t.to,e.board.occupied).intersect(e.board.bishop):o=Le(t.to).intersect(e.board.knight),o=o.intersect(e.board[e.turn]).without(t.from),o.nonEmpty()){let s=e.ctx();for(let a of o)e.dests(a,s).has(t.to)||(o=o.without(a));if(o.nonEmpty()){let a=!1,l=o.intersects(u.fromRank(X(t.from)));o.intersects(u.fromFile(D(t.from)))?a=!0:l=!0,l&&(n+=Te[D(t.from)]),a&&(n+=st[X(t.from)])}}}else i&&(n=Te[D(t.from)]);i&&(n+="x"),n+=U(t.to),t.promotion&&(n+="="+oe(t.promotion).toUpperCase())}}return n},er=(e,t)=>{var n;let r=ko(e,t);return e.play(t),!((n=e.outcome())===null||n===void 0)&&n.winner?r+"#":e.isCheck()?r+"+":r};var tr=(e,t)=>{let n=e.ctx(),r=t.match(/^([NBRQK])?([a-h])?([1-8])?[-x]?([a-h][1-8])(?:=?([nbrqkNBRQK]))?[+#]?$/);if(!r){let d;if(t==="O-O"||t==="O-O+"||t==="O-O#"?d="h":(t==="O-O-O"||t==="O-O-O+"||t==="O-O-O#")&&(d="a"),d){let m=e.castles.rook[e.turn][d];return!b(n.king)||!b(m)||!e.dests(n.king,n).has(m)?void 0:{from:n.king,to:m}}let p=t.match(/^([pnbrqkPNBRQK])?@([a-h][1-8])[+#]?$/);if(!p)return;let y={role:p[1]?Re(p[1]):"pawn",to:ue(p[2])};return e.isLegal(y,n)?y:void 0}let i=r[1]?Re(r[1]):"pawn",o=ue(r[4]),s=r[5]?Re(r[5]):void 0;if(!!s!==(i==="pawn"&&u.backranks().has(o))||s==="king"&&e.rules!=="antichess")return;let a=e.board.pieces(e.turn,i);i==="pawn"&&!r[2]?a=a.intersect(u.fromFile(D(o))):r[2]&&(a=a.intersect(u.fromFile(r[2].charCodeAt(0)-97))),r[3]&&(a=a.intersect(u.fromRank(r[3].charCodeAt(0)-49)));let l=i==="pawn"?u.fromFile(D(o)):u.empty();a=a.intersect(l.union(ut({color:P(e.turn),role:i},o,e.board.occupied)));let c;for(let d of a)if(e.dests(d,n).has(o)){if(b(c))return;c=d}if(b(c))return{from:c,to:o,promotion:s}};var mt=class extends J{constructor(){super("crazyhouse")}reset(){super.reset(),this.pockets=Oe.empty()}setupUnchecked(t){super.setupUnchecked(t),this.board.promoted=t.board.promoted.intersect(t.board.occupied).diff(t.board.king).diff(t.board.pawn),this.pockets=t.pockets?t.pockets.clone():Oe.empty()}static default(){let t=new this;return t.reset(),t}static fromSetup(t){let n=new this;return n.setupUnchecked(t),n.validate().map(r=>n)}clone(){return super.clone()}validate(){return super.validate().chain(t=>{var n,r;return!((n=this.pockets)===null||n===void 0)&&n.count("king")?k.err(new O(R.Kings)):(((r=this.pockets)===null||r===void 0?void 0:r.size())||0)+this.board.occupied.size()>64?k.err(new O(R.Variant)):k.ok(void 0)})}hasInsufficientMaterial(t){return this.pockets?this.board.occupied.size()+this.pockets.size()<=3&&this.board.pawn.isEmpty()&&this.board.promoted.isEmpty()&&this.board.rooksAndQueens().isEmpty()&&this.pockets.count("pawn")<=0&&this.pockets.count("rook")<=0&&this.pockets.count("queen")<=0:super.hasInsufficientMaterial(t)}dropDests(t){var n,r;let i=this.board.occupied.complement().intersect(!((n=this.pockets)===null||n===void 0)&&n[this.turn].hasNonPawns()?u.full():!((r=this.pockets)===null||r===void 0)&&r[this.turn].hasPawns()?u.backranks().complement():u.empty());if(t=t||this.ctx(),b(t.king)&&t.checkers.nonEmpty()){let o=t.checkers.singleSquare();return b(o)?i.intersect(Ce(o,t.king)):u.empty()}else return i}},gt=class extends J{constructor(){super("atomic")}static default(){let t=new this;return t.reset(),t}static fromSetup(t){let n=new this;return n.setupUnchecked(t),n.validate().map(r=>n)}clone(){return super.clone()}validate(){if(this.board.occupied.isEmpty())return k.err(new O(R.Empty));if(this.board.king.size()>2)return k.err(new O(R.Kings));let t=this.board.kingOf(P(this.turn));return b(t)?this.kingAttackers(t,this.turn,this.board.occupied).nonEmpty()?k.err(new O(R.OppositeCheck)):u.backranks().intersects(this.board.pawn)?k.err(new O(R.PawnsOnBackrank)):k.ok(void 0):k.err(new O(R.Kings))}kingAttackers(t,n,r){let i=this.board.pieces(n,"king");return i.isEmpty()||se(t).intersects(i)?u.empty():super.kingAttackers(t,n,r)}playCaptureAt(t,n){super.playCaptureAt(t,n),this.board.take(t);for(let r of se(t).intersect(this.board.occupied).diff(this.board.pawn)){let i=this.board.take(r);i?.role==="rook"&&this.castles.discardRook(r),i?.role==="king"&&this.castles.discardColor(i.color)}}hasInsufficientMaterial(t){if(this.board.pieces(P(t),"king").isEmpty())return!1;if(this.board[t].diff(this.board.king).isEmpty())return!0;if(this.board[P(t)].diff(this.board.king).nonEmpty()){if(this.board.occupied.equals(this.board.bishop.union(this.board.king))){if(!this.board.bishop.intersect(this.board.white).intersects(u.darkSquares()))return!this.board.bishop.intersect(this.board.black).intersects(u.lightSquares());if(!this.board.bishop.intersect(this.board.white).intersects(u.lightSquares()))return!this.board.bishop.intersect(this.board.black).intersects(u.darkSquares())}return!1}return this.board.queen.nonEmpty()||this.board.pawn.nonEmpty()?!1:this.board.knight.union(this.board.bishop).union(this.board.rook).size()===1?!0:this.board.occupied.equals(this.board.knight.union(this.board.king))?this.board.knight.size()<=2:!1}dests(t,n){n=n||this.ctx();let r=u.empty();for(let i of pt(this,t,n)){let o=this.clone();o.play({from:t,to:i});let s=o.board.kingOf(this.turn);b(s)&&(!b(o.board.kingOf(o.turn))||o.kingAttackers(s,o.turn,o.board.occupied).isEmpty())&&(r=r.with(i))}return r}isVariantEnd(){return!!this.variantOutcome()}variantOutcome(t){for(let n of F)if(this.board.pieces(n,"king").isEmpty())return{winner:P(n)}}},kt=class extends J{constructor(){super("antichess")}reset(){super.reset(),this.castles=ae.empty()}setupUnchecked(t){super.setupUnchecked(t),this.castles=ae.empty()}static default(){let t=new this;return t.reset(),t}static fromSetup(t){let n=new this;return n.setupUnchecked(t),n.validate().map(r=>n)}clone(){return super.clone()}validate(){return this.board.occupied.isEmpty()?k.err(new O(R.Empty)):u.backranks().intersects(this.board.pawn)?k.err(new O(R.PawnsOnBackrank)):k.ok(void 0)}kingAttackers(t,n,r){return u.empty()}ctx(){let t=super.ctx();if(b(this.epSquare)&&ve(P(this.turn),this.epSquare).intersects(this.board.pieces(this.turn,"pawn")))return t.mustCapture=!0,t;let n=this.board[P(this.turn)];for(let r of this.board[this.turn])if(pt(this,r,t).intersects(n))return t.mustCapture=!0,t;return t}dests(t,n){n=n||this.ctx();let r=pt(this,t,n),i=this.board[P(this.turn)];return r.intersect(n.mustCapture?b(this.epSquare)&&this.board.getRole(t)==="pawn"?i.with(this.epSquare):i:u.full())}hasInsufficientMaterial(t){if(this.board[t].isEmpty())return!1;if(this.board[P(t)].isEmpty())return!0;if(this.board.occupied.equals(this.board.bishop)){let n=this.board[t].intersects(u.lightSquares()),r=this.board[t].intersects(u.darkSquares()),i=this.board[P(t)].isDisjoint(u.lightSquares()),o=this.board[P(t)].isDisjoint(u.darkSquares());return n&&i||r&&o}return this.board.occupied.equals(this.board.knight)&&this.board.occupied.size()===2?this.board.white.intersects(u.lightSquares())!==this.board.black.intersects(u.darkSquares())!=(this.turn===t):!1}isVariantEnd(){return this.board[this.turn].isEmpty()}variantOutcome(t){if(t=t||this.ctx(),t.variantEnd||this.isStalemate(t))return{winner:this.turn}}},bt=class extends J{constructor(){super("kingofthehill")}static default(){let t=new this;return t.reset(),t}static fromSetup(t){let n=new this;return n.setupUnchecked(t),n.validate().map(r=>n)}clone(){return super.clone()}hasInsufficientMaterial(t){return!1}isVariantEnd(){return this.board.king.intersects(u.center())}variantOutcome(t){for(let n of F)if(this.board.pieces(n,"king").intersects(u.center()))return{winner:n}}},wt=class extends J{constructor(){super("3check")}reset(){super.reset(),this.remainingChecks=Se.default()}setupUnchecked(t){var n;super.setupUnchecked(t),this.remainingChecks=((n=t.remainingChecks)===null||n===void 0?void 0:n.clone())||Se.default()}static default(){let t=new this;return t.reset(),t}static fromSetup(t){let n=new this;return n.setupUnchecked(t),n.validate().map(r=>n)}clone(){return super.clone()}hasInsufficientMaterial(t){return this.board.pieces(t,"king").equals(this.board[t])}isVariantEnd(){return!!this.remainingChecks&&(this.remainingChecks.white<=0||this.remainingChecks.black<=0)}variantOutcome(t){if(this.remainingChecks){for(let n of F)if(this.remainingChecks[n]<=0)return{winner:n}}}},wo=()=>{let e=he.empty();return e.occupied=new u(65535,0),e.promoted=u.empty(),e.white=new u(61680,0),e.black=new u(3855,0),e.pawn=u.empty(),e.knight=new u(6168,0),e.bishop=new u(9252,0),e.rook=new u(16962,0),e.queen=new u(129,0),e.king=new u(33024,0),e},vt=class extends J{constructor(){super("racingkings")}reset(){this.board=wo(),this.pockets=void 0,this.turn="white",this.castles=ae.empty(),this.epSquare=void 0,this.remainingChecks=void 0,this.halfmoves=0,this.fullmoves=1}setupUnchecked(t){super.setupUnchecked(t),this.castles=ae.empty()}static default(){let t=new this;return t.reset(),t}static fromSetup(t){let n=new this;return n.setupUnchecked(t),n.validate().map(r=>n)}clone(){return super.clone()}validate(){return this.isCheck()||this.board.pawn.nonEmpty()?k.err(new O(R.Variant)):super.validate()}dests(t,n){if(n=n||this.ctx(),t===n.king)return super.dests(t,n);let r=u.empty();for(let i of super.dests(t,n)){let o={from:t,to:i},s=this.clone();s.play(o),s.isCheck()||(r=r.with(i))}return r}hasInsufficientMaterial(t){return!1}isVariantEnd(){let t=u.fromRank(7),n=this.board.king.intersect(t);if(n.isEmpty())return!1;if(this.turn==="white"||n.intersects(this.board.black))return!0;let r=this.board.kingOf("black");if(b(r)){let i=this.board.occupied.without(r);for(let o of se(r).intersect(t).diff(this.board.black))if(this.kingAttackers(o,"white",i).isEmpty())return!1}return!0}variantOutcome(t){if(t?!t.variantEnd:!this.isVariantEnd())return;let n=u.fromRank(7),r=this.board.pieces("black","king").intersects(n),i=this.board.pieces("white","king").intersects(n);return r&&!i?{winner:"black"}:i&&!r?{winner:"white"}:{winner:void 0}}},vo=()=>{let e=he.empty();return e.occupied=new u(4294967295,4294901862),e.promoted=u.empty(),e.white=new u(4294967295,102),e.black=new u(0,4294901760),e.pawn=new u(4294967295,16711782),e.knight=new u(0,1107296256),e.bishop=new u(0,603979776),e.rook=new u(0,2164260864),e.queen=new u(0,134217728),e.king=new u(0,268435456),e},yt=class extends J{constructor(){super("horde")}reset(){this.board=vo(),this.pockets=void 0,this.turn="white",this.castles=ae.default(),this.castles.discardColor("white"),this.epSquare=void 0,this.remainingChecks=void 0,this.halfmoves=0,this.fullmoves=1}static default(){let t=new this;return t.reset(),t}static fromSetup(t){let n=new this;return n.setupUnchecked(t),n.validate().map(r=>n)}clone(){return super.clone()}validate(){if(this.board.occupied.isEmpty())return k.err(new O(R.Empty));if(this.board.king.size()!==1)return k.err(new O(R.Kings));let t=this.board.kingOf(P(this.turn));if(b(t)&&this.kingAttackers(t,this.turn,this.board.occupied).nonEmpty())return k.err(new O(R.OppositeCheck));for(let n of F){let r=this.board.pieces(n,"king").isEmpty()?u.backrank(P(n)):u.backranks();if(this.board.pieces(n,"pawn").intersects(r))return k.err(new O(R.PawnsOnBackrank))}return k.ok(void 0)}hasInsufficientMaterial(t){if(this.board.pieces(t,"king").nonEmpty())return!1;let n=m=>m==="light"?"dark":"light",r=m=>m==="light"?u.lightSquares():u.darkSquares(),i=m=>{let h=this.board.pieces(m,"bishop");return h.intersects(u.darkSquares())&&h.intersects(u.lightSquares())},o=de.fromBoard(this.board,t),s=m=>r(m).intersect(this.board.pieces(t,"bishop")).size(),a=s("light")>=1?"light":"dark",l=o.pawn+o.knight+o.rook+o.queen+Math.min(s("dark"),2)+Math.min(s("light"),2),c=de.fromBoard(this.board,P(t)),d=m=>r(m).intersect(this.board.pieces(P(t),"bishop")).size(),p=c.size(),y=m=>p-m;if(l===0)return!0;if(l>=4||(o.pawn>=1||o.queen>=1)&&l>=2||o.rook>=1&&l>=2&&!(l===2&&o.rook===1&&o.bishop===1&&y(d(a))===1))return!1;if(l===1){if(p===1)return!0;if(o.queen===1)return!(c.pawn>=1||c.rook>=1||d("light")>=2||d("dark")>=2);if(o.pawn===1){let m=this.board.pieces(t,"pawn").last(),h=this.clone();h.board.set(m,{color:t,role:"queen"});let f=this.clone();return f.board.set(m,{color:t,role:"knight"}),h.hasInsufficientMaterial(t)&&f.hasInsufficientMaterial(t)}else{if(o.rook===1)return!(c.pawn>=2||c.rook>=1&&c.pawn>=1||c.rook>=1&&c.knight>=1||c.pawn>=1&&c.knight>=1);if(o.bishop===1)return!(d(n(a))>=2||d(n(a))>=1&&c.pawn>=1||c.pawn>=2);if(o.knight===1)return!(p>=4&&(c.knight>=2||c.pawn>=2||c.rook>=1&&c.knight>=1||c.rook>=1&&c.bishop>=1||c.knight>=1&&c.bishop>=1||c.rook>=1&&c.pawn>=1||c.knight>=1&&c.pawn>=1||c.bishop>=1&&c.pawn>=1||i(P(t))&&c.pawn>=1)&&(d("dark")<2||y(d("dark"))>=3)&&(d("light")<2||y(d("light"))>=3))}}else{if(l===2)return p===1?!0:o.knight===2?c.pawn+c.bishop+c.knight<1:i(t)?!(c.pawn>=1||c.bishop>=1||c.knight>=1&&c.rook+c.queen>=1):o.bishop>=1&&o.knight>=1?!(c.pawn>=1||d(n(a))>=1||y(d(a))>=3):!(c.pawn>=1&&d(n(a))>=1||c.pawn>=1&&c.knight>=1||d(n(a))>=1&&c.knight>=1||d(n(a))>=2||c.knight>=2||c.pawn>=2);if(l===3)return o.knight===2&&o.bishop===1||o.knight===3||i(t)?!1:p===1}return!0}isVariantEnd(){return this.board.white.isEmpty()||this.board.black.isEmpty()}variantOutcome(t){if(this.board.white.isEmpty())return{winner:"black"};if(this.board.black.isEmpty())return{winner:"white"}}},nr=e=>{switch(e){case"chess":return Ge.default();case"antichess":return kt.default();case"atomic":return gt.default();case"horde":return yt.default();case"racingkings":return vt.default();case"kingofthehill":return bt.default();case"3check":return wt.default();case"crazyhouse":return mt.default()}},rr=(e,t)=>{switch(e){case"chess":return Ge.fromSetup(t);case"antichess":return kt.fromSetup(t);case"atomic":return gt.fromSetup(t);case"horde":return yt.fromSetup(t);case"racingkings":return vt.fromSetup(t);case"kingofthehill":return bt.fromSetup(t);case"3check":return wt.fromSetup(t);case"crazyhouse":return mt.fromSetup(t)}};var xo=(e=on)=>({headers:e(),moves:new We}),We=class{constructor(){this.children=[]}*mainlineNodes(){let t=this;for(;t.children.length;){let n=t.children[0];yield n,t=n}}*mainline(){for(let t of this.mainlineNodes())yield t.data}end(){let t=this;for(;t.children.length;)t=t.children[0];return t}},xt=class extends We{constructor(t){super(),this.data=t}};var or=(e,t,n)=>{let r=new We,i=[{before:e,after:r,ctx:t}],o;for(;o=i.pop();)for(let s=0;s<o.before.children.length;s++){let a=s<o.before.children.length-1?o.ctx.clone():o.ctx,l=o.before.children[s],c=n(a,l.data,s);if(b(c)){let d=new xt(c);o.after.children.push(d),i.push({before:l,after:d,ctx:a})}}return r};var Co=e=>e?e.winner==="white"?"1-0":e.winner==="black"?"0-1":"1/2-1/2":"*",So=e=>e==="1-0"||e==="1\u20130"||e==="1\u20140"?{winner:"white"}:e==="0-1"||e==="0\u20131"||e==="0\u20141"?{winner:"black"}:e==="1/2-1/2"||e==="1/2\u20131/2"||e==="1/2\u20141/2"?{winner:void 0}:void 0;var on=()=>new Map([["Event","?"],["Site","?"],["Date","????.??.??"],["Round","?"],["White","?"],["Black","?"],["Result","*"]]);var ir="\uFEFF",en=e=>/^\s*$/.test(e),tn=e=>e.startsWith("%"),nn=class extends Error{},rn=class{constructor(t,n=on,r=1e6){this.emitGame=t,this.initHeaders=n,this.maxBudget=r,this.lineBuf=[],this.resetGame(),this.state=0}resetGame(){this.budget=this.maxBudget,this.found=!1,this.state=1,this.game=xo(this.initHeaders),this.stack=[{parent:this.game.moves,root:!0}],this.commentBuf=[]}consumeBudget(t){if(this.budget-=t,this.budget<0)throw new nn("ERR_PGN_BUDGET")}parse(t,n){if(!(this.budget<0))try{let r=0;for(;;){let i=t.indexOf(`
1
+ var Te=["a","b","c","d","e","f","g","h"],st=["1","2","3","4","5","6","7","8"];var F=["white","black"],W=["pawn","knight","bishop","rook","queen","king"],Hn=["a","h"],ie=e=>"role"in e;var b=e=>e!==void 0,M=e=>e==="white"?"black":"white",X=e=>e>>3,D=e=>e&7,at=(e,t)=>0<=e&&e<8&&0<=t&&t<8?e+8*t:void 0,oe=e=>{switch(e){case"pawn":return"p";case"knight":return"n";case"bishop":return"b";case"rook":return"r";case"queen":return"q";case"king":return"k"}};function Re(e){switch(e.toLowerCase()){case"p":return"pawn";case"n":return"knight";case"b":return"bishop";case"r":return"rook";case"q":return"queen";case"k":return"king";default:return}}function ue(e){if(e.length===2)return at(e.charCodeAt(0)-97,e.charCodeAt(1)-49)}var U=e=>Te[D(e)]+st[X(e)];var Ft=e=>ie(e)?`${oe(e.role).toUpperCase()}@${U(e.to)}`:U(e.from)+U(e.to)+(e.promotion?oe(e.promotion):""),Ve=(e,t)=>e==="white"?t==="a"?2:6:t==="a"?58:62,ct=(e,t)=>e==="white"?t==="a"?3:5:t==="a"?59:61;var Gn=e=>(e=e-(e>>>1&1431655765),e=(e&858993459)+(e>>>2&858993459),Math.imul(e+(e>>>4)&252645135,16843009)>>24),Vt=e=>(e=e>>>8&16711935|(e&16711935)<<8,e>>>16&65535|(e&65535)<<16),Wn=e=>(e=e>>>1&1431655765|(e&1431655765)<<1,e=e>>>2&858993459|(e&858993459)<<2,e=e>>>4&252645135|(e&252645135)<<4,Vt(e)),u=class e{constructor(t,n){this.lo=t|0,this.hi=n|0}static fromSquare(t){return t>=32?new e(0,1<<t-32):new e(1<<t,0)}static fromRank(t){return new e(255,0).shl64(8*t)}static fromFile(t){return new e(16843009<<t,16843009<<t)}static empty(){return new e(0,0)}static full(){return new e(4294967295,4294967295)}static corners(){return new e(129,2164260864)}static center(){return new e(402653184,24)}static backranks(){return new e(255,4278190080)}static backrank(t){return t==="white"?new e(255,0):new e(0,4278190080)}static lightSquares(){return new e(1437226410,1437226410)}static darkSquares(){return new e(2857740885,2857740885)}complement(){return new e(~this.lo,~this.hi)}xor(t){return new e(this.lo^t.lo,this.hi^t.hi)}union(t){return new e(this.lo|t.lo,this.hi|t.hi)}intersect(t){return new e(this.lo&t.lo,this.hi&t.hi)}diff(t){return new e(this.lo&~t.lo,this.hi&~t.hi)}intersects(t){return this.intersect(t).nonEmpty()}isDisjoint(t){return this.intersect(t).isEmpty()}supersetOf(t){return t.diff(this).isEmpty()}subsetOf(t){return this.diff(t).isEmpty()}shr64(t){return t>=64?e.empty():t>=32?new e(this.hi>>>t-32,0):t>0?new e(this.lo>>>t^this.hi<<32-t,this.hi>>>t):this}shl64(t){return t>=64?e.empty():t>=32?new e(0,this.lo<<t-32):t>0?new e(this.lo<<t,this.hi<<t^this.lo>>>32-t):this}bswap64(){return new e(Vt(this.hi),Vt(this.lo))}rbit64(){return new e(Wn(this.hi),Wn(this.lo))}minus64(t){let n=this.lo-t.lo,r=(n&t.lo&1)+(t.lo>>>1)+(n>>>1)>>>31;return new e(n,this.hi-(t.hi+r))}equals(t){return this.lo===t.lo&&this.hi===t.hi}size(){return Gn(this.lo)+Gn(this.hi)}isEmpty(){return this.lo===0&&this.hi===0}nonEmpty(){return this.lo!==0||this.hi!==0}has(t){return(t>=32?this.hi&1<<t-32:this.lo&1<<t)!==0}set(t,n){return n?this.with(t):this.without(t)}with(t){return t>=32?new e(this.lo,this.hi|1<<t-32):new e(this.lo|1<<t,this.hi)}without(t){return t>=32?new e(this.lo,this.hi&~(1<<t-32)):new e(this.lo&~(1<<t),this.hi)}toggle(t){return t>=32?new e(this.lo,this.hi^1<<t-32):new e(this.lo^1<<t,this.hi)}last(){if(this.hi!==0)return 63-Math.clz32(this.hi);if(this.lo!==0)return 31-Math.clz32(this.lo)}first(){if(this.lo!==0)return 31-Math.clz32(this.lo&-this.lo);if(this.hi!==0)return 63-Math.clz32(this.hi&-this.hi)}withoutFirst(){return this.lo!==0?new e(this.lo&this.lo-1,this.hi):new e(0,this.hi&this.hi-1)}moreThanOne(){return this.hi!==0&&this.lo!==0||(this.lo&this.lo-1)!==0||(this.hi&this.hi-1)!==0}singleSquare(){return this.moreThanOne()?void 0:this.last()}*[Symbol.iterator](){let t=this.lo,n=this.hi;for(;t!==0;){let r=31-Math.clz32(t&-t);t^=1<<r,yield r}for(;n!==0;){let r=31-Math.clz32(n&-n);n^=1<<r,yield 32+r}}*reversed(){let t=this.lo,n=this.hi;for(;n!==0;){let r=31-Math.clz32(n);n^=1<<r,yield 32+r}for(;t!==0;){let r=31-Math.clz32(t);t^=1<<r,yield r}}};var lt=(e,t)=>{let n=u.empty();for(let r of t){let i=e+r;0<=i&&i<64&&Math.abs(D(e)-D(i))<=2&&(n=n.with(i))}return n},we=e=>{let t=[];for(let n=0;n<64;n++)t[n]=e(n);return t},ji=we(e=>lt(e,[-9,-8,-7,-1,1,7,8,9])),Yi=we(e=>lt(e,[-17,-15,-10,-6,6,10,15,17])),Zi={white:we(e=>lt(e,[7,9])),black:we(e=>lt(e,[-7,-9]))},se=e=>ji[e],Le=e=>Yi[e],ve=(e,t)=>Zi[e][t],Ht=we(e=>u.fromFile(D(e)).without(e)),Gt=we(e=>u.fromRank(X(e)).without(e)),Wt=we(e=>{let t=new u(134480385,2151686160),n=8*(X(e)-D(e));return(n>=0?t.shl64(n):t.shr64(-n)).without(e)}),Ut=we(e=>{let t=new u(270549120,16909320),n=8*(X(e)+D(e)-7);return(n>=0?t.shl64(n):t.shr64(-n)).without(e)}),jt=(e,t,n)=>{let r=n.intersect(t),i=r.bswap64();return r=r.minus64(e),i=i.minus64(e.bswap64()),r.xor(i.bswap64()).intersect(t)},Qi=(e,t)=>jt(u.fromSquare(e),Ht[e],t),Xi=(e,t)=>{let n=Gt[e],r=t.intersect(n),i=r.rbit64();return r=r.minus64(u.fromSquare(e)),i=i.minus64(u.fromSquare(63-e)),r.xor(i.rbit64()).intersect(n)},ye=(e,t)=>{let n=u.fromSquare(e);return jt(n,Wt[e],t).xor(jt(n,Ut[e],t))},xe=(e,t)=>Qi(e,t).xor(Xi(e,t)),He=(e,t)=>ye(e,t).xor(xe(e,t)),ut=(e,t,n)=>{switch(e.role){case"pawn":return ve(e.color,t);case"knight":return Le(t);case"bishop":return ye(t,n);case"rook":return xe(t,n);case"queen":return He(t,n);case"king":return se(t)}},Yt=(e,t)=>{let n=u.fromSquare(t);return Gt[e].intersects(n)?Gt[e].with(e):Ut[e].intersects(n)?Ut[e].with(e):Wt[e].intersects(n)?Wt[e].with(e):Ht[e].intersects(n)?Ht[e].with(e):u.empty()},Ce=(e,t)=>Yt(e,t).intersect(u.full().shl64(e).xor(u.full().shl64(t))).withoutFirst();var he=class e{constructor(){}static default(){let t=new e;return t.reset(),t}reset(){this.occupied=new u(65535,4294901760),this.promoted=u.empty(),this.white=new u(65535,0),this.black=new u(0,4294901760),this.pawn=new u(65280,16711680),this.knight=new u(66,1107296256),this.bishop=new u(36,603979776),this.rook=new u(129,2164260864),this.queen=new u(8,134217728),this.king=new u(16,268435456)}static empty(){let t=new e;return t.clear(),t}clear(){this.occupied=u.empty(),this.promoted=u.empty();for(let t of F)this[t]=u.empty();for(let t of W)this[t]=u.empty()}clone(){let t=new e;t.occupied=this.occupied,t.promoted=this.promoted;for(let n of F)t[n]=this[n];for(let n of W)t[n]=this[n];return t}getColor(t){if(this.white.has(t))return"white";if(this.black.has(t))return"black"}getRole(t){for(let n of W)if(this[n].has(t))return n}get(t){let n=this.getColor(t);if(!n)return;let r=this.getRole(t),i=this.promoted.has(t);return{color:n,role:r,promoted:i}}take(t){let n=this.get(t);return n&&(this.occupied=this.occupied.without(t),this[n.color]=this[n.color].without(t),this[n.role]=this[n.role].without(t),n.promoted&&(this.promoted=this.promoted.without(t))),n}set(t,n){let r=this.take(t);return this.occupied=this.occupied.with(t),this[n.color]=this[n.color].with(t),this[n.role]=this[n.role].with(t),n.promoted&&(this.promoted=this.promoted.with(t)),r}has(t){return this.occupied.has(t)}*[Symbol.iterator](){for(let t of this.occupied)yield[t,this.get(t)]}pieces(t,n){return this[t].intersect(this[n])}rooksAndQueens(){return this.rook.union(this.queen)}bishopsAndQueens(){return this.bishop.union(this.queen)}steppers(){return this.knight.union(this.pawn).union(this.king)}sliders(){return this.bishop.union(this.rook).union(this.queen)}kingOf(t){return this.pieces(t,"king").singleSquare()}};var de=class e{constructor(){}static empty(){let t=new e;for(let n of W)t[n]=0;return t}static fromBoard(t,n){let r=new e;for(let i of W)r[i]=t.pieces(n,i).size();return r}clone(){let t=new e;for(let n of W)t[n]=this[n];return t}equals(t){return W.every(n=>this[n]===t[n])}add(t){let n=new e;for(let r of W)n[r]=this[r]+t[r];return n}subtract(t){let n=new e;for(let r of W)n[r]=this[r]-t[r];return n}nonEmpty(){return W.some(t=>this[t]>0)}isEmpty(){return!this.nonEmpty()}hasPawns(){return this.pawn>0}hasNonPawns(){return this.knight>0||this.bishop>0||this.rook>0||this.queen>0||this.king>0}size(){return this.pawn+this.knight+this.bishop+this.rook+this.queen+this.king}},Oe=class e{constructor(t,n){this.white=t,this.black=n}static empty(){return new e(de.empty(),de.empty())}static fromBoard(t){return new e(de.fromBoard(t,"white"),de.fromBoard(t,"black"))}clone(){return new e(this.white.clone(),this.black.clone())}equals(t){return this.white.equals(t.white)&&this.black.equals(t.black)}add(t){return new e(this.white.add(t.white),this.black.add(t.black))}subtract(t){return new e(this.white.subtract(t.white),this.black.subtract(t.black))}count(t){return this.white[t]+this.black[t]}size(){return this.white.size()+this.black.size()}isEmpty(){return this.white.isEmpty()&&this.black.isEmpty()}nonEmpty(){return!this.isEmpty()}hasPawns(){return this.white.hasPawns()||this.black.hasPawns()}hasNonPawns(){return this.white.hasNonPawns()||this.black.hasNonPawns()}},Se=class e{constructor(t,n){this.white=t,this.black=n}static default(){return new e(3,3)}clone(){return new e(this.white,this.black)}equals(t){return this.white===t.white&&this.black===t.black}};var ht=class{unwrap(t,n){let r=this._chain(i=>k.ok(t?t(i):i),i=>n?k.ok(n(i)):k.err(i));if(r.isErr)throw r.error;return r.value}map(t,n){return this._chain(r=>k.ok(t(r)),r=>k.err(n?n(r):r))}chain(t,n){return this._chain(t,n??(r=>k.err(r)))}},Zt=class extends ht{constructor(t){super(),this.value=t,this.isOk=!0,this.isErr=!1}_chain(t,n){return t(this.value)}},Qt=class extends ht{constructor(t){super(),this.error=t,this.isOk=!1,this.isErr=!0}_chain(t,n){return n(this.error)}},k;(function(e){function t(i){return new Zt(i)}e.ok=t;function n(i){return new Qt(i||new Error)}e.err=n;function r(i){if(Array.isArray(i)){let a=[];for(let l=0;l<i.length;l++){let c=i[l];if(c.isErr)return c;a.push(c.value)}return e.ok(a)}let o={},s=Object.keys(i);for(let a=0;a<s.length;a++){let l=i[s[a]];if(l.isErr)return l;o[s[a]]=l.value}return e.ok(o)}e.all=r})(k||(k={}));var R;(function(e){e.Empty="ERR_EMPTY",e.OppositeCheck="ERR_OPPOSITE_CHECK",e.PawnsOnBackrank="ERR_PAWNS_ON_BACKRANK",e.Kings="ERR_KINGS",e.Variant="ERR_VARIANT"})(R||(R={}));var O=class extends Error{},Ji=(e,t,n,r)=>n[t].intersect(xe(e,r).intersect(n.rooksAndQueens()).union(ye(e,r).intersect(n.bishopsAndQueens())).union(Le(e).intersect(n.knight)).union(se(e).intersect(n.king)).union(ve(M(t),e).intersect(n.pawn))),ae=class e{constructor(){}static default(){let t=new e;return t.castlingRights=u.corners(),t.rook={white:{a:0,h:7},black:{a:56,h:63}},t.path={white:{a:new u(14,0),h:new u(96,0)},black:{a:new u(0,234881024),h:new u(0,1610612736)}},t}static empty(){let t=new e;return t.castlingRights=u.empty(),t.rook={white:{a:void 0,h:void 0},black:{a:void 0,h:void 0}},t.path={white:{a:u.empty(),h:u.empty()},black:{a:u.empty(),h:u.empty()}},t}clone(){let t=new e;return t.castlingRights=this.castlingRights,t.rook={white:{a:this.rook.white.a,h:this.rook.white.h},black:{a:this.rook.black.a,h:this.rook.black.h}},t.path={white:{a:this.path.white.a,h:this.path.white.h},black:{a:this.path.black.a,h:this.path.black.h}},t}add(t,n,r,i){let o=Ve(t,n),s=ct(t,n);this.castlingRights=this.castlingRights.with(i),this.rook[t][n]=i,this.path[t][n]=Ce(i,s).with(s).union(Ce(r,o).with(o)).without(r).without(i)}static fromSetup(t){let n=e.empty(),r=t.castlingRights.intersect(t.board.rook);for(let i of F){let o=u.backrank(i),s=t.board.kingOf(i);if(!b(s)||!o.has(s))continue;let a=r.intersect(t.board[i]).intersect(o),l=a.first();b(l)&&l<s&&n.add(i,"a",s,l);let c=a.last();b(c)&&s<c&&n.add(i,"h",s,c)}return n}discardRook(t){if(this.castlingRights.has(t)){this.castlingRights=this.castlingRights.without(t);for(let n of F)for(let r of Hn)this.rook[n][r]===t&&(this.rook[n][r]=void 0)}}discardColor(t){this.castlingRights=this.castlingRights.diff(u.backrank(t)),this.rook[t].a=void 0,this.rook[t].h=void 0}},J=class{constructor(t){this.rules=t}reset(){this.board=he.default(),this.pockets=void 0,this.turn="white",this.castles=ae.default(),this.epSquare=void 0,this.remainingChecks=void 0,this.halfmoves=0,this.fullmoves=1}setupUnchecked(t){this.board=t.board.clone(),this.board.promoted=u.empty(),this.pockets=void 0,this.turn=t.turn,this.castles=ae.fromSetup(t),this.epSquare=eo(this,t.epSquare),this.remainingChecks=void 0,this.halfmoves=t.halfmoves,this.fullmoves=t.fullmoves}kingAttackers(t,n,r){return Ji(t,n,this.board,r)}playCaptureAt(t,n){this.halfmoves=0,n.role==="rook"&&this.castles.discardRook(t),this.pockets&&this.pockets[M(n.color)][n.promoted?"pawn":n.role]++}ctx(){let t=this.isVariantEnd(),n=this.board.kingOf(this.turn);if(!b(n))return{king:n,blockers:u.empty(),checkers:u.empty(),variantEnd:t,mustCapture:!1};let r=xe(n,u.empty()).intersect(this.board.rooksAndQueens()).union(ye(n,u.empty()).intersect(this.board.bishopsAndQueens())).intersect(this.board[M(this.turn)]),i=u.empty();for(let s of r){let a=Ce(n,s).intersect(this.board.occupied);a.moreThanOne()||(i=i.union(a))}let o=this.kingAttackers(n,M(this.turn),this.board.occupied);return{king:n,blockers:i,checkers:o,variantEnd:t,mustCapture:!1}}clone(){var t,n;let r=new this.constructor;return r.board=this.board.clone(),r.pockets=(t=this.pockets)===null||t===void 0?void 0:t.clone(),r.turn=this.turn,r.castles=this.castles.clone(),r.epSquare=this.epSquare,r.remainingChecks=(n=this.remainingChecks)===null||n===void 0?void 0:n.clone(),r.halfmoves=this.halfmoves,r.fullmoves=this.fullmoves,r}validate(){if(this.board.occupied.isEmpty())return k.err(new O(R.Empty));if(this.board.king.size()!==2)return k.err(new O(R.Kings));if(!b(this.board.kingOf(this.turn)))return k.err(new O(R.Kings));let t=this.board.kingOf(M(this.turn));return b(t)?this.kingAttackers(t,this.turn,this.board.occupied).nonEmpty()?k.err(new O(R.OppositeCheck)):u.backranks().intersects(this.board.pawn)?k.err(new O(R.PawnsOnBackrank)):k.ok(void 0):k.err(new O(R.Kings))}dropDests(t){return u.empty()}dests(t,n){if(n=n||this.ctx(),n.variantEnd)return u.empty();let r=this.board.get(t);if(!r||r.color!==this.turn)return u.empty();let i,o;if(r.role==="pawn"){i=ve(this.turn,t).intersect(this.board[M(this.turn)]);let s=this.turn==="white"?8:-8,a=t+s;if(0<=a&&a<64&&!this.board.occupied.has(a)){i=i.with(a);let l=this.turn==="white"?t<16:t>=48,c=a+s;l&&!this.board.occupied.has(c)&&(i=i.with(c))}b(this.epSquare)&&no(this,t,n)&&(o=u.fromSquare(this.epSquare))}else r.role==="bishop"?i=ye(t,this.board.occupied):r.role==="knight"?i=Le(t):r.role==="rook"?i=xe(t,this.board.occupied):r.role==="queen"?i=He(t,this.board.occupied):i=se(t);if(i=i.diff(this.board[this.turn]),b(n.king)){if(r.role==="king"){let s=this.board.occupied.without(t);for(let a of i)this.kingAttackers(a,M(this.turn),s).nonEmpty()&&(i=i.without(a));return i.union(dt(this,"a",n)).union(dt(this,"h",n))}if(n.checkers.nonEmpty()){let s=n.checkers.singleSquare();if(!b(s))return u.empty();i=i.intersect(Ce(s,n.king).with(s))}n.blockers.has(t)&&(i=i.intersect(Yt(t,n.king)))}return o&&(i=i.union(o)),i}isVariantEnd(){return!1}variantOutcome(t){}hasInsufficientMaterial(t){return this.board[t].intersect(this.board.pawn.union(this.board.rooksAndQueens())).nonEmpty()?!1:this.board[t].intersects(this.board.knight)?this.board[t].size()<=2&&this.board[M(t)].diff(this.board.king).diff(this.board.queen).isEmpty():this.board[t].intersects(this.board.bishop)?(!this.board.bishop.intersects(u.darkSquares())||!this.board.bishop.intersects(u.lightSquares()))&&this.board.pawn.isEmpty()&&this.board.knight.isEmpty():!0}toSetup(){var t,n;return{board:this.board.clone(),pockets:(t=this.pockets)===null||t===void 0?void 0:t.clone(),turn:this.turn,castlingRights:this.castles.castlingRights,epSquare:to(this),remainingChecks:(n=this.remainingChecks)===null||n===void 0?void 0:n.clone(),halfmoves:Math.min(this.halfmoves,150),fullmoves:Math.min(Math.max(this.fullmoves,1),9999)}}isInsufficientMaterial(){return F.every(t=>this.hasInsufficientMaterial(t))}hasDests(t){t=t||this.ctx();for(let n of this.board[this.turn])if(this.dests(n,t).nonEmpty())return!0;return this.dropDests(t).nonEmpty()}isLegal(t,n){if(ie(t))return!this.pockets||this.pockets[this.turn][t.role]<=0||t.role==="pawn"&&u.backranks().has(t.to)?!1:this.dropDests(n).has(t.to);{if(t.promotion==="pawn"||t.promotion==="king"&&this.rules!=="antichess"||!!t.promotion!==(this.board.pawn.has(t.from)&&u.backranks().has(t.to)))return!1;let r=this.dests(t.from,n);return r.has(t.to)||r.has(Un(this,t).to)}}isCheck(){let t=this.board.kingOf(this.turn);return b(t)&&this.kingAttackers(t,M(this.turn),this.board.occupied).nonEmpty()}isEnd(t){return(t?t.variantEnd:this.isVariantEnd())?!0:this.isInsufficientMaterial()||!this.hasDests(t)}isCheckmate(t){return t=t||this.ctx(),!t.variantEnd&&t.checkers.nonEmpty()&&!this.hasDests(t)}isStalemate(t){return t=t||this.ctx(),!t.variantEnd&&t.checkers.isEmpty()&&!this.hasDests(t)}outcome(t){let n=this.variantOutcome(t);return n||(t=t||this.ctx(),this.isCheckmate(t)?{winner:M(this.turn)}:this.isInsufficientMaterial()||this.isStalemate(t)?{winner:void 0}:void 0)}allDests(t){t=t||this.ctx();let n=new Map;if(t.variantEnd)return n;for(let r of this.board[this.turn])n.set(r,this.dests(r,t));return n}play(t){let n=this.turn,r=this.epSquare,i=Xt(this,t);if(this.epSquare=void 0,this.halfmoves+=1,n==="black"&&(this.fullmoves+=1),this.turn=M(n),ie(t))this.board.set(t.to,{role:t.role,color:n}),this.pockets&&this.pockets[n][t.role]--,t.role==="pawn"&&(this.halfmoves=0);else{let o=this.board.take(t.from);if(!o)return;let s;if(o.role==="pawn"){this.halfmoves=0,t.to===r&&(s=this.board.take(t.to+(n==="white"?-8:8)));let a=t.from-t.to;Math.abs(a)===16&&8<=t.from&&t.from<=55&&(this.epSquare=t.from+t.to>>1),t.promotion&&(o.role=t.promotion,o.promoted=!!this.pockets)}else if(o.role==="rook")this.castles.discardRook(t.from);else if(o.role==="king"){if(i){let a=this.castles.rook[n][i];if(b(a)){let l=this.board.take(a);this.board.set(Ve(n,i),o),l&&this.board.set(ct(n,i),l)}}this.castles.discardColor(n)}if(!i){let a=this.board.set(t.to,o)||s;a&&this.playCaptureAt(t.to,a)}}this.remainingChecks&&this.isCheck()&&(this.remainingChecks[n]=Math.max(this.remainingChecks[n]-1,0))}},Ge=class extends J{constructor(){super("chess")}static default(){let t=new this;return t.reset(),t}static fromSetup(t){let n=new this;return n.setupUnchecked(t),n.validate().map(r=>n)}clone(){return super.clone()}},eo=(e,t)=>{if(!b(t))return;let n=e.turn==="white"?5:2,r=e.turn==="white"?8:-8;if(X(t)!==n||e.board.occupied.has(t+r))return;let i=t-r;if(!(!e.board.pawn.has(i)||!e.board[M(e.turn)].has(i)))return t},to=e=>{if(!b(e.epSquare))return;let t=e.ctx(),r=e.board.pieces(e.turn,"pawn").intersect(ve(M(e.turn),e.epSquare));for(let i of r)if(e.dests(i,t).has(e.epSquare))return e.epSquare},no=(e,t,n)=>{if(!b(e.epSquare)||!ve(e.turn,t).has(e.epSquare))return!1;if(!b(n.king))return!0;let r=e.turn==="white"?8:-8,i=e.epSquare-r;return e.kingAttackers(n.king,M(e.turn),e.board.occupied.toggle(t).toggle(i).with(e.epSquare)).without(i).isEmpty()},dt=(e,t,n)=>{if(!b(n.king)||n.checkers.nonEmpty())return u.empty();let r=e.castles.rook[e.turn][t];if(!b(r))return u.empty();if(e.castles.path[e.turn][t].intersects(e.board.occupied))return u.empty();let i=Ve(e.turn,t),o=Ce(n.king,i),s=e.board.occupied.without(n.king);for(let c of o)if(e.kingAttackers(c,M(e.turn),s).nonEmpty())return u.empty();let a=ct(e.turn,t),l=e.board.occupied.toggle(n.king).toggle(r).toggle(a);return e.kingAttackers(i,M(e.turn),l).nonEmpty()?u.empty():u.fromSquare(r)},pt=(e,t,n)=>{if(n.variantEnd)return u.empty();let r=e.board.get(t);if(!r||r.color!==e.turn)return u.empty();let i=ut(r,t,e.board.occupied);if(r.role==="pawn"){let o=e.board[M(e.turn)];b(e.epSquare)&&(o=o.with(e.epSquare)),i=i.intersect(o);let s=e.turn==="white"?8:-8,a=t+s;if(0<=a&&a<64&&!e.board.occupied.has(a)){i=i.with(a);let l=e.turn==="white"?t<16:t>=48,c=a+s;l&&!e.board.occupied.has(c)&&(i=i.with(c))}return i}else i=i.diff(e.board[e.turn]);return t===n.king?i.union(dt(e,"a",n)).union(dt(e,"h",n)):i};var Xt=(e,t)=>{if(ie(t))return;let n=t.to-t.from;if(!(Math.abs(n)!==2&&!e.board[e.turn].has(t.to))&&e.board.king.has(t.from))return n>0?"h":"a"},Un=(e,t)=>{let n=Xt(e,t);if(!n)return t;let r=e.castles.rook[e.turn][n];return{from:t.from,to:b(r)?r:t.to}};var jn=e=>ie(e)?String.fromCharCode(35+e.to,139+["queen","rook","bishop","knight","pawn"].indexOf(e.role)):String.fromCharCode(35+e.from,e.promotion?99+8*["queen","rook","bishop","knight","king"].indexOf(e.promotion)+D(e.to):35+e.to);var io="rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR",oo=io+" w KQkq -",Ya=oo+" 0 1",so="8/8/8/8/8/8/8/8",ao=so+" w - -",Za=ao+" 0 1",I;(function(e){e.Fen="ERR_FEN",e.Board="ERR_BOARD",e.Pockets="ERR_POCKETS",e.Turn="ERR_TURN",e.Castling="ERR_CASTLING",e.EpSquare="ERR_EP_SQUARE",e.RemainingChecks="ERR_REMAINING_CHECKS",e.Halfmoves="ERR_HALFMOVES",e.Fullmoves="ERR_FULLMOVES"})(I||(I={}));var K=class extends Error{},co=(e,t,n)=>{let r=e.indexOf(t);for(;n-- >0&&r!==-1;)r=e.indexOf(t,r+t.length);return r},Ie=e=>/^\d{1,4}$/.test(e)?parseInt(e,10):void 0,Xn=e=>{let t=Re(e);return t&&{role:t,color:e.toLowerCase()===e?"black":"white"}},Jt=e=>{let t=he.empty(),n=7,r=0;for(let i=0;i<e.length;i++){let o=e[i];if(o==="/"&&r===8)r=0,n--;else{let s=parseInt(o,10);if(s>0)r+=s;else{if(r>=8||n<0)return k.err(new K(I.Board));let a=r+n*8,l=Xn(o);if(!l)return k.err(new K(I.Board));e[i+1]==="~"&&(l.promoted=!0,i++),t.set(a,l),r++}}}return n!==0||r!==8?k.err(new K(I.Board)):k.ok(t)},Yn=e=>{if(e.length>64)return k.err(new K(I.Pockets));let t=Oe.empty();for(let n of e){let r=Xn(n);if(!r)return k.err(new K(I.Pockets));t[r.color][r.role]++}return k.ok(t)},lo=(e,t)=>{let n=u.empty();if(t==="-")return k.ok(n);for(let r of t){let i=r.toLowerCase(),o=r===i?"black":"white",s=o==="white"?0:7;if("a"<=i&&i<="h")n=n.with(at(i.charCodeAt(0)-97,s));else if(i==="k"||i==="q"){let a=e[o].intersect(u.backrank(o)).intersect(e.rook.union(e.king)),l=i==="k"?a.last():a.first();n=n.with(b(l)&&e.rook.has(l)?l:at(i==="k"?7:0,s))}else return k.err(new K(I.Castling))}return F.some(r=>u.backrank(r).intersect(n).size()>2)?k.err(new K(I.Castling)):k.ok(n)},Zn=e=>{let t=e.split("+");if(t.length===3&&t[0]===""){let n=Ie(t[1]),r=Ie(t[2]);return!b(n)||n>3||!b(r)||r>3?k.err(new K(I.RemainingChecks)):k.ok(new Se(3-n,3-r))}else if(t.length===2){let n=Ie(t[0]),r=Ie(t[1]);return!b(n)||n>3||!b(r)||r>3?k.err(new K(I.RemainingChecks)):k.ok(new Se(n,r))}else return k.err(new K(I.RemainingChecks))},Jn=e=>{let t=e.split(/[\s_]+/),n=t.shift(),r,i=k.ok(void 0);if(n.endsWith("]")){let a=n.indexOf("[");if(a===-1)return k.err(new K(I.Fen));r=Jt(n.slice(0,a)),i=Yn(n.slice(a+1,-1))}else{let a=co(n,"/",7);a===-1?r=Jt(n):(r=Jt(n.slice(0,a)),i=Yn(n.slice(a+1)))}let o,s=t.shift();if(!b(s)||s==="w")o="white";else if(s==="b")o="black";else return k.err(new K(I.Turn));return r.chain(a=>{let l=t.shift(),c=b(l)?lo(a,l):k.ok(u.empty()),d=t.shift(),p;if(b(d)&&d!=="-"&&(p=ue(d),!b(p)))return k.err(new K(I.EpSquare));let y=t.shift(),m;b(y)&&y.includes("+")&&(m=Zn(y),y=t.shift());let h=b(y)?Ie(y):0;if(!b(h))return k.err(new K(I.Halfmoves));let f=t.shift(),w=b(f)?Ie(f):1;if(!b(w))return k.err(new K(I.Fullmoves));let g=t.shift(),P=k.ok(void 0);if(b(g)){if(b(m))return k.err(new K(I.RemainingChecks));P=Zn(g)}else b(m)&&(P=m);return t.length>0?k.err(new K(I.Fen)):i.chain(A=>c.chain(v=>P.map(E=>({board:a,pockets:A,turn:o,castlingRights:v,remainingChecks:E,epSquare:p,halfmoves:h,fullmoves:Math.max(1,w)}))))})};var uo=e=>{let t=oe(e.role);return e.color==="white"&&(t=t.toUpperCase()),e.promoted&&(t+="~"),t},ho=e=>{let t="",n=0;for(let r=7;r>=0;r--)for(let i=0;i<8;i++){let o=i+r*8,s=e.get(o);s?(n>0&&(t+=n,n=0),t+=uo(s)):n++,i===7&&(n>0&&(t+=n,n=0),r!==0&&(t+="/"))}return t},Qn=e=>W.map(t=>oe(t).repeat(e[t])).join(""),po=e=>Qn(e.white).toUpperCase()+Qn(e.black),fo=(e,t)=>{let n="";for(let r of F){let i=u.backrank(r),o=e.kingOf(r);b(o)&&!i.has(o)&&(o=void 0);let s=e.pieces(r,"rook").intersect(i);for(let a of t.intersect(i).reversed())if(a===s.first()&&b(o)&&a<o)n+=r==="white"?"Q":"q";else if(a===s.last()&&b(o)&&o<a)n+=r==="white"?"K":"k";else{let l=Te[D(a)];n+=r==="white"?l.toUpperCase():l}}return n||"-"},mo=e=>`${e.white}+${e.black}`,ft=(e,t)=>[ho(e.board)+(e.pockets?`[${po(e.pockets)}]`:""),e.turn[0],fo(e.board,e.castlingRights),b(e.epSquare)?U(e.epSquare):"-",...e.remainingChecks?[mo(e.remainingChecks)]:[],...t?.epd?[]:[Math.max(0,Math.min(e.halfmoves,9999)),Math.max(1,Math.min(e.fullmoves,9999))]].join(" ");var ko=(e,t)=>{let n="";if(ie(t))t.role!=="pawn"&&(n=oe(t.role).toUpperCase()),n+="@"+U(t.to);else{let r=e.board.getRole(t.from);if(!r)return"--";if(r==="king"&&(e.board[e.turn].has(t.to)||Math.abs(t.to-t.from)===2))n=t.to>t.from?"O-O":"O-O-O";else{let i=e.board.occupied.has(t.to)||r==="pawn"&&D(t.from)!==D(t.to);if(r!=="pawn"){n=oe(r).toUpperCase();let o;if(r==="king"?o=se(t.to).intersect(e.board.king):r==="queen"?o=He(t.to,e.board.occupied).intersect(e.board.queen):r==="rook"?o=xe(t.to,e.board.occupied).intersect(e.board.rook):r==="bishop"?o=ye(t.to,e.board.occupied).intersect(e.board.bishop):o=Le(t.to).intersect(e.board.knight),o=o.intersect(e.board[e.turn]).without(t.from),o.nonEmpty()){let s=e.ctx();for(let a of o)e.dests(a,s).has(t.to)||(o=o.without(a));if(o.nonEmpty()){let a=!1,l=o.intersects(u.fromRank(X(t.from)));o.intersects(u.fromFile(D(t.from)))?a=!0:l=!0,l&&(n+=Te[D(t.from)]),a&&(n+=st[X(t.from)])}}}else i&&(n=Te[D(t.from)]);i&&(n+="x"),n+=U(t.to),t.promotion&&(n+="="+oe(t.promotion).toUpperCase())}}return n},er=(e,t)=>{var n;let r=ko(e,t);return e.play(t),!((n=e.outcome())===null||n===void 0)&&n.winner?r+"#":e.isCheck()?r+"+":r};var tr=(e,t)=>{let n=e.ctx(),r=t.match(/^([NBRQK])?([a-h])?([1-8])?[-x]?([a-h][1-8])(?:=?([nbrqkNBRQK]))?[+#]?$/);if(!r){let d;if(t==="O-O"||t==="O-O+"||t==="O-O#"?d="h":(t==="O-O-O"||t==="O-O-O+"||t==="O-O-O#")&&(d="a"),d){let m=e.castles.rook[e.turn][d];return!b(n.king)||!b(m)||!e.dests(n.king,n).has(m)?void 0:{from:n.king,to:m}}let p=t.match(/^([pnbrqkPNBRQK])?@([a-h][1-8])[+#]?$/);if(!p)return;let y={role:p[1]?Re(p[1]):"pawn",to:ue(p[2])};return e.isLegal(y,n)?y:void 0}let i=r[1]?Re(r[1]):"pawn",o=ue(r[4]),s=r[5]?Re(r[5]):void 0;if(!!s!==(i==="pawn"&&u.backranks().has(o))||s==="king"&&e.rules!=="antichess")return;let a=e.board.pieces(e.turn,i);i==="pawn"&&!r[2]?a=a.intersect(u.fromFile(D(o))):r[2]&&(a=a.intersect(u.fromFile(r[2].charCodeAt(0)-97))),r[3]&&(a=a.intersect(u.fromRank(r[3].charCodeAt(0)-49)));let l=i==="pawn"?u.fromFile(D(o)):u.empty();a=a.intersect(l.union(ut({color:M(e.turn),role:i},o,e.board.occupied)));let c;for(let d of a)if(e.dests(d,n).has(o)){if(b(c))return;c=d}if(b(c))return{from:c,to:o,promotion:s}};var mt=class extends J{constructor(){super("crazyhouse")}reset(){super.reset(),this.pockets=Oe.empty()}setupUnchecked(t){super.setupUnchecked(t),this.board.promoted=t.board.promoted.intersect(t.board.occupied).diff(t.board.king).diff(t.board.pawn),this.pockets=t.pockets?t.pockets.clone():Oe.empty()}static default(){let t=new this;return t.reset(),t}static fromSetup(t){let n=new this;return n.setupUnchecked(t),n.validate().map(r=>n)}clone(){return super.clone()}validate(){return super.validate().chain(t=>{var n,r;return!((n=this.pockets)===null||n===void 0)&&n.count("king")?k.err(new O(R.Kings)):(((r=this.pockets)===null||r===void 0?void 0:r.size())||0)+this.board.occupied.size()>64?k.err(new O(R.Variant)):k.ok(void 0)})}hasInsufficientMaterial(t){return this.pockets?this.board.occupied.size()+this.pockets.size()<=3&&this.board.pawn.isEmpty()&&this.board.promoted.isEmpty()&&this.board.rooksAndQueens().isEmpty()&&this.pockets.count("pawn")<=0&&this.pockets.count("rook")<=0&&this.pockets.count("queen")<=0:super.hasInsufficientMaterial(t)}dropDests(t){var n,r;let i=this.board.occupied.complement().intersect(!((n=this.pockets)===null||n===void 0)&&n[this.turn].hasNonPawns()?u.full():!((r=this.pockets)===null||r===void 0)&&r[this.turn].hasPawns()?u.backranks().complement():u.empty());if(t=t||this.ctx(),b(t.king)&&t.checkers.nonEmpty()){let o=t.checkers.singleSquare();return b(o)?i.intersect(Ce(o,t.king)):u.empty()}else return i}},gt=class extends J{constructor(){super("atomic")}static default(){let t=new this;return t.reset(),t}static fromSetup(t){let n=new this;return n.setupUnchecked(t),n.validate().map(r=>n)}clone(){return super.clone()}validate(){if(this.board.occupied.isEmpty())return k.err(new O(R.Empty));if(this.board.king.size()>2)return k.err(new O(R.Kings));let t=this.board.kingOf(M(this.turn));return b(t)?this.kingAttackers(t,this.turn,this.board.occupied).nonEmpty()?k.err(new O(R.OppositeCheck)):u.backranks().intersects(this.board.pawn)?k.err(new O(R.PawnsOnBackrank)):k.ok(void 0):k.err(new O(R.Kings))}kingAttackers(t,n,r){let i=this.board.pieces(n,"king");return i.isEmpty()||se(t).intersects(i)?u.empty():super.kingAttackers(t,n,r)}playCaptureAt(t,n){super.playCaptureAt(t,n),this.board.take(t);for(let r of se(t).intersect(this.board.occupied).diff(this.board.pawn)){let i=this.board.take(r);i?.role==="rook"&&this.castles.discardRook(r),i?.role==="king"&&this.castles.discardColor(i.color)}}hasInsufficientMaterial(t){if(this.board.pieces(M(t),"king").isEmpty())return!1;if(this.board[t].diff(this.board.king).isEmpty())return!0;if(this.board[M(t)].diff(this.board.king).nonEmpty()){if(this.board.occupied.equals(this.board.bishop.union(this.board.king))){if(!this.board.bishop.intersect(this.board.white).intersects(u.darkSquares()))return!this.board.bishop.intersect(this.board.black).intersects(u.lightSquares());if(!this.board.bishop.intersect(this.board.white).intersects(u.lightSquares()))return!this.board.bishop.intersect(this.board.black).intersects(u.darkSquares())}return!1}return this.board.queen.nonEmpty()||this.board.pawn.nonEmpty()?!1:this.board.knight.union(this.board.bishop).union(this.board.rook).size()===1?!0:this.board.occupied.equals(this.board.knight.union(this.board.king))?this.board.knight.size()<=2:!1}dests(t,n){n=n||this.ctx();let r=u.empty();for(let i of pt(this,t,n)){let o=this.clone();o.play({from:t,to:i});let s=o.board.kingOf(this.turn);b(s)&&(!b(o.board.kingOf(o.turn))||o.kingAttackers(s,o.turn,o.board.occupied).isEmpty())&&(r=r.with(i))}return r}isVariantEnd(){return!!this.variantOutcome()}variantOutcome(t){for(let n of F)if(this.board.pieces(n,"king").isEmpty())return{winner:M(n)}}},kt=class extends J{constructor(){super("antichess")}reset(){super.reset(),this.castles=ae.empty()}setupUnchecked(t){super.setupUnchecked(t),this.castles=ae.empty()}static default(){let t=new this;return t.reset(),t}static fromSetup(t){let n=new this;return n.setupUnchecked(t),n.validate().map(r=>n)}clone(){return super.clone()}validate(){return this.board.occupied.isEmpty()?k.err(new O(R.Empty)):u.backranks().intersects(this.board.pawn)?k.err(new O(R.PawnsOnBackrank)):k.ok(void 0)}kingAttackers(t,n,r){return u.empty()}ctx(){let t=super.ctx();if(b(this.epSquare)&&ve(M(this.turn),this.epSquare).intersects(this.board.pieces(this.turn,"pawn")))return t.mustCapture=!0,t;let n=this.board[M(this.turn)];for(let r of this.board[this.turn])if(pt(this,r,t).intersects(n))return t.mustCapture=!0,t;return t}dests(t,n){n=n||this.ctx();let r=pt(this,t,n),i=this.board[M(this.turn)];return r.intersect(n.mustCapture?b(this.epSquare)&&this.board.getRole(t)==="pawn"?i.with(this.epSquare):i:u.full())}hasInsufficientMaterial(t){if(this.board[t].isEmpty())return!1;if(this.board[M(t)].isEmpty())return!0;if(this.board.occupied.equals(this.board.bishop)){let n=this.board[t].intersects(u.lightSquares()),r=this.board[t].intersects(u.darkSquares()),i=this.board[M(t)].isDisjoint(u.lightSquares()),o=this.board[M(t)].isDisjoint(u.darkSquares());return n&&i||r&&o}return this.board.occupied.equals(this.board.knight)&&this.board.occupied.size()===2?this.board.white.intersects(u.lightSquares())!==this.board.black.intersects(u.darkSquares())!=(this.turn===t):!1}isVariantEnd(){return this.board[this.turn].isEmpty()}variantOutcome(t){if(t=t||this.ctx(),t.variantEnd||this.isStalemate(t))return{winner:this.turn}}},bt=class extends J{constructor(){super("kingofthehill")}static default(){let t=new this;return t.reset(),t}static fromSetup(t){let n=new this;return n.setupUnchecked(t),n.validate().map(r=>n)}clone(){return super.clone()}hasInsufficientMaterial(t){return!1}isVariantEnd(){return this.board.king.intersects(u.center())}variantOutcome(t){for(let n of F)if(this.board.pieces(n,"king").intersects(u.center()))return{winner:n}}},wt=class extends J{constructor(){super("3check")}reset(){super.reset(),this.remainingChecks=Se.default()}setupUnchecked(t){var n;super.setupUnchecked(t),this.remainingChecks=((n=t.remainingChecks)===null||n===void 0?void 0:n.clone())||Se.default()}static default(){let t=new this;return t.reset(),t}static fromSetup(t){let n=new this;return n.setupUnchecked(t),n.validate().map(r=>n)}clone(){return super.clone()}hasInsufficientMaterial(t){return this.board.pieces(t,"king").equals(this.board[t])}isVariantEnd(){return!!this.remainingChecks&&(this.remainingChecks.white<=0||this.remainingChecks.black<=0)}variantOutcome(t){if(this.remainingChecks){for(let n of F)if(this.remainingChecks[n]<=0)return{winner:n}}}},wo=()=>{let e=he.empty();return e.occupied=new u(65535,0),e.promoted=u.empty(),e.white=new u(61680,0),e.black=new u(3855,0),e.pawn=u.empty(),e.knight=new u(6168,0),e.bishop=new u(9252,0),e.rook=new u(16962,0),e.queen=new u(129,0),e.king=new u(33024,0),e},vt=class extends J{constructor(){super("racingkings")}reset(){this.board=wo(),this.pockets=void 0,this.turn="white",this.castles=ae.empty(),this.epSquare=void 0,this.remainingChecks=void 0,this.halfmoves=0,this.fullmoves=1}setupUnchecked(t){super.setupUnchecked(t),this.castles=ae.empty()}static default(){let t=new this;return t.reset(),t}static fromSetup(t){let n=new this;return n.setupUnchecked(t),n.validate().map(r=>n)}clone(){return super.clone()}validate(){return this.isCheck()||this.board.pawn.nonEmpty()?k.err(new O(R.Variant)):super.validate()}dests(t,n){if(n=n||this.ctx(),t===n.king)return super.dests(t,n);let r=u.empty();for(let i of super.dests(t,n)){let o={from:t,to:i},s=this.clone();s.play(o),s.isCheck()||(r=r.with(i))}return r}hasInsufficientMaterial(t){return!1}isVariantEnd(){let t=u.fromRank(7),n=this.board.king.intersect(t);if(n.isEmpty())return!1;if(this.turn==="white"||n.intersects(this.board.black))return!0;let r=this.board.kingOf("black");if(b(r)){let i=this.board.occupied.without(r);for(let o of se(r).intersect(t).diff(this.board.black))if(this.kingAttackers(o,"white",i).isEmpty())return!1}return!0}variantOutcome(t){if(t?!t.variantEnd:!this.isVariantEnd())return;let n=u.fromRank(7),r=this.board.pieces("black","king").intersects(n),i=this.board.pieces("white","king").intersects(n);return r&&!i?{winner:"black"}:i&&!r?{winner:"white"}:{winner:void 0}}},vo=()=>{let e=he.empty();return e.occupied=new u(4294967295,4294901862),e.promoted=u.empty(),e.white=new u(4294967295,102),e.black=new u(0,4294901760),e.pawn=new u(4294967295,16711782),e.knight=new u(0,1107296256),e.bishop=new u(0,603979776),e.rook=new u(0,2164260864),e.queen=new u(0,134217728),e.king=new u(0,268435456),e},yt=class extends J{constructor(){super("horde")}reset(){this.board=vo(),this.pockets=void 0,this.turn="white",this.castles=ae.default(),this.castles.discardColor("white"),this.epSquare=void 0,this.remainingChecks=void 0,this.halfmoves=0,this.fullmoves=1}static default(){let t=new this;return t.reset(),t}static fromSetup(t){let n=new this;return n.setupUnchecked(t),n.validate().map(r=>n)}clone(){return super.clone()}validate(){if(this.board.occupied.isEmpty())return k.err(new O(R.Empty));if(this.board.king.size()!==1)return k.err(new O(R.Kings));let t=this.board.kingOf(M(this.turn));if(b(t)&&this.kingAttackers(t,this.turn,this.board.occupied).nonEmpty())return k.err(new O(R.OppositeCheck));for(let n of F){let r=this.board.pieces(n,"king").isEmpty()?u.backrank(M(n)):u.backranks();if(this.board.pieces(n,"pawn").intersects(r))return k.err(new O(R.PawnsOnBackrank))}return k.ok(void 0)}hasInsufficientMaterial(t){if(this.board.pieces(t,"king").nonEmpty())return!1;let n=m=>m==="light"?"dark":"light",r=m=>m==="light"?u.lightSquares():u.darkSquares(),i=m=>{let h=this.board.pieces(m,"bishop");return h.intersects(u.darkSquares())&&h.intersects(u.lightSquares())},o=de.fromBoard(this.board,t),s=m=>r(m).intersect(this.board.pieces(t,"bishop")).size(),a=s("light")>=1?"light":"dark",l=o.pawn+o.knight+o.rook+o.queen+Math.min(s("dark"),2)+Math.min(s("light"),2),c=de.fromBoard(this.board,M(t)),d=m=>r(m).intersect(this.board.pieces(M(t),"bishop")).size(),p=c.size(),y=m=>p-m;if(l===0)return!0;if(l>=4||(o.pawn>=1||o.queen>=1)&&l>=2||o.rook>=1&&l>=2&&!(l===2&&o.rook===1&&o.bishop===1&&y(d(a))===1))return!1;if(l===1){if(p===1)return!0;if(o.queen===1)return!(c.pawn>=1||c.rook>=1||d("light")>=2||d("dark")>=2);if(o.pawn===1){let m=this.board.pieces(t,"pawn").last(),h=this.clone();h.board.set(m,{color:t,role:"queen"});let f=this.clone();return f.board.set(m,{color:t,role:"knight"}),h.hasInsufficientMaterial(t)&&f.hasInsufficientMaterial(t)}else{if(o.rook===1)return!(c.pawn>=2||c.rook>=1&&c.pawn>=1||c.rook>=1&&c.knight>=1||c.pawn>=1&&c.knight>=1);if(o.bishop===1)return!(d(n(a))>=2||d(n(a))>=1&&c.pawn>=1||c.pawn>=2);if(o.knight===1)return!(p>=4&&(c.knight>=2||c.pawn>=2||c.rook>=1&&c.knight>=1||c.rook>=1&&c.bishop>=1||c.knight>=1&&c.bishop>=1||c.rook>=1&&c.pawn>=1||c.knight>=1&&c.pawn>=1||c.bishop>=1&&c.pawn>=1||i(M(t))&&c.pawn>=1)&&(d("dark")<2||y(d("dark"))>=3)&&(d("light")<2||y(d("light"))>=3))}}else{if(l===2)return p===1?!0:o.knight===2?c.pawn+c.bishop+c.knight<1:i(t)?!(c.pawn>=1||c.bishop>=1||c.knight>=1&&c.rook+c.queen>=1):o.bishop>=1&&o.knight>=1?!(c.pawn>=1||d(n(a))>=1||y(d(a))>=3):!(c.pawn>=1&&d(n(a))>=1||c.pawn>=1&&c.knight>=1||d(n(a))>=1&&c.knight>=1||d(n(a))>=2||c.knight>=2||c.pawn>=2);if(l===3)return o.knight===2&&o.bishop===1||o.knight===3||i(t)?!1:p===1}return!0}isVariantEnd(){return this.board.white.isEmpty()||this.board.black.isEmpty()}variantOutcome(t){if(this.board.white.isEmpty())return{winner:"black"};if(this.board.black.isEmpty())return{winner:"white"}}},nr=e=>{switch(e){case"chess":return Ge.default();case"antichess":return kt.default();case"atomic":return gt.default();case"horde":return yt.default();case"racingkings":return vt.default();case"kingofthehill":return bt.default();case"3check":return wt.default();case"crazyhouse":return mt.default()}},rr=(e,t)=>{switch(e){case"chess":return Ge.fromSetup(t);case"antichess":return kt.fromSetup(t);case"atomic":return gt.fromSetup(t);case"horde":return yt.fromSetup(t);case"racingkings":return vt.fromSetup(t);case"kingofthehill":return bt.fromSetup(t);case"3check":return wt.fromSetup(t);case"crazyhouse":return mt.fromSetup(t)}};var xo=(e=on)=>({headers:e(),moves:new We}),We=class{constructor(){this.children=[]}*mainlineNodes(){let t=this;for(;t.children.length;){let n=t.children[0];yield n,t=n}}*mainline(){for(let t of this.mainlineNodes())yield t.data}end(){let t=this;for(;t.children.length;)t=t.children[0];return t}},xt=class extends We{constructor(t){super(),this.data=t}};var or=(e,t,n)=>{let r=new We,i=[{before:e,after:r,ctx:t}],o;for(;o=i.pop();)for(let s=0;s<o.before.children.length;s++){let a=s<o.before.children.length-1?o.ctx.clone():o.ctx,l=o.before.children[s],c=n(a,l.data,s);if(b(c)){let d=new xt(c);o.after.children.push(d),i.push({before:l,after:d,ctx:a})}}return r};var Co=e=>e?e.winner==="white"?"1-0":e.winner==="black"?"0-1":"1/2-1/2":"*",So=e=>e==="1-0"||e==="1\u20130"||e==="1\u20140"?{winner:"white"}:e==="0-1"||e==="0\u20131"||e==="0\u20141"?{winner:"black"}:e==="1/2-1/2"||e==="1/2\u20131/2"||e==="1/2\u20141/2"?{winner:void 0}:void 0;var on=()=>new Map([["Event","?"],["Site","?"],["Date","????.??.??"],["Round","?"],["White","?"],["Black","?"],["Result","*"]]);var ir="\uFEFF",en=e=>/^\s*$/.test(e),tn=e=>e.startsWith("%"),nn=class extends Error{},rn=class{constructor(t,n=on,r=1e6){this.emitGame=t,this.initHeaders=n,this.maxBudget=r,this.lineBuf=[],this.resetGame(),this.state=0}resetGame(){this.budget=this.maxBudget,this.found=!1,this.state=1,this.game=xo(this.initHeaders),this.stack=[{parent:this.game.moves,root:!0}],this.commentBuf=[]}consumeBudget(t){if(this.budget-=t,this.budget<0)throw new nn("ERR_PGN_BUDGET")}parse(t,n){if(!(this.budget<0))try{let r=0;for(;;){let i=t.indexOf(`
2
2
  `,r);if(i===-1)break;let o=i>r&&t[i-1]==="\r"?i-1:i;this.consumeBudget(i-r),this.lineBuf.push(t.slice(r,o)),r=i+1,this.handleLine()}this.consumeBudget(t.length-r),this.lineBuf.push(t.slice(r)),n?.stream||(this.handleLine(),this.emit(void 0))}catch(r){this.emit(r)}}handleLine(){let t=!0,n=this.lineBuf.join("");this.lineBuf=[];e:for(;;)switch(this.state){case 0:n.startsWith(ir)&&(n=n.slice(ir.length)),this.state=1;case 1:if(en(n)||tn(n))return;this.found=!0,this.state=2;case 2:{if(tn(n))return;let r=!0;for(;r;)r=!1,n=n.replace(/^\s*\[([A-Za-z0-9][A-Za-z0-9_+#=:-]*)\s+"((?:[^"\\]|\\"|\\\\)*)"\]/,(i,o,s)=>(this.consumeBudget(200),this.handleHeader(o,s.replace(/\\"/g,'"').replace(/\\\\/g,"\\")),r=!0,t=!1,""));if(en(n))return;this.state=3}case 3:{if(t){if(tn(n))return;if(en(n))return this.emit(void 0)}let r=/(?:[NBKRQ]?[a-h]?[1-8]?[-x]?[a-h][1-8](?:=?[nbrqkNBRQK])?|[pnbrqkPNBRQK]?@[a-h][1-8]|[O0o][-–—][O0o](?:[-–—][O0o])?)[+#]?|--|Z0|0000|@@@@|{|;|\$\d{1,4}|[?!]{1,2}|\(|\)|\*|1[-–—]0|0[-–—]1|1\/2[-–—]1\/2/g,i;for(;i=r.exec(n);){let o=this.stack[this.stack.length-1],s=i[0];if(s===";")return;if(s.startsWith("$"))this.handleNag(parseInt(s.slice(1),10));else if(s==="!")this.handleNag(1);else if(s==="?")this.handleNag(2);else if(s==="!!")this.handleNag(3);else if(s==="??")this.handleNag(4);else if(s==="!?")this.handleNag(5);else if(s==="?!")this.handleNag(6);else if(s==="1-0"||s==="1\u20130"||s==="1\u20140"||s==="0-1"||s==="0\u20131"||s==="0\u20141"||s==="1/2-1/2"||s==="1/2\u20131/2"||s==="1/2\u20141/2"||s==="*")this.stack.length===1&&s!=="*"&&this.handleHeader("Result",s);else if(s==="(")this.consumeBudget(100),this.stack.push({parent:o.parent,root:!1});else if(s===")")this.stack.length>1&&this.stack.pop();else if(s==="{"){let a=r.lastIndex,l=n[a]===" "?a+1:a;n=n.slice(l),this.state=4;continue e}else this.consumeBudget(100),s.startsWith("O")||s.startsWith("0")||s.startsWith("o")?s=s.replace(/[0o]/g,"O").replace(/[–—]/g,"-"):(s==="Z0"||s==="0000"||s==="@@@@")&&(s="--"),o.node&&(o.parent=o.node),o.node=new xt({san:s,startingComments:o.startingComments}),o.startingComments=void 0,o.root=!1,o.parent.children.push(o.node)}return}case 4:{let r=n.indexOf("}");if(r===-1){this.commentBuf.push(n);return}else{let i=r>0&&n[r-1]===" "?r-1:r;this.commentBuf.push(n.slice(0,i)),this.handleComment(),n=n.slice(r),this.state=3,t=!1}}}}handleHeader(t,n){this.game.headers.set(t,t==="Result"?Co(So(n)):n)}handleNag(t){var n;this.consumeBudget(50);let r=this.stack[this.stack.length-1];r.node&&((n=r.node.data).nags||(n.nags=[]),r.node.data.nags.push(t))}handleComment(){var t,n;this.consumeBudget(100);let r=this.stack[this.stack.length-1],i=this.commentBuf.join(`
3
- `);this.commentBuf=[],r.node?((t=r.node.data).comments||(t.comments=[]),r.node.data.comments.push(i)):r.root?((n=this.game).comments||(n.comments=[]),this.game.comments.push(i)):(r.startingComments||(r.startingComments=[]),r.startingComments.push(i))}emit(t){if(this.state===4&&this.handleComment(),t)return this.emitGame(this.game,t);this.found&&this.emitGame(this.game,void 0),this.resetGame()}},sn=(e,t=on)=>{let n=[];return new rn(r=>n.push(r),t,NaN).parse(e),n},Mo=e=>{switch((e||"chess").toLowerCase()){case"chess":case"chess960":case"chess 960":case"standard":case"from position":case"classical":case"normal":case"fischerandom":case"fischerrandom":case"fischer random":case"wild/0":case"wild/1":case"wild/2":case"wild/3":case"wild/4":case"wild/5":case"wild/6":case"wild/7":case"wild/8":case"wild/8a":return"chess";case"crazyhouse":case"crazy house":case"house":case"zh":return"crazyhouse";case"king of the hill":case"koth":case"kingofthehill":return"kingofthehill";case"three-check":case"three check":case"threecheck":case"three check chess":case"3-check":case"3 check":case"3check":return"3check";case"antichess":case"anti chess":case"anti":return"antichess";case"atomic":case"atom":case"atomic chess":return"atomic";case"horde":case"horde chess":return"horde";case"racing kings":case"racingkings":case"racing":case"race":return"racingkings";default:return}};var sr=e=>{let t=Mo(e.get("Variant"));if(!t)return k.err(new O(R.Variant));let n=e.get("FEN");return n?Jn(n).chain(r=>rr(t,r)):k.ok(nr(t))};function Po(e){switch(e){case"G":return"green";case"R":return"red";case"Y":return"yellow";case"B":return"blue";default:return}}var Eo=e=>{let t=Po(e.slice(0,1)),n=ue(e.slice(1,3)),r=ue(e.slice(3,5));if(!(!t||!b(n))){if(e.length===3)return{color:t,from:n,to:n};if(e.length===5&&b(r))return{color:t,from:n,to:r}}};var ar=e=>{let t,n,r,i=[];return{text:e.replace(/\s?\[%(emt|clk)\s(\d{1,5}):(\d{1,2}):(\d{1,2}(?:\.\d{0,3})?)\]\s?/g,(s,a,l,c,d)=>{let p=parseInt(l,10)*3600+parseInt(c,10)*60+parseFloat(d);return a==="emt"?t=p:a==="clk"&&(n=p)," "}).replace(/\s?\[%(?:csl|cal)\s([RGYB][a-h][1-8](?:[a-h][1-8])?(?:,[RGYB][a-h][1-8](?:[a-h][1-8])?)*)\]\s?/g,(s,a)=>{for(let l of a.split(","))i.push(Eo(l));return" "}).replace(/\s?\[%eval\s(?:#([+-]?\d{1,5})|([+-]?(?:\d{1,5}|\d{0,5}\.\d{1,2})))(?:,(\d{1,5}))?\]\s?/g,(s,a,l,c)=>{let d=c&&parseInt(c,10);return r=a?{mate:parseInt(a,10),depth:d}:{pawns:parseFloat(l),depth:d}," "}).trim(),shapes:i,emt:t,clock:n,evaluation:r}};var _o=e=>To[e];function an(e){return(t,...n)=>{let r=e&&e(t)||_o(t);return No(r??t,n)}}var No=(e,t)=>{let n=e;return t.forEach((r,i)=>{n=n.replace(`%${i+1}$s`,r),n=n.replace("%s",r)}),n},To={flipTheBoard:"Flip the board",analysisBoard:"Analysis board",practiceWithComputer:"Practice with computer",getPgn:"Get PGN",download:"Download",viewOnLichess:"View on Lichess",viewOnSite:"View on site",menu:"Menu","aria.first":"Go to first move","aria.prev":"Go to previous move","aria.next":"Go to next move","aria.last":"Go to last move","aria.gameMoves":"Game moves","aria.gameResult":"Game result","aria.variation":"Variation","aria.navigationControls":"Game navigation controls","aria.viewProfileOnLichess":"View %s's profile on Lichess","aria.chessGameBetween":"Chess game between %1$s as white and %2$s as black. %3$s","aria.gameInProgress":"Game in progress","aria.whiteWins":"White wins","aria.blackWins":"Black wins","aria.draw":"Draw","aria.unknownPlayer":"Unknown player","aria.rated":"rated %s","aria.move":"Move %1$s, %2$s, %3$s","aria.white":"white","aria.black":"black","aria.remaining":"%s remaining","aria.linkOpensInNewTab":"%s, link, opens in new tab","aria.accessibleChessboard":"Accessible chessboard","aria.piece.king":"king","aria.piece.queen":"queen","aria.piece.rook":"rook","aria.piece.bishop":"bishop","aria.piece.knight":"knight","aria.piece.pawn":"pawn","aria.empty":"empty","san.takes":"takes","san.check":"check","san.checkmate":"checkmate","san.promotesTo":"promotes to","san.droppedOn":"dropped on","san.longCastling":"long castling","san.shortCastling":"short castling"};var cr=["white","black"];var ce=["a","b","c","d","e","f","g","h"],Me=["1","2","3","4","5","6","7","8"];var Ct=[...Me].reverse(),Ue=ce.flatMap(e=>Me.map(t=>e+t)),Pe=e=>e.every(t=>t>=0&&t<=7)?Ue[8*e[0]+e[1]]:void 0,Ee=e=>Pe(e),T=e=>[e.charCodeAt(0)-97,e.charCodeAt(1)-49],ur=e=>{if(e)return e[1]==="@"?[e.slice(2,4)]:[e.slice(0,2),e.slice(2,4)]},cn=Ue.map(T),hr=Ue.map((e,t)=>({key:e,pos:cn[t]}));function ln(e){let t,n=()=>(t===void 0&&(t=e()),t);return n.clear=()=>{t=void 0},n}var dr=()=>{let e;return{start(){e=performance.now()},cancel(){e=void 0},stop(){if(!e)return 0;let t=performance.now()-e;return e=void 0,t}}},Ae=e=>e==="white"?"black":"white",_e=(e,t)=>(e[0]-t[0])**2+(e[1]-t[1])**2,je=(e,t)=>e.role===t.role&&e.color===t.color,pr=(e,t)=>e[0]===t[0]&&e[1]===t[1],Ne=e=>(t,n)=>[(n?t[0]:7-t[0])*e.width/8,(n?7-t[1]:t[1])*e.height/8],Y=(e,t)=>{e.style.transform=`translate(${t[0]}px,${t[1]}px)`},un=(e,t,n=1)=>{e.style.transform=`translate(${t[0]}px,${t[1]}px) scale(${n})`},fe=(e,t)=>{e.style.visibility=t?"visible":"hidden"},le=e=>{if(e.clientX||e.clientX===0)return[e.clientX,e.clientY];if(e.targetTouches?.[0])return[e.targetTouches[0].clientX,e.targetTouches[0].clientY]},Ro=ln(()=>!("ontouchstart"in window)&&["macintosh","firefox"].every(e=>navigator.userAgent.toLowerCase().includes(e))),St=e=>e.button===2&&!(e.ctrlKey&&Ro()),Z=(e,t)=>{let n=document.createElement(e);return t&&(n.className=t),n};function Mt(e,t,n){let r=T(e);return t||(r[0]=7-r[0],r[1]=7-r[1]),[n.left+n.width*r[0]/8+n.width/16,n.top+n.height*(7-r[1])/8+n.height/16]}var pe=(e,t)=>Math.abs(e-t),Pt=(e,t,n,r)=>pe(e,n)*pe(t,r)===2,hn=(e,t,n,r)=>e===n!=(t===r),dn=(e,t,n,r)=>pe(e,n)===pe(t,r)&&e!==n,fr=(e,t,n,r)=>hn(e,t,n,r)||dn(e,t,n,r),mr=(e,t,n,r)=>Math.max(pe(e,n),pe(t,r))===1;var gr=(e,t,n,r,i)=>{let o=i?1:-1;return e===n&&(r===t+o||r===t+2*o&&(i?t<=1:t>=6))},kr=(e,t,n,r)=>{let i=n-e,o=r-t;if(i&&o&&Math.abs(i)!==Math.abs(o))return[];let s=Math.sign(i),a=Math.sign(o),l=[],c=e+s,d=t+a;for(;c!==n||d!==r;)l.push([c,d]),c+=s,d+=a;return l.map(Pe).filter(p=>p!==void 0)};var ee=class e{constructor(t){this.path=t;this.size=()=>this.path.length/2;this.head=()=>this.path.slice(0,2);this.tail=()=>new e(this.path.slice(2));this.init=()=>new e(this.path.slice(0,-2));this.last=()=>this.path.slice(-2);this.empty=()=>this.path=="";this.contains=t=>this.path.startsWith(t.path);this.isChildOf=t=>this.init()===t;this.append=t=>new e(this.path+t);this.equals=t=>this.path==t.path}static{this.root=new e("")}};var Et=class{constructor(t,n,r,i){this.initial=t;this.moves=n;this.players=r;this.metadata=i;this.nodeAt=t=>br(this.moves,t);this.dataAt=t=>{let n=this.nodeAt(t);return n?qo(n)?n.data:this.initial:void 0};this.title=()=>this.players.white.name?[this.players.white.title,this.players.white.name,"vs",this.players.black.title,this.players.black.name].filter(t=>t&&!!t.trim()).join("_").replace(" ","-"):"lichess-pgn-viewer";this.pathAtMainlinePly=t=>t==0?ee.root:this.mainline[Math.max(0,Math.min(this.mainline.length-1,t=="last"?9999:t-1))]?.path||ee.root;this.hasPlayerName=()=>!!(this.players.white?.name||this.players.black?.name);this.mainline=Array.from(this.moves.mainline())}},Oo=(e,t)=>e.children.find(n=>n.data.path.last()==t),br=(e,t)=>{if(t.empty())return e;let n=Oo(e,t.head());return n?br(n,t.tail()):void 0},qo=e=>"data"in e,Ye=e=>"uci"in e;var pn=class e{constructor(t,n,r){this.pos=t;this.path=n;this.clocks=r;this.clone=()=>new e(this.pos.clone(),this.path,{...this.clocks})}},fn=e=>{let t=e.map(ar),n=r=>r.reduce((i,o)=>typeof o==null?i:o,void 0);return{texts:t.map(r=>r.text).filter(r=>!!r),shapes:t.flatMap(r=>r.shapes),clock:n(t.map(r=>r.clock)),emt:n(t.map(r=>r.emt))}},wr=(e,t=!1)=>{let n=sn(e)[0]||sn("*")[0],r=sr(n.headers).unwrap(),i=ft(r.toSetup()),o=fn(n.comments||[]),s=new Map(Array.from(n.headers,([p,y])=>[p.toLowerCase(),y])),a=Io(s,t),l={fen:i,turn:r.turn,check:r.isCheck(),pos:r.clone(),comments:o.texts,shapes:o.shapes,clocks:{white:a.timeControl?.initial||o.clock,black:a.timeControl?.initial||o.clock}},c=Do(r,n.moves,a),d=Lo(s,a);return new Et(l,c,d,a)},Do=(e,t,n)=>or(t,new pn(e,ee.root,{}),(r,i,o)=>{let s=tr(r.pos,i.san);if(!s)return;let a=jn(s),l=r.path.append(a),c=er(r.pos,s);r.path=l;let d=r.pos.toSetup(),p=fn(i.comments||[]),y=fn(i.startingComments||[]),m=[...p.shapes,...y.shapes],h=(d.fullmoves-1)*2+(r.pos.turn==="white"?0:1),f=r.clocks=Bo(r.clocks,r.pos.turn,p.clock);return h<2&&n.timeControl&&(f={white:n.timeControl.initial,black:n.timeControl.initial,...f}),{path:l,ply:h,move:s,san:c,uci:Ft(s),fen:ft(r.pos.toSetup()),turn:r.pos.turn,check:r.pos.isCheck(),comments:p.texts,startingComments:y.texts,nags:i.nags||[],shapes:m,clocks:f,emt:p.emt}}),Bo=(e,t,n)=>t=="white"?{...e,black:n}:{...e,white:n};function Lo(e,t){let n=(i,o)=>{let s=e.get(`${i}${o}`);return s=="?"||s==""?void 0:s},r=i=>{let o=n(i,"");return{name:o,title:n(i,"title"),rating:parseInt(n(i,"elo")||"")||void 0,isLichessUser:t.isLichess&&!!o?.match(/^[a-z0-9][a-z0-9_-]{0,28}[a-z0-9]$/i)}};return{white:r("white"),black:r("black")}}function Io(e,t){let n=e.get("chapterurl")||e.get("gameurl")||e.get("source")||e.get("site"),r=e.get("timecontrol")?.split("+").map(s=>parseInt(s)),i=r&&r[0]?{initial:r[0],increment:r[1]||0}:void 0,o=e.get("orientation");return{externalLink:n&&n.match(/^https?:\/\//)?n:void 0,isLichess:!!(t&&n?.startsWith(t)),timeControl:i,orientation:o==="white"||o==="black"?o:void 0,result:e.get("result")}}var Ze=class{constructor(t,n){this.opts=t;this.redraw=n;this.flipped=!1;this.pane="board";this.autoScrollRequested=!1;this.curNode=()=>this.game.nodeAt(this.path)||this.game.moves;this.curData=()=>this.game.dataAt(this.path)||this.game.initial;this.goTo=(t,n=!0)=>{let r=t=="first"?ee.root:t=="prev"?this.path.init():t=="next"?this.game.nodeAt(this.path)?.children[0]?.data.path:this.game.pathAtMainlinePly("last");this.toPath(r||this.path,n)};this.canGoTo=t=>t=="prev"||t=="first"?!this.path.empty():!!this.curNode().children[0];this.toPath=(t,n=!0)=>{this.path=t,this.pane="board",this.autoScrollRequested=!0,this.redrawGround(),this.redraw(),n&&this.focus()};this.focus=()=>this.div?.focus();this.toggleMenu=()=>{this.pane=this.pane=="board"?"menu":"board",this.redraw(),this.pane=="board"&&setTimeout(()=>this.menuButton?.focus(),0)};this.togglePgn=()=>{this.pane=this.pane=="pgn"?"board":"pgn",this.redraw()};this.orientation=()=>{let t=this.opts.orientation||"white";return this.flipped?P(t):t};this.flip=()=>{this.flipped=!this.flipped,this.pane="board",this.redrawGround(),this.redraw()};this.cgState=()=>{let t=this.curData(),n=Ye(t)?ur(t.uci):this.opts.chessground?.lastMove;return{fen:t.fen,orientation:this.orientation(),check:t.check,lastMove:n,turnColor:t.turn}};this.analysisUrl=t=>{let n=this.plyOnMainline(),r=n!==void 0;return this.game.metadata.isLichess&&this.game.metadata.externalLink&&r&&!t?this.game.metadata.externalLink+`#${n}`:`https://lichess.org/analysis/${this.curData().fen.replace(" ","_")}?color=${this.orientation()}`};this.practiceUrl=()=>`${this.analysisUrl(!0)}#practice`;this.setGround=t=>{this.ground=t,this.redrawGround()};this.redrawGround=()=>this.withGround(t=>{t.set(this.cgState()),t.setShapes(this.curData().shapes.map(n=>({orig:U(n.from),dest:U(n.to),brush:n.color})))});this.withGround=t=>this.ground&&t(this.ground);this.game=wr(t.pgn,t.lichess),t.orientation=t.orientation||this.game.metadata.orientation,this.translate=an(t.translate),this.path=this.game.pathAtMainlinePly(t.initialPly)}plyOnMainline(){let t=this.curData(),n=Ye(t)?t.ply:0;return(n===0?this.path.empty():!!this.game.mainline[n-1]&&this.game.mainline[n-1].path.equals(this.path))?n:void 0}};var Ko=e=>pe(e.orig.pos[0],e.dest.pos[0])<=1&&(pe(e.orig.pos[0],e.dest.pos[0])===1?e.dest.pos[1]===e.orig.pos[1]+(e.color==="white"?1:-1):gr(...e.orig.pos,...e.dest.pos,e.color==="white")),$o=e=>Pt(...e.orig.pos,...e.dest.pos),vr=e=>dn(...e.orig.pos,...e.dest.pos),yr=e=>hn(...e.orig.pos,...e.dest.pos),zo=e=>vr(e)||yr(e),Fo=e=>mr(...e.orig.pos,...e.dest.pos)||e.orig.pos[1]===e.dest.pos[1]&&e.orig.pos[1]===(e.color==="white"?0:7)&&(e.orig.pos[0]===4&&(e.dest.pos[0]===2&&e.rookFilesFriendlies.includes(0)||e.dest.pos[0]===6&&e.rookFilesFriendlies.includes(7))||e.rookFilesFriendlies.includes(e.dest.pos[0])),Vo={pawn:Ko,knight:$o,bishop:vr,rook:yr,queen:zo,king:Fo};function mn(e,t){let n=e.pieces,r=n.get(t);if(!r||r.color===e.turnColor)return[];let i=r.color,o=new Map([...n].filter(([d,p])=>p.color===i)),s=new Map([...n].filter(([d,p])=>p.color===Ae(i))),a={key:t,pos:T(t)},l=d=>Vo[r.role](d)&&e.premovable.additionalPremoveRequirements(d),c={orig:a,role:r.role,allPieces:n,friendlies:o,enemies:s,color:i,rookFilesFriendlies:Array.from(n).filter(([d,p])=>d[1]===(i==="white"?"1":"8")&&p.color===i&&p.role==="rook").map(([d])=>T(d)[0]),lastMove:e.lastMove};return hr.filter(d=>l({...c,dest:d})).map(d=>d.key)}function H(e,...t){e&&setTimeout(()=>e(...t),1)}function xr(e){e.orientation=Ae(e.orientation),e.animation.current=e.draggable.current=e.selected=void 0}function Cr(e,t){for(let[n,r]of t)r?e.pieces.set(n,r):e.pieces.delete(n)}function Sr(e,t){if(e.check=void 0,t===!0&&(t=e.turnColor),t)for(let[n,r]of e.pieces)r.role==="king"&&r.color===t&&(e.check=n)}function Ho(e,t,n,r){ne(e),e.premovable.current=[t,n],H(e.premovable.events.set,t,n,r)}function te(e){e.premovable.current&&(e.premovable.current=void 0,H(e.premovable.events.unset))}function Go(e,t,n){te(e),e.predroppable.current={role:t,key:n},H(e.predroppable.events.set,t,n)}function ne(e){let t=e.predroppable;t.current&&(t.current=void 0,H(t.events.unset))}function Wo(e,t,n){if(!e.autoCastle)return!1;let r=e.pieces.get(t);if(!r||r.role!=="king")return!1;let i=T(t),o=T(n);if(i[1]!==0&&i[1]!==7||i[1]!==o[1])return!1;i[0]===4&&!e.pieces.has(n)&&(o[0]===6?n=Ee([7,o[1]]):o[0]===2&&(n=Ee([0,o[1]])));let s=e.pieces.get(n);return!s||s.color!==r.color||s.role!=="rook"?!1:(e.pieces.delete(t),e.pieces.delete(n),i[0]<o[0]?(e.pieces.set(Ee([6,o[1]]),r),e.pieces.set(Ee([5,o[1]]),s)):(e.pieces.set(Ee([2,o[1]]),r),e.pieces.set(Ee([3,o[1]]),s)),!0)}function gn(e,t,n){let r=e.pieces.get(t),i=e.pieces.get(n);if(t===n||!r)return!1;let o=i&&i.color!==r.color?i:void 0;return n===e.selected&&V(e),H(e.events.move,t,n,o),Wo(e,t,n)||(e.pieces.set(n,r),e.pieces.delete(t)),e.lastMove=[t,n],e.check=void 0,H(e.events.change),o||!0}function At(e,t,n,r){if(e.pieces.has(n))if(r)e.pieces.delete(n);else return!1;return H(e.events.dropNewPiece,t,n),e.pieces.set(n,t),e.lastMove=[n],e.check=void 0,H(e.events.change),e.movable.dests=void 0,e.turnColor=Ae(e.turnColor),!0}function Mr(e,t,n){let r=gn(e,t,n);return r&&(e.movable.dests=void 0,e.turnColor=Ae(e.turnColor),e.animation.current=void 0),r}function kn(e,t,n){if(Nt(e,t,n)){let r=Mr(e,t,n);if(r){let i=e.hold.stop();V(e);let o={premove:!1,ctrlKey:e.stats.ctrlKey,holdTime:i};return r!==!0&&(o.captured=r),H(e.movable.events.after,t,n,o),!0}}else if(jo(e,t,n))return Ho(e,t,n,{ctrlKey:e.stats.ctrlKey}),V(e),!0;return V(e),!1}function _t(e,t,n,r){let i=e.pieces.get(t);i&&(Uo(e,t,n)||r)?(e.pieces.delete(t),At(e,i,n,r),H(e.movable.events.afterNewPiece,i.role,n,{premove:!1,predrop:!1})):i&&Yo(e,t,n)?Go(e,i.role,n):(te(e),ne(e)),e.pieces.delete(t),V(e)}function Qe(e,t,n){if(H(e.events.select,t),e.selected){if(e.selected===t&&!e.draggable.enabled){V(e),e.hold.cancel();return}else if((e.selectable.enabled||n)&&e.selected!==t&&kn(e,e.selected,t)){e.stats.dragged=!1;return}}(e.selectable.enabled||e.draggable.enabled)&&(Pr(e,t)||wn(e,t))&&(bn(e,t),e.hold.start())}function bn(e,t){e.selected=t,wn(e,t)?e.premovable.customDests||(e.premovable.dests=mn(e,t)):e.premovable.dests=void 0}function V(e){e.selected=void 0,e.premovable.dests=void 0,e.hold.cancel()}function Pr(e,t){let n=e.pieces.get(t);return!!n&&(e.movable.color==="both"||e.movable.color===n.color&&e.turnColor===n.color)}var Nt=(e,t,n)=>t!==n&&Pr(e,t)&&(e.movable.free||!!e.movable.dests?.get(t)?.includes(n));function Uo(e,t,n){let r=e.pieces.get(t);return!!r&&(t===n||!e.pieces.has(n))&&(e.movable.color==="both"||e.movable.color===r.color&&e.turnColor===r.color)}function wn(e,t){let n=e.pieces.get(t);return!!n&&e.premovable.enabled&&e.movable.color===n.color&&e.turnColor!==n.color}var jo=(e,t,n)=>t!==n&&wn(e,t)&&(e.premovable.customDests?.get(t)??mn(e,t)).includes(n);function Yo(e,t,n){let r=e.pieces.get(t),i=e.pieces.get(n);return!!r&&(!i||i.color!==e.movable.color)&&e.predroppable.enabled&&(r.role!=="pawn"||n[1]!=="1"&&n[1]!=="8")&&e.movable.color===r.color&&e.turnColor!==r.color}function Er(e,t){let n=e.pieces.get(t);return!!n&&e.draggable.enabled&&(e.movable.color==="both"||e.movable.color===n.color&&(e.turnColor===n.color||e.premovable.enabled))}function Ar(e){let t=e.premovable.current;if(!t)return!1;let n=t[0],r=t[1],i=!1;if(Nt(e,n,r)){let o=Mr(e,n,r);if(o){let s={premove:!0};o!==!0&&(s.captured=o),H(e.movable.events.after,n,r,s),i=!0}}return te(e),i}function _r(e,t){let n=e.predroppable.current,r=!1;if(!n)return!1;if(t(n)){let i={role:n.role,color:e.movable.color};At(e,i,n.key)&&(H(e.movable.events.afterNewPiece,n.role,n.key,{premove:!1,predrop:!0}),r=!0)}return ne(e),r}function Xe(e){te(e),ne(e),V(e)}function vn(e){e.movable.color=e.movable.dests=e.animation.current=void 0,Xe(e)}function re(e,t,n){let r=Math.floor(8*(e[0]-n.left)/n.width);t||(r=7-r);let i=7-Math.floor(8*(e[1]-n.top)/n.height);return t||(i=7-i),r>=0&&r<8&&i>=0&&i<8?Pe([r,i]):void 0}function Nr(e,t,n,r){let i=T(e),o=cn.filter(c=>pr(i,c)||fr(i[0],i[1],c[0],c[1])||Pt(i[0],i[1],c[0],c[1])),a=o.map(c=>Mt(Ee(c),n,r)).map(c=>_e(t,c)),[,l]=a.reduce((c,d,p)=>c[0]<d?c:[d,p],[a[0],0]);return Pe(o[l])}var B=e=>e.orientation==="white";var xn="rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR",Zo={p:"pawn",r:"rook",n:"knight",b:"bishop",q:"queen",k:"king"},Qo={pawn:"p",rook:"r",knight:"n",bishop:"b",queen:"q",king:"k"};function $e(e){e==="start"&&(e=xn);let t=new Map,n=7,r=0;for(let i of e)switch(i){case" ":case"[":return t;case"/":if(--n,n<0)return t;r=0;break;case"~":{let o=Pe([r-1,n]),s=o&&t.get(o);s&&(s.promoted=!0);break}default:{let o=i.charCodeAt(0);if(o<57)r+=o-48;else{let s=i.toLowerCase(),a=Pe([r,n]);a&&t.set(a,{role:Zo[s],color:i===s?"black":"white"}),++r}}}return t}function Tr(e){return Ct.map(t=>ce.map(n=>{let r=e.get(n+t);if(r){let i=Qo[r.role];return r.color==="white"&&(i=i.toUpperCase()),r.promoted&&(i+="~"),i}else return"1"}).join("")).join("/").replace(/1{2,}/g,t=>t.length.toString())}function Cn(e,t){t.animation&&(Sn(e.animation,t.animation),(e.animation.duration||0)<70&&(e.animation.enabled=!1))}function Tt(e,t){if(t.movable?.dests&&(e.movable.dests=void 0),t.drawable?.autoShapes&&(e.drawable.autoShapes=[]),Sn(e,t),t.fen&&(e.pieces=$e(t.fen),e.drawable.shapes=t.drawable?.shapes||[]),"check"in t&&Sr(e,t.check||!1),"lastMove"in t&&!t.lastMove?e.lastMove=void 0:t.lastMove&&(e.lastMove=t.lastMove),e.selected&&bn(e,e.selected),Cn(e,t),!e.movable.rookCastle&&e.movable.dests){let n=e.movable.color==="white"?"1":"8",r="e"+n,i=e.movable.dests.get(r),o=e.pieces.get(r);if(!i||!o||o.role!=="king")return;e.movable.dests.set(r,i.filter(s=>!(s==="a"+n&&i.includes("c"+n))&&!(s==="h"+n&&i.includes("g"+n))))}}function Sn(e,t){for(let n in t)n==="__proto__"||n==="constructor"||!Object.prototype.hasOwnProperty.call(t,n)||(Object.prototype.hasOwnProperty.call(e,n)&&Rr(e[n])&&Rr(t[n])?Sn(e[n],t[n]):e[n]=t[n])}function Rr(e){if(typeof e!="object"||e===null)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}var me=(e,t)=>t.animation.enabled?ts(e,t):ge(e,t);function ge(e,t){let n=e(t);return t.dom.redraw(),n}var Mn=(e,t)=>({key:e,pos:T(e),piece:t}),Jo=(e,t)=>t.sort((n,r)=>_e(e.pos,n.pos)-_e(e.pos,r.pos))[0];function es(e,t){let n=new Map,r=[],i=new Map,o=[],s=[],a=new Map,l,c,d;for(let[p,y]of e)a.set(p,Mn(p,y));for(let p of Ue)l=t.pieces.get(p),c=a.get(p),l?c?je(l,c.piece)||(o.push(c),s.push(Mn(p,l))):s.push(Mn(p,l)):c&&o.push(c);for(let p of s)c=Jo(p,o.filter(y=>je(p.piece,y.piece))),c&&(d=[c.pos[0]-p.pos[0],c.pos[1]-p.pos[1]],n.set(p.key,d.concat(d)),r.push(c.key));for(let p of o)r.includes(p.key)||i.set(p.key,p.piece);return{anims:n,fadings:i}}function Or(e,t){let n=e.animation.current;if(n===void 0){e.dom.destroyed||e.dom.redrawNow();return}let r=1-(t-n.start)*n.frequency;if(r<=0)e.animation.current=void 0,e.dom.redrawNow();else{let i=ns(r);for(let o of n.plan.anims.values())o[2]=o[0]*i,o[3]=o[1]*i;e.dom.redrawNow(!0),requestAnimationFrame((o=performance.now())=>Or(e,o))}}function ts(e,t){let n=new Map(t.pieces),r=e(t),i=es(n,t);if(i.anims.size||i.fadings.size){let o=t.animation.current&&t.animation.current.start;t.animation.current={start:performance.now(),frequency:1/t.animation.duration,plan:i},o||Or(t,performance.now())}else t.dom.redraw();return r}var ns=e=>e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1;var rs=["green","red","blue","yellow"];function qr(e,t){if(t.touches&&t.touches.length>1)return;t.stopPropagation(),t.preventDefault(),t.ctrlKey?V(e):Xe(e);let n=le(t),r=re(n,B(e),e.dom.bounds());r&&(e.drawable.current={orig:r,pos:n,brush:is(t),snapToValidMove:e.drawable.defaultSnapToValidMove},Dr(e))}function Dr(e){requestAnimationFrame(()=>{let t=e.drawable.current;if(t){let n=re(t.pos,B(e),e.dom.bounds());n||(t.snapToValidMove=!1);let r=t.snapToValidMove?Nr(t.orig,t.pos,B(e),e.dom.bounds()):n;r!==t.mouseSq&&(t.mouseSq=r,t.dest=r!==t.orig?r:void 0,e.dom.redrawNow()),Dr(e)}})}function Br(e,t){e.drawable.current&&(e.drawable.current.pos=le(t))}function Lr(e){let t=e.drawable.current;t&&(t.mouseSq&&os(e.drawable,t),Pn(e))}function Pn(e){e.drawable.current&&(e.drawable.current=void 0,e.dom.redraw())}function Ir(e){e.drawable.shapes.length&&(e.drawable.shapes=[],e.dom.redraw(),Kr(e.drawable))}var Rt=(e,t)=>e.orig===t.orig&&e.dest===t.dest,En=(e,t)=>e.brush===t.brush;function is(e){let t=(e.shiftKey||e.ctrlKey)&&St(e),n=e.altKey||e.metaKey||e.getModifierState?.("AltGraph");return rs[(t?1:0)+(n?2:0)]}function os(e,t){let n=e.shapes.find(r=>Rt(r,t));n&&(e.shapes=e.shapes.filter(r=>!Rt(r,t))),(!n||!En(n,t))&&e.shapes.push({orig:t.orig,dest:t.dest,brush:t.brush}),Kr(e)}function Kr(e){e.onChange&&e.onChange(e.shapes)}function $r(e,t){if(!(e.trustAllEvents||t.isTrusted)||t.buttons!==void 0&&t.buttons>1||t.touches&&t.touches.length>1)return;let n=e.dom.bounds(),r=le(t),i=re(r,B(e),n);if(!i)return;let o=e.pieces.get(i),s=e.selected;if(!s&&e.drawable.enabled&&(e.drawable.eraseOnMovablePieceClick||!o||o.color!==e.turnColor)&&Ir(e),t.cancelable!==!1&&(!t.touches||e.blockTouchScroll||o||s||as(e,r)))t.preventDefault();else if(t.touches)return;let a=!!e.premovable.current,l=!!e.predroppable.current;e.stats.ctrlKey=t.ctrlKey,e.selected&&Nt(e,e.selected,i)?me(p=>Qe(p,i),e):Qe(e,i);let c=e.selected===i,d=Gr(e,i);if(o&&d&&c&&Er(e,i)){e.draggable.current={orig:i,piece:o,origPos:r,pos:r,started:e.draggable.autoDistance&&e.stats.dragged,element:d,previouslySelected:s,originTarget:t.target,keyHasChanged:!1},d.cgDragging=!0,d.classList.add("dragging");let p=e.dom.elements.ghost;p&&(p.className=`ghost ${o.color} ${o.role}`,Y(p,Ne(n)(T(i),B(e))),fe(p,!0)),An(e)}else a&&te(e),l&&ne(e);e.dom.redraw()}function as(e,t){let n=B(e),r=e.dom.bounds(),i=Math.pow(e.touchIgnoreRadius*r.width/16,2)*2;for(let o of e.pieces.keys()){let s=Mt(o,n,r);if(_e(s,t)<=i)return!0}return!1}function zr(e,t,n,r){e.pieces.set("a0",t),e.dom.redraw();let o=le(n);e.draggable.current={orig:"a0",piece:t,origPos:o,pos:o,started:!0,element:()=>Gr(e,"a0"),originTarget:n.target,newPiece:!0,force:!!r,keyHasChanged:!1},An(e)}function An(e){requestAnimationFrame(()=>{let t=e.draggable.current;if(!t)return;e.animation.current?.plan.anims.has(t.orig)&&(e.animation.current=void 0);let n=e.pieces.get(t.orig);if(!n||!je(n,t.piece))qe(e);else if(!t.started&&_e(t.pos,t.origPos)>=Math.pow(e.draggable.distance,2)&&(t.started=!0),t.started){if(typeof t.element=="function"){let i=t.element();if(!i)return;i.cgDragging=!0,i.classList.add("dragging"),t.element=i}let r=e.dom.bounds();Y(t.element,[t.pos[0]-r.left-r.width/16,t.pos[1]-r.top-r.height/16]),t.keyHasChanged||(t.keyHasChanged=t.orig!==re(t.pos,B(e),r))}An(e)})}function Fr(e,t){e.draggable.current&&(!t.touches||t.touches.length<2)&&(e.draggable.current.pos=le(t))}function Vr(e,t){let n=e.draggable.current;if(!n)return;if(t.type==="touchend"&&t.cancelable!==!1&&t.preventDefault(),t.type==="touchend"&&n.originTarget!==t.target&&!n.newPiece){e.draggable.current=void 0;return}te(e),ne(e);let r=le(t)||n.pos,i=re(r,B(e),e.dom.bounds());i&&n.started&&n.orig!==i?n.newPiece?_t(e,n.orig,i,n.force):(e.stats.ctrlKey=t.ctrlKey,kn(e,n.orig,i)&&(e.stats.dragged=!0)):n.newPiece?e.pieces.delete(n.orig):e.draggable.deleteOnDropOff&&!i&&(e.pieces.delete(n.orig),H(e.events.change)),(n.orig===n.previouslySelected||n.keyHasChanged)&&(n.orig===i||!i)?V(e):e.selectable.enabled||V(e),Hr(e),e.draggable.current=void 0,e.dom.redraw()}function qe(e){let t=e.draggable.current;t&&(t.newPiece&&e.pieces.delete(t.orig),e.draggable.current=void 0,V(e),Hr(e),e.dom.redraw())}function Hr(e){let t=e.dom.elements;t.ghost&&fe(t.ghost,!1)}function Gr(e,t){let n=e.dom.elements.board.firstChild;for(;n;){if(n.cgKey===t&&n.tagName==="PIECE")return n;n=n.nextSibling}}function Ur(e,t){e.exploding={stage:1,keys:t},e.dom.redraw(),setTimeout(()=>{Wr(e,2),setTimeout(()=>Wr(e,void 0),120)},120)}function Wr(e,t){e.exploding&&(t?e.exploding.stage=t:e.exploding=void 0,e.dom.redraw())}function jr(e,t){function n(){xr(e),t()}return{set(r){r.orientation&&r.orientation!==e.orientation&&n(),Cn(e,r),(r.fen?me:ge)(i=>Tt(i,r),e)},state:e,getFen:()=>Tr(e.pieces),toggleOrientation:n,setPieces(r){me(i=>Cr(i,r),e)},selectSquare(r,i){r?me(o=>Qe(o,r,i),e):e.selected&&(V(e),e.dom.redraw())},move(r,i){me(o=>gn(o,r,i),e)},newPiece(r,i){me(o=>At(o,r,i),e)},playPremove(){if(e.premovable.current){if(me(Ar,e))return!0;e.dom.redraw()}return!1},playPredrop(r){if(e.predroppable.current){let i=_r(e,r);return e.dom.redraw(),i}return!1},cancelPremove(){ge(te,e)},cancelPredrop(){ge(ne,e)},cancelMove(){ge(r=>{Xe(r),qe(r)},e)},stop(){ge(r=>{vn(r),qe(r)},e)},explode(r){Ur(e,r)},setAutoShapes(r){ge(i=>i.drawable.autoShapes=r,e)},setShapes(r){ge(i=>i.drawable.shapes=r.slice(),e)},getKeyAtDomPos(r){return re(r,B(e),e.dom.bounds())},redrawAll:t,dragNewPiece(r,i,o){zr(e,r,i,o)},destroy(){vn(e),e.dom.unbind&&e.dom.unbind(),e.dom.destroyed=!0}}}function Yr(){return{pieces:$e(xn),orientation:"white",turnColor:"white",coordinates:!0,coordinatesOnSquares:!1,ranksPosition:"right",autoCastle:!0,viewOnly:!1,disableContextMenu:!1,addPieceZIndex:!1,blockTouchScroll:!1,touchIgnoreRadius:1,pieceKey:!1,trustAllEvents:!1,highlight:{lastMove:!0,check:!0},animation:{enabled:!0,duration:200},movable:{free:!0,color:"both",showDests:!0,events:{},rookCastle:!0},premovable:{enabled:!0,showDests:!0,castle:!0,additionalPremoveRequirements:e=>!0,events:{}},predroppable:{enabled:!1,events:{}},draggable:{enabled:!0,distance:3,autoDistance:!0,showGhost:!0,deleteOnDropOff:!1},dropmode:{active:!1},selectable:{enabled:!0},stats:{dragged:!("ontouchstart"in window)},events:{},drawable:{enabled:!0,visible:!0,defaultSnapToValidMove:!0,eraseOnMovablePieceClick:!0,shapes:[],autoShapes:[],brushes:{green:{key:"g",color:"#15781B",opacity:1,lineWidth:10},red:{key:"r",color:"#882020",opacity:1,lineWidth:10},blue:{key:"b",color:"#003088",opacity:1,lineWidth:10},yellow:{key:"y",color:"#e68f00",opacity:1,lineWidth:10},paleBlue:{key:"pb",color:"#003088",opacity:.4,lineWidth:15},paleGreen:{key:"pg",color:"#15781B",opacity:.4,lineWidth:15},paleRed:{key:"pr",color:"#882020",opacity:.4,lineWidth:15},paleGrey:{key:"pgr",color:"#4a4a4a",opacity:.35,lineWidth:15},purple:{key:"purple",color:"#68217a",opacity:.65,lineWidth:10},pink:{key:"pink",color:"#ee2080",opacity:.5,lineWidth:10},white:{key:"white",color:"white",opacity:1,lineWidth:10},paleWhite:{key:"pwhite",color:"white",opacity:.6,lineWidth:10}},prevSvgHash:""},hold:dr()}}function Jr(){let e=$("defs"),t=z($("filter"),{id:"cg-filter-blur"});return t.appendChild(z($("feGaussianBlur"),{stdDeviation:"0.013"})),e.appendChild(t),e}function ei(e,t){let n=e.drawable,r=n.current,i=r&&r.mouseSq?r:void 0,o=new Map,s=e.dom.bounds(),a=n.autoShapes.filter(p=>!p.piece);for(let p of n.shapes.concat(a).concat(i?[i]:[])){if(!p.dest)continue;let y=o.get(p.dest)??new Set,m=qt(Ot(T(p.orig),e.orientation),s),h=qt(Ot(T(p.dest),e.orientation),s);y.add(ai(ci(m,h))),o.set(p.dest,y)}let l=[],c=i?n.shapes.findIndex(p=>Rt(p,i)&&En(p,i)):-1;for(let[p,y]of n.shapes.concat(a).entries()){let m=c!==-1&&c===p;l.push({shape:y,current:!1,pendingErase:m,hash:Zr(y,_n(y.dest,o),!1,s,m,Xr(y.dest,o))})}i&&c===-1&&l.push({shape:i,current:!0,hash:Zr(i,_n(i.dest,o),!0,s,!1,Xr(i.dest,o)),pendingErase:!1});let d=l.map(p=>p.hash).join(";");d!==e.drawable.prevSvgHash&&(e.drawable.prevSvgHash=d,ls(n,l,t),us(l,t,p=>ps(e,p,n.brushes,o,s)))}function ls(e,t,n){for(let r of[n.shapes,n.shapesBelow]){let i=r.querySelector("defs"),o=t.filter(c=>r===n.shapesBelow==!!c.shape.below),s=new Map;for(let c of o.filter(d=>d.shape.dest&&d.shape.brush)){let d=ii(e.brushes[c.shape.brush],c.shape.modifiers),{key:p,color:y}=oi(c.shape);p&&y&&s.set(p,{key:p,color:y,opacity:1,lineWidth:1}),s.set(d.key,d)}let a=new Set,l=i.firstElementChild;for(;l;)a.add(l.getAttribute("cgKey")),l=l.nextElementSibling;for(let[c,d]of s.entries())a.has(c)||i.appendChild(gs(d))}}function us(e,t,n){for(let[r,i]of[[t.shapes,t.custom],[t.shapesBelow,t.customBelow]]){let[o,s]=[r,i].map(c=>c.querySelector("g")),a=e.filter(c=>r===t.shapesBelow==!!c.shape.below),l=new Map;for(let c of a)l.set(c.hash,!1);for(let c of[o,s]){let d=[],p=c.firstElementChild,y;for(;p;)y=p.getAttribute("cgHash"),l.has(y)?l.set(y,!0):d.push(p),p=p.nextElementSibling;for(let m of d)c.removeChild(m)}for(let c of a.filter(d=>!l.get(d.hash)))for(let d of n(c))d.isCustom?s.appendChild(d.el):o.appendChild(d.el)}}function Zr({orig:e,dest:t,brush:n,piece:r,modifiers:i,customSvg:o,label:s,below:a},l,c,d,p,y){return[d.width,d.height,c,p&&"pendingErase",y,e,t,n,l&&"-",r&&hs(r),i&&ds(i),o&&`custom-${Qr(o.html)},${o.center?.[0]??"o"}`,s&&`label-${Qr(s.text)}`,a&&"below"].filter(m=>m).join(",")}var hs=e=>[e.color,e.role,e.scale].filter(t=>t).join(","),ds=e=>[e.lineWidth,e.hilite].filter(t=>t).join(",");function Qr(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)>>>0;return t.toString()}function ps(e,{shape:t,current:n,pendingErase:r,hash:i},o,s,a){let l=qt(Ot(T(t.orig),e.orientation),a),c=t.dest?qt(Ot(T(t.dest),e.orientation),a):l,d=t.brush&&ii(o[t.brush],t.modifiers),p=s.get(t.dest),y=[];if(d){let m=z($("g"),{cgHash:i});y.push({el:m}),l[0]!==c[0]||l[1]!==c[1]?m.appendChild(ms(t,d,l,c,n,_n(t.dest,s),r)):m.appendChild(fs(o[t.brush],l,n,a,r))}if(t.label){let m=t.label;m.fill??(m.fill=t.brush&&o[t.brush].color);let h=t.brush?void 0:"tr";y.push({el:ks(m,i,l,c,p,h),isCustom:!0})}if(t.customSvg){let m=t.customSvg.center??"orig",[h,f]=m==="label"?li(l,c,p).map(g=>g-.5):m==="dest"?c:l,w=z($("g"),{transform:`translate(${h},${f})`,cgHash:i});w.innerHTML=`<svg width="1" height="1" viewBox="0 0 100 100">${t.customSvg.html}</svg>`,y.push({el:w,isCustom:!0})}return y}function fs(e,t,n,r,i){let o=bs(),s=(r.width+r.height)/(4*Math.max(r.width,r.height));return z($("circle"),{stroke:e.color,"stroke-width":o[n?0:1],fill:"none",opacity:si(e,n,i),cx:t[0],cy:t[1],r:s-o[1]/2})}function ms(e,t,n,r,i,o,s){function a(d){let p=vs(o&&!i),y=r[0]-n[0],m=r[1]-n[1],h=Math.atan2(m,y),f=Math.cos(h)*p,w=Math.sin(h)*p,g=oi(e);return z($("line"),{stroke:d?g.color:t.color,"stroke-width":ws(t,i)*(d?1.14:1),"stroke-linecap":"round","marker-end":`url(#arrowhead-${d?g.key:t.key})`,opacity:e.modifiers?.hilite&&!s?1:si(t,i,s),x1:n[0],y1:n[1],x2:r[0]-f,y2:r[1]-w})}if(!e.modifiers?.hilite)return a(!1);let l=z($("g"),{opacity:t.opacity}),c=z($("g"),{filter:"url(#cg-filter-blur)"});return c.appendChild(ys(n,r)),c.appendChild(a(!0)),l.appendChild(c),l.appendChild(a(!1)),l}function gs(e){let t=z($("marker"),{id:"arrowhead-"+e.key,orient:"auto",overflow:"visible",markerWidth:4,markerHeight:4,refX:e.key.startsWith("hilite")?1.86:2.05,refY:2});return t.appendChild(z($("path"),{d:"M0,0 V4 L3,2 Z",fill:e.color})),t.setAttribute("cgKey",e.key),t}function ks(e,t,n,r,i,o){let a=.4*.75**e.text.length,l=li(n,r,i),c=o==="tr"?.4:0,d=z($("g"),{transform:`translate(${l[0]+c},${l[1]-c})`,cgHash:t});d.appendChild(z($("circle"),{r:.4/2,"fill-opacity":o?1:.8,"stroke-opacity":o?1:.7,"stroke-width":.03,fill:e.fill??"#666",stroke:"white"}));let p=z($("text"),{"font-size":a,"font-family":"Noto Sans","text-anchor":"middle",fill:"white",y:.13*.75**e.text.length});return p.innerHTML=e.text,d.appendChild(p),d}var Ot=(e,t)=>t==="white"?e:[7-e[0],7-e[1]],ti=(e,t)=>(e%t+t)%t,ni=(e,t)=>ti(e+t,16),ri=e=>[...e].some(t=>[-3,-2,-1,1,2,3].some(n=>e.has(ni(t,n)))),_n=(e,t)=>!!e&&t.has(e)&&ri(t.get(e)),$=e=>document.createElementNS("http://www.w3.org/2000/svg",e),Xr=(e,t)=>e&&t.has(e)?t.get(e).size:0;function z(e,t){for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.setAttribute(n,t[n]);return e}var ii=(e,t)=>t?{color:e.color,opacity:Math.round(e.opacity*10)/10,lineWidth:Math.round(t.lineWidth||e.lineWidth),key:[e.key,t.lineWidth].filter(n=>n).join("")}:e,bs=()=>[3/64,4/64],ws=(e,t)=>(e.lineWidth||10)*(t?.85:1)/64;function oi(e){let t=e.modifiers?.hilite;return{key:t&&`hilite-${t.replace("#","")}`,color:t}}var si=(e,t,n)=>(e.opacity||1)*(n?.6:t?.9:1),vs=e=>(e?20:10)/64;function qt(e,t){let n=Math.min(1,t.width/t.height),r=Math.min(1,t.height/t.width);return[(e[0]-3.5)*n,(3.5-e[1])*r]}function ys(e,t){let n={from:[Math.floor(Math.min(e[0],t[0])),Math.floor(Math.min(e[1],t[1]))],to:[Math.ceil(Math.max(e[0],t[0])),Math.ceil(Math.max(e[1],t[1]))]};return z($("rect"),{x:n.from[0],y:n.from[1],width:n.to[0]-n.from[0],height:n.to[1]-n.from[1],fill:"none",stroke:"none"})}var ai=e=>ti(Math.round(e*8/Math.PI),16),ci=(e,t)=>Math.atan2(t[1]-e[1],t[0]-e[0])+Math.PI,xs=(e,t)=>Math.sqrt([e[0]-t[0],e[1]-t[1]].reduce((n,r)=>n+r*r,0));function li(e,t,n){let r=xs(e,t),i=ci(e,t);if(n&&(r-=33/64,ri(n))){r-=10/64;let o=ai(i);o&1&&[-1,1].some(s=>n.has(ni(o,s)))&&(r-=.4)}return[e[0]-Math.cos(i)*r,e[1]-Math.sin(i)*r].map(o=>o+.5)}function hi(e,t){e.innerHTML="",e.classList.add("cg-wrap");for(let d of cr)e.classList.toggle("orientation-"+d,t.orientation===d);e.classList.toggle("manipulable",!t.viewOnly);let n=Z("cg-container");e.appendChild(n);let r=Z("cg-board");n.appendChild(r);let i,o,s,a,l;if(t.drawable.visible&&([i,o]=["cg-shapes-below","cg-shapes"].map(d=>ui(d,!0)),[s,a]=["cg-custom-below","cg-custom-svgs"].map(d=>ui(d,!1)),l=Z("cg-auto-pieces"),n.appendChild(i),n.appendChild(s),n.appendChild(o),n.appendChild(a),n.appendChild(l)),t.coordinates){let d=t.orientation==="black"?" black":"",p=t.ranksPosition==="left"?" left":"";if(t.coordinatesOnSquares){let y=t.orientation==="white"?m=>m+1:m=>8-m;ce.forEach((m,h)=>n.appendChild(Nn(Me.map(f=>m+f),"squares rank"+y(h)+d+p,h%2===0?"black":"white")))}else n.appendChild(Nn(Me,"ranks"+d+p,t.ranksPosition==="right"==(t.orientation==="white")?"white":"black")),n.appendChild(Nn(ce,"files"+d,Ae(t.orientation)))}let c;return t.draggable.enabled&&t.draggable.showGhost&&(c=Z("piece","ghost"),fe(c,!1),n.appendChild(c)),{board:r,container:n,wrap:e,ghost:c,shapes:o,shapesBelow:i,custom:a,customBelow:s,autoPieces:l}}function ui(e,t){let n=z($("svg"),{class:e,viewBox:t?"-4 -4 8 8":"-3.5 -3.5 8 8",preserveAspectRatio:"xMidYMid slice"});return t&&n.appendChild(Jr()),n.appendChild($("g")),n}function Nn(e,t,n){let r=Z("coords",t),i;return e.forEach((o,s)=>{let a=s%2===(n==="white"?0:1);i=Z("coord",`coord-${a?"light":"dark"}`),i.textContent=o,r.appendChild(i)}),r}function di(e,t){if(!e.dropmode.active)return;te(e),ne(e);let n=e.dropmode.piece;if(n){e.pieces.set("a0",n);let r=le(t),i=r&&re(r,B(e),e.dom.bounds());i&&_t(e,"a0",i)}e.dom.redraw()}function fi(e,t){let n=e.dom.elements.board;if("ResizeObserver"in window&&new ResizeObserver(t).observe(e.dom.elements.wrap),(e.disableContextMenu||e.drawable.enabled)&&n.addEventListener("contextmenu",i=>i.preventDefault()),e.viewOnly)return;let r=Ss(e);n.addEventListener("touchstart",r,{passive:!1}),n.addEventListener("mousedown",r,{passive:!1})}function mi(e,t){let n=[];if("ResizeObserver"in window||n.push(Je(document.body,"chessground.resize",t)),!e.viewOnly){let r=pi(e,Fr,Br),i=pi(e,Vr,Lr);for(let s of["touchmove","mousemove"])n.push(Je(document,s,r));for(let s of["touchend","mouseup"])n.push(Je(document,s,i));let o=()=>e.dom.bounds.clear();n.push(Je(document,"scroll",o,{capture:!0,passive:!0})),n.push(Je(window,"resize",o,{passive:!0}))}return()=>n.forEach(r=>r())}function Je(e,t,n,r){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)}var Ss=e=>t=>{e.draggable.current?qe(e):e.drawable.current?Pn(e):t.shiftKey||St(t)?e.drawable.enabled&&qr(e,t):e.viewOnly||(e.dropmode.active?di(e,t):$r(e,t))},pi=(e,t,n)=>r=>{e.drawable.current?e.drawable.enabled&&n(e,r):e.viewOnly||t(e,r)};function gi(e){let t=B(e),n=Ne(e.dom.bounds()),r=e.dom.elements.board,i=e.pieces,o=e.animation.current,s=o?o.plan.anims:new Map,a=o?o.plan.fadings:new Map,l=e.draggable.current,c=new Set,d=new Map,p=As(e),y=new Map,m,h,f,w,g,M,A,v,E;for(h=r.firstChild;h;){if(m=h.cgKey,bi(h))if(f=i.get(m),g=s.get(m),M=a.get(m),w=h.cgPiece,h.cgDragging&&(!l||l.orig!==m)&&(h.classList.remove("dragging"),Y(h,n(T(m),t)),h.cgDragging=!1),!M&&h.cgFading&&(h.cgFading=!1,h.classList.remove("fading")),f){if(g&&h.cgAnimating&&w===et(f)){let x=T(m);x[0]+=g[2],x[1]+=g[3],h.classList.add("anim"),Y(h,n(x,t))}else h.cgAnimating&&(h.cgAnimating=!1,h.classList.remove("anim"),Y(h,n(T(m),t)),e.addPieceZIndex&&(h.style.zIndex=Tn(T(m),t)));w===et(f)&&(!M||!h.cgFading)?c.add(m):M&&w===et(M)?(h.classList.add("fading"),h.cgFading=!0):Rn(d,w,h)}else Rn(d,w,h);else if(wi(h)){let x=h.className;p.get(m)===x?(fe(h,!0),p.delete(m)):Rn(y,x,h)}h=h.nextSibling}for(let[x,_]of p){E=y.get(_)?.pop();let C=n(T(x),t);if(E)E.cgKey=x,Y(E,C),fe(E,!0);else{let N=Z("square",_);N.cgKey=x,Y(N,C),r.insertBefore(N,r.firstChild)}}for(let[x,_]of y.entries())for(let C of _)fe(C,!1);for(let[x,_]of i)if(g=s.get(x),!c.has(x))if(A=d.get(et(_)),v=A&&A.pop(),v){v.cgKey=x,v.cgFading&&(v.classList.remove("fading"),v.cgFading=!1);let C=T(x);e.addPieceZIndex&&(v.style.zIndex=Tn(C,t)),g&&(v.cgAnimating=!0,v.classList.add("anim"),C[0]+=g[2],C[1]+=g[3]),Y(v,n(C,t))}else{let C=et(_),N=Z("piece",C),q=T(x);N.cgPiece=C,N.cgKey=x,g&&(N.cgAnimating=!0,q[0]+=g[2],q[1]+=g[3]),Y(N,n(q,t)),e.addPieceZIndex&&(N.style.zIndex=Tn(q,t)),r.appendChild(N)}for(let x of d.values())Ps(e,x)}function ki(e){let t=B(e),n=Ne(e.dom.bounds()),r=e.dom.elements.board.firstChild;for(;r;)(bi(r)&&!r.cgAnimating||wi(r))&&Y(r,n(T(r.cgKey),t)),r=r.nextSibling}function On(e){let t=e.dom.elements.wrap.getBoundingClientRect(),n=e.dom.elements.container,r=t.height/t.width,i=Math.floor(t.width*window.devicePixelRatio/8)*8/window.devicePixelRatio,o=i*r;n.style.width=i+"px",n.style.height=o+"px",e.dom.bounds.clear(),e.addDimensionsCssVarsTo?.style.setProperty("---cg-width",i+"px"),e.addDimensionsCssVarsTo?.style.setProperty("---cg-height",o+"px")}var bi=e=>e.tagName==="PIECE",wi=e=>e.tagName==="SQUARE";function Ps(e,t){for(let n of t)e.dom.elements.board.removeChild(n)}function Tn(e,t){let r=e[1];return`${t?10-r:3+r}`}var et=e=>`${e.color} ${e.role}`,Es=(e,t)=>e.lastMove?.[1]&&!e.pieces.has(e.lastMove[1])&&e.lastMove[0][0]==="e"&&["h","a"].includes(e.lastMove[1][0])&&e.lastMove[0][1]===e.lastMove[1][1]&&kr(...T(e.lastMove[0]),...T(e.lastMove[1])).some(n=>e.pieces.has(n))?(t>e.lastMove[0]?"g":"c")+t[1]:t;function As(e){let t=new Map;if(e.lastMove&&e.highlight.lastMove)for(let[i,o]of e.lastMove.entries())ke(t,i===1?Es(e,o):o,"last-move");if(e.check&&e.highlight.check&&ke(t,e.check,"check"),e.selected&&(ke(t,e.selected,"selected"),e.movable.showDests)){for(let i of e.movable.dests?.get(e.selected)??[])ke(t,i,"move-dest"+(e.pieces.has(i)?" oc":""));for(let i of e.premovable.customDests?.get(e.selected)??e.premovable.dests??[])ke(t,i,"premove-dest"+(e.pieces.has(i)?" oc":""))}let n=e.premovable.current;if(n)for(let i of n)ke(t,i,"current-premove");else e.predroppable.current&&ke(t,e.predroppable.current.key,"current-premove");let r=e.exploding;if(r)for(let i of r.keys)ke(t,i,"exploding"+r.stage);return e.highlight.custom&&e.highlight.custom.forEach((i,o)=>{ke(t,o,i)}),t}function ke(e,t,n){let r=e.get(t);r?e.set(t,`${r} ${n}`):e.set(t,n)}function Rn(e,t,n){let r=e.get(t);r?r.push(n):e.set(t,[n])}function vi(e,t,n){let r=new Map,i=[];for(let a of e)r.set(a.hash,!1);let o=t.firstElementChild,s;for(;o;)s=o.getAttribute("cgHash"),r.has(s)?r.set(s,!0):i.push(o),o=o.nextElementSibling;for(let a of i)t.removeChild(a);for(let a of e)r.get(a.hash)||t.appendChild(n(a))}function yi(e,t){let r=e.drawable.autoShapes.filter(i=>i.piece).map(i=>({shape:i,hash:Ns(i),current:!1,pendingErase:!1}));vi(r,t,i=>_s(e,i,e.dom.bounds()))}function xi(e){let t=B(e),n=Ne(e.dom.bounds()),r=e.dom.elements.autoPieces?.firstChild;for(;r;)un(r,n(T(r.cgKey),t),r.cgScale),r=r.nextSibling}function _s(e,{shape:t,hash:n},r){let i=t.orig,o=t.piece?.role,s=t.piece?.color,a=t.piece?.scale,l=Z("piece",`${o} ${s}`);return l.setAttribute("cgHash",n),l.cgKey=i,l.cgScale=a,un(l,Ne(r)(T(i),B(e)),a),l}var Ns=e=>[e.orig,e.piece?.role,e.piece?.color,e.piece?.scale].join(",");function Ci(e,t){let n=Yr();Tt(n,t||{});function r(){let i="dom"in n?n.dom.unbind:void 0,o=hi(e,n),s=ln(()=>o.board.getBoundingClientRect()),a=d=>{gi(c),o.autoPieces&&yi(c,o.autoPieces),!d&&o.shapes&&ei(c,o)},l=()=>{On(c),ki(c),o.autoPieces&&xi(c)},c=n;return c.dom={elements:o,bounds:s,redraw:Rs(a),redrawNow:a,unbind:i},c.drawable.prevSvgHash="",On(c),a(!1),fi(c,l),i||(c.dom.unbind=mi(c,l)),c.events.insert&&c.events.insert(o),c}return jr(r(),r)}function Rs(e){let t=!1;return()=>{t||(t=!0,requestAnimationFrame(()=>{e(),t=!1}))}}function Os(e,t){return document.createElement(e,t)}function qs(e,t,n){return document.createElementNS(e,t,n)}function Ds(){return De(document.createDocumentFragment())}function Bs(e){return document.createTextNode(e)}function Ls(e){return document.createComment(e)}function Is(e,t,n){if(be(e)){let r=e;for(;r&&be(r);)r=De(r).parent;e=r??e}be(t)&&(t=De(t,e)),n&&be(n)&&(n=De(n).firstChildNode),e.insertBefore(t,n)}function Ks(e,t){e.removeChild(t)}function $s(e,t){be(t)&&(t=De(t,e)),e.appendChild(t)}function Si(e){if(be(e)){for(;e&&be(e);)e=De(e).parent;return e??null}return e.parentNode}function zs(e){var t;if(be(e)){let n=De(e),r=Si(n);if(r&&n.lastChildNode){let i=Array.from(r.childNodes),o=i.indexOf(n.lastChildNode);return(t=i[o+1])!==null&&t!==void 0?t:null}return null}return e.nextSibling}function Fs(e){return e.tagName}function Vs(e,t){e.textContent=t}function Hs(e){return e.textContent}function Gs(e){return e.nodeType===1}function Ws(e){return e.nodeType===3}function Us(e){return e.nodeType===8}function be(e){return e.nodeType===11}function De(e,t){var n,r,i;let o=e;return(n=o.parent)!==null&&n!==void 0||(o.parent=t??null),(r=o.firstChildNode)!==null&&r!==void 0||(o.firstChildNode=e.firstChild),(i=o.lastChildNode)!==null&&i!==void 0||(o.lastChildNode=e.lastChild),o}var Mi={createElement:Os,createElementNS:qs,createTextNode:Bs,createDocumentFragment:Ds,createComment:Ls,insertBefore:Is,removeChild:Ks,appendChild:$s,parentNode:Si,nextSibling:zs,tagName:Fs,setTextContent:Vs,getTextContent:Hs,isElement:Gs,isText:Ws,isComment:Us,isDocumentFragment:be};function Be(e,t,n,r,i){let o=t===void 0?void 0:t.key;return{sel:e,data:t,children:n,text:r,elm:i,key:o}}var tt=Array.isArray;function ze(e){return typeof e=="string"||typeof e=="number"||e instanceof String||e instanceof Number}function qn(e){return e===void 0}function j(e){return e!==void 0}var Dn=Be("",{},[],void 0,void 0);function nt(e,t){var n,r;let i=e.key===t.key,o=((n=e.data)===null||n===void 0?void 0:n.is)===((r=t.data)===null||r===void 0?void 0:r.is),s=e.sel===t.sel,a=!e.sel&&e.sel===t.sel?typeof e.text==typeof t.text:!0;return s&&i&&o&&a}function js(){throw new Error("The document fragment is not supported on this platform.")}function Ys(e,t){return e.isElement(t)}function Zs(e,t){return e.isDocumentFragment(t)}function Qs(e,t,n){var r;let i={};for(let o=t;o<=n;++o){let s=(r=e[o])===null||r===void 0?void 0:r.key;s!==void 0&&(i[s]=o)}return i}var Xs=["create","update","remove","destroy","pre","post"];function Bn(e,t,n){let r={create:[],update:[],remove:[],destroy:[],pre:[],post:[]},i=t!==void 0?t:Mi;for(let h of Xs)for(let f of e){let w=f[h];w!==void 0&&r[h].push(w)}function o(h){let f=h.id?"#"+h.id:"",w=h.getAttribute("class"),g=w?"."+w.split(" ").join("."):"";return Be(i.tagName(h).toLowerCase()+f+g,{},[],void 0,h)}function s(h){return Be(void 0,{},[],void 0,h)}function a(h,f){return function(){if(--f===0){let g=i.parentNode(h);i.removeChild(g,h)}}}function l(h,f){var w,g,M,A;let v,E=h.data;if(E!==void 0){let C=(w=E.hook)===null||w===void 0?void 0:w.init;j(C)&&(C(h),E=h.data)}let x=h.children,_=h.sel;if(_==="!")qn(h.text)&&(h.text=""),h.elm=i.createComment(h.text);else if(_!==void 0){let C=_.indexOf("#"),N=_.indexOf(".",C),q=C>0?C:_.length,L=N>0?N:_.length,G=C!==-1||N!==-1?_.slice(0,Math.min(q,L)):_,Q=h.elm=j(E)&&j(v=E.ns)?i.createElementNS(v,G,E):i.createElement(G,E);for(q<L&&Q.setAttribute("id",_.slice(q+1,L)),N>0&&Q.setAttribute("class",_.slice(L+1).replace(/\./g," ")),v=0;v<r.create.length;++v)r.create[v](Dn,h);if(tt(x))for(v=0;v<x.length;++v){let Vn=x[v];Vn!=null&&i.appendChild(Q,l(Vn,f))}else ze(h.text)&&i.appendChild(Q,i.createTextNode(h.text));let ot=h.data.hook;j(ot)&&((g=ot.create)===null||g===void 0||g.call(ot,Dn,h),ot.insert&&f.push(h))}else if(!((M=n?.experimental)===null||M===void 0)&&M.fragments&&h.children){for(h.elm=((A=i.createDocumentFragment)!==null&&A!==void 0?A:js)(),v=0;v<r.create.length;++v)r.create[v](Dn,h);for(v=0;v<h.children.length;++v){let C=h.children[v];C!=null&&i.appendChild(h.elm,l(C,f))}}else h.elm=i.createTextNode(h.text);return h.elm}function c(h,f,w,g,M,A){for(;g<=M;++g){let v=w[g];v!=null&&i.insertBefore(h,l(v,A),f)}}function d(h){var f,w;let g=h.data;if(g!==void 0){(w=(f=g?.hook)===null||f===void 0?void 0:f.destroy)===null||w===void 0||w.call(f,h);for(let M=0;M<r.destroy.length;++M)r.destroy[M](h);if(h.children!==void 0)for(let M=0;M<h.children.length;++M){let A=h.children[M];A!=null&&typeof A!="string"&&d(A)}}}function p(h,f,w,g){for(var M,A;w<=g;++w){let v,E,x=f[w];if(x!=null)if(j(x.sel)){d(x),v=r.remove.length+1,E=a(x.elm,v);for(let C=0;C<r.remove.length;++C)r.remove[C](x,E);let _=(A=(M=x?.data)===null||M===void 0?void 0:M.hook)===null||A===void 0?void 0:A.remove;j(_)?_(x,E):E()}else x.children?(d(x),p(h,x.children,0,x.children.length-1)):i.removeChild(h,x.elm)}}function y(h,f,w,g){let M=0,A=0,v=f.length-1,E=f[0],x=f[v],_=w.length-1,C=w[0],N=w[_],q,L,G,Q;for(;M<=v&&A<=_;)E==null?E=f[++M]:x==null?x=f[--v]:C==null?C=w[++A]:N==null?N=w[--_]:nt(E,C)?(m(E,C,g),E=f[++M],C=w[++A]):nt(x,N)?(m(x,N,g),x=f[--v],N=w[--_]):nt(E,N)?(m(E,N,g),i.insertBefore(h,E.elm,i.nextSibling(x.elm)),E=f[++M],N=w[--_]):nt(x,C)?(m(x,C,g),i.insertBefore(h,x.elm,E.elm),x=f[--v],C=w[++A]):(q===void 0&&(q=Qs(f,M,v)),L=q[C.key],qn(L)?i.insertBefore(h,l(C,g),E.elm):(G=f[L],G.sel!==C.sel?i.insertBefore(h,l(C,g),E.elm):(m(G,C,g),f[L]=void 0,i.insertBefore(h,G.elm,E.elm))),C=w[++A]);A<=_&&(Q=w[_+1]==null?null:w[_+1].elm,c(h,Q,w,A,_,g)),M<=v&&p(h,f,M,v)}function m(h,f,w){var g,M,A,v,E,x,_,C;let N=(g=f.data)===null||g===void 0?void 0:g.hook;(M=N?.prepatch)===null||M===void 0||M.call(N,h,f);let q=f.elm=h.elm;if(h===f)return;if(f.data!==void 0||j(f.text)&&f.text!==h.text){(A=f.data)!==null&&A!==void 0||(f.data={}),(v=h.data)!==null&&v!==void 0||(h.data={});for(let Q=0;Q<r.update.length;++Q)r.update[Q](h,f);(_=(x=(E=f.data)===null||E===void 0?void 0:E.hook)===null||x===void 0?void 0:x.update)===null||_===void 0||_.call(x,h,f)}let L=h.children,G=f.children;qn(f.text)?j(L)&&j(G)?L!==G&&y(q,L,G,w):j(G)?(j(h.text)&&i.setTextContent(q,""),c(q,null,G,0,G.length-1,w)):j(L)?p(q,L,0,L.length-1):j(h.text)&&i.setTextContent(q,""):h.text!==f.text&&(j(L)&&p(q,L,0,L.length-1),i.setTextContent(q,f.text)),(C=N?.postpatch)===null||C===void 0||C.call(N,h,f)}return function(f,w){let g,M,A,v=[];for(g=0;g<r.pre.length;++g)r.pre[g]();for(Ys(i,f)?f=o(f):Zs(i,f)&&(f=s(f)),nt(f,w)?m(f,w,v):(M=f.elm,A=i.parentNode(M),l(w,v),A!==null&&(i.insertBefore(A,w.elm,i.nextSibling(M)),p(A,[f],0,0))),g=0;g<v.length;++g)v[g].data.hook.insert(v[g]);for(g=0;g<r.post.length;++g)r.post[g]();return w}}function Ei(e,t,n){if(e.ns="http://www.w3.org/2000/svg",n!=="foreignObject"&&t!==void 0)for(let r=0;r<t.length;++r){let i=t[r];if(typeof i=="string")continue;let o=i.data;o!==void 0&&Ei(o,i.children,i.sel)}}function S(e,t,n){let r={},i,o,s;if(n!==void 0?(t!==null&&(r=t),tt(n)?i=n:ze(n)?o=n.toString():n&&n.sel&&(i=[n])):t!=null&&(tt(t)?i=t:ze(t)?o=t.toString():t&&t.sel?i=[t]:r=t),i!==void 0)for(s=0;s<i.length;++s)ze(i[s])&&(i[s]=Be(void 0,void 0,void 0,i[s],void 0));return e[0]==="s"&&e[1]==="v"&&e[2]==="g"&&(e.length===3||e[3]==="."||e[3]==="#")&&Ei(r,i,e),Be(e,r,i,o,void 0)}var Js="http://www.w3.org/1999/xlink",ea="http://www.w3.org/XML/1998/namespace";function Ai(e,t){let n,r=t.elm,i=e.data.attrs,o=t.data.attrs;if(!(!i&&!o)&&i!==o){i=i||{},o=o||{};for(n in o){let s=o[n];i[n]!==s&&(s===!0?r.setAttribute(n,""):s===!1?r.removeAttribute(n):n.charCodeAt(0)!==120?r.setAttribute(n,s):n.charCodeAt(3)===58?r.setAttributeNS(ea,n,s):n.charCodeAt(5)===58?r.setAttributeNS(Js,n,s):r.setAttribute(n,s))}for(n in i)n in o||r.removeAttribute(n)}}var Ln={create:Ai,update:Ai};function _i(e,t){let n,r,i=t.elm,o=e.data.class,s=t.data.class;if(!(!o&&!s)&&o!==s){o=o||{},s=s||{};for(r in o)o[r]&&!Object.prototype.hasOwnProperty.call(s,r)&&i.classList.remove(r);for(r in s)n=s[r],n!==o[r]&&i.classList[n?"add":"remove"](r)}}var In={create:_i,update:_i};var Ni=e=>{let t=Kn[e];return t?S("nag",{attrs:{title:t.name}},t.symbol):void 0},Kn={1:{symbol:"!",name:"Good move"},2:{symbol:"?",name:"Mistake"},3:{symbol:"!!",name:"Brilliant move"},4:{symbol:"??",name:"Blunder"},5:{symbol:"!?",name:"Interesting move"},6:{symbol:"?!",name:"Dubious move"},7:{symbol:"\u25A1",name:"Only move"},22:{symbol:"\u2A00",name:"Zugzwang"},10:{symbol:"=",name:"Equal position"},13:{symbol:"\u221E",name:"Unclear position"},14:{symbol:"\u2A72",name:"White is slightly better"},15:{symbol:"\u2A71",name:"Black is slightly better"},16:{symbol:"\xB1",name:"White is better"},17:{symbol:"\u2213",name:"Black is better"},18:{symbol:"+\u2212",name:"White is winning"},19:{symbol:"-+",name:"Black is winning"},146:{symbol:"N",name:"Novelty"},32:{symbol:"\u2191\u2191",name:"Development"},36:{symbol:"\u2191",name:"Initiative"},40:{symbol:"\u2192",name:"Attack"},132:{symbol:"\u21C6",name:"Counterplay"},138:{symbol:"\u2295",name:"Time trouble"},44:{symbol:"=\u221E",name:"With compensation"},140:{symbol:"\u2206",name:"With the idea"}};function Ri(e,t,n){for(let r of["touchstart","mousedown"])e.addEventListener(r,i=>{t(i),i.preventDefault(),n&&n()},{passive:!1})}var $n=(e,t,n,r=!0)=>Fe(i=>i.addEventListener(e,o=>{let s=t(o);return s===!1&&o.preventDefault(),n?.(),s},{passive:r}));function Fe(e){return{insert:t=>e(t.elm)}}var rt=e=>{if(!e&&e!==0)return["-"];let t=new Date(e*1e3),n=":",r=Ti(t.getUTCMinutes())+n+Ti(t.getUTCSeconds());return e>=3600?[Math.floor(e/3600)+n+r]:[r]},Ti=e=>(e<10?"0":"")+e,Oi=(e,t,n,r)=>{let i=`${t.toUpperCase()}${n}`;if(!r)return`${i} ${e("aria.empty")}`;let o=e(`aria.piece.${r.role}`);return`${i} ${e(`aria.${r.color}`)} ${o}`},Dt=(e,t,n)=>{let r=n?ta(e,n):e;if(t&&t.length>0){let i=t.map(o=>Kn[o]?.name).filter(o=>o).join(", ");i&&(r+=`, ${i}`)}return r},ta=(e,t)=>e.split("").map(n=>{if(n==="x")return t("san.takes");if(n==="+")return t("san.check");if(n==="#")return t("san.checkmate");if(n==="=")return t("san.promotesTo");if(n==="@")return t("san.droppedOn");let r=n.charCodeAt(0);return r>48&&r<58?n:r>96&&r<105?n.toUpperCase():n==="K"?t("aria.piece.king"):n==="Q"?t("aria.piece.queen"):n==="R"?t("aria.piece.rook"):n==="B"?t("aria.piece.bishop"):n==="N"?t("aria.piece.knight"):n==="O"?"O":n}).join(" ").replace("O - O - O",t("san.longCastling")).replace("O - O",t("san.shortCastling"));function qi(e){let t=0;return n=>{t+=n.deltaY*(n.deltaMode?40:1),Math.abs(t)>=4?(e(n,!0),t=0):e(n,!1)}}function Di(e,t){let n=()=>{e(),r=Math.max(100,r-r/15),i=setTimeout(n,r)},r=350,i=setTimeout(n,500);e();let o=t.type=="touchstart"?"touchend":"mouseup";document.addEventListener(o,()=>clearTimeout(i),{once:!0})}var na=e=>e.altKey||e.ctrlKey||e.shiftKey||e.metaKey||document.activeElement instanceof HTMLInputElement||document.activeElement instanceof HTMLTextAreaElement,Bi=e=>t=>{na(t)||(t.key=="ArrowLeft"?e.goTo("prev"):t.key=="ArrowRight"?e.goTo("next"):t.key=="f"&&e.flip())};var Li=e=>S("div.lpv__menu.lpv__pane",{attrs:{role:"menu","aria-label":e.translate("menu")??"Menu"},hook:{insert:t=>{let n=t.elm;n.querySelector('[role="menuitem"]')?.focus(),ia(e,n)}}},[S("button.lpv__menu__entry.lpv__menu__flip.lpv__fbt",{attrs:{role:"menuitem"},hook:$n("click",e.flip)},e.translate("flipTheBoard")),e.opts.menu.analysisBoard?.enabled?S("a.lpv__menu__entry.lpv__menu__analysis.lpv__fbt",{attrs:{role:"menuitem",href:e.analysisUrl(!1),target:"_blank","aria-label":e.translate("aria.linkOpensInNewTab",e.translate("analysisBoard"))}},e.translate("analysisBoard")):void 0,e.opts.menu.practiceWithComputer?.enabled?S("a.lpv__menu__entry.lpv__menu__practice.lpv__fbt",{attrs:{role:"menuitem",href:e.practiceUrl(),target:"_blank","aria-label":e.translate("aria.linkOpensInNewTab",e.translate("practiceWithComputer"))}},e.translate("practiceWithComputer")):void 0,e.opts.menu.getPgn.enabled?S("button.lpv__menu__entry.lpv__menu__pgn.lpv__fbt",{attrs:{role:"menuitem"},hook:$n("click",e.togglePgn)},e.translate("getPgn")):void 0,!e.game.metadata.isLichess||!e.opts.menu.analysisBoard?.enabled?ra(e):void 0]),ra=e=>{let t=e.game.metadata.externalLink,n=e.translate(e.game.metadata.isLichess?"viewOnLichess":"viewOnSite");return t&&S("a.lpv__menu__entry.lpv__fbt",{attrs:{role:"menuitem",href:t,target:"_blank","aria-label":e.translate("aria.linkOpensInNewTab",n)}},n)},Ii=e=>S("div.lpv__controls",{attrs:{role:"navigation","aria-label":e.translate("aria.navigationControls")}},[e.pane=="board"?void 0:Bt(e,"first","step-backward"),Bt(e,"prev","left-open"),S("button.lpv__fbt.lpv__controls__menu.lpv__icon",{class:{active:e.pane!="board","lpv__icon-ellipsis-vert":e.pane=="board"},hook:{insert:t=>{let n=t.elm;n.addEventListener("click",e.toggleMenu),e.menuButton=n}},attrs:{"aria-label":e.translate("menu"),"aria-expanded":String(e.pane==="menu"),"aria-haspopup":"menu"}},e.pane=="board"?void 0:"X"),Bt(e,"next","right-open"),e.pane=="board"?void 0:Bt(e,"last","step-forward")]),Bt=(e,t,n)=>{let r=e.pane=="board"&&!e.canGoTo(t);return S(`button.lpv__controls__goto.lpv__controls__goto--${t}.lpv__fbt.lpv__icon.lpv__icon-${n}`,{class:{disabled:r},hook:Fe(i=>Ri(i,o=>Di(()=>e.goTo(t),o))),attrs:{"aria-label":e.translate(`aria.${t}`),"aria-disabled":String(r),disabled:r}})},ia=(e,t)=>{let n=r=>{switch(r.key){case"Enter":case" ":r.preventDefault(),document.activeElement?.click();break;case"Escape":r.preventDefault(),e.toggleMenu();break}};t.addEventListener("keydown",n)};var it={"aria-hidden":!0},Lt={role:"presentation","aria-hidden":"true"},Ki=e=>{let t=e.curData();if(!Ye(t))return"";let n=Math.ceil(t.ply/2),r=t.ply%2===1?"white":"black",i=t.san,o=e.translate("aria.move",n.toString(),e.translate(`aria.${r}`),Dt(i,t.nags,e.translate)),s=t.clocks&&t.clocks[r==="white"?"white":"black"];if(s!==void 0&&e.opts.showClocks){let l=rt(s).join("");l!=="-"&&(o+=", "+e.translate("aria.remaining",l))}let a=t.comments.join(" ").trim();return a&&(o+=`. ${a}`),o},$i=e=>{let t=e.game,n=a=>{let l=a.name||e.translate("aria.unknownPlayer");return a.title&&(l=`${a.title} ${l}`),a.rating&&(l=`${l}, ${e.translate("aria.rated",a.rating.toString())}`),l},r=a=>!a||a==="*"?e.translate("aria.gameInProgress"):a==="1-0"?e.translate("aria.whiteWins"):a==="0-1"?e.translate("aria.blackWins"):a==="1/2-1/2"?e.translate("aria.draw"):a,i=n(t.players.white),o=n(t.players.black),s=r(t.metadata.result);return e.translate("aria.chessGameBetween",i,o,s)};var Fi=e=>S("div.lpv__side",[S("div.lpv__moves",{attrs:{role:"complementary","aria-label":e.translate("aria.gameMoves")},hook:{insert:t=>{let n=t.elm;e.path.empty()||zi(e,n),n.addEventListener("click",r=>{let i=r.target.getAttribute("data-path");i&&e.toPath(new ee(i))},{passive:!0})},postpatch:(t,n)=>{e.autoScrollRequested&&(zi(e,n.elm),e.autoScrollRequested=!1)}}},[...e.game.initial.comments.map(Kt),...ca(e),...oa(e)])]),oa=e=>{let t=e.game.metadata.result;return t&&t!="*"?[S("comment.result",{attrs:{role:"note","aria-label":e.translate("aria.gameResult")}},e.game.metadata.result)]:[]},zn=()=>S("button.move.empty",{attrs:{"aria-hidden":"true",disabled:!0}},"..."),Fn=e=>S("index",{attrs:Lt},`${e}.`),Kt=e=>S("comment",{attrs:{role:"note"}},e),sa=()=>S("paren.open",{attrs:it},"("),aa=()=>S("paren.close",{attrs:it},")"),It=e=>Math.floor((e.ply-1)/2)+1,ca=e=>{let t=ua(e),n=[],r,i=e.game.moves.children.slice(1);for(e.game.initial.pos.turn=="black"&&e.game.mainline[0]&&n.push(Fn(e.game.initial.pos.fullmoves),zn());r=(r||e.game.moves).children[0];){let o=r.data,s=o.ply%2==1;s&&n.push(Fn(It(o))),n.push(t(o));let a=s&&(i.length||o.comments.length)&&r.children.length;a&&n.push(zn()),o.comments.forEach(l=>n.push(Kt(l))),i.forEach(l=>n.push(la(e.translate,t,l))),a&&n.push(Fn(It(o)),zn()),i=r.children.slice(1)}return n},la=(e,t,n)=>S("variation",{attrs:{role:"group","aria-label":e("aria.variation")}},[...n.data.startingComments.map(Kt),...Vi(t,n)]),Vi=(e,t)=>{let n=[],r=[];t.data.ply%2==0&&n.push(S("index",{attrs:Lt},[It(t.data),"..."]));do{let i=t.data;i.ply%2==1&&n.push(S("index",{attrs:Lt},[It(i),"."])),n.push(e(i)),i.comments.forEach(o=>n.push(Kt(o))),r.forEach(o=>{n=[...n,sa(),...Vi(e,o),aa()]}),r=t.children.slice(1),t=t.children[0]}while(t);return n},ua=e=>t=>S("button.move",{class:{current:e.path.equals(t.path),ancestor:e.path.contains(t.path),good:t.nags.includes(1),mistake:t.nags.includes(2),brilliant:t.nags.includes(3),blunder:t.nags.includes(4),interesting:t.nags.includes(5),inaccuracy:t.nags.includes(6)},attrs:{"data-path":t.path.path,role:"button","aria-label":e.translate("aria.move",Math.ceil(t.ply/2).toString(),e.translate(`aria.${t.ply%2===1?"white":"black"}`),Dt(t.san,t.nags,e.translate))}},[t.san,...t.nags.map(Ni)]),zi=(e,t)=>{let n=t.querySelector(".current");if(!n){t.scrollTop=e.path.empty()?0:99999;return}t.scrollTop=n.offsetTop-t.offsetHeight/2+n.offsetHeight};function $t(e,t){let n=t=="bottom"?e.orientation():P(e.orientation()),r=e.game.players[n],i=[r.title?S("span.lpv__player__title",r.title):void 0,S("span.lpv__player__name",r.name),r.rating?S("span.lpv__player__rating",["(",r.rating,")"]):void 0];return S(`div.lpv__player.lpv__player--${t}`,[r.isLichessUser&&r.name?S("a.lpv__player__person.ulpt.user-link",{attrs:{href:`${e.opts.lichess}/@/${r.name}`,"aria-label":e.translate("aria.viewProfileOnLichess",r.name)}},i):S("span.lpv__player__person",i),e.opts.showClocks?ha(e,n):void 0])}var ha=(e,t)=>{let n=e.curData(),r=n.clocks&&n.clocks[t];return typeof r==null?void 0:S("div.lpv__player__clock",{class:{active:t==n.turn},attrs:{role:"timer","aria-label":rt(r).join("")}},rt(r))};var Hi=e=>{let t=e.flipped;return S("div.lpv__sr-only",{attrs:{role:"grid","aria-label":e.translate("aria.accessibleChessboard"),"aria-hidden":"false"}},da(e,t))},da=(e,t)=>{let n=e.ground?.state.pieces||$e(e.curData().fen),r=t?Me:Ct,i=t?[...ce].reverse():ce;return r.map(o=>S("div",{attrs:{role:"row"}},i.map(s=>{let a=`${s}${o}`,l=n.get(a);return pa(e.translate,s,o,l)})))},pa=(e,t,n,r)=>{let i=Oi(e,t,n,r);return S("span",{attrs:{role:"gridcell","aria-label":i}},i)};function zt(e){let t=e.opts,n=`lpv.lpv--moves-${t.showMoves}.lpv--controls-${t.showControls}${t.classes?"."+t.classes.replace(" ","."):""}`,r=t.showPlayers=="auto"?e.game.hasPlayerName():t.showPlayers;return S(`div.${n}`,{class:{"lpv--menu":e.pane!="board","lpv--players":r},attrs:{role:"region",tabindex:0,"aria-label":$i(e)},hook:Fe(i=>{e.setGround(Ci(i.querySelector(".cg-wrap"),ga(e,i))),t.keyboardToMove&&i.addEventListener("keydown",Bi(e))})},[S("div.lpv__sr-only",{attrs:{"aria-live":"polite","aria-atomic":"true"}},Ki(e)),Hi(e),r?$t(e,"top"):void 0,fa(e),r?$t(e,"bottom"):void 0,t.showControls?Ii(e):void 0,t.showMoves?Fi(e):void 0,e.pane=="menu"?Li(e):e.pane=="pgn"?ma(e):void 0])}var fa=e=>S("div.lpv__board",{attrs:it,hook:Fe(t=>{t.addEventListener("click",e.focus),e.opts.scrollToMove&&!("ontouchstart"in window)&&t.addEventListener("wheel",qi((n,r)=>{n.preventDefault(),n.deltaY>0&&r?e.goTo("next",!1):n.deltaY<0&&r&&e.goTo("prev",!1)}))})},S("div.cg-wrap")),ma=e=>{let t=new Blob([e.opts.pgn],{type:"text/plain"});return S("div.lpv__pgn.lpv__pane",[S("a.lpv__pgn__download.lpv__fbt",{attrs:{href:window.URL.createObjectURL(t),download:e.opts.menu.getPgn.fileName||`${e.game.title()}.pgn`}},e.translate("download")),S("textarea.lpv__pgn__text",e.opts.pgn)])},ga=(e,t)=>({viewOnly:!e.opts.drawArrows,addDimensionsCssVarsTo:t,drawable:{enabled:e.opts.drawArrows,visible:!0},disableContextMenu:e.opts.drawArrows,...e.opts.chessground||{},movable:{free:!1},draggable:{enabled:!1},selectable:{enabled:!1},...e.cgState()});var ka={pgn:"*",fen:void 0,showPlayers:"auto",showClocks:!0,showMoves:"auto",showControls:!0,scrollToMove:!0,keyboardToMove:!0,orientation:void 0,initialPly:0,chessground:{},drawArrows:!0,menu:{getPgn:{enabled:!0,fileName:void 0},practiceWithComputer:{enabled:!0},analysisBoard:{enabled:!0}},lichess:"https://lichess.org",classes:void 0};function Wi(e,t){let n={...ka};return Ui(n,t),n.fen&&(n.pgn=`[FEN "${n.fen}"]
3
+ `);this.commentBuf=[],r.node?((t=r.node.data).comments||(t.comments=[]),r.node.data.comments.push(i)):r.root?((n=this.game).comments||(n.comments=[]),this.game.comments.push(i)):(r.startingComments||(r.startingComments=[]),r.startingComments.push(i))}emit(t){if(this.state===4&&this.handleComment(),t)return this.emitGame(this.game,t);this.found&&this.emitGame(this.game,void 0),this.resetGame()}},sn=(e,t=on)=>{let n=[];return new rn(r=>n.push(r),t,NaN).parse(e),n},Po=e=>{switch((e||"chess").toLowerCase()){case"chess":case"chess960":case"chess 960":case"standard":case"from position":case"classical":case"normal":case"fischerandom":case"fischerrandom":case"fischer random":case"wild/0":case"wild/1":case"wild/2":case"wild/3":case"wild/4":case"wild/5":case"wild/6":case"wild/7":case"wild/8":case"wild/8a":return"chess";case"crazyhouse":case"crazy house":case"house":case"zh":return"crazyhouse";case"king of the hill":case"koth":case"kingofthehill":return"kingofthehill";case"three-check":case"three check":case"threecheck":case"three check chess":case"3-check":case"3 check":case"3check":return"3check";case"antichess":case"anti chess":case"anti":return"antichess";case"atomic":case"atom":case"atomic chess":return"atomic";case"horde":case"horde chess":return"horde";case"racing kings":case"racingkings":case"racing":case"race":return"racingkings";default:return}};var sr=e=>{let t=Po(e.get("Variant"));if(!t)return k.err(new O(R.Variant));let n=e.get("FEN");return n?Jn(n).chain(r=>rr(t,r)):k.ok(nr(t))};function Mo(e){switch(e){case"G":return"green";case"R":return"red";case"Y":return"yellow";case"B":return"blue";default:return}}var Eo=e=>{let t=Mo(e.slice(0,1)),n=ue(e.slice(1,3)),r=ue(e.slice(3,5));if(!(!t||!b(n))){if(e.length===3)return{color:t,from:n,to:n};if(e.length===5&&b(r))return{color:t,from:n,to:r}}};var ar=e=>{let t,n,r,i=[];return{text:e.replace(/\s?\[%(emt|clk)\s(\d{1,5}):(\d{1,2}):(\d{1,2}(?:\.\d{0,3})?)\]\s?/g,(s,a,l,c,d)=>{let p=parseInt(l,10)*3600+parseInt(c,10)*60+parseFloat(d);return a==="emt"?t=p:a==="clk"&&(n=p)," "}).replace(/\s?\[%(?:csl|cal)\s([RGYB][a-h][1-8](?:[a-h][1-8])?(?:,[RGYB][a-h][1-8](?:[a-h][1-8])?)*)\]\s?/g,(s,a)=>{for(let l of a.split(","))i.push(Eo(l));return" "}).replace(/\s?\[%eval\s(?:#([+-]?\d{1,5})|([+-]?(?:\d{1,5}|\d{0,5}\.\d{1,2})))(?:,(\d{1,5}))?\]\s?/g,(s,a,l,c)=>{let d=c&&parseInt(c,10);return r=a?{mate:parseInt(a,10),depth:d}:{pawns:parseFloat(l),depth:d}," "}).trim(),shapes:i,emt:t,clock:n,evaluation:r}};var _o=e=>To[e];function an(e){return(t,...n)=>{let r=e&&e(t)||_o(t);return No(r??t,n)}}var No=(e,t)=>{let n=e;return t.forEach((r,i)=>{n=n.replace(`%${i+1}$s`,r),n=n.replace("%s",r)}),n},To={flipTheBoard:"Flip the board",analysisBoard:"Analysis board",practiceWithComputer:"Practice with computer",getPgn:"Get PGN",download:"Download",viewOnLichess:"View on Lichess",viewOnSite:"View on site",menu:"Menu","aria.first":"Go to first move","aria.prev":"Go to previous move","aria.next":"Go to next move","aria.last":"Go to last move","aria.gameMoves":"Game moves","aria.gameResult":"Game result","aria.variation":"Variation","aria.navigationControls":"Game navigation controls","aria.viewProfileOnLichess":"View %s's profile on Lichess","aria.chessGameBetween":"Chess game between %1$s as white and %2$s as black. %3$s","aria.gameInProgress":"Game in progress","aria.whiteWins":"White wins","aria.blackWins":"Black wins","aria.draw":"Draw","aria.unknownPlayer":"Unknown player","aria.rated":"rated %s","aria.move":"Move %1$s, %2$s, %3$s","aria.white":"white","aria.black":"black","aria.remaining":"%s remaining","aria.linkOpensInNewTab":"%s, link, opens in new tab","aria.accessibleChessboard":"Accessible chessboard","aria.piece.king":"king","aria.piece.queen":"queen","aria.piece.rook":"rook","aria.piece.bishop":"bishop","aria.piece.knight":"knight","aria.piece.pawn":"pawn","aria.empty":"empty","san.takes":"takes","san.check":"check","san.checkmate":"checkmate","san.promotesTo":"promotes to","san.droppedOn":"dropped on","san.longCastling":"long castling","san.shortCastling":"short castling"};var cr=["white","black"];var ce=["a","b","c","d","e","f","g","h"],Pe=["1","2","3","4","5","6","7","8"];var Ct=[...Pe].reverse(),Ue=ce.flatMap(e=>Pe.map(t=>e+t)),Me=e=>e.every(t=>t>=0&&t<=7)?Ue[8*e[0]+e[1]]:void 0,Ee=e=>Me(e),T=e=>[e.charCodeAt(0)-97,e.charCodeAt(1)-49],ur=e=>{if(e)return e[1]==="@"?[e.slice(2,4)]:[e.slice(0,2),e.slice(2,4)]},cn=Ue.map(T),hr=Ue.map((e,t)=>({key:e,pos:cn[t]}));function ln(e){let t,n=()=>(t===void 0&&(t=e()),t);return n.clear=()=>{t=void 0},n}var dr=()=>{let e;return{start(){e=performance.now()},cancel(){e=void 0},stop(){if(!e)return 0;let t=performance.now()-e;return e=void 0,t}}},Ae=e=>e==="white"?"black":"white",_e=(e,t)=>(e[0]-t[0])**2+(e[1]-t[1])**2,je=(e,t)=>e.role===t.role&&e.color===t.color,pr=(e,t)=>e[0]===t[0]&&e[1]===t[1],Ne=e=>(t,n)=>[(n?t[0]:7-t[0])*e.width/8,(n?7-t[1]:t[1])*e.height/8],Y=(e,t)=>{e.style.transform=`translate(${t[0]}px,${t[1]}px)`},un=(e,t,n=1)=>{e.style.transform=`translate(${t[0]}px,${t[1]}px) scale(${n})`},fe=(e,t)=>{e.style.visibility=t?"visible":"hidden"},le=e=>{if(e.clientX||e.clientX===0)return[e.clientX,e.clientY];if(e.targetTouches?.[0])return[e.targetTouches[0].clientX,e.targetTouches[0].clientY]},Ro=ln(()=>!("ontouchstart"in window)&&["macintosh","firefox"].every(e=>navigator.userAgent.toLowerCase().includes(e))),St=e=>e.button===2&&!(e.ctrlKey&&Ro()),Z=(e,t)=>{let n=document.createElement(e);return t&&(n.className=t),n};function Pt(e,t,n){let r=T(e);return t||(r[0]=7-r[0],r[1]=7-r[1]),[n.left+n.width*r[0]/8+n.width/16,n.top+n.height*(7-r[1])/8+n.height/16]}var pe=(e,t)=>Math.abs(e-t),Mt=(e,t,n,r)=>pe(e,n)*pe(t,r)===2,hn=(e,t,n,r)=>e===n!=(t===r),dn=(e,t,n,r)=>pe(e,n)===pe(t,r)&&e!==n,fr=(e,t,n,r)=>hn(e,t,n,r)||dn(e,t,n,r),mr=(e,t,n,r)=>Math.max(pe(e,n),pe(t,r))===1;var gr=(e,t,n,r,i)=>{let o=i?1:-1;return e===n&&(r===t+o||r===t+2*o&&(i?t<=1:t>=6))},kr=(e,t,n,r)=>{let i=n-e,o=r-t;if(i&&o&&Math.abs(i)!==Math.abs(o))return[];let s=Math.sign(i),a=Math.sign(o),l=[],c=e+s,d=t+a;for(;c!==n||d!==r;)l.push([c,d]),c+=s,d+=a;return l.map(Me).filter(p=>p!==void 0)};var ee=class e{constructor(t){this.path=t;this.size=()=>this.path.length/2;this.head=()=>this.path.slice(0,2);this.tail=()=>new e(this.path.slice(2));this.init=()=>new e(this.path.slice(0,-2));this.last=()=>this.path.slice(-2);this.empty=()=>this.path=="";this.contains=t=>this.path.startsWith(t.path);this.isChildOf=t=>this.init()===t;this.append=t=>new e(this.path+t);this.equals=t=>this.path==t.path}static{this.root=new e("")}};var Et=class{constructor(t,n,r,i){this.initial=t;this.moves=n;this.players=r;this.metadata=i;this.nodeAt=t=>br(this.moves,t);this.dataAt=t=>{let n=this.nodeAt(t);return n?qo(n)?n.data:this.initial:void 0};this.title=()=>this.players.white.name?[this.players.white.title,this.players.white.name,"vs",this.players.black.title,this.players.black.name].filter(t=>t&&!!t.trim()).join("_").replace(" ","-"):"lichess-pgn-viewer";this.pathAtMainlinePly=t=>t==0?ee.root:this.mainline[Math.max(0,Math.min(this.mainline.length-1,t=="last"?9999:t-1))]?.path||ee.root;this.hasPlayerName=()=>!!(this.players.white?.name||this.players.black?.name);this.mainline=Array.from(this.moves.mainline())}},Oo=(e,t)=>e.children.find(n=>n.data.path.last()==t),br=(e,t)=>{if(t.empty())return e;let n=Oo(e,t.head());return n?br(n,t.tail()):void 0},qo=e=>"data"in e,Ye=e=>"uci"in e;var pn=class e{constructor(t,n,r){this.pos=t;this.path=n;this.clocks=r;this.clone=()=>new e(this.pos.clone(),this.path,{...this.clocks})}},fn=e=>{let t=e.map(ar),n=r=>r.reduce((i,o)=>typeof o==null?i:o,void 0);return{texts:t.map(r=>r.text).filter(r=>!!r),shapes:t.flatMap(r=>r.shapes),clock:n(t.map(r=>r.clock)),emt:n(t.map(r=>r.emt))}},wr=(e,t=!1)=>{let n=sn(e)[0]||sn("*")[0],r=sr(n.headers).unwrap(),i=ft(r.toSetup()),o=fn(n.comments||[]),s=new Map(Array.from(n.headers,([p,y])=>[p.toLowerCase(),y])),a=Io(s,t),l={fen:i,turn:r.turn,check:r.isCheck(),pos:r.clone(),comments:o.texts,shapes:o.shapes,clocks:{white:a.timeControl?.initial||o.clock,black:a.timeControl?.initial||o.clock}},c=Do(r,n.moves,a),d=Lo(s,a);return new Et(l,c,d,a)},Do=(e,t,n)=>or(t,new pn(e,ee.root,{}),(r,i,o)=>{let s=tr(r.pos,i.san);if(!s)return;let a=jn(s),l=r.path.append(a),c=er(r.pos,s);r.path=l;let d=r.pos.toSetup(),p=fn(i.comments||[]),y=fn(i.startingComments||[]),m=[...p.shapes,...y.shapes],h=(d.fullmoves-1)*2+(r.pos.turn==="white"?0:1),f=r.clocks=Bo(r.clocks,r.pos.turn,p.clock);return h<2&&n.timeControl&&(f={white:n.timeControl.initial,black:n.timeControl.initial,...f}),{path:l,ply:h,move:s,san:c,uci:Ft(s),fen:ft(r.pos.toSetup()),turn:r.pos.turn,check:r.pos.isCheck(),comments:p.texts,startingComments:y.texts,nags:i.nags||[],shapes:m,clocks:f,emt:p.emt}}),Bo=(e,t,n)=>t=="white"?{...e,black:n}:{...e,white:n};function Lo(e,t){let n=(i,o)=>{let s=e.get(`${i}${o}`);return s=="?"||s==""?void 0:s},r=i=>{let o=n(i,"");return{name:o,title:n(i,"title"),rating:parseInt(n(i,"elo")||"")||void 0,isLichessUser:t.isLichess&&!!o?.match(/^[a-z0-9][a-z0-9_-]{0,28}[a-z0-9]$/i)}};return{white:r("white"),black:r("black")}}function Io(e,t){let n=e.get("chapterurl")||e.get("gameurl")||e.get("source")||e.get("site"),r=e.get("timecontrol")?.split("+").map(s=>parseInt(s)),i=r&&r[0]?{initial:r[0],increment:r[1]||0}:void 0,o=e.get("orientation");return{externalLink:n&&n.match(/^https?:\/\//)?n:void 0,isLichess:!!(t&&n?.startsWith(t)),timeControl:i,orientation:o==="white"||o==="black"?o:void 0,result:e.get("result")}}var Ze=class{constructor(t,n){this.opts=t;this.redraw=n;this.flipped=!1;this.pane="board";this.autoScrollRequested=!1;this.curNode=()=>this.game.nodeAt(this.path)||this.game.moves;this.curData=()=>this.game.dataAt(this.path)||this.game.initial;this.goTo=(t,n=!0)=>{let r=t=="first"?ee.root:t=="prev"?this.path.init():t=="next"?this.game.nodeAt(this.path)?.children[0]?.data.path:this.game.pathAtMainlinePly("last");this.toPath(r||this.path,n)};this.canGoTo=t=>t=="prev"||t=="first"?!this.path.empty():!!this.curNode().children[0];this.toPath=(t,n=!0)=>{this.path=t,this.pane="board",this.autoScrollRequested=!0,this.redrawGround(),this.redraw(),n&&this.focus()};this.focus=()=>this.div?.focus();this.toggleMenu=()=>{this.pane=this.pane=="board"?"menu":"board",this.redraw(),this.pane=="board"&&setTimeout(()=>this.menuButton?.focus(),0)};this.togglePgn=()=>{this.pane=this.pane=="pgn"?"board":"pgn",this.redraw()};this.orientation=()=>{let t=this.opts.orientation||"white";return this.flipped?M(t):t};this.flip=()=>{this.flipped=!this.flipped,this.pane="board",this.redrawGround(),this.redraw()};this.cgState=()=>{let t=this.curData(),n=Ye(t)?ur(t.uci):this.opts.chessground?.lastMove;return{fen:t.fen,orientation:this.orientation(),check:t.check,lastMove:n,turnColor:t.turn}};this.analysisUrl=t=>{let n=this.plyOnMainline(),r=n!==void 0;return this.game.metadata.isLichess&&this.game.metadata.externalLink&&r&&!t?this.game.metadata.externalLink+`#${n}`:`https://lichess.org/analysis/${this.curData().fen.replace(" ","_")}?color=${this.orientation()}`};this.practiceUrl=()=>`${this.analysisUrl(!0)}#practice`;this.setGround=t=>{this.ground=t,this.redrawGround()};this.redrawGround=()=>this.withGround(t=>{t.set(this.cgState()),t.setShapes(this.curData().shapes.map(n=>({orig:U(n.from),dest:U(n.to),brush:n.color})))});this.withGround=t=>this.ground&&t(this.ground);this.game=wr(t.pgn,t.lichess),t.orientation=t.orientation||this.game.metadata.orientation,this.translate=an(t.translate),this.path=this.game.pathAtMainlinePly(t.initialPly)}plyOnMainline(){let t=this.curData(),n=Ye(t)?t.ply:0;return(n===0?this.path.empty():!!this.game.mainline[n-1]&&this.game.mainline[n-1].path.equals(this.path))?n:void 0}};var Ko=e=>pe(e.orig.pos[0],e.dest.pos[0])<=1&&(pe(e.orig.pos[0],e.dest.pos[0])===1?e.dest.pos[1]===e.orig.pos[1]+(e.color==="white"?1:-1):gr(...e.orig.pos,...e.dest.pos,e.color==="white")),$o=e=>Mt(...e.orig.pos,...e.dest.pos),vr=e=>dn(...e.orig.pos,...e.dest.pos),yr=e=>hn(...e.orig.pos,...e.dest.pos),zo=e=>vr(e)||yr(e),Fo=e=>mr(...e.orig.pos,...e.dest.pos)||e.orig.pos[1]===e.dest.pos[1]&&e.orig.pos[1]===(e.color==="white"?0:7)&&(e.orig.pos[0]===4&&(e.dest.pos[0]===2&&e.rookFilesFriendlies.includes(0)||e.dest.pos[0]===6&&e.rookFilesFriendlies.includes(7))||e.rookFilesFriendlies.includes(e.dest.pos[0])),Vo={pawn:Ko,knight:$o,bishop:vr,rook:yr,queen:zo,king:Fo};function mn(e,t){let n=e.pieces,r=n.get(t);if(!r||r.color===e.turnColor)return[];let i=r.color,o=new Map([...n].filter(([d,p])=>p.color===i)),s=new Map([...n].filter(([d,p])=>p.color===Ae(i))),a={key:t,pos:T(t)},l=d=>Vo[r.role](d)&&e.premovable.additionalPremoveRequirements(d),c={orig:a,role:r.role,allPieces:n,friendlies:o,enemies:s,color:i,rookFilesFriendlies:Array.from(n).filter(([d,p])=>d[1]===(i==="white"?"1":"8")&&p.color===i&&p.role==="rook").map(([d])=>T(d)[0]),lastMove:e.lastMove};return hr.filter(d=>l({...c,dest:d})).map(d=>d.key)}function H(e,...t){e&&setTimeout(()=>e(...t),1)}function xr(e){e.orientation=Ae(e.orientation),e.animation.current=e.draggable.current=e.selected=void 0}function Cr(e,t){for(let[n,r]of t)r?e.pieces.set(n,r):e.pieces.delete(n)}function Sr(e,t){if(e.check=void 0,t===!0&&(t=e.turnColor),t)for(let[n,r]of e.pieces)r.role==="king"&&r.color===t&&(e.check=n)}function Ho(e,t,n,r){ne(e),e.premovable.current=[t,n],H(e.premovable.events.set,t,n,r)}function te(e){e.premovable.current&&(e.premovable.current=void 0,H(e.premovable.events.unset))}function Go(e,t,n){te(e),e.predroppable.current={role:t,key:n},H(e.predroppable.events.set,t,n)}function ne(e){let t=e.predroppable;t.current&&(t.current=void 0,H(t.events.unset))}function Wo(e,t,n){if(!e.autoCastle)return!1;let r=e.pieces.get(t);if(!r||r.role!=="king")return!1;let i=T(t),o=T(n);if(i[1]!==0&&i[1]!==7||i[1]!==o[1])return!1;i[0]===4&&!e.pieces.has(n)&&(o[0]===6?n=Ee([7,o[1]]):o[0]===2&&(n=Ee([0,o[1]])));let s=e.pieces.get(n);return!s||s.color!==r.color||s.role!=="rook"?!1:(e.pieces.delete(t),e.pieces.delete(n),i[0]<o[0]?(e.pieces.set(Ee([6,o[1]]),r),e.pieces.set(Ee([5,o[1]]),s)):(e.pieces.set(Ee([2,o[1]]),r),e.pieces.set(Ee([3,o[1]]),s)),!0)}function gn(e,t,n){let r=e.pieces.get(t),i=e.pieces.get(n);if(t===n||!r)return!1;let o=i&&i.color!==r.color?i:void 0;return n===e.selected&&V(e),H(e.events.move,t,n,o),Wo(e,t,n)||(e.pieces.set(n,r),e.pieces.delete(t)),e.lastMove=[t,n],e.check=void 0,H(e.events.change),o||!0}function At(e,t,n,r){if(e.pieces.has(n))if(r)e.pieces.delete(n);else return!1;return H(e.events.dropNewPiece,t,n),e.pieces.set(n,t),e.lastMove=[n],e.check=void 0,H(e.events.change),e.movable.dests=void 0,e.turnColor=Ae(e.turnColor),!0}function Pr(e,t,n){let r=gn(e,t,n);return r&&(e.movable.dests=void 0,e.turnColor=Ae(e.turnColor),e.animation.current=void 0),r}function kn(e,t,n){if(Nt(e,t,n)){let r=Pr(e,t,n);if(r){let i=e.hold.stop();V(e);let o={premove:!1,ctrlKey:e.stats.ctrlKey,holdTime:i};return r!==!0&&(o.captured=r),H(e.movable.events.after,t,n,o),!0}}else if(jo(e,t,n))return Ho(e,t,n,{ctrlKey:e.stats.ctrlKey}),V(e),!0;return V(e),!1}function _t(e,t,n,r){let i=e.pieces.get(t);i&&(Uo(e,t,n)||r)?(e.pieces.delete(t),At(e,i,n,r),H(e.movable.events.afterNewPiece,i.role,n,{premove:!1,predrop:!1})):i&&Yo(e,t,n)?Go(e,i.role,n):(te(e),ne(e)),e.pieces.delete(t),V(e)}function Qe(e,t,n){if(H(e.events.select,t),e.selected){if(e.selected===t&&!e.draggable.enabled){V(e),e.hold.cancel();return}else if((e.selectable.enabled||n)&&e.selected!==t&&kn(e,e.selected,t)){e.stats.dragged=!1;return}}(e.selectable.enabled||e.draggable.enabled)&&(Mr(e,t)||wn(e,t))&&(bn(e,t),e.hold.start())}function bn(e,t){e.selected=t,wn(e,t)?e.premovable.customDests||(e.premovable.dests=mn(e,t)):e.premovable.dests=void 0}function V(e){e.selected=void 0,e.premovable.dests=void 0,e.hold.cancel()}function Mr(e,t){let n=e.pieces.get(t);return!!n&&(e.movable.color==="both"||e.movable.color===n.color&&e.turnColor===n.color)}var Nt=(e,t,n)=>t!==n&&Mr(e,t)&&(e.movable.free||!!e.movable.dests?.get(t)?.includes(n));function Uo(e,t,n){let r=e.pieces.get(t);return!!r&&(t===n||!e.pieces.has(n))&&(e.movable.color==="both"||e.movable.color===r.color&&e.turnColor===r.color)}function wn(e,t){let n=e.pieces.get(t);return!!n&&e.premovable.enabled&&e.movable.color===n.color&&e.turnColor!==n.color}var jo=(e,t,n)=>t!==n&&wn(e,t)&&(e.premovable.customDests?.get(t)??mn(e,t)).includes(n);function Yo(e,t,n){let r=e.pieces.get(t),i=e.pieces.get(n);return!!r&&(!i||i.color!==e.movable.color)&&e.predroppable.enabled&&(r.role!=="pawn"||n[1]!=="1"&&n[1]!=="8")&&e.movable.color===r.color&&e.turnColor!==r.color}function Er(e,t){let n=e.pieces.get(t);return!!n&&e.draggable.enabled&&(e.movable.color==="both"||e.movable.color===n.color&&(e.turnColor===n.color||e.premovable.enabled))}function Ar(e){let t=e.premovable.current;if(!t)return!1;let n=t[0],r=t[1],i=!1;if(Nt(e,n,r)){let o=Pr(e,n,r);if(o){let s={premove:!0};o!==!0&&(s.captured=o),H(e.movable.events.after,n,r,s),i=!0}}return te(e),i}function _r(e,t){let n=e.predroppable.current,r=!1;if(!n)return!1;if(t(n)){let i={role:n.role,color:e.movable.color};At(e,i,n.key)&&(H(e.movable.events.afterNewPiece,n.role,n.key,{premove:!1,predrop:!0}),r=!0)}return ne(e),r}function Xe(e){te(e),ne(e),V(e)}function vn(e){e.movable.color=e.movable.dests=e.animation.current=void 0,Xe(e)}function re(e,t,n){let r=Math.floor(8*(e[0]-n.left)/n.width);t||(r=7-r);let i=7-Math.floor(8*(e[1]-n.top)/n.height);return t||(i=7-i),r>=0&&r<8&&i>=0&&i<8?Me([r,i]):void 0}function Nr(e,t,n,r){let i=T(e),o=cn.filter(c=>pr(i,c)||fr(i[0],i[1],c[0],c[1])||Mt(i[0],i[1],c[0],c[1])),a=o.map(c=>Pt(Ee(c),n,r)).map(c=>_e(t,c)),[,l]=a.reduce((c,d,p)=>c[0]<d?c:[d,p],[a[0],0]);return Me(o[l])}var B=e=>e.orientation==="white";var xn="rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR",Zo={p:"pawn",r:"rook",n:"knight",b:"bishop",q:"queen",k:"king"},Qo={pawn:"p",rook:"r",knight:"n",bishop:"b",queen:"q",king:"k"};function $e(e){e==="start"&&(e=xn);let t=new Map,n=7,r=0;for(let i of e)switch(i){case" ":case"[":return t;case"/":if(--n,n<0)return t;r=0;break;case"~":{let o=Me([r-1,n]),s=o&&t.get(o);s&&(s.promoted=!0);break}default:{let o=i.charCodeAt(0);if(o<57)r+=o-48;else{let s=i.toLowerCase(),a=Me([r,n]);a&&t.set(a,{role:Zo[s],color:i===s?"black":"white"}),++r}}}return t}function Tr(e){return Ct.map(t=>ce.map(n=>{let r=e.get(n+t);if(r){let i=Qo[r.role];return r.color==="white"&&(i=i.toUpperCase()),r.promoted&&(i+="~"),i}else return"1"}).join("")).join("/").replace(/1{2,}/g,t=>t.length.toString())}function Cn(e,t){t.animation&&(Sn(e.animation,t.animation),(e.animation.duration||0)<70&&(e.animation.enabled=!1))}function Tt(e,t){if(t.movable?.dests&&(e.movable.dests=void 0),t.drawable?.autoShapes&&(e.drawable.autoShapes=[]),Sn(e,t),t.fen&&(e.pieces=$e(t.fen),e.drawable.shapes=t.drawable?.shapes||[]),"check"in t&&Sr(e,t.check||!1),"lastMove"in t&&!t.lastMove?e.lastMove=void 0:t.lastMove&&(e.lastMove=t.lastMove),e.selected&&bn(e,e.selected),Cn(e,t),!e.movable.rookCastle&&e.movable.dests){let n=e.movable.color==="white"?"1":"8",r="e"+n,i=e.movable.dests.get(r),o=e.pieces.get(r);if(!i||!o||o.role!=="king")return;e.movable.dests.set(r,i.filter(s=>!(s==="a"+n&&i.includes("c"+n))&&!(s==="h"+n&&i.includes("g"+n))))}}function Sn(e,t){for(let n in t)n==="__proto__"||n==="constructor"||!Object.prototype.hasOwnProperty.call(t,n)||(Object.prototype.hasOwnProperty.call(e,n)&&Rr(e[n])&&Rr(t[n])?Sn(e[n],t[n]):e[n]=t[n])}function Rr(e){if(typeof e!="object"||e===null)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}var me=(e,t)=>t.animation.enabled?ts(e,t):ge(e,t);function ge(e,t){let n=e(t);return t.dom.redraw(),n}var Pn=(e,t)=>({key:e,pos:T(e),piece:t}),Jo=(e,t)=>t.sort((n,r)=>_e(e.pos,n.pos)-_e(e.pos,r.pos))[0];function es(e,t){let n=new Map,r=[],i=new Map,o=[],s=[],a=new Map,l,c,d;for(let[p,y]of e)a.set(p,Pn(p,y));for(let p of Ue)l=t.pieces.get(p),c=a.get(p),l?c?je(l,c.piece)||(o.push(c),s.push(Pn(p,l))):s.push(Pn(p,l)):c&&o.push(c);for(let p of s)c=Jo(p,o.filter(y=>je(p.piece,y.piece))),c&&(d=[c.pos[0]-p.pos[0],c.pos[1]-p.pos[1]],n.set(p.key,d.concat(d)),r.push(c.key));for(let p of o)r.includes(p.key)||i.set(p.key,p.piece);return{anims:n,fadings:i}}function Or(e,t){let n=e.animation.current;if(n===void 0){e.dom.destroyed||e.dom.redrawNow();return}let r=1-(t-n.start)*n.frequency;if(r<=0)e.animation.current=void 0,e.dom.redrawNow();else{let i=ns(r);for(let o of n.plan.anims.values())o[2]=o[0]*i,o[3]=o[1]*i;e.dom.redrawNow(!0),requestAnimationFrame((o=performance.now())=>Or(e,o))}}function ts(e,t){let n=new Map(t.pieces),r=e(t),i=es(n,t);if(i.anims.size||i.fadings.size){let o=t.animation.current&&t.animation.current.start;t.animation.current={start:performance.now(),frequency:1/t.animation.duration,plan:i},o||Or(t,performance.now())}else t.dom.redraw();return r}var ns=e=>e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1;var rs=["green","red","blue","yellow"];function qr(e,t){if(t.touches&&t.touches.length>1)return;t.stopPropagation(),t.preventDefault(),t.ctrlKey?V(e):Xe(e);let n=le(t),r=re(n,B(e),e.dom.bounds());r&&(e.drawable.current={orig:r,pos:n,brush:is(t),snapToValidMove:e.drawable.defaultSnapToValidMove},Dr(e))}function Dr(e){requestAnimationFrame(()=>{let t=e.drawable.current;if(t){let n=re(t.pos,B(e),e.dom.bounds());n||(t.snapToValidMove=!1);let r=t.snapToValidMove?Nr(t.orig,t.pos,B(e),e.dom.bounds()):n;r!==t.mouseSq&&(t.mouseSq=r,t.dest=r!==t.orig?r:void 0,e.dom.redrawNow()),Dr(e)}})}function Br(e,t){e.drawable.current&&(e.drawable.current.pos=le(t))}function Lr(e){let t=e.drawable.current;t&&(t.mouseSq&&os(e.drawable,t),Mn(e))}function Mn(e){e.drawable.current&&(e.drawable.current=void 0,e.dom.redraw())}function Ir(e){e.drawable.shapes.length&&(e.drawable.shapes=[],e.dom.redraw(),Kr(e.drawable))}var Rt=(e,t)=>e.orig===t.orig&&e.dest===t.dest,En=(e,t)=>e.brush===t.brush;function is(e){let t=(e.shiftKey||e.ctrlKey)&&St(e),n=e.altKey||e.metaKey||e.getModifierState?.("AltGraph");return rs[(t?1:0)+(n?2:0)]}function os(e,t){let n=e.shapes.find(r=>Rt(r,t));n&&(e.shapes=e.shapes.filter(r=>!Rt(r,t))),(!n||!En(n,t))&&e.shapes.push({orig:t.orig,dest:t.dest,brush:t.brush}),Kr(e)}function Kr(e){e.onChange&&e.onChange(e.shapes)}function $r(e,t){if(!(e.trustAllEvents||t.isTrusted)||t.buttons!==void 0&&t.buttons>1||t.touches&&t.touches.length>1)return;let n=e.dom.bounds(),r=le(t),i=re(r,B(e),n);if(!i)return;let o=e.pieces.get(i),s=e.selected;if(!s&&e.drawable.enabled&&(e.drawable.eraseOnMovablePieceClick||!o||o.color!==e.turnColor)&&Ir(e),t.cancelable!==!1&&(!t.touches||e.blockTouchScroll||o||s||as(e,r)))t.preventDefault();else if(t.touches)return;let a=!!e.premovable.current,l=!!e.predroppable.current;e.stats.ctrlKey=t.ctrlKey,e.selected&&Nt(e,e.selected,i)?me(p=>Qe(p,i),e):Qe(e,i);let c=e.selected===i,d=Gr(e,i);if(o&&d&&c&&Er(e,i)){e.draggable.current={orig:i,piece:o,origPos:r,pos:r,started:e.draggable.autoDistance&&e.stats.dragged,element:d,previouslySelected:s,originTarget:t.target,keyHasChanged:!1},d.cgDragging=!0,d.classList.add("dragging");let p=e.dom.elements.ghost;p&&(p.className=`ghost ${o.color} ${o.role}`,Y(p,Ne(n)(T(i),B(e))),fe(p,!0)),An(e)}else a&&te(e),l&&ne(e);e.dom.redraw()}function as(e,t){let n=B(e),r=e.dom.bounds(),i=Math.pow(e.touchIgnoreRadius*r.width/16,2)*2;for(let o of e.pieces.keys()){let s=Pt(o,n,r);if(_e(s,t)<=i)return!0}return!1}function zr(e,t,n,r){e.pieces.set("a0",t),e.dom.redraw();let o=le(n);e.draggable.current={orig:"a0",piece:t,origPos:o,pos:o,started:!0,element:()=>Gr(e,"a0"),originTarget:n.target,newPiece:!0,force:!!r,keyHasChanged:!1},An(e)}function An(e){requestAnimationFrame(()=>{let t=e.draggable.current;if(!t)return;e.animation.current?.plan.anims.has(t.orig)&&(e.animation.current=void 0);let n=e.pieces.get(t.orig);if(!n||!je(n,t.piece))qe(e);else if(!t.started&&_e(t.pos,t.origPos)>=Math.pow(e.draggable.distance,2)&&(t.started=!0),t.started){if(typeof t.element=="function"){let i=t.element();if(!i)return;i.cgDragging=!0,i.classList.add("dragging"),t.element=i}let r=e.dom.bounds();Y(t.element,[t.pos[0]-r.left-r.width/16,t.pos[1]-r.top-r.height/16]),t.keyHasChanged||(t.keyHasChanged=t.orig!==re(t.pos,B(e),r))}An(e)})}function Fr(e,t){e.draggable.current&&(!t.touches||t.touches.length<2)&&(e.draggable.current.pos=le(t))}function Vr(e,t){let n=e.draggable.current;if(!n)return;if(t.type==="touchend"&&t.cancelable!==!1&&t.preventDefault(),t.type==="touchend"&&n.originTarget!==t.target&&!n.newPiece){e.draggable.current=void 0;return}te(e),ne(e);let r=le(t)||n.pos,i=re(r,B(e),e.dom.bounds());i&&n.started&&n.orig!==i?n.newPiece?_t(e,n.orig,i,n.force):(e.stats.ctrlKey=t.ctrlKey,kn(e,n.orig,i)&&(e.stats.dragged=!0)):n.newPiece?e.pieces.delete(n.orig):e.draggable.deleteOnDropOff&&!i&&(e.pieces.delete(n.orig),H(e.events.change)),(n.orig===n.previouslySelected||n.keyHasChanged)&&(n.orig===i||!i)?V(e):e.selectable.enabled||V(e),Hr(e),e.draggable.current=void 0,e.dom.redraw()}function qe(e){let t=e.draggable.current;t&&(t.newPiece&&e.pieces.delete(t.orig),e.draggable.current=void 0,V(e),Hr(e),e.dom.redraw())}function Hr(e){let t=e.dom.elements;t.ghost&&fe(t.ghost,!1)}function Gr(e,t){let n=e.dom.elements.board.firstChild;for(;n;){if(n.cgKey===t&&n.tagName==="PIECE")return n;n=n.nextSibling}}function Ur(e,t){e.exploding={stage:1,keys:t},e.dom.redraw(),setTimeout(()=>{Wr(e,2),setTimeout(()=>Wr(e,void 0),120)},120)}function Wr(e,t){e.exploding&&(t?e.exploding.stage=t:e.exploding=void 0,e.dom.redraw())}function jr(e,t){function n(){xr(e),t()}return{set(r){r.orientation&&r.orientation!==e.orientation&&n(),Cn(e,r),(r.fen?me:ge)(i=>Tt(i,r),e)},state:e,getFen:()=>Tr(e.pieces),toggleOrientation:n,setPieces(r){me(i=>Cr(i,r),e)},selectSquare(r,i){r?me(o=>Qe(o,r,i),e):e.selected&&(V(e),e.dom.redraw())},move(r,i){me(o=>gn(o,r,i),e)},newPiece(r,i){me(o=>At(o,r,i),e)},playPremove(){if(e.premovable.current){if(me(Ar,e))return!0;e.dom.redraw()}return!1},playPredrop(r){if(e.predroppable.current){let i=_r(e,r);return e.dom.redraw(),i}return!1},cancelPremove(){ge(te,e)},cancelPredrop(){ge(ne,e)},cancelMove(){ge(r=>{Xe(r),qe(r)},e)},stop(){ge(r=>{vn(r),qe(r)},e)},explode(r){Ur(e,r)},setAutoShapes(r){ge(i=>i.drawable.autoShapes=r,e)},setShapes(r){ge(i=>i.drawable.shapes=r.slice(),e)},getKeyAtDomPos(r){return re(r,B(e),e.dom.bounds())},redrawAll:t,dragNewPiece(r,i,o){zr(e,r,i,o)},destroy(){vn(e),e.dom.unbind&&e.dom.unbind(),e.dom.destroyed=!0}}}function Yr(){return{pieces:$e(xn),orientation:"white",turnColor:"white",coordinates:!0,coordinatesOnSquares:!1,ranksPosition:"right",autoCastle:!0,viewOnly:!1,disableContextMenu:!1,addPieceZIndex:!1,blockTouchScroll:!1,touchIgnoreRadius:1,pieceKey:!1,trustAllEvents:!1,highlight:{lastMove:!0,check:!0},animation:{enabled:!0,duration:200},movable:{free:!0,color:"both",showDests:!0,events:{},rookCastle:!0},premovable:{enabled:!0,showDests:!0,castle:!0,additionalPremoveRequirements:e=>!0,events:{}},predroppable:{enabled:!1,events:{}},draggable:{enabled:!0,distance:3,autoDistance:!0,showGhost:!0,deleteOnDropOff:!1},dropmode:{active:!1},selectable:{enabled:!0},stats:{dragged:!("ontouchstart"in window)},events:{},drawable:{enabled:!0,visible:!0,defaultSnapToValidMove:!0,eraseOnMovablePieceClick:!0,shapes:[],autoShapes:[],brushes:{green:{key:"g",color:"#15781B",opacity:1,lineWidth:10},red:{key:"r",color:"#882020",opacity:1,lineWidth:10},blue:{key:"b",color:"#003088",opacity:1,lineWidth:10},yellow:{key:"y",color:"#e68f00",opacity:1,lineWidth:10},paleBlue:{key:"pb",color:"#003088",opacity:.4,lineWidth:15},paleGreen:{key:"pg",color:"#15781B",opacity:.4,lineWidth:15},paleRed:{key:"pr",color:"#882020",opacity:.4,lineWidth:15},paleGrey:{key:"pgr",color:"#4a4a4a",opacity:.35,lineWidth:15},purple:{key:"purple",color:"#68217a",opacity:.65,lineWidth:10},pink:{key:"pink",color:"#ee2080",opacity:.5,lineWidth:10},white:{key:"white",color:"white",opacity:1,lineWidth:10},paleWhite:{key:"pwhite",color:"white",opacity:.6,lineWidth:10}},prevSvgHash:""},hold:dr()}}function Jr(){let e=$("defs"),t=z($("filter"),{id:"cg-filter-blur"});return t.appendChild(z($("feGaussianBlur"),{stdDeviation:"0.013"})),e.appendChild(t),e}function ei(e,t){let n=e.drawable,r=n.current,i=r&&r.mouseSq?r:void 0,o=new Map,s=e.dom.bounds(),a=n.autoShapes.filter(p=>!p.piece);for(let p of n.shapes.concat(a).concat(i?[i]:[])){if(!p.dest)continue;let y=o.get(p.dest)??new Set,m=qt(Ot(T(p.orig),e.orientation),s),h=qt(Ot(T(p.dest),e.orientation),s);y.add(ai(ci(m,h))),o.set(p.dest,y)}let l=[],c=i?n.shapes.findIndex(p=>Rt(p,i)&&En(p,i)):-1;for(let[p,y]of n.shapes.concat(a).entries()){let m=c!==-1&&c===p;l.push({shape:y,current:!1,pendingErase:m,hash:Zr(y,_n(y.dest,o),!1,s,m,Xr(y.dest,o))})}i&&c===-1&&l.push({shape:i,current:!0,hash:Zr(i,_n(i.dest,o),!0,s,!1,Xr(i.dest,o)),pendingErase:!1});let d=l.map(p=>p.hash).join(";");d!==e.drawable.prevSvgHash&&(e.drawable.prevSvgHash=d,ls(n,l,t),us(l,t,p=>ps(e,p,n.brushes,o,s)))}function ls(e,t,n){for(let r of[n.shapes,n.shapesBelow]){let i=r.querySelector("defs"),o=t.filter(c=>r===n.shapesBelow==!!c.shape.below),s=new Map;for(let c of o.filter(d=>d.shape.dest&&d.shape.brush)){let d=ii(e.brushes[c.shape.brush],c.shape.modifiers),{key:p,color:y}=oi(c.shape);p&&y&&s.set(p,{key:p,color:y,opacity:1,lineWidth:1}),s.set(d.key,d)}let a=new Set,l=i.firstElementChild;for(;l;)a.add(l.getAttribute("cgKey")),l=l.nextElementSibling;for(let[c,d]of s.entries())a.has(c)||i.appendChild(gs(d))}}function us(e,t,n){for(let[r,i]of[[t.shapes,t.custom],[t.shapesBelow,t.customBelow]]){let[o,s]=[r,i].map(c=>c.querySelector("g")),a=e.filter(c=>r===t.shapesBelow==!!c.shape.below),l=new Map;for(let c of a)l.set(c.hash,!1);for(let c of[o,s]){let d=[],p=c.firstElementChild,y;for(;p;)y=p.getAttribute("cgHash"),l.has(y)?l.set(y,!0):d.push(p),p=p.nextElementSibling;for(let m of d)c.removeChild(m)}for(let c of a.filter(d=>!l.get(d.hash)))for(let d of n(c))d.isCustom?s.appendChild(d.el):o.appendChild(d.el)}}function Zr({orig:e,dest:t,brush:n,piece:r,modifiers:i,customSvg:o,label:s,below:a},l,c,d,p,y){return[d.width,d.height,c,p&&"pendingErase",y,e,t,n,l&&"-",r&&hs(r),i&&ds(i),o&&`custom-${Qr(o.html)},${o.center?.[0]??"o"}`,s&&`label-${Qr(s.text)}`,a&&"below"].filter(m=>m).join(",")}var hs=e=>[e.color,e.role,e.scale].filter(t=>t).join(","),ds=e=>[e.lineWidth,e.hilite].filter(t=>t).join(",");function Qr(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)>>>0;return t.toString()}function ps(e,{shape:t,current:n,pendingErase:r,hash:i},o,s,a){let l=qt(Ot(T(t.orig),e.orientation),a),c=t.dest?qt(Ot(T(t.dest),e.orientation),a):l,d=t.brush&&ii(o[t.brush],t.modifiers),p=s.get(t.dest),y=[];if(d){let m=z($("g"),{cgHash:i});y.push({el:m}),l[0]!==c[0]||l[1]!==c[1]?m.appendChild(ms(t,d,l,c,n,_n(t.dest,s),r)):m.appendChild(fs(o[t.brush],l,n,a,r))}if(t.label){let m=t.label;m.fill??(m.fill=t.brush&&o[t.brush].color);let h=t.brush?void 0:"tr";y.push({el:ks(m,i,l,c,p,h),isCustom:!0})}if(t.customSvg){let m=t.customSvg.center??"orig",[h,f]=m==="label"?li(l,c,p).map(g=>g-.5):m==="dest"?c:l,w=z($("g"),{transform:`translate(${h},${f})`,cgHash:i});w.innerHTML=`<svg width="1" height="1" viewBox="0 0 100 100">${t.customSvg.html}</svg>`,y.push({el:w,isCustom:!0})}return y}function fs(e,t,n,r,i){let o=bs(),s=(r.width+r.height)/(4*Math.max(r.width,r.height));return z($("circle"),{stroke:e.color,"stroke-width":o[n?0:1],fill:"none",opacity:si(e,n,i),cx:t[0],cy:t[1],r:s-o[1]/2})}function ms(e,t,n,r,i,o,s){function a(d){let p=vs(o&&!i),y=r[0]-n[0],m=r[1]-n[1],h=Math.atan2(m,y),f=Math.cos(h)*p,w=Math.sin(h)*p,g=oi(e);return z($("line"),{stroke:d?g.color:t.color,"stroke-width":ws(t,i)*(d?1.14:1),"stroke-linecap":"round","marker-end":`url(#arrowhead-${d?g.key:t.key})`,opacity:e.modifiers?.hilite&&!s?1:si(t,i,s),x1:n[0],y1:n[1],x2:r[0]-f,y2:r[1]-w})}if(!e.modifiers?.hilite)return a(!1);let l=z($("g"),{opacity:t.opacity}),c=z($("g"),{filter:"url(#cg-filter-blur)"});return c.appendChild(ys(n,r)),c.appendChild(a(!0)),l.appendChild(c),l.appendChild(a(!1)),l}function gs(e){let t=z($("marker"),{id:"arrowhead-"+e.key,orient:"auto",overflow:"visible",markerWidth:4,markerHeight:4,refX:e.key.startsWith("hilite")?1.86:2.05,refY:2});return t.appendChild(z($("path"),{d:"M0,0 V4 L3,2 Z",fill:e.color})),t.setAttribute("cgKey",e.key),t}function ks(e,t,n,r,i,o){let a=.4*.75**e.text.length,l=li(n,r,i),c=o==="tr"?.4:0,d=z($("g"),{transform:`translate(${l[0]+c},${l[1]-c})`,cgHash:t});d.appendChild(z($("circle"),{r:.4/2,"fill-opacity":o?1:.8,"stroke-opacity":o?1:.7,"stroke-width":.03,fill:e.fill??"#666",stroke:"white"}));let p=z($("text"),{"font-size":a,"font-family":"Noto Sans","text-anchor":"middle",fill:"white",y:.13*.75**e.text.length});return p.innerHTML=e.text,d.appendChild(p),d}var Ot=(e,t)=>t==="white"?e:[7-e[0],7-e[1]],ti=(e,t)=>(e%t+t)%t,ni=(e,t)=>ti(e+t,16),ri=e=>[...e].some(t=>[-3,-2,-1,1,2,3].some(n=>e.has(ni(t,n)))),_n=(e,t)=>!!e&&t.has(e)&&ri(t.get(e)),$=e=>document.createElementNS("http://www.w3.org/2000/svg",e),Xr=(e,t)=>e&&t.has(e)?t.get(e).size:0;function z(e,t){for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.setAttribute(n,t[n]);return e}var ii=(e,t)=>t?{color:e.color,opacity:Math.round(e.opacity*10)/10,lineWidth:Math.round(t.lineWidth||e.lineWidth),key:[e.key,t.lineWidth].filter(n=>n).join("")}:e,bs=()=>[3/64,4/64],ws=(e,t)=>(e.lineWidth||10)*(t?.85:1)/64;function oi(e){let t=e.modifiers?.hilite;return{key:t&&`hilite-${t.replace("#","")}`,color:t}}var si=(e,t,n)=>(e.opacity||1)*(n?.6:t?.9:1),vs=e=>(e?20:10)/64;function qt(e,t){let n=Math.min(1,t.width/t.height),r=Math.min(1,t.height/t.width);return[(e[0]-3.5)*n,(3.5-e[1])*r]}function ys(e,t){let n={from:[Math.floor(Math.min(e[0],t[0])),Math.floor(Math.min(e[1],t[1]))],to:[Math.ceil(Math.max(e[0],t[0])),Math.ceil(Math.max(e[1],t[1]))]};return z($("rect"),{x:n.from[0],y:n.from[1],width:n.to[0]-n.from[0],height:n.to[1]-n.from[1],fill:"none",stroke:"none"})}var ai=e=>ti(Math.round(e*8/Math.PI),16),ci=(e,t)=>Math.atan2(t[1]-e[1],t[0]-e[0])+Math.PI,xs=(e,t)=>Math.sqrt([e[0]-t[0],e[1]-t[1]].reduce((n,r)=>n+r*r,0));function li(e,t,n){let r=xs(e,t),i=ci(e,t);if(n&&(r-=33/64,ri(n))){r-=10/64;let o=ai(i);o&1&&[-1,1].some(s=>n.has(ni(o,s)))&&(r-=.4)}return[e[0]-Math.cos(i)*r,e[1]-Math.sin(i)*r].map(o=>o+.5)}function hi(e,t){e.innerHTML="",e.classList.add("cg-wrap");for(let d of cr)e.classList.toggle("orientation-"+d,t.orientation===d);e.classList.toggle("manipulable",!t.viewOnly);let n=Z("cg-container");e.appendChild(n);let r=Z("cg-board");n.appendChild(r);let i,o,s,a,l;if(t.drawable.visible&&([i,o]=["cg-shapes-below","cg-shapes"].map(d=>ui(d,!0)),[s,a]=["cg-custom-below","cg-custom-svgs"].map(d=>ui(d,!1)),l=Z("cg-auto-pieces"),n.appendChild(i),n.appendChild(s),n.appendChild(o),n.appendChild(a),n.appendChild(l)),t.coordinates){let d=t.orientation==="black"?" black":"",p=t.ranksPosition==="left"?" left":"";if(t.coordinatesOnSquares){let y=t.orientation==="white"?m=>m+1:m=>8-m;ce.forEach((m,h)=>n.appendChild(Nn(Pe.map(f=>m+f),"squares rank"+y(h)+d+p,h%2===0?"black":"white")))}else n.appendChild(Nn(Pe,"ranks"+d+p,t.ranksPosition==="right"==(t.orientation==="white")?"white":"black")),n.appendChild(Nn(ce,"files"+d,Ae(t.orientation)))}let c;return t.draggable.enabled&&t.draggable.showGhost&&(c=Z("piece","ghost"),fe(c,!1),n.appendChild(c)),{board:r,container:n,wrap:e,ghost:c,shapes:o,shapesBelow:i,custom:a,customBelow:s,autoPieces:l}}function ui(e,t){let n=z($("svg"),{class:e,viewBox:t?"-4 -4 8 8":"-3.5 -3.5 8 8",preserveAspectRatio:"xMidYMid slice"});return t&&n.appendChild(Jr()),n.appendChild($("g")),n}function Nn(e,t,n){let r=Z("coords",t),i;return e.forEach((o,s)=>{let a=s%2===(n==="white"?0:1);i=Z("coord",`coord-${a?"light":"dark"}`),i.textContent=o,r.appendChild(i)}),r}function di(e,t){if(!e.dropmode.active)return;te(e),ne(e);let n=e.dropmode.piece;if(n){e.pieces.set("a0",n);let r=le(t),i=r&&re(r,B(e),e.dom.bounds());i&&_t(e,"a0",i)}e.dom.redraw()}function fi(e,t){let n=e.dom.elements.board;if("ResizeObserver"in window&&new ResizeObserver(t).observe(e.dom.elements.wrap),(e.disableContextMenu||e.drawable.enabled)&&n.addEventListener("contextmenu",i=>i.preventDefault()),e.viewOnly)return;let r=Ss(e);n.addEventListener("touchstart",r,{passive:!1}),n.addEventListener("mousedown",r,{passive:!1})}function mi(e,t){let n=[];if("ResizeObserver"in window||n.push(Je(document.body,"chessground.resize",t)),!e.viewOnly){let r=pi(e,Fr,Br),i=pi(e,Vr,Lr);for(let s of["touchmove","mousemove"])n.push(Je(document,s,r));for(let s of["touchend","mouseup"])n.push(Je(document,s,i));let o=()=>e.dom.bounds.clear();n.push(Je(document,"scroll",o,{capture:!0,passive:!0})),n.push(Je(window,"resize",o,{passive:!0}))}return()=>n.forEach(r=>r())}function Je(e,t,n,r){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)}var Ss=e=>t=>{e.draggable.current?qe(e):e.drawable.current?Mn(e):t.shiftKey||St(t)?e.drawable.enabled&&qr(e,t):e.viewOnly||(e.dropmode.active?di(e,t):$r(e,t))},pi=(e,t,n)=>r=>{e.drawable.current?e.drawable.enabled&&n(e,r):e.viewOnly||t(e,r)};function gi(e){let t=B(e),n=Ne(e.dom.bounds()),r=e.dom.elements.board,i=e.pieces,o=e.animation.current,s=o?o.plan.anims:new Map,a=o?o.plan.fadings:new Map,l=e.draggable.current,c=new Set,d=new Map,p=As(e),y=new Map,m,h,f,w,g,P,A,v,E;for(h=r.firstChild;h;){if(m=h.cgKey,bi(h))if(f=i.get(m),g=s.get(m),P=a.get(m),w=h.cgPiece,h.cgDragging&&(!l||l.orig!==m)&&(h.classList.remove("dragging"),Y(h,n(T(m),t)),h.cgDragging=!1),!P&&h.cgFading&&(h.cgFading=!1,h.classList.remove("fading")),f){if(g&&h.cgAnimating&&w===et(f)){let x=T(m);x[0]+=g[2],x[1]+=g[3],h.classList.add("anim"),Y(h,n(x,t))}else h.cgAnimating&&(h.cgAnimating=!1,h.classList.remove("anim"),Y(h,n(T(m),t)),e.addPieceZIndex&&(h.style.zIndex=Tn(T(m),t)));w===et(f)&&(!P||!h.cgFading)?c.add(m):P&&w===et(P)?(h.classList.add("fading"),h.cgFading=!0):Rn(d,w,h)}else Rn(d,w,h);else if(wi(h)){let x=h.className;p.get(m)===x?(fe(h,!0),p.delete(m)):Rn(y,x,h)}h=h.nextSibling}for(let[x,_]of p){E=y.get(_)?.pop();let C=n(T(x),t);if(E)E.cgKey=x,Y(E,C),fe(E,!0);else{let N=Z("square",_);N.cgKey=x,Y(N,C),r.insertBefore(N,r.firstChild)}}for(let[x,_]of y.entries())for(let C of _)fe(C,!1);for(let[x,_]of i)if(g=s.get(x),!c.has(x))if(A=d.get(et(_)),v=A&&A.pop(),v){v.cgKey=x,v.cgFading&&(v.classList.remove("fading"),v.cgFading=!1);let C=T(x);e.addPieceZIndex&&(v.style.zIndex=Tn(C,t)),g&&(v.cgAnimating=!0,v.classList.add("anim"),C[0]+=g[2],C[1]+=g[3]),Y(v,n(C,t))}else{let C=et(_),N=Z("piece",C),q=T(x);N.cgPiece=C,N.cgKey=x,g&&(N.cgAnimating=!0,q[0]+=g[2],q[1]+=g[3]),Y(N,n(q,t)),e.addPieceZIndex&&(N.style.zIndex=Tn(q,t)),r.appendChild(N)}for(let x of d.values())Ms(e,x)}function ki(e){let t=B(e),n=Ne(e.dom.bounds()),r=e.dom.elements.board.firstChild;for(;r;)(bi(r)&&!r.cgAnimating||wi(r))&&Y(r,n(T(r.cgKey),t)),r=r.nextSibling}function On(e){let t=e.dom.elements.wrap.getBoundingClientRect(),n=e.dom.elements.container,r=t.height/t.width,i=Math.floor(t.width*window.devicePixelRatio/8)*8/window.devicePixelRatio,o=i*r;n.style.width=i+"px",n.style.height=o+"px",e.dom.bounds.clear(),e.addDimensionsCssVarsTo?.style.setProperty("---cg-width",i+"px"),e.addDimensionsCssVarsTo?.style.setProperty("---cg-height",o+"px")}var bi=e=>e.tagName==="PIECE",wi=e=>e.tagName==="SQUARE";function Ms(e,t){for(let n of t)e.dom.elements.board.removeChild(n)}function Tn(e,t){let r=e[1];return`${t?10-r:3+r}`}var et=e=>`${e.color} ${e.role}`,Es=(e,t)=>e.lastMove?.[1]&&!e.pieces.has(e.lastMove[1])&&e.lastMove[0][0]==="e"&&["h","a"].includes(e.lastMove[1][0])&&e.lastMove[0][1]===e.lastMove[1][1]&&kr(...T(e.lastMove[0]),...T(e.lastMove[1])).some(n=>e.pieces.has(n))?(t>e.lastMove[0]?"g":"c")+t[1]:t;function As(e){let t=new Map;if(e.lastMove&&e.highlight.lastMove)for(let[i,o]of e.lastMove.entries())ke(t,i===1?Es(e,o):o,"last-move");if(e.check&&e.highlight.check&&ke(t,e.check,"check"),e.selected&&(ke(t,e.selected,"selected"),e.movable.showDests)){for(let i of e.movable.dests?.get(e.selected)??[])ke(t,i,"move-dest"+(e.pieces.has(i)?" oc":""));for(let i of e.premovable.customDests?.get(e.selected)??e.premovable.dests??[])ke(t,i,"premove-dest"+(e.pieces.has(i)?" oc":""))}let n=e.premovable.current;if(n)for(let i of n)ke(t,i,"current-premove");else e.predroppable.current&&ke(t,e.predroppable.current.key,"current-premove");let r=e.exploding;if(r)for(let i of r.keys)ke(t,i,"exploding"+r.stage);return e.highlight.custom&&e.highlight.custom.forEach((i,o)=>{ke(t,o,i)}),t}function ke(e,t,n){let r=e.get(t);r?e.set(t,`${r} ${n}`):e.set(t,n)}function Rn(e,t,n){let r=e.get(t);r?r.push(n):e.set(t,[n])}function vi(e,t,n){let r=new Map,i=[];for(let a of e)r.set(a.hash,!1);let o=t.firstElementChild,s;for(;o;)s=o.getAttribute("cgHash"),r.has(s)?r.set(s,!0):i.push(o),o=o.nextElementSibling;for(let a of i)t.removeChild(a);for(let a of e)r.get(a.hash)||t.appendChild(n(a))}function yi(e,t){let r=e.drawable.autoShapes.filter(i=>i.piece).map(i=>({shape:i,hash:Ns(i),current:!1,pendingErase:!1}));vi(r,t,i=>_s(e,i,e.dom.bounds()))}function xi(e){let t=B(e),n=Ne(e.dom.bounds()),r=e.dom.elements.autoPieces?.firstChild;for(;r;)un(r,n(T(r.cgKey),t),r.cgScale),r=r.nextSibling}function _s(e,{shape:t,hash:n},r){let i=t.orig,o=t.piece?.role,s=t.piece?.color,a=t.piece?.scale,l=Z("piece",`${o} ${s}`);return l.setAttribute("cgHash",n),l.cgKey=i,l.cgScale=a,un(l,Ne(r)(T(i),B(e)),a),l}var Ns=e=>[e.orig,e.piece?.role,e.piece?.color,e.piece?.scale].join(",");function Ci(e,t){let n=Yr();Tt(n,t||{});function r(){let i="dom"in n?n.dom.unbind:void 0,o=hi(e,n),s=ln(()=>o.board.getBoundingClientRect()),a=d=>{gi(c),o.autoPieces&&yi(c,o.autoPieces),!d&&o.shapes&&ei(c,o)},l=()=>{On(c),ki(c),o.autoPieces&&xi(c)},c=n;return c.dom={elements:o,bounds:s,redraw:Rs(a),redrawNow:a,unbind:i},c.drawable.prevSvgHash="",On(c),a(!1),fi(c,l),i||(c.dom.unbind=mi(c,l)),c.events.insert&&c.events.insert(o),c}return jr(r(),r)}function Rs(e){let t=!1;return()=>{t||(t=!0,requestAnimationFrame(()=>{e(),t=!1}))}}function Os(e,t){return document.createElement(e,t)}function qs(e,t,n){return document.createElementNS(e,t,n)}function Ds(){return De(document.createDocumentFragment())}function Bs(e){return document.createTextNode(e)}function Ls(e){return document.createComment(e)}function Is(e,t,n){if(be(e)){let r=e;for(;r&&be(r);)r=De(r).parent;e=r??e}be(t)&&(t=De(t,e)),n&&be(n)&&(n=De(n).firstChildNode),e.insertBefore(t,n)}function Ks(e,t){e.removeChild(t)}function $s(e,t){be(t)&&(t=De(t,e)),e.appendChild(t)}function Si(e){if(be(e)){for(;e&&be(e);)e=De(e).parent;return e??null}return e.parentNode}function zs(e){var t;if(be(e)){let n=De(e),r=Si(n);if(r&&n.lastChildNode){let i=Array.from(r.childNodes),o=i.indexOf(n.lastChildNode);return(t=i[o+1])!==null&&t!==void 0?t:null}return null}return e.nextSibling}function Fs(e){return e.tagName}function Vs(e,t){e.textContent=t}function Hs(e){return e.textContent}function Gs(e){return e.nodeType===1}function Ws(e){return e.nodeType===3}function Us(e){return e.nodeType===8}function be(e){return e.nodeType===11}function De(e,t){var n,r,i;let o=e;return(n=o.parent)!==null&&n!==void 0||(o.parent=t??null),(r=o.firstChildNode)!==null&&r!==void 0||(o.firstChildNode=e.firstChild),(i=o.lastChildNode)!==null&&i!==void 0||(o.lastChildNode=e.lastChild),o}var Pi={createElement:Os,createElementNS:qs,createTextNode:Bs,createDocumentFragment:Ds,createComment:Ls,insertBefore:Is,removeChild:Ks,appendChild:$s,parentNode:Si,nextSibling:zs,tagName:Fs,setTextContent:Vs,getTextContent:Hs,isElement:Gs,isText:Ws,isComment:Us,isDocumentFragment:be};function Be(e,t,n,r,i){let o=t===void 0?void 0:t.key;return{sel:e,data:t,children:n,text:r,elm:i,key:o}}var tt=Array.isArray;function ze(e){return typeof e=="string"||typeof e=="number"||e instanceof String||e instanceof Number}function qn(e){return e===void 0}function j(e){return e!==void 0}var Dn=Be("",{},[],void 0,void 0);function nt(e,t){var n,r;let i=e.key===t.key,o=((n=e.data)===null||n===void 0?void 0:n.is)===((r=t.data)===null||r===void 0?void 0:r.is),s=e.sel===t.sel,a=!e.sel&&e.sel===t.sel?typeof e.text==typeof t.text:!0;return s&&i&&o&&a}function js(){throw new Error("The document fragment is not supported on this platform.")}function Ys(e,t){return e.isElement(t)}function Zs(e,t){return e.isDocumentFragment(t)}function Qs(e,t,n){var r;let i={};for(let o=t;o<=n;++o){let s=(r=e[o])===null||r===void 0?void 0:r.key;s!==void 0&&(i[s]=o)}return i}var Xs=["create","update","remove","destroy","pre","post"];function Bn(e,t,n){let r={create:[],update:[],remove:[],destroy:[],pre:[],post:[]},i=t!==void 0?t:Pi;for(let h of Xs)for(let f of e){let w=f[h];w!==void 0&&r[h].push(w)}function o(h){let f=h.id?"#"+h.id:"",w=h.getAttribute("class"),g=w?"."+w.split(" ").join("."):"";return Be(i.tagName(h).toLowerCase()+f+g,{},[],void 0,h)}function s(h){return Be(void 0,{},[],void 0,h)}function a(h,f){return function(){if(--f===0){let g=i.parentNode(h);i.removeChild(g,h)}}}function l(h,f){var w,g,P,A;let v,E=h.data;if(E!==void 0){let C=(w=E.hook)===null||w===void 0?void 0:w.init;j(C)&&(C(h),E=h.data)}let x=h.children,_=h.sel;if(_==="!")qn(h.text)&&(h.text=""),h.elm=i.createComment(h.text);else if(_!==void 0){let C=_.indexOf("#"),N=_.indexOf(".",C),q=C>0?C:_.length,L=N>0?N:_.length,G=C!==-1||N!==-1?_.slice(0,Math.min(q,L)):_,Q=h.elm=j(E)&&j(v=E.ns)?i.createElementNS(v,G,E):i.createElement(G,E);for(q<L&&Q.setAttribute("id",_.slice(q+1,L)),N>0&&Q.setAttribute("class",_.slice(L+1).replace(/\./g," ")),v=0;v<r.create.length;++v)r.create[v](Dn,h);if(tt(x))for(v=0;v<x.length;++v){let Vn=x[v];Vn!=null&&i.appendChild(Q,l(Vn,f))}else ze(h.text)&&i.appendChild(Q,i.createTextNode(h.text));let ot=h.data.hook;j(ot)&&((g=ot.create)===null||g===void 0||g.call(ot,Dn,h),ot.insert&&f.push(h))}else if(!((P=n?.experimental)===null||P===void 0)&&P.fragments&&h.children){for(h.elm=((A=i.createDocumentFragment)!==null&&A!==void 0?A:js)(),v=0;v<r.create.length;++v)r.create[v](Dn,h);for(v=0;v<h.children.length;++v){let C=h.children[v];C!=null&&i.appendChild(h.elm,l(C,f))}}else h.elm=i.createTextNode(h.text);return h.elm}function c(h,f,w,g,P,A){for(;g<=P;++g){let v=w[g];v!=null&&i.insertBefore(h,l(v,A),f)}}function d(h){var f,w;let g=h.data;if(g!==void 0){(w=(f=g?.hook)===null||f===void 0?void 0:f.destroy)===null||w===void 0||w.call(f,h);for(let P=0;P<r.destroy.length;++P)r.destroy[P](h);if(h.children!==void 0)for(let P=0;P<h.children.length;++P){let A=h.children[P];A!=null&&typeof A!="string"&&d(A)}}}function p(h,f,w,g){for(var P,A;w<=g;++w){let v,E,x=f[w];if(x!=null)if(j(x.sel)){d(x),v=r.remove.length+1,E=a(x.elm,v);for(let C=0;C<r.remove.length;++C)r.remove[C](x,E);let _=(A=(P=x?.data)===null||P===void 0?void 0:P.hook)===null||A===void 0?void 0:A.remove;j(_)?_(x,E):E()}else x.children?(d(x),p(h,x.children,0,x.children.length-1)):i.removeChild(h,x.elm)}}function y(h,f,w,g){let P=0,A=0,v=f.length-1,E=f[0],x=f[v],_=w.length-1,C=w[0],N=w[_],q,L,G,Q;for(;P<=v&&A<=_;)E==null?E=f[++P]:x==null?x=f[--v]:C==null?C=w[++A]:N==null?N=w[--_]:nt(E,C)?(m(E,C,g),E=f[++P],C=w[++A]):nt(x,N)?(m(x,N,g),x=f[--v],N=w[--_]):nt(E,N)?(m(E,N,g),i.insertBefore(h,E.elm,i.nextSibling(x.elm)),E=f[++P],N=w[--_]):nt(x,C)?(m(x,C,g),i.insertBefore(h,x.elm,E.elm),x=f[--v],C=w[++A]):(q===void 0&&(q=Qs(f,P,v)),L=q[C.key],qn(L)?i.insertBefore(h,l(C,g),E.elm):(G=f[L],G.sel!==C.sel?i.insertBefore(h,l(C,g),E.elm):(m(G,C,g),f[L]=void 0,i.insertBefore(h,G.elm,E.elm))),C=w[++A]);A<=_&&(Q=w[_+1]==null?null:w[_+1].elm,c(h,Q,w,A,_,g)),P<=v&&p(h,f,P,v)}function m(h,f,w){var g,P,A,v,E,x,_,C;let N=(g=f.data)===null||g===void 0?void 0:g.hook;(P=N?.prepatch)===null||P===void 0||P.call(N,h,f);let q=f.elm=h.elm;if(h===f)return;if(f.data!==void 0||j(f.text)&&f.text!==h.text){(A=f.data)!==null&&A!==void 0||(f.data={}),(v=h.data)!==null&&v!==void 0||(h.data={});for(let Q=0;Q<r.update.length;++Q)r.update[Q](h,f);(_=(x=(E=f.data)===null||E===void 0?void 0:E.hook)===null||x===void 0?void 0:x.update)===null||_===void 0||_.call(x,h,f)}let L=h.children,G=f.children;qn(f.text)?j(L)&&j(G)?L!==G&&y(q,L,G,w):j(G)?(j(h.text)&&i.setTextContent(q,""),c(q,null,G,0,G.length-1,w)):j(L)?p(q,L,0,L.length-1):j(h.text)&&i.setTextContent(q,""):h.text!==f.text&&(j(L)&&p(q,L,0,L.length-1),i.setTextContent(q,f.text)),(C=N?.postpatch)===null||C===void 0||C.call(N,h,f)}return function(f,w){let g,P,A,v=[];for(g=0;g<r.pre.length;++g)r.pre[g]();for(Ys(i,f)?f=o(f):Zs(i,f)&&(f=s(f)),nt(f,w)?m(f,w,v):(P=f.elm,A=i.parentNode(P),l(w,v),A!==null&&(i.insertBefore(A,w.elm,i.nextSibling(P)),p(A,[f],0,0))),g=0;g<v.length;++g)v[g].data.hook.insert(v[g]);for(g=0;g<r.post.length;++g)r.post[g]();return w}}function Ei(e,t,n){if(e.ns="http://www.w3.org/2000/svg",n!=="foreignObject"&&t!==void 0)for(let r=0;r<t.length;++r){let i=t[r];if(typeof i=="string")continue;let o=i.data;o!==void 0&&Ei(o,i.children,i.sel)}}function S(e,t,n){let r={},i,o,s;if(n!==void 0?(t!==null&&(r=t),tt(n)?i=n:ze(n)?o=n.toString():n&&n.sel&&(i=[n])):t!=null&&(tt(t)?i=t:ze(t)?o=t.toString():t&&t.sel?i=[t]:r=t),i!==void 0)for(s=0;s<i.length;++s)ze(i[s])&&(i[s]=Be(void 0,void 0,void 0,i[s],void 0));return e[0]==="s"&&e[1]==="v"&&e[2]==="g"&&(e.length===3||e[3]==="."||e[3]==="#")&&Ei(r,i,e),Be(e,r,i,o,void 0)}var Js="http://www.w3.org/1999/xlink",ea="http://www.w3.org/XML/1998/namespace";function Ai(e,t){let n,r=t.elm,i=e.data.attrs,o=t.data.attrs;if(!(!i&&!o)&&i!==o){i=i||{},o=o||{};for(n in o){let s=o[n];i[n]!==s&&(s===!0?r.setAttribute(n,""):s===!1?r.removeAttribute(n):n.charCodeAt(0)!==120?r.setAttribute(n,s):n.charCodeAt(3)===58?r.setAttributeNS(ea,n,s):n.charCodeAt(5)===58?r.setAttributeNS(Js,n,s):r.setAttribute(n,s))}for(n in i)n in o||r.removeAttribute(n)}}var Ln={create:Ai,update:Ai};function _i(e,t){let n,r,i=t.elm,o=e.data.class,s=t.data.class;if(!(!o&&!s)&&o!==s){o=o||{},s=s||{};for(r in o)o[r]&&!Object.prototype.hasOwnProperty.call(s,r)&&i.classList.remove(r);for(r in s)n=s[r],n!==o[r]&&i.classList[n?"add":"remove"](r)}}var In={create:_i,update:_i};var Ni=e=>{let t=Kn[e];return t?S("nag",{attrs:{title:t.name}},t.symbol):void 0},Kn={1:{symbol:"!",name:"Good move"},2:{symbol:"?",name:"Mistake"},3:{symbol:"!!",name:"Brilliant move"},4:{symbol:"??",name:"Blunder"},5:{symbol:"!?",name:"Interesting move"},6:{symbol:"?!",name:"Dubious move"},7:{symbol:"\u25A1",name:"Only move"},22:{symbol:"\u2A00",name:"Zugzwang"},10:{symbol:"=",name:"Equal position"},13:{symbol:"\u221E",name:"Unclear position"},14:{symbol:"\u2A72",name:"White is slightly better"},15:{symbol:"\u2A71",name:"Black is slightly better"},16:{symbol:"\xB1",name:"White is better"},17:{symbol:"\u2213",name:"Black is better"},18:{symbol:"+\u2212",name:"White is winning"},19:{symbol:"-+",name:"Black is winning"},146:{symbol:"N",name:"Novelty"},32:{symbol:"\u2191\u2191",name:"Development"},36:{symbol:"\u2191",name:"Initiative"},40:{symbol:"\u2192",name:"Attack"},132:{symbol:"\u21C6",name:"Counterplay"},138:{symbol:"\u2295",name:"Time trouble"},44:{symbol:"=\u221E",name:"With compensation"},140:{symbol:"\u2206",name:"With the idea"}};function Ri(e,t,n){for(let r of["touchstart","mousedown"])e.addEventListener(r,i=>{t(i),i.preventDefault(),n&&n()},{passive:!1})}var $n=(e,t,n,r=!0)=>Fe(i=>i.addEventListener(e,o=>{let s=t(o);return s===!1&&o.preventDefault(),n?.(),s},{passive:r}));function Fe(e){return{insert:t=>e(t.elm)}}var rt=e=>{if(!e&&e!==0)return["-"];let t=new Date(e*1e3),n=":",r=Ti(t.getUTCMinutes())+n+Ti(t.getUTCSeconds());return e>=3600?[Math.floor(e/3600)+n+r]:[r]},Ti=e=>(e<10?"0":"")+e,Oi=(e,t,n,r)=>{let i=`${t.toUpperCase()}${n}`;if(!r)return`${i} ${e("aria.empty")}`;let o=e(`aria.piece.${r.role}`);return`${i} ${e(`aria.${r.color}`)} ${o}`},Dt=(e,t,n)=>{let r=n?ta(e,n):e;if(t&&t.length>0){let i=t.map(o=>Kn[o]?.name).filter(o=>o).join(", ");i&&(r+=`, ${i}`)}return r},ta=(e,t)=>e.split("").map(n=>{if(n==="x")return t("san.takes");if(n==="+")return t("san.check");if(n==="#")return t("san.checkmate");if(n==="=")return t("san.promotesTo");if(n==="@")return t("san.droppedOn");let r=n.charCodeAt(0);return r>48&&r<58?n:r>96&&r<105?n.toUpperCase():n==="K"?t("aria.piece.king"):n==="Q"?t("aria.piece.queen"):n==="R"?t("aria.piece.rook"):n==="B"?t("aria.piece.bishop"):n==="N"?t("aria.piece.knight"):n==="O"?"O":n}).join(" ").replace("O - O - O",t("san.longCastling")).replace("O - O",t("san.shortCastling"));function qi(e){let t=0;return n=>{t+=n.deltaY*(n.deltaMode?40:1),Math.abs(t)>=4?(e(n,!0),t=0):e(n,!1)}}function Di(e,t){let n=()=>{e(),r=Math.max(100,r-r/15),i=setTimeout(n,r)},r=350,i=setTimeout(n,500);e();let o=t.type=="touchstart"?"touchend":"mouseup";document.addEventListener(o,()=>clearTimeout(i),{once:!0})}var na=e=>e.altKey||e.ctrlKey||e.shiftKey||e.metaKey||document.activeElement instanceof HTMLInputElement||document.activeElement instanceof HTMLTextAreaElement,Bi=e=>t=>{na(t)||(t.key=="ArrowLeft"?e.goTo("prev"):t.key=="ArrowRight"?e.goTo("next"):t.key=="f"&&e.flip())};var Li=e=>S("div.lpv__menu.lpv__pane",{attrs:{role:"menu","aria-label":e.translate("menu")??"Menu"},hook:{insert:t=>{let n=t.elm;n.querySelector('[role="menuitem"]')?.focus(),ia(e,n)}}},[S("button.lpv__menu__entry.lpv__menu__flip.lpv__fbt",{attrs:{role:"menuitem"},hook:$n("click",e.flip)},e.translate("flipTheBoard")),e.opts.menu.analysisBoard?.enabled?S("a.lpv__menu__entry.lpv__menu__analysis.lpv__fbt",{attrs:{role:"menuitem",href:e.analysisUrl(!1),target:"_blank","aria-label":e.translate("aria.linkOpensInNewTab",e.translate("analysisBoard"))}},e.translate("analysisBoard")):void 0,e.opts.menu.practiceWithComputer?.enabled?S("a.lpv__menu__entry.lpv__menu__practice.lpv__fbt",{attrs:{role:"menuitem",href:e.practiceUrl(),target:"_blank","aria-label":e.translate("aria.linkOpensInNewTab",e.translate("practiceWithComputer"))}},e.translate("practiceWithComputer")):void 0,e.opts.menu.getPgn.enabled?S("button.lpv__menu__entry.lpv__menu__pgn.lpv__fbt",{attrs:{role:"menuitem"},hook:$n("click",e.togglePgn)},e.translate("getPgn")):void 0,!e.game.metadata.isLichess||!e.opts.menu.analysisBoard?.enabled?ra(e):void 0]),ra=e=>{let t=e.game.metadata.externalLink,n=e.translate(e.game.metadata.isLichess?"viewOnLichess":"viewOnSite");return t&&S("a.lpv__menu__entry.lpv__fbt",{attrs:{role:"menuitem",href:t,target:"_blank","aria-label":e.translate("aria.linkOpensInNewTab",n)}},n)},Ii=e=>S("div.lpv__controls",{attrs:{role:"navigation","aria-label":e.translate("aria.navigationControls")}},[e.pane=="board"?void 0:Bt(e,"first","step-backward"),Bt(e,"prev","left-open"),S("button.lpv__fbt.lpv__controls__menu.lpv__icon",{class:{active:e.pane!="board","lpv__icon-ellipsis-vert":e.pane=="board"},hook:{insert:t=>{let n=t.elm;n.addEventListener("click",e.toggleMenu),e.menuButton=n}},attrs:{"aria-label":e.translate("menu"),"aria-expanded":String(e.pane==="menu"),"aria-haspopup":"menu"}},e.pane=="board"?void 0:"X"),Bt(e,"next","right-open"),e.pane=="board"?void 0:Bt(e,"last","step-forward")]),Bt=(e,t,n)=>{let r=e.pane=="board"&&!e.canGoTo(t);return S(`button.lpv__controls__goto.lpv__controls__goto--${t}.lpv__fbt.lpv__icon.lpv__icon-${n}`,{class:{disabled:r},hook:Fe(i=>Ri(i,o=>Di(()=>e.goTo(t),o))),attrs:{"aria-label":e.translate(`aria.${t}`),"aria-disabled":String(r),disabled:r}})},ia=(e,t)=>{let n=r=>{switch(r.key){case"Enter":case" ":r.preventDefault(),document.activeElement?.click();break;case"Escape":r.preventDefault(),e.toggleMenu();break}};t.addEventListener("keydown",n)};var it={"aria-hidden":!0},Lt={role:"presentation","aria-hidden":"true"},Ki=e=>{let t=e.curData();if(!Ye(t))return"";let n=Math.ceil(t.ply/2),r=t.ply%2===1?"white":"black",i=t.san,o=e.translate("aria.move",n.toString(),e.translate(`aria.${r}`),Dt(i,t.nags,e.translate)),s=t.clocks&&t.clocks[r==="white"?"white":"black"];if(s!==void 0&&e.opts.showClocks){let l=rt(s).join("");l!=="-"&&(o+=", "+e.translate("aria.remaining",l))}let a=t.comments.join(" ").trim();return a&&(o+=`. ${a}`),o},$i=e=>{let t=e.game,n=a=>{let l=a.name||e.translate("aria.unknownPlayer");return a.title&&(l=`${a.title} ${l}`),a.rating&&(l=`${l}, ${e.translate("aria.rated",a.rating.toString())}`),l},r=a=>!a||a==="*"?e.translate("aria.gameInProgress"):a==="1-0"?e.translate("aria.whiteWins"):a==="0-1"?e.translate("aria.blackWins"):a==="1/2-1/2"?e.translate("aria.draw"):a,i=n(t.players.white),o=n(t.players.black),s=r(t.metadata.result);return e.translate("aria.chessGameBetween",i,o,s)};var Fi=e=>S("div.lpv__side",[S("div.lpv__moves",{attrs:{role:"complementary","aria-label":e.translate("aria.gameMoves")},hook:{insert:t=>{let n=t.elm;e.path.empty()||zi(e,n),n.addEventListener("click",r=>{let i=r.target.getAttribute("data-path");i&&e.toPath(new ee(i))},{passive:!0})},postpatch:(t,n)=>{e.autoScrollRequested&&(zi(e,n.elm),e.autoScrollRequested=!1)}}},[...e.game.initial.comments.map(Kt),...ca(e),...oa(e)])]),oa=e=>{let t=e.game.metadata.result;return t&&t!="*"?[S("comment.result",{attrs:{role:"note","aria-label":e.translate("aria.gameResult")}},e.game.metadata.result)]:[]},zn=()=>S("button.move.empty",{attrs:{"aria-hidden":"true",disabled:!0}},"..."),Fn=e=>S("index",{attrs:Lt},`${e}.`),Kt=e=>S("comment",{attrs:{role:"note"}},e),sa=()=>S("paren.open",{attrs:it},"("),aa=()=>S("paren.close",{attrs:it},")"),It=e=>Math.floor((e.ply-1)/2)+1,ca=e=>{let t=ua(e),n=[],r,i=e.game.moves.children.slice(1);for(e.game.initial.pos.turn=="black"&&e.game.mainline[0]&&n.push(Fn(e.game.initial.pos.fullmoves),zn());r=(r||e.game.moves).children[0];){let o=r.data,s=o.ply%2==1;s&&n.push(Fn(It(o))),n.push(t(o));let a=s&&(i.length||o.comments.length)&&r.children.length;a&&n.push(zn()),o.comments.forEach(l=>n.push(Kt(l))),i.forEach(l=>n.push(la(e.translate,t,l))),a&&n.push(Fn(It(o)),zn()),i=r.children.slice(1)}return n},la=(e,t,n)=>S("variation",{attrs:{role:"group","aria-label":e("aria.variation")}},[...n.data.startingComments.map(Kt),...Vi(t,n)]),Vi=(e,t)=>{let n=[],r=[];t.data.ply%2==0&&n.push(S("index",{attrs:Lt},[It(t.data),"..."]));do{let i=t.data;i.ply%2==1&&n.push(S("index",{attrs:Lt},[It(i),"."])),n.push(e(i)),i.comments.forEach(o=>n.push(Kt(o))),r.forEach(o=>{n=[...n,sa(),...Vi(e,o),aa()]}),r=t.children.slice(1),t=t.children[0]}while(t);return n},ua=e=>t=>S("button.move",{class:{current:e.path.equals(t.path),ancestor:e.path.contains(t.path),good:t.nags.includes(1),mistake:t.nags.includes(2),brilliant:t.nags.includes(3),blunder:t.nags.includes(4),interesting:t.nags.includes(5),inaccuracy:t.nags.includes(6)},attrs:{"data-path":t.path.path,role:"button","aria-label":e.translate("aria.move",Math.ceil(t.ply/2).toString(),e.translate(`aria.${t.ply%2===1?"white":"black"}`),Dt(t.san,t.nags,e.translate))}},[t.san,...t.nags.map(Ni)]),zi=(e,t)=>{let n=t.querySelector(".current");if(!n){t.scrollTop=e.path.empty()?0:99999;return}t.scrollTop=n.offsetTop-t.offsetHeight/2+n.offsetHeight};function $t(e,t){let n=t=="bottom"?e.orientation():M(e.orientation()),r=e.game.players[n],i=[r.title?S("span.lpv__player__title",r.title):void 0,S("span.lpv__player__name",r.name),r.rating?S("span.lpv__player__rating",["(",r.rating,")"]):void 0];return S(`div.lpv__player.lpv__player--${t}`,[r.isLichessUser&&r.name?S("a.lpv__player__person.ulpt.user-link",{attrs:{href:`${e.opts.lichess}/@/${r.name}`,"aria-label":e.translate("aria.viewProfileOnLichess",r.name)}},i):S("span.lpv__player__person",i),e.opts.showClocks?ha(e,n):void 0])}var ha=(e,t)=>{let n=e.curData(),r=n.clocks&&n.clocks[t];return typeof r==null?void 0:S("div.lpv__player__clock",{class:{active:t==n.turn},attrs:{role:"timer","aria-label":rt(r).join("")}},rt(r))};var Hi=e=>{let t=e.flipped;return S("div.lpv__sr-only",{attrs:{role:"grid","aria-label":e.translate("aria.accessibleChessboard"),"aria-hidden":"false"}},da(e,t))},da=(e,t)=>{let n=e.ground?.state.pieces||$e(e.curData().fen),r=t?Pe:Ct,i=t?[...ce].reverse():ce;return r.map(o=>S("div",{attrs:{role:"row"}},i.map(s=>{let a=`${s}${o}`,l=n.get(a);return pa(e.translate,s,o,l)})))},pa=(e,t,n,r)=>{let i=Oi(e,t,n,r);return S("span",{attrs:{role:"gridcell","aria-label":i}},i)};function zt(e){let t=e.opts,n=`lpv.lpv--moves-${t.showMoves}.lpv--controls-${t.showControls}${t.classes?"."+t.classes.replace(" ","."):""}`,r=t.showPlayers=="auto"?e.game.hasPlayerName():t.showPlayers;return S(`div.${n}`,{class:{"lpv--menu":e.pane!="board","lpv--players":r},attrs:{role:"region",tabindex:0,"aria-label":$i(e)},hook:Fe(i=>{e.setGround(Ci(i.querySelector(".cg-wrap"),ga(e,i))),t.keyboardToMove&&i.addEventListener("keydown",Bi(e))})},[S("div.lpv__sr-only",{attrs:{"aria-live":"polite","aria-atomic":"true"}},Ki(e)),Hi(e),r?$t(e,"top"):void 0,fa(e),r?$t(e,"bottom"):void 0,t.showControls?Ii(e):void 0,t.showMoves?Fi(e):void 0,e.pane=="menu"?Li(e):e.pane=="pgn"?ma(e):void 0])}var fa=e=>S("div.lpv__board",{attrs:it,hook:Fe(t=>{t.addEventListener("click",e.focus),e.opts.scrollToMove&&!("ontouchstart"in window)&&t.addEventListener("wheel",qi((n,r)=>{n.preventDefault(),n.deltaY>0&&r?e.goTo("next",!1):n.deltaY<0&&r&&e.goTo("prev",!1)}))})},S("div.cg-wrap")),ma=e=>{let t=new Blob([e.opts.pgn],{type:"text/plain"});return S("div.lpv__pgn.lpv__pane",[S("a.lpv__pgn__download.lpv__fbt",{attrs:{href:window.URL.createObjectURL(t),download:e.opts.menu.getPgn.fileName||`${e.game.title()}.pgn`}},e.translate("download")),S("textarea.lpv__pgn__text",e.opts.pgn)])},ga=(e,t)=>({viewOnly:!e.opts.drawArrows,addDimensionsCssVarsTo:t,drawable:{enabled:e.opts.drawArrows,visible:!0},disableContextMenu:e.opts.drawArrows,...e.opts.chessground||{},movable:{free:!1},draggable:{enabled:!1},selectable:{enabled:!1},...e.cgState()});var ka={pgn:"*",fen:void 0,showPlayers:"auto",showClocks:!0,showMoves:"auto",showControls:!0,scrollToMove:!0,keyboardToMove:!0,orientation:void 0,initialPly:0,chessground:{},drawArrows:!0,menu:{getPgn:{enabled:!0,fileName:void 0},practiceWithComputer:{enabled:!0},analysisBoard:{enabled:!0}},lichess:"https://lichess.org",classes:void 0};function Wi(e,t){let n={...ka};return Ui(n,t),n.fen&&(n.pgn=`[FEN "${n.fen}"]
4
4
  ${n.pgn}`),n.classes||(n.classes=e.className),n}function Ui(e,t){for(let n in t)typeof t[n]<"u"&&(Gi(e[n])&&Gi(t[n])?Ui(e[n],t[n]):e[n]=t[n])}function Gi(e){if(typeof e!="object"||e===null)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function ba(e,t){let n=Bn([In,Ln]),r=Wi(e,t),i=new Ze(r,a),o=zt(i);e.innerHTML="";let s=n(e,o);i.div=s.elm;function a(){s=n(s,zt(i))}return i}export{ba as default};
@@ -1,5 +1,5 @@
1
1
  import { Api as CgApi } from '@lichess-org/chessground/api';
2
- import { GoTo, InitialOrMove, Opts, Translate } from './interfaces';
2
+ import { GoTo, InitialOrMove, Opts, Pane, Translate } from './interfaces';
3
3
  import { Config as CgConfig } from '@lichess-org/chessground/config';
4
4
  import { Path } from './path';
5
5
  import { AnyNode, Game } from './game';
@@ -13,7 +13,7 @@ export default class PgnViewer {
13
13
  div?: HTMLElement;
14
14
  menuButton?: HTMLElement;
15
15
  flipped: boolean;
16
- pane: string;
16
+ pane: Pane;
17
17
  autoScrollRequested: boolean;
18
18
  constructor(opts: Opts, redraw: () => void);
19
19
  curNode: () => AnyNode;
@@ -1 +1 @@
1
- {"version":3,"file":"pgnViewer.js","sourceRoot":"","sources":["../src/pgnViewer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pgnViewer.js","sourceRoot":"","sources":["../src/pgnViewer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"fileNames":["../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es5.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.dom.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.float16.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/types.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/util.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/squareSet.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/attacks.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/board.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/setup.d.ts","../node_modules/.pnpm/@badrap+result@0.3.1/node_modules/@badrap/result/dist/mjs/index.d.mts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/chess.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/compat.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/debug.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/fen.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/san.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/transform.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/variant.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/pgn.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/index.d.ts","../node_modules/.pnpm/@lichess-org+chessground@10.0.1/node_modules/@lichess-org/chessground/dist/types.d.ts","../node_modules/.pnpm/@lichess-org+chessground@10.0.1/node_modules/@lichess-org/chessground/dist/anim.d.ts","../node_modules/.pnpm/@lichess-org+chessground@10.0.1/node_modules/@lichess-org/chessground/dist/drag.d.ts","../node_modules/.pnpm/@lichess-org+chessground@10.0.1/node_modules/@lichess-org/chessground/dist/draw.d.ts","../node_modules/.pnpm/@lichess-org+chessground@10.0.1/node_modules/@lichess-org/chessground/dist/state.d.ts","../node_modules/.pnpm/@lichess-org+chessground@10.0.1/node_modules/@lichess-org/chessground/dist/config.d.ts","../src/path.ts","../src/interfaces.ts","../src/config.ts","../node_modules/.pnpm/@lichess-org+chessground@10.0.1/node_modules/@lichess-org/chessground/dist/api.d.ts","../src/translation.ts","../node_modules/.pnpm/@lichess-org+chessground@10.0.1/node_modules/@lichess-org/chessground/dist/util.d.ts","../src/game.ts","../src/pgn.ts","../src/pgnViewer.ts","../src/events.ts","../node_modules/.pnpm/@lichess-org+chessground@10.0.1/node_modules/@lichess-org/chessground/dist/chessground.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/htmldomapi.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/helpers/attachto.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/modules/style.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/modules/eventlisteners.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/modules/attributes.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/modules/class.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/modules/props.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/modules/dataset.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/vnode.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/hooks.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/modules/module.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/init.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/thunk.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/is.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/tovnode.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/h.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/jsx.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/index.d.ts","../src/view/glyph.ts","../src/view/util.ts","../src/view/menu.ts","../src/view/aria.ts","../src/view/side.ts","../src/view/player.ts","../node_modules/.pnpm/@lichess-org+chessground@10.0.1/node_modules/@lichess-org/chessground/dist/fen.d.ts","../src/view/accessibleBoard.ts","../src/view/main.ts","../src/main.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/compatibility/iterators.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/globals.typedarray.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/buffer.buffer.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/globals.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/web-globals/abortcontroller.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/web-globals/domexception.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/web-globals/events.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/utility.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/header.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/readable.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/fetch.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/formdata.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/connector.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/client-stats.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/client.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/errors.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/dispatcher.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/global-dispatcher.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/global-origin.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/pool-stats.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/pool.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/handlers.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/balanced-pool.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/h2c-client.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/agent.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/mock-interceptor.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/mock-call-history.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/mock-agent.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/mock-client.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/mock-pool.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/mock-errors.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/proxy-agent.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/retry-handler.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/retry-agent.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/api.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/cache-interceptor.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/interceptors.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/util.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/cookies.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/patch.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/websocket.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/eventsource.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/content-type.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/cache.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/index.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/web-globals/fetch.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/web-globals/navigator.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/web-globals/storage.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/assert.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/assert/strict.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/async_hooks.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/buffer.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/child_process.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/cluster.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/console.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/constants.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/crypto.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/dgram.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/dns.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/dns/promises.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/domain.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/events.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/fs.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/fs/promises.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/http.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/http2.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/https.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/inspector.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/module.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/net.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/os.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/path.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/perf_hooks.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/process.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/punycode.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/querystring.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/readline.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/readline/promises.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/repl.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/sea.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/sqlite.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/stream.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/stream/promises.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/stream/consumers.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/stream/web.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/string_decoder.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/test.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/timers.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/timers/promises.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/tls.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/trace_events.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/tty.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/url.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/util.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/v8.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/vm.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/wasi.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/worker_threads.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/zlib.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/index.d.ts"],"fileIdsList":[[112,163],[65,69,112,163],[65,68,69,70,112,163],[70,74,112,163],[65,68,69,112,163],[65,112,163],[65,66,67,68,112,163],[112,160,163],[112,162,163],[163],[112,163,168,197],[112,163,164,169,174,182,194,205],[112,163,164,165,174,182],[112,163,166,206],[112,163,167,168,175,183],[112,163,168,194,202],[112,163,169,171,174,182],[112,162,163,170],[112,163,171,172],[112,163,173,174],[112,162,163,174],[112,163,174,175,176,194,205],[112,163,174,175,176,189,194,197],[112,156,163,171,174,177,182,194,205],[112,163,174,175,177,178,182,194,202,205],[112,163,177,179,194,202,205],[110,111,112,113,114,115,116,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211],[112,163,174,180],[112,163,181,205],[112,163,171,174,182,194],[112,163,183],[112,163,184],[112,162,163,185],[112,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211],[112,163,187],[112,163,188],[112,163,174,189,190],[112,163,189,191,206,208],[112,163,174,194,195,197],[112,163,196,197],[112,163,194,195],[112,163,197],[112,163,198],[112,160,163,194,199],[112,163,174,200,201],[112,163,200,201],[112,163,168,182,194,202],[112,163,203],[112,163,182,204],[112,163,177,188,205],[112,163,168,206],[112,163,194,207],[112,163,181,208],[112,163,209],[112,156,163],[112,163,174,176,185,194,197,205,207,208,210],[112,163,194,211],[49,51,112,163],[49,51,53,54,55,112,163],[49,56,112,163],[49,51,53,56,112,163],[49,50,51,52,53,54,56,57,58,59,60,61,62,63,112,163],[49,55,56,59,112,163],[49,51,53,112,163],[49,112,163],[51,53,54,112,163],[49,51,54,55,56,112,163],[90,112,163],[82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,112,163],[82,90,92,112,163],[90,97,112,163],[92,112,163],[90,92,112,163],[91,112,163],[82,90,112,163],[83,84,85,86,87,88,89,91,112,163],[112,123,126,129,130,163,205],[112,126,163,194,205],[112,126,130,163,205],[112,163,194],[112,120,163],[112,124,163],[112,122,123,126,163,205],[112,163,182,202],[112,163,212],[112,120,163,212],[112,122,126,163,182,205],[112,117,118,119,121,125,163,174,194,205],[112,126,134,163],[112,118,124,163],[112,126,150,151,163],[112,118,121,126,163,197,205,212],[112,126,163],[112,122,126,163,205],[112,117,163],[112,120,121,122,124,125,126,127,128,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,151,152,153,154,155,163],[112,126,143,146,163,171],[112,126,134,135,136,163],[112,124,126,135,137,163],[112,125,163],[112,118,120,126,163],[112,126,130,135,137,163],[112,130,163],[112,124,126,129,163,205],[112,118,122,126,134,163],[112,126,143,163],[112,120,126,150,163,197,210,212],[72,112,163],[79,112,163],[63,71,72,112,163],[63,64,65,70,71,112,163],[72,73,79,99,108,112,163],[57,59,60,63,64,71,72,77,112,163],[64,70,71,72,74,75,76,77,78,112,163],[65,72,76,79,99,101,106,112,163],[72,77,79,101,112,163],[99,112,163],[70,79,80,81,99,101,102,103,104,105,107,112,163],[72,79,80,99,101,112,163],[64,79,99,101,112,163],[71,72,77,79,99,100,101,103,112,163],[65,72,99,100,112,163]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"4245fee526a7d1754529d19227ecbf3be066ff79ebb6a380d78e41648f2f224d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"121ed5b84a4c25bf16bef637f62b92947e96e9a5f0fd3a584c3966ea8effd67d","impliedFormat":99},{"version":"f54493905a6b6664e86f1ee94a9b9292b91aa99d65fc4638fd1d20953394b066","impliedFormat":99},{"version":"9f1a606af4c42d72f626765f0cd71fe9b0aa0841ea3e837e7dc0f3248204b288","impliedFormat":99},{"version":"1ba6b78f7d38a841e0fdc106af31a144672583131b024e31378a27f881de9c34","impliedFormat":99},{"version":"115387be50fd2e5526c200361fc85aac5d140f5ae4735ba8040ff955a10274ad","impliedFormat":99},{"version":"83ef3841bae34e649fd7c1c6be499444d28eb962f57c50a55b8ada885f9ab089","impliedFormat":99},{"version":"d4feb92f592533eb93af021c53a852cdd74ea086f882361e7e2bb25d3715d733","impliedFormat":99},{"version":"4f480c4465d9977a759a8141deec88953d4a2d8aa3504edce7910b2db95a0d5d","impliedFormat":99},{"version":"8c323d171f1cd143cafdfceb8bef95f1f195211beac8e8e5f796a1b595e8d1cf","impliedFormat":99},{"version":"114aeac4618b952272947d290fc8aeba415d3ad560934df4c2809c58a02b55a3","impliedFormat":99},{"version":"1cde5056744518c5dfbdfc8d550330bbfe388fb3f105876bdca9676f7a237b29","impliedFormat":99},{"version":"4adc1c36904421747e3c6d5b70dbe9e1ed06c49f6ea2868b2ec6a334f85c35e5","impliedFormat":99},{"version":"53dc5dcff95f7a72e08124e57fe5c8e72e64f51e25eb77b3b375db24a7b9c86f","impliedFormat":99},{"version":"eec39d6c3bead7fa60bad28f01334484ee4587f371cf9e67ebb3d4c258a65ea4","impliedFormat":99},{"version":"9e3a64c568d637dfd6a99dc8f9921e2db8b65f4b730acb3fa80a8799164675c8","impliedFormat":99},{"version":"200ca2f2f64d5fdb78bceb9c0ca93571e83b1a3b168116da7b6644a4e2fcfe2f","impliedFormat":99},{"version":"9e32c1b3643bc2f022d8bce6477d08bb141f2e871199ef6a06a8217a4d1549d0","impliedFormat":99},{"version":"4d2a9be5f03a0b85adff5cfa50a46e6bdc84cfb5186966ee83b5c4aa2d843bce","impliedFormat":99},{"version":"14fbc0091eb1d2d336d59a3c0771a9591e997fad2a1e2ad544ab53722249447e","impliedFormat":99},{"version":"435ca0e383467cd9b5f69e517ad4a7b03a38765d0e4d4af0fe423265abdd8128","impliedFormat":99},{"version":"a01bb052b9e36c1d252549a02ef87d12f551114a5be199e1f72d33c5c33a50dc","impliedFormat":99},{"version":"f2fb80af2436eb682e632760fec2786562ffa6701ac354076455204939f6cd32","impliedFormat":99},{"version":"b2eb3e2e585446d4a521f21b20904581654925c3826bec560ad457fc39512a16","signature":"ab8d2ec9b55e4404c0214a28fb884c1490af913964b22c23d6a224d5ebda139a"},{"version":"344e0349d38e7405006f74415cf39e17be74c5f8cf9579b27039b178050d0bbd","signature":"dc84cd877c94d0c5444dbbf7b6d6c069581795dced29e25efa588cf4cfbf46c7"},{"version":"baae1124e718c52a55a37cae7c86dcca7919951644a73a2817a1cbda83741290","signature":"3f2c6120d760a419c5b4f6154085a1f1d3c4416a87d0b5471dc2fe3a2016838e"},{"version":"bac3a4cd114dfcb542cc56834ed4813744daf1289d519afa90740f5b5746c750","impliedFormat":99},{"version":"0617186337fbff780c18f86e68e517af0b85fd654b6287f4268823fccdfc985d","signature":"9c45488c512752b3c2287d5cf808c5b339011261255d7e6724187ba94e0246e0"},{"version":"e9527fb8c2b1e61e800b393e99aca8afe970c3d0571c01a8951f9c9af2ec3219","impliedFormat":99},{"version":"12b12dc3ee9d168cece989eee68e903071c69db808914cf2bb05b65ba9d5c76a","signature":"3aa388df5a873d69898c90fcc0f26d3d520dee117c17c4ce49cc132ed68db198"},{"version":"bc50e721604d26e21eb219ef26ffdd3a303bc4d51188cf95227510387169ac23","signature":"536d062cb2ebdec1d307aecdb77c2d6f89b4fce481f8f66d181886b2b5bf8fef"},{"version":"fd7c8387524e6f89886dd7bd6cd7a2fcd350f32d11e465dc6c655f63b28635f0","signature":"4ffdc8a07a9be05cc2f7a227eca2486cb7eb8305665438e04066d892cdd8eab7"},{"version":"be076041c123ed99f70f62fc8b4a9238ba31216b5bc7ab990669443eb8c2806f","signature":"4a0559a3703462a9186acc1cb843281d733bccca72f0e76888c1a113c59b2e5e"},{"version":"42de8107b60eedc59972b085a42b80a115e15a3427de7019881c336c80a08a97","impliedFormat":99},{"version":"095a402135de9fbfda29ba7c984bf54b9e65757396b4165706d898e9baa83ed5","impliedFormat":1},{"version":"dbd5601bf95b6cda2d3ce749f1618d3a26249adfa59d6a38776d9b41688d066b","impliedFormat":1},{"version":"86461653a4843ef47052082a3a5fbf7c013dfef98b394497fdaf7d3e3f50acfb","impliedFormat":1},{"version":"13a50fee16e28ffe07be8cdc77850944850f733364c687268ed1c15fab2fc934","impliedFormat":1},{"version":"7cf2ff1f0bb971089219c17c6b70ae76fd55af04ed5c71939bdea4e79c87b770","impliedFormat":1},{"version":"d631456e653d62a7041e73ce75377903d7397d05a9e2bc33ce2d5d71be427916","impliedFormat":1},{"version":"50761b8a64afb4c8b727cc47b42ec88ad0a552bf9f9ff991d1a69decdb864ba6","impliedFormat":1},{"version":"4c48b6c8d023119098489c41d73930ae130a77b562856e716ad2b4dbd6e28f87","impliedFormat":1},{"version":"67ca5abe08a5f7b50db326c7653b15887e5e9ed2fc56ac4845019de6b58f7ba8","impliedFormat":1},{"version":"b09163da65a31726be29812f27a10f141ddae782bfbf9358611a78966aeb2968","impliedFormat":1},{"version":"84e5250e7b199be001fac9ca57836f9053d5bcc1f360b8b38717e8b4d0771da0","impliedFormat":1},{"version":"ab1c05d701b3357b48b42d66d991d7fb4474529d1804090bf26c4c2bb9e18558","impliedFormat":1},{"version":"2957b0f8e46e3ca5f394af395db80b702d1ae862795c27f6bc4637509383a356","impliedFormat":1},{"version":"e50f096cb424b63343ad5814622623f15cf3830f41710376bebb3c7f71554713","impliedFormat":1},{"version":"7c3511a2098fd92e99e9b37b85a431527c4cb86c29814545afcaf80fe550f6ac","impliedFormat":1},{"version":"e6a92923694f59fe3aba1ae103e89869d3c41e0d837998395e9fc5b888751363","impliedFormat":1},{"version":"5dafb1427f8a44f47c33cd20b5bc5944ba194049782de9f9bd023cea4b8b8c44","impliedFormat":1},{"version":"e19228db0a5451f604f6702359a93919a1735809cbc0cd8a0744f29777c438c2","impliedFormat":1},{"version":"34cfb8ebe9b2e2af7e6db11ad574b135e37842f9a326c2256236b4d7410a86ed","signature":"e8221a9018aed8482d20e4ffd502bf1806a250fa0bfaa24ae0af76020f9e63d2"},{"version":"faf0031ded8e17ce59640557d10637551e24b72ef1b0c05f3e4a3d348ddcae5b","signature":"4713301e1df79d62c341dc97a950476d91ded8af11c87728f0e7da61b3efe88a"},{"version":"dc8cedcf950d1ddc040d9e3927d0b2dd93b25b29480392ce7e68def14f7d4601","signature":"eeb0edc394398fdf0cd19a30baec23a027a528b48388fd7fec540b3092a985f4"},{"version":"ddaaf5b62b0272b3ba32c0296d6ebc0d87503772da1c305baa24e7c5952f87c4","signature":"5f5bf705c57c7ceb51986f972ed177939e53075bc7a55cd2b7c9eb76573e9cc5"},{"version":"de5f61da92a271dd4ca3726f3260951fb50d00d0cda069b43ea0bae50b4e7958","signature":"5ca7728f8bd9bced5829f9886e7f6601f1e4e66f7c3c84c20c6709f828c06e38"},{"version":"6aefe1e869ecc43fef7e9f5ce8a89ae1365ea87c0926c6a8f834fd10b991480b","signature":"6889eba0ca8fa41d1579787805dbb88d492650acda574a483df86744967cf4c8"},{"version":"56c5474bd53a07f71bab22964b738b7e21568a5a3382ce69080ecf920542b844","impliedFormat":99},{"version":"0e2b67aee3f5e944f4e0482d7109e583be03c5437a0ac7f33f4d9a1f150faba3","signature":"beccd63b477d439034cc1e9bbb2d2ce0baf3a73ffcbef37390c866480ea96e0b"},{"version":"6c44feff6c25825a40fe20404d6b7acfd3c382e9395fd39f4907be6a3db0619d","signature":"7a764bb43eb6bb3ddd2cd686902d9210a5ae8db3e2961ea0127e4e889d1aa180"},{"version":"760c57c05b5bba917a8290605e2aa8c67435015bd67590b97670eeadd9c16b00","signature":"81e7079e2896d84161cf5a16480bc746e9c513a8e21214348df92a0a946b6a5c"},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0671b50bb99cc7ad46e9c68fa0e7f15ba4bc898b59c31a17ea4611fab5095da","affectsGlobalScope":true,"impliedFormat":1},{"version":"d802f0e6b5188646d307f070d83512e8eb94651858de8a82d1e47f60fb6da4e2","affectsGlobalScope":true,"impliedFormat":1},{"version":"aa83e100f0c74a06c9d24f40a096c9e9cc3c02704250d01541e22c0ae9264eda","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"456fa0c0ab68731564917642b977c71c3b7682240685b118652fb9253c9a6429","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"487b694c3de27ddf4ad107d4007ad304d29effccf9800c8ae23c2093638d906a","impliedFormat":1},{"version":"e525f9e67f5ddba7b5548430211cae2479070b70ef1fd93550c96c10529457bd","impliedFormat":1},{"version":"ccf4552357ce3c159ef75f0f0114e80401702228f1898bdc9402214c9499e8c0","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"4bc0794175abedf989547e628949888c1085b1efcd93fc482bccd77ee27f8b7c","impliedFormat":1},{"version":"3c8e93af4d6ce21eb4c8d005ad6dc02e7b5e6781f429d52a35290210f495a674","impliedFormat":1},{"version":"2c9875466123715464539bfd69bcaccb8ff6f3e217809428e0d7bd6323416d01","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"33e981bf6376e939f99bd7f89abec757c64897d33c005036b9a10d9587d80187","impliedFormat":1},{"version":"6c8e442ba33b07892169a14f7757321e49ab0f1032d676d321a1fdab8a67d40c","impliedFormat":1},{"version":"b41767d372275c154c7ea6c9d5449d9a741b8ce080f640155cc88ba1763e35b3","impliedFormat":1},{"version":"1cd673d367293fc5cb31cd7bf03d598eb368e4f31f39cf2b908abbaf120ab85a","impliedFormat":1},{"version":"af13e99445f37022c730bfcafcdc1761e9382ce1ea02afb678e3130b01ce5676","impliedFormat":1},{"version":"3825bf209f1662dfd039010a27747b73d0ef379f79970b1d05601ec8e8a4249f","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"da52342062e70c77213e45107921100ba9f9b3a30dd019444cf349e5fb3470c4","impliedFormat":1},{"version":"e9ace91946385d29192766bf783b8460c7dbcbfc63284aa3c9cae6de5155c8bc","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"1e30c045732e7db8f7a82cf90b516ebe693d2f499ce2250a977ec0d12e44a529","impliedFormat":1},{"version":"84b736594d8760f43400202859cda55607663090a43445a078963031d47e25e7","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"54c3e2371e3d016469ad959697fd257e5621e16296fa67082c2575d0bf8eced0","impliedFormat":1},{"version":"beb8233b2c220cfa0feea31fbe9218d89fa02faa81ef744be8dce5acb89bb1fd","impliedFormat":1},{"version":"78b29846349d4dfdd88bd6650cc5d2baaa67f2e89dc8a80c8e26ef7995386583","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"e38d4fdf79e1eadd92ed7844c331dbaa40f29f21541cfee4e1acff4db09cda33","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"7c10a32ae6f3962672e6869ee2c794e8055d8225ef35c91c0228e354b4e5d2d3","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"99f569b42ea7e7c5fe404b2848c0893f3e1a56e0547c1cd0f74d5dbb9a9de27e","impliedFormat":1},{"version":"830171b27c5fdf9bcbe4cf7d428fcf3ae2c67780fb7fbdccdf70d1623d938bc4","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"bbcfd9cd76d92c3ee70475270156755346c9086391e1b9cb643d072e0cf576b8","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"72c1f5e0a28e473026074817561d1bc9647909cf253c8d56c41d1df8d95b85f7","impliedFormat":1},{"version":"003ec918ec442c3a4db2c36dc0c9c766977ea1c8bcc1ca7c2085868727c3d3f6","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6310806c6aa3154773976dd083a15659d294700d9ad8f6b8a2e10c3dc461ff1","impliedFormat":1},{"version":"c4e8e8031808b158cfb5ac5c4b38d4a26659aec4b57b6a7e2ba0a141439c208c","impliedFormat":1},{"version":"2c91d8366ff2506296191c26fd97cc1990bab3ee22576275d28b654a21261a44","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"db39d9a16e4ddcd8a8f2b7b3292b362cc5392f92ad7ccd76f00bccf6838ac7de","affectsGlobalScope":true,"impliedFormat":1},{"version":"289e9894a4668c61b5ffed09e196c1f0c2f87ca81efcaebdf6357cfb198dac14","impliedFormat":1},{"version":"25a1105595236f09f5bce42398be9f9ededc8d538c258579ab662d509aa3b98e","impliedFormat":1},{"version":"5078cd62dbdf91ae8b1dc90b1384dec71a9c0932d62bdafb1a811d2a8e26bef2","impliedFormat":1},{"version":"a2e2bbde231b65c53c764c12313897ffdfb6c49183dd31823ee2405f2f7b5378","impliedFormat":1},{"version":"ad1cc0ed328f3f708771272021be61ab146b32ecf2b78f3224959ff1e2cd2a5c","impliedFormat":1},{"version":"62f572306e0b173cc5dfc4c583471151f16ef3779cf27ab96922c92ec82a3bc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"622b67a408a881e15ab38043547563b9d29ca4b46f5b7a7e4a4fc3123d25d19f","impliedFormat":1},{"version":"2617f1d06b32c7b4dfd0a5c8bc7b5de69368ec56788c90f3d7f3e3d2f39f0253","impliedFormat":1},{"version":"bd8b644c5861b94926687618ec2c9e60ad054d334d6b7eb4517f23f53cb11f91","impliedFormat":1},{"version":"bcbabfaca3f6b8a76cb2739e57710daf70ab5c9479ab70f5351c9b4932abf6bd","impliedFormat":1},{"version":"77fced47f495f4ff29bb49c52c605c5e73cd9b47d50080133783032769a9d8a6","impliedFormat":1},{"version":"966dd0793b220e22344c944e0f15afafdc9b0c9201b6444ea0197cd176b96893","impliedFormat":1},{"version":"c54f0b30a787b3df16280f4675bd3d9d17bf983ae3cd40087409476bc50b922d","affectsGlobalScope":true,"impliedFormat":1},{"version":"0f5cda0282e1d18198e2887387eb2f026372ebc4e11c4e4516fef8a19ee4d514","impliedFormat":1},{"version":"e99b0e71f07128fc32583e88ccd509a1aaa9524c290efb2f48c22f9bf8ba83b1","impliedFormat":1},{"version":"76957a6d92b94b9e2852cf527fea32ad2dc0ef50f67fe2b14bd027c9ceef2d86","impliedFormat":1},{"version":"5e9f8c1e042b0f598a9be018fc8c3cb670fe579e9f2e18e3388b63327544fe16","affectsGlobalScope":true,"impliedFormat":1},{"version":"a8a99a5e6ed33c4a951b67cc1fd5b64fd6ad719f5747845c165ca12f6c21ba16","affectsGlobalScope":true,"impliedFormat":1},{"version":"a58a15da4c5ba3df60c910a043281256fa52d36a0fcdef9b9100c646282e88dd","impliedFormat":1},{"version":"b36beffbf8acdc3ebc58c8bb4b75574b31a2169869c70fc03f82895b93950a12","impliedFormat":1},{"version":"de263f0089aefbfd73c89562fb7254a7468b1f33b61839aafc3f035d60766cb4","impliedFormat":1},{"version":"70b57b5529051497e9f6482b76d91c0dcbb103d9ead8a0549f5bab8f65e5d031","impliedFormat":1},{"version":"8c81fd4a110490c43d7c578e8c6f69b3af01717189196899a6a44f93daa57a3a","impliedFormat":1},{"version":"1013eb2e2547ad8c100aca52ef9df8c3f209edee32bb387121bb3227f7c00088","impliedFormat":1},{"version":"e07c573ac1971ea89e2c56ff5fd096f6f7bba2e6dbcd5681d39257c8d954d4a8","impliedFormat":1},{"version":"363eedb495912790e867da6ff96e81bf792c8cfe386321e8163b71823a35719a","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093","impliedFormat":1},{"version":"dba28a419aec76ed864ef43e5f577a5c99a010c32e5949fe4e17a4d57c58dd11","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea713aa14a670b1ea0fbaaca4fd204e645f71ca7653a834a8ec07ee889c45de6","impliedFormat":1},{"version":"07199a85560f473f37363d8f1300fac361cda2e954caf8a40221f83a6bfa7ade","impliedFormat":1},{"version":"9705cd157ffbb91c5cab48bdd2de5a437a372e63f870f8a8472e72ff634d47c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ae86f30d5d10e4f75ce8dcb6e1bd3a12ecec3d071a21e8f462c5c85c678efb41","impliedFormat":1},{"version":"982efeb2573605d4e6d5df4dc7e40846bda8b9e678e058fc99522ab6165c479e","impliedFormat":1},{"version":"e03460fe72b259f6d25ad029f085e4bedc3f90477da4401d8fbc1efa9793230e","impliedFormat":1},{"version":"4286a3a6619514fca656089aee160bb6f2e77f4dd53dc5a96b26a0b4fc778055","impliedFormat":1},{"version":"c9231cf03fd7e8cfd78307eecbd24ff3f0fa55d0f6d1108c4003c124d168adc4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2d5d50cd0667d9710d4d2f6e077cc4e0f9dc75e106cccaea59999b36873c5a0d","affectsGlobalScope":true,"impliedFormat":1},{"version":"784490137935e1e38c49b9289110e74a1622baf8a8907888dcbe9e476d7c5e44","impliedFormat":1},{"version":"42180b657831d1b8fead051698618b31da623fb71ff37f002cb9d932cfa775f1","impliedFormat":1},{"version":"4f98d6fb4fe7cbeaa04635c6eaa119d966285d4d39f0eb55b2654187b0b27446","impliedFormat":1},{"version":"f8529fe0645fd9af7441191a4961497cc7638f75a777a56248eac6a079bb275d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4445f6ce6289c5b2220398138da23752fd84152c5c95bb8b58dedefc1758c036","impliedFormat":1},{"version":"c39866300d394f45f82d3352ecfc1649aa1d5a47decdc5c76708cde15251c43d","impliedFormat":1}],"root":[[71,73],75,[77,80],[100,105],[107,109]],"options":{"declaration":true,"esModuleInterop":true,"module":99,"noImplicitAny":true,"noImplicitReturns":true,"noImplicitThis":true,"outDir":"./","sourceMap":true,"strict":true,"target":6},"referencedMap":[[55,1],[66,2],[74,3],[81,4],[70,5],[67,2],[68,2],[106,6],[69,7],[65,1],[76,6],[160,8],[161,8],[162,9],[112,10],[163,11],[164,12],[165,13],[110,1],[166,14],[167,15],[168,16],[169,17],[170,18],[171,19],[172,19],[173,20],[174,21],[175,22],[176,23],[113,1],[111,1],[177,24],[178,25],[179,26],[212,27],[180,28],[181,29],[182,30],[183,31],[184,32],[185,33],[186,34],[187,35],[188,36],[189,37],[190,37],[191,38],[192,1],[193,1],[194,39],[196,40],[195,41],[197,42],[198,43],[199,44],[200,45],[201,46],[202,47],[203,48],[204,49],[205,50],[206,51],[207,52],[208,53],[209,54],[114,1],[115,1],[116,1],[157,55],[158,1],[159,1],[210,56],[211,57],[52,58],[53,58],[56,59],[57,60],[58,61],[59,59],[64,62],[63,63],[60,60],[54,64],[51,65],[61,66],[49,1],[50,65],[62,67],[97,68],[83,68],[91,68],[82,1],[99,69],[93,70],[95,1],[98,71],[86,72],[87,72],[89,72],[85,73],[92,74],[88,72],[84,72],[94,68],[96,75],[90,76],[47,1],[48,1],[8,1],[10,1],[9,1],[2,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[3,1],[19,1],[20,1],[4,1],[21,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[5,1],[29,1],[30,1],[31,1],[32,1],[6,1],[36,1],[33,1],[34,1],[35,1],[37,1],[7,1],[38,1],[43,1],[44,1],[39,1],[40,1],[41,1],[42,1],[1,1],[45,1],[46,1],[134,77],[145,78],[132,79],[146,80],[155,81],[123,82],[124,83],[122,84],[154,85],[149,86],[153,87],[126,88],[142,89],[125,90],[152,91],[120,92],[121,86],[127,93],[128,1],[133,94],[131,93],[118,95],[156,96],[147,97],[137,98],[136,93],[138,99],[140,100],[135,101],[139,102],[150,85],[129,103],[130,104],[141,105],[119,80],[144,106],[143,93],[148,1],[117,1],[151,107],[73,108],[80,109],[77,110],[72,111],[109,112],[71,108],[78,113],[79,114],[75,108],[107,115],[103,116],[100,117],[108,118],[102,119],[105,120],[104,121],[101,122]],"version":"5.9.2"}
1
+ {"fileNames":["../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es5.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.dom.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.float16.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/types.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/util.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/squareSet.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/attacks.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/board.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/setup.d.ts","../node_modules/.pnpm/@badrap+result@0.3.1/node_modules/@badrap/result/dist/mjs/index.d.mts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/chess.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/compat.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/debug.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/fen.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/san.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/transform.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/variant.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/pgn.d.ts","../node_modules/.pnpm/chessops@0.15.0/node_modules/chessops/dist/types/index.d.ts","../node_modules/.pnpm/@lichess-org+chessground@10.0.1/node_modules/@lichess-org/chessground/dist/types.d.ts","../node_modules/.pnpm/@lichess-org+chessground@10.0.1/node_modules/@lichess-org/chessground/dist/anim.d.ts","../node_modules/.pnpm/@lichess-org+chessground@10.0.1/node_modules/@lichess-org/chessground/dist/drag.d.ts","../node_modules/.pnpm/@lichess-org+chessground@10.0.1/node_modules/@lichess-org/chessground/dist/draw.d.ts","../node_modules/.pnpm/@lichess-org+chessground@10.0.1/node_modules/@lichess-org/chessground/dist/state.d.ts","../node_modules/.pnpm/@lichess-org+chessground@10.0.1/node_modules/@lichess-org/chessground/dist/config.d.ts","../src/path.ts","../src/interfaces.ts","../src/config.ts","../node_modules/.pnpm/@lichess-org+chessground@10.0.1/node_modules/@lichess-org/chessground/dist/api.d.ts","../src/translation.ts","../node_modules/.pnpm/@lichess-org+chessground@10.0.1/node_modules/@lichess-org/chessground/dist/util.d.ts","../src/game.ts","../src/pgn.ts","../src/pgnViewer.ts","../src/events.ts","../node_modules/.pnpm/@lichess-org+chessground@10.0.1/node_modules/@lichess-org/chessground/dist/chessground.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/htmldomapi.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/helpers/attachto.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/modules/style.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/modules/eventlisteners.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/modules/attributes.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/modules/class.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/modules/props.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/modules/dataset.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/vnode.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/hooks.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/modules/module.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/init.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/thunk.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/is.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/tovnode.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/h.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/jsx.d.ts","../node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/index.d.ts","../src/view/glyph.ts","../src/view/util.ts","../src/view/menu.ts","../src/view/aria.ts","../src/view/side.ts","../src/view/player.ts","../node_modules/.pnpm/@lichess-org+chessground@10.0.1/node_modules/@lichess-org/chessground/dist/fen.d.ts","../src/view/accessibleBoard.ts","../src/view/main.ts","../src/main.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/compatibility/iterators.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/globals.typedarray.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/buffer.buffer.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/globals.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/web-globals/abortcontroller.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/web-globals/domexception.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/web-globals/events.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/utility.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/header.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/readable.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/fetch.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/formdata.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/connector.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/client-stats.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/client.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/errors.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/dispatcher.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/global-dispatcher.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/global-origin.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/pool-stats.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/pool.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/handlers.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/balanced-pool.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/h2c-client.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/agent.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/mock-interceptor.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/mock-call-history.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/mock-agent.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/mock-client.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/mock-pool.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/mock-errors.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/proxy-agent.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/retry-handler.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/retry-agent.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/api.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/cache-interceptor.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/interceptors.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/util.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/cookies.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/patch.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/websocket.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/eventsource.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/content-type.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/cache.d.ts","../node_modules/.pnpm/undici-types@7.10.0/node_modules/undici-types/index.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/web-globals/fetch.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/web-globals/navigator.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/web-globals/storage.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/assert.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/assert/strict.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/async_hooks.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/buffer.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/child_process.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/cluster.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/console.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/constants.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/crypto.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/dgram.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/dns.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/dns/promises.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/domain.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/events.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/fs.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/fs/promises.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/http.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/http2.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/https.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/inspector.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/module.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/net.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/os.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/path.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/perf_hooks.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/process.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/punycode.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/querystring.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/readline.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/readline/promises.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/repl.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/sea.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/sqlite.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/stream.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/stream/promises.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/stream/consumers.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/stream/web.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/string_decoder.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/test.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/timers.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/timers/promises.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/tls.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/trace_events.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/tty.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/url.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/util.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/v8.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/vm.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/wasi.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/worker_threads.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/zlib.d.ts","../node_modules/.pnpm/@types+node@24.3.1/node_modules/@types/node/index.d.ts"],"fileIdsList":[[112,163],[65,69,112,163],[65,68,69,70,112,163],[70,74,112,163],[65,68,69,112,163],[65,112,163],[65,66,67,68,112,163],[112,160,163],[112,162,163],[163],[112,163,168,197],[112,163,164,169,174,182,194,205],[112,163,164,165,174,182],[112,163,166,206],[112,163,167,168,175,183],[112,163,168,194,202],[112,163,169,171,174,182],[112,162,163,170],[112,163,171,172],[112,163,173,174],[112,162,163,174],[112,163,174,175,176,194,205],[112,163,174,175,176,189,194,197],[112,156,163,171,174,177,182,194,205],[112,163,174,175,177,178,182,194,202,205],[112,163,177,179,194,202,205],[110,111,112,113,114,115,116,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211],[112,163,174,180],[112,163,181,205],[112,163,171,174,182,194],[112,163,183],[112,163,184],[112,162,163,185],[112,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211],[112,163,187],[112,163,188],[112,163,174,189,190],[112,163,189,191,206,208],[112,163,174,194,195,197],[112,163,196,197],[112,163,194,195],[112,163,197],[112,163,198],[112,160,163,194,199],[112,163,174,200,201],[112,163,200,201],[112,163,168,182,194,202],[112,163,203],[112,163,182,204],[112,163,177,188,205],[112,163,168,206],[112,163,194,207],[112,163,181,208],[112,163,209],[112,156,163],[112,163,174,176,185,194,197,205,207,208,210],[112,163,194,211],[49,51,112,163],[49,51,53,54,55,112,163],[49,56,112,163],[49,51,53,56,112,163],[49,50,51,52,53,54,56,57,58,59,60,61,62,63,112,163],[49,55,56,59,112,163],[49,51,53,112,163],[49,112,163],[51,53,54,112,163],[49,51,54,55,56,112,163],[90,112,163],[82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,112,163],[82,90,92,112,163],[90,97,112,163],[92,112,163],[90,92,112,163],[91,112,163],[82,90,112,163],[83,84,85,86,87,88,89,91,112,163],[112,123,126,129,130,163,205],[112,126,163,194,205],[112,126,130,163,205],[112,163,194],[112,120,163],[112,124,163],[112,122,123,126,163,205],[112,163,182,202],[112,163,212],[112,120,163,212],[112,122,126,163,182,205],[112,117,118,119,121,125,163,174,194,205],[112,126,134,163],[112,118,124,163],[112,126,150,151,163],[112,118,121,126,163,197,205,212],[112,126,163],[112,122,126,163,205],[112,117,163],[112,120,121,122,124,125,126,127,128,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,151,152,153,154,155,163],[112,126,143,146,163,171],[112,126,134,135,136,163],[112,124,126,135,137,163],[112,125,163],[112,118,120,126,163],[112,126,130,135,137,163],[112,130,163],[112,124,126,129,163,205],[112,118,122,126,134,163],[112,126,143,163],[112,120,126,150,163,197,210,212],[72,112,163],[79,112,163],[63,71,72,112,163],[63,64,65,70,71,112,163],[72,73,79,99,108,112,163],[57,59,60,63,64,71,72,77,112,163],[64,70,71,72,74,75,76,77,78,112,163],[65,72,76,79,99,101,106,112,163],[72,77,79,101,112,163],[99,112,163],[70,79,80,81,99,101,102,103,104,105,107,112,163],[72,79,80,99,101,112,163],[64,79,99,101,112,163],[71,72,77,79,99,100,101,103,112,163],[65,72,99,100,112,163]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"4245fee526a7d1754529d19227ecbf3be066ff79ebb6a380d78e41648f2f224d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"121ed5b84a4c25bf16bef637f62b92947e96e9a5f0fd3a584c3966ea8effd67d","impliedFormat":99},{"version":"f54493905a6b6664e86f1ee94a9b9292b91aa99d65fc4638fd1d20953394b066","impliedFormat":99},{"version":"9f1a606af4c42d72f626765f0cd71fe9b0aa0841ea3e837e7dc0f3248204b288","impliedFormat":99},{"version":"1ba6b78f7d38a841e0fdc106af31a144672583131b024e31378a27f881de9c34","impliedFormat":99},{"version":"115387be50fd2e5526c200361fc85aac5d140f5ae4735ba8040ff955a10274ad","impliedFormat":99},{"version":"83ef3841bae34e649fd7c1c6be499444d28eb962f57c50a55b8ada885f9ab089","impliedFormat":99},{"version":"d4feb92f592533eb93af021c53a852cdd74ea086f882361e7e2bb25d3715d733","impliedFormat":99},{"version":"4f480c4465d9977a759a8141deec88953d4a2d8aa3504edce7910b2db95a0d5d","impliedFormat":99},{"version":"8c323d171f1cd143cafdfceb8bef95f1f195211beac8e8e5f796a1b595e8d1cf","impliedFormat":99},{"version":"114aeac4618b952272947d290fc8aeba415d3ad560934df4c2809c58a02b55a3","impliedFormat":99},{"version":"1cde5056744518c5dfbdfc8d550330bbfe388fb3f105876bdca9676f7a237b29","impliedFormat":99},{"version":"4adc1c36904421747e3c6d5b70dbe9e1ed06c49f6ea2868b2ec6a334f85c35e5","impliedFormat":99},{"version":"53dc5dcff95f7a72e08124e57fe5c8e72e64f51e25eb77b3b375db24a7b9c86f","impliedFormat":99},{"version":"eec39d6c3bead7fa60bad28f01334484ee4587f371cf9e67ebb3d4c258a65ea4","impliedFormat":99},{"version":"9e3a64c568d637dfd6a99dc8f9921e2db8b65f4b730acb3fa80a8799164675c8","impliedFormat":99},{"version":"200ca2f2f64d5fdb78bceb9c0ca93571e83b1a3b168116da7b6644a4e2fcfe2f","impliedFormat":99},{"version":"9e32c1b3643bc2f022d8bce6477d08bb141f2e871199ef6a06a8217a4d1549d0","impliedFormat":99},{"version":"4d2a9be5f03a0b85adff5cfa50a46e6bdc84cfb5186966ee83b5c4aa2d843bce","impliedFormat":99},{"version":"14fbc0091eb1d2d336d59a3c0771a9591e997fad2a1e2ad544ab53722249447e","impliedFormat":99},{"version":"435ca0e383467cd9b5f69e517ad4a7b03a38765d0e4d4af0fe423265abdd8128","impliedFormat":99},{"version":"a01bb052b9e36c1d252549a02ef87d12f551114a5be199e1f72d33c5c33a50dc","impliedFormat":99},{"version":"f2fb80af2436eb682e632760fec2786562ffa6701ac354076455204939f6cd32","impliedFormat":99},{"version":"b2eb3e2e585446d4a521f21b20904581654925c3826bec560ad457fc39512a16","signature":"ab8d2ec9b55e4404c0214a28fb884c1490af913964b22c23d6a224d5ebda139a"},{"version":"344e0349d38e7405006f74415cf39e17be74c5f8cf9579b27039b178050d0bbd","signature":"dc84cd877c94d0c5444dbbf7b6d6c069581795dced29e25efa588cf4cfbf46c7"},{"version":"baae1124e718c52a55a37cae7c86dcca7919951644a73a2817a1cbda83741290","signature":"3f2c6120d760a419c5b4f6154085a1f1d3c4416a87d0b5471dc2fe3a2016838e"},{"version":"bac3a4cd114dfcb542cc56834ed4813744daf1289d519afa90740f5b5746c750","impliedFormat":99},{"version":"0617186337fbff780c18f86e68e517af0b85fd654b6287f4268823fccdfc985d","signature":"9c45488c512752b3c2287d5cf808c5b339011261255d7e6724187ba94e0246e0"},{"version":"e9527fb8c2b1e61e800b393e99aca8afe970c3d0571c01a8951f9c9af2ec3219","impliedFormat":99},{"version":"12b12dc3ee9d168cece989eee68e903071c69db808914cf2bb05b65ba9d5c76a","signature":"3aa388df5a873d69898c90fcc0f26d3d520dee117c17c4ce49cc132ed68db198"},{"version":"bc50e721604d26e21eb219ef26ffdd3a303bc4d51188cf95227510387169ac23","signature":"536d062cb2ebdec1d307aecdb77c2d6f89b4fce481f8f66d181886b2b5bf8fef"},{"version":"d21d5bacfd2fe1dd3aee1c039abd30a44b87ba5165825912b42a415b60fc29f8","signature":"4ed9783a99092395f3c2c03b5c2c69c794208f60e253dbb0784e58c79f30095b"},{"version":"be076041c123ed99f70f62fc8b4a9238ba31216b5bc7ab990669443eb8c2806f","signature":"4a0559a3703462a9186acc1cb843281d733bccca72f0e76888c1a113c59b2e5e"},{"version":"42de8107b60eedc59972b085a42b80a115e15a3427de7019881c336c80a08a97","impliedFormat":99},{"version":"095a402135de9fbfda29ba7c984bf54b9e65757396b4165706d898e9baa83ed5","impliedFormat":1},{"version":"dbd5601bf95b6cda2d3ce749f1618d3a26249adfa59d6a38776d9b41688d066b","impliedFormat":1},{"version":"86461653a4843ef47052082a3a5fbf7c013dfef98b394497fdaf7d3e3f50acfb","impliedFormat":1},{"version":"13a50fee16e28ffe07be8cdc77850944850f733364c687268ed1c15fab2fc934","impliedFormat":1},{"version":"7cf2ff1f0bb971089219c17c6b70ae76fd55af04ed5c71939bdea4e79c87b770","impliedFormat":1},{"version":"d631456e653d62a7041e73ce75377903d7397d05a9e2bc33ce2d5d71be427916","impliedFormat":1},{"version":"50761b8a64afb4c8b727cc47b42ec88ad0a552bf9f9ff991d1a69decdb864ba6","impliedFormat":1},{"version":"4c48b6c8d023119098489c41d73930ae130a77b562856e716ad2b4dbd6e28f87","impliedFormat":1},{"version":"67ca5abe08a5f7b50db326c7653b15887e5e9ed2fc56ac4845019de6b58f7ba8","impliedFormat":1},{"version":"b09163da65a31726be29812f27a10f141ddae782bfbf9358611a78966aeb2968","impliedFormat":1},{"version":"84e5250e7b199be001fac9ca57836f9053d5bcc1f360b8b38717e8b4d0771da0","impliedFormat":1},{"version":"ab1c05d701b3357b48b42d66d991d7fb4474529d1804090bf26c4c2bb9e18558","impliedFormat":1},{"version":"2957b0f8e46e3ca5f394af395db80b702d1ae862795c27f6bc4637509383a356","impliedFormat":1},{"version":"e50f096cb424b63343ad5814622623f15cf3830f41710376bebb3c7f71554713","impliedFormat":1},{"version":"7c3511a2098fd92e99e9b37b85a431527c4cb86c29814545afcaf80fe550f6ac","impliedFormat":1},{"version":"e6a92923694f59fe3aba1ae103e89869d3c41e0d837998395e9fc5b888751363","impliedFormat":1},{"version":"5dafb1427f8a44f47c33cd20b5bc5944ba194049782de9f9bd023cea4b8b8c44","impliedFormat":1},{"version":"e19228db0a5451f604f6702359a93919a1735809cbc0cd8a0744f29777c438c2","impliedFormat":1},{"version":"34cfb8ebe9b2e2af7e6db11ad574b135e37842f9a326c2256236b4d7410a86ed","signature":"e8221a9018aed8482d20e4ffd502bf1806a250fa0bfaa24ae0af76020f9e63d2"},{"version":"faf0031ded8e17ce59640557d10637551e24b72ef1b0c05f3e4a3d348ddcae5b","signature":"4713301e1df79d62c341dc97a950476d91ded8af11c87728f0e7da61b3efe88a"},{"version":"dc8cedcf950d1ddc040d9e3927d0b2dd93b25b29480392ce7e68def14f7d4601","signature":"eeb0edc394398fdf0cd19a30baec23a027a528b48388fd7fec540b3092a985f4"},{"version":"ddaaf5b62b0272b3ba32c0296d6ebc0d87503772da1c305baa24e7c5952f87c4","signature":"5f5bf705c57c7ceb51986f972ed177939e53075bc7a55cd2b7c9eb76573e9cc5"},{"version":"de5f61da92a271dd4ca3726f3260951fb50d00d0cda069b43ea0bae50b4e7958","signature":"5ca7728f8bd9bced5829f9886e7f6601f1e4e66f7c3c84c20c6709f828c06e38"},{"version":"6aefe1e869ecc43fef7e9f5ce8a89ae1365ea87c0926c6a8f834fd10b991480b","signature":"6889eba0ca8fa41d1579787805dbb88d492650acda574a483df86744967cf4c8"},{"version":"56c5474bd53a07f71bab22964b738b7e21568a5a3382ce69080ecf920542b844","impliedFormat":99},{"version":"0e2b67aee3f5e944f4e0482d7109e583be03c5437a0ac7f33f4d9a1f150faba3","signature":"beccd63b477d439034cc1e9bbb2d2ce0baf3a73ffcbef37390c866480ea96e0b"},{"version":"6c44feff6c25825a40fe20404d6b7acfd3c382e9395fd39f4907be6a3db0619d","signature":"7a764bb43eb6bb3ddd2cd686902d9210a5ae8db3e2961ea0127e4e889d1aa180"},{"version":"760c57c05b5bba917a8290605e2aa8c67435015bd67590b97670eeadd9c16b00","signature":"81e7079e2896d84161cf5a16480bc746e9c513a8e21214348df92a0a946b6a5c"},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0671b50bb99cc7ad46e9c68fa0e7f15ba4bc898b59c31a17ea4611fab5095da","affectsGlobalScope":true,"impliedFormat":1},{"version":"d802f0e6b5188646d307f070d83512e8eb94651858de8a82d1e47f60fb6da4e2","affectsGlobalScope":true,"impliedFormat":1},{"version":"aa83e100f0c74a06c9d24f40a096c9e9cc3c02704250d01541e22c0ae9264eda","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"456fa0c0ab68731564917642b977c71c3b7682240685b118652fb9253c9a6429","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"487b694c3de27ddf4ad107d4007ad304d29effccf9800c8ae23c2093638d906a","impliedFormat":1},{"version":"e525f9e67f5ddba7b5548430211cae2479070b70ef1fd93550c96c10529457bd","impliedFormat":1},{"version":"ccf4552357ce3c159ef75f0f0114e80401702228f1898bdc9402214c9499e8c0","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"4bc0794175abedf989547e628949888c1085b1efcd93fc482bccd77ee27f8b7c","impliedFormat":1},{"version":"3c8e93af4d6ce21eb4c8d005ad6dc02e7b5e6781f429d52a35290210f495a674","impliedFormat":1},{"version":"2c9875466123715464539bfd69bcaccb8ff6f3e217809428e0d7bd6323416d01","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"33e981bf6376e939f99bd7f89abec757c64897d33c005036b9a10d9587d80187","impliedFormat":1},{"version":"6c8e442ba33b07892169a14f7757321e49ab0f1032d676d321a1fdab8a67d40c","impliedFormat":1},{"version":"b41767d372275c154c7ea6c9d5449d9a741b8ce080f640155cc88ba1763e35b3","impliedFormat":1},{"version":"1cd673d367293fc5cb31cd7bf03d598eb368e4f31f39cf2b908abbaf120ab85a","impliedFormat":1},{"version":"af13e99445f37022c730bfcafcdc1761e9382ce1ea02afb678e3130b01ce5676","impliedFormat":1},{"version":"3825bf209f1662dfd039010a27747b73d0ef379f79970b1d05601ec8e8a4249f","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"da52342062e70c77213e45107921100ba9f9b3a30dd019444cf349e5fb3470c4","impliedFormat":1},{"version":"e9ace91946385d29192766bf783b8460c7dbcbfc63284aa3c9cae6de5155c8bc","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"1e30c045732e7db8f7a82cf90b516ebe693d2f499ce2250a977ec0d12e44a529","impliedFormat":1},{"version":"84b736594d8760f43400202859cda55607663090a43445a078963031d47e25e7","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"54c3e2371e3d016469ad959697fd257e5621e16296fa67082c2575d0bf8eced0","impliedFormat":1},{"version":"beb8233b2c220cfa0feea31fbe9218d89fa02faa81ef744be8dce5acb89bb1fd","impliedFormat":1},{"version":"78b29846349d4dfdd88bd6650cc5d2baaa67f2e89dc8a80c8e26ef7995386583","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"e38d4fdf79e1eadd92ed7844c331dbaa40f29f21541cfee4e1acff4db09cda33","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"7c10a32ae6f3962672e6869ee2c794e8055d8225ef35c91c0228e354b4e5d2d3","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"99f569b42ea7e7c5fe404b2848c0893f3e1a56e0547c1cd0f74d5dbb9a9de27e","impliedFormat":1},{"version":"830171b27c5fdf9bcbe4cf7d428fcf3ae2c67780fb7fbdccdf70d1623d938bc4","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"bbcfd9cd76d92c3ee70475270156755346c9086391e1b9cb643d072e0cf576b8","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"72c1f5e0a28e473026074817561d1bc9647909cf253c8d56c41d1df8d95b85f7","impliedFormat":1},{"version":"003ec918ec442c3a4db2c36dc0c9c766977ea1c8bcc1ca7c2085868727c3d3f6","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6310806c6aa3154773976dd083a15659d294700d9ad8f6b8a2e10c3dc461ff1","impliedFormat":1},{"version":"c4e8e8031808b158cfb5ac5c4b38d4a26659aec4b57b6a7e2ba0a141439c208c","impliedFormat":1},{"version":"2c91d8366ff2506296191c26fd97cc1990bab3ee22576275d28b654a21261a44","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"db39d9a16e4ddcd8a8f2b7b3292b362cc5392f92ad7ccd76f00bccf6838ac7de","affectsGlobalScope":true,"impliedFormat":1},{"version":"289e9894a4668c61b5ffed09e196c1f0c2f87ca81efcaebdf6357cfb198dac14","impliedFormat":1},{"version":"25a1105595236f09f5bce42398be9f9ededc8d538c258579ab662d509aa3b98e","impliedFormat":1},{"version":"5078cd62dbdf91ae8b1dc90b1384dec71a9c0932d62bdafb1a811d2a8e26bef2","impliedFormat":1},{"version":"a2e2bbde231b65c53c764c12313897ffdfb6c49183dd31823ee2405f2f7b5378","impliedFormat":1},{"version":"ad1cc0ed328f3f708771272021be61ab146b32ecf2b78f3224959ff1e2cd2a5c","impliedFormat":1},{"version":"62f572306e0b173cc5dfc4c583471151f16ef3779cf27ab96922c92ec82a3bc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"622b67a408a881e15ab38043547563b9d29ca4b46f5b7a7e4a4fc3123d25d19f","impliedFormat":1},{"version":"2617f1d06b32c7b4dfd0a5c8bc7b5de69368ec56788c90f3d7f3e3d2f39f0253","impliedFormat":1},{"version":"bd8b644c5861b94926687618ec2c9e60ad054d334d6b7eb4517f23f53cb11f91","impliedFormat":1},{"version":"bcbabfaca3f6b8a76cb2739e57710daf70ab5c9479ab70f5351c9b4932abf6bd","impliedFormat":1},{"version":"77fced47f495f4ff29bb49c52c605c5e73cd9b47d50080133783032769a9d8a6","impliedFormat":1},{"version":"966dd0793b220e22344c944e0f15afafdc9b0c9201b6444ea0197cd176b96893","impliedFormat":1},{"version":"c54f0b30a787b3df16280f4675bd3d9d17bf983ae3cd40087409476bc50b922d","affectsGlobalScope":true,"impliedFormat":1},{"version":"0f5cda0282e1d18198e2887387eb2f026372ebc4e11c4e4516fef8a19ee4d514","impliedFormat":1},{"version":"e99b0e71f07128fc32583e88ccd509a1aaa9524c290efb2f48c22f9bf8ba83b1","impliedFormat":1},{"version":"76957a6d92b94b9e2852cf527fea32ad2dc0ef50f67fe2b14bd027c9ceef2d86","impliedFormat":1},{"version":"5e9f8c1e042b0f598a9be018fc8c3cb670fe579e9f2e18e3388b63327544fe16","affectsGlobalScope":true,"impliedFormat":1},{"version":"a8a99a5e6ed33c4a951b67cc1fd5b64fd6ad719f5747845c165ca12f6c21ba16","affectsGlobalScope":true,"impliedFormat":1},{"version":"a58a15da4c5ba3df60c910a043281256fa52d36a0fcdef9b9100c646282e88dd","impliedFormat":1},{"version":"b36beffbf8acdc3ebc58c8bb4b75574b31a2169869c70fc03f82895b93950a12","impliedFormat":1},{"version":"de263f0089aefbfd73c89562fb7254a7468b1f33b61839aafc3f035d60766cb4","impliedFormat":1},{"version":"70b57b5529051497e9f6482b76d91c0dcbb103d9ead8a0549f5bab8f65e5d031","impliedFormat":1},{"version":"8c81fd4a110490c43d7c578e8c6f69b3af01717189196899a6a44f93daa57a3a","impliedFormat":1},{"version":"1013eb2e2547ad8c100aca52ef9df8c3f209edee32bb387121bb3227f7c00088","impliedFormat":1},{"version":"e07c573ac1971ea89e2c56ff5fd096f6f7bba2e6dbcd5681d39257c8d954d4a8","impliedFormat":1},{"version":"363eedb495912790e867da6ff96e81bf792c8cfe386321e8163b71823a35719a","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093","impliedFormat":1},{"version":"dba28a419aec76ed864ef43e5f577a5c99a010c32e5949fe4e17a4d57c58dd11","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea713aa14a670b1ea0fbaaca4fd204e645f71ca7653a834a8ec07ee889c45de6","impliedFormat":1},{"version":"07199a85560f473f37363d8f1300fac361cda2e954caf8a40221f83a6bfa7ade","impliedFormat":1},{"version":"9705cd157ffbb91c5cab48bdd2de5a437a372e63f870f8a8472e72ff634d47c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ae86f30d5d10e4f75ce8dcb6e1bd3a12ecec3d071a21e8f462c5c85c678efb41","impliedFormat":1},{"version":"982efeb2573605d4e6d5df4dc7e40846bda8b9e678e058fc99522ab6165c479e","impliedFormat":1},{"version":"e03460fe72b259f6d25ad029f085e4bedc3f90477da4401d8fbc1efa9793230e","impliedFormat":1},{"version":"4286a3a6619514fca656089aee160bb6f2e77f4dd53dc5a96b26a0b4fc778055","impliedFormat":1},{"version":"c9231cf03fd7e8cfd78307eecbd24ff3f0fa55d0f6d1108c4003c124d168adc4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2d5d50cd0667d9710d4d2f6e077cc4e0f9dc75e106cccaea59999b36873c5a0d","affectsGlobalScope":true,"impliedFormat":1},{"version":"784490137935e1e38c49b9289110e74a1622baf8a8907888dcbe9e476d7c5e44","impliedFormat":1},{"version":"42180b657831d1b8fead051698618b31da623fb71ff37f002cb9d932cfa775f1","impliedFormat":1},{"version":"4f98d6fb4fe7cbeaa04635c6eaa119d966285d4d39f0eb55b2654187b0b27446","impliedFormat":1},{"version":"f8529fe0645fd9af7441191a4961497cc7638f75a777a56248eac6a079bb275d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4445f6ce6289c5b2220398138da23752fd84152c5c95bb8b58dedefc1758c036","impliedFormat":1},{"version":"c39866300d394f45f82d3352ecfc1649aa1d5a47decdc5c76708cde15251c43d","impliedFormat":1}],"root":[[71,73],75,[77,80],[100,105],[107,109]],"options":{"declaration":true,"esModuleInterop":true,"module":99,"noImplicitAny":true,"noImplicitReturns":true,"noImplicitThis":true,"outDir":"./","sourceMap":true,"strict":true,"target":6},"referencedMap":[[55,1],[66,2],[74,3],[81,4],[70,5],[67,2],[68,2],[106,6],[69,7],[65,1],[76,6],[160,8],[161,8],[162,9],[112,10],[163,11],[164,12],[165,13],[110,1],[166,14],[167,15],[168,16],[169,17],[170,18],[171,19],[172,19],[173,20],[174,21],[175,22],[176,23],[113,1],[111,1],[177,24],[178,25],[179,26],[212,27],[180,28],[181,29],[182,30],[183,31],[184,32],[185,33],[186,34],[187,35],[188,36],[189,37],[190,37],[191,38],[192,1],[193,1],[194,39],[196,40],[195,41],[197,42],[198,43],[199,44],[200,45],[201,46],[202,47],[203,48],[204,49],[205,50],[206,51],[207,52],[208,53],[209,54],[114,1],[115,1],[116,1],[157,55],[158,1],[159,1],[210,56],[211,57],[52,58],[53,58],[56,59],[57,60],[58,61],[59,59],[64,62],[63,63],[60,60],[54,64],[51,65],[61,66],[49,1],[50,65],[62,67],[97,68],[83,68],[91,68],[82,1],[99,69],[93,70],[95,1],[98,71],[86,72],[87,72],[89,72],[85,73],[92,74],[88,72],[84,72],[94,68],[96,75],[90,76],[47,1],[48,1],[8,1],[10,1],[9,1],[2,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[3,1],[19,1],[20,1],[4,1],[21,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[5,1],[29,1],[30,1],[31,1],[32,1],[6,1],[36,1],[33,1],[34,1],[35,1],[37,1],[7,1],[38,1],[43,1],[44,1],[39,1],[40,1],[41,1],[42,1],[1,1],[45,1],[46,1],[134,77],[145,78],[132,79],[146,80],[155,81],[123,82],[124,83],[122,84],[154,85],[149,86],[153,87],[126,88],[142,89],[125,90],[152,91],[120,92],[121,86],[127,93],[128,1],[133,94],[131,93],[118,95],[156,96],[147,97],[137,98],[136,93],[138,99],[140,100],[135,101],[139,102],[150,85],[129,103],[130,104],[141,105],[119,80],[144,106],[143,93],[148,1],[117,1],[151,107],[73,108],[80,109],[77,110],[72,111],[109,112],[71,108],[78,113],[79,114],[75,108],[107,115],[103,116],[100,117],[108,118],[102,119],[105,120],[104,121],[101,122]],"version":"5.9.2"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lichess-org/pgn-viewer",
3
3
  "license": "GPL-3.0-or-later",
4
- "version": "2.5.6",
4
+ "version": "2.5.7",
5
5
  "// version is managed by the build system": "",
6
6
  "repository": "github:lichess-org/pgn-viewer",
7
7
  "author": "Lichess Team <contact@lichess.org>",
@@ -85,7 +85,9 @@ piece.fading {
85
85
 
86
86
  .cg-wrap cg-auto-pieces,
87
87
  .cg-wrap .cg-shapes,
88
- .cg-wrap .cg-custom-svgs {
88
+ .cg-wrap .cg-custom-svgs,
89
+ .cg-wrap .cg-shapes-below,
90
+ .cg-wrap .cg-custom-below {
89
91
  overflow: visible;
90
92
  position: absolute;
91
93
  top: 0px;
package/scss/_fbt.scss CHANGED
@@ -25,6 +25,7 @@
25
25
 
26
26
  &.disabled,
27
27
  &[disabled] {
28
+ pointer-events: none; // disabled elements don't fire mouse events, this will make any mouse events on a disabled element fall through to the parent element
28
29
  opacity: 0.4;
29
30
  cursor: default;
30
31
  }
package/src/pgnViewer.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Api as CgApi } from '@lichess-org/chessground/api';
2
2
  import { makeSquare, opposite } from 'chessops';
3
3
  import translator from './translation';
4
- import { GoTo, InitialOrMove, Opts, Translate } from './interfaces';
4
+ import { GoTo, InitialOrMove, Opts, Pane, Translate } from './interfaces';
5
5
  import { Config as CgConfig } from '@lichess-org/chessground/config';
6
6
  import { uciToMove } from '@lichess-org/chessground/util';
7
7
  import { Path } from './path';
@@ -16,7 +16,7 @@ export default class PgnViewer {
16
16
  div?: HTMLElement;
17
17
  menuButton?: HTMLElement;
18
18
  flipped = false;
19
- pane = 'board';
19
+ pane: Pane = 'board';
20
20
  autoScrollRequested = false;
21
21
 
22
22
  constructor(