Fix Omega castling and pieces randomization, fix a bug when undoing partial multi...
authorBenjamin Auder <benjamin.auder@somewhere>
Tue, 31 Mar 2020 23:00:26 +0000 (01:00 +0200)
committerBenjamin Auder <benjamin.auder@somewhere>
Tue, 31 Mar 2020 23:00:26 +0000 (01:00 +0200)
34 files changed:
client/public/images/pieces/Maxima/bd.svg [new file with mode: 0644]
client/public/images/pieces/Maxima/bg.svg [new file with mode: 0644]
client/public/images/pieces/Maxima/bm.svg [new file with mode: 0644]
client/public/images/pieces/Maxima/nothing.svg [new file with mode: 0644]
client/public/images/pieces/Maxima/wd.svg [new file with mode: 0644]
client/public/images/pieces/Maxima/wg.svg [new file with mode: 0644]
client/public/images/pieces/Maxima/wm.svg [new file with mode: 0644]
client/public/images/pieces/Omega/bc.svg
client/public/images/pieces/Omega/bw.svg
client/public/images/pieces/Omega/wc.svg
client/public/images/pieces/Omega/ww.svg
client/public/images/pieces/Tencubed/bc.svg
client/public/images/pieces/Tencubed/bw.svg
client/public/images/pieces/Tencubed/wc.svg
client/public/images/pieces/Tencubed/ww.svg
client/src/components/BaseGame.vue
client/src/components/Board.vue
client/src/translations/en.js
client/src/translations/es.js
client/src/translations/fr.js
client/src/translations/rules/Baroque/en.pug
client/src/translations/rules/Baroque/es.pug
client/src/translations/rules/Baroque/fr.pug
client/src/translations/rules/Maxima/en.pug [new file with mode: 0644]
client/src/translations/rules/Maxima/es.pug [new file with mode: 0644]
client/src/translations/rules/Maxima/fr.pug [new file with mode: 0644]
client/src/translations/rules/Rococo/en.pug
client/src/translations/rules/Rococo/es.pug
client/src/translations/rules/Rococo/fr.pug
client/src/variants/Baroque.js
client/src/variants/Maxima.js [new file with mode: 0644]
client/src/variants/Omega.js
client/src/variants/Rococo.js
server/db/populate.sql

diff --git a/client/public/images/pieces/Maxima/bd.svg b/client/public/images/pieces/Maxima/bd.svg
new file mode 100644 (file)
index 0000000..0995449
--- /dev/null
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="45"
+   height="45"
+   viewBox="0 0 11.90625 11.90625"
+   version="1.1"
+   id="svg4393"
+   sodipodi:docname="CommonerB_Transparent.svg"
+   inkscape:version="0.92.1 r15371">
+  <defs
+     id="defs4387" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="3"
+     inkscape:cx="30.240069"
+     inkscape:cy="21.353804"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     units="px"
+     inkscape:window-width="1600"
+     inkscape:window-height="837"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata4390">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-285.09373)">
+    <g
+       id="g4572"
+       transform="matrix(0.28921369,0,0,0.28921369,-0.54713251,283.72613)">
+      <circle
+         id="circle4537"
+         r="2.5"
+         cy="13.5"
+         cx="22.5"
+         style="fill:#000000;stroke:#000000;stroke-width:1.5;stroke-linejoin:round" />
+      <circle
+         id="circle4539"
+         r="1.5"
+         cy="13.5"
+         cx="22.5"
+         style="fill:none;stroke:#ffffff;stroke-width:1.5;stroke-linejoin:round" />
+      <g
+         id="g4543"
+         style="fill:#000000;stroke:#000000;stroke-width:1.5;stroke-linejoin:round">
+        <!-- test -->
+        <path
+           id="path4541"
+           d="m 11.5,37 c 5.5,3.5 15.5,3.5 21,0 v -7 c 0,0 9,-4.5 6,-11 -5.5,-7 -26.5,-7 -32,0 -3,6.5 5,10.5 5,10.5 z"
+           inkscape:connector-curvature="0" />
+      </g>
+      <g
+         id="g4553"
+         style="fill:none;stroke:#ffffff;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round">
+        <!-- test -->
+        <path
+           id="path4545"
+           d="m 32,29.5 c 0,0 8.5,-4 6,-9.65 C 32.65,13 12.35,13 7,19.85 c -2.5,5.65 4.85,9 4.85,9"
+           inkscape:connector-curvature="0" />
+        <!-- talp -->
+        <path
+           id="path4547"
+           d="M 11.5,30 C 17,27 27,27 32.5,30"
+           inkscape:connector-curvature="0" />
+        <path
+           id="path4549"
+           d="m 11.5,33.5 c 5.5,-3 15.5,-3 21,0"
+           inkscape:connector-curvature="0" />
+        <path
+           id="path4551"
+           d="M 11.5,37 C 17,34 27,34 32.5,37"
+           inkscape:connector-curvature="0" />
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/client/public/images/pieces/Maxima/bg.svg b/client/public/images/pieces/Maxima/bg.svg
new file mode 100644 (file)
index 0000000..6afc7b5
--- /dev/null
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   height="100%"
+   width="100%"
+   version="1.1"
+   viewBox="0 0 2048 2048"
+   id="svg12"
+   sodipodi:docname="bg.svg"
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
+  <metadata
+     id="metadata18">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs16" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="960"
+     inkscape:window-height="1060"
+     id="namedview14"
+     showgrid="false"
+     inkscape:zoom="0.11523438"
+     inkscape:cx="1041.3559"
+     inkscape:cy="1024"
+     inkscape:window-x="0"
+     inkscape:window-y="20"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg12" />
+  <path
+     style="color:#000000;display:block;fill:#000000;fill-rule:nonzero"
+     d="m 1588,765 q -83,30 -233,49 -150,19 -333,20 -178,0 -326,-18 -148,-18 -233,-49 l 50,-91 q 84,25 218,36 134,11 293,11 159,0 294,-11 135,-11 219,-37 z m 226,668 q -57,0 -97,39 -40,39 -40,97 0,56 40,96 40,40 97,41 56,0 96,-40 40,-40 40,-97 0,-57 -40,-96 -40,-39 -96,-40 z m -1578,0 q -57,0 -96,39 -39,39 -40,97 0,56 39,96 39,40 97,41 57,0 97,-40 40,-40 40,-97 0,-57 -40,-96 -40,-39 -97,-40 z m 1208,110 q -57,0 -96,39 -39,39 -40,97 0,56 39,96 39,40 97,40 57,0 97,-40 40,-40 40,-96 0,-57 -40,-96 -40,-39 -97,-40 z m -840,0 q -57,0 -97,39 -40,39 -40,97 0,56 40,96 40,40 97,40 56,0 96,-40 40,-40 40,-96 0,-57 -40,-96 -40,-39 -96,-40 z M 1640,255 q -49,-43 -220,-72 -171,-29 -394,-29 -227,0 -399,30 -172,30 -217,75 l 63,240 -28,157 -88,153 -85,622 49,19 274,-462 6,550 68,12 209,-553 112,595 h 69 l 112,-593 207,551 69,-12 6,-550 275,463 47,-22 -83,-619 -89,-153 -28,-159 z m -96,32 -30,118 q -195,45 -490,45 -292,0 -488,-45 L 504,286 q 190,58 521,58 159,0 295,-16 136,-16 224,-41 z m -26,299 q -184,51 -490,51 -308,0 -496,-52 l 15,-101 q 189,49 481,49 291,0 474,-48 z m -494,1007 q -57,0 -96,40 -39,40 -40,97 0,56 39,96 39,40 97,40 56,0 96,-40 40,-40 41,-96 0,-57 -40,-97 -40,-40 -97,-40 z"
+     display="block"
+     id="path2"
+     inkscape:connector-curvature="0" />
+  <g
+     id="g10"
+     transform="matrix(1,0,0,-1,0,2020)"
+     style="fill:#ffffff;fill-rule:nonzero">
+    <path
+       style="color:#000000;display:block"
+       d="m 1588,1255 q -83,-30 -233,-49 -150,-19 -333,-20 -178,0 -326,18 -148,18 -233,49 l 50,91 q 84,-25 218,-36 134,-11 293,-11 159,0 294,11 135,11 219,37 z"
+       display="block"
+       id="path4"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;display:block"
+       d="m 1544,1733 -30,-118 q -195,-45 -490,-45 -292,0 -488,45 l -32,119 q 190,-58 521,-58 159,0 295,16 136,16 224,41 z"
+       display="block"
+       id="path6"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;display:block"
+       d="m 1518,1434 q -184,-51 -490,-51 -308,0 -496,52 l 15,101 q 189,-49 481,-49 291,0 474,48 z"
+       display="block"
+       id="path8"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/client/public/images/pieces/Maxima/bm.svg b/client/public/images/pieces/Maxima/bm.svg
new file mode 100644 (file)
index 0000000..fdc0ee5
--- /dev/null
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   height="100%"
+   width="100%"
+   version="1.1"
+   viewBox="0 0 2048 2048"
+   id="svg44"
+   sodipodi:docname="bu.svg"
+   inkscape:version="0.92.2 2405546, 2018-03-11">
+  <metadata
+     id="metadata50">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs48" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="960"
+     inkscape:window-height="1060"
+     id="namedview46"
+     showgrid="false"
+     inkscape:zoom="0.11523438"
+     inkscape:cx="1041.3559"
+     inkscape:cy="1024"
+     inkscape:window-x="0"
+     inkscape:window-y="20"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg44" />
+  <path
+     style="color:#000000;display:block;fill:#000000;fill-rule:nonzero"
+     d="m 1161,1706 h 170 v 137 h 274 V 1468 L 1383,1297 V 819 L 1553,649 V 444 h 153 V 205 H 341 v 239 h 153 v 205 l 171,170 v 478 l -222,171 v 375 h 273 v -137 h 171 v 137 h 274 z M 564,460 V 358 h 920 v 102 z m 460,1092 H 512 v -46 l 73,-55 h 879 l 71,55 v 46 z m 0,-169 H 674 l 60,-47 v -57 h 580 v 57 l 60,47 z m 0,-546 H 734 v -46 l -60,-58 h 700 l -60,58 v 46 z m 0,-172 H 610 l -46,-43 v -58 h 920 v 58 l -46,43 z"
+     display="block"
+     id="path30"
+     inkscape:connector-curvature="0" />
+  <g
+     id="g42"
+     transform="matrix(1,0,0,-1,0,2048)"
+     style="fill:#ffffff;fill-rule:nonzero">
+    <path
+       style="color:#000000;display:block"
+       d="m 564,1588 v 102 h 920 v -102 z"
+       display="block"
+       id="path32"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;display:block"
+       d="M 1024,496 H 512 v 46 l 73,55 h 879 l 71,-55 v -46 z"
+       display="block"
+       id="path34"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;display:block"
+       d="M 1024,665 H 674 l 60,47 v 57 h 580 v -57 l 60,-47 z"
+       display="block"
+       id="path36"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;display:block"
+       d="M 1024,1211 H 734 v 46 l -60,58 h 700 l -60,-58 v -46 z"
+       display="block"
+       id="path38"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;display:block"
+       d="M 1024,1383 H 610 l -46,43 v 58 h 920 v -58 l -46,-43 z"
+       display="block"
+       id="path40"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/client/public/images/pieces/Maxima/nothing.svg b/client/public/images/pieces/Maxima/nothing.svg
new file mode 100644 (file)
index 0000000..affd020
--- /dev/null
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="100"
+   height="100"
+   version="1.1"
+   id="svg4"
+   sodipodi:docname="nothing.svg"
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
+  <metadata
+     id="metadata10">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs8" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="960"
+     inkscape:window-height="1060"
+     id="namedview6"
+     showgrid="false"
+     inkscape:zoom="6.675088"
+     inkscape:cx="50.847458"
+     inkscape:cy="50"
+     inkscape:window-x="0"
+     inkscape:window-y="20"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg4" />
+  <rect
+     style="fill:#666666;fill-opacity:1"
+     id="rect21"
+     width="100.52302"
+     height="100.67283"
+     x="-0.14981076"
+     y="-0.22339767" />
+</svg>
diff --git a/client/public/images/pieces/Maxima/wd.svg b/client/public/images/pieces/Maxima/wd.svg
new file mode 100644 (file)
index 0000000..12f2b27
--- /dev/null
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="45"
+   height="45"
+   viewBox="0 0 11.90625 11.90625"
+   version="1.1"
+   id="svg4393"
+   inkscape:version="0.92.1 r15371"
+   sodipodi:docname="Commoner_Transparent.svg">
+  <defs
+     id="defs4387" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="5.1998528"
+     inkscape:cy="24.301903"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     units="px"
+     inkscape:window-width="1600"
+     inkscape:window-height="837"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata4390">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-285.09373)">
+    <g
+       id="g4499"
+       transform="matrix(0.28598519,0,0,0.28598519,-0.47456997,283.80785)">
+      <g
+         id="g4399"
+         style="fill:#ffffff;stroke:#000000;stroke-width:1.5;stroke-linejoin:round">
+        <!-- bojt -->
+        <circle
+           id="circle4395"
+           r="2.5"
+           cy="13.5"
+           cx="22.5" />
+        <!-- test -->
+        <path
+           id="path4397"
+           d="m 11.5,37 c 5.5,3.5 15.5,3.5 21,0 v -7 c 0,0 9,-4.5 6,-11 -5.5,-7 -26.5,-7 -32,0 -3,6.5 5,10.5 5,10.5 z"
+           inkscape:connector-curvature="0" />
+      </g>
+      <g
+         id="g4407"
+         style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:round">
+        <!-- talp -->
+        <path
+           id="path4401"
+           d="M 11.5,30 C 17,27 27,27 32.5,30"
+           inkscape:connector-curvature="0" />
+        <path
+           id="path4403"
+           d="m 11.5,33.5 c 5.5,-3 15.5,-3 21,0"
+           inkscape:connector-curvature="0" />
+        <path
+           id="path4405"
+           d="M 11.5,37 C 17,34 27,34 32.5,37"
+           inkscape:connector-curvature="0" />
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/client/public/images/pieces/Maxima/wg.svg b/client/public/images/pieces/Maxima/wg.svg
new file mode 100644 (file)
index 0000000..5ab016a
--- /dev/null
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   height="100%"
+   width="100%"
+   version="1.1"
+   viewBox="0 0 2048 2048"
+   id="svg34"
+   sodipodi:docname="wg.svg"
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
+  <metadata
+     id="metadata40">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs38" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="960"
+     inkscape:window-height="1060"
+     id="namedview36"
+     showgrid="false"
+     inkscape:zoom="0.11523438"
+     inkscape:cx="1041.3559"
+     inkscape:cy="1024"
+     inkscape:window-x="0"
+     inkscape:window-y="20"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg34" />
+  <path
+     style="color:#000000;display:block;fill:#000000;fill-rule:nonzero"
+     d="m 1024,1593 q -57,0 -96,40 -39,40 -40,97 0,56 39,96 39,40 97,40 56,0 96,-40 40,-40 41,-96 0,-57 -40,-97 -40,-40 -97,-40 z m 0,70 q 67,0 67,67 0,66 -67,66 -66,0 -66,-66 0,-67 66,-67 z M 1533,656 q -193,49 -505,49 -320,0 -511,-50 l 15,-96 q 195,46 496,46 299,0 488,-45 z m 25,60 65,115 q -48,-19 -98,-19 -134,0 -214,109 -60,-50 -134,-50 -96,0 -153,75 -64,-70 -153,-70 -72,0 -132,49 -84,-107 -217,-107 -51,0 -101,19 l 70,-120 q 194,56 533,56 345,0 534,-57 z m -448,239 -85,489 -85,-483 q 3,2 14,10 23,45 70,45 51,0 66,-45 6,-6 20,-16 z m 277,-19 v 463 L 1222,945 q 19,7 32,18 20,25 54,25 40,0 64,-35 3,-4 7,-8 4,-4 8,-9 z M 825,950 661,1399 V 942 q 3,4 9,10 20,42 66,42 38,0 62,-32 27,-12 27,-12 z M 571,894 356,1265 411,927 q 57,-40 111,-40 21,0 49,7 z m 903,-5 q 23,-7 51,-7 61,0 114,38 l 55,346 z m 60,-506 -30,113 q -196,43 -480,43 -281,0 -479,-43 L 514,382 q 186,56 511,56 317,0 509,-55 z m 106,-128 q -49,-43 -220,-72 -171,-29 -394,-29 -227,0 -399,30 -172,30 -217,75 l 63,240 -28,157 -88,153 -85,622 49,19 274,-462 6,550 68,12 209,-553 112,595 h 69 l 112,-593 207,551 69,-12 6,-550 275,463 47,-22 -83,-619 -89,-153 -28,-159 z m -81,36 q -183,76 -531,76 -355,0 -537,-78 175,-69 534,-69 172,0 314,19 142,19 220,52 z M 604,1543 q -57,0 -97,39 -40,39 -40,97 0,56 40,96 40,40 97,40 56,0 96,-40 40,-40 40,-96 0,-57 -40,-96 -40,-39 -96,-40 z m 0,70 q 66,0 66,66 0,66 -66,66 -67,0 -67,-66 0,-66 67,-66 z m 840,0 q 67,0 67,66 0,66 -67,66 -66,0 -66,-66 0,-66 66,-66 z m 0,-70 q -57,0 -96,39 -39,39 -40,97 0,56 39,96 39,40 97,40 57,0 97,-40 40,-40 40,-96 0,-57 -40,-96 -40,-39 -97,-40 z M 236,1433 q -57,0 -96,39 -39,39 -40,97 0,56 39,96 39,40 97,41 57,0 97,-40 40,-40 40,-97 0,-57 -40,-96 -40,-39 -97,-40 z m 0,70 q 67,0 67,66 0,67 -67,67 -66,0 -66,-67 0,-66 66,-66 z m 1578,0 q 66,0 66,66 0,67 -66,67 -67,0 -67,-67 0,-66 67,-66 z m 0,-70 q -57,0 -97,39 -40,39 -40,97 0,56 40,96 40,40 97,41 56,0 96,-40 40,-40 40,-97 0,-57 -40,-96 -40,-39 -96,-40 z"
+     display="block"
+     id="path2"
+     inkscape:connector-curvature="0" />
+  <g
+     id="g32"
+     transform="matrix(1,0,0,-1,0,2020)"
+     style="fill:#ffffff;fill-rule:nonzero">
+    <path
+       style="color:#000000;display:block"
+       d="m 1024,357 q 67,0 67,-67 0,-66 -67,-66 -66,0 -66,66 0,67 66,67 z"
+       display="block"
+       id="path4"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;display:block"
+       d="m 1533,1364 q -193,-49 -505,-49 -320,0 -511,50 l 15,96 q 195,-46 496,-46 299,0 488,45 z"
+       display="block"
+       id="path6"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;display:block"
+       d="m 1558,1304 65,-115 q -48,19 -98,19 -134,0 -214,-109 -60,50 -134,50 -96,0 -153,-75 -64,70 -153,70 -72,0 -132,-49 -84,107 -217,107 -51,0 -101,-19 l 70,120 q 194,-56 533,-56 345,0 534,57 z"
+       display="block"
+       id="path8"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;display:block"
+       d="m 1110,1065 -85,-489 -85,483 q 3,-2 14,-10 23,-45 70,-45 51,0 66,45 6,6 20,16 z"
+       display="block"
+       id="path10"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;display:block"
+       d="M 1387,1084 V 621 l -165,454 q 19,-7 32,-18 20,-25 54,-25 40,0 64,35 3,4 7,8 4,4 8,9 z"
+       display="block"
+       id="path12"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;display:block"
+       d="M 825,1070 661,621 v 457 q 3,-4 9,-10 20,-42 66,-42 38,0 62,32 27,12 27,12 z"
+       display="block"
+       id="path14"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;display:block"
+       d="m 571,1126 -215,-371 55,338 q 57,40 111,40 21,0 49,-7 z"
+       display="block"
+       id="path16"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;display:block"
+       d="m 1474,1131 q 23,7 51,7 61,0 114,-38 l 55,-346 z"
+       display="block"
+       id="path18"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;display:block"
+       d="m 1534,1637 -30,-113 q -196,-43 -480,-43 -281,0 -479,43 l -31,114 q 186,-56 511,-56 317,0 509,55 z"
+       display="block"
+       id="path20"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;display:block"
+       d="m 1559,1729 q -183,-76 -531,-76 -355,0 -537,78 175,69 534,69 172,0 314,-19 142,-19 220,-52 z"
+       display="block"
+       id="path22"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;display:block"
+       d="m 604,407 q 66,0 66,-66 0,-66 -66,-66 -67,0 -67,66 0,66 67,66 z"
+       display="block"
+       id="path24"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;display:block"
+       d="m 1444,407 q 67,0 67,-66 0,-66 -67,-66 -66,0 -66,66 0,66 66,66 z"
+       display="block"
+       id="path26"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;display:block"
+       d="m 236,517 q 67,0 67,-66 0,-67 -67,-67 -66,0 -66,67 0,66 66,66 z"
+       display="block"
+       id="path28"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;display:block"
+       d="m 1814,517 q 66,0 66,-66 0,-67 -66,-67 -67,0 -67,67 0,66 67,66 z"
+       display="block"
+       id="path30"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/client/public/images/pieces/Maxima/wm.svg b/client/public/images/pieces/Maxima/wm.svg
new file mode 100644 (file)
index 0000000..bf9f16a
--- /dev/null
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   height="100%"
+   width="100%"
+   version="1.1"
+   viewBox="0 0 2048 2048"
+   id="svg70"
+   sodipodi:docname="wu.svg"
+   inkscape:version="0.92.2 2405546, 2018-03-11">
+  <metadata
+     id="metadata76">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs74" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="960"
+     inkscape:window-height="1060"
+     id="namedview72"
+     showgrid="false"
+     inkscape:zoom="0.11523438"
+     inkscape:cx="1041.3559"
+     inkscape:cy="1024"
+     inkscape:window-x="0"
+     inkscape:window-y="20"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg70" />
+  <path
+     style="color:#000000;display:block;fill:#000000;fill-rule:nonzero"
+     d="m 1161,1706 h 170 v 137 h 274 V 1468 L 1383,1297 V 819 L 1553,649 V 444 h 153 V 205 H 341 v 239 h 153 v 205 l 171,170 v 478 l -222,171 v 375 h 273 v -137 h 171 v 137 h 274 z M 1639,376 H 409 V 273 H 1639 Z M 1484,580 H 564 V 444 h 920 z m -170,717 H 734 V 819 h 580 z m 222,239 v 239 h -137 v -137 h -308 v 137 H 956 V 1638 H 649 v 137 H 512 V 1536 Z M 1459,649 1356,751 H 693 L 588,649 Z m -110,716 127,103 H 572 l 128,-103 z"
+     display="block"
+     id="path54"
+     inkscape:connector-curvature="0" />
+  <g
+     id="g64"
+     transform="matrix(1,0,0,-1,0,2048)"
+     style="fill:#ffffff;fill-rule:nonzero">
+    <path
+       style="color:#000000;display:block"
+       d="M 1639,1672 H 409 v 103 h 1230 z"
+       display="block"
+       id="path56"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;display:block"
+       d="M 1484,1468 H 564 v 136 h 920 z"
+       display="block"
+       id="path58"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;display:block"
+       d="M 1314,751 H 734 v 478 h 580 z"
+       display="block"
+       id="path60"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;display:block"
+       d="M 1536,512 V 273 H 1399 V 410 H 1091 V 273 H 956 V 410 H 649 V 273 H 512 v 239 z"
+       display="block"
+       id="path62"
+       inkscape:connector-curvature="0" />
+  </g>
+  <path
+     style="color:#000000;display:block;fill:#ffffff;fill-rule:nonzero"
+     d="M 1459,649 1356,751 H 693 L 588,649 Z"
+     display="block"
+     id="path66"
+     inkscape:connector-curvature="0" />
+  <path
+     style="color:#000000;display:block;fill:#ffffff;fill-rule:nonzero"
+     d="m 1349,1365 127,103 H 572 l 128,-103 z"
+     display="block"
+     id="path68"
+     inkscape:connector-curvature="0" />
+</svg>
index e3d2eb6..1040316 100644 (file)
@@ -7,26 +7,29 @@
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   height="100%"
-   width="100%"
+   width="177.17"
+   height="177.17"
+   shape-rendering="geometricPrecision"
+   image-rendering="optimizeQuality"
+   fill-rule="evenodd"
+   clip-rule="evenodd"
+   viewBox="0 0 50 50"
    version="1.1"
    version="1.1"
-   viewBox="0 0 2048 2048"
-   id="svg18"
-   sodipodi:docname="bc.svg"
-   inkscape:version="0.92.4 5da689c313, 2019-01-14">
+   id="svg27599"
+   sodipodi:docname="bChampion.svg"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
   <metadata
   <metadata
-     id="metadata24">
+     id="metadata27603">
     <rdf:RDF>
       <cc:Work
          rdf:about="">
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
     <rdf:RDF>
       <cc:Work
          rdf:about="">
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
       </cc:Work>
     </rdf:RDF>
   </metadata>
       </cc:Work>
     </rdf:RDF>
   </metadata>
-  <defs
-     id="defs22" />
   <sodipodi:namedview
      pagecolor="#ffffff"
      bordercolor="#666666"
   <sodipodi:namedview
      pagecolor="#ffffff"
      bordercolor="#666666"
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:window-width="960"
-     inkscape:window-height="1080"
-     id="namedview20"
+     inkscape:window-width="1920"
+     inkscape:window-height="1017"
+     id="namedview27601"
      showgrid="false"
      showgrid="false"
-     inkscape:zoom="0.11523438"
-     inkscape:cx="1041.3559"
-     inkscape:cy="1024"
-     inkscape:window-x="0"
-     inkscape:window-y="0"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg18" />
-  <path
-     style="color:#000000;display:block;fill:#000000;fill-rule:nonzero"
-     d="m 490,643 q 4,9 13,27 17,42 17,50 -2,28 -29,28 -20,0 -47,-57 -4,-8 -12,-14 -27,-28 8,-47 32,-19 50,13 z m 590,371 q 70,92 69,205 -4,33 -38,33 -46,0 -36,-34 3,-55 -11,-91 -23,-57 -51,-85 -15,-30 18,-44 32,-15 49,16 z m -261,488 q -5,36 2,78 -60,-12 -113,-56 -32,-17 -15,-47 17,-31 47,-10 21,11 38,20 17,9 41,15 z M 1756,234 q -1,0 2,54 3,54 3,118 1,125 0,258 -1,133 -36,267 -34,128 -75,218 -41,90 -89,157 -72,108 -196,183 -124,75 -259,98 4,-23 3,-47 -1,-24 0,-46 97,-33 183,-82 86,-49 126,-106 48,-66 89,-156 41,-90 75,-219 34,-133 35,-266 1,-133 1,-259 0,-63 -3,-117 -3,-54 0,-55 z m -677,1423 q 157,-10 291,-81 134,-71 228,-182 66,-78 124,-188 58,-110 94,-233 40,-143 50,-300 10,-157 11,-292 V 163 q 0,0 -155,0 -155,0 -404,0 H 647 q -9,0 -9,49 0,49 7,79 4,24 19,68 15,44 50,107 16,32 76,93 60,61 138,143 45,46 70,116 25,70 22,127 -37,-30 -81,-49 -212,-76 -307,-220 -7,-9 -45,-81 -20,-38 -34,-52 -19,-19 -55,-21 -56,-3 -87,54 -42,-12 -75,-10 -56,21 -81,45 -51,51 -66,102 -15,51 -16,110 0,84 104,222 122,159 130,242 0,36 7,81 6,31 25,60 13,20 17,27 4,7 17,23 9,12 15,18 6,6 15,18 11,13 28,30 -53,146 -43,301 199,-71 334,-223 33,113 130,183 80,-56 127,-148 z M 404,821 q 29,20 6,48 -24,23 -53,4 -61,-40 -65,-105 1,-33 39,-31 36,3 35,37 8,32 38,47 z m 252,498 q 22,11 22,11 30,12 19,44 -12,30 -46,20 -118,-43 -163,-158 -7,-33 24,-45 31,-10 42,22 8,17 12,22 11,-9 29,-12 61,-10 71,54 3,22 -10,42 z"
-     display="block"
-     id="path2"
-     inkscape:connector-curvature="0" />
+     showguides="false"
+     inkscape:zoom="2.664108"
+     inkscape:cx="105.33637"
+     inkscape:cy="39.05641"
+     inkscape:window-x="1912"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg27599" />
+  <defs
+     id="defs27593">
+    <linearGradient
+       id="0"
+       gradientUnits="userSpaceOnUse"
+       x1="21.13"
+       y1="37.35"
+       x2="77.76"
+       y2="37.469"
+       gradientTransform="matrix(1,0,0,0.97324,47.040578,-3.1764001)">
+      <stop
+         stop-color="#fff"
+         id="stop27588" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop27590" />
+    </linearGradient>
+    <linearGradient
+       id="0-4"
+       x1="21.253"
+       y1="37.220001"
+       x2="77.639999"
+       y2="37.349998"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop15277" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop15279" />
+    </linearGradient>
+    <linearGradient
+       id="0-4-7"
+       x1="21.253"
+       y1="37.220001"
+       x2="77.639999"
+       y2="37.349998"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop15277-5" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop15279-3" />
+    </linearGradient>
+    <linearGradient
+       id="0-1"
+       gradientUnits="userSpaceOnUse"
+       x1="21.129999"
+       y1="37.349998"
+       x2="77.760002"
+       y2="37.469002"
+       gradientTransform="matrix(0.99999999,0,0,0.97323999,41.755788,2.6332667)">
+      <stop
+         stop-color="#fff"
+         id="stop27588-8" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop27590-9" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="matrix(0.56086365,0,0,0.56086365,82.381854,11.602577)"
+       id="0-1-1"
+       x1="21.253"
+       y1="37.220001"
+       x2="77.760002"
+       y2="37.360001"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop16502" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop16504" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="translate(-52.647805,23.120975)"
+       id="0-9"
+       x1="21.375999"
+       x2="77.639999"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop1127" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop1129" />
+    </linearGradient>
+  </defs>
   <g
   <g
-     id="g16"
-     transform="matrix(1,0,0,-1,0,2008)"
-     style="fill:#ffffff;fill-rule:nonzero">
-    <path
-       style="color:#000000;display:block"
-       d="m 490,1365 q 4,-9 13,-27 17,-42 17,-50 -2,-28 -29,-28 -20,0 -47,57 -4,8 -12,14 -27,28 8,47 32,19 50,-13 z"
-       display="block"
-       id="path4"
-       inkscape:connector-curvature="0" />
-    <path
-       style="color:#000000;display:block"
-       d="m 1080,994 q 70,-92 69,-205 -4,-33 -38,-33 -46,0 -36,34 3,55 -11,91 -23,57 -51,85 -15,30 18,44 32,15 49,-16 z"
-       display="block"
-       id="path6"
-       inkscape:connector-curvature="0" />
-    <path
-       style="color:#000000;display:block"
-       d="m 819,506 q -5,-36 2,-78 -60,12 -113,56 -32,17 -15,47 17,31 47,10 21,-11 38,-20 17,-9 41,-15 z"
-       display="block"
-       id="path8"
-       inkscape:connector-curvature="0" />
+     transform="matrix(1.2044555,0,0,1.2044555,-1.9681825,-0.2899927)"
+     id="g2329"
+     style="stroke-width:1.40585434;stroke-miterlimit:4;stroke-dasharray:none;fill:#1f1a17;fill-opacity:1">
+    <g
+       id="g2325"
+       style="stroke-width:1.40585434;stroke-miterlimit:4;stroke-dasharray:none;fill:#1f1a17;fill-opacity:1">
+      <path
+         style="fill:#1f1a17;stroke:#1f1a17;stroke-width:1.40585434;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
+         inkscape:connector-curvature="0"
+         d="m 22.527,4.833 c 0,3.024 -5.041,5.545 -7.562,7.057 -2.521,1.512 -3.529,3.276 -3.529,5.545 0,2.269 0,14.114 0,16.383 0,2.269 -5.041,4.285 -5.041,4.285 h 16.131"
+         id="path2323" />
+    </g>
     <path
     <path
-       style="color:#000000;display:block"
-       d="m 1756,1774 q -1,0 2,-54 3,-54 3,-118 1,-125 0,-258 -1,-133 -36,-267 -34,-128 -75,-218 -41,-90 -89,-157 -72,-108 -196,-183 -124,-75 -259,-98 4,23 3,47 -1,24 0,46 97,33 183,82 86,49 126,106 48,66 89,156 41,90 75,219 34,133 35,266 1,133 1,259 0,63 -3,117 -3,54 0,55 z"
-       display="block"
-       id="path10"
-       inkscape:connector-curvature="0" />
-    <path
-       style="color:#000000;display:block"
-       d="m 404,1187 q 29,-20 6,-48 -24,-23 -53,-4 -61,40 -65,105 1,33 39,31 36,-3 35,-37 8,-32 38,-47 z"
-       display="block"
-       id="path12"
-       inkscape:connector-curvature="0" />
-    <path
-       style="color:#000000;display:block"
-       d="m 656,689 q 22,-11 22,-11 30,-12 19,-44 -12,-30 -46,-20 -118,43 -163,158 -7,33 24,45 31,10 42,-22 8,-17 12,-22 11,9 29,12 61,10 71,-54 3,-22 -10,-42 z"
-       display="block"
-       id="path14"
-       inkscape:connector-curvature="0" />
+       style="fill:#1f1a17;stroke:#1f1a17;stroke-width:1.40585434;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
+       inkscape:connector-curvature="0"
+       d="m 22.447,4.833 c 0,3.024 4.98,5.545 7.47,7.057 2.49,1.512 3.485,3.276 3.485,5.545 0,2.269 0,14.114 0,16.383 0,2.269 4.981,4.285 4.981,4.285 H 22.447"
+       id="path2327" />
+  </g>
+  <g
+     transform="matrix(1.476261,0,0,1.476261,-8.0527455,-6.06052)"
+     id="g2335">
+    <line
+       style="fill:none;stroke:#ffffff;stroke-width:2;stroke-opacity:1"
+       x1="19.056"
+       y1="18.333"
+       x2="25.723"
+       y2="18.333"
+       id="line2331" />
+    <line
+       style="fill:none;stroke:#ffffff;stroke-width:2;stroke-opacity:1"
+       x1="22.306"
+       y1="18.333"
+       x2="22.306"
+       y2="30.584"
+       id="line2333" />
   </g>
 </svg>
   </g>
 </svg>
index 5c6b2bb..70e9b79 100644 (file)
@@ -7,26 +7,29 @@
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   height="100%"
-   width="100%"
+   width="177.17"
+   height="177.17"
+   shape-rendering="geometricPrecision"
+   image-rendering="optimizeQuality"
+   fill-rule="evenodd"
+   clip-rule="evenodd"
+   viewBox="0 0 50 50"
    version="1.1"
    version="1.1"
-   viewBox="0 0 2048 2048"
-   id="svg16"
-   sodipodi:docname="bw.svg"
-   inkscape:version="0.92.4 5da689c313, 2019-01-14">
+   id="svg27599"
+   sodipodi:docname="bWizard.svg"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
   <metadata
   <metadata
-     id="metadata22">
+     id="metadata27603">
     <rdf:RDF>
       <cc:Work
          rdf:about="">
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
     <rdf:RDF>
       <cc:Work
          rdf:about="">
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
       </cc:Work>
     </rdf:RDF>
   </metadata>
       </cc:Work>
     </rdf:RDF>
   </metadata>
-  <defs
-     id="defs20" />
   <sodipodi:namedview
      pagecolor="#ffffff"
      bordercolor="#666666"
   <sodipodi:namedview
      pagecolor="#ffffff"
      bordercolor="#666666"
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:window-width="960"
-     inkscape:window-height="1080"
-     id="namedview18"
+     inkscape:window-width="1920"
+     inkscape:window-height="1017"
+     id="namedview27601"
      showgrid="false"
      showgrid="false"
-     inkscape:zoom="0.11523438"
-     inkscape:cx="1041.3559"
-     inkscape:cy="1024"
-     inkscape:window-x="0"
-     inkscape:window-y="0"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg16" />
+     showguides="false"
+     inkscape:zoom="1.332054"
+     inkscape:cx="196.56329"
+     inkscape:cy="93.06112"
+     inkscape:window-x="1912"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg27599" />
+  <defs
+     id="defs27593">
+    <linearGradient
+       id="0"
+       gradientUnits="userSpaceOnUse"
+       x1="21.13"
+       y1="37.35"
+       x2="77.76"
+       y2="37.469"
+       gradientTransform="matrix(1,0,0,0.97324,47.040578,-3.1764001)">
+      <stop
+         stop-color="#fff"
+         id="stop27588" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop27590" />
+    </linearGradient>
+    <linearGradient
+       id="0-4"
+       x1="21.253"
+       y1="37.220001"
+       x2="77.639999"
+       y2="37.349998"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop15277" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop15279" />
+    </linearGradient>
+    <linearGradient
+       id="0-4-7"
+       x1="21.253"
+       y1="37.220001"
+       x2="77.639999"
+       y2="37.349998"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop15277-5" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop15279-3" />
+    </linearGradient>
+    <linearGradient
+       id="0-1"
+       gradientUnits="userSpaceOnUse"
+       x1="21.129999"
+       y1="37.349998"
+       x2="77.760002"
+       y2="37.469002"
+       gradientTransform="matrix(0.99999999,0,0,0.97323999,41.755788,2.6332667)">
+      <stop
+         stop-color="#fff"
+         id="stop27588-8" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop27590-9" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="matrix(0.56086365,0,0,0.56086365,82.381854,11.602577)"
+       id="0-1-1"
+       x1="21.253"
+       y1="37.220001"
+       x2="77.760002"
+       y2="37.360001"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop16502" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop16504" />
+    </linearGradient>
+  </defs>
   <path
   <path
-     style="color:#000000;display:block;fill:#000000;fill-rule:nonzero"
-     d="m 1290,564.11538 -42,102 q -102,22 -224,22 -121,0 -222,-22 l -42,-101 q 124,31 264,31 138,0 266,-32 z m -84,206 -29,70 v 27 q -76,11 -153,11 -75,0 -152,-11 l -1,-27 -27,-70 q 85,15 180,15 96,0 182,-15 z m -35,-378 q -40,30 -80,95 h -32 q 0,-49 23,-95 z m -206,0 q 23,49 23,95 h -32 q -39,-64 -81,-95 z m 59,-18 q -14,-57 -34,-79 -20,-22 -53,-46 -36,-25 -85,-42 -49,-17 -109,-9 l -281,39 q -17,2 -30,0 -13,-2 -26,-2 -21,0 -53,-9 -32,-9 -51,-28 l -97,159 q 18,20 32,28 14,8 33,17 58,27 124,33 28,2 55,1 27,-1 56,2 54,-9 108,-16 54,-7 110,-16 60,0 81,12 11,6 35,22 24,16 48,47 -53,6 -108,20 -55,14 -97,31 l 104,258 q -78,45 -109,72 -31,27 -49,64 -26,46 -33,89.00002 -7,43 -7,77 1,60 28,132 27,72 104,130 63,48 123,99 60,51 119,119 -74,38 -74,121 0,56 39,96 39,40 97,40 56,0 96,-40 40,-40 40,-96 0,-82 -74,-121 58,-68 117,-119 59,-51 125,-99 75,-57 102,-129 27,-72 29,-133 0,-34 -7,-77 -7,-43.00002 -32,-89.00002 -20,-36 -50,-63 -30,-27 -108,-73 l 104,-258 q -44,-16 -99,-30 -55,-14 -106,-21 23,-31 47,-47 24,-16 36,-22 21,-12 81,-12 54,8 108,15 54,7 110,17 27,-3 54,-2 27,1 57,-1 64,-6 124,-33 18,-9 32,-17 14,-8 33,-28 l -98,-159 q -18,18 -50,27 -32,9 -53,10 -13,0 -26,2 -13,2 -31,0 l -280,-39 q -60,-9 -111,8 -51,17 -85,45 -33,27 -52,46 -19,19 -33,77 z m -37,744.00002 v -85 q 0,-37.00002 37,-37.00002 37,0 37,37.00002 v 86 h 90 q 35,0 35,36 0,36 -35,36 h -90 v 90 q 0,37 -37,37 -37,0 -37,-37 v -90 h -88 q -35,0 -35,-36 0,-36 35,-36 z"
-     display="block"
-     id="path2"
-     inkscape:connector-curvature="0" />
-  <g
-     id="g14"
-     transform="matrix(1,0,0,-1,0,2030.1154)"
-     style="fill:#ffffff;fill-rule:nonzero">
-    <path
-       style="color:#000000;display:block"
-       d="m 1290,1466 -42,-102 q -102,-22 -224,-22 -121,0 -222,22 l -42,101 q 124,-31 264,-31 138,0 266,32 z"
-       display="block"
-       id="path4"
-       inkscape:connector-curvature="0" />
-    <path
-       style="color:#000000;display:block"
-       d="m 1206,1260 -29,-70 v -27 q -76,-11 -153,-11 -75,0 -152,11 l -1,27 -27,70 q 85,-15 180,-15 96,0 182,15 z"
-       display="block"
-       id="path6"
-       inkscape:connector-curvature="0" />
-    <path
-       style="color:#000000;display:block"
-       d="m 1171,1638 q -40,-30 -80,-95 h -32 q 0,49 23,95 z"
-       display="block"
-       id="path8"
-       inkscape:connector-curvature="0" />
-    <path
-       style="color:#000000;display:block"
-       d="m 965,1638 q 23,-49 23,-95 h -32 q -39,64 -81,95 z"
-       display="block"
-       id="path10"
-       inkscape:connector-curvature="0" />
-    <path
-       style="color:#000000;display:block"
-       d="m 987,912 v 85 q 0,37 37,37 37,0 37,-37 v -86 h 90 q 35,0 35,-36 0,-36 -35,-36 h -90 v -90 q 0,-37 -37,-37 -37,0 -37,37 v 90 h -88 q -35,0 -35,36 0,36 35,36 z"
-       display="block"
-       id="path12"
-       inkscape:connector-curvature="0" />
-  </g>
+     inkscape:connector-curvature="0"
+     d="m 24.761156,5.6531208 c -0.612827,0 -1.217631,0.037456 -1.817078,0.090985 7.716554,1.4343965 13.561168,8.1902242 13.561168,16.3202392 0,9.175029 -7.439574,16.613266 -16.614604,16.613266 -6.322302,0 -11.8176845,-3.5338 -14.6249215,-8.728119 1.97764,8.951575 9.9470875,15.653883 19.4940985,15.653883 11.032247,0 19.974459,-8.943548 19.974459,-19.975795 0.004,-11.032253 -8.940875,-19.9744589 -19.973122,-19.9744592 z"
+     id="path1700"
+     style="fill:#1f1a17;stroke:#1f1a17;stroke-width:1.69328892;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" />
 </svg>
 </svg>
index 2dfaffa..708a5ce 100644 (file)
@@ -7,26 +7,29 @@
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   height="100%"
-   width="100%"
+   width="177.17"
+   height="177.17"
+   shape-rendering="geometricPrecision"
+   image-rendering="optimizeQuality"
+   fill-rule="evenodd"
+   clip-rule="evenodd"
+   viewBox="0 0 50 50"
    version="1.1"
    version="1.1"
-   viewBox="0 0 2048 2048"
-   id="svg6"
-   sodipodi:docname="wc.svg"
-   inkscape:version="0.92.4 5da689c313, 2019-01-14">
+   id="svg27599"
+   sodipodi:docname="wChampion.svg"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
   <metadata
   <metadata
-     id="metadata12">
+     id="metadata27603">
     <rdf:RDF>
       <cc:Work
          rdf:about="">
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
     <rdf:RDF>
       <cc:Work
          rdf:about="">
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
       </cc:Work>
     </rdf:RDF>
   </metadata>
       </cc:Work>
     </rdf:RDF>
   </metadata>
-  <defs
-     id="defs10" />
   <sodipodi:namedview
      pagecolor="#ffffff"
      bordercolor="#666666"
   <sodipodi:namedview
      pagecolor="#ffffff"
      bordercolor="#666666"
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:window-width="960"
-     inkscape:window-height="1080"
-     id="namedview8"
+     inkscape:window-width="1920"
+     inkscape:window-height="1017"
+     id="namedview27601"
      showgrid="false"
      showgrid="false"
-     inkscape:zoom="0.11523438"
-     inkscape:cx="1041.3559"
-     inkscape:cy="1024"
-     inkscape:window-x="0"
-     inkscape:window-y="0"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg6" />
-  <path
-     style="color:#000000;display:block;fill:#ffffff;fill-rule:nonzero"
-     d="m 1756,234 q -1,0 2,54 3,54 3,118 1,125 0,258 -1,133 -36,267 -34,128 -75,218 -41,90 -89,157 -72,108 -196,183 -124,75 -259,98 9,-49 8,-96 -2,-36 -34,-36 -37,0 -33,36 3,132 -94,226 -76,-80 -82,-186 -2,-35 -36,-31 -32,1 -32,37 0,0 2,8 -41,-13 -86,-37 -29,-20 -47,10 -18,30 16,47 43,22 65,33 -86,88 -196,142 12,-139 76,-263 17,-26 -8,-46 -28,-22 -47,7 -7,10 -20,36 -21,-21 -28,-31 -7,-9 -24,-40 -17,-31 -26,-51 -9,-25 -8,-40 1,-15 3,-35 -9,-59 -40,-111 -31,-52 -81,-127 -47,-72 -72,-108 -25,-36 -38,-92 -9,-34 0,-82 9,-48 39,-76 46,-47 89,-43 14,0 37,11 23,11 37,42 26,57 43,57 25,0 27,-28 0,-6 -16,-50 -9,-20 -24,-42 -19,-26 -17,-22 16,-57 53,-20 11,11 25,41 14,30 44,81 35,59 75,96 40,37 71,60 18,13 44,30 26,17 70,35 35,14 77,34 42,20 76,53 46,45 71,111 13,37 10,91 -9,34 34,34 32,0 36,-33 0,-113 -64,-206 21,-64 11,-140 -9,-61 -42,-130 Q 1017,674 914,588 707,416 718,234 q 0,0 170,0 170,0 321,0 z"
-     display="block"
-     id="path2"
-     inkscape:connector-curvature="0" />
-  <path
-     style="color:#000000;display:block;fill:#000000;fill-rule:nonzero"
-     d="m 697,1319 q 13,-20 10,-42 -10,-64 -71,-54 -18,3 -29,12 -4,-5 -12,-22 -11,-32 -42,-22 -31,12 -24,45 45,115 163,158 34,10 45,-20 12,-32 -18,-44 -6,-3 -11,-5 -5,-2 -11,-6 z M 400,842 q -29,-18 -35,-48 1,-33 -31,-36 -35,-4 -36,30 4,66 59,105 26,21 48,-4 22,-27 -5,-47 z m 679,815 q 157,-10 291,-81 134,-71 228,-182 66,-78 124,-188 58,-110 94,-233 40,-143 50,-300 10,-157 11,-292 V 163 q 0,0 -155,0 -155,0 -404,0 H 647 q -9,0 -9,49 0,49 7,79 4,24 19,68 15,44 50,107 16,32 76,93 60,61 138,143 45,46 70,116 25,70 22,127 -37,-30 -81,-49 -212,-76 -307,-220 -7,-9 -45,-81 -20,-38 -34,-52 -19,-19 -55,-21 -56,-3 -87,54 -42,-12 -75,-10 -56,21 -81,45 -51,51 -66,102 -15,51 -16,110 0,84 104,222 122,159 130,242 0,36 7,81 6,31 25,60 13,20 17,27 4,7 17,23 9,12 15,18 6,6 15,18 11,13 28,30 -53,146 -43,301 199,-71 334,-223 33,113 130,183 80,-56 127,-148 z M 1756,234 q -1,0 2,54 3,54 3,118 1,125 0,258 -1,133 -36,267 -34,128 -75,218 -41,90 -89,157 -72,108 -196,183 -124,75 -259,98 9,-49 8,-96 -2,-36 -34,-36 -37,0 -33,36 3,132 -94,226 -76,-80 -82,-186 -2,-35 -36,-31 -32,1 -32,37 0,0 2,8 -41,-13 -86,-37 -29,-20 -47,10 -18,30 16,47 43,22 65,33 -86,88 -196,142 12,-139 76,-263 17,-26 -8,-46 -28,-22 -47,7 -7,10 -20,36 -21,-21 -28,-31 -7,-9 -24,-40 -17,-31 -26,-51 -9,-25 -8,-40 1,-15 3,-35 -9,-59 -40,-111 -31,-52 -81,-127 -47,-72 -72,-108 -25,-36 -38,-92 -9,-34 0,-82 9,-48 39,-76 46,-47 89,-43 14,0 37,11 23,11 37,42 26,57 43,57 25,0 27,-28 0,-6 -16,-50 -9,-20 -24,-42 -19,-26 -17,-22 16,-57 53,-20 11,11 25,41 14,30 44,81 35,59 75,96 40,37 71,60 18,13 44,30 26,17 70,35 35,14 77,34 42,20 76,53 46,45 71,111 13,37 10,91 -9,34 34,34 32,0 36,-33 0,-113 -64,-206 21,-64 11,-140 -9,-61 -42,-130 Q 1017,674 914,588 707,416 718,234 q 0,0 170,0 170,0 321,0 z"
-     display="block"
-     id="path4"
-     inkscape:connector-curvature="0" />
+     showguides="false"
+     inkscape:zoom="0.9419044"
+     inkscape:cx="417.55145"
+     inkscape:cy="19.437519"
+     inkscape:window-x="1912"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg27599" />
+  <defs
+     id="defs27593">
+    <linearGradient
+       id="0"
+       gradientUnits="userSpaceOnUse"
+       x1="21.13"
+       y1="37.35"
+       x2="77.76"
+       y2="37.469"
+       gradientTransform="matrix(1,0,0,0.97324,47.040578,-3.1764001)">
+      <stop
+         stop-color="#fff"
+         id="stop27588" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop27590" />
+    </linearGradient>
+    <linearGradient
+       id="0-4"
+       x1="21.253"
+       y1="37.220001"
+       x2="77.639999"
+       y2="37.349998"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop15277" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop15279" />
+    </linearGradient>
+    <linearGradient
+       id="0-4-7"
+       x1="21.253"
+       y1="37.220001"
+       x2="77.639999"
+       y2="37.349998"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop15277-5" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop15279-3" />
+    </linearGradient>
+    <linearGradient
+       id="0-1"
+       gradientUnits="userSpaceOnUse"
+       x1="21.129999"
+       y1="37.349998"
+       x2="77.760002"
+       y2="37.469002"
+       gradientTransform="matrix(0.99999999,0,0,0.97323999,41.755788,2.6332667)">
+      <stop
+         stop-color="#fff"
+         id="stop27588-8" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop27590-9" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="matrix(0.56086365,0,0,0.56086365,82.381854,11.602577)"
+       id="0-1-1"
+       x1="21.253"
+       y1="37.220001"
+       x2="77.760002"
+       y2="37.360001"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop16502" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop16504" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="translate(-52.647805,23.120975)"
+       id="0-9"
+       x1="21.375999"
+       x2="77.639999"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop1127" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop1129" />
+    </linearGradient>
+  </defs>
+  <g
+     transform="matrix(1.2044555,0,0,1.2044555,-1.9681825,-0.2899927)"
+     id="g2329"
+     style="stroke-width:1.40585434;stroke-miterlimit:4;stroke-dasharray:none">
+    <g
+       id="g2325"
+       style="stroke-width:1.40585434;stroke-miterlimit:4;stroke-dasharray:none">
+      <path
+         style="fill:#ffffff;stroke:#1f1a17;stroke-width:1.40585434;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         inkscape:connector-curvature="0"
+         d="m 22.527,4.833 c 0,3.024 -5.041,5.545 -7.562,7.057 -2.521,1.512 -3.529,3.276 -3.529,5.545 0,2.269 0,14.114 0,16.383 0,2.269 -5.041,4.285 -5.041,4.285 h 16.131"
+         id="path2323" />
+    </g>
+    <path
+       style="fill:#ffffff;stroke:#1f1a17;stroke-width:1.40585434;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0"
+       d="m 22.447,4.833 c 0,3.024 4.98,5.545 7.47,7.057 2.49,1.512 3.485,3.276 3.485,5.545 0,2.269 0,14.114 0,16.383 0,2.269 4.981,4.285 4.981,4.285 H 22.447"
+       id="path2327" />
+  </g>
+  <g
+     transform="matrix(1.476261,0,0,1.476261,-8.0527455,-6.06052)"
+     id="g2335">
+    <line
+       style="fill:none;stroke:#1f1a17;stroke-width:2;stroke-opacity:1"
+       x1="19.056"
+       y1="18.333"
+       x2="25.723"
+       y2="18.333"
+       id="line2331" />
+    <line
+       style="fill:none;stroke:#1f1a17;stroke-width:2;stroke-opacity:1"
+       x1="22.306"
+       y1="18.333"
+       x2="22.306"
+       y2="30.584"
+       id="line2333" />
+  </g>
 </svg>
 </svg>
index f40e874..c77e29a 100644 (file)
@@ -7,26 +7,29 @@
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   height="100%"
-   width="100%"
+   width="177.17"
+   height="177.17"
+   shape-rendering="geometricPrecision"
+   image-rendering="optimizeQuality"
+   fill-rule="evenodd"
+   clip-rule="evenodd"
+   viewBox="0 0 50 50"
    version="1.1"
    version="1.1"
-   viewBox="0 0 2048 2048"
-   id="svg18"
-   sodipodi:docname="ww.svg"
-   inkscape:version="0.92.4 5da689c313, 2019-01-14">
+   id="svg27599"
+   sodipodi:docname="wWizard.svg"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
   <metadata
   <metadata
-     id="metadata24">
+     id="metadata27603">
     <rdf:RDF>
       <cc:Work
          rdf:about="">
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
     <rdf:RDF>
       <cc:Work
          rdf:about="">
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
       </cc:Work>
     </rdf:RDF>
   </metadata>
       </cc:Work>
     </rdf:RDF>
   </metadata>
-  <defs
-     id="defs22" />
   <sodipodi:namedview
      pagecolor="#ffffff"
      bordercolor="#666666"
   <sodipodi:namedview
      pagecolor="#ffffff"
      bordercolor="#666666"
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:window-width="960"
-     inkscape:window-height="1080"
-     id="namedview20"
+     inkscape:window-width="1920"
+     inkscape:window-height="1017"
+     id="namedview27601"
      showgrid="false"
      showgrid="false"
-     inkscape:zoom="0.11523438"
-     inkscape:cx="1041.3559"
-     inkscape:cy="1024"
-     inkscape:window-x="0"
-     inkscape:window-y="0"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg18" />
-  <path
-     style="color:#000000;display:block;fill:#ffffff;fill-rule:nonzero"
-     d="m 1024,864.11538 q 97,0 186,-15 98,35 142,109 38,64.00002 38,141.00002 0,46 -23,101 -23,55 -75,101 -59,49 -129,107 -70,58 -139,137 -70,-78 -140,-136 -70,-58 -128,-108 -53,-45 -75,-100 -22,-55 -23,-102 0,-77 37,-141.00002 43,-74 143,-109 88,15 186,15 z"
-     display="block"
-     id="path2"
-     inkscape:connector-curvature="0" />
+     showguides="false"
+     inkscape:zoom="1.332054"
+     inkscape:cx="196.56329"
+     inkscape:cy="93.06112"
+     inkscape:window-x="1912"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg27599" />
+  <defs
+     id="defs27593">
+    <linearGradient
+       id="0"
+       gradientUnits="userSpaceOnUse"
+       x1="21.13"
+       y1="37.35"
+       x2="77.76"
+       y2="37.469"
+       gradientTransform="matrix(1,0,0,0.97324,47.040578,-3.1764001)">
+      <stop
+         stop-color="#fff"
+         id="stop27588" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop27590" />
+    </linearGradient>
+    <linearGradient
+       id="0-4"
+       x1="21.253"
+       y1="37.220001"
+       x2="77.639999"
+       y2="37.349998"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop15277" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop15279" />
+    </linearGradient>
+    <linearGradient
+       id="0-4-7"
+       x1="21.253"
+       y1="37.220001"
+       x2="77.639999"
+       y2="37.349998"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop15277-5" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop15279-3" />
+    </linearGradient>
+    <linearGradient
+       id="0-1"
+       gradientUnits="userSpaceOnUse"
+       x1="21.129999"
+       y1="37.349998"
+       x2="77.760002"
+       y2="37.469002"
+       gradientTransform="matrix(0.99999999,0,0,0.97323999,41.755788,2.6332667)">
+      <stop
+         stop-color="#fff"
+         id="stop27588-8" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop27590-9" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="matrix(0.56086365,0,0,0.56086365,82.381854,11.602577)"
+       id="0-1-1"
+       x1="21.253"
+       y1="37.220001"
+       x2="77.760002"
+       y2="37.360001"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop16502" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop16504" />
+    </linearGradient>
+  </defs>
   <path
   <path
-     style="color:#000000;display:block;fill:#000000;fill-rule:nonzero"
-     d="m 988,1120.1154 -83,1 q -34,0 -34,34 0,34 34,34 h 83 v 86 q 0,35 36,35 35,0 35,-35 v -86 h 86 q 33,0 33,-34 0,-34 -33,-34 h -86 v -82 q 0,-36 -35,-36 -36,0 -36,36 z m 36,-578.00002 q 68,0 132,11 64,11 125,28 -117,31 -257,31 -142,0 -257,-31 58,-16 123,-27 65,-11 134,-12 z m 0,1089.00002 q 68,0 68,68 0,68 -68,68 -68,0 -68,-68 0,-68 68,-68 z m 0,-949.00002 q 117,0 225,-23 l -48,123 q -88,14 -177,14 -91,0 -178,-14 l -48,-123 q 107,23 226,23 z m 0,182 q 97,0 186,-15 98,35 142,109 38,64.00002 38,141.00002 0,46 -23,101 -23,55 -75,101 -59,49 -129,107 -70,58 -139,137 -70,-78 -140,-136 -70,-58 -128,-108 -53,-45 -75,-100 -22,-55 -23,-102 0,-77 37,-141.00002 43,-74 143,-109 88,15 186,15 z m -36,-377 h -32 q -56,-90 -107,-113 -24,-12 -53,-22 -29,-10 -67,-10 -7,0 -107,16 -48,7 -76,15 -28,8 -44,10 -57,7 -133,-6 -46,-8 -86,-29 l 48,-78 q 12,12 31,15 19,3 36,8 42,7 80,2 13,-3 51,-7 38,-4 101,-15 75,-11 102,-11 105,0 161,40 34,26 64,72 30,46 31,113 z m 36,-113 q -14,-57 -34,-79 -20,-22 -53,-46 -36,-25 -85,-42 -49,-17 -109,-9 l -281,39 q -17,2 -30,0 -13,-2 -26,-2 -21,0 -53,-9 -32,-9 -51,-28 l -97,159 q 18,20 32,28 14,8 33,17 58,27 124,33 28,2 55,1 27,-1 56,2 54,-9 108,-16 54,-7 110,-16 60,0 81,12 11,6 35,22 24,16 48,47 -53,6 -108,20 -55,14 -97,31 l 104,258 q -78,45 -109,72 -31,27 -49,64 -26,46 -33,89.00002 -7,43 -7,77 1,60 28,132 27,72 104,130 63,48 123,99 60,51 119,119 -74,38 -74,121 0,56 39,96 39,40 97,40 56,0 96,-40 40,-40 40,-96 0,-82 -74,-121 58,-68 117,-119 59,-51 125,-99 75,-57 102,-129 27,-72 29,-133 0,-34 -7,-77 -7,-43.00002 -32,-89.00002 -20,-36 -50,-63 -30,-27 -108,-73 l 104,-258 q -44,-16 -99,-30 -55,-14 -106,-21 23,-31 47,-47 24,-16 36,-22 21,-12 81,-12 54,8 108,15 54,7 110,17 27,-3 54,-2 27,1 57,-1 64,-6 124,-33 18,-9 32,-17 14,-8 33,-28 l -98,-159 q -18,18 -50,27 -32,9 -53,10 -13,0 -26,2 -13,2 -31,0 l -280,-39 q -60,-9 -111,8 -51,17 -85,45 -33,27 -52,46 -19,19 -33,77 z m 35,113 q 0,-66 30,-112 30,-46 66,-73 55,-40 161,-40 26,0 102,11 62,10 100,14 38,4 51,8 38,5 80,-2 16,-4 35,-7 19,-3 33,-16 l 48,78 q -41,21 -87,29 -76,13 -133,6 -17,-2 -44,-10 -27,-8 -75,-15 -101,-16 -107,-16 -39,0 -68,10 -29,10 -52,22 -53,24 -108,113 z"
-     display="block"
-     id="path4"
-     inkscape:connector-curvature="0" />
-  <g
-     id="g16"
-     transform="matrix(1,0,0,-1,0,2030.1154)"
-     style="fill:#ffffff;fill-rule:nonzero">
-    <path
-       style="color:#000000;display:block"
-       d="m 1024,1488 q 68,0 132,-11 64,-11 125,-28 -117,-31 -257,-31 -142,0 -257,31 58,16 123,27 65,11 134,12 z"
-       display="block"
-       id="path6"
-       inkscape:connector-curvature="0" />
-    <path
-       style="color:#000000;display:block"
-       d="m 1024,399 q 68,0 68,-68 0,-68 -68,-68 -68,0 -68,68 0,68 68,68 z"
-       display="block"
-       id="path8"
-       inkscape:connector-curvature="0" />
-    <path
-       style="color:#000000;display:block"
-       d="m 1024,1348 q 117,0 225,23 l -48,-123 q -88,-14 -177,-14 -91,0 -178,14 l -48,123 q 107,-23 226,-23 z"
-       display="block"
-       id="path10"
-       inkscape:connector-curvature="0" />
-    <path
-       style="color:#000000;display:block"
-       d="m 988,1543 h -32 q -56,90 -107,113 -24,12 -53,22 -29,10 -67,10 -7,0 -107,-16 -48,-7 -76,-15 -28,-8 -44,-10 -57,-7 -133,6 -46,8 -86,29 l 48,78 q 12,-12 31,-15 19,-3 36,-8 42,-7 80,-2 13,3 51,7 38,4 101,15 75,11 102,11 105,0 161,-40 34,-26 64,-72 30,-46 31,-113 z"
-       display="block"
-       id="path12"
-       inkscape:connector-curvature="0" />
-    <path
-       style="color:#000000;display:block"
-       d="m 1059,1543 q 0,66 30,112 30,46 66,73 55,40 161,40 26,0 102,-11 62,-10 100,-14 38,-4 51,-8 38,-5 80,2 16,4 35,7 19,3 33,16 l 48,-78 q -41,-21 -87,-29 -76,-13 -133,-6 -17,2 -44,10 -27,8 -75,15 -101,16 -107,16 -39,0 -68,-10 -29,-10 -52,-22 -53,-24 -108,-113 z"
-       display="block"
-       id="path14"
-       inkscape:connector-curvature="0" />
-  </g>
+     inkscape:connector-curvature="0"
+     d="m 24.761156,5.6531208 c -0.612827,0 -1.217631,0.037456 -1.817078,0.090985 7.716554,1.4343965 13.561168,8.1902242 13.561168,16.3202392 0,9.175029 -7.439574,16.613266 -16.614604,16.613266 -6.322302,0 -11.8176845,-3.5338 -14.6249215,-8.728119 1.97764,8.951575 9.9470875,15.653883 19.4940985,15.653883 11.032247,0 19.974459,-8.943548 19.974459,-19.975795 0.004,-11.032253 -8.940875,-19.9744589 -19.973122,-19.9744592 z"
+     id="path1700"
+     style="fill:#ffffff;stroke:#1f1a17;stroke-width:1.69328892;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
 </svg>
 </svg>
index e3d2eb6..1040316 100644 (file)
@@ -7,26 +7,29 @@
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   height="100%"
-   width="100%"
+   width="177.17"
+   height="177.17"
+   shape-rendering="geometricPrecision"
+   image-rendering="optimizeQuality"
+   fill-rule="evenodd"
+   clip-rule="evenodd"
+   viewBox="0 0 50 50"
    version="1.1"
    version="1.1"
-   viewBox="0 0 2048 2048"
-   id="svg18"
-   sodipodi:docname="bc.svg"
-   inkscape:version="0.92.4 5da689c313, 2019-01-14">
+   id="svg27599"
+   sodipodi:docname="bChampion.svg"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
   <metadata
   <metadata
-     id="metadata24">
+     id="metadata27603">
     <rdf:RDF>
       <cc:Work
          rdf:about="">
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
     <rdf:RDF>
       <cc:Work
          rdf:about="">
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
       </cc:Work>
     </rdf:RDF>
   </metadata>
       </cc:Work>
     </rdf:RDF>
   </metadata>
-  <defs
-     id="defs22" />
   <sodipodi:namedview
      pagecolor="#ffffff"
      bordercolor="#666666"
   <sodipodi:namedview
      pagecolor="#ffffff"
      bordercolor="#666666"
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:window-width="960"
-     inkscape:window-height="1080"
-     id="namedview20"
+     inkscape:window-width="1920"
+     inkscape:window-height="1017"
+     id="namedview27601"
      showgrid="false"
      showgrid="false"
-     inkscape:zoom="0.11523438"
-     inkscape:cx="1041.3559"
-     inkscape:cy="1024"
-     inkscape:window-x="0"
-     inkscape:window-y="0"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg18" />
-  <path
-     style="color:#000000;display:block;fill:#000000;fill-rule:nonzero"
-     d="m 490,643 q 4,9 13,27 17,42 17,50 -2,28 -29,28 -20,0 -47,-57 -4,-8 -12,-14 -27,-28 8,-47 32,-19 50,13 z m 590,371 q 70,92 69,205 -4,33 -38,33 -46,0 -36,-34 3,-55 -11,-91 -23,-57 -51,-85 -15,-30 18,-44 32,-15 49,16 z m -261,488 q -5,36 2,78 -60,-12 -113,-56 -32,-17 -15,-47 17,-31 47,-10 21,11 38,20 17,9 41,15 z M 1756,234 q -1,0 2,54 3,54 3,118 1,125 0,258 -1,133 -36,267 -34,128 -75,218 -41,90 -89,157 -72,108 -196,183 -124,75 -259,98 4,-23 3,-47 -1,-24 0,-46 97,-33 183,-82 86,-49 126,-106 48,-66 89,-156 41,-90 75,-219 34,-133 35,-266 1,-133 1,-259 0,-63 -3,-117 -3,-54 0,-55 z m -677,1423 q 157,-10 291,-81 134,-71 228,-182 66,-78 124,-188 58,-110 94,-233 40,-143 50,-300 10,-157 11,-292 V 163 q 0,0 -155,0 -155,0 -404,0 H 647 q -9,0 -9,49 0,49 7,79 4,24 19,68 15,44 50,107 16,32 76,93 60,61 138,143 45,46 70,116 25,70 22,127 -37,-30 -81,-49 -212,-76 -307,-220 -7,-9 -45,-81 -20,-38 -34,-52 -19,-19 -55,-21 -56,-3 -87,54 -42,-12 -75,-10 -56,21 -81,45 -51,51 -66,102 -15,51 -16,110 0,84 104,222 122,159 130,242 0,36 7,81 6,31 25,60 13,20 17,27 4,7 17,23 9,12 15,18 6,6 15,18 11,13 28,30 -53,146 -43,301 199,-71 334,-223 33,113 130,183 80,-56 127,-148 z M 404,821 q 29,20 6,48 -24,23 -53,4 -61,-40 -65,-105 1,-33 39,-31 36,3 35,37 8,32 38,47 z m 252,498 q 22,11 22,11 30,12 19,44 -12,30 -46,20 -118,-43 -163,-158 -7,-33 24,-45 31,-10 42,22 8,17 12,22 11,-9 29,-12 61,-10 71,54 3,22 -10,42 z"
-     display="block"
-     id="path2"
-     inkscape:connector-curvature="0" />
+     showguides="false"
+     inkscape:zoom="2.664108"
+     inkscape:cx="105.33637"
+     inkscape:cy="39.05641"
+     inkscape:window-x="1912"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg27599" />
+  <defs
+     id="defs27593">
+    <linearGradient
+       id="0"
+       gradientUnits="userSpaceOnUse"
+       x1="21.13"
+       y1="37.35"
+       x2="77.76"
+       y2="37.469"
+       gradientTransform="matrix(1,0,0,0.97324,47.040578,-3.1764001)">
+      <stop
+         stop-color="#fff"
+         id="stop27588" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop27590" />
+    </linearGradient>
+    <linearGradient
+       id="0-4"
+       x1="21.253"
+       y1="37.220001"
+       x2="77.639999"
+       y2="37.349998"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop15277" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop15279" />
+    </linearGradient>
+    <linearGradient
+       id="0-4-7"
+       x1="21.253"
+       y1="37.220001"
+       x2="77.639999"
+       y2="37.349998"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop15277-5" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop15279-3" />
+    </linearGradient>
+    <linearGradient
+       id="0-1"
+       gradientUnits="userSpaceOnUse"
+       x1="21.129999"
+       y1="37.349998"
+       x2="77.760002"
+       y2="37.469002"
+       gradientTransform="matrix(0.99999999,0,0,0.97323999,41.755788,2.6332667)">
+      <stop
+         stop-color="#fff"
+         id="stop27588-8" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop27590-9" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="matrix(0.56086365,0,0,0.56086365,82.381854,11.602577)"
+       id="0-1-1"
+       x1="21.253"
+       y1="37.220001"
+       x2="77.760002"
+       y2="37.360001"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop16502" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop16504" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="translate(-52.647805,23.120975)"
+       id="0-9"
+       x1="21.375999"
+       x2="77.639999"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop1127" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop1129" />
+    </linearGradient>
+  </defs>
   <g
   <g
-     id="g16"
-     transform="matrix(1,0,0,-1,0,2008)"
-     style="fill:#ffffff;fill-rule:nonzero">
-    <path
-       style="color:#000000;display:block"
-       d="m 490,1365 q 4,-9 13,-27 17,-42 17,-50 -2,-28 -29,-28 -20,0 -47,57 -4,8 -12,14 -27,28 8,47 32,19 50,-13 z"
-       display="block"
-       id="path4"
-       inkscape:connector-curvature="0" />
-    <path
-       style="color:#000000;display:block"
-       d="m 1080,994 q 70,-92 69,-205 -4,-33 -38,-33 -46,0 -36,34 3,55 -11,91 -23,57 -51,85 -15,30 18,44 32,15 49,-16 z"
-       display="block"
-       id="path6"
-       inkscape:connector-curvature="0" />
-    <path
-       style="color:#000000;display:block"
-       d="m 819,506 q -5,-36 2,-78 -60,12 -113,56 -32,17 -15,47 17,31 47,10 21,-11 38,-20 17,-9 41,-15 z"
-       display="block"
-       id="path8"
-       inkscape:connector-curvature="0" />
+     transform="matrix(1.2044555,0,0,1.2044555,-1.9681825,-0.2899927)"
+     id="g2329"
+     style="stroke-width:1.40585434;stroke-miterlimit:4;stroke-dasharray:none;fill:#1f1a17;fill-opacity:1">
+    <g
+       id="g2325"
+       style="stroke-width:1.40585434;stroke-miterlimit:4;stroke-dasharray:none;fill:#1f1a17;fill-opacity:1">
+      <path
+         style="fill:#1f1a17;stroke:#1f1a17;stroke-width:1.40585434;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
+         inkscape:connector-curvature="0"
+         d="m 22.527,4.833 c 0,3.024 -5.041,5.545 -7.562,7.057 -2.521,1.512 -3.529,3.276 -3.529,5.545 0,2.269 0,14.114 0,16.383 0,2.269 -5.041,4.285 -5.041,4.285 h 16.131"
+         id="path2323" />
+    </g>
     <path
     <path
-       style="color:#000000;display:block"
-       d="m 1756,1774 q -1,0 2,-54 3,-54 3,-118 1,-125 0,-258 -1,-133 -36,-267 -34,-128 -75,-218 -41,-90 -89,-157 -72,-108 -196,-183 -124,-75 -259,-98 4,23 3,47 -1,24 0,46 97,33 183,82 86,49 126,106 48,66 89,156 41,90 75,219 34,133 35,266 1,133 1,259 0,63 -3,117 -3,54 0,55 z"
-       display="block"
-       id="path10"
-       inkscape:connector-curvature="0" />
-    <path
-       style="color:#000000;display:block"
-       d="m 404,1187 q 29,-20 6,-48 -24,-23 -53,-4 -61,40 -65,105 1,33 39,31 36,-3 35,-37 8,-32 38,-47 z"
-       display="block"
-       id="path12"
-       inkscape:connector-curvature="0" />
-    <path
-       style="color:#000000;display:block"
-       d="m 656,689 q 22,-11 22,-11 30,-12 19,-44 -12,-30 -46,-20 -118,43 -163,158 -7,33 24,45 31,10 42,-22 8,-17 12,-22 11,9 29,12 61,10 71,-54 3,-22 -10,-42 z"
-       display="block"
-       id="path14"
-       inkscape:connector-curvature="0" />
+       style="fill:#1f1a17;stroke:#1f1a17;stroke-width:1.40585434;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
+       inkscape:connector-curvature="0"
+       d="m 22.447,4.833 c 0,3.024 4.98,5.545 7.47,7.057 2.49,1.512 3.485,3.276 3.485,5.545 0,2.269 0,14.114 0,16.383 0,2.269 4.981,4.285 4.981,4.285 H 22.447"
+       id="path2327" />
+  </g>
+  <g
+     transform="matrix(1.476261,0,0,1.476261,-8.0527455,-6.06052)"
+     id="g2335">
+    <line
+       style="fill:none;stroke:#ffffff;stroke-width:2;stroke-opacity:1"
+       x1="19.056"
+       y1="18.333"
+       x2="25.723"
+       y2="18.333"
+       id="line2331" />
+    <line
+       style="fill:none;stroke:#ffffff;stroke-width:2;stroke-opacity:1"
+       x1="22.306"
+       y1="18.333"
+       x2="22.306"
+       y2="30.584"
+       id="line2333" />
   </g>
 </svg>
   </g>
 </svg>
index 5c6b2bb..70e9b79 100644 (file)
@@ -7,26 +7,29 @@
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   height="100%"
-   width="100%"
+   width="177.17"
+   height="177.17"
+   shape-rendering="geometricPrecision"
+   image-rendering="optimizeQuality"
+   fill-rule="evenodd"
+   clip-rule="evenodd"
+   viewBox="0 0 50 50"
    version="1.1"
    version="1.1"
-   viewBox="0 0 2048 2048"
-   id="svg16"
-   sodipodi:docname="bw.svg"
-   inkscape:version="0.92.4 5da689c313, 2019-01-14">
+   id="svg27599"
+   sodipodi:docname="bWizard.svg"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
   <metadata
   <metadata
-     id="metadata22">
+     id="metadata27603">
     <rdf:RDF>
       <cc:Work
          rdf:about="">
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
     <rdf:RDF>
       <cc:Work
          rdf:about="">
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
       </cc:Work>
     </rdf:RDF>
   </metadata>
       </cc:Work>
     </rdf:RDF>
   </metadata>
-  <defs
-     id="defs20" />
   <sodipodi:namedview
      pagecolor="#ffffff"
      bordercolor="#666666"
   <sodipodi:namedview
      pagecolor="#ffffff"
      bordercolor="#666666"
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:window-width="960"
-     inkscape:window-height="1080"
-     id="namedview18"
+     inkscape:window-width="1920"
+     inkscape:window-height="1017"
+     id="namedview27601"
      showgrid="false"
      showgrid="false"
-     inkscape:zoom="0.11523438"
-     inkscape:cx="1041.3559"
-     inkscape:cy="1024"
-     inkscape:window-x="0"
-     inkscape:window-y="0"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg16" />
+     showguides="false"
+     inkscape:zoom="1.332054"
+     inkscape:cx="196.56329"
+     inkscape:cy="93.06112"
+     inkscape:window-x="1912"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg27599" />
+  <defs
+     id="defs27593">
+    <linearGradient
+       id="0"
+       gradientUnits="userSpaceOnUse"
+       x1="21.13"
+       y1="37.35"
+       x2="77.76"
+       y2="37.469"
+       gradientTransform="matrix(1,0,0,0.97324,47.040578,-3.1764001)">
+      <stop
+         stop-color="#fff"
+         id="stop27588" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop27590" />
+    </linearGradient>
+    <linearGradient
+       id="0-4"
+       x1="21.253"
+       y1="37.220001"
+       x2="77.639999"
+       y2="37.349998"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop15277" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop15279" />
+    </linearGradient>
+    <linearGradient
+       id="0-4-7"
+       x1="21.253"
+       y1="37.220001"
+       x2="77.639999"
+       y2="37.349998"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop15277-5" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop15279-3" />
+    </linearGradient>
+    <linearGradient
+       id="0-1"
+       gradientUnits="userSpaceOnUse"
+       x1="21.129999"
+       y1="37.349998"
+       x2="77.760002"
+       y2="37.469002"
+       gradientTransform="matrix(0.99999999,0,0,0.97323999,41.755788,2.6332667)">
+      <stop
+         stop-color="#fff"
+         id="stop27588-8" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop27590-9" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="matrix(0.56086365,0,0,0.56086365,82.381854,11.602577)"
+       id="0-1-1"
+       x1="21.253"
+       y1="37.220001"
+       x2="77.760002"
+       y2="37.360001"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop16502" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop16504" />
+    </linearGradient>
+  </defs>
   <path
   <path
-     style="color:#000000;display:block;fill:#000000;fill-rule:nonzero"
-     d="m 1290,564.11538 -42,102 q -102,22 -224,22 -121,0 -222,-22 l -42,-101 q 124,31 264,31 138,0 266,-32 z m -84,206 -29,70 v 27 q -76,11 -153,11 -75,0 -152,-11 l -1,-27 -27,-70 q 85,15 180,15 96,0 182,-15 z m -35,-378 q -40,30 -80,95 h -32 q 0,-49 23,-95 z m -206,0 q 23,49 23,95 h -32 q -39,-64 -81,-95 z m 59,-18 q -14,-57 -34,-79 -20,-22 -53,-46 -36,-25 -85,-42 -49,-17 -109,-9 l -281,39 q -17,2 -30,0 -13,-2 -26,-2 -21,0 -53,-9 -32,-9 -51,-28 l -97,159 q 18,20 32,28 14,8 33,17 58,27 124,33 28,2 55,1 27,-1 56,2 54,-9 108,-16 54,-7 110,-16 60,0 81,12 11,6 35,22 24,16 48,47 -53,6 -108,20 -55,14 -97,31 l 104,258 q -78,45 -109,72 -31,27 -49,64 -26,46 -33,89.00002 -7,43 -7,77 1,60 28,132 27,72 104,130 63,48 123,99 60,51 119,119 -74,38 -74,121 0,56 39,96 39,40 97,40 56,0 96,-40 40,-40 40,-96 0,-82 -74,-121 58,-68 117,-119 59,-51 125,-99 75,-57 102,-129 27,-72 29,-133 0,-34 -7,-77 -7,-43.00002 -32,-89.00002 -20,-36 -50,-63 -30,-27 -108,-73 l 104,-258 q -44,-16 -99,-30 -55,-14 -106,-21 23,-31 47,-47 24,-16 36,-22 21,-12 81,-12 54,8 108,15 54,7 110,17 27,-3 54,-2 27,1 57,-1 64,-6 124,-33 18,-9 32,-17 14,-8 33,-28 l -98,-159 q -18,18 -50,27 -32,9 -53,10 -13,0 -26,2 -13,2 -31,0 l -280,-39 q -60,-9 -111,8 -51,17 -85,45 -33,27 -52,46 -19,19 -33,77 z m -37,744.00002 v -85 q 0,-37.00002 37,-37.00002 37,0 37,37.00002 v 86 h 90 q 35,0 35,36 0,36 -35,36 h -90 v 90 q 0,37 -37,37 -37,0 -37,-37 v -90 h -88 q -35,0 -35,-36 0,-36 35,-36 z"
-     display="block"
-     id="path2"
-     inkscape:connector-curvature="0" />
-  <g
-     id="g14"
-     transform="matrix(1,0,0,-1,0,2030.1154)"
-     style="fill:#ffffff;fill-rule:nonzero">
-    <path
-       style="color:#000000;display:block"
-       d="m 1290,1466 -42,-102 q -102,-22 -224,-22 -121,0 -222,22 l -42,101 q 124,-31 264,-31 138,0 266,32 z"
-       display="block"
-       id="path4"
-       inkscape:connector-curvature="0" />
-    <path
-       style="color:#000000;display:block"
-       d="m 1206,1260 -29,-70 v -27 q -76,-11 -153,-11 -75,0 -152,11 l -1,27 -27,70 q 85,-15 180,-15 96,0 182,15 z"
-       display="block"
-       id="path6"
-       inkscape:connector-curvature="0" />
-    <path
-       style="color:#000000;display:block"
-       d="m 1171,1638 q -40,-30 -80,-95 h -32 q 0,49 23,95 z"
-       display="block"
-       id="path8"
-       inkscape:connector-curvature="0" />
-    <path
-       style="color:#000000;display:block"
-       d="m 965,1638 q 23,-49 23,-95 h -32 q -39,64 -81,95 z"
-       display="block"
-       id="path10"
-       inkscape:connector-curvature="0" />
-    <path
-       style="color:#000000;display:block"
-       d="m 987,912 v 85 q 0,37 37,37 37,0 37,-37 v -86 h 90 q 35,0 35,-36 0,-36 -35,-36 h -90 v -90 q 0,-37 -37,-37 -37,0 -37,37 v 90 h -88 q -35,0 -35,36 0,36 35,36 z"
-       display="block"
-       id="path12"
-       inkscape:connector-curvature="0" />
-  </g>
+     inkscape:connector-curvature="0"
+     d="m 24.761156,5.6531208 c -0.612827,0 -1.217631,0.037456 -1.817078,0.090985 7.716554,1.4343965 13.561168,8.1902242 13.561168,16.3202392 0,9.175029 -7.439574,16.613266 -16.614604,16.613266 -6.322302,0 -11.8176845,-3.5338 -14.6249215,-8.728119 1.97764,8.951575 9.9470875,15.653883 19.4940985,15.653883 11.032247,0 19.974459,-8.943548 19.974459,-19.975795 0.004,-11.032253 -8.940875,-19.9744589 -19.973122,-19.9744592 z"
+     id="path1700"
+     style="fill:#1f1a17;stroke:#1f1a17;stroke-width:1.69328892;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" />
 </svg>
 </svg>
index 2dfaffa..708a5ce 100644 (file)
@@ -7,26 +7,29 @@
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   height="100%"
-   width="100%"
+   width="177.17"
+   height="177.17"
+   shape-rendering="geometricPrecision"
+   image-rendering="optimizeQuality"
+   fill-rule="evenodd"
+   clip-rule="evenodd"
+   viewBox="0 0 50 50"
    version="1.1"
    version="1.1"
-   viewBox="0 0 2048 2048"
-   id="svg6"
-   sodipodi:docname="wc.svg"
-   inkscape:version="0.92.4 5da689c313, 2019-01-14">
+   id="svg27599"
+   sodipodi:docname="wChampion.svg"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
   <metadata
   <metadata
-     id="metadata12">
+     id="metadata27603">
     <rdf:RDF>
       <cc:Work
          rdf:about="">
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
     <rdf:RDF>
       <cc:Work
          rdf:about="">
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
       </cc:Work>
     </rdf:RDF>
   </metadata>
       </cc:Work>
     </rdf:RDF>
   </metadata>
-  <defs
-     id="defs10" />
   <sodipodi:namedview
      pagecolor="#ffffff"
      bordercolor="#666666"
   <sodipodi:namedview
      pagecolor="#ffffff"
      bordercolor="#666666"
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:window-width="960"
-     inkscape:window-height="1080"
-     id="namedview8"
+     inkscape:window-width="1920"
+     inkscape:window-height="1017"
+     id="namedview27601"
      showgrid="false"
      showgrid="false"
-     inkscape:zoom="0.11523438"
-     inkscape:cx="1041.3559"
-     inkscape:cy="1024"
-     inkscape:window-x="0"
-     inkscape:window-y="0"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg6" />
-  <path
-     style="color:#000000;display:block;fill:#ffffff;fill-rule:nonzero"
-     d="m 1756,234 q -1,0 2,54 3,54 3,118 1,125 0,258 -1,133 -36,267 -34,128 -75,218 -41,90 -89,157 -72,108 -196,183 -124,75 -259,98 9,-49 8,-96 -2,-36 -34,-36 -37,0 -33,36 3,132 -94,226 -76,-80 -82,-186 -2,-35 -36,-31 -32,1 -32,37 0,0 2,8 -41,-13 -86,-37 -29,-20 -47,10 -18,30 16,47 43,22 65,33 -86,88 -196,142 12,-139 76,-263 17,-26 -8,-46 -28,-22 -47,7 -7,10 -20,36 -21,-21 -28,-31 -7,-9 -24,-40 -17,-31 -26,-51 -9,-25 -8,-40 1,-15 3,-35 -9,-59 -40,-111 -31,-52 -81,-127 -47,-72 -72,-108 -25,-36 -38,-92 -9,-34 0,-82 9,-48 39,-76 46,-47 89,-43 14,0 37,11 23,11 37,42 26,57 43,57 25,0 27,-28 0,-6 -16,-50 -9,-20 -24,-42 -19,-26 -17,-22 16,-57 53,-20 11,11 25,41 14,30 44,81 35,59 75,96 40,37 71,60 18,13 44,30 26,17 70,35 35,14 77,34 42,20 76,53 46,45 71,111 13,37 10,91 -9,34 34,34 32,0 36,-33 0,-113 -64,-206 21,-64 11,-140 -9,-61 -42,-130 Q 1017,674 914,588 707,416 718,234 q 0,0 170,0 170,0 321,0 z"
-     display="block"
-     id="path2"
-     inkscape:connector-curvature="0" />
-  <path
-     style="color:#000000;display:block;fill:#000000;fill-rule:nonzero"
-     d="m 697,1319 q 13,-20 10,-42 -10,-64 -71,-54 -18,3 -29,12 -4,-5 -12,-22 -11,-32 -42,-22 -31,12 -24,45 45,115 163,158 34,10 45,-20 12,-32 -18,-44 -6,-3 -11,-5 -5,-2 -11,-6 z M 400,842 q -29,-18 -35,-48 1,-33 -31,-36 -35,-4 -36,30 4,66 59,105 26,21 48,-4 22,-27 -5,-47 z m 679,815 q 157,-10 291,-81 134,-71 228,-182 66,-78 124,-188 58,-110 94,-233 40,-143 50,-300 10,-157 11,-292 V 163 q 0,0 -155,0 -155,0 -404,0 H 647 q -9,0 -9,49 0,49 7,79 4,24 19,68 15,44 50,107 16,32 76,93 60,61 138,143 45,46 70,116 25,70 22,127 -37,-30 -81,-49 -212,-76 -307,-220 -7,-9 -45,-81 -20,-38 -34,-52 -19,-19 -55,-21 -56,-3 -87,54 -42,-12 -75,-10 -56,21 -81,45 -51,51 -66,102 -15,51 -16,110 0,84 104,222 122,159 130,242 0,36 7,81 6,31 25,60 13,20 17,27 4,7 17,23 9,12 15,18 6,6 15,18 11,13 28,30 -53,146 -43,301 199,-71 334,-223 33,113 130,183 80,-56 127,-148 z M 1756,234 q -1,0 2,54 3,54 3,118 1,125 0,258 -1,133 -36,267 -34,128 -75,218 -41,90 -89,157 -72,108 -196,183 -124,75 -259,98 9,-49 8,-96 -2,-36 -34,-36 -37,0 -33,36 3,132 -94,226 -76,-80 -82,-186 -2,-35 -36,-31 -32,1 -32,37 0,0 2,8 -41,-13 -86,-37 -29,-20 -47,10 -18,30 16,47 43,22 65,33 -86,88 -196,142 12,-139 76,-263 17,-26 -8,-46 -28,-22 -47,7 -7,10 -20,36 -21,-21 -28,-31 -7,-9 -24,-40 -17,-31 -26,-51 -9,-25 -8,-40 1,-15 3,-35 -9,-59 -40,-111 -31,-52 -81,-127 -47,-72 -72,-108 -25,-36 -38,-92 -9,-34 0,-82 9,-48 39,-76 46,-47 89,-43 14,0 37,11 23,11 37,42 26,57 43,57 25,0 27,-28 0,-6 -16,-50 -9,-20 -24,-42 -19,-26 -17,-22 16,-57 53,-20 11,11 25,41 14,30 44,81 35,59 75,96 40,37 71,60 18,13 44,30 26,17 70,35 35,14 77,34 42,20 76,53 46,45 71,111 13,37 10,91 -9,34 34,34 32,0 36,-33 0,-113 -64,-206 21,-64 11,-140 -9,-61 -42,-130 Q 1017,674 914,588 707,416 718,234 q 0,0 170,0 170,0 321,0 z"
-     display="block"
-     id="path4"
-     inkscape:connector-curvature="0" />
+     showguides="false"
+     inkscape:zoom="0.9419044"
+     inkscape:cx="417.55145"
+     inkscape:cy="19.437519"
+     inkscape:window-x="1912"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg27599" />
+  <defs
+     id="defs27593">
+    <linearGradient
+       id="0"
+       gradientUnits="userSpaceOnUse"
+       x1="21.13"
+       y1="37.35"
+       x2="77.76"
+       y2="37.469"
+       gradientTransform="matrix(1,0,0,0.97324,47.040578,-3.1764001)">
+      <stop
+         stop-color="#fff"
+         id="stop27588" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop27590" />
+    </linearGradient>
+    <linearGradient
+       id="0-4"
+       x1="21.253"
+       y1="37.220001"
+       x2="77.639999"
+       y2="37.349998"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop15277" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop15279" />
+    </linearGradient>
+    <linearGradient
+       id="0-4-7"
+       x1="21.253"
+       y1="37.220001"
+       x2="77.639999"
+       y2="37.349998"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop15277-5" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop15279-3" />
+    </linearGradient>
+    <linearGradient
+       id="0-1"
+       gradientUnits="userSpaceOnUse"
+       x1="21.129999"
+       y1="37.349998"
+       x2="77.760002"
+       y2="37.469002"
+       gradientTransform="matrix(0.99999999,0,0,0.97323999,41.755788,2.6332667)">
+      <stop
+         stop-color="#fff"
+         id="stop27588-8" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop27590-9" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="matrix(0.56086365,0,0,0.56086365,82.381854,11.602577)"
+       id="0-1-1"
+       x1="21.253"
+       y1="37.220001"
+       x2="77.760002"
+       y2="37.360001"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop16502" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop16504" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="translate(-52.647805,23.120975)"
+       id="0-9"
+       x1="21.375999"
+       x2="77.639999"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop1127" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop1129" />
+    </linearGradient>
+  </defs>
+  <g
+     transform="matrix(1.2044555,0,0,1.2044555,-1.9681825,-0.2899927)"
+     id="g2329"
+     style="stroke-width:1.40585434;stroke-miterlimit:4;stroke-dasharray:none">
+    <g
+       id="g2325"
+       style="stroke-width:1.40585434;stroke-miterlimit:4;stroke-dasharray:none">
+      <path
+         style="fill:#ffffff;stroke:#1f1a17;stroke-width:1.40585434;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         inkscape:connector-curvature="0"
+         d="m 22.527,4.833 c 0,3.024 -5.041,5.545 -7.562,7.057 -2.521,1.512 -3.529,3.276 -3.529,5.545 0,2.269 0,14.114 0,16.383 0,2.269 -5.041,4.285 -5.041,4.285 h 16.131"
+         id="path2323" />
+    </g>
+    <path
+       style="fill:#ffffff;stroke:#1f1a17;stroke-width:1.40585434;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       inkscape:connector-curvature="0"
+       d="m 22.447,4.833 c 0,3.024 4.98,5.545 7.47,7.057 2.49,1.512 3.485,3.276 3.485,5.545 0,2.269 0,14.114 0,16.383 0,2.269 4.981,4.285 4.981,4.285 H 22.447"
+       id="path2327" />
+  </g>
+  <g
+     transform="matrix(1.476261,0,0,1.476261,-8.0527455,-6.06052)"
+     id="g2335">
+    <line
+       style="fill:none;stroke:#1f1a17;stroke-width:2;stroke-opacity:1"
+       x1="19.056"
+       y1="18.333"
+       x2="25.723"
+       y2="18.333"
+       id="line2331" />
+    <line
+       style="fill:none;stroke:#1f1a17;stroke-width:2;stroke-opacity:1"
+       x1="22.306"
+       y1="18.333"
+       x2="22.306"
+       y2="30.584"
+       id="line2333" />
+  </g>
 </svg>
 </svg>
index f40e874..c77e29a 100644 (file)
@@ -7,26 +7,29 @@
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   height="100%"
-   width="100%"
+   width="177.17"
+   height="177.17"
+   shape-rendering="geometricPrecision"
+   image-rendering="optimizeQuality"
+   fill-rule="evenodd"
+   clip-rule="evenodd"
+   viewBox="0 0 50 50"
    version="1.1"
    version="1.1"
-   viewBox="0 0 2048 2048"
-   id="svg18"
-   sodipodi:docname="ww.svg"
-   inkscape:version="0.92.4 5da689c313, 2019-01-14">
+   id="svg27599"
+   sodipodi:docname="wWizard.svg"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
   <metadata
   <metadata
-     id="metadata24">
+     id="metadata27603">
     <rdf:RDF>
       <cc:Work
          rdf:about="">
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
     <rdf:RDF>
       <cc:Work
          rdf:about="">
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
       </cc:Work>
     </rdf:RDF>
   </metadata>
       </cc:Work>
     </rdf:RDF>
   </metadata>
-  <defs
-     id="defs22" />
   <sodipodi:namedview
      pagecolor="#ffffff"
      bordercolor="#666666"
   <sodipodi:namedview
      pagecolor="#ffffff"
      bordercolor="#666666"
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:window-width="960"
-     inkscape:window-height="1080"
-     id="namedview20"
+     inkscape:window-width="1920"
+     inkscape:window-height="1017"
+     id="namedview27601"
      showgrid="false"
      showgrid="false"
-     inkscape:zoom="0.11523438"
-     inkscape:cx="1041.3559"
-     inkscape:cy="1024"
-     inkscape:window-x="0"
-     inkscape:window-y="0"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg18" />
-  <path
-     style="color:#000000;display:block;fill:#ffffff;fill-rule:nonzero"
-     d="m 1024,864.11538 q 97,0 186,-15 98,35 142,109 38,64.00002 38,141.00002 0,46 -23,101 -23,55 -75,101 -59,49 -129,107 -70,58 -139,137 -70,-78 -140,-136 -70,-58 -128,-108 -53,-45 -75,-100 -22,-55 -23,-102 0,-77 37,-141.00002 43,-74 143,-109 88,15 186,15 z"
-     display="block"
-     id="path2"
-     inkscape:connector-curvature="0" />
+     showguides="false"
+     inkscape:zoom="1.332054"
+     inkscape:cx="196.56329"
+     inkscape:cy="93.06112"
+     inkscape:window-x="1912"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg27599" />
+  <defs
+     id="defs27593">
+    <linearGradient
+       id="0"
+       gradientUnits="userSpaceOnUse"
+       x1="21.13"
+       y1="37.35"
+       x2="77.76"
+       y2="37.469"
+       gradientTransform="matrix(1,0,0,0.97324,47.040578,-3.1764001)">
+      <stop
+         stop-color="#fff"
+         id="stop27588" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop27590" />
+    </linearGradient>
+    <linearGradient
+       id="0-4"
+       x1="21.253"
+       y1="37.220001"
+       x2="77.639999"
+       y2="37.349998"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop15277" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop15279" />
+    </linearGradient>
+    <linearGradient
+       id="0-4-7"
+       x1="21.253"
+       y1="37.220001"
+       x2="77.639999"
+       y2="37.349998"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop15277-5" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop15279-3" />
+    </linearGradient>
+    <linearGradient
+       id="0-1"
+       gradientUnits="userSpaceOnUse"
+       x1="21.129999"
+       y1="37.349998"
+       x2="77.760002"
+       y2="37.469002"
+       gradientTransform="matrix(0.99999999,0,0,0.97323999,41.755788,2.6332667)">
+      <stop
+         stop-color="#fff"
+         id="stop27588-8" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop27590-9" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="matrix(0.56086365,0,0,0.56086365,82.381854,11.602577)"
+       id="0-1-1"
+       x1="21.253"
+       y1="37.220001"
+       x2="77.760002"
+       y2="37.360001"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         stop-color="#fff"
+         id="stop16502" />
+      <stop
+         offset="1"
+         stop-color="#fff"
+         stop-opacity="0"
+         id="stop16504" />
+    </linearGradient>
+  </defs>
   <path
   <path
-     style="color:#000000;display:block;fill:#000000;fill-rule:nonzero"
-     d="m 988,1120.1154 -83,1 q -34,0 -34,34 0,34 34,34 h 83 v 86 q 0,35 36,35 35,0 35,-35 v -86 h 86 q 33,0 33,-34 0,-34 -33,-34 h -86 v -82 q 0,-36 -35,-36 -36,0 -36,36 z m 36,-578.00002 q 68,0 132,11 64,11 125,28 -117,31 -257,31 -142,0 -257,-31 58,-16 123,-27 65,-11 134,-12 z m 0,1089.00002 q 68,0 68,68 0,68 -68,68 -68,0 -68,-68 0,-68 68,-68 z m 0,-949.00002 q 117,0 225,-23 l -48,123 q -88,14 -177,14 -91,0 -178,-14 l -48,-123 q 107,23 226,23 z m 0,182 q 97,0 186,-15 98,35 142,109 38,64.00002 38,141.00002 0,46 -23,101 -23,55 -75,101 -59,49 -129,107 -70,58 -139,137 -70,-78 -140,-136 -70,-58 -128,-108 -53,-45 -75,-100 -22,-55 -23,-102 0,-77 37,-141.00002 43,-74 143,-109 88,15 186,15 z m -36,-377 h -32 q -56,-90 -107,-113 -24,-12 -53,-22 -29,-10 -67,-10 -7,0 -107,16 -48,7 -76,15 -28,8 -44,10 -57,7 -133,-6 -46,-8 -86,-29 l 48,-78 q 12,12 31,15 19,3 36,8 42,7 80,2 13,-3 51,-7 38,-4 101,-15 75,-11 102,-11 105,0 161,40 34,26 64,72 30,46 31,113 z m 36,-113 q -14,-57 -34,-79 -20,-22 -53,-46 -36,-25 -85,-42 -49,-17 -109,-9 l -281,39 q -17,2 -30,0 -13,-2 -26,-2 -21,0 -53,-9 -32,-9 -51,-28 l -97,159 q 18,20 32,28 14,8 33,17 58,27 124,33 28,2 55,1 27,-1 56,2 54,-9 108,-16 54,-7 110,-16 60,0 81,12 11,6 35,22 24,16 48,47 -53,6 -108,20 -55,14 -97,31 l 104,258 q -78,45 -109,72 -31,27 -49,64 -26,46 -33,89.00002 -7,43 -7,77 1,60 28,132 27,72 104,130 63,48 123,99 60,51 119,119 -74,38 -74,121 0,56 39,96 39,40 97,40 56,0 96,-40 40,-40 40,-96 0,-82 -74,-121 58,-68 117,-119 59,-51 125,-99 75,-57 102,-129 27,-72 29,-133 0,-34 -7,-77 -7,-43.00002 -32,-89.00002 -20,-36 -50,-63 -30,-27 -108,-73 l 104,-258 q -44,-16 -99,-30 -55,-14 -106,-21 23,-31 47,-47 24,-16 36,-22 21,-12 81,-12 54,8 108,15 54,7 110,17 27,-3 54,-2 27,1 57,-1 64,-6 124,-33 18,-9 32,-17 14,-8 33,-28 l -98,-159 q -18,18 -50,27 -32,9 -53,10 -13,0 -26,2 -13,2 -31,0 l -280,-39 q -60,-9 -111,8 -51,17 -85,45 -33,27 -52,46 -19,19 -33,77 z m 35,113 q 0,-66 30,-112 30,-46 66,-73 55,-40 161,-40 26,0 102,11 62,10 100,14 38,4 51,8 38,5 80,-2 16,-4 35,-7 19,-3 33,-16 l 48,78 q -41,21 -87,29 -76,13 -133,6 -17,-2 -44,-10 -27,-8 -75,-15 -101,-16 -107,-16 -39,0 -68,10 -29,10 -52,22 -53,24 -108,113 z"
-     display="block"
-     id="path4"
-     inkscape:connector-curvature="0" />
-  <g
-     id="g16"
-     transform="matrix(1,0,0,-1,0,2030.1154)"
-     style="fill:#ffffff;fill-rule:nonzero">
-    <path
-       style="color:#000000;display:block"
-       d="m 1024,1488 q 68,0 132,-11 64,-11 125,-28 -117,-31 -257,-31 -142,0 -257,31 58,16 123,27 65,11 134,12 z"
-       display="block"
-       id="path6"
-       inkscape:connector-curvature="0" />
-    <path
-       style="color:#000000;display:block"
-       d="m 1024,399 q 68,0 68,-68 0,-68 -68,-68 -68,0 -68,68 0,68 68,68 z"
-       display="block"
-       id="path8"
-       inkscape:connector-curvature="0" />
-    <path
-       style="color:#000000;display:block"
-       d="m 1024,1348 q 117,0 225,23 l -48,-123 q -88,-14 -177,-14 -91,0 -178,14 l -48,123 q 107,-23 226,-23 z"
-       display="block"
-       id="path10"
-       inkscape:connector-curvature="0" />
-    <path
-       style="color:#000000;display:block"
-       d="m 988,1543 h -32 q -56,90 -107,113 -24,12 -53,22 -29,10 -67,10 -7,0 -107,-16 -48,-7 -76,-15 -28,-8 -44,-10 -57,-7 -133,6 -46,8 -86,29 l 48,78 q 12,-12 31,-15 19,-3 36,-8 42,-7 80,-2 13,3 51,7 38,4 101,15 75,11 102,11 105,0 161,-40 34,-26 64,-72 30,-46 31,-113 z"
-       display="block"
-       id="path12"
-       inkscape:connector-curvature="0" />
-    <path
-       style="color:#000000;display:block"
-       d="m 1059,1543 q 0,66 30,112 30,46 66,73 55,40 161,40 26,0 102,-11 62,-10 100,-14 38,-4 51,-8 38,-5 80,2 16,4 35,7 19,3 33,16 l 48,-78 q -41,-21 -87,-29 -76,-13 -133,-6 -17,2 -44,10 -27,8 -75,15 -101,16 -107,16 -39,0 -68,-10 -29,-10 -52,-22 -53,-24 -108,-113 z"
-       display="block"
-       id="path14"
-       inkscape:connector-curvature="0" />
-  </g>
+     inkscape:connector-curvature="0"
+     d="m 24.761156,5.6531208 c -0.612827,0 -1.217631,0.037456 -1.817078,0.090985 7.716554,1.4343965 13.561168,8.1902242 13.561168,16.3202392 0,9.175029 -7.439574,16.613266 -16.614604,16.613266 -6.322302,0 -11.8176845,-3.5338 -14.6249215,-8.728119 1.97764,8.951575 9.9470875,15.653883 19.4940985,15.653883 11.032247,0 19.974459,-8.943548 19.974459,-19.975795 0.004,-11.032253 -8.940875,-19.9744589 -19.973122,-19.9744592 z"
+     id="path1700"
+     style="fill:#ffffff;stroke:#1f1a17;stroke-width:1.69328892;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
 </svg>
 </svg>
index fd26d87..5ab02fa 100644 (file)
@@ -533,6 +533,8 @@ export default {
       for (let i=move.length -1; i >= 0; i--) this.vr.undo(move[i]);
       this.moves.pop();
       this.cursor--;
       for (let i=move.length -1; i >= 0; i--) this.vr.undo(move[i]);
       this.moves.pop();
       this.cursor--;
+      // The board may still show the possible moves: (TODO: bad solution)
+      this.$refs["board"].resetCurrentAttempt();
       this.inMultimove = false;
     },
     cancelLastMove: function() {
       this.inMultimove = false;
     },
     cancelLastMove: function() {
index 56f3488..6c26722 100644 (file)
@@ -625,6 +625,13 @@ export default {
         this.processArrowAttempt(e);
       }
     },
         this.processArrowAttempt(e);
       }
     },
+    // Called by BaseGame after partially undoing multi-moves:
+    resetCurrentAttempt: function() {
+      this.possibleMoves = [];
+      this.start = null;
+      this.click = "";
+      this.selectedPiece = null;
+    },
     processMoveAttempt: function(e) {
       // Obtain the move from start and end squares
       const [offsetX, offsetY] =
     processMoveAttempt: function(e) {
       // Obtain the move from start and end squares
       const [offsetX, offsetY] =
index c263674..d2ed280 100644 (file)
@@ -170,6 +170,7 @@ export const translations = {
   "Both sides of the mirror": "Both sides of the mirror",
   "Capture all of a kind": "Capture all of a kind",
   "Capture en passant": "Capture en passant",
   "Both sides of the mirror": "Both sides of the mirror",
   "Capture all of a kind": "Capture all of a kind",
   "Capture en passant": "Capture en passant",
+  "Capture on the edge": "Capture on the edge",
   "Capture powers": "Capture powers",
   "Captures reborn": "Captures reborn",
   "Change colors": "Change colors",
   "Capture powers": "Capture powers",
   "Captures reborn": "Captures reborn",
   "Change colors": "Change colors",
@@ -200,6 +201,7 @@ export const translations = {
   "Move like a knight (v2)": "Move like a knight (v2)",
   "Neverending rows": "Neverending rows",
   "No-check mode": "No-check mode",
   "Move like a knight (v2)": "Move like a knight (v2)",
   "Neverending rows": "Neverending rows",
   "No-check mode": "No-check mode",
+  "Occupy the enemy palace": "Occupy the enemy palace",
   "Pawns move diagonally": "Pawns move diagonally",
   "Play at the same time": "Play at the same time",
   "Powerful pieces": "Powerful pieces",
   "Pawns move diagonally": "Pawns move diagonally",
   "Play at the same time": "Play at the same time",
   "Powerful pieces": "Powerful pieces",
index cb9b15d..9af8c4b 100644 (file)
@@ -170,6 +170,7 @@ export const translations = {
   "Both sides of the mirror": "Ambos lados del espejo",
   "Capture all of a kind": "Capturar todo del mismo tipo",
   "Capture en passant": "Capturar en passant",
   "Both sides of the mirror": "Ambos lados del espejo",
   "Capture all of a kind": "Capturar todo del mismo tipo",
   "Capture en passant": "Capturar en passant",
+  "Capture on the edge": "Capturar en el borde",
   "Capture powers": "Capturar los poderes",
   "Captures reborn": "Las capturas renacen",
   "Change colors": "Cambiar colores",
   "Capture powers": "Capturar los poderes",
   "Captures reborn": "Las capturas renacen",
   "Change colors": "Cambiar colores",
@@ -200,6 +201,7 @@ export const translations = {
   "Move like a knight (v2)": "Moverse como un caballo (v2)",
   "Neverending rows": "Filas interminables",
   "No-check mode": "Modo sin jaque",
   "Move like a knight (v2)": "Moverse como un caballo (v2)",
   "Neverending rows": "Filas interminables",
   "No-check mode": "Modo sin jaque",
+  "Occupy the enemy palace": "Ocupar el palacio enemigo",
   "Pawns move diagonally": "Peones se mueven en diagonal",
   "Play at the same time": "Jugar al mismo tiempo",
   "Powerful pieces": "Piezas poderosas",
   "Pawns move diagonally": "Peones se mueven en diagonal",
   "Play at the same time": "Jugar al mismo tiempo",
   "Powerful pieces": "Piezas poderosas",
index 5b2fb42..95d115c 100644 (file)
@@ -170,6 +170,7 @@ export const translations = {
   "Both sides of the mirror": "Les deux côté du miroir",
   "Capture all of a kind": "Capturez tout d'un même type",
   "Capture en passant": "Capturer en passant",
   "Both sides of the mirror": "Les deux côté du miroir",
   "Capture all of a kind": "Capturez tout d'un même type",
   "Capture en passant": "Capturer en passant",
+  "Capture on the edge": "Capturer sur le bord",
   "Capture powers": "Capturer les pouvoirs",
   "Captures reborn": "Les captures renaissent",
   "Change colors": "Changer les couleurs",
   "Capture powers": "Capturer les pouvoirs",
   "Captures reborn": "Les captures renaissent",
   "Change colors": "Changer les couleurs",
@@ -200,6 +201,7 @@ export const translations = {
   "Move like a knight (v2)": "Bouger comme un cavalier (v2)",
   "Neverending rows": "Rangées sans fin",
   "No-check mode": "Mode sans Ã©chec",
   "Move like a knight (v2)": "Bouger comme un cavalier (v2)",
   "Neverending rows": "Rangées sans fin",
   "No-check mode": "Mode sans Ã©chec",
+  "Occupy the enemy palace": "Occuper le palais ennemi",
   "Pawns move diagonally": "Les pions vont en diagonale",
   "Play at the same time": "Jouer en même temps",
   "Powerful pieces": "Pièces puissantes",
   "Pawns move diagonally": "Les pions vont en diagonale",
   "Play at the same time": "Jouer en même temps",
   "Powerful pieces": "Pièces puissantes",
index 5e5a752..e368afa 100644 (file)
@@ -1,7 +1,6 @@
 p.boxed
 p.boxed
-  | Most pieces look the same but behave very differently.
-  | They generally move like an orthodox queen,
-  | but capturing rules are more complex.
+  | Pieces generally move like an orthodox queen,
+  | but capturing rules are quite complex.
 
 p
   | Note: 'Baroque' is the initial name thought by the author,
 
 p
   | Note: 'Baroque' is the initial name thought by the author,
index bde85c4..c37396f 100644 (file)
@@ -1,6 +1,6 @@
-p.boxed
-  | La mayoría de las piezas son conocidas pero se mueven de manera diferente ;
-  | generalmente como una dama ortodoxa, pero las capturas son complejas.
+p.boxed.
+  Las piezas generalmente se mueven como una dama ortodoxa, y las capturas
+  son bastante complejas
 
 p
   | Nota: el nombre elegido inicialmente por el autor es 'Baroque',
 
 p
   | Nota: el nombre elegido inicialmente por el autor es 'Baroque',
index b2554fa..9cc500d 100644 (file)
@@ -1,6 +1,6 @@
 p.boxed
 p.boxed
-  | La plupart des pièces sont connues mais se déplacent différemment ;
-  | en général comme une dame orthodoxe, mais les captures sont complexes.
+  | Les pièces se déplacent en général comme une dame orthodoxe,
+  | et les captures sont assez complexes.
 
 p
   | Note : le nom initialement choisit par l'auteur est 'Baroque',
 
 p
   | Note : le nom initialement choisit par l'auteur est 'Baroque',
diff --git a/client/src/translations/rules/Maxima/en.pug b/client/src/translations/rules/Maxima/en.pug
new file mode 100644 (file)
index 0000000..c1a22b1
--- /dev/null
@@ -0,0 +1,20 @@
+p.boxed.
+  Pieces movements and captures are complex.
+  You can win by occupying the two squares of the last rank.
+
+figure.diagram-container
+  .diagram
+    | fen:xxx2xxx/1g1qk1g1/1bnmrnb1/dppppppd/8/8/8/DPPPPPPD/1BNMRNB1/1G1QK1G1/xxx2xxx:
+  figcaption Standard deterministic position
+
+p.
+  The pawns, queen, rook, inverted rook and knights are respectively called
+  Pincers, Withdrawer, Coordinator, Immobilizer and Long Leapers, and behave
+  exactly as in Baroque chess - so I won't describe them here, please read the
+  Baroque rules.
+
+p.
+
+  guard mage king
+
+
diff --git a/client/src/translations/rules/Maxima/es.pug b/client/src/translations/rules/Maxima/es.pug
new file mode 100644 (file)
index 0000000..1333ed7
--- /dev/null
@@ -0,0 +1 @@
+TODO
diff --git a/client/src/translations/rules/Maxima/fr.pug b/client/src/translations/rules/Maxima/fr.pug
new file mode 100644 (file)
index 0000000..1333ed7
--- /dev/null
@@ -0,0 +1 @@
+TODO
index 7000378..317024f 100644 (file)
@@ -1,7 +1,6 @@
 p.boxed.
 p.boxed.
-  Most pieces look as usual but behave differently.
-  They generally move like an orthodox queen,
-  but capturing rules are more complex.
+  Pieces generally move like an orthodox queen,
+  but capture according to complexe rules.
 
 p.
   This variant comes from an attempt to fix some issues with Baroque variant,
 
 p.
   This variant comes from an attempt to fix some issues with Baroque variant,
index c60d870..e340b2d 100644 (file)
@@ -1,7 +1,6 @@
 p.boxed.
 p.boxed.
-  La mayoría de las piezas parecen familiares pero se comportan de manera
-  diferente. Suelen moverse como una dama ortodoxa,
-  pero captura de acuerdo con reglas bastante complejas.
+  Las piezas se mueven generalmente como una dama ortodoxa,
+  pero capturan de acuerdo con reglas complejas.
 
 p.
   Esta variante proviene de un intento de resolver problemas con la
 
 p.
   Esta variante proviene de un intento de resolver problemas con la
index 4446030..5c9d8f8 100644 (file)
@@ -1,7 +1,6 @@
 p.boxed.
 p.boxed.
-  La plupart des pièces semblent familières mais se comportent différemment.
-  Elles se déplacent en général comme une dame orthodoxe,
-  mais capturent selon des règles assez complexes.
+  Les pièces se déplacent en général comme une dame orthodoxe,
+  mais capturent selon des règles complexes.
 
 p.
   Cette variante provient d'une tentative de résoudre des problèmes avec la
 
 p.
   Cette variante provient d'une tentative de résoudre des problèmes avec la
index 74617cf..1e02cdf 100644 (file)
@@ -425,8 +425,9 @@ export class BaroqueRules extends ChessRules {
               if (
                 (sameRow && move.end.y == y) ||
                 (sameColumn && move.end.x == x)
               if (
                 (sameRow && move.end.y == y) ||
                 (sameColumn && move.end.x == x)
-              )
+              ) {
                 return true;
                 return true;
+              }
             }
           }
         }
             }
           }
         }
@@ -454,8 +455,9 @@ export class BaroqueRules extends ChessRules {
               if (
                 this.getPiece(i, j) == V.KNIGHT &&
                 !this.isImmobilized([i, j])
               if (
                 this.getPiece(i, j) == V.KNIGHT &&
                 !this.isImmobilized([i, j])
-              )
+              ) {
                 return true;
                 return true;
+              }
               continue outerLoop;
             }
             // [else] Our color,
               continue outerLoop;
             }
             // [else] Our color,
diff --git a/client/src/variants/Maxima.js b/client/src/variants/Maxima.js
new file mode 100644 (file)
index 0000000..ab97a21
--- /dev/null
@@ -0,0 +1,832 @@
+import { ChessRules, PiPo, Move } from "@/base_rules";
+import { ArrayFun } from "@/utils/array";
+import { shuffle } from "@/utils/alea";
+
+export class MaximaRules extends ChessRules {
+  static get HasFlags() {
+    return false;
+  }
+
+  static get HasEnpassant() {
+    return false;
+  }
+
+  static get PIECES() {
+    return ChessRules.PIECES.concat([V.IMMOBILIZER, V.MAGE, V.GUARD]);
+  }
+
+  getPpath(b) {
+    if (b[0] == 'x') return "Maxima/nothing";
+    if (['m','d','g'].includes(b[1]))
+      return "Maxima/" + b;
+    return b;
+  }
+
+  // For space next to the palaces:
+  static get NOTHING() {
+    return "xx";
+  }
+
+  static board2fen(b) {
+    if (b[0] == 'x') return 'x';
+    return ChessRules.board2fen(b);
+  }
+
+  static fen2board(f) {
+    if (f == 'x') return V.NOTHING;
+    return ChessRules.fen2board(f);
+  }
+
+  // TODO: the wall position should be checked too
+  static IsGoodPosition(position) {
+    if (position.length == 0) return false;
+    const rows = position.split("/");
+    if (rows.length != V.size.x) return false;
+    let kings = { "k": 0, "K": 0 };
+    for (let row of rows) {
+      let sumElts = 0;
+      for (let i = 0; i < row.length; i++) {
+        if (['K','k'].includes(row[i])) kings[row[i]]++;
+        if (['x'].concat(V.PIECES).includes(row[i].toLowerCase())) sumElts++;
+        else {
+          const num = parseInt(row[i]);
+          if (isNaN(num)) return false;
+          sumElts += num;
+        }
+      }
+      if (sumElts != V.size.y) return false;
+    }
+    if (Object.values(kings).some(v => v != 1)) return false;
+    return true;
+  }
+
+  // No castling, but checks, so keep track of kings
+  setOtherVariables(fen) {
+    this.kingPos = { w: [-1, -1], b: [-1, -1] };
+    const fenParts = fen.split(" ");
+    const position = fenParts[0].split("/");
+    for (let i = 0; i < position.length; i++) {
+      let k = 0;
+      for (let j = 0; j < position[i].length; j++) {
+        switch (position[i].charAt(j)) {
+          case "k":
+            this.kingPos["b"] = [i, k];
+            break;
+          case "K":
+            this.kingPos["w"] = [i, k];
+            break;
+          default: {
+            const num = parseInt(position[i].charAt(j));
+            if (!isNaN(num)) k += num - 1;
+          }
+        }
+        k++;
+      }
+    }
+  }
+
+  static get size() {
+    return { x: 11, y: 8 };
+  }
+
+  static OnBoard(x, y) {
+    return (
+      (x >= 1 && x <= 9 && y >= 0 && y <= 7) ||
+      ([3, 4].includes(y) && [0, 10].includes(x))
+    );
+  }
+
+  static get IMMOBILIZER() {
+    return "m";
+  }
+  static get MAGE() {
+    return 'g';
+  }
+  static get GUARD() {
+    return 'd';
+  }
+  // Although other pieces keep their names here for coding simplicity,
+  // keep in mind that:
+  //  - a "rook" is a coordinator, capturing by coordinating with the king
+  //  - a "knight" is a long-leaper, capturing as in draughts
+  //  - a "bishop" is a chameleon, capturing as its prey
+  //  - a "queen" is a withdrawer, capturing by moving away from pieces
+
+  // Is piece on square (x,y) immobilized?
+  isImmobilized([x, y]) {
+    const piece = this.getPiece(x, y);
+    if (piece == V.MAGE)
+      // Mages are not immobilized:
+      return false;
+    const oppCol = V.GetOppCol(this.getColor(x, y));
+    const adjacentSteps = V.steps[V.ROOK].concat(V.steps[V.BISHOP]);
+    for (let step of adjacentSteps) {
+      const [i, j] = [x + step[0], y + step[1]];
+      if (
+        V.OnBoard(i, j) &&
+        this.board[i][j] != V.EMPTY &&
+        this.getColor(i, j) == oppCol
+      ) {
+        const oppPiece = this.getPiece(i, j);
+        if (oppPiece == V.IMMOBILIZER) return [i, j];
+        // Only immobilizers are immobilized by chameleons:
+        if (oppPiece == V.BISHOP && piece == V.IMMOBILIZER) return [i, j];
+      }
+    }
+    return null;
+  }
+
+  getPotentialMovesFrom([x, y]) {
+    // Pre-check: is thing on this square immobilized?
+    const imSq = this.isImmobilized([x, y]);
+    const piece = this.getPiece(x, y);
+    if (!!imSq && piece != V.KING) {
+      // Only option is suicide, if I'm not a king:
+      return [
+        new Move({
+          start: { x: x, y: y },
+          end: { x: imSq[0], y: imSq[1] },
+          appear: [],
+          vanish: [
+            new PiPo({
+              x: x,
+              y: y,
+              c: this.getColor(x, y),
+              p: this.getPiece(x, y)
+            })
+          ]
+        })
+      ];
+    }
+    let moves = undefined;
+    switch (piece) {
+      case V.IMMOBILIZER:
+        moves = this.getPotentialImmobilizerMoves([x, y]);
+        break;
+      case V.GUARD:
+        moves = this.getPotentialGuardMoves([x, y]);
+        break;
+      case V.MAGE:
+        moves = this.getPotentialMageMoves([x, y]);
+        break;
+      default:
+        moves = super.getPotentialMovesFrom([x, y]);
+    }
+    const pX = (this.turn == 'w' ? 10 : 0);
+    if (this.board[pX][3] == V.EMPTY && this.board[pX][4] == V.EMPTY)
+      return moves;
+    // Filter out moves resulting in self palace occupation:
+    // NOTE: cannot invade own palace but still check the king there.
+    const pY = (this.board[pX][3] == V.EMPTY ? 4 : 3);
+    return moves.filter(m => m.end.x != pX || m.end.y != pY);
+  }
+
+  getSlideNJumpMoves([x, y], steps, oneStep, mageInitSquare, onlyTake) {
+    const piece = !mageInitSquare ? this.getPiece(x, y) : V.MAGE;
+    const initSquare = mageInitSquare || [x, y];
+    let moves = [];
+    outerLoop: for (let step of steps) {
+      let i = x + step[0];
+      let j = y + step[1];
+      if (piece == V.KING) j = j % V.size.y;
+      while (V.OnBoard(i, j) && this.board[i][j] == V.EMPTY) {
+        if (!onlyTake) moves.push(this.getBasicMove(initSquare, [i, j]));
+        if (!!oneStep) continue outerLoop;
+        i += step[0];
+        j += step[1];
+      }
+      // Only king, guard and mage + chameleon can take on occupied square:
+      if (
+        V.OnBoard(i, j)
+        &&
+        this.canTake(initSquare, [i, j])
+        &&
+        (
+          [V.KING, V.GUARD, V.MAGE].includes(piece) ||
+          (piece == V.BISHOP && this.getPiece(i, j) === onlyTake)
+        )
+      ) {
+        moves.push(this.getBasicMove(initSquare, [i, j]));
+      }
+    }
+    return moves;
+  }
+
+  // Modify capturing moves among listed pawn moves
+  addPawnCaptures(moves, byChameleon) {
+    const steps = V.steps[V.ROOK];
+    const color = this.turn;
+    const oppCol = V.GetOppCol(color);
+    moves.forEach(m => {
+      if (!!byChameleon && m.start.x != m.end.x && m.start.y != m.end.y)
+        // Chameleon not moving as pawn
+        return;
+      // Try capturing in every direction
+      for (let step of steps) {
+        const sq2 = [m.end.x + 2 * step[0], m.end.y + 2 * step[1]];
+        if (
+          V.OnBoard(sq2[0], sq2[1]) &&
+          this.board[sq2[0]][sq2[1]] != V.EMPTY &&
+          this.getColor(sq2[0], sq2[1]) == color
+        ) {
+          // Potential capture
+          const sq1 = [m.end.x + step[0], m.end.y + step[1]];
+          if (
+            this.board[sq1[0]][sq1[1]] != V.EMPTY &&
+            this.getColor(sq1[0], sq1[1]) == oppCol
+          ) {
+            const piece1 = this.getPiece(sq1[0], sq1[1]);
+            if (!byChameleon || piece1 == V.PAWN) {
+              m.vanish.push(
+                new PiPo({
+                  x: sq1[0],
+                  y: sq1[1],
+                  c: oppCol,
+                  p: piece1
+                })
+              );
+            }
+          }
+        }
+      }
+    });
+  }
+
+  // "Pincer"
+  getPotentialPawnMoves([x, y]) {
+    let moves = super.getPotentialRookMoves([x, y]);
+    this.addPawnCaptures(moves);
+    return moves;
+  }
+
+  addRookCaptures(moves, byChameleon) {
+    const color = this.turn;
+    const oppCol = V.GetOppCol(color);
+    const kp = this.kingPos[color];
+    moves.forEach(m => {
+      // Check piece-king rectangle (if any) corners for enemy pieces
+      if (m.end.x == kp[0] || m.end.y == kp[1]) return; //"flat rectangle"
+      const corner1 = [m.end.x, kp[1]];
+      const corner2 = [kp[0], m.end.y];
+      for (let [i, j] of [corner1, corner2]) {
+        if (this.board[i][j] != V.EMPTY && this.getColor(i, j) == oppCol) {
+          const piece = this.getPiece(i, j);
+          if (!byChameleon || piece == V.ROOK) {
+            m.vanish.push(
+              new PiPo({
+                x: i,
+                y: j,
+                p: piece,
+                c: oppCol
+              })
+            );
+          }
+        }
+      }
+    });
+  }
+
+  // Coordinator
+  getPotentialRookMoves(sq) {
+    let moves = super.getPotentialQueenMoves(sq);
+    this.addRookCaptures(moves);
+    return moves;
+  }
+
+  getKnightCaptures(startSquare, byChameleon) {
+    // Look in every direction for captures
+    const steps = V.steps[V.ROOK].concat(V.steps[V.BISHOP]);
+    const color = this.turn;
+    const oppCol = V.GetOppCol(color);
+    let moves = [];
+    const [x, y] = [startSquare[0], startSquare[1]];
+    const piece = this.getPiece(x, y); //might be a chameleon!
+    outerLoop: for (let step of steps) {
+      let [i, j] = [x + step[0], y + step[1]];
+      while (V.OnBoard(i, j) && this.board[i][j] == V.EMPTY) {
+        i += step[0];
+        j += step[1];
+      }
+      if (
+        !V.OnBoard(i, j) ||
+        this.getColor(i, j) == color ||
+        (!!byChameleon && this.getPiece(i, j) != V.KNIGHT)
+      ) {
+        continue;
+      }
+      // last(thing), cur(thing) : stop if "cur" is our color,
+      // or beyond board limits, or if "last" isn't empty and cur neither.
+      // Otherwise, if cur is empty then add move until cur square;
+      // if cur is occupied then stop if !!byChameleon and the square not
+      // occupied by a leaper.
+      let last = [i, j];
+      let cur = [i + step[0], j + step[1]];
+      let vanished = [new PiPo({ x: x, y: y, c: color, p: piece })];
+      while (V.OnBoard(cur[0], cur[1])) {
+        if (this.board[last[0]][last[1]] != V.EMPTY) {
+          const oppPiece = this.getPiece(last[0], last[1]);
+          if (!!byChameleon && oppPiece != V.KNIGHT) continue outerLoop;
+          // Something to eat:
+          vanished.push(
+            new PiPo({ x: last[0], y: last[1], c: oppCol, p: oppPiece })
+          );
+        }
+        if (this.board[cur[0]][cur[1]] != V.EMPTY) {
+          if (
+            this.getColor(cur[0], cur[1]) == color ||
+            this.board[last[0]][last[1]] != V.EMPTY
+          ) {
+            //TODO: redundant test
+            continue outerLoop;
+          }
+        } else {
+          moves.push(
+            new Move({
+              appear: [new PiPo({ x: cur[0], y: cur[1], c: color, p: piece })],
+              vanish: JSON.parse(JSON.stringify(vanished)), //TODO: required?
+              start: { x: x, y: y },
+              end: { x: cur[0], y: cur[1] }
+            })
+          );
+        }
+        last = [last[0] + step[0], last[1] + step[1]];
+        cur = [cur[0] + step[0], cur[1] + step[1]];
+      }
+    }
+    return moves;
+  }
+
+  // Long-leaper
+  getPotentialKnightMoves(sq) {
+    return super.getPotentialQueenMoves(sq).concat(this.getKnightCaptures(sq));
+  }
+
+  // Chameleon
+  getPotentialBishopMoves([x, y]) {
+    let moves = super
+      .getPotentialQueenMoves([x, y])
+      .concat(this.getKnightCaptures([x, y], "asChameleon"))
+      .concat(this.getPotentialGuardMoves([x, y], "asChameleon"))
+      .concat(this.getPotentialMageMoves([x, y], "asChameleon"));
+    // No "king capture" because king cannot remain under check
+    this.addPawnCaptures(moves, "asChameleon");
+    this.addRookCaptures(moves, "asChameleon");
+    this.addQueenCaptures(moves, "asChameleon");
+    // Post-processing: merge similar moves, concatenating vanish arrays
+    let mergedMoves = {};
+    moves.forEach(m => {
+      const key = m.end.x + V.size.x * m.end.y;
+      if (!mergedMoves[key]) mergedMoves[key] = m;
+      else {
+        for (let i = 1; i < m.vanish.length; i++)
+          mergedMoves[key].vanish.push(m.vanish[i]);
+      }
+    });
+    return Object.values(mergedMoves);
+  }
+
+  addQueenCaptures(moves, byChameleon) {
+    if (moves.length == 0) return;
+    const [x, y] = [moves[0].start.x, moves[0].start.y];
+    const adjacentSteps = V.steps[V.ROOK].concat(V.steps[V.BISHOP]);
+    let capturingDirections = [];
+    const color = this.turn;
+    const oppCol = V.GetOppCol(color);
+    adjacentSteps.forEach(step => {
+      const [i, j] = [x + step[0], y + step[1]];
+      if (
+        V.OnBoard(i, j) &&
+        this.board[i][j] != V.EMPTY &&
+        this.getColor(i, j) == oppCol &&
+        (!byChameleon || this.getPiece(i, j) == V.QUEEN)
+      ) {
+        capturingDirections.push(step);
+      }
+    });
+    moves.forEach(m => {
+      const step = [
+        m.end.x != x ? (m.end.x - x) / Math.abs(m.end.x - x) : 0,
+        m.end.y != y ? (m.end.y - y) / Math.abs(m.end.y - y) : 0
+      ];
+      // TODO: this test should be done only once per direction
+      if (
+        capturingDirections.some(dir => {
+          return dir[0] == -step[0] && dir[1] == -step[1];
+        })
+      ) {
+        const [i, j] = [x - step[0], y - step[1]];
+        m.vanish.push(
+          new PiPo({
+            x: i,
+            y: j,
+            p: this.getPiece(i, j),
+            c: oppCol
+          })
+        );
+      }
+    });
+  }
+
+  // Withdrawer
+  getPotentialQueenMoves(sq) {
+    let moves = super.getPotentialQueenMoves(sq);
+    this.addQueenCaptures(moves);
+    return moves;
+  }
+
+  getPotentialImmobilizerMoves(sq) {
+    // Immobilizer doesn't capture
+    return super.getPotentialQueenMoves(sq);
+  }
+
+  getPotentialKingMoves(sq) {
+    return this.getSlideNJumpMoves(sq, V.steps[V.KNIGHT], "oneStep");
+  }
+
+  getPotentialGuardMoves(sq, byChameleon) {
+    const onlyTake = !byChameleon ? null : V.GUARD;
+    return (
+      this.getSlideNJumpMoves(
+        sq,
+        V.steps[V.ROOK].concat(V.steps[V.BISHOP]),
+        "oneStep",
+        null,
+        onlyTake
+      )
+    );
+  }
+
+  getNextMageSteps(step) {
+    if (step[0] == -1) {
+      if (step[1] == -1) return [[-1, 0], [0, -1]];
+      return [[-1, 0], [0, 1]];
+    }
+    if (step[1] == -1) return [[1, 0], [0, -1]];
+    return [[1, 0], [0, 1]];
+  }
+
+  getPotentialMageMoves([x, y], byChameleon) {
+    const oppCol = V.GetOppCol(this.turn);
+    const onlyTake = !byChameleon ? null : V.MAGE;
+    let moves = [];
+    for (let step of V.steps[V.BISHOP]) {
+      let [i, j] = [x + step[0], y + step[1]];
+      if (!V.OnBoard(i, j)) continue;
+      if (this.board[i][j] != V.EMPTY) {
+        if (
+          this.getColor(i, j) == oppCol &&
+          (!onlyTake || this.getPiece(i, j) == V.MAGE)
+        ) {
+          // Capture
+          moves.push(this.getBasicMove([x, y], [i, j]));
+        }
+      }
+      else {
+        if (!onlyTake) moves.push(this.getBasicMove([x, y], [i, j]));
+        // Continue orthogonally:
+        const stepO = this.getNextMageSteps(step);
+        Array.prototype.push.apply(
+          moves,
+          this.getSlideNJumpMoves([i, j], stepO, null, [x, y], onlyTake)
+        );
+      }
+    }
+    return moves;
+  }
+
+  isAttacked(sq, color) {
+    return (
+      super.isAttacked(sq, color) ||
+      this.isAttackedByGuard(sq, color) ||
+      this.isAttackedByMage(sq, color)
+    );
+  }
+
+  isAttackedByPawn([x, y], color) {
+    // Square (x,y) must be surroundable by two enemy pieces,
+    // and one of them at least should be a pawn (moving).
+    const dirs = [
+      [1, 0],
+      [0, 1]
+    ];
+    const steps = V.steps[V.ROOK];
+    for (let dir of dirs) {
+      const [i1, j1] = [x - dir[0], y - dir[1]]; //"before"
+      const [i2, j2] = [x + dir[0], y + dir[1]]; //"after"
+      if (V.OnBoard(i1, j1) && V.OnBoard(i2, j2)) {
+        if (
+          (
+            this.board[i1][j1] != V.EMPTY &&
+            this.getColor(i1, j1) == color &&
+            this.board[i2][j2] == V.EMPTY
+          )
+          ||
+          (
+            this.board[i2][j2] != V.EMPTY &&
+            this.getColor(i2, j2) == color &&
+            this.board[i1][j1] == V.EMPTY
+          )
+        ) {
+          // Search a movable enemy pawn landing on the empty square
+          for (let step of steps) {
+            let [ii, jj] = this.board[i1][j1] == V.EMPTY ? [i1, j1] : [i2, j2];
+            let [i3, j3] = [ii + step[0], jj + step[1]];
+            while (V.OnBoard(i3, j3) && this.board[i3][j3] == V.EMPTY) {
+              i3 += step[0];
+              j3 += step[1];
+            }
+            if (
+              V.OnBoard(i3, j3) &&
+              this.getColor(i3, j3) == color &&
+              this.getPiece(i3, j3) == V.PAWN &&
+              !this.isImmobilized([i3, j3])
+            ) {
+              return true;
+            }
+          }
+        }
+      }
+    }
+    return false;
+  }
+
+  isAttackedByRook([x, y], color) {
+    // King must be on same column or row,
+    // and a rook should be able to reach a capturing square
+    const sameRow = x == this.kingPos[color][0];
+    const sameColumn = y == this.kingPos[color][1];
+    if (sameRow || sameColumn) {
+      // Look for the enemy rook (maximum 1)
+      for (let i = 0; i < V.size.x; i++) {
+        for (let j = 0; j < V.size.y; j++) {
+          if (
+            this.board[i][j] != V.EMPTY &&
+            this.getColor(i, j) == color &&
+            this.getPiece(i, j) == V.ROOK
+          ) {
+            if (this.isImmobilized([i, j]))
+              // Because only one rook:
+              return false;
+            // Can it reach a capturing square? Easy but quite suboptimal way
+            // (TODO: generate all moves (turn is OK))
+            const moves = this.getPotentialMovesFrom([i, j]);
+            for (let move of moves) {
+              if (
+                (sameRow && move.end.y == y) ||
+                (sameColumn && move.end.x == x)
+              ) {
+                return true;
+              }
+            }
+          }
+        }
+      }
+    }
+    return false;
+  }
+
+  isAttackedByKnight([x, y], color) {
+    // Square (x,y) must be on same line as a knight,
+    // and there must be empty square(s) behind.
+    const steps = V.steps[V.ROOK].concat(V.steps[V.BISHOP]);
+    outerLoop: for (let step of steps) {
+      const [i0, j0] = [x + step[0], y + step[1]];
+      if (V.OnBoard(i0, j0) && this.board[i0][j0] == V.EMPTY) {
+        // Try in opposite direction:
+        let [i, j] = [x - step[0], y - step[1]];
+        while (V.OnBoard(i, j)) {
+          while (V.OnBoard(i, j) && this.board[i][j] == V.EMPTY) {
+            i -= step[0];
+            j -= step[1];
+          }
+          if (V.OnBoard(i, j)) {
+            if (this.getColor(i, j) == color) {
+              if (
+                this.getPiece(i, j) == V.KNIGHT &&
+                !this.isImmobilized([i, j])
+              ) {
+                return true;
+              }
+              continue outerLoop;
+            }
+            // [else] Our color,
+            // could be captured *if there was an empty space*
+            if (this.board[i + step[0]][j + step[1]] != V.EMPTY)
+              continue outerLoop;
+            i -= step[0];
+            j -= step[1];
+          }
+        }
+      }
+    }
+    return false;
+  }
+
+  isAttackedByBishop([x, y], color) {
+    // We cheat a little here: since this function is used exclusively for
+    // the king, it's enough to check the immediate surrounding of the square.
+    const adjacentSteps = V.steps[V.ROOK].concat(V.steps[V.BISHOP]);
+    for (let step of adjacentSteps) {
+      const [i, j] = [x + step[0], y + step[1]];
+      if (
+        V.OnBoard(i, j) &&
+        this.board[i][j] != V.EMPTY &&
+        this.getColor(i, j) == color &&
+        this.getPiece(i, j) == V.BISHOP &&
+        !this.isImmobilized([i, j])
+      ) {
+        return true;
+      }
+    }
+    return false;
+  }
+
+  isAttackedByQueen([x, y], color) {
+    // Square (x,y) must be adjacent to a queen, and the queen must have
+    // some free space in the opposite direction from (x,y)
+    const adjacentSteps = V.steps[V.ROOK].concat(V.steps[V.BISHOP]);
+    for (let step of adjacentSteps) {
+      const sq2 = [x + 2 * step[0], y + 2 * step[1]];
+      if (V.OnBoard(sq2[0], sq2[1]) && this.board[sq2[0]][sq2[1]] == V.EMPTY) {
+        const sq1 = [x + step[0], y + step[1]];
+        if (
+          this.board[sq1[0]][sq1[1]] != V.EMPTY &&
+          this.getColor(sq1[0], sq1[1]) == color &&
+          this.getPiece(sq1[0], sq1[1]) == V.QUEEN &&
+          !this.isImmobilized(sq1)
+        ) {
+          return true;
+        }
+      }
+    }
+    return false;
+  }
+
+  isAttackedByKing([x, y], color) {
+    for (let step of V.steps[V.KNIGHT]) {
+      let rx = x + step[0],
+          // Circular board for king-knight:
+          ry = (y + step[1]) % V.size.y;
+      if (
+        V.OnBoard(rx, ry) &&
+        this.getPiece(rx, ry) === V.KING &&
+        this.getColor(rx, ry) == color &&
+        !this.isImmobilized([rx, ry])
+      ) {
+        return true;
+      }
+    }
+    return false;
+  }
+
+  isAttackedByGuard(sq, color) {
+    return (
+      super.isAttackedBySlideNJump(
+        sq,
+        color,
+        V.GUARD,
+        V.steps[V.ROOK].concat(V.steps[V.BISHOP]),
+        "oneStep"
+      )
+    );
+  }
+
+  getNextMageCheck(step) {
+    if (step[0] == 0) {
+      if (step[1] == 1) return [[1, 1], [-1, 1]];
+      return [[-1, -1], [1, -1]];
+    }
+    if (step[0] == -1) return [[-1, -1], [-1, 1]];
+    return [[1, 1], [1, -1]];
+  }
+
+  isAttackedByMage([x, y], color) {
+    for (let step of V.steps[V.BISHOP]) {
+      const [i, j] = [x + step[0], y + step[1]];
+      if (
+        V.OnBoard(i, j) &&
+        this.board[i][j] != V.EMPTY &&
+        this.getColor(i, j) == color &&
+        this.getPiece(i, j) == V.MAGE
+      ) {
+        return true;
+      }
+    }
+    for (let step of V.steps[V.ROOK]) {
+      let [i, j] = [x + step[0], y + step[1]];
+      const stepM = this.getNextMageCheck(step);
+      while (V.OnBoard(i, j) && this.board[i][j] == V.EMPTY) {
+        for (let s of stepM) {
+          const [ii, jj] = [i + s[0], j + s[1]];
+          if (
+            V.OnBoard(ii, jj) &&
+            this.board[ii][jj] != V.EMPTY &&
+            this.getColor(ii, jj) == color &&
+            this.getPiece(ii, jj) == V.MAGE
+          ) {
+            return true;
+          }
+        }
+        i += step[0];
+        j += step[1];
+      }
+    }
+    return false;
+  }
+
+  getCurrentScore() {
+    const color = this.turn;
+    const getScoreLost = () => {
+      // Result if I lose:
+      return color == "w" ? "0-1" : "1-0";
+    };
+    if (!this.atLeastOneMove()) {
+      // No valid move: I lose or draw
+      if (this.underCheck(color)) return getScoreLost();
+      return "1/2";
+    }
+    // I lose also if no pieces left (except king)
+    let piecesLeft = 0;
+    outerLoop: for (let i=0; i<V.size.x; i++) {
+      for (let j=0; j<V.size.y; j++) {
+        if (
+          this.board[i][j] != V.EMPTY &&
+          this.getColor(i, j) == color &&
+          this.getPiece(i,j) != V.KING
+        ) {
+          piecesLeft++;
+        }
+      }
+    }
+    if (piecesLeft == 0) return getScoreLost();
+    // Check if my palace is invaded:
+    const pX = (color == 'w' ? 10 : 0);
+    const oppCol = V.GetOppCol(color);
+    if (
+      this.board[pX][3] != V.EMPTY &&
+      this.getColor(pX, 3) == oppCol &&
+      this.board[pX][4] != V.EMPTY &&
+      this.getColor(pX, 4) == oppCol
+    ) {
+      return getScoreLost();
+    }
+    return "*";
+  }
+
+  static GenRandInitFen() {
+    // Always deterministic:
+    return (
+      "xxx2xxx/1g1qk1g1/1bnmrnb1/dppppppd/8/8/8/" +
+      "DPPPPPPD/1BNMRNB1/1G1QK1G1/xxx2xxx w 0"
+    );
+  }
+
+  static get VALUES() {
+    return {
+      p: 1,
+      r: 2,
+      n: 5,
+      b: 4,
+      q: 2,
+      m: 5,
+      g: 7,
+      d: 4,
+      k: 1000
+    };
+  }
+
+  static get SEARCH_DEPTH() {
+    return 2;
+  }
+
+  evalPosition() {
+    let evaluation = 0;
+    for (let i = 0; i < V.size.x; i++) {
+      for (let j = 0; j < V.size.y; j++) {
+        if (![V.EMPTY,V.NOTHING].includes(this.board[i][j])) {
+          const sign = this.getColor(i, j) == "w" ? 1 : -1;
+          evaluation += sign * V.VALUES[this.getPiece(i, j)];
+        }
+      }
+    }
+    return evaluation;
+  }
+
+  getNotation(move) {
+    const initialSquare = V.CoordsToSquare(move.start);
+    const finalSquare = V.CoordsToSquare(move.end);
+    if (move.appear.length == 0)
+      // Suicide 'S'
+      return initialSquare + "S";
+    let notation = undefined;
+    if (move.appear[0].p == V.PAWN) {
+      // Pawn: generally ambiguous short notation, so we use full description
+      notation = "P" + initialSquare + finalSquare;
+    } else if (move.appear[0].p == V.KING)
+      notation = "K" + (move.vanish.length > 1 ? "x" : "") + finalSquare;
+    else notation = move.appear[0].p.toUpperCase() + finalSquare;
+    // Add a capture mark (not describing what is captured...):
+    if (move.vanish.length > 1 && move.appear[0].p != V.KING) notation += "X";
+    return notation;
+  }
+};
index 5431198..258bc80 100644 (file)
@@ -36,6 +36,7 @@ export class OmegaRules extends ChessRules {
     return ([V.CHAMPION, V.WIZARD].includes(b[1]) ? "Omega/" : "") + b;
   }
 
     return ([V.CHAMPION, V.WIZARD].includes(b[1]) ? "Omega/" : "") + b;
   }
 
+  // TODO: the wall position should be checked too
   static IsGoodPosition(position) {
     if (position.length == 0) return false;
     const rows = position.split("/");
   static IsGoodPosition(position) {
     if (position.length == 0) return false;
     const rows = position.split("/");
@@ -161,21 +162,19 @@ export class OmegaRules extends ChessRules {
       // The second bishop must be on a square of different color
       let randIndex_tmp = 2 * randInt(5) + 1;
       const bishop2Pos = positions[randIndex_tmp];
       // The second bishop must be on a square of different color
       let randIndex_tmp = 2 * randInt(5) + 1;
       const bishop2Pos = positions[randIndex_tmp];
-      positions.splice(Math.max(randIndex, randIndex_tmp), 1);
-      positions.splice(Math.min(randIndex, randIndex_tmp), 1);
 
       // Get random squares for champions
 
       // Get random squares for champions
-      randIndex = 2 * randInt(4);
-      let bishopSameColorPos = (bishop1Pos % 2 == 0 ? bishop1Pos : bishop2Pos);
-      if (randIndex >= bishopSameColorPos) randIndex += 2;
-      const champion1Pos = positions[randIndex];
+      let randIndexC = 2 * randInt(4);
+      if (randIndexC >= bishop1Pos) randIndexC += 2;
+      const champion1Pos = positions[randIndexC];
       // The second champion must be on a square of different color
       // The second champion must be on a square of different color
-      randIndex_tmp = 2 * randInt(4) + 1;
-      bishopSameColorPos = (bishop1Pos % 2 == 0 ? bishop1Pos : bishop2Pos);
-      if (randIndex_tmp >= bishopSameColorPos) randIndex_tmp += 2;
-      const champion2Pos = positions[randIndex_tmp];
-      positions.splice(Math.max(randIndex, randIndex_tmp), 1);
-      positions.splice(Math.min(randIndex, randIndex_tmp), 1);
+      let randIndex_tmpC = 2 * randInt(4) + 1;
+      if (randIndex_tmpC >= bishop2Pos) randIndex_tmpC += 2;
+      const champion2Pos = positions[randIndex_tmpC];
+
+      let usedIndices = [randIndex, randIndex_tmp, randIndexC, randIndex_tmpC];
+      usedIndices.sort();
+      for (let i = 3; i >= 0; i--) positions.splice(usedIndices[i], 1);
 
       // Get random squares for other pieces
       randIndex = randInt(6);
 
       // Get random squares for other pieces
       randIndex = randInt(6);
@@ -204,7 +203,7 @@ export class OmegaRules extends ChessRules {
       pieces[c][knight2Pos] = "n";
       pieces[c][rook2Pos] = "r";
       pieces[c][champion2Pos] = "c";
       pieces[c][knight2Pos] = "n";
       pieces[c][rook2Pos] = "r";
       pieces[c][champion2Pos] = "c";
-      flags += V.CoordToColumn(rook1Pos) + V.CoordToColumn(rook2Pos);
+      flags += V.CoordToColumn(rook1Pos+1) + V.CoordToColumn(rook2Pos+1);
     }
     // Add turn + flags + enpassant
     return (
     }
     // Add turn + flags + enpassant
     return (
@@ -231,6 +230,7 @@ export class OmegaRules extends ChessRules {
   canTake([x1, y1], [x2, y2]) {
     return (
       // Cannot take wall :)
   canTake([x1, y1], [x2, y2]) {
     return (
       // Cannot take wall :)
+      // NOTE: this check is useful only for pawns where OnBoard() isn't used
       this.board[x2][y2] != V.NOTHING &&
       this.getColor(x1, y1) !== this.getColor(x2, y2)
     );
       this.board[x2][y2] != V.NOTHING &&
       this.getColor(x1, y1) !== this.getColor(x2, y2)
     );
index 8489ae9..0cfb5dc 100644 (file)
@@ -131,8 +131,9 @@ export class RococoRules extends ChessRules {
   getPotentialMovesFrom([x, y]) {
     // Pre-check: is thing on this square immobilized?
     const imSq = this.isImmobilized([x, y]);
   getPotentialMovesFrom([x, y]) {
     // Pre-check: is thing on this square immobilized?
     const imSq = this.isImmobilized([x, y]);
-    if (!!imSq) {
-      // Only option is suicide:
+    const piece = this.getPiece(x, y);
+    if (!!imSq && piece != V.KING) {
+      // Only option is suicide, if I'm not a king:
       return [
         new Move({
           start: { x: x, y: y },
       return [
         new Move({
           start: { x: x, y: y },
@@ -150,7 +151,7 @@ export class RococoRules extends ChessRules {
       ];
     }
     let moves = [];
       ];
     }
     let moves = [];
-    switch (this.getPiece(x, y)) {
+    switch (piece) {
       case V.IMMOBILIZER:
         moves = this.getPotentialImmobilizerMoves([x, y]);
         break;
       case V.IMMOBILIZER:
         moves = this.getPotentialImmobilizerMoves([x, y]);
         break;
index 7461222..6a81e1c 100644 (file)
@@ -44,6 +44,7 @@ insert or ignore into Variants (name, description) values
   ('Losers', 'Get strong at self-mate'),
   ('Magnetic', 'Laws of attraction'),
   ('Marseille', 'Double moves'),
   ('Losers', 'Get strong at self-mate'),
   ('Magnetic', 'Laws of attraction'),
   ('Marseille', 'Double moves'),
+  ('Maxima', 'Occupy the enemy palace'),
   ('Monster', 'White move twice'),
   ('Omega', 'A wizard in the corner'),
   ('Orda', 'Mongolian Horde'),
   ('Monster', 'White move twice'),
   ('Omega', 'A wizard in the corner'),
   ('Orda', 'Mongolian Horde'),
@@ -52,6 +53,7 @@ insert or ignore into Variants (name, description) values
   ('Racingkings', 'Kings cross the 8x8 board'),
   ('Rifle', 'Shoot pieces'),
   ('Recycle', 'Reuse pieces'),
   ('Racingkings', 'Kings cross the 8x8 board'),
   ('Rifle', 'Shoot pieces'),
   ('Recycle', 'Reuse pieces'),
+  ('Rococo', 'Capture on the edge'),
   ('Royalrace', 'Kings cross the 11x11 board'),
   ('Rugby', 'Transform an essay'),
   ('Schess', 'Seirawan-Harper Chess'),
   ('Royalrace', 'Kings cross the 11x11 board'),
   ('Rugby', 'Transform an essay'),
   ('Schess', 'Seirawan-Harper Chess'),