@lichess-org/pgn-viewer 2.5.3 → 2.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/demo/lichess-pgn-viewer.js +5 -5
- package/dist/lichess-pgn-viewer.min.js +1 -1
- package/dist/translation.js +3 -3
- package/dist/translation.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/view/aria.js +2 -2
- package/package.json +1 -1
- package/src/translation.ts +3 -3
- package/src/view/aria.ts +2 -2
|
@@ -2669,10 +2669,10 @@ var defaultTranslations = {
|
|
|
2669
2669
|
"aria.variation": "Variation",
|
|
2670
2670
|
"aria.navigationControls": "Game navigation controls",
|
|
2671
2671
|
"aria.viewProfileOnLichess": "View %s's profile on Lichess",
|
|
2672
|
-
"aria.chessGameBetween": "Chess game between %1$s
|
|
2672
|
+
"aria.chessGameBetween": "Chess game between %1$s as white and %2$s as black. %3$s",
|
|
2673
2673
|
"aria.gameInProgress": "Game in progress",
|
|
2674
|
-
"aria.
|
|
2675
|
-
"aria.
|
|
2674
|
+
"aria.whiteWins": "White wins",
|
|
2675
|
+
"aria.blackWins": "Black wins",
|
|
2676
2676
|
"aria.draw": "Draw",
|
|
2677
2677
|
"aria.unknownPlayer": "Unknown player",
|
|
2678
2678
|
"aria.rated": "rated %s",
|
|
@@ -5942,8 +5942,8 @@ var renderRootAriaLabel = (ctrl) => {
|
|
|
5942
5942
|
};
|
|
5943
5943
|
const formatResult = (result2) => {
|
|
5944
5944
|
if (!result2 || result2 === "*") return ctrl.translate("aria.gameInProgress");
|
|
5945
|
-
if (result2 === "1-0") return ctrl.translate("aria.
|
|
5946
|
-
if (result2 === "0-1") return ctrl.translate("aria.
|
|
5945
|
+
if (result2 === "1-0") return ctrl.translate("aria.whiteWins");
|
|
5946
|
+
if (result2 === "0-1") return ctrl.translate("aria.blackWins");
|
|
5947
5947
|
if (result2 === "1/2-1/2") return ctrl.translate("aria.draw");
|
|
5948
5948
|
return result2;
|
|
5949
5949
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
var _e=["a","b","c","d","e","f","g","h"],lt=["1","2","3","4","5","6","7","8"];var V=["white","black"],W=["pawn","knight","bishop","rook","queen","king"],tn=["a","h"],se=e=>"role"in e;var b=e=>e!==void 0,M=e=>e==="white"?"black":"white",J=e=>e>>3,B=e=>e&7,ut=(e,t)=>0<=e&&e<8&&0<=t&&t<8?e+8*t:void 0,ae=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 qe(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 de(e){if(e.length===2)return ut(e.charCodeAt(0)-97,e.charCodeAt(1)-49)}var U=e=>_e[B(e)]+lt[J(e)];var Zt=e=>se(e)?`${ae(e.role).toUpperCase()}@${U(e.to)}`:U(e.from)+U(e.to)+(e.promotion?ae(e.promotion):""),Ve=(e,t)=>e==="white"?t==="a"?2:6:t==="a"?58:62,ht=(e,t)=>e==="white"?t==="a"?3:5:t==="a"?59:61;var rn=e=>(e=e-(e>>>1&1431655765),e=(e&858993459)+(e>>>2&858993459),Math.imul(e+(e>>>4)&252645135,16843009)>>24),Qt=e=>(e=e>>>8&16711935|(e&16711935)<<8,e>>>16&65535|(e&65535)<<16),nn=e=>(e=e>>>1&1431655765|(e&1431655765)<<1,e=e>>>2&858993459|(e&858993459)<<2,e=e>>>4&252645135|(e&252645135)<<4,Qt(e)),u=class e{constructor(t,r){this.lo=t|0,this.hi=r|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(Qt(this.hi),Qt(this.lo))}rbit64(){return new e(nn(this.hi),nn(this.lo))}minus64(t){let r=this.lo-t.lo,n=(r&t.lo&1)+(t.lo>>>1)+(r>>>1)>>>31;return new e(r,this.hi-(t.hi+n))}equals(t){return this.lo===t.lo&&this.hi===t.hi}size(){return rn(this.lo)+rn(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,r){return r?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,r=this.hi;for(;t!==0;){let n=31-Math.clz32(t&-t);t^=1<<n,yield n}for(;r!==0;){let n=31-Math.clz32(r&-r);r^=1<<n,yield 32+n}}*reversed(){let t=this.lo,r=this.hi;for(;r!==0;){let n=31-Math.clz32(r);r^=1<<n,yield 32+n}for(;t!==0;){let n=31-Math.clz32(t);t^=1<<n,yield n}}};var dt=(e,t)=>{let r=u.empty();for(let n of t){let i=e+n;0<=i&&i<64&&Math.abs(B(e)-B(i))<=2&&(r=r.with(i))}return r},we=e=>{let t=[];for(let r=0;r<64;r++)t[r]=e(r);return t},eo=we(e=>dt(e,[-9,-8,-7,-1,1,7,8,9])),to=we(e=>dt(e,[-17,-15,-10,-6,6,10,15,17])),ro={white:we(e=>dt(e,[7,9])),black:we(e=>dt(e,[-7,-9]))},ce=e=>eo[e],Be=e=>to[e],ve=(e,t)=>ro[e][t],Xt=we(e=>u.fromFile(B(e)).without(e)),Jt=we(e=>u.fromRank(J(e)).without(e)),er=we(e=>{let t=new u(134480385,2151686160),r=8*(J(e)-B(e));return(r>=0?t.shl64(r):t.shr64(-r)).without(e)}),tr=we(e=>{let t=new u(270549120,16909320),r=8*(J(e)+B(e)-7);return(r>=0?t.shl64(r):t.shr64(-r)).without(e)}),rr=(e,t,r)=>{let n=r.intersect(t),i=n.bswap64();return n=n.minus64(e),i=i.minus64(e.bswap64()),n.xor(i.bswap64()).intersect(t)},no=(e,t)=>rr(u.fromSquare(e),Xt[e],t),io=(e,t)=>{let r=Jt[e],n=t.intersect(r),i=n.rbit64();return n=n.minus64(u.fromSquare(e)),i=i.minus64(u.fromSquare(63-e)),n.xor(i.rbit64()).intersect(r)},ye=(e,t)=>{let r=u.fromSquare(e);return rr(r,er[e],t).xor(rr(r,tr[e],t))},xe=(e,t)=>no(e,t).xor(io(e,t)),He=(e,t)=>ye(e,t).xor(xe(e,t)),pt=(e,t,r)=>{switch(e.role){case"pawn":return ve(e.color,t);case"knight":return Be(t);case"bishop":return ye(t,r);case"rook":return xe(t,r);case"queen":return He(t,r);case"king":return ce(t)}},nr=(e,t)=>{let r=u.fromSquare(t);return Jt[e].intersects(r)?Jt[e].with(e):tr[e].intersects(r)?tr[e].with(e):er[e].intersects(r)?er[e].with(e):Xt[e].intersects(r)?Xt[e].with(e):u.empty()},Ce=(e,t)=>nr(e,t).intersect(u.full().shl64(e).xor(u.full().shl64(t))).withoutFirst();var pe=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 V)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 r of V)t[r]=this[r];for(let r of W)t[r]=this[r];return t}getColor(t){if(this.white.has(t))return"white";if(this.black.has(t))return"black"}getRole(t){for(let r of W)if(this[r].has(t))return r}get(t){let r=this.getColor(t);if(!r)return;let n=this.getRole(t),i=this.promoted.has(t);return{color:r,role:n,promoted:i}}take(t){let r=this.get(t);return r&&(this.occupied=this.occupied.without(t),this[r.color]=this[r.color].without(t),this[r.role]=this[r.role].without(t),r.promoted&&(this.promoted=this.promoted.without(t))),r}set(t,r){let n=this.take(t);return this.occupied=this.occupied.with(t),this[r.color]=this[r.color].with(t),this[r.role]=this[r.role].with(t),r.promoted&&(this.promoted=this.promoted.with(t)),n}has(t){return this.occupied.has(t)}*[Symbol.iterator](){for(let t of this.occupied)yield[t,this.get(t)]}pieces(t,r){return this[t].intersect(this[r])}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 fe=class e{constructor(){}static empty(){let t=new e;for(let r of W)t[r]=0;return t}static fromBoard(t,r){let n=new e;for(let i of W)n[i]=t.pieces(r,i).size();return n}clone(){let t=new e;for(let r of W)t[r]=this[r];return t}equals(t){return W.every(r=>this[r]===t[r])}add(t){let r=new e;for(let n of W)r[n]=this[n]+t[n];return r}subtract(t){let r=new e;for(let n of W)r[n]=this[n]-t[n];return r}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}},Ne=class e{constructor(t,r){this.white=t,this.black=r}static empty(){return new e(fe.empty(),fe.empty())}static fromBoard(t){return new e(fe.fromBoard(t,"white"),fe.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,r){this.white=t,this.black=r}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 ft=class{unwrap(t,r){let n=this._chain(i=>k.ok(t?t(i):i),i=>r?k.ok(r(i)):k.err(i));if(n.isErr)throw n.error;return n.value}map(t,r){return this._chain(n=>k.ok(t(n)),n=>k.err(r?r(n):n))}chain(t,r){return this._chain(t,r??(n=>k.err(n)))}},ir=class extends ft{constructor(t){super(),this.value=t,this.isOk=!0,this.isErr=!1}_chain(t,r){return t(this.value)}},or=class extends ft{constructor(t){super(),this.error=t,this.isOk=!1,this.isErr=!0}_chain(t,r){return r(this.error)}},k;(function(e){function t(i){return new ir(i)}e.ok=t;function r(i){return new or(i||new Error)}e.err=r;function n(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=n})(k||(k={}));var O;(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"})(O||(O={}));var D=class extends Error{},oo=(e,t,r,n)=>r[t].intersect(xe(e,n).intersect(r.rooksAndQueens()).union(ye(e,n).intersect(r.bishopsAndQueens())).union(Be(e).intersect(r.knight)).union(ce(e).intersect(r.king)).union(ve(M(t),e).intersect(r.pawn))),le=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,r,n,i){let o=Ve(t,r),s=ht(t,r);this.castlingRights=this.castlingRights.with(i),this.rook[t][r]=i,this.path[t][r]=Ce(i,s).with(s).union(Ce(n,o).with(o)).without(n).without(i)}static fromSetup(t){let r=e.empty(),n=t.castlingRights.intersect(t.board.rook);for(let i of V){let o=u.backrank(i),s=t.board.kingOf(i);if(!b(s)||!o.has(s))continue;let a=n.intersect(t.board[i]).intersect(o),l=a.first();b(l)&&l<s&&r.add(i,"a",s,l);let c=a.last();b(c)&&s<c&&r.add(i,"h",s,c)}return r}discardRook(t){if(this.castlingRights.has(t)){this.castlingRights=this.castlingRights.without(t);for(let r of V)for(let n of tn)this.rook[r][n]===t&&(this.rook[r][n]=void 0)}}discardColor(t){this.castlingRights=this.castlingRights.diff(u.backrank(t)),this.rook[t].a=void 0,this.rook[t].h=void 0}},ee=class{constructor(t){this.rules=t}reset(){this.board=pe.default(),this.pockets=void 0,this.turn="white",this.castles=le.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=le.fromSetup(t),this.epSquare=so(this,t.epSquare),this.remainingChecks=void 0,this.halfmoves=t.halfmoves,this.fullmoves=t.fullmoves}kingAttackers(t,r,n){return oo(t,r,this.board,n)}playCaptureAt(t,r){this.halfmoves=0,r.role==="rook"&&this.castles.discardRook(t),this.pockets&&this.pockets[M(r.color)][r.promoted?"pawn":r.role]++}ctx(){let t=this.isVariantEnd(),r=this.board.kingOf(this.turn);if(!b(r))return{king:r,blockers:u.empty(),checkers:u.empty(),variantEnd:t,mustCapture:!1};let n=xe(r,u.empty()).intersect(this.board.rooksAndQueens()).union(ye(r,u.empty()).intersect(this.board.bishopsAndQueens())).intersect(this.board[M(this.turn)]),i=u.empty();for(let s of n){let a=Ce(r,s).intersect(this.board.occupied);a.moreThanOne()||(i=i.union(a))}let o=this.kingAttackers(r,M(this.turn),this.board.occupied);return{king:r,blockers:i,checkers:o,variantEnd:t,mustCapture:!1}}clone(){var t,r;let n=new this.constructor;return n.board=this.board.clone(),n.pockets=(t=this.pockets)===null||t===void 0?void 0:t.clone(),n.turn=this.turn,n.castles=this.castles.clone(),n.epSquare=this.epSquare,n.remainingChecks=(r=this.remainingChecks)===null||r===void 0?void 0:r.clone(),n.halfmoves=this.halfmoves,n.fullmoves=this.fullmoves,n}validate(){if(this.board.occupied.isEmpty())return k.err(new D(O.Empty));if(this.board.king.size()!==2)return k.err(new D(O.Kings));if(!b(this.board.kingOf(this.turn)))return k.err(new D(O.Kings));let t=this.board.kingOf(M(this.turn));return b(t)?this.kingAttackers(t,this.turn,this.board.occupied).nonEmpty()?k.err(new D(O.OppositeCheck)):u.backranks().intersects(this.board.pawn)?k.err(new D(O.PawnsOnBackrank)):k.ok(void 0):k.err(new D(O.Kings))}dropDests(t){return u.empty()}dests(t,r){if(r=r||this.ctx(),r.variantEnd)return u.empty();let n=this.board.get(t);if(!n||n.color!==this.turn)return u.empty();let i,o;if(n.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)&&co(this,t,r)&&(o=u.fromSquare(this.epSquare))}else n.role==="bishop"?i=ye(t,this.board.occupied):n.role==="knight"?i=Be(t):n.role==="rook"?i=xe(t,this.board.occupied):n.role==="queen"?i=He(t,this.board.occupied):i=ce(t);if(i=i.diff(this.board[this.turn]),b(r.king)){if(n.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(mt(this,"a",r)).union(mt(this,"h",r))}if(r.checkers.nonEmpty()){let s=r.checkers.singleSquare();if(!b(s))return u.empty();i=i.intersect(Ce(s,r.king).with(s))}r.blockers.has(t)&&(i=i.intersect(nr(t,r.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,r;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:ao(this),remainingChecks:(r=this.remainingChecks)===null||r===void 0?void 0:r.clone(),halfmoves:Math.min(this.halfmoves,150),fullmoves:Math.min(Math.max(this.fullmoves,1),9999)}}isInsufficientMaterial(){return V.every(t=>this.hasInsufficientMaterial(t))}hasDests(t){t=t||this.ctx();for(let r of this.board[this.turn])if(this.dests(r,t).nonEmpty())return!0;return this.dropDests(t).nonEmpty()}isLegal(t,r){if(se(t))return!this.pockets||this.pockets[this.turn][t.role]<=0||t.role==="pawn"&&u.backranks().has(t.to)?!1:this.dropDests(r).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 n=this.dests(t.from,r);return n.has(t.to)||n.has(on(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 r=this.variantOutcome(t);return r||(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 r=new Map;if(t.variantEnd)return r;for(let n of this.board[this.turn])r.set(n,this.dests(n,t));return r}play(t){let r=this.turn,n=this.epSquare,i=sr(this,t);if(this.epSquare=void 0,this.halfmoves+=1,r==="black"&&(this.fullmoves+=1),this.turn=M(r),se(t))this.board.set(t.to,{role:t.role,color:r}),this.pockets&&this.pockets[r][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===n&&(s=this.board.take(t.to+(r==="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[r][i];if(b(a)){let l=this.board.take(a);this.board.set(Ve(r,i),o),l&&this.board.set(ht(r,i),l)}}this.castles.discardColor(r)}if(!i){let a=this.board.set(t.to,o)||s;a&&this.playCaptureAt(t.to,a)}}this.remainingChecks&&this.isCheck()&&(this.remainingChecks[r]=Math.max(this.remainingChecks[r]-1,0))}},Ge=class extends ee{constructor(){super("chess")}static default(){let t=new this;return t.reset(),t}static fromSetup(t){let r=new this;return r.setupUnchecked(t),r.validate().map(n=>r)}clone(){return super.clone()}},so=(e,t)=>{if(!b(t))return;let r=e.turn==="white"?5:2,n=e.turn==="white"?8:-8;if(J(t)!==r||e.board.occupied.has(t+n))return;let i=t-n;if(!(!e.board.pawn.has(i)||!e.board[M(e.turn)].has(i)))return t},ao=e=>{if(!b(e.epSquare))return;let t=e.ctx(),n=e.board.pieces(e.turn,"pawn").intersect(ve(M(e.turn),e.epSquare));for(let i of n)if(e.dests(i,t).has(e.epSquare))return e.epSquare},co=(e,t,r)=>{if(!b(e.epSquare)||!ve(e.turn,t).has(e.epSquare))return!1;if(!b(r.king))return!0;let n=e.turn==="white"?8:-8,i=e.epSquare-n;return e.kingAttackers(r.king,M(e.turn),e.board.occupied.toggle(t).toggle(i).with(e.epSquare)).without(i).isEmpty()},mt=(e,t,r)=>{if(!b(r.king)||r.checkers.nonEmpty())return u.empty();let n=e.castles.rook[e.turn][t];if(!b(n))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(r.king,i),s=e.board.occupied.without(r.king);for(let c of o)if(e.kingAttackers(c,M(e.turn),s).nonEmpty())return u.empty();let a=ht(e.turn,t),l=e.board.occupied.toggle(r.king).toggle(n).toggle(a);return e.kingAttackers(i,M(e.turn),l).nonEmpty()?u.empty():u.fromSquare(n)},gt=(e,t,r)=>{if(r.variantEnd)return u.empty();let n=e.board.get(t);if(!n||n.color!==e.turn)return u.empty();let i=pt(n,t,e.board.occupied);if(n.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===r.king?i.union(mt(e,"a",r)).union(mt(e,"h",r)):i};var sr=(e,t)=>{if(se(t))return;let r=t.to-t.from;if(!(Math.abs(r)!==2&&!e.board[e.turn].has(t.to))&&e.board.king.has(t.from))return r>0?"h":"a"},on=(e,t)=>{let r=sr(e,t);if(!r)return t;let n=e.castles.rook[e.turn][r];return{from:t.from,to:b(n)?n:t.to}};var sn=e=>se(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)+B(e.to):35+e.to);var uo="rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR",ho=uo+" w KQkq -",ic=ho+" 0 1",po="8/8/8/8/8/8/8/8",fo=po+" w - -",oc=fo+" 0 1",K;(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"})(K||(K={}));var F=class extends Error{},mo=(e,t,r)=>{let n=e.indexOf(t);for(;r-- >0&&n!==-1;)n=e.indexOf(t,n+t.length);return n},Le=e=>/^\d{1,4}$/.test(e)?parseInt(e,10):void 0,un=e=>{let t=qe(e);return t&&{role:t,color:e.toLowerCase()===e?"black":"white"}},ar=e=>{let t=pe.empty(),r=7,n=0;for(let i=0;i<e.length;i++){let o=e[i];if(o==="/"&&n===8)n=0,r--;else{let s=parseInt(o,10);if(s>0)n+=s;else{if(n>=8||r<0)return k.err(new F(K.Board));let a=n+r*8,l=un(o);if(!l)return k.err(new F(K.Board));e[i+1]==="~"&&(l.promoted=!0,i++),t.set(a,l),n++}}}return r!==0||n!==8?k.err(new F(K.Board)):k.ok(t)},an=e=>{if(e.length>64)return k.err(new F(K.Pockets));let t=Ne.empty();for(let r of e){let n=un(r);if(!n)return k.err(new F(K.Pockets));t[n.color][n.role]++}return k.ok(t)},go=(e,t)=>{let r=u.empty();if(t==="-")return k.ok(r);for(let n of t){let i=n.toLowerCase(),o=n===i?"black":"white",s=o==="white"?0:7;if("a"<=i&&i<="h")r=r.with(ut(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();r=r.with(b(l)&&e.rook.has(l)?l:ut(i==="k"?7:0,s))}else return k.err(new F(K.Castling))}return V.some(n=>u.backrank(n).intersect(r).size()>2)?k.err(new F(K.Castling)):k.ok(r)},cn=e=>{let t=e.split("+");if(t.length===3&&t[0]===""){let r=Le(t[1]),n=Le(t[2]);return!b(r)||r>3||!b(n)||n>3?k.err(new F(K.RemainingChecks)):k.ok(new Se(3-r,3-n))}else if(t.length===2){let r=Le(t[0]),n=Le(t[1]);return!b(r)||r>3||!b(n)||n>3?k.err(new F(K.RemainingChecks)):k.ok(new Se(r,n))}else return k.err(new F(K.RemainingChecks))},hn=e=>{let t=e.split(/[\s_]+/),r=t.shift(),n,i=k.ok(void 0);if(r.endsWith("]")){let a=r.indexOf("[");if(a===-1)return k.err(new F(K.Fen));n=ar(r.slice(0,a)),i=an(r.slice(a+1,-1))}else{let a=mo(r,"/",7);a===-1?n=ar(r):(n=ar(r.slice(0,a)),i=an(r.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 F(K.Turn));return n.chain(a=>{let l=t.shift(),c=b(l)?go(a,l):k.ok(u.empty()),h=t.shift(),f;if(b(h)&&h!=="-"&&(f=de(h),!b(f)))return k.err(new F(K.EpSquare));let g=t.shift(),m;b(g)&&g.includes("+")&&(m=cn(g),g=t.shift());let d=b(g)?Le(g):0;if(!b(d))return k.err(new F(K.Halfmoves));let p=t.shift(),v=b(p)?Le(p):1;if(!b(v))return k.err(new F(K.Fullmoves));let w=t.shift(),x=k.ok(void 0);if(b(w)){if(b(m))return k.err(new F(K.RemainingChecks));x=cn(w)}else b(m)&&(x=m);return t.length>0?k.err(new F(K.Fen)):i.chain(A=>c.chain(C=>x.map(P=>({board:a,pockets:A,turn:o,castlingRights:C,remainingChecks:P,epSquare:f,halfmoves:d,fullmoves:Math.max(1,v)}))))})};var ko=e=>{let t=ae(e.role);return e.color==="white"&&(t=t.toUpperCase()),e.promoted&&(t+="~"),t},bo=e=>{let t="",r=0;for(let n=7;n>=0;n--)for(let i=0;i<8;i++){let o=i+n*8,s=e.get(o);s?(r>0&&(t+=r,r=0),t+=ko(s)):r++,i===7&&(r>0&&(t+=r,r=0),n!==0&&(t+="/"))}return t},ln=e=>W.map(t=>ae(t).repeat(e[t])).join(""),wo=e=>ln(e.white).toUpperCase()+ln(e.black),vo=(e,t)=>{let r="";for(let n of V){let i=u.backrank(n),o=e.kingOf(n);b(o)&&!i.has(o)&&(o=void 0);let s=e.pieces(n,"rook").intersect(i);for(let a of t.intersect(i).reversed())if(a===s.first()&&b(o)&&a<o)r+=n==="white"?"Q":"q";else if(a===s.last()&&b(o)&&o<a)r+=n==="white"?"K":"k";else{let l=_e[B(a)];r+=n==="white"?l.toUpperCase():l}}return r||"-"},yo=e=>`${e.white}+${e.black}`,kt=(e,t)=>[bo(e.board)+(e.pockets?`[${wo(e.pockets)}]`:""),e.turn[0],vo(e.board,e.castlingRights),b(e.epSquare)?U(e.epSquare):"-",...e.remainingChecks?[yo(e.remainingChecks)]:[],...t?.epd?[]:[Math.max(0,Math.min(e.halfmoves,9999)),Math.max(1,Math.min(e.fullmoves,9999))]].join(" ");var Co=(e,t)=>{let r="";if(se(t))t.role!=="pawn"&&(r=ae(t.role).toUpperCase()),r+="@"+U(t.to);else{let n=e.board.getRole(t.from);if(!n)return"--";if(n==="king"&&(e.board[e.turn].has(t.to)||Math.abs(t.to-t.from)===2))r=t.to>t.from?"O-O":"O-O-O";else{let i=e.board.occupied.has(t.to)||n==="pawn"&&B(t.from)!==B(t.to);if(n!=="pawn"){r=ae(n).toUpperCase();let o;if(n==="king"?o=ce(t.to).intersect(e.board.king):n==="queen"?o=He(t.to,e.board.occupied).intersect(e.board.queen):n==="rook"?o=xe(t.to,e.board.occupied).intersect(e.board.rook):n==="bishop"?o=ye(t.to,e.board.occupied).intersect(e.board.bishop):o=Be(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(J(t.from)));o.intersects(u.fromFile(B(t.from)))?a=!0:l=!0,l&&(r+=_e[B(t.from)]),a&&(r+=lt[J(t.from)])}}}else i&&(r=_e[B(t.from)]);i&&(r+="x"),r+=U(t.to),t.promotion&&(r+="="+ae(t.promotion).toUpperCase())}}return r},dn=(e,t)=>{var r;let n=Co(e,t);return e.play(t),!((r=e.outcome())===null||r===void 0)&&r.winner?n+"#":e.isCheck()?n+"+":n};var pn=(e,t)=>{let r=e.ctx(),n=t.match(/^([NBRQK])?([a-h])?([1-8])?[-x]?([a-h][1-8])(?:=?([nbrqkNBRQK]))?[+#]?$/);if(!n){let h;if(t==="O-O"||t==="O-O+"||t==="O-O#"?h="h":(t==="O-O-O"||t==="O-O-O+"||t==="O-O-O#")&&(h="a"),h){let m=e.castles.rook[e.turn][h];return!b(r.king)||!b(m)||!e.dests(r.king,r).has(m)?void 0:{from:r.king,to:m}}let f=t.match(/^([pnbrqkPNBRQK])?@([a-h][1-8])[+#]?$/);if(!f)return;let g={role:f[1]?qe(f[1]):"pawn",to:de(f[2])};return e.isLegal(g,r)?g:void 0}let i=n[1]?qe(n[1]):"pawn",o=de(n[4]),s=n[5]?qe(n[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"&&!n[2]?a=a.intersect(u.fromFile(B(o))):n[2]&&(a=a.intersect(u.fromFile(n[2].charCodeAt(0)-97))),n[3]&&(a=a.intersect(u.fromRank(n[3].charCodeAt(0)-49)));let l=i==="pawn"?u.fromFile(B(o)):u.empty();a=a.intersect(l.union(pt({color:M(e.turn),role:i},o,e.board.occupied)));let c;for(let h of a)if(e.dests(h,r).has(o)){if(b(c))return;c=h}if(b(c))return{from:c,to:o,promotion:s}};var bt=class extends ee{constructor(){super("crazyhouse")}reset(){super.reset(),this.pockets=Ne.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():Ne.empty()}static default(){let t=new this;return t.reset(),t}static fromSetup(t){let r=new this;return r.setupUnchecked(t),r.validate().map(n=>r)}clone(){return super.clone()}validate(){return super.validate().chain(t=>{var r,n;return!((r=this.pockets)===null||r===void 0)&&r.count("king")?k.err(new D(O.Kings)):(((n=this.pockets)===null||n===void 0?void 0:n.size())||0)+this.board.occupied.size()>64?k.err(new D(O.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 r,n;let i=this.board.occupied.complement().intersect(!((r=this.pockets)===null||r===void 0)&&r[this.turn].hasNonPawns()?u.full():!((n=this.pockets)===null||n===void 0)&&n[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}},wt=class extends ee{constructor(){super("atomic")}static default(){let t=new this;return t.reset(),t}static fromSetup(t){let r=new this;return r.setupUnchecked(t),r.validate().map(n=>r)}clone(){return super.clone()}validate(){if(this.board.occupied.isEmpty())return k.err(new D(O.Empty));if(this.board.king.size()>2)return k.err(new D(O.Kings));let t=this.board.kingOf(M(this.turn));return b(t)?this.kingAttackers(t,this.turn,this.board.occupied).nonEmpty()?k.err(new D(O.OppositeCheck)):u.backranks().intersects(this.board.pawn)?k.err(new D(O.PawnsOnBackrank)):k.ok(void 0):k.err(new D(O.Kings))}kingAttackers(t,r,n){let i=this.board.pieces(r,"king");return i.isEmpty()||ce(t).intersects(i)?u.empty():super.kingAttackers(t,r,n)}playCaptureAt(t,r){super.playCaptureAt(t,r),this.board.take(t);for(let n of ce(t).intersect(this.board.occupied).diff(this.board.pawn)){let i=this.board.take(n);i?.role==="rook"&&this.castles.discardRook(n),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,r){r=r||this.ctx();let n=u.empty();for(let i of gt(this,t,r)){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())&&(n=n.with(i))}return n}isVariantEnd(){return!!this.variantOutcome()}variantOutcome(t){for(let r of V)if(this.board.pieces(r,"king").isEmpty())return{winner:M(r)}}},vt=class extends ee{constructor(){super("antichess")}reset(){super.reset(),this.castles=le.empty()}setupUnchecked(t){super.setupUnchecked(t),this.castles=le.empty()}static default(){let t=new this;return t.reset(),t}static fromSetup(t){let r=new this;return r.setupUnchecked(t),r.validate().map(n=>r)}clone(){return super.clone()}validate(){return this.board.occupied.isEmpty()?k.err(new D(O.Empty)):u.backranks().intersects(this.board.pawn)?k.err(new D(O.PawnsOnBackrank)):k.ok(void 0)}kingAttackers(t,r,n){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 r=this.board[M(this.turn)];for(let n of this.board[this.turn])if(gt(this,n,t).intersects(r))return t.mustCapture=!0,t;return t}dests(t,r){r=r||this.ctx();let n=gt(this,t,r),i=this.board[M(this.turn)];return n.intersect(r.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 r=this.board[t].intersects(u.lightSquares()),n=this.board[t].intersects(u.darkSquares()),i=this.board[M(t)].isDisjoint(u.lightSquares()),o=this.board[M(t)].isDisjoint(u.darkSquares());return r&&i||n&&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}}},yt=class extends ee{constructor(){super("kingofthehill")}static default(){let t=new this;return t.reset(),t}static fromSetup(t){let r=new this;return r.setupUnchecked(t),r.validate().map(n=>r)}clone(){return super.clone()}hasInsufficientMaterial(t){return!1}isVariantEnd(){return this.board.king.intersects(u.center())}variantOutcome(t){for(let r of V)if(this.board.pieces(r,"king").intersects(u.center()))return{winner:r}}},xt=class extends ee{constructor(){super("3check")}reset(){super.reset(),this.remainingChecks=Se.default()}setupUnchecked(t){var r;super.setupUnchecked(t),this.remainingChecks=((r=t.remainingChecks)===null||r===void 0?void 0:r.clone())||Se.default()}static default(){let t=new this;return t.reset(),t}static fromSetup(t){let r=new this;return r.setupUnchecked(t),r.validate().map(n=>r)}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 r of V)if(this.remainingChecks[r]<=0)return{winner:r}}}},Po=()=>{let e=pe.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},Ct=class extends ee{constructor(){super("racingkings")}reset(){this.board=Po(),this.pockets=void 0,this.turn="white",this.castles=le.empty(),this.epSquare=void 0,this.remainingChecks=void 0,this.halfmoves=0,this.fullmoves=1}setupUnchecked(t){super.setupUnchecked(t),this.castles=le.empty()}static default(){let t=new this;return t.reset(),t}static fromSetup(t){let r=new this;return r.setupUnchecked(t),r.validate().map(n=>r)}clone(){return super.clone()}validate(){return this.isCheck()||this.board.pawn.nonEmpty()?k.err(new D(O.Variant)):super.validate()}dests(t,r){if(r=r||this.ctx(),t===r.king)return super.dests(t,r);let n=u.empty();for(let i of super.dests(t,r)){let o={from:t,to:i},s=this.clone();s.play(o),s.isCheck()||(n=n.with(i))}return n}hasInsufficientMaterial(t){return!1}isVariantEnd(){let t=u.fromRank(7),r=this.board.king.intersect(t);if(r.isEmpty())return!1;if(this.turn==="white"||r.intersects(this.board.black))return!0;let n=this.board.kingOf("black");if(b(n)){let i=this.board.occupied.without(n);for(let o of ce(n).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 r=u.fromRank(7),n=this.board.pieces("black","king").intersects(r),i=this.board.pieces("white","king").intersects(r);return n&&!i?{winner:"black"}:i&&!n?{winner:"white"}:{winner:void 0}}},Mo=()=>{let e=pe.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},St=class extends ee{constructor(){super("horde")}reset(){this.board=Mo(),this.pockets=void 0,this.turn="white",this.castles=le.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 r=new this;return r.setupUnchecked(t),r.validate().map(n=>r)}clone(){return super.clone()}validate(){if(this.board.occupied.isEmpty())return k.err(new D(O.Empty));if(this.board.king.size()!==1)return k.err(new D(O.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 D(O.OppositeCheck));for(let r of V){let n=this.board.pieces(r,"king").isEmpty()?u.backrank(M(r)):u.backranks();if(this.board.pieces(r,"pawn").intersects(n))return k.err(new D(O.PawnsOnBackrank))}return k.ok(void 0)}hasInsufficientMaterial(t){if(this.board.pieces(t,"king").nonEmpty())return!1;let r=m=>m==="light"?"dark":"light",n=m=>m==="light"?u.lightSquares():u.darkSquares(),i=m=>{let d=this.board.pieces(m,"bishop");return d.intersects(u.darkSquares())&&d.intersects(u.lightSquares())},o=fe.fromBoard(this.board,t),s=m=>n(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=fe.fromBoard(this.board,M(t)),h=m=>n(m).intersect(this.board.pieces(M(t),"bishop")).size(),f=c.size(),g=m=>f-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&&g(h(a))===1))return!1;if(l===1){if(f===1)return!0;if(o.queen===1)return!(c.pawn>=1||c.rook>=1||h("light")>=2||h("dark")>=2);if(o.pawn===1){let m=this.board.pieces(t,"pawn").last(),d=this.clone();d.board.set(m,{color:t,role:"queen"});let p=this.clone();return p.board.set(m,{color:t,role:"knight"}),d.hasInsufficientMaterial(t)&&p.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!(h(r(a))>=2||h(r(a))>=1&&c.pawn>=1||c.pawn>=2);if(o.knight===1)return!(f>=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)&&(h("dark")<2||g(h("dark"))>=3)&&(h("light")<2||g(h("light"))>=3))}}else{if(l===2)return f===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||h(r(a))>=1||g(h(a))>=3):!(c.pawn>=1&&h(r(a))>=1||c.pawn>=1&&c.knight>=1||h(r(a))>=1&&c.knight>=1||h(r(a))>=2||c.knight>=2||c.pawn>=2);if(l===3)return o.knight===2&&o.bishop===1||o.knight===3||i(t)?!1:f===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"}}},fn=e=>{switch(e){case"chess":return Ge.default();case"antichess":return vt.default();case"atomic":return wt.default();case"horde":return St.default();case"racingkings":return Ct.default();case"kingofthehill":return yt.default();case"3check":return xt.default();case"crazyhouse":return bt.default()}},mn=(e,t)=>{switch(e){case"chess":return Ge.fromSetup(t);case"antichess":return vt.fromSetup(t);case"atomic":return wt.fromSetup(t);case"horde":return St.fromSetup(t);case"racingkings":return Ct.fromSetup(t);case"kingofthehill":return yt.fromSetup(t);case"3check":return xt.fromSetup(t);case"crazyhouse":return bt.fromSetup(t)}};var Ao=(e=dr)=>({headers:e(),moves:new We}),We=class{constructor(){this.children=[]}*mainlineNodes(){let t=this;for(;t.children.length;){let r=t.children[0];yield r,t=r}}*mainline(){for(let t of this.mainlineNodes())yield t.data}end(){let t=this;for(;t.children.length;)t=t.children[0];return t}},Pt=class extends We{constructor(t){super(),this.data=t}};var kn=(e,t,r)=>{let n=new We,i=[{before:e,after:n,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=r(a,l.data,s);if(b(c)){let h=new Pt(c);o.after.children.push(h),i.push({before:l,after:h,ctx:a})}}return n};var _o=e=>e?e.winner==="white"?"1-0":e.winner==="black"?"0-1":"1/2-1/2":"*",qo=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 dr=()=>new Map([["Event","?"],["Site","?"],["Date","????.??.??"],["Round","?"],["White","?"],["Black","?"],["Result","*"]]);var gn="\uFEFF",cr=e=>/^\s*$/.test(e),lr=e=>e.startsWith("%"),ur=class extends Error{},hr=class{constructor(t,r=dr,n=1e6){this.emitGame=t,this.initHeaders=r,this.maxBudget=n,this.lineBuf=[],this.resetGame(),this.state=0}resetGame(){this.budget=this.maxBudget,this.found=!1,this.state=1,this.game=Ao(this.initHeaders),this.stack=[{parent:this.game.moves,root:!0}],this.commentBuf=[]}consumeBudget(t){if(this.budget-=t,this.budget<0)throw new ur("ERR_PGN_BUDGET")}parse(t,r){if(!(this.budget<0))try{let n=0;for(;;){let i=t.indexOf(`
|
|
2
2
|
`,n);if(i===-1)break;let o=i>n&&t[i-1]==="\r"?i-1:i;this.consumeBudget(i-n),this.lineBuf.push(t.slice(n,o)),n=i+1,this.handleLine()}this.consumeBudget(t.length-n),this.lineBuf.push(t.slice(n)),r?.stream||(this.handleLine(),this.emit(void 0))}catch(n){this.emit(n)}}handleLine(){let t=!0,r=this.lineBuf.join("");this.lineBuf=[];e:for(;;)switch(this.state){case 0:r.startsWith(gn)&&(r=r.slice(gn.length)),this.state=1;case 1:if(cr(r)||lr(r))return;this.found=!0,this.state=2;case 2:{if(lr(r))return;let n=!0;for(;n;)n=!1,r=r.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,"\\")),n=!0,t=!1,""));if(cr(r))return;this.state=3}case 3:{if(t){if(lr(r))return;if(cr(r))return this.emit(void 0)}let n=/(?:[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=n.exec(r);){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=n.lastIndex,l=r[a]===" "?a+1:a;r=r.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 Pt({san:s,startingComments:o.startingComments}),o.startingComments=void 0,o.root=!1,o.parent.children.push(o.node)}return}case 4:{let n=r.indexOf("}");if(n===-1){this.commentBuf.push(r);return}else{let i=n>0&&r[n-1]===" "?n-1:n;this.commentBuf.push(r.slice(0,i)),this.handleComment(),r=r.slice(n),this.state=3,t=!1}}}}handleHeader(t,r){this.game.headers.set(t,t==="Result"?_o(qo(r)):r)}handleNag(t){var r;this.consumeBudget(50);let n=this.stack[this.stack.length-1];n.node&&((r=n.node.data).nags||(r.nags=[]),n.node.data.nags.push(t))}handleComment(){var t,r;this.consumeBudget(100);let n=this.stack[this.stack.length-1],i=this.commentBuf.join(`
|
|
3
|
-
`);this.commentBuf=[],n.node?((t=n.node.data).comments||(t.comments=[]),n.node.data.comments.push(i)):n.root?((r=this.game).comments||(r.comments=[]),this.game.comments.push(i)):(n.startingComments||(n.startingComments=[]),n.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()}},pr=(e,t=dr)=>{let r=[];return new hr(n=>r.push(n),t,NaN).parse(e),r},No=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 bn=e=>{let t=No(e.get("Variant"));if(!t)return k.err(new D(O.Variant));let r=e.get("FEN");return r?hn(r).chain(n=>mn(t,n)):k.ok(fn(t))};function To(e){switch(e){case"G":return"green";case"R":return"red";case"Y":return"yellow";case"B":return"blue";default:return}}var Ro=e=>{let t=To(e.slice(0,1)),r=de(e.slice(1,3)),n=de(e.slice(3,5));if(!(!t||!b(r))){if(e.length===3)return{color:t,from:r,to:r};if(e.length===5&&b(n))return{color:t,from:r,to:n}}};var wn=e=>{let t,r,n,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,h)=>{let f=parseInt(l,10)*3600+parseInt(c,10)*60+parseFloat(h);return a==="emt"?t=f:a==="clk"&&(r=f)," "}).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(Ro(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 h=c&&parseInt(c,10);return n=a?{mate:parseInt(a,10),depth:h}:{pawns:parseFloat(l),depth:h}," "}).trim(),shapes:i,emt:t,clock:r,evaluation:n}};var Do=e=>Lo[e];function fr(e){return(t,...r)=>{let n=e&&e(t)||Do(t);return Bo(n??t,r)}}var Bo=(e,t)=>{let r=e;return t.forEach((n,i)=>{r=r.replace(`%${i+1}$s`,n),r=r.replace("%s",n)}),r},Lo={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, whites, and %2$s, blacks. %3$s","aria.gameInProgress":"Game in progress","aria.whitesWin":"Whites win","aria.blacksWin":"Blacks win","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 vn=["white","black"];var ue=["a","b","c","d","e","f","g","h"],Pe=["1","2","3","4","5","6","7","8"];var Mt=[...Pe].reverse(),Ue=ue.flatMap(e=>Pe.map(t=>e+t)),Y=e=>e.every(t=>t>=0&&t<=7)?Ue[8*e[0]+e[1]]:void 0,Me=e=>Y(e),E=e=>[e.charCodeAt(0)-97,e.charCodeAt(1)-49],xn=e=>{if(e)return e[1]==="@"?[e.slice(2,4)]:[e.slice(0,2),e.slice(2,4)]},mr=Ue.map(E),Cn=Ue.map((e,t)=>({key:e,pos:mr[t]}));function gr(e){let t,r=()=>(t===void 0&&(t=e()),t);return r.clear=()=>{t=void 0},r}var Sn=()=>{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}}},Ie=e=>e==="white"?"black":"white",Ee=(e,t)=>(e[0]-t[0])**2+(e[1]-t[1])**2,Te=(e,t)=>e.role===t.role&&e.color===t.color,Pn=(e,t)=>e[0]===t[0]&&e[1]===t[1],Ae=e=>(t,r)=>[(r?t[0]:7-t[0])*e.width/8,(r?7-t[1]:t[1])*e.height/8],Z=(e,t)=>{e.style.transform=`translate(${t[0]}px,${t[1]}px)`},kr=(e,t,r=1)=>{e.style.transform=`translate(${t[0]}px,${t[1]}px) scale(${r})`},je=(e,t)=>{e.style.visibility=t?"visible":"hidden"},he=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]},Io=gr(()=>!("ontouchstart"in window)&&["macintosh","firefox"].every(e=>navigator.userAgent.toLowerCase().includes(e))),Et=e=>e.button===2&&!(e.ctrlKey&&Io()),Q=(e,t)=>{let r=document.createElement(e);return t&&(r.className=t),r};function At(e,t,r){let n=E(e);return t||(n[0]=7-n[0],n[1]=7-n[1]),[r.left+r.width*n[0]/8+r.width/16,r.top+r.height*(7-n[1])/8+r.height/16]}var te=(e,t)=>Math.abs(e-t),Ye=(e,t,r,n)=>te(e,r)*te(t,n)===2,_t=(e,t,r,n)=>e===r!=(t===n),qt=(e,t,r,n)=>te(e,r)===te(t,n)&&e!==r,Nt=(e,t,r,n)=>_t(e,t,r,n)||qt(e,t,r,n),br=(e,t,r,n)=>Math.max(te(e,r),te(t,n))===1,wr=(e,t,r,n,i)=>te(e,r)===1&&n===t+(i?1:-1),vr=(e,t,r,n,i)=>{let o=i?1:-1;return e===r&&(n===t+o||n===t+2*o&&(i?t<=1:t>=6))},Ze=(e,t,r,n)=>{let i=r-e,o=n-t;if(i&&o&&Math.abs(i)!==Math.abs(o))return[];let s=Math.sign(i),a=Math.sign(o),l=[],c=e+s,h=t+a;for(;c!==r||h!==n;)l.push([c,h]),c+=s,h+=a;return l.map(Y).filter(f=>f!==void 0)},Mn=e=>{let t=E(e),r=[];return t[0]>0&&r.push([t[0]-1,t[1]]),t[0]<7&&r.push([t[0]+1,t[1]]),r.map(Y).filter(n=>n!==void 0)},Qe=(e,t)=>{let r=E(e);return r[1]+=t,Y(r)};var re=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 Tt=class{constructor(t,r,n,i){this.initial=t;this.moves=r;this.players=n;this.metadata=i;this.nodeAt=t=>En(this.moves,t);this.dataAt=t=>{let r=this.nodeAt(t);return r?Fo(r)?r.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?re.root:this.mainline[Math.max(0,Math.min(this.mainline.length-1,t=="last"?9999:t-1))]?.path||re.root;this.hasPlayerName=()=>!!(this.players.white?.name||this.players.black?.name);this.mainline=Array.from(this.moves.mainline())}},Ko=(e,t)=>e.children.find(r=>r.data.path.last()==t),En=(e,t)=>{if(t.empty())return e;let r=Ko(e,t.head());return r?En(r,t.tail()):void 0},Fo=e=>"data"in e,Rt=e=>"uci"in e;var yr=class e{constructor(t,r,n){this.pos=t;this.path=r;this.clocks=n;this.clone=()=>new e(this.pos.clone(),this.path,{...this.clocks})}},xr=e=>{let t=e.map(wn),r=n=>n.reduce((i,o)=>typeof o==null?i:o,void 0);return{texts:t.map(n=>n.text).filter(n=>!!n),shapes:t.flatMap(n=>n.shapes),clock:r(t.map(n=>n.clock)),emt:r(t.map(n=>n.emt))}},An=(e,t=!1)=>{let r=pr(e)[0]||pr("*")[0],n=bn(r.headers).unwrap(),i=kt(n.toSetup()),o=xr(r.comments||[]),s=new Map(Array.from(r.headers,([f,g])=>[f.toLowerCase(),g])),a=Ho(s,t),l={fen:i,turn:n.turn,check:n.isCheck(),pos:n.clone(),comments:o.texts,shapes:o.shapes,clocks:{white:a.timeControl?.initial||o.clock,black:a.timeControl?.initial||o.clock}},c=$o(n,r.moves,a),h=Vo(s,a);return new Tt(l,c,h,a)},$o=(e,t,r)=>kn(t,new yr(e,re.root,{}),(n,i,o)=>{let s=pn(n.pos,i.san);if(!s)return;let a=sn(s),l=n.path.append(a),c=dn(n.pos,s);n.path=l;let h=n.pos.toSetup(),f=xr(i.comments||[]),g=xr(i.startingComments||[]),m=[...f.shapes,...g.shapes],d=(h.fullmoves-1)*2+(n.pos.turn==="white"?0:1),p=n.clocks=zo(n.clocks,n.pos.turn,f.clock);return d<2&&r.timeControl&&(p={white:r.timeControl.initial,black:r.timeControl.initial,...p}),{path:l,ply:d,move:s,san:c,uci:Zt(s),fen:kt(n.pos.toSetup()),turn:n.pos.turn,check:n.pos.isCheck(),comments:f.texts,startingComments:g.texts,nags:i.nags||[],shapes:m,clocks:p,emt:f.emt}}),zo=(e,t,r)=>t=="white"?{...e,black:r}:{...e,white:r};function Vo(e,t){let r=(i,o)=>{let s=e.get(`${i}${o}`);return s=="?"||s==""?void 0:s},n=i=>{let o=r(i,"");return{name:o,title:r(i,"title"),rating:parseInt(r(i,"elo")||"")||void 0,isLichessUser:t.isLichess&&!!o?.match(/^[a-z0-9][a-z0-9_-]{0,28}[a-z0-9]$/i)}};return{white:n("white"),black:n("black")}}function Ho(e,t){let r=e.get("chapterurl")||e.get("gameurl")||e.get("source")||e.get("site"),n=e.get("timecontrol")?.split("+").map(s=>parseInt(s)),i=n&&n[0]?{initial:n[0],increment:n[1]||0}:void 0,o=e.get("orientation");return{externalLink:r&&r.match(/^https?:\/\//)?r:void 0,isLichess:!!(t&&r?.startsWith(t)),timeControl:i,orientation:o==="white"||o==="black"?o:void 0,result:e.get("result")}}var Je=class{constructor(t,r){this.opts=t;this.redraw=r;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,r=!0)=>{let n=t=="first"?re.root:t=="prev"?this.path.init():t=="next"?this.game.nodeAt(this.path)?.children[0]?.data.path:this.game.pathAtMainlinePly("last");this.toPath(n||this.path,r)};this.canGoTo=t=>t=="prev"||t=="first"?!this.path.empty():!!this.curNode().children[0];this.toPath=(t,r=!0)=>{this.path=t,this.pane="board",this.autoScrollRequested=!0,this.redrawGround(),this.redraw(),r&&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(),r=Rt(t)?xn(t.uci):this.opts.chessground?.lastMove;return{fen:t.fen,orientation:this.orientation(),check:t.check,lastMove:r,turnColor:t.turn}};this.analysisUrl=()=>this.game.metadata.isLichess&&this.game.metadata.externalLink||`https://lichess.org/analysis/${this.curData().fen.replace(" ","_")}?color=${this.orientation()}`;this.practiceUrl=()=>`${this.analysisUrl()}#practice`;this.setGround=t=>{this.ground=t,this.redrawGround()};this.redrawGround=()=>this.withGround(t=>{t.set(this.cgState()),t.setShapes(this.curData().shapes.map(r=>({orig:U(r.from),dest:U(r.to),brush:r.color})))});this.withGround=t=>this.ground&&t(this.ground);this.game=An(t.pgn,t.lichess),t.orientation=t.orientation||this.game.metadata.orientation,this.translate=fr(t.translate),this.path=this.game.pathAtMainlinePly(t.initialPly)}};var Ke=e=>e.friendlies.has(e.dest.key),Go=e=>e.enemies.has(e.dest.key),_n=(e,t,r)=>Ze(...e,...t).some(n=>r.has(n)),qn=(e,t,r)=>{let n=r.enemies.get(e);if(n?.role!=="pawn")return!1;let i=n.color==="white"?1:-1,o=E(e),s=E(t);return vr(...o,...s,n.color==="white")&&!_n(o,[s[0],s[1]+i],r.allPieces)},Wo=(e,t,r)=>{let n=r.enemies.get(e);return n?.role==="pawn"&&wr(...E(e),...E(t),n.color==="white")&&(r.friendlies.has(t)||Dt(Qe(t,n.color==="white"?-1:1),r.friendlies,r.enemies,r.lastMove))},Uo=e=>[...e.enemies.keys()].some(t=>qn(t,e.dest.key,e)),Cr=(e,t)=>{let r=e.dest.pos;return[...e.enemies].some(([n,i])=>{let o=E(n);return!t?.includes(i.role)&&(i.role==="pawn"&&wr(...o,...r,i.color==="white")||i.role==="knight"&&Ye(...o,...r)||i.role==="bishop"&&qt(...o,...r)||i.role==="rook"&&_t(...o,...r)||i.role==="queen"&&Nt(...o,...r)||i.role==="king"&&br(...o,...r))&&(!["bishop","rook","queen"].includes(i.role)||!_n(o,r,e.allPieces))})},Ot=e=>Ke(e)&&(Dt(e.dest.key,e.friendlies,e.enemies,e.lastMove)||Cr(e)),Dt=(e,t,r,n)=>{if(!e||n&&e!==n[1])return!1;let i=E(e),o=t.get(e);return o?.role==="pawn"&&i[1]===(o.color==="white"?3:4)&&(!n||te(E(n[0])[1],i[1])===2)&&[1,-1].some(s=>{let a=Y([i[0]+s,i[1]]);return!!a&&r.get(a)?.role==="pawn"})},jo=(e,t)=>{if(e.unrestrictedPremoves)return!0;let r=Ze(...e.orig.pos,...e.dest.pos);t&&r.push(e.dest.key);let n=r.filter(s=>e.friendlies.has(s));if(!n.length)return!0;let i=n[0],o=Qe(i,e.color==="white"?-1:1);return n.length===1&&Dt(i,e.friendlies,e.enemies,e.lastMove)&&!!o&&!r.includes(o)},Yo=(e,t)=>{if(e.unrestrictedPremoves)return!0;let r=Ze(...e.orig.pos,...e.dest.pos);t&&r.push(e.dest.key);let n=r.filter(h=>e.enemies.has(h));if(n.length>1)return!1;if(!n.length)return!0;let i=n[0],o=e.enemies.get(i);if(!o||o.role!=="pawn")return!0;let s=o.color==="white"?1:-1,a=Qe(i,s),l=a?[...Mn(a).filter(h=>Wo(i,h,e)),...[a,Qe(a,s)].filter(h=>!!h).filter(h=>qn(i,h,e))]:[],c=[...r,e.orig.key];return l.some(h=>!c.includes(h))},Sr=(e,t)=>jo(e,t)&&Yo(e,t),Zo=e=>{let t=e.color==="white"?1:-1;return te(e.orig.pos[0],e.dest.pos[0])>1?!1:te(e.orig.pos[0],e.dest.pos[0])?e.dest.pos[1]!==e.orig.pos[1]+t?!1:e.unrestrictedPremoves||Go(e)?!0:Ke(e)?Cr(e):Uo(e)||Dt(Y([e.dest.pos[0],e.dest.pos[1]+t]),e.friendlies,e.enemies,e.lastMove)||Cr(e,["pawn"]):vr(...e.orig.pos,...e.dest.pos,e.color==="white")&&Sr(e,!0)},Qo=e=>Ye(...e.orig.pos,...e.dest.pos)&&(e.unrestrictedPremoves||!Ke(e)||Ot(e)),Nn=e=>qt(...e.orig.pos,...e.dest.pos)&&Sr(e,!1)&&(e.unrestrictedPremoves||!Ke(e)||Ot(e)),Tn=e=>_t(...e.orig.pos,...e.dest.pos)&&Sr(e,!1)&&(e.unrestrictedPremoves||!Ke(e)||Ot(e)),Xo=e=>Nn(e)||Tn(e),Jo=e=>br(...e.orig.pos,...e.dest.pos)&&(e.unrestrictedPremoves||!Ke(e)||Ot(e))||e.canCastle&&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]))&&(e.unrestrictedPremoves||Ze(...e.orig.pos,e.dest.pos[0]>e.orig.pos[0]?7:1,e.dest.pos[1]).map(t=>e.allPieces.get(t)).every(t=>!t||Te(t,{role:"rook",color:e.color}))),es={pawn:Zo,knight:Qo,bishop:Nn,rook:Tn,queen:Xo,king:Jo};function Pr(e,t){let r=e.pieces,n=e.premovable.castle,i=!!e.premovable.unrestrictedPremoves,o=r.get(t);if(!o||o.color===e.turnColor)return[];let s=o.color,a=new Map([...r].filter(([g,m])=>m.color===s)),l=new Map([...r].filter(([g,m])=>m.color===Ie(s))),c={key:t,pos:E(t)},h=g=>es[o.role](g)&&e.premovable.additionalPremoveRequirements(g),f={orig:c,role:o.role,allPieces:r,friendlies:a,enemies:l,unrestrictedPremoves:i,color:s,canCastle:n,rookFilesFriendlies:Array.from(r).filter(([g,m])=>g[1]===(s==="white"?"1":"8")&&m.color===s&&m.role==="rook").map(([g])=>E(g)[0]),lastMove:e.lastMove};return Cn.filter(g=>h({...f,dest:g})).map(g=>g.key)}function G(e,...t){e&&setTimeout(()=>e(...t),1)}function Rn(e){e.orientation=Ie(e.orientation),e.animation.current=e.draggable.current=e.selected=void 0}function On(e,t){for(let[r,n]of t)n?e.pieces.set(r,n):e.pieces.delete(r)}function Dn(e,t){if(e.check=void 0,t===!0&&(t=e.turnColor),t)for(let[r,n]of e.pieces)n.role==="king"&&n.color===t&&(e.check=r)}function ts(e,t,r,n){ie(e),e.premovable.current=[t,r],G(e.premovable.events.set,t,r,n)}function ne(e){e.premovable.current&&(e.premovable.current=void 0,G(e.premovable.events.unset))}function rs(e,t,r){ne(e),e.predroppable.current={role:t,key:r},G(e.predroppable.events.set,t,r)}function ie(e){let t=e.predroppable;t.current&&(t.current=void 0,G(t.events.unset))}function ns(e,t,r){if(!e.autoCastle)return!1;let n=e.pieces.get(t);if(!n||n.role!=="king")return!1;let i=E(t),o=E(r);if(i[1]!==0&&i[1]!==7||i[1]!==o[1])return!1;i[0]===4&&!e.pieces.has(r)&&(o[0]===6?r=Me([7,o[1]]):o[0]===2&&(r=Me([0,o[1]])));let s=e.pieces.get(r);return!s||s.color!==n.color||s.role!=="rook"?!1:(e.pieces.delete(t),e.pieces.delete(r),i[0]<o[0]?(e.pieces.set(Me([6,o[1]]),n),e.pieces.set(Me([5,o[1]]),s)):(e.pieces.set(Me([2,o[1]]),n),e.pieces.set(Me([3,o[1]]),s)),!0)}function Mr(e,t,r){let n=e.pieces.get(t),i=e.pieces.get(r);if(t===r||!n)return!1;let o=i&&i.color!==n.color?i:void 0;return r===e.selected&&H(e),G(e.events.move,t,r,o),ns(e,t,r)||(e.pieces.set(r,n),e.pieces.delete(t)),e.lastMove=[t,r],e.check=void 0,G(e.events.change),o||!0}function Bt(e,t,r,n){if(e.pieces.has(r))if(n)e.pieces.delete(r);else return!1;return G(e.events.dropNewPiece,t,r),e.pieces.set(r,t),e.lastMove=[r],e.check=void 0,G(e.events.change),e.movable.dests=void 0,e.turnColor=Ie(e.turnColor),!0}function Bn(e,t,r){let n=Mr(e,t,r);return n&&(e.movable.dests=void 0,e.turnColor=Ie(e.turnColor),e.animation.current=void 0),n}function Er(e,t,r){if(It(e,t,r)){let n=Bn(e,t,r);if(n){let i=e.hold.stop();H(e);let o={premove:!1,ctrlKey:e.stats.ctrlKey,holdTime:i};return n!==!0&&(o.captured=n),G(e.movable.events.after,t,r,o),!0}}else if(os(e,t,r))return ts(e,t,r,{ctrlKey:e.stats.ctrlKey}),H(e),!0;return H(e),!1}function Lt(e,t,r,n){let i=e.pieces.get(t);i&&(is(e,t,r)||n)?(e.pieces.delete(t),Bt(e,i,r,n),G(e.movable.events.afterNewPiece,i.role,r,{premove:!1,predrop:!1})):i&&ss(e,t,r)?rs(e,i.role,r):(ne(e),ie(e)),e.pieces.delete(t),H(e)}function et(e,t,r){if(G(e.events.select,t),e.selected){if(e.selected===t&&!e.draggable.enabled){H(e),e.hold.cancel();return}else if((e.selectable.enabled||r)&&e.selected!==t&&Er(e,e.selected,t)){e.stats.dragged=!1;return}}(e.selectable.enabled||e.draggable.enabled)&&(Ln(e,t)||_r(e,t))&&(Ar(e,t),e.hold.start())}function Ar(e,t){e.selected=t,_r(e,t)?e.premovable.customDests||(e.premovable.dests=Pr(e,t)):e.premovable.dests=void 0}function H(e){e.selected=void 0,e.premovable.dests=void 0,e.hold.cancel()}function Ln(e,t){let r=e.pieces.get(t);return!!r&&(e.movable.color==="both"||e.movable.color===r.color&&e.turnColor===r.color)}var It=(e,t,r)=>t!==r&&Ln(e,t)&&(e.movable.free||!!e.movable.dests?.get(t)?.includes(r));function is(e,t,r){let n=e.pieces.get(t);return!!n&&(t===r||!e.pieces.has(r))&&(e.movable.color==="both"||e.movable.color===n.color&&e.turnColor===n.color)}function _r(e,t){let r=e.pieces.get(t);return!!r&&e.premovable.enabled&&e.movable.color===r.color&&e.turnColor!==r.color}var os=(e,t,r)=>t!==r&&_r(e,t)&&(e.premovable.customDests?.get(t)??Pr(e,t)).includes(r);function ss(e,t,r){let n=e.pieces.get(t),i=e.pieces.get(r);return!!n&&(!i||i.color!==e.movable.color)&&e.predroppable.enabled&&(n.role!=="pawn"||r[1]!=="1"&&r[1]!=="8")&&e.movable.color===n.color&&e.turnColor!==n.color}function In(e,t){let r=e.pieces.get(t);return!!r&&e.draggable.enabled&&(e.movable.color==="both"||e.movable.color===r.color&&(e.turnColor===r.color||e.premovable.enabled))}function Kn(e){let t=e.premovable.current;if(!t)return!1;let r=t[0],n=t[1],i=!1;if(It(e,r,n)){let o=Bn(e,r,n);if(o){let s={premove:!0};o!==!0&&(s.captured=o),G(e.movable.events.after,r,n,s),i=!0}}return ne(e),i}function Fn(e,t){let r=e.predroppable.current,n=!1;if(!r)return!1;if(t(r)){let i={role:r.role,color:e.movable.color};Bt(e,i,r.key)&&(G(e.movable.events.afterNewPiece,r.role,r.key,{premove:!1,predrop:!0}),n=!0)}return ie(e),n}function tt(e){ne(e),ie(e),H(e)}function qr(e){e.movable.color=e.movable.dests=e.animation.current=void 0,tt(e)}function oe(e,t,r){let n=Math.floor(8*(e[0]-r.left)/r.width);t||(n=7-n);let i=7-Math.floor(8*(e[1]-r.top)/r.height);return t||(i=7-i),n>=0&&n<8&&i>=0&&i<8?Y([n,i]):void 0}function $n(e,t,r,n){let i=E(e),o=mr.filter(c=>Pn(i,c)||Nt(i[0],i[1],c[0],c[1])||Ye(i[0],i[1],c[0],c[1])),a=o.map(c=>At(Me(c),r,n)).map(c=>Ee(t,c)),[,l]=a.reduce((c,h,f)=>c[0]<h?c:[h,f],[a[0],0]);return Y(o[l])}var L=e=>e.orientation==="white";var Tr="rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR",as={p:"pawn",r:"rook",n:"knight",b:"bishop",q:"queen",k:"king"},cs={pawn:"p",rook:"r",knight:"n",bishop:"b",queen:"q",king:"k"};function Fe(e){e==="start"&&(e=Tr);let t=new Map,r=7,n=0;for(let i of e)switch(i){case" ":case"[":return t;case"/":if(--r,r<0)return t;n=0;break;case"~":{let o=Y([n-1,r]),s=o&&t.get(o);s&&(s.promoted=!0);break}default:{let o=i.charCodeAt(0);if(o<57)n+=o-48;else{let s=i.toLowerCase(),a=Y([n,r]);a&&t.set(a,{role:as[s],color:i===s?"black":"white"}),++n}}}return t}function zn(e){return Mt.map(t=>ue.map(r=>{let n=e.get(r+t);if(n){let i=cs[n.role];return n.color==="white"&&(i=i.toUpperCase()),n.promoted&&(i+="~"),i}else return"1"}).join("")).join("/").replace(/1{2,}/g,t=>t.length.toString())}function Rr(e,t){t.animation&&(Or(e.animation,t.animation),(e.animation.duration||0)<70&&(e.animation.enabled=!1))}function Kt(e,t){if(t.movable?.dests&&(e.movable.dests=void 0),t.drawable?.autoShapes&&(e.drawable.autoShapes=[]),Or(e,t),t.fen&&(e.pieces=Fe(t.fen),e.drawable.shapes=t.drawable?.shapes||[]),"check"in t&&Dn(e,t.check||!1),"lastMove"in t&&!t.lastMove?e.lastMove=void 0:t.lastMove&&(e.lastMove=t.lastMove),e.selected&&Ar(e,e.selected),Rr(e,t),!e.movable.rookCastle&&e.movable.dests){let r=e.movable.color==="white"?"1":"8",n="e"+r,i=e.movable.dests.get(n),o=e.pieces.get(n);if(!i||!o||o.role!=="king")return;e.movable.dests.set(n,i.filter(s=>!(s==="a"+r&&i.includes("c"+r))&&!(s==="h"+r&&i.includes("g"+r))))}}function Or(e,t){for(let r in t)r==="__proto__"||r==="constructor"||!Object.prototype.hasOwnProperty.call(t,r)||(Object.prototype.hasOwnProperty.call(e,r)&&Vn(e[r])&&Vn(t[r])?Or(e[r],t[r]):e[r]=t[r])}function Vn(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?ds(e,t):ge(e,t);function ge(e,t){let r=e(t);return t.dom.redraw(),r}var Dr=(e,t)=>({key:e,pos:E(e),piece:t}),us=(e,t)=>t.sort((r,n)=>Ee(e.pos,r.pos)-Ee(e.pos,n.pos))[0];function hs(e,t){let r=new Map,n=[],i=new Map,o=[],s=[],a=new Map,l,c,h;for(let[f,g]of e)a.set(f,Dr(f,g));for(let f of Ue)l=t.pieces.get(f),c=a.get(f),l?c?Te(l,c.piece)||(o.push(c),s.push(Dr(f,l))):s.push(Dr(f,l)):c&&o.push(c);for(let f of s)c=us(f,o.filter(g=>Te(f.piece,g.piece))),c&&(h=[c.pos[0]-f.pos[0],c.pos[1]-f.pos[1]],r.set(f.key,h.concat(h)),n.push(c.key));for(let f of o)n.includes(f.key)||i.set(f.key,f.piece);return{anims:r,fadings:i}}function Hn(e,t){let r=e.animation.current;if(r===void 0){e.dom.destroyed||e.dom.redrawNow();return}let n=1-(t-r.start)*r.frequency;if(n<=0)e.animation.current=void 0,e.dom.redrawNow();else{let i=ps(n);for(let o of r.plan.anims.values())o[2]=o[0]*i,o[3]=o[1]*i;e.dom.redrawNow(!0),requestAnimationFrame((o=performance.now())=>Hn(e,o))}}function ds(e,t){let r=new Map(t.pieces),n=e(t),i=hs(r,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||Hn(t,performance.now())}else t.dom.redraw();return n}var ps=e=>e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1;var fs=["green","red","blue","yellow"];function Gn(e,t){if(t.touches&&t.touches.length>1)return;t.stopPropagation(),t.preventDefault(),t.ctrlKey?H(e):tt(e);let r=he(t),n=oe(r,L(e),e.dom.bounds());n&&(e.drawable.current={orig:n,pos:r,brush:ms(t),snapToValidMove:e.drawable.defaultSnapToValidMove},Wn(e))}function Wn(e){requestAnimationFrame(()=>{let t=e.drawable.current;if(t){let r=oe(t.pos,L(e),e.dom.bounds());r||(t.snapToValidMove=!1);let n=t.snapToValidMove?$n(t.orig,t.pos,L(e),e.dom.bounds()):r;n!==t.mouseSq&&(t.mouseSq=n,t.dest=n!==t.orig?n:void 0,e.dom.redrawNow()),Wn(e)}})}function Un(e,t){e.drawable.current&&(e.drawable.current.pos=he(t))}function jn(e){let t=e.drawable.current;t&&(t.mouseSq&&gs(e.drawable,t),Br(e))}function Br(e){e.drawable.current&&(e.drawable.current=void 0,e.dom.redraw())}function Yn(e){e.drawable.shapes.length&&(e.drawable.shapes=[],e.dom.redraw(),Zn(e.drawable))}var Ft=(e,t)=>e.orig===t.orig&&e.dest===t.dest,Lr=(e,t)=>e.brush===t.brush;function ms(e){let t=(e.shiftKey||e.ctrlKey)&&Et(e),r=e.altKey||e.metaKey||e.getModifierState?.("AltGraph");return fs[(t?1:0)+(r?2:0)]}function gs(e,t){let r=e.shapes.find(n=>Ft(n,t));r&&(e.shapes=e.shapes.filter(n=>!Ft(n,t))),(!r||!Lr(r,t))&&e.shapes.push({orig:t.orig,dest:t.dest,brush:t.brush}),Zn(e)}function Zn(e){e.onChange&&e.onChange(e.shapes)}function Qn(e,t){if(!(e.trustAllEvents||t.isTrusted)||t.buttons!==void 0&&t.buttons>1||t.touches&&t.touches.length>1)return;let r=e.dom.bounds(),n=he(t),i=oe(n,L(e),r);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)&&Yn(e),t.cancelable!==!1&&(!t.touches||e.blockTouchScroll||o||s||bs(e,n)))t.preventDefault();else if(t.touches)return;let a=!!e.premovable.current,l=!!e.predroppable.current;e.stats.ctrlKey=t.ctrlKey,e.selected&&It(e,e.selected,i)?me(f=>et(f,i),e):et(e,i);let c=e.selected===i,h=ri(e,i);if(o&&h&&c&&In(e,i)){e.draggable.current={orig:i,piece:o,origPos:n,pos:n,started:e.draggable.autoDistance&&e.stats.dragged,element:h,previouslySelected:s,originTarget:t.target,keyHasChanged:!1},h.cgDragging=!0,h.classList.add("dragging");let f=e.dom.elements.ghost;f&&(f.className=`ghost ${o.color} ${o.role}`,Z(f,Ae(r)(E(i),L(e))),je(f,!0)),Ir(e)}else a&&ne(e),l&&ie(e);e.dom.redraw()}function bs(e,t){let r=L(e),n=e.dom.bounds(),i=Math.pow(e.touchIgnoreRadius*n.width/16,2)*2;for(let o of e.pieces.keys()){let s=At(o,r,n);if(Ee(s,t)<=i)return!0}return!1}function Xn(e,t,r,n){e.pieces.set("a0",t),e.dom.redraw();let o=he(r);e.draggable.current={orig:"a0",piece:t,origPos:o,pos:o,started:!0,element:()=>ri(e,"a0"),originTarget:r.target,newPiece:!0,force:!!n,keyHasChanged:!1},Ir(e)}function Ir(e){requestAnimationFrame(()=>{let t=e.draggable.current;if(!t)return;e.animation.current?.plan.anims.has(t.orig)&&(e.animation.current=void 0);let r=e.pieces.get(t.orig);if(!r||!Te(r,t.piece))Re(e);else if(!t.started&&Ee(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 n=e.dom.bounds();Z(t.element,[t.pos[0]-n.left-n.width/16,t.pos[1]-n.top-n.height/16]),t.keyHasChanged||(t.keyHasChanged=t.orig!==oe(t.pos,L(e),n))}Ir(e)})}function Jn(e,t){e.draggable.current&&(!t.touches||t.touches.length<2)&&(e.draggable.current.pos=he(t))}function ei(e,t){let r=e.draggable.current;if(!r)return;if(t.type==="touchend"&&t.cancelable!==!1&&t.preventDefault(),t.type==="touchend"&&r.originTarget!==t.target&&!r.newPiece){e.draggable.current=void 0;return}ne(e),ie(e);let n=he(t)||r.pos,i=oe(n,L(e),e.dom.bounds());i&&r.started&&r.orig!==i?r.newPiece?Lt(e,r.orig,i,r.force):(e.stats.ctrlKey=t.ctrlKey,Er(e,r.orig,i)&&(e.stats.dragged=!0)):r.newPiece?e.pieces.delete(r.orig):e.draggable.deleteOnDropOff&&!i&&(e.pieces.delete(r.orig),G(e.events.change)),(r.orig===r.previouslySelected||r.keyHasChanged)&&(r.orig===i||!i)?H(e):e.selectable.enabled||H(e),ti(e),e.draggable.current=void 0,e.dom.redraw()}function Re(e){let t=e.draggable.current;t&&(t.newPiece&&e.pieces.delete(t.orig),e.draggable.current=void 0,H(e),ti(e),e.dom.redraw())}function ti(e){let t=e.dom.elements;t.ghost&&je(t.ghost,!1)}function ri(e,t){let r=e.dom.elements.board.firstChild;for(;r;){if(r.cgKey===t&&r.tagName==="PIECE")return r;r=r.nextSibling}}function ii(e,t){e.exploding={stage:1,keys:t},e.dom.redraw(),setTimeout(()=>{ni(e,2),setTimeout(()=>ni(e,void 0),120)},120)}function ni(e,t){e.exploding&&(t?e.exploding.stage=t:e.exploding=void 0,e.dom.redraw())}function oi(e,t){function r(){Rn(e),t()}return{set(n){n.orientation&&n.orientation!==e.orientation&&r(),Rr(e,n),(n.fen?me:ge)(i=>Kt(i,n),e)},state:e,getFen:()=>zn(e.pieces),toggleOrientation:r,setPieces(n){me(i=>On(i,n),e)},selectSquare(n,i){n?me(o=>et(o,n,i),e):e.selected&&(H(e),e.dom.redraw())},move(n,i){me(o=>Mr(o,n,i),e)},newPiece(n,i){me(o=>Bt(o,n,i),e)},playPremove(){if(e.premovable.current){if(me(Kn,e))return!0;e.dom.redraw()}return!1},playPredrop(n){if(e.predroppable.current){let i=Fn(e,n);return e.dom.redraw(),i}return!1},cancelPremove(){ge(ne,e)},cancelPredrop(){ge(ie,e)},cancelMove(){ge(n=>{tt(n),Re(n)},e)},stop(){ge(n=>{qr(n),Re(n)},e)},explode(n){ii(e,n)},setAutoShapes(n){ge(i=>i.drawable.autoShapes=n,e)},setShapes(n){ge(i=>i.drawable.shapes=n.slice(),e)},getKeyAtDomPos(n){return oe(n,L(e),e.dom.bounds())},redrawAll:t,dragNewPiece(n,i,o){Xn(e,n,i,o)},destroy(){qr(e),e.dom.unbind&&e.dom.unbind(),e.dom.destroyed=!0}}}function si(){return{pieces:Fe(Tr),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:Sn()}}function li(){let e=$("defs"),t=z($("filter"),{id:"cg-filter-blur"});return t.appendChild(z($("feGaussianBlur"),{stdDeviation:"0.013"})),e.appendChild(t),e}function ui(e,t){let r=e.drawable,n=r.current,i=n&&n.mouseSq?n:void 0,o=new Map,s=e.dom.bounds(),a=r.autoShapes.filter(f=>!f.piece);for(let f of r.shapes.concat(a).concat(i?[i]:[])){if(!f.dest)continue;let g=o.get(f.dest)??new Set,m=zt($t(E(f.orig),e.orientation),s),d=zt($t(E(f.dest),e.orientation),s);g.add(Fr(m,d)),o.set(f.dest,g)}let l=[],c=i?r.shapes.findIndex(f=>Ft(f,i)&&Lr(f,i)):-1;for(let[f,g]of r.shapes.concat(a).entries()){let m=c!==-1&&c===f;l.push({shape:g,current:!1,pendingErase:m,hash:ai(g,Kr(g.dest,o),!1,s,m)})}i&&c===-1&&l.push({shape:i,current:!0,hash:ai(i,Kr(i.dest,o),!0,s,!1),pendingErase:!1});let h=l.map(f=>f.hash).join(";");h!==e.drawable.prevSvgHash&&(e.drawable.prevSvgHash=h,vs(r,l,t),ys(l,t,f=>Ss(e,f,r.brushes,o,s)))}function vs(e,t,r){for(let n of[r.shapes,r.shapesBelow]){let i=n.querySelector("defs"),o=t.filter(c=>n===r.shapesBelow==!!c.shape.below),s=new Map;for(let c of o.filter(h=>h.shape.dest&&h.shape.brush)){let h=hi(e.brushes[c.shape.brush],c.shape.modifiers),{key:f,color:g}=di(c.shape);f&&g&&s.set(f,{key:f,color:g,opacity:1,lineWidth:1}),s.set(h.key,h)}let a=new Set,l=i.firstElementChild;for(;l;)a.add(l.getAttribute("cgKey")),l=l.nextElementSibling;for(let[c,h]of s.entries())a.has(c)||i.appendChild(Es(h))}}function ys(e,t,r){for(let[n,i]of[[t.shapes,t.custom],[t.shapesBelow,t.customBelow]]){let[o,s]=[n,i].map(c=>c.querySelector("g")),a=e.filter(c=>n===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 h=[],f=c.firstElementChild,g;for(;f;)g=f.getAttribute("cgHash"),l.has(g)?l.set(g,!0):h.push(f),f=f.nextElementSibling;for(let m of h)c.removeChild(m)}for(let c of a.filter(h=>!l.get(h.hash)))for(let h of r(c))h.isCustom?s.appendChild(h.el):o.appendChild(h.el)}}function ai({orig:e,dest:t,brush:r,piece:n,modifiers:i,customSvg:o,label:s,below:a},l,c,h,f){return[h.width,h.height,c,f&&"pendingErase",e,t,r,l&&"-",n&&xs(n),i&&Cs(i),o&&`custom-${ci(o.html)},${o.center?.[0]??"o"}`,s&&`label-${ci(s.text)}`,a&&"below"].filter(g=>g).join(",")}function xs(e){return[e.color,e.role,e.scale].filter(t=>t).join(",")}function Cs(e){return[e.lineWidth,e.hilite].filter(t=>t).join(",")}function ci(e){let t=0;for(let r=0;r<e.length;r++)t=(t<<5)-t+e.charCodeAt(r)>>>0;return t.toString()}function Ss(e,{shape:t,current:r,pendingErase:n,hash:i},o,s,a){let l=zt($t(E(t.orig),e.orientation),a),c=t.dest?zt($t(E(t.dest),e.orientation),a):l,h=t.brush&&hi(o[t.brush],t.modifiers),f=s.get(t.dest),g=[];if(h){let m=z($("g"),{cgHash:i});g.push({el:m}),l[0]!==c[0]||l[1]!==c[1]?m.appendChild(Ms(t,h,l,c,r,Kr(t.dest,s),n)):m.appendChild(Ps(o[t.brush],l,r,a,n))}if(t.label){let m=t.label;m.fill??(m.fill=t.brush&&o[t.brush].color);let d=t.brush?void 0:"tr";g.push({el:As(m,i,l,c,f,d),isCustom:!0})}if(t.customSvg){let m=t.customSvg.center??"orig",[d,p]=m==="label"?fi(l,c,f).map(w=>w-.5):m==="dest"?c:l,v=z($("g"),{transform:`translate(${d},${p})`,cgHash:i});v.innerHTML=`<svg width="1" height="1" viewBox="0 0 100 100">${t.customSvg.html}</svg>`,g.push({el:v,isCustom:!0})}return g}function Ps(e,t,r,n,i){let o=_s(),s=(n.width+n.height)/(4*Math.max(n.width,n.height));return z($("circle"),{stroke:e.color,"stroke-width":o[r?0:1],fill:"none",opacity:pi(e,r,i),cx:t[0],cy:t[1],r:s-o[1]/2})}function Ms(e,t,r,n,i,o,s){function a(h){let f=Ns(o&&!i),g=n[0]-r[0],m=n[1]-r[1],d=Math.atan2(m,g),p=Math.cos(d)*f,v=Math.sin(d)*f,w=di(e);return z($("line"),{stroke:h?w.color:t.color,"stroke-width":qs(t,i)*(h?1.14:1),"stroke-linecap":"round","marker-end":`url(#arrowhead-${h?w.key:t.key})`,opacity:e.modifiers?.hilite&&!s?1:pi(t,i,s),x1:r[0],y1:r[1],x2:n[0]-p,y2:n[1]-v})}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(Ts(r,n)),c.appendChild(a(!0)),l.appendChild(c),l.appendChild(a(!1)),l}function Es(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 As(e,t,r,n,i,o){let a=.4*.75**e.text.length,l=fi(r,n,i),c=o==="tr"?.4:0,h=z($("g"),{transform:`translate(${l[0]+c},${l[1]-c})`,cgHash:t});h.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 f=z($("text"),{"font-size":a,"font-family":"Noto Sans","text-anchor":"middle",fill:"white",y:.13*.75**e.text.length});return f.innerHTML=e.text,h.appendChild(f),h}function $t(e,t){return t==="white"?e:[7-e[0],7-e[1]]}function Kr(e,t){return(e&&t.has(e)&&t.get(e).size>1)===!0}function $(e){return document.createElementNS("http://www.w3.org/2000/svg",e)}function z(e,t){for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.setAttribute(r,t[r]);return e}function hi(e,t){return t?{color:e.color,opacity:Math.round(e.opacity*10)/10,lineWidth:Math.round(t.lineWidth||e.lineWidth),key:[e.key,t.lineWidth].filter(r=>r).join("")}:e}function _s(){return[3/64,4/64]}function qs(e,t){return(e.lineWidth||10)*(t?.85:1)/64}function di(e){let t=e.modifiers?.hilite;return{key:t&&`hilite-${t.replace("#","")}`,color:t}}function pi(e,t,r){return(e.opacity||1)*(r?.6:t?.9:1)}function Ns(e){return(e?20:10)/64}function zt(e,t){let r=Math.min(1,t.width/t.height),n=Math.min(1,t.height/t.width);return[(e[0]-3.5)*r,(3.5-e[1])*n]}function Ts(e,t){let r={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:r.from[0],y:r.from[1],width:r.to[0]-r.from[0],height:r.to[1]-r.from[1],fill:"none",stroke:"none"})}function Fr(e,t,r=!0){let n=Math.atan2(t[1]-e[1],t[0]-e[0])+Math.PI;return r?(Math.round(n*8/Math.PI)+16)%16:n}function Rs(e,t){return Math.sqrt([e[0]-t[0],e[1]-t[1]].reduce((r,n)=>r+n*n,0))}function fi(e,t,r){let n=Rs(e,t),i=Fr(e,t,!1);if(r&&(n-=33/64,r.size>1)){n-=10/64;let o=Fr(e,t);(r.has((o+1)%16)||r.has((o+15)%16))&&o&1&&(n-=.4)}return[e[0]-Math.cos(i)*n,e[1]-Math.sin(i)*n].map(o=>o+.5)}function gi(e,t){e.innerHTML="",e.classList.add("cg-wrap");for(let h of vn)e.classList.toggle("orientation-"+h,t.orientation===h);e.classList.toggle("manipulable",!t.viewOnly);let r=Q("cg-container");e.appendChild(r);let n=Q("cg-board");r.appendChild(n);let i,o,s,a,l;if(t.drawable.visible&&([i,o]=["cg-shapes-below","cg-shapes"].map(h=>mi(h,!0)),[s,a]=["cg-custom-below","cg-custom-svgs"].map(h=>mi(h,!1)),l=Q("cg-auto-pieces"),r.appendChild(i),r.appendChild(s),r.appendChild(o),r.appendChild(a),r.appendChild(l)),t.coordinates){let h=t.orientation==="black"?" black":"",f=t.ranksPosition==="left"?" left":"";if(t.coordinatesOnSquares){let g=t.orientation==="white"?m=>m+1:m=>8-m;ue.forEach((m,d)=>r.appendChild($r(Pe.map(p=>m+p),"squares rank"+g(d)+h+f)))}else r.appendChild($r(Pe,"ranks"+h+f)),r.appendChild($r(ue,"files"+h))}let c;return t.draggable.enabled&&t.draggable.showGhost&&(c=Q("piece","ghost"),je(c,!1),r.appendChild(c)),{board:n,container:r,wrap:e,ghost:c,shapes:o,shapesBelow:i,custom:a,customBelow:s,autoPieces:l}}function mi(e,t){let r=z($("svg"),{class:e,viewBox:t?"-4 -4 8 8":"-3.5 -3.5 8 8",preserveAspectRatio:"xMidYMid slice"});return t&&r.appendChild(li()),r.appendChild($("g")),r}function $r(e,t){let r=Q("coords",t),n;for(let i of e)n=Q("coord"),n.textContent=i,r.appendChild(n);return r}function ki(e,t){if(!e.dropmode.active)return;ne(e),ie(e);let r=e.dropmode.piece;if(r){e.pieces.set("a0",r);let n=he(t),i=n&&oe(n,L(e),e.dom.bounds());i&&Lt(e,"a0",i)}e.dom.redraw()}function wi(e,t){let r=e.dom.elements.board;if("ResizeObserver"in window&&new ResizeObserver(t).observe(e.dom.elements.wrap),(e.disableContextMenu||e.drawable.enabled)&&r.addEventListener("contextmenu",i=>i.preventDefault()),e.viewOnly)return;let n=Ds(e);r.addEventListener("touchstart",n,{passive:!1}),r.addEventListener("mousedown",n,{passive:!1})}function vi(e,t){let r=[];if("ResizeObserver"in window||r.push(rt(document.body,"chessground.resize",t)),!e.viewOnly){let n=bi(e,Jn,Un),i=bi(e,ei,jn);for(let s of["touchmove","mousemove"])r.push(rt(document,s,n));for(let s of["touchend","mouseup"])r.push(rt(document,s,i));let o=()=>e.dom.bounds.clear();r.push(rt(document,"scroll",o,{capture:!0,passive:!0})),r.push(rt(window,"resize",o,{passive:!0}))}return()=>r.forEach(n=>n())}function rt(e,t,r,n){return e.addEventListener(t,r,n),()=>e.removeEventListener(t,r,n)}var Ds=e=>t=>{e.draggable.current?Re(e):e.drawable.current?Br(e):t.shiftKey||Et(t)?e.drawable.enabled&&Gn(e,t):e.viewOnly||(e.dropmode.active?ki(e,t):Qn(e,t))},bi=(e,t,r)=>n=>{e.drawable.current?e.drawable.enabled&&r(e,n):e.viewOnly||t(e,n)};function xi(e){let t=L(e),r=Ae(e.dom.bounds()),n=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=Ls(e),h=new Set,f=new Set,g=new Map,m=new Map,d,p,v,w,x,A,C,P,_,q;for(p=n.firstChild;p;){if(d=p.cgKey,Si(p))if(v=i.get(d),x=s.get(d),A=a.get(d),w=p.cgPiece,p.cgDragging&&(!l||l.orig!==d)&&(p.classList.remove("dragging"),Z(p,r(E(d),t)),p.cgDragging=!1),!A&&p.cgFading&&(p.cgFading=!1,p.classList.remove("fading")),v){if(x&&p.cgAnimating&&w===nt(v)){let y=E(d);y[0]+=x[2],y[1]+=x[3],p.classList.add("anim"),Z(p,r(y,t))}else p.cgAnimating&&(p.cgAnimating=!1,p.classList.remove("anim"),Z(p,r(E(d),t)),e.addPieceZIndex&&(p.style.zIndex=zr(E(d),t)));w===nt(v)&&(!A||!p.cgFading)?h.add(d):A&&w===nt(A)?(p.classList.add("fading"),p.cgFading=!0):Vr(g,w,p)}else Vr(g,w,p);else if(Pi(p)){let y=p.className;c.get(d)===y?f.add(d):Vr(m,y,p)}p=p.nextSibling}for(let[y,T]of c)if(!f.has(y)){_=m.get(T),q=_&&_.pop();let R=r(E(y),t);if(q)q.cgKey=y,Z(q,R);else{let N=Q("square",T);N.cgKey=y,Z(N,R),n.insertBefore(N,n.firstChild)}}for(let[y,T]of i)if(x=s.get(y),!h.has(y))if(C=g.get(nt(T)),P=C&&C.pop(),P){P.cgKey=y,P.cgFading&&(P.classList.remove("fading"),P.cgFading=!1);let R=E(y);e.addPieceZIndex&&(P.style.zIndex=zr(R,t)),x&&(P.cgAnimating=!0,P.classList.add("anim"),R[0]+=x[2],R[1]+=x[3]),Z(P,r(R,t))}else{let R=nt(T),N=Q("piece",R),I=E(y);N.cgPiece=R,N.cgKey=y,x&&(N.cgAnimating=!0,I[0]+=x[2],I[1]+=x[3]),Z(N,r(I,t)),e.addPieceZIndex&&(N.style.zIndex=zr(I,t)),n.appendChild(N)}for(let y of g.values())yi(e,y);for(let y of m.values())yi(e,y)}function Ci(e){let t=L(e),r=Ae(e.dom.bounds()),n=e.dom.elements.board.firstChild;for(;n;)(Si(n)&&!n.cgAnimating||Pi(n))&&Z(n,r(E(n.cgKey),t)),n=n.nextSibling}function Hr(e){let t=e.dom.elements.wrap.getBoundingClientRect(),r=e.dom.elements.container,n=t.height/t.width,i=Math.floor(t.width*window.devicePixelRatio/8)*8/window.devicePixelRatio,o=i*n;r.style.width=i+"px",r.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 Si=e=>e.tagName==="PIECE",Pi=e=>e.tagName==="SQUARE";function yi(e,t){for(let r of t)e.dom.elements.board.removeChild(r)}function zr(e,t){let n=e[1];return`${t?10-n:3+n}`}var nt=e=>`${e.color} ${e.role}`;function Ls(e){let t=new Map;if(e.lastMove&&e.highlight.lastMove)for(let i of e.lastMove)ke(t,i,"last-move");if(e.check&&e.highlight.check&&ke(t,e.check,"check"),e.selected&&(ke(t,e.selected,"selected"),e.movable.showDests)){let i=e.movable.dests?.get(e.selected);if(i)for(let s of i)ke(t,s,"move-dest"+(e.pieces.has(s)?" oc":""));let o=e.premovable.customDests?.get(e.selected)??e.premovable.dests;if(o)for(let s of o)ke(t,s,"premove-dest"+(e.pieces.has(s)?" oc":""))}let r=e.premovable.current;if(r)for(let i of r)ke(t,i,"current-premove");else e.predroppable.current&&ke(t,e.predroppable.current.key,"current-premove");let n=e.exploding;if(n)for(let i of n.keys)ke(t,i,"exploding"+n.stage);return e.highlight.custom&&e.highlight.custom.forEach((i,o)=>{ke(t,o,i)}),t}function ke(e,t,r){let n=e.get(t);n?e.set(t,`${n} ${r}`):e.set(t,r)}function Vr(e,t,r){let n=e.get(t);n?n.push(r):e.set(t,[r])}function Mi(e,t,r){let n=new Map,i=[];for(let a of e)n.set(a.hash,!1);let o=t.firstElementChild,s;for(;o;)s=o.getAttribute("cgHash"),n.has(s)?n.set(s,!0):i.push(o),o=o.nextElementSibling;for(let a of i)t.removeChild(a);for(let a of e)n.get(a.hash)||t.appendChild(r(a))}function Ei(e,t){let n=e.drawable.autoShapes.filter(i=>i.piece).map(i=>({shape:i,hash:Ks(i),current:!1,pendingErase:!1}));Mi(n,t,i=>Is(e,i,e.dom.bounds()))}function Ai(e){let t=L(e),r=Ae(e.dom.bounds()),n=e.dom.elements.autoPieces?.firstChild;for(;n;)kr(n,r(E(n.cgKey),t),n.cgScale),n=n.nextSibling}function Is(e,{shape:t,hash:r},n){let i=t.orig,o=t.piece?.role,s=t.piece?.color,a=t.piece?.scale,l=Q("piece",`${o} ${s}`);return l.setAttribute("cgHash",r),l.cgKey=i,l.cgScale=a,kr(l,Ae(n)(E(i),L(e)),a),l}var Ks=e=>[e.orig,e.piece?.role,e.piece?.color,e.piece?.scale].join(",");function _i(e,t){let r=si();Kt(r,t||{});function n(){let i="dom"in r?r.dom.unbind:void 0,o=gi(e,r),s=gr(()=>o.board.getBoundingClientRect()),a=h=>{xi(c),o.autoPieces&&Ei(c,o.autoPieces),!h&&o.shapes&&ui(c,o)},l=()=>{Hr(c),Ci(c),o.autoPieces&&Ai(c)},c=r;return c.dom={elements:o,bounds:s,redraw:$s(a),redrawNow:a,unbind:i},c.drawable.prevSvgHash="",Hr(c),a(!1),wi(c,l),i||(c.dom.unbind=vi(c,l)),c.events.insert&&c.events.insert(o),c}return oi(n(),n)}function $s(e){let t=!1;return()=>{t||(t=!0,requestAnimationFrame(()=>{e(),t=!1}))}}function zs(e,t){return document.createElement(e,t)}function Vs(e,t,r){return document.createElementNS(e,t,r)}function Hs(){return Oe(document.createDocumentFragment())}function Gs(e){return document.createTextNode(e)}function Ws(e){return document.createComment(e)}function Us(e,t,r){if(be(e)){let n=e;for(;n&&be(n);)n=Oe(n).parent;e=n??e}be(t)&&(t=Oe(t,e)),r&&be(r)&&(r=Oe(r).firstChildNode),e.insertBefore(t,r)}function js(e,t){e.removeChild(t)}function Ys(e,t){be(t)&&(t=Oe(t,e)),e.appendChild(t)}function qi(e){if(be(e)){for(;e&&be(e);)e=Oe(e).parent;return e??null}return e.parentNode}function Zs(e){var t;if(be(e)){let r=Oe(e),n=qi(r);if(n&&r.lastChildNode){let i=Array.from(n.childNodes),o=i.indexOf(r.lastChildNode);return(t=i[o+1])!==null&&t!==void 0?t:null}return null}return e.nextSibling}function Qs(e){return e.tagName}function Xs(e,t){e.textContent=t}function Js(e){return e.textContent}function ea(e){return e.nodeType===1}function ta(e){return e.nodeType===3}function ra(e){return e.nodeType===8}function be(e){return e.nodeType===11}function Oe(e,t){var r,n,i;let o=e;return(r=o.parent)!==null&&r!==void 0||(o.parent=t??null),(n=o.firstChildNode)!==null&&n!==void 0||(o.firstChildNode=e.firstChild),(i=o.lastChildNode)!==null&&i!==void 0||(o.lastChildNode=e.lastChild),o}var Ni={createElement:zs,createElementNS:Vs,createTextNode:Gs,createDocumentFragment:Hs,createComment:Ws,insertBefore:Us,removeChild:js,appendChild:Ys,parentNode:qi,nextSibling:Zs,tagName:Qs,setTextContent:Xs,getTextContent:Js,isElement:ea,isText:ta,isComment:ra,isDocumentFragment:be};function De(e,t,r,n,i){let o=t===void 0?void 0:t.key;return{sel:e,data:t,children:r,text:n,elm:i,key:o}}var it=Array.isArray;function $e(e){return typeof e=="string"||typeof e=="number"||e instanceof String||e instanceof Number}function Gr(e){return e===void 0}function j(e){return e!==void 0}var Wr=De("",{},[],void 0,void 0);function ot(e,t){var r,n;let i=e.key===t.key,o=((r=e.data)===null||r===void 0?void 0:r.is)===((n=t.data)===null||n===void 0?void 0:n.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 na(){throw new Error("The document fragment is not supported on this platform.")}function ia(e,t){return e.isElement(t)}function oa(e,t){return e.isDocumentFragment(t)}function sa(e,t,r){var n;let i={};for(let o=t;o<=r;++o){let s=(n=e[o])===null||n===void 0?void 0:n.key;s!==void 0&&(i[s]=o)}return i}var aa=["create","update","remove","destroy","pre","post"];function Ur(e,t,r){let n={create:[],update:[],remove:[],destroy:[],pre:[],post:[]},i=t!==void 0?t:Ni;for(let d of aa)for(let p of e){let v=p[d];v!==void 0&&n[d].push(v)}function o(d){let p=d.id?"#"+d.id:"",v=d.getAttribute("class"),w=v?"."+v.split(" ").join("."):"";return De(i.tagName(d).toLowerCase()+p+w,{},[],void 0,d)}function s(d){return De(void 0,{},[],void 0,d)}function a(d,p){return function(){if(--p===0){let w=i.parentNode(d);i.removeChild(w,d)}}}function l(d,p){var v,w,x,A;let C,P=d.data;if(P!==void 0){let y=(v=P.hook)===null||v===void 0?void 0:v.init;j(y)&&(y(d),P=d.data)}let _=d.children,q=d.sel;if(q==="!")Gr(d.text)&&(d.text=""),d.elm=i.createComment(d.text);else if(q!==void 0){let y=q.indexOf("#"),T=q.indexOf(".",y),R=y>0?y:q.length,N=T>0?T:q.length,I=y!==-1||T!==-1?q.slice(0,Math.min(R,N)):q,X=d.elm=j(P)&&j(C=P.ns)?i.createElementNS(C,I,P):i.createElement(I,P);for(R<N&&X.setAttribute("id",q.slice(R+1,N)),T>0&&X.setAttribute("class",q.slice(N+1).replace(/\./g," ")),C=0;C<n.create.length;++C)n.create[C](Wr,d);if(it(_))for(C=0;C<_.length;++C){let en=_[C];en!=null&&i.appendChild(X,l(en,p))}else $e(d.text)&&i.appendChild(X,i.createTextNode(d.text));let ct=d.data.hook;j(ct)&&((w=ct.create)===null||w===void 0||w.call(ct,Wr,d),ct.insert&&p.push(d))}else if(!((x=r?.experimental)===null||x===void 0)&&x.fragments&&d.children){for(d.elm=((A=i.createDocumentFragment)!==null&&A!==void 0?A:na)(),C=0;C<n.create.length;++C)n.create[C](Wr,d);for(C=0;C<d.children.length;++C){let y=d.children[C];y!=null&&i.appendChild(d.elm,l(y,p))}}else d.elm=i.createTextNode(d.text);return d.elm}function c(d,p,v,w,x,A){for(;w<=x;++w){let C=v[w];C!=null&&i.insertBefore(d,l(C,A),p)}}function h(d){var p,v;let w=d.data;if(w!==void 0){(v=(p=w?.hook)===null||p===void 0?void 0:p.destroy)===null||v===void 0||v.call(p,d);for(let x=0;x<n.destroy.length;++x)n.destroy[x](d);if(d.children!==void 0)for(let x=0;x<d.children.length;++x){let A=d.children[x];A!=null&&typeof A!="string"&&h(A)}}}function f(d,p,v,w){for(var x,A;v<=w;++v){let C,P,_=p[v];if(_!=null)if(j(_.sel)){h(_),C=n.remove.length+1,P=a(_.elm,C);for(let y=0;y<n.remove.length;++y)n.remove[y](_,P);let q=(A=(x=_?.data)===null||x===void 0?void 0:x.hook)===null||A===void 0?void 0:A.remove;j(q)?q(_,P):P()}else _.children?(h(_),f(d,_.children,0,_.children.length-1)):i.removeChild(d,_.elm)}}function g(d,p,v,w){let x=0,A=0,C=p.length-1,P=p[0],_=p[C],q=v.length-1,y=v[0],T=v[q],R,N,I,X;for(;x<=C&&A<=q;)P==null?P=p[++x]:_==null?_=p[--C]:y==null?y=v[++A]:T==null?T=v[--q]:ot(P,y)?(m(P,y,w),P=p[++x],y=v[++A]):ot(_,T)?(m(_,T,w),_=p[--C],T=v[--q]):ot(P,T)?(m(P,T,w),i.insertBefore(d,P.elm,i.nextSibling(_.elm)),P=p[++x],T=v[--q]):ot(_,y)?(m(_,y,w),i.insertBefore(d,_.elm,P.elm),_=p[--C],y=v[++A]):(R===void 0&&(R=sa(p,x,C)),N=R[y.key],Gr(N)?i.insertBefore(d,l(y,w),P.elm):(I=p[N],I.sel!==y.sel?i.insertBefore(d,l(y,w),P.elm):(m(I,y,w),p[N]=void 0,i.insertBefore(d,I.elm,P.elm))),y=v[++A]);A<=q&&(X=v[q+1]==null?null:v[q+1].elm,c(d,X,v,A,q,w)),x<=C&&f(d,p,x,C)}function m(d,p,v){var w,x,A,C,P,_,q,y;let T=(w=p.data)===null||w===void 0?void 0:w.hook;(x=T?.prepatch)===null||x===void 0||x.call(T,d,p);let R=p.elm=d.elm;if(d===p)return;if(p.data!==void 0||j(p.text)&&p.text!==d.text){(A=p.data)!==null&&A!==void 0||(p.data={}),(C=d.data)!==null&&C!==void 0||(d.data={});for(let X=0;X<n.update.length;++X)n.update[X](d,p);(q=(_=(P=p.data)===null||P===void 0?void 0:P.hook)===null||_===void 0?void 0:_.update)===null||q===void 0||q.call(_,d,p)}let N=d.children,I=p.children;Gr(p.text)?j(N)&&j(I)?N!==I&&g(R,N,I,v):j(I)?(j(d.text)&&i.setTextContent(R,""),c(R,null,I,0,I.length-1,v)):j(N)?f(R,N,0,N.length-1):j(d.text)&&i.setTextContent(R,""):d.text!==p.text&&(j(N)&&f(R,N,0,N.length-1),i.setTextContent(R,p.text)),(y=T?.postpatch)===null||y===void 0||y.call(T,d,p)}return function(p,v){let w,x,A,C=[];for(w=0;w<n.pre.length;++w)n.pre[w]();for(ia(i,p)?p=o(p):oa(i,p)&&(p=s(p)),ot(p,v)?m(p,v,C):(x=p.elm,A=i.parentNode(x),l(v,C),A!==null&&(i.insertBefore(A,v.elm,i.nextSibling(x)),f(A,[p],0,0))),w=0;w<C.length;++w)C[w].data.hook.insert(C[w]);for(w=0;w<n.post.length;++w)n.post[w]();return v}}function Ri(e,t,r){if(e.ns="http://www.w3.org/2000/svg",r!=="foreignObject"&&t!==void 0)for(let n=0;n<t.length;++n){let i=t[n];if(typeof i=="string")continue;let o=i.data;o!==void 0&&Ri(o,i.children,i.sel)}}function S(e,t,r){let n={},i,o,s;if(r!==void 0?(t!==null&&(n=t),it(r)?i=r:$e(r)?o=r.toString():r&&r.sel&&(i=[r])):t!=null&&(it(t)?i=t:$e(t)?o=t.toString():t&&t.sel?i=[t]:n=t),i!==void 0)for(s=0;s<i.length;++s)$e(i[s])&&(i[s]=De(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]==="#")&&Ri(n,i,e),De(e,n,i,o,void 0)}var ca="http://www.w3.org/1999/xlink",la="http://www.w3.org/XML/1998/namespace";function Oi(e,t){let r,n=t.elm,i=e.data.attrs,o=t.data.attrs;if(!(!i&&!o)&&i!==o){i=i||{},o=o||{};for(r in o){let s=o[r];i[r]!==s&&(s===!0?n.setAttribute(r,""):s===!1?n.removeAttribute(r):r.charCodeAt(0)!==120?n.setAttribute(r,s):r.charCodeAt(3)===58?n.setAttributeNS(la,r,s):r.charCodeAt(5)===58?n.setAttributeNS(ca,r,s):n.setAttribute(r,s))}for(r in i)r in o||n.removeAttribute(r)}}var jr={create:Oi,update:Oi};function Di(e,t){let r,n,i=t.elm,o=e.data.class,s=t.data.class;if(!(!o&&!s)&&o!==s){o=o||{},s=s||{};for(n in o)o[n]&&!Object.prototype.hasOwnProperty.call(s,n)&&i.classList.remove(n);for(n in s)r=s[n],r!==o[n]&&i.classList[r?"add":"remove"](n)}}var Yr={create:Di,update:Di};var Bi=e=>{let t=Zr[e];return t?S("nag",{attrs:{title:t.name}},t.symbol):void 0},Zr={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 Ii(e,t,r){for(let n of["touchstart","mousedown"])e.addEventListener(n,i=>{t(i),i.preventDefault(),r&&r()},{passive:!1})}var Qr=(e,t,r,n=!0)=>ze(i=>i.addEventListener(e,o=>{let s=t(o);return s===!1&&o.preventDefault(),r?.(),s},{passive:n}));function ze(e){return{insert:t=>e(t.elm)}}var st=e=>{if(!e&&e!==0)return["-"];let t=new Date(e*1e3),r=":",n=Li(t.getUTCMinutes())+r+Li(t.getUTCSeconds());return e>=3600?[Math.floor(e/3600)+r+n]:[n]},Li=e=>(e<10?"0":"")+e,Ki=(e,t,r,n)=>{let i=`${t.toUpperCase()}${r}`;if(!n)return`${i} ${e("aria.empty")}`;let o=e(`aria.piece.${n.role}`);return`${i} ${e(`aria.${n.color}`)} ${o}`},Vt=(e,t,r)=>{let n=r?ua(e,r):e;if(t&&t.length>0){let i=t.map(o=>Zr[o]?.name).filter(o=>o).join(", ");i&&(n+=`, ${i}`)}return n},ua=(e,t)=>e.split("").map(r=>{if(r==="x")return t("san.takes");if(r==="+")return t("san.check");if(r==="#")return t("san.checkmate");if(r==="=")return t("san.promotesTo");if(r==="@")return t("san.droppedOn");let n=r.charCodeAt(0);return n>48&&n<58?r:n>96&&n<105?r.toUpperCase():r==="K"?t("aria.piece.king"):r==="Q"?t("aria.piece.queen"):r==="R"?t("aria.piece.rook"):r==="B"?t("aria.piece.bishop"):r==="N"?t("aria.piece.knight"):r==="O"?"O":r}).join(" ").replace("O - O - O",t("san.longCastling")).replace("O - O",t("san.shortCastling"));function Fi(e){let t=0;return r=>{t+=r.deltaY*(r.deltaMode?40:1),Math.abs(t)>=4?(e(r,!0),t=0):e(r,!1)}}function $i(e,t){let r=()=>{e(),n=Math.max(100,n-n/15),i=setTimeout(r,n)},n=350,i=setTimeout(r,500);e();let o=t.type=="touchstart"?"touchend":"mouseup";document.addEventListener(o,()=>clearTimeout(i),{once:!0})}var ha=e=>e.altKey||e.ctrlKey||e.shiftKey||e.metaKey||document.activeElement instanceof HTMLInputElement||document.activeElement instanceof HTMLTextAreaElement,zi=e=>t=>{ha(t)||(t.key=="ArrowLeft"?e.goTo("prev"):t.key=="ArrowRight"?e.goTo("next"):t.key=="f"&&e.flip())};var Vi=e=>S("div.lpv__menu.lpv__pane",{attrs:{role:"menu","aria-label":e.translate("menu")??"Menu"},hook:{insert:t=>{let r=t.elm;r.querySelector('[role="menuitem"]')?.focus(),pa(e,r)}}},[S("button.lpv__menu__entry.lpv__menu__flip.lpv__fbt",{attrs:{role:"menuitem"},hook:Qr("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(),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:Qr("click",e.togglePgn)},e.translate("getPgn")):void 0,da(e)]),da=e=>{let t=e.game.metadata.externalLink,r=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",r)}},r)},Hi=e=>S("div.lpv__controls",{attrs:{role:"navigation","aria-label":e.translate("aria.navigationControls")}},[e.pane=="board"?void 0:Ht(e,"first","step-backward"),Ht(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 r=t.elm;r.addEventListener("click",e.toggleMenu),e.menuButton=r}},attrs:{"aria-label":e.translate("menu"),"aria-expanded":String(e.pane==="menu"),"aria-haspopup":"menu"}},e.pane=="board"?void 0:"X"),Ht(e,"next","right-open"),e.pane=="board"?void 0:Ht(e,"last","step-forward")]),Ht=(e,t,r)=>{let n=e.pane=="board"&&!e.canGoTo(t);return S(`button.lpv__controls__goto.lpv__controls__goto--${t}.lpv__fbt.lpv__icon.lpv__icon-${r}`,{class:{disabled:n},hook:ze(i=>Ii(i,o=>$i(()=>e.goTo(t),o))),attrs:{"aria-label":e.translate(`aria.${t}`),"aria-disabled":String(n),disabled:n}})},pa=(e,t)=>{let r=n=>{switch(n.key){case"Enter":case" ":n.preventDefault(),document.activeElement?.click();break;case"Escape":n.preventDefault(),e.toggleMenu();break}};t.addEventListener("keydown",r)};var at={"aria-hidden":!0},Gt={role:"presentation","aria-hidden":"true"},Gi=e=>{let t=e.curData();if(!Rt(t))return"";let r=Math.ceil(t.ply/2),n=t.ply%2===1?"white":"black",i=t.san,o=e.translate("aria.move",r.toString(),e.translate(`aria.${n}`),Vt(i,t.nags,e.translate)),s=t.clocks&&t.clocks[n==="white"?"white":"black"];if(s!==void 0&&e.opts.showClocks){let l=st(s).join("");l!=="-"&&(o+=", "+e.translate("aria.remaining",l))}let a=t.comments.join(" ").trim();return a&&(o+=`. ${a}`),o},Wi=e=>{let t=e.game,r=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},n=a=>!a||a==="*"?e.translate("aria.gameInProgress"):a==="1-0"?e.translate("aria.whitesWin"):a==="0-1"?e.translate("aria.blacksWin"):a==="1/2-1/2"?e.translate("aria.draw"):a,i=r(t.players.white),o=r(t.players.black),s=n(t.metadata.result);return e.translate("aria.chessGameBetween",i,o,s)};var ji=e=>S("div.lpv__side",[S("div.lpv__moves",{attrs:{role:"complementary","aria-label":e.translate("aria.gameMoves")},hook:{insert:t=>{let r=t.elm;e.path.empty()||Ui(e,r),r.addEventListener("click",n=>{let i=n.target.getAttribute("data-path");i&&e.toPath(new re(i))},{passive:!0})},postpatch:(t,r)=>{e.autoScrollRequested&&(Ui(e,r.elm),e.autoScrollRequested=!1)}}},[...e.game.initial.comments.map(Ut),...ka(e),...fa(e)])]),fa=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)]:[]},Xr=()=>S("button.move.empty",{attrs:{"aria-hidden":"true",disabled:!0}},"..."),Jr=e=>S("index",{attrs:Gt},`${e}.`),Ut=e=>S("comment",{attrs:{role:"note"}},e),ma=()=>S("paren.open",{attrs:at},"("),ga=()=>S("paren.close",{attrs:at},")"),Wt=e=>Math.floor((e.ply-1)/2)+1,ka=e=>{let t=wa(e),r=[],n,i=e.game.moves.children.slice(1);for(e.game.initial.pos.turn=="black"&&e.game.mainline[0]&&r.push(Jr(e.game.initial.pos.fullmoves),Xr());n=(n||e.game.moves).children[0];){let o=n.data,s=o.ply%2==1;s&&r.push(Jr(Wt(o))),r.push(t(o));let a=s&&(i.length||o.comments.length)&&n.children.length;a&&r.push(Xr()),o.comments.forEach(l=>r.push(Ut(l))),i.forEach(l=>r.push(ba(e.translate,t,l))),a&&r.push(Jr(Wt(o)),Xr()),i=n.children.slice(1)}return r},ba=(e,t,r)=>S("variation",{attrs:{role:"group","aria-label":e("aria.variation")}},[...r.data.startingComments.map(Ut),...Yi(t,r)]),Yi=(e,t)=>{let r=[],n=[];t.data.ply%2==0&&r.push(S("index",{attrs:Gt},[Wt(t.data),"..."]));do{let i=t.data;i.ply%2==1&&r.push(S("index",{attrs:Gt},[Wt(i),"."])),r.push(e(i)),i.comments.forEach(o=>r.push(Ut(o))),n.forEach(o=>{r=[...r,ma(),...Yi(e,o),ga()]}),n=t.children.slice(1),t=t.children[0]}while(t);return r},wa=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"}`),Vt(t.san,t.nags,e.translate))}},[t.san,...t.nags.map(Bi)]),Ui=(e,t)=>{let r=t.querySelector(".current");if(!r){t.scrollTop=e.path.empty()?0:99999;return}t.scrollTop=r.offsetTop-t.offsetHeight/2+r.offsetHeight};function jt(e,t){let r=t=="bottom"?e.orientation():M(e.orientation()),n=e.game.players[r],i=[n.title?S("span.lpv__player__title",n.title):void 0,S("span.lpv__player__name",n.name),n.rating?S("span.lpv__player__rating",["(",n.rating,")"]):void 0];return S(`div.lpv__player.lpv__player--${t}`,[n.isLichessUser&&n.name?S("a.lpv__player__person.ulpt.user-link",{attrs:{href:`${e.opts.lichess}/@/${n.name}`,"aria-label":e.translate("aria.viewProfileOnLichess",n.name)}},i):S("span.lpv__player__person",i),e.opts.showClocks?va(e,r):void 0])}var va=(e,t)=>{let r=e.curData(),n=r.clocks&&r.clocks[t];return typeof n==null?void 0:S("div.lpv__player__clock",{class:{active:t==r.turn},attrs:{role:"timer","aria-label":st(n).join("")}},st(n))};var Zi=e=>{let t=e.flipped;return S("div.lpv__sr-only",{attrs:{role:"grid","aria-label":e.translate("aria.accessibleChessboard"),"aria-hidden":"false"}},ya(e,t))},ya=(e,t)=>{let r=e.ground?.state.pieces||Fe(e.curData().fen),n=t?Pe:Mt,i=t?[...ue].reverse():ue;return n.map(o=>S("div",{attrs:{role:"row"}},i.map(s=>{let a=`${s}${o}`,l=r.get(a);return xa(e.translate,s,o,l)})))},xa=(e,t,r,n)=>{let i=Ki(e,t,r,n);return S("span",{attrs:{role:"gridcell","aria-label":i}},i)};function Yt(e){let t=e.opts,r=`lpv.lpv--moves-${t.showMoves}.lpv--controls-${t.showControls}${t.classes?"."+t.classes.replace(" ","."):""}`,n=t.showPlayers=="auto"?e.game.hasPlayerName():t.showPlayers;return S(`div.${r}`,{class:{"lpv--menu":e.pane!="board","lpv--players":n},attrs:{role:"region",tabindex:0,"aria-label":Wi(e)},hook:ze(i=>{e.setGround(_i(i.querySelector(".cg-wrap"),Pa(e,i))),t.keyboardToMove&&i.addEventListener("keydown",zi(e))})},[S("div.lpv__sr-only",{attrs:{"aria-live":"polite","aria-atomic":"true"}},Gi(e)),Zi(e),n?jt(e,"top"):void 0,Ca(e),n?jt(e,"bottom"):void 0,t.showControls?Hi(e):void 0,t.showMoves?ji(e):void 0,e.pane=="menu"?Vi(e):e.pane=="pgn"?Sa(e):void 0])}var Ca=e=>S("div.lpv__board",{attrs:at,hook:ze(t=>{t.addEventListener("click",e.focus),e.opts.scrollToMove&&!("ontouchstart"in window)&&t.addEventListener("wheel",Fi((r,n)=>{r.preventDefault(),r.deltaY>0&&n?e.goTo("next",!1):r.deltaY<0&&n&&e.goTo("prev",!1)}))})},S("div.cg-wrap")),Sa=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)])},Pa=(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 Ma={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 Xi(e,t){let r={...Ma};return Ji(r,t),r.fen&&(r.pgn=`[FEN "${r.fen}"]
|
|
3
|
+
`);this.commentBuf=[],n.node?((t=n.node.data).comments||(t.comments=[]),n.node.data.comments.push(i)):n.root?((r=this.game).comments||(r.comments=[]),this.game.comments.push(i)):(n.startingComments||(n.startingComments=[]),n.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()}},pr=(e,t=dr)=>{let r=[];return new hr(n=>r.push(n),t,NaN).parse(e),r},No=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 bn=e=>{let t=No(e.get("Variant"));if(!t)return k.err(new D(O.Variant));let r=e.get("FEN");return r?hn(r).chain(n=>mn(t,n)):k.ok(fn(t))};function To(e){switch(e){case"G":return"green";case"R":return"red";case"Y":return"yellow";case"B":return"blue";default:return}}var Ro=e=>{let t=To(e.slice(0,1)),r=de(e.slice(1,3)),n=de(e.slice(3,5));if(!(!t||!b(r))){if(e.length===3)return{color:t,from:r,to:r};if(e.length===5&&b(n))return{color:t,from:r,to:n}}};var wn=e=>{let t,r,n,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,h)=>{let f=parseInt(l,10)*3600+parseInt(c,10)*60+parseFloat(h);return a==="emt"?t=f:a==="clk"&&(r=f)," "}).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(Ro(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 h=c&&parseInt(c,10);return n=a?{mate:parseInt(a,10),depth:h}:{pawns:parseFloat(l),depth:h}," "}).trim(),shapes:i,emt:t,clock:r,evaluation:n}};var Do=e=>Lo[e];function fr(e){return(t,...r)=>{let n=e&&e(t)||Do(t);return Bo(n??t,r)}}var Bo=(e,t)=>{let r=e;return t.forEach((n,i)=>{r=r.replace(`%${i+1}$s`,n),r=r.replace("%s",n)}),r},Lo={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 vn=["white","black"];var ue=["a","b","c","d","e","f","g","h"],Pe=["1","2","3","4","5","6","7","8"];var Mt=[...Pe].reverse(),Ue=ue.flatMap(e=>Pe.map(t=>e+t)),Y=e=>e.every(t=>t>=0&&t<=7)?Ue[8*e[0]+e[1]]:void 0,Me=e=>Y(e),E=e=>[e.charCodeAt(0)-97,e.charCodeAt(1)-49],xn=e=>{if(e)return e[1]==="@"?[e.slice(2,4)]:[e.slice(0,2),e.slice(2,4)]},mr=Ue.map(E),Cn=Ue.map((e,t)=>({key:e,pos:mr[t]}));function gr(e){let t,r=()=>(t===void 0&&(t=e()),t);return r.clear=()=>{t=void 0},r}var Sn=()=>{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}}},Ie=e=>e==="white"?"black":"white",Ee=(e,t)=>(e[0]-t[0])**2+(e[1]-t[1])**2,Te=(e,t)=>e.role===t.role&&e.color===t.color,Pn=(e,t)=>e[0]===t[0]&&e[1]===t[1],Ae=e=>(t,r)=>[(r?t[0]:7-t[0])*e.width/8,(r?7-t[1]:t[1])*e.height/8],Z=(e,t)=>{e.style.transform=`translate(${t[0]}px,${t[1]}px)`},kr=(e,t,r=1)=>{e.style.transform=`translate(${t[0]}px,${t[1]}px) scale(${r})`},je=(e,t)=>{e.style.visibility=t?"visible":"hidden"},he=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]},Io=gr(()=>!("ontouchstart"in window)&&["macintosh","firefox"].every(e=>navigator.userAgent.toLowerCase().includes(e))),Et=e=>e.button===2&&!(e.ctrlKey&&Io()),Q=(e,t)=>{let r=document.createElement(e);return t&&(r.className=t),r};function At(e,t,r){let n=E(e);return t||(n[0]=7-n[0],n[1]=7-n[1]),[r.left+r.width*n[0]/8+r.width/16,r.top+r.height*(7-n[1])/8+r.height/16]}var te=(e,t)=>Math.abs(e-t),Ye=(e,t,r,n)=>te(e,r)*te(t,n)===2,_t=(e,t,r,n)=>e===r!=(t===n),qt=(e,t,r,n)=>te(e,r)===te(t,n)&&e!==r,Nt=(e,t,r,n)=>_t(e,t,r,n)||qt(e,t,r,n),br=(e,t,r,n)=>Math.max(te(e,r),te(t,n))===1,wr=(e,t,r,n,i)=>te(e,r)===1&&n===t+(i?1:-1),vr=(e,t,r,n,i)=>{let o=i?1:-1;return e===r&&(n===t+o||n===t+2*o&&(i?t<=1:t>=6))},Ze=(e,t,r,n)=>{let i=r-e,o=n-t;if(i&&o&&Math.abs(i)!==Math.abs(o))return[];let s=Math.sign(i),a=Math.sign(o),l=[],c=e+s,h=t+a;for(;c!==r||h!==n;)l.push([c,h]),c+=s,h+=a;return l.map(Y).filter(f=>f!==void 0)},Mn=e=>{let t=E(e),r=[];return t[0]>0&&r.push([t[0]-1,t[1]]),t[0]<7&&r.push([t[0]+1,t[1]]),r.map(Y).filter(n=>n!==void 0)},Qe=(e,t)=>{let r=E(e);return r[1]+=t,Y(r)};var re=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 Tt=class{constructor(t,r,n,i){this.initial=t;this.moves=r;this.players=n;this.metadata=i;this.nodeAt=t=>En(this.moves,t);this.dataAt=t=>{let r=this.nodeAt(t);return r?Fo(r)?r.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?re.root:this.mainline[Math.max(0,Math.min(this.mainline.length-1,t=="last"?9999:t-1))]?.path||re.root;this.hasPlayerName=()=>!!(this.players.white?.name||this.players.black?.name);this.mainline=Array.from(this.moves.mainline())}},Ko=(e,t)=>e.children.find(r=>r.data.path.last()==t),En=(e,t)=>{if(t.empty())return e;let r=Ko(e,t.head());return r?En(r,t.tail()):void 0},Fo=e=>"data"in e,Rt=e=>"uci"in e;var yr=class e{constructor(t,r,n){this.pos=t;this.path=r;this.clocks=n;this.clone=()=>new e(this.pos.clone(),this.path,{...this.clocks})}},xr=e=>{let t=e.map(wn),r=n=>n.reduce((i,o)=>typeof o==null?i:o,void 0);return{texts:t.map(n=>n.text).filter(n=>!!n),shapes:t.flatMap(n=>n.shapes),clock:r(t.map(n=>n.clock)),emt:r(t.map(n=>n.emt))}},An=(e,t=!1)=>{let r=pr(e)[0]||pr("*")[0],n=bn(r.headers).unwrap(),i=kt(n.toSetup()),o=xr(r.comments||[]),s=new Map(Array.from(r.headers,([f,g])=>[f.toLowerCase(),g])),a=Ho(s,t),l={fen:i,turn:n.turn,check:n.isCheck(),pos:n.clone(),comments:o.texts,shapes:o.shapes,clocks:{white:a.timeControl?.initial||o.clock,black:a.timeControl?.initial||o.clock}},c=$o(n,r.moves,a),h=Vo(s,a);return new Tt(l,c,h,a)},$o=(e,t,r)=>kn(t,new yr(e,re.root,{}),(n,i,o)=>{let s=pn(n.pos,i.san);if(!s)return;let a=sn(s),l=n.path.append(a),c=dn(n.pos,s);n.path=l;let h=n.pos.toSetup(),f=xr(i.comments||[]),g=xr(i.startingComments||[]),m=[...f.shapes,...g.shapes],d=(h.fullmoves-1)*2+(n.pos.turn==="white"?0:1),p=n.clocks=zo(n.clocks,n.pos.turn,f.clock);return d<2&&r.timeControl&&(p={white:r.timeControl.initial,black:r.timeControl.initial,...p}),{path:l,ply:d,move:s,san:c,uci:Zt(s),fen:kt(n.pos.toSetup()),turn:n.pos.turn,check:n.pos.isCheck(),comments:f.texts,startingComments:g.texts,nags:i.nags||[],shapes:m,clocks:p,emt:f.emt}}),zo=(e,t,r)=>t=="white"?{...e,black:r}:{...e,white:r};function Vo(e,t){let r=(i,o)=>{let s=e.get(`${i}${o}`);return s=="?"||s==""?void 0:s},n=i=>{let o=r(i,"");return{name:o,title:r(i,"title"),rating:parseInt(r(i,"elo")||"")||void 0,isLichessUser:t.isLichess&&!!o?.match(/^[a-z0-9][a-z0-9_-]{0,28}[a-z0-9]$/i)}};return{white:n("white"),black:n("black")}}function Ho(e,t){let r=e.get("chapterurl")||e.get("gameurl")||e.get("source")||e.get("site"),n=e.get("timecontrol")?.split("+").map(s=>parseInt(s)),i=n&&n[0]?{initial:n[0],increment:n[1]||0}:void 0,o=e.get("orientation");return{externalLink:r&&r.match(/^https?:\/\//)?r:void 0,isLichess:!!(t&&r?.startsWith(t)),timeControl:i,orientation:o==="white"||o==="black"?o:void 0,result:e.get("result")}}var Je=class{constructor(t,r){this.opts=t;this.redraw=r;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,r=!0)=>{let n=t=="first"?re.root:t=="prev"?this.path.init():t=="next"?this.game.nodeAt(this.path)?.children[0]?.data.path:this.game.pathAtMainlinePly("last");this.toPath(n||this.path,r)};this.canGoTo=t=>t=="prev"||t=="first"?!this.path.empty():!!this.curNode().children[0];this.toPath=(t,r=!0)=>{this.path=t,this.pane="board",this.autoScrollRequested=!0,this.redrawGround(),this.redraw(),r&&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(),r=Rt(t)?xn(t.uci):this.opts.chessground?.lastMove;return{fen:t.fen,orientation:this.orientation(),check:t.check,lastMove:r,turnColor:t.turn}};this.analysisUrl=()=>this.game.metadata.isLichess&&this.game.metadata.externalLink||`https://lichess.org/analysis/${this.curData().fen.replace(" ","_")}?color=${this.orientation()}`;this.practiceUrl=()=>`${this.analysisUrl()}#practice`;this.setGround=t=>{this.ground=t,this.redrawGround()};this.redrawGround=()=>this.withGround(t=>{t.set(this.cgState()),t.setShapes(this.curData().shapes.map(r=>({orig:U(r.from),dest:U(r.to),brush:r.color})))});this.withGround=t=>this.ground&&t(this.ground);this.game=An(t.pgn,t.lichess),t.orientation=t.orientation||this.game.metadata.orientation,this.translate=fr(t.translate),this.path=this.game.pathAtMainlinePly(t.initialPly)}};var Ke=e=>e.friendlies.has(e.dest.key),Go=e=>e.enemies.has(e.dest.key),_n=(e,t,r)=>Ze(...e,...t).some(n=>r.has(n)),qn=(e,t,r)=>{let n=r.enemies.get(e);if(n?.role!=="pawn")return!1;let i=n.color==="white"?1:-1,o=E(e),s=E(t);return vr(...o,...s,n.color==="white")&&!_n(o,[s[0],s[1]+i],r.allPieces)},Wo=(e,t,r)=>{let n=r.enemies.get(e);return n?.role==="pawn"&&wr(...E(e),...E(t),n.color==="white")&&(r.friendlies.has(t)||Dt(Qe(t,n.color==="white"?-1:1),r.friendlies,r.enemies,r.lastMove))},Uo=e=>[...e.enemies.keys()].some(t=>qn(t,e.dest.key,e)),Cr=(e,t)=>{let r=e.dest.pos;return[...e.enemies].some(([n,i])=>{let o=E(n);return!t?.includes(i.role)&&(i.role==="pawn"&&wr(...o,...r,i.color==="white")||i.role==="knight"&&Ye(...o,...r)||i.role==="bishop"&&qt(...o,...r)||i.role==="rook"&&_t(...o,...r)||i.role==="queen"&&Nt(...o,...r)||i.role==="king"&&br(...o,...r))&&(!["bishop","rook","queen"].includes(i.role)||!_n(o,r,e.allPieces))})},Ot=e=>Ke(e)&&(Dt(e.dest.key,e.friendlies,e.enemies,e.lastMove)||Cr(e)),Dt=(e,t,r,n)=>{if(!e||n&&e!==n[1])return!1;let i=E(e),o=t.get(e);return o?.role==="pawn"&&i[1]===(o.color==="white"?3:4)&&(!n||te(E(n[0])[1],i[1])===2)&&[1,-1].some(s=>{let a=Y([i[0]+s,i[1]]);return!!a&&r.get(a)?.role==="pawn"})},jo=(e,t)=>{if(e.unrestrictedPremoves)return!0;let r=Ze(...e.orig.pos,...e.dest.pos);t&&r.push(e.dest.key);let n=r.filter(s=>e.friendlies.has(s));if(!n.length)return!0;let i=n[0],o=Qe(i,e.color==="white"?-1:1);return n.length===1&&Dt(i,e.friendlies,e.enemies,e.lastMove)&&!!o&&!r.includes(o)},Yo=(e,t)=>{if(e.unrestrictedPremoves)return!0;let r=Ze(...e.orig.pos,...e.dest.pos);t&&r.push(e.dest.key);let n=r.filter(h=>e.enemies.has(h));if(n.length>1)return!1;if(!n.length)return!0;let i=n[0],o=e.enemies.get(i);if(!o||o.role!=="pawn")return!0;let s=o.color==="white"?1:-1,a=Qe(i,s),l=a?[...Mn(a).filter(h=>Wo(i,h,e)),...[a,Qe(a,s)].filter(h=>!!h).filter(h=>qn(i,h,e))]:[],c=[...r,e.orig.key];return l.some(h=>!c.includes(h))},Sr=(e,t)=>jo(e,t)&&Yo(e,t),Zo=e=>{let t=e.color==="white"?1:-1;return te(e.orig.pos[0],e.dest.pos[0])>1?!1:te(e.orig.pos[0],e.dest.pos[0])?e.dest.pos[1]!==e.orig.pos[1]+t?!1:e.unrestrictedPremoves||Go(e)?!0:Ke(e)?Cr(e):Uo(e)||Dt(Y([e.dest.pos[0],e.dest.pos[1]+t]),e.friendlies,e.enemies,e.lastMove)||Cr(e,["pawn"]):vr(...e.orig.pos,...e.dest.pos,e.color==="white")&&Sr(e,!0)},Qo=e=>Ye(...e.orig.pos,...e.dest.pos)&&(e.unrestrictedPremoves||!Ke(e)||Ot(e)),Nn=e=>qt(...e.orig.pos,...e.dest.pos)&&Sr(e,!1)&&(e.unrestrictedPremoves||!Ke(e)||Ot(e)),Tn=e=>_t(...e.orig.pos,...e.dest.pos)&&Sr(e,!1)&&(e.unrestrictedPremoves||!Ke(e)||Ot(e)),Xo=e=>Nn(e)||Tn(e),Jo=e=>br(...e.orig.pos,...e.dest.pos)&&(e.unrestrictedPremoves||!Ke(e)||Ot(e))||e.canCastle&&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]))&&(e.unrestrictedPremoves||Ze(...e.orig.pos,e.dest.pos[0]>e.orig.pos[0]?7:1,e.dest.pos[1]).map(t=>e.allPieces.get(t)).every(t=>!t||Te(t,{role:"rook",color:e.color}))),es={pawn:Zo,knight:Qo,bishop:Nn,rook:Tn,queen:Xo,king:Jo};function Pr(e,t){let r=e.pieces,n=e.premovable.castle,i=!!e.premovable.unrestrictedPremoves,o=r.get(t);if(!o||o.color===e.turnColor)return[];let s=o.color,a=new Map([...r].filter(([g,m])=>m.color===s)),l=new Map([...r].filter(([g,m])=>m.color===Ie(s))),c={key:t,pos:E(t)},h=g=>es[o.role](g)&&e.premovable.additionalPremoveRequirements(g),f={orig:c,role:o.role,allPieces:r,friendlies:a,enemies:l,unrestrictedPremoves:i,color:s,canCastle:n,rookFilesFriendlies:Array.from(r).filter(([g,m])=>g[1]===(s==="white"?"1":"8")&&m.color===s&&m.role==="rook").map(([g])=>E(g)[0]),lastMove:e.lastMove};return Cn.filter(g=>h({...f,dest:g})).map(g=>g.key)}function G(e,...t){e&&setTimeout(()=>e(...t),1)}function Rn(e){e.orientation=Ie(e.orientation),e.animation.current=e.draggable.current=e.selected=void 0}function On(e,t){for(let[r,n]of t)n?e.pieces.set(r,n):e.pieces.delete(r)}function Dn(e,t){if(e.check=void 0,t===!0&&(t=e.turnColor),t)for(let[r,n]of e.pieces)n.role==="king"&&n.color===t&&(e.check=r)}function ts(e,t,r,n){ie(e),e.premovable.current=[t,r],G(e.premovable.events.set,t,r,n)}function ne(e){e.premovable.current&&(e.premovable.current=void 0,G(e.premovable.events.unset))}function rs(e,t,r){ne(e),e.predroppable.current={role:t,key:r},G(e.predroppable.events.set,t,r)}function ie(e){let t=e.predroppable;t.current&&(t.current=void 0,G(t.events.unset))}function ns(e,t,r){if(!e.autoCastle)return!1;let n=e.pieces.get(t);if(!n||n.role!=="king")return!1;let i=E(t),o=E(r);if(i[1]!==0&&i[1]!==7||i[1]!==o[1])return!1;i[0]===4&&!e.pieces.has(r)&&(o[0]===6?r=Me([7,o[1]]):o[0]===2&&(r=Me([0,o[1]])));let s=e.pieces.get(r);return!s||s.color!==n.color||s.role!=="rook"?!1:(e.pieces.delete(t),e.pieces.delete(r),i[0]<o[0]?(e.pieces.set(Me([6,o[1]]),n),e.pieces.set(Me([5,o[1]]),s)):(e.pieces.set(Me([2,o[1]]),n),e.pieces.set(Me([3,o[1]]),s)),!0)}function Mr(e,t,r){let n=e.pieces.get(t),i=e.pieces.get(r);if(t===r||!n)return!1;let o=i&&i.color!==n.color?i:void 0;return r===e.selected&&H(e),G(e.events.move,t,r,o),ns(e,t,r)||(e.pieces.set(r,n),e.pieces.delete(t)),e.lastMove=[t,r],e.check=void 0,G(e.events.change),o||!0}function Bt(e,t,r,n){if(e.pieces.has(r))if(n)e.pieces.delete(r);else return!1;return G(e.events.dropNewPiece,t,r),e.pieces.set(r,t),e.lastMove=[r],e.check=void 0,G(e.events.change),e.movable.dests=void 0,e.turnColor=Ie(e.turnColor),!0}function Bn(e,t,r){let n=Mr(e,t,r);return n&&(e.movable.dests=void 0,e.turnColor=Ie(e.turnColor),e.animation.current=void 0),n}function Er(e,t,r){if(It(e,t,r)){let n=Bn(e,t,r);if(n){let i=e.hold.stop();H(e);let o={premove:!1,ctrlKey:e.stats.ctrlKey,holdTime:i};return n!==!0&&(o.captured=n),G(e.movable.events.after,t,r,o),!0}}else if(os(e,t,r))return ts(e,t,r,{ctrlKey:e.stats.ctrlKey}),H(e),!0;return H(e),!1}function Lt(e,t,r,n){let i=e.pieces.get(t);i&&(is(e,t,r)||n)?(e.pieces.delete(t),Bt(e,i,r,n),G(e.movable.events.afterNewPiece,i.role,r,{premove:!1,predrop:!1})):i&&ss(e,t,r)?rs(e,i.role,r):(ne(e),ie(e)),e.pieces.delete(t),H(e)}function et(e,t,r){if(G(e.events.select,t),e.selected){if(e.selected===t&&!e.draggable.enabled){H(e),e.hold.cancel();return}else if((e.selectable.enabled||r)&&e.selected!==t&&Er(e,e.selected,t)){e.stats.dragged=!1;return}}(e.selectable.enabled||e.draggable.enabled)&&(Ln(e,t)||_r(e,t))&&(Ar(e,t),e.hold.start())}function Ar(e,t){e.selected=t,_r(e,t)?e.premovable.customDests||(e.premovable.dests=Pr(e,t)):e.premovable.dests=void 0}function H(e){e.selected=void 0,e.premovable.dests=void 0,e.hold.cancel()}function Ln(e,t){let r=e.pieces.get(t);return!!r&&(e.movable.color==="both"||e.movable.color===r.color&&e.turnColor===r.color)}var It=(e,t,r)=>t!==r&&Ln(e,t)&&(e.movable.free||!!e.movable.dests?.get(t)?.includes(r));function is(e,t,r){let n=e.pieces.get(t);return!!n&&(t===r||!e.pieces.has(r))&&(e.movable.color==="both"||e.movable.color===n.color&&e.turnColor===n.color)}function _r(e,t){let r=e.pieces.get(t);return!!r&&e.premovable.enabled&&e.movable.color===r.color&&e.turnColor!==r.color}var os=(e,t,r)=>t!==r&&_r(e,t)&&(e.premovable.customDests?.get(t)??Pr(e,t)).includes(r);function ss(e,t,r){let n=e.pieces.get(t),i=e.pieces.get(r);return!!n&&(!i||i.color!==e.movable.color)&&e.predroppable.enabled&&(n.role!=="pawn"||r[1]!=="1"&&r[1]!=="8")&&e.movable.color===n.color&&e.turnColor!==n.color}function In(e,t){let r=e.pieces.get(t);return!!r&&e.draggable.enabled&&(e.movable.color==="both"||e.movable.color===r.color&&(e.turnColor===r.color||e.premovable.enabled))}function Kn(e){let t=e.premovable.current;if(!t)return!1;let r=t[0],n=t[1],i=!1;if(It(e,r,n)){let o=Bn(e,r,n);if(o){let s={premove:!0};o!==!0&&(s.captured=o),G(e.movable.events.after,r,n,s),i=!0}}return ne(e),i}function Fn(e,t){let r=e.predroppable.current,n=!1;if(!r)return!1;if(t(r)){let i={role:r.role,color:e.movable.color};Bt(e,i,r.key)&&(G(e.movable.events.afterNewPiece,r.role,r.key,{premove:!1,predrop:!0}),n=!0)}return ie(e),n}function tt(e){ne(e),ie(e),H(e)}function qr(e){e.movable.color=e.movable.dests=e.animation.current=void 0,tt(e)}function oe(e,t,r){let n=Math.floor(8*(e[0]-r.left)/r.width);t||(n=7-n);let i=7-Math.floor(8*(e[1]-r.top)/r.height);return t||(i=7-i),n>=0&&n<8&&i>=0&&i<8?Y([n,i]):void 0}function $n(e,t,r,n){let i=E(e),o=mr.filter(c=>Pn(i,c)||Nt(i[0],i[1],c[0],c[1])||Ye(i[0],i[1],c[0],c[1])),a=o.map(c=>At(Me(c),r,n)).map(c=>Ee(t,c)),[,l]=a.reduce((c,h,f)=>c[0]<h?c:[h,f],[a[0],0]);return Y(o[l])}var L=e=>e.orientation==="white";var Tr="rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR",as={p:"pawn",r:"rook",n:"knight",b:"bishop",q:"queen",k:"king"},cs={pawn:"p",rook:"r",knight:"n",bishop:"b",queen:"q",king:"k"};function Fe(e){e==="start"&&(e=Tr);let t=new Map,r=7,n=0;for(let i of e)switch(i){case" ":case"[":return t;case"/":if(--r,r<0)return t;n=0;break;case"~":{let o=Y([n-1,r]),s=o&&t.get(o);s&&(s.promoted=!0);break}default:{let o=i.charCodeAt(0);if(o<57)n+=o-48;else{let s=i.toLowerCase(),a=Y([n,r]);a&&t.set(a,{role:as[s],color:i===s?"black":"white"}),++n}}}return t}function zn(e){return Mt.map(t=>ue.map(r=>{let n=e.get(r+t);if(n){let i=cs[n.role];return n.color==="white"&&(i=i.toUpperCase()),n.promoted&&(i+="~"),i}else return"1"}).join("")).join("/").replace(/1{2,}/g,t=>t.length.toString())}function Rr(e,t){t.animation&&(Or(e.animation,t.animation),(e.animation.duration||0)<70&&(e.animation.enabled=!1))}function Kt(e,t){if(t.movable?.dests&&(e.movable.dests=void 0),t.drawable?.autoShapes&&(e.drawable.autoShapes=[]),Or(e,t),t.fen&&(e.pieces=Fe(t.fen),e.drawable.shapes=t.drawable?.shapes||[]),"check"in t&&Dn(e,t.check||!1),"lastMove"in t&&!t.lastMove?e.lastMove=void 0:t.lastMove&&(e.lastMove=t.lastMove),e.selected&&Ar(e,e.selected),Rr(e,t),!e.movable.rookCastle&&e.movable.dests){let r=e.movable.color==="white"?"1":"8",n="e"+r,i=e.movable.dests.get(n),o=e.pieces.get(n);if(!i||!o||o.role!=="king")return;e.movable.dests.set(n,i.filter(s=>!(s==="a"+r&&i.includes("c"+r))&&!(s==="h"+r&&i.includes("g"+r))))}}function Or(e,t){for(let r in t)r==="__proto__"||r==="constructor"||!Object.prototype.hasOwnProperty.call(t,r)||(Object.prototype.hasOwnProperty.call(e,r)&&Vn(e[r])&&Vn(t[r])?Or(e[r],t[r]):e[r]=t[r])}function Vn(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?ds(e,t):ge(e,t);function ge(e,t){let r=e(t);return t.dom.redraw(),r}var Dr=(e,t)=>({key:e,pos:E(e),piece:t}),us=(e,t)=>t.sort((r,n)=>Ee(e.pos,r.pos)-Ee(e.pos,n.pos))[0];function hs(e,t){let r=new Map,n=[],i=new Map,o=[],s=[],a=new Map,l,c,h;for(let[f,g]of e)a.set(f,Dr(f,g));for(let f of Ue)l=t.pieces.get(f),c=a.get(f),l?c?Te(l,c.piece)||(o.push(c),s.push(Dr(f,l))):s.push(Dr(f,l)):c&&o.push(c);for(let f of s)c=us(f,o.filter(g=>Te(f.piece,g.piece))),c&&(h=[c.pos[0]-f.pos[0],c.pos[1]-f.pos[1]],r.set(f.key,h.concat(h)),n.push(c.key));for(let f of o)n.includes(f.key)||i.set(f.key,f.piece);return{anims:r,fadings:i}}function Hn(e,t){let r=e.animation.current;if(r===void 0){e.dom.destroyed||e.dom.redrawNow();return}let n=1-(t-r.start)*r.frequency;if(n<=0)e.animation.current=void 0,e.dom.redrawNow();else{let i=ps(n);for(let o of r.plan.anims.values())o[2]=o[0]*i,o[3]=o[1]*i;e.dom.redrawNow(!0),requestAnimationFrame((o=performance.now())=>Hn(e,o))}}function ds(e,t){let r=new Map(t.pieces),n=e(t),i=hs(r,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||Hn(t,performance.now())}else t.dom.redraw();return n}var ps=e=>e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1;var fs=["green","red","blue","yellow"];function Gn(e,t){if(t.touches&&t.touches.length>1)return;t.stopPropagation(),t.preventDefault(),t.ctrlKey?H(e):tt(e);let r=he(t),n=oe(r,L(e),e.dom.bounds());n&&(e.drawable.current={orig:n,pos:r,brush:ms(t),snapToValidMove:e.drawable.defaultSnapToValidMove},Wn(e))}function Wn(e){requestAnimationFrame(()=>{let t=e.drawable.current;if(t){let r=oe(t.pos,L(e),e.dom.bounds());r||(t.snapToValidMove=!1);let n=t.snapToValidMove?$n(t.orig,t.pos,L(e),e.dom.bounds()):r;n!==t.mouseSq&&(t.mouseSq=n,t.dest=n!==t.orig?n:void 0,e.dom.redrawNow()),Wn(e)}})}function Un(e,t){e.drawable.current&&(e.drawable.current.pos=he(t))}function jn(e){let t=e.drawable.current;t&&(t.mouseSq&&gs(e.drawable,t),Br(e))}function Br(e){e.drawable.current&&(e.drawable.current=void 0,e.dom.redraw())}function Yn(e){e.drawable.shapes.length&&(e.drawable.shapes=[],e.dom.redraw(),Zn(e.drawable))}var Ft=(e,t)=>e.orig===t.orig&&e.dest===t.dest,Lr=(e,t)=>e.brush===t.brush;function ms(e){let t=(e.shiftKey||e.ctrlKey)&&Et(e),r=e.altKey||e.metaKey||e.getModifierState?.("AltGraph");return fs[(t?1:0)+(r?2:0)]}function gs(e,t){let r=e.shapes.find(n=>Ft(n,t));r&&(e.shapes=e.shapes.filter(n=>!Ft(n,t))),(!r||!Lr(r,t))&&e.shapes.push({orig:t.orig,dest:t.dest,brush:t.brush}),Zn(e)}function Zn(e){e.onChange&&e.onChange(e.shapes)}function Qn(e,t){if(!(e.trustAllEvents||t.isTrusted)||t.buttons!==void 0&&t.buttons>1||t.touches&&t.touches.length>1)return;let r=e.dom.bounds(),n=he(t),i=oe(n,L(e),r);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)&&Yn(e),t.cancelable!==!1&&(!t.touches||e.blockTouchScroll||o||s||bs(e,n)))t.preventDefault();else if(t.touches)return;let a=!!e.premovable.current,l=!!e.predroppable.current;e.stats.ctrlKey=t.ctrlKey,e.selected&&It(e,e.selected,i)?me(f=>et(f,i),e):et(e,i);let c=e.selected===i,h=ri(e,i);if(o&&h&&c&&In(e,i)){e.draggable.current={orig:i,piece:o,origPos:n,pos:n,started:e.draggable.autoDistance&&e.stats.dragged,element:h,previouslySelected:s,originTarget:t.target,keyHasChanged:!1},h.cgDragging=!0,h.classList.add("dragging");let f=e.dom.elements.ghost;f&&(f.className=`ghost ${o.color} ${o.role}`,Z(f,Ae(r)(E(i),L(e))),je(f,!0)),Ir(e)}else a&&ne(e),l&&ie(e);e.dom.redraw()}function bs(e,t){let r=L(e),n=e.dom.bounds(),i=Math.pow(e.touchIgnoreRadius*n.width/16,2)*2;for(let o of e.pieces.keys()){let s=At(o,r,n);if(Ee(s,t)<=i)return!0}return!1}function Xn(e,t,r,n){e.pieces.set("a0",t),e.dom.redraw();let o=he(r);e.draggable.current={orig:"a0",piece:t,origPos:o,pos:o,started:!0,element:()=>ri(e,"a0"),originTarget:r.target,newPiece:!0,force:!!n,keyHasChanged:!1},Ir(e)}function Ir(e){requestAnimationFrame(()=>{let t=e.draggable.current;if(!t)return;e.animation.current?.plan.anims.has(t.orig)&&(e.animation.current=void 0);let r=e.pieces.get(t.orig);if(!r||!Te(r,t.piece))Re(e);else if(!t.started&&Ee(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 n=e.dom.bounds();Z(t.element,[t.pos[0]-n.left-n.width/16,t.pos[1]-n.top-n.height/16]),t.keyHasChanged||(t.keyHasChanged=t.orig!==oe(t.pos,L(e),n))}Ir(e)})}function Jn(e,t){e.draggable.current&&(!t.touches||t.touches.length<2)&&(e.draggable.current.pos=he(t))}function ei(e,t){let r=e.draggable.current;if(!r)return;if(t.type==="touchend"&&t.cancelable!==!1&&t.preventDefault(),t.type==="touchend"&&r.originTarget!==t.target&&!r.newPiece){e.draggable.current=void 0;return}ne(e),ie(e);let n=he(t)||r.pos,i=oe(n,L(e),e.dom.bounds());i&&r.started&&r.orig!==i?r.newPiece?Lt(e,r.orig,i,r.force):(e.stats.ctrlKey=t.ctrlKey,Er(e,r.orig,i)&&(e.stats.dragged=!0)):r.newPiece?e.pieces.delete(r.orig):e.draggable.deleteOnDropOff&&!i&&(e.pieces.delete(r.orig),G(e.events.change)),(r.orig===r.previouslySelected||r.keyHasChanged)&&(r.orig===i||!i)?H(e):e.selectable.enabled||H(e),ti(e),e.draggable.current=void 0,e.dom.redraw()}function Re(e){let t=e.draggable.current;t&&(t.newPiece&&e.pieces.delete(t.orig),e.draggable.current=void 0,H(e),ti(e),e.dom.redraw())}function ti(e){let t=e.dom.elements;t.ghost&&je(t.ghost,!1)}function ri(e,t){let r=e.dom.elements.board.firstChild;for(;r;){if(r.cgKey===t&&r.tagName==="PIECE")return r;r=r.nextSibling}}function ii(e,t){e.exploding={stage:1,keys:t},e.dom.redraw(),setTimeout(()=>{ni(e,2),setTimeout(()=>ni(e,void 0),120)},120)}function ni(e,t){e.exploding&&(t?e.exploding.stage=t:e.exploding=void 0,e.dom.redraw())}function oi(e,t){function r(){Rn(e),t()}return{set(n){n.orientation&&n.orientation!==e.orientation&&r(),Rr(e,n),(n.fen?me:ge)(i=>Kt(i,n),e)},state:e,getFen:()=>zn(e.pieces),toggleOrientation:r,setPieces(n){me(i=>On(i,n),e)},selectSquare(n,i){n?me(o=>et(o,n,i),e):e.selected&&(H(e),e.dom.redraw())},move(n,i){me(o=>Mr(o,n,i),e)},newPiece(n,i){me(o=>Bt(o,n,i),e)},playPremove(){if(e.premovable.current){if(me(Kn,e))return!0;e.dom.redraw()}return!1},playPredrop(n){if(e.predroppable.current){let i=Fn(e,n);return e.dom.redraw(),i}return!1},cancelPremove(){ge(ne,e)},cancelPredrop(){ge(ie,e)},cancelMove(){ge(n=>{tt(n),Re(n)},e)},stop(){ge(n=>{qr(n),Re(n)},e)},explode(n){ii(e,n)},setAutoShapes(n){ge(i=>i.drawable.autoShapes=n,e)},setShapes(n){ge(i=>i.drawable.shapes=n.slice(),e)},getKeyAtDomPos(n){return oe(n,L(e),e.dom.bounds())},redrawAll:t,dragNewPiece(n,i,o){Xn(e,n,i,o)},destroy(){qr(e),e.dom.unbind&&e.dom.unbind(),e.dom.destroyed=!0}}}function si(){return{pieces:Fe(Tr),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:Sn()}}function li(){let e=$("defs"),t=z($("filter"),{id:"cg-filter-blur"});return t.appendChild(z($("feGaussianBlur"),{stdDeviation:"0.013"})),e.appendChild(t),e}function ui(e,t){let r=e.drawable,n=r.current,i=n&&n.mouseSq?n:void 0,o=new Map,s=e.dom.bounds(),a=r.autoShapes.filter(f=>!f.piece);for(let f of r.shapes.concat(a).concat(i?[i]:[])){if(!f.dest)continue;let g=o.get(f.dest)??new Set,m=zt($t(E(f.orig),e.orientation),s),d=zt($t(E(f.dest),e.orientation),s);g.add(Fr(m,d)),o.set(f.dest,g)}let l=[],c=i?r.shapes.findIndex(f=>Ft(f,i)&&Lr(f,i)):-1;for(let[f,g]of r.shapes.concat(a).entries()){let m=c!==-1&&c===f;l.push({shape:g,current:!1,pendingErase:m,hash:ai(g,Kr(g.dest,o),!1,s,m)})}i&&c===-1&&l.push({shape:i,current:!0,hash:ai(i,Kr(i.dest,o),!0,s,!1),pendingErase:!1});let h=l.map(f=>f.hash).join(";");h!==e.drawable.prevSvgHash&&(e.drawable.prevSvgHash=h,vs(r,l,t),ys(l,t,f=>Ss(e,f,r.brushes,o,s)))}function vs(e,t,r){for(let n of[r.shapes,r.shapesBelow]){let i=n.querySelector("defs"),o=t.filter(c=>n===r.shapesBelow==!!c.shape.below),s=new Map;for(let c of o.filter(h=>h.shape.dest&&h.shape.brush)){let h=hi(e.brushes[c.shape.brush],c.shape.modifiers),{key:f,color:g}=di(c.shape);f&&g&&s.set(f,{key:f,color:g,opacity:1,lineWidth:1}),s.set(h.key,h)}let a=new Set,l=i.firstElementChild;for(;l;)a.add(l.getAttribute("cgKey")),l=l.nextElementSibling;for(let[c,h]of s.entries())a.has(c)||i.appendChild(Es(h))}}function ys(e,t,r){for(let[n,i]of[[t.shapes,t.custom],[t.shapesBelow,t.customBelow]]){let[o,s]=[n,i].map(c=>c.querySelector("g")),a=e.filter(c=>n===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 h=[],f=c.firstElementChild,g;for(;f;)g=f.getAttribute("cgHash"),l.has(g)?l.set(g,!0):h.push(f),f=f.nextElementSibling;for(let m of h)c.removeChild(m)}for(let c of a.filter(h=>!l.get(h.hash)))for(let h of r(c))h.isCustom?s.appendChild(h.el):o.appendChild(h.el)}}function ai({orig:e,dest:t,brush:r,piece:n,modifiers:i,customSvg:o,label:s,below:a},l,c,h,f){return[h.width,h.height,c,f&&"pendingErase",e,t,r,l&&"-",n&&xs(n),i&&Cs(i),o&&`custom-${ci(o.html)},${o.center?.[0]??"o"}`,s&&`label-${ci(s.text)}`,a&&"below"].filter(g=>g).join(",")}function xs(e){return[e.color,e.role,e.scale].filter(t=>t).join(",")}function Cs(e){return[e.lineWidth,e.hilite].filter(t=>t).join(",")}function ci(e){let t=0;for(let r=0;r<e.length;r++)t=(t<<5)-t+e.charCodeAt(r)>>>0;return t.toString()}function Ss(e,{shape:t,current:r,pendingErase:n,hash:i},o,s,a){let l=zt($t(E(t.orig),e.orientation),a),c=t.dest?zt($t(E(t.dest),e.orientation),a):l,h=t.brush&&hi(o[t.brush],t.modifiers),f=s.get(t.dest),g=[];if(h){let m=z($("g"),{cgHash:i});g.push({el:m}),l[0]!==c[0]||l[1]!==c[1]?m.appendChild(Ms(t,h,l,c,r,Kr(t.dest,s),n)):m.appendChild(Ps(o[t.brush],l,r,a,n))}if(t.label){let m=t.label;m.fill??(m.fill=t.brush&&o[t.brush].color);let d=t.brush?void 0:"tr";g.push({el:As(m,i,l,c,f,d),isCustom:!0})}if(t.customSvg){let m=t.customSvg.center??"orig",[d,p]=m==="label"?fi(l,c,f).map(w=>w-.5):m==="dest"?c:l,v=z($("g"),{transform:`translate(${d},${p})`,cgHash:i});v.innerHTML=`<svg width="1" height="1" viewBox="0 0 100 100">${t.customSvg.html}</svg>`,g.push({el:v,isCustom:!0})}return g}function Ps(e,t,r,n,i){let o=_s(),s=(n.width+n.height)/(4*Math.max(n.width,n.height));return z($("circle"),{stroke:e.color,"stroke-width":o[r?0:1],fill:"none",opacity:pi(e,r,i),cx:t[0],cy:t[1],r:s-o[1]/2})}function Ms(e,t,r,n,i,o,s){function a(h){let f=Ns(o&&!i),g=n[0]-r[0],m=n[1]-r[1],d=Math.atan2(m,g),p=Math.cos(d)*f,v=Math.sin(d)*f,w=di(e);return z($("line"),{stroke:h?w.color:t.color,"stroke-width":qs(t,i)*(h?1.14:1),"stroke-linecap":"round","marker-end":`url(#arrowhead-${h?w.key:t.key})`,opacity:e.modifiers?.hilite&&!s?1:pi(t,i,s),x1:r[0],y1:r[1],x2:n[0]-p,y2:n[1]-v})}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(Ts(r,n)),c.appendChild(a(!0)),l.appendChild(c),l.appendChild(a(!1)),l}function Es(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 As(e,t,r,n,i,o){let a=.4*.75**e.text.length,l=fi(r,n,i),c=o==="tr"?.4:0,h=z($("g"),{transform:`translate(${l[0]+c},${l[1]-c})`,cgHash:t});h.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 f=z($("text"),{"font-size":a,"font-family":"Noto Sans","text-anchor":"middle",fill:"white",y:.13*.75**e.text.length});return f.innerHTML=e.text,h.appendChild(f),h}function $t(e,t){return t==="white"?e:[7-e[0],7-e[1]]}function Kr(e,t){return(e&&t.has(e)&&t.get(e).size>1)===!0}function $(e){return document.createElementNS("http://www.w3.org/2000/svg",e)}function z(e,t){for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.setAttribute(r,t[r]);return e}function hi(e,t){return t?{color:e.color,opacity:Math.round(e.opacity*10)/10,lineWidth:Math.round(t.lineWidth||e.lineWidth),key:[e.key,t.lineWidth].filter(r=>r).join("")}:e}function _s(){return[3/64,4/64]}function qs(e,t){return(e.lineWidth||10)*(t?.85:1)/64}function di(e){let t=e.modifiers?.hilite;return{key:t&&`hilite-${t.replace("#","")}`,color:t}}function pi(e,t,r){return(e.opacity||1)*(r?.6:t?.9:1)}function Ns(e){return(e?20:10)/64}function zt(e,t){let r=Math.min(1,t.width/t.height),n=Math.min(1,t.height/t.width);return[(e[0]-3.5)*r,(3.5-e[1])*n]}function Ts(e,t){let r={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:r.from[0],y:r.from[1],width:r.to[0]-r.from[0],height:r.to[1]-r.from[1],fill:"none",stroke:"none"})}function Fr(e,t,r=!0){let n=Math.atan2(t[1]-e[1],t[0]-e[0])+Math.PI;return r?(Math.round(n*8/Math.PI)+16)%16:n}function Rs(e,t){return Math.sqrt([e[0]-t[0],e[1]-t[1]].reduce((r,n)=>r+n*n,0))}function fi(e,t,r){let n=Rs(e,t),i=Fr(e,t,!1);if(r&&(n-=33/64,r.size>1)){n-=10/64;let o=Fr(e,t);(r.has((o+1)%16)||r.has((o+15)%16))&&o&1&&(n-=.4)}return[e[0]-Math.cos(i)*n,e[1]-Math.sin(i)*n].map(o=>o+.5)}function gi(e,t){e.innerHTML="",e.classList.add("cg-wrap");for(let h of vn)e.classList.toggle("orientation-"+h,t.orientation===h);e.classList.toggle("manipulable",!t.viewOnly);let r=Q("cg-container");e.appendChild(r);let n=Q("cg-board");r.appendChild(n);let i,o,s,a,l;if(t.drawable.visible&&([i,o]=["cg-shapes-below","cg-shapes"].map(h=>mi(h,!0)),[s,a]=["cg-custom-below","cg-custom-svgs"].map(h=>mi(h,!1)),l=Q("cg-auto-pieces"),r.appendChild(i),r.appendChild(s),r.appendChild(o),r.appendChild(a),r.appendChild(l)),t.coordinates){let h=t.orientation==="black"?" black":"",f=t.ranksPosition==="left"?" left":"";if(t.coordinatesOnSquares){let g=t.orientation==="white"?m=>m+1:m=>8-m;ue.forEach((m,d)=>r.appendChild($r(Pe.map(p=>m+p),"squares rank"+g(d)+h+f)))}else r.appendChild($r(Pe,"ranks"+h+f)),r.appendChild($r(ue,"files"+h))}let c;return t.draggable.enabled&&t.draggable.showGhost&&(c=Q("piece","ghost"),je(c,!1),r.appendChild(c)),{board:n,container:r,wrap:e,ghost:c,shapes:o,shapesBelow:i,custom:a,customBelow:s,autoPieces:l}}function mi(e,t){let r=z($("svg"),{class:e,viewBox:t?"-4 -4 8 8":"-3.5 -3.5 8 8",preserveAspectRatio:"xMidYMid slice"});return t&&r.appendChild(li()),r.appendChild($("g")),r}function $r(e,t){let r=Q("coords",t),n;for(let i of e)n=Q("coord"),n.textContent=i,r.appendChild(n);return r}function ki(e,t){if(!e.dropmode.active)return;ne(e),ie(e);let r=e.dropmode.piece;if(r){e.pieces.set("a0",r);let n=he(t),i=n&&oe(n,L(e),e.dom.bounds());i&&Lt(e,"a0",i)}e.dom.redraw()}function wi(e,t){let r=e.dom.elements.board;if("ResizeObserver"in window&&new ResizeObserver(t).observe(e.dom.elements.wrap),(e.disableContextMenu||e.drawable.enabled)&&r.addEventListener("contextmenu",i=>i.preventDefault()),e.viewOnly)return;let n=Ds(e);r.addEventListener("touchstart",n,{passive:!1}),r.addEventListener("mousedown",n,{passive:!1})}function vi(e,t){let r=[];if("ResizeObserver"in window||r.push(rt(document.body,"chessground.resize",t)),!e.viewOnly){let n=bi(e,Jn,Un),i=bi(e,ei,jn);for(let s of["touchmove","mousemove"])r.push(rt(document,s,n));for(let s of["touchend","mouseup"])r.push(rt(document,s,i));let o=()=>e.dom.bounds.clear();r.push(rt(document,"scroll",o,{capture:!0,passive:!0})),r.push(rt(window,"resize",o,{passive:!0}))}return()=>r.forEach(n=>n())}function rt(e,t,r,n){return e.addEventListener(t,r,n),()=>e.removeEventListener(t,r,n)}var Ds=e=>t=>{e.draggable.current?Re(e):e.drawable.current?Br(e):t.shiftKey||Et(t)?e.drawable.enabled&&Gn(e,t):e.viewOnly||(e.dropmode.active?ki(e,t):Qn(e,t))},bi=(e,t,r)=>n=>{e.drawable.current?e.drawable.enabled&&r(e,n):e.viewOnly||t(e,n)};function xi(e){let t=L(e),r=Ae(e.dom.bounds()),n=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=Ls(e),h=new Set,f=new Set,g=new Map,m=new Map,d,p,v,w,x,A,C,P,_,q;for(p=n.firstChild;p;){if(d=p.cgKey,Si(p))if(v=i.get(d),x=s.get(d),A=a.get(d),w=p.cgPiece,p.cgDragging&&(!l||l.orig!==d)&&(p.classList.remove("dragging"),Z(p,r(E(d),t)),p.cgDragging=!1),!A&&p.cgFading&&(p.cgFading=!1,p.classList.remove("fading")),v){if(x&&p.cgAnimating&&w===nt(v)){let y=E(d);y[0]+=x[2],y[1]+=x[3],p.classList.add("anim"),Z(p,r(y,t))}else p.cgAnimating&&(p.cgAnimating=!1,p.classList.remove("anim"),Z(p,r(E(d),t)),e.addPieceZIndex&&(p.style.zIndex=zr(E(d),t)));w===nt(v)&&(!A||!p.cgFading)?h.add(d):A&&w===nt(A)?(p.classList.add("fading"),p.cgFading=!0):Vr(g,w,p)}else Vr(g,w,p);else if(Pi(p)){let y=p.className;c.get(d)===y?f.add(d):Vr(m,y,p)}p=p.nextSibling}for(let[y,T]of c)if(!f.has(y)){_=m.get(T),q=_&&_.pop();let R=r(E(y),t);if(q)q.cgKey=y,Z(q,R);else{let N=Q("square",T);N.cgKey=y,Z(N,R),n.insertBefore(N,n.firstChild)}}for(let[y,T]of i)if(x=s.get(y),!h.has(y))if(C=g.get(nt(T)),P=C&&C.pop(),P){P.cgKey=y,P.cgFading&&(P.classList.remove("fading"),P.cgFading=!1);let R=E(y);e.addPieceZIndex&&(P.style.zIndex=zr(R,t)),x&&(P.cgAnimating=!0,P.classList.add("anim"),R[0]+=x[2],R[1]+=x[3]),Z(P,r(R,t))}else{let R=nt(T),N=Q("piece",R),I=E(y);N.cgPiece=R,N.cgKey=y,x&&(N.cgAnimating=!0,I[0]+=x[2],I[1]+=x[3]),Z(N,r(I,t)),e.addPieceZIndex&&(N.style.zIndex=zr(I,t)),n.appendChild(N)}for(let y of g.values())yi(e,y);for(let y of m.values())yi(e,y)}function Ci(e){let t=L(e),r=Ae(e.dom.bounds()),n=e.dom.elements.board.firstChild;for(;n;)(Si(n)&&!n.cgAnimating||Pi(n))&&Z(n,r(E(n.cgKey),t)),n=n.nextSibling}function Hr(e){let t=e.dom.elements.wrap.getBoundingClientRect(),r=e.dom.elements.container,n=t.height/t.width,i=Math.floor(t.width*window.devicePixelRatio/8)*8/window.devicePixelRatio,o=i*n;r.style.width=i+"px",r.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 Si=e=>e.tagName==="PIECE",Pi=e=>e.tagName==="SQUARE";function yi(e,t){for(let r of t)e.dom.elements.board.removeChild(r)}function zr(e,t){let n=e[1];return`${t?10-n:3+n}`}var nt=e=>`${e.color} ${e.role}`;function Ls(e){let t=new Map;if(e.lastMove&&e.highlight.lastMove)for(let i of e.lastMove)ke(t,i,"last-move");if(e.check&&e.highlight.check&&ke(t,e.check,"check"),e.selected&&(ke(t,e.selected,"selected"),e.movable.showDests)){let i=e.movable.dests?.get(e.selected);if(i)for(let s of i)ke(t,s,"move-dest"+(e.pieces.has(s)?" oc":""));let o=e.premovable.customDests?.get(e.selected)??e.premovable.dests;if(o)for(let s of o)ke(t,s,"premove-dest"+(e.pieces.has(s)?" oc":""))}let r=e.premovable.current;if(r)for(let i of r)ke(t,i,"current-premove");else e.predroppable.current&&ke(t,e.predroppable.current.key,"current-premove");let n=e.exploding;if(n)for(let i of n.keys)ke(t,i,"exploding"+n.stage);return e.highlight.custom&&e.highlight.custom.forEach((i,o)=>{ke(t,o,i)}),t}function ke(e,t,r){let n=e.get(t);n?e.set(t,`${n} ${r}`):e.set(t,r)}function Vr(e,t,r){let n=e.get(t);n?n.push(r):e.set(t,[r])}function Mi(e,t,r){let n=new Map,i=[];for(let a of e)n.set(a.hash,!1);let o=t.firstElementChild,s;for(;o;)s=o.getAttribute("cgHash"),n.has(s)?n.set(s,!0):i.push(o),o=o.nextElementSibling;for(let a of i)t.removeChild(a);for(let a of e)n.get(a.hash)||t.appendChild(r(a))}function Ei(e,t){let n=e.drawable.autoShapes.filter(i=>i.piece).map(i=>({shape:i,hash:Ks(i),current:!1,pendingErase:!1}));Mi(n,t,i=>Is(e,i,e.dom.bounds()))}function Ai(e){let t=L(e),r=Ae(e.dom.bounds()),n=e.dom.elements.autoPieces?.firstChild;for(;n;)kr(n,r(E(n.cgKey),t),n.cgScale),n=n.nextSibling}function Is(e,{shape:t,hash:r},n){let i=t.orig,o=t.piece?.role,s=t.piece?.color,a=t.piece?.scale,l=Q("piece",`${o} ${s}`);return l.setAttribute("cgHash",r),l.cgKey=i,l.cgScale=a,kr(l,Ae(n)(E(i),L(e)),a),l}var Ks=e=>[e.orig,e.piece?.role,e.piece?.color,e.piece?.scale].join(",");function _i(e,t){let r=si();Kt(r,t||{});function n(){let i="dom"in r?r.dom.unbind:void 0,o=gi(e,r),s=gr(()=>o.board.getBoundingClientRect()),a=h=>{xi(c),o.autoPieces&&Ei(c,o.autoPieces),!h&&o.shapes&&ui(c,o)},l=()=>{Hr(c),Ci(c),o.autoPieces&&Ai(c)},c=r;return c.dom={elements:o,bounds:s,redraw:$s(a),redrawNow:a,unbind:i},c.drawable.prevSvgHash="",Hr(c),a(!1),wi(c,l),i||(c.dom.unbind=vi(c,l)),c.events.insert&&c.events.insert(o),c}return oi(n(),n)}function $s(e){let t=!1;return()=>{t||(t=!0,requestAnimationFrame(()=>{e(),t=!1}))}}function zs(e,t){return document.createElement(e,t)}function Vs(e,t,r){return document.createElementNS(e,t,r)}function Hs(){return Oe(document.createDocumentFragment())}function Gs(e){return document.createTextNode(e)}function Ws(e){return document.createComment(e)}function Us(e,t,r){if(be(e)){let n=e;for(;n&&be(n);)n=Oe(n).parent;e=n??e}be(t)&&(t=Oe(t,e)),r&&be(r)&&(r=Oe(r).firstChildNode),e.insertBefore(t,r)}function js(e,t){e.removeChild(t)}function Ys(e,t){be(t)&&(t=Oe(t,e)),e.appendChild(t)}function qi(e){if(be(e)){for(;e&&be(e);)e=Oe(e).parent;return e??null}return e.parentNode}function Zs(e){var t;if(be(e)){let r=Oe(e),n=qi(r);if(n&&r.lastChildNode){let i=Array.from(n.childNodes),o=i.indexOf(r.lastChildNode);return(t=i[o+1])!==null&&t!==void 0?t:null}return null}return e.nextSibling}function Qs(e){return e.tagName}function Xs(e,t){e.textContent=t}function Js(e){return e.textContent}function ea(e){return e.nodeType===1}function ta(e){return e.nodeType===3}function ra(e){return e.nodeType===8}function be(e){return e.nodeType===11}function Oe(e,t){var r,n,i;let o=e;return(r=o.parent)!==null&&r!==void 0||(o.parent=t??null),(n=o.firstChildNode)!==null&&n!==void 0||(o.firstChildNode=e.firstChild),(i=o.lastChildNode)!==null&&i!==void 0||(o.lastChildNode=e.lastChild),o}var Ni={createElement:zs,createElementNS:Vs,createTextNode:Gs,createDocumentFragment:Hs,createComment:Ws,insertBefore:Us,removeChild:js,appendChild:Ys,parentNode:qi,nextSibling:Zs,tagName:Qs,setTextContent:Xs,getTextContent:Js,isElement:ea,isText:ta,isComment:ra,isDocumentFragment:be};function De(e,t,r,n,i){let o=t===void 0?void 0:t.key;return{sel:e,data:t,children:r,text:n,elm:i,key:o}}var it=Array.isArray;function $e(e){return typeof e=="string"||typeof e=="number"||e instanceof String||e instanceof Number}function Gr(e){return e===void 0}function j(e){return e!==void 0}var Wr=De("",{},[],void 0,void 0);function ot(e,t){var r,n;let i=e.key===t.key,o=((r=e.data)===null||r===void 0?void 0:r.is)===((n=t.data)===null||n===void 0?void 0:n.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 na(){throw new Error("The document fragment is not supported on this platform.")}function ia(e,t){return e.isElement(t)}function oa(e,t){return e.isDocumentFragment(t)}function sa(e,t,r){var n;let i={};for(let o=t;o<=r;++o){let s=(n=e[o])===null||n===void 0?void 0:n.key;s!==void 0&&(i[s]=o)}return i}var aa=["create","update","remove","destroy","pre","post"];function Ur(e,t,r){let n={create:[],update:[],remove:[],destroy:[],pre:[],post:[]},i=t!==void 0?t:Ni;for(let d of aa)for(let p of e){let v=p[d];v!==void 0&&n[d].push(v)}function o(d){let p=d.id?"#"+d.id:"",v=d.getAttribute("class"),w=v?"."+v.split(" ").join("."):"";return De(i.tagName(d).toLowerCase()+p+w,{},[],void 0,d)}function s(d){return De(void 0,{},[],void 0,d)}function a(d,p){return function(){if(--p===0){let w=i.parentNode(d);i.removeChild(w,d)}}}function l(d,p){var v,w,x,A;let C,P=d.data;if(P!==void 0){let y=(v=P.hook)===null||v===void 0?void 0:v.init;j(y)&&(y(d),P=d.data)}let _=d.children,q=d.sel;if(q==="!")Gr(d.text)&&(d.text=""),d.elm=i.createComment(d.text);else if(q!==void 0){let y=q.indexOf("#"),T=q.indexOf(".",y),R=y>0?y:q.length,N=T>0?T:q.length,I=y!==-1||T!==-1?q.slice(0,Math.min(R,N)):q,X=d.elm=j(P)&&j(C=P.ns)?i.createElementNS(C,I,P):i.createElement(I,P);for(R<N&&X.setAttribute("id",q.slice(R+1,N)),T>0&&X.setAttribute("class",q.slice(N+1).replace(/\./g," ")),C=0;C<n.create.length;++C)n.create[C](Wr,d);if(it(_))for(C=0;C<_.length;++C){let en=_[C];en!=null&&i.appendChild(X,l(en,p))}else $e(d.text)&&i.appendChild(X,i.createTextNode(d.text));let ct=d.data.hook;j(ct)&&((w=ct.create)===null||w===void 0||w.call(ct,Wr,d),ct.insert&&p.push(d))}else if(!((x=r?.experimental)===null||x===void 0)&&x.fragments&&d.children){for(d.elm=((A=i.createDocumentFragment)!==null&&A!==void 0?A:na)(),C=0;C<n.create.length;++C)n.create[C](Wr,d);for(C=0;C<d.children.length;++C){let y=d.children[C];y!=null&&i.appendChild(d.elm,l(y,p))}}else d.elm=i.createTextNode(d.text);return d.elm}function c(d,p,v,w,x,A){for(;w<=x;++w){let C=v[w];C!=null&&i.insertBefore(d,l(C,A),p)}}function h(d){var p,v;let w=d.data;if(w!==void 0){(v=(p=w?.hook)===null||p===void 0?void 0:p.destroy)===null||v===void 0||v.call(p,d);for(let x=0;x<n.destroy.length;++x)n.destroy[x](d);if(d.children!==void 0)for(let x=0;x<d.children.length;++x){let A=d.children[x];A!=null&&typeof A!="string"&&h(A)}}}function f(d,p,v,w){for(var x,A;v<=w;++v){let C,P,_=p[v];if(_!=null)if(j(_.sel)){h(_),C=n.remove.length+1,P=a(_.elm,C);for(let y=0;y<n.remove.length;++y)n.remove[y](_,P);let q=(A=(x=_?.data)===null||x===void 0?void 0:x.hook)===null||A===void 0?void 0:A.remove;j(q)?q(_,P):P()}else _.children?(h(_),f(d,_.children,0,_.children.length-1)):i.removeChild(d,_.elm)}}function g(d,p,v,w){let x=0,A=0,C=p.length-1,P=p[0],_=p[C],q=v.length-1,y=v[0],T=v[q],R,N,I,X;for(;x<=C&&A<=q;)P==null?P=p[++x]:_==null?_=p[--C]:y==null?y=v[++A]:T==null?T=v[--q]:ot(P,y)?(m(P,y,w),P=p[++x],y=v[++A]):ot(_,T)?(m(_,T,w),_=p[--C],T=v[--q]):ot(P,T)?(m(P,T,w),i.insertBefore(d,P.elm,i.nextSibling(_.elm)),P=p[++x],T=v[--q]):ot(_,y)?(m(_,y,w),i.insertBefore(d,_.elm,P.elm),_=p[--C],y=v[++A]):(R===void 0&&(R=sa(p,x,C)),N=R[y.key],Gr(N)?i.insertBefore(d,l(y,w),P.elm):(I=p[N],I.sel!==y.sel?i.insertBefore(d,l(y,w),P.elm):(m(I,y,w),p[N]=void 0,i.insertBefore(d,I.elm,P.elm))),y=v[++A]);A<=q&&(X=v[q+1]==null?null:v[q+1].elm,c(d,X,v,A,q,w)),x<=C&&f(d,p,x,C)}function m(d,p,v){var w,x,A,C,P,_,q,y;let T=(w=p.data)===null||w===void 0?void 0:w.hook;(x=T?.prepatch)===null||x===void 0||x.call(T,d,p);let R=p.elm=d.elm;if(d===p)return;if(p.data!==void 0||j(p.text)&&p.text!==d.text){(A=p.data)!==null&&A!==void 0||(p.data={}),(C=d.data)!==null&&C!==void 0||(d.data={});for(let X=0;X<n.update.length;++X)n.update[X](d,p);(q=(_=(P=p.data)===null||P===void 0?void 0:P.hook)===null||_===void 0?void 0:_.update)===null||q===void 0||q.call(_,d,p)}let N=d.children,I=p.children;Gr(p.text)?j(N)&&j(I)?N!==I&&g(R,N,I,v):j(I)?(j(d.text)&&i.setTextContent(R,""),c(R,null,I,0,I.length-1,v)):j(N)?f(R,N,0,N.length-1):j(d.text)&&i.setTextContent(R,""):d.text!==p.text&&(j(N)&&f(R,N,0,N.length-1),i.setTextContent(R,p.text)),(y=T?.postpatch)===null||y===void 0||y.call(T,d,p)}return function(p,v){let w,x,A,C=[];for(w=0;w<n.pre.length;++w)n.pre[w]();for(ia(i,p)?p=o(p):oa(i,p)&&(p=s(p)),ot(p,v)?m(p,v,C):(x=p.elm,A=i.parentNode(x),l(v,C),A!==null&&(i.insertBefore(A,v.elm,i.nextSibling(x)),f(A,[p],0,0))),w=0;w<C.length;++w)C[w].data.hook.insert(C[w]);for(w=0;w<n.post.length;++w)n.post[w]();return v}}function Ri(e,t,r){if(e.ns="http://www.w3.org/2000/svg",r!=="foreignObject"&&t!==void 0)for(let n=0;n<t.length;++n){let i=t[n];if(typeof i=="string")continue;let o=i.data;o!==void 0&&Ri(o,i.children,i.sel)}}function S(e,t,r){let n={},i,o,s;if(r!==void 0?(t!==null&&(n=t),it(r)?i=r:$e(r)?o=r.toString():r&&r.sel&&(i=[r])):t!=null&&(it(t)?i=t:$e(t)?o=t.toString():t&&t.sel?i=[t]:n=t),i!==void 0)for(s=0;s<i.length;++s)$e(i[s])&&(i[s]=De(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]==="#")&&Ri(n,i,e),De(e,n,i,o,void 0)}var ca="http://www.w3.org/1999/xlink",la="http://www.w3.org/XML/1998/namespace";function Oi(e,t){let r,n=t.elm,i=e.data.attrs,o=t.data.attrs;if(!(!i&&!o)&&i!==o){i=i||{},o=o||{};for(r in o){let s=o[r];i[r]!==s&&(s===!0?n.setAttribute(r,""):s===!1?n.removeAttribute(r):r.charCodeAt(0)!==120?n.setAttribute(r,s):r.charCodeAt(3)===58?n.setAttributeNS(la,r,s):r.charCodeAt(5)===58?n.setAttributeNS(ca,r,s):n.setAttribute(r,s))}for(r in i)r in o||n.removeAttribute(r)}}var jr={create:Oi,update:Oi};function Di(e,t){let r,n,i=t.elm,o=e.data.class,s=t.data.class;if(!(!o&&!s)&&o!==s){o=o||{},s=s||{};for(n in o)o[n]&&!Object.prototype.hasOwnProperty.call(s,n)&&i.classList.remove(n);for(n in s)r=s[n],r!==o[n]&&i.classList[r?"add":"remove"](n)}}var Yr={create:Di,update:Di};var Bi=e=>{let t=Zr[e];return t?S("nag",{attrs:{title:t.name}},t.symbol):void 0},Zr={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 Ii(e,t,r){for(let n of["touchstart","mousedown"])e.addEventListener(n,i=>{t(i),i.preventDefault(),r&&r()},{passive:!1})}var Qr=(e,t,r,n=!0)=>ze(i=>i.addEventListener(e,o=>{let s=t(o);return s===!1&&o.preventDefault(),r?.(),s},{passive:n}));function ze(e){return{insert:t=>e(t.elm)}}var st=e=>{if(!e&&e!==0)return["-"];let t=new Date(e*1e3),r=":",n=Li(t.getUTCMinutes())+r+Li(t.getUTCSeconds());return e>=3600?[Math.floor(e/3600)+r+n]:[n]},Li=e=>(e<10?"0":"")+e,Ki=(e,t,r,n)=>{let i=`${t.toUpperCase()}${r}`;if(!n)return`${i} ${e("aria.empty")}`;let o=e(`aria.piece.${n.role}`);return`${i} ${e(`aria.${n.color}`)} ${o}`},Vt=(e,t,r)=>{let n=r?ua(e,r):e;if(t&&t.length>0){let i=t.map(o=>Zr[o]?.name).filter(o=>o).join(", ");i&&(n+=`, ${i}`)}return n},ua=(e,t)=>e.split("").map(r=>{if(r==="x")return t("san.takes");if(r==="+")return t("san.check");if(r==="#")return t("san.checkmate");if(r==="=")return t("san.promotesTo");if(r==="@")return t("san.droppedOn");let n=r.charCodeAt(0);return n>48&&n<58?r:n>96&&n<105?r.toUpperCase():r==="K"?t("aria.piece.king"):r==="Q"?t("aria.piece.queen"):r==="R"?t("aria.piece.rook"):r==="B"?t("aria.piece.bishop"):r==="N"?t("aria.piece.knight"):r==="O"?"O":r}).join(" ").replace("O - O - O",t("san.longCastling")).replace("O - O",t("san.shortCastling"));function Fi(e){let t=0;return r=>{t+=r.deltaY*(r.deltaMode?40:1),Math.abs(t)>=4?(e(r,!0),t=0):e(r,!1)}}function $i(e,t){let r=()=>{e(),n=Math.max(100,n-n/15),i=setTimeout(r,n)},n=350,i=setTimeout(r,500);e();let o=t.type=="touchstart"?"touchend":"mouseup";document.addEventListener(o,()=>clearTimeout(i),{once:!0})}var ha=e=>e.altKey||e.ctrlKey||e.shiftKey||e.metaKey||document.activeElement instanceof HTMLInputElement||document.activeElement instanceof HTMLTextAreaElement,zi=e=>t=>{ha(t)||(t.key=="ArrowLeft"?e.goTo("prev"):t.key=="ArrowRight"?e.goTo("next"):t.key=="f"&&e.flip())};var Vi=e=>S("div.lpv__menu.lpv__pane",{attrs:{role:"menu","aria-label":e.translate("menu")??"Menu"},hook:{insert:t=>{let r=t.elm;r.querySelector('[role="menuitem"]')?.focus(),pa(e,r)}}},[S("button.lpv__menu__entry.lpv__menu__flip.lpv__fbt",{attrs:{role:"menuitem"},hook:Qr("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(),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:Qr("click",e.togglePgn)},e.translate("getPgn")):void 0,da(e)]),da=e=>{let t=e.game.metadata.externalLink,r=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",r)}},r)},Hi=e=>S("div.lpv__controls",{attrs:{role:"navigation","aria-label":e.translate("aria.navigationControls")}},[e.pane=="board"?void 0:Ht(e,"first","step-backward"),Ht(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 r=t.elm;r.addEventListener("click",e.toggleMenu),e.menuButton=r}},attrs:{"aria-label":e.translate("menu"),"aria-expanded":String(e.pane==="menu"),"aria-haspopup":"menu"}},e.pane=="board"?void 0:"X"),Ht(e,"next","right-open"),e.pane=="board"?void 0:Ht(e,"last","step-forward")]),Ht=(e,t,r)=>{let n=e.pane=="board"&&!e.canGoTo(t);return S(`button.lpv__controls__goto.lpv__controls__goto--${t}.lpv__fbt.lpv__icon.lpv__icon-${r}`,{class:{disabled:n},hook:ze(i=>Ii(i,o=>$i(()=>e.goTo(t),o))),attrs:{"aria-label":e.translate(`aria.${t}`),"aria-disabled":String(n),disabled:n}})},pa=(e,t)=>{let r=n=>{switch(n.key){case"Enter":case" ":n.preventDefault(),document.activeElement?.click();break;case"Escape":n.preventDefault(),e.toggleMenu();break}};t.addEventListener("keydown",r)};var at={"aria-hidden":!0},Gt={role:"presentation","aria-hidden":"true"},Gi=e=>{let t=e.curData();if(!Rt(t))return"";let r=Math.ceil(t.ply/2),n=t.ply%2===1?"white":"black",i=t.san,o=e.translate("aria.move",r.toString(),e.translate(`aria.${n}`),Vt(i,t.nags,e.translate)),s=t.clocks&&t.clocks[n==="white"?"white":"black"];if(s!==void 0&&e.opts.showClocks){let l=st(s).join("");l!=="-"&&(o+=", "+e.translate("aria.remaining",l))}let a=t.comments.join(" ").trim();return a&&(o+=`. ${a}`),o},Wi=e=>{let t=e.game,r=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},n=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=r(t.players.white),o=r(t.players.black),s=n(t.metadata.result);return e.translate("aria.chessGameBetween",i,o,s)};var ji=e=>S("div.lpv__side",[S("div.lpv__moves",{attrs:{role:"complementary","aria-label":e.translate("aria.gameMoves")},hook:{insert:t=>{let r=t.elm;e.path.empty()||Ui(e,r),r.addEventListener("click",n=>{let i=n.target.getAttribute("data-path");i&&e.toPath(new re(i))},{passive:!0})},postpatch:(t,r)=>{e.autoScrollRequested&&(Ui(e,r.elm),e.autoScrollRequested=!1)}}},[...e.game.initial.comments.map(Ut),...ka(e),...fa(e)])]),fa=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)]:[]},Xr=()=>S("button.move.empty",{attrs:{"aria-hidden":"true",disabled:!0}},"..."),Jr=e=>S("index",{attrs:Gt},`${e}.`),Ut=e=>S("comment",{attrs:{role:"note"}},e),ma=()=>S("paren.open",{attrs:at},"("),ga=()=>S("paren.close",{attrs:at},")"),Wt=e=>Math.floor((e.ply-1)/2)+1,ka=e=>{let t=wa(e),r=[],n,i=e.game.moves.children.slice(1);for(e.game.initial.pos.turn=="black"&&e.game.mainline[0]&&r.push(Jr(e.game.initial.pos.fullmoves),Xr());n=(n||e.game.moves).children[0];){let o=n.data,s=o.ply%2==1;s&&r.push(Jr(Wt(o))),r.push(t(o));let a=s&&(i.length||o.comments.length)&&n.children.length;a&&r.push(Xr()),o.comments.forEach(l=>r.push(Ut(l))),i.forEach(l=>r.push(ba(e.translate,t,l))),a&&r.push(Jr(Wt(o)),Xr()),i=n.children.slice(1)}return r},ba=(e,t,r)=>S("variation",{attrs:{role:"group","aria-label":e("aria.variation")}},[...r.data.startingComments.map(Ut),...Yi(t,r)]),Yi=(e,t)=>{let r=[],n=[];t.data.ply%2==0&&r.push(S("index",{attrs:Gt},[Wt(t.data),"..."]));do{let i=t.data;i.ply%2==1&&r.push(S("index",{attrs:Gt},[Wt(i),"."])),r.push(e(i)),i.comments.forEach(o=>r.push(Ut(o))),n.forEach(o=>{r=[...r,ma(),...Yi(e,o),ga()]}),n=t.children.slice(1),t=t.children[0]}while(t);return r},wa=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"}`),Vt(t.san,t.nags,e.translate))}},[t.san,...t.nags.map(Bi)]),Ui=(e,t)=>{let r=t.querySelector(".current");if(!r){t.scrollTop=e.path.empty()?0:99999;return}t.scrollTop=r.offsetTop-t.offsetHeight/2+r.offsetHeight};function jt(e,t){let r=t=="bottom"?e.orientation():M(e.orientation()),n=e.game.players[r],i=[n.title?S("span.lpv__player__title",n.title):void 0,S("span.lpv__player__name",n.name),n.rating?S("span.lpv__player__rating",["(",n.rating,")"]):void 0];return S(`div.lpv__player.lpv__player--${t}`,[n.isLichessUser&&n.name?S("a.lpv__player__person.ulpt.user-link",{attrs:{href:`${e.opts.lichess}/@/${n.name}`,"aria-label":e.translate("aria.viewProfileOnLichess",n.name)}},i):S("span.lpv__player__person",i),e.opts.showClocks?va(e,r):void 0])}var va=(e,t)=>{let r=e.curData(),n=r.clocks&&r.clocks[t];return typeof n==null?void 0:S("div.lpv__player__clock",{class:{active:t==r.turn},attrs:{role:"timer","aria-label":st(n).join("")}},st(n))};var Zi=e=>{let t=e.flipped;return S("div.lpv__sr-only",{attrs:{role:"grid","aria-label":e.translate("aria.accessibleChessboard"),"aria-hidden":"false"}},ya(e,t))},ya=(e,t)=>{let r=e.ground?.state.pieces||Fe(e.curData().fen),n=t?Pe:Mt,i=t?[...ue].reverse():ue;return n.map(o=>S("div",{attrs:{role:"row"}},i.map(s=>{let a=`${s}${o}`,l=r.get(a);return xa(e.translate,s,o,l)})))},xa=(e,t,r,n)=>{let i=Ki(e,t,r,n);return S("span",{attrs:{role:"gridcell","aria-label":i}},i)};function Yt(e){let t=e.opts,r=`lpv.lpv--moves-${t.showMoves}.lpv--controls-${t.showControls}${t.classes?"."+t.classes.replace(" ","."):""}`,n=t.showPlayers=="auto"?e.game.hasPlayerName():t.showPlayers;return S(`div.${r}`,{class:{"lpv--menu":e.pane!="board","lpv--players":n},attrs:{role:"region",tabindex:0,"aria-label":Wi(e)},hook:ze(i=>{e.setGround(_i(i.querySelector(".cg-wrap"),Pa(e,i))),t.keyboardToMove&&i.addEventListener("keydown",zi(e))})},[S("div.lpv__sr-only",{attrs:{"aria-live":"polite","aria-atomic":"true"}},Gi(e)),Zi(e),n?jt(e,"top"):void 0,Ca(e),n?jt(e,"bottom"):void 0,t.showControls?Hi(e):void 0,t.showMoves?ji(e):void 0,e.pane=="menu"?Vi(e):e.pane=="pgn"?Sa(e):void 0])}var Ca=e=>S("div.lpv__board",{attrs:at,hook:ze(t=>{t.addEventListener("click",e.focus),e.opts.scrollToMove&&!("ontouchstart"in window)&&t.addEventListener("wheel",Fi((r,n)=>{r.preventDefault(),r.deltaY>0&&n?e.goTo("next",!1):r.deltaY<0&&n&&e.goTo("prev",!1)}))})},S("div.cg-wrap")),Sa=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)])},Pa=(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 Ma={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 Xi(e,t){let r={...Ma};return Ji(r,t),r.fen&&(r.pgn=`[FEN "${r.fen}"]
|
|
4
4
|
${r.pgn}`),r.classes||(r.classes=e.className),r}function Ji(e,t){for(let r in t)typeof t[r]<"u"&&(Qi(e[r])&&Qi(t[r])?Ji(e[r],t[r]):e[r]=t[r])}function Qi(e){if(typeof e!="object"||e===null)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Ea(e,t){let r=Ur([Yr,jr]),n=Xi(e,t),i=new Je(n,a),o=Yt(i);e.innerHTML="";let s=r(e,o);i.div=s.elm;function a(){s=r(s,Yt(i))}return i}export{Ea as default};
|
package/dist/translation.js
CHANGED
|
@@ -31,10 +31,10 @@ const defaultTranslations = {
|
|
|
31
31
|
'aria.variation': 'Variation',
|
|
32
32
|
'aria.navigationControls': 'Game navigation controls',
|
|
33
33
|
'aria.viewProfileOnLichess': "View %s's profile on Lichess",
|
|
34
|
-
'aria.chessGameBetween': 'Chess game between %1$s
|
|
34
|
+
'aria.chessGameBetween': 'Chess game between %1$s as white and %2$s as black. %3$s',
|
|
35
35
|
'aria.gameInProgress': 'Game in progress',
|
|
36
|
-
'aria.
|
|
37
|
-
'aria.
|
|
36
|
+
'aria.whiteWins': 'White wins',
|
|
37
|
+
'aria.blackWins': 'Black wins',
|
|
38
38
|
'aria.draw': 'Draw',
|
|
39
39
|
'aria.unknownPlayer': 'Unknown player',
|
|
40
40
|
'aria.rated': 'rated %s',
|
package/dist/translation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translation.js","sourceRoot":"","sources":["../src/translation.ts"],"names":[],"mappings":"AAEA,MAAM,iBAAiB,GAAe,CAAC,GAAW,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;AAEhF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,MAAmB;IACnD,OAAO,CAAC,GAAW,EAAE,GAAG,IAAc,EAAE,EAAE;QACxC,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACrE,OAAO,WAAW,CAAC,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,IAAc,EAAU,EAAE;IAC1D,IAAI,MAAM,GAAG,GAAG,CAAC;IACjB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC1B,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAChD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAA8B;IACrD,YAAY,EAAE,gBAAgB;IAC9B,aAAa,EAAE,gBAAgB;IAC/B,oBAAoB,EAAE,wBAAwB;IAC9C,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,iBAAiB;IAChC,UAAU,EAAE,cAAc;IAC1B,IAAI,EAAE,MAAM;IACZ,YAAY,EAAE,kBAAkB;IAChC,WAAW,EAAE,qBAAqB;IAClC,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,iBAAiB;IAC9B,gBAAgB,EAAE,YAAY;IAC9B,iBAAiB,EAAE,aAAa;IAChC,gBAAgB,EAAE,WAAW;IAC7B,yBAAyB,EAAE,0BAA0B;IACrD,2BAA2B,EAAE,8BAA8B;IAC3D,uBAAuB,EAAE,
|
|
1
|
+
{"version":3,"file":"translation.js","sourceRoot":"","sources":["../src/translation.ts"],"names":[],"mappings":"AAEA,MAAM,iBAAiB,GAAe,CAAC,GAAW,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;AAEhF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,MAAmB;IACnD,OAAO,CAAC,GAAW,EAAE,GAAG,IAAc,EAAE,EAAE;QACxC,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACrE,OAAO,WAAW,CAAC,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,IAAc,EAAU,EAAE;IAC1D,IAAI,MAAM,GAAG,GAAG,CAAC;IACjB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC1B,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAChD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAA8B;IACrD,YAAY,EAAE,gBAAgB;IAC9B,aAAa,EAAE,gBAAgB;IAC/B,oBAAoB,EAAE,wBAAwB;IAC9C,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,iBAAiB;IAChC,UAAU,EAAE,cAAc;IAC1B,IAAI,EAAE,MAAM;IACZ,YAAY,EAAE,kBAAkB;IAChC,WAAW,EAAE,qBAAqB;IAClC,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,iBAAiB;IAC9B,gBAAgB,EAAE,YAAY;IAC9B,iBAAiB,EAAE,aAAa;IAChC,gBAAgB,EAAE,WAAW;IAC7B,yBAAyB,EAAE,0BAA0B;IACrD,2BAA2B,EAAE,8BAA8B;IAC3D,uBAAuB,EAAE,0DAA0D;IACnF,qBAAqB,EAAE,kBAAkB;IACzC,gBAAgB,EAAE,YAAY;IAC9B,gBAAgB,EAAE,YAAY;IAC9B,WAAW,EAAE,MAAM;IACnB,oBAAoB,EAAE,gBAAgB;IACtC,YAAY,EAAE,UAAU;IACxB,WAAW,EAAE,uBAAuB;IACpC,YAAY,EAAE,OAAO;IACrB,YAAY,EAAE,OAAO;IACrB,gBAAgB,EAAE,cAAc;IAChC,wBAAwB,EAAE,4BAA4B;IACtD,2BAA2B,EAAE,uBAAuB;IACpD,iBAAiB,EAAE,MAAM;IACzB,kBAAkB,EAAE,OAAO;IAC3B,iBAAiB,EAAE,MAAM;IACzB,mBAAmB,EAAE,QAAQ;IAC7B,mBAAmB,EAAE,QAAQ;IAC7B,iBAAiB,EAAE,MAAM;IACzB,YAAY,EAAE,OAAO;IACrB,WAAW,EAAE,OAAO;IACpB,WAAW,EAAE,OAAO;IACpB,eAAe,EAAE,WAAW;IAC5B,gBAAgB,EAAE,aAAa;IAC/B,eAAe,EAAE,YAAY;IAC7B,kBAAkB,EAAE,eAAe;IACnC,mBAAmB,EAAE,gBAAgB;CACtC,CAAC"}
|
|
@@ -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@9.8.5/node_modules/@lichess-org/chessground/dist/types.d.ts","../node_modules/.pnpm/@lichess-org+chessground@9.8.5/node_modules/@lichess-org/chessground/dist/anim.d.ts","../node_modules/.pnpm/@lichess-org+chessground@9.8.5/node_modules/@lichess-org/chessground/dist/drag.d.ts","../node_modules/.pnpm/@lichess-org+chessground@9.8.5/node_modules/@lichess-org/chessground/dist/draw.d.ts","../node_modules/.pnpm/@lichess-org+chessground@9.8.5/node_modules/@lichess-org/chessground/dist/state.d.ts","../node_modules/.pnpm/@lichess-org+chessground@9.8.5/node_modules/@lichess-org/chessground/dist/config.d.ts","../src/path.ts","../src/interfaces.ts","../src/config.ts","../node_modules/.pnpm/@lichess-org+chessground@9.8.5/node_modules/@lichess-org/chessground/dist/api.d.ts","../src/translation.ts","../node_modules/.pnpm/@lichess-org+chessground@9.8.5/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@9.8.5/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@9.8.5/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":"e5505152bbc8add27679f394690cd493965b87b3ad4be1773104e8b5cccbd294","impliedFormat":99},{"version":"4d2a9be5f03a0b85adff5cfa50a46e6bdc84cfb5186966ee83b5c4aa2d843bce","impliedFormat":99},{"version":"14fbc0091eb1d2d336d59a3c0771a9591e997fad2a1e2ad544ab53722249447e","impliedFormat":99},{"version":"435ca0e383467cd9b5f69e517ad4a7b03a38765d0e4d4af0fe423265abdd8128","impliedFormat":99},{"version":"f12611694e162babd53df694638736fb8ce25d243585528368631a205a96da25","impliedFormat":99},{"version":"62fb9e6668622a986ed49aef3ff233de39cd0c75abaaff6c3332f03c7d7d85f0","impliedFormat":99},{"version":"b2eb3e2e585446d4a521f21b20904581654925c3826bec560ad457fc39512a16","signature":"ab8d2ec9b55e4404c0214a28fb884c1490af913964b22c23d6a224d5ebda139a"},{"version":"344e0349d38e7405006f74415cf39e17be74c5f8cf9579b27039b178050d0bbd","signature":"dc84cd877c94d0c5444dbbf7b6d6c069581795dced29e25efa588cf4cfbf46c7"},{"version":"baae1124e718c52a55a37cae7c86dcca7919951644a73a2817a1cbda83741290","signature":"3f2c6120d760a419c5b4f6154085a1f1d3c4416a87d0b5471dc2fe3a2016838e"},{"version":"bac3a4cd114dfcb542cc56834ed4813744daf1289d519afa90740f5b5746c750","impliedFormat":99},{"version":"2ad575b51a77d7bd4eaad209ec4eec33e85bbe9f7abc74bb74026a7b59c4ba24","signature":"9c45488c512752b3c2287d5cf808c5b339011261255d7e6724187ba94e0246e0"},{"version":"e9527fb8c2b1e61e800b393e99aca8afe970c3d0571c01a8951f9c9af2ec3219","impliedFormat":99},{"version":"12b12dc3ee9d168cece989eee68e903071c69db808914cf2bb05b65ba9d5c76a","signature":"3aa388df5a873d69898c90fcc0f26d3d520dee117c17c4ce49cc132ed68db198"},{"version":"bc50e721604d26e21eb219ef26ffdd3a303bc4d51188cf95227510387169ac23","signature":"536d062cb2ebdec1d307aecdb77c2d6f89b4fce481f8f66d181886b2b5bf8fef"},{"version":"abee5538882eaec2e7b3bf28d9a6f32dd7a204814039734d30fa6363b63fed62","signature":"1c8c28c997e606f41e055da0077bfd76225fec58cfb2cf44ea687f377b2afaeb"},{"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":"2c8b63d03768a19679ee9e147696ab7a643132c66e2460e51cb1fafc279d988a","signature":"eeb0edc394398fdf0cd19a30baec23a027a528b48388fd7fec540b3092a985f4"},{"version":"42a697365fee7bf60a64047f3a7a7b0710df06c30d2ad1db2ba0d027516dd22c","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@9.8.5/node_modules/@lichess-org/chessground/dist/types.d.ts","../node_modules/.pnpm/@lichess-org+chessground@9.8.5/node_modules/@lichess-org/chessground/dist/anim.d.ts","../node_modules/.pnpm/@lichess-org+chessground@9.8.5/node_modules/@lichess-org/chessground/dist/drag.d.ts","../node_modules/.pnpm/@lichess-org+chessground@9.8.5/node_modules/@lichess-org/chessground/dist/draw.d.ts","../node_modules/.pnpm/@lichess-org+chessground@9.8.5/node_modules/@lichess-org/chessground/dist/state.d.ts","../node_modules/.pnpm/@lichess-org+chessground@9.8.5/node_modules/@lichess-org/chessground/dist/config.d.ts","../src/path.ts","../src/interfaces.ts","../src/config.ts","../node_modules/.pnpm/@lichess-org+chessground@9.8.5/node_modules/@lichess-org/chessground/dist/api.d.ts","../src/translation.ts","../node_modules/.pnpm/@lichess-org+chessground@9.8.5/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@9.8.5/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@9.8.5/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":"e5505152bbc8add27679f394690cd493965b87b3ad4be1773104e8b5cccbd294","impliedFormat":99},{"version":"4d2a9be5f03a0b85adff5cfa50a46e6bdc84cfb5186966ee83b5c4aa2d843bce","impliedFormat":99},{"version":"14fbc0091eb1d2d336d59a3c0771a9591e997fad2a1e2ad544ab53722249447e","impliedFormat":99},{"version":"435ca0e383467cd9b5f69e517ad4a7b03a38765d0e4d4af0fe423265abdd8128","impliedFormat":99},{"version":"f12611694e162babd53df694638736fb8ce25d243585528368631a205a96da25","impliedFormat":99},{"version":"62fb9e6668622a986ed49aef3ff233de39cd0c75abaaff6c3332f03c7d7d85f0","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":"abee5538882eaec2e7b3bf28d9a6f32dd7a204814039734d30fa6363b63fed62","signature":"1c8c28c997e606f41e055da0077bfd76225fec58cfb2cf44ea687f377b2afaeb"},{"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":"2c8b63d03768a19679ee9e147696ab7a643132c66e2460e51cb1fafc279d988a","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/dist/view/aria.js
CHANGED
|
@@ -39,9 +39,9 @@ export const renderRootAriaLabel = (ctrl) => {
|
|
|
39
39
|
if (!result || result === '*')
|
|
40
40
|
return ctrl.translate('aria.gameInProgress');
|
|
41
41
|
if (result === '1-0')
|
|
42
|
-
return ctrl.translate('aria.
|
|
42
|
+
return ctrl.translate('aria.whiteWins');
|
|
43
43
|
if (result === '0-1')
|
|
44
|
-
return ctrl.translate('aria.
|
|
44
|
+
return ctrl.translate('aria.blackWins');
|
|
45
45
|
if (result === '1/2-1/2')
|
|
46
46
|
return ctrl.translate('aria.draw');
|
|
47
47
|
return result; // fallback for any other result format
|
package/package.json
CHANGED
package/src/translation.ts
CHANGED
|
@@ -36,10 +36,10 @@ const defaultTranslations: { [key: string]: string } = {
|
|
|
36
36
|
'aria.variation': 'Variation',
|
|
37
37
|
'aria.navigationControls': 'Game navigation controls',
|
|
38
38
|
'aria.viewProfileOnLichess': "View %s's profile on Lichess",
|
|
39
|
-
'aria.chessGameBetween': 'Chess game between %1$s
|
|
39
|
+
'aria.chessGameBetween': 'Chess game between %1$s as white and %2$s as black. %3$s',
|
|
40
40
|
'aria.gameInProgress': 'Game in progress',
|
|
41
|
-
'aria.
|
|
42
|
-
'aria.
|
|
41
|
+
'aria.whiteWins': 'White wins',
|
|
42
|
+
'aria.blackWins': 'Black wins',
|
|
43
43
|
'aria.draw': 'Draw',
|
|
44
44
|
'aria.unknownPlayer': 'Unknown player',
|
|
45
45
|
'aria.rated': 'rated %s',
|
package/src/view/aria.ts
CHANGED
|
@@ -54,8 +54,8 @@ export const renderRootAriaLabel = (ctrl: PgnViewer): string => {
|
|
|
54
54
|
|
|
55
55
|
const formatResult = (result?: string): string => {
|
|
56
56
|
if (!result || result === '*') return ctrl.translate('aria.gameInProgress');
|
|
57
|
-
if (result === '1-0') return ctrl.translate('aria.
|
|
58
|
-
if (result === '0-1') return ctrl.translate('aria.
|
|
57
|
+
if (result === '1-0') return ctrl.translate('aria.whiteWins');
|
|
58
|
+
if (result === '0-1') return ctrl.translate('aria.blackWins');
|
|
59
59
|
if (result === '1/2-1/2') return ctrl.translate('aria.draw');
|
|
60
60
|
return result; // fallback for any other result format
|
|
61
61
|
};
|