next-chessground 1.4.0 → 1.4.2
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/dist/index.es.js +10 -10
- package/dist/index.js +10 -10
- package/package.json +1 -1
package/dist/index.es.js
CHANGED
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t,Fragment as n}from"react/jsx-runtime";import A,{createContext as o,useState as r,useContext as i,useEffect as s,useRef as a,useCallback as c,forwardRef as l,useImperativeHandle as u}from"react";import h from"react-dom";const p=o({theme:{board:"green",pieces:"neo",playSounds:!0,sounds:"robot",highlight:!0,coordinates:!0},setTheme:()=>{}}),g=({children:t})=>e(A.Fragment,{children:"undefined"==typeof window?null:t});var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function m(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function f(e,t,n){return e(n={path:t,exports:{},require:function(e,t){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==t&&n.path)}},n.exports),n.exports}var b=f(function(e){!function(t,n){var A={version:"2.14.4",areas:{},apis:{},nsdelim:".",inherit:function(e,t){for(var n in e)t.hasOwnProperty(n)||Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n));return t},stringify:function(e,t){return void 0===e||"function"==typeof e?e+"":JSON.stringify(e,t||A.replace)},parse:function(e,t){try{return JSON.parse(e,t||A.revive)}catch(t){return e}},fn:function(e,t){for(var n in A.storeAPI[e]=t,A.apis)A.apis[n][e]=t},get:function(e,t){return e.getItem(t)},set:function(e,t,n){e.setItem(t,n)},remove:function(e,t){e.removeItem(t)},key:function(e,t){return e.key(t)},length:function(e){return e.length},clear:function(e){e.clear()},Store:function(e,t,n){var o=A.inherit(A.storeAPI,function(e,t,n){return 0===arguments.length?o.getAll():"function"==typeof t?o.transact(e,t,n):void 0!==t?o.set(e,t,n):"string"==typeof e||"number"==typeof e?o.get(e):"function"==typeof e?o.each(e):e?o.setAll(e,t):o.clear()});o._id=e;try{var r="__store2_test";t.setItem(r,"ok"),o._area=t,t.removeItem(r)}catch(e){o._area=A.storage("fake")}return o._ns=n||"",A.areas[e]||(A.areas[e]=o._area),A.apis[o._ns+o._id]||(A.apis[o._ns+o._id]=o),o},storeAPI:{area:function(e,t){var n=this[e];return n&&n.area||(n=A.Store(e,t,this._ns),this[e]||(this[e]=n)),n},namespace:function(e,t,n){if(n=n||this._delim||A.nsdelim,!e)return this._ns?this._ns.substring(0,this._ns.length-n.length):"";var o=e,r=this[o];if(!(r&&r.namespace||((r=A.Store(this._id,this._area,this._ns+o+n))._delim=n,this[o]||(this[o]=r),t)))for(var i in A.areas)r.area(i,A.areas[i]);return r},isFake:function(e){return e?(this._real=this._area,this._area=A.storage("fake")):!1===e&&(this._area=this._real||this._area),"fake"===this._area.name},toString:function(){return"store"+(this._ns?"."+this.namespace():"")+"["+this._id+"]"},has:function(e){return this._area.has?this._area.has(this._in(e)):!!(this._in(e)in this._area)},size:function(){return this.keys().length},each:function(e,t){for(var n=0,o=A.length(this._area);n<o;n++){var r=this._out(A.key(this._area,n));if(void 0!==r&&!1===e.call(this,r,this.get(r),t))break;o>A.length(this._area)&&(o--,n--)}return t||this},keys:function(e){return this.each(function(e,t,n){n.push(e)},e||[])},get:function(e,t){var n,o=A.get(this._area,this._in(e));return"function"==typeof t&&(n=t,t=null),null!==o?A.parse(o,n):null!=t?t:o},getAll:function(e){return this.each(function(e,t,n){n[e]=t},e||{})},transact:function(e,t,n){var A=this.get(e,n),o=t(A);return this.set(e,void 0===o?A:o),this},set:function(e,t,n){var o,r=this.get(e);return null!=r&&!1===n?t:("function"==typeof n&&(o=n,n=void 0),A.set(this._area,this._in(e),A.stringify(t,o),n)||r)},setAll:function(e,t){var n,A;for(var o in e)A=e[o],this.set(o,A,t)!==A&&(n=!0);return n},add:function(e,t,n){var o=this.get(e);if(o instanceof Array)t=o.concat(t);else if(null!==o){var r=typeof o;if(r===typeof t&&"object"===r){for(var i in t)o[i]=t[i];t=o}else t=o+t}return A.set(this._area,this._in(e),A.stringify(t,n)),t},remove:function(e,t){var n=this.get(e,t);return A.remove(this._area,this._in(e)),n},clear:function(){return this._ns?this.each(function(e){A.remove(this._area,this._in(e))},1):A.clear(this._area),this},clearAll:function(){var e=this._area;for(var t in A.areas)A.areas.hasOwnProperty(t)&&(this._area=A.areas[t],this.clear());return this._area=e,this},_in:function(e){return"string"!=typeof e&&(e=A.stringify(e)),this._ns?this._ns+e:e},_out:function(e){return this._ns?e&&0===e.indexOf(this._ns)?e.substring(this._ns.length):void 0:e}},storage:function(e){return A.inherit(A.storageAPI,{items:{},name:e})},storageAPI:{length:0,has:function(e){return this.items.hasOwnProperty(e)},key:function(e){var t=0;for(var n in this.items)if(this.has(n)&&e===t++)return n},setItem:function(e,t){this.has(e)||this.length++,this.items[e]=t},removeItem:function(e){this.has(e)&&(delete this.items[e],this.length--)},getItem:function(e){return this.has(e)?this.items[e]:null},clear:function(){for(var e in this.items)this.removeItem(e)}}},o=A.Store("local",function(){try{return localStorage}catch(e){}}());o.local=o,o._=A,o.area("session",function(){try{return sessionStorage}catch(e){}}()),o.area("page",A.storage("page")),"function"==typeof n&&void 0!==n.amd?n("store2",[],function(){return o}):e.exports?e.exports=o:(t.store&&(A.conflict=t.store),t.store=o)}(d,d&&d.define)});const y=({children:t})=>{const[n,A]=r((()=>{const e={board:"green",pieces:"cburnett",playSounds:!0,sounds:"robot",highlight:!0,coordinates:!0},t={board:b.local.get("chessground.board"),pieces:b.local.get("chessground.pieces"),playSounds:b.local.get("chessground.playSounds"),sounds:b.local.get("chessground.sounds"),highlight:b.local.get("chessground.highlight"),coordinates:b.local.get("chessground.coordinates")};for(const n of Object.keys(t))null!=t[n]&&(e[n]=t[n]);return e})());return e(g,{children:e(p.Provider,{value:{theme:n,setTheme:A},children:t})})};function I(){return Array.prototype.slice.call(arguments).reduce(function(e,t){return e.concat(t)},[]).filter(function(e){return"string"==typeof e}).join(" ")}function k(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var A=n.call(e,t||"default");if("object"!=typeof A)return A;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}
|
|
2
|
-
/** @license React v16.13.1
|
|
3
|
-
* react-is.production.min.js
|
|
4
|
-
*
|
|
5
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
6
|
-
*
|
|
7
|
-
* This source code is licensed under the MIT license found in the
|
|
8
|
-
* LICENSE file in the root directory of this source tree.
|
|
9
|
-
*/(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var w="function"==typeof Symbol&&Symbol.for,C=w?Symbol.for("react.element"):60103,v=w?Symbol.for("react.portal"):60106,S=w?Symbol.for("react.fragment"):60107,E=w?Symbol.for("react.strict_mode"):60108,V=w?Symbol.for("react.profiler"):60114,N=w?Symbol.for("react.provider"):60109,M=w?Symbol.for("react.context"):60110,x=w?Symbol.for("react.async_mode"):60111,B=w?Symbol.for("react.concurrent_mode"):60111,D=w?Symbol.for("react.forward_ref"):60112,T=w?Symbol.for("react.suspense"):60113,Q=w?Symbol.for("react.suspense_list"):60120,Z=w?Symbol.for("react.memo"):60115,j=w?Symbol.for("react.lazy"):60116,P=w?Symbol.for("react.block"):60121,U=w?Symbol.for("react.fundamental"):60117,O=w?Symbol.for("react.responder"):60118,q=w?Symbol.for("react.scope"):60119;function J(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case C:switch(e=e.type){case x:case B:case S:case V:case E:case T:return e;default:switch(e=e&&e.$$typeof){case M:case D:case j:case Z:case N:return e;default:return t}}case v:return t}}}function K(e){return J(e)===B}var G={AsyncMode:x,ConcurrentMode:B,ContextConsumer:M,ContextProvider:N,Element:C,ForwardRef:D,Fragment:S,Lazy:j,Memo:Z,Portal:v,Profiler:V,StrictMode:E,Suspense:T,isAsyncMode:function(e){return K(e)||J(e)===x},isConcurrentMode:K,isContextConsumer:function(e){return J(e)===M},isContextProvider:function(e){return J(e)===N},isElement:function(e){return"object"==typeof e&&null!==e&&e.$$typeof===C},isForwardRef:function(e){return J(e)===D},isFragment:function(e){return J(e)===S},isLazy:function(e){return J(e)===j},isMemo:function(e){return J(e)===Z},isPortal:function(e){return J(e)===v},isProfiler:function(e){return J(e)===V},isStrictMode:function(e){return J(e)===E},isSuspense:function(e){return J(e)===T},isValidElementType:function(e){return"string"==typeof e||"function"==typeof e||e===S||e===B||e===V||e===E||e===T||e===Q||"object"==typeof e&&null!==e&&(e.$$typeof===j||e.$$typeof===Z||e.$$typeof===N||e.$$typeof===M||e.$$typeof===D||e.$$typeof===U||e.$$typeof===O||e.$$typeof===q||e.$$typeof===P)},typeOf:J},R=f(function(e,t){"production"!==process.env.NODE_ENV&&function(){var e="function"==typeof Symbol&&Symbol.for,n=e?Symbol.for("react.element"):60103,A=e?Symbol.for("react.portal"):60106,o=e?Symbol.for("react.fragment"):60107,r=e?Symbol.for("react.strict_mode"):60108,i=e?Symbol.for("react.profiler"):60114,s=e?Symbol.for("react.provider"):60109,a=e?Symbol.for("react.context"):60110,c=e?Symbol.for("react.async_mode"):60111,l=e?Symbol.for("react.concurrent_mode"):60111,u=e?Symbol.for("react.forward_ref"):60112,h=e?Symbol.for("react.suspense"):60113,p=e?Symbol.for("react.suspense_list"):60120,g=e?Symbol.for("react.memo"):60115,d=e?Symbol.for("react.lazy"):60116,m=e?Symbol.for("react.block"):60121,f=e?Symbol.for("react.fundamental"):60117,b=e?Symbol.for("react.responder"):60118,y=e?Symbol.for("react.scope"):60119;function I(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:var p=e.type;switch(p){case c:case l:case o:case i:case r:case h:return p;default:var m=p&&p.$$typeof;switch(m){case a:case u:case d:case g:case s:return m;default:return t}}case A:return t}}}var k=c,w=l,C=a,v=s,S=n,E=u,V=o,N=d,M=g,x=A,B=i,D=r,T=h,Q=!1;function Z(e){return I(e)===l}t.AsyncMode=k,t.ConcurrentMode=w,t.ContextConsumer=C,t.ContextProvider=v,t.Element=S,t.ForwardRef=E,t.Fragment=V,t.Lazy=N,t.Memo=M,t.Portal=x,t.Profiler=B,t.StrictMode=D,t.Suspense=T,t.isAsyncMode=function(e){return Q||(Q=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),Z(e)||I(e)===c},t.isConcurrentMode=Z,t.isContextConsumer=function(e){return I(e)===a},t.isContextProvider=function(e){return I(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===n},t.isForwardRef=function(e){return I(e)===u},t.isFragment=function(e){return I(e)===o},t.isLazy=function(e){return I(e)===d},t.isMemo=function(e){return I(e)===g},t.isPortal=function(e){return I(e)===A},t.isProfiler=function(e){return I(e)===i},t.isStrictMode=function(e){return I(e)===r},t.isSuspense=function(e){return I(e)===h},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===l||e===i||e===r||e===h||e===p||"object"==typeof e&&null!==e&&(e.$$typeof===d||e.$$typeof===g||e.$$typeof===s||e.$$typeof===a||e.$$typeof===u||e.$$typeof===f||e.$$typeof===b||e.$$typeof===y||e.$$typeof===m)},t.typeOf=I}()}),F=f(function(e){"production"===process.env.NODE_ENV?e.exports=G:e.exports=R}),L=Object.getOwnPropertySymbols,z=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable;var Y=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;var A=Object.getOwnPropertyNames(t).map(function(e){return t[e]});if("0123456789"!==A.join(""))return!1;var o={};return"abcdefghijklmnopqrst".split("").forEach(function(e){o[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},o)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,A,o=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),r=1;r<arguments.length;r++){for(var i in n=Object(arguments[r]))z.call(n,i)&&(o[i]=n[i]);if(L){A=L(n);for(var s=0;s<A.length;s++)W.call(n,A[s])&&(o[A[s]]=n[A[s]])}}return o},_="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",H=function(){};if("production"!==process.env.NODE_ENV){var X=_,$={},ee=Function.call.bind(Object.prototype.hasOwnProperty);H=function(e){var t="Warning: "+e;"undefined"!=typeof console&&console.error(t);try{throw new Error(t)}catch(e){}}}function te(e,t,n,A,o){if("production"!==process.env.NODE_ENV)for(var r in e)if(ee(e,r)){var i;try{if("function"!=typeof e[r]){var s=Error((A||"React class")+": "+n+" type `"+r+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[r]+"`.");throw s.name="Invariant Violation",s}i=e[r](t,r,A,n,null,X)}catch(e){i=e}if(!i||i instanceof Error||H((A||"React class")+": type specification of "+n+" `"+r+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof i+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),i instanceof Error&&!(i.message in $)){$[i.message]=!0;var a=o?o():"";H("Failed "+n+" type: "+i.message+(null!=a?a:""))}}}te.resetWarningCache=function(){"production"!==process.env.NODE_ENV&&($={})};var ne=te,Ae=Function.call.bind(Object.prototype.hasOwnProperty),oe=function(){};function re(){return null}"production"!==process.env.NODE_ENV&&(oe=function(e){var t="Warning: "+e;"undefined"!=typeof console&&console.error(t);try{throw new Error(t)}catch(e){}});var ie=function(e,t){var n="function"==typeof Symbol&&Symbol.iterator;var A="<<anonymous>>",o={array:a("array"),bool:a("boolean"),func:a("function"),number:a("number"),object:a("object"),string:a("string"),symbol:a("symbol"),any:s(re),arrayOf:function(e){return s(function(t,n,A,o,r){if("function"!=typeof e)return new i("Property `"+r+"` of component `"+A+"` has invalid PropType notation inside arrayOf.");var s=t[n];if(!Array.isArray(s))return new i("Invalid "+o+" `"+r+"` of type `"+l(s)+"` supplied to `"+A+"`, expected an array.");for(var a=0;a<s.length;a++){var c=e(s,a,A,o,r+"["+a+"]",_);if(c instanceof Error)return c}return null})},element:s(function(t,n,A,o,r){var s=t[n];return e(s)?null:new i("Invalid "+o+" `"+r+"` of type `"+l(s)+"` supplied to `"+A+"`, expected a single ReactElement.")}),elementType:s(function(e,t,n,A,o){var r=e[t];return F.isValidElementType(r)?null:new i("Invalid "+A+" `"+o+"` of type `"+l(r)+"` supplied to `"+n+"`, expected a single ReactElement type.")}),instanceOf:function(e){return s(function(t,n,o,r,s){if(!(t[n]instanceof e)){var a=e.name||A;return new i("Invalid "+r+" `"+s+"` of type `"+(((c=t[n]).constructor&&c.constructor.name?c.constructor.name:A)+"` supplied to `")+o+"`, expected instance of `"+a+"`.")}var c;return null})},node:s(function(e,t,n,A,o){return c(e[t])?null:new i("Invalid "+A+" `"+o+"` supplied to `"+n+"`, expected a ReactNode.")}),objectOf:function(e){return s(function(t,n,A,o,r){if("function"!=typeof e)return new i("Property `"+r+"` of component `"+A+"` has invalid PropType notation inside objectOf.");var s=t[n],a=l(s);if("object"!==a)return new i("Invalid "+o+" `"+r+"` of type `"+a+"` supplied to `"+A+"`, expected an object.");for(var c in s)if(Ae(s,c)){var u=e(s,c,A,o,r+"."+c,_);if(u instanceof Error)return u}return null})},oneOf:function(e){if(!Array.isArray(e))return"production"!==process.env.NODE_ENV&&oe(arguments.length>1?"Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).":"Invalid argument supplied to oneOf, expected an array."),re;return s(function(t,n,A,o,s){for(var a=t[n],c=0;c<e.length;c++)if(r(a,e[c]))return null;var l=JSON.stringify(e,function(e,t){return"symbol"===u(t)?String(t):t});return new i("Invalid "+o+" `"+s+"` of value `"+String(a)+"` supplied to `"+A+"`, expected one of "+l+".")})},oneOfType:function(e){if(!Array.isArray(e))return"production"!==process.env.NODE_ENV&&oe("Invalid argument supplied to oneOfType, expected an instance of array."),re;for(var t=0;t<e.length;t++){var n=e[t];if("function"!=typeof n)return oe("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+h(n)+" at index "+t+"."),re}return s(function(t,n,A,o,r){for(var s=0;s<e.length;s++)if(null==(0,e[s])(t,n,A,o,r,_))return null;return new i("Invalid "+o+" `"+r+"` supplied to `"+A+"`.")})},shape:function(e){return s(function(t,n,A,o,r){var s=t[n],a=l(s);if("object"!==a)return new i("Invalid "+o+" `"+r+"` of type `"+a+"` supplied to `"+A+"`, expected `object`.");for(var c in e){var u=e[c];if(u){var h=u(s,c,A,o,r+"."+c,_);if(h)return h}}return null})},exact:function(e){return s(function(t,n,A,o,r){var s=t[n],a=l(s);if("object"!==a)return new i("Invalid "+o+" `"+r+"` of type `"+a+"` supplied to `"+A+"`, expected `object`.");var c=Y({},t[n],e);for(var u in c){var h=e[u];if(!h)return new i("Invalid "+o+" `"+r+"` key `"+u+"` supplied to `"+A+"`.\nBad object: "+JSON.stringify(t[n],null," ")+"\nValid keys: "+JSON.stringify(Object.keys(e),null," "));var p=h(s,u,A,o,r+"."+u,_);if(p)return p}return null})}};function r(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function i(e){this.message=e,this.stack=""}function s(e){if("production"!==process.env.NODE_ENV)var n={},o=0;function r(r,s,a,c,l,u,h){if(c=c||A,u=u||a,h!==_){if(t){var p=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw p.name="Invariant Violation",p}if("production"!==process.env.NODE_ENV&&"undefined"!=typeof console){var g=c+":"+a;!n[g]&&o<3&&(oe("You are manually calling a React.PropTypes validation function for the `"+u+"` prop on `"+c+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),n[g]=!0,o++)}}return null==s[a]?r?null===s[a]?new i("The "+l+" `"+u+"` is marked as required in `"+c+"`, but its value is `null`."):new i("The "+l+" `"+u+"` is marked as required in `"+c+"`, but its value is `undefined`."):null:e(s,a,c,l,u)}var s=r.bind(null,!1);return s.isRequired=r.bind(null,!0),s}function a(e){return s(function(t,n,A,o,r,s){var a=t[n];return l(a)!==e?new i("Invalid "+o+" `"+r+"` of type `"+u(a)+"` supplied to `"+A+"`, expected `"+e+"`."):null})}function c(t){switch(typeof t){case"number":case"string":case"undefined":return!0;case"boolean":return!t;case"object":if(Array.isArray(t))return t.every(c);if(null===t||e(t))return!0;var A=function(e){var t=e&&(n&&e[n]||e["@@iterator"]);if("function"==typeof t)return t}(t);if(!A)return!1;var o,r=A.call(t);if(A!==t.entries){for(;!(o=r.next()).done;)if(!c(o.value))return!1}else for(;!(o=r.next()).done;){var i=o.value;if(i&&!c(i[1]))return!1}return!0;default:return!1}}function l(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":function(e,t){return"symbol"===e||!!t&&("Symbol"===t["@@toStringTag"]||"function"==typeof Symbol&&t instanceof Symbol)}(t,e)?"symbol":t}function u(e){if(null==e)return""+e;var t=l(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}function h(e){var t=u(e);switch(t){case"array":case"object":return"an "+t;case"boolean":case"date":case"regexp":return"a "+t;default:return t}}return i.prototype=Error.prototype,o.checkPropTypes=ne,o.resetWarningCache=ne.resetWarningCache,o.PropTypes=o,o};function se(){}function ae(){}ae.resetWarningCache=se;var ce=f(function(e){if("production"!==process.env.NODE_ENV){var t=F;e.exports=ie(t.isElement,!0)}else e.exports=function(){function e(e,t,n,A,o,r){if(r!==_){var i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:ae,resetWarningCache:se};return n.PropTypes=n,n}()});const le=["white","black"],ue=["a","b","c","d","e","f","g","h"],he=["1","2","3","4","5","6","7","8"],pe=[...he].reverse(),ge=Array.prototype.concat(...ue.map(e=>he.map(t=>e+t))),de=e=>ge[8*e[0]+e[1]],me=e=>[e.charCodeAt(0)-97,e.charCodeAt(1)-49],fe=ge.map(me);const be=()=>{let e;return{start(){e=performance.now()},cancel(){e=void 0},stop(){if(!e)return 0;const t=performance.now()-e;return e=void 0,t}}},ye=e=>"white"===e?"black":"white",Ie=(e,t)=>{const n=e[0]-t[0],A=e[1]-t[1];return n*n+A*A},ke=(e,t)=>e.role===t.role&&e.color===t.color,we=(e,t,n,A)=>[(t?e[0]:7-e[0])*n,(t?7-e[1]:e[1])*A],Ce=e=>{const t=e.width/8,n=e.height/8;return(e,A)=>we(e,A,t,n)},ve=(e,t)=>we(e,t,100,100),Se=(e,t)=>{e.style.transform=`translate(${t[0]}px,${t[1]}px)`},Ee=(e,t)=>{e.style.transform=`translate(${t[0]}%,${t[1]}%)`},Ve=(e,t)=>{e.style.visibility=t?"visible":"hidden"},Ne=e=>{var t;return e.clientX||0===e.clientX?[e.clientX,e.clientY]:(null===(t=e.targetTouches)||void 0===t?void 0:t[0])?[e.targetTouches[0].clientX,e.targetTouches[0].clientY]:void 0},Me=e=>2===e.buttons||2===e.button,xe=(e,t)=>{const n=document.createElement(e);return t&&(n.className=t),n};function Be(e,t,n){const A=me(e);return t||(A[0]=7-A[0],A[1]=7-A[1]),[n.left+n.width*A[0]/8+n.width/16,n.top+n.height*(7-A[1])/8+n.height/16]}function De(e,t){return Math.abs(e-t)}const Te=(e,t,n,A)=>{const o=De(e,n),r=De(t,A);return 1===o&&2===r||2===o&&1===r},Qe=(e,t,n,A)=>De(e,n)===De(t,A),Ze=(e,t,n,A)=>e===n||t===A,je=(e,t,n,A)=>Qe(e,t,n,A)||Ze(e,t,n,A);function Pe(e,t,n){const A=e.get(t);if(!A)return[];const o=me(t),r=A.role,i="pawn"===r?(s=A.color,(e,t,n,A)=>De(e,n)<2&&("white"===s?A===t+1||t<=1&&A===t+2&&e===n:A===t-1||t>=6&&A===t-2&&e===n)):"knight"===r?Te:"bishop"===r?Qe:"rook"===r?Ze:"queen"===r?je:function(e,t,n){return(A,o,r,i)=>De(A,r)<2&&De(o,i)<2||n&&o===i&&o===("white"===e?0:7)&&(4===A&&(2===r&&t.includes(0)||6===r&&t.includes(7))||t.includes(r))}(A.color,function(e,t){const n="white"===t?"1":"8",A=[];for(const[o,r]of e)o[1]===n&&r.color===t&&"rook"===r.role&&A.push(me(o)[0]);return A}(e,A.color),n);var s;return fe.filter(e=>(o[0]!==e[0]||o[1]!==e[1])&&i(o[0],o[1],e[0],e[1])).map(de)}function Ue(e,...t){e&&setTimeout(()=>e(...t),1)}function Oe(e){e.premovable.current&&(e.premovable.current=void 0,Ue(e.premovable.events.unset))}function qe(e){const t=e.predroppable;t.current&&(t.current=void 0,Ue(t.events.unset))}function Je(e,t,n){const A=e.pieces.get(t),o=e.pieces.get(n);if(t===n||!A)return!1;const r=o&&o.color!==A.color?o:void 0;return n===e.selected&&We(e),Ue(e.events.move,t,n,r),function(e,t,n){if(!e.autoCastle)return!1;const A=e.pieces.get(t);if(!A||"king"!==A.role)return!1;const o=me(t),r=me(n);if(0!==o[1]&&7!==o[1]||o[1]!==r[1])return!1;4!==o[0]||e.pieces.has(n)||(6===r[0]?n=de([7,r[1]]):2===r[0]&&(n=de([0,r[1]])));const i=e.pieces.get(n);return!(!i||i.color!==A.color||"rook"!==i.role||(e.pieces.delete(t),e.pieces.delete(n),o[0]<r[0]?(e.pieces.set(de([6,r[1]]),A),e.pieces.set(de([5,r[1]]),i)):(e.pieces.set(de([2,r[1]]),A),e.pieces.set(de([3,r[1]]),i)),0))}(e,t,n)||(e.pieces.set(n,A),e.pieces.delete(t)),e.lastMove=[t,n],e.check=void 0,Ue(e.events.change),r||!0}function Ke(e,t,n,A){if(e.pieces.has(n)){if(!A)return!1;e.pieces.delete(n)}return Ue(e.events.dropNewPiece,t,n),e.pieces.set(n,t),e.lastMove=[n],e.check=void 0,Ue(e.events.change),e.movable.dests=void 0,e.turnColor=ye(e.turnColor),!0}function Ge(e,t,n){const A=Je(e,t,n);return A&&(e.movable.dests=void 0,e.turnColor=ye(e.turnColor),e.animation.current=void 0),A}function Re(e,t,n){if(_e(e,t,n)){const A=Ge(e,t,n);if(A){const o=e.hold.stop();We(e);const r={premove:!1,ctrlKey:e.stats.ctrlKey,holdTime:o};return!0!==A&&(r.captured=A),Ue(e.movable.events.after,t,n,r),!0}}else if(function(e,t,n){return t!==n&&He(e,t)&&Pe(e.pieces,t,e.premovable.castle).includes(n)}(e,t,n))return function(e,t,n,A){qe(e),e.premovable.current=[t,n],Ue(e.premovable.events.set,t,n,A)}(e,t,n,{ctrlKey:e.stats.ctrlKey}),We(e),!0;return We(e),!1}function Fe(e,t,n,A){const o=e.pieces.get(t);o&&(function(e,t,n){const A=e.pieces.get(t);return!(!A||t!==n&&e.pieces.has(n)||"both"!==e.movable.color&&(e.movable.color!==A.color||e.turnColor!==A.color))}(e,t,n)||A)?(e.pieces.delete(t),Ke(e,o,n,A),Ue(e.movable.events.afterNewPiece,o.role,n,{premove:!1,predrop:!1})):o&&function(e,t,n){const A=e.pieces.get(t),o=e.pieces.get(n);return!!A&&(!o||o.color!==e.movable.color)&&e.predroppable.enabled&&("pawn"!==A.role||"1"!==n[1]&&"8"!==n[1])&&e.movable.color===A.color&&e.turnColor!==A.color}(e,t,n)?function(e,t,n){Oe(e),e.predroppable.current={role:t,key:n},Ue(e.predroppable.events.set,t,n)}(e,o.role,n):(Oe(e),qe(e)),e.pieces.delete(t),We(e)}function Le(e,t,n){if(Ue(e.events.select,t),e.selected){if(e.selected===t&&!e.draggable.enabled)return We(e),void e.hold.cancel();if((e.selectable.enabled||n)&&e.selected!==t&&Re(e,e.selected,t))return void(e.stats.dragged=!1)}(Ye(e,t)||He(e,t))&&(ze(e,t),e.hold.start())}function ze(e,t){e.selected=t,He(e,t)?e.premovable.dests=Pe(e.pieces,t,e.premovable.castle):e.premovable.dests=void 0}function We(e){e.selected=void 0,e.premovable.dests=void 0,e.hold.cancel()}function Ye(e,t){const n=e.pieces.get(t);return!!n&&("both"===e.movable.color||e.movable.color===n.color&&e.turnColor===n.color)}function _e(e,t,n){var A,o;return t!==n&&Ye(e,t)&&(e.movable.free||!!(null===(o=null===(A=e.movable.dests)||void 0===A?void 0:A.get(t))||void 0===o?void 0:o.includes(n)))}function He(e,t){const n=e.pieces.get(t);return!!n&&e.premovable.enabled&&e.movable.color===n.color&&e.turnColor!==n.color}function Xe(e){const t=e.premovable.current;if(!t)return!1;const n=t[0],A=t[1];let o=!1;if(_e(e,n,A)){const t=Ge(e,n,A);if(t){const r={premove:!0};!0!==t&&(r.captured=t),Ue(e.movable.events.after,n,A,r),o=!0}}return Oe(e),o}function $e(e){Oe(e),qe(e),We(e)}function et(e){e.movable.color=e.movable.dests=e.animation.current=void 0,$e(e)}function tt(e,t,n){let A=Math.floor(8*(e[0]-n.left)/n.width);t||(A=7-A);let o=7-Math.floor(8*(e[1]-n.top)/n.height);return t||(o=7-o),A>=0&&A<8&&o>=0&&o<8?de([A,o]):void 0}function nt(e){return"white"===e.orientation}const At="rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR",ot={p:"pawn",r:"rook",n:"knight",b:"bishop",q:"queen",k:"king"},rt={pawn:"p",rook:"r",knight:"n",bishop:"b",queen:"q",king:"k"};function it(e){"start"===e&&(e=At);const t=new Map;let n=7,A=0;for(const o of e)switch(o){case" ":return t;case"/":if(--n,n<0)return t;A=0;break;case"~":{const e=t.get(de([A,n]));e&&(e.promoted=!0);break}default:{const e=o.charCodeAt(0);if(e<57)A+=e-48;else{const e=o.toLowerCase();t.set(de([A,n]),{role:ot[e],color:o===e?"black":"white"}),++A}}}return t}function st(e,t){var n,A;if((null===(n=t.movable)||void 0===n?void 0:n.dests)&&(e.movable.dests=void 0),(null===(A=t.drawable)||void 0===A?void 0:A.autoShapes)&&(e.drawable.autoShapes=[]),at(e,t),t.fen&&(e.pieces=it(t.fen),e.drawable.shapes=[]),"check"in t&&function(e,t){if(e.check=void 0,!0===t&&(t=e.turnColor),t)for(const[n,A]of e.pieces)"king"===A.role&&A.color===t&&(e.check=n)}(e,t.check||!1),"lastMove"in t&&!t.lastMove?e.lastMove=void 0:t.lastMove&&(e.lastMove=t.lastMove),e.selected&&ze(e,e.selected),(!e.animation.duration||e.animation.duration<100)&&(e.animation.enabled=!1),!e.movable.rookCastle&&e.movable.dests){const t="white"===e.movable.color?"1":"8",n="e"+t,A=e.movable.dests.get(n),o=e.pieces.get(n);if(!A||!o||"king"!==o.role)return;e.movable.dests.set(n,A.filter(e=>!(e==="a"+t&&A.includes("c"+t)||e==="h"+t&&A.includes("g"+t))))}}function at(e,t){for(const n in t)ct(e[n])&&ct(t[n])?at(e[n],t[n]):e[n]=t[n]}function ct(e){return"object"==typeof e}function lt(e,t){return t.animation.enabled?function(e,t){const n=new Map(t.pieces),A=e(t),o=function(e,t){const n=new Map,A=[],o=new Map,r=[],i=[],s=new Map;let a,c,l;for(const[t,n]of e)s.set(t,ht(t,n));for(const e of ge)a=t.pieces.get(e),c=s.get(e),a?c?ke(a,c.piece)||(r.push(c),i.push(ht(e,a))):i.push(ht(e,a)):c&&r.push(c);for(const e of i)c=pt(e,r.filter(t=>ke(e.piece,t.piece))),c&&(l=[c.pos[0]-e.pos[0],c.pos[1]-e.pos[1]],n.set(e.key,l.concat(l)),A.push(c.key));for(const e of r)A.includes(e.key)||o.set(e.key,e.piece);return{anims:n,fadings:o}}(n,t);if(o.anims.size||o.fadings.size){const e=t.animation.current&&t.animation.current.start;t.animation.current={start:performance.now(),frequency:1/t.animation.duration,plan:o},e||gt(t,performance.now())}else t.dom.redraw();return A}(e,t):ut(e,t)}function ut(e,t){const n=e(t);return t.dom.redraw(),n}function ht(e,t){return{key:e,pos:me(e),piece:t}}function pt(e,t){return t.sort((t,n)=>Ie(e.pos,t.pos)-Ie(e.pos,n.pos))[0]}function gt(e,t){const n=e.animation.current;if(void 0===n)return void(e.dom.destroyed||e.dom.redrawNow());const A=1-(t-n.start)*n.frequency;if(A<=0)e.animation.current=void 0,e.dom.redrawNow();else{const t=function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1}(A);for(const e of n.plan.anims.values())e[2]=e[0]*t,e[3]=e[1]*t;e.dom.redrawNow(!0),requestAnimationFrame((t=performance.now())=>gt(e,t))}}const dt=["green","red","blue","yellow"];function mt(e,t){if(t.touches&&t.touches.length>1)return;t.stopPropagation(),t.preventDefault(),t.ctrlKey?We(e):$e(e);const n=Ne(t),A=tt(n,nt(e),e.dom.bounds());A&&(e.drawable.current={orig:A,pos:n,brush:kt(t),snapToValidMove:e.drawable.defaultSnapToValidMove},ft(e))}function ft(e){requestAnimationFrame(()=>{const t=e.drawable.current;if(t){const n=tt(t.pos,nt(e),e.dom.bounds());n||(t.snapToValidMove=!1);const A=t.snapToValidMove?function(e,t,n,A){const o=me(e),r=fe.filter(e=>je(o[0],o[1],e[0],e[1])||Te(o[0],o[1],e[0],e[1])),i=r.map(e=>Be(de(e),n,A)).map(e=>Ie(t,e)),[,s]=i.reduce((e,t,n)=>e[0]<t?e:[t,n],[i[0],0]);return de(r[s])}(t.orig,t.pos,nt(e),e.dom.bounds()):n;A!==t.mouseSq&&(t.mouseSq=A,t.dest=A!==t.orig?A:void 0,e.dom.redrawNow()),ft(e)}})}function bt(e,t){e.drawable.current&&(e.drawable.current.pos=Ne(t))}function yt(e){const t=e.drawable.current;t&&(t.mouseSq&&function(e,t){const n=e=>e.orig===t.orig&&e.dest===t.dest,A=e.shapes.find(n);A&&(e.shapes=e.shapes.filter(e=>!n(e)));A&&A.brush===t.brush||e.shapes.push(t);wt(e)}(e.drawable,t),It(e))}function It(e){e.drawable.current&&(e.drawable.current=void 0,e.dom.redraw())}function kt(e){var t;const n=(e.shiftKey||e.ctrlKey)&&Me(e),A=e.altKey||e.metaKey||(null===(t=e.getModifierState)||void 0===t?void 0:t.call(e,"AltGraph"));return dt[(n?1:0)+(A?2:0)]}function wt(e){e.onChange&&e.onChange(e.shapes)}function Ct(e,t){if(!t.isTrusted||void 0!==t.button&&0!==t.button)return;if(t.touches&&t.touches.length>1)return;const n=e.dom.bounds(),A=Ne(t),o=tt(A,nt(e),n);if(!o)return;const r=e.pieces.get(o),i=e.selected;var s;i||!e.drawable.enabled||!e.drawable.eraseOnClick&&r&&r.color===e.turnColor||(s=e).drawable.shapes.length&&(s.drawable.shapes=[],s.dom.redraw(),wt(s.drawable)),!1===t.cancelable||t.touches&&e.movable.color&&!r&&!i&&!function(e,t){const n=nt(e),A=e.dom.bounds(),o=Math.pow(A.width/8,2);for(const r in e.pieces){const e=Be(r,n,A);if(Ie(e,t)<=o)return!0}return!1}(e,A)||t.preventDefault();const a=!!e.premovable.current,c=!!e.predroppable.current;e.stats.ctrlKey=t.ctrlKey,e.selected&&_e(e,e.selected,o)?lt(e=>Le(e,o),e):Le(e,o);const l=e.selected===o,u=Mt(e,o);if(r&&u&&l&&function(e,t){const n=e.pieces.get(t);return!!n&&e.draggable.enabled&&("both"===e.movable.color||e.movable.color===n.color&&(e.turnColor===n.color||e.premovable.enabled))}(e,o)){e.draggable.current={orig:o,piece:r,origPos:A,pos:A,started:e.draggable.autoDistance&&e.stats.dragged,element:u,previouslySelected:i,originTarget:t.target},u.cgDragging=!0,u.classList.add("dragging");const s=e.dom.elements.ghost;s&&(s.className=`ghost ${r.color} ${r.role}`,Se(s,Ce(n)(me(o),nt(e))),Ve(s,!0)),vt(e)}else a&&Oe(e),c&&qe(e);e.dom.redraw()}function vt(e){requestAnimationFrame(()=>{var t;const n=e.draggable.current;if(!n)return;(null===(t=e.animation.current)||void 0===t?void 0:t.plan.anims.has(n.orig))&&(e.animation.current=void 0);const A=e.pieces.get(n.orig);if(A&&ke(A,n.piece)){if(!n.started&&Ie(n.pos,n.origPos)>=Math.pow(e.draggable.distance,2)&&(n.started=!0),n.started){if("function"==typeof n.element){const e=n.element();if(!e)return;e.cgDragging=!0,e.classList.add("dragging"),n.element=e}const t=e.dom.bounds();Se(n.element,[n.pos[0]-t.left-t.width/16,n.pos[1]-t.top-t.height/16])}}else Vt(e);vt(e)})}function St(e,t){e.draggable.current&&(!t.touches||t.touches.length<2)&&(e.draggable.current.pos=Ne(t))}function Et(e,t){const n=e.draggable.current;if(!n)return;if("touchend"===t.type&&!1!==t.cancelable&&t.preventDefault(),"touchend"===t.type&&n.originTarget!==t.target&&!n.newPiece)return void(e.draggable.current=void 0);Oe(e),qe(e);const A=tt(Ne(t)||n.pos,nt(e),e.dom.bounds());A&&n.started&&n.orig!==A?n.newPiece?Fe(e,n.orig,A,n.force):(e.stats.ctrlKey=t.ctrlKey,Re(e,n.orig,A)&&(e.stats.dragged=!0)):n.newPiece?e.pieces.delete(n.orig):e.draggable.deleteOnDropOff&&!A&&(e.pieces.delete(n.orig),Ue(e.events.change)),(n.orig!==n.previouslySelected||n.orig!==A&&A)&&e.selectable.enabled||We(e),Nt(e),e.draggable.current=void 0,e.dom.redraw()}function Vt(e){const t=e.draggable.current;t&&(t.newPiece&&e.pieces.delete(t.orig),e.draggable.current=void 0,We(e),Nt(e),e.dom.redraw())}function Nt(e){const t=e.dom.elements;t.ghost&&Ve(t.ghost,!1)}function Mt(e,t){let n=e.dom.elements.board.firstChild;for(;n;){if(n.cgKey===t&&"PIECE"===n.tagName)return n;n=n.nextSibling}}function xt(e,t){e.exploding&&(t?e.exploding.stage=t:e.exploding=void 0,e.dom.redraw())}function Bt(e,t){function n(){!function(e){e.orientation=ye(e.orientation),e.animation.current=e.draggable.current=e.selected=void 0}(e),t()}return{set(t){t.orientation&&t.orientation!==e.orientation&&n(),(t.fen?lt:ut)(e=>st(e,t),e)},state:e,getFen:()=>{return t=e.pieces,pe.map(e=>ue.map(n=>{const A=t.get(n+e);if(A){const e=rt[A.role];return"white"===A.color?e.toUpperCase():e}return"1"}).join("")).join("/").replace(/1{2,}/g,e=>e.length.toString());var t},toggleOrientation:n,setPieces(t){lt(e=>function(e,t){for(const[n,A]of t)A?e.pieces.set(n,A):e.pieces.delete(n)}(e,t),e)},selectSquare(t,n){t?lt(e=>Le(e,t,n),e):e.selected&&(We(e),e.dom.redraw())},move(t,n){lt(e=>Je(e,t,n),e)},newPiece(t,n){lt(e=>Ke(e,t,n),e)},playPremove(){if(e.premovable.current){if(lt(Xe,e))return!0;e.dom.redraw()}return!1},playPredrop(t){if(e.predroppable.current){const n=function(e,t){const n=e.predroppable.current;let A=!1;if(!n)return!1;t(n)&&Ke(e,{role:n.role,color:e.movable.color},n.key)&&(Ue(e.movable.events.afterNewPiece,n.role,n.key,{premove:!1,predrop:!0}),A=!0);return qe(e),A}(e,t);return e.dom.redraw(),n}return!1},cancelPremove(){ut(Oe,e)},cancelPredrop(){ut(qe,e)},cancelMove(){ut(e=>{$e(e),Vt(e)},e)},stop(){ut(e=>{et(e),Vt(e)},e)},explode(t){!function(e,t){e.exploding={stage:1,keys:t},e.dom.redraw(),setTimeout(()=>{xt(e,2),setTimeout(()=>xt(e,void 0),120)},120)}(e,t)},setAutoShapes(t){ut(e=>e.drawable.autoShapes=t,e)},setShapes(t){ut(e=>e.drawable.shapes=t,e)},getKeyAtDomPos:t=>tt(t,nt(e),e.dom.bounds()),redrawAll:t,dragNewPiece(t,n,A){!function(e,t,n,A){const o="a0";e.pieces.set(o,t),e.dom.redraw();const r=Ne(n);e.draggable.current={orig:o,piece:t,origPos:r,pos:r,started:!0,element:()=>Mt(e,o),originTarget:n.target,newPiece:!0,force:!!A},vt(e)}(e,t,n,A)},destroy(){et(e),e.dom.unbind&&e.dom.unbind(),e.dom.destroyed=!0}}}function Dt(e){return document.createElementNS("http://www.w3.org/2000/svg",e)}function Tt(e,t,n){const A=e.drawable,o=A.current,r=o&&o.mouseSq?o:void 0,i=new Map,s=e.dom.bounds();for(const e of A.shapes.concat(A.autoShapes).concat(r?[r]:[]))e.dest&&i.set(e.dest,(i.get(e.dest)||0)+1);const a=A.shapes.concat(A.autoShapes).map(e=>({shape:e,current:!1,hash:Zt(e,i,!1,s)}));r&&a.push({shape:r,current:!0,hash:Zt(r,i,!0,s)});const c=a.map(e=>e.hash).join(";");if(c===e.drawable.prevSvgHash)return;e.drawable.prevSvgHash=c;const l=t.querySelector("defs"),u=t.querySelector("g"),h=n.querySelector("g");!function(e,t,n){const A=new Map;let o;for(const n of t)n.shape.dest&&(o=e.brushes[n.shape.brush],n.shape.modifiers&&(o=Gt(o,n.shape.modifiers)),A.set(o.key,o));const r=new Set;let i=n.firstChild;for(;i;)r.add(i.getAttribute("cgKey")),i=i.nextSibling;for(const[e,t]of A.entries())r.has(e)||n.appendChild(qt(t))}(A,a,l),Qt(e,a.filter(e=>!e.shape.customSvg),A.brushes,i,u),Qt(e,a.filter(e=>e.shape.customSvg),A.brushes,i,h)}function Qt(e,t,n,A,o){const r=e.dom.bounds(),i=new Map,s=[];for(const e of t)i.set(e.hash,!1);let a,c=o.firstChild;for(;c;)a=c.getAttribute("cgHash"),i.has(a)?i.set(a,!0):s.push(c),c=c.nextSibling;for(const e of s)o.removeChild(e);for(const s of t)i.get(s.hash)||o.appendChild(Ot(e,s,n,A,r))}function Zt({orig:e,dest:t,brush:n,piece:A,modifiers:o,customSvg:r},i,s,a){return[a.width,a.height,s,e,t,n,t&&(i.get(t)||0)>1,A&&jt(A),o&&Pt(o),r&&Ut(r)].filter(e=>e).join(",")}function jt(e){return[e.color,e.role,e.scale].filter(e=>e).join(",")}function Pt(e){return""+(e.lineWidth||"")}function Ut(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)>>>0;return"custom-"+t.toString()}function Ot(e,{shape:t,current:n,hash:A},o,r,i){let s;if(t.customSvg){const n=Kt(me(t.orig),e.orientation);s=function(e,t,n){const{width:A,height:o}=n,r=A/8,i=o/8,s=t[0]*r,a=(7-t[1])*i,c=Jt(Dt("g"),{transform:`translate(${s},${a})`}),l=Jt(Dt("svg"),{width:r,height:i,viewBox:"0 0 100 100"});return c.appendChild(l),l.innerHTML=e,c}(t.customSvg,n,i)}else if(t.piece)s=function(e,t,n,A){const o=Lt(t,A),r=A.width/8*(n.scale||1),i=n.color[0]+("knight"===n.role?"n":n.role[0]).toUpperCase();return Jt(Dt("image"),{className:`${n.role} ${n.color}`,x:o[0]-r/2,y:o[1]-r/2,width:r,height:r,href:e+i+".svg"})}(e.drawable.pieces.baseUrl,Kt(me(t.orig),e.orientation),t.piece,i);else{const A=Kt(me(t.orig),e.orientation);if(t.dest){let a=o[t.brush];t.modifiers&&(a=Gt(a,t.modifiers)),s=function(e,t,n,A,o,r){const i=function(e,t){return(t?20:10)/512*e.width}(r,o&&!A),s=Lt(t,r),a=Lt(n,r),c=a[0]-s[0],l=a[1]-s[1],u=Math.atan2(l,c),h=Math.cos(u)*i,p=Math.sin(u)*i;return Jt(Dt("line"),{stroke:e.color,"stroke-width":Rt(e,A,r),"stroke-linecap":"round","marker-end":"url(#arrowhead-"+e.key+")",opacity:Ft(e,A),x1:s[0],y1:s[1],x2:a[0]-h,y2:a[1]-p})}(a,A,Kt(me(t.dest),e.orientation),n,(r.get(t.dest)||0)>1,i)}else s=function(e,t,n,A){const o=Lt(t,A),r=function(e){const t=e.width/512;return[3*t,4*t]}(A),i=(A.width+A.height)/32;return Jt(Dt("circle"),{stroke:e.color,"stroke-width":r[n?0:1],fill:"none",opacity:Ft(e,n),cx:o[0],cy:o[1],r:i-r[1]/2})}(o[t.brush],A,n,i)}return s.setAttribute("cgHash",A),s}function qt(e){const t=Jt(Dt("marker"),{id:"arrowhead-"+e.key,orient:"auto",markerWidth:4,markerHeight:8,refX:2.05,refY:2.01});return t.appendChild(Jt(Dt("path"),{d:"M0,0 V4 L3,2 Z",fill:e.color})),t.setAttribute("cgKey",e.key),t}function Jt(e,t){for(const n in t)e.setAttribute(n,t[n]);return e}function Kt(e,t){return"white"===t?e:[7-e[0],7-e[1]]}function Gt(e,t){return{color:e.color,opacity:Math.round(10*e.opacity)/10,lineWidth:Math.round(t.lineWidth||e.lineWidth),key:[e.key,t.lineWidth].filter(e=>e).join("")}}function Rt(e,t,n){return(e.lineWidth||10)*(t?.85:1)/512*n.width}function Ft(e,t){return(e.opacity||1)*(t?.9:1)}function Lt(e,t){return[(e[0]+.5)*t.width/8,(7.5-e[1])*t.height/8]}function zt(e,t){const n=xe("coords",t);let A;for(const t of e)A=xe("coord"),A.textContent=t,n.appendChild(A);return n}function Wt(e,t){const n=e.dom.elements.board;if(!e.dom.relative&&e.resizable&&"ResizeObserver"in window){new window.ResizeObserver(t).observe(n)}if(e.viewOnly)return;const A=function(e){return t=>{e.draggable.current?Vt(e):e.drawable.current?It(e):t.shiftKey||Me(t)?e.drawable.enabled&&mt(e,t):e.viewOnly||(e.dropmode.active?function(e,t){if(!e.dropmode.active)return;Oe(e),qe(e);const n=e.dropmode.piece;if(n){e.pieces.set("a0",n);const A=Ne(t),o=A&&tt(A,nt(e),e.dom.bounds());o&&Fe(e,"a0",o)}e.dom.redraw()}(e,t):Ct(e,t))}}(e);n.addEventListener("touchstart",A,{passive:!1}),n.addEventListener("mousedown",A,{passive:!1}),(e.disableContextMenu||e.drawable.enabled)&&n.addEventListener("contextmenu",e=>e.preventDefault())}function Yt(e,t,n,A){return e.addEventListener(t,n,A),()=>e.removeEventListener(t,n,A)}function _t(e,t,n){return A=>{e.drawable.current?e.drawable.enabled&&n(e,A):e.viewOnly||t(e,A)}}function Ht(e){const t=nt(e),n=e.dom.relative?ve:Ce(e.dom.bounds()),A=e.dom.relative?Ee:Se,o=e.dom.elements.board,r=e.pieces,i=e.animation.current,s=i?i.plan.anims:new Map,a=i?i.plan.fadings:new Map,c=e.draggable.current,l=function(e){var t;const n=new Map;if(e.lastMove&&e.highlight.lastMove)for(const t of e.lastMove)An(n,t,"last-move");e.check&&e.highlight.check&&An(n,e.check,"check");if(e.selected&&(An(n,e.selected,"selected"),e.movable.showDests)){const A=null===(t=e.movable.dests)||void 0===t?void 0:t.get(e.selected);if(A)for(const t of A)An(n,t,"move-dest"+(e.pieces.has(t)?" oc":""));const o=e.premovable.dests;if(o)for(const t of o)An(n,t,"premove-dest"+(e.pieces.has(t)?" oc":""))}const A=e.premovable.current;if(A)for(const e of A)An(n,e,"current-premove");else e.predroppable.current&&An(n,e.predroppable.current.key,"current-premove");const o=e.exploding;if(o)for(const e of o.keys)An(n,e,"exploding"+o.stage);return n}(e),u=new Set,h=new Set,p=new Map,g=new Map;let d,m,f,b,y,I,k,w,C,v;for(m=o.firstChild;m;){if(d=m.cgKey,Xt(m))if(f=r.get(d),y=s.get(d),I=a.get(d),b=m.cgPiece,!m.cgDragging||c&&c.orig===d||(m.classList.remove("dragging"),A(m,n(me(d),t)),m.cgDragging=!1),!I&&m.cgFading&&(m.cgFading=!1,m.classList.remove("fading")),f){if(y&&m.cgAnimating&&b===nn(f)){const e=me(d);e[0]+=y[2],e[1]+=y[3],m.classList.add("anim"),A(m,n(e,t))}else m.cgAnimating&&(m.cgAnimating=!1,m.classList.remove("anim"),A(m,n(me(d),t)),e.addPieceZIndex&&(m.style.zIndex=tn(me(d),t)));b!==nn(f)||I&&m.cgFading?I&&b===nn(I)?(m.classList.add("fading"),m.cgFading=!0):on(p,b,m):u.add(d)}else on(p,b,m);else if($t(m)){const e=m.className;l.get(d)===e?h.add(d):on(g,e,m)}m=m.nextSibling}for(const[e,r]of l)if(!h.has(e)){C=g.get(r),v=C&&C.pop();const i=n(me(e),t);if(v)v.cgKey=e,A(v,i);else{const t=xe("square",r);t.cgKey=e,A(t,i),o.insertBefore(t,o.firstChild)}}for(const[i,a]of r)if(y=s.get(i),!u.has(i))if(k=p.get(nn(a)),w=k&&k.pop(),w){w.cgKey=i,w.cgFading&&(w.classList.remove("fading"),w.cgFading=!1);const o=me(i);e.addPieceZIndex&&(w.style.zIndex=tn(o,t)),y&&(w.cgAnimating=!0,w.classList.add("anim"),o[0]+=y[2],o[1]+=y[3]),A(w,n(o,t))}else{const r=nn(a),s=xe("piece",r),c=me(i);s.cgPiece=r,s.cgKey=i,y&&(s.cgAnimating=!0,c[0]+=y[2],c[1]+=y[3]),A(s,n(c,t)),e.addPieceZIndex&&(s.style.zIndex=tn(c,t)),o.appendChild(s)}for(const t of p.values())en(e,t);for(const t of g.values())en(e,t)}function Xt(e){return"PIECE"===e.tagName}function $t(e){return"SQUARE"===e.tagName}function en(e,t){for(const n of t)e.dom.elements.board.removeChild(n)}function tn(e,t){let n=2+8*e[1]+(7-e[0]);return t&&(n=67-n),n+""}function nn(e){return`${e.color} ${e.role}`}function An(e,t,n){const A=e.get(t);A?e.set(t,`${A} ${n}`):e.set(t,n)}function on(e,t,n){const A=e.get(t);A?A.push(n):e.set(t,[n])}function rn(e,t){const n={pieces:it(At),orientation:"white",turnColor:"white",coordinates:!0,autoCastle:!0,viewOnly:!1,disableContextMenu:!1,resizable:!0,addPieceZIndex:!1,pieceKey:!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,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,eraseOnClick:!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}},pieces:{baseUrl:"https://lichess1.org/assets/piece/cburnett/"},prevSvgHash:""},hold:be()};function A(){const t="dom"in n?n.dom.unbind:void 0,A=n.viewOnly&&!n.drawable.visible,o=function(e,t,n){e.innerHTML="",e.classList.add("cg-wrap");for(const n of le)e.classList.toggle("orientation-"+n,t.orientation===n);e.classList.toggle("manipulable",!t.viewOnly);const A=xe("cg-helper");e.appendChild(A);const o=xe("cg-container");A.appendChild(o);const r=xe("cg-board");let i,s,a;if(o.appendChild(r),t.drawable.visible&&!n&&(i=Jt(Dt("svg"),{class:"cg-shapes"}),i.appendChild(Dt("defs")),i.appendChild(Dt("g")),s=Jt(Dt("svg"),{class:"cg-custom-svgs"}),s.appendChild(Dt("g")),o.appendChild(i),o.appendChild(s)),t.coordinates){const e="black"===t.orientation?" black":"";o.appendChild(zt(he,"ranks"+e)),o.appendChild(zt(ue,"files"+e))}return t.draggable.showGhost&&!n&&(a=xe("piece","ghost"),Ve(a,!1),o.appendChild(a)),{board:r,container:o,ghost:a,svg:i,customSvg:s}}(e,n,A),r=function(e){let t;const n=()=>(void 0===t&&(t=e()),t);return n.clear=()=>{t=void 0},n}(()=>o.board.getBoundingClientRect()),i=e=>{Ht(a),!e&&o.svg&&Tt(a,o.svg,o.customSvg)},s=()=>{r.clear(),function(e){if(e.dom.relative)return;const t=nt(e),n=Ce(e.dom.bounds());let A=e.dom.elements.board.firstChild;for(;A;)(Xt(A)&&!A.cgAnimating||$t(A))&&Se(A,n(me(A.cgKey),t)),A=A.nextSibling}(a),o.svg&&Tt(a,o.svg,o.customSvg)},a=n;return a.dom={elements:o,bounds:r,redraw:sn(i),redrawNow:i,unbind:t,relative:A},a.drawable.prevSvgHash="",i(!1),Wt(a,s),t||(a.dom.unbind=function(e,t){const n=[];if(e.dom.relative||!e.resizable||"ResizeObserver"in window||n.push(Yt(document.body,"chessground.resize",t)),!e.viewOnly){const t=_t(e,St,bt),A=_t(e,Et,yt);for(const e of["touchmove","mousemove"])n.push(Yt(document,e,t));for(const e of["touchend","mouseup"])n.push(Yt(document,e,A));const o=()=>e.dom.bounds.clear();n.push(Yt(document,"scroll",o,{capture:!0,passive:!0})),n.push(Yt(window,"resize",o,{passive:!0}))}return()=>n.forEach(e=>e())}(a,s)),a.events.insert&&a.events.insert(o),a}return st(n,t||{}),Bt(A(),A)}function sn(e){let t=!1;return()=>{t||(t=!0,requestAnimationFrame(()=>{e(),t=!1}))}}class an extends A.Component{buildConfigFromProps(e){const t={events:{}};return Object.keys(an.types).forEach(n=>{const A=e[n];if(void 0!==A){const e=n.match(/^on([A-Z]\S*)/);e?t.events[e[1].toLowerCase()]=A:t[n]=A}}),t}componentDidMount(){this.board=rn(this.el,this.buildConfigFromProps(this.props)),this.props.shapes&&this.board.setShapes(this.props.shapes)}componentDidUpdate(){this.board=rn(this.el,this.buildConfigFromProps(this.props)),this.props.shapes&&this.board.setShapes(this.props.shapes)}render(){const t={style:{...this.props.style}};return this.props.width&&(t.style.width=this.props.width),this.props.height&&(t.style.height=this.props.height),e("div",{ref:e=>this.el=e,...t})}}k(an,"types",{width:ce.oneOfType([ce.string,ce.number]),height:ce.oneOfType([ce.string,ce.number]),fen:ce.string,orientation:ce.string,turnColor:ce.string,check:ce.string,lastMove:ce.array,selected:ce.string,coordinates:ce.bool,autoCastle:ce.bool,viewOnly:ce.bool,disableContextMenu:ce.bool,resizable:ce.bool,addPieceZIndex:ce.bool,hightlight:ce.object,animation:ce.object,movable:ce.object,premovable:ce.object,predroppable:ce.object,draggable:ce.object,selectable:ce.object,onChange:ce.func,onMove:ce.func,onDropNewPiece:ce.func,onSelect:ce.func,items:ce.object,drawable:ce.object}),k(an,"defaultProps",{coordinates:!1,resizable:!0,hightlight:{lastMove:!0,check:!0}});const cn=e=>{try{new Audio(e).play()}catch{return()=>{}}},ln=e=>{if("silent"===e)return!1;switch(e){case"lisp":return cn("data:audio/ogg;base64,T2dnUwACAAAAAAAAAADiDSg6AAAAACfTO4oBHgF2b3JiaXMAAAAAAkSsAAD/////AA0CAP////+4AU9nZ1MAAAAAAAAAAAAA4g0oOgEAAAAymRe+EkD/////////////////////PAN2b3JiaXMNAAAATGF2ZjU4LjI5LjEwMAEAAAAfAAAAZW5jb2Rlcj1MYXZjNTguNTQuMTAwIGxpYnZvcmJpcwEFdm9yYmlzKUJDVgEACAAAgCJMGMSA0JBVAAAQAACgrDeWe8i99957gahHFHuIvffee+OsR9B6iLn33nvuvacae8u9995zIDRkFQAABACAKQiacuBC6r33HhnmEVEaKse99x4ZhYkwlBmFPZXaWushk9xC6j3nHggNWQUAAAIAQAghhBRSSCGFFFJIIYUUUkgppZhiiimmmGLKKaccc8wxxyCDDjropJNQQgkppFBKKqmklFJKLdZac+69B91z70H4IIQQQgghhBBCCCGEEEIIQkNWAQAgAAAEQgghZBBCCCGEFFJIIaaYYsopp4DQkFUAACAAgAAAAABJkRTLsRzN0RzN8RzPESVREiXRMi3TUjVTMz1VVEXVVFVXVV1dd23Vdm3Vlm3XVm3Vdm3VVm1Ztm3btm3btm3btm3btm3btm0gNGQVACABAKAjOZIjKZIiKZLjOJIEhIasAgBkAAAEAKAoiuM4juRIjiVpkmZ5lmeJmqiZmuipngqEhqwCAAABAAQAAAAAAOB4iud4jmd5kud4jmd5mqdpmqZpmqZpmqZpmqZpmqZpmqZpmqZpmqZpmqZpmqZpmqZpmqZpmqZpmqZpQGjIKgBAAgBAx3Ecx3Ecx3EcR3IkBwgNWQUAyAAACABAUiTHcixHczTHczxHdETHdEzJlFTJtVwLCA1ZBQAAAgAIAAAAAABAEyxFUzzHkzzPEzXP0zTNE01RNE3TNE3TNE3TNE3TNE3TNE3TNE3TNE3TNE3TNE3TNE3TNE3TNE1TFIHQkFUAAAQAACGdZpZqgAgzkGEgNGQVAIAAAAAYoQhDDAgNWQUAAAQAAIih5CCa0JrzzTkOmuWgqRSb08GJVJsnuamYm3POOeecbM4Z45xzzinKmcWgmdCac85JDJqloJnQmnPOeRKbB62p0ppzzhnnnA7GGWGcc85p0poHqdlYm3POWdCa5qi5FJtzzomUmye1uVSbc84555xzzjnnnHPOqV6czsE54Zxzzonam2u5CV2cc875ZJzuzQnhnHPOOeecc84555xzzglCQ1YBAEAAAARh2BjGnYIgfY4GYhQhpiGTHnSPDpOgMcgppB6NjkZKqYNQUhknpXSC0JBVAAAgAACEEFJIIYUUUkghhRRSSCGGGGKIIaeccgoqqKSSiirKKLPMMssss8wyy6zDzjrrsMMQQwwxtNJKLDXVVmONteaec645SGultdZaK6WUUkoppSA0ZBUAAAIAQCBkkEEGGYUUUkghhphyyimnoIIKCA1ZBQAAAgAIAAAA8CTPER3RER3RER3RER3RER3P8RxREiVREiXRMi1TMz1VVFVXdm1Zl3Xbt4Vd2HXf133f141fF4ZlWZZlWZZlWZZlWZZlWZZlCUJDVgEAIAAAAEIIIYQUUkghhZRijDHHnINOQgmB0JBVAAAgAIAAAAAAR3EUx5EcyZEkS7IkTdIszfI0T/M00RNFUTRNUxVd0RV10xZlUzZd0zVl01Vl1XZl2bZlW7d9WbZ93/d93/d93/d93/d939d1IDRkFQAgAQCgIzmSIimSIjmO40iSBISGrAIAZAAABACgKI7iOI4jSZIkWZImeZZniZqpmZ7pqaIKhIasAgAAAQAEAAAAAACgaIqnmIqniIrniI4oiZZpiZqquaJsyq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7rukBoyCoAQAIAQEdyJEdyJEVSJEVyJAcIDVkFAMgAAAgAwDEcQ1Ikx7IsTfM0T/M00RM90TM9VXRFFwgNWQUAAAIACAAAAAAAwJAMS7EczdEkUVIt1VI11VItVVQ9VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV1TRN0zSB0JCVAAAZAADDtOTScs+NoEgqR7XWklHlJMUcGoqgglZzDRU0iEmLIWIKISYxlg46ppzUGlMpGXNUc2whVIhJDTqmUikGLQhCQ1YIAKEZAA7HASTLAiRLAwAAAAAAAABJ0wDN8wDL8wAAAAAAAABA0jTA8jRA8zwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRNAzTPAzTPAwAAAAAAAADN8wBPFAFPFAEAAAAAAADA8jzAEz3AE0UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxNAzTPAzTPAwAAAAAAAADL8wBPFAHPEwEAAAAAAABA8zzAE0XAE0UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABDgAAARZCoSErAoA4AQCHJEGSIEnQNIBkWdA0aBpMEyBZFjQNmgbTBAAAAAAAAAAAAEDyNGgaNA2iCJA0D5oGTYMoAgAAAAAAAAAAACBpGjQNmgZRBEiaBk2DpkEUAQAAAAAAAAAAANBME6IIUYRpAjzThChCFGGaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIABBwCAABPKQKEhKwKAOAEAh6JYFgAAOJJjWQAA4DiSZQEAgGVZoggAAJaliSIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAEHAIAAE8pAoSErAYAoAACHolgWcBzLAo5jWUCSLAtgWQDNA2gaQBQBgAAAgAIHAIAAGzQlFgcoNGQlABAFAOBQFMvSNFHkOJalaaLIkSxL00SRZWma55kmNM3zTBGi53mmCc/zPNOEaYqiqgJRNE0BAAAFDgAAATZoSiwOUGjISgAgJADA4TiW5Xmi6HmiaJqqynEsy/NEURRNU1VVleNolueJoiiapqqqKsvSNM8TRVE0TVVVXWia54miKJqmqrouPM/zRFEUTVNVXRee53miKIqmqaquC1EURdM0TVVVVdcFomiapqmqquq6QBRF0zRVVVVdF4iiKJqmqqqu6wLTNE1VVVXXlV2Aaaqqqrqu6wJUVVVd13VlGaCqquq6rivLANd1XdeVZVkG4Lqu68qyLAAA4MABACDACDrJqLIIG0248AAUGrIiAIgCAACMYUoxpQxjEkIKoWFMQkghZFJSKimlCkIqJZVSQUilpFIySi2lllIFIZWSSqkgpFJSKQUAgB04AIAdWAiFhqwEAPIAAAhjlGKMMeckQkox5pxzEiGlGHPOOakUY84555yUkjHnnHNOSumYc845J6VkzDnnnJNSOuecc85JKaV0zjnnpJRSQugcdFJKKZ1zDkIBAEAFDgAAATaKbE4wElRoyEoAIBUAwOA4lqVpnieKpmlJkqZ5nueJpqpqkqRpnieKpqmqPM/zRFEUTVNVeZ7niaIomqaqcl1RFEXTNE1VJcuiaIqmqaqqC9M0TdNUVdeFaZqmaaqq68K2VVVVXdd1Yduqqqqu68rAdV3XdWUZyK7ruq4sCwAAT3AAACqwYXWEk6KxwEJDVgIAGQAAhDEIKYQQUsggpBBCSCmFkAAAgAEHAIAAE8pAoSErAYBUAACAEGuttdZaaw1j1lprrbXWEuestdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbVWACB2hQPAToQNqyOcFI0FFhqyEgAIBwAAjEGIMegklFJKhRBj0ElIpbUYK4QYg1BKSq21mDznHIRSWmotxuQ55yCk1FqMMSbXQkgppZZii7G4FkIqKbXWYqzJGJVSai22GGvtxaiUSksxxhhrMMbm1FqMMdZaizE6txJLjDHGWoQRxsUWY6y11yKMEbLF0lqttQZjjLG5tdhqzbkYI4yuLbVWa80FAJg8OABAJdg4w0rSWeFocKEhKwGA3AAAAiGlGGPMOeeccw5CCKlSjDnnHIQQQgihlFJSpRhzzjkIIYRQQimlpIwx5hyEEEIIpZRSSmkpZcw5CCGEUEoppZTSUuuccxBCCKWUUkopJaXUOecghFBKKaWUUkpKLYQQQiihlFJKKaWUlFJKIYRQSimllFJKKamllEIIpZRSSimllFJSSimFEEIppZRSSimlpJRaK6WUUkoppZRSSkkttZRSKKWUUkoppZSSWkoppVJKKaWUUkopJaXUUkqllFJKKaWUUkpLqaWUSimllFJKKaWUlFJKKaVUSimllFJKKSml1FpKKaWUSimllFJaaymlllIqpZRSSimltNRaay21lEoppZRSSmmttZRSSimVUkoppZRSAADQgQMAQIARlRZipxlXHoEjChkmoEJDVgIAZAAADKOUUkktRYIipRiklkIlFXNQUooocw5SrKlCziDmJJWKMYSUg1QyB5VSzEEKIWVMKQatlRg6xpijmGoqoWMMAAAAQQAAgZAJBAqgwEAGABwgJEgBAIUFhg4RIkCMAgPj4tIGACAIkRkiEbEYJCZUA0XFdACwuMCQDwAZGhtpFxfQZYALurjrQAhBCEIQiwMoIAEHJ9zwxBuecIMTdIpKHQgAAAAAgAMAPAAAJBtAREQ0cxwdHh8gISIjJCUmJygCAAAAAAAHAB8AAEkKEBERzRxHh8cHSIjICEmJyQlKAAAggAAAAAAACCAAAQEBAAAAAIAAAAAAAQFPZ2dTAATALgAAAAAAAOINKDoCAAAAUbETtR1CPj04Qz3/C/8Z/yz/MP89/zv/N/82/zP/Nf8eSswNzdElh/C/NkzGDzEFv+vp9/Fq5TyGSjgozNHN/qQTTtChNeEWV8wM0Lt7DW07EBKh+4Uyvk/w9TX5YvyueRVRAKQVX//j8fhmG26Ls+L8P56G79pwW3wAnPgIDiBUUK0gP5DagMgQhgrn+S5kE8Y+vzd2NLQhFt9nuv/JivcA7BU//m18/OXHvhP3jPf/XEaWqX05XpEzVATD0INA5UraqZQgDAIjRwOHq/lxxBPCE4SOGCx0JerXdMoRAOQl99XM37YtnJfcVzN/bVv4FMFKEYKKzWYIGkajYWhEGEVSEJGCIAiCIO8/CX/CD417LLrLSe4A/IH/ND3K39d3M+MNBP88PPLH+u64vlNOyO8rAHLctDepaSdwhSiiIOgGgXqXUXQTFcliEYM0HmRsFI+1J1aAza23D3SWb4b38ffPy05n+WZ6n//gFqS75zexALYy2cWKVdsWEu4VKCoTBjEjlg+qKFHUqlW72AGCqMoU6mWOagD6Wdbh8s3GQ9MyPLSaEqXPsg6Wbz4e6GweOrhWovwM1aqa2siiGgIAoO/wFVtsNFmWIR0VAAAAAABjpyHa7eBGB5CiqWQA4v32buB1nOH6izY0VA2SxLCpKPIm0gm2UdR6jBEjRyiGKYMAwBJBVNiytsBk1VNVZar4tWmTBUDFW0QEJksUPbKMwmAVIKviXeJZZgDIikJZbi+WZVlWGHiCMLBFHNWUHIQaAJ7PZ6UAJksOChRGlmUStC5hYMNkgBLIjR1EBQ5CxehjxtiJBTfLsizL5MCoAACgGYYACWAArDCIlTIWTxFsAID25EsWcl4BCtUNhbBsRmHwctX2N43JgJKdwNpM8wmXAl5ZnchlN7Y58BNADagJ9lht3LqMaQb8USNqwv0BAAAA9u7M1mTZzLB0JBIVAAAAgFwEACBLRgIebOA02FJIAlW4JHT0NWHazw25pZbtmd0zaG5a9lp0pvrTpaECYLHzM4v7l8++/fDFR/tXm82ULGkefHY6nE4q8Ki57gpkWADgyAIvYTeUGLTmlV2/BBntuAwnw6gqGkF37a16imLNCBUGGY8sHKyZBYhNctxhPFTcswoZhZlgkISC6wELlIBFKLwUnqMPRQEJzQA0AGJkFAo3dhANjEALEbaZlwmZRBmAZb0n80hOFIJkqshREilm78tbe/Nm3OjsPOdVcgA1ljYxvU1eVuiE2iGuKxLWqWZqrAUwD/5WxwB+Sb3A49mOidUyfwKF9XJJvZD7PY1tpg/9/IsFCu3lBwCQ+vDhw/j0p+PVughLF1BsdVcqlmFZg4oBAAAAQGoAwEvDEH6/9Wh2XW0/e/H53V3Ifd/quRBhIekpDP0LAGzbHXG/uBxGZDz31mCauAb0MOsv4PnWkzt/98uIVppV8+/zV9M+iWppT/3OEufuf395K10nGmcXaPIw0fOe4Kl4ypkuFtPre9OH3HDYkxTSOfz6M8P0dCVJ7dbM8vYWWTWVDQ5Ex8IJPd3TjC7yMI2WtLmnEkB0kvGyLtRoNQxdZCxGeQeIyLNPTy0M9G73Hq6gb+62jYqnLANYBdL0yLS1SUqwk34Ko5FCGWD9PnehSD1PDbnFV+t+/N2ztrA6UW67XgYTJj3LGQ+hB/7YfBHHe7gIKVwe463nkZvG5klcz7R1rT3k/Uxuqv28PwAApFP/PTXDV/nh5cNy44I7gFw12Ko4yyRRg2IAAAAASg0A+BnNy84Yr3OpoN6vvpuh39ufMT0lT+6d2JxKap5OP9u0r1OgEd3r9lMLAQBO2gFgiLxUcfYh8/VfDwNy1lEJE53pqZ4jrmd+Z9xrUqwZVbqHlqn/KXpy2PDtvnr3CDThrHXm67H0nucqfJqcDeA0msP4rez1Qk+bBPhNRdOdjIo9UOyBqJLpwaR1J4xw9iyV1lRNUdWTdRWQDD6b7rduwaGG8a/vxwDeMTi/HvRhAyRVxCQzTaKU4QoTQObwVkBbmKwF40YPQ8rQNey/T+Ik2JFBlgEM7Oc3IWPBdBFUI8mTYp5tPgxMKJkWAN6nfMFjG0c34i+PtBV4vX3KB3leJncl/XKFTUi7fwAAc33EtT9v/c+Xl29+WOwjsytTxSk2qaoKAACgFACwa7W82vY9+Ds/jIst4PLK7wZAyCDEa+WjbE4v3k94GXf3+qtnDttY5K5z1zuLpQMcdVy34F2sWVQenc6mLzf7B9NnuqtfTrP6OU7UNvn1q2tfx6d+r+l9200PgJrvn9oHrtqPpvd358kDqHTeaXw2fG2N7lgn6rBZJaHHroHNiu7O+sD9g8IFMPSml66CKoDJ6l6Z05VxTubAcFiozZjZnOybypr3L14TWDAN2Sm4BbX4Krq6sw7dqwjP433BOpypnZX7c+ihIIELdo6dxcIjpMLXe3ImxjNq5frSBD+0E6W2u+tmtv6vlxpNOrpDusWxHcy9dWT1QMi8CEYACACeh3yh9cxH90wXYwrr6t1Dvul6jsk9y6UvU1DIuT/V6mkJAMy72y/W74oy+tDsFa+VyZUrMQZVFQAAYLynCgDgm8nSt03RrXU74g71ZtdanXH+7meeBJ5uv/OcX9vHydXdWm7mlVowDE+lp6iTOhu+VKrWejrJAgpmGSg6kPAhfPiw8eky+Px6eK3Pe56iGDC7KDpPfYZSJzp9X3Dv8IIe+WTvQ59vVYXaHtrU9MU0P7bM23KckC7X3GQBcMJLPX5ysnaU55ysYYi6k67d9TWt7sw5XTS8VQwJWSzSytne2pyCBHJnqj5X088RCT17poE5xZ10kWxqsww8t0sf8o7791q879lojpDL/Vk1y54vyQSC4HOduGPa9kevnpIww3VsGNSeziTvo9PtznxCwNkWPdsrwXsBPuQKAB6H/MXKeZW7u708TCF435BfuF1j5nb68GhbdLik+wcAYOiPxy+rv9/v/9ob+8hsMSxbxTKqqhgAAEATAPhtxeyM7mDGcdmXjE7dmyEAAEoQUvBM7g8OTy1OqK6nRxd/te/6djt/UL3bkGQxq58/L/NqOM3n+wZqWsMusmZTePMZDz6Pyvq60t/0TK2fGaF/ckBSwxNnLc8wPb8/BLLMOL/+TMQmd+3zP8enSyP0bVHVo+0c6M4Zc86m6f+karrgUFd8MtV21vgRs5y562v6dE5DFfkMFt2ju0acbHpYr2a6iivZnTx3amigJzncCdkU8Um1aq7Hp2YwFAPkb/aRfqxjHEgjIQNZ1xh7KB1Rkd1ebqLTJ2gY9TZ/w19R2VnSRkSWkryuty6fNOvDUM8w+WpudEuzgQNeh/wjy7kZ3Ptc+rGFdvXGIb9ZO21yf/ND30Yq4eN9T0xMBwCJ/+544mupUINUbKUqthhGVVUAAID/m1UAQCXGILXnzYZlw/nA1/2Dz/3d98fvQdLeYti9cfunb4LHl8nXT1/x8tP3Tce2gFO/2pXT0DMes+T0Hf3OMyp9pmiVzHzt5/4lPrmMhBO32VGZJ3mus2nz6r6mdn8rN8E6c2oSVZydQ5Ins7chu+GFAiqlmvTpac6h80+z5yWnpjfZldTkf3rqVA7PoWao2nm4ACfDdde/8fZNZZkZKq6t/FWZiubkFnutFJPMNXFV55NDVWQDmn1tmfB8N9s4N5WnU4cXsbzST4sgIDUVg9oCy6PQVUjxtTfRu0q631F7virHmVaSaGrabNpyiUw+OHJzLf1CRbfeAQqehvwS5RmNG2nFFD6uacgvWZ7BujkemOD+VOtEAAAyTqbKu2vr4zDsbO5Xlq3EsqyqqgAAAKKuqwoA+NLs49XPPMmk8awXiJ5/x9Xnu5cuUGl/fOjz1Z2OG7+93r3n03xpvk9DifOhaCB7jmmcddSpovSr+jqDlfE6m1CripdZVSvJ4+umf1kUntYEmy3bVxsfSlTDj/CaXi+C7pxMOIk6+5fcs1nbiXRQZhLYOSdZzqxXOfaxkhntDdDPYOWg7nfDURcJZwpiuIbqLq6DaAqqWs0uHH5sJEQjLfP+44zAOVlNU02eY9ivOpoLIJ3k/Kmu3v3vdCj1RdP7yXRiWcC0fu31ukvqPpmp1fO3x7Z5/n6Ptl4U7yJddKbSXthCo59e0jSaR6OVf0ck+xtOdw5pCgA+hnzR9paYMVcMsXXxlSFfpr43uFNgpAnG/Yl6IwGg0Vysq/e/e51r790tj4DKVVU5V2JUVREAAAD1KKEKILPkSx/f7ZSX6/Lx+8X5yUVzm6/a3uIDPhTAL741n7v75DKtRqHY1fnLEtwUwPSQ+Ab+9OpTRc3ePjudPNaQ5zHvPyvvlpv/S94XvgpQnGQKg/ez/zdd2T3P9lQV2Yx3nor2nE0/Zp9Dt5MVEEXWOkVnbSaZpcbPmnkaZuWQWZ1kneu6c0hO5ZUY7qiev1xF5qo1mZP532k2g8U1K/OrnW/mfjx6sHMn+55ahq5NnZyHzN15J06onDfpk9crWPvWPa5peCg6Ijq2lZUCzLbS2ltXxe/hfb5z6DmVgb2aork5cGZc3QEHoVIYBdqnkMpVcpWn4z6pAx6GfKVlf1TNszBuYAz52ebd1XxbxBFdH9yTAO+jHzrvPHtVTYatqmJUFQEAAABgMVNVM9IoaG6NRUvrrLX/N4OXibaE2MDce1/IyU4dvzxE/mY7y66Y9ifH74/TJF+U6th3ovexgAKuGjMLMgis7ClLdJxkT0WV9T7XnbGEobPoKUZRWKDhybU0Muj9amoxme9c1jWbm9ovuyfnfFQmnK+WXYfDtodImGKFZzM8wNLgujqpHJhnG9ErI877e+HIPa1p6Ley9xlI9/lWOvu8D8zZPe3dXoZqprv/X9N5pibp6Vi7SCoTYKDfnn6fYZ61Z5l9EmowvYODMUv9m2UB0mTemO5dwG7z4bFgTyDyZv98DXBk1p2mkwPfA8EJKB6G/O8oX5oADhCG/O8oH5oADjAYJCAb2UgAAAAAAAAAAAAAACCIxtgbmHEfBpZpL+uyLkNalp8mHGyAXpcwAFwAAAMAQNWAgh4A");case"piano":return cn("data:audio/ogg;base64,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");case"sfx":return cn("data:audio/ogg;base64,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");default:return cn("data:audio/ogg;base64,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")}},un=()=>{const{theme:e,setTheme:t}=i(p);return{theme:e,setTheme:t,handleChecked:e=>{const n=e.target.name,A=e.target.checked;b.local.set(`chessground.${n}`,A),t(e=>({...e,[n]:A}))},handleChange:e=>{const n=e.target.name,A=e.target.value;b.local.set(`chessground.${n}`,A),t(e=>({...e,[n]:A}))}}};function hn(e,t,n,A){var o=Error.call(this,e);return Object.setPrototypeOf&&Object.setPrototypeOf(o,hn.prototype),o.expected=t,o.found=n,o.location=A,o.name="SyntaxError",o}function pn(e,t,n){return n=n||" ",e.length>t?e:(t-=e.length,e+(n+=n.repeat(t)).slice(0,t))}function gn(e,t){var n,A,o,r,i={},s=(t=void 0!==t?t:{}).grammarSource,a={pgn:Le},c=Le,l="[",u='"',h="]",p=".",g="O-O-O",d="O-O",m="0-0-0",f="0-0",b="$",y="{",I="}",k=";",w="(",C=")",v="1-0",S="0-1",E="1/2-1/2",V="*",N=/^[a-zA-Z]/,M=/^[^"]/,x=/^[0-9]/,B=/^[.]/,D=/^[a-zA-Z1-8\-=]/,T=/^[+#]/,Q=/^[!?]/,Z=/^[^}]/,j=/^[^\r\n]/,P=/^[ \t\r\n]/,U=Ke("tag pair"),O=qe("[",!1),q=qe('"',!1),J=qe("]",!1),K=Ke("tag name"),G=Je([["a","z"],["A","Z"]],!1,!1),R=Ke("tag value"),F=Je(['"'],!0,!1),L=Ke("move number"),z=Je([["0","9"]],!1,!1),W=qe(".",!1),Y=Je(["."],!1,!1),_=Ke("standard algebraic notation"),H=qe("O-O-O",!1),X=qe("O-O",!1),$=qe("0-0-0",!1),ee=qe("0-0",!1),te=Je([["a","z"],["A","Z"],["1","8"],"-","="],!1,!1),ne=Je(["+","#"],!1,!1),Ae=Ke("suffix annotation"),oe=Je(["!","?"],!1,!1),re=Ke("NAG"),ie=qe("$",!1),se=Ke("brace comment"),ae=qe("{",!1),ce=Je(["}"],!0,!1),le=qe("}",!1),ue=Ke("rest of line comment"),he=qe(";",!1),pe=Je(["\r","\n"],!0,!1),ge=Ke("variation"),de=qe("(",!1),me=qe(")",!1),fe=Ke("game termination marker"),be=qe("1-0",!1),ye=qe("0-1",!1),Ie=qe("1/2-1/2",!1),ke=qe("*",!1),we=Ke("whitespace"),Ce=Je([" ","\t","\r","\n"],!1,!1),ve=function(e,t){return function(e,t){if(t.marker&&t.marker.comment){let e=t.root;for(;;){const n=e.variations[0];if(!n){e.comment=t.marker.comment;break}e=n}}return{headers:e,root:t.root,result:(t.marker&&t.marker.result)??void 0}}(e,t)},Se=function(e){return Object.fromEntries(e)},Ee=function(e,t){return[e,t]},Ve=function(e,t){return{root:e,marker:t}},Ne=function(e,t){return function(...e){const[t,...n]=e;let A=t;for(const e of n)null!==e&&(A.variations=[e,...e.variations],e.variations=[],A=e);return t}(function(e){return null!==e?{comment:e,variations:[]}:{variations:[]}}(e),...t.flat())},Me=function(e,t,n,A,o){return function(e,t,n,A,o){const r={move:e,variations:o};return t&&(r.suffix=t),n&&(r.nag=n),null!==A&&(r.comment=A),r}(e,t,n,A,o)},xe=function(e){return e},Be=function(e){return e.replace(/[\r\n]+/g," ")},De=function(e){return e.trim()},Te=function(e){return e},Qe=function(e,t){return{result:e,comment:t}},Ze=0|t.peg$currPos,je=[{line:1,column:1}],Pe=Ze,Ue=t.peg$maxFailExpected||[],Oe=0|t.peg$silentFails;if(t.startRule){if(!(t.startRule in a))throw new Error("Can't start parsing from rule \""+t.startRule+'".');c=a[t.startRule]}function qe(e,t){return{type:"literal",text:e,ignoreCase:t}}function Je(e,t,n){return{type:"class",parts:e,inverted:t,ignoreCase:n}}function Ke(e){return{type:"other",description:e}}function Ge(t){var n,A=je[t];if(A)return A;if(t>=je.length)n=je.length-1;else for(n=t;!je[--n];);for(A={line:(A=je[n]).line,column:A.column};n<t;)10===e.charCodeAt(n)?(A.line++,A.column=1):A.column++,n++;return je[t]=A,A}function Re(e,t,n){var A=Ge(e),o=Ge(t);return{source:s,start:{offset:e,line:A.line,column:A.column},end:{offset:t,line:o.line,column:o.column}}}function Fe(e){Ze<Pe||(Ze>Pe&&(Pe=Ze,Ue=[]),Ue.push(e))}function Le(){var t,n;return t=function(){var e,t,n;e=Ze,t=[],n=ze();for(;n!==i;)t.push(n),n=ze();return n=$e(),e=Se(t),e}(),n=function(){var t,n,A;t=Ze,n=We(),$e(),A=function(){var t,n,A;Oe++,t=Ze,e.substr(Ze,3)===v?(n=v,Ze+=3):(n=i,0===Oe&&Fe(be));n===i&&(e.substr(Ze,3)===S?(n=S,Ze+=3):(n=i,0===Oe&&Fe(ye)),n===i&&(e.substr(Ze,7)===E?(n=E,Ze+=7):(n=i,0===Oe&&Fe(Ie)),n===i&&(42===e.charCodeAt(Ze)?(n=V,Ze++):(n=i,0===Oe&&Fe(ke)))));n!==i?($e(),(A=He())===i&&(A=null),t=Qe(n,A)):(Ze=t,t=i);Oe--,t===i&&(n=i,0===Oe&&Fe(fe));return t}(),A===i&&(A=null);return $e(),t=Ve(n,A),t}(),ve(t,n)}function ze(){var t,n,A,o,r,s,a;return Oe++,t=Ze,$e(),91===e.charCodeAt(Ze)?(n=l,Ze++):(n=i,0===Oe&&Fe(O)),n!==i?($e(),A=function(){var t,n,A;Oe++,t=Ze,n=[],A=e.charAt(Ze),N.test(A)?Ze++:(A=i,0===Oe&&Fe(G));if(A!==i)for(;A!==i;)n.push(A),A=e.charAt(Ze),N.test(A)?Ze++:(A=i,0===Oe&&Fe(G));else n=i;t=n!==i?e.substring(t,Ze):n;Oe--,t===i&&(n=i,0===Oe&&Fe(K));return t}(),A!==i?($e(),34===e.charCodeAt(Ze)?(o=u,Ze++):(o=i,0===Oe&&Fe(q)),o!==i?(r=function(){var t,n,A;Oe++,t=Ze,n=[],A=e.charAt(Ze),M.test(A)?Ze++:(A=i,0===Oe&&Fe(F));for(;A!==i;)n.push(A),A=e.charAt(Ze),M.test(A)?Ze++:(A=i,0===Oe&&Fe(F));t=e.substring(t,Ze),Oe--,n=i,0===Oe&&Fe(R);return t}(),34===e.charCodeAt(Ze)?(s=u,Ze++):(s=i,0===Oe&&Fe(q)),s!==i?($e(),93===e.charCodeAt(Ze)?(a=h,Ze++):(a=i,0===Oe&&Fe(J)),a!==i?t=Ee(A,r):(Ze=t,t=i)):(Ze=t,t=i)):(Ze=t,t=i)):(Ze=t,t=i)):(Ze=t,t=i),Oe--,t===i&&0===Oe&&Fe(U),t}function We(){var e,t,n;for((e=He())===i&&(e=null),t=[],n=Ye();n!==i;)t.push(n),n=Ye();return Ne(e,t)}function Ye(){var t,n,A,o,r,s,a,c;if(t=Ze,$e(),function(){var t,n,A,o,r,s;Oe++,t=Ze,n=[],A=e.charAt(Ze),x.test(A)?Ze++:(A=i,0===Oe&&Fe(z));for(;A!==i;)n.push(A),A=e.charAt(Ze),x.test(A)?Ze++:(A=i,0===Oe&&Fe(z));46===e.charCodeAt(Ze)?(A=p,Ze++):(A=i,0===Oe&&Fe(W));if(A!==i){for(o=$e(),r=[],s=e.charAt(Ze),B.test(s)?Ze++:(s=i,0===Oe&&Fe(Y));s!==i;)r.push(s),s=e.charAt(Ze),B.test(s)?Ze++:(s=i,0===Oe&&Fe(Y));t=n=[n,A,o,r]}else Ze=t,t=i;Oe--,t===i&&(n=i,0===Oe&&Fe(L))}(),$e(),n=function(){var t,n,A,o,r,s;Oe++,t=Ze,n=Ze,e.substr(Ze,5)===g?(A=g,Ze+=5):(A=i,0===Oe&&Fe(H));if(A===i&&(e.substr(Ze,3)===d?(A=d,Ze+=3):(A=i,0===Oe&&Fe(X)),A===i&&(e.substr(Ze,5)===m?(A=m,Ze+=5):(A=i,0===Oe&&Fe($)),A===i&&(e.substr(Ze,3)===f?(A=f,Ze+=3):(A=i,0===Oe&&Fe(ee)),A===i))))if(A=Ze,o=e.charAt(Ze),N.test(o)?Ze++:(o=i,0===Oe&&Fe(G)),o!==i){if(r=[],s=e.charAt(Ze),D.test(s)?Ze++:(s=i,0===Oe&&Fe(te)),s!==i)for(;s!==i;)r.push(s),s=e.charAt(Ze),D.test(s)?Ze++:(s=i,0===Oe&&Fe(te));else r=i;r!==i?A=o=[o,r]:(Ze=A,A=i)}else Ze=A,A=i;A!==i?(o=e.charAt(Ze),T.test(o)?Ze++:(o=i,0===Oe&&Fe(ne)),o===i&&(o=null),n=A=[A,o]):(Ze=n,n=i);t=n!==i?e.substring(t,Ze):n;Oe--,t===i&&(n=i,0===Oe&&Fe(_));return t}(),n!==i){for(A=function(){var t,n,A;Oe++,t=Ze,n=[],A=e.charAt(Ze),Q.test(A)?Ze++:(A=i,0===Oe&&Fe(oe));for(;A!==i;)n.push(A),n.length>=2?A=i:(A=e.charAt(Ze),Q.test(A)?Ze++:(A=i,0===Oe&&Fe(oe)));n.length<1?(Ze=t,t=i):t=n;Oe--,t===i&&(n=i,0===Oe&&Fe(Ae));return t}(),A===i&&(A=null),o=[],r=_e();r!==i;)o.push(r),r=_e();for(r=$e(),(s=He())===i&&(s=null),a=[],c=Xe();c!==i;)a.push(c),c=Xe();t=Me(n,A,o,s,a)}else Ze=t,t=i;return t}function _e(){var t,n,A,o,r;if(Oe++,t=Ze,$e(),36===e.charCodeAt(Ze)?(n=b,Ze++):(n=i,0===Oe&&Fe(ie)),n!==i){if(A=Ze,o=[],r=e.charAt(Ze),x.test(r)?Ze++:(r=i,0===Oe&&Fe(z)),r!==i)for(;r!==i;)o.push(r),r=e.charAt(Ze),x.test(r)?Ze++:(r=i,0===Oe&&Fe(z));else o=i;(A=o!==i?e.substring(A,Ze):o)!==i?t=xe(A):(Ze=t,t=i)}else Ze=t,t=i;return Oe--,t===i&&0===Oe&&Fe(re),t}function He(){var t;return(t=function(){var t,n,A,o,r;Oe++,t=Ze,123===e.charCodeAt(Ze)?(n=y,Ze++):(n=i,0===Oe&&Fe(ae));if(n!==i){for(A=Ze,o=[],r=e.charAt(Ze),Z.test(r)?Ze++:(r=i,0===Oe&&Fe(ce));r!==i;)o.push(r),r=e.charAt(Ze),Z.test(r)?Ze++:(r=i,0===Oe&&Fe(ce));A=e.substring(A,Ze),125===e.charCodeAt(Ze)?(o=I,Ze++):(o=i,0===Oe&&Fe(le)),o!==i?t=Be(A):(Ze=t,t=i)}else Ze=t,t=i;Oe--,t===i&&(n=i,0===Oe&&Fe(se));return t}())===i&&(t=function(){var t,n,A,o,r;Oe++,t=Ze,59===e.charCodeAt(Ze)?(n=k,Ze++):(n=i,0===Oe&&Fe(he));if(n!==i){for(A=Ze,o=[],r=e.charAt(Ze),j.test(r)?Ze++:(r=i,0===Oe&&Fe(pe));r!==i;)o.push(r),r=e.charAt(Ze),j.test(r)?Ze++:(r=i,0===Oe&&Fe(pe));A=e.substring(A,Ze),t=De(A)}else Ze=t,t=i;Oe--,t===i&&(n=i,0===Oe&&Fe(ue));return t}()),t}function Xe(){var t,n,A,o;return Oe++,t=Ze,$e(),40===e.charCodeAt(Ze)?(n=w,Ze++):(n=i,0===Oe&&Fe(de)),n!==i&&(A=We())!==i?($e(),41===e.charCodeAt(Ze)?(o=C,Ze++):(o=i,0===Oe&&Fe(me)),o!==i?t=Te(A):(Ze=t,t=i)):(Ze=t,t=i),Oe--,t===i&&0===Oe&&Fe(ge),t}function $e(){var t,n;for(Oe++,t=[],n=e.charAt(Ze),P.test(n)?Ze++:(n=i,0===Oe&&Fe(Ce));n!==i;)t.push(n),n=e.charAt(Ze),P.test(n)?Ze++:(n=i,0===Oe&&Fe(Ce));return Oe--,n=i,0===Oe&&Fe(we),t}if(n=c(),t.peg$library)return{peg$result:n,peg$currPos:Ze,peg$FAILED:i,peg$maxFailExpected:Ue,peg$maxFailPos:Pe};if(n!==i&&Ze===e.length)return n;throw n!==i&&Ze<e.length&&Fe({type:"end"}),A=Ue,o=Pe<e.length?e.charAt(Pe):null,r=Pe<e.length?Re(Pe,Pe+1):Re(Pe,Pe),new hn(hn.buildMessage(A,o),A,o,r)}
|
|
1
|
+
import{jsx as e,jsxs as t,Fragment as n}from"react/jsx-runtime";import A,{createContext as o,useState as r,useEffect as i,useContext as s,useRef as a,useCallback as c,forwardRef as l,useImperativeHandle as u}from"react";import h from"react-dom";const p=o({theme:{board:"green",pieces:"neo",playSounds:!0,sounds:"robot",highlight:!0,coordinates:!0},setTheme:()=>{}}),g=({children:t})=>e(A.Fragment,{children:"undefined"==typeof window?null:t});var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function m(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function f(e,t,n){return e(n={path:t,exports:{},require:function(e,t){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==t&&n.path)}},n.exports),n.exports}var b=f(function(e){!function(t,n){var A={version:"2.14.4",areas:{},apis:{},nsdelim:".",inherit:function(e,t){for(var n in e)t.hasOwnProperty(n)||Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n));return t},stringify:function(e,t){return void 0===e||"function"==typeof e?e+"":JSON.stringify(e,t||A.replace)},parse:function(e,t){try{return JSON.parse(e,t||A.revive)}catch(t){return e}},fn:function(e,t){for(var n in A.storeAPI[e]=t,A.apis)A.apis[n][e]=t},get:function(e,t){return e.getItem(t)},set:function(e,t,n){e.setItem(t,n)},remove:function(e,t){e.removeItem(t)},key:function(e,t){return e.key(t)},length:function(e){return e.length},clear:function(e){e.clear()},Store:function(e,t,n){var o=A.inherit(A.storeAPI,function(e,t,n){return 0===arguments.length?o.getAll():"function"==typeof t?o.transact(e,t,n):void 0!==t?o.set(e,t,n):"string"==typeof e||"number"==typeof e?o.get(e):"function"==typeof e?o.each(e):e?o.setAll(e,t):o.clear()});o._id=e;try{var r="__store2_test";t.setItem(r,"ok"),o._area=t,t.removeItem(r)}catch(e){o._area=A.storage("fake")}return o._ns=n||"",A.areas[e]||(A.areas[e]=o._area),A.apis[o._ns+o._id]||(A.apis[o._ns+o._id]=o),o},storeAPI:{area:function(e,t){var n=this[e];return n&&n.area||(n=A.Store(e,t,this._ns),this[e]||(this[e]=n)),n},namespace:function(e,t,n){if(n=n||this._delim||A.nsdelim,!e)return this._ns?this._ns.substring(0,this._ns.length-n.length):"";var o=e,r=this[o];if(!(r&&r.namespace||((r=A.Store(this._id,this._area,this._ns+o+n))._delim=n,this[o]||(this[o]=r),t)))for(var i in A.areas)r.area(i,A.areas[i]);return r},isFake:function(e){return e?(this._real=this._area,this._area=A.storage("fake")):!1===e&&(this._area=this._real||this._area),"fake"===this._area.name},toString:function(){return"store"+(this._ns?"."+this.namespace():"")+"["+this._id+"]"},has:function(e){return this._area.has?this._area.has(this._in(e)):!!(this._in(e)in this._area)},size:function(){return this.keys().length},each:function(e,t){for(var n=0,o=A.length(this._area);n<o;n++){var r=this._out(A.key(this._area,n));if(void 0!==r&&!1===e.call(this,r,this.get(r),t))break;o>A.length(this._area)&&(o--,n--)}return t||this},keys:function(e){return this.each(function(e,t,n){n.push(e)},e||[])},get:function(e,t){var n,o=A.get(this._area,this._in(e));return"function"==typeof t&&(n=t,t=null),null!==o?A.parse(o,n):null!=t?t:o},getAll:function(e){return this.each(function(e,t,n){n[e]=t},e||{})},transact:function(e,t,n){var A=this.get(e,n),o=t(A);return this.set(e,void 0===o?A:o),this},set:function(e,t,n){var o,r=this.get(e);return null!=r&&!1===n?t:("function"==typeof n&&(o=n,n=void 0),A.set(this._area,this._in(e),A.stringify(t,o),n)||r)},setAll:function(e,t){var n,A;for(var o in e)A=e[o],this.set(o,A,t)!==A&&(n=!0);return n},add:function(e,t,n){var o=this.get(e);if(o instanceof Array)t=o.concat(t);else if(null!==o){var r=typeof o;if(r===typeof t&&"object"===r){for(var i in t)o[i]=t[i];t=o}else t=o+t}return A.set(this._area,this._in(e),A.stringify(t,n)),t},remove:function(e,t){var n=this.get(e,t);return A.remove(this._area,this._in(e)),n},clear:function(){return this._ns?this.each(function(e){A.remove(this._area,this._in(e))},1):A.clear(this._area),this},clearAll:function(){var e=this._area;for(var t in A.areas)A.areas.hasOwnProperty(t)&&(this._area=A.areas[t],this.clear());return this._area=e,this},_in:function(e){return"string"!=typeof e&&(e=A.stringify(e)),this._ns?this._ns+e:e},_out:function(e){return this._ns?e&&0===e.indexOf(this._ns)?e.substring(this._ns.length):void 0:e}},storage:function(e){return A.inherit(A.storageAPI,{items:{},name:e})},storageAPI:{length:0,has:function(e){return this.items.hasOwnProperty(e)},key:function(e){var t=0;for(var n in this.items)if(this.has(n)&&e===t++)return n},setItem:function(e,t){this.has(e)||this.length++,this.items[e]=t},removeItem:function(e){this.has(e)&&(delete this.items[e],this.length--)},getItem:function(e){return this.has(e)?this.items[e]:null},clear:function(){for(var e in this.items)this.removeItem(e)}}},o=A.Store("local",function(){try{return localStorage}catch(e){}}());o.local=o,o._=A,o.area("session",function(){try{return sessionStorage}catch(e){}}()),o.area("page",A.storage("page")),"function"==typeof n&&void 0!==n.amd?n("store2",[],function(){return o}):e.exports?e.exports=o:(t.store&&(A.conflict=t.store),t.store=o)}(d,d&&d.define)});const y=({children:t})=>{const[n,A]=r((()=>{const e={board:"green",pieces:"cburnett",playSounds:!0,sounds:"robot",highlight:!0,coordinates:!0},t={board:b.local.get("chessground.board"),pieces:b.local.get("chessground.pieces"),playSounds:b.local.get("chessground.playSounds"),sounds:b.local.get("chessground.sounds"),highlight:b.local.get("chessground.highlight"),coordinates:b.local.get("chessground.coordinates")};for(const n of Object.keys(t))null!=t[n]&&(e[n]=t[n]);return e})());return e(g,{children:e(p.Provider,{value:{theme:n,setTheme:A},children:t})})};function I(){return Array.prototype.slice.call(arguments).reduce(function(e,t){return e.concat(t)},[]).filter(function(e){return"string"==typeof e}).join(" ")}function k(e,t,n,A){var o=Error.call(this,e);return Object.setPrototypeOf&&Object.setPrototypeOf(o,k.prototype),o.expected=t,o.found=n,o.location=A,o.name="SyntaxError",o}function w(e,t,n){return n=n||" ",e.length>t?e:(t-=e.length,e+(n+=n.repeat(t)).slice(0,t))}function C(e,t){var n,A,o,r,i={},s=(t=void 0!==t?t:{}).grammarSource,a={pgn:ze},c=ze,l="[",u='"',h="]",p=".",g="O-O-O",d="O-O",m="0-0-0",f="0-0",b="$",y="{",I="}",w=";",C="(",v=")",S="1-0",E="0-1",V="1/2-1/2",N="*",M=/^[a-zA-Z]/,x=/^[^"]/,B=/^[0-9]/,D=/^[.]/,T=/^[a-zA-Z1-8\-=]/,Q=/^[+#]/,Z=/^[!?]/,j=/^[^}]/,P=/^[^\r\n]/,U=/^[ \t\r\n]/,O=Ge("tag pair"),q=Je("[",!1),J=Je('"',!1),K=Je("]",!1),G=Ge("tag name"),R=Ke([["a","z"],["A","Z"]],!1,!1),F=Ge("tag value"),L=Ke(['"'],!0,!1),z=Ge("move number"),W=Ke([["0","9"]],!1,!1),Y=Je(".",!1),_=Ke(["."],!1,!1),H=Ge("standard algebraic notation"),X=Je("O-O-O",!1),$=Je("O-O",!1),ee=Je("0-0-0",!1),te=Je("0-0",!1),ne=Ke([["a","z"],["A","Z"],["1","8"],"-","="],!1,!1),Ae=Ke(["+","#"],!1,!1),oe=Ge("suffix annotation"),re=Ke(["!","?"],!1,!1),ie=Ge("NAG"),se=Je("$",!1),ae=Ge("brace comment"),ce=Je("{",!1),le=Ke(["}"],!0,!1),ue=Je("}",!1),he=Ge("rest of line comment"),pe=Je(";",!1),ge=Ke(["\r","\n"],!0,!1),de=Ge("variation"),me=Je("(",!1),fe=Je(")",!1),be=Ge("game termination marker"),ye=Je("1-0",!1),Ie=Je("0-1",!1),ke=Je("1/2-1/2",!1),we=Je("*",!1),Ce=Ge("whitespace"),ve=Ke([" ","\t","\r","\n"],!1,!1),Se=function(e,t){return function(e,t){if(t.marker&&t.marker.comment){let e=t.root;for(;;){const n=e.variations[0];if(!n){e.comment=t.marker.comment;break}e=n}}return{headers:e,root:t.root,result:(t.marker&&t.marker.result)??void 0}}(e,t)},Ee=function(e){return Object.fromEntries(e)},Ve=function(e,t){return[e,t]},Ne=function(e,t){return{root:e,marker:t}},Me=function(e,t){return function(...e){const[t,...n]=e;let A=t;for(const e of n)null!==e&&(A.variations=[e,...e.variations],e.variations=[],A=e);return t}(function(e){return null!==e?{comment:e,variations:[]}:{variations:[]}}(e),...t.flat())},xe=function(e,t,n,A,o){return function(e,t,n,A,o){const r={move:e,variations:o};return t&&(r.suffix=t),n&&(r.nag=n),null!==A&&(r.comment=A),r}(e,t,n,A,o)},Be=function(e){return e},De=function(e){return e.replace(/[\r\n]+/g," ")},Te=function(e){return e.trim()},Qe=function(e){return e},Ze=function(e,t){return{result:e,comment:t}},je=0|t.peg$currPos,Pe=[{line:1,column:1}],Ue=je,Oe=t.peg$maxFailExpected||[],qe=0|t.peg$silentFails;if(t.startRule){if(!(t.startRule in a))throw new Error("Can't start parsing from rule \""+t.startRule+'".');c=a[t.startRule]}function Je(e,t){return{type:"literal",text:e,ignoreCase:t}}function Ke(e,t,n){return{type:"class",parts:e,inverted:t,ignoreCase:n}}function Ge(e){return{type:"other",description:e}}function Re(t){var n,A=Pe[t];if(A)return A;if(t>=Pe.length)n=Pe.length-1;else for(n=t;!Pe[--n];);for(A={line:(A=Pe[n]).line,column:A.column};n<t;)10===e.charCodeAt(n)?(A.line++,A.column=1):A.column++,n++;return Pe[t]=A,A}function Fe(e,t,n){var A=Re(e),o=Re(t);return{source:s,start:{offset:e,line:A.line,column:A.column},end:{offset:t,line:o.line,column:o.column}}}function Le(e){je<Ue||(je>Ue&&(Ue=je,Oe=[]),Oe.push(e))}function ze(){var t,n;return t=function(){var e,t,n;e=je,t=[],n=We();for(;n!==i;)t.push(n),n=We();return n=et(),e=Ee(t),e}(),n=function(){var t,n,A;t=je,n=Ye(),et(),A=function(){var t,n,A;qe++,t=je,e.substr(je,3)===S?(n=S,je+=3):(n=i,0===qe&&Le(ye));n===i&&(e.substr(je,3)===E?(n=E,je+=3):(n=i,0===qe&&Le(Ie)),n===i&&(e.substr(je,7)===V?(n=V,je+=7):(n=i,0===qe&&Le(ke)),n===i&&(42===e.charCodeAt(je)?(n=N,je++):(n=i,0===qe&&Le(we)))));n!==i?(et(),(A=Xe())===i&&(A=null),t=Ze(n,A)):(je=t,t=i);qe--,t===i&&(n=i,0===qe&&Le(be));return t}(),A===i&&(A=null);return et(),t=Ne(n,A),t}(),Se(t,n)}function We(){var t,n,A,o,r,s,a;return qe++,t=je,et(),91===e.charCodeAt(je)?(n=l,je++):(n=i,0===qe&&Le(q)),n!==i?(et(),A=function(){var t,n,A;qe++,t=je,n=[],A=e.charAt(je),M.test(A)?je++:(A=i,0===qe&&Le(R));if(A!==i)for(;A!==i;)n.push(A),A=e.charAt(je),M.test(A)?je++:(A=i,0===qe&&Le(R));else n=i;t=n!==i?e.substring(t,je):n;qe--,t===i&&(n=i,0===qe&&Le(G));return t}(),A!==i?(et(),34===e.charCodeAt(je)?(o=u,je++):(o=i,0===qe&&Le(J)),o!==i?(r=function(){var t,n,A;qe++,t=je,n=[],A=e.charAt(je),x.test(A)?je++:(A=i,0===qe&&Le(L));for(;A!==i;)n.push(A),A=e.charAt(je),x.test(A)?je++:(A=i,0===qe&&Le(L));t=e.substring(t,je),qe--,n=i,0===qe&&Le(F);return t}(),34===e.charCodeAt(je)?(s=u,je++):(s=i,0===qe&&Le(J)),s!==i?(et(),93===e.charCodeAt(je)?(a=h,je++):(a=i,0===qe&&Le(K)),a!==i?t=Ve(A,r):(je=t,t=i)):(je=t,t=i)):(je=t,t=i)):(je=t,t=i)):(je=t,t=i),qe--,t===i&&0===qe&&Le(O),t}function Ye(){var e,t,n;for((e=Xe())===i&&(e=null),t=[],n=_e();n!==i;)t.push(n),n=_e();return Me(e,t)}function _e(){var t,n,A,o,r,s,a,c;if(t=je,et(),function(){var t,n,A,o,r,s;qe++,t=je,n=[],A=e.charAt(je),B.test(A)?je++:(A=i,0===qe&&Le(W));for(;A!==i;)n.push(A),A=e.charAt(je),B.test(A)?je++:(A=i,0===qe&&Le(W));46===e.charCodeAt(je)?(A=p,je++):(A=i,0===qe&&Le(Y));if(A!==i){for(o=et(),r=[],s=e.charAt(je),D.test(s)?je++:(s=i,0===qe&&Le(_));s!==i;)r.push(s),s=e.charAt(je),D.test(s)?je++:(s=i,0===qe&&Le(_));t=n=[n,A,o,r]}else je=t,t=i;qe--,t===i&&(n=i,0===qe&&Le(z))}(),et(),n=function(){var t,n,A,o,r,s;qe++,t=je,n=je,e.substr(je,5)===g?(A=g,je+=5):(A=i,0===qe&&Le(X));if(A===i&&(e.substr(je,3)===d?(A=d,je+=3):(A=i,0===qe&&Le($)),A===i&&(e.substr(je,5)===m?(A=m,je+=5):(A=i,0===qe&&Le(ee)),A===i&&(e.substr(je,3)===f?(A=f,je+=3):(A=i,0===qe&&Le(te)),A===i))))if(A=je,o=e.charAt(je),M.test(o)?je++:(o=i,0===qe&&Le(R)),o!==i){if(r=[],s=e.charAt(je),T.test(s)?je++:(s=i,0===qe&&Le(ne)),s!==i)for(;s!==i;)r.push(s),s=e.charAt(je),T.test(s)?je++:(s=i,0===qe&&Le(ne));else r=i;r!==i?A=o=[o,r]:(je=A,A=i)}else je=A,A=i;A!==i?(o=e.charAt(je),Q.test(o)?je++:(o=i,0===qe&&Le(Ae)),o===i&&(o=null),n=A=[A,o]):(je=n,n=i);t=n!==i?e.substring(t,je):n;qe--,t===i&&(n=i,0===qe&&Le(H));return t}(),n!==i){for(A=function(){var t,n,A;qe++,t=je,n=[],A=e.charAt(je),Z.test(A)?je++:(A=i,0===qe&&Le(re));for(;A!==i;)n.push(A),n.length>=2?A=i:(A=e.charAt(je),Z.test(A)?je++:(A=i,0===qe&&Le(re)));n.length<1?(je=t,t=i):t=n;qe--,t===i&&(n=i,0===qe&&Le(oe));return t}(),A===i&&(A=null),o=[],r=He();r!==i;)o.push(r),r=He();for(r=et(),(s=Xe())===i&&(s=null),a=[],c=$e();c!==i;)a.push(c),c=$e();t=xe(n,A,o,s,a)}else je=t,t=i;return t}function He(){var t,n,A,o,r;if(qe++,t=je,et(),36===e.charCodeAt(je)?(n=b,je++):(n=i,0===qe&&Le(se)),n!==i){if(A=je,o=[],r=e.charAt(je),B.test(r)?je++:(r=i,0===qe&&Le(W)),r!==i)for(;r!==i;)o.push(r),r=e.charAt(je),B.test(r)?je++:(r=i,0===qe&&Le(W));else o=i;(A=o!==i?e.substring(A,je):o)!==i?t=Be(A):(je=t,t=i)}else je=t,t=i;return qe--,t===i&&0===qe&&Le(ie),t}function Xe(){var t;return(t=function(){var t,n,A,o,r;qe++,t=je,123===e.charCodeAt(je)?(n=y,je++):(n=i,0===qe&&Le(ce));if(n!==i){for(A=je,o=[],r=e.charAt(je),j.test(r)?je++:(r=i,0===qe&&Le(le));r!==i;)o.push(r),r=e.charAt(je),j.test(r)?je++:(r=i,0===qe&&Le(le));A=e.substring(A,je),125===e.charCodeAt(je)?(o=I,je++):(o=i,0===qe&&Le(ue)),o!==i?t=De(A):(je=t,t=i)}else je=t,t=i;qe--,t===i&&(n=i,0===qe&&Le(ae));return t}())===i&&(t=function(){var t,n,A,o,r;qe++,t=je,59===e.charCodeAt(je)?(n=w,je++):(n=i,0===qe&&Le(pe));if(n!==i){for(A=je,o=[],r=e.charAt(je),P.test(r)?je++:(r=i,0===qe&&Le(ge));r!==i;)o.push(r),r=e.charAt(je),P.test(r)?je++:(r=i,0===qe&&Le(ge));A=e.substring(A,je),t=Te(A)}else je=t,t=i;qe--,t===i&&(n=i,0===qe&&Le(he));return t}()),t}function $e(){var t,n,A,o;return qe++,t=je,et(),40===e.charCodeAt(je)?(n=C,je++):(n=i,0===qe&&Le(me)),n!==i&&(A=Ye())!==i?(et(),41===e.charCodeAt(je)?(o=v,je++):(o=i,0===qe&&Le(fe)),o!==i?t=Qe(A):(je=t,t=i)):(je=t,t=i),qe--,t===i&&0===qe&&Le(de),t}function et(){var t,n;for(qe++,t=[],n=e.charAt(je),U.test(n)?je++:(n=i,0===qe&&Le(ve));n!==i;)t.push(n),n=e.charAt(je),U.test(n)?je++:(n=i,0===qe&&Le(ve));return qe--,n=i,0===qe&&Le(Ce),t}if(n=c(),t.peg$library)return{peg$result:n,peg$currPos:je,peg$FAILED:i,peg$maxFailExpected:Oe,peg$maxFailPos:Ue};if(n!==i&&je===e.length)return n;throw n!==i&&je<e.length&&Le({type:"end"}),A=Oe,o=Ue<e.length?e.charAt(Ue):null,r=Ue<e.length?Fe(Ue,Ue+1):Fe(Ue,Ue),new k(k.buildMessage(A,o),A,o,r)}
|
|
10
2
|
/**
|
|
11
3
|
* @license
|
|
12
4
|
* Copyright (c) 2025, Jeff Hlywa (jhlywa@gmail.com)
|
|
@@ -32,4 +24,12 @@ import{jsx as e,jsxs as t,Fragment as n}from"react/jsx-runtime";import A,{create
|
|
|
32
24
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
33
25
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
34
26
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
35
|
-
*/!function(e,t){function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n}(hn,Error),hn.prototype.format=function(e){var t="Error: "+this.message;if(this.location){var n,A=null;for(n=0;n<e.length;n++)if(e[n].source===this.location.source){A=e[n].text.split(/\r\n|\n|\r/g);break}var o=this.location.start,r=this.location.source&&"function"==typeof this.location.source.offset?this.location.source.offset(o):o,i=this.location.source+":"+r.line+":"+r.column;if(A){var s=this.location.end,a=pn("",r.line.toString().length," "),c=A[o.line-1],l=(o.line===s.line?s.column:c.length+1)-o.column||1;t+="\n --\x3e "+i+"\n"+a+" |\n"+r.line+" | "+c+"\n"+a+" | "+pn("",o.column-1," ")+pn("",l,"^")}else t+="\n at "+i}return t},hn.buildMessage=function(e,t){var n={literal:function(e){return'"'+o(e.text)+'"'},class:function(e){var t=e.parts.map(function(e){return Array.isArray(e)?r(e[0])+"-"+r(e[1]):r(e)});return"["+(e.inverted?"^":"")+t.join("")+"]"},any:function(){return"any character"},end:function(){return"end of input"},other:function(e){return e.description}};function A(e){return e.charCodeAt(0).toString(16).toUpperCase()}function o(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(e){return"\\x0"+A(e)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(e){return"\\x"+A(e)})}function r(e){return e.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(e){return"\\x0"+A(e)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(e){return"\\x"+A(e)})}function i(e){return n[e.type](e)}return"Expected "+function(e){var t,n,A=e.map(i);if(A.sort(),A.length>0){for(t=1,n=1;t<A.length;t++)A[t-1]!==A[t]&&(A[n]=A[t],n++);A.length=n}switch(A.length){case 1:return A[0];case 2:return A[0]+" or "+A[1];default:return A.slice(0,-1).join(", ")+", or "+A[A.length-1]}}(e)+" but "+function(e){return e?'"'+o(e)+'"':"end of input"}(t)+" found."};const dn=0xffffffffffffffffn;function mn(e,t){return 0xffffffffffffffffn&(e<<t|e>>64n-t)}function fn(e,t){return e*t&dn}const bn=(yn=0xa187eb39cdcaed8f31c4b365b102e01en,function(){let e=BigInt(yn&dn),t=BigInt(yn>>64n&dn);const n=fn(mn(fn(e,5n),7n),9n);return t^=e,e=(mn(e,24n)^t^t<<16n)&dn,t=mn(t,37n),yn=t<<64n|e,n});var yn;const In=Array.from({length:2},()=>Array.from({length:6},()=>Array.from({length:128},()=>bn()))),kn=Array.from({length:8},()=>bn()),wn=Array.from({length:16},()=>bn()),Cn=bn(),vn="w",Sn="b",En="p",Vn="b",Nn="r",Mn="q",xn="k",Bn="rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1";class Dn{color;from;to;piece;captured;promotion;flags;san;lan;before;after;constructor(e,t){const{color:n,piece:A,from:o,to:r,flags:i,captured:s,promotion:a}=t,c=$n(o),l=$n(r);this.color=n,this.piece=A,this.from=c,this.to=l,this.san=e._moveToSan(t,e._moves({legal:!0})),this.lan=c+l,this.before=e.fen(),e._makeMove(t),this.after=e.fen(),e._undoMove(),this.flags="";for(const e in jn)jn[e]&i&&(this.flags+=Qn[e]);s&&(this.captured=s),a&&(this.promotion=a,this.lan+=a)}isCapture(){return this.flags.indexOf(Qn.CAPTURE)>-1}isPromotion(){return this.flags.indexOf(Qn.PROMOTION)>-1}isEnPassant(){return this.flags.indexOf(Qn.EP_CAPTURE)>-1}isKingsideCastle(){return this.flags.indexOf(Qn.KSIDE_CASTLE)>-1}isQueensideCastle(){return this.flags.indexOf(Qn.QSIDE_CASTLE)>-1}isBigPawn(){return this.flags.indexOf(Qn.BIG_PAWN)>-1}}const Tn=-1,Qn={NORMAL:"n",CAPTURE:"c",BIG_PAWN:"b",EP_CAPTURE:"e",PROMOTION:"p",KSIDE_CASTLE:"k",QSIDE_CASTLE:"q",NULL_MOVE:"-"},Zn=["a8","b8","c8","d8","e8","f8","g8","h8","a7","b7","c7","d7","e7","f7","g7","h7","a6","b6","c6","d6","e6","f6","g6","h6","a5","b5","c5","d5","e5","f5","g5","h5","a4","b4","c4","d4","e4","f4","g4","h4","a3","b3","c3","d3","e3","f3","g3","h3","a2","b2","c2","d2","e2","f2","g2","h2","a1","b1","c1","d1","e1","f1","g1","h1"],jn={NORMAL:1,CAPTURE:2,BIG_PAWN:4,EP_CAPTURE:8,PROMOTION:16,KSIDE_CASTLE:32,QSIDE_CASTLE:64,NULL_MOVE:128},Pn={Event:"?",Site:"?",Date:"????.??.??",Round:"?",White:"?",Black:"?",Result:"*"},Un={...Pn,WhiteTitle:null,BlackTitle:null,WhiteElo:null,BlackElo:null,WhiteUSCF:null,BlackUSCF:null,WhiteNA:null,BlackNA:null,WhiteType:null,BlackType:null,EventDate:null,EventSponsor:null,Section:null,Stage:null,Board:null,Opening:null,Variation:null,SubVariation:null,ECO:null,NIC:null,Time:null,UTCTime:null,UTCDate:null,TimeControl:null,SetUp:null,FEN:null,Termination:null,Annotator:null,Mode:null,PlyCount:null},On={a8:0,b8:1,c8:2,d8:3,e8:4,f8:5,g8:6,h8:7,a7:16,b7:17,c7:18,d7:19,e7:20,f7:21,g7:22,h7:23,a6:32,b6:33,c6:34,d6:35,e6:36,f6:37,g6:38,h6:39,a5:48,b5:49,c5:50,d5:51,e5:52,f5:53,g5:54,h5:55,a4:64,b4:65,c4:66,d4:67,e4:68,f4:69,g4:70,h4:71,a3:80,b3:81,c3:82,d3:83,e3:84,f3:85,g3:86,h3:87,a2:96,b2:97,c2:98,d2:99,e2:100,f2:101,g2:102,h2:103,a1:112,b1:113,c1:114,d1:115,e1:116,f1:117,g1:118,h1:119},qn={b:[16,32,17,15],w:[-16,-32,-17,-15]},Jn={n:[-18,-33,-31,-14,18,33,31,14],b:[-17,-15,17,15],r:[-16,1,16,-1],q:[-17,-16,-15,1,17,16,15,-1],k:[-17,-16,-15,1,17,16,15,-1]},Kn=[20,0,0,0,0,0,0,24,0,0,0,0,0,0,20,0,0,20,0,0,0,0,0,24,0,0,0,0,0,20,0,0,0,0,20,0,0,0,0,24,0,0,0,0,20,0,0,0,0,0,0,20,0,0,0,24,0,0,0,20,0,0,0,0,0,0,0,0,20,0,0,24,0,0,20,0,0,0,0,0,0,0,0,0,0,20,2,24,2,20,0,0,0,0,0,0,0,0,0,0,0,2,53,56,53,2,0,0,0,0,0,0,24,24,24,24,24,24,56,0,56,24,24,24,24,24,24,0,0,0,0,0,0,2,53,56,53,2,0,0,0,0,0,0,0,0,0,0,0,20,2,24,2,20,0,0,0,0,0,0,0,0,0,0,20,0,0,24,0,0,20,0,0,0,0,0,0,0,0,20,0,0,0,24,0,0,0,20,0,0,0,0,0,0,20,0,0,0,0,24,0,0,0,0,20,0,0,0,0,20,0,0,0,0,0,24,0,0,0,0,0,20,0,0,20,0,0,0,0,0,0,24,0,0,0,0,0,0,20],Gn=[17,0,0,0,0,0,0,16,0,0,0,0,0,0,15,0,0,17,0,0,0,0,0,16,0,0,0,0,0,15,0,0,0,0,17,0,0,0,0,16,0,0,0,0,15,0,0,0,0,0,0,17,0,0,0,16,0,0,0,15,0,0,0,0,0,0,0,0,17,0,0,16,0,0,15,0,0,0,0,0,0,0,0,0,0,17,0,16,0,15,0,0,0,0,0,0,0,0,0,0,0,0,17,16,15,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,-15,-16,-17,0,0,0,0,0,0,0,0,0,0,0,0,-15,0,-16,0,-17,0,0,0,0,0,0,0,0,0,0,-15,0,0,-16,0,0,-17,0,0,0,0,0,0,0,0,-15,0,0,0,-16,0,0,0,-17,0,0,0,0,0,0,-15,0,0,0,0,-16,0,0,0,0,-17,0,0,0,0,-15,0,0,0,0,0,-16,0,0,0,0,0,-17,0,0,-15,0,0,0,0,0,0,-16,0,0,0,0,0,0,-17],Rn={p:1,n:2,b:4,r:8,q:16,k:32},Fn=["n",Vn,Nn,Mn],Ln={[xn]:jn.KSIDE_CASTLE,[Mn]:jn.QSIDE_CASTLE},zn={w:[{square:On.a1,flag:jn.QSIDE_CASTLE},{square:On.h1,flag:jn.KSIDE_CASTLE}],b:[{square:On.a8,flag:jn.QSIDE_CASTLE},{square:On.h8,flag:jn.KSIDE_CASTLE}]},Wn={b:1,w:6},Yn="--";function _n(e){return e>>4}function Hn(e){return 15&e}function Xn(e){return-1!=="0123456789".indexOf(e)}function $n(e){const t=Hn(e),n=_n(e);return"abcdefgh".substring(t,t+1)+"87654321".substring(n,n+1)}function eA(e){return e===vn?Sn:vn}function tA(e){const t=e.split(/\s+/);if(6!==t.length)return{ok:!1,error:"Invalid FEN: must contain six space-delimited fields"};const n=parseInt(t[5],10);if(isNaN(n)||n<=0)return{ok:!1,error:"Invalid FEN: move number must be a positive integer"};const A=parseInt(t[4],10);if(isNaN(A)||A<0)return{ok:!1,error:"Invalid FEN: half move counter number must be a non-negative integer"};if(!/^(-|[abcdefgh][36])$/.test(t[3]))return{ok:!1,error:"Invalid FEN: en-passant square is invalid"};if(/[^kKqQ-]/.test(t[2]))return{ok:!1,error:"Invalid FEN: castling availability is invalid"};if(!/^(w|b)$/.test(t[1]))return{ok:!1,error:"Invalid FEN: side-to-move is invalid"};const o=t[0].split("/");if(8!==o.length)return{ok:!1,error:"Invalid FEN: piece data does not contain 8 '/'-delimited rows"};for(let e=0;e<o.length;e++){let t=0,n=!1;for(let A=0;A<o[e].length;A++)if(Xn(o[e][A])){if(n)return{ok:!1,error:"Invalid FEN: piece data is invalid (consecutive number)"};t+=parseInt(o[e][A],10),n=!0}else{if(!/^[prnbqkPRNBQK]$/.test(o[e][A]))return{ok:!1,error:"Invalid FEN: piece data is invalid (invalid piece)"};t+=1,n=!1}if(8!==t)return{ok:!1,error:"Invalid FEN: piece data is invalid (too many squares in rank)"}}if("3"==t[3][1]&&"w"==t[1]||"6"==t[3][1]&&"b"==t[1])return{ok:!1,error:"Invalid FEN: illegal en-passant square"};const r=[{color:"white",regex:/K/g},{color:"black",regex:/k/g}];for(const{color:e,regex:n}of r){if(!n.test(t[0]))return{ok:!1,error:`Invalid FEN: missing ${e} king`};if((t[0].match(n)||[]).length>1)return{ok:!1,error:`Invalid FEN: too many ${e} kings`}}return Array.from(o[0]+o[7]).some(e=>"P"===e.toUpperCase())?{ok:!1,error:"Invalid FEN: some pawns are on the edge rows"}:{ok:!0}}function nA(e,t,n,A,o,r=void 0,i=jn.NORMAL){const s=_n(A);if(o!==En||7!==s&&0!==s)e.push({color:t,from:n,to:A,piece:o,captured:r,flags:i});else for(let s=0;s<Fn.length;s++){const a=Fn[s];e.push({color:t,from:n,to:A,piece:o,captured:r,promotion:a,flags:i|jn.PROMOTION})}}function AA(e){let t=e.charAt(0);if(t>="a"&&t<="h"){if(e.match(/[a-h]\d.*[a-h]\d/))return;return En}return t=t.toLowerCase(),"o"===t?xn:t}function oA(e){return e.replace(/=/,"").replace(/[+#]?[?!]*$/,"")}class rA{_board=new Array(128);_turn=vn;_header={};_kings={w:Tn,b:Tn};_epSquare=-1;_halfMoves=0;_moveNumber=0;_history=[];_comments={};_castling={w:0,b:0};_hash=0n;_positionCount=new Map;constructor(e=Bn,{skipValidation:t=!1}={}){this.load(e,{skipValidation:t})}clear({preserveHeaders:e=!1}={}){this._board=new Array(128),this._kings={w:Tn,b:Tn},this._turn=vn,this._castling={w:0,b:0},this._epSquare=Tn,this._halfMoves=0,this._moveNumber=1,this._history=[],this._comments={},this._header=e?this._header:{...Un},this._hash=this._computeHash(),this._positionCount=new Map,this._header.SetUp=null,this._header.FEN=null}load(e,{skipValidation:t=!1,preserveHeaders:n=!1}={}){let A=e.split(/\s+/);if(A.length>=2&&A.length<6){const t=["-","-","0","1"];e=A.concat(t.slice(-(6-A.length))).join(" ")}if(A=e.split(/\s+/),!t){const{ok:t,error:n}=tA(e);if(!t)throw new Error(n)}const o=A[0];let r=0;this.clear({preserveHeaders:n});for(let e=0;e<o.length;e++){const t=o.charAt(e);if("/"===t)r+=8;else if(Xn(t))r+=parseInt(t,10);else{const e=t<"a"?vn:Sn;this._put({type:t.toLowerCase(),color:e},$n(r)),r++}}this._turn=A[1],A[2].indexOf("K")>-1&&(this._castling.w|=jn.KSIDE_CASTLE),A[2].indexOf("Q")>-1&&(this._castling.w|=jn.QSIDE_CASTLE),A[2].indexOf("k")>-1&&(this._castling.b|=jn.KSIDE_CASTLE),A[2].indexOf("q")>-1&&(this._castling.b|=jn.QSIDE_CASTLE),this._epSquare="-"===A[3]?Tn:On[A[3]],this._halfMoves=parseInt(A[4],10),this._moveNumber=parseInt(A[5],10),this._hash=this._computeHash(),this._updateSetup(e),this._incPositionCount()}fen({forceEnpassantSquare:e=!1}={}){let t=0,n="";for(let e=On.a8;e<=On.h1;e++){if(this._board[e]){t>0&&(n+=t,t=0);const{color:A,type:o}=this._board[e];n+=A===vn?o.toUpperCase():o.toLowerCase()}else t++;e+1&136&&(t>0&&(n+=t),e!==On.h1&&(n+="/"),t=0,e+=8)}let A="";this._castling[vn]&jn.KSIDE_CASTLE&&(A+="K"),this._castling[vn]&jn.QSIDE_CASTLE&&(A+="Q"),this._castling[Sn]&jn.KSIDE_CASTLE&&(A+="k"),this._castling[Sn]&jn.QSIDE_CASTLE&&(A+="q"),A=A||"-";let o="-";if(this._epSquare!==Tn)if(e)o=$n(this._epSquare);else{const e=this._epSquare+(this._turn===vn?16:-16),t=[e+1,e-1];for(const e of t){if(136&e)continue;const t=this._turn;if(this._board[e]?.color===t&&this._board[e]?.type===En){this._makeMove({color:t,from:e,to:this._epSquare,piece:En,captured:En,flags:jn.EP_CAPTURE});const n=!this._isKingAttacked(t);if(this._undoMove(),n){o=$n(this._epSquare);break}}}}return[n,this._turn,A,o,this._halfMoves,this._moveNumber].join(" ")}_pieceKey(e){if(!this._board[e])return 0n;const{color:t,type:n}=this._board[e],A={p:0,n:1,b:2,r:3,q:4,k:5}[n];return In[{w:0,b:1}[t]][A][e]}_epKey(){return this._epSquare===Tn?0n:kn[7&this._epSquare]}_castlingKey(){const e=this._castling.w>>5|this._castling.b>>3;return wn[e]}_computeHash(){let e=0n;for(let t=On.a8;t<=On.h1;t++)136&t?t+=7:this._board[t]&&(e^=this._pieceKey(t));return e^=this._epKey(),e^=this._castlingKey(),"b"===this._turn&&(e^=Cn),e}_updateSetup(e){this._history.length>0||(e!==Bn?(this._header.SetUp="1",this._header.FEN=e):(this._header.SetUp=null,this._header.FEN=null))}reset(){this.load(Bn)}get(e){return this._board[On[e]]}findPiece(e){const t=[];for(let n=On.a8;n<=On.h1;n++)136&n?n+=7:this._board[n]&&this._board[n]?.color===e.color&&this._board[n].color===e.color&&this._board[n].type===e.type&&t.push($n(n));return t}put({type:e,color:t},n){return!!this._put({type:e,color:t},n)&&(this._updateCastlingRights(),this._updateEnPassantSquare(),this._updateSetup(this.fen()),!0)}_set(e,t){this._hash^=this._pieceKey(e),this._board[e]=t,this._hash^=this._pieceKey(e)}_put({type:e,color:t},n){if(-1==="pnbrqkPNBRQK".indexOf(e.toLowerCase()))return!1;if(!(n in On))return!1;const A=On[n];if(e==xn&&this._kings[t]!=Tn&&this._kings[t]!=A)return!1;const o=this._board[A];return o&&o.type===xn&&(this._kings[o.color]=Tn),this._set(A,{type:e,color:t}),e===xn&&(this._kings[t]=A),!0}_clear(e){this._hash^=this._pieceKey(e),delete this._board[e]}remove(e){const t=this.get(e);return this._clear(On[e]),t&&t.type===xn&&(this._kings[t.color]=Tn),this._updateCastlingRights(),this._updateEnPassantSquare(),this._updateSetup(this.fen()),t}_updateCastlingRights(){this._hash^=this._castlingKey();const e=this._board[On.e1]?.type===xn&&this._board[On.e1]?.color===vn,t=this._board[On.e8]?.type===xn&&this._board[On.e8]?.color===Sn;e&&this._board[On.a1]?.type===Nn&&this._board[On.a1]?.color===vn||(this._castling.w&=-65),e&&this._board[On.h1]?.type===Nn&&this._board[On.h1]?.color===vn||(this._castling.w&=-33),t&&this._board[On.a8]?.type===Nn&&this._board[On.a8]?.color===Sn||(this._castling.b&=-65),t&&this._board[On.h8]?.type===Nn&&this._board[On.h8]?.color===Sn||(this._castling.b&=-33),this._hash^=this._castlingKey()}_updateEnPassantSquare(){if(this._epSquare===Tn)return;const e=this._epSquare+(this._turn===vn?-16:16),t=this._epSquare+(this._turn===vn?16:-16),n=[t+1,t-1];if(null!==this._board[e]||null!==this._board[this._epSquare]||this._board[t]?.color!==eA(this._turn)||this._board[t]?.type!==En)return this._hash^=this._epKey(),void(this._epSquare=Tn);n.some(e=>!(136&e)&&this._board[e]?.color===this._turn&&this._board[e]?.type===En)||(this._hash^=this._epKey(),this._epSquare=Tn)}_attacked(e,t,n){const A=[];for(let o=On.a8;o<=On.h1;o++){if(136&o){o+=7;continue}if(void 0===this._board[o]||this._board[o].color!==e)continue;const r=this._board[o],i=o-t;if(0===i)continue;const s=i+119;if(Kn[s]&Rn[r.type]){if(r.type===En){if(i>0&&r.color===vn||i<=0&&r.color===Sn){if(!n)return!0;A.push($n(o))}continue}if("n"===r.type||"k"===r.type){if(n){A.push($n(o));continue}return!0}const e=Gn[s];let a=o+e,c=!1;for(;a!==t;){if(null!=this._board[a]){c=!0;break}a+=e}if(!c){if(n){A.push($n(o));continue}return!0}}}return!!n&&A}attackers(e,t){return t?this._attacked(t,On[e],!0):this._attacked(this._turn,On[e],!0)}_isKingAttacked(e){const t=this._kings[e];return-1!==t&&this._attacked(eA(e),t)}hash(){return this._hash.toString(16)}isAttacked(e,t){return this._attacked(t,On[e])}isCheck(){return this._isKingAttacked(this._turn)}inCheck(){return this.isCheck()}isCheckmate(){return this.isCheck()&&0===this._moves().length}isStalemate(){return!this.isCheck()&&0===this._moves().length}isInsufficientMaterial(){const e={b:0,n:0,r:0,q:0,k:0,p:0},t=[];let n=0,A=0;for(let o=On.a8;o<=On.h1;o++){if(A=(A+1)%2,136&o){o+=7;continue}const r=this._board[o];r&&(e[r.type]=r.type in e?e[r.type]+1:1,r.type===Vn&&t.push(A),n++)}if(2===n)return!0;if(3===n&&(1===e[Vn]||1===e.n))return!0;if(n===e[Vn]+2){let e=0;const n=t.length;for(let A=0;A<n;A++)e+=t[A];if(0===e||e===n)return!0}return!1}isThreefoldRepetition(){return this._getPositionCount(this._hash)>=3}isDrawByFiftyMoves(){return this._halfMoves>=100}isDraw(){return this.isDrawByFiftyMoves()||this.isStalemate()||this.isInsufficientMaterial()||this.isThreefoldRepetition()}isGameOver(){return this.isCheckmate()||this.isDraw()}moves({verbose:e=!1,square:t,piece:n}={}){const A=this._moves({square:t,piece:n});return e?A.map(e=>new Dn(this,e)):A.map(e=>this._moveToSan(e,A))}_moves({legal:e=!0,piece:t,square:n}={}){const A=n?n.toLowerCase():void 0,o=t?.toLowerCase(),r=[],i=this._turn,s=eA(i);let a=On.a8,c=On.h1,l=!1;if(A){if(!(A in On))return[];a=c=On[A],l=!0}for(let e=a;e<=c;e++){if(136&e){e+=7;continue}if(!this._board[e]||this._board[e].color===s)continue;const{type:t}=this._board[e];let n;if(t===En){if(o&&o!==t)continue;n=e+qn[i][0],this._board[n]||(nA(r,i,e,n,En),n=e+qn[i][1],Wn[i]!==_n(e)||this._board[n]||nA(r,i,e,n,En,void 0,jn.BIG_PAWN));for(let t=2;t<4;t++)n=e+qn[i][t],136&n||(this._board[n]?.color===s?nA(r,i,e,n,En,this._board[n].type,jn.CAPTURE):n===this._epSquare&&nA(r,i,e,n,En,En,jn.EP_CAPTURE))}else{if(o&&o!==t)continue;for(let A=0,o=Jn[t].length;A<o;A++){const o=Jn[t][A];for(n=e;n+=o,!(136&n);){if(this._board[n]){if(this._board[n].color===i)break;nA(r,i,e,n,t,this._board[n].type,jn.CAPTURE);break}if(nA(r,i,e,n,t),"n"===t||t===xn)break}}}}if(!(void 0!==o&&o!==xn||l&&c!==this._kings[i])){if(this._castling[i]&jn.KSIDE_CASTLE){const e=this._kings[i],t=e+2;this._board[e+1]||this._board[t]||this._attacked(s,this._kings[i])||this._attacked(s,e+1)||this._attacked(s,t)||nA(r,i,this._kings[i],t,xn,void 0,jn.KSIDE_CASTLE)}if(this._castling[i]&jn.QSIDE_CASTLE){const e=this._kings[i],t=e-2;this._board[e-1]||this._board[e-2]||this._board[e-3]||this._attacked(s,this._kings[i])||this._attacked(s,e-1)||this._attacked(s,t)||nA(r,i,this._kings[i],t,xn,void 0,jn.QSIDE_CASTLE)}}if(!e||-1===this._kings[i])return r;const u=[];for(let e=0,t=r.length;e<t;e++)this._makeMove(r[e]),this._isKingAttacked(i)||u.push(r[e]),this._undoMove();return u}move(e,{strict:t=!1}={}){let n=null;if("string"==typeof e)n=this._moveFromSan(e,t);else if(null===e)n=this._moveFromSan(Yn,t);else if("object"==typeof e){const t=this._moves();for(let A=0,o=t.length;A<o;A++)if(e.from===$n(t[A].from)&&e.to===$n(t[A].to)&&(!("promotion"in t[A])||e.promotion===t[A].promotion)){n=t[A];break}}if(!n)throw"string"==typeof e?new Error(`Invalid move: ${e}`):new Error(`Invalid move: ${JSON.stringify(e)}`);if(this.isCheck()&&n.flags&jn.NULL_MOVE)throw new Error("Null move not allowed when in check");const A=new Dn(this,n);return this._makeMove(n),this._incPositionCount(),A}_push(e){this._history.push({move:e,kings:{b:this._kings.b,w:this._kings.w},turn:this._turn,castling:{b:this._castling.b,w:this._castling.w},epSquare:this._epSquare,halfMoves:this._halfMoves,moveNumber:this._moveNumber})}_movePiece(e,t){this._hash^=this._pieceKey(e),this._board[t]=this._board[e],delete this._board[e],this._hash^=this._pieceKey(t)}_makeMove(e){const t=this._turn,n=eA(t);if(this._push(e),e.flags&jn.NULL_MOVE)return t===Sn&&this._moveNumber++,this._halfMoves++,this._turn=n,void(this._epSquare=Tn);if(this._hash^=this._epKey(),this._hash^=this._castlingKey(),e.captured&&(this._hash^=this._pieceKey(e.to)),this._movePiece(e.from,e.to),e.flags&jn.EP_CAPTURE&&(this._turn===Sn?this._clear(e.to-16):this._clear(e.to+16)),e.promotion&&(this._clear(e.to),this._set(e.to,{type:e.promotion,color:t})),this._board[e.to].type===xn){if(this._kings[t]=e.to,e.flags&jn.KSIDE_CASTLE){const t=e.to-1,n=e.to+1;this._movePiece(n,t)}else if(e.flags&jn.QSIDE_CASTLE){const t=e.to+1,n=e.to-2;this._movePiece(n,t)}this._castling[t]=0}if(this._castling[t])for(let n=0,A=zn[t].length;n<A;n++)if(e.from===zn[t][n].square&&this._castling[t]&zn[t][n].flag){this._castling[t]^=zn[t][n].flag;break}if(this._castling[n])for(let t=0,A=zn[n].length;t<A;t++)if(e.to===zn[n][t].square&&this._castling[n]&zn[n][t].flag){this._castling[n]^=zn[n][t].flag;break}if(this._hash^=this._castlingKey(),e.flags&jn.BIG_PAWN){let A;A=t===Sn?e.to-16:e.to+16,(e.to-1&136||this._board[e.to-1]?.type!==En||this._board[e.to-1]?.color!==n)&&(e.to+1&136||this._board[e.to+1]?.type!==En||this._board[e.to+1]?.color!==n)?this._epSquare=Tn:(this._epSquare=A,this._hash^=this._epKey())}else this._epSquare=Tn;e.piece===En||e.flags&(jn.CAPTURE|jn.EP_CAPTURE)?this._halfMoves=0:this._halfMoves++,t===Sn&&this._moveNumber++,this._turn=n,this._hash^=Cn}undo(){const e=this._hash,t=this._undoMove();if(t){const n=new Dn(this,t);return this._decPositionCount(e),n}return null}_undoMove(){const e=this._history.pop();if(void 0===e)return null;this._hash^=this._epKey(),this._hash^=this._castlingKey();const t=e.move;this._kings=e.kings,this._turn=e.turn,this._castling=e.castling,this._epSquare=e.epSquare,this._halfMoves=e.halfMoves,this._moveNumber=e.moveNumber,this._hash^=this._epKey(),this._hash^=this._castlingKey(),this._hash^=Cn;const n=this._turn,A=eA(n);if(t.flags&jn.NULL_MOVE)return t;if(this._movePiece(t.to,t.from),t.piece&&(this._clear(t.from),this._set(t.from,{type:t.piece,color:n})),t.captured)if(t.flags&jn.EP_CAPTURE){let e;e=n===Sn?t.to-16:t.to+16,this._set(e,{type:En,color:A})}else this._set(t.to,{type:t.captured,color:A});if(t.flags&(jn.KSIDE_CASTLE|jn.QSIDE_CASTLE)){let e,n;t.flags&jn.KSIDE_CASTLE?(e=t.to+1,n=t.to-1):(e=t.to-2,n=t.to+1),this._movePiece(n,e)}return t}pgn({newline:e="\n",maxWidth:t=0}={}){const n=[];let A=!1;for(const t in this._header){this._header[t]&&n.push(`[${t} "${this._header[t]}"]`+e),A=!0}A&&this._history.length&&n.push(e);const o=e=>{const t=this._comments[this.fen()];if(void 0!==t){e=`${e}${e.length>0?" ":""}{${t}}`}return e},r=[];for(;this._history.length>0;)r.push(this._undoMove());const i=[];let s="";for(0===r.length&&i.push(o(""));r.length>0;){s=o(s);const e=r.pop();if(!e)break;if(this._history.length||"b"!==e.color)"w"===e.color&&(s.length&&i.push(s),s=this._moveNumber+".");else{const e=`${this._moveNumber}. ...`;s=s?`${s} ${e}`:e}s=s+" "+this._moveToSan(e,this._moves({legal:!0})),this._makeMove(e)}if(s.length&&i.push(o(s)),i.push(this._header.Result||"*"),0===t)return n.join("")+i.join(" ");const a=function(){return n.length>0&&" "===n[n.length-1]&&(n.pop(),!0)},c=function(A,o){for(const r of o.split(" "))if(r){if(A+r.length>t){for(;a();)A--;n.push(e),A=0}n.push(r),A+=r.length,n.push(" "),A++}return a()&&A--,A};let l=0;for(let A=0;A<i.length;A++)l+i[A].length>t&&i[A].includes("{")?l=c(l,i[A]):(l+i[A].length>t&&0!==A?(" "===n[n.length-1]&&n.pop(),n.push(e),l=0):0!==A&&(n.push(" "),l++),n.push(i[A]),l+=i[A].length);return n.join("")}header(...e){for(let t=0;t<e.length;t+=2)"string"==typeof e[t]&&"string"==typeof e[t+1]&&(this._header[e[t]]=e[t+1]);return this._header}setHeader(e,t){return this._header[e]=t??Pn[e]??null,this.getHeaders()}removeHeader(e){return e in this._header&&(this._header[e]=Pn[e]||null,!0)}getHeaders(){const e={};for(const[t,n]of Object.entries(this._header))null!==n&&(e[t]=n);return e}loadPgn(e,{strict:t=!1,newlineChar:n="\r?\n"}={}){"\r?\n"!==n&&(e=e.replace(new RegExp(n,"g"),"\n"));const A=gn(e);this.reset();const o=A.headers;let r="";for(const e in o)"fen"===e.toLowerCase()&&(r=o[e]),this.header(e,o[e]);if(t){if("1"===o.SetUp){if(!("FEN"in o))throw new Error("Invalid PGN: FEN tag must be supplied with SetUp tag");this.load(o.FEN,{preserveHeaders:!0})}}else r&&this.load(r,{preserveHeaders:!0});let i=A.root;for(;i;){if(i.move){const e=this._moveFromSan(i.move,t);if(null==e)throw new Error(`Invalid move in PGN: ${i.move}`);this._makeMove(e),this._incPositionCount()}void 0!==i.comment&&(this._comments[this.fen()]=i.comment),i=i.variations[0]}const s=A.result;s&&Object.keys(this._header).length&&this._header.Result!==s&&this.setHeader("Result",s)}_moveToSan(e,t){let n="";if(e.flags&jn.KSIDE_CASTLE)n="O-O";else if(e.flags&jn.QSIDE_CASTLE)n="O-O-O";else{if(e.flags&jn.NULL_MOVE)return Yn;if(e.piece!==En){const A=function(e,t){const n=e.from,A=e.to,o=e.piece;let r=0,i=0,s=0;for(let e=0,a=t.length;e<a;e++){const a=t[e].from,c=t[e].to;o===t[e].piece&&n!==a&&A===c&&(r++,_n(n)===_n(a)&&i++,Hn(n)===Hn(a)&&s++)}return r>0?i>0&&s>0?$n(n):s>0?$n(n).charAt(1):$n(n).charAt(0):""}(e,t);n+=e.piece.toUpperCase()+A}e.flags&(jn.CAPTURE|jn.EP_CAPTURE)&&(e.piece===En&&(n+=$n(e.from)[0]),n+="x"),n+=$n(e.to),e.promotion&&(n+="="+e.promotion.toUpperCase())}return this._makeMove(e),this.isCheck()&&(this.isCheckmate()?n+="#":n+="+"),this._undoMove(),n}_moveFromSan(e,t=!1){let n=oA(e);if(t||("0-0"===n?n="O-O":"0-0-0"===n&&(n="O-O-O")),n==Yn){return{color:this._turn,from:0,to:0,piece:"k",flags:jn.NULL_MOVE}}let A,o,r,i,s,a=AA(n),c=this._moves({legal:!0,piece:a});for(let e=0,t=c.length;e<t;e++)if(n===oA(this._moveToSan(c[e],c)))return c[e];if(t)return null;let l=!1;if(o=n.match(/([pnbrqkPNBRQK])?([a-h][1-8])x?-?([a-h][1-8])([qrbnQRBN])?/),o?(A=o[1],r=o[2],i=o[3],s=o[4],1==r.length&&(l=!0)):(o=n.match(/([pnbrqkPNBRQK])?([a-h]?[1-8]?)x?-?([a-h][1-8])([qrbnQRBN])?/),o&&(A=o[1],r=o[2],i=o[3],s=o[4],1==r.length&&(l=!0))),a=AA(n),c=this._moves({legal:!0,piece:A||a}),!i)return null;for(let e=0,t=c.length;e<t;e++)if(r){if(!(A&&A.toLowerCase()!=c[e].piece||On[r]!=c[e].from||On[i]!=c[e].to||s&&s.toLowerCase()!=c[e].promotion))return c[e];if(l){const t=$n(c[e].from);if(!(A&&A.toLowerCase()!=c[e].piece||On[i]!=c[e].to||r!=t[0]&&r!=t[1]||s&&s.toLowerCase()!=c[e].promotion))return c[e]}}else if(n===oA(this._moveToSan(c[e],c)).replace("x",""))return c[e];return null}ascii(){let e=" +------------------------+\n";for(let t=On.a8;t<=On.h1;t++){if(0===Hn(t)&&(e+=" "+"87654321"[_n(t)]+" |"),this._board[t]){const n=this._board[t].type;e+=" "+(this._board[t].color===vn?n.toUpperCase():n.toLowerCase())+" "}else e+=" . ";t+1&136&&(e+="|\n",t+=8)}return e+=" +------------------------+\n",e+=" a b c d e f g h",e}perft(e){const t=this._moves({legal:!1});let n=0;const A=this._turn;for(let o=0,r=t.length;o<r;o++)this._makeMove(t[o]),this._isKingAttacked(A)||(e-1>0?n+=this.perft(e-1):n++),this._undoMove();return n}setTurn(e){return this._turn!=e&&(this.move("--"),!0)}turn(){return this._turn}board(){const e=[];let t=[];for(let n=On.a8;n<=On.h1;n++)null==this._board[n]?t.push(null):t.push({square:$n(n),type:this._board[n].type,color:this._board[n].color}),n+1&136&&(e.push(t),t=[],n+=8);return e}squareColor(e){if(e in On){const t=On[e];return(_n(t)+Hn(t))%2==0?"light":"dark"}return null}history({verbose:e=!1}={}){const t=[],n=[];for(;this._history.length>0;)t.push(this._undoMove());for(;;){const A=t.pop();if(!A)break;e?n.push(new Dn(this,A)):n.push(this._moveToSan(A,this._moves())),this._makeMove(A)}return n}_getPositionCount(e){return this._positionCount.get(e)??0}_incPositionCount(){this._positionCount.set(this._hash,(this._positionCount.get(this._hash)??0)+1)}_decPositionCount(e){const t=this._positionCount.get(e)??0;1===t?this._positionCount.delete(e):this._positionCount.set(e,t-1)}_pruneComments(){const e=[],t={},n=e=>{e in this._comments&&(t[e]=this._comments[e])};for(;this._history.length>0;)e.push(this._undoMove());for(n(this.fen());;){const t=e.pop();if(!t)break;this._makeMove(t),n(this.fen())}this._comments=t}getComment(){return this._comments[this.fen()]}setComment(e){this._comments[this.fen()]=e.replace("{","[").replace("}","]")}deleteComment(){return this.removeComment()}removeComment(){const e=this._comments[this.fen()];return delete this._comments[this.fen()],e}getComments(){return this._pruneComments(),Object.keys(this._comments).map(e=>({fen:e,comment:this._comments[e]}))}deleteComments(){return this.removeComments()}removeComments(){return this._pruneComments(),Object.keys(this._comments).map(e=>{const t=this._comments[e];return delete this._comments[e],{fen:e,comment:t}})}setCastlingRights(e,t){for(const n of[xn,Mn])void 0!==t[n]&&(t[n]?this._castling[e]|=Ln[n]:this._castling[e]&=~Ln[n]);this._updateCastlingRights();const n=this.getCastlingRights(e);return!(void 0!==t[xn]&&t[xn]!==n[xn]||void 0!==t[Mn]&&t[Mn]!==n[Mn])}getCastlingRights(e){return{[xn]:0!==(this._castling[e]&Ln[xn]),[Mn]:0!==(this._castling[e]&Ln[Mn])}}moveNumber(){return this._moveNumber}}const iA={initial:"rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1",empty:"8/8/8/8/8/8/8/8 w - - 0 1"},sA=iA.initial,aA={fen:iA,initialFen:sA,emptyFen:iA.empty},cA=e=>{const[t,n]=r(e.fen||sA),[A,o]=r(new rA(t));s(()=>{e.fen&&(n(e.fen),o(new rA(e.fen)),a([]))},[e.fen,e.reset]);const[i,a]=r([]),c=e.lastMove&&e.lastMove.promotion,l="w"===A.turn()?"white":"black",[u]=r(e.orientation||l),h=(e,t,o)=>{a([e,t]);try{const r=A.move({from:e,to:t,promotion:o});return n(A.fen()),r}catch{return!1}};return{chess:A,fen:t,turnColor:l,lastMove:i,orientation:u,promotion:c,onMove:h,onPromote:e=>h(i[0],i[1],e),onUndo:()=>{const e=A.undo();return e?(n(A.fen()),a([]),e):null}}};var lA=f(function(e,t){e.exports=((e,t)=>(()=>{var n={494:()=>{},156:t=>{t.exports=e},111:e=>{e.exports=t}},A={};function o(e){var t=A[e];if(void 0!==t)return t.exports;var r=A[e]={exports:{}};return n[e](r,r.exports,o),r.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};return(()=>{o.r(r),o.d(r,{default:()=>a});var e=o(156),t=o.n(e),n=o(111);function A(e){const{children:n,replace:A,bodyClass:o,header:r,footer:i,onDragStart:s,onDragEnd:a,onClose:c,closeButton:l,closeButtonPosition:u}=e;return A?n:t().createElement("div",{className:"panel panel-default "+("bottom"===u?"additional-row":"")},t().createElement("div",{className:"panel-heading",onTouchStart:s,onMouseDown:s,onTouchEnd:a,onMouseUp:a},r&&t().createElement("h3",{className:"panel-title"},r)),t().createElement("div",{className:o},n),i&&t().createElement("div",{className:"panel-footer"},i),t().createElement("div",{className:"close",onClick:c,style:{position:"header"===u?"absolute":"static",margin:"bottom"===u?"10px auto":""}},l))}A.defaultProps={closeButton:"×",closeButtonPosition:"header",replace:!1,draggable:!1};const i=A;function s(A){let o=Math.random().toString();const[r,s]=(0,e.useState)(!1),[a,c]=(0,e.useState)(null),[l,u]=(0,e.useState)(null),[h,p]=(0,e.useState)(0),[g,d]=(0,e.useState)(0),[m,f]=(0,e.useState)(0),[b,y]=(0,e.useState)(0),{isOpen:I,onClose:k}=A,w=(0,e.useCallback)(()=>{document.body.classList.remove("body-modal-fix")},[]);(0,e.useEffect)(()=>(I&&(document.addEventListener("keydown",C),document.activeElement instanceof HTMLElement&&document.activeElement.blur(),document.body.classList.add("body-modal-fix")),()=>{document.querySelector(".pure-modal")||(document.removeEventListener("keydown",C),w(),c(null),u(null),p(0),d(0),f(0),y(0))}),[I]);const C=(0,e.useCallback)(e=>{const t=document.querySelectorAll(".pure-modal"),n=t.length>1,A=t[t.length-1];return!(n&&!A.className.includes(o)||"Escape"!==e.key||!document.activeElement||(v(e),0))},[v,o]);if(!I)return null;function v(e){e&&(e.stopPropagation(),e.preventDefault()),null==k||k({isPassive:Boolean(e)})}function S(e){return e instanceof TouchEvent&&e.changedTouches.length>0?{pageX:e.changedTouches[0].pageX,pageY:e.changedTouches[0].pageY}:e instanceof MouseEvent?{pageX:e.pageX,pageY:e.pageY}:{pageX:0,pageY:0}}function E(e){if(e instanceof TouchEvent&&e.changedTouches&&e.changedTouches.length>1)return V();e.preventDefault();const{pageX:t,pageY:n}=S(e);"number"==typeof a&&"number"==typeof l&&(p(t-a-m),d(n-l-b))}function V(){return s(!1)}const{children:N,replace:M=!1,className:x,header:B,footer:D,scrollable:T=!0,draggable:Q=!1,width:Z,closeButton:j,closeButtonPosition:P,portal:U=!1}=A;let O=["pure-modal-backdrop"],q=["pure-modal",o],J=["panel-body"];x&&(q=q.concat(x)),T?J=J.concat("scrollable"):(O=O.concat("scrollable"),q=q.concat("auto-height")),Q&&(O=O.concat("backdrop-overflow-hidden"));const K=t().createElement("div",{className:O.join(" "),onMouseDown:function(e){if(e){if(!e.target.classList.contains("pure-modal-backdrop"))return;e.stopPropagation(),e.preventDefault()}v(e)},onTouchMove:r?E:void 0,onMouseMove:r?E:void 0},t().createElement("div",{className:q.join(" "),style:{transform:`translate(${h}px, ${g}px)`,transition:"none",width:Z}},t().createElement(i,{replace:M,header:B,footer:D,onDragStart:Q?function(e){if(e instanceof TouchEvent&&e.changedTouches&&e.changedTouches.length>1)return;e.preventDefault();const{pageX:t,pageY:n}=S(e),{top:A,left:o}=e.currentTarget.getBoundingClientRect();s(!0),c("number"==typeof a?a:o),u("number"==typeof l?l:A),f(t-o),y(n-A)}:void 0,onDragEnd:Q?V:void 0,onClose:v,bodyClass:J.join(" "),closeButton:j,closeButtonPosition:P},N)));return U?(0,n.createPortal)(K,document.body):K}o(494);const a=t().memo(s)})(),r})())(A,h)}),uA=m(lA);const hA=({role:t,color:n,highlighted:A,selectPiece:o})=>{const r="bin"===t;return e("div",{className:I("edit-square border border-gray-300 rounded",A&&"bg-orange-300"),children:e("piece",{className:I("spare-piece",t,n,r&&"next-trash"),onClick:()=>{"function"==typeof o&&o({role:t,color:n})}})})},pA=({isOpen:n,hide:A,onPromote:o,color:r="white"})=>{const i=e=>{o(e),A()};return e(uA,{closeButton:"",isOpen:n,onClose:A,children:t("div",{className:"promote flex gap-2 py-1.5 justify-center",children:[e(hA,{color:r,role:"queen",selectPiece:()=>i("q")}),e(hA,{color:r,role:"rook",selectPiece:()=>i("r")}),e(hA,{color:r,role:"bishop",selectPiece:()=>i("b")}),e(hA,{color:r,role:"knight",selectPiece:()=>i("n")})]})})},gA=(e=!1)=>{const[t,n]=r(e);return{isOpen:t,show:()=>{n(!0)},hide:()=>{n(!1)},toggle:()=>{n(!t)}}};var dA="object"==typeof global&&global&&global.Object===Object&&global,mA="object"==typeof self&&self&&self.Object===Object&&self,fA=dA||mA||Function("return this")(),bA=fA.Symbol,yA=Object.prototype,IA=yA.hasOwnProperty,kA=yA.toString,wA=bA?bA.toStringTag:void 0;var CA=Object.prototype.toString;var vA=bA?bA.toStringTag:void 0;function SA(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":vA&&vA in Object(e)?function(e){var t=IA.call(e,wA),n=e[wA];try{e[wA]=void 0;var A=!0}catch(e){}var o=kA.call(e);return A&&(t?e[wA]=n:delete e[wA]),o}(e):function(e){return CA.call(e)}(e)}function EA(e){return null!=e&&"object"==typeof e}var VA=Array.isArray;function NA(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function MA(e){if(!NA(e))return!1;var t=SA(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}var xA,BA=fA["__core-js_shared__"],DA=(xA=/[^.]+$/.exec(BA&&BA.keys&&BA.keys.IE_PROTO||""))?"Symbol(src)_1."+xA:"";var TA=Function.prototype.toString;function QA(e){if(null!=e){try{return TA.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var ZA=/^\[object .+?Constructor\]$/,jA=Function.prototype,PA=Object.prototype,UA=jA.toString,OA=PA.hasOwnProperty,qA=RegExp("^"+UA.call(OA).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function JA(e){return!(!NA(e)||(t=e,DA&&DA in t))&&(MA(e)?qA:ZA).test(QA(e));var t}function KA(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return JA(n)?n:void 0}var GA=KA(fA,"WeakMap");function RA(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}var FA=Object.prototype;function LA(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||FA)}function zA(e){return EA(e)&&"[object Arguments]"==SA(e)}var WA=Object.prototype,YA=WA.hasOwnProperty,_A=WA.propertyIsEnumerable,HA=zA(function(){return arguments}())?zA:function(e){return EA(e)&&YA.call(e,"callee")&&!_A.call(e,"callee")};var XA="object"==typeof exports&&exports&&!exports.nodeType&&exports,$A=XA&&"object"==typeof module&&module&&!module.nodeType&&module,eo=$A&&$A.exports===XA?fA.Buffer:void 0,to=(eo?eo.isBuffer:void 0)||function(){return!1},no={};no["[object Float32Array]"]=no["[object Float64Array]"]=no["[object Int8Array]"]=no["[object Int16Array]"]=no["[object Int32Array]"]=no["[object Uint8Array]"]=no["[object Uint8ClampedArray]"]=no["[object Uint16Array]"]=no["[object Uint32Array]"]=!0,no["[object Arguments]"]=no["[object Array]"]=no["[object ArrayBuffer]"]=no["[object Boolean]"]=no["[object DataView]"]=no["[object Date]"]=no["[object Error]"]=no["[object Function]"]=no["[object Map]"]=no["[object Number]"]=no["[object Object]"]=no["[object RegExp]"]=no["[object Set]"]=no["[object String]"]=no["[object WeakMap]"]=!1;var Ao,oo="object"==typeof exports&&exports&&!exports.nodeType&&exports,ro=oo&&"object"==typeof module&&module&&!module.nodeType&&module,io=ro&&ro.exports===oo&&dA.process,so=function(){try{var e=ro&&ro.require&&ro.require("util").types;return e||io&&io.binding&&io.binding("util")}catch(e){}}(),ao=so&&so.isTypedArray,co=ao?(Ao=ao,function(e){return Ao(e)}):function(e){return EA(e)&&RA(e.length)&&!!no[SA(e)]};var lo=function(e,t){return function(n){return e(t(n))}}(Object.keys,Object),uo=lo,ho=Object.prototype.hasOwnProperty;var po=KA(fA,"Map"),go=KA(fA,"DataView"),mo=KA(fA,"Promise"),fo=KA(fA,"Set"),bo="[object Map]",yo="[object Promise]",Io="[object Set]",ko="[object WeakMap]",wo="[object DataView]",Co=QA(go),vo=QA(po),So=QA(mo),Eo=QA(fo),Vo=QA(GA),No=SA;(go&&No(new go(new ArrayBuffer(1)))!=wo||po&&No(new po)!=bo||mo&&No(mo.resolve())!=yo||fo&&No(new fo)!=Io||GA&&No(new GA)!=ko)&&(No=function(e){var t=SA(e),n="[object Object]"==t?e.constructor:void 0,A=n?QA(n):"";if(A)switch(A){case Co:return wo;case vo:return bo;case So:return yo;case Eo:return Io;case Vo:return ko}return t});var Mo=No,xo=Object.prototype.hasOwnProperty;function Bo(e){if(null==e)return!0;if(function(e){return null!=e&&RA(e.length)&&!MA(e)}(e)&&(VA(e)||"string"==typeof e||"function"==typeof e.splice||to(e)||co(e)||HA(e)))return!e.length;var t=Mo(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(LA(e))return!function(e){if(!LA(e))return uo(e);var t=[];for(var n in Object(e))ho.call(e,n)&&"constructor"!=n&&t.push(n);return t}(e).length;for(var n in e)if(xo.call(e,n))return!1;return!0}const Do=e=>{const t={};e.orientation&&(t.orientation=e.orientation,"w"===t.orientation&&(t.orientation="white"),"b"===t.orientation&&(t.orientation="black"));const n=["shapes","onSelect","drawable","lastMove"];for(const A of n)e[A]&&!Bo(e[A])&&(t[A]=e[A]);return!1===e.drawable&&(t.drawable={enabled:!1}),t.shapes&&(t.shapes=(e=>{try{return e.forEach(e=>{e.dest=e.dest.replace(/\]/g,"")}),e}catch{return e}})(t.shapes)),e.editing&&(t.movable={free:!1},t.drawable={enabled:!1}),e.viewOnly&&(t.draggable=!1,t.movable={free:!1},t.drawable={enabled:!1}),e.readOnly&&(t.draggable=!1,t.movable={free:!1},t.drawable={enabled:!1},t.coordinates=!1),t},To=e=>tA(e)&&(e=>{if(!e)return!1;const t=e.split(" ")[0];return 1===(t.match(/k/g)||[]).length&&1===(t.match(/K/g)||[]).length})(e),Qo=(e,t,n=!1)=>{if(!To(e.fen()))return{free:!1};const A=new Map,o="w"===e.turn()?"white":"black";Zn.forEach(t=>{const n=e.moves({square:t,verbose:!0});n.length&&A.set(t,n.map(e=>e.to))});const r={color:o,dests:A,free:!1};return n&&t&&t!==o&&(r.color=t,r.dests=new Map),r},Zo=(n,A)=>{const{theme:o}=un(),{isOpen:r,show:i,hide:l}=gA(),{chess:h,fen:p,turnColor:g,lastMove:d,orientation:m,promotion:f,onMove:b,onPromote:y,onUndo:k}=cA(n),w=async(e,t,A)=>b(e,t,A||f)?(o.playSounds&&ln(o.sounds),"function"==typeof n.onMove&&await n.onMove(h),!0):(A||i(),!1),{onSetPremove:C,onUnsetPremove:v,onPlayPremove:S,onCancelPremove:E,onPremovePromotion:V}=(e=>{const t=a(null),n=c((e,n,A)=>{t.current={orig:e,dest:n,promotion:A?.promotion||null}},[]),A=c(()=>{t.current=null},[]),o=c(()=>"q",[]);return{onSetPremove:n,onUnsetPremove:A,onPlayPremove:c(async()=>{if(t.current){const{orig:n,dest:A,promotion:o}=t.current,r={orig:n,dest:A,promotion:o};t.current=null;const i=r.promotion||"q";return await e(r.orig,r.dest,i)}return!1},[e]),onCancelPremove:c(()=>!!t.current&&(t.current=null,!0),[]),onPremovePromotion:o}})(w),N=a();u(A,()=>({board:N.current?.board,undo:k,move:b,playPremove:S,cancelPremove:E}));s(()=>{"function"==typeof n.setPromoting&&n.setPromoting(r)},[r]),s(()=>{"function"==typeof n.onFenChange&&n.onFenChange(p)},[p]);const M=n.premoves?{enabled:!0,showDests:!0,castle:!0,events:{set:C,unset:v},promote:V}:{enabled:!1};return t("div",{className:I("chessground",o.highlight&&"highlight",o.board,o.pieces),children:[e(an,{ref:N,coordinates:o.coordinates,onMove:w,fen:p,turnColor:g,lastMove:d,orientation:m,movable:Qo(h,m,n.premoves),premovable:M,...Do(n)}),e(pA,{isOpen:r,hide:l,color:g,onPromote:async e=>{if(!y(e))return!1;o.playSounds&&ln(o.sounds),"function"==typeof n.onMove&&await n.onMove(h)}})]})};var jo=l(Zo);const Po=e=>{try{return"w"===e.split(" ")[1]?"white":"black"}catch{return"white"}},Uo=e=>{const[t,n]=r((e=>{try{return e.orientation?e.orientation:e.fen?Po(e.fen):"white"}catch{return"white"}})(e));return s(()=>{e.reset&&n(Po(e.fen))},[e.reset]),[t,()=>{n(e=>"white"===e?"black":"white")}]},Oo=()=>{const{theme:A,handleChange:o}=un();return t(n,{children:[e("div",{children:"Board"}),t("select",{name:"board",className:"bg-white border border-gray-300 px-2 py-1.5 w-full text-gray-800 rounded",defaultValue:A.board,onChange:o,children:[e("option",{value:"green",children:"Green"}),e("option",{value:"brown",children:"Brown"}),e("option",{value:"ruby",children:"Ruby"}),e("option",{value:"purple",children:"Purple"}),e("option",{value:"teal",children:"Teal"})]})]})},qo=()=>{const{theme:A,handleChecked:o}=un();return t(n,{children:[e("div",{children:"Coordinates"}),e("div",{className:"flex",children:e("input",{name:"coordinates",type:"checkbox",className:"checkbox rounded border border-gray-300",defaultChecked:A.coordinates,onChange:o})})]})},Jo=()=>{const{theme:A,handleChecked:o}=un();return t(n,{children:[e("div",{children:"Highlight moves"}),e("div",{className:"flex",children:e("input",{name:"highlight",type:"checkbox",className:"checkbox rounded border border-gray-300",defaultChecked:A.highlight,onChange:o})})]})},Ko=()=>{const{theme:A,handleChange:o}=un();return t(n,{children:[e("div",{children:"Pieces"}),t("select",{name:"pieces",className:"bg-white border border-gray-300 px-2 py-1.5 w-full text-gray-800 rounded",defaultValue:A.pieces,onChange:o,children:[e("option",{value:"cburnett",children:"Cburnett"}),e("option",{value:"neo",children:"Neo"}),e("option",{value:"alpha",children:"Alpha"}),e("option",{value:"bases",children:"Bases"}),e("option",{value:"classic",children:"Classic"})]})]})},Go=()=>{const{theme:A,handleChecked:o}=un();return t(n,{children:[e("div",{children:"Play sounds"}),e("div",{className:"flex",children:e("input",{name:"playSounds",type:"checkbox",className:"checkbox rounded border border-gray-300",defaultChecked:A.playSounds,onChange:o})})]})},Ro=()=>{const{theme:A,handleChange:o}=un();return t(n,{children:[e("div",{children:"Sounds"}),t("select",{name:"sounds",className:"bg-white border border-gray-300 px-2 py-1.5 w-full text-gray-800 rounded",defaultValue:A.sounds,onChange:o,children:[e("option",{value:"robot",children:"Robot"}),e("option",{value:"piano",children:"Piano"}),e("option",{value:"lisp",children:"Lisp"}),e("option",{value:"sfx",children:"SFX"})]})]})},Fo=()=>{const{isOpen:A,show:o,hide:r}=gA();return t(n,{children:[e("button",{type:"button",className:"next-button next-settings",title:"Settings",onClick:o,children:e("i",{className:"next-cog"})}),e(uA,{header:"Settings",isOpen:A,onClose:r,children:t("div",{className:"grid grid-cols-2 gap-3 items-center text-sm",children:[e(Ko,{}),e(Oo,{}),e(Jo,{}),e(Go,{}),e(Ro,{}),e(qo,{})]})})]})},Lo=t=>e("button",{type:"button",className:"next-button next-flip",title:"Flip board",...t,children:e("i",{className:"next-sync"})}),zo=({flip:n,readOnly:A})=>A?null:t("div",{className:"chessground-footer text-gray-400 flex flex-row-reverse gap-2 py-1.5",children:[e(Fo,{}),e(Lo,{onClick:n})]});var Wo=l((n,A)=>{const[o,r]=Uo(n);return e(y,{children:t("div",{className:"next-chessground",children:[e(jo,{...n,ref:A,orientation:o}),e(zo,{flip:r,readOnly:n.readOnly})]})})});const Yo=t=>{const{theme:n}=un();return e("div",{className:I("spare-pieces flex gap-2",n.pieces),children:["bin","pawn","knight","bishop","rook","queen","king"].map(n=>((t,n)=>{const{color:A="white",selected:o={role:null,color:null}}=n,r=t===o.role&&A===o.color;return e(hA,{highlighted:r,role:t,color:A,...n},`${t}-${A}`)})(n,t))})},_o=e=>{const t=new Map;return t.set(e,null),t},Ho=({onChange:n})=>{const[A,o]=r("w"),[i,a]=r("-");s(()=>{"function"==typeof n&&n([A,i].join(" "))},[A,i]);const c=e=>{const{value:t}=e.target;o(t)},l=e=>{const{value:t}=e.target;a(((e,t)=>{if(!t)return e;const n=["K","Q","k","q"].map(n=>n!==t?e.includes(n)?n:"":e.includes(t)?"":t).join("");return n.length?n:"-"})(i,t))};return t("div",{className:"flex flex-col gap-2 w-full",children:[t("div",{className:"flex gap-2 w-full",children:[t("div",{children:[e("input",{defaultChecked:!0,className:"mx-1",type:"radio",id:"white-radio",name:"side-to-move",value:"w",onChange:c}),e("label",{htmlFor:"white-radio",children:"White to move"})]}),t("div",{children:[e("input",{className:"mx-1",type:"radio",id:"black-radio",name:"side-to-move",value:"b",onChange:c}),e("label",{htmlFor:"black-radio",children:"Black to move"})]})]}),t("div",{className:"flex flex-col gap-2 w-full",children:[t("div",{className:"flex w-full gap-4",children:[e("div",{children:e("span",{children:"White can"})}),t("div",{children:[e("input",{className:"mx-1",type:"checkbox",id:"white-short-castle",value:"K",onChange:l}),e("label",{htmlFor:"white-short-castle",children:"O-O"})]}),t("div",{children:[e("input",{className:"mx-1",type:"checkbox",id:"white-long-castle",value:"Q",onChange:l}),e("label",{htmlFor:"white-long-castle",children:"O-O-O"})]})]}),t("div",{className:"flex w-full gap-4",children:[e("div",{children:e("span",{children:"Black can"})}),t("div",{children:[e("input",{className:"mx-1",type:"checkbox",id:"black-short-castle",value:"k",onChange:l}),e("label",{htmlFor:"black-short-castle",children:"O-O"})]}),t("div",{children:[e("input",{className:"mx-1",type:"checkbox",id:"black-long-castle",value:"q",onChange:l}),e("label",{htmlFor:"black-long-castle",children:"O-O-O"})]})]})]})]})},Xo=(n,A)=>{const[o,i]=r(n.fen||aA.emptyFen),[a,c]=r({role:null,color:null});s(()=>{n.fen&&i(n.fen)},[n.fen]),s(()=>{"function"==typeof n.onSelect&&n.onSelect(o)},[o]);return e(y,{children:t("div",{className:"next-chessground gap-2",children:[e(Yo,{selected:a,selectPiece:c,color:"black"}),e(jo,{...n,ref:A,fen:o,onSelect:e=>{const t=o.split(" ");t.shift();const n=t.join(" "),r=((e,t,n)=>{if(!e)throw new Error("Chessground is not defined");if(!t||!t.role||!t.color)return e.getFen();if("bin"===t.role)return e.setPieces(_o(n)),e.getFen();const A=e.state.pieces.get(n);return A?A.role===t.role&&A.color===t.color?(e.setPieces(_o(n)),e.getFen()):(e.setPieces(_o(n)),e.newPiece(t,n),e.getFen()):(e.newPiece(t,n),e.getFen())})(A.current.board,a,e),s=[r,n].join(" ");i(s)},editing:!0}),e(Yo,{selected:a,selectPiece:c,color:"white"}),e(Ho,{onChange:e=>{const t=[o.split(" ")[0],e,"- 0 1"].join(" ");i(t)}})]})})};var $o=l(Xo);class er{constructor(e){if("undefined"==typeof window)return!1;if(!window.chessEngineWorker){const t=e??process.env.STOCKFISH_PATH;window.chessEngineWorker=new Worker(t)}this.skillLevel=20,this.maxDepth=40,this.resolveTimeout=null,this.isAnalyzing=!1,this.fen=aA.initialFen}getTurnFromFen(e){return e.split(" ")[1]}normalizeScoreValue(e){const{fen:t}=this;return"b"===this.getTurnFromFen(t)?-1*e:e}isInfoMessage(e){return!(!e||!e.data)&&e.data.startsWith("info")}setSkillLevel(){window.chessEngineWorker.postMessage("setoption name Skill Level value "+this.skillLevel),window.chessEngineWorker.postMessage("setoption name Skill Level Maximum Error value 5000"),window.chessEngineWorker.postMessage("setoption name Skill Level Probability value 1")}async init(){await this.use_uci(),await this.is_ready(),this.setSkillLevel()}getScoreFromInfo(e){if(e.startsWith("info depth 0")){const t=e.split(" "),n=t[4],A=this.normalizeScoreValue(Number(t[5]));return this.isAnalyzing=!1,{type:n,value:A}}if(e.startsWith("info depth ")){const t=e.split(" ");return{type:t[8],value:this.normalizeScoreValue(Number(t[9]))}}return{type:"cp",value:0}}parseData(e){const t=e.split(" ")[2];let n="";e.indexOf(" pv ")>-1&&(n=e.split(" pv ")[1].split(" bmc ")[0]);return{depth:t,pv:n,score:this.getScoreFromInfo(e)}}use_uci(){return new Promise(e=>{window.chessEngineWorker.postMessage("uci"),window.chessEngineWorker.onmessage=t=>{"uciok"===t.data&&e(t)}})}is_ready(){return new Promise(e=>{window.chessEngineWorker.postMessage("isready"),window.chessEngineWorker.onmessage=t=>{"readyok"===t.data&&e(t)}})}set_position(e){return new Promise(t=>{this.fen=e,window.chessEngineWorker.postMessage("position fen "+e),t()})}async new_position(e){await this.stop(),await this.is_ready(),this.set_position(e),this.go_infinite()}set_multipv(e){window.chessEngineWorker.postMessage("setoption name MultiPV value "+e)}get_score(e,t=15){return new Promise(n=>{window.chessEngineWorker.postMessage("position fen "+e),window.chessEngineWorker.postMessage("go depth 15"),window.chessEngineWorker.onmessage=e=>{if(e.data.startsWith("info depth "+t)){const t=e.data.split(" "),A=t[8],o=Number(t[9]);n({type:A,value:o})}else if(e.data.startsWith("info depth 0")){const t=e.data.split(" "),A=t[4],o=Number(t[5]);n({type:A,value:o})}}})}go_depth(e){return new Promise(t=>{window.chessEngineWorker.postMessage("go depth "+e),window.chessEngineWorker.onmessage=e=>{e.data.startsWith("bestmove")&&t(e.data)}})}go_time(e){return new Promise(t=>{window.chessEngineWorker.postMessage("go movetime "+e),window.chessEngineWorker.onmessage=e=>{e.data.startsWith("bestmove")&&t(e.data)}})}go_infinite(e){window.chessEngineWorker.postMessage("go infinite"),this.isAnalyzing=!0,window.chessEngineWorker.onmessage=t=>{if(this.isInfoMessage(t)&&"function"==typeof e){const n=this.parseData(t.data);n.depth>this.maxDepth&&this.stop(),e(n)}}}stop(){return new Promise(e=>{this.isAnalyzing||e(),window.chessEngineWorker.postMessage("stop"),window.chessEngineWorker.onmessage=t=>{t.data.startsWith("bestmove")&&(this.isAnalyzing=!1,e(t.data))}})}quit(){window.chessEngineWorker.postMessage("quit")}}function tr(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var A=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===n&&A.firstChild?A.insertBefore(o,A.firstChild):A.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}tr(".brown .cg-wrap cg-board {\n background-image: url('data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAgeG1sbnM6eD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgIHZpZXdCb3g9IjAgMCA4IDgiICBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+PHJlY3Qgd2lkdGg9IjgiIGhlaWdodD0iOCIgZmlsbD0iI2I1ODg2MyIvPjxnIGlkPSJhIj4gIDxnIGlkPSJiIj4gICAgPGcgaWQ9ImMiPiAgICAgIDxnIGlkPSJkIj4gICAgICAgIDxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9IiNmMGQ5YjUiIGlkPSJlIi8+ICAgICAgICA8dXNlIHg9IjIiIGhyZWY9IiNlIiB4OmhyZWY9IiNlIi8+ICAgICAgPC9nPiAgICAgIDx1c2UgeD0iNCIgaHJlZj0iI2QiIHg6aHJlZj0iI2QiLz4gICAgPC9nPiAgICA8dXNlIHg9IjEiIHk9IjEiIGhyZWY9IiNjIiB4OmhyZWY9IiNjIi8+ICA8L2c+ICA8dXNlIHk9IjIiIGhyZWY9IiNiIiB4OmhyZWY9IiNiIi8+PC9nPjx1c2UgeT0iNCIgaHJlZj0iI2EiIHg6aHJlZj0iI2EiLz48L3N2Zz4=');\n}\n.green .cg-wrap cg-board {\n background-image: url('data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAgeG1sbnM6eD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgIHZpZXdCb3g9IjAgMCA4IDgiICBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+PHJlY3Qgd2lkdGg9IjgiIGhlaWdodD0iOCIgZmlsbD0iIzc3OTU1NiIvPjxnIGlkPSJhIj4gIDxnIGlkPSJiIj4gICAgPGcgaWQ9ImMiPiAgICAgIDxnIGlkPSJkIj4gICAgICAgIDxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9IiNFQkVDRDAiIGlkPSJlIi8+ICAgICAgICA8dXNlIHg9IjIiIGhyZWY9IiNlIiB4OmhyZWY9IiNlIi8+ICAgICAgPC9nPiAgICAgIDx1c2UgeD0iNCIgaHJlZj0iI2QiIHg6aHJlZj0iI2QiLz4gICAgPC9nPiAgICA8dXNlIHg9IjEiIHk9IjEiIGhyZWY9IiNjIiB4OmhyZWY9IiNjIi8+ICA8L2c+ICA8dXNlIHk9IjIiIGhyZWY9IiNiIiB4OmhyZWY9IiNiIi8+PC9nPjx1c2UgeT0iNCIgaHJlZj0iI2EiIHg6aHJlZj0iI2EiLz48L3N2Zz4=');\n}\n.ruby .cg-wrap cg-board {\n background-image: url('data:image/svg+xml;base64,CjxzdmcgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgIHhtbG5zOng9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiICB2aWV3Qm94PSIwIDAgOCA4IiAgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPjxyZWN0IHdpZHRoPSI4IiBoZWlnaHQ9IjgiIGZpbGw9IiM4QjI2MzUiLz48ZyBpZD0iYSI+ICA8ZyBpZD0iYiI+ICAgIDxnIGlkPSJjIj4gICAgICA8ZyBpZD0iZCI+ICAgICAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSIjRDJENEM4IiBpZD0iZSIvPiAgICAgICAgPHVzZSB4PSIyIiBocmVmPSIjZSIgeDpocmVmPSIjZSIvPiAgICAgIDwvZz4gICAgICA8dXNlIHg9IjQiIGhyZWY9IiNkIiB4OmhyZWY9IiNkIi8+ICAgIDwvZz4gICAgPHVzZSB4PSIxIiB5PSIxIiBocmVmPSIjYyIgeDpocmVmPSIjYyIvPiAgPC9nPiAgPHVzZSB5PSIyIiBocmVmPSIjYiIgeDpocmVmPSIjYiIvPjwvZz48dXNlIHk9IjQiIGhyZWY9IiNhIiB4OmhyZWY9IiNhIi8+PC9zdmc+');\n}\n.purple .cg-wrap cg-board {\n background-image: url('data:image/png;base64,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');\n}\n.teal .cg-wrap cg-board {\n background-image: url('data:image/svg+xml;base64,CjxzdmcgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgIHhtbG5zOng9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiICB2aWV3Qm94PSIwIDAgOCA4IiAgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPjxyZWN0IHdpZHRoPSI4IiBoZWlnaHQ9IjgiIGZpbGw9IiMxYzcyYWQiLz48ZyBpZD0iYSI+ICA8ZyBpZD0iYiI+ICAgIDxnIGlkPSJjIj4gICAgICA8ZyBpZD0iZCI+ICAgICAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSIjZTNlYmYzIiBpZD0iZSIvPiAgICAgICAgPHVzZSB4PSIyIiBocmVmPSIjZSIgeDpocmVmPSIjZSIvPiAgICAgIDwvZz4gICAgICA8dXNlIHg9IjQiIGhyZWY9IiNkIiB4OmhyZWY9IiNkIi8+ICAgIDwvZz4gICAgPHVzZSB4PSIxIiB5PSIxIiBocmVmPSIjYyIgeDpocmVmPSIjYyIvPiAgPC9nPiAgPHVzZSB5PSIyIiBocmVmPSIjYiIgeDpocmVmPSIjYiIvPjwvZz48dXNlIHk9IjQiIGhyZWY9IiNhIiB4OmhyZWY9IiNhIi8+PC9zdmc+');\n}\n");tr(".next-chessground .chessground {\n grid-area: board;\n position: relative;\n display: block;\n height: 0;\n padding-bottom: 100%;\n padding-right: 100%;\n width: 100%;\n border-radius: 0.25rem;\n overflow: hidden;\n}\n\n.next-chessground .cg-wrap {\n display: table;\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.next-chessground cg-helper {\n position: absolute;\n width: 12.5%;\n padding-bottom: 12.5%;\n display: table;\n bottom: 0;\n}\n\n.next-chessground cg-container {\n position: absolute;\n width: 800%;\n height: 800%;\n display: block;\n bottom: 0;\n}\n\n.next-chessground cg-board {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n line-height: 0;\n background-size: cover;\n cursor: pointer;\n}\n\n.next-chessground cg-board square {\n position: absolute;\n top: 0;\n left: 0;\n width: 12.5%;\n height: 12.5%;\n pointer-events: none;\n}\n.next-chessground .highlight cg-board square.last-move {\n will-change: transform;\n background-color: rgba(246, 246, 130, 0.5);\n}\n.next-chessground .highlight .correct cg-board square.last-move {\n background-color: rgba(155, 240, 0, 0.4);\n}\n.next-chessground .highlight .incorrect cg-board square.last-move {\n background-color: rgba(240, 0, 0, 0.4);\n}\n\n.next-chessground cg-board square.check {\n background: radial-gradient(\n ellipse at center,\n rgba(255, 0, 0, 1) 0%,\n rgba(231, 0, 0, 1) 25%,\n rgba(169, 0, 0, 0) 89%,\n rgba(158, 0, 0, 0) 100%\n );\n}\n.next-chessground cg-board square.current-premove {\n background-color: rgba(20, 30, 85, 0.5);\n}\n.next-chessground cg-board piece {\n position: absolute;\n top: 0;\n left: 0;\n width: 12.5%;\n height: 12.5%;\n background-size: cover;\n z-index: 2;\n will-change: transform;\n pointer-events: none;\n}\n.next-chessground cg-board piece.dragging {\n cursor: move;\n z-index: 9;\n}\n.next-chessground cg-board piece.anim {\n z-index: 8;\n}\n.next-chessground cg-board piece.fading {\n z-index: 1;\n opacity: 0.5;\n}\n.next-chessground cg-board piece.ghost {\n opacity: 0.3;\n}\n.next-chessground .cg-wrap svg {\n overflow: hidden;\n position: relative;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: 2;\n opacity: 0.6;\n}\n.next-chessground .cg-wrap svg image {\n opacity: 0.5;\n}\n\n.next-chessground .spare-pieces {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.next-chessground .spare-piece {\n top: 0;\n left: 0;\n padding-bottom: 100%;\n padding-left: 100%;\n position: absolute;\n background-size: contain;\n background-position: 0% -100%;\n cursor: pointer;\n}\n.next-chessground .edit-square {\n display: table;\n position: relative;\n width: 14.285%;\n padding-bottom: 13.285%;\n}\n.next-chessground .promote .edit-square {\n width: 20%;\n padding-bottom: 20%;\n}\n");tr("coords {\n position: absolute;\n display: flex;\n pointer-events: none;\n user-select: none;\n color: #fff;\n font-weight: bold;\n font-size: 0.5rem;\n opacity: 0.8;\n}\n.coords-no coords {\n display: none;\n}\n@media (min-width: 640px) {\n coords {\n font-size: 0.75rem;\n }\n}\ncoords.ranks {\n flex-flow: column-reverse;\n top: 0;\n right: 0;\n height: 100%;\n width: 0.8em;\n}\ncoords.ranks.black {\n flex-flow: column;\n}\ncoords.files {\n bottom: 0;\n left: 0;\n flex-flow: row;\n width: 100%;\n}\ncoords.files.black {\n flex-flow: row-reverse;\n}\ncoords.files coord {\n padding-left: 4px;\n}\ncoords coord {\n flex: 1 1 auto;\n}\n\n.orientation-white .files coord:nth-child(2n + 1),\n.orientation-white .ranks coord:nth-child(2n),\n.orientation-black .files coord:nth-child(2n),\n.orientation-black .ranks coord:nth-child(2n + 1) {\n color: #fff;\n}\n.orientation-white .files coord:nth-child(2n),\n.orientation-white .ranks coord:nth-child(2n + 1),\n.orientation-black .files coord:nth-child(2n + 1),\n.orientation-black .ranks coord:nth-child(2n) {\n color: #779556;\n}\n");tr(".next-chessground .next-cog {\n width: 1rem;\n height: 1rem;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj48cGF0aCBmaWxsPSIjOUY5REIwIiBkPSJNNDg3LjQgMzE1LjdsLTQyLjYtMjQuNmM0LjMtMjMuMiA0LjMtNDcgMC03MC4ybDQyLjYtMjQuNmM0LjktMi44IDcuMS04LjYgNS41LTE0LTExLjEtMzUuNi0zMC02Ny44LTU0LjctOTQuNi0zLjgtNC4xLTEwLTUuMS0xNC44LTIuM0wzODAuOCAxMTBjLTE3LjktMTUuNC0zOC41LTI3LjMtNjAuOC0zNS4xVjI1LjhjMC01LjYtMy45LTEwLjUtOS40LTExLjctMzYuNy04LjItNzQuMy03LjgtMTA5LjIgMC01LjUgMS4yLTkuNCA2LjEtOS40IDExLjdWNzVjLTIyLjIgNy45LTQyLjggMTkuOC02MC44IDM1LjFMODguNyA4NS41Yy00LjktMi44LTExLTEuOS0xNC44IDIuMy0yNC43IDI2LjctNDMuNiA1OC45LTU0LjcgOTQuNi0xLjcgNS40LjYgMTEuMiA1LjUgMTRMNjcuMyAyMjFjLTQuMyAyMy4yLTQuMyA0NyAwIDcwLjJsLTQyLjYgMjQuNmMtNC45IDIuOC03LjEgOC42LTUuNSAxNCAxMS4xIDM1LjYgMzAgNjcuOCA1NC43IDk0LjYgMy44IDQuMSAxMCA1LjEgMTQuOCAyLjNsNDIuNi0yNC42YzE3LjkgMTUuNCAzOC41IDI3LjMgNjAuOCAzNS4xdjQ5LjJjMCA1LjYgMy45IDEwLjUgOS40IDExLjcgMzYuNyA4LjIgNzQuMyA3LjggMTA5LjIgMCA1LjUtMS4yIDkuNC02LjEgOS40LTExLjd2LTQ5LjJjMjIuMi03LjkgNDIuOC0xOS44IDYwLjgtMzUuMWw0Mi42IDI0LjZjNC45IDIuOCAxMSAxLjkgMTQuOC0yLjMgMjQuNy0yNi43IDQzLjYtNTguOSA1NC43LTk0LjYgMS41LTUuNS0uNy0xMS4zLTUuNi0xNC4xek0yNTYgMzM2Yy00NC4xIDAtODAtMzUuOS04MC04MHMzNS45LTgwIDgwLTgwIDgwIDM1LjkgODAgODAtMzUuOSA4MC04MCA4MHoiLz48L3N2Zz4=');\n}\n.next-chessground .next-sync {\n width: 1rem;\n height: 1rem;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj48cGF0aCBmaWxsPSIjOUY5REIwIiBkPSJNMzcwLjcyIDEzMy4yOEMzMzkuNDU4IDEwNC4wMDggMjk4Ljg4OCA4Ny45NjIgMjU1Ljg0OCA4OGMtNzcuNDU4LjA2OC0xNDQuMzI4IDUzLjE3OC0xNjIuNzkxIDEyNi44NS0xLjM0NCA1LjM2My02LjEyMiA5LjE1LTExLjY1MSA5LjE1SDI0LjEwM2MtNy40OTggMC0xMy4xOTQtNi44MDctMTEuODA3LTE0LjE3NkMzMy45MzMgOTQuOTI0IDEzNC44MTMgOCAyNTYgOGM2Ni40NDggMCAxMjYuNzkxIDI2LjEzNiAxNzEuMzE1IDY4LjY4NUw0NjMuMDMgNDAuOTdDNDc4LjE0OSAyNS44NTEgNTA0IDM2LjU1OSA1MDQgNTcuOTQxVjE5MmMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRIMzQ1Ljk0MWMtMjEuMzgyIDAtMzIuMDktMjUuODUxLTE2Ljk3MS00MC45NzFsNDEuNzUtNDEuNzQ5ek0zMiAyOTZoMTM0LjA1OWMyMS4zODIgMCAzMi4wOSAyNS44NTEgMTYuOTcxIDQwLjk3MWwtNDEuNzUgNDEuNzVjMzEuMjYyIDI5LjI3MyA3MS44MzUgNDUuMzE5IDExNC44NzYgNDUuMjggNzcuNDE4LS4wNyAxNDQuMzE1LTUzLjE0NCAxNjIuNzg3LTEyNi44NDkgMS4zNDQtNS4zNjMgNi4xMjItOS4xNSAxMS42NTEtOS4xNWg1Ny4zMDRjNy40OTggMCAxMy4xOTQgNi44MDcgMTEuODA3IDE0LjE3NkM0NzguMDY3IDQxNy4wNzYgMzc3LjE4NyA1MDQgMjU2IDUwNGMtNjYuNDQ4IDAtMTI2Ljc5MS0yNi4xMzYtMTcxLjMxNS02OC42ODVMNDguOTcgNDcxLjAzQzMzLjg1MSA0ODYuMTQ5IDggNDc1LjQ0MSA4IDQ1NC4wNTlWMzIwYzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNHoiLz48L3N2Zz4=');\n}\n.next-chessground .next-trash {\n width: 1rem;\n height: 1rem;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii05NiAtOTYgNjQwIDY0MCI+PHBhdGggZD0iTTI2OCA0MTZoMjRhMTIgMTIgMCAwIDAgMTItMTJWMTg4YTEyIDEyIDAgMCAwLTEyLTEyaC0yNGExMiAxMiAwIDAgMC0xMiAxMnYyMTZhMTIgMTIgMCAwIDAgMTIgMTJ6TTQzMiA4MGgtODIuNDFsLTM0LTU2LjdBNDggNDggMCAwIDAgMjc0LjQxIDBIMTczLjU5YTQ4IDQ4IDAgMCAwLTQxLjE2IDIzLjNMOTguNDEgODBIMTZBMTYgMTYgMCAwIDAgMCA5NnYxNmExNiAxNiAwIDAgMCAxNiAxNmgxNnYzMzZhNDggNDggMCAwIDAgNDggNDhoMjg4YTQ4IDQ4IDAgMCAwIDQ4LTQ4VjEyOGgxNmExNiAxNiAwIDAgMCAxNi0xNlY5NmExNiAxNiAwIDAgMC0xNi0xNnpNMTcxLjg0IDUwLjkxQTYgNiAwIDAgMSAxNzcgNDhoOTRhNiA2IDAgMCAxIDUuMTUgMi45MUwyOTMuNjEgODBIMTU0LjM5ek0zNjggNDY0SDgwVjEyOGgyODh6bS0yMTItNDhoMjRhMTIgMTIgMCAwIDAgMTItMTJWMTg4YTEyIDEyIDAgMCAwLTEyLTEyaC0yNGExMiAxMiAwIDAgMC0xMiAxMnYyMTZhMTIgMTIgMCAwIDAgMTIgMTJ6Ii8+PC9zdmc+');\n}\n");tr("*,\n::after,\n::before {\n box-sizing: border-box;\n border-width: 0;\n border-style: solid;\n}\n\n.next-chessground {\n display: flex;\n flex-direction: column;\n position: relative;\n width: 100%;\n}\n.next-chessground .checkbox {\n display: flex;\n margin: 0;\n align-items: center;\n padding-left: 0.25rem;\n width: 2.75rem;\n height: 1.75rem;\n outline: none;\n appearance: none;\n transition: 0.2s ease-in-out;\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n cursor: pointer;\n}\n.next-chessground .checkbox:before {\n background-color: rgba(156, 163, 175);\n width: 1rem;\n height: 1rem;\n border-radius: 999px;\n content: '';\n transition: 0.2s ease-in-out;\n}\n.next-chessground .checkbox:checked:before {\n background-color: rgba(4, 120, 87);\n transform: translate(1rem, 0);\n}\n.next-chessground .next-button {\n background-color: transparent;\n background-image: none;\n cursor: pointer;\n display: flex;\n outline: none;\n\n padding: 0;\n line-height: inherit;\n color: inherit;\n font-size: 100%;\n}\n.next-chessground .next-button:focus {\n outline: none;\n}\n");tr(".pure-modal {\n box-shadow: rgba(0, 0, 0, 0.5) 0px 5px 15px 0px;\n color: rgba(55, 65, 81);\n}\n.pure-modal-backdrop {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n.backdrop-overflow-hidden {\n overflow: hidden !important;\n}\n.pure-modal-backdrop .pure-modal {\n width: 300px;\n max-width: 100%;\n box-sizing: border-box;\n transition: all 0.2s ease-in-out;\n max-height: 100%;\n}\n.pure-modal.auto-height {\n position: static;\n}\n.pure-modal-backdrop.scrollable {\n overflow-y: auto;\n}\n.pure-modal-backdrop .panel {\n display: grid;\n grid-template-rows: repeat(3, min-content);\n}\n.pure-modal-backdrop:not(.scrollable) .panel {\n grid-template-rows: min-content minmax(0, 1fr) min-content;\n max-height: -moz-available;\n max-height: -webkit-fill-available;\n max-height: fill-available;\n height: 100%;\n}\n.pure-modal > * > * {\n flex: 0 0 auto;\n}\n.pure-modal > * > .scrollable {\n overflow-x: hidden;\n overflow-scrolling: touch;\n}\n@media (max-width: 480px) {\n .pure-modal-backdrop .pure-modal {\n width: 100%;\n }\n}\n.pure-modal .panel-body {\n background-color: #fff;\n}\n.pure-modal .panel-heading {\n background: #f0f0f0;\n}\n.pure-modal .panel-title {\n padding: 12px 45px 12px 15px;\n margin: 0;\n}\n.pure-modal .close {\n right: 6px;\n top: 6px;\n z-index: 1;\n width: 30px;\n height: 30px;\n border-radius: 15px;\n text-align: center;\n line-height: 30px;\n cursor: pointer;\n font-size: 1.85rem;\n}\n.pure-modal .panel-heading .close:hover {\n color: #000;\n}\n.pure-modal .panel-body {\n padding: 15px;\n}\n.pure-modal .panel-footer {\n padding: 12px 45px 12px 15px;\n background: #f0f0f0;\n}\n.pure-modal .panel-body,\n.pure-modal .panel-footer,\n.pure-modal .panel-title {\n word-break: break-all;\n}\n.pure-modal-backdrop .additional-row,\n.pure-modal-backdrop:not(.scrollable) .additional-row {\n display: grid;\n grid-template-rows: min-content minmax(0, 1fr) min-content min-content;\n}\n");tr("/**\n * Cburnett\n */\n.cburnett piece.pawn.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wP.svg');\n}\n.cburnett piece.bishop.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wB.svg');\n}\n.cburnett piece.knight.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wN.svg');\n}\n.cburnett piece.rook.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wR.svg');\n}\n.cburnett piece.queen.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wQ.svg');\n}\n.cburnett piece.king.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wK.svg');\n}\n.cburnett piece.pawn.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bP.svg');\n}\n.cburnett piece.bishop.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bB.svg');\n}\n.cburnett piece.knight.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bN.svg');\n}\n.cburnett piece.rook.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bR.svg');\n}\n.cburnett piece.queen.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bQ.svg');\n}\n.cburnett piece.king.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bK.svg');\n}\n\n/**\n * Classic\n */\n.classic piece.pawn.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wp.png');\n}\n.classic piece.bishop.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wb.png');\n}\n.classic piece.knight.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wn.png');\n}\n.classic piece.rook.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wr.png');\n}\n.classic piece.queen.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wq.png');\n}\n.classic piece.king.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wk.png');\n}\n.classic piece.pawn.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bp.png');\n}\n.classic piece.bishop.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bb.png');\n}\n.classic piece.knight.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bn.png');\n}\n.classic piece.rook.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/br.png');\n}\n.classic piece.queen.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bq.png');\n}\n.classic piece.king.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bk.png');\n}\n\n/**\n * Neo\n */\n.neo piece.pawn.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wp.png');\n}\n.neo piece.bishop.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wb.png');\n}\n.neo piece.knight.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wn.png');\n}\n.neo piece.rook.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wr.png');\n}\n.neo piece.queen.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wq.png');\n}\n.neo piece.king.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wk.png');\n}\n.neo piece.pawn.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bp.png');\n}\n.neo piece.bishop.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bb.png');\n}\n.neo piece.knight.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bn.png');\n}\n.neo piece.rook.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/br.png');\n}\n.neo piece.queen.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bq.png');\n}\n.neo piece.king.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bk.png');\n}\n\n/**\n * Alpha\n */\n.alpha piece.pawn.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wp.png');\n}\n.alpha piece.bishop.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wb.png');\n}\n.alpha piece.knight.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wn.png');\n}\n.alpha piece.rook.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wr.png');\n}\n.alpha piece.queen.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wq.png');\n}\n.alpha piece.king.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wk.png');\n}\n.alpha piece.pawn.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bp.png');\n}\n.alpha piece.bishop.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bb.png');\n}\n.alpha piece.knight.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bn.png');\n}\n.alpha piece.rook.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/br.png');\n}\n.alpha piece.queen.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bq.png');\n}\n.alpha piece.king.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bk.png');\n}\n\n/**\n * Bases\n */\n.bases piece.pawn.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wp.png');\n}\n.bases piece.bishop.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wb.png');\n}\n.bases piece.knight.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wn.png');\n}\n.bases piece.rook.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wr.png');\n}\n.bases piece.queen.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wq.png');\n}\n.bases piece.king.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wk.png');\n}\n.bases piece.pawn.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bp.png');\n}\n.bases piece.bishop.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bb.png');\n}\n.bases piece.knight.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bn.png');\n}\n.bases piece.rook.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/br.png');\n}\n.bases piece.queen.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bq.png');\n}\n.bases piece.king.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bk.png');\n}\n");tr(".flex {\n display: flex;\n}\n.flex-col {\n flex-direction: column;\n}\n.flex-row-reverse {\n flex-direction: row-reverse;\n}\n.grid {\n display: grid;\n}\n.grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.gap-2 {\n gap: 0.5rem;\n}\n.gap-3 {\n gap: 0.75rem;\n}\n.w-full {\n width: 100%;\n}\n.items-center {\n align-items: center;\n}\n.justify-center {\n justify-content: center;\n}\n.py-1\\.5 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.px-2 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.cursor-resize {\n cursor: nesw-resize;\n}\n.outline-none,\n.outline-none:focus {\n outline: none;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-gray-400 {\n color: rgba(156, 163, 175);\n}\n.text-gray-800 {\n color: rgba(31, 41, 55);\n}\n.bg-white {\n background-color: #fff;\n}\n.bg-orange-300 {\n background-color: #fbd38d;\n}\n.border {\n border-width: 1px;\n border-style: solid;\n}\n.border-gray-300 {\n border-color: rgba(209, 213, 219);\n}\n.rounded {\n border-radius: 0.25rem;\n}\n");export{Wo as NextChessground,$o as NextEditor,er as Stockfish,aA as constants,Wo as default,To as isValidFen,cA as useChess,un as useChessground};
|
|
27
|
+
*/!function(e,t){function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n}(k,Error),k.prototype.format=function(e){var t="Error: "+this.message;if(this.location){var n,A=null;for(n=0;n<e.length;n++)if(e[n].source===this.location.source){A=e[n].text.split(/\r\n|\n|\r/g);break}var o=this.location.start,r=this.location.source&&"function"==typeof this.location.source.offset?this.location.source.offset(o):o,i=this.location.source+":"+r.line+":"+r.column;if(A){var s=this.location.end,a=w("",r.line.toString().length," "),c=A[o.line-1],l=(o.line===s.line?s.column:c.length+1)-o.column||1;t+="\n --\x3e "+i+"\n"+a+" |\n"+r.line+" | "+c+"\n"+a+" | "+w("",o.column-1," ")+w("",l,"^")}else t+="\n at "+i}return t},k.buildMessage=function(e,t){var n={literal:function(e){return'"'+o(e.text)+'"'},class:function(e){var t=e.parts.map(function(e){return Array.isArray(e)?r(e[0])+"-"+r(e[1]):r(e)});return"["+(e.inverted?"^":"")+t.join("")+"]"},any:function(){return"any character"},end:function(){return"end of input"},other:function(e){return e.description}};function A(e){return e.charCodeAt(0).toString(16).toUpperCase()}function o(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(e){return"\\x0"+A(e)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(e){return"\\x"+A(e)})}function r(e){return e.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(e){return"\\x0"+A(e)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(e){return"\\x"+A(e)})}function i(e){return n[e.type](e)}return"Expected "+function(e){var t,n,A=e.map(i);if(A.sort(),A.length>0){for(t=1,n=1;t<A.length;t++)A[t-1]!==A[t]&&(A[n]=A[t],n++);A.length=n}switch(A.length){case 1:return A[0];case 2:return A[0]+" or "+A[1];default:return A.slice(0,-1).join(", ")+", or "+A[A.length-1]}}(e)+" but "+function(e){return e?'"'+o(e)+'"':"end of input"}(t)+" found."};const v=0xffffffffffffffffn;function S(e,t){return 0xffffffffffffffffn&(e<<t|e>>64n-t)}function E(e,t){return e*t&v}const V=(N=0xa187eb39cdcaed8f31c4b365b102e01en,function(){let e=BigInt(N&v),t=BigInt(N>>64n&v);const n=E(S(E(e,5n),7n),9n);return t^=e,e=(S(e,24n)^t^t<<16n)&v,t=S(t,37n),N=t<<64n|e,n});var N;const M=Array.from({length:2},()=>Array.from({length:6},()=>Array.from({length:128},()=>V()))),x=Array.from({length:8},()=>V()),B=Array.from({length:16},()=>V()),D=V(),T="w",Q="b",Z="p",j="b",P="r",U="q",O="k",q="rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1";class J{color;from;to;piece;captured;promotion;flags;san;lan;before;after;constructor(e,t){const{color:n,piece:A,from:o,to:r,flags:i,captured:s,promotion:a}=t,c=ae(o),l=ae(r);this.color=n,this.piece=A,this.from=c,this.to=l,this.san=e._moveToSan(t,e._moves({legal:!0})),this.lan=c+l,this.before=e.fen(),e._makeMove(t),this.after=e.fen(),e._undoMove(),this.flags="";for(const e in F)F[e]&i&&(this.flags+=G[e]);s&&(this.captured=s),a&&(this.promotion=a,this.lan+=a)}isCapture(){return this.flags.indexOf(G.CAPTURE)>-1}isPromotion(){return this.flags.indexOf(G.PROMOTION)>-1}isEnPassant(){return this.flags.indexOf(G.EP_CAPTURE)>-1}isKingsideCastle(){return this.flags.indexOf(G.KSIDE_CASTLE)>-1}isQueensideCastle(){return this.flags.indexOf(G.QSIDE_CASTLE)>-1}isBigPawn(){return this.flags.indexOf(G.BIG_PAWN)>-1}}const K=-1,G={NORMAL:"n",CAPTURE:"c",BIG_PAWN:"b",EP_CAPTURE:"e",PROMOTION:"p",KSIDE_CASTLE:"k",QSIDE_CASTLE:"q",NULL_MOVE:"-"},R=["a8","b8","c8","d8","e8","f8","g8","h8","a7","b7","c7","d7","e7","f7","g7","h7","a6","b6","c6","d6","e6","f6","g6","h6","a5","b5","c5","d5","e5","f5","g5","h5","a4","b4","c4","d4","e4","f4","g4","h4","a3","b3","c3","d3","e3","f3","g3","h3","a2","b2","c2","d2","e2","f2","g2","h2","a1","b1","c1","d1","e1","f1","g1","h1"],F={NORMAL:1,CAPTURE:2,BIG_PAWN:4,EP_CAPTURE:8,PROMOTION:16,KSIDE_CASTLE:32,QSIDE_CASTLE:64,NULL_MOVE:128},L={Event:"?",Site:"?",Date:"????.??.??",Round:"?",White:"?",Black:"?",Result:"*"},z={...L,WhiteTitle:null,BlackTitle:null,WhiteElo:null,BlackElo:null,WhiteUSCF:null,BlackUSCF:null,WhiteNA:null,BlackNA:null,WhiteType:null,BlackType:null,EventDate:null,EventSponsor:null,Section:null,Stage:null,Board:null,Opening:null,Variation:null,SubVariation:null,ECO:null,NIC:null,Time:null,UTCTime:null,UTCDate:null,TimeControl:null,SetUp:null,FEN:null,Termination:null,Annotator:null,Mode:null,PlyCount:null},W={a8:0,b8:1,c8:2,d8:3,e8:4,f8:5,g8:6,h8:7,a7:16,b7:17,c7:18,d7:19,e7:20,f7:21,g7:22,h7:23,a6:32,b6:33,c6:34,d6:35,e6:36,f6:37,g6:38,h6:39,a5:48,b5:49,c5:50,d5:51,e5:52,f5:53,g5:54,h5:55,a4:64,b4:65,c4:66,d4:67,e4:68,f4:69,g4:70,h4:71,a3:80,b3:81,c3:82,d3:83,e3:84,f3:85,g3:86,h3:87,a2:96,b2:97,c2:98,d2:99,e2:100,f2:101,g2:102,h2:103,a1:112,b1:113,c1:114,d1:115,e1:116,f1:117,g1:118,h1:119},Y={b:[16,32,17,15],w:[-16,-32,-17,-15]},_={n:[-18,-33,-31,-14,18,33,31,14],b:[-17,-15,17,15],r:[-16,1,16,-1],q:[-17,-16,-15,1,17,16,15,-1],k:[-17,-16,-15,1,17,16,15,-1]},H=[20,0,0,0,0,0,0,24,0,0,0,0,0,0,20,0,0,20,0,0,0,0,0,24,0,0,0,0,0,20,0,0,0,0,20,0,0,0,0,24,0,0,0,0,20,0,0,0,0,0,0,20,0,0,0,24,0,0,0,20,0,0,0,0,0,0,0,0,20,0,0,24,0,0,20,0,0,0,0,0,0,0,0,0,0,20,2,24,2,20,0,0,0,0,0,0,0,0,0,0,0,2,53,56,53,2,0,0,0,0,0,0,24,24,24,24,24,24,56,0,56,24,24,24,24,24,24,0,0,0,0,0,0,2,53,56,53,2,0,0,0,0,0,0,0,0,0,0,0,20,2,24,2,20,0,0,0,0,0,0,0,0,0,0,20,0,0,24,0,0,20,0,0,0,0,0,0,0,0,20,0,0,0,24,0,0,0,20,0,0,0,0,0,0,20,0,0,0,0,24,0,0,0,0,20,0,0,0,0,20,0,0,0,0,0,24,0,0,0,0,0,20,0,0,20,0,0,0,0,0,0,24,0,0,0,0,0,0,20],X=[17,0,0,0,0,0,0,16,0,0,0,0,0,0,15,0,0,17,0,0,0,0,0,16,0,0,0,0,0,15,0,0,0,0,17,0,0,0,0,16,0,0,0,0,15,0,0,0,0,0,0,17,0,0,0,16,0,0,0,15,0,0,0,0,0,0,0,0,17,0,0,16,0,0,15,0,0,0,0,0,0,0,0,0,0,17,0,16,0,15,0,0,0,0,0,0,0,0,0,0,0,0,17,16,15,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,-15,-16,-17,0,0,0,0,0,0,0,0,0,0,0,0,-15,0,-16,0,-17,0,0,0,0,0,0,0,0,0,0,-15,0,0,-16,0,0,-17,0,0,0,0,0,0,0,0,-15,0,0,0,-16,0,0,0,-17,0,0,0,0,0,0,-15,0,0,0,0,-16,0,0,0,0,-17,0,0,0,0,-15,0,0,0,0,0,-16,0,0,0,0,0,-17,0,0,-15,0,0,0,0,0,0,-16,0,0,0,0,0,0,-17],$={p:1,n:2,b:4,r:8,q:16,k:32},ee=["n",j,P,U],te={[O]:F.KSIDE_CASTLE,[U]:F.QSIDE_CASTLE},ne={w:[{square:W.a1,flag:F.QSIDE_CASTLE},{square:W.h1,flag:F.KSIDE_CASTLE}],b:[{square:W.a8,flag:F.QSIDE_CASTLE},{square:W.h8,flag:F.KSIDE_CASTLE}]},Ae={b:1,w:6},oe="--";function re(e){return e>>4}function ie(e){return 15&e}function se(e){return-1!=="0123456789".indexOf(e)}function ae(e){const t=ie(e),n=re(e);return"abcdefgh".substring(t,t+1)+"87654321".substring(n,n+1)}function ce(e){return e===T?Q:T}function le(e){const t=e.split(/\s+/);if(6!==t.length)return{ok:!1,error:"Invalid FEN: must contain six space-delimited fields"};const n=parseInt(t[5],10);if(isNaN(n)||n<=0)return{ok:!1,error:"Invalid FEN: move number must be a positive integer"};const A=parseInt(t[4],10);if(isNaN(A)||A<0)return{ok:!1,error:"Invalid FEN: half move counter number must be a non-negative integer"};if(!/^(-|[abcdefgh][36])$/.test(t[3]))return{ok:!1,error:"Invalid FEN: en-passant square is invalid"};if(/[^kKqQ-]/.test(t[2]))return{ok:!1,error:"Invalid FEN: castling availability is invalid"};if(!/^(w|b)$/.test(t[1]))return{ok:!1,error:"Invalid FEN: side-to-move is invalid"};const o=t[0].split("/");if(8!==o.length)return{ok:!1,error:"Invalid FEN: piece data does not contain 8 '/'-delimited rows"};for(let e=0;e<o.length;e++){let t=0,n=!1;for(let A=0;A<o[e].length;A++)if(se(o[e][A])){if(n)return{ok:!1,error:"Invalid FEN: piece data is invalid (consecutive number)"};t+=parseInt(o[e][A],10),n=!0}else{if(!/^[prnbqkPRNBQK]$/.test(o[e][A]))return{ok:!1,error:"Invalid FEN: piece data is invalid (invalid piece)"};t+=1,n=!1}if(8!==t)return{ok:!1,error:"Invalid FEN: piece data is invalid (too many squares in rank)"}}if("3"==t[3][1]&&"w"==t[1]||"6"==t[3][1]&&"b"==t[1])return{ok:!1,error:"Invalid FEN: illegal en-passant square"};const r=[{color:"white",regex:/K/g},{color:"black",regex:/k/g}];for(const{color:e,regex:n}of r){if(!n.test(t[0]))return{ok:!1,error:`Invalid FEN: missing ${e} king`};if((t[0].match(n)||[]).length>1)return{ok:!1,error:`Invalid FEN: too many ${e} kings`}}return Array.from(o[0]+o[7]).some(e=>"P"===e.toUpperCase())?{ok:!1,error:"Invalid FEN: some pawns are on the edge rows"}:{ok:!0}}function ue(e,t,n,A,o,r=void 0,i=F.NORMAL){const s=re(A);if(o!==Z||7!==s&&0!==s)e.push({color:t,from:n,to:A,piece:o,captured:r,flags:i});else for(let s=0;s<ee.length;s++){const a=ee[s];e.push({color:t,from:n,to:A,piece:o,captured:r,promotion:a,flags:i|F.PROMOTION})}}function he(e){let t=e.charAt(0);if(t>="a"&&t<="h"){if(e.match(/[a-h]\d.*[a-h]\d/))return;return Z}return t=t.toLowerCase(),"o"===t?O:t}function pe(e){return e.replace(/=/,"").replace(/[+#]?[?!]*$/,"")}class ge{_board=new Array(128);_turn=T;_header={};_kings={w:K,b:K};_epSquare=-1;_halfMoves=0;_moveNumber=0;_history=[];_comments={};_castling={w:0,b:0};_hash=0n;_positionCount=new Map;constructor(e=q,{skipValidation:t=!1}={}){this.load(e,{skipValidation:t})}clear({preserveHeaders:e=!1}={}){this._board=new Array(128),this._kings={w:K,b:K},this._turn=T,this._castling={w:0,b:0},this._epSquare=K,this._halfMoves=0,this._moveNumber=1,this._history=[],this._comments={},this._header=e?this._header:{...z},this._hash=this._computeHash(),this._positionCount=new Map,this._header.SetUp=null,this._header.FEN=null}load(e,{skipValidation:t=!1,preserveHeaders:n=!1}={}){let A=e.split(/\s+/);if(A.length>=2&&A.length<6){const t=["-","-","0","1"];e=A.concat(t.slice(-(6-A.length))).join(" ")}if(A=e.split(/\s+/),!t){const{ok:t,error:n}=le(e);if(!t)throw new Error(n)}const o=A[0];let r=0;this.clear({preserveHeaders:n});for(let e=0;e<o.length;e++){const t=o.charAt(e);if("/"===t)r+=8;else if(se(t))r+=parseInt(t,10);else{const e=t<"a"?T:Q;this._put({type:t.toLowerCase(),color:e},ae(r)),r++}}this._turn=A[1],A[2].indexOf("K")>-1&&(this._castling.w|=F.KSIDE_CASTLE),A[2].indexOf("Q")>-1&&(this._castling.w|=F.QSIDE_CASTLE),A[2].indexOf("k")>-1&&(this._castling.b|=F.KSIDE_CASTLE),A[2].indexOf("q")>-1&&(this._castling.b|=F.QSIDE_CASTLE),this._epSquare="-"===A[3]?K:W[A[3]],this._halfMoves=parseInt(A[4],10),this._moveNumber=parseInt(A[5],10),this._hash=this._computeHash(),this._updateSetup(e),this._incPositionCount()}fen({forceEnpassantSquare:e=!1}={}){let t=0,n="";for(let e=W.a8;e<=W.h1;e++){if(this._board[e]){t>0&&(n+=t,t=0);const{color:A,type:o}=this._board[e];n+=A===T?o.toUpperCase():o.toLowerCase()}else t++;e+1&136&&(t>0&&(n+=t),e!==W.h1&&(n+="/"),t=0,e+=8)}let A="";this._castling[T]&F.KSIDE_CASTLE&&(A+="K"),this._castling[T]&F.QSIDE_CASTLE&&(A+="Q"),this._castling[Q]&F.KSIDE_CASTLE&&(A+="k"),this._castling[Q]&F.QSIDE_CASTLE&&(A+="q"),A=A||"-";let o="-";if(this._epSquare!==K)if(e)o=ae(this._epSquare);else{const e=this._epSquare+(this._turn===T?16:-16),t=[e+1,e-1];for(const e of t){if(136&e)continue;const t=this._turn;if(this._board[e]?.color===t&&this._board[e]?.type===Z){this._makeMove({color:t,from:e,to:this._epSquare,piece:Z,captured:Z,flags:F.EP_CAPTURE});const n=!this._isKingAttacked(t);if(this._undoMove(),n){o=ae(this._epSquare);break}}}}return[n,this._turn,A,o,this._halfMoves,this._moveNumber].join(" ")}_pieceKey(e){if(!this._board[e])return 0n;const{color:t,type:n}=this._board[e],A={p:0,n:1,b:2,r:3,q:4,k:5}[n];return M[{w:0,b:1}[t]][A][e]}_epKey(){return this._epSquare===K?0n:x[7&this._epSquare]}_castlingKey(){const e=this._castling.w>>5|this._castling.b>>3;return B[e]}_computeHash(){let e=0n;for(let t=W.a8;t<=W.h1;t++)136&t?t+=7:this._board[t]&&(e^=this._pieceKey(t));return e^=this._epKey(),e^=this._castlingKey(),"b"===this._turn&&(e^=D),e}_updateSetup(e){this._history.length>0||(e!==q?(this._header.SetUp="1",this._header.FEN=e):(this._header.SetUp=null,this._header.FEN=null))}reset(){this.load(q)}get(e){return this._board[W[e]]}findPiece(e){const t=[];for(let n=W.a8;n<=W.h1;n++)136&n?n+=7:this._board[n]&&this._board[n]?.color===e.color&&this._board[n].color===e.color&&this._board[n].type===e.type&&t.push(ae(n));return t}put({type:e,color:t},n){return!!this._put({type:e,color:t},n)&&(this._updateCastlingRights(),this._updateEnPassantSquare(),this._updateSetup(this.fen()),!0)}_set(e,t){this._hash^=this._pieceKey(e),this._board[e]=t,this._hash^=this._pieceKey(e)}_put({type:e,color:t},n){if(-1==="pnbrqkPNBRQK".indexOf(e.toLowerCase()))return!1;if(!(n in W))return!1;const A=W[n];if(e==O&&this._kings[t]!=K&&this._kings[t]!=A)return!1;const o=this._board[A];return o&&o.type===O&&(this._kings[o.color]=K),this._set(A,{type:e,color:t}),e===O&&(this._kings[t]=A),!0}_clear(e){this._hash^=this._pieceKey(e),delete this._board[e]}remove(e){const t=this.get(e);return this._clear(W[e]),t&&t.type===O&&(this._kings[t.color]=K),this._updateCastlingRights(),this._updateEnPassantSquare(),this._updateSetup(this.fen()),t}_updateCastlingRights(){this._hash^=this._castlingKey();const e=this._board[W.e1]?.type===O&&this._board[W.e1]?.color===T,t=this._board[W.e8]?.type===O&&this._board[W.e8]?.color===Q;e&&this._board[W.a1]?.type===P&&this._board[W.a1]?.color===T||(this._castling.w&=-65),e&&this._board[W.h1]?.type===P&&this._board[W.h1]?.color===T||(this._castling.w&=-33),t&&this._board[W.a8]?.type===P&&this._board[W.a8]?.color===Q||(this._castling.b&=-65),t&&this._board[W.h8]?.type===P&&this._board[W.h8]?.color===Q||(this._castling.b&=-33),this._hash^=this._castlingKey()}_updateEnPassantSquare(){if(this._epSquare===K)return;const e=this._epSquare+(this._turn===T?-16:16),t=this._epSquare+(this._turn===T?16:-16),n=[t+1,t-1];if(null!==this._board[e]||null!==this._board[this._epSquare]||this._board[t]?.color!==ce(this._turn)||this._board[t]?.type!==Z)return this._hash^=this._epKey(),void(this._epSquare=K);n.some(e=>!(136&e)&&this._board[e]?.color===this._turn&&this._board[e]?.type===Z)||(this._hash^=this._epKey(),this._epSquare=K)}_attacked(e,t,n){const A=[];for(let o=W.a8;o<=W.h1;o++){if(136&o){o+=7;continue}if(void 0===this._board[o]||this._board[o].color!==e)continue;const r=this._board[o],i=o-t;if(0===i)continue;const s=i+119;if(H[s]&$[r.type]){if(r.type===Z){if(i>0&&r.color===T||i<=0&&r.color===Q){if(!n)return!0;A.push(ae(o))}continue}if("n"===r.type||"k"===r.type){if(n){A.push(ae(o));continue}return!0}const e=X[s];let a=o+e,c=!1;for(;a!==t;){if(null!=this._board[a]){c=!0;break}a+=e}if(!c){if(n){A.push(ae(o));continue}return!0}}}return!!n&&A}attackers(e,t){return t?this._attacked(t,W[e],!0):this._attacked(this._turn,W[e],!0)}_isKingAttacked(e){const t=this._kings[e];return-1!==t&&this._attacked(ce(e),t)}hash(){return this._hash.toString(16)}isAttacked(e,t){return this._attacked(t,W[e])}isCheck(){return this._isKingAttacked(this._turn)}inCheck(){return this.isCheck()}isCheckmate(){return this.isCheck()&&0===this._moves().length}isStalemate(){return!this.isCheck()&&0===this._moves().length}isInsufficientMaterial(){const e={b:0,n:0,r:0,q:0,k:0,p:0},t=[];let n=0,A=0;for(let o=W.a8;o<=W.h1;o++){if(A=(A+1)%2,136&o){o+=7;continue}const r=this._board[o];r&&(e[r.type]=r.type in e?e[r.type]+1:1,r.type===j&&t.push(A),n++)}if(2===n)return!0;if(3===n&&(1===e[j]||1===e.n))return!0;if(n===e[j]+2){let e=0;const n=t.length;for(let A=0;A<n;A++)e+=t[A];if(0===e||e===n)return!0}return!1}isThreefoldRepetition(){return this._getPositionCount(this._hash)>=3}isDrawByFiftyMoves(){return this._halfMoves>=100}isDraw(){return this.isDrawByFiftyMoves()||this.isStalemate()||this.isInsufficientMaterial()||this.isThreefoldRepetition()}isGameOver(){return this.isCheckmate()||this.isDraw()}moves({verbose:e=!1,square:t,piece:n}={}){const A=this._moves({square:t,piece:n});return e?A.map(e=>new J(this,e)):A.map(e=>this._moveToSan(e,A))}_moves({legal:e=!0,piece:t,square:n}={}){const A=n?n.toLowerCase():void 0,o=t?.toLowerCase(),r=[],i=this._turn,s=ce(i);let a=W.a8,c=W.h1,l=!1;if(A){if(!(A in W))return[];a=c=W[A],l=!0}for(let e=a;e<=c;e++){if(136&e){e+=7;continue}if(!this._board[e]||this._board[e].color===s)continue;const{type:t}=this._board[e];let n;if(t===Z){if(o&&o!==t)continue;n=e+Y[i][0],this._board[n]||(ue(r,i,e,n,Z),n=e+Y[i][1],Ae[i]!==re(e)||this._board[n]||ue(r,i,e,n,Z,void 0,F.BIG_PAWN));for(let t=2;t<4;t++)n=e+Y[i][t],136&n||(this._board[n]?.color===s?ue(r,i,e,n,Z,this._board[n].type,F.CAPTURE):n===this._epSquare&&ue(r,i,e,n,Z,Z,F.EP_CAPTURE))}else{if(o&&o!==t)continue;for(let A=0,o=_[t].length;A<o;A++){const o=_[t][A];for(n=e;n+=o,!(136&n);){if(this._board[n]){if(this._board[n].color===i)break;ue(r,i,e,n,t,this._board[n].type,F.CAPTURE);break}if(ue(r,i,e,n,t),"n"===t||t===O)break}}}}if(!(void 0!==o&&o!==O||l&&c!==this._kings[i])){if(this._castling[i]&F.KSIDE_CASTLE){const e=this._kings[i],t=e+2;this._board[e+1]||this._board[t]||this._attacked(s,this._kings[i])||this._attacked(s,e+1)||this._attacked(s,t)||ue(r,i,this._kings[i],t,O,void 0,F.KSIDE_CASTLE)}if(this._castling[i]&F.QSIDE_CASTLE){const e=this._kings[i],t=e-2;this._board[e-1]||this._board[e-2]||this._board[e-3]||this._attacked(s,this._kings[i])||this._attacked(s,e-1)||this._attacked(s,t)||ue(r,i,this._kings[i],t,O,void 0,F.QSIDE_CASTLE)}}if(!e||-1===this._kings[i])return r;const u=[];for(let e=0,t=r.length;e<t;e++)this._makeMove(r[e]),this._isKingAttacked(i)||u.push(r[e]),this._undoMove();return u}move(e,{strict:t=!1}={}){let n=null;if("string"==typeof e)n=this._moveFromSan(e,t);else if(null===e)n=this._moveFromSan(oe,t);else if("object"==typeof e){const t=this._moves();for(let A=0,o=t.length;A<o;A++)if(e.from===ae(t[A].from)&&e.to===ae(t[A].to)&&(!("promotion"in t[A])||e.promotion===t[A].promotion)){n=t[A];break}}if(!n)throw"string"==typeof e?new Error(`Invalid move: ${e}`):new Error(`Invalid move: ${JSON.stringify(e)}`);if(this.isCheck()&&n.flags&F.NULL_MOVE)throw new Error("Null move not allowed when in check");const A=new J(this,n);return this._makeMove(n),this._incPositionCount(),A}_push(e){this._history.push({move:e,kings:{b:this._kings.b,w:this._kings.w},turn:this._turn,castling:{b:this._castling.b,w:this._castling.w},epSquare:this._epSquare,halfMoves:this._halfMoves,moveNumber:this._moveNumber})}_movePiece(e,t){this._hash^=this._pieceKey(e),this._board[t]=this._board[e],delete this._board[e],this._hash^=this._pieceKey(t)}_makeMove(e){const t=this._turn,n=ce(t);if(this._push(e),e.flags&F.NULL_MOVE)return t===Q&&this._moveNumber++,this._halfMoves++,this._turn=n,void(this._epSquare=K);if(this._hash^=this._epKey(),this._hash^=this._castlingKey(),e.captured&&(this._hash^=this._pieceKey(e.to)),this._movePiece(e.from,e.to),e.flags&F.EP_CAPTURE&&(this._turn===Q?this._clear(e.to-16):this._clear(e.to+16)),e.promotion&&(this._clear(e.to),this._set(e.to,{type:e.promotion,color:t})),this._board[e.to].type===O){if(this._kings[t]=e.to,e.flags&F.KSIDE_CASTLE){const t=e.to-1,n=e.to+1;this._movePiece(n,t)}else if(e.flags&F.QSIDE_CASTLE){const t=e.to+1,n=e.to-2;this._movePiece(n,t)}this._castling[t]=0}if(this._castling[t])for(let n=0,A=ne[t].length;n<A;n++)if(e.from===ne[t][n].square&&this._castling[t]&ne[t][n].flag){this._castling[t]^=ne[t][n].flag;break}if(this._castling[n])for(let t=0,A=ne[n].length;t<A;t++)if(e.to===ne[n][t].square&&this._castling[n]&ne[n][t].flag){this._castling[n]^=ne[n][t].flag;break}if(this._hash^=this._castlingKey(),e.flags&F.BIG_PAWN){let A;A=t===Q?e.to-16:e.to+16,(e.to-1&136||this._board[e.to-1]?.type!==Z||this._board[e.to-1]?.color!==n)&&(e.to+1&136||this._board[e.to+1]?.type!==Z||this._board[e.to+1]?.color!==n)?this._epSquare=K:(this._epSquare=A,this._hash^=this._epKey())}else this._epSquare=K;e.piece===Z||e.flags&(F.CAPTURE|F.EP_CAPTURE)?this._halfMoves=0:this._halfMoves++,t===Q&&this._moveNumber++,this._turn=n,this._hash^=D}undo(){const e=this._hash,t=this._undoMove();if(t){const n=new J(this,t);return this._decPositionCount(e),n}return null}_undoMove(){const e=this._history.pop();if(void 0===e)return null;this._hash^=this._epKey(),this._hash^=this._castlingKey();const t=e.move;this._kings=e.kings,this._turn=e.turn,this._castling=e.castling,this._epSquare=e.epSquare,this._halfMoves=e.halfMoves,this._moveNumber=e.moveNumber,this._hash^=this._epKey(),this._hash^=this._castlingKey(),this._hash^=D;const n=this._turn,A=ce(n);if(t.flags&F.NULL_MOVE)return t;if(this._movePiece(t.to,t.from),t.piece&&(this._clear(t.from),this._set(t.from,{type:t.piece,color:n})),t.captured)if(t.flags&F.EP_CAPTURE){let e;e=n===Q?t.to-16:t.to+16,this._set(e,{type:Z,color:A})}else this._set(t.to,{type:t.captured,color:A});if(t.flags&(F.KSIDE_CASTLE|F.QSIDE_CASTLE)){let e,n;t.flags&F.KSIDE_CASTLE?(e=t.to+1,n=t.to-1):(e=t.to-2,n=t.to+1),this._movePiece(n,e)}return t}pgn({newline:e="\n",maxWidth:t=0}={}){const n=[];let A=!1;for(const t in this._header){this._header[t]&&n.push(`[${t} "${this._header[t]}"]`+e),A=!0}A&&this._history.length&&n.push(e);const o=e=>{const t=this._comments[this.fen()];if(void 0!==t){e=`${e}${e.length>0?" ":""}{${t}}`}return e},r=[];for(;this._history.length>0;)r.push(this._undoMove());const i=[];let s="";for(0===r.length&&i.push(o(""));r.length>0;){s=o(s);const e=r.pop();if(!e)break;if(this._history.length||"b"!==e.color)"w"===e.color&&(s.length&&i.push(s),s=this._moveNumber+".");else{const e=`${this._moveNumber}. ...`;s=s?`${s} ${e}`:e}s=s+" "+this._moveToSan(e,this._moves({legal:!0})),this._makeMove(e)}if(s.length&&i.push(o(s)),i.push(this._header.Result||"*"),0===t)return n.join("")+i.join(" ");const a=function(){return n.length>0&&" "===n[n.length-1]&&(n.pop(),!0)},c=function(A,o){for(const r of o.split(" "))if(r){if(A+r.length>t){for(;a();)A--;n.push(e),A=0}n.push(r),A+=r.length,n.push(" "),A++}return a()&&A--,A};let l=0;for(let A=0;A<i.length;A++)l+i[A].length>t&&i[A].includes("{")?l=c(l,i[A]):(l+i[A].length>t&&0!==A?(" "===n[n.length-1]&&n.pop(),n.push(e),l=0):0!==A&&(n.push(" "),l++),n.push(i[A]),l+=i[A].length);return n.join("")}header(...e){for(let t=0;t<e.length;t+=2)"string"==typeof e[t]&&"string"==typeof e[t+1]&&(this._header[e[t]]=e[t+1]);return this._header}setHeader(e,t){return this._header[e]=t??L[e]??null,this.getHeaders()}removeHeader(e){return e in this._header&&(this._header[e]=L[e]||null,!0)}getHeaders(){const e={};for(const[t,n]of Object.entries(this._header))null!==n&&(e[t]=n);return e}loadPgn(e,{strict:t=!1,newlineChar:n="\r?\n"}={}){"\r?\n"!==n&&(e=e.replace(new RegExp(n,"g"),"\n"));const A=C(e);this.reset();const o=A.headers;let r="";for(const e in o)"fen"===e.toLowerCase()&&(r=o[e]),this.header(e,o[e]);if(t){if("1"===o.SetUp){if(!("FEN"in o))throw new Error("Invalid PGN: FEN tag must be supplied with SetUp tag");this.load(o.FEN,{preserveHeaders:!0})}}else r&&this.load(r,{preserveHeaders:!0});let i=A.root;for(;i;){if(i.move){const e=this._moveFromSan(i.move,t);if(null==e)throw new Error(`Invalid move in PGN: ${i.move}`);this._makeMove(e),this._incPositionCount()}void 0!==i.comment&&(this._comments[this.fen()]=i.comment),i=i.variations[0]}const s=A.result;s&&Object.keys(this._header).length&&this._header.Result!==s&&this.setHeader("Result",s)}_moveToSan(e,t){let n="";if(e.flags&F.KSIDE_CASTLE)n="O-O";else if(e.flags&F.QSIDE_CASTLE)n="O-O-O";else{if(e.flags&F.NULL_MOVE)return oe;if(e.piece!==Z){const A=function(e,t){const n=e.from,A=e.to,o=e.piece;let r=0,i=0,s=0;for(let e=0,a=t.length;e<a;e++){const a=t[e].from,c=t[e].to;o===t[e].piece&&n!==a&&A===c&&(r++,re(n)===re(a)&&i++,ie(n)===ie(a)&&s++)}return r>0?i>0&&s>0?ae(n):s>0?ae(n).charAt(1):ae(n).charAt(0):""}(e,t);n+=e.piece.toUpperCase()+A}e.flags&(F.CAPTURE|F.EP_CAPTURE)&&(e.piece===Z&&(n+=ae(e.from)[0]),n+="x"),n+=ae(e.to),e.promotion&&(n+="="+e.promotion.toUpperCase())}return this._makeMove(e),this.isCheck()&&(this.isCheckmate()?n+="#":n+="+"),this._undoMove(),n}_moveFromSan(e,t=!1){let n=pe(e);if(t||("0-0"===n?n="O-O":"0-0-0"===n&&(n="O-O-O")),n==oe){return{color:this._turn,from:0,to:0,piece:"k",flags:F.NULL_MOVE}}let A,o,r,i,s,a=he(n),c=this._moves({legal:!0,piece:a});for(let e=0,t=c.length;e<t;e++)if(n===pe(this._moveToSan(c[e],c)))return c[e];if(t)return null;let l=!1;if(o=n.match(/([pnbrqkPNBRQK])?([a-h][1-8])x?-?([a-h][1-8])([qrbnQRBN])?/),o?(A=o[1],r=o[2],i=o[3],s=o[4],1==r.length&&(l=!0)):(o=n.match(/([pnbrqkPNBRQK])?([a-h]?[1-8]?)x?-?([a-h][1-8])([qrbnQRBN])?/),o&&(A=o[1],r=o[2],i=o[3],s=o[4],1==r.length&&(l=!0))),a=he(n),c=this._moves({legal:!0,piece:A||a}),!i)return null;for(let e=0,t=c.length;e<t;e++)if(r){if(!(A&&A.toLowerCase()!=c[e].piece||W[r]!=c[e].from||W[i]!=c[e].to||s&&s.toLowerCase()!=c[e].promotion))return c[e];if(l){const t=ae(c[e].from);if(!(A&&A.toLowerCase()!=c[e].piece||W[i]!=c[e].to||r!=t[0]&&r!=t[1]||s&&s.toLowerCase()!=c[e].promotion))return c[e]}}else if(n===pe(this._moveToSan(c[e],c)).replace("x",""))return c[e];return null}ascii(){let e=" +------------------------+\n";for(let t=W.a8;t<=W.h1;t++){if(0===ie(t)&&(e+=" "+"87654321"[re(t)]+" |"),this._board[t]){const n=this._board[t].type;e+=" "+(this._board[t].color===T?n.toUpperCase():n.toLowerCase())+" "}else e+=" . ";t+1&136&&(e+="|\n",t+=8)}return e+=" +------------------------+\n",e+=" a b c d e f g h",e}perft(e){const t=this._moves({legal:!1});let n=0;const A=this._turn;for(let o=0,r=t.length;o<r;o++)this._makeMove(t[o]),this._isKingAttacked(A)||(e-1>0?n+=this.perft(e-1):n++),this._undoMove();return n}setTurn(e){return this._turn!=e&&(this.move("--"),!0)}turn(){return this._turn}board(){const e=[];let t=[];for(let n=W.a8;n<=W.h1;n++)null==this._board[n]?t.push(null):t.push({square:ae(n),type:this._board[n].type,color:this._board[n].color}),n+1&136&&(e.push(t),t=[],n+=8);return e}squareColor(e){if(e in W){const t=W[e];return(re(t)+ie(t))%2==0?"light":"dark"}return null}history({verbose:e=!1}={}){const t=[],n=[];for(;this._history.length>0;)t.push(this._undoMove());for(;;){const A=t.pop();if(!A)break;e?n.push(new J(this,A)):n.push(this._moveToSan(A,this._moves())),this._makeMove(A)}return n}_getPositionCount(e){return this._positionCount.get(e)??0}_incPositionCount(){this._positionCount.set(this._hash,(this._positionCount.get(this._hash)??0)+1)}_decPositionCount(e){const t=this._positionCount.get(e)??0;1===t?this._positionCount.delete(e):this._positionCount.set(e,t-1)}_pruneComments(){const e=[],t={},n=e=>{e in this._comments&&(t[e]=this._comments[e])};for(;this._history.length>0;)e.push(this._undoMove());for(n(this.fen());;){const t=e.pop();if(!t)break;this._makeMove(t),n(this.fen())}this._comments=t}getComment(){return this._comments[this.fen()]}setComment(e){this._comments[this.fen()]=e.replace("{","[").replace("}","]")}deleteComment(){return this.removeComment()}removeComment(){const e=this._comments[this.fen()];return delete this._comments[this.fen()],e}getComments(){return this._pruneComments(),Object.keys(this._comments).map(e=>({fen:e,comment:this._comments[e]}))}deleteComments(){return this.removeComments()}removeComments(){return this._pruneComments(),Object.keys(this._comments).map(e=>{const t=this._comments[e];return delete this._comments[e],{fen:e,comment:t}})}setCastlingRights(e,t){for(const n of[O,U])void 0!==t[n]&&(t[n]?this._castling[e]|=te[n]:this._castling[e]&=~te[n]);this._updateCastlingRights();const n=this.getCastlingRights(e);return!(void 0!==t[O]&&t[O]!==n[O]||void 0!==t[U]&&t[U]!==n[U])}getCastlingRights(e){return{[O]:0!==(this._castling[e]&te[O]),[U]:0!==(this._castling[e]&te[U])}}moveNumber(){return this._moveNumber}}const de={initial:"rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1",empty:"8/8/8/8/8/8/8/8 w - - 0 1"},me=de.initial,fe={fen:de,initialFen:me,emptyFen:de.empty},be=e=>{const[t,n]=r(e.fen||me),[A,o]=r(new ge(t));i(()=>{e.fen&&(n(e.fen),o(new ge(e.fen)),a([]))},[e.fen,e.reset]);const[s,a]=r([]),c=e.lastMove&&e.lastMove.promotion,l="w"===A.turn()?"white":"black",[u]=r(e.orientation||l),h=(e,t,o)=>{a([e,t]);try{const r=A.move({from:e,to:t,promotion:o});return n(A.fen()),r}catch{return!1}};return{chess:A,fen:t,turnColor:l,lastMove:s,orientation:u,promotion:c,onMove:h,onPromote:e=>h(s[0],s[1],e),onUndo:()=>{const e=A.undo();return e?(n(A.fen()),a([]),e):null}}},ye=()=>{const{theme:e,setTheme:t}=s(p);return{theme:e,setTheme:t,handleChecked:e=>{const n=e.target.name,A=e.target.checked;b.local.set(`chessground.${n}`,A),t(e=>({...e,[n]:A}))},handleChange:e=>{const n=e.target.name,A=e.target.value;b.local.set(`chessground.${n}`,A),t(e=>({...e,[n]:A}))}}},Ie=(e=!1)=>{const[t,n]=r(e);return{isOpen:t,show:()=>{n(!0)},hide:()=>{n(!1)},toggle:()=>{n(!t)}}};function ke(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var A=n.call(e,t||"default");if("object"!=typeof A)return A;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}
|
|
28
|
+
/** @license React v16.13.1
|
|
29
|
+
* react-is.production.min.js
|
|
30
|
+
*
|
|
31
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
32
|
+
*
|
|
33
|
+
* This source code is licensed under the MIT license found in the
|
|
34
|
+
* LICENSE file in the root directory of this source tree.
|
|
35
|
+
*/(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var we="function"==typeof Symbol&&Symbol.for,Ce=we?Symbol.for("react.element"):60103,ve=we?Symbol.for("react.portal"):60106,Se=we?Symbol.for("react.fragment"):60107,Ee=we?Symbol.for("react.strict_mode"):60108,Ve=we?Symbol.for("react.profiler"):60114,Ne=we?Symbol.for("react.provider"):60109,Me=we?Symbol.for("react.context"):60110,xe=we?Symbol.for("react.async_mode"):60111,Be=we?Symbol.for("react.concurrent_mode"):60111,De=we?Symbol.for("react.forward_ref"):60112,Te=we?Symbol.for("react.suspense"):60113,Qe=we?Symbol.for("react.suspense_list"):60120,Ze=we?Symbol.for("react.memo"):60115,je=we?Symbol.for("react.lazy"):60116,Pe=we?Symbol.for("react.block"):60121,Ue=we?Symbol.for("react.fundamental"):60117,Oe=we?Symbol.for("react.responder"):60118,qe=we?Symbol.for("react.scope"):60119;function Je(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case Ce:switch(e=e.type){case xe:case Be:case Se:case Ve:case Ee:case Te:return e;default:switch(e=e&&e.$$typeof){case Me:case De:case je:case Ze:case Ne:return e;default:return t}}case ve:return t}}}function Ke(e){return Je(e)===Be}var Ge={AsyncMode:xe,ConcurrentMode:Be,ContextConsumer:Me,ContextProvider:Ne,Element:Ce,ForwardRef:De,Fragment:Se,Lazy:je,Memo:Ze,Portal:ve,Profiler:Ve,StrictMode:Ee,Suspense:Te,isAsyncMode:function(e){return Ke(e)||Je(e)===xe},isConcurrentMode:Ke,isContextConsumer:function(e){return Je(e)===Me},isContextProvider:function(e){return Je(e)===Ne},isElement:function(e){return"object"==typeof e&&null!==e&&e.$$typeof===Ce},isForwardRef:function(e){return Je(e)===De},isFragment:function(e){return Je(e)===Se},isLazy:function(e){return Je(e)===je},isMemo:function(e){return Je(e)===Ze},isPortal:function(e){return Je(e)===ve},isProfiler:function(e){return Je(e)===Ve},isStrictMode:function(e){return Je(e)===Ee},isSuspense:function(e){return Je(e)===Te},isValidElementType:function(e){return"string"==typeof e||"function"==typeof e||e===Se||e===Be||e===Ve||e===Ee||e===Te||e===Qe||"object"==typeof e&&null!==e&&(e.$$typeof===je||e.$$typeof===Ze||e.$$typeof===Ne||e.$$typeof===Me||e.$$typeof===De||e.$$typeof===Ue||e.$$typeof===Oe||e.$$typeof===qe||e.$$typeof===Pe)},typeOf:Je},Re=f(function(e,t){"production"!==process.env.NODE_ENV&&function(){var e="function"==typeof Symbol&&Symbol.for,n=e?Symbol.for("react.element"):60103,A=e?Symbol.for("react.portal"):60106,o=e?Symbol.for("react.fragment"):60107,r=e?Symbol.for("react.strict_mode"):60108,i=e?Symbol.for("react.profiler"):60114,s=e?Symbol.for("react.provider"):60109,a=e?Symbol.for("react.context"):60110,c=e?Symbol.for("react.async_mode"):60111,l=e?Symbol.for("react.concurrent_mode"):60111,u=e?Symbol.for("react.forward_ref"):60112,h=e?Symbol.for("react.suspense"):60113,p=e?Symbol.for("react.suspense_list"):60120,g=e?Symbol.for("react.memo"):60115,d=e?Symbol.for("react.lazy"):60116,m=e?Symbol.for("react.block"):60121,f=e?Symbol.for("react.fundamental"):60117,b=e?Symbol.for("react.responder"):60118,y=e?Symbol.for("react.scope"):60119;function I(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:var p=e.type;switch(p){case c:case l:case o:case i:case r:case h:return p;default:var m=p&&p.$$typeof;switch(m){case a:case u:case d:case g:case s:return m;default:return t}}case A:return t}}}var k=c,w=l,C=a,v=s,S=n,E=u,V=o,N=d,M=g,x=A,B=i,D=r,T=h,Q=!1;function Z(e){return I(e)===l}t.AsyncMode=k,t.ConcurrentMode=w,t.ContextConsumer=C,t.ContextProvider=v,t.Element=S,t.ForwardRef=E,t.Fragment=V,t.Lazy=N,t.Memo=M,t.Portal=x,t.Profiler=B,t.StrictMode=D,t.Suspense=T,t.isAsyncMode=function(e){return Q||(Q=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),Z(e)||I(e)===c},t.isConcurrentMode=Z,t.isContextConsumer=function(e){return I(e)===a},t.isContextProvider=function(e){return I(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===n},t.isForwardRef=function(e){return I(e)===u},t.isFragment=function(e){return I(e)===o},t.isLazy=function(e){return I(e)===d},t.isMemo=function(e){return I(e)===g},t.isPortal=function(e){return I(e)===A},t.isProfiler=function(e){return I(e)===i},t.isStrictMode=function(e){return I(e)===r},t.isSuspense=function(e){return I(e)===h},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===l||e===i||e===r||e===h||e===p||"object"==typeof e&&null!==e&&(e.$$typeof===d||e.$$typeof===g||e.$$typeof===s||e.$$typeof===a||e.$$typeof===u||e.$$typeof===f||e.$$typeof===b||e.$$typeof===y||e.$$typeof===m)},t.typeOf=I}()}),Fe=f(function(e){"production"===process.env.NODE_ENV?e.exports=Ge:e.exports=Re}),Le=Object.getOwnPropertySymbols,ze=Object.prototype.hasOwnProperty,We=Object.prototype.propertyIsEnumerable;var Ye=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;var A=Object.getOwnPropertyNames(t).map(function(e){return t[e]});if("0123456789"!==A.join(""))return!1;var o={};return"abcdefghijklmnopqrst".split("").forEach(function(e){o[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},o)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,A,o=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),r=1;r<arguments.length;r++){for(var i in n=Object(arguments[r]))ze.call(n,i)&&(o[i]=n[i]);if(Le){A=Le(n);for(var s=0;s<A.length;s++)We.call(n,A[s])&&(o[A[s]]=n[A[s]])}}return o},_e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",He=function(){};if("production"!==process.env.NODE_ENV){var Xe=_e,$e={},et=Function.call.bind(Object.prototype.hasOwnProperty);He=function(e){var t="Warning: "+e;"undefined"!=typeof console&&console.error(t);try{throw new Error(t)}catch(e){}}}function tt(e,t,n,A,o){if("production"!==process.env.NODE_ENV)for(var r in e)if(et(e,r)){var i;try{if("function"!=typeof e[r]){var s=Error((A||"React class")+": "+n+" type `"+r+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[r]+"`.");throw s.name="Invariant Violation",s}i=e[r](t,r,A,n,null,Xe)}catch(e){i=e}if(!i||i instanceof Error||He((A||"React class")+": type specification of "+n+" `"+r+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof i+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),i instanceof Error&&!(i.message in $e)){$e[i.message]=!0;var a=o?o():"";He("Failed "+n+" type: "+i.message+(null!=a?a:""))}}}tt.resetWarningCache=function(){"production"!==process.env.NODE_ENV&&($e={})};var nt=tt,At=Function.call.bind(Object.prototype.hasOwnProperty),ot=function(){};function rt(){return null}"production"!==process.env.NODE_ENV&&(ot=function(e){var t="Warning: "+e;"undefined"!=typeof console&&console.error(t);try{throw new Error(t)}catch(e){}});var it=function(e,t){var n="function"==typeof Symbol&&Symbol.iterator;var A="<<anonymous>>",o={array:a("array"),bool:a("boolean"),func:a("function"),number:a("number"),object:a("object"),string:a("string"),symbol:a("symbol"),any:s(rt),arrayOf:function(e){return s(function(t,n,A,o,r){if("function"!=typeof e)return new i("Property `"+r+"` of component `"+A+"` has invalid PropType notation inside arrayOf.");var s=t[n];if(!Array.isArray(s))return new i("Invalid "+o+" `"+r+"` of type `"+l(s)+"` supplied to `"+A+"`, expected an array.");for(var a=0;a<s.length;a++){var c=e(s,a,A,o,r+"["+a+"]",_e);if(c instanceof Error)return c}return null})},element:s(function(t,n,A,o,r){var s=t[n];return e(s)?null:new i("Invalid "+o+" `"+r+"` of type `"+l(s)+"` supplied to `"+A+"`, expected a single ReactElement.")}),elementType:s(function(e,t,n,A,o){var r=e[t];return Fe.isValidElementType(r)?null:new i("Invalid "+A+" `"+o+"` of type `"+l(r)+"` supplied to `"+n+"`, expected a single ReactElement type.")}),instanceOf:function(e){return s(function(t,n,o,r,s){if(!(t[n]instanceof e)){var a=e.name||A;return new i("Invalid "+r+" `"+s+"` of type `"+(((c=t[n]).constructor&&c.constructor.name?c.constructor.name:A)+"` supplied to `")+o+"`, expected instance of `"+a+"`.")}var c;return null})},node:s(function(e,t,n,A,o){return c(e[t])?null:new i("Invalid "+A+" `"+o+"` supplied to `"+n+"`, expected a ReactNode.")}),objectOf:function(e){return s(function(t,n,A,o,r){if("function"!=typeof e)return new i("Property `"+r+"` of component `"+A+"` has invalid PropType notation inside objectOf.");var s=t[n],a=l(s);if("object"!==a)return new i("Invalid "+o+" `"+r+"` of type `"+a+"` supplied to `"+A+"`, expected an object.");for(var c in s)if(At(s,c)){var u=e(s,c,A,o,r+"."+c,_e);if(u instanceof Error)return u}return null})},oneOf:function(e){if(!Array.isArray(e))return"production"!==process.env.NODE_ENV&&ot(arguments.length>1?"Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).":"Invalid argument supplied to oneOf, expected an array."),rt;return s(function(t,n,A,o,s){for(var a=t[n],c=0;c<e.length;c++)if(r(a,e[c]))return null;var l=JSON.stringify(e,function(e,t){return"symbol"===u(t)?String(t):t});return new i("Invalid "+o+" `"+s+"` of value `"+String(a)+"` supplied to `"+A+"`, expected one of "+l+".")})},oneOfType:function(e){if(!Array.isArray(e))return"production"!==process.env.NODE_ENV&&ot("Invalid argument supplied to oneOfType, expected an instance of array."),rt;for(var t=0;t<e.length;t++){var n=e[t];if("function"!=typeof n)return ot("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+h(n)+" at index "+t+"."),rt}return s(function(t,n,A,o,r){for(var s=0;s<e.length;s++)if(null==(0,e[s])(t,n,A,o,r,_e))return null;return new i("Invalid "+o+" `"+r+"` supplied to `"+A+"`.")})},shape:function(e){return s(function(t,n,A,o,r){var s=t[n],a=l(s);if("object"!==a)return new i("Invalid "+o+" `"+r+"` of type `"+a+"` supplied to `"+A+"`, expected `object`.");for(var c in e){var u=e[c];if(u){var h=u(s,c,A,o,r+"."+c,_e);if(h)return h}}return null})},exact:function(e){return s(function(t,n,A,o,r){var s=t[n],a=l(s);if("object"!==a)return new i("Invalid "+o+" `"+r+"` of type `"+a+"` supplied to `"+A+"`, expected `object`.");var c=Ye({},t[n],e);for(var u in c){var h=e[u];if(!h)return new i("Invalid "+o+" `"+r+"` key `"+u+"` supplied to `"+A+"`.\nBad object: "+JSON.stringify(t[n],null," ")+"\nValid keys: "+JSON.stringify(Object.keys(e),null," "));var p=h(s,u,A,o,r+"."+u,_e);if(p)return p}return null})}};function r(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function i(e){this.message=e,this.stack=""}function s(e){if("production"!==process.env.NODE_ENV)var n={},o=0;function r(r,s,a,c,l,u,h){if(c=c||A,u=u||a,h!==_e){if(t){var p=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw p.name="Invariant Violation",p}if("production"!==process.env.NODE_ENV&&"undefined"!=typeof console){var g=c+":"+a;!n[g]&&o<3&&(ot("You are manually calling a React.PropTypes validation function for the `"+u+"` prop on `"+c+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),n[g]=!0,o++)}}return null==s[a]?r?null===s[a]?new i("The "+l+" `"+u+"` is marked as required in `"+c+"`, but its value is `null`."):new i("The "+l+" `"+u+"` is marked as required in `"+c+"`, but its value is `undefined`."):null:e(s,a,c,l,u)}var s=r.bind(null,!1);return s.isRequired=r.bind(null,!0),s}function a(e){return s(function(t,n,A,o,r,s){var a=t[n];return l(a)!==e?new i("Invalid "+o+" `"+r+"` of type `"+u(a)+"` supplied to `"+A+"`, expected `"+e+"`."):null})}function c(t){switch(typeof t){case"number":case"string":case"undefined":return!0;case"boolean":return!t;case"object":if(Array.isArray(t))return t.every(c);if(null===t||e(t))return!0;var A=function(e){var t=e&&(n&&e[n]||e["@@iterator"]);if("function"==typeof t)return t}(t);if(!A)return!1;var o,r=A.call(t);if(A!==t.entries){for(;!(o=r.next()).done;)if(!c(o.value))return!1}else for(;!(o=r.next()).done;){var i=o.value;if(i&&!c(i[1]))return!1}return!0;default:return!1}}function l(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":function(e,t){return"symbol"===e||!!t&&("Symbol"===t["@@toStringTag"]||"function"==typeof Symbol&&t instanceof Symbol)}(t,e)?"symbol":t}function u(e){if(null==e)return""+e;var t=l(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}function h(e){var t=u(e);switch(t){case"array":case"object":return"an "+t;case"boolean":case"date":case"regexp":return"a "+t;default:return t}}return i.prototype=Error.prototype,o.checkPropTypes=nt,o.resetWarningCache=nt.resetWarningCache,o.PropTypes=o,o};function st(){}function at(){}at.resetWarningCache=st;var ct=f(function(e){if("production"!==process.env.NODE_ENV){var t=Fe;e.exports=it(t.isElement,!0)}else e.exports=function(){function e(e,t,n,A,o,r){if(r!==_e){var i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:at,resetWarningCache:st};return n.PropTypes=n,n}()});const lt=["white","black"],ut=["a","b","c","d","e","f","g","h"],ht=["1","2","3","4","5","6","7","8"],pt=[...ht].reverse(),gt=Array.prototype.concat(...ut.map(e=>ht.map(t=>e+t))),dt=e=>gt[8*e[0]+e[1]],mt=e=>[e.charCodeAt(0)-97,e.charCodeAt(1)-49],ft=gt.map(mt);const bt=()=>{let e;return{start(){e=performance.now()},cancel(){e=void 0},stop(){if(!e)return 0;const t=performance.now()-e;return e=void 0,t}}},yt=e=>"white"===e?"black":"white",It=(e,t)=>{const n=e[0]-t[0],A=e[1]-t[1];return n*n+A*A},kt=(e,t)=>e.role===t.role&&e.color===t.color,wt=(e,t,n,A)=>[(t?e[0]:7-e[0])*n,(t?7-e[1]:e[1])*A],Ct=e=>{const t=e.width/8,n=e.height/8;return(e,A)=>wt(e,A,t,n)},vt=(e,t)=>wt(e,t,100,100),St=(e,t)=>{e.style.transform=`translate(${t[0]}px,${t[1]}px)`},Et=(e,t)=>{e.style.transform=`translate(${t[0]}%,${t[1]}%)`},Vt=(e,t)=>{e.style.visibility=t?"visible":"hidden"},Nt=e=>{var t;return e.clientX||0===e.clientX?[e.clientX,e.clientY]:(null===(t=e.targetTouches)||void 0===t?void 0:t[0])?[e.targetTouches[0].clientX,e.targetTouches[0].clientY]:void 0},Mt=e=>2===e.buttons||2===e.button,xt=(e,t)=>{const n=document.createElement(e);return t&&(n.className=t),n};function Bt(e,t,n){const A=mt(e);return t||(A[0]=7-A[0],A[1]=7-A[1]),[n.left+n.width*A[0]/8+n.width/16,n.top+n.height*(7-A[1])/8+n.height/16]}function Dt(e,t){return Math.abs(e-t)}const Tt=(e,t,n,A)=>{const o=Dt(e,n),r=Dt(t,A);return 1===o&&2===r||2===o&&1===r},Qt=(e,t,n,A)=>Dt(e,n)===Dt(t,A),Zt=(e,t,n,A)=>e===n||t===A,jt=(e,t,n,A)=>Qt(e,t,n,A)||Zt(e,t,n,A);function Pt(e,t,n){const A=e.get(t);if(!A)return[];const o=mt(t),r=A.role,i="pawn"===r?(s=A.color,(e,t,n,A)=>Dt(e,n)<2&&("white"===s?A===t+1||t<=1&&A===t+2&&e===n:A===t-1||t>=6&&A===t-2&&e===n)):"knight"===r?Tt:"bishop"===r?Qt:"rook"===r?Zt:"queen"===r?jt:function(e,t,n){return(A,o,r,i)=>Dt(A,r)<2&&Dt(o,i)<2||n&&o===i&&o===("white"===e?0:7)&&(4===A&&(2===r&&t.includes(0)||6===r&&t.includes(7))||t.includes(r))}(A.color,function(e,t){const n="white"===t?"1":"8",A=[];for(const[o,r]of e)o[1]===n&&r.color===t&&"rook"===r.role&&A.push(mt(o)[0]);return A}(e,A.color),n);var s;return ft.filter(e=>(o[0]!==e[0]||o[1]!==e[1])&&i(o[0],o[1],e[0],e[1])).map(dt)}function Ut(e,...t){e&&setTimeout(()=>e(...t),1)}function Ot(e){e.premovable.current&&(e.premovable.current=void 0,Ut(e.premovable.events.unset))}function qt(e){const t=e.predroppable;t.current&&(t.current=void 0,Ut(t.events.unset))}function Jt(e,t,n){const A=e.pieces.get(t),o=e.pieces.get(n);if(t===n||!A)return!1;const r=o&&o.color!==A.color?o:void 0;return n===e.selected&&Wt(e),Ut(e.events.move,t,n,r),function(e,t,n){if(!e.autoCastle)return!1;const A=e.pieces.get(t);if(!A||"king"!==A.role)return!1;const o=mt(t),r=mt(n);if(0!==o[1]&&7!==o[1]||o[1]!==r[1])return!1;4!==o[0]||e.pieces.has(n)||(6===r[0]?n=dt([7,r[1]]):2===r[0]&&(n=dt([0,r[1]])));const i=e.pieces.get(n);return!(!i||i.color!==A.color||"rook"!==i.role||(e.pieces.delete(t),e.pieces.delete(n),o[0]<r[0]?(e.pieces.set(dt([6,r[1]]),A),e.pieces.set(dt([5,r[1]]),i)):(e.pieces.set(dt([2,r[1]]),A),e.pieces.set(dt([3,r[1]]),i)),0))}(e,t,n)||(e.pieces.set(n,A),e.pieces.delete(t)),e.lastMove=[t,n],e.check=void 0,Ut(e.events.change),r||!0}function Kt(e,t,n,A){if(e.pieces.has(n)){if(!A)return!1;e.pieces.delete(n)}return Ut(e.events.dropNewPiece,t,n),e.pieces.set(n,t),e.lastMove=[n],e.check=void 0,Ut(e.events.change),e.movable.dests=void 0,e.turnColor=yt(e.turnColor),!0}function Gt(e,t,n){const A=Jt(e,t,n);return A&&(e.movable.dests=void 0,e.turnColor=yt(e.turnColor),e.animation.current=void 0),A}function Rt(e,t,n){if(_t(e,t,n)){const A=Gt(e,t,n);if(A){const o=e.hold.stop();Wt(e);const r={premove:!1,ctrlKey:e.stats.ctrlKey,holdTime:o};return!0!==A&&(r.captured=A),Ut(e.movable.events.after,t,n,r),!0}}else if(function(e,t,n){return t!==n&&Ht(e,t)&&Pt(e.pieces,t,e.premovable.castle).includes(n)}(e,t,n))return function(e,t,n,A){qt(e),e.premovable.current=[t,n],Ut(e.premovable.events.set,t,n,A)}(e,t,n,{ctrlKey:e.stats.ctrlKey}),Wt(e),!0;return Wt(e),!1}function Ft(e,t,n,A){const o=e.pieces.get(t);o&&(function(e,t,n){const A=e.pieces.get(t);return!(!A||t!==n&&e.pieces.has(n)||"both"!==e.movable.color&&(e.movable.color!==A.color||e.turnColor!==A.color))}(e,t,n)||A)?(e.pieces.delete(t),Kt(e,o,n,A),Ut(e.movable.events.afterNewPiece,o.role,n,{premove:!1,predrop:!1})):o&&function(e,t,n){const A=e.pieces.get(t),o=e.pieces.get(n);return!!A&&(!o||o.color!==e.movable.color)&&e.predroppable.enabled&&("pawn"!==A.role||"1"!==n[1]&&"8"!==n[1])&&e.movable.color===A.color&&e.turnColor!==A.color}(e,t,n)?function(e,t,n){Ot(e),e.predroppable.current={role:t,key:n},Ut(e.predroppable.events.set,t,n)}(e,o.role,n):(Ot(e),qt(e)),e.pieces.delete(t),Wt(e)}function Lt(e,t,n){if(Ut(e.events.select,t),e.selected){if(e.selected===t&&!e.draggable.enabled)return Wt(e),void e.hold.cancel();if((e.selectable.enabled||n)&&e.selected!==t&&Rt(e,e.selected,t))return void(e.stats.dragged=!1)}(Yt(e,t)||Ht(e,t))&&(zt(e,t),e.hold.start())}function zt(e,t){e.selected=t,Ht(e,t)?e.premovable.dests=Pt(e.pieces,t,e.premovable.castle):e.premovable.dests=void 0}function Wt(e){e.selected=void 0,e.premovable.dests=void 0,e.hold.cancel()}function Yt(e,t){const n=e.pieces.get(t);return!!n&&("both"===e.movable.color||e.movable.color===n.color&&e.turnColor===n.color)}function _t(e,t,n){var A,o;return t!==n&&Yt(e,t)&&(e.movable.free||!!(null===(o=null===(A=e.movable.dests)||void 0===A?void 0:A.get(t))||void 0===o?void 0:o.includes(n)))}function Ht(e,t){const n=e.pieces.get(t);return!!n&&e.premovable.enabled&&e.movable.color===n.color&&e.turnColor!==n.color}function Xt(e){const t=e.premovable.current;if(!t)return!1;const n=t[0],A=t[1];let o=!1;if(_t(e,n,A)){const t=Gt(e,n,A);if(t){const r={premove:!0};!0!==t&&(r.captured=t),Ut(e.movable.events.after,n,A,r),o=!0}}return Ot(e),o}function $t(e){Ot(e),qt(e),Wt(e)}function en(e){e.movable.color=e.movable.dests=e.animation.current=void 0,$t(e)}function tn(e,t,n){let A=Math.floor(8*(e[0]-n.left)/n.width);t||(A=7-A);let o=7-Math.floor(8*(e[1]-n.top)/n.height);return t||(o=7-o),A>=0&&A<8&&o>=0&&o<8?dt([A,o]):void 0}function nn(e){return"white"===e.orientation}const An="rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR",on={p:"pawn",r:"rook",n:"knight",b:"bishop",q:"queen",k:"king"},rn={pawn:"p",rook:"r",knight:"n",bishop:"b",queen:"q",king:"k"};function sn(e){"start"===e&&(e=An);const t=new Map;let n=7,A=0;for(const o of e)switch(o){case" ":return t;case"/":if(--n,n<0)return t;A=0;break;case"~":{const e=t.get(dt([A,n]));e&&(e.promoted=!0);break}default:{const e=o.charCodeAt(0);if(e<57)A+=e-48;else{const e=o.toLowerCase();t.set(dt([A,n]),{role:on[e],color:o===e?"black":"white"}),++A}}}return t}function an(e,t){var n,A;if((null===(n=t.movable)||void 0===n?void 0:n.dests)&&(e.movable.dests=void 0),(null===(A=t.drawable)||void 0===A?void 0:A.autoShapes)&&(e.drawable.autoShapes=[]),cn(e,t),t.fen&&(e.pieces=sn(t.fen),e.drawable.shapes=[]),"check"in t&&function(e,t){if(e.check=void 0,!0===t&&(t=e.turnColor),t)for(const[n,A]of e.pieces)"king"===A.role&&A.color===t&&(e.check=n)}(e,t.check||!1),"lastMove"in t&&!t.lastMove?e.lastMove=void 0:t.lastMove&&(e.lastMove=t.lastMove),e.selected&&zt(e,e.selected),(!e.animation.duration||e.animation.duration<100)&&(e.animation.enabled=!1),!e.movable.rookCastle&&e.movable.dests){const t="white"===e.movable.color?"1":"8",n="e"+t,A=e.movable.dests.get(n),o=e.pieces.get(n);if(!A||!o||"king"!==o.role)return;e.movable.dests.set(n,A.filter(e=>!(e==="a"+t&&A.includes("c"+t)||e==="h"+t&&A.includes("g"+t))))}}function cn(e,t){for(const n in t)ln(e[n])&&ln(t[n])?cn(e[n],t[n]):e[n]=t[n]}function ln(e){return"object"==typeof e}function un(e,t){return t.animation.enabled?function(e,t){const n=new Map(t.pieces),A=e(t),o=function(e,t){const n=new Map,A=[],o=new Map,r=[],i=[],s=new Map;let a,c,l;for(const[t,n]of e)s.set(t,pn(t,n));for(const e of gt)a=t.pieces.get(e),c=s.get(e),a?c?kt(a,c.piece)||(r.push(c),i.push(pn(e,a))):i.push(pn(e,a)):c&&r.push(c);for(const e of i)c=gn(e,r.filter(t=>kt(e.piece,t.piece))),c&&(l=[c.pos[0]-e.pos[0],c.pos[1]-e.pos[1]],n.set(e.key,l.concat(l)),A.push(c.key));for(const e of r)A.includes(e.key)||o.set(e.key,e.piece);return{anims:n,fadings:o}}(n,t);if(o.anims.size||o.fadings.size){const e=t.animation.current&&t.animation.current.start;t.animation.current={start:performance.now(),frequency:1/t.animation.duration,plan:o},e||dn(t,performance.now())}else t.dom.redraw();return A}(e,t):hn(e,t)}function hn(e,t){const n=e(t);return t.dom.redraw(),n}function pn(e,t){return{key:e,pos:mt(e),piece:t}}function gn(e,t){return t.sort((t,n)=>It(e.pos,t.pos)-It(e.pos,n.pos))[0]}function dn(e,t){const n=e.animation.current;if(void 0===n)return void(e.dom.destroyed||e.dom.redrawNow());const A=1-(t-n.start)*n.frequency;if(A<=0)e.animation.current=void 0,e.dom.redrawNow();else{const t=function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1}(A);for(const e of n.plan.anims.values())e[2]=e[0]*t,e[3]=e[1]*t;e.dom.redrawNow(!0),requestAnimationFrame((t=performance.now())=>dn(e,t))}}const mn=["green","red","blue","yellow"];function fn(e,t){if(t.touches&&t.touches.length>1)return;t.stopPropagation(),t.preventDefault(),t.ctrlKey?Wt(e):$t(e);const n=Nt(t),A=tn(n,nn(e),e.dom.bounds());A&&(e.drawable.current={orig:A,pos:n,brush:wn(t),snapToValidMove:e.drawable.defaultSnapToValidMove},bn(e))}function bn(e){requestAnimationFrame(()=>{const t=e.drawable.current;if(t){const n=tn(t.pos,nn(e),e.dom.bounds());n||(t.snapToValidMove=!1);const A=t.snapToValidMove?function(e,t,n,A){const o=mt(e),r=ft.filter(e=>jt(o[0],o[1],e[0],e[1])||Tt(o[0],o[1],e[0],e[1])),i=r.map(e=>Bt(dt(e),n,A)).map(e=>It(t,e)),[,s]=i.reduce((e,t,n)=>e[0]<t?e:[t,n],[i[0],0]);return dt(r[s])}(t.orig,t.pos,nn(e),e.dom.bounds()):n;A!==t.mouseSq&&(t.mouseSq=A,t.dest=A!==t.orig?A:void 0,e.dom.redrawNow()),bn(e)}})}function yn(e,t){e.drawable.current&&(e.drawable.current.pos=Nt(t))}function In(e){const t=e.drawable.current;t&&(t.mouseSq&&function(e,t){const n=e=>e.orig===t.orig&&e.dest===t.dest,A=e.shapes.find(n);A&&(e.shapes=e.shapes.filter(e=>!n(e)));A&&A.brush===t.brush||e.shapes.push(t);Cn(e)}(e.drawable,t),kn(e))}function kn(e){e.drawable.current&&(e.drawable.current=void 0,e.dom.redraw())}function wn(e){var t;const n=(e.shiftKey||e.ctrlKey)&&Mt(e),A=e.altKey||e.metaKey||(null===(t=e.getModifierState)||void 0===t?void 0:t.call(e,"AltGraph"));return mn[(n?1:0)+(A?2:0)]}function Cn(e){e.onChange&&e.onChange(e.shapes)}function vn(e,t){if(!t.isTrusted||void 0!==t.button&&0!==t.button)return;if(t.touches&&t.touches.length>1)return;const n=e.dom.bounds(),A=Nt(t),o=tn(A,nn(e),n);if(!o)return;const r=e.pieces.get(o),i=e.selected;i||!e.drawable.enabled||!e.drawable.eraseOnClick&&r&&r.color===e.turnColor||function(e){e.drawable.shapes.length&&(e.drawable.shapes=[],e.dom.redraw(),Cn(e.drawable))}(e),!1===t.cancelable||t.touches&&e.movable.color&&!r&&!i&&!function(e,t){const n=nn(e),A=e.dom.bounds(),o=Math.pow(A.width/8,2);for(const r in e.pieces){const e=Bt(r,n,A);if(It(e,t)<=o)return!0}return!1}(e,A)||t.preventDefault();const s=!!e.premovable.current,a=!!e.predroppable.current;e.stats.ctrlKey=t.ctrlKey,e.selected&&_t(e,e.selected,o)?un(e=>Lt(e,o),e):Lt(e,o);const c=e.selected===o,l=xn(e,o);if(r&&l&&c&&function(e,t){const n=e.pieces.get(t);return!!n&&e.draggable.enabled&&("both"===e.movable.color||e.movable.color===n.color&&(e.turnColor===n.color||e.premovable.enabled))}(e,o)){e.draggable.current={orig:o,piece:r,origPos:A,pos:A,started:e.draggable.autoDistance&&e.stats.dragged,element:l,previouslySelected:i,originTarget:t.target},l.cgDragging=!0,l.classList.add("dragging");const s=e.dom.elements.ghost;s&&(s.className=`ghost ${r.color} ${r.role}`,St(s,Ct(n)(mt(o),nn(e))),Vt(s,!0)),Sn(e)}else s&&Ot(e),a&&qt(e);e.dom.redraw()}function Sn(e){requestAnimationFrame(()=>{var t;const n=e.draggable.current;if(!n)return;(null===(t=e.animation.current)||void 0===t?void 0:t.plan.anims.has(n.orig))&&(e.animation.current=void 0);const A=e.pieces.get(n.orig);if(A&&kt(A,n.piece)){if(!n.started&&It(n.pos,n.origPos)>=Math.pow(e.draggable.distance,2)&&(n.started=!0),n.started){if("function"==typeof n.element){const e=n.element();if(!e)return;e.cgDragging=!0,e.classList.add("dragging"),n.element=e}const t=e.dom.bounds();St(n.element,[n.pos[0]-t.left-t.width/16,n.pos[1]-t.top-t.height/16])}}else Nn(e);Sn(e)})}function En(e,t){e.draggable.current&&(!t.touches||t.touches.length<2)&&(e.draggable.current.pos=Nt(t))}function Vn(e,t){const n=e.draggable.current;if(!n)return;if("touchend"===t.type&&!1!==t.cancelable&&t.preventDefault(),"touchend"===t.type&&n.originTarget!==t.target&&!n.newPiece)return void(e.draggable.current=void 0);Ot(e),qt(e);const A=tn(Nt(t)||n.pos,nn(e),e.dom.bounds());A&&n.started&&n.orig!==A?n.newPiece?Ft(e,n.orig,A,n.force):(e.stats.ctrlKey=t.ctrlKey,Rt(e,n.orig,A)&&(e.stats.dragged=!0)):n.newPiece?e.pieces.delete(n.orig):e.draggable.deleteOnDropOff&&!A&&(e.pieces.delete(n.orig),Ut(e.events.change)),(n.orig!==n.previouslySelected||n.orig!==A&&A)&&e.selectable.enabled||Wt(e),Mn(e),e.draggable.current=void 0,e.dom.redraw()}function Nn(e){const t=e.draggable.current;t&&(t.newPiece&&e.pieces.delete(t.orig),e.draggable.current=void 0,Wt(e),Mn(e),e.dom.redraw())}function Mn(e){const t=e.dom.elements;t.ghost&&Vt(t.ghost,!1)}function xn(e,t){let n=e.dom.elements.board.firstChild;for(;n;){if(n.cgKey===t&&"PIECE"===n.tagName)return n;n=n.nextSibling}}function Bn(e,t){e.exploding&&(t?e.exploding.stage=t:e.exploding=void 0,e.dom.redraw())}function Dn(e,t){function n(){!function(e){e.orientation=yt(e.orientation),e.animation.current=e.draggable.current=e.selected=void 0}(e),t()}return{set(t){t.orientation&&t.orientation!==e.orientation&&n(),(t.fen?un:hn)(e=>an(e,t),e)},state:e,getFen:()=>{return t=e.pieces,pt.map(e=>ut.map(n=>{const A=t.get(n+e);if(A){const e=rn[A.role];return"white"===A.color?e.toUpperCase():e}return"1"}).join("")).join("/").replace(/1{2,}/g,e=>e.length.toString());var t},toggleOrientation:n,setPieces(t){un(e=>function(e,t){for(const[n,A]of t)A?e.pieces.set(n,A):e.pieces.delete(n)}(e,t),e)},selectSquare(t,n){t?un(e=>Lt(e,t,n),e):e.selected&&(Wt(e),e.dom.redraw())},move(t,n){un(e=>Jt(e,t,n),e)},newPiece(t,n){un(e=>Kt(e,t,n),e)},playPremove(){if(e.premovable.current){if(un(Xt,e))return!0;e.dom.redraw()}return!1},playPredrop(t){if(e.predroppable.current){const n=function(e,t){const n=e.predroppable.current;let A=!1;if(!n)return!1;t(n)&&Kt(e,{role:n.role,color:e.movable.color},n.key)&&(Ut(e.movable.events.afterNewPiece,n.role,n.key,{premove:!1,predrop:!0}),A=!0);return qt(e),A}(e,t);return e.dom.redraw(),n}return!1},cancelPremove(){hn(Ot,e)},cancelPredrop(){hn(qt,e)},cancelMove(){hn(e=>{$t(e),Nn(e)},e)},stop(){hn(e=>{en(e),Nn(e)},e)},explode(t){!function(e,t){e.exploding={stage:1,keys:t},e.dom.redraw(),setTimeout(()=>{Bn(e,2),setTimeout(()=>Bn(e,void 0),120)},120)}(e,t)},setAutoShapes(t){hn(e=>e.drawable.autoShapes=t,e)},setShapes(t){hn(e=>e.drawable.shapes=t,e)},getKeyAtDomPos:t=>tn(t,nn(e),e.dom.bounds()),redrawAll:t,dragNewPiece(t,n,A){!function(e,t,n,A){const o="a0";e.pieces.set(o,t),e.dom.redraw();const r=Nt(n);e.draggable.current={orig:o,piece:t,origPos:r,pos:r,started:!0,element:()=>xn(e,o),originTarget:n.target,newPiece:!0,force:!!A},Sn(e)}(e,t,n,A)},destroy(){en(e),e.dom.unbind&&e.dom.unbind(),e.dom.destroyed=!0}}}function Tn(e){return document.createElementNS("http://www.w3.org/2000/svg",e)}function Qn(e,t,n){const A=e.drawable,o=A.current,r=o&&o.mouseSq?o:void 0,i=new Map,s=e.dom.bounds();for(const e of A.shapes.concat(A.autoShapes).concat(r?[r]:[]))e.dest&&i.set(e.dest,(i.get(e.dest)||0)+1);const a=A.shapes.concat(A.autoShapes).map(e=>({shape:e,current:!1,hash:jn(e,i,!1,s)}));r&&a.push({shape:r,current:!0,hash:jn(r,i,!0,s)});const c=a.map(e=>e.hash).join(";");if(c===e.drawable.prevSvgHash)return;e.drawable.prevSvgHash=c;const l=t.querySelector("defs"),u=t.querySelector("g"),h=n.querySelector("g");!function(e,t,n){const A=new Map;let o;for(const n of t)n.shape.dest&&(o=e.brushes[n.shape.brush],n.shape.modifiers&&(o=Rn(o,n.shape.modifiers)),A.set(o.key,o));const r=new Set;let i=n.firstChild;for(;i;)r.add(i.getAttribute("cgKey")),i=i.nextSibling;for(const[e,t]of A.entries())r.has(e)||n.appendChild(Jn(t))}(A,a,l),Zn(e,a.filter(e=>!e.shape.customSvg),A.brushes,i,u),Zn(e,a.filter(e=>e.shape.customSvg),A.brushes,i,h)}function Zn(e,t,n,A,o){const r=e.dom.bounds(),i=new Map,s=[];for(const e of t)i.set(e.hash,!1);let a,c=o.firstChild;for(;c;)a=c.getAttribute("cgHash"),i.has(a)?i.set(a,!0):s.push(c),c=c.nextSibling;for(const e of s)o.removeChild(e);for(const s of t)i.get(s.hash)||o.appendChild(qn(e,s,n,A,r))}function jn({orig:e,dest:t,brush:n,piece:A,modifiers:o,customSvg:r},i,s,a){return[a.width,a.height,s,e,t,n,t&&(i.get(t)||0)>1,A&&Pn(A),o&&Un(o),r&&On(r)].filter(e=>e).join(",")}function Pn(e){return[e.color,e.role,e.scale].filter(e=>e).join(",")}function Un(e){return""+(e.lineWidth||"")}function On(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)>>>0;return"custom-"+t.toString()}function qn(e,{shape:t,current:n,hash:A},o,r,i){let s;if(t.customSvg){const n=Gn(mt(t.orig),e.orientation);s=function(e,t,n){const{width:A,height:o}=n,r=A/8,i=o/8,s=t[0]*r,a=(7-t[1])*i,c=Kn(Tn("g"),{transform:`translate(${s},${a})`}),l=Kn(Tn("svg"),{width:r,height:i,viewBox:"0 0 100 100"});return c.appendChild(l),l.innerHTML=e,c}(t.customSvg,n,i)}else if(t.piece)s=function(e,t,n,A){const o=zn(t,A),r=A.width/8*(n.scale||1),i=n.color[0]+("knight"===n.role?"n":n.role[0]).toUpperCase();return Kn(Tn("image"),{className:`${n.role} ${n.color}`,x:o[0]-r/2,y:o[1]-r/2,width:r,height:r,href:e+i+".svg"})}(e.drawable.pieces.baseUrl,Gn(mt(t.orig),e.orientation),t.piece,i);else{const A=Gn(mt(t.orig),e.orientation);if(t.dest){let a=o[t.brush];t.modifiers&&(a=Rn(a,t.modifiers)),s=function(e,t,n,A,o,r){const i=function(e,t){return(t?20:10)/512*e.width}(r,o&&!A),s=zn(t,r),a=zn(n,r),c=a[0]-s[0],l=a[1]-s[1],u=Math.atan2(l,c),h=Math.cos(u)*i,p=Math.sin(u)*i;return Kn(Tn("line"),{stroke:e.color,"stroke-width":Fn(e,A,r),"stroke-linecap":"round","marker-end":"url(#arrowhead-"+e.key+")",opacity:Ln(e,A),x1:s[0],y1:s[1],x2:a[0]-h,y2:a[1]-p})}(a,A,Gn(mt(t.dest),e.orientation),n,(r.get(t.dest)||0)>1,i)}else s=function(e,t,n,A){const o=zn(t,A),r=function(e){const t=e.width/512;return[3*t,4*t]}(A),i=(A.width+A.height)/32;return Kn(Tn("circle"),{stroke:e.color,"stroke-width":r[n?0:1],fill:"none",opacity:Ln(e,n),cx:o[0],cy:o[1],r:i-r[1]/2})}(o[t.brush],A,n,i)}return s.setAttribute("cgHash",A),s}function Jn(e){const t=Kn(Tn("marker"),{id:"arrowhead-"+e.key,orient:"auto",markerWidth:4,markerHeight:8,refX:2.05,refY:2.01});return t.appendChild(Kn(Tn("path"),{d:"M0,0 V4 L3,2 Z",fill:e.color})),t.setAttribute("cgKey",e.key),t}function Kn(e,t){for(const n in t)e.setAttribute(n,t[n]);return e}function Gn(e,t){return"white"===t?e:[7-e[0],7-e[1]]}function Rn(e,t){return{color:e.color,opacity:Math.round(10*e.opacity)/10,lineWidth:Math.round(t.lineWidth||e.lineWidth),key:[e.key,t.lineWidth].filter(e=>e).join("")}}function Fn(e,t,n){return(e.lineWidth||10)*(t?.85:1)/512*n.width}function Ln(e,t){return(e.opacity||1)*(t?.9:1)}function zn(e,t){return[(e[0]+.5)*t.width/8,(7.5-e[1])*t.height/8]}function Wn(e,t){const n=xt("coords",t);let A;for(const t of e)A=xt("coord"),A.textContent=t,n.appendChild(A);return n}function Yn(e,t){const n=e.dom.elements.board;if(!e.dom.relative&&e.resizable&&"ResizeObserver"in window){new window.ResizeObserver(t).observe(n)}if(e.viewOnly)return;const A=function(e){return t=>{e.draggable.current?Nn(e):e.drawable.current?kn(e):t.shiftKey||Mt(t)?e.drawable.enabled&&fn(e,t):e.viewOnly||(e.dropmode.active?function(e,t){if(!e.dropmode.active)return;Ot(e),qt(e);const n=e.dropmode.piece;if(n){e.pieces.set("a0",n);const A=Nt(t),o=A&&tn(A,nn(e),e.dom.bounds());o&&Ft(e,"a0",o)}e.dom.redraw()}(e,t):vn(e,t))}}(e);n.addEventListener("touchstart",A,{passive:!1}),n.addEventListener("mousedown",A,{passive:!1}),(e.disableContextMenu||e.drawable.enabled)&&n.addEventListener("contextmenu",e=>e.preventDefault())}function _n(e,t,n,A){return e.addEventListener(t,n,A),()=>e.removeEventListener(t,n,A)}function Hn(e,t,n){return A=>{e.drawable.current?e.drawable.enabled&&n(e,A):e.viewOnly||t(e,A)}}function Xn(e){const t=nn(e),n=e.dom.relative?vt:Ct(e.dom.bounds()),A=e.dom.relative?Et:St,o=e.dom.elements.board,r=e.pieces,i=e.animation.current,s=i?i.plan.anims:new Map,a=i?i.plan.fadings:new Map,c=e.draggable.current,l=function(e){var t;const n=new Map;if(e.lastMove&&e.highlight.lastMove)for(const t of e.lastMove)oA(n,t,"last-move");e.check&&e.highlight.check&&oA(n,e.check,"check");if(e.selected&&(oA(n,e.selected,"selected"),e.movable.showDests)){const A=null===(t=e.movable.dests)||void 0===t?void 0:t.get(e.selected);if(A)for(const t of A)oA(n,t,"move-dest"+(e.pieces.has(t)?" oc":""));const o=e.premovable.dests;if(o)for(const t of o)oA(n,t,"premove-dest"+(e.pieces.has(t)?" oc":""))}const A=e.premovable.current;if(A)for(const e of A)oA(n,e,"current-premove");else e.predroppable.current&&oA(n,e.predroppable.current.key,"current-premove");const o=e.exploding;if(o)for(const e of o.keys)oA(n,e,"exploding"+o.stage);return n}(e),u=new Set,h=new Set,p=new Map,g=new Map;let d,m,f,b,y,I,k,w,C,v;for(m=o.firstChild;m;){if(d=m.cgKey,$n(m))if(f=r.get(d),y=s.get(d),I=a.get(d),b=m.cgPiece,!m.cgDragging||c&&c.orig===d||(m.classList.remove("dragging"),A(m,n(mt(d),t)),m.cgDragging=!1),!I&&m.cgFading&&(m.cgFading=!1,m.classList.remove("fading")),f){if(y&&m.cgAnimating&&b===AA(f)){const e=mt(d);e[0]+=y[2],e[1]+=y[3],m.classList.add("anim"),A(m,n(e,t))}else m.cgAnimating&&(m.cgAnimating=!1,m.classList.remove("anim"),A(m,n(mt(d),t)),e.addPieceZIndex&&(m.style.zIndex=nA(mt(d),t)));b!==AA(f)||I&&m.cgFading?I&&b===AA(I)?(m.classList.add("fading"),m.cgFading=!0):rA(p,b,m):u.add(d)}else rA(p,b,m);else if(eA(m)){const e=m.className;l.get(d)===e?h.add(d):rA(g,e,m)}m=m.nextSibling}for(const[e,r]of l)if(!h.has(e)){C=g.get(r),v=C&&C.pop();const i=n(mt(e),t);if(v)v.cgKey=e,A(v,i);else{const t=xt("square",r);t.cgKey=e,A(t,i),o.insertBefore(t,o.firstChild)}}for(const[i,a]of r)if(y=s.get(i),!u.has(i))if(k=p.get(AA(a)),w=k&&k.pop(),w){w.cgKey=i,w.cgFading&&(w.classList.remove("fading"),w.cgFading=!1);const o=mt(i);e.addPieceZIndex&&(w.style.zIndex=nA(o,t)),y&&(w.cgAnimating=!0,w.classList.add("anim"),o[0]+=y[2],o[1]+=y[3]),A(w,n(o,t))}else{const r=AA(a),s=xt("piece",r),c=mt(i);s.cgPiece=r,s.cgKey=i,y&&(s.cgAnimating=!0,c[0]+=y[2],c[1]+=y[3]),A(s,n(c,t)),e.addPieceZIndex&&(s.style.zIndex=nA(c,t)),o.appendChild(s)}for(const t of p.values())tA(e,t);for(const t of g.values())tA(e,t)}function $n(e){return"PIECE"===e.tagName}function eA(e){return"SQUARE"===e.tagName}function tA(e,t){for(const n of t)e.dom.elements.board.removeChild(n)}function nA(e,t){let n=2+8*e[1]+(7-e[0]);return t&&(n=67-n),n+""}function AA(e){return`${e.color} ${e.role}`}function oA(e,t,n){const A=e.get(t);A?e.set(t,`${A} ${n}`):e.set(t,n)}function rA(e,t,n){const A=e.get(t);A?A.push(n):e.set(t,[n])}function iA(e,t){const n={pieces:sn(An),orientation:"white",turnColor:"white",coordinates:!0,autoCastle:!0,viewOnly:!1,disableContextMenu:!1,resizable:!0,addPieceZIndex:!1,pieceKey:!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,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,eraseOnClick:!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}},pieces:{baseUrl:"https://lichess1.org/assets/piece/cburnett/"},prevSvgHash:""},hold:bt()};function A(){const t="dom"in n?n.dom.unbind:void 0,A=n.viewOnly&&!n.drawable.visible,o=function(e,t,n){e.innerHTML="",e.classList.add("cg-wrap");for(const n of lt)e.classList.toggle("orientation-"+n,t.orientation===n);e.classList.toggle("manipulable",!t.viewOnly);const A=xt("cg-helper");e.appendChild(A);const o=xt("cg-container");A.appendChild(o);const r=xt("cg-board");let i,s,a;if(o.appendChild(r),t.drawable.visible&&!n&&(i=Kn(Tn("svg"),{class:"cg-shapes"}),i.appendChild(Tn("defs")),i.appendChild(Tn("g")),s=Kn(Tn("svg"),{class:"cg-custom-svgs"}),s.appendChild(Tn("g")),o.appendChild(i),o.appendChild(s)),t.coordinates){const e="black"===t.orientation?" black":"";o.appendChild(Wn(ht,"ranks"+e)),o.appendChild(Wn(ut,"files"+e))}return t.draggable.showGhost&&!n&&(a=xt("piece","ghost"),Vt(a,!1),o.appendChild(a)),{board:r,container:o,ghost:a,svg:i,customSvg:s}}(e,n,A),r=function(e){let t;const n=()=>(void 0===t&&(t=e()),t);return n.clear=()=>{t=void 0},n}(()=>o.board.getBoundingClientRect()),i=e=>{Xn(a),!e&&o.svg&&Qn(a,o.svg,o.customSvg)},s=()=>{r.clear(),function(e){if(e.dom.relative)return;const t=nn(e),n=Ct(e.dom.bounds());let A=e.dom.elements.board.firstChild;for(;A;)($n(A)&&!A.cgAnimating||eA(A))&&St(A,n(mt(A.cgKey),t)),A=A.nextSibling}(a),o.svg&&Qn(a,o.svg,o.customSvg)},a=n;return a.dom={elements:o,bounds:r,redraw:sA(i),redrawNow:i,unbind:t,relative:A},a.drawable.prevSvgHash="",i(!1),Yn(a,s),t||(a.dom.unbind=function(e,t){const n=[];if(e.dom.relative||!e.resizable||"ResizeObserver"in window||n.push(_n(document.body,"chessground.resize",t)),!e.viewOnly){const t=Hn(e,En,yn),A=Hn(e,Vn,In);for(const e of["touchmove","mousemove"])n.push(_n(document,e,t));for(const e of["touchend","mouseup"])n.push(_n(document,e,A));const o=()=>e.dom.bounds.clear();n.push(_n(document,"scroll",o,{capture:!0,passive:!0})),n.push(_n(window,"resize",o,{passive:!0}))}return()=>n.forEach(e=>e())}(a,s)),a.events.insert&&a.events.insert(o),a}return an(n,t||{}),Dn(A(),A)}function sA(e){let t=!1;return()=>{t||(t=!0,requestAnimationFrame(()=>{e(),t=!1}))}}class aA extends A.Component{buildConfigFromProps(e){const t={events:{}};return Object.keys(aA.types).forEach(n=>{const A=e[n];if(void 0!==A){const e=n.match(/^on([A-Z]\S*)/);e?t.events[e[1].toLowerCase()]=A:t[n]=A}}),t}componentDidMount(){this.board=iA(this.el,this.buildConfigFromProps(this.props)),this.props.shapes&&this.board.setShapes(this.props.shapes)}componentDidUpdate(){this.board=iA(this.el,this.buildConfigFromProps(this.props)),this.props.shapes&&this.board.setShapes(this.props.shapes)}render(){const t={style:{...this.props.style}};return this.props.width&&(t.style.width=this.props.width),this.props.height&&(t.style.height=this.props.height),e("div",{ref:e=>this.el=e,...t})}}ke(aA,"types",{width:ct.oneOfType([ct.string,ct.number]),height:ct.oneOfType([ct.string,ct.number]),fen:ct.string,orientation:ct.string,turnColor:ct.string,check:ct.string,lastMove:ct.array,selected:ct.string,coordinates:ct.bool,autoCastle:ct.bool,viewOnly:ct.bool,disableContextMenu:ct.bool,resizable:ct.bool,addPieceZIndex:ct.bool,hightlight:ct.object,animation:ct.object,movable:ct.object,premovable:ct.object,predroppable:ct.object,draggable:ct.object,selectable:ct.object,onChange:ct.func,onMove:ct.func,onDropNewPiece:ct.func,onSelect:ct.func,items:ct.object,drawable:ct.object}),ke(aA,"defaultProps",{coordinates:!1,resizable:!0,hightlight:{lastMove:!0,check:!0}});const cA=e=>{try{new Audio(e).play()}catch{return()=>{}}},lA=e=>{if("silent"===e)return!1;switch(e){case"lisp":return cA("data:audio/ogg;base64,T2dnUwACAAAAAAAAAADiDSg6AAAAACfTO4oBHgF2b3JiaXMAAAAAAkSsAAD/////AA0CAP////+4AU9nZ1MAAAAAAAAAAAAA4g0oOgEAAAAymRe+EkD/////////////////////PAN2b3JiaXMNAAAATGF2ZjU4LjI5LjEwMAEAAAAfAAAAZW5jb2Rlcj1MYXZjNTguNTQuMTAwIGxpYnZvcmJpcwEFdm9yYmlzKUJDVgEACAAAgCJMGMSA0JBVAAAQAACgrDeWe8i99957gahHFHuIvffee+OsR9B6iLn33nvuvacae8u9995zIDRkFQAABACAKQiacuBC6r33HhnmEVEaKse99x4ZhYkwlBmFPZXaWushk9xC6j3nHggNWQUAAAIAQAghhBRSSCGFFFJIIYUUUkgppZhiiimmmGLKKaccc8wxxyCDDjropJNQQgkppFBKKqmklFJKLdZac+69B91z70H4IIQQQgghhBBCCCGEEEIIQkNWAQAgAAAEQgghZBBCCCGEFFJIIaaYYsopp4DQkFUAACAAgAAAAABJkRTLsRzN0RzN8RzPESVREiXRMi3TUjVTMz1VVEXVVFVXVV1dd23Vdm3Vlm3XVm3Vdm3VVm1Ztm3btm3btm3btm3btm3btm0gNGQVACABAKAjOZIjKZIiKZLjOJIEhIasAgBkAAAEAKAoiuM4juRIjiVpkmZ5lmeJmqiZmuipngqEhqwCAAABAAQAAAAAAOB4iud4jmd5kud4jmd5mqdpmqZpmqZpmqZpmqZpmqZpmqZpmqZpmqZpmqZpmqZpmqZpmqZpmqZpmqZpQGjIKgBAAgBAx3Ecx3Ecx3EcR3IkBwgNWQUAyAAACABAUiTHcixHczTHczxHdETHdEzJlFTJtVwLCA1ZBQAAAgAIAAAAAABAEyxFUzzHkzzPEzXP0zTNE01RNE3TNE3TNE3TNE3TNE3TNE3TNE3TNE3TNE3TNE3TNE3TNE3TNE1TFIHQkFUAAAQAACGdZpZqgAgzkGEgNGQVAIAAAAAYoQhDDAgNWQUAAAQAAIih5CCa0JrzzTkOmuWgqRSb08GJVJsnuamYm3POOeecbM4Z45xzzinKmcWgmdCac85JDJqloJnQmnPOeRKbB62p0ppzzhnnnA7GGWGcc85p0poHqdlYm3POWdCa5qi5FJtzzomUmye1uVSbc84555xzzjnnnHPOqV6czsE54Zxzzonam2u5CV2cc875ZJzuzQnhnHPOOeecc84555xzzglCQ1YBAEAAAARh2BjGnYIgfY4GYhQhpiGTHnSPDpOgMcgppB6NjkZKqYNQUhknpXSC0JBVAAAgAACEEFJIIYUUUkghhRRSSCGGGGKIIaeccgoqqKSSiirKKLPMMssss8wyy6zDzjrrsMMQQwwxtNJKLDXVVmONteaec645SGultdZaK6WUUkoppSA0ZBUAAAIAQCBkkEEGGYUUUkghhphyyimnoIIKCA1ZBQAAAgAIAAAA8CTPER3RER3RER3RER3RER3P8RxREiVREiXRMi1TMz1VVFVXdm1Zl3Xbt4Vd2HXf133f141fF4ZlWZZlWZZlWZZlWZZlWZZlCUJDVgEAIAAAAEIIIYQUUkghhZRijDHHnINOQgmB0JBVAAAgAIAAAAAAR3EUx5EcyZEkS7IkTdIszfI0T/M00RNFUTRNUxVd0RV10xZlUzZd0zVl01Vl1XZl2bZlW7d9WbZ93/d93/d93/d93/d939d1IDRkFQAgAQCgIzmSIimSIjmO40iSBISGrAIAZAAABACgKI7iOI4jSZIkWZImeZZniZqpmZ7pqaIKhIasAgAAAQAEAAAAAACgaIqnmIqniIrniI4oiZZpiZqquaJsyq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7rukBoyCoAQAIAQEdyJEdyJEVSJEVyJAcIDVkFAMgAAAgAwDEcQ1Ikx7IsTfM0T/M00RM90TM9VXRFFwgNWQUAAAIACAAAAAAAwJAMS7EczdEkUVIt1VI11VItVVQ9VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV1TRN0zSB0JCVAAAZAADDtOTScs+NoEgqR7XWklHlJMUcGoqgglZzDRU0iEmLIWIKISYxlg46ppzUGlMpGXNUc2whVIhJDTqmUikGLQhCQ1YIAKEZAA7HASTLAiRLAwAAAAAAAABJ0wDN8wDL8wAAAAAAAABA0jTA8jRA8zwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRNAzTPAzTPAwAAAAAAAADN8wBPFAFPFAEAAAAAAADA8jzAEz3AE0UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxNAzTPAzTPAwAAAAAAAADL8wBPFAHPEwEAAAAAAABA8zzAE0XAE0UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABDgAAARZCoSErAoA4AQCHJEGSIEnQNIBkWdA0aBpMEyBZFjQNmgbTBAAAAAAAAAAAAEDyNGgaNA2iCJA0D5oGTYMoAgAAAAAAAAAAACBpGjQNmgZRBEiaBk2DpkEUAQAAAAAAAAAAANBME6IIUYRpAjzThChCFGGaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIABBwCAABPKQKEhKwKAOAEAh6JYFgAAOJJjWQAA4DiSZQEAgGVZoggAAJaliSIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAEHAIAAE8pAoSErAYAoAACHolgWcBzLAo5jWUCSLAtgWQDNA2gaQBQBgAAAgAIHAIAAGzQlFgcoNGQlABAFAOBQFMvSNFHkOJalaaLIkSxL00SRZWma55kmNM3zTBGi53mmCc/zPNOEaYqiqgJRNE0BAAAFDgAAATZoSiwOUGjISgAgJADA4TiW5Xmi6HmiaJqqynEsy/NEURRNU1VVleNolueJoiiapqqqKsvSNM8TRVE0TVVVXWia54miKJqmqrouPM/zRFEUTVNVXRee53miKIqmqaquC1EURdM0TVVVVdcFomiapqmqquq6QBRF0zRVVVVdF4iiKJqmqqqu6wLTNE1VVVXXlV2Aaaqqqrqu6wJUVVVd13VlGaCqquq6rivLANd1XdeVZVkG4Lqu68qyLAAA4MABACDACDrJqLIIG0248AAUGrIiAIgCAACMYUoxpQxjEkIKoWFMQkghZFJSKimlCkIqJZVSQUilpFIySi2lllIFIZWSSqkgpFJSKQUAgB04AIAdWAiFhqwEAPIAAAhjlGKMMeckQkox5pxzEiGlGHPOOakUY84555yUkjHnnHNOSumYc845J6VkzDnnnJNSOuecc85JKaV0zjnnpJRSQugcdFJKKZ1zDkIBAEAFDgAAATaKbE4wElRoyEoAIBUAwOA4lqVpnieKpmlJkqZ5nueJpqpqkqRpnieKpqmqPM/zRFEUTVNVeZ7niaIomqaqcl1RFEXTNE1VJcuiaIqmqaqqC9M0TdNUVdeFaZqmaaqq68K2VVVVXdd1Yduqqqqu68rAdV3XdWUZyK7ruq4sCwAAT3AAACqwYXWEk6KxwEJDVgIAGQAAhDEIKYQQUsggpBBCSCmFkAAAgAEHAIAAE8pAoSErAYBUAACAEGuttdZaaw1j1lprrbXWEuestdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbVWACB2hQPAToQNqyOcFI0FFhqyEgAIBwAAjEGIMegklFJKhRBj0ElIpbUYK4QYg1BKSq21mDznHIRSWmotxuQ55yCk1FqMMSbXQkgppZZii7G4FkIqKbXWYqzJGJVSai22GGvtxaiUSksxxhhrMMbm1FqMMdZaizE6txJLjDHGWoQRxsUWY6y11yKMEbLF0lqttQZjjLG5tdhqzbkYI4yuLbVWa80FAJg8OABAJdg4w0rSWeFocKEhKwGA3AAAAiGlGGPMOeeccw5CCKlSjDnnHIQQQgihlFJSpRhzzjkIIYRQQimlpIwx5hyEEEIIpZRSSmkpZcw5CCGEUEoppZTSUuuccxBCCKWUUkopJaXUOecghFBKKaWUUkpKLYQQQiihlFJKKaWUlFJKIYRQSimllFJKKamllEIIpZRSSimllFJSSimFEEIppZRSSimlpJRaK6WUUkoppZRSSkkttZRSKKWUUkoppZSSWkoppVJKKaWUUkopJaXUUkqllFJKKaWUUkpLqaWUSimllFJKKaWUlFJKKaVUSimllFJKKSml1FpKKaWUSimllFJaaymlllIqpZRSSimltNRaay21lEoppZRSSmmttZRSSimVUkoppZRSAADQgQMAQIARlRZipxlXHoEjChkmoEJDVgIAZAAADKOUUkktRYIipRiklkIlFXNQUooocw5SrKlCziDmJJWKMYSUg1QyB5VSzEEKIWVMKQatlRg6xpijmGoqoWMMAAAAQQAAgZAJBAqgwEAGABwgJEgBAIUFhg4RIkCMAgPj4tIGACAIkRkiEbEYJCZUA0XFdACwuMCQDwAZGhtpFxfQZYALurjrQAhBCEIQiwMoIAEHJ9zwxBuecIMTdIpKHQgAAAAAgAMAPAAAJBtAREQ0cxwdHh8gISIjJCUmJygCAAAAAAAHAB8AAEkKEBERzRxHh8cHSIjICEmJyQlKAAAggAAAAAAACCAAAQEBAAAAAIAAAAAAAQFPZ2dTAATALgAAAAAAAOINKDoCAAAAUbETtR1CPj04Qz3/C/8Z/yz/MP89/zv/N/82/zP/Nf8eSswNzdElh/C/NkzGDzEFv+vp9/Fq5TyGSjgozNHN/qQTTtChNeEWV8wM0Lt7DW07EBKh+4Uyvk/w9TX5YvyueRVRAKQVX//j8fhmG26Ls+L8P56G79pwW3wAnPgIDiBUUK0gP5DagMgQhgrn+S5kE8Y+vzd2NLQhFt9nuv/JivcA7BU//m18/OXHvhP3jPf/XEaWqX05XpEzVATD0INA5UraqZQgDAIjRwOHq/lxxBPCE4SOGCx0JerXdMoRAOQl99XM37YtnJfcVzN/bVv4FMFKEYKKzWYIGkajYWhEGEVSEJGCIAiCIO8/CX/CD417LLrLSe4A/IH/ND3K39d3M+MNBP88PPLH+u64vlNOyO8rAHLctDepaSdwhSiiIOgGgXqXUXQTFcliEYM0HmRsFI+1J1aAza23D3SWb4b38ffPy05n+WZ6n//gFqS75zexALYy2cWKVdsWEu4VKCoTBjEjlg+qKFHUqlW72AGCqMoU6mWOagD6Wdbh8s3GQ9MyPLSaEqXPsg6Wbz4e6GweOrhWovwM1aqa2siiGgIAoO/wFVtsNFmWIR0VAAAAAABjpyHa7eBGB5CiqWQA4v32buB1nOH6izY0VA2SxLCpKPIm0gm2UdR6jBEjRyiGKYMAwBJBVNiytsBk1VNVZar4tWmTBUDFW0QEJksUPbKMwmAVIKviXeJZZgDIikJZbi+WZVlWGHiCMLBFHNWUHIQaAJ7PZ6UAJksOChRGlmUStC5hYMNkgBLIjR1EBQ5CxehjxtiJBTfLsizL5MCoAACgGYYACWAArDCIlTIWTxFsAID25EsWcl4BCtUNhbBsRmHwctX2N43JgJKdwNpM8wmXAl5ZnchlN7Y58BNADagJ9lht3LqMaQb8USNqwv0BAAAA9u7M1mTZzLB0JBIVAAAAgFwEACBLRgIebOA02FJIAlW4JHT0NWHazw25pZbtmd0zaG5a9lp0pvrTpaECYLHzM4v7l8++/fDFR/tXm82ULGkefHY6nE4q8Ki57gpkWADgyAIvYTeUGLTmlV2/BBntuAwnw6gqGkF37a16imLNCBUGGY8sHKyZBYhNctxhPFTcswoZhZlgkISC6wELlIBFKLwUnqMPRQEJzQA0AGJkFAo3dhANjEALEbaZlwmZRBmAZb0n80hOFIJkqshREilm78tbe/Nm3OjsPOdVcgA1ljYxvU1eVuiE2iGuKxLWqWZqrAUwD/5WxwB+Sb3A49mOidUyfwKF9XJJvZD7PY1tpg/9/IsFCu3lBwCQ+vDhw/j0p+PVughLF1BsdVcqlmFZg4oBAAAAQGoAwEvDEH6/9Wh2XW0/e/H53V3Ifd/quRBhIekpDP0LAGzbHXG/uBxGZDz31mCauAb0MOsv4PnWkzt/98uIVppV8+/zV9M+iWppT/3OEufuf395K10nGmcXaPIw0fOe4Kl4ypkuFtPre9OH3HDYkxTSOfz6M8P0dCVJ7dbM8vYWWTWVDQ5Ex8IJPd3TjC7yMI2WtLmnEkB0kvGyLtRoNQxdZCxGeQeIyLNPTy0M9G73Hq6gb+62jYqnLANYBdL0yLS1SUqwk34Ko5FCGWD9PnehSD1PDbnFV+t+/N2ztrA6UW67XgYTJj3LGQ+hB/7YfBHHe7gIKVwe463nkZvG5klcz7R1rT3k/Uxuqv28PwAApFP/PTXDV/nh5cNy44I7gFw12Ko4yyRRg2IAAAAASg0A+BnNy84Yr3OpoN6vvpuh39ufMT0lT+6d2JxKap5OP9u0r1OgEd3r9lMLAQBO2gFgiLxUcfYh8/VfDwNy1lEJE53pqZ4jrmd+Z9xrUqwZVbqHlqn/KXpy2PDtvnr3CDThrHXm67H0nucqfJqcDeA0msP4rez1Qk+bBPhNRdOdjIo9UOyBqJLpwaR1J4xw9iyV1lRNUdWTdRWQDD6b7rduwaGG8a/vxwDeMTi/HvRhAyRVxCQzTaKU4QoTQObwVkBbmKwF40YPQ8rQNey/T+Ik2JFBlgEM7Oc3IWPBdBFUI8mTYp5tPgxMKJkWAN6nfMFjG0c34i+PtBV4vX3KB3leJncl/XKFTUi7fwAAc33EtT9v/c+Xl29+WOwjsytTxSk2qaoKAACgFACwa7W82vY9+Ds/jIst4PLK7wZAyCDEa+WjbE4v3k94GXf3+qtnDttY5K5z1zuLpQMcdVy34F2sWVQenc6mLzf7B9NnuqtfTrP6OU7UNvn1q2tfx6d+r+l9200PgJrvn9oHrtqPpvd358kDqHTeaXw2fG2N7lgn6rBZJaHHroHNiu7O+sD9g8IFMPSml66CKoDJ6l6Z05VxTubAcFiozZjZnOybypr3L14TWDAN2Sm4BbX4Krq6sw7dqwjP433BOpypnZX7c+ihIIELdo6dxcIjpMLXe3ImxjNq5frSBD+0E6W2u+tmtv6vlxpNOrpDusWxHcy9dWT1QMi8CEYACACeh3yh9cxH90wXYwrr6t1Dvul6jsk9y6UvU1DIuT/V6mkJAMy72y/W74oy+tDsFa+VyZUrMQZVFQAAYLynCgDgm8nSt03RrXU74g71ZtdanXH+7meeBJ5uv/OcX9vHydXdWm7mlVowDE+lp6iTOhu+VKrWejrJAgpmGSg6kPAhfPiw8eky+Px6eK3Pe56iGDC7KDpPfYZSJzp9X3Dv8IIe+WTvQ59vVYXaHtrU9MU0P7bM23KckC7X3GQBcMJLPX5ysnaU55ysYYi6k67d9TWt7sw5XTS8VQwJWSzSytne2pyCBHJnqj5X088RCT17poE5xZ10kWxqsww8t0sf8o7791q879lojpDL/Vk1y54vyQSC4HOduGPa9kevnpIww3VsGNSeziTvo9PtznxCwNkWPdsrwXsBPuQKAB6H/MXKeZW7u708TCF435BfuF1j5nb68GhbdLik+wcAYOiPxy+rv9/v/9ob+8hsMSxbxTKqqhgAAEATAPhtxeyM7mDGcdmXjE7dmyEAAEoQUvBM7g8OTy1OqK6nRxd/te/6djt/UL3bkGQxq58/L/NqOM3n+wZqWsMusmZTePMZDz6Pyvq60t/0TK2fGaF/ckBSwxNnLc8wPb8/BLLMOL/+TMQmd+3zP8enSyP0bVHVo+0c6M4Zc86m6f+karrgUFd8MtV21vgRs5y562v6dE5DFfkMFt2ju0acbHpYr2a6iivZnTx3amigJzncCdkU8Um1aq7Hp2YwFAPkb/aRfqxjHEgjIQNZ1xh7KB1Rkd1ebqLTJ2gY9TZ/w19R2VnSRkSWkryuty6fNOvDUM8w+WpudEuzgQNeh/wjy7kZ3Ptc+rGFdvXGIb9ZO21yf/ND30Yq4eN9T0xMBwCJ/+544mupUINUbKUqthhGVVUAAID/m1UAQCXGILXnzYZlw/nA1/2Dz/3d98fvQdLeYti9cfunb4LHl8nXT1/x8tP3Tce2gFO/2pXT0DMes+T0Hf3OMyp9pmiVzHzt5/4lPrmMhBO32VGZJ3mus2nz6r6mdn8rN8E6c2oSVZydQ5Ins7chu+GFAiqlmvTpac6h80+z5yWnpjfZldTkf3rqVA7PoWao2nm4ACfDdde/8fZNZZkZKq6t/FWZiubkFnutFJPMNXFV55NDVWQDmn1tmfB8N9s4N5WnU4cXsbzST4sgIDUVg9oCy6PQVUjxtTfRu0q631F7virHmVaSaGrabNpyiUw+OHJzLf1CRbfeAQqehvwS5RmNG2nFFD6uacgvWZ7BujkemOD+VOtEAAAyTqbKu2vr4zDsbO5Xlq3EsqyqqgAAAKKuqwoA+NLs49XPPMmk8awXiJ5/x9Xnu5cuUGl/fOjz1Z2OG7+93r3n03xpvk9DifOhaCB7jmmcddSpovSr+jqDlfE6m1CripdZVSvJ4+umf1kUntYEmy3bVxsfSlTDj/CaXi+C7pxMOIk6+5fcs1nbiXRQZhLYOSdZzqxXOfaxkhntDdDPYOWg7nfDURcJZwpiuIbqLq6DaAqqWs0uHH5sJEQjLfP+44zAOVlNU02eY9ivOpoLIJ3k/Kmu3v3vdCj1RdP7yXRiWcC0fu31ukvqPpmp1fO3x7Z5/n6Ptl4U7yJddKbSXthCo59e0jSaR6OVf0ck+xtOdw5pCgA+hnzR9paYMVcMsXXxlSFfpr43uFNgpAnG/Yl6IwGg0Vysq/e/e51r790tj4DKVVU5V2JUVREAAAD1KKEKILPkSx/f7ZSX6/Lx+8X5yUVzm6/a3uIDPhTAL741n7v75DKtRqHY1fnLEtwUwPSQ+Ab+9OpTRc3ePjudPNaQ5zHvPyvvlpv/S94XvgpQnGQKg/ez/zdd2T3P9lQV2Yx3nor2nE0/Zp9Dt5MVEEXWOkVnbSaZpcbPmnkaZuWQWZ1kneu6c0hO5ZUY7qiev1xF5qo1mZP532k2g8U1K/OrnW/mfjx6sHMn+55ahq5NnZyHzN15J06onDfpk9crWPvWPa5peCg6Ijq2lZUCzLbS2ltXxe/hfb5z6DmVgb2aork5cGZc3QEHoVIYBdqnkMpVcpWn4z6pAx6GfKVlf1TNszBuYAz52ebd1XxbxBFdH9yTAO+jHzrvPHtVTYatqmJUFQEAAABgMVNVM9IoaG6NRUvrrLX/N4OXibaE2MDce1/IyU4dvzxE/mY7y66Y9ifH74/TJF+U6th3ovexgAKuGjMLMgis7ClLdJxkT0WV9T7XnbGEobPoKUZRWKDhybU0Muj9amoxme9c1jWbm9ovuyfnfFQmnK+WXYfDtodImGKFZzM8wNLgujqpHJhnG9ErI877e+HIPa1p6Ley9xlI9/lWOvu8D8zZPe3dXoZqprv/X9N5pibp6Vi7SCoTYKDfnn6fYZ61Z5l9EmowvYODMUv9m2UB0mTemO5dwG7z4bFgTyDyZv98DXBk1p2mkwPfA8EJKB6G/O8oX5oADhCG/O8oH5oADjAYJCAb2UgAAAAAAAAAAAAAACCIxtgbmHEfBpZpL+uyLkNalp8mHGyAXpcwAFwAAAMAQNWAgh4A");case"piano":return cA("data:audio/ogg;base64,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");case"sfx":return cA("data:audio/ogg;base64,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");default:return cA("data:audio/ogg;base64,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")}};var uA="object"==typeof global&&global&&global.Object===Object&&global,hA="object"==typeof self&&self&&self.Object===Object&&self,pA=uA||hA||Function("return this")(),gA=pA.Symbol,dA=Object.prototype,mA=dA.hasOwnProperty,fA=dA.toString,bA=gA?gA.toStringTag:void 0;var yA=Object.prototype.toString;var IA=gA?gA.toStringTag:void 0;function kA(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":IA&&IA in Object(e)?function(e){var t=mA.call(e,bA),n=e[bA];try{e[bA]=void 0;var A=!0}catch(e){}var o=fA.call(e);return A&&(t?e[bA]=n:delete e[bA]),o}(e):function(e){return yA.call(e)}(e)}function wA(e){return null!=e&&"object"==typeof e}var CA=Array.isArray;function vA(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function SA(e){if(!vA(e))return!1;var t=kA(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}var EA,VA=pA["__core-js_shared__"],NA=(EA=/[^.]+$/.exec(VA&&VA.keys&&VA.keys.IE_PROTO||""))?"Symbol(src)_1."+EA:"";var MA=Function.prototype.toString;function xA(e){if(null!=e){try{return MA.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var BA=/^\[object .+?Constructor\]$/,DA=Function.prototype,TA=Object.prototype,QA=DA.toString,ZA=TA.hasOwnProperty,jA=RegExp("^"+QA.call(ZA).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function PA(e){return!(!vA(e)||(t=e,NA&&NA in t))&&(SA(e)?jA:BA).test(xA(e));var t}function UA(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return PA(n)?n:void 0}var OA=UA(pA,"WeakMap");function qA(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}var JA=Object.prototype;function KA(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||JA)}function GA(e){return wA(e)&&"[object Arguments]"==kA(e)}var RA=Object.prototype,FA=RA.hasOwnProperty,LA=RA.propertyIsEnumerable,zA=GA(function(){return arguments}())?GA:function(e){return wA(e)&&FA.call(e,"callee")&&!LA.call(e,"callee")};var WA="object"==typeof exports&&exports&&!exports.nodeType&&exports,YA=WA&&"object"==typeof module&&module&&!module.nodeType&&module,_A=YA&&YA.exports===WA?pA.Buffer:void 0,HA=(_A?_A.isBuffer:void 0)||function(){return!1},XA={};XA["[object Float32Array]"]=XA["[object Float64Array]"]=XA["[object Int8Array]"]=XA["[object Int16Array]"]=XA["[object Int32Array]"]=XA["[object Uint8Array]"]=XA["[object Uint8ClampedArray]"]=XA["[object Uint16Array]"]=XA["[object Uint32Array]"]=!0,XA["[object Arguments]"]=XA["[object Array]"]=XA["[object ArrayBuffer]"]=XA["[object Boolean]"]=XA["[object DataView]"]=XA["[object Date]"]=XA["[object Error]"]=XA["[object Function]"]=XA["[object Map]"]=XA["[object Number]"]=XA["[object Object]"]=XA["[object RegExp]"]=XA["[object Set]"]=XA["[object String]"]=XA["[object WeakMap]"]=!1;var $A,eo="object"==typeof exports&&exports&&!exports.nodeType&&exports,to=eo&&"object"==typeof module&&module&&!module.nodeType&&module,no=to&&to.exports===eo&&uA.process,Ao=function(){try{var e=to&&to.require&&to.require("util").types;return e||no&&no.binding&&no.binding("util")}catch(e){}}(),oo=Ao&&Ao.isTypedArray,ro=oo?($A=oo,function(e){return $A(e)}):function(e){return wA(e)&&qA(e.length)&&!!XA[kA(e)]};var io=function(e,t){return function(n){return e(t(n))}}(Object.keys,Object),so=io,ao=Object.prototype.hasOwnProperty;var co=UA(pA,"Map"),lo=UA(pA,"DataView"),uo=UA(pA,"Promise"),ho=UA(pA,"Set"),po="[object Map]",go="[object Promise]",mo="[object Set]",fo="[object WeakMap]",bo="[object DataView]",yo=xA(lo),Io=xA(co),ko=xA(uo),wo=xA(ho),Co=xA(OA),vo=kA;(lo&&vo(new lo(new ArrayBuffer(1)))!=bo||co&&vo(new co)!=po||uo&&vo(uo.resolve())!=go||ho&&vo(new ho)!=mo||OA&&vo(new OA)!=fo)&&(vo=function(e){var t=kA(e),n="[object Object]"==t?e.constructor:void 0,A=n?xA(n):"";if(A)switch(A){case yo:return bo;case Io:return po;case ko:return go;case wo:return mo;case Co:return fo}return t});var So=vo,Eo=Object.prototype.hasOwnProperty;function Vo(e){if(null==e)return!0;if(function(e){return null!=e&&qA(e.length)&&!SA(e)}(e)&&(CA(e)||"string"==typeof e||"function"==typeof e.splice||HA(e)||ro(e)||zA(e)))return!e.length;var t=So(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(KA(e))return!function(e){if(!KA(e))return so(e);var t=[];for(var n in Object(e))ao.call(e,n)&&"constructor"!=n&&t.push(n);return t}(e).length;for(var n in e)if(Eo.call(e,n))return!1;return!0}const No=e=>{const t={};e.orientation&&(t.orientation=e.orientation,"w"===t.orientation&&(t.orientation="white"),"b"===t.orientation&&(t.orientation="black"));const n=["shapes","onSelect","drawable","lastMove"];for(const A of n)e[A]&&!Vo(e[A])&&(t[A]=e[A]);return!1===e.drawable&&(t.drawable={enabled:!1}),t.shapes&&(t.shapes=(e=>{try{return e.forEach(e=>{e.dest=e.dest.replace(/\]/g,"")}),e}catch{return e}})(t.shapes)),e.editing&&(t.movable={free:!1},t.drawable={enabled:!1}),e.viewOnly&&(t.draggable=!1,t.movable={free:!1},t.drawable={enabled:!1}),e.readOnly&&(t.draggable=!1,t.movable={free:!1},t.drawable={enabled:!1},t.coordinates=!1),t};var Mo=(e,t,n)=>{try{const A=e.get(t);return"p"===A.type&&("w"===A.color&&"8"===n[1]||"b"===A.color&&"1"===n[1])}catch{return!1}};const xo=e=>le(e)&&(e=>{if(!e)return!1;const t=e.split(" ")[0];return 1===(t.match(/k/g)||[]).length&&1===(t.match(/K/g)||[]).length})(e),Bo=(e,t,n=!1)=>{if(!xo(e.fen()))return{free:!1};const A=new Map,o="w"===e.turn()?"white":"black";R.forEach(t=>{const n=e.moves({square:t,verbose:!0});n.length&&A.set(t,n.map(e=>e.to))});const r={color:o,dests:A,free:!1};return n&&t&&t!==o&&(r.color=t,r.dests=new Map),r};var Do=f(function(e,t){e.exports=((e,t)=>(()=>{var n={494:()=>{},156:t=>{t.exports=e},111:e=>{e.exports=t}},A={};function o(e){var t=A[e];if(void 0!==t)return t.exports;var r=A[e]={exports:{}};return n[e](r,r.exports,o),r.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};return(()=>{o.r(r),o.d(r,{default:()=>a});var e=o(156),t=o.n(e),n=o(111);function A(e){const{children:n,replace:A,bodyClass:o,header:r,footer:i,onDragStart:s,onDragEnd:a,onClose:c,closeButton:l,closeButtonPosition:u}=e;return A?n:t().createElement("div",{className:"panel panel-default "+("bottom"===u?"additional-row":"")},t().createElement("div",{className:"panel-heading",onTouchStart:s,onMouseDown:s,onTouchEnd:a,onMouseUp:a},r&&t().createElement("h3",{className:"panel-title"},r)),t().createElement("div",{className:o},n),i&&t().createElement("div",{className:"panel-footer"},i),t().createElement("div",{className:"close",onClick:c,style:{position:"header"===u?"absolute":"static",margin:"bottom"===u?"10px auto":""}},l))}A.defaultProps={closeButton:"×",closeButtonPosition:"header",replace:!1,draggable:!1};const i=A;function s(A){let o=Math.random().toString();const[r,s]=(0,e.useState)(!1),[a,c]=(0,e.useState)(null),[l,u]=(0,e.useState)(null),[h,p]=(0,e.useState)(0),[g,d]=(0,e.useState)(0),[m,f]=(0,e.useState)(0),[b,y]=(0,e.useState)(0),{isOpen:I,onClose:k}=A,w=(0,e.useCallback)(()=>{document.body.classList.remove("body-modal-fix")},[]);(0,e.useEffect)(()=>(I&&(document.addEventListener("keydown",C),document.activeElement instanceof HTMLElement&&document.activeElement.blur(),document.body.classList.add("body-modal-fix")),()=>{document.querySelector(".pure-modal")||(document.removeEventListener("keydown",C),w(),c(null),u(null),p(0),d(0),f(0),y(0))}),[I]);const C=(0,e.useCallback)(e=>{const t=document.querySelectorAll(".pure-modal"),n=t.length>1,A=t[t.length-1];return!(n&&!A.className.includes(o)||"Escape"!==e.key||!document.activeElement||(v(e),0))},[v,o]);if(!I)return null;function v(e){e&&(e.stopPropagation(),e.preventDefault()),null==k||k({isPassive:Boolean(e)})}function S(e){return e instanceof TouchEvent&&e.changedTouches.length>0?{pageX:e.changedTouches[0].pageX,pageY:e.changedTouches[0].pageY}:e instanceof MouseEvent?{pageX:e.pageX,pageY:e.pageY}:{pageX:0,pageY:0}}function E(e){if(e instanceof TouchEvent&&e.changedTouches&&e.changedTouches.length>1)return V();e.preventDefault();const{pageX:t,pageY:n}=S(e);"number"==typeof a&&"number"==typeof l&&(p(t-a-m),d(n-l-b))}function V(){return s(!1)}const{children:N,replace:M=!1,className:x,header:B,footer:D,scrollable:T=!0,draggable:Q=!1,width:Z,closeButton:j,closeButtonPosition:P,portal:U=!1}=A;let O=["pure-modal-backdrop"],q=["pure-modal",o],J=["panel-body"];x&&(q=q.concat(x)),T?J=J.concat("scrollable"):(O=O.concat("scrollable"),q=q.concat("auto-height")),Q&&(O=O.concat("backdrop-overflow-hidden"));const K=t().createElement("div",{className:O.join(" "),onMouseDown:function(e){if(e){if(!e.target.classList.contains("pure-modal-backdrop"))return;e.stopPropagation(),e.preventDefault()}v(e)},onTouchMove:r?E:void 0,onMouseMove:r?E:void 0},t().createElement("div",{className:q.join(" "),style:{transform:`translate(${h}px, ${g}px)`,transition:"none",width:Z}},t().createElement(i,{replace:M,header:B,footer:D,onDragStart:Q?function(e){if(e instanceof TouchEvent&&e.changedTouches&&e.changedTouches.length>1)return;e.preventDefault();const{pageX:t,pageY:n}=S(e),{top:A,left:o}=e.currentTarget.getBoundingClientRect();s(!0),c("number"==typeof a?a:o),u("number"==typeof l?l:A),f(t-o),y(n-A)}:void 0,onDragEnd:Q?V:void 0,onClose:v,bodyClass:J.join(" "),closeButton:j,closeButtonPosition:P},N)));return U?(0,n.createPortal)(K,document.body):K}o(494);const a=t().memo(s)})(),r})())(A,h)}),To=m(Do);const Qo=({role:t,color:n,highlighted:A,selectPiece:o})=>{const r="bin"===t;return e("div",{className:I("edit-square border border-gray-300 rounded",A&&"bg-orange-300"),children:e("piece",{className:I("spare-piece",t,n,r&&"next-trash"),onClick:()=>{"function"==typeof o&&o({role:t,color:n})}})})},Zo=({isOpen:n,hide:A,onPromote:o,color:r="white"})=>{const i=e=>{o(e),A()};return e(To,{closeButton:"",isOpen:n,onClose:A,children:t("div",{className:"promote flex gap-2 py-1.5 justify-center",children:[e(Qo,{color:r,role:"queen",selectPiece:()=>i("q")}),e(Qo,{color:r,role:"rook",selectPiece:()=>i("r")}),e(Qo,{color:r,role:"bishop",selectPiece:()=>i("b")}),e(Qo,{color:r,role:"knight",selectPiece:()=>i("n")})]})})},jo=(n,A)=>{const{theme:o}=ye(),{isOpen:r,show:s,hide:l}=Ie(),{chess:h,fen:p,turnColor:g,lastMove:d,orientation:m,promotion:f,onMove:b,onPromote:y,onUndo:k}=be(n),w=async(e,t,A)=>{const r=A?.promotion||f;if(!b(e,t,r)){return Mo(h,e,t)&&!r&&s(),!1}return o.playSounds&&lA(o.sounds),"function"==typeof n.onMove&&await n.onMove(h),!0},{onSetPremove:C,onUnsetPremove:v,onPlayPremove:S,onCancelPremove:E,onPremovePromotion:V}=(e=>{const t=a(null),n=c((e,n,A)=>{t.current={orig:e,dest:n,promotion:A?.promotion||null}},[]),A=c(()=>{t.current=null},[]),o=c(()=>"q",[]);return{onSetPremove:n,onUnsetPremove:A,onPlayPremove:c(async()=>{if(t.current){const{orig:n,dest:A,promotion:o}=t.current,r={orig:n,dest:A,promotion:o};t.current=null;const i={promotion:r.promotion||"q"};return await e(r.orig,r.dest,i)}return!1},[e]),onCancelPremove:c(()=>!!t.current&&(t.current=null,!0),[]),onPremovePromotion:o}})(w),N=a(),M=async(e,t,n)=>{if(n){const A={promotion:n};return await w(e,t,A)}return await w(e,t)};u(A,()=>({board:N.current?.board,chess:h,undo:k,move:M,playPremove:S,cancelPremove:E}));i(()=>{"function"==typeof n.setPromoting&&n.setPromoting(r)},[r]),i(()=>{"function"==typeof n.onFenChange&&n.onFenChange(p)},[p]);const x=n.premoves?{enabled:!0,showDests:!0,castle:!0,events:{set:C,unset:v},promote:V}:{enabled:!1};return t("div",{className:I("chessground",o.highlight&&"highlight",o.board,o.pieces),children:[e(aA,{ref:N,coordinates:o.coordinates,onMove:w,fen:p,turnColor:g,lastMove:d,orientation:m,movable:Bo(h,m,n.premoves),premovable:x,...No(n)}),e(Zo,{isOpen:r,hide:l,color:g,onPromote:async e=>{if(!y(e))return!1;o.playSounds&&lA(o.sounds),"function"==typeof n.onMove&&await n.onMove(h)}})]})};var Po=l(jo);const Uo=e=>{try{return"w"===e.split(" ")[1]?"white":"black"}catch{return"white"}},Oo=e=>{const[t,n]=r((e=>{try{return e.orientation?e.orientation:e.fen?Uo(e.fen):"white"}catch{return"white"}})(e));return i(()=>{e.reset&&n(Uo(e.fen))},[e.reset]),[t,()=>{n(e=>"white"===e?"black":"white")}]},qo=()=>{const{theme:A,handleChange:o}=ye();return t(n,{children:[e("div",{children:"Board"}),t("select",{name:"board",className:"bg-white border border-gray-300 px-2 py-1.5 w-full text-gray-800 rounded",defaultValue:A.board,onChange:o,children:[e("option",{value:"green",children:"Green"}),e("option",{value:"brown",children:"Brown"}),e("option",{value:"ruby",children:"Ruby"}),e("option",{value:"purple",children:"Purple"}),e("option",{value:"teal",children:"Teal"})]})]})},Jo=()=>{const{theme:A,handleChecked:o}=ye();return t(n,{children:[e("div",{children:"Coordinates"}),e("div",{className:"flex",children:e("input",{name:"coordinates",type:"checkbox",className:"checkbox rounded border border-gray-300",defaultChecked:A.coordinates,onChange:o})})]})},Ko=()=>{const{theme:A,handleChecked:o}=ye();return t(n,{children:[e("div",{children:"Highlight moves"}),e("div",{className:"flex",children:e("input",{name:"highlight",type:"checkbox",className:"checkbox rounded border border-gray-300",defaultChecked:A.highlight,onChange:o})})]})},Go=()=>{const{theme:A,handleChange:o}=ye();return t(n,{children:[e("div",{children:"Pieces"}),t("select",{name:"pieces",className:"bg-white border border-gray-300 px-2 py-1.5 w-full text-gray-800 rounded",defaultValue:A.pieces,onChange:o,children:[e("option",{value:"cburnett",children:"Cburnett"}),e("option",{value:"neo",children:"Neo"}),e("option",{value:"alpha",children:"Alpha"}),e("option",{value:"bases",children:"Bases"}),e("option",{value:"classic",children:"Classic"})]})]})},Ro=()=>{const{theme:A,handleChecked:o}=ye();return t(n,{children:[e("div",{children:"Play sounds"}),e("div",{className:"flex",children:e("input",{name:"playSounds",type:"checkbox",className:"checkbox rounded border border-gray-300",defaultChecked:A.playSounds,onChange:o})})]})},Fo=()=>{const{theme:A,handleChange:o}=ye();return t(n,{children:[e("div",{children:"Sounds"}),t("select",{name:"sounds",className:"bg-white border border-gray-300 px-2 py-1.5 w-full text-gray-800 rounded",defaultValue:A.sounds,onChange:o,children:[e("option",{value:"robot",children:"Robot"}),e("option",{value:"piano",children:"Piano"}),e("option",{value:"lisp",children:"Lisp"}),e("option",{value:"sfx",children:"SFX"})]})]})},Lo=()=>{const{isOpen:A,show:o,hide:r}=Ie();return t(n,{children:[e("button",{type:"button",className:"next-button next-settings",title:"Settings",onClick:o,children:e("i",{className:"next-cog"})}),e(To,{header:"Settings",isOpen:A,onClose:r,children:t("div",{className:"grid grid-cols-2 gap-3 items-center text-sm",children:[e(Go,{}),e(qo,{}),e(Ko,{}),e(Ro,{}),e(Fo,{}),e(Jo,{})]})})]})},zo=t=>e("button",{type:"button",className:"next-button next-flip",title:"Flip board",...t,children:e("i",{className:"next-sync"})}),Wo=({flip:n,readOnly:A})=>A?null:t("div",{className:"chessground-footer text-gray-400 flex flex-row-reverse gap-2 py-1.5",children:[e(Lo,{}),e(zo,{onClick:n})]});var Yo=l((n,A)=>{const[o,r]=Oo(n);return e(y,{children:t("div",{className:"next-chessground",children:[e(Po,{...n,ref:A,orientation:o}),e(Wo,{flip:r,readOnly:n.readOnly})]})})});const _o=t=>{const{theme:n}=ye();return e("div",{className:I("spare-pieces flex gap-2",n.pieces),children:["bin","pawn","knight","bishop","rook","queen","king"].map(n=>((t,n)=>{const{color:A="white",selected:o={role:null,color:null}}=n,r=t===o.role&&A===o.color;return e(Qo,{highlighted:r,role:t,color:A,...n},`${t}-${A}`)})(n,t))})},Ho=e=>{const t=new Map;return t.set(e,null),t},Xo=({onChange:n})=>{const[A,o]=r("w"),[s,a]=r("-");i(()=>{"function"==typeof n&&n([A,s].join(" "))},[A,s]);const c=e=>{const{value:t}=e.target;o(t)},l=e=>{const{value:t}=e.target;a(((e,t)=>{if(!t)return e;const n=["K","Q","k","q"].map(n=>n!==t?e.includes(n)?n:"":e.includes(t)?"":t).join("");return n.length?n:"-"})(s,t))};return t("div",{className:"flex flex-col gap-2 w-full",children:[t("div",{className:"flex gap-2 w-full",children:[t("div",{children:[e("input",{defaultChecked:!0,className:"mx-1",type:"radio",id:"white-radio",name:"side-to-move",value:"w",onChange:c}),e("label",{htmlFor:"white-radio",children:"White to move"})]}),t("div",{children:[e("input",{className:"mx-1",type:"radio",id:"black-radio",name:"side-to-move",value:"b",onChange:c}),e("label",{htmlFor:"black-radio",children:"Black to move"})]})]}),t("div",{className:"flex flex-col gap-2 w-full",children:[t("div",{className:"flex w-full gap-4",children:[e("div",{children:e("span",{children:"White can"})}),t("div",{children:[e("input",{className:"mx-1",type:"checkbox",id:"white-short-castle",value:"K",onChange:l}),e("label",{htmlFor:"white-short-castle",children:"O-O"})]}),t("div",{children:[e("input",{className:"mx-1",type:"checkbox",id:"white-long-castle",value:"Q",onChange:l}),e("label",{htmlFor:"white-long-castle",children:"O-O-O"})]})]}),t("div",{className:"flex w-full gap-4",children:[e("div",{children:e("span",{children:"Black can"})}),t("div",{children:[e("input",{className:"mx-1",type:"checkbox",id:"black-short-castle",value:"k",onChange:l}),e("label",{htmlFor:"black-short-castle",children:"O-O"})]}),t("div",{children:[e("input",{className:"mx-1",type:"checkbox",id:"black-long-castle",value:"q",onChange:l}),e("label",{htmlFor:"black-long-castle",children:"O-O-O"})]})]})]})]})},$o=(n,A)=>{const[o,s]=r(n.fen||fe.emptyFen),[a,c]=r({role:null,color:null});i(()=>{n.fen&&s(n.fen)},[n.fen]),i(()=>{"function"==typeof n.onSelect&&n.onSelect(o)},[o]);return e(y,{children:t("div",{className:"next-chessground gap-2",children:[e(_o,{selected:a,selectPiece:c,color:"black"}),e(Po,{...n,ref:A,fen:o,onSelect:e=>{const t=o.split(" ");t.shift();const n=t.join(" "),r=((e,t,n)=>{if(!e)throw new Error("Chessground is not defined");if(!t||!t.role||!t.color)return e.getFen();if("bin"===t.role)return e.setPieces(Ho(n)),e.getFen();const A=e.state.pieces.get(n);return A?A.role===t.role&&A.color===t.color?(e.setPieces(Ho(n)),e.getFen()):(e.setPieces(Ho(n)),e.newPiece(t,n),e.getFen()):(e.newPiece(t,n),e.getFen())})(A.current.board,a,e),i=[r,n].join(" ");s(i)},editing:!0}),e(_o,{selected:a,selectPiece:c,color:"white"}),e(Xo,{onChange:e=>{const t=[o.split(" ")[0],e,"- 0 1"].join(" ");s(t)}})]})})};var er=l($o);class tr{constructor(e){if("undefined"==typeof window)return!1;if(!window.chessEngineWorker){const t=e??process.env.STOCKFISH_PATH;window.chessEngineWorker=new Worker(t)}this.skillLevel=20,this.maxDepth=40,this.resolveTimeout=null,this.isAnalyzing=!1,this.fen=fe.initialFen}getTurnFromFen(e){return e.split(" ")[1]}normalizeScoreValue(e){const{fen:t}=this;return"b"===this.getTurnFromFen(t)?-1*e:e}isInfoMessage(e){return!(!e||!e.data)&&e.data.startsWith("info")}setSkillLevel(){window.chessEngineWorker.postMessage("setoption name Skill Level value "+this.skillLevel),window.chessEngineWorker.postMessage("setoption name Skill Level Maximum Error value 5000"),window.chessEngineWorker.postMessage("setoption name Skill Level Probability value 1")}async init(){await this.use_uci(),await this.is_ready(),this.setSkillLevel()}getScoreFromInfo(e){if(e.startsWith("info depth 0")){const t=e.split(" "),n=t[4],A=this.normalizeScoreValue(Number(t[5]));return this.isAnalyzing=!1,{type:n,value:A}}if(e.startsWith("info depth ")){const t=e.split(" ");return{type:t[8],value:this.normalizeScoreValue(Number(t[9]))}}return{type:"cp",value:0}}parseData(e){const t=e.split(" ")[2];let n="";e.indexOf(" pv ")>-1&&(n=e.split(" pv ")[1].split(" bmc ")[0]);return{depth:t,pv:n,score:this.getScoreFromInfo(e)}}use_uci(){return new Promise(e=>{window.chessEngineWorker.postMessage("uci"),window.chessEngineWorker.onmessage=t=>{"uciok"===t.data&&e(t)}})}is_ready(){return new Promise(e=>{window.chessEngineWorker.postMessage("isready"),window.chessEngineWorker.onmessage=t=>{"readyok"===t.data&&e(t)}})}set_position(e){return new Promise(t=>{this.fen=e,window.chessEngineWorker.postMessage("position fen "+e),t()})}async new_position(e){await this.stop(),await this.is_ready(),this.set_position(e),this.go_infinite()}set_multipv(e){window.chessEngineWorker.postMessage("setoption name MultiPV value "+e)}get_score(e,t=15){return new Promise(n=>{window.chessEngineWorker.postMessage("position fen "+e),window.chessEngineWorker.postMessage("go depth 15"),window.chessEngineWorker.onmessage=e=>{if(e.data.startsWith("info depth "+t)){const t=e.data.split(" "),A=t[8],o=Number(t[9]);n({type:A,value:o})}else if(e.data.startsWith("info depth 0")){const t=e.data.split(" "),A=t[4],o=Number(t[5]);n({type:A,value:o})}}})}go_depth(e){return new Promise(t=>{window.chessEngineWorker.postMessage("go depth "+e),window.chessEngineWorker.onmessage=e=>{e.data.startsWith("bestmove")&&t(e.data)}})}go_time(e){return new Promise(t=>{window.chessEngineWorker.postMessage("go movetime "+e),window.chessEngineWorker.onmessage=e=>{e.data.startsWith("bestmove")&&t(e.data)}})}go_infinite(e){window.chessEngineWorker.postMessage("go infinite"),this.isAnalyzing=!0,window.chessEngineWorker.onmessage=t=>{if(this.isInfoMessage(t)&&"function"==typeof e){const n=this.parseData(t.data);n.depth>this.maxDepth&&this.stop(),e(n)}}}stop(){return new Promise(e=>{this.isAnalyzing||e(),window.chessEngineWorker.postMessage("stop"),window.chessEngineWorker.onmessage=t=>{t.data.startsWith("bestmove")&&(this.isAnalyzing=!1,e(t.data))}})}quit(){window.chessEngineWorker.postMessage("quit")}}function nr(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var A=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===n&&A.firstChild?A.insertBefore(o,A.firstChild):A.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}nr(".brown .cg-wrap cg-board {\n background-image: url('data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAgeG1sbnM6eD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgIHZpZXdCb3g9IjAgMCA4IDgiICBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+PHJlY3Qgd2lkdGg9IjgiIGhlaWdodD0iOCIgZmlsbD0iI2I1ODg2MyIvPjxnIGlkPSJhIj4gIDxnIGlkPSJiIj4gICAgPGcgaWQ9ImMiPiAgICAgIDxnIGlkPSJkIj4gICAgICAgIDxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9IiNmMGQ5YjUiIGlkPSJlIi8+ICAgICAgICA8dXNlIHg9IjIiIGhyZWY9IiNlIiB4OmhyZWY9IiNlIi8+ICAgICAgPC9nPiAgICAgIDx1c2UgeD0iNCIgaHJlZj0iI2QiIHg6aHJlZj0iI2QiLz4gICAgPC9nPiAgICA8dXNlIHg9IjEiIHk9IjEiIGhyZWY9IiNjIiB4OmhyZWY9IiNjIi8+ICA8L2c+ICA8dXNlIHk9IjIiIGhyZWY9IiNiIiB4OmhyZWY9IiNiIi8+PC9nPjx1c2UgeT0iNCIgaHJlZj0iI2EiIHg6aHJlZj0iI2EiLz48L3N2Zz4=');\n}\n.green .cg-wrap cg-board {\n background-image: url('data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAgeG1sbnM6eD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgIHZpZXdCb3g9IjAgMCA4IDgiICBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+PHJlY3Qgd2lkdGg9IjgiIGhlaWdodD0iOCIgZmlsbD0iIzc3OTU1NiIvPjxnIGlkPSJhIj4gIDxnIGlkPSJiIj4gICAgPGcgaWQ9ImMiPiAgICAgIDxnIGlkPSJkIj4gICAgICAgIDxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9IiNFQkVDRDAiIGlkPSJlIi8+ICAgICAgICA8dXNlIHg9IjIiIGhyZWY9IiNlIiB4OmhyZWY9IiNlIi8+ICAgICAgPC9nPiAgICAgIDx1c2UgeD0iNCIgaHJlZj0iI2QiIHg6aHJlZj0iI2QiLz4gICAgPC9nPiAgICA8dXNlIHg9IjEiIHk9IjEiIGhyZWY9IiNjIiB4OmhyZWY9IiNjIi8+ICA8L2c+ICA8dXNlIHk9IjIiIGhyZWY9IiNiIiB4OmhyZWY9IiNiIi8+PC9nPjx1c2UgeT0iNCIgaHJlZj0iI2EiIHg6aHJlZj0iI2EiLz48L3N2Zz4=');\n}\n.ruby .cg-wrap cg-board {\n background-image: url('data:image/svg+xml;base64,CjxzdmcgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgIHhtbG5zOng9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiICB2aWV3Qm94PSIwIDAgOCA4IiAgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPjxyZWN0IHdpZHRoPSI4IiBoZWlnaHQ9IjgiIGZpbGw9IiM4QjI2MzUiLz48ZyBpZD0iYSI+ICA8ZyBpZD0iYiI+ICAgIDxnIGlkPSJjIj4gICAgICA8ZyBpZD0iZCI+ICAgICAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSIjRDJENEM4IiBpZD0iZSIvPiAgICAgICAgPHVzZSB4PSIyIiBocmVmPSIjZSIgeDpocmVmPSIjZSIvPiAgICAgIDwvZz4gICAgICA8dXNlIHg9IjQiIGhyZWY9IiNkIiB4OmhyZWY9IiNkIi8+ICAgIDwvZz4gICAgPHVzZSB4PSIxIiB5PSIxIiBocmVmPSIjYyIgeDpocmVmPSIjYyIvPiAgPC9nPiAgPHVzZSB5PSIyIiBocmVmPSIjYiIgeDpocmVmPSIjYiIvPjwvZz48dXNlIHk9IjQiIGhyZWY9IiNhIiB4OmhyZWY9IiNhIi8+PC9zdmc+');\n}\n.purple .cg-wrap cg-board {\n background-image: url('data:image/png;base64,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');\n}\n.teal .cg-wrap cg-board {\n background-image: url('data:image/svg+xml;base64,CjxzdmcgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgIHhtbG5zOng9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiICB2aWV3Qm94PSIwIDAgOCA4IiAgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPjxyZWN0IHdpZHRoPSI4IiBoZWlnaHQ9IjgiIGZpbGw9IiMxYzcyYWQiLz48ZyBpZD0iYSI+ICA8ZyBpZD0iYiI+ICAgIDxnIGlkPSJjIj4gICAgICA8ZyBpZD0iZCI+ICAgICAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSIjZTNlYmYzIiBpZD0iZSIvPiAgICAgICAgPHVzZSB4PSIyIiBocmVmPSIjZSIgeDpocmVmPSIjZSIvPiAgICAgIDwvZz4gICAgICA8dXNlIHg9IjQiIGhyZWY9IiNkIiB4OmhyZWY9IiNkIi8+ICAgIDwvZz4gICAgPHVzZSB4PSIxIiB5PSIxIiBocmVmPSIjYyIgeDpocmVmPSIjYyIvPiAgPC9nPiAgPHVzZSB5PSIyIiBocmVmPSIjYiIgeDpocmVmPSIjYiIvPjwvZz48dXNlIHk9IjQiIGhyZWY9IiNhIiB4OmhyZWY9IiNhIi8+PC9zdmc+');\n}\n");nr(".next-chessground .chessground {\n grid-area: board;\n position: relative;\n display: block;\n height: 0;\n padding-bottom: 100%;\n padding-right: 100%;\n width: 100%;\n border-radius: 0.25rem;\n overflow: hidden;\n}\n\n.next-chessground .cg-wrap {\n display: table;\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.next-chessground cg-helper {\n position: absolute;\n width: 12.5%;\n padding-bottom: 12.5%;\n display: table;\n bottom: 0;\n}\n\n.next-chessground cg-container {\n position: absolute;\n width: 800%;\n height: 800%;\n display: block;\n bottom: 0;\n}\n\n.next-chessground cg-board {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n line-height: 0;\n background-size: cover;\n cursor: pointer;\n}\n\n.next-chessground cg-board square {\n position: absolute;\n top: 0;\n left: 0;\n width: 12.5%;\n height: 12.5%;\n pointer-events: none;\n}\n.next-chessground .highlight cg-board square.last-move {\n will-change: transform;\n background-color: rgba(246, 246, 130, 0.5);\n}\n.next-chessground .highlight .correct cg-board square.last-move {\n background-color: rgba(155, 240, 0, 0.4);\n}\n.next-chessground .highlight .incorrect cg-board square.last-move {\n background-color: rgba(240, 0, 0, 0.4);\n}\n\n.next-chessground cg-board square.check {\n background: radial-gradient(\n ellipse at center,\n rgba(255, 0, 0, 1) 0%,\n rgba(231, 0, 0, 1) 25%,\n rgba(169, 0, 0, 0) 89%,\n rgba(158, 0, 0, 0) 100%\n );\n}\n.next-chessground cg-board square.current-premove {\n background-color: rgba(20, 30, 85, 0.5);\n}\n.next-chessground cg-board piece {\n position: absolute;\n top: 0;\n left: 0;\n width: 12.5%;\n height: 12.5%;\n background-size: cover;\n z-index: 2;\n will-change: transform;\n pointer-events: none;\n}\n.next-chessground cg-board piece.dragging {\n cursor: move;\n z-index: 9;\n}\n.next-chessground cg-board piece.anim {\n z-index: 8;\n}\n.next-chessground cg-board piece.fading {\n z-index: 1;\n opacity: 0.5;\n}\n.next-chessground cg-board piece.ghost {\n opacity: 0.3;\n}\n.next-chessground .cg-wrap svg {\n overflow: hidden;\n position: relative;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: 2;\n opacity: 0.6;\n}\n.next-chessground .cg-wrap svg image {\n opacity: 0.5;\n}\n\n.next-chessground .spare-pieces {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.next-chessground .spare-piece {\n top: 0;\n left: 0;\n padding-bottom: 100%;\n padding-left: 100%;\n position: absolute;\n background-size: contain;\n background-position: 0% -100%;\n cursor: pointer;\n}\n.next-chessground .edit-square {\n display: table;\n position: relative;\n width: 14.285%;\n padding-bottom: 13.285%;\n}\n.next-chessground .promote .edit-square {\n width: 20%;\n padding-bottom: 20%;\n}\n");nr("coords {\n position: absolute;\n display: flex;\n pointer-events: none;\n user-select: none;\n color: #fff;\n font-weight: bold;\n font-size: 0.5rem;\n opacity: 0.8;\n}\n.coords-no coords {\n display: none;\n}\n@media (min-width: 640px) {\n coords {\n font-size: 0.75rem;\n }\n}\ncoords.ranks {\n flex-flow: column-reverse;\n top: 0;\n right: 0;\n height: 100%;\n width: 0.8em;\n}\ncoords.ranks.black {\n flex-flow: column;\n}\ncoords.files {\n bottom: 0;\n left: 0;\n flex-flow: row;\n width: 100%;\n}\ncoords.files.black {\n flex-flow: row-reverse;\n}\ncoords.files coord {\n padding-left: 4px;\n}\ncoords coord {\n flex: 1 1 auto;\n}\n\n.orientation-white .files coord:nth-child(2n + 1),\n.orientation-white .ranks coord:nth-child(2n),\n.orientation-black .files coord:nth-child(2n),\n.orientation-black .ranks coord:nth-child(2n + 1) {\n color: #fff;\n}\n.orientation-white .files coord:nth-child(2n),\n.orientation-white .ranks coord:nth-child(2n + 1),\n.orientation-black .files coord:nth-child(2n + 1),\n.orientation-black .ranks coord:nth-child(2n) {\n color: #779556;\n}\n");nr(".next-chessground .next-cog {\n width: 1rem;\n height: 1rem;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj48cGF0aCBmaWxsPSIjOUY5REIwIiBkPSJNNDg3LjQgMzE1LjdsLTQyLjYtMjQuNmM0LjMtMjMuMiA0LjMtNDcgMC03MC4ybDQyLjYtMjQuNmM0LjktMi44IDcuMS04LjYgNS41LTE0LTExLjEtMzUuNi0zMC02Ny44LTU0LjctOTQuNi0zLjgtNC4xLTEwLTUuMS0xNC44LTIuM0wzODAuOCAxMTBjLTE3LjktMTUuNC0zOC41LTI3LjMtNjAuOC0zNS4xVjI1LjhjMC01LjYtMy45LTEwLjUtOS40LTExLjctMzYuNy04LjItNzQuMy03LjgtMTA5LjIgMC01LjUgMS4yLTkuNCA2LjEtOS40IDExLjdWNzVjLTIyLjIgNy45LTQyLjggMTkuOC02MC44IDM1LjFMODguNyA4NS41Yy00LjktMi44LTExLTEuOS0xNC44IDIuMy0yNC43IDI2LjctNDMuNiA1OC45LTU0LjcgOTQuNi0xLjcgNS40LjYgMTEuMiA1LjUgMTRMNjcuMyAyMjFjLTQuMyAyMy4yLTQuMyA0NyAwIDcwLjJsLTQyLjYgMjQuNmMtNC45IDIuOC03LjEgOC42LTUuNSAxNCAxMS4xIDM1LjYgMzAgNjcuOCA1NC43IDk0LjYgMy44IDQuMSAxMCA1LjEgMTQuOCAyLjNsNDIuNi0yNC42YzE3LjkgMTUuNCAzOC41IDI3LjMgNjAuOCAzNS4xdjQ5LjJjMCA1LjYgMy45IDEwLjUgOS40IDExLjcgMzYuNyA4LjIgNzQuMyA3LjggMTA5LjIgMCA1LjUtMS4yIDkuNC02LjEgOS40LTExLjd2LTQ5LjJjMjIuMi03LjkgNDIuOC0xOS44IDYwLjgtMzUuMWw0Mi42IDI0LjZjNC45IDIuOCAxMSAxLjkgMTQuOC0yLjMgMjQuNy0yNi43IDQzLjYtNTguOSA1NC43LTk0LjYgMS41LTUuNS0uNy0xMS4zLTUuNi0xNC4xek0yNTYgMzM2Yy00NC4xIDAtODAtMzUuOS04MC04MHMzNS45LTgwIDgwLTgwIDgwIDM1LjkgODAgODAtMzUuOSA4MC04MCA4MHoiLz48L3N2Zz4=');\n}\n.next-chessground .next-sync {\n width: 1rem;\n height: 1rem;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj48cGF0aCBmaWxsPSIjOUY5REIwIiBkPSJNMzcwLjcyIDEzMy4yOEMzMzkuNDU4IDEwNC4wMDggMjk4Ljg4OCA4Ny45NjIgMjU1Ljg0OCA4OGMtNzcuNDU4LjA2OC0xNDQuMzI4IDUzLjE3OC0xNjIuNzkxIDEyNi44NS0xLjM0NCA1LjM2My02LjEyMiA5LjE1LTExLjY1MSA5LjE1SDI0LjEwM2MtNy40OTggMC0xMy4xOTQtNi44MDctMTEuODA3LTE0LjE3NkMzMy45MzMgOTQuOTI0IDEzNC44MTMgOCAyNTYgOGM2Ni40NDggMCAxMjYuNzkxIDI2LjEzNiAxNzEuMzE1IDY4LjY4NUw0NjMuMDMgNDAuOTdDNDc4LjE0OSAyNS44NTEgNTA0IDM2LjU1OSA1MDQgNTcuOTQxVjE5MmMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRIMzQ1Ljk0MWMtMjEuMzgyIDAtMzIuMDktMjUuODUxLTE2Ljk3MS00MC45NzFsNDEuNzUtNDEuNzQ5ek0zMiAyOTZoMTM0LjA1OWMyMS4zODIgMCAzMi4wOSAyNS44NTEgMTYuOTcxIDQwLjk3MWwtNDEuNzUgNDEuNzVjMzEuMjYyIDI5LjI3MyA3MS44MzUgNDUuMzE5IDExNC44NzYgNDUuMjggNzcuNDE4LS4wNyAxNDQuMzE1LTUzLjE0NCAxNjIuNzg3LTEyNi44NDkgMS4zNDQtNS4zNjMgNi4xMjItOS4xNSAxMS42NTEtOS4xNWg1Ny4zMDRjNy40OTggMCAxMy4xOTQgNi44MDcgMTEuODA3IDE0LjE3NkM0NzguMDY3IDQxNy4wNzYgMzc3LjE4NyA1MDQgMjU2IDUwNGMtNjYuNDQ4IDAtMTI2Ljc5MS0yNi4xMzYtMTcxLjMxNS02OC42ODVMNDguOTcgNDcxLjAzQzMzLjg1MSA0ODYuMTQ5IDggNDc1LjQ0MSA4IDQ1NC4wNTlWMzIwYzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNHoiLz48L3N2Zz4=');\n}\n.next-chessground .next-trash {\n width: 1rem;\n height: 1rem;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii05NiAtOTYgNjQwIDY0MCI+PHBhdGggZD0iTTI2OCA0MTZoMjRhMTIgMTIgMCAwIDAgMTItMTJWMTg4YTEyIDEyIDAgMCAwLTEyLTEyaC0yNGExMiAxMiAwIDAgMC0xMiAxMnYyMTZhMTIgMTIgMCAwIDAgMTIgMTJ6TTQzMiA4MGgtODIuNDFsLTM0LTU2LjdBNDggNDggMCAwIDAgMjc0LjQxIDBIMTczLjU5YTQ4IDQ4IDAgMCAwLTQxLjE2IDIzLjNMOTguNDEgODBIMTZBMTYgMTYgMCAwIDAgMCA5NnYxNmExNiAxNiAwIDAgMCAxNiAxNmgxNnYzMzZhNDggNDggMCAwIDAgNDggNDhoMjg4YTQ4IDQ4IDAgMCAwIDQ4LTQ4VjEyOGgxNmExNiAxNiAwIDAgMCAxNi0xNlY5NmExNiAxNiAwIDAgMC0xNi0xNnpNMTcxLjg0IDUwLjkxQTYgNiAwIDAgMSAxNzcgNDhoOTRhNiA2IDAgMCAxIDUuMTUgMi45MUwyOTMuNjEgODBIMTU0LjM5ek0zNjggNDY0SDgwVjEyOGgyODh6bS0yMTItNDhoMjRhMTIgMTIgMCAwIDAgMTItMTJWMTg4YTEyIDEyIDAgMCAwLTEyLTEyaC0yNGExMiAxMiAwIDAgMC0xMiAxMnYyMTZhMTIgMTIgMCAwIDAgMTIgMTJ6Ii8+PC9zdmc+');\n}\n");nr("*,\n::after,\n::before {\n box-sizing: border-box;\n border-width: 0;\n border-style: solid;\n}\n\n.next-chessground {\n display: flex;\n flex-direction: column;\n position: relative;\n width: 100%;\n}\n.next-chessground .checkbox {\n display: flex;\n margin: 0;\n align-items: center;\n padding-left: 0.25rem;\n width: 2.75rem;\n height: 1.75rem;\n outline: none;\n appearance: none;\n transition: 0.2s ease-in-out;\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n cursor: pointer;\n}\n.next-chessground .checkbox:before {\n background-color: rgba(156, 163, 175);\n width: 1rem;\n height: 1rem;\n border-radius: 999px;\n content: '';\n transition: 0.2s ease-in-out;\n}\n.next-chessground .checkbox:checked:before {\n background-color: rgba(4, 120, 87);\n transform: translate(1rem, 0);\n}\n.next-chessground .next-button {\n background-color: transparent;\n background-image: none;\n cursor: pointer;\n display: flex;\n outline: none;\n\n padding: 0;\n line-height: inherit;\n color: inherit;\n font-size: 100%;\n}\n.next-chessground .next-button:focus {\n outline: none;\n}\n");nr(".pure-modal {\n box-shadow: rgba(0, 0, 0, 0.5) 0px 5px 15px 0px;\n color: rgba(55, 65, 81);\n}\n.pure-modal-backdrop {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n.backdrop-overflow-hidden {\n overflow: hidden !important;\n}\n.pure-modal-backdrop .pure-modal {\n width: 300px;\n max-width: 100%;\n box-sizing: border-box;\n transition: all 0.2s ease-in-out;\n max-height: 100%;\n}\n.pure-modal.auto-height {\n position: static;\n}\n.pure-modal-backdrop.scrollable {\n overflow-y: auto;\n}\n.pure-modal-backdrop .panel {\n display: grid;\n grid-template-rows: repeat(3, min-content);\n}\n.pure-modal-backdrop:not(.scrollable) .panel {\n grid-template-rows: min-content minmax(0, 1fr) min-content;\n max-height: -moz-available;\n max-height: -webkit-fill-available;\n max-height: fill-available;\n height: 100%;\n}\n.pure-modal > * > * {\n flex: 0 0 auto;\n}\n.pure-modal > * > .scrollable {\n overflow-x: hidden;\n overflow-scrolling: touch;\n}\n@media (max-width: 480px) {\n .pure-modal-backdrop .pure-modal {\n width: 100%;\n }\n}\n.pure-modal .panel-body {\n background-color: #fff;\n}\n.pure-modal .panel-heading {\n background: #f0f0f0;\n}\n.pure-modal .panel-title {\n padding: 12px 45px 12px 15px;\n margin: 0;\n}\n.pure-modal .close {\n right: 6px;\n top: 6px;\n z-index: 1;\n width: 30px;\n height: 30px;\n border-radius: 15px;\n text-align: center;\n line-height: 30px;\n cursor: pointer;\n font-size: 1.85rem;\n}\n.pure-modal .panel-heading .close:hover {\n color: #000;\n}\n.pure-modal .panel-body {\n padding: 15px;\n}\n.pure-modal .panel-footer {\n padding: 12px 45px 12px 15px;\n background: #f0f0f0;\n}\n.pure-modal .panel-body,\n.pure-modal .panel-footer,\n.pure-modal .panel-title {\n word-break: break-all;\n}\n.pure-modal-backdrop .additional-row,\n.pure-modal-backdrop:not(.scrollable) .additional-row {\n display: grid;\n grid-template-rows: min-content minmax(0, 1fr) min-content min-content;\n}\n");nr("/**\n * Cburnett\n */\n.cburnett piece.pawn.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wP.svg');\n}\n.cburnett piece.bishop.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wB.svg');\n}\n.cburnett piece.knight.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wN.svg');\n}\n.cburnett piece.rook.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wR.svg');\n}\n.cburnett piece.queen.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wQ.svg');\n}\n.cburnett piece.king.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wK.svg');\n}\n.cburnett piece.pawn.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bP.svg');\n}\n.cburnett piece.bishop.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bB.svg');\n}\n.cburnett piece.knight.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bN.svg');\n}\n.cburnett piece.rook.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bR.svg');\n}\n.cburnett piece.queen.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bQ.svg');\n}\n.cburnett piece.king.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bK.svg');\n}\n\n/**\n * Classic\n */\n.classic piece.pawn.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wp.png');\n}\n.classic piece.bishop.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wb.png');\n}\n.classic piece.knight.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wn.png');\n}\n.classic piece.rook.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wr.png');\n}\n.classic piece.queen.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wq.png');\n}\n.classic piece.king.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wk.png');\n}\n.classic piece.pawn.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bp.png');\n}\n.classic piece.bishop.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bb.png');\n}\n.classic piece.knight.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bn.png');\n}\n.classic piece.rook.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/br.png');\n}\n.classic piece.queen.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bq.png');\n}\n.classic piece.king.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bk.png');\n}\n\n/**\n * Neo\n */\n.neo piece.pawn.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wp.png');\n}\n.neo piece.bishop.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wb.png');\n}\n.neo piece.knight.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wn.png');\n}\n.neo piece.rook.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wr.png');\n}\n.neo piece.queen.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wq.png');\n}\n.neo piece.king.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wk.png');\n}\n.neo piece.pawn.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bp.png');\n}\n.neo piece.bishop.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bb.png');\n}\n.neo piece.knight.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bn.png');\n}\n.neo piece.rook.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/br.png');\n}\n.neo piece.queen.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bq.png');\n}\n.neo piece.king.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bk.png');\n}\n\n/**\n * Alpha\n */\n.alpha piece.pawn.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wp.png');\n}\n.alpha piece.bishop.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wb.png');\n}\n.alpha piece.knight.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wn.png');\n}\n.alpha piece.rook.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wr.png');\n}\n.alpha piece.queen.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wq.png');\n}\n.alpha piece.king.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wk.png');\n}\n.alpha piece.pawn.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bp.png');\n}\n.alpha piece.bishop.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bb.png');\n}\n.alpha piece.knight.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bn.png');\n}\n.alpha piece.rook.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/br.png');\n}\n.alpha piece.queen.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bq.png');\n}\n.alpha piece.king.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bk.png');\n}\n\n/**\n * Bases\n */\n.bases piece.pawn.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wp.png');\n}\n.bases piece.bishop.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wb.png');\n}\n.bases piece.knight.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wn.png');\n}\n.bases piece.rook.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wr.png');\n}\n.bases piece.queen.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wq.png');\n}\n.bases piece.king.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wk.png');\n}\n.bases piece.pawn.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bp.png');\n}\n.bases piece.bishop.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bb.png');\n}\n.bases piece.knight.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bn.png');\n}\n.bases piece.rook.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/br.png');\n}\n.bases piece.queen.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bq.png');\n}\n.bases piece.king.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bk.png');\n}\n");nr(".flex {\n display: flex;\n}\n.flex-col {\n flex-direction: column;\n}\n.flex-row-reverse {\n flex-direction: row-reverse;\n}\n.grid {\n display: grid;\n}\n.grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.gap-2 {\n gap: 0.5rem;\n}\n.gap-3 {\n gap: 0.75rem;\n}\n.w-full {\n width: 100%;\n}\n.items-center {\n align-items: center;\n}\n.justify-center {\n justify-content: center;\n}\n.py-1\\.5 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.px-2 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.cursor-resize {\n cursor: nesw-resize;\n}\n.outline-none,\n.outline-none:focus {\n outline: none;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-gray-400 {\n color: rgba(156, 163, 175);\n}\n.text-gray-800 {\n color: rgba(31, 41, 55);\n}\n.bg-white {\n background-color: #fff;\n}\n.bg-orange-300 {\n background-color: #fbd38d;\n}\n.border {\n border-width: 1px;\n border-style: solid;\n}\n.border-gray-300 {\n border-color: rgba(209, 213, 219);\n}\n.rounded {\n border-radius: 0.25rem;\n}\n");export{Yo as NextChessground,er as NextEditor,tr as Stockfish,fe as constants,Yo as default,xo as isValidFen,be as useChess,ye as useChessground};
|