diff --git a/build/bundle.css b/build/bundle.css
index 580f43b5..26643132 100644
--- a/build/bundle.css
+++ b/build/bundle.css
@@ -17,6 +17,7 @@ main.svelte-1ugrazl>div.svelte-1ugrazl.svelte-1ugrazl{display:inline-block;posit
#vectorUpload.svelte-1jxwqtv.svelte-1jxwqtv{height:100%;width:100%;position:fixed;left:0;top:0;background-color:#000000e6;transition:0.5s;user-select:none;display:flex;flex-flow:row;align-items:center;justify-content:center;overflow:auto}.container.svelte-1jxwqtv.svelte-1jxwqtv{color:#ddd;max-height:100%;max-width:90%}.inputs.svelte-1jxwqtv.svelte-1jxwqtv{column-count:3}textarea.svelte-1jxwqtv.svelte-1jxwqtv{width:100%;font-size:0.8em;font-family:"Courier New", Courier, monospace}input.svelte-1jxwqtv.svelte-1jxwqtv,select.svelte-1jxwqtv.svelte-1jxwqtv{width:10em}input.paired.svelte-1jxwqtv.svelte-1jxwqtv{width:4.85em}input[type="file"].svelte-1jxwqtv.svelte-1jxwqtv{display:none}.close.svelte-1jxwqtv.svelte-1jxwqtv{position:fixed;top:0em;right:0.5em;font-size:4em;padding:0.2em 0;display:inline-block;color:#ddd;z-index:2}label.svelte-1jxwqtv.svelte-1jxwqtv:hover,span.svelte-1jxwqtv.svelte-1jxwqtv:hover{cursor:pointer;color:#fff}.dragging.svelte-1jxwqtv.svelte-1jxwqtv{width:max-content}.template.svelte-1jxwqtv.svelte-1jxwqtv{position:absolute;top:50%;left:50%;margin-top:2.5em;transform:translate(-50%, -50%)}.buttons.svelte-1jxwqtv>button.svelte-1jxwqtv{cursor:pointer;margin:1.18em 0;width:4.8em}@media only screen and (orientation: portrait){.inputs.svelte-1jxwqtv.svelte-1jxwqtv{column-count:2}.buttons.svelte-1jxwqtv.svelte-1jxwqtv{column-span:all}}
nav.svelte-1sxoqy9{display:flex;align-items:center;flex-wrap:wrap;min-height:45px;background-color:#1b1c1d}
li.svelte-1fl894{list-style:none;display:flex}svg.svelte-1fl894{margin:0 0.5em 0 1em;background-color:#35bdb2;cursor:pointer}
+.short.svelte-1deb0ry{min-width:auto}
svg.svelte-ljo27{position:absolute;fill:none;stroke:#fff;stroke-width:5px;margin:-0.4em 0 0 -2.2em}svg.selected.svelte-ljo27{fill:#777;stroke:#333}div.iconed.svelte-ljo27{text-indent:1.8em}
svg.svelte-m0cv10{fill:currentColor;width:0.8em;height:0.8em;vertical-align:middle;cursor:pointer}svg.svelte-m0cv10:active{transform:translateY(1px)}
span.svelte-e703nl{cursor:pointer}
diff --git a/build/bundle.css.map b/build/bundle.css.map
index 7114c4c2..423c6ef8 100644
--- a/build/bundle.css.map
+++ b/build/bundle.css.map
@@ -21,6 +21,7 @@
"UploadVector.svelte",
"Navbar.svelte",
"Logo.svelte",
+ "Other.svelte",
"NavShieldOption.svelte",
"IconButton.svelte",
"Lock.svelte",
@@ -48,8 +49,9 @@
"\n\n
\n\n\n",
"\n\n (dragging = true)}\n on:dragleave|preventDefault={() => (dragging = false)}\n>\n
($state.raster = 0)} class=\"close\">× \n
\n {#if selected}\n
\n \n \n \n \n \n \n\n
\n {:else}\n
\n \n Drag & Drop image here or browse
\n \n \n \n {/if}\n
\n
\n\n\n",
"\n\n (dragging = true)}\n on:dragleave|preventDefault={() => (dragging = false)}\n>\n
($state.vector = 0)} class=\"close\">× \n
\n {#if selected}\n
\n \n \n \n \n {@html svg} \n \n\n
\n\n
\n {:else}\n
\n \n Drag & Drop svg file here or browse
\n \n \n \n
Download Template \n {/if}\n
\n
\n\n\n",
- "\n\n\n \n {#if $isTextReady}\n \n \n \n \n \n \n\n {#if $iconedNav && $state.edit}\n \n {:else}\n \n \n \n \n {/if}\n\n {#if $state.edit}\n \n \n \n {/if}\n {/if}\n \n\n\n",
+ "\n\n\n \n {#if $isTextReady}\n \n \n \n \n\n {#if $iconedNav}\n {#if $state.edit}\n \n \n \n \n \n \n \n {:else}\n \n \n \n \n \n \n \n {/if}\n {:else}\n \n \n \n \n \n {/if}\n\n \n\n {#if $state.edit}\n \n \n \n {/if}\n {/if}\n \n\n\n",
"\n\n{#if !$iconedNav}\n \n \n \n \n \n{/if}\n\n\n",
+ "\n\n\n\n\n",
"\n\n\n
\n {#each shieldTypes as shieldType}\n
\n
\n {#each getShieldsInType(shieldType) as shieldName}\n
changeShield(shieldName)}>\n \n \n \n {$t(`shield.${shieldType}.${shieldName}`)}\n \n {/each}\n
\n\n
{$t(`shield.types.${shieldType}`)} \n
\n {/each}\n
\n\n {#key $shield}\n
\n \n {$t(`menu.shield`)}\n \n {/key}\n
\n\n\n",
"\n\n\n \n \n\n\n",
"\n\n{#if Boolean(locked)}\n 🔖 \n{/if}\n\n\n",
@@ -60,5 +62,5 @@
"\n\n \n \n\n\n"
],
"names": [],
- "mappings": "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"
+ "mappings": "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"
}
\ No newline at end of file
diff --git a/build/bundle.js b/build/bundle.js
index 7e169a1a..89a42f3b 100644
--- a/build/bundle.js
+++ b/build/bundle.js
@@ -12,5 +12,5 @@ var app=function(){"use strict";function e(){}const t=e=>e;function n(e){return
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
- ***************************************************************************** */function qn(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);in.slice(0,t+1).join("-"))).reverse()}function Gn(e,t=Un().fallbackLocale){const n=Fn(e);return t?[...new Set([...n,...Fn(t)])]:n}function Vn(){return null!=Bn?Bn:void 0}Dn.subscribe((e=>{Bn=null!=e?e:void 0,"undefined"!=typeof window&&null!=e&&document.documentElement.setAttribute("lang",e)}));const Jn=Object.assign(Object.assign({},Dn),{set:e=>{if(e&&function(e){if(null==e)return;const t=Gn(e);for(let e=0;eRn.set(!0)),t):Rn.set(!0),jn(e).then((()=>{Dn.set(e)})).finally((()=>{clearTimeout(n),Rn.set(!1)}))}return Dn.set(e)}}),Kn=e=>{const t=Object.create(null);return n=>{const r=JSON.stringify(n);return r in t?t[r]:t[r]=e(n)}},Zn=(e,t)=>{const{formats:n}=Un();if(e in n&&t in n[e])return n[e][t];throw new Error(`[svelte-i18n] Unknown "${t}" ${e} format.`)},Wn=Kn((e=>{var{locale:t,format:n}=e,r=qn(e,["locale","format"]);if(null==t)throw new Error('[svelte-i18n] A "locale" must be set to format numbers');return n&&(r=Zn("number",n)),new Intl.NumberFormat(t,r)})),Xn=Kn((e=>{var{locale:t,format:n}=e,r=qn(e,["locale","format"]);if(null==t)throw new Error('[svelte-i18n] A "locale" must be set to format dates');return n?r=Zn("date",n):0===Object.keys(r).length&&(r=Zn("date","short")),new Intl.DateTimeFormat(t,r)})),Yn=Kn((e=>{var{locale:t,format:n}=e,r=qn(e,["locale","format"]);if(null==t)throw new Error('[svelte-i18n] A "locale" must be set to format time values');return n?r=Zn("time",n):0===Object.keys(r).length&&(r=Zn("time","short")),new Intl.DateTimeFormat(t,r)})),Qn=Kn(((e,t=Vn())=>new kn(e,t,Un().formats,{ignoreTag:Un().ignoreTag}))),er=(e,t={})=>{let n=t;"object"==typeof e&&(n=e,e=n.id);const{values:r,locale:i=Vn(),default:o}=n;if(null==i)throw new Error("[svelte-i18n] Cannot format a message without first setting the initial locale.");let s=_n(e,i);if(s){if("string"!=typeof s)return console.warn(`[svelte-i18n] Message with id "${e}" must be of type "string", found: "${typeof s}". Gettin its value through the "$format" method is deprecated; use the "json" method instead.`),s}else Un().warnOnMissingMessages&&console.warn(`[svelte-i18n] The message "${e}" was not found in "${Gn(i).join('", "')}".${Pn(Vn())?"\n\nNote: there are at least one loader still registered to this locale that wasn't executed.":""}`),s=null!=o?o:e;if(!r)return s;let l=s;try{l=Qn(s,i).format(r)}catch(t){console.warn(`[svelte-i18n] Message "${e}" has syntax error:`,t.message)}return l},tr=(e,t)=>((e={})=>{var{locale:t=Vn()}=e,n=qn(e,["locale"]);return Yn(Object.assign({locale:t},n))})(t).format(e),nr=(e,t)=>((e={})=>{var{locale:t=Vn()}=e,n=qn(e,["locale"]);return Xn(Object.assign({locale:t},n))})(t).format(e),rr=(e,t)=>((e={})=>{var{locale:t=Vn()}=e,n=qn(e,["locale"]);return Wn(Object.assign({locale:t},n))})(t).format(e),ir=(e,t=Vn())=>_n(e,t),or=Ue([Jn,Ln],(()=>er));Ue([Jn],(()=>tr)),Ue([Jn],(()=>nr)),Ue([Jn],(()=>rr)),Ue([Jn,Ln],(()=>ir));function sr(e){return e[Math.floor(Math.random()*e.length)]}function lr(e,t=!0){if(e.array)return sr(e.array);const n=[];for(const t in e)for(let r=0;rt.toUpperCase())).replace(/^[0-9]/,"_")}function ur(e,t){return`${t} `}const dr=e=>()=>fetch(e).then((e=>e.json())),pr={types:{basic:10,regional:2,historical:1,specific:1,banner:1,simple:2,fantasy:1,middleEarth:0},basic:{heater:12,spanish:6,french:1},regional:{horsehead:1,horsehead2:1,polish:1,hessen:1,swiss:1},historical:{boeotian:1,roman:2,kite:1,oldFrench:5,renaissance:2,baroque:2},specific:{targe:1,targe2:0,pavise:5,wedged:10},banner:{flag:1,pennon:0,guidon:0,banner:0,dovetail:1,gonfalon:5,pennant:0},simple:{round:12,oval:6,vesicaPiscis:1,square:1,diamond:2,no:0},middleEarth:{noldor:1,gondor:1,easterling:1,erebor:1,ironHills:1,urukHai:1,moriaOrc:1},fantasy:{fantasy1:2,fantasy2:2,fantasy3:1,fantasy4:1,fantasy5:3}},hr=["basic","regional","historical","specific","banner","simple","middleEarth","fantasy"],fr={heater:"m25,25 h150 v50 a150,150,0,0,1,-75,125 a150,150,0,0,1,-75,-125 z",spanish:"m25,25 h150 v100 a75,75,0,0,1,-150,0 z",french:"m 25,25 h 150 v 139.15 c 0,41.745 -66,18.15 -75,36.3 -9,-18.15 -75,5.445 -75,-36.3 v 0 z",horsehead:"m 20,40 c 0,60 40,80 40,100 0,10 -4,15 -0.35,30 C 65,185.7 81,200 100,200 c 19.1,0 35.3,-14.6 40.5,-30.4 C 144.2,155 140,150 140,140 140,120 180,100 180,40 142.72,40 150,15 100,15 55,15 55,40 20,40 Z",horsehead2:"M60 20c-5 20-10 35-35 55 25 35 35 65 30 100 20 0 35 10 45 26 10-16 30-26 45-26-5-35 5-65 30-100a87 87 0 01-35-55c-25 3-55 3-80 0z",polish:"m 90.3,6.3 c -12.7,0 -20.7,10.9 -40.5,14 0,11.8 -4.9,23.5 -11.4,31.1 0,0 12.7,6 12.7,19.3 C 51.1,90.8 30,90.8 30,90.8 c 0,0 -3.6,7.4 -3.6,22.4 0,34.3 23.1,60.2 40.7,68.2 17.6,8 27.7,11.4 32.9,18.6 5.2,-7.3 15.3,-10.7 32.8,-18.6 17.6,-8 40.7,-33.9 40.7,-68.2 0,-15 -3.6,-22.4 -3.6,-22.4 0,0 -21.1,0 -21.1,-20.1 0,-13.3 12.7,-19.3 12.7,-19.3 C 155.1,43.7 150.2,32.1 150.2,20.3 130.4,17.2 122.5,6.3 109.7,6.3 102.5,6.3 100,10 100,10 c 0,0 -2.5,-3.7 -9.7,-3.7 z",hessen:"M170 20c4 5 8 13 15 20 0 0-10 0-10 15 0 100-15 140-75 145-65-5-75-45-75-145 0-15-10-15-10-15l15-20c0 15 10-5 70-5s70 20 70 5z",swiss:"m 25,20 c -0.1,0 25.2,8.5 37.6,8.5 C 75.1,28.5 99.1,20 100,20 c 0.6,0 24.9,8.5 37.3,8.5 C 149.8,28.5 174.4,20 175,20 l -0.3,22.6 C 173.2,160.3 100,200 100,200 100,200 26.5,160.9 25.2,42.6 Z",boeotian:"M150 115c-5 0-10-5-10-15s5-15 10-15c10 0 7 10 15 10 10 0 0-30 0-30-10-25-30-55-65-55S45 40 35 65c0 0-10 30 0 30 8 0 5-10 15-10 5 0 10 5 10 15s-5 15-10 15c-10 0-7-10-15-10-10 0 0 30 0 30 10 25 30 55 65 55s55-30 65-55c0 0 10-30 0-30-8 0-5 10-15 10z",roman:"m 160,170 c -40,20 -80,20 -120,0 V 30 C 80,10 120,10 160,30 Z",kite:"m 53.3,46.4 c 0,4.1 1,12.3 1,12.3 7.1,55.7 45.7,141.3 45.7,141.3 0,0 38.6,-85.6 45.7,-141.2 0,0 1,-8.1 1,-12.3 C 146.7,20.9 125.8,0.1 100,0.1 74.2,0.1 53.3,20.9 53.3,46.4 Z",oldFrench:"m25,25 h150 v75 a100,100,0,0,1,-75,100 a100,100,0,0,1,-75,-100 z",renaissance:"M 25,33.9 C 33.4,50.3 36.2,72.9 36.2,81.7 36.2,109.9 25,122.6 25,141 c 0,29.4 24.9,44.1 40.2,47.7 15.3,3.7 29.3,0 34.8,11.3 5.5,-11.3 19.6,-7.6 34.8,-11.3 C 150.1,185 175,170.3 175,141 c 0,-18.4 -11.2,-31.1 -11.2,-59.3 0,-8.8 2.8,-31.3 11.2,-47.7 L 155.7,14.4 C 138.2,21.8 119.3,25.7 100,25.7 c -19.3,0 -38.2,-3.9 -55.7,-11.3 z",baroque:"m 100,25 c 18,0 50,2 75,14 v 37 l -2.7,3.2 c -4.9,5.4 -6.6,9.6 -6.7,16.2 0,6.5 2,11.6 6.9,17.2 l 2.8,3.1 v 10.2 c 0,17.7 -2.2,27.7 -7.8,35.9 -5,7.3 -11.7,11.3 -32.3,19.4 -12.6,5 -20.2,8.8 -28.6,14.5 C 103.3,198 100,200 100,200 c 0,0 -2.8,-2.3 -6.4,-4.7 C 85.6,189.8 78,186 65,180.9 32.4,168.1 26.9,160.9 25.8,129.3 L 25,116 l 3.3,-3.3 c 4.8,-5.2 7,-10.7 7,-17.3 0,-6.8 -1.8,-11.1 -6.5,-16.1 L 25,76 V 39 C 50,27 82,25 100,25 Z",targe:"m 20,35 c 15,0 115,-60 155,-10 -5,10 -15,15 -10,50 5,45 10,70 -10,90 C 125,195 75,195 50,175 25,150 30,130 35,85 50,95 65,85 65,70 65,50 50,45 40,50 30,55 27,65 30,70 23,73 20,70 14,70 11,60 20,45 20,35 Z",targe2:"m 84,32.2 c 6.2,-1 19.5,-31.4 94.1,-20.2 -30.57,33.64 -21.66,67.37 -11.2,95 20.2,69.5 -41.17549,84.7 -66.88,84.7 C 74.32,191.7071 8.38,168.95 32,105.9 36.88,92.88 31,89 31,82.6 35.15,82.262199 56.79,86.17 56.5,69.8 56.20,52.74 42.2,47.9 25.9,55.2 25.9,51.4 39.8,6.7 84,32.2 Z",pavise:"M95 7L39.9 37.3a10 10 0 00-5.1 9.5L46 180c.4 5.2 3.7 10 9 10h90c5.3 0 9.6-4.8 10-10l10.6-133.2a10 10 0 00-5-9.5L105 7c-4.2-2.3-6.2-2.3-10 0z",wedged:"m 51.2,19 h 96.4 c 3.1,12.7 10.7,20.9 26.5,20.8 C 175.7,94.5 165.3,144.3 100,200 43.5,154.2 22.8,102.8 25.1,39.7 37,38.9 47.1,34.7 51.2,19 Z",round:"m 185,100 a 85,85 0 0 1 -85,85 85,85 0 0 1 -85,-85 85,85 0 0 1 85,-85 85,85 0 0 1 85,85",oval:"m 32.3,99.5 a 67.7,93.7 0 1 1 0,1.3 z",vesicaPiscis:"M 100,0 C 63.9,20.4 41,58.5 41,100 c 0,41.5 22.9,79.6 59,100 36.1,-20.4 59,-58.5 59,-100 C 159,58.5 136.1,20.4 100,0 Z",square:"M 25,25 H 175 V 175 H 25 Z",diamond:"M 25,100 100,200 175,100 100,0 Z",no:"m0,0 h200 v200 h-200 z",flag:"M 10,40 h180 v120 h-180 Z",pennon:"M 10,40 l190,60 -190,60 Z",guidon:"M 10,40 h190 l-65,60 65,60 h-190 Z",banner:"m 25,25 v 170 l 25,-40 25,40 25,-40 25,40 25,-40 25,40 V 25 Z",dovetail:"m 25,25 v 175 l 75,-40 75,40 V 25 Z",gonfalon:"m 25,25 v 125 l 75,50 75,-50 V 25 Z",pennant:"M 25,15 100,200 175,15 Z",fantasy1:"M 100,5 C 85,30 40,35 15,40 c 40,35 20,90 40,115 15,25 40,30 45,45 5,-15 30,-20 45,-45 20,-25 0,-80 40,-115 C 160,35 115,30 100,5 Z",fantasy2:"m 152,21 c 0,0 -27,14 -52,-4 C 75,35 48,21 48,21 50,45 30,55 30,75 60,75 60,115 32,120 c 3,40 53,50 68,80 15,-30 65,-40 68,-80 -28,-5 -28,-45 2,-45 C 170,55 150,45 152,21 Z",fantasy3:"M 167,67 C 165,0 35,0 33,67 c 32,-7 27,53 -3,43 -5,45 60,65 70,90 10,-25 75,-47.51058 70,-90 -30,10 -35,-50 -3,-43 z",fantasy4:"M100 9C55 48 27 27 13 39c23 50 3 119 49 150 14 9 28 11 38 11s27-4 38-11c55-39 24-108 49-150-14-12-45 7-87-30z",fantasy5:"M 100,0 C 75,25 30,25 30,25 c 0,69 20,145 70,175 50,-30 71,-106 70,-175 0,0 -45,0 -70,-25 z",noldor:"m 55,75 h 2 c 3,-25 38,-10 3,20 15,50 30,75 40,105 10,-30 25,-55 40,-105 -35,-30 0,-45 3,-20 h 2 C 150,30 110,20 100,0 90,20 50,30 55,75 Z",gondor:"m 100,200 c 15,-15 38,-35 45,-60 h 5 V 30 h -5 C 133,10 67,10 55,30 h -5 v 110 h 5 c 7,25 30,45 45,60 z",easterling:"M 160,185 C 120,170 80,170 40,185 V 15 c 40,15 80,15 120,0 z",erebor:"M25 135 V60 l22-13 16-37 h75 l15 37 22 13 v75l-22 18-16 37 H63l-16-37z",ironHills:"m 30,25 60,-10 10,10 10,-10 60,10 -5,125 -65,50 -65,-50 z",urukHai:"M 30,60 C 40,60 60,50 60,20 l -5,-3 45,-17 75,40 -5,5 -35,155 -5,-35 H 70 v 35 z",moriaOrc:"M45 35c5 3 7 10 13 9h19c4-2 7-4 9-9 6 1 9 9 16 11 7-2 14 0 21 0 6-3 6-10 10-15 2-5 1-10-2-15-2-4-5-14-4-16 3 6 7 11 12 14 7 3 3 12 7 16 3 6 4 12 9 18 2 4 6 8 5 14 0 6-1 12 3 18-3 6-2 13-1 20 1 6-2 12-1 18 0 6-3 13 0 18 8 4 0 8-5 7-4 3-9 3-13 9-5 5-5 13-8 19 0 6 0 15-7 16-1 6-7 6-10 12-1-6 0-6-2-9l2-19c2-4 5-12-3-12-4-5-11-5-15 1l-13-18c-3-4-2 9-3 12 2 2-4-6-7-5-8-2-8 7-11 11-2 4-5 10-8 9 3-10 3-16 1-23-1-4 2-9-4-11 0-6 1-13-2-19-4-2-9-6-13-7V91c4-7-5-13 0-19-3-7 2-11 2-18-1-6 1-12 3-17v-1z"},mr={heater:"0 10 200 200",spanish:"0 10 200 200",french:"0 10 200 200",horsehead:"0 10 200 200",horsehead2:"0 10 200 200",polish:"0 0 200 200",hessen:"0 5 200 200",swiss:"0 10 200 200",boeotian:"0 0 200 200",roman:"0 0 200 200",kite:"0 0 200 200",oldFrench:"0 10 200 200",renaissance:"0 5 200 200",baroque:"0 10 200 200",targe:"0 0 200 200",targe2:"0 0 200 200",pavise:"0 0 200 200",wedged:"0 10 200 200",flag:"0 0 200 200",pennon:"2.5 0 200 200",guidon:"2.5 0 200 200",banner:"0 10 200 200",dovetail:"0 10 200 200",gonfalon:"0 10 200 200",pennant:"0 0 200 200",round:"0 0 200 200",oval:"0 0 200 200",vesicaPiscis:"0 0 200 200",square:"0 0 200 200",diamond:"0 0 200 200",no:"0 0 200 200",fantasy1:"0 0 200 200",fantasy2:"0 5 200 200",fantasy3:"0 5 200 200",fantasy4:"0 5 200 200",fantasy5:"0 0 200 200",noldor:"0 0 200 200",gondor:"0 5 200 200",easterling:"0 0 200 200",erebor:"0 0 200 200",ironHills:"0 5 200 200",urukHai:"0 0 200 200",moriaOrc:"0 0 200 200"},gr={horsehead:.9,horsehead2:.9,polish:.85,swiss:.95,boeotian:.75,roman:.95,kite:.65,targe2:.9,pavise:.9,wedged:.95,flag:.7,pennon:.5,guidon:.65,banner:.8,dovetail:.8,pennant:.6,oval:.95,vesicaPiscis:.8,diamond:.8,no:1.2,fantasy1:.8,fantasy2:.7,fantasy3:.7,fantasy5:.9,noldor:.5,gondor:.75,easterling:.8,erebor:.9,urukHai:.8,moriaOrc:.7},vr={heater:{a:[-43.75,-50],b:[0,-50],c:[43.75,-50],d:[-43.75,0],e:[0,0],f:[43.75,0],g:[-32.25,37.5],h:[0,50],i:[32.25,37.5],y:[-50,-50],z:[0,62.5],j:[-37.5,-37.5],k:[0,-37.5],l:[37.5,-37.5],m:[-30,30],n:[0,42.5],o:[30,30],p:[-37.5,0],q:[37.5,0],A:[-66.2,-66.6],B:[-22,-66.6],C:[22,-66.6],D:[66.2,-66.6],K:[-66.2,-20],E:[66.2,-20],J:[-55.5,26],F:[55.5,26],I:[-33,62],G:[33,62],H:[0,89.5]},spanish:{a:[-43.75,-50],b:[0,-50],c:[43.75,-50],d:[-43.75,0],e:[0,0],f:[43.75,0],g:[-43.75,50],h:[0,50],i:[43.75,50],y:[-50,-50],z:[0,50],j:[-37.5,-37.5],k:[0,-37.5],l:[37.5,-37.5],m:[-37.5,37.5],n:[0,37.5],o:[37.5,37.5],p:[-37.5,0],q:[37.5,0],A:[-66.2,-66.6],B:[-22,-66.6],C:[22,-66.6],D:[66.2,-66.6],K:[-66.4,-20],E:[66.4,-20],J:[-66.4,26],F:[66.4,26],I:[-49,70],G:[49,70],H:[0,92]},french:{a:[-43.75,-50],b:[0,-50],c:[43.75,-50],d:[-43.75,0],e:[0,0],f:[43.75,0],g:[-43.75,50],h:[0,50],i:[43.75,50],y:[-50,-50],z:[0,65],j:[-37.5,-37.5],k:[0,-37.5],l:[37.5,-37.5],m:[-37.5,37.5],n:[0,37.5],o:[37.5,37.5],p:[-37.5,0],q:[37.5,0],A:[-66.2,-66.6],B:[-22,-66.6],C:[22,-66.6],D:[66.2,-66.6],K:[-66.4,-20],E:[66.4,-20],J:[-66.4,26],F:[66.4,26],I:[-65.4,70],G:[65.4,70],H:[0,89]},horsehead:{a:[-43.75,-47.5],b:[0,-50],c:[43.75,-47.5],d:[-35,0],e:[0,0],f:[35,0],h:[0,50],y:[-50,-50],z:[0,55],j:[-35,-35],k:[0,-40],l:[35,-35],m:[-30,30],n:[0,40],o:[30,30],p:[-27.5,0],q:[27.5,0],A:[-71,-52],B:[-24,-73],C:[24,-73],D:[71,-52],K:[-62,-16],E:[62,-16],J:[-39,20],F:[39,20],I:[-33.5,60],G:[33.5,60],H:[0,91.5]},horsehead2:{a:[-37.5,-47.5],b:[0,-50],c:[37.5,-47.5],d:[-35,0],e:[0,0],f:[35,0],g:[-35,47.5],h:[0,50],i:[35,47.5],y:[-50,-50],z:[0,55],j:[-30,-30],k:[0,-40],l:[30,-30],m:[-30,30],n:[0,40],o:[30,30],p:[-27.5,0],q:[27.5,0],A:[-49,-39],B:[-22,-70],C:[22,-70],D:[49,-39],K:[-51,-2],E:[51,-2],J:[-38.5,31],F:[38.5,31],I:[-35,67],G:[35,67],H:[0,85]},polish:{a:[-35,-50],b:[0,-50],c:[35,-50],d:[-40,0],e:[0,0],f:[40,0],g:[-37.5,50],h:[0,50],i:[37.5,50],y:[-50,-50],z:[0,65],j:[-27.5,-27.5],k:[0,-45],l:[27.5,-27.5],m:[-27.5,27.5],n:[0,45],o:[27.5,27.5],p:[-32.5,0],q:[32.5,0],A:[-48,-52],B:[-23,-80],C:[23,-80],D:[48,-52],K:[-47,-10],E:[47,-10],J:[-62,32],F:[62,32],I:[-37,68],G:[37,68],H:[0,86]},hessen:{a:[-43.75,-50],b:[0,-50],c:[43.75,-50],d:[-43.75,0],e:[0,0],f:[43.75,0],g:[-43.75,50],h:[0,50],i:[43.75,50],y:[-50,-50],z:[0,52.5],j:[-40,-40],k:[0,-40],l:[40,-40],m:[-40,40],n:[0,40],o:[40,40],p:[-40,0],q:[40,0],A:[-69,-64],B:[-22,-76],C:[22,-76],D:[69,-64],K:[-66.4,-20],E:[66.4,-20],J:[-62,26],F:[62,26],I:[-46,70],G:[46,70],H:[0,91.5]},swiss:{a:[-43.75,-50],b:[0,-50],c:[43.75,-50],d:[-43.75,0],e:[0,0],f:[43.75,0],g:[-32,37.5],h:[0,50],i:[32,37.5],y:[-50,-50],z:[0,62.5],j:[-37.5,-37.5],k:[0,-37.5],l:[37.5,-37.5],m:[-32,32.5],n:[0,42.5],o:[32,32.5],p:[-37.5,0],q:[37.5,0],A:[-66.2,-66.6],B:[-22,-66],C:[22,-66],D:[66.2,-66.6],K:[-63,-20],E:[63,-20],J:[-50,26],F:[50,26],I:[-29,62],G:[29,62],H:[0,89.5]},boeotian:{a:[-37.5,-47.5],b:[0,-47.5],c:[37.5,-47.5],d:[-25,0],e:[0,0],f:[25,0],g:[-37.5,47.5],h:[0,47.5],i:[37.5,47.5],y:[-48,-48],z:[0,60],j:[-32.5,-37.5],k:[0,-45],l:[32.5,-37.5],m:[-32.5,37.5],n:[0,45],o:[32.5,37.5],p:[-20,0],q:[20,0],A:[-45,-55],B:[-20,-77],C:[20,-77],D:[45,-55],K:[-59,-25],E:[59,-25],J:[-58,27],F:[58,27],I:[-39,63],G:[39,63],H:[0,81]},roman:{a:[-40,-52.5],b:[0,-52.5],c:[40,-52.5],d:[-40,0],e:[0,0],f:[40,0],g:[-40,52.5],h:[0,52.5],i:[40,52.5],y:[-42.5,-52.5],z:[0,65],j:[-30,-37.5],k:[0,-37.5],l:[30,-37.5],m:[-30,37.5],n:[0,37.5],o:[30,37.5],p:[-30,0],q:[30,0],A:[-51.5,-65],B:[-17,-75],C:[17,-75],D:[51.5,-65],K:[-51.5,-21],E:[51.5,-21],J:[-51.5,21],F:[51.5,21],I:[-51.5,65],G:[51.5,65],H:[-17,75],L:[17,75]},kite:{b:[0,-65],e:[0,-15],h:[0,35],z:[0,35],k:[0,-50],n:[0,20],p:[-20,-15],q:[20,-15],A:[-38,-52],B:[-29,-78],C:[29,-78],D:[38,-52],K:[-33,-20],E:[33,-20],J:[-25,11],F:[25,11],I:[-15,42],G:[15,42],H:[0,73],L:[0,-91]},oldFrench:{a:[-43.75,-50],b:[0,-50],c:[43.75,-50],d:[-43.75,0],e:[0,0],f:[43.75,0],g:[-37.5,50],h:[0,50],i:[37.5,50],y:[-50,-50],z:[0,62.5],j:[-37.5,-37.5],k:[0,-37.5],l:[37.5,-37.5],m:[-37.5,37.5],n:[0,45],o:[37.5,37.5],p:[-37.5,0],q:[37.5,0],A:[-66.2,-66.6],B:[-22,-66.6],C:[22,-66.6],D:[66.2,-66.6],K:[-66.2,-20],E:[66.2,-20],J:[-64,26],F:[64,26],I:[-45,62],G:[45,62],H:[0,91]},renaissance:{a:[-43.75,-50],b:[0,-50],c:[43.75,-50],d:[-41.5,0],e:[0,0],f:[41.5,0],g:[-43.75,50],h:[0,50],i:[43.75,50],y:[-50,-50],z:[0,62.5],j:[-37.5,-37.5],k:[0,-37.5],l:[37.5,-37.5],m:[-37.5,37.5],n:[0,37.5],o:[37.5,37.5],p:[-37.5,0],q:[37.5,0],A:[-61,-55],B:[-23,-67],C:[23,-67],D:[61,-55],K:[-55,-11],E:[55,-11],J:[-65,31],F:[65,31],I:[-45,76],G:[45,76],H:[0,87]},baroque:{a:[-43.75,-45],b:[0,-45],c:[43.75,-45],d:[-43.75,0],e:[0,0],f:[43.75,0],g:[-43.75,50],h:[0,50],i:[43.75,50],y:[-50,-50],z:[0,60],j:[-37.5,-37.5],k:[0,-37.5],l:[37.5,-37.5],m:[-37.5,37.5],n:[0,37.5],o:[37.5,37.5],p:[-37.5,0],q:[37.5,0],A:[-65,-54.5],B:[-22,-65],C:[22,-65],D:[65,-54.5],K:[-58.5,-15],E:[58.5,-15],J:[-65,31],F:[66,31],I:[-35,73],G:[35,73],H:[0,89]},targe:{a:[-43.75,-50],b:[0,-50],c:[43.75,-50],d:[-43.75,0],e:[0,0],f:[43.75,0],g:[-43.75,50],h:[0,50],i:[43.75,50],y:[-50,-50],z:[0,50],j:[-40,-40],k:[0,-40],l:[40,-40],m:[-40,40],n:[0,40],o:[40,40],p:[-32.5,0],q:[32.5,0],A:[-66.2,-60],B:[-22,-77],C:[22,-86],D:[60,-66.6],K:[-28,-20],E:[57,-20],J:[-61,26],F:[61,26],I:[-49,63],G:[49,59],H:[0,80]},targe2:{a:[-43.75,-50],b:[0,-50],c:[43.75,-50],d:[-40,0],e:[0,0],f:[40,0],g:[-43.75,50],h:[0,50],i:[43.75,50],y:[-50,-50],z:[0,60],j:[-37.5,-37.5],k:[0,-37.5],l:[37.5,-37.5],m:[-37.5,37.5],n:[0,37.5],o:[37.5,37.5],p:[-32.5,0],q:[32.5,0],A:[-55,-59],B:[-15,-59],C:[24,-79],D:[51,-58],K:[-40,-14],E:[51,-14],J:[-64,26],F:[62,26],I:[-46,66],G:[48,67],H:[0,83]},pavise:{a:[-40,-52.5],b:[0,-52.5],c:[40,-52.5],d:[-40,0],e:[0,0],f:[40,0],g:[-40,52.5],h:[0,52.5],i:[40,52.5],y:[-42.5,-52.5],z:[0,60],j:[-30,-35],k:[0,-37.5],l:[30,-35],m:[-30,35],n:[0,37.5],o:[30,35],p:[-30,0],q:[30,0],A:[-57,-55],B:[-22,-74],C:[22,-74],D:[57,-55],K:[-54,-11],E:[54,-11],J:[-50,36],F:[50,36],I:[-46,81],G:[46,81],H:[0,81]},wedged:{a:[-43.75,-50],b:[0,-50],c:[43.75,-50],d:[-43.75,0],e:[0,0],f:[43.75,0],g:[-32.25,37.5],h:[0,50],i:[32.25,37.5],y:[-50,-50],z:[0,62.5],j:[-37.5,-37.5],k:[0,-37.5],l:[37.5,-37.5],m:[-32.5,32.5],n:[0,42.5],o:[32.5,32.5],p:[-37.5,0],q:[37.5,0],A:[-66,-53],B:[-22,-72.5],C:[22,-72.5],D:[66,-53],K:[-62.6,-13],E:[62.6,-13],J:[-50,26],F:[50,26],I:[-27,62],G:[27,62],H:[0,87]},flag:{a:[-60,-40],b:[0,-40],c:[60,-40],d:[-60,0],e:[0,0],f:[60,0],g:[-60,40],h:[0,40],i:[60,40],y:[-60,-42.5],z:[0,40],j:[-45,-30],k:[0,-30],l:[45,-30],m:[-45,30],n:[0,30],o:[45,30],p:[-45,0],q:[45,0],A:[-81,-51],B:[-27,-51],C:[27,-51],D:[81,-51],K:[-81,-17],E:[81,-17],J:[-81,17],F:[81,17],I:[-81,51],G:[81,51],H:[-27,51],L:[27,51]},pennon:{a:[-75,-40],d:[-75,0],e:[-25,0],f:[25,0],g:[-75,40],y:[-70,-42.5],j:[-60,-30],m:[-60,30],p:[-60,0],q:[5,0],A:[-81,-48],B:[-43,-36],C:[-4.5,-24],D:[33,-12],E:[72,0],F:[33,12],G:[-4.5,24],H:[-43,36],I:[-81,48],J:[-81,17],K:[-81,-17]},guidon:{a:[-60,-40],b:[0,-40],c:[60,-40],d:[-60,0],e:[0,0],g:[-60,40],h:[0,40],i:[60,40],y:[-60,-42.5],z:[0,40],j:[-45,-30],k:[0,-30],l:[45,-30],m:[-45,30],n:[0,30],o:[45,30],p:[-45,0],A:[-81,-51],B:[-27,-51],C:[27,-51],D:[78,-51],K:[-81,-17],E:[40.5,-17],J:[-81,17],F:[40.5,17],I:[-81,51],G:[78,51],H:[-27,51],L:[27,51]},banner:{a:[-50,-50],b:[0,-50],c:[50,-50],d:[-50,0],e:[0,0],f:[50,0],g:[-50,40],h:[0,40],i:[50,40],y:[-50,-50],z:[0,40],j:[-37.5,-37.5],k:[0,-37.5],l:[37.5,-37.5],m:[-37.5,27.5],n:[0,27.5],o:[37.5,27.5],p:[-37.5,0],q:[37.5,0],A:[-66.5,-66.5],B:[-22,-66.5],C:[22,-66.5],D:[66.5,-66.5],K:[-66.5,-20],E:[66.5,-20],J:[-66.5,26],F:[66.5,26],I:[-66.5,66.5],G:[66.5,66.5],H:[-25,75],L:[25,75]},dovetail:{a:[-49.75,-50],b:[0,-50],c:[49.75,-50],d:[-49.75,0],e:[0,0],f:[49.75,0],g:[-49.75,50],i:[49.75,50],y:[-50,-50],z:[0,40],j:[-37.5,-37.5],k:[0,-37.5],l:[37.5,-37.5],m:[-37.5,37.5],n:[0,32.5],o:[37.5,37.5],p:[-37.5,0],q:[37.5,0],A:[-66.5,-66.5],B:[-22,-66.5],C:[22,-66.5],D:[66.5,-66.5],K:[-66.5,-16.5],E:[66.5,-16.5],J:[-66.5,34.5],F:[66.5,34.5],I:[-66.5,84.5],G:[66.5,84.5],H:[-25,64],L:[25,64]},gonfalon:{a:[-49.75,-50],b:[0,-50],c:[49.75,-50],d:[-49.75,0],e:[0,0],f:[49.75,0],g:[-49.75,50],h:[0,50],i:[49.75,50],y:[-50,-50],z:[0,50],j:[-37.5,-37.5],k:[0,-37.5],l:[37.5,-37.5],m:[-37.5,37.5],n:[0,37.5],o:[37.5,37.5],p:[-37.5,0],q:[37.5,0],A:[-66.5,-66.5],B:[-22,-66.5],C:[22,-66.5],D:[66.5,-66.5],K:[-66.5,-20],E:[66.5,-20],J:[-66.5,26],F:[66.5,26],I:[-40,63],G:[40,63],H:[0,88]},pennant:{a:[-45,-50],b:[0,-50],c:[45,-50],e:[0,0],h:[0,50],y:[-50,-50],z:[0,50],j:[-32.5,-37.5],k:[0,-37.5],l:[32.5,-37.5],n:[0,37.5],A:[-60,-76],B:[-22,-76],C:[22,-76],D:[60,-76],K:[-46,-38],E:[46,-38],J:[-31,0],F:[31,0],I:[-16,38],G:[16,38],H:[0,76]},round:{a:[-40,-40],b:[0,-40],c:[40,-40],d:[-40,0],e:[0,0],f:[40,0],g:[-40,40],h:[0,40],i:[40,40],y:[-48,-48],z:[0,57.5],j:[-35.5,-35.5],k:[0,-37.5],l:[35.5,-35.5],m:[-35.5,35.5],n:[0,37.5],o:[35.5,35.5],p:[-36.5,0],q:[36.5,0],A:[-59,-48],B:[-23,-73],C:[23,-73],D:[59,-48],K:[-76,-10],E:[76,-10],J:[-70,31],F:[70,31],I:[-42,64],G:[42,64],H:[0,77]},oval:{a:[-37.5,-50],b:[0,-50],c:[37.5,-50],d:[-43,0],e:[0,0],f:[43,0],g:[-37.5,50],h:[0,50],i:[37.5,50],y:[-48,-48],z:[0,60],j:[-35.5,-37.5],k:[0,-37.5],l:[35.5,-37.5],m:[-35.5,37.5],n:[0,50],o:[35.5,37.5],p:[-36.5,0],q:[36.5,0],A:[-48,-48],B:[-23,-78],C:[23,-78],D:[48,-48],K:[-59,-10],E:[59,-10],J:[-55,31],F:[55,31],I:[-36,68],G:[36,68],H:[0,85]},vesicaPiscis:{a:[-32,-37],b:[0,-50],c:[32,-37],d:[-32,0],e:[0,0],f:[32,0],g:[-32,37],h:[0,50],i:[32,37],y:[-50,-50],z:[0,62],j:[-27.5,-27.5],k:[0,-37],l:[27.5,-27.5],m:[-27.5,27.5],n:[0,42],o:[27.5,27.5],p:[-27.5,0],q:[27.5,0],A:[-45,-32],B:[-29,-63],C:[29,-63],D:[45,-32],K:[-50,0],E:[50,0],J:[-45,32],F:[45,32],I:[-29,63],G:[29,63],H:[0,89],L:[0,-89]},square:{a:[-49.75,-50],b:[0,-50],c:[49.75,-50],d:[-49.75,0],e:[0,0],f:[49.75,0],g:[-49.75,50],h:[0,50],i:[49.75,50],y:[-50,-50],z:[0,50],j:[-37.5,-37.5],k:[0,-37.5],l:[37.5,-37.5],m:[-37.5,37.5],n:[0,37.5],o:[37.5,37.5],p:[-37.5,0],q:[37.5,0],A:[-66.5,-66.5],B:[-22,-66.5],C:[22,-66.5],D:[66.5,-66.5],K:[-66.5,-20],E:[66.5,-20],J:[-66.5,26],F:[66.5,26],I:[-66.5,66.5],G:[66.5,66.5],H:[-22,66.5],L:[22,66.5]},diamond:{a:[-32,-37],b:[0,-50],c:[32,-37],d:[-43,0],e:[0,0],f:[43,0],g:[-32,37],h:[0,50],i:[32,37],y:[-50,-50],z:[0,62],j:[-27.5,-27.5],k:[0,-37],l:[27.5,-27.5],m:[-27.5,27.5],n:[0,42],o:[27.5,27.5],p:[-37,0],q:[37,0],A:[-43,-28],B:[-22,-56],C:[22,-56],D:[43,-28],K:[-63,0],E:[63,0],J:[-42,28],F:[42,28],I:[-22,56],G:[22,56],H:[0,83],L:[0,-82]},no:{a:[-66.5,-66.5],b:[0,-66.5],c:[66.5,-66.5],d:[-66.5,0],e:[0,0],f:[66.5,0],g:[-66.5,66.5],h:[0,66.5],i:[66.5,66.5],y:[-50,-50],z:[0,75],j:[-50,-50],k:[0,-50],l:[50,-50],m:[-50,50],n:[0,50],o:[50,50],p:[-50,0],q:[50,0],A:[-91.5,-91.5],B:[-30.5,-91.5],C:[30.5,-91.5],D:[91.5,-91.5],K:[-91.5,-30.5],E:[91.5,-30.5],J:[-91.5,30.5],F:[91.5,30.5],I:[-91.5,91.5],G:[91.5,91.5],H:[-30.5,91.5],L:[30.5,91.5]},fantasy1:{a:[-45,-45],b:[0,-50],c:[45,-45],d:[-40,0],e:[0,0],f:[40,0],g:[-36,42.5],h:[0,50],i:[36,42.5],y:[-50,-50],z:[0,60],j:[-37,-37],k:[0,-40],l:[37,-37],m:[-32,32],n:[0,40],o:[32,32],p:[-28.5,0],q:[28.5,0],A:[-66,-55],B:[-22,-67],C:[22,-67],D:[66,-55],K:[-53,-20],E:[53,-20],J:[-46,26],F:[46,26],I:[-29,62],G:[29,62],H:[0,84]},fantasy2:{a:[-45,-45],b:[0,-45],c:[45,-45],d:[-35,0],e:[0,0],f:[35,0],g:[-36,42.5],h:[0,45],i:[36,42.5],y:[-50,-50],z:[0,55],j:[-32.5,-32.5],k:[0,-40],l:[32.5,-32.5],m:[-30,30],n:[0,40],o:[30,30],p:[-27.5,0],q:[27.5,0],A:[-58,-35],B:[-44,-67],C:[44,-67],D:[58,-35],K:[-39,-5],E:[39,-5],J:[-57,26],F:[57,26],I:[-32,58],G:[32,58],H:[0,83],L:[0,-72]},fantasy3:{a:[-40,-45],b:[0,-50],c:[40,-45],d:[-35,0],e:[0,0],f:[35,0],g:[-36,42.5],h:[0,50],i:[36,42.5],y:[-50,-50],z:[0,55],j:[-32.5,-32.5],k:[0,-40],l:[32.5,-32.5],m:[-30,30],n:[0,40],o:[30,30],p:[-27.5,0],q:[27.5,0],A:[-56,-42],B:[-22,-72],C:[22,-72],D:[56,-42],K:[-37,-11],E:[37,-11],J:[-60,20],F:[60,20],I:[-34,56],G:[34,56],H:[0,83]},fantasy4:{a:[-50,-45],b:[0,-50],c:[50,-45],d:[-45,0],e:[0,0],f:[45,0],g:[-40,45],h:[0,50],i:[40,45],y:[-50,-50],z:[0,62.5],j:[-37.5,-37.5],k:[0,-45],l:[37.5,-37.5],m:[-37.5,37.5],n:[0,45],o:[37.5,37.5],p:[-35,0],q:[35,0],A:[-75,-56],B:[-36,-61],C:[36,-61],D:[75,-56],K:[-67,-12],E:[67,-12],J:[-63,32],F:[63,32],I:[-42,75],G:[42,75],H:[0,91.5],L:[0,-79]},fantasy5:{a:[-45,-50],b:[0,-50],c:[45,-50],d:[-40,0],e:[0,0],f:[40,0],g:[-30,45],h:[0,50],i:[30,45],y:[-50,-50],z:[0,60],j:[-37,-37],k:[0,-40],l:[37,-37],m:[-32,32],n:[0,40],o:[32,32],p:[-28.5,0],q:[28.5,0],A:[-61,-67],B:[-22,-76],C:[22,-76],D:[61,-67],K:[-58,-25],E:[58,-25],J:[-48,20],F:[48,20],I:[-28.5,60],G:[28.5,60],H:[0,89]},noldor:{b:[0,-65],e:[0,-15],h:[0,35],z:[0,35],k:[0,-50],n:[0,30],p:[-20,-15],q:[20,-15],A:[-34,-47],B:[-20,-68],C:[20,-68],D:[34,-47],K:[-18,-20],E:[18,-20],J:[-26,11],F:[26,11],I:[-14,43],G:[14,43],H:[0,74],L:[0,-85]},gondor:{a:[-32.5,-50],b:[0,-50],c:[32.5,-50],d:[-32.5,0],e:[0,0],f:[32.5,0],g:[-32.5,50],h:[0,50],i:[32.5,50],y:[-42.5,-52.5],z:[0,65],j:[-25,-37.5],k:[0,-37.5],l:[25,-37.5],m:[-25,30],n:[0,37.5],o:[25,30],p:[-25,0],q:[25,0],A:[-42,-52],B:[-17,-75],C:[17,-75],D:[42,-52],K:[-42,-15],E:[42,-15],J:[-42,22],F:[42,22],I:[-26,60],G:[26,60],H:[0,87]},easterling:{a:[-40,-47.5],b:[0,-47.5],c:[40,-47.5],d:[-40,0],e:[0,0],f:[40,0],g:[-40,47.5],h:[0,47.5],i:[40,47.5],y:[-42.5,-52.5],z:[0,65],j:[-30,-37.5],k:[0,-37.5],l:[30,-37.5],m:[-30,37.5],n:[0,37.5],o:[30,37.5],p:[-30,0],q:[30,0],A:[-52,-72],B:[0,-65],D:[52,-72],K:[-52,-24],E:[52,-24],J:[-52,24],F:[52,24],I:[-52,72],G:[52,72],H:[0,65]},erebor:{a:[-40,-40],b:[0,-55],c:[40,-40],d:[-40,0],e:[0,0],f:[40,0],g:[-40,40],h:[0,55],i:[40,40],y:[-50,-50],z:[0,50],j:[-35,-35],k:[0,-45],l:[35,-35],m:[-35,35],n:[0,45],o:[35,35],p:[-37.5,0],q:[37.5,0],A:[-47,-46],B:[-22,-81],C:[22,-81],D:[47,-46],K:[-66.5,0],E:[66.5,0],J:[-47,46],F:[47,46],I:[-22,81],G:[22,81]},ironHills:{a:[-43.75,-50],b:[0,-50],c:[43.75,-50],d:[-43.25,0],e:[0,0],f:[43.25,0],g:[-42.5,42.5],h:[0,50],i:[42.5,42.5],y:[-50,-50],z:[0,62.5],j:[-32.5,-32.5],k:[0,-40],l:[32.5,-32.5],m:[-32.5,32.5],n:[0,40],o:[32.5,32.5],p:[-37.5,0],q:[37.5,0],A:[-61,-67],B:[-22,-74],C:[22,-74],D:[61,-67],K:[-59,-20],E:[59,-20],J:[-57,26],F:[57,26],I:[-33,64],G:[33,64],H:[0,88]},urukHai:{a:[-40,-45],b:[0,-45],c:[40,-45],d:[-36,0],e:[0,0],f:[36,0],g:[-32.25,40],h:[0,40],i:[32.25,40],y:[-50,-50],z:[0,40],j:[-32.5,-32.5],k:[0,-37.5],l:[32.5,-32.5],m:[-27.5,27.5],n:[0,32.5],o:[27.5,27.5],p:[-37.5,0],q:[37.5,0],A:[-31,-79],B:[-1,-90],C:[31,-74],D:[61,-57],K:[-55,-19],E:[53,-19],J:[-45,19],F:[45,19],I:[-33,57],G:[35,57],H:[0,57],L:[-39,-50]},moriaOrc:{a:[-37.5,-37.5],b:[0,-37.5],c:[37.5,-37.5],d:[-37.5,0],e:[0,0],f:[37.5,0],g:[-37.5,37.5],h:[0,37.5],i:[37.5,37.5],y:[-50,-50],z:[0,40],j:[-30,-30],k:[0,-30],l:[30,-30],m:[-30,30],n:[0,30],o:[30,30],p:[-30,0],q:[30,0],A:[-48,-48],B:[-16,-50],C:[16,-46],D:[39,-61],K:[-52,-19],E:[52,-26],J:[-42,9],F:[52,9],I:[-31,40],G:[40,43],H:[4,47]}},$r=["luster","spotlight","backlight"],yr="#333333",br="#333333",wr={argent:"#fafafa",or:"#ffe066",gules:"#d7374a",sable:"#333333",azure:"#377cd7",vert:"#26c061",purpure:"#522d5b",murrey:"#85185b",sanguine:"#b63a3a","tenné":"#cc7f19"},kr={field:{metals:32,colours:49,stains:1,patterns:14},division:{metals:35,colours:49,stains:1,patterns:8},charge:{metals:16,colours:24,stains:1,patterns:0},metals:{argent:3,or:2},colours:{gules:5,azure:4,sable:3,purpure:3,vert:2},stains:{murrey:1,sanguine:1,"tenné":1},patterns:{semy:8,ermine:6,vair:4,counterVair:1,vairInPale:1,vairEnPointe:2,vairAncien:2,potent:2,counterPotent:1,potentInPale:1,potentEnPointe:1,chequy:8,lozengy:5,fusily:2,pally:8,barry:10,gemelles:1,bendy:8,bendySinister:4,palyBendy:2,barryBendy:1,pappellony:2,pappellony2:3,scaly:1,plumetty:1,masoned:6,fretty:3,grillage:1,chainy:1,maily:2,honeycombed:1}},Er=He(!1),xr=function(){const e=e=>{const t=localStorage.getItem(e);return"null"===t?null:t},t=e=>localStorage.getItem(e)?JSON.parse(localStorage.getItem(e)):null,n=+e("size")||200,r=e("diaper")||"no",i=e("grad")||sr($r),o=(()=>{const e=new URL(window.location.href).searchParams.get("coa");return e?JSON.parse(e)?.shield:null})()||e("shield")||lr(pr[lr(pr.types)]),s=t("colors")||JSON.parse(JSON.stringify(wr)),l=e("border")||yr,a=+e("borderWidth")||1,c=e("background")||br,u=+e("scale")||2,d=+e("grid")||1,p=t("showGrid")||false,h=t("tinctures"),f=h&&(e=>{const t=["field","division","charge"],n=["metals","colours"];try{for(const r of t){if(!e[r])throw new Error(`Missing ${r}`);for(const t of n)if(!e[r][t])throw new Error(`Missing ${t} in ${r}`)}for(const t of n){if(!e[t])throw new Error(`Missing ${t}`);if(Object.keys(e[t]).length<2)throw new Error(`Type ${t} must have more than 2 tinctures`);const n=Object.values(e[t]).reduce(((e,t)=>e+t),0);if(n<1)throw new Error(`Total chance for type ${t} must be more that zero`)}return!0}catch(t){return console.error("Invalid stored tinctures data, switching to defaults.",t.message,e),!1}})(h)?h:JSON.parse(JSON.stringify(kr));return{size:n,diaper:r,grad:i,shield:o,colors:s,tinctures:f,border:l,borderWidth:a,background:c,scale:u,grid:d,showGrid:p}}(),_r=He(xr.size),Cr=He(xr.grad),Lr=He(xr.diaper),Sr=He(xr.shield),zr=He(xr.colors),Ar=He(xr.tinctures),Tr=He(xr.background),Or=He(xr.scale),Pr=He(xr.border),Mr=He(xr.borderWidth),Ir=He(xr.grid),jr=He(xr.showGrid),Nr=He([]),qr=He([]),Hr=He(0),Ur=He({edit:0,about:0,license:0,tinctures:0,raster:0,vector:0,i:0,c:0,view:0}),Rr=He(!1),Br=(()=>{const{subscribe:e,set:t}=He(null);return{subscribe:e,clear:()=>t(null),success:(e,n=5e3)=>{t({type:"success",text:e,timeout:n})},info:(e,n=5e3)=>{t({type:"info",text:e,timeout:n})},error:(e,n=5e3)=>{t({type:"error",text:e,timeout:n})}}})(),Dr=(()=>{const{subscribe:e,set:t,update:n}=He(["",-1]);let r=[],i=-1;return{subscribe:e,length:()=>r.length,reset:()=>{r=[],i=-1,t(["",-1])},add:e=>{e!==r[i]&&(in((()=>(i>0&&(i-=1),[r[i],i]))),redo:()=>n((()=>(i1?Math.floor(window.innerWidth/r):1,s=n.length>1?Math.ceil(n.length/o):1,l=a(Or);r=Math.round(r*l),i=Math.round(i*l);const c=document.createElement("canvas"),u=c.getContext("2d");c.width=r*o,c.height=i*s;let d=0;n.forEach((async function(e,s){const l=await async function(e,t,n){const r={},i=e.cloneNode(!0);i.setAttribute("width",t),i.setAttribute("height",n),i.removeAttribute("class"),i.removeAttribute("id");const o=i.getElementsByTagName("defs")[0],s=i.getElementById("grid"),l=i.getElementById("gridPattern");s&&s.remove();l&&l.remove();const c=a(Cr),u=a(Lr);c&&"no"!==c&&o.insertAdjacentHTML("beforeend",defs.getElementById(c).outerHTML);u&&"no"!==u&&o.insertAdjacentHTML("beforeend",defs.getElementById(u).outerHTML);i.querySelectorAll(".charge[charge]").forEach((e=>{const t=e.getAttribute("fill").split("(#")[1]?.split(")")[0];t&&h(t,o);const n=e.getAttribute("charge");r[n]||(o.insertAdjacentHTML("beforeend",defs.getElementById(n).outerHTML),r[n]=!0)})),i.querySelectorAll(".ordinary").forEach((e=>{const t=e.getAttribute("fill").split("(#")[1]?.split(")")[0];t&&h(t,o)}));const d=i.getElementsByClassName("field")[0].getAttribute("fill").split("(#")[1]?.split(")")[0];d&&h(d,o);const p=i.getElementsByClassName("division")[0]?.querySelector("rect").getAttribute("fill").split("(#")[1]?.split(")")[0];p&&h(p,o);function h(e,t){if(!r[e]){if(t.insertAdjacentHTML("beforeend",document.getElementById(e).outerHTML),"semy"===e.slice(0,4)){const n=e.match(/semy_of_(.*?)-/)[1];r[n]||(t.insertAdjacentHTML("beforeend",document.getElementById(n).outerHTML),r[n]=!0)}r[e]=!0}}const f=(new XMLSerializer).serializeToString(i),m=Fr?f:function(e){const t=(new DOMParser).parseFromString(e,"image/svg+xml"),n=(new DOMParser).parseFromString(['',' ',' ',' '," ",' ',' '," ",' '," "].join("\n"),"application/xml"),r=new XSLTProcessor;r.importStylesheet(n);const i=r.transformToDocument(t);return(new XMLSerializer).serializeToString(i)}(f),g=new Blob([m],{type:"image/svg+xml;charset=utf-8"}),v=window.URL.createObjectURL(g);return window.setTimeout((()=>window.URL.revokeObjectURL(v)),6e3),v}(e,r,i);"svg"===t?function(e){const t=document.createElement("a");t.download=`armoria_${Vr()}.svg`,t.href=e,t.click(),window.setTimeout((()=>window.URL.revokeObjectURL(URL)),5e3)}(l):function(e,s){const l=new Image;l.src=e,l.onload=()=>{URL.revokeObjectURL(e),u.drawImage(l,s%o*r,Math.floor(s/o)*i,r,i),d++,d===n.length&&function(e,t){const n=document.createElement("a");n.download=`armoria_${Vr()}.${t}`;const r=e.toDataURL("image/"+t,.92);n.href=r,n.click(),setTimeout((function(){e.remove(),window.URL.revokeObjectURL(n.href)}),5e3)}(c,t)}}(l,s)}))}function Vr(){const e=e=>e<10?"0"+e:e,t=new Date;return[t.getFullYear(),e(t.getMonth()+1),e(t.getDate()),e(t.getHours()),e(t.getMinutes()),e(t.getSeconds())].join("-")}const Jr=()=>{const e=a(Rr),t=window.innerWidth<1132;e!==t&&Rr.set(t)};Jr();const{window:Kr}=Ce;function Zr(t){let n,r;return{c:e,m(e,i){n||(r=[I(Kr,"keydown",t[0]),I(Kr,"touchstart",t[1]),I(Kr,"touchend",t[2]),I(Kr,"resize",Jr)],n=!0)},p:e,i:e,o:e,d(e){n=!1,i(r)}}}function Wr(e,t,n){let r,i,o,s;c(e,Hr,(e=>n(4,r=e))),c(e,Ur,(e=>n(5,i=e))),c(e,Dr,(e=>n(6,o=e))),c(e,Nr,(e=>n(7,s=e)));let l={startX:0,startY:0};"azgaar.github.io"!==location.host||navigator.userAgent.includes("Electron")||(window.onbeforeunload=()=>"Are you sure you want to navigate away?");const a={Backspace:()=>r>0&&Hr.set(r-1),Enter:()=>Hr.set(g(Hr,r+=1,r)),KeyZ:Dr.undo,KeyX:Dr.redo,KeyS:e=>e&&Gr(null,"svg"),KeyP:e=>e&&Gr(null,"png"),KeyJ:e=>e&&Gr(null,"jpeg"),F1:()=>Ur.set({...i,about:!i.about}),Escape:function(){i.edit&&g(Nr,s[i.c]=JSON.parse(o[0]),s),Ur.set({...i,about:0,raster:0,vector:0,tinctures:0,edit:0}),Br.clear()}};return[function(e){const t=e.code,n=e.ctrlKey;if(!n&&!["Backspace","Enter","KeyZ","KeyX","KeyS","KeyP","KeyJ","F1","Escape"].includes(t))return;const r=document.activeElement.tagName;if("INPUT"===r||"SELECT"===r||"TEXTAREA"===r)return;e.preventDefault();const i=a[t];i&&i(n)},function(e){const{screenX:t,screenY:n}=e.changedTouches[0];l.startX=t,l.startY=n},function(e){const t=document.getElementById("menu"),n=document.getElementById("navbar");if(t?.contains(e.target))return;if(n?.contains(e.target))return;const{screenX:o,screenY:s}=e.changedTouches[0],{startX:a,startY:c}=l,u=o-a,d=s-c,p=Math.abs(u/d),h=Math.abs(d/u);Math.abs(p>h?u:d)<100||(p>h?u>=0?i.edit?Dr.redo():g(Hr,r+=1,r):i.edit?Dr.undo():r>0&&g(Hr,r-=1,r):d>=0?g(Hr,r+=1,r):r>0&&g(Hr,r-=1,r))}]}class Xr extends Ne{constructor(e){super(),je(this,e,Wr,Zr,s,{})}}function Yr(t){let n,r,i,o,s;return{c(){n=A("li"),r=T("svg"),i=T("path"),N(i,"fill","#fff"),N(i,"stroke","none"),N(i,"d","m 46,3 0.6,1.4 c -1.5,0.7 -2.6,1.4 -3.3,2.2 -0.7,0.7 -1.2,1.5 -1.5,2.4 -0.3,0.9 -0.4,2.2 -0.4,3.9 0,0.6 0,1.3 0,2.2 l 0.5,23.2 c 0,2.5 0.3,4.2 0.8,5 0.4,0.6 0.8,0.8 1.3,0.8 0.6,0 1.5,-0.6 2.8,-1.8 l 0.9,1.1 -5.8,4.9 -1.9,1.6 C 38.4,49.2 37.2,48.2 36.5,46.9 35.8,45.7 35.3,36.7 35.2,34 c -7.6,0.1 -20.2,0 -20.2,0 0,0 -7.4,9.1 -7.4,11.1 0,0.6 0.2,1.1 0.6,1.8 0.5,0.9 0.8,1.4 0.8,1.7 0,0.4 -0.1,0.7 -0.4,1 -0.3,0.3 -0.6,0.4 -1.1,0.4 -0.5,0 -0.9,-0.2 -1.2,-0.6 -0.5,-0.6 -0.7,-1.3 -0.7,-2.2 0,-1 0.3,-2.1 0.8,-3.3 C 8.8,39.9 11.3,36.7 14.1,32.9 11.1,30.7 9,28.5 7.8,26.4 6.6,24.4 6,22.1 6,19.5 c 0,-3 0.8,-5.7 2.3,-8.3 1.5,-2.5 3.8,-4.5 6.9,-6 3.1,-1.5 6.2,-2.2 9.4,-2.2 4.9,0 9.7,1.7 14.3,5.1 1.1,-1.2 2.2,-2.1 3.2,-2.9 1,-0.8 2.4,-1.5 4,-2.3 z M 30.7,10.2 c -2.6,-1.3 -5.2,-1.9 -7.8,-1.9 -2.7,0 -5.3,0.6 -7.8,1.8 -2.4,1.2 -4.2,2.8 -5.4,4.7 -1.2,1.9 -1.8,3.9 -1.8,5.9 0,4.2 2.3,8 6.9,11.3 L 25.2,17.7 c -1.6,-0.8 -2.9,-1.3 -4.2,-1.3 -1.7,0 -3.1,0.8 -4.2,2.4 -0.4,0.7 -1,0.5 -1.1,-0.2 0,-0.6 0.3,-1.5 1,-2.7 0.7,-1.1 1.6,-2.1 2.9,-2.8 1.3,-0.7 2.6,-1.1 4,-1.1 1.4,0 3.1,0.4 4.9,1.1 z m 4,3.2 C 34,12.4 32.8,11.5 32,11 L 18.4,29.4 h 16.7 z"),N(r,"width","35"),N(r,"height","35"),N(r,"viewBox","-2 -1 55 55"),N(r,"class","svelte-1fl894"),N(n,"class","svelte-1fl894")},m(e,l){L(e,n,l),x(n,r),x(r,i),o||(s=I(r,"click",t[1]),o=!0)},p:e,d(e){e&&S(n),o=!1,s()}}}function Qr(t){let n,r=!t[0]&&Yr(t);return{c(){r&&r.c(),n=M()},m(e,t){r&&r.m(e,t),L(e,n,t)},p(e,[t]){e[0]?r&&(r.d(1),r=null):r?r.p(e,t):(r=Yr(e),r.c(),r.m(n.parentNode,n))},i:e,o:e,d(e){r&&r.d(e),e&&S(n)}}}function ei(e,t,n){let r;c(e,Rr,(e=>n(0,r=e)));return[r,()=>{location.href=location.origin+location.pathname}]}class ti extends Ne{constructor(e){super(),je(this,e,ei,Qr,s,{})}}const ni=a(or),ri=e=>{if(!e.dataset.tooltip)return;const t="ontouchstart"in window,n=document.createElement("div");let r;const i=e.dataset.gesture,o=e.dataset.hotkey;function s(){var e,t;e=".tooltip",t=e=>e.remove(),Array.from(document.querySelectorAll(e)).forEach((e=>{t(e)}))}return e.on("mouseenter",(function(){s();let l=e.dataset.tooltip;t&&i&&(l=`${l}. ${ni("tooltip.gesture")}: ${i}`),!t&&o&&(l=`${l}. ${ni("tooltip.hotkey")}: ${o}`),n.textContent=l,n.className="tooltip",document.body.appendChild(n);const a=n.getBoundingClientRect();r=[window.innerWidth-a.width,window.innerHeight-a.height]})),e.on("mousemove",(function(e){n.style.left=`${Math.min(e.pageX+10,r[0])}px`,n.style.top=`${Math.min(e.pageY+10,r[1])}px`})),e.on("mouseleave",s),{destroy(){s()}}};function ii(e){return e<.5?4*e*e*e:.5*Math.pow(2*e-2,3)+1}function oi(e){const t=e-1;return t*t*t+1}function si(e,{delay:n=0,duration:r=400,easing:i=t}={}){const o=+getComputedStyle(e).opacity;return{delay:n,duration:r,easing:i,css:e=>"opacity: "+e*o}}function li(e,{delay:t=0,duration:n=400,easing:r=oi,x:i=0,y:o=0,opacity:s=0}={}){const l=getComputedStyle(e),a=+l.opacity,c="none"===l.transform?"":l.transform,u=a*(1-s);return{delay:t,duration:n,easing:r,css:(e,t)=>`\n\t\t\ttransform: ${c} translate(${(1-e)*i}px, ${(1-e)*o}px);\n\t\t\topacity: ${a-u*t}`}}function ai(e,{delay:t=0,duration:n=400,easing:r=oi}={}){const i=getComputedStyle(e),o=+i.opacity,s=parseFloat(i.height),l=parseFloat(i.paddingTop),a=parseFloat(i.paddingBottom),c=parseFloat(i.marginTop),u=parseFloat(i.marginBottom),d=parseFloat(i.borderTopWidth),p=parseFloat(i.borderBottomWidth);return{delay:t,duration:n,easing:r,css:e=>`overflow: hidden;opacity: ${Math.min(20*e,1)*o};height: ${e*s}px;padding-top: ${e*l}px;padding-bottom: ${e*a}px;margin-top: ${e*c}px;margin-bottom: ${e*u}px;border-top-width: ${e*d}px;border-bottom-width: ${e*p}px;`}}function ci(e,{delay:t=0,speed:n,duration:r,easing:i=ii}={}){let o=e.getTotalLength();const s=getComputedStyle(e);return"butt"!==s.strokeLinecap&&(o+=parseInt(s.strokeWidth)),void 0===r?r=void 0===n?800:o/n:"function"==typeof r&&(r=r(o)),{delay:t,duration:r,easing:i,css:(e,t)=>`stroke-dasharray: ${e*o} ${t*o}`}}function ui(t){let n,r,i;return{c(){n=A("span"),r=O(t[0])},m(e,t){L(e,n,t),x(n,r)},p(e,t){1&t&&U(r,e[0])},i(e){i||le((()=>{i=Ee(n,si,{duration:100}),i.start()}))},o:e,d(e){e&&S(n)}}}function di(t){let n,r=t[0]&&ui(t);return{c(){r&&r.c(),n=M()},m(e,t){r&&r.m(e,t),L(e,n,t)},p(e,[t]){e[0]?r?(r.p(e,t),1&t&&be(r,1)):(r=ui(e),r.c(),be(r,1),r.m(n.parentNode,n)):r&&(r.d(1),r=null)},i(e){be(r)},o:e,d(e){r&&r.d(e),e&&S(n)}}}function pi(e,t,n){let{label:r}=t;return e.$$set=e=>{"label"in e&&n(0,r=e.label)},[r]}class hi extends Ne{constructor(e){super(),je(this,e,pi,di,s,{label:0})}}function fi(e){let t,n;return t=new hi({props:{label:e[1]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};2&n&&(r.label=e[1]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function mi(t){let n,r,i;return{c(){n=T("svg"),r=T("use"),N(r,"href",i="#"+t[0]+"-icon"),N(n,"class","svelte-1cyv4ar")},m(e,t){L(e,n,t),x(n,r)},p(e,t){1&t&&i!==(i="#"+e[0]+"-icon")&&N(r,"href",i)},i:e,o:e,d(e){e&&S(n)}}}function gi(e){let t,n,r,i,o,s,l;const a=[mi,fi],c=[];function d(e,t){return e[0]&&e[4]?0:1}n=d(e),r=c[n]=a[n](e);const m=e[6].default,g=u(m,e,e[5],null);return{c(){t=A("li"),r.c(),i=P(),g&&g.c(),N(t,"data-tooltip",e[2]),N(t,"class","svelte-1cyv4ar"),G(t,"wide",e[3])},m(e,r){L(e,t,r),c[n].m(t,null),x(t,i),g&&g.m(t,null),o=!0,s||(l=v(ri.call(null,t)),s=!0)},p(e,[s]){let l=n;n=d(e),n===l?c[n].p(e,s):($e(),we(c[l],1,1,(()=>{c[l]=null})),ye(),r=c[n],r?r.p(e,s):(r=c[n]=a[n](e),r.c()),be(r,1),r.m(t,i)),g&&g.p&&(!o||32&s)&&h(g,m,e,e[5],o?p(m,e[5],s,null):f(e[5]),null),(!o||4&s)&&N(t,"data-tooltip",e[2]),8&s&&G(t,"wide",e[3])},i(e){o||(be(r),be(g,e),o=!0)},o(e){we(r),we(g,e),o=!1},d(e){e&&S(t),c[n].d(),g&&g.d(e),s=!1,l()}}}function vi(e,t,n){let r;c(e,Rr,(e=>n(4,r=e)));let{$$slots:i={},$$scope:o}=t,{value:s}=t,{label:l}=t,{tip:a}=t,{wide:u=!1}=t;return e.$$set=e=>{"value"in e&&n(0,s=e.value),"label"in e&&n(1,l=e.label),"tip"in e&&n(2,a=e.tip),"wide"in e&&n(3,u=e.wide),"$$scope"in e&&n(5,o=e.$$scope)},[s,l,a,u,r,o,i]}class $i extends Ne{constructor(e){super(),je(this,e,vi,gi,s,{value:0,label:1,tip:2,wide:3})}}function yi(e){let t,n;return t=new hi({props:{label:e[1]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};2&n&&(r.label=e[1]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function bi(t){let n,r,i;return{c(){n=T("svg"),r=T("use"),N(r,"href",i="#"+t[0]+"-icon"),N(n,"class","svelte-5uhu10")},m(e,t){L(e,n,t),x(n,r)},p(e,t){1&t&&i!==(i="#"+e[0]+"-icon")&&N(r,"href",i)},i:e,o:e,d(e){e&&S(n)}}}function wi(e){let t,n,r,o,s,l,a;const c=[bi,yi],d=[];function m(e,t){return e[0]&&e[9]?0:1}n=m(e),r=d[n]=c[n](e);const g=e[13].default,$=u(g,e,e[12],null);return{c(){t=A("li"),r.c(),o=P(),$&&$.c(),N(t,"data-tooltip",e[2]),N(t,"data-gesture",e[3]),N(t,"data-hotkey",e[4]),N(t,"class","svelte-5uhu10"),G(t,"disabled",e[5]),G(t,"selected",e[6]),G(t,"flutter",e[7]),G(t,"right",e[8])},m(r,i){L(r,t,i),d[n].m(t,null),x(t,o),$&&$.m(t,null),s=!0,l||(a=[I(t,"click",e[10]),v(ri.call(null,t))],l=!0)},p(e,[i]){let l=n;n=m(e),n===l?d[n].p(e,i):($e(),we(d[l],1,1,(()=>{d[l]=null})),ye(),r=d[n],r?r.p(e,i):(r=d[n]=c[n](e),r.c()),be(r,1),r.m(t,o)),$&&$.p&&(!s||4096&i)&&h($,g,e,e[12],s?p(g,e[12],i,null):f(e[12]),null),(!s||4&i)&&N(t,"data-tooltip",e[2]),(!s||8&i)&&N(t,"data-gesture",e[3]),(!s||16&i)&&N(t,"data-hotkey",e[4]),32&i&&G(t,"disabled",e[5]),64&i&&G(t,"selected",e[6]),128&i&&G(t,"flutter",e[7]),256&i&&G(t,"right",e[8])},i(e){s||(be(r),be($,e),s=!0)},o(e){we(r),we($,e),s=!1},d(e){e&&S(t),d[n].d(),$&&$.d(e),l=!1,i(a)}}}function ki(e,t,n){let r;c(e,Rr,(e=>n(9,r=e)));let{$$slots:i={},$$scope:o}=t,{value:s}=t,{label:l}=t,{tip:a}=t,{gesture:u}=t,{hotkey:d}=t,{disabled:p=!1}=t,{selected:h=!1}=t,{flutter:f=!1}=t,{right:m=!1}=t,{onclick:g}=t;return e.$$set=e=>{"value"in e&&n(0,s=e.value),"label"in e&&n(1,l=e.label),"tip"in e&&n(2,a=e.tip),"gesture"in e&&n(3,u=e.gesture),"hotkey"in e&&n(4,d=e.hotkey),"disabled"in e&&n(5,p=e.disabled),"selected"in e&&n(6,h=e.selected),"flutter"in e&&n(7,f=e.flutter),"right"in e&&n(8,m=e.right),"onclick"in e&&n(11,g=e.onclick),"$$scope"in e&&n(12,o=e.$$scope)},[s,l,a,u,d,p,h,f,m,r,e=>{e.stopPropagation(),g()},g,o,i]}class Ei extends Ne{constructor(e){super(),je(this,e,ki,wi,s,{value:0,label:1,tip:2,gesture:3,hotkey:4,disabled:5,selected:6,flutter:7,right:8,onclick:11})}}function xi(e){let t,n,r,o;return{c(){t=A("span"),n=O("🔖"),N(t,"data-tooltip",e[1]),N(t,"class","svelte-e703nl")},m(i,s){L(i,t,s),x(t,n),r||(o=[I(t,"click",e[2]),v(ri.call(null,t))],r=!0)},p(e,n){2&n&&N(t,"data-tooltip",e[1])},d(e){e&&S(t),r=!1,i(o)}}}function _i(t){let n,r=Boolean(t[0]),i=r&&xi(t);return{c(){i&&i.c(),n=M()},m(e,t){i&&i.m(e,t),L(e,n,t)},p(e,[t]){1&t&&(r=Boolean(e[0])),r?i?i.p(e,t):(i=xi(e),i.c(),i.m(n.parentNode,n)):i&&(i.d(1),i=null)},i:e,o:e,d(e){i&&i.d(e),e&&S(n)}}}function Ci(e,t,n){let r,i,o;c(e,or,(e=>n(4,o=e)));let{key:s}=t;return e.$$set=e=>{"key"in e&&n(3,s=e.key)},e.$$.update=()=>{8&e.$$.dirty&&n(0,r=localStorage.getItem(s)),16&e.$$.dirty&&n(1,i=o("tooltip.locked"))},[r,i,function(e){e.stopPropagation(),localStorage.removeItem(s),n(0,r="")},s,o]}class Li extends Ne{constructor(e){super(),je(this,e,Ci,_i,s,{key:3})}}function Si(e,t,n){const r=e.slice();return r[6]=t[n],r}function zi(e,t,n){const r=e.slice();return r[9]=t[n],r}function Ai(e){let t,n,r,i,o,s=e[1](`shield.${e[6]}.${e[9]}`)+"";return{c(){t=T("svg"),n=T("path"),r=P(),i=O(s),o=P(),N(n,"d",fr[e[9]]),N(t,"width","26"),N(t,"height","26"),N(t,"viewBox","0 0 200 210"),N(t,"class","svelte-ljo27"),G(t,"selected",e[9]===e[0])},m(e,s){L(e,t,s),x(t,n),L(e,r,s),L(e,i,s),L(e,o,s)},p(e,n){9&n&&G(t,"selected",e[9]===e[0]),2&n&&s!==(s=e[1](`shield.${e[6]}.${e[9]}`)+"")&&U(i,s)},d(e){e&&S(t),e&&S(r),e&&S(i),e&&S(o)}}}function Ti(e){let t,n;return t=new Ei({props:{onclick:function(){return e[4](e[9])},$$slots:{default:[Ai]},$$scope:{ctx:e}}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(n,r){e=n;const i={};4099&r&&(i.$$scope={dirty:r,ctx:e}),t.$set(i)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Oi(e){let t,n=e[1](`shield.types.${e[6]}`)+"";return{c(){t=O(n)},m(e,n){L(e,t,n)},p(e,r){2&r&&n!==(n=e[1](`shield.types.${e[6]}`)+"")&&U(t,n)},d(e){e&&S(t)}}}function Pi(e){let t,n,r,i,o,s,l=e[3](e[6]),a=[];for(let t=0;twe(a[e],1,1,(()=>{a[e]=null}));return i=new $i({props:{$$slots:{default:[Oi]},$$scope:{ctx:e}}}),{c(){t=A("div"),n=A("div");for(let e=0;ewe(c[e],1,1,(()=>{c[e]=null}));let d=Ii(t);return{c(){n=A("div"),r=A("div");for(let e=0;en(0,r=e))),c(e,Dr,(e=>n(5,i=e))),c(e,or,(e=>n(1,o=e)));const s=e=>{if(Sr.set(e),localStorage.setItem("shield",e),Dr.length()){const e=JSON.parse(i[0]);e.shield=r,Dr.add(JSON.stringify(e))}};return[r,o,s,e=>Object.keys(pr[e]),e=>s(e)]}class qi extends Ne{constructor(e){super(),je(this,e,Ni,ji,s,{})}}function Hi(e){let t,n,r,i,o,s,l=e[0]("menu.colors")+"";return t=new Li({props:{key:"tinctures"}}),r=new Li({props:{key:"colors"}}),{c(){Oe(t.$$.fragment),n=P(),Oe(r.$$.fragment),i=P(),o=O(l)},m(e,l){Pe(t,e,l),L(e,n,l),Pe(r,e,l),L(e,i,l),L(e,o,l),s=!0},p(e,t){(!s||1&t)&&l!==(l=e[0]("menu.colors")+"")&&U(o,l)},i(e){s||(be(t.$$.fragment,e),be(r.$$.fragment,e),s=!0)},o(e){we(t.$$.fragment,e),we(r.$$.fragment,e),s=!1},d(e){Me(t,e),e&&S(n),Me(r,e),e&&S(i),e&&S(o)}}}function Ui(e){let t,n;return t=new Ei({props:{onclick:e[1],tip:e[0]("tooltip.colors"),$$slots:{default:[Hi]},$$scope:{ctx:e}}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,[n]){const r={};1&n&&(r.tip=e[0]("tooltip.colors")),9&n&&(r.$$scope={dirty:n,ctx:e}),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Ri(e,t,n){let r,i;c(e,Ur,(e=>n(2,r=e))),c(e,or,(e=>n(0,i=e)));return[i,()=>{g(Ur,r.tinctures=1,r)}]}class Bi extends Ne{constructor(e){super(),je(this,e,Ri,Ui,s,{})}}const Di=[[80,"giant"],[100,"huge"],[150,"large"],[200,"medium"],[300,"small"],[400,"tiny"]],Fi=["no","luster","spotlight","backlight","brink"],Gi=["no","nourse","tessellation","sennwald","sulzbach"];function Vi(e,t,n){const r=e.slice();return r[4]=t[n],r}function Ji(e){let t,n,r=e[1](`gradient.${e[4]}`)+"";return{c(){t=O(r),n=P()},m(e,r){L(e,t,r),L(e,n,r)},p(e,n){2&n&&r!==(r=e[1](`gradient.${e[4]}`)+"")&&U(t,r)},d(e){e&&S(t),e&&S(n)}}}function Ki(e){let t,n;return t=new Ei({props:{selected:e[4]===e[0],onclick:function(){return e[3](e[4])},$$slots:{default:[Ji]},$$scope:{ctx:e}}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(n,r){e=n;const i={};1&r&&(i.selected=e[4]===e[0]),130&r&&(i.$$scope={dirty:r,ctx:e}),t.$set(i)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Zi(e){let t,n,r,i,o=e[1]("menu.gradient")+"";return t=new Li({props:{key:"grad"}}),{c(){Oe(t.$$.fragment),n=P(),r=O(o)},m(e,o){Pe(t,e,o),L(e,n,o),L(e,r,o),i=!0},p(e,t){(!i||2&t)&&o!==(o=e[1]("menu.gradient")+"")&&U(r,o)},i(e){i||(be(t.$$.fragment,e),i=!0)},o(e){we(t.$$.fragment,e),i=!1},d(e){Me(t,e),e&&S(n),e&&S(r)}}}function Wi(e){let t,n;return t=new $i({props:{tip:e[1]("tooltip.gradient"),$$slots:{default:[Zi]},$$scope:{ctx:e}}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};2&n&&(r.tip=e[1]("tooltip.gradient")),130&n&&(r.$$scope={dirty:n,ctx:e}),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Xi(t){let n,r,i,o,l=t[0],a=Fi,c=[];for(let e=0;ewe(c[e],1,1,(()=>{c[e]=null}));let d=Wi(t);return{c(){n=A("div"),r=A("div");for(let e=0;en(0,r=e))),c(e,or,(e=>n(1,i=e)));const o=e=>{Cr.set(e),localStorage.setItem("grad",e)};return[r,i,o,e=>o(e)]}class Qi extends Ne{constructor(e){super(),je(this,e,Yi,Xi,s,{})}}function eo(e,t,n){const r=e.slice();return r[4]=t[n],r}function to(e){let t,n,r=e[1](`diaper.${e[4]}`)+"";return{c(){t=O(r),n=P()},m(e,r){L(e,t,r),L(e,n,r)},p(e,n){2&n&&r!==(r=e[1](`diaper.${e[4]}`)+"")&&U(t,r)},d(e){e&&S(t),e&&S(n)}}}function no(e){let t,n;return t=new Ei({props:{selected:e[4]===e[0],onclick:function(){return e[3](e[4])},$$slots:{default:[to]},$$scope:{ctx:e}}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(n,r){e=n;const i={};1&r&&(i.selected=e[4]===e[0]),130&r&&(i.$$scope={dirty:r,ctx:e}),t.$set(i)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function ro(e){let t,n,r,i,o=e[1]("menu.damasking")+"";return t=new Li({props:{key:"diaper"}}),{c(){Oe(t.$$.fragment),n=P(),r=O(o)},m(e,o){Pe(t,e,o),L(e,n,o),L(e,r,o),i=!0},p(e,t){(!i||2&t)&&o!==(o=e[1]("menu.damasking")+"")&&U(r,o)},i(e){i||(be(t.$$.fragment,e),i=!0)},o(e){we(t.$$.fragment,e),i=!1},d(e){Me(t,e),e&&S(n),e&&S(r)}}}function io(e){let t,n;return t=new $i({props:{tip:e[1]("tooltip.damasking"),$$slots:{default:[ro]},$$scope:{ctx:e}}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};2&n&&(r.tip=e[1]("tooltip.damasking")),130&n&&(r.$$scope={dirty:n,ctx:e}),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function oo(t){let n,r,i,o,l=t[0],a=Gi,c=[];for(let e=0;ewe(c[e],1,1,(()=>{c[e]=null}));let d=io(t);return{c(){n=A("div"),r=A("div");for(let e=0;en(0,r=e))),c(e,or,(e=>n(1,i=e)));const o=e=>{Lr.set(e),localStorage.setItem("diaper",e)};return[r,i,o,e=>o(e)]}class lo extends Ne{constructor(e){super(),je(this,e,so,oo,s,{})}}function ao(e,t,n){const r=e.slice();return r[4]=t[n][0],r[5]=t[n][1],r}function co(e){let t,n,r=e[1](`gallery.${e[5]}`)+"";return{c(){t=O(r),n=P()},m(e,r){L(e,t,r),L(e,n,r)},p(e,n){2&n&&r!==(r=e[1](`gallery.${e[5]}`)+"")&&U(t,r)},d(e){e&&S(t),e&&S(n)}}}function uo(e){let t,n;return t=new Ei({props:{selected:e[4]===e[0],onclick:function(){return e[3](e[4])},$$slots:{default:[co]},$$scope:{ctx:e}}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(n,r){e=n;const i={};1&r&&(i.selected=e[4]===e[0]),258&r&&(i.$$scope={dirty:r,ctx:e}),t.$set(i)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function po(e){let t,n,r,i,o=e[1]("menu.gallery")+"";return t=new Li({props:{key:"size"}}),{c(){Oe(t.$$.fragment),n=P(),r=O(o)},m(e,o){Pe(t,e,o),L(e,n,o),L(e,r,o),i=!0},p(e,t){(!i||2&t)&&o!==(o=e[1]("menu.gallery")+"")&&U(r,o)},i(e){i||(be(t.$$.fragment,e),i=!0)},o(e){we(t.$$.fragment,e),i=!1},d(e){Me(t,e),e&&S(n),e&&S(r)}}}function ho(e){let t,n;return t=new $i({props:{tip:e[1]("tooltip.gallery"),$$slots:{default:[po]},$$scope:{ctx:e}}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};2&n&&(r.tip=e[1]("tooltip.gallery")),258&n&&(r.$$scope={dirty:n,ctx:e}),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function fo(t){let n,r,i,o,l=t[0],a=Di,c=[];for(let e=0;ewe(c[e],1,1,(()=>{c[e]=null}));let d=ho(t);return{c(){n=A("div"),r=A("div");for(let e=0;en(0,r=e))),c(e,or,(e=>n(1,i=e)));const o=e=>{"number"==typeof e&&(_r.set(e),localStorage.setItem("size",String(e)))};return[r,i,o,e=>o(e)]}class go extends Ne{constructor(e){super(),je(this,e,mo,fo,s,{})}}function vo(t){let n,r,o,s,l;return{c(){n=T("svg"),r=T("use"),N(r,"href",o="#"+t[0]+"-icon"),N(n,"data-tooltip",t[1]),N(n,"class","svelte-m0cv10")},m(e,i){L(e,n,i),x(n,r),s||(l=[I(n,"click",t[2]),v(ri.call(null,n))],s=!0)},p(e,[t]){1&t&&o!==(o="#"+e[0]+"-icon")&&N(r,"href",o),2&t&&N(n,"data-tooltip",e[1])},i:e,o:e,d(e){e&&S(n),s=!1,i(l)}}}function $o(e,t,n){let{icon:r}=t,{tip:i}=t,{onclick:o}=t;return e.$$set=e=>{"icon"in e&&n(0,r=e.icon),"tip"in e&&n(1,i=e.tip),"onclick"in e&&n(3,o=e.onclick)},[r,i,e=>{e.stopPropagation(),o()},o]}class yo extends Ne{constructor(e){super(),je(this,e,$o,vo,s,{icon:0,tip:1,onclick:3})}}function bo(t){let n,r,i;return{c(){n=A("input"),N(n,"type","color"),n.value=t[0],N(n,"class","svelte-sqg2wx")},m(e,o){L(e,n,o),r||(i=I(n,"input",t[1]),r=!0)},p(e,[t]){1&t&&(n.value=e[0])},i:e,o:e,d(e){e&&S(n),r=!1,i()}}}function wo(e,t,n){let{value:r}=t,{oninput:i}=t;return e.$$set=e=>{"value"in e&&n(0,r=e.value),"oninput"in e&&n(2,i=e.oninput)},[r,e=>{const t=e.target.value;i(t)},i]}class ko extends Ne{constructor(e){super(),je(this,e,wo,bo,s,{value:0,oninput:2})}}function Eo(t){let n,r,i;return{c(){n=A("input"),N(n,"type","number"),N(n,"min",t[1]),N(n,"max",t[2]),N(n,"step",t[3]),n.value=t[0],N(n,"class","svelte-1h78xtb")},m(e,o){L(e,n,o),r||(i=I(n,"input",t[4]),r=!0)},p(e,[t]){2&t&&N(n,"min",e[1]),4&t&&N(n,"max",e[2]),8&t&&N(n,"step",e[3]),1&t&&(n.value=e[0])},i:e,o:e,d(e){e&&S(n),r=!1,i()}}}function xo(e,t,n){let{value:r}=t,{oninput:i}=t,{min:o=0}=t,{max:s=1/0}=t,{step:l=1}=t;return e.$$set=e=>{"value"in e&&n(0,r=e.value),"oninput"in e&&n(5,i=e.oninput),"min"in e&&n(1,o=e.min),"max"in e&&n(2,s=e.max),"step"in e&&n(3,l=e.step)},[r,o,s,l,e=>{const t=e.target.value;i(+t)},i]}class _o extends Ne{constructor(e){super(),je(this,e,xo,Eo,s,{value:0,oninput:5,min:1,max:2,step:3})}}function Co(e){let t,n;return t=new yo({props:{icon:"undo",tip:e[0]("tooltip.undoColorChange"),onclick:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.tip=e[0]("tooltip.undoColorChange")),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Lo(e){let t,n,r,i,o,s=e[0]("menu.color")+"",l=e[1]!==yr&&Co(e);return i=new ko({props:{value:e[1],oninput:e[6]}}),{c(){t=O(s),n=P(),l&&l.c(),r=P(),Oe(i.$$.fragment)},m(e,s){L(e,t,s),L(e,n,s),l&&l.m(e,s),L(e,r,s),Pe(i,e,s),o=!0},p(e,n){(!o||1&n)&&s!==(s=e[0]("menu.color")+"")&&U(t,s),e[1]!==yr?l?(l.p(e,n),2&n&&be(l,1)):(l=Co(e),l.c(),be(l,1),l.m(r.parentNode,r)):l&&($e(),we(l,1,1,(()=>{l=null})),ye());const a={};2&n&&(a.value=e[1]),i.$set(a)},i(e){o||(be(l),be(i.$$.fragment,e),o=!0)},o(e){we(l),we(i.$$.fragment,e),o=!1},d(e){e&&S(t),e&&S(n),l&&l.d(e),e&&S(r),Me(i,e)}}}function So(e){let t,n;return t=new yo({props:{icon:"undo",tip:e[0]("tooltip.undoBorderWidthChange"),onclick:e[4]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.tip=e[0]("tooltip.undoBorderWidthChange")),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function zo(e){let t,n,r,i,o,s=e[0]("menu.width")+"",l=1!==e[2]&&So(e);return i=new _o({props:{min:0,max:4,step:.4,value:e[2],oninput:e[5]}}),{c(){t=O(s),n=P(),l&&l.c(),r=P(),Oe(i.$$.fragment)},m(e,s){L(e,t,s),L(e,n,s),l&&l.m(e,s),L(e,r,s),Pe(i,e,s),o=!0},p(e,n){(!o||1&n)&&s!==(s=e[0]("menu.width")+"")&&U(t,s),1!==e[2]?l?(l.p(e,n),4&n&&be(l,1)):(l=So(e),l.c(),be(l,1),l.m(r.parentNode,r)):l&&($e(),we(l,1,1,(()=>{l=null})),ye());const a={};4&n&&(a.value=e[2]),i.$set(a)},i(e){o||(be(l),be(i.$$.fragment,e),o=!0)},o(e){we(l),we(i.$$.fragment,e),o=!1},d(e){e&&S(t),e&&S(n),l&&l.d(e),e&&S(r),Me(i,e)}}}function Ao(e){let t,n=e[0]("menu.border")+"";return{c(){t=O(n)},m(e,n){L(e,t,n)},p(e,r){1&r&&n!==(n=e[0]("menu.border")+"")&&U(t,n)},d(e){e&&S(t)}}}function To(e){let t,n,r,i,o,s,l,a;return r=new $i({props:{$$slots:{default:[Lo]},$$scope:{ctx:e}}}),o=new $i({props:{$$slots:{default:[zo]},$$scope:{ctx:e}}}),l=new $i({props:{tip:e[0]("tooltip.border"),$$slots:{default:[Ao]},$$scope:{ctx:e}}}),{c(){t=A("div"),n=A("div"),Oe(r.$$.fragment),i=P(),Oe(o.$$.fragment),s=P(),Oe(l.$$.fragment),N(n,"class","dropdown level2"),N(t,"class","container")},m(e,c){L(e,t,c),x(t,n),Pe(r,n,null),x(n,i),Pe(o,n,null),x(t,s),Pe(l,t,null),a=!0},p(e,[t]){const n={};131&t&&(n.$$scope={dirty:t,ctx:e}),r.$set(n);const i={};133&t&&(i.$$scope={dirty:t,ctx:e}),o.$set(i);const s={};1&t&&(s.tip=e[0]("tooltip.border")),129&t&&(s.$$scope={dirty:t,ctx:e}),l.$set(s)},i(e){a||(be(r.$$.fragment,e),be(o.$$.fragment,e),be(l.$$.fragment,e),a=!0)},o(e){we(r.$$.fragment,e),we(o.$$.fragment,e),we(l.$$.fragment,e),a=!1},d(e){e&&S(t),Me(r),Me(o),Me(l)}}}function Oo(e,t,n){let r,i,o;c(e,or,(e=>n(0,r=e))),c(e,Pr,(e=>n(1,i=e))),c(e,Mr,(e=>n(2,o=e)));return[r,i,o,()=>{Pr.set(yr),localStorage.removeItem("border")},()=>{Mr.set(1),localStorage.removeItem("borderWidth")},e=>{Mr.set(e),localStorage.setItem("borderWidth",String(e))},e=>{Pr.set(e),localStorage.setItem("border",e)}]}class Po extends Ne{constructor(e){super(),je(this,e,Oo,To,s,{})}}function Mo(e){let t,n;return t=new yo({props:{icon:"undo",tip:e[0]("tooltip.undoColorChange"),onclick:e[2]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.tip=e[0]("tooltip.undoColorChange")),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Io(e){let t,n,r,i,o,s,l,a=e[0]("menu.color")+"";r=new yo({props:{icon:"random",tip:e[0]("tooltip.randomColor"),onclick:e[3]}});let c=e[1]!==br&&Mo(e);return s=new ko({props:{value:e[1],oninput:e[4]}}),{c(){t=O(a),n=P(),Oe(r.$$.fragment),i=P(),c&&c.c(),o=P(),Oe(s.$$.fragment)},m(e,a){L(e,t,a),L(e,n,a),Pe(r,e,a),L(e,i,a),c&&c.m(e,a),L(e,o,a),Pe(s,e,a),l=!0},p(e,n){(!l||1&n)&&a!==(a=e[0]("menu.color")+"")&&U(t,a);const i={};1&n&&(i.tip=e[0]("tooltip.randomColor")),r.$set(i),e[1]!==br?c?(c.p(e,n),2&n&&be(c,1)):(c=Mo(e),c.c(),be(c,1),c.m(o.parentNode,o)):c&&($e(),we(c,1,1,(()=>{c=null})),ye());const u={};2&n&&(u.value=e[1]),s.$set(u)},i(e){l||(be(r.$$.fragment,e),be(c),be(s.$$.fragment,e),l=!0)},o(e){we(r.$$.fragment,e),we(c),we(s.$$.fragment,e),l=!1},d(e){e&&S(t),e&&S(n),Me(r,e),e&&S(i),c&&c.d(e),e&&S(o),Me(s,e)}}}function jo(e){let t,n=e[0]("menu.background")+"";return{c(){t=O(n)},m(e,n){L(e,t,n)},p(e,r){1&r&&n!==(n=e[0]("menu.background")+"")&&U(t,n)},d(e){e&&S(t)}}}function No(e){let t,n,r,i,o,s;return r=new $i({props:{$$slots:{default:[Io]},$$scope:{ctx:e}}}),o=new $i({props:{tip:e[0]("tooltip.background"),$$slots:{default:[jo]},$$scope:{ctx:e}}}),{c(){t=A("div"),n=A("div"),Oe(r.$$.fragment),i=P(),Oe(o.$$.fragment),N(n,"class","dropdown level2"),N(t,"class","container")},m(e,l){L(e,t,l),x(t,n),Pe(r,n,null),x(t,i),Pe(o,t,null),s=!0},p(e,[t]){const n={};35&t&&(n.$$scope={dirty:t,ctx:e}),r.$set(n);const i={};1&t&&(i.tip=e[0]("tooltip.background")),33&t&&(i.$$scope={dirty:t,ctx:e}),o.$set(i)},i(e){s||(be(r.$$.fragment,e),be(o.$$.fragment,e),s=!0)},o(e){we(r.$$.fragment,e),we(o.$$.fragment,e),s=!1},d(e){e&&S(t),Me(r),Me(o)}}}function qo(e,t,n){let r,i;c(e,or,(e=>n(0,r=e))),c(e,Tr,(e=>n(1,i=e)));return[r,i,()=>{Tr.set(br),localStorage.removeItem("background")},()=>{const e="#"+[0,0,0,0,0,0].map((()=>"0123456789ABCDEF"[Math.floor(16*Math.random())])).join("");Tr.set(e),localStorage.setItem("background",e)},e=>{Tr.set(e),localStorage.setItem("background",e)}]}class Ho extends Ne{constructor(e){super(),je(this,e,qo,No,s,{})}}function Uo(t){let n,r,o,s,l;return{c(){n=A("input"),r=P(),o=A("input"),N(n,"type","range"),N(n,"min",t[1]),N(n,"max",t[2]),N(n,"step",t[3]),n.value=t[0],N(n,"class","svelte-1cxyc7"),N(o,"type","number"),N(o,"min",t[1]),N(o,"max",t[2]),N(o,"step",t[3]),o.value=t[0],N(o,"class","svelte-1cxyc7")},m(e,i){L(e,n,i),L(e,r,i),L(e,o,i),s||(l=[I(n,"input",t[4]),I(o,"input",t[4])],s=!0)},p(e,[t]){2&t&&N(n,"min",e[1]),4&t&&N(n,"max",e[2]),8&t&&N(n,"step",e[3]),1&t&&(n.value=e[0]),2&t&&N(o,"min",e[1]),4&t&&N(o,"max",e[2]),8&t&&N(o,"step",e[3]),1&t&&(o.value=e[0])},i:e,o:e,d(e){e&&S(n),e&&S(r),e&&S(o),s=!1,i(l)}}}function Ro(e,t,n){let{value:r}=t,{oninput:i}=t,{min:o=0}=t,{max:s=1/0}=t,{step:l=1}=t;return e.$$set=e=>{"value"in e&&n(0,r=e.value),"oninput"in e&&n(5,i=e.oninput),"min"in e&&n(1,o=e.min),"max"in e&&n(2,s=e.max),"step"in e&&n(3,l=e.step)},[r,o,s,l,e=>{const t=e.target.value;i(+t)},i]}class Bo extends Ne{constructor(e){super(),je(this,e,Ro,Uo,s,{value:0,oninput:5,min:1,max:2,step:3})}}function Do(e){let t,n;return t=new Bo({props:{min:1,max:4,step:.1,value:e[0],oninput:e[2]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.value=e[0]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Fo(e){let t,n=e[1]("menu.scale")+"";return{c(){t=O(n)},m(e,n){L(e,t,n)},p(e,r){2&r&&n!==(n=e[1]("menu.scale")+"")&&U(t,n)},d(e){e&&S(t)}}}function Go(e){let t,n,r,i,o,s;return r=new $i({props:{wide:!0,$$slots:{default:[Do]},$$scope:{ctx:e}}}),o=new $i({props:{tip:e[1]("tooltip.scale"),$$slots:{default:[Fo]},$$scope:{ctx:e}}}),{c(){t=A("div"),n=A("div"),Oe(r.$$.fragment),i=P(),Oe(o.$$.fragment),N(n,"class","dropdown level2"),N(t,"class","container")},m(e,l){L(e,t,l),x(t,n),Pe(r,n,null),x(t,i),Pe(o,t,null),s=!0},p(e,[t]){const n={};9&t&&(n.$$scope={dirty:t,ctx:e}),r.$set(n);const i={};2&t&&(i.tip=e[1]("tooltip.scale")),10&t&&(i.$$scope={dirty:t,ctx:e}),o.$set(i)},i(e){s||(be(r.$$.fragment,e),be(o.$$.fragment,e),s=!0)},o(e){we(r.$$.fragment,e),we(o.$$.fragment,e),s=!1},d(e){e&&S(t),Me(r),Me(o)}}}function Vo(e,t,n){let r,i;c(e,Or,(e=>n(0,r=e))),c(e,or,(e=>n(1,i=e)));return[r,i,e=>{Or.set(e),localStorage.setItem("scale",String(r))}]}class Jo extends Ne{constructor(e){super(),je(this,e,Vo,Go,s,{})}}function Ko(e){let t,n,r,i,o,s,l,a,c,u,d,p,h,f,m,g,v,$,y,b;return n=new $i({props:{value:"options",label:e[0]("menu.options")}}),o=new qi({}),l=new Bi({}),c=new Qi({}),d=new lo({}),h=new go({}),m=new Po({}),v=new Ho({}),y=new Jo({}),{c(){t=A("div"),Oe(n.$$.fragment),r=P(),i=A("div"),Oe(o.$$.fragment),s=P(),Oe(l.$$.fragment),a=P(),Oe(c.$$.fragment),u=P(),Oe(d.$$.fragment),p=P(),Oe(h.$$.fragment),f=P(),Oe(m.$$.fragment),g=P(),Oe(v.$$.fragment),$=P(),Oe(y.$$.fragment),N(i,"class","dropdown level1"),N(t,"class","container")},m(e,w){L(e,t,w),Pe(n,t,null),x(t,r),x(t,i),Pe(o,i,null),x(i,s),Pe(l,i,null),x(i,a),Pe(c,i,null),x(i,u),Pe(d,i,null),x(i,p),Pe(h,i,null),x(i,f),Pe(m,i,null),x(i,g),Pe(v,i,null),x(i,$),Pe(y,i,null),b=!0},p(e,[t]){const r={};1&t&&(r.label=e[0]("menu.options")),n.$set(r)},i(e){b||(be(n.$$.fragment,e),be(o.$$.fragment,e),be(l.$$.fragment,e),be(c.$$.fragment,e),be(d.$$.fragment,e),be(h.$$.fragment,e),be(m.$$.fragment,e),be(v.$$.fragment,e),be(y.$$.fragment,e),b=!0)},o(e){we(n.$$.fragment,e),we(o.$$.fragment,e),we(l.$$.fragment,e),we(c.$$.fragment,e),we(d.$$.fragment,e),we(h.$$.fragment,e),we(m.$$.fragment,e),we(v.$$.fragment,e),we(y.$$.fragment,e),b=!1},d(e){e&&S(t),Me(n),Me(o),Me(l),Me(c),Me(d),Me(h),Me(m),Me(v),Me(y)}}}function Zo(e,t,n){let r;return c(e,or,(e=>n(0,r=e))),[r]}class Wo extends Ne{constructor(e){super(),je(this,e,Zo,Ko,s,{})}}function Xo(e){let t,n;return t=new Ei({props:{value:"rollback",label:e[1]("menu.rollback"),disabled:!e[0],onclick:e[3],tip:e[1](e[2].edit?"tooltip.rollbackEdit":"tooltip.rollback"),gesture:e[1]("tooltip.swipeUp"),hotkey:"Backspace"}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,[n]){const r={};2&n&&(r.label=e[1]("menu.rollback")),1&n&&(r.disabled=!e[0]),6&n&&(r.tip=e[1](e[2].edit?"tooltip.rollbackEdit":"tooltip.rollback")),2&n&&(r.gesture=e[1]("tooltip.swipeUp")),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Yo(e,t,n){let r,i,o;c(e,Hr,(e=>n(0,r=e))),c(e,or,(e=>n(1,i=e))),c(e,Ur,(e=>n(2,o=e)));return[r,i,o,()=>{g(Hr,r-=1,r)}]}class Qo extends Ne{constructor(e){super(),je(this,e,Yo,Xo,s,{})}}function es(e){let t,n;return t=new Ei({props:{value:"reroll",label:e[0]("menu.reroll"),onclick:e[2],tip:e[0](e[1].edit?"tooltip.rerollEdit":"tooltip.reroll"),gesture:e[0]("tooltip.swipeDown"),hotkey:"Enter"}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,[n]){const r={};1&n&&(r.label=e[0]("menu.reroll")),3&n&&(r.tip=e[0](e[1].edit?"tooltip.rerollEdit":"tooltip.reroll")),1&n&&(r.gesture=e[0]("tooltip.swipeDown")),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function ts(e,t,n){let r,i,o;c(e,Hr,(e=>n(3,r=e))),c(e,or,(e=>n(0,i=e))),c(e,Ur,(e=>n(1,o=e)));return[i,o,()=>{g(Hr,r+=1,r)}]}class ns extends Ne{constructor(e){super(),je(this,e,ts,es,s,{})}}function rs(e){let t,n=e[0]("menu.downloadSVG")+"";return{c(){t=O(n)},m(e,n){L(e,t,n)},p(e,r){1&r&&n!==(n=e[0]("menu.downloadSVG")+"")&&U(t,n)},d(e){e&&S(t)}}}function is(e){let t,n=e[0]("menu.downloadPNG")+"";return{c(){t=O(n)},m(e,n){L(e,t,n)},p(e,r){1&r&&n!==(n=e[0]("menu.downloadPNG")+"")&&U(t,n)},d(e){e&&S(t)}}}function os(e){let t,n=e[0]("menu.downloadJPEG")+"";return{c(){t=O(n)},m(e,n){L(e,t,n)},p(e,r){1&r&&n!==(n=e[0]("menu.downloadJPEG")+"")&&U(t,n)},d(e){e&&S(t)}}}function ss(e){let t,n,r,i,o,s;return t=new Ei({props:{onclick:e[2],tip:e[0]("tooltip.copyEditLink"),$$slots:{default:[ls]},$$scope:{ctx:e}}}),r=new Ei({props:{onclick:e[3],tip:e[0]("tooltip.copyApiLink"),$$slots:{default:[as]},$$scope:{ctx:e}}}),o=new Ei({props:{onclick:e[4],tip:e[0]("tooltip.copyCoaString"),$$slots:{default:[cs]},$$scope:{ctx:e}}}),{c(){Oe(t.$$.fragment),n=P(),Oe(r.$$.fragment),i=P(),Oe(o.$$.fragment)},m(e,l){Pe(t,e,l),L(e,n,l),Pe(r,e,l),L(e,i,l),Pe(o,e,l),s=!0},p(e,n){const i={};1&n&&(i.tip=e[0]("tooltip.copyEditLink")),1025&n&&(i.$$scope={dirty:n,ctx:e}),t.$set(i);const s={};1&n&&(s.tip=e[0]("tooltip.copyApiLink")),1025&n&&(s.$$scope={dirty:n,ctx:e}),r.$set(s);const l={};1&n&&(l.tip=e[0]("tooltip.copyCoaString")),1025&n&&(l.$$scope={dirty:n,ctx:e}),o.$set(l)},i(e){s||(be(t.$$.fragment,e),be(r.$$.fragment,e),be(o.$$.fragment,e),s=!0)},o(e){we(t.$$.fragment,e),we(r.$$.fragment,e),we(o.$$.fragment,e),s=!1},d(e){Me(t,e),e&&S(n),Me(r,e),e&&S(i),Me(o,e)}}}function ls(e){let t,n=e[0]("menu.copyEditLink")+"";return{c(){t=O(n)},m(e,n){L(e,t,n)},p(e,r){1&r&&n!==(n=e[0]("menu.copyEditLink")+"")&&U(t,n)},d(e){e&&S(t)}}}function as(e){let t,n=e[0]("menu.copyApiLink")+"";return{c(){t=O(n)},m(e,n){L(e,t,n)},p(e,r){1&r&&n!==(n=e[0]("menu.copyApiLink")+"")&&U(t,n)},d(e){e&&S(t)}}}function cs(e){let t,n=e[0]("menu.copyCoaString")+"";return{c(){t=O(n)},m(e,n){L(e,t,n)},p(e,r){1&r&&n!==(n=e[0]("menu.copyCoaString")+"")&&U(t,n)},d(e){e&&S(t)}}}function us(e){let t,n,r,i,o,s,l,a,c,u,d;n=new $i({props:{value:"save",label:e[0]("menu.save")}}),o=new Ei({props:{onclick:e[5],tip:e[0]("tooltip.downloadSVG"),hotkey:"Ctrl + S",$$slots:{default:[rs]},$$scope:{ctx:e}}}),l=new Ei({props:{onclick:e[6],tip:e[0]("tooltip.downloadPNG"),hotkey:"Ctrl + P",$$slots:{default:[is]},$$scope:{ctx:e}}}),c=new Ei({props:{onclick:e[7],tip:e[0]("tooltip.downloadJPEG"),hotkey:"Ctrl + J",$$slots:{default:[os]},$$scope:{ctx:e}}});let p=e[1].edit&&ss(e);return{c(){t=A("div"),Oe(n.$$.fragment),r=P(),i=A("div"),Oe(o.$$.fragment),s=P(),Oe(l.$$.fragment),a=P(),Oe(c.$$.fragment),u=P(),p&&p.c(),N(i,"class","dropdown level1"),N(t,"class","container")},m(e,h){L(e,t,h),Pe(n,t,null),x(t,r),x(t,i),Pe(o,i,null),x(i,s),Pe(l,i,null),x(i,a),Pe(c,i,null),x(i,u),p&&p.m(i,null),d=!0},p(e,[t]){const r={};1&t&&(r.label=e[0]("menu.save")),n.$set(r);const s={};1&t&&(s.tip=e[0]("tooltip.downloadSVG")),1025&t&&(s.$$scope={dirty:t,ctx:e}),o.$set(s);const a={};1&t&&(a.tip=e[0]("tooltip.downloadPNG")),1025&t&&(a.$$scope={dirty:t,ctx:e}),l.$set(a);const u={};1&t&&(u.tip=e[0]("tooltip.downloadJPEG")),1025&t&&(u.$$scope={dirty:t,ctx:e}),c.$set(u),e[1].edit?p?(p.p(e,t),2&t&&be(p,1)):(p=ss(e),p.c(),be(p,1),p.m(i,null)):p&&($e(),we(p,1,1,(()=>{p=null})),ye())},i(e){d||(be(n.$$.fragment,e),be(o.$$.fragment,e),be(l.$$.fragment,e),be(c.$$.fragment,e),be(p),d=!0)},o(e){we(n.$$.fragment,e),we(o.$$.fragment,e),we(l.$$.fragment,e),we(c.$$.fragment,e),we(p),d=!1},d(e){e&&S(t),Me(n),Me(o),Me(l),Me(c),p&&p.d()}}}function ds(e,t,n){let r,i,o;function s(e,t){Br.clear(),navigator.clipboard.writeText(e).then((()=>{setTimeout((()=>{Br.success(t)}),500)}),(e=>{Br.error("error.copyToClipboard"),console.error(e)}))}c(e,Dr,(e=>n(8,r=e))),c(e,or,(e=>n(0,i=e))),c(e,Ur,(e=>n(1,o=e)));return[i,o,function(){const e=r[0].replaceAll("#","%23");s(location.origin+location.pathname+"?coa="+e,"success.copyEditLink")},function(){s(`https://armoria.herokuapp.com/?size=500&format=png&coa=${encodeURI(r[0])}`,"success.copyApiLink")},function(){s(encodeURI(r[0]),"success.copyCoaString")},()=>Gr(null,"svg"),()=>Gr(null,"png"),()=>Gr(null,"jpeg")]}class ps extends Ne{constructor(e){super(),je(this,e,ds,us,s,{})}}function hs(e){let t,n=e[0]("menu.rasterCharge")+"";return{c(){t=O(n)},m(e,n){L(e,t,n)},p(e,r){1&r&&n!==(n=e[0]("menu.rasterCharge")+"")&&U(t,n)},d(e){e&&S(t)}}}function fs(e){let t,n=e[0]("menu.vectorCharge")+"";return{c(){t=O(n)},m(e,n){L(e,t,n)},p(e,r){1&r&&n!==(n=e[0]("menu.vectorCharge")+"")&&U(t,n)},d(e){e&&S(t)}}}function ms(e){let t,n,r,i,o,s,l,a;return n=new $i({props:{value:"upload",label:e[0]("menu.upload")}}),o=new Ei({props:{onclick:e[1],tip:e[0]("tooltip.rasterCharge"),$$slots:{default:[hs]},$$scope:{ctx:e}}}),l=new Ei({props:{onclick:e[2],tip:e[0]("tooltip.vectorCharge"),$$slots:{default:[fs]},$$scope:{ctx:e}}}),{c(){t=A("div"),Oe(n.$$.fragment),r=P(),i=A("div"),Oe(o.$$.fragment),s=P(),Oe(l.$$.fragment),N(i,"class","dropdown level1"),N(t,"class","container")},m(e,c){L(e,t,c),Pe(n,t,null),x(t,r),x(t,i),Pe(o,i,null),x(i,s),Pe(l,i,null),a=!0},p(e,[t]){const r={};1&t&&(r.label=e[0]("menu.upload")),n.$set(r);const i={};1&t&&(i.tip=e[0]("tooltip.rasterCharge")),17&t&&(i.$$scope={dirty:t,ctx:e}),o.$set(i);const s={};1&t&&(s.tip=e[0]("tooltip.vectorCharge")),17&t&&(s.$$scope={dirty:t,ctx:e}),l.$set(s)},i(e){a||(be(n.$$.fragment,e),be(o.$$.fragment,e),be(l.$$.fragment,e),a=!0)},o(e){we(n.$$.fragment,e),we(o.$$.fragment,e),we(l.$$.fragment,e),a=!1},d(e){e&&S(t),Me(n),Me(o),Me(l)}}}function gs(e,t,n){let r,i;c(e,Ur,(e=>n(3,r=e))),c(e,or,(e=>n(0,i=e)));return[i,()=>{g(Ur,r.raster=1,r)},()=>{g(Ur,r.vector=1,r)}]}class vs extends Ne{constructor(e){super(),je(this,e,gs,ms,s,{})}}function $s(e){let t,n;return t=new Ei({props:{value:"install",label:e[1]("menu.install"),onclick:e[2],flutter:!0,tip:e[1]("tooltip.install")}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};2&n&&(r.label=e[1]("menu.install")),2&n&&(r.tip=e[1]("tooltip.install")),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function ys(e){let t,n,r=e[0]&&$s(e);return{c(){r&&r.c(),t=M()},m(e,i){r&&r.m(e,i),L(e,t,i),n=!0},p(e,[n]){e[0]?r?(r.p(e,n),1&n&&be(r,1)):(r=$s(e),r.c(),be(r,1),r.m(t.parentNode,t)):r&&($e(),we(r,1,1,(()=>{r=null})),ye())},i(e){n||(be(r),n=!0)},o(e){we(r),n=!1},d(e){r&&r.d(e),e&&S(t)}}}function bs(e,t,n){let r;c(e,or,(e=>n(1,r=e)));let i=!1,o=null;return window.addEventListener("beforeinstallprompt",(e=>{o=e,n(0,i=!0)})),window.addEventListener("appinstalled",(()=>{Br.success("success.install")})),[i,r,function(){n(0,i=!1),o.prompt(),o.userChoice.then((()=>{o=null}))}]}class ws extends Ne{constructor(e){super(),je(this,e,bs,ys,s,{})}}function ks(e){let t,n;return t=new Ei({props:{value:"license",label:e[0]("menu.license"),onclick:e[1],tip:e[0]("tooltip.license")}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,[n]){const r={};1&n&&(r.label=e[0]("menu.license")),1&n&&(r.tip=e[0]("tooltip.license")),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Es(e,t,n){let r,i;c(e,Ur,(e=>n(2,r=e))),c(e,or,(e=>n(0,i=e)));return[i,()=>{g(Ur,r.license=1,r)}]}class xs extends Ne{constructor(e){super(),je(this,e,Es,ks,s,{})}}function _s(e){let t,n;return t=new Ei({props:{value:"about",label:e[0]("menu.about"),onclick:e[1],tip:e[0]("tooltip.about"),hotkey:"F1"}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,[n]){const r={};1&n&&(r.label=e[0]("menu.about")),1&n&&(r.tip=e[0]("tooltip.about")),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Cs(e,t,n){let r,i;c(e,Ur,(e=>n(2,r=e))),c(e,or,(e=>n(0,i=e)));return[i,()=>{g(Ur,r.about=1,r)}]}class Ls extends Ne{constructor(e){super(),je(this,e,Cs,_s,s,{})}}function Ss(e){let t,n;return t=new Ei({props:{value:"support",label:e[0]("menu.support"),onclick:e[1],tip:e[0]("tooltip.support")}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,[n]){const r={};1&n&&(r.label=e[0]("menu.support")),1&n&&(r.tip=e[0]("tooltip.support")),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function zs(e,t,n){let r;c(e,or,(e=>n(0,r=e)));return[r,()=>{var e;e="https://www.patreon.com/azgaar",window.open(e,"_blank")}]}class As extends Ne{constructor(e){super(),je(this,e,zs,Ss,s,{})}}function Ts(e,t,n){const r=e.slice();return r[5]=t[n],r}function Os(e){let t,n;return t=new Ei({props:{selected:e[2]===e[5],label:e[4](e[5]),onclick:e[3](e[5])}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};6&n&&(r.selected=e[2]===e[5]),2&n&&(r.label=e[4](e[5])),2&n&&(r.onclick=e[3](e[5])),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Ps(e){let t,n,r,i,o;n=new $i({props:{value:"language",label:e[0]("menu.language"),tip:e[0]("tooltip.language")}});let s=e[1],l=[];for(let t=0;twe(l[e],1,1,(()=>{l[e]=null}));return{c(){t=A("div"),Oe(n.$$.fragment),r=P(),i=A("div");for(let e=0;en(0,r=e))),c(e,An,(e=>n(1,i=e))),c(e,Jn,(e=>n(2,o=e)));return[r,i,o,e=>()=>{Jn.set(e),localStorage.setItem("locale",e)},e=>{const t=new Intl.DisplayNames([e],{type:"language"});return(n=t.of(e)).charAt(0).toUpperCase()+n.slice(1);var n}]}class Is extends Ne{constructor(e){super(),je(this,e,Ms,Ps,s,{})}}function js(t){let n,r,i,o,s,l,a,c,u,d,p,h;return r=new $i({props:{value:"other"}}),s=new Is({}),a=new xs({}),u=new As({}),p=new Ls({}),{c(){n=A("div"),Oe(r.$$.fragment),i=P(),o=A("div"),Oe(s.$$.fragment),l=P(),Oe(a.$$.fragment),c=P(),Oe(u.$$.fragment),d=P(),Oe(p.$$.fragment),N(o,"class","dropdown horizontal"),N(n,"class","container")},m(e,t){L(e,n,t),Pe(r,n,null),x(n,i),x(n,o),Pe(s,o,null),x(o,l),Pe(a,o,null),x(o,c),Pe(u,o,null),x(o,d),Pe(p,o,null),h=!0},p:e,i(e){h||(be(r.$$.fragment,e),be(s.$$.fragment,e),be(a.$$.fragment,e),be(u.$$.fragment,e),be(p.$$.fragment,e),h=!0)},o(e){we(r.$$.fragment,e),we(s.$$.fragment,e),we(a.$$.fragment,e),we(u.$$.fragment,e),we(p.$$.fragment,e),h=!1},d(e){e&&S(n),Me(r),Me(s),Me(a),Me(u),Me(p)}}}class Ns extends Ne{constructor(e){super(),je(this,e,null,js,s,{})}}function qs(e){let t,n;return t=new Ei({props:{value:"undo",label:e[1]("menu.undo"),disabled:!e[0],onclick:Dr.undo,tip:e[1]("tooltip.undo"),gesture:e[1]("tooltip.swipeLeft"),hotkey:"Z"}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,[n]){const r={};2&n&&(r.label=e[1]("menu.undo")),1&n&&(r.disabled=!e[0]),2&n&&(r.tip=e[1]("tooltip.undo")),2&n&&(r.gesture=e[1]("tooltip.swipeLeft")),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Hs(e,t,n){let r,i,o;return c(e,Dr,(e=>n(2,i=e))),c(e,or,(e=>n(1,o=e))),e.$$.update=()=>{4&e.$$.dirty&&n(0,r=i[1])},[r,o,i]}class Us extends Ne{constructor(e){super(),je(this,e,Hs,qs,s,{})}}function Rs(e){let t,n;return t=new Ei({props:{value:"redo",label:e[1]("menu.redo"),disabled:!e[0],onclick:Dr.redo,tip:e[1]("tooltip.redo"),gesture:e[1]("tooltip.swipeRight"),hotkey:"X"}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,[n]){const r={};2&n&&(r.label=e[1]("menu.redo")),1&n&&(r.disabled=!e[0]),2&n&&(r.tip=e[1]("tooltip.redo")),2&n&&(r.gesture=e[1]("tooltip.swipeRight")),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Bs(e,t,n){let r,i,o;return c(e,Dr,(e=>n(2,i=e))),c(e,or,(e=>n(1,o=e))),e.$$.update=()=>{4&e.$$.dirty&&n(0,r=i[1]n(2,r=e))),c(e,Dr,(e=>n(3,i=e))),c(e,Nr,(e=>n(4,o=e))),c(e,or,(e=>n(0,s=e)));return[s,()=>{g(Nr,o[r.c]=JSON.parse(i[0]),o),g(Ur,r.edit=0,r)}]}class Vs extends Ne{constructor(e){super(),je(this,e,Gs,Fs,s,{})}}function Js(e){let t,n,r,i,o,s,l,a,c,u,d,p,h,f,m,g,v;t=new Wo({}),r=new Qo({}),o=new ns({}),l=new ps({}),c=new vs({}),d=new ws({});const $=[Zs,Ks],y=[];function b(e,t){return e[1]&&e[2].edit?0:1}h=b(e),f=y[h]=$[h](e);let w=e[2].edit&&Ws();return{c(){Oe(t.$$.fragment),n=P(),Oe(r.$$.fragment),i=P(),Oe(o.$$.fragment),s=P(),Oe(l.$$.fragment),a=P(),Oe(c.$$.fragment),u=P(),Oe(d.$$.fragment),p=P(),f.c(),m=P(),w&&w.c(),g=M()},m(e,f){Pe(t,e,f),L(e,n,f),Pe(r,e,f),L(e,i,f),Pe(o,e,f),L(e,s,f),Pe(l,e,f),L(e,a,f),Pe(c,e,f),L(e,u,f),Pe(d,e,f),L(e,p,f),y[h].m(e,f),L(e,m,f),w&&w.m(e,f),L(e,g,f),v=!0},p(e,t){let n=h;h=b(e),h!==n&&($e(),we(y[n],1,1,(()=>{y[n]=null})),ye(),f=y[h],f||(f=y[h]=$[h](e),f.c()),be(f,1),f.m(m.parentNode,m)),e[2].edit?w?4&t&&be(w,1):(w=Ws(),w.c(),be(w,1),w.m(g.parentNode,g)):w&&($e(),we(w,1,1,(()=>{w=null})),ye())},i(e){v||(be(t.$$.fragment,e),be(r.$$.fragment,e),be(o.$$.fragment,e),be(l.$$.fragment,e),be(c.$$.fragment,e),be(d.$$.fragment,e),be(f),be(w),v=!0)},o(e){we(t.$$.fragment,e),we(r.$$.fragment,e),we(o.$$.fragment,e),we(l.$$.fragment,e),we(c.$$.fragment,e),we(d.$$.fragment,e),we(f),we(w),v=!1},d(e){Me(t,e),e&&S(n),Me(r,e),e&&S(i),Me(o,e),e&&S(s),Me(l,e),e&&S(a),Me(c,e),e&&S(u),Me(d,e),e&&S(p),y[h].d(e),e&&S(m),w&&w.d(e),e&&S(g)}}}function Ks(e){let t,n,r,i,o,s,l,a;return t=new Is({}),r=new xs({}),o=new As({}),l=new Ls({}),{c(){Oe(t.$$.fragment),n=P(),Oe(r.$$.fragment),i=P(),Oe(o.$$.fragment),s=P(),Oe(l.$$.fragment)},m(e,c){Pe(t,e,c),L(e,n,c),Pe(r,e,c),L(e,i,c),Pe(o,e,c),L(e,s,c),Pe(l,e,c),a=!0},i(e){a||(be(t.$$.fragment,e),be(r.$$.fragment,e),be(o.$$.fragment,e),be(l.$$.fragment,e),a=!0)},o(e){we(t.$$.fragment,e),we(r.$$.fragment,e),we(o.$$.fragment,e),we(l.$$.fragment,e),a=!1},d(e){Me(t,e),e&&S(n),Me(r,e),e&&S(i),Me(o,e),e&&S(s),Me(l,e)}}}function Zs(e){let t,n;return t=new Ns({}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Ws(e){let t,n,r,i,o,s;return t=new Us({}),r=new Ds({}),o=new Vs({}),{c(){Oe(t.$$.fragment),n=P(),Oe(r.$$.fragment),i=P(),Oe(o.$$.fragment)},m(e,l){Pe(t,e,l),L(e,n,l),Pe(r,e,l),L(e,i,l),Pe(o,e,l),s=!0},i(e){s||(be(t.$$.fragment,e),be(r.$$.fragment,e),be(o.$$.fragment,e),s=!0)},o(e){we(t.$$.fragment,e),we(r.$$.fragment,e),we(o.$$.fragment,e),s=!1},d(e){Me(t,e),e&&S(n),Me(r,e),e&&S(i),Me(o,e)}}}function Xs(e){let t,n,r,i;n=new ti({});let o=e[0]&&Js(e);return{c(){t=A("nav"),Oe(n.$$.fragment),r=P(),o&&o.c(),N(t,"class","svelte-1sxoqy9")},m(e,s){L(e,t,s),Pe(n,t,null),x(t,r),o&&o.m(t,null),i=!0},p(e,[n]){e[0]?o?(o.p(e,n),1&n&&be(o,1)):(o=Js(e),o.c(),be(o,1),o.m(t,null)):o&&($e(),we(o,1,1,(()=>{o=null})),ye())},i(e){i||(be(n.$$.fragment,e),be(o),i=!0)},o(e){we(n.$$.fragment,e),we(o),i=!1},d(e){e&&S(t),Me(n),o&&o.d()}}}function Ys(e,t,n){let r,i,o;return c(e,Er,(e=>n(0,r=e))),c(e,Rr,(e=>n(1,i=e))),c(e,Ur,(e=>n(2,o=e))),[r,i,o]}class Qs extends Ne{constructor(e){super(),je(this,e,Ys,Xs,s,{})}}function el(t){let n,r,i,o,s,l,a,c,u,d,p,h,f,m,g,v,$,y;return{c(){n=T("svg"),r=T("clipPath"),i=T("path"),o=T("g"),s=T("path"),a=T("path"),u=T("g"),d=T("rect"),h=T("path"),m=T("rect"),v=T("g"),$=T("path"),N(i,"d",fr.heater),N(r,"id","shieldAbout"),N(s,"stroke-width","1"),N(s,"d","M25,25 h150 v50 a150,150,0,0,1,-75,125 a150,150,0,0,1,-75,-125 z"),N(a,"d",t[7][t[6]][0]),N(d,"x","0"),N(d,"y","0"),N(d,"width","200"),N(d,"height","200"),N(d,"fill",p=t[2][t[4]]),N(h,"d",t[7][t[6]][1]),N(h,"fill",f=t[2][t[5]]),N(m,"x","0"),N(m,"y","0"),N(m,"width","200"),N(m,"height","200"),N(m,"fill","url(#nourse)"),N(u,"stroke","none"),N(o,"clip-path","url(#shieldAbout)"),N(o,"stroke","#fff"),N(o,"stroke-width",".5"),N($,"d",fr.heater),N(v,"stroke","#000"),N(v,"fill","url(#backlight)"),N(n,"width",t[1]),N(n,"height",t[1]),N(n,"viewBox","0 0 200 200")},m(e,t){L(e,n,t),x(n,r),x(r,i),x(n,o),x(o,s),x(o,a),x(o,u),x(u,d),x(u,h),x(u,m),x(n,v),x(v,$)},p(e,[r]){t=e,4&r&&p!==(p=t[2][t[4]])&&N(d,"fill",p),4&r&&f!==(f=t[2][t[5]])&&N(h,"fill",f),2&r&&N(n,"width",t[1]),2&r&&N(n,"height",t[1])},i(e){l||le((()=>{l=Ee(s,ci,{duration:t[0]}),l.start()})),c||le((()=>{c=Ee(a,ci,{delay:t[0]}),c.start()})),g||le((()=>{g=Ee(u,si,{delay:t[3],duration:t[0]}),g.start()})),y||le((()=>{y=Ee($,ci,{delay:t[3],duration:t[0]}),y.start()}))},o:e,d(e){e&&S(n)}}}function tl(e,t,n){let r;c(e,zr,(e=>n(2,r=e)));let{duration:i}=t;const o=2.6*i,s={argent:3,or:2},l={gules:5,sable:3,azure:4,vert:2,purpure:3},a=Math.random()>.5,u=lr(a?s:l),d=lr(a?l:s),p=lr({perPale:2,perFess:2,perBend:2,perBendSinister:1,perCross:6,perChevron:1,perChevronReversed:1,perPile:2,perSaltire:5,gyronny:1,chevronny:1});let h=window.innerWidth<600?.9*window.innerWidth:500;return window.innerHeight<600&&(h*=.5),e.$$set=e=>{"duration"in e&&n(0,i=e.duration)},[i,h,r,o,u,d,p,{perPale:["M100,25 v175","M100,0 v200 h100 v-200 Z"],perFess:["M27.5,100 h145","M0,100 h200 v100 h-200 Z"],perBend:["M0,0 l200,200","M0,0 l200,200 h-200 Z"],perBendSinister:["M200,0 L0,200","M200,0 L0,200 h200 Z"],perCross:["M100,25 v175 M27.5,100 h145","M100,0 v200 h-100 v-100 h200 v-100 Z"],perChevron:["M0,0 l100,100 l100,-100","M0,0 l100,100 l100,-100 Z"],perChevronReversed:["M0,200 l100,-100 l100,100","M0,200 l100,-100 l100,100 Z"],perPile:["M15,0 l85,200 l85,-200","M15,0 l85,200 l85,-200 Z"],perSaltire:["M0,0 L200,200 M200,0 l-200,200","M0,0 L200,200 v-200 l-200,200 Z"],gyronny:["M0,0 l200,200 M200,100 h-200 M100,0 v200 M0,200 l200,-200","M0,0 l200,200 v-100 h-200 h-100 M100,0 v200, h-100 l200,-200 h-100"],chevronny:["","M0,80 100,-15 200,80 200,120 100,25 0,120z M0,160 100,65 200,160 200,200 100,105 0,200z M0,240 100,145 200,240 0,240z"]}]}class nl extends Ne{constructor(e){super(),je(this,e,tl,el,s,{duration:0})}}function rl(e){let t,n,r,i,o,s,l,a,c,u,d,p,h,f,m,g,v,$,y,b,w,k,E,_,C,z,T,M,j,q,H=e[0]("about.tutorial")+"",R=e[0]("about.discord")+"",B=e[0]("about.gitHub")+"",D=e[0]("about.api")+"",F=e[0]("about.patreon")+"";return i=new nl({props:{duration:il}}),{c(){t=A("div"),n=A("span"),n.textContent="×",r=P(),Oe(i.$$.fragment),o=P(),s=A("div"),l=A("a"),a=A("span"),c=O(H),u=P(),d=A("a"),p=A("span"),h=O(R),f=P(),m=A("a"),g=A("span"),v=O(B),$=P(),y=A("a"),b=A("span"),w=O(D),k=P(),E=A("a"),_=A("span"),C=O(F),N(n,"class","close svelte-1ssn3sl"),N(a,"class","svelte-1ssn3sl"),N(l,"target","_blank"),N(l,"href","https://github.com/Azgaar/Armoria/wiki/Armoria-Tutorial"),N(l,"class","svelte-1ssn3sl"),N(p,"class","svelte-1ssn3sl"),N(d,"target","_blank"),N(d,"href","https://discord.com/invite/X7E84HU"),N(d,"class","svelte-1ssn3sl"),N(g,"class","svelte-1ssn3sl"),N(m,"target","_blank"),N(m,"href","https://github.com/Azgaar/Armoria"),N(m,"class","svelte-1ssn3sl"),N(b,"class","svelte-1ssn3sl"),N(y,"target","_blank"),N(y,"href","https://github.com/Azgaar/armoria-api#readme"),N(y,"class","svelte-1ssn3sl"),N(_,"class","svelte-1ssn3sl"),N(E,"target","_blank"),N(E,"href","https://www.patreon.com/azgaar"),N(E,"class","svelte-1ssn3sl"),N(s,"class","buttons svelte-1ssn3sl"),N(t,"id","about"),N(t,"class","svelte-1ssn3sl")},m(S,z){L(S,t,z),x(t,n),x(t,r),Pe(i,t,null),x(t,o),x(t,s),x(s,l),x(l,a),x(a,c),x(s,u),x(s,d),x(d,p),x(p,h),x(s,f),x(s,m),x(m,g),x(g,v),x(s,$),x(s,y),x(y,b),x(b,w),x(s,k),x(s,E),x(E,_),x(_,C),M=!0,j||(q=I(n,"click",e[1]),j=!0)},p(t,[n]){e=t,(!M||1&n)&&H!==(H=e[0]("about.tutorial")+"")&&U(c,H),(!M||1&n)&&R!==(R=e[0]("about.discord")+"")&&U(h,R),(!M||1&n)&&B!==(B=e[0]("about.gitHub")+"")&&U(v,B),(!M||1&n)&&D!==(D=e[0]("about.api")+"")&&U(w,D),(!M||1&n)&&F!==(F=e[0]("about.patreon")+"")&&U(C,F)},i(e){M||(be(i.$$.fragment,e),z||le((()=>{z=Ee(s,li,{y:200,delay:il,duration:il}),z.start()})),le((()=>{T||(T=_e(t,si,{},!0)),T.run(1)})),M=!0)},o(e){we(i.$$.fragment,e),T||(T=_e(t,si,{},!1)),T.run(0),M=!1},d(e){e&&S(t),Me(i),e&&T&&T.end(),j=!1,q()}}}const il=1e3;function ol(e,t,n){let r,i;c(e,Ur,(e=>n(2,r=e))),c(e,or,(e=>n(0,i=e)));return[i,()=>{g(Ur,r.about=0,r)}]}class sl extends Ne{constructor(e){super(),je(this,e,ol,rl,s,{})}}function ll(e,t,n){const r=e.slice();return r[9]=t[n].charge,r[21]=t[n].license,r[22]=t[n].source,r}function al(e){let t,n=e[7],r=[];for(let t=0;t1?e[0]("license.charges"):e[9].charge)+"",a=e[9].license+"",c=e[9].source+"";return{c(){t=A("h3"),n=O(l),r=O(": "),i=new V,o=O(", "),s=new V,i.a=o,s.a=null},m(e,l){L(e,t,l),x(t,n),x(t,r),i.m(a,t),x(t,o),s.m(c,t)},p(e,t){1&t&&l!==(l=(e[7].length>1?e[0]("license.charges"):e[9].charge)+"")&&U(n,l)},d(e){e&&S(t)}}}function ul(t){let n,r,i,o,s,l,a,c=t[9]+"",u=t[21]+"",d=t[22]+"";return{c(){n=A("div"),r=A("span"),i=O(c),o=O(": "),s=new V,l=O(", "),a=new V,N(r,"class","charge svelte-1b7i60q"),s.a=l,a.a=null},m(e,t){L(e,n,t),x(n,r),x(r,i),x(n,o),s.m(u,n),x(n,l),a.m(d,n)},p:e,d(e){e&&S(n)}}}function dl(e){let t,n=e[0]("license.wetaShield")+"";return{c(){t=A("p")},m(e,r){L(e,t,r),t.innerHTML=n},p(e,r){1&r&&n!==(n=e[0]("license.wetaShield")+"")&&(t.innerHTML=n)},d(e){e&&S(t)}}}function pl(e){let t,n,r,i,o,s,l,a,c,u,d,p,h,f,m,g,v,$,y,b,w,k,E,_,C,z,T,M,j,q,H,R,B,D,F,G,J,K=e[0]("license.armoriaLicense")+"",Z=e[3](e[2]),W=e[0]("license.code")+"",X=e[0]("license.textMain")+"",Y=e[0]("license.textRest")+"",Q=e[0]("license.icons")+"",ee=e[7].length&&function(e){let t,n,r,i,o=e[0]("license.currentCoas")+"";return{c(){t=A("hr"),n=P(),r=A("h2"),i=O(o),N(t,"class","svelte-1b7i60q")},m(e,o){L(e,t,o),L(e,n,o),L(e,r,o),x(r,i)},p(e,t){1&t&&o!==(o=e[0]("license.currentCoas")+"")&&U(i,o)},d(e){e&&S(t),e&&S(n),e&&S(r)}}}(e);let te=function(e,t){return e[8]?cl:al}(e),ne=te(e),re=Z&&dl(e);return{c(){t=A("div"),n=A("span"),n.textContent="×",r=P(),i=A("div"),o=A("h1"),s=O(K),l=P(),ee&&ee.c(),a=P(),ne.c(),c=P(),re&&re.c(),u=P(),d=A("hr"),p=P(),h=A("h2"),f=O(W),m=O(": MIT License, "),g=new V,v=P(),$=A("p"),y=O(X),b=P(),w=A("p"),k=O(Y),E=P(),_=A("hr"),C=P(),z=A("h2"),T=O(Q),M=O(": "),j=new V,q=O(", "),H=new V,R=P(),B=A("br"),N(n,"class","close svelte-1b7i60q"),N(d,"class","svelte-1b7i60q"),g.a=null,N(_,"class","svelte-1b7i60q"),j.a=q,H.a=null,N(i,"id","licenseContainer"),N(i,"class","svelte-1b7i60q"),N(t,"id","license"),N(t,"class","svelte-1b7i60q")},m(S,A){L(S,t,A),x(t,n),x(t,r),x(t,i),x(i,o),x(o,s),x(i,l),ee&&ee.m(i,null),x(i,a),ne.m(i,null),x(i,c),re&&re.m(i,null),x(i,u),x(i,d),x(i,p),x(i,h),x(h,f),x(h,m),g.m(e[4],h),x(i,v),x(i,$),x($,y),x(i,b),x(i,w),x(w,k),x(i,E),x(i,_),x(i,C),x(i,z),x(z,T),x(z,M),j.m(e[5],z),x(z,q),H.m(e[6],z),x(i,R),x(i,B),F=!0,G||(J=I(n,"click",e[10]),G=!0)},p(e,[t]){(!F||1&t)&&K!==(K=e[0]("license.armoriaLicense")+"")&&U(s,K),e[7].length&&ee.p(e,t),ne.p(e,t),4&t&&(Z=e[3](e[2])),Z?re?re.p(e,t):(re=dl(e),re.c(),re.m(i,u)):re&&(re.d(1),re=null),(!F||1&t)&&W!==(W=e[0]("license.code")+"")&&U(f,W),(!F||1&t)&&X!==(X=e[0]("license.textMain")+"")&&U(y,X),(!F||1&t)&&Y!==(Y=e[0]("license.textRest")+"")&&U(k,Y),(!F||1&t)&&Q!==(Q=e[0]("license.icons")+"")&&U(T,Q)},i(e){F||(le((()=>{D||(D=_e(t,si,{},!0)),D.run(1)})),F=!0)},o(e){D||(D=_e(t,si,{},!1)),D.run(0),F=!1},d(e){e&&S(t),ee&&ee.d(),ne.d(),re&&re.d(),e&&D&&D.end(),G=!1,J()}}}function hl(e,t,n){let r,i,o,s,l;c(e,or,(e=>n(0,r=e))),c(e,Jn,(e=>n(11,i=e))),c(e,Ln,(e=>n(12,o=e))),c(e,Ur,(e=>n(1,s=e))),c(e,Sr,(e=>n(2,l=e)));const a=Array.from(document.querySelectorAll("svg.coa")).map((e=>Array.from(e.querySelectorAll(".charge[charge]")).map((e=>e.getAttribute("charge"))))).flat(),u=r("license.noLicenseData"),d=r("license.noSourceData"),p=r("license.publicDomain"),h=r("license.fairUse"),f=ur("https://github.com/Azgaar/Armoria","Azgaar"),m=ur("https://creativecommons.org/licenses/by/4.0/","CC BY 4.0"),v=ur("https://fontawesome.com/license/free","Font Awesome"),$=(e,t)=>{const n=o?.[i]?.[e]?.[t];return n?r(`${e}.${t}`):t},y=[...new Set(a)].map((e=>{const t=document.getElementById(e),n=t.getAttribute("license"),r=function(e){return e?e.includes("publicdomain")?p:e.includes("by-nc-sa")?"CC BY-NC-SA":e.includes("by-nc-nd")?"CC BY-NC-ND":e.includes("by-nc")?"CC BY-NC":e.includes("by-nd")?"CC BY-ND":e.includes("by-sa")?"CC BY-SA":e.includes("by")?"CC BY":e.includes("Fair")?h:e:null}(n),i=t.getAttribute("source"),o=t.getAttribute("author")||(i?new URL(i).host:null),s=n&&r?ur(n,r):u,l=i?ur(i,o):o||d;return{charge:$("charges",e),license:s,source:l}})).sort(((e,t)=>e.license[e.license,e.source].join(","))))].length,w=b?y[0]:null;return[r,s,l,e=>["noldor","gondor","easterling","ironHills","urukHai","moriaOrc"].includes(e),f,m,v,y,b,w,()=>g(Ur,s.license=0,s)]}class fl extends Ne{constructor(e){super(),je(this,e,hl,pl,s,{})}}function ml(e){let t,n,r,i,o,s,l;return{c(){t=T("pattern"),n=T("path"),r=P(),i=T("g"),o=T("rect"),N(n,"d","M 100 0 L 0 0 0 100"),N(n,"fill","none"),N(n,"stroke","#000"),N(n,"opacity",".2"),N(n,"stroke-width",".5"),N(t,"id","gridPattern"),N(t,"width",e[2]),N(t,"height",e[2]),N(t,"patternUnits","userSpaceOnUse"),N(o,"x","-200"),N(o,"y","-200"),N(o,"width","400"),N(o,"height","400"),N(o,"fill","url(#gridPattern)"),N(i,"id","grid"),B(i,"pointer-events","none"),N(i,"transform",e[0]),N(i,"transform-origin","center")},m(e,s){L(e,t,s),x(t,n),L(e,r,s),L(e,i,s),x(i,o),l=!0},p(e,n){(!l||4&n)&&N(t,"width",e[2]),(!l||4&n)&&N(t,"height",e[2]),(!l||1&n)&&N(i,"transform",e[0])},i(e){l||(e&&le((()=>{s||(s=_e(i,si,{},!0)),s.run(1)})),l=!0)},o(e){e&&(s||(s=_e(i,si,{},!1)),s.run(0)),l=!1},d(e){e&&S(t),e&&S(r),e&&S(i),e&&s&&s.end()}}}function gl(e){let t,n=e[1]&&ml(e);return{c(){n&&n.c(),t=M()},m(e,r){n&&n.m(e,r),L(e,t,r)},p(e,[r]){e[1]?n?(n.p(e,r),2&r&&be(n,1)):(n=ml(e),n.c(),be(n,1),n.m(t.parentNode,t)):n&&($e(),we(n,1,1,(()=>{n=null})),ye())},i(e){be(n)},o(e){we(n)},d(e){n&&n.d(e),e&&S(t)}}}function vl(e,t,n){let r,i,o,s;return c(e,Ur,(e=>n(3,i=e))),c(e,jr,(e=>n(1,o=e))),c(e,Ir,(e=>n(2,s=e))),e.$$.update=()=>{8&e.$$.dirty&&n(0,r=i.transform||null)},[r,o,s,i]}class $l extends Ne{constructor(e){super(),je(this,e,vl,gl,s,{})}}function yl(e,t,n){const r=e.slice();return r[3]=t[n],r}function bl(e){let t,n,r,i,o,s=e[0],l=[];for(let t=0;t{r||(r=_e(n,si,{},!0)),r.run(1)})),o=!0)},o(e){e&&(r||(r=_e(n,si,{},!1)),r.run(0)),o=!1},d(e){e&&S(t),z(l,e),e&&r&&r.end()}}}function wl(e){let t,n,r,i,o,s,l,a,c,u,d=e[3][0]+"";return{c(){t=T("g"),n=T("circle"),o=T("text"),s=O(d),N(n,"cx",r=e[3][1][0]),N(n,"cy",i=e[3][1][1]),N(n,"r","3"),N(n,"class","svelte-lt1npm"),G(n,"active",e[1].positions.includes(e[3][0])),B(o,"dominant-baseline","central"),N(o,"x",l=e[3][1][0]),N(o,"y",a=e[3][1][1]),N(o,"class","svelte-lt1npm"),G(o,"active",e[1].positions.includes(e[3][0])),N(t,"id",c=e[3][0]),N(t,"class",u=m(El(e[3][0]))+" svelte-lt1npm")},m(e,r){L(e,t,r),x(t,n),x(t,o),x(o,s)},p(e,p){1&p&&r!==(r=e[3][1][0])&&N(n,"cx",r),1&p&&i!==(i=e[3][1][1])&&N(n,"cy",i),3&p&&G(n,"active",e[1].positions.includes(e[3][0])),1&p&&d!==(d=e[3][0]+"")&&U(s,d),1&p&&l!==(l=e[3][1][0])&&N(o,"x",l),1&p&&a!==(a=e[3][1][1])&&N(o,"y",a),3&p&&G(o,"active",e[1].positions.includes(e[3][0])),1&p&&c!==(c=e[3][0])&&N(t,"id",c),1&p&&u!==(u=m(El(e[3][0]))+" svelte-lt1npm")&&N(t,"class",u)},d(e){e&&S(t)}}}function kl(e){let t,n=e[1].positions&&bl(e);return{c(){n&&n.c(),t=M()},m(e,r){n&&n.m(e,r),L(e,t,r)},p(e,[r]){e[1].positions?n?(n.p(e,r),2&r&&be(n,1)):(n=bl(e),n.c(),be(n,1),n.m(t.parentNode,t)):n&&($e(),we(n,1,1,(()=>{n=null})),ye())},i(e){be(n)},o(e){we(n)},d(e){n&&n.d(e),e&&S(t)}}}function El(e){return"abcdefghi".includes(e)?"green":"ABCDEFGHIJKL".includes(e)?"red":"zy".includes(e)?"yellow":"blue"}function xl(e,t,n){let r,i,o;return c(e,Sr,(e=>n(2,i=e))),c(e,Ur,(e=>n(1,o=e))),e.$$.update=()=>{4&e.$$.dirty&&n(0,r=vr[i]?Object.entries(vr[i]):Object.entries(vr.spanish))},[r,o,i]}class _l extends Ne{constructor(e){super(),je(this,e,xl,kl,s,{})}}function Cl(e,t,n){const r=e.currentTarget,i=e.x,o=e.y,s=r.closest("svg").clientWidth/200;document.addEventListener("mouseup",(function(){document.removeEventListener("mousemove",f),document.removeEventListener("mousemove",m),document.removeEventListener("mousemove",g),document.body.style.cursor="auto",Dr.add(JSON.stringify(n))}),{once:!0});const{x:l=0,y:c=0,size:u=1}=t,d=a(Ir),p=r.querySelectorAll("use"),h=vr[a(Sr)]||vr.spanish;function f(e){const n=l+(e.x-i)/s,a=c+(e.y-o)/s;t.x=Math.round(n/d)*d,t.y=Math.round(a/d)*d,v(r,t)}function m(e){const n=c+(e.y-o)/s;t.size=Ll(u+n/-100),t.p?function(e){const t=[...new Set(e.p)].filter((e=>h[e]));t.forEach(((t,n)=>{const r=p[n];if(r){const n=zl(e,t,a(Sr));n?r.setAttribute("transform",n):r.removeAttribute("transform")}}))}(t):v(r,t)}function g(e){const n=l+100,i=c+100,o=e.x/s,a=e.y/s;let u=90+180*Math.atan2(a-i,o-n)/Math.PI;u>180&&(u=u%180-180),u<-179&&(u=u%180+180),t.angle=Math.round(u/d)*d,v(r,t)}function v(e,t){const n=Sl(t);n?e.setAttribute("transform",n):e.removeAttribute("transform")}e.shiftKey?(document.addEventListener("mousemove",m),document.body.style.cursor="ns-resize"):e.ctrlKey||e.metaKey?(document.addEventListener("mousemove",g),document.body.style.cursor="ew-resize"):(document.addEventListener("mousemove",f),document.body.style.cursor="move")}function Ll(e){return Math.round(100*e)/100}function Sl(e){let{x:t=0,y:n=0,angle:r=0,size:i=1,p:o}=e;o&&(i=1),1!==i&&(t=Ll(t+100-100*i),n=Ll(n+100-100*i));let s="";return(t||n)&&(s+=`translate(${t} ${n})`),r&&(s+=` rotate(${r} ${100*i} ${100*i})`),1!==i&&(s+=` scale(${i})`),s?s.trim():null}function zl(e,t,n){const r=vr[n]||vr.spanish,i=gr[n]||1,o=Ll((e.size||1)*i),s=e.sinister?-o:o,l=e.reversed?-o:o;let[a,c]=r[t];a=Ll(a-100*(s-1)),c=Ll(c-100*(l-1));const u=a||c?`translate(${a} ${c})`:null,d=1!==s||1!==l?s===l?`scale(${s})`:`scale(${s} ${l})`:null;return u&&d?`${u} ${d}`:u||(d||null)}const Al={straight:"m 0,100 v15 h 200 v -15 z",engrailed:"m 0,95 a 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 v 20 H 0 Z",invecked:"M0,102.5 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 v12.5 H0 z",embattled:"M 0,105 H 2.5 V 95 h 15 v 10 h 15 V 95 h 15 v 10 h 15 V 95 h 15 v 10 h 15 V 95 h 15 v 10 h 15 V 95 h 15 v 10 h 15 V 95 h 15 v 10 h 15 V 95 h 15 v 10 h 2.5 v 10 H 0 Z",wavy:"m 200,115 v -15 c -8.9,3.5 -16,3.1 -25,0 -8.9,-3.5 -16,-3.1 -25,0 -8.9,3.5 -16,3.2 -25,0 -8.9,-3.5 -16,-3.2 -25,0 -8.9,3.5 -16,3.1 -25,0 -8.9,-3.5 -16,-3.1 -25,0 -8.9,3.5 -16,3.2 -25,0 -8.9,-3.5 -16,-3.2 -25,0 v 15 z",raguly:"m 200,95 h -3 l -5,10 h -10 l 5,-10 h -10 l -5,10 h -10 l 5,-10 h -10 l -5,10 h -10 l 5,-10 h -10 l -5,10 h -10 l 5,-10 h -10 l -5,10 h -10 l 5,-10 H 97 l -5,10 H 82 L 87,95 H 77 l -5,10 H 62 L 67,95 H 57 l -5,10 H 42 L 47,95 H 37 l -5,10 H 22 L 27,95 H 17 l -5,10 H 2 L 7,95 H 0 v 20 h 200 z",dancetty:"m 0,105 10,-15 15,20 15,-20 15,20 15,-20 15,20 15,-20 15,20 15,-20 15,20 15,-20 15,20 15,-20 10,15 v 10 H 0 Z",dentilly:"M 180,105 170,95 v 10 L 160,95 v 10 L 150,95 v 10 L 140,95 v 10 L 130,95 v 10 L 120,95 v 10 L 110,95 v 10 L 100,95 v 10 L 90,95 v 10 L 80,95 v 10 L 70,95 v 10 L 60,95 v 10 L 50,95 v 10 L 40,95 v 10 L 30,95 v 10 L 20,95 v 10 L 10,95 v 10 L 0,95 v 20 H 200 V 105 L 190,95 v 10 L 180,95 Z",angled:"m 0,95 h 100 v 10 h 100 v 10 H 0 Z",urdy:"m 200,90 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,6 -5,-6 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,6 -5,-6 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 L 0,90 v 25 h 200",indented:"m 100,95 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 v 20 H 0 V 95 l 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 z",bevilled:"m 0,92.5 h 110 l -20,15 H 200 V 115 H 0 Z",nowy:"m 0,95 h 80 c 0,0 0.1,20.1 20,20 19.9,-0.1 20,-20 20,-20 h 80 v 20 H 0 Z",nowyReversed:"m 200,105 h -80 c 0,0 -0.1,-20.1 -20,-20 -19.9,0.1 -20,20 -20,20 H 0 v 10 h 200 z",potenty:"m 3,95 v 5 h 5 v 5 H 0 v 10 h 200 l 0.5,-10 H 193 v -5 h 5 v -5 h -15 v 5 h 5 v 5 h -15 v -5 h 5 v -5 h -15 v 5 h 5 v 5 h -15 v -5 h 5 v -5 h -15 v 5 h 5 v 5 h -15 v -5 h 5 v -5 h -15 v 5 h 5 v 5 h -15 v -5 h 5 v -5 h -15 v 5 h 5 v 5 H 100.5 93 v -5 h 5 V 95 H 83 v 5 h 5 v 5 H 73 v -5 h 5 V 95 H 63 v 5 h 5 v 5 H 53 v -5 h 5 V 95 H 43 v 5 h 5 v 5 H 33 v -5 h 5 V 95 H 23 v 5 h 5 v 5 H 13 v -5 h 5 v -5 z",potentyDexter:"m 200,105 h -2 v -10 0 0 h -10 v 5 h 5 v 5 H 183 V 95 h -10 v 5 h 5 v 5 H 168 V 95 h -10 v 5 h 5 v 5 H 153 V 95 h -10 v 5 h 5 v 5 H 138 V 95 h -10 v 5 h 5 v 5 H 123 V 95 h -10 v 5 h 5 v 5 h -10 v 0 0 -10 H 98 v 5 h 5 v 5 H 93 V 95 H 83 v 5 h 5 v 5 H 78 V 95 H 68 v 5 h 5 v 5 H 63 V 95 H 53 v 5 h 5 v 5 H 48 V 95 H 38 v 5 h 5 v 5 H 33 V 95 H 23 v 5 h 5 v 5 H 18 V 95 H 8 v 5 h 5 v 5 H 3 V 95 H 0 v 20 h 200 z",potentySinister:"m 2.5,95 v 10 H 0 v 10 h 202.5 v -15 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 z",embattledGhibellin:"M 200,200 V 100 l -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 v 15 h 200",embattledNotched:"m 200,105 h -5 V 95 l -5,5 -5,-5 v 10 h -5 V 95 l -5,5 -5,-5 v 10 h -5 V 95 l -5,5 -5,-5 v 10 h -5 V 95 l -5,5 -5,-5 v 10 h -5 V 95 l -5,5 -5,-5 v 10 h -5 V 95 l -5,5 -5,-5 v 10 h -5 V 95 l -5,5 -5,-5 v 10 H 90 V 95 l -5,5 -5,-5 v 10 H 75 V 95 l -5,5 -5,-5 v 10 H 60 V 95 l -5,5 -5,-5 v 10 H 45 V 95 l -5,5 -5,-5 v 10 H 30 V 95 l -5,5 -5,-5 v 10 H 15 V 95 l -5,5 -5,-5 v 10 H 0 v 10 h 200",embattledGrady:"m 0,95 v 20 H 200 V 95 h -2.5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 z",dovetailed:"m 200,95 h -7 l 4,10 h -14 l 4,-10 h -14 l 4,10 h -14 l 4,-10 h -14 l 4,10 h -14 l 4,-10 h -14 l 4,10 h -14 l 4,-10 h -14 l 4,10 h -14 l 4,-10 H 93 l 4,10 H 83 L 87,95 H 73 l 4,10 H 63 L 67,95 H 53 l 4,10 H 43 L 47,95 H 33 l 4,10 H 23 L 27,95 H 13 l 4,10 H 3 L 7,95 H 0 v 20 h 200",dovetailedIndented:"m 200,100 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 v 15 h 200",nebuly:"m 13.1,89.8 c -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.2,4.5 -7.3,4.5 -0.5,0 -2.2,-0.2 -2.2,-0.2 V 115 h 200 v -10.1 c -3.7,-0.2 -6.7,-2.2 -6.7,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.8,-1.9 1.8,-3.1 0,-2.5 -3.2,-4.5 -7.2,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.8,-1.9 1.8,-3.1 0,-2.5 -3.2,-4.5 -7.2,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 -1.5,4.1 -4.2,4.4 -8.8,4.5 -4.7,-0.1 -8.7,-1.5 -8.9,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 z",rayonne:"M0 115l-.1-6 .2.8c1.3-1 2.3-2.5 2.9-4.4.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4A9 9 0 015.5 90c-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 2.1 3.1 3.1 4.6 1 1.6 2.4 3.1 2.7 4.8.3 1.7.3 3.3 0 5.2 1.3-1 2.6-2.7 3.2-4.6.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.75 2.79 2.72 4.08 4.45 5.82L200 115z",seaWaves:"m 28.83,94.9 c -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.44,-3.6 3.6,-3.6 0.7,0 1.36,0.17 1.93,0.48 -0.33,-2.03 -2.19,-3.56 -4.45,-3.56 -4.24,0 -6.91,3.13 -8.5,5.13 V 115 h 200 v -14.89 c -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.2,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.21,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.21,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.2,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.44,-3.6 3.6,-3.6 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.21,-3.55 -4.46,-3.55 -4.25,0 -6.6,3.09 -8.19,5.09 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.21,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.2,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.2,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.21,-3.55 -4.46,-3.55 z",dragonTeeth:"M 9.4,85 C 6.5,88.1 4.1,92.9 3,98.8 1.9,104.6 2.3,110.4 3.8,115 2.4,113.5 0,106.6 0,109.3 v 5.7 h 200 v -5.7 c -1.1,-2.4 -2,-5.1 -2.6,-8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -1.4,-1.5 -2.8,-3.9 -3.8,-6.1 -1.1,-2.4 -2.3,-6.1 -2.6,-7.7 -0.2,-5.9 0.2,-11.7 1.7,-16.3 -3,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.8 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1,-5.8 -0.7,-11.6 0.9,-16.2 -3,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.8 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.8 -0.7,-11.6 0.9,-16.2 -3,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.8 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 C 63,95.4 63.4,89.6 64.9,85 c -2.9,3.1 -5.3,7.9 -6.3,13.8 -1.1,5.8 -0.7,11.6 0.8,16.2 -3,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.8 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1,5.8 -0.6,11.6 0.9,16.2 -3,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.8 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1,5.8 -0.7,11.6 0.9,16.2 -3,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.8 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.8 -0.7,11.6 0.9,16.2 -3,-3.1 -5.3,-7.9 -6.4,-13.8 C 18.6,95.4 19,89.6 20.5,85 17.6,88.1 15.2,92.9 14.1,98.8 13,104.6 13.4,110.4 14.9,115 12,111.9 9.6,107.1 8.6,101.2 7.5,95.4 7.9,89.6 9.4,85 Z",firTrees:"m 3.9,90 -4,7 2,-0.5 L 0,100 v 15 h 200 v -15 l -1.9,-3.5 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4.1,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4.1,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 z",flechy:"m 0,100 h 85 l 15,-15 15,15 h 85 v 15 H 0 Z",barby:"m 0,100 h 85 l 15,15 15,-15 h 85 v 15 H 0 Z",enclavy:"M 0,100 H 85 V 85 h 30 v 15 h 85 v 15 H 0 Z",escartely:"m 0,100 h 85 v 15 h 30 v -15 h 85 v 15 H 0 Z",arched:"m 100,95 c 40,-0.2 100,20 100,20 H 0 c 0,0 60,-19.8 100,-20 z",archedReversed:"m 0,85 c 0,0 60,20.2 100,20 40,-0.2 100,-20 100,-20 v 30 H 0 Z"},Tl={perFess:' ',perPale:' ',perBend:' ',perBendSinister:' ',perChevron:' ',perChevronReversed:' ',perCross:' ',perPile:' ',perSaltire:' ',gyronny:' ',chevronny:' ',perFessLined:e=>` `,perPaleLined:e=>` `,perBendLined:e=>` `,perBendSinisterLined:e=>` `,perChevronLined:e=>` `,perChevronReversedLined:e=>` `,perCrossLined:e=>` `,perPileLined:e=>` `,fess:' ',pale:' ',bend:' ',bendSinister:' ',chief:' ',bar:' ',gemelle:' ',fessCotissed:' ',fessDoubleCotissed:' ',bendlet:' ',bendletSinister:' ',terrace:' ',cross:' ',crossParted:' ',saltire:' ',saltireParted:' ',mount:' ',point:' ',flaunches:' ',gore:' ',pall:' ',pallReversed:' ',chevron:' ',chevronReversed:' ',gyron:' ',quarter:' ',canton:' ',pile:' ',pileInBend:' ',pileInBendSinister:' ',piles:' ',pilesInPoint:' ',label:' ',fessLined:e=>` `,paleLined:e=>` `,bendLined:e=>` `,bendSinisterLined:e=>` `,chiefLined:e=>` `,barLined:e=>` `,gemelleLined:e=>` `,fessCotissedLined:e=>` `,fessDoubleCotissedLined:e=>` `,bendletLined:e=>` `,bendletSinisterLined:e=>` `,terraceLined:e=>` `,crossLined:e=>` `,crossPartedLined:e=>` `,saltireLined:e=>` `,saltirePartedLined:e=>` `},Ol={semy:(e,t,n,r,i)=>` `,vair:(e,t,n,r)=>` `,counterVair:(e,t,n,r)=>` `,vairInPale:(e,t,n,r)=>` `,vairEnPointe:(e,t,n,r)=>` `,vairAncien:(e,t,n,r)=>` `,potent:(e,t,n,r)=>` `,counterPotent:(e,t,n,r)=>` `,potentInPale:(e,t,n,r)=>` `,potentEnPointe:(e,t,n,r)=>` `,ermine:(e,t,n,r)=>` `,chequy:(e,t,n,r)=>` `,lozengy:(e,t,n,r)=>` `,fusily:(e,t,n,r)=>` `,pally:(e,t,n,r)=>` `,barry:(e,t,n,r)=>` `,gemelles:(e,t,n,r)=>` `,bendy:(e,t,n,r)=>` `,bendySinister:(e,t,n,r)=>` `,palyBendy:(e,t,n,r)=>` `,barryBendy:(e,t,n,r)=>` `,pappellony:(e,t,n,r)=>` `,pappellony2:(e,t,n,r)=>` `,scaly:(e,t,n,r)=>` `,plumetty:(e,t,n,r)=>` `,masoned:(e,t,n,r)=>` `,fretty:(e,t,n,r)=>` `,grillage:(e,t,n,r)=>` `,chainy:(e,t,n,r)=>` `,maily:(e,t,n,r)=>` `,honeycombed:(e,t,n,r)=>` `},Pl=document.getElementById("charges"),Ml=a(zr),Il={},jl=(e,t)=>{const n=e+"Lined";if(!t||"straight"===t||!Tl[n])return Tl[e];const r=Al[t];return Tl[n](r)},Nl=e=>{if(!e)return console.error("No patternId");if(document.getElementById(e))return;const[t,n,r,i]=e.split("-"),o=!!/^semy/.test(s=e)&&s.match(/semy_of_(.*?)-/)[1];var s;o&&Hl(o);const l=Ol[o?"semy":t](e,Ul(n),Ul(r),function(e){return"small"===e?.8:"smaller"===e?.5:"smallest"===e?.25:"big"===e?1.6:"bigger"===e?2:1}(i),o);document.getElementById("patterns").insertAdjacentHTML("beforeend",l)};function ql(e){e?.includes("-")&&Nl(e)}function Hl(e){"inescutcheon"===e.slice(0,12)?function(e){const t=e.length>12?e.slice(12,13).toLowerCase()+e.slice(13):a(Sr),n=e.length>12?e:"inescutcheon"+t.charAt(0).toUpperCase()+t.slice(1);if(Il[n])return;Il[n]=!0;const r=["noldor","gondor","easterling","ironHills","urukHai","moriaOrc"].includes(t)?'author="Weta Workshop" source="www.wetanz.com" license="https://en.wikipedia.org/wiki/Fair_use"':'author=Azgaar license="https://creativecommons.org/publicdomain/zero/1.0"',i=` `;Pl.insertAdjacentHTML("beforeend",i)}(e):function(e){if(Il[e])return;Il[e]=!0,fetch("charges/"+e+".svg").then((e=>{if(e.ok)return e.text();throw new Error("Cannot fetch charge")})).then((e=>{const t=document.createElement("html");t.innerHTML=e;const n=t.querySelector("g"),r=t.getElementsByTagName("metadata")[0];if(r){const e=r.getAttribute("author"),t=r.getAttribute("source"),i=r.getAttribute("license");e&&n.setAttribute("author",e),t&&n.setAttribute("source",t),i&&n.setAttribute("license",i)}Pl.insertAdjacentHTML("beforeend",n.outerHTML)})).catch((e=>console.error(e)))}(e)}function Ul(e){if(!Ml[e])throw new Error(`Tincture ${e} is not found`);return Ml[e]}function Rl(e){let t,n,r,i,o=jl(e[0].ordinary,e[0].line)+"";return{c(){t=T("g"),N(t,"class","ordinary"),N(t,"i",e[1]),N(t,"transform",n=Sl(e[0])),N(t,"fill",e[3]),N(t,"stroke",e[4]),N(t,"stroke-width",e[5])},m(n,s){L(n,t,s),t.innerHTML=o,r||(i=I(t,"mousedown",e[6]),r=!0)},p(e,r){1&r&&o!==(o=jl(e[0].ordinary,e[0].line)+"")&&(t.innerHTML=o),2&r&&N(t,"i",e[1]),1&r&&n!==(n=Sl(e[0]))&&N(t,"transform",n),8&r&&N(t,"fill",e[3]),16&r&&N(t,"stroke",e[4]),32&r&&N(t,"stroke-width",e[5])},d(e){e&&S(t),r=!1,i()}}}function Bl(e){let t,n,r,i,o;return{c(){t=T("g"),n=T("path"),N(n,"d",e[2]),N(n,"fill","none"),N(n,"stroke",e[3]),N(n,"stroke-width","5%"),N(n,"transform","translate(15 15) scale(.85)"),N(t,"class","ordinary"),N(t,"i",e[1]),N(t,"transform",r=Sl(e[0]))},m(r,s){L(r,t,s),x(t,n),i||(o=I(t,"mousedown",e[6]),i=!0)},p(e,i){4&i&&N(n,"d",e[2]),8&i&&N(n,"stroke",e[3]),2&i&&N(t,"i",e[1]),1&i&&r!==(r=Sl(e[0]))&&N(t,"transform",r)},d(e){e&&S(t),i=!1,o()}}}function Dl(e){let t,n,r,i,o;return{c(){t=T("g"),n=T("path"),N(n,"d",e[2]),N(n,"fill","none"),N(n,"stroke",e[3]),N(n,"stroke-width","16.7%"),N(t,"class","ordinary"),N(t,"i",e[1]),N(t,"transform",r=Sl(e[0]))},m(r,s){L(r,t,s),x(t,n),i||(o=I(t,"mousedown",e[6]),i=!0)},p(e,i){4&i&&N(n,"d",e[2]),8&i&&N(n,"stroke",e[3]),2&i&&N(t,"i",e[1]),1&i&&r!==(r=Sl(e[0]))&&N(t,"transform",r)},d(e){e&&S(t),i=!1,o()}}}function Fl(t){let n;function r(e,t){return"bordure"===e[0].ordinary?Dl:"orle"===e[0].ordinary?Bl:Rl}let i=r(t),o=i(t);return{c(){o.c(),n=M()},m(e,t){o.m(e,t),L(e,n,t)},p(e,[t]){i===(i=r(e))&&o?o.p(e,t):(o.d(1),o=i(e),o&&(o.c(),o.m(n.parentNode,n)))},i:e,o:e,d(e){o.d(e),e&&S(n)}}}function Gl(e,t,n){let r,i,{coa:o,ordinary:s,i:l,shieldPath:a,t:c,type:u}=t;return e.$$set=e=>{"coa"in e&&n(7,o=e.coa),"ordinary"in e&&n(0,s=e.ordinary),"i"in e&&n(1,l=e.i),"shieldPath"in e&&n(2,a=e.shieldPath),"t"in e&&n(3,c=e.t),"type"in e&&n(8,u=e.type)},e.$$.update=()=>{1&e.$$.dirty&&(n(4,r=s.stroke||"none"),n(5,i=s.strokeWidth||1))},[s,l,a,c,r,i,function(e){"Edit"===u&&Cl(e,s,o)},o,u]}class Vl extends Ne{constructor(e){super(),je(this,e,Gl,Fl,s,{coa:7,ordinary:0,i:1,shieldPath:2,t:3,type:8})}}function Jl(e,t,n){const r=e.slice();return r[11]=t[n],r}function Kl(e){let t,n,r;return{c(){t=T("use"),q(t,"xlink:href",n="#"+e[6]),N(t,"transform",r=zl(e[0],e[11],e[2]))},m(e,n){L(e,t,n)},p(e,i){64&i&&n!==(n="#"+e[6])&&q(t,"xlink:href",n),133&i&&r!==(r=zl(e[0],e[11],e[2]))&&N(t,"transform",r)},d(e){e&&S(t)}}}function Zl(t){let n,r,i,o,s,l=t[7],a=[];for(let e=0;e{"coa"in e&&n(9,o=e.coa),"charge"in e&&n(0,s=e.charge),"i"in e&&n(1,l=e.i),"shield"in e&&n(2,a=e.shield),"t"in e&&n(3,c=e.t),"t2"in e&&n(4,u=e.t2),"t3"in e&&n(5,d=e.t3),"type"in e&&n(10,p=e.type)},e.$$.update=()=>{if(5&e.$$.dirty){const e=vr[a]||vr.spanish;n(7,i=[...new Set(s.p)].filter((t=>e[t])))}69&e.$$.dirty&&(n(6,r=s.charge),"inescutcheon"===r&&n(6,r="inescutcheon"+a.charAt(0).toUpperCase()+a.slice(1)))},[s,l,a,c,u,d,r,i,function(e){"Edit"===p&&Cl(e,s,o)},o,p]}class Xl extends Ne{constructor(e){super(),je(this,e,Wl,Zl,s,{coa:9,charge:0,i:1,shield:2,t:3,t2:4,t3:5,type:10})}}function Yl(e,t,n){const r=e.slice();return r[20]=t[n],r[22]=n,r}function Ql(e,t,n){const r=e.slice();return r[23]=t[n],r[22]=n,r}function ea(e,t,n){const r=e.slice();return r[20]=t[n],r[22]=n,r}function ta(e,t,n){const r=e.slice();return r[20]=t[n],r[22]=n,r}function na(e,t,n){const r=e.slice();return r[23]=t[n],r[22]=n,r}function ra(e,t,n){const r=e.slice();return r[20]=t[n],r[22]=n,r}function ia(e,t,n){const r=e.slice();return r[20]=t[n],r[22]=n,r}function oa(e,t,n){const r=e.slice();return r[23]=t[n],r[22]=n,r}function sa(e,t,n){const r=e.slice();return r[20]=t[n],r[22]=n,r}function la(e){let t,n;return t=new Vl({props:{coa:e[0],ordinary:e[20],i:e[22],shieldPath:e[9],t:e[6](e[11].t),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),512&n[0]&&(r.shieldPath=e[9]),64&n[0]&&(r.t=e[6](e[11].t)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function aa(e){let t,n;return t=new Vl({props:{coa:e[0],ordinary:e[20],i:e[22],shieldPath:e[9],t:e[6](e[20].t),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),512&n[0]&&(r.shieldPath=e[9]),64&n[0]&&(r.t=e[6](e[20].t)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function ca(e){let t,n,r,i;const o=[aa,la],s=[];return~(t=function(e,t){return"field"===e[20].divided?0:"counter"===e[20].divided?1:-1}(e))&&(n=s[t]=o[t](e)),{c(){n&&n.c(),r=M()},m(e,n){~t&&s[t].m(e,n),L(e,r,n),i=!0},p(e,t){n&&n.p(e,t)},i(e){i||(be(n),i=!0)},o(e){we(n),i=!1},d(e){~t&&s[t].d(e),e&&S(r)}}}function ua(e){let t,n;return{c(){t=T("rect"),N(t,"class","diaper"),N(t,"x","0"),N(t,"y","0"),N(t,"width","200"),N(t,"height","200"),N(t,"fill",n="url(#"+e[4]+")"),B(t,"pointer-events","none")},m(e,n){L(e,t,n)},p(e,r){16&r[0]&&n!==(n="url(#"+e[4]+")")&&N(t,"fill",n)},d(e){e&&S(t)}}}function da(e){let t,n;return t=new Xl({props:{coa:e[0],charge:e[23],i:e[22],shield:e[5],t:e[6](e[11].t),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),32&n[0]&&(r.shield=e[5]),64&n[0]&&(r.t=e[6](e[11].t)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function pa(e){let t,n;return t=new Xl({props:{coa:e[0],charge:e[23],i:e[22],shield:e[5],t:e[6](e[23].t),t2:e[6](e[23].t2),t3:e[6](e[23].t3),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),32&n[0]&&(r.shield=e[5]),64&n[0]&&(r.t=e[6](e[23].t)),64&n[0]&&(r.t2=e[6](e[23].t2)),64&n[0]&&(r.t3=e[6](e[23].t3)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function ha(e){let t,n,r,i;const o=[pa,da],s=[];return~(t=function(e,t){return"field"===e[23].divided?0:"counter"===e[23].divided?1:-1}(e))&&(n=s[t]=o[t](e)),{c(){n&&n.c(),r=M()},m(e,n){~t&&s[t].m(e,n),L(e,r,n),i=!0},p(e,t){n&&n.p(e,t)},i(e){i||(be(n),i=!0)},o(e){we(n),i=!1},d(e){~t&&s[t].d(e),e&&S(r)}}}function fa(e){let t,n;return t=new Vl({props:{coa:e[0],ordinary:e[20],i:e[22],shieldPath:e[9],t:e[6](e[11].t),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),512&n[0]&&(r.shieldPath=e[9]),64&n[0]&&(r.t=e[6](e[11].t)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function ma(e){let t,n;return t=new Vl({props:{coa:e[0],ordinary:e[20],i:e[22],shieldPath:e[9],t:e[6](e[20].t),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),512&n[0]&&(r.shieldPath=e[9]),64&n[0]&&(r.t=e[6](e[20].t)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function ga(e){let t,n,r,i;const o=[ma,fa],s=[];return~(t=function(e,t){return"field"===e[20].divided?0:"counter"===e[20].divided?1:-1}(e))&&(n=s[t]=o[t](e)),{c(){n&&n.c(),r=M()},m(e,n){~t&&s[t].m(e,n),L(e,r,n),i=!0},p(e,t){n&&n.p(e,t)},i(e){i||(be(n),i=!0)},o(e){we(n),i=!1},d(e){~t&&s[t].d(e),e&&S(r)}}}function va(e){let t,n;return t=new Vl({props:{coa:e[0],ordinary:e[20],i:e[22],shieldPath:e[9],t:e[6](e[0].t1),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),512&n[0]&&(r.shieldPath=e[9]),65&n[0]&&(r.t=e[6](e[0].t1)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function $a(e){let t,n;return t=new Vl({props:{coa:e[0],ordinary:e[20],i:e[22],shieldPath:e[9],t:e[6](e[20].t),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),512&n[0]&&(r.shieldPath=e[9]),64&n[0]&&(r.t=e[6](e[20].t)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function ya(e){let t,n,r,i;const o=[$a,va],s=[];return~(t=function(e,t){return"division"===e[20].divided?0:"counter"===e[20].divided?1:-1}(e))&&(n=s[t]=o[t](e)),{c(){n&&n.c(),r=M()},m(e,n){~t&&s[t].m(e,n),L(e,r,n),i=!0},p(e,t){n&&n.p(e,t)},i(e){i||(be(n),i=!0)},o(e){we(n),i=!1},d(e){~t&&s[t].d(e),e&&S(r)}}}function ba(e){let t,n;return{c(){t=T("rect"),N(t,"class","diaper"),N(t,"x","0"),N(t,"y","0"),N(t,"width","200"),N(t,"height","200"),N(t,"fill",n="url(#"+e[4]+")"),B(t,"pointer-events","none")},m(e,n){L(e,t,n)},p(e,r){16&r[0]&&n!==(n="url(#"+e[4]+")")&&N(t,"fill",n)},d(e){e&&S(t)}}}function wa(e){let t,n;return t=new Xl({props:{coa:e[0],charge:e[23],i:e[22],shield:e[5],t:e[6](e[0].t1),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),32&n[0]&&(r.shield=e[5]),65&n[0]&&(r.t=e[6](e[0].t1)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function ka(e){let t,n;return t=new Xl({props:{coa:e[0],charge:e[23],i:e[22],shield:e[5],t:e[6](e[23].t),t2:e[6](e[23].t2),t3:e[6](e[23].t3),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),32&n[0]&&(r.shield=e[5]),64&n[0]&&(r.t=e[6](e[23].t)),64&n[0]&&(r.t2=e[6](e[23].t2)),64&n[0]&&(r.t3=e[6](e[23].t3)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Ea(e){let t,n,r,i;const o=[ka,wa],s=[];return~(t=function(e,t){return"division"===e[23].divided?0:"counter"===e[23].divided?1:-1}(e))&&(n=s[t]=o[t](e)),{c(){n&&n.c(),r=M()},m(e,n){~t&&s[t].m(e,n),L(e,r,n),i=!0},p(e,t){n&&n.p(e,t)},i(e){i||(be(n),i=!0)},o(e){we(n),i=!1},d(e){~t&&s[t].d(e),e&&S(r)}}}function xa(e){let t,n;return t=new Vl({props:{coa:e[0],ordinary:e[20],i:e[22],shieldPath:e[9],t:e[6](e[0].t1),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),512&n[0]&&(r.shieldPath=e[9]),65&n[0]&&(r.t=e[6](e[0].t1)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function _a(e){let t,n;return t=new Vl({props:{coa:e[0],ordinary:e[20],i:e[22],shieldPath:e[9],t:e[6](e[20].t),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),512&n[0]&&(r.shieldPath=e[9]),64&n[0]&&(r.t=e[6](e[20].t)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Ca(e){let t,n,r,i;const o=[_a,xa],s=[];return~(t=function(e,t){return"division"===e[20].divided?0:"counter"===e[20].divided?1:-1}(e))&&(n=s[t]=o[t](e)),{c(){n&&n.c(),r=M()},m(e,n){~t&&s[t].m(e,n),L(e,r,n),i=!0},p(e,t){n&&n.p(e,t)},i(e){i||(be(n),i=!0)},o(e){we(n),i=!1},d(e){~t&&s[t].d(e),e&&S(r)}}}function La(e){let t,n,r=!e[20].divided&&function(e){let t,n;return t=new Vl({props:{coa:e[0],ordinary:e[20],i:e[22],shieldPath:e[9],t:e[6](e[20].t),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),512&n[0]&&(r.shieldPath=e[9]),64&n[0]&&(r.t=e[6](e[20].t)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}(e);return{c(){r&&r.c(),t=M()},m(e,i){r&&r.m(e,i),L(e,t,i),n=!0},p(e,t){e[20].divided||r.p(e,t)},i(e){n||(be(r),n=!0)},o(e){we(r),n=!1},d(e){r&&r.d(e),e&&S(t)}}}function Sa(e){let t,n;return{c(){t=T("rect"),N(t,"class","diaper"),N(t,"x","0"),N(t,"y","0"),N(t,"width","200"),N(t,"height","200"),N(t,"fill",n="url(#"+e[4]+")"),B(t,"pointer-events","none")},m(e,n){L(e,t,n)},p(e,r){16&r[0]&&n!==(n="url(#"+e[4]+")")&&N(t,"fill",n)},d(e){e&&S(t)}}}function za(e){let t,n,r=(!e[23].divided||!e[11])&&function(e){let t,n;return t=new Xl({props:{coa:e[0],charge:e[23],i:e[22],shield:e[5],t:e[6](e[23].t),t2:e[6](e[23].t2),t3:e[6](e[23].t3),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),32&n[0]&&(r.shield=e[5]),64&n[0]&&(r.t=e[6](e[23].t)),64&n[0]&&(r.t2=e[6](e[23].t2)),64&n[0]&&(r.t3=e[6](e[23].t3)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}(e);return{c(){r&&r.c(),t=M()},m(e,i){r&&r.m(e,i),L(e,t,i),n=!0},p(e,t){e[23].divided&&e[11]||r.p(e,t)},i(e){n||(be(r),n=!0)},o(e){we(r),n=!1},d(e){r&&r.d(e),e&&S(t)}}}function Aa(e){let t,n,r=!e[20].divided&&function(e){let t,n;return t=new Vl({props:{coa:e[0],ordinary:e[20],i:e[22],shieldPath:e[9],t:e[6](e[20].t),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),512&n[0]&&(r.shieldPath=e[9]),64&n[0]&&(r.t=e[6](e[20].t)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}(e);return{c(){r&&r.c(),t=M()},m(e,i){r&&r.m(e,i),L(e,t,i),n=!0},p(e,t){e[20].divided||r.p(e,t)},i(e){n||(be(r),n=!0)},o(e){we(r),n=!1},d(e){r&&r.d(e),e&&S(t)}}}function Ta(t){let n,r,i,o,s,l,a,c,u,d,p,h,f,m,g,v,$=t[11]&&"no"!==t[11].division&&function(t){let n,r,i=jl(t[11].division,t[11].line)+"";return{c(){n=T("clipPath"),N(n,"id",r="division_"+t[10])},m(e,t){L(e,n,t),n.innerHTML=i},p:e,d(e){e&&S(n)}}}(t),y=t[11]&&"no"!==t[11].division&&function(e){let t,n,r,i,o,s,l,a,c,u,d,p=e[13],h=[];for(let t=0;twe(h[e],1,1,(()=>{h[e]=null}));let m="field"===e[8]&&ua(e),g=e[12],v=[];for(let t=0;twe(v[e],1,1,(()=>{v[e]=null}));let y=e[14],b=[];for(let t=0;twe(b[e],1,1,(()=>{b[e]=null}));let k=e[13],E=[];for(let t=0;twe(E[e],1,1,(()=>{E[e]=null}));let C="division"===e[8]&&ba(e),A=e[12],O=[];for(let t=0;twe(O[e],1,1,(()=>{O[e]=null}));let I=e[14],j=[];for(let t=0;twe(j[e],1,1,(()=>{j[e]=null}));return{c(){for(let e=0;ewe(w[e],1,1,(()=>{w[e]=null}));let E="overall"===t[8]&&Sa(t),_=t[12],C=[];for(let e=0;e<_.length;e+=1)C[e]=za(Ql(t,_,e));const A=e=>we(C[e],1,1,(()=>{C[e]=null}));let I=t[14],j=[];for(let e=0;ewe(j[e],1,1,(()=>{j[e]=null}));return{c(){n=T("defs"),r=T("clipPath"),i=T("path"),$&&$.c(),o=T("style"),s=O("g.secondary,\n path.secondary {\n fill: var(--secondary);\n }\n g.tertiary,\n path.tertiary {\n fill: var(--tertiary);\n }"),l=P(),a=T("g"),c=T("rect"),y&&y.c(),d=M();for(let e=0;en(15,a=e))),c(e,Cr,(e=>n(16,u=e))),c(e,Lr,(e=>n(17,d=e))),c(e,Sr,(e=>n(5,p=e)));let{coa:h}=t,{border:f}=t,{borderWidth:m}=t,{type:g}=t;const v=h.seed||Math.floor(1e9*Math.random()),{division:$,ordinaries:y=[],charges:b=[]}=h,w=y.filter((e=>!e.above)),k=y.filter((e=>e.above));return b.forEach((({charge:e})=>Hl(e))),e.$$set=e=>{"coa"in e&&n(0,h=e.coa),"border"in e&&n(1,f=e.border),"borderWidth"in e&&n(2,m=e.borderWidth),"type"in e&&n(3,g=e.type)},e.$$.update=()=>{32&e.$$.dirty[0]&&n(9,r=fr[p]),131081&e.$$.dirty[0]&&n(4,i="menuItem"===g?null:h.diaper||d),16&e.$$.dirty[0]&&n(8,o=function(e){if(!e||"no"===e)return null;const t=!h.t1.includes("-"),n=!$?.t.includes("-");return t&&n?"overall":t?"field":n?"division":null}(i)),65536&e.$$.dirty[0]&&n(7,s=u&&"no"!==u?`url(#${u})`:"none"),32768&e.$$.dirty[0]&&n(6,l=e=>e?a[e]?a[e]:(Nl(e),"url(#"+e+")"):null)},[h,f,m,g,i,p,l,s,o,r,v,$,b,w,k,a,u,d]}class Pa extends Ne{constructor(e){super(),je(this,e,Oa,Ta,s,{coa:0,border:1,borderWidth:2,type:3},null,[-1,-1])}}function Ma(e){let t,n,r,i;n=new Pa({props:{coa:e[0],border:e[5],borderWidth:e[6],type:e[1]}});let o=e[7]&&function(e){let t,n,r;return t=new $l({}),n=new _l({}),{c(){Oe(t.$$.fragment),Oe(n.$$.fragment)},m(e,i){Pe(t,e,i),Pe(n,e,i),r=!0},i(e){r||(be(t.$$.fragment,e),be(n.$$.fragment,e),r=!0)},o(e){we(t.$$.fragment,e),we(n.$$.fragment,e),r=!1},d(e){Me(t,e),Me(n,e)}}}();return{c(){t=T("svg"),Oe(n.$$.fragment),o&&o.c(),N(t,"id",r="coa"+e[1]),N(t,"class","coa"),N(t,"width",e[2]),N(t,"height",e[3]),N(t,"viewBox",e[4]),N(t,"xmlns","http://www.w3.org/2000/svg"),N(t,"xmlns:xlink","http://www.w3.org/1999/xlink"),N(t,"xmlns:dc","http://purl.org/dc/elements/1.1/"),N(t,"xmlns:rdf","http://www.w3.org/1999/02/22-rdf-syntax-ns#")},m(e,r){L(e,t,r),Pe(n,t,null),o&&o.m(t,null),i=!0},p(e,[o]){const s={};1&o&&(s.coa=e[0]),32&o&&(s.border=e[5]),64&o&&(s.borderWidth=e[6]),2&o&&(s.type=e[1]),n.$set(s),(!i||2&o&&r!==(r="coa"+e[1]))&&N(t,"id",r),(!i||4&o)&&N(t,"width",e[2]),(!i||8&o)&&N(t,"height",e[3]),(!i||16&o)&&N(t,"viewBox",e[4])},i(e){i||(be(n.$$.fragment,e),be(o),i=!0)},o(e){we(n.$$.fragment,e),we(o),i=!1},d(e){e&&S(t),Me(n),o&&o.d()}}}function Ia(e,t,n){let r,i,o,s;c(e,Sr,(e=>n(8,i=e))),c(e,Pr,(e=>n(5,o=e))),c(e,Mr,(e=>n(6,s=e)));let{coa:l}=t,{i:a}=t,{width:u="100%"}=t,{height:d="100%"}=t;const p="Edit"===a;return e.$$set=e=>{"coa"in e&&n(0,l=e.coa),"i"in e&&n(1,a=e.i),"width"in e&&n(2,u=e.width),"height"in e&&n(3,d=e.height)},e.$$.update=()=>{256&e.$$.dirty&&n(4,r=mr[i]||"0 0 200 200")},[l,a,u,d,r,o,s,p,i]}class ja extends Ne{constructor(e){super(),je(this,e,Ia,Ma,s,{coa:0,i:1,width:2,height:3})}}const Na=["a","b","c","d","e","f","g","h","i","y","z","kn","bh","df","pq","jo","lm","abc","def","ghi","adg","beh","cfi","jeo","jln","kmo","peq","lem","bhdf","jleh","acegi","bdefh","kenpq","abcpqh","abcdefgzi","ABCDEFGHIJKL"],qa={conventional:{e:20,abcdefgzi:3,beh:3,behdf:2,acegi:1,kn:3,bhdf:1,jeo:1,abc:3,jln:6,jlh:3,kmo:2,jleh:1,def:3,abcpqh:4,ABCDEFGHIJKL:1},complex:{e:40,beh:1,kn:1,jeo:1,abc:2,jln:7,jlh:2,def:1,abcpqh:1},divisions:{perPale:{e:15,pq:5,jo:2,jl:2,ABCDEFGHIJKL:1},perFess:{e:12,kn:4,jkl:2,gizgiz:1,jlh:3,kmo:1,ABCDEFGHIJKL:1},perBend:{e:5,lm:5,bcfdgh:1},perBendSinister:{e:1,jo:1},perCross:{e:4,jlmo:1,j:1,jo:2,jl:1},perChevron:{e:1,jlh:1,dfk:1,dfbh:2,bdefh:1},perChevronReversed:{e:1,mok:2,dfh:2,dfbh:1,bdefh:1},perSaltire:{bhdf:8,e:3,abcdefgzi:1,bh:1,df:1,ABCDEFGHIJKL:1},perPile:{ee:3,be:2,abceh:1,abcabc:1,jleh:1}},inescutcheon:{e:4,jln:1}},Ha={straight:50,wavy:8,engrailed:4,invecked:3,rayonne:3,embattled:1,raguly:1,urdy:1,dancetty:1,indented:2,dentilly:1,bevilled:1,angled:1,flechy:1,barby:1,enclavy:1,escartely:1,arched:2,archedReversed:1,nowy:1,nowyReversed:1,embattledGhibellin:1,embattledNotched:1,embattledGrady:1,dovetailedIndented:1,dovetailed:1,potenty:1,potentyDexter:1,potentySinister:1,nebuly:2,seaWaves:1,dragonTeeth:1,firTrees:1},Ua={variants:{perPale:5,perFess:5,perBend:2,perBendSinister:1,perChevron:1,perChevronReversed:1,perCross:5,perPile:1,perSaltire:1,gyronny:1,chevronny:1},perPale:Ha,perFess:Ha,perBend:Ha,perBendSinister:Ha,perChevron:Ha,perChevronReversed:Ha,perCross:{straight:20,wavy:5,engrailed:4,invecked:3,rayonne:1,embattled:1,raguly:1,urdy:1,indented:2,dentilly:1,bevilled:1,angled:1,embattledGhibellin:1,embattledGrady:1,dovetailedIndented:1,dovetailed:1,potenty:1,potentyDexter:1,potentySinister:1,nebuly:1},perPile:Ha},Ra={lined:{pale:7,fess:5,bend:3,bendSinister:2,chief:5,bar:2,gemelle:1,fessCotissed:1,fessDoubleCotissed:1,bendlet:2,bendletSinister:1,terrace:3,cross:6,crossParted:1,saltire:2,saltireParted:1},straight:{bordure:8,orle:4,mount:1,point:2,flaunches:1,gore:1,gyron:1,quarter:1,canton:2,pall:3,pallReversed:2,chevron:4,chevronReversed:3,pile:2,pileInBend:2,pileInBendSinister:1,piles:1,pilesInPoint:2,label:1},data:{bar:{positionsOn:{defdefdef:1},positionsOff:{abc:2,abcgzi:1,jlh:5,bgi:2,ach:1}},bend:{positionsOn:{ee:2,jo:1,joe:1},positionsOff:{ccg:2,ccc:1}},bendSinister:{positionsOn:{ee:1,lm:1,lem:4},positionsOff:{aai:2,aaa:1}},bendlet:{positionsOn:{joejoejoe:1},positionsOff:{ccg:2,ccc:1}},bendletSinister:{positionsOn:{lemlemlem:1},positionsOff:{aai:2,aaa:1}},bordure:{positionsOn:{ABCDEFGHIJKL:1},positionsOff:{e:4,jleh:2,kenken:1,peqpeq:1}},canton:{positionsOn:{yyyy:1},positionsOff:{e:5,beh:1,def:1,bdefh:1,kn:1}},chevron:{positionsOn:{ach:3,hhh:1}},chevronReversed:{positionsOff:{bbb:1}},chief:{positionsOn:{abc:5,bbb:1},positionsOff:{emo:2,emoz:1,ez:2}},cross:{positionsOn:{eeee:1,behdfbehdf:3,behbehbeh:2},positionsOff:{acgi:1}},crossParted:{positionsOn:{e:5,ee:1}},fess:{positionsOn:{ee:1,def:3},positionsOff:{abc:3,abcz:1}},fessCotissed:{positionsOn:{ee:1,def:3}},fessDoubleCotissed:{positionsOn:{ee:1,defdef:3}},flaunches:{positionsOff:{e:3,kn:1,beh:3}},gemelle:{positionsOff:{abc:1}},gyron:{positionsOff:{bh:1}},label:{positionsOff:{defgzi:2,eh:3,defdefhmo:1,egiegi:1,pqn:5}},mount:{positionsOff:{e:5,def:1,bdf:3}},orle:{positionsOff:{e:4,jleh:1,kenken:1,peqpeq:1}},pale:{positionsOn:{ee:12,beh:10,kn:3,bb:1},positionsOff:{yyy:1}},pall:{positionsOn:{ee:1,jleh:5,jlhh:3},positionsOff:{BCKFEILGJbdmfo:1}},pallReversed:{positionsOn:{ee:1,bemo:5},positionsOff:{aczac:1}},pile:{positionsOn:{bbb:1},positionsOff:{acdfgi:1,acac:1}},pileInBend:{positionsOn:{eeee:1,eeoo:1},positionsOff:{cg:1}},pileInBendSinister:{positionsOn:{eeee:1,eemm:1},positionsOff:{ai:1}},point:{positionsOff:{e:2,def:1,bdf:3,acbdef:1}},quarter:{positionsOn:{jjj:1},positionsOff:{e:1}},saltire:{positionsOn:{ee:5,jlemo:1}},saltireParted:{positionsOn:{e:5,ee:1}},terrace:{positionsOff:{e:5,def:1,bdf:3}}}},Ba={types:{conventional:30,crosses:10,animals:2,animalHeads:1,birds:2,aquatic:1,seafaring:1,fantastic:3,plants:1,agriculture:1,arms:3,bodyparts:1,people:1,architecture:1,miscellaneous:3,inescutcheon:3,uploaded:0},single:{conventional:12,crosses:8,plants:2,animals:10,animalHeads:2,birds:4,aquatic:2,seafaring:2,fantastic:7,agriculture:1,arms:6,bodyparts:1,people:2,architecture:1,miscellaneous:10,inescutcheon:5,uploaded:0},semy:{conventional:4,crosses:1},conventional:{lozenge:2,fusil:4,mascle:4,rustre:2,lozengeFaceted:3,lozengePloye:1,roundel:4,roundel2:3,annulet:4,mullet:5,mulletPierced:1,mulletFaceted:1,mullet4:3,mullet6:4,mullet6Pierced:1,mullet6Faceted:1,mullet7:1,mullet8:1,mullet10:1,estoile:1,compassRose:1,billet:5,delf:0,triangle:3,trianglePierced:1,goutte:4,heart:4,pique:2,carreau:1,trefle:2,fleurDeLis:6,sun:3,sunInSplendour:1,sunInSplendour2:1,moonInCrescent:1,crescent:5,fountain:1},inescutcheon:{inescutcheonHeater:1,inescutcheonSpanish:1,inescutcheonFrench:1,inescutcheonHorsehead:1,inescutcheonHorsehead2:1,inescutcheonPolish:1,inescutcheonHessen:1,inescutcheonSwiss:1,inescutcheonBoeotian:1,inescutcheonRoman:1,inescutcheonKite:1,inescutcheonOldFrench:1,inescutcheonRenaissance:1,inescutcheonBaroque:1,inescutcheonTarge:1,inescutcheonTarge2:1,inescutcheonPavise:1,inescutcheonWedged:1,inescutcheonFlag:1,inescutcheonPennon:1,inescutcheonGuidon:1,inescutcheonBanner:1,inescutcheonDovetail:1,inescutcheonGonfalon:1,inescutcheonPennant:1,inescutcheonRound:1,inescutcheonOval:1,inescutcheonVesicaPiscis:1,inescutcheonSquare:1,inescutcheonDiamond:1,inescutcheonNo:1,inescutcheonFantasy1:1,inescutcheonFantasy2:1,inescutcheonFantasy3:1,inescutcheonFantasy4:1,inescutcheonFantasy5:1,inescutcheonNoldor:1,inescutcheonGondor:1,inescutcheonEasterling:1,inescutcheonErebor:1,inescutcheonIronHills:1,inescutcheonUrukHai:1,inescutcheonMoriaOrc:1},crosses:{crossHummetty:15,crossVoided:1,crossPattee:2,crossPatteeAlisee:1,crossFormee:1,crossFormee2:2,crossPotent:2,crossJerusalem:1,crosslet:1,crossClechy:3,crossBottony:1,crossFleury:3,crossPatonce:1,crossPommy:1,crossGamma:1,crossArrowed:1,crossFitchy:1,crossCercelee:1,crossMoline:2,crossFourchy:1,crossAvellane:1,crossErminee:1,crossBiparted:1,crossMaltese:3,crossTemplar:2,crossCeltic:1,crossCeltic2:1,crossTriquetra:1,crossCarolingian:1,crossOccitan:1,crossSaltire:3,crossBurgundy:1,crossLatin:3,crossPatriarchal:1,crossOrthodox:1,crossCalvary:1,crossDouble:1,crossTau:1,crossSantiago:1,crossAnkh:1},animals:{lionRampant:6,lionPassant:2,lionPassantGuardant:1,lionSejant:1,wolfRampant:1,wolfPassant:1,wolfStatant:1,greyhoundCourant:1,greyhoundRampant:1,greyhoundSejant:1,mastiffStatant:1,talbotPassant:1,talbotSejant:1,martenCourant:1,boarRampant:1,stagPassant:1,hindStatant:1,horseRampant:2,horseSalient:1,horsePassant:1,bearRampant:2,bearPassant:1,bullPassant:1,cowStatant:1,goat:1,lamb:1,lambPassantReguardant:1,agnusDei:1,ramPassant:1,badgerStatant:1,elephant:1,rhinoceros:1,camel:1,porcupine:1,hedgehog:1,catPassantGuardant:1,rabbitSejant:1,ratRampant:1,squirrel:1,frog:1,snake:1,crocodile:1,lizard:1,scorpion:1,butterfly:1,bee:1,fly:1},animalHeads:{wolfHeadErased:2,bullHeadCaboshed:1,deerHeadCaboshed:1,donkeyHeadCaboshed:1,lionHeadCaboshed:2,lionHeadErased:2,boarHeadErased:1,horseHeadCouped:1,ramHeadErased:1,elephantHeadErased:1},fantastic:{dragonPassant:2,dragonRampant:2,wyvern:1,wyvernWithWingsDisplayed:1,griffinPassant:1,griffinRampant:1,eagleTwoHeads:2,unicornRampant:1,pegasus:1,serpent:1,basilisk:1,sagittarius:1},birds:{eagle:9,falcon:2,raven:2,cock:3,parrot:1,swan:2,swanErased:1,heron:1,owl:1,owlDisplayed:1,dove:2,doveDisplayed:1,duck:1,peacock:1,peacockInPride:1,swallow:1},plants:{tree:1,oak:1,pineTree:1,palmTree:1,trefoil:1,quatrefoil:1,cinquefoil:1,sextifoil:1,mapleLeaf:1,rose:1,apple:1,pear:1,grapeBunch:1,wheatStalk:1,pineCone:1},aquatic:{escallop:5,pike:1,plaice:1,salmon:1,cancer:1,dolphin:1},seafaring:{anchor:6,boat:2,boat2:1,lymphad:2,caravel:1,armillarySphere:1},agriculture:{garb:2,sickle:1,scythe:1,rake:1,plough:2},arms:{sword:4,falchion:1,sabre:1,sabresCrossed:1,sabre2:1,hatchet:3,axe:3,lochaberAxe:1,spear:1,mallet:1,bowWithArrow:3,bow:1,arrow:1,arrowsSheaf:1,arbalest:1,helmet:2,gauntlet:1,shield:1,cannon:1},bodyparts:{hand:4,head:1,headWreathed:1,foot:1,skull:1},people:{cavalier:3,monk:1,angel:2},architecture:{tower:1,castle:1,bridge:1,column:1},miscellaneous:{crown:2,crown2:1,laurelWreath:1,mitre:1,orb:1,chalice:1,key:1,buckle:1,bugleHorn:1,bugleHorn2:1,bell:2,pot:1,bucket:1,horseshoe:3,stirrup:1,attire:1,stagsAttires:1,ramsHorn:1,cowHorns:2,wing:1,wingSword:1,lute:1,harp:1,drum:1,wheel:2,crosier:1,sceptre:1,fasces:1,log:1,chain:1,anvil:1,ladder:1,banner:1,bookClosed:1,bookOpen:1,scissors:1},uploaded:{},data:{agnusDei:{colors:2,sinister:!0},angel:{colors:2,positions:{e:1}},anvil:{sinister:!0},apple:{colors:2},arbalest:{colors:3,reversed:!0},armillarySphere:{positions:{e:1}},arrow:{colors:3,reversed:!0},arrowsSheaf:{colors:3,reversed:!0},axe:{colors:2,sinister:!0},badgerStatant:{colors:2,sinister:!0},banner:{colors:2},basilisk:{colors:3,sinister:!0},bearPassant:{colors:3,sinister:!0},bearRampant:{colors:3,sinister:!0},bee:{colors:3,reversed:!0},bell:{colors:2},boarHeadErased:{colors:3,sinister:!0},boarRampant:{colors:3,sinister:!0,positions:{e:12,beh:1,kn:1,jln:2}},boat:{colors:2},bookClosed:{colors:3},bookOpen:{colors:3},bow:{sinister:!0},bowWithArrow:{colors:3,reversed:!0},bucket:{colors:2},bugleHorn:{colors:2},bugleHorn2:{colors:2},bullHeadCaboshed:{colors:2},bullPassant:{colors:3,sinister:!0},butterfly:{colors:3,reversed:!0},camel:{colors:2,sinister:!0},cancer:{reversed:!0},cannon:{colors:2,sinister:!0},caravel:{colors:3,sinister:!0},castle:{colors:2},catPassantGuardant:{colors:2,sinister:!0},cavalier:{positions:{e:1}},chalice:{colors:2},cinquefoil:{reversed:!0},cock:{colors:3,sinister:!0},cowStatant:{colors:3,sinister:!0},crescent:{reversed:!0},crocodile:{colors:2,sinister:!0},crosier:{sinister:!0},crossGamma:{sinister:!0},crossLatin:{reversed:!0},crossTau:{reversed:!0},crossTriquetra:{reversed:!0},crown:{colors:2,positions:{e:10,abcdefgzi:1,beh:3,behdf:2,acegi:1,kn:1,pq:2,abc:1,jln:4,jleh:1,def:2,abcpqh:3}},crown2:{colors:3,positions:{e:10,abcdefgzi:1,beh:3,behdf:2,acegi:1,kn:1,pq:2,abc:1,jln:4,jleh:1,def:2,abcpqh:3}},deerHeadCaboshed:{colors:2},dolphin:{colors:2,sinister:!0},donkeyHeadCaboshed:{colors:2},dove:{colors:2,natural:"argent",sinister:!0},doveDisplayed:{colors:2,natural:"argent",sinister:!0},dragonPassant:{colors:3,sinister:!0},dragonRampant:{colors:3,sinister:!0},drum:{colors:3},duck:{colors:3,sinister:!0},eagle:{colors:3,sinister:!0,positions:{e:15,beh:1,kn:1,abc:1,jlh:2,def:2,pq:1}},eagleTwoHeads:{colors:3},elephant:{colors:2,sinister:!0},elephantHeadErased:{colors:2,sinister:!0},falchion:{colors:2,reversed:!0},falcon:{colors:3,sinister:!0},fasces:{colors:3,sinister:!0},fly:{colors:3,natural:"sable",reversed:!0},foot:{sinister:!0},fountain:{natural:"azure"},frog:{reversed:!0},garb:{colors:2,natural:"or",positions:{e:1,def:3,abc:2,beh:1,kn:1,jln:3,jleh:1,abcpqh:1,joe:1,lme:1}},gauntlet:{sinister:!0,reversed:!0},goat:{colors:3,sinister:!0},goutte:{reversed:!0},grapeBunch:{colors:3},greyhoundCourant:{colors:3,sinister:!0,positions:{e:10,def:1,abc:1,bdefh:1,jlh:1,abcpqh:1}},greyhoundRampant:{colors:2,sinister:!0,positions:{e:10,def:1,abc:1,bdefh:1,jlh:1,abcpqh:1}},greyhoundSejant:{colors:3,sinister:!0},griffinPassant:{colors:3,sinister:!0,positions:{e:10,def:2,abc:2,bdefh:1,kn:1,jlh:2,abcpqh:1}},griffinRampant:{colors:3,sinister:!0,positions:{e:10,def:1,abc:1,bdefh:1,jlh:1,abcpqh:1}},hand:{sinister:!0,reversed:!0,positions:{e:10,jln:2,kn:1,jeo:1,abc:2,pqe:1}},harp:{colors:2,sinister:!0},hatchet:{colors:2,sinister:!0},head:{colors:2,sinister:!0,positions:{e:1}},headWreathed:{colors:3,sinister:!0,positions:{e:1}},hedgehog:{colors:3,sinister:!0},helmet:{sinister:!0},heron:{colors:2,sinister:!0},hindStatant:{colors:2,sinister:!0},horseHeadCouped:{sinister:!0},horsePassant:{colors:2,sinister:!0},horseRampant:{colors:3,sinister:!0},horseSalient:{colors:2,sinister:!0},horseshoe:{reversed:!0},knight:{sinister:!0},lamb:{colors:2,sinister:!0},lambPassantReguardant:{colors:2,sinister:!0},laurelWreath:{colors:2},lionHeadCaboshed:{colors:2},lionHeadErased:{colors:2,sinister:!0},lionPassant:{colors:3,sinister:!0,positions:{e:10,def:1,abc:1,bdefh:1,jlh:1,abcpqh:1}},lionPassantGuardant:{colors:3,sinister:!0},lionRampant:{colors:3,sinister:!0,positions:{e:10,def:2,abc:2,bdefh:1,kn:1,jlh:2,abcpqh:1}},lionSejant:{colors:3,sinister:!0},lizard:{reversed:!0},lochaberAxe:{colors:2,sinister:!0},log:{sinister:!0},lute:{colors:2,sinister:!0},lymphad:{colors:3,sinister:!0,positions:{e:1}},mallet:{colors:2},martenCourant:{colors:3,sinister:!0},mascle:{positions:{e:15,abcdefgzi:3,beh:3,bdefh:4,acegi:1,kn:3,joe:2,abc:3,jlh:8,jleh:1,df:3,abcpqh:4,pqe:3,eknpq:3}},mastiffStatant:{colors:3,sinister:!0},mitre:{colors:3},monk:{sinister:!0},moonInCrescent:{sinister:!0},mullet:{reversed:!0},mullet7:{reversed:!0},oak:{colors:3},orb:{colors:3},owl:{colors:2,sinister:!0},owlDisplayed:{colors:2},palmTree:{colors:3},parrot:{colors:2,sinister:!0},peacock:{colors:3,sinister:!0},peacockInPride:{colors:3,sinister:!0},pear:{colors:2},pegasus:{colors:3,sinister:!0},pike:{colors:2,sinister:!0},pineTree:{colors:2},plaice:{colors:2,sinister:!0},plough:{colors:2,sinister:!0},porcupine:{colors:2,sinister:!0},rabbitSejant:{colors:2,sinister:!0},rake:{reversed:!0},ramHeadErased:{colors:3,sinister:!0},ramPassant:{colors:3,sinister:!0},ratRampant:{colors:2,sinister:!0},raven:{colors:2,natural:"sable",sinister:!0,positions:{e:15,beh:1,kn:1,jeo:1,abc:3,jln:3,def:1}},rhinoceros:{colors:2,sinister:!0},rose:{colors:3},sabre:{colors:2,sinister:!0},sabre2:{colors:2,sinister:!0,reversed:!0},sabresCrossed:{colors:2,reversed:!0},sagittarius:{colors:3,sinister:!0},salmon:{colors:2,sinister:!0},scissors:{reversed:!0},scorpion:{reversed:!0},scythe:{colors:2,sinister:!0,reversed:!0},serpent:{colors:2,sinister:!0},shield:{colors:2,sinister:!0},sickle:{colors:2,sinister:!0,reversed:!0},snake:{colors:2,sinister:!0},spear:{colors:2,reversed:!0},squirrel:{colors:2,sinister:!0},stagPassant:{colors:2,sinister:!0},stirrup:{colors:2},swallow:{colors:2,sinister:!0},swan:{colors:3,sinister:!0},swanErased:{colors:3,sinister:!0},sword:{colors:2,reversed:!0},talbotPassant:{colors:3,sinister:!0},talbotSejant:{colors:3,sinister:!0},tower:{colors:2},tree:{positions:{e:1}},trefoil:{reversed:!0},unicornRampant:{colors:3,sinister:!0},wheatStalk:{colors:2},wing:{sinister:!0},wingSword:{colors:3,sinister:!0},wolfHeadErased:{colors:2,sinister:!0},wolfPassant:{colors:3,sinister:!0,positions:{e:10,def:1,abc:1,bdefh:1,jlh:1,abcpqh:1}},wolfRampant:{colors:3,sinister:!0},wolfStatant:{colors:3,sinister:!0},wyvern:{colors:3,sinister:!0,positions:{e:10,jln:1}},wyvernWithWingsDisplayed:{colors:3,sinister:!0}}},Da={standard:154,small:20,smaller:20,big:5,smallest:1},Fa=function(e){const t=e||Math.floor(1e9*Math.random());Math.random=function(){return function(e){const t="aleaPRNG 1.1.0";var n,r,i,o,s,l=new Uint32Array(3),a="";function c(e){var t=function(){var e=4022871197,t=function(t){for(var n=0,r=(t=t.toString()).length;n>>0,e=(i*=e)>>>0,e+=4294967296*(i-=e)}return 2.3283064365386963e-10*(e>>>0)};return t.version="Mash 0.9",t}();n=t(" "),r=t(" "),i=t(" "),o=1;for(var s=0;sarguments[1]&&(e=arguments[1],t=arguments[0]),u(e)&&u(t)?Math.floor(d()*(t-e+1))+e:d()*(t-e)+e},d.restart=function(){c(s)},d.seed=function(){c(Array.prototype.slice.call(arguments))},d.version=function(){return t},d.versions=function(){return t+", "+a},0===e.length&&(window.crypto.getRandomValues(l),e=[l[0],l[1],l[2]]),s=e,c(e),d}(Array.prototype.slice.call(arguments))}(t);const n={usedPattern:null,usedTinctures:[],tData:a(Ar),divisioned:null,ordinary:null},r={seed:t,t1:Wa(n,"field")},i=ar(n.usedPattern?.5:.93),o=i&&ar(.3)||ar(.5)?lr(Ra.lined):null;n.ordinary=!i&&ar(.65)||ar(.3)?o||lr(Ra.straight):null;const s=["chief","terrace","chevron","quarter","flaunches"].includes(n.ordinary);n.divisioned=s||i&&n.ordinary?ar(.03):i?ar(.3):n.ordinary?ar(.7):ar(.995);const l=n.divisioned?lr(Ua.variants):null;if(l){const e=Wa(n,"division",n.usedTinctures,ar(.98)?r.t1:null);r.division={division:l,t:e},Ua[l]&&(r.division.line=n.usedPattern||n.ordinary&&ar(.7)?"straight":lr(Ua[l]))}if(n.ordinary){const e=Wa(n,"charge",n.usedTinctures,r.t1);r.ordinaries=[{ordinary:n.ordinary,t:e}],o&&(r.ordinaries[0].line=n.usedPattern||l&&ar(.7)?"straight":lr(Ha)),l&&!i&&!n.usedPattern&&ar(.5)&&"bordure"!==n.ordinary&&"orle"!==n.ordinary&&(ar(.8)?r.ordinaries[0].divided="counter":ar(.6)?r.ordinaries[0].divided="field":r.ordinaries[0].divided="division")}if(i){const e=Va(n),t=Ba.data[e]||{};let i="e",o="gules";const s=Ra.data[n.ordinary],a=r.ordinaries?r.ordinaries[0].t:null;s?.positionsOn&&ar(.8)?(i=lr(s.positionsOn),o=!n.usedPattern&&ar(.3)?r.t1:Wa(n,"charge",[],a)):s?.positionsOff&&ar(.95)?(i=lr(s.positionsOff),o=!n.usedPattern&&ar(.3)?a:Wa(n,"charge",n.usedTinctures,r.t1)):qa.divisions[l]?(i=lr(qa.divisions[l]),o=Wa(n,"charge",a?n.usedTinctures.concat(a):n.usedTinctures,r.t1)):t.positions?(i=lr(t.positions),o=Wa(n,"charge",n.usedTinctures,r.t1)):(i=n.usedPattern?"e":Ba.conventional[e]?lr(qa.conventional):lr(qa.complex),o=Wa(n,"charge",n.usedTinctures.concat(a),r.t1)),t.natural&&t.natural!==o&&t.natural!==a&&(o=t.natural);const c={charge:e,t:o,p:i};if(t.colors>1&&(c.t2=ar(.25)?Wa(n,"charge",n.usedTinctures,r.t1):o),t.colors>2&&(c.t3=ar(.5)?Wa(n,"charge",n.usedTinctures,r.t1):o),r.charges=[c],"ABCDEFGHIKL"===i&&ar(.95)){r.charges[0].charge=lr(Ba.conventional);const e=Va(Ba.single),t=Wa(n,"charge",n.usedTinctures,r.t1);r.charges.push({charge:e,t:t,p:"e"})}else if(ar(.8)&&"inescutcheon"===e){const e=Va(Ba.types),t=Wa(n,"charge",[],o);r.charges.push({charge:e,t:t,p:i,size:.5})}else if(l&&!n.ordinary){const e=!(n.usedPattern||r.line&&"straight"!==r.line);if(ar(.3)&&["perPale","perFess"].includes(l)&&"straight"===r.line){if(r.charges[0].divided="field",ar(.95)){const e="e"===i||ar(.5)?"e":lr(qa.divisions[l]),t=Va(Ba.single),o=Wa(n,"charge",n.usedTinctures,r.division.t);r.charges.push({charge:t,t:o,p:e,divided:"division"})}}else if(e&&ar(.4))r.charges[0].divided="counter";else if(["perPale","perFess","perBend","perBendSinister"].includes(l)&&ar(.8)){const[e,t]="perPale"===l?["p","q"]:"perFess"===l?["k","n"]:"perBend"===l?["l","m"]:["j","o"];r.charges[0].p=e;const i=Va(Ba.single),o=Wa(n,"charge",n.usedTinctures,r.division.t);r.charges.push({charge:i,t:o,p:t})}else if(["perCross","perSaltire"].includes(l)&&ar(.5)){const[e,t,i,o]="perCross"===l?["j","l","m","o"]:["b","d","f","h"];r.charges[0].p=e;const s=Va(Ba.single),a=Wa(n,"charge",[],r.division.t),c=Va(Ba.single),u=Wa(n,"charge",[],r.division.t),d=Va(Ba.single),p=Wa(n,"charge",[],r.t1);r.charges.push({charge:s,t:a,p:t},{charge:c,t:u,p:i},{charge:d,t:p,p:o})}else e&&i.length>1&&(r.charges[0].divided="counter")}r.charges.forEach((e=>function(e,t,n){n.size=(n.size||1)*Ga(n.p,e.ordinary,t),n.p=[...new Set(n.p)].join(""),ar(.02)&&Ba.data[n.charge]?.sinister&&(n.sinister=1);ar(.02)&&Ba.data[n.charge]?.reversed&&(n.reversed=1)}(n,l,e)))}return r},Ga=(e,t=null,n=null)=>"e"!==e||"bordure"!==t&&"orle"!==t?"e"===e?1.5:"jln"===e||"jlh"===e?.7:"abcpqh"===e||"ez"===e||"be"===e||["a","b","c","d","f","g","h","i","bh","df"].includes(e)?.5:["j","l","m","o","jlmo"].includes(e)&&"perCross"===n?.6:e.length>10?.18:e.length>7?.3:e.length>4?.4:e.length>2?.5:.7:1.1;function Va(e,t){const n=t?lr(t):e.ordinary||e.divisioned?lr(Ba.types):lr(Ba.single);return"inescutcheon"===n?"inescutcheon":lr(Ba[n])}function Ja(e,t){const n=Ka(e,t),r={...e.tData[n]};delete r[t];return lr(r,!1)?lr(r,!1):(console.warn(`Type ${n} has only one valid tincture. Cannot follow the Rule of Tincture`),t)}function Ka(e,t){const n=Za(t);if(Object.keys(e.tData.metals).includes(n))return"metals";if(Object.keys(e.tData.colours).includes(n))return"colours";if(Object.keys(e.tData.stains).includes(n))return"stains";throw new Error("Unknown tincture type",t)}function Za(e){return e.includes("-")?e.split("-")[1]:e}function Wa(e,t,n=[],r){let i=lr(e.tData[t]);if("patterns"===i){const n=lr(e.tData[i]);e.usedPattern=n;const r=function(e,t,n){let r=null,i=null;if(ar(.5)&&(t.includes("air")||t.includes("otent"))?(r="argent",i="azure"):"ermine"===t?ar(.7)?(r="argent",i="sable"):ar(.3)?(r="sable",i="argent"):ar(.1)?(r="or",i="sable"):ar(.1)?(r="sable",i="or"):ar(.1)&&(r="gules",i="argent"):t.includes("pappellony")||"scaly"===t?ar(.2)?(r="gules",i="or"):ar(.2)?(r="sable",i="argent"):ar(.2)?(r="argent",i="sable"):ar(.2)&&(r="azure",i="argent"):ar(.2)&&"plumetty"===t?(r="gules",i="or"):"masoned"===t?ar(.3)?(r="gules",i="argent"):ar(.3)?(r="argent",i="sable"):ar(.1)&&(r="or",i="sable"):"fretty"===t||"grillage"===t||"chainy"===t?ar(.35)?(r="argent",i="gules"):ar(.1)?(r="sable",i="or"):ar(.2)&&(r="gules",i="argent"):"honeycombed"===t?ar(.4)?(r="sable",i="or"):ar(.3)&&(r="or",i="sable"):"semy"===t&&(t+="_of_"+Va(Ba.semy)),!r||!i){const t=ar(.7);r=lr(t?e.tData.metals:e.tData.colours),i=lr(t?e.tData.colours:e.tData.metals)}"division"===n&&(e.usedTinctures.includes(r)&&(r=Ja(e,r)),e.usedTinctures.includes(i)&&(i=Ja(e,i))),e.usedTinctures.push(r,i);const o=lr(Da);return`${t}-${r}-${i}${"standard"===o?"":"-"+o}`}(e,n,t);return r}if(r){i="metals"===Ka(e,Za(r))?"colours":"metals"}const o=e.tData[i],s=n.length?function(e,t){const n={...e};t.forEach((e=>{delete n[e]}));const r=Object.keys(n).length&&Object.values(n).reduce(((e,t)=>e+t),0);return r?n:e}(o,n):o;let l=lr(s,!1);return"charge"!==t&&e.usedTinctures.push(l),l}function Xa(e){let t,n,r,i,o;return n=new ja({props:{coa:e[1],i:"View",width:e[0],height:e[0]}}),{c(){t=A("div"),Oe(n.$$.fragment),N(t,"id","viewer")},m(e,s){L(e,t,s),Pe(n,t,null),r=!0,i||(o=I(t,"click",Ya),i=!0)},p(e,[t]){const r={};1&t&&(r.width=e[0]),1&t&&(r.height=e[0]),n.$set(r)},i(e){r||(be(n.$$.fragment,e),r=!0)},o(e){we(n.$$.fragment,e),r=!1},d(e){e&&S(t),Me(n),i=!1,o()}}}function Ya(){if(new URLSearchParams(window.location.search).has("noedit"))return;const e=window.location.href.replace("view=1","view=0");window.open(e,"_blank").focus()}function Qa(e,t,n){let r;c(e,Nr,(e=>n(4,r=e)));let{c:i,seed:o,coaSize:s}=t,l=r[i]||Fa(o||void 0);return e.$$set=e=>{"c"in e&&n(2,i=e.c),"seed"in e&&n(3,o=e.seed),"coaSize"in e&&n(0,s=e.coaSize)},[s,l,i,o]}class ec extends Ne{constructor(e){super(),je(this,e,Qa,Xa,s,{c:2,seed:3,coaSize:0})}}function tc(t){let n,r,i,o,s,l,a;return{c(){n=A("div"),r=A("input"),i=P(),o=A("label"),s=O("Switch"),N(r,"id",t[1]),N(r,"class","switch-input svelte-1cmzv6a"),N(r,"type","checkbox"),N(o,"for",t[1]),N(o,"class","switch-label svelte-1cmzv6a"),N(n,"class","switch svelte-1cmzv6a")},m(e,c){L(e,n,c),x(n,r),r.checked=t[0],x(n,i),x(n,o),x(o,s),l||(a=I(r,"change",t[2]),l=!0)},p(e,[t]){1&t&&(r.checked=e[0])},i:e,o:e,d(e){e&&S(n),l=!1,a()}}}function nc(e,t,n){let{checked:r=!1}=t;const i="switch"+Math.floor(1e6*Math.random());return e.$$set=e=>{"checked"in e&&n(0,r=e.checked)},[r,i,function(){r=this.checked,n(0,r)}]}class rc extends Ne{constructor(e){super(),je(this,e,nc,tc,s,{checked:0})}}function ic(e){let t,n,r,i,o,s,l,a,c,u,d,p=e[1]("editor.aboveCharges")+"";function h(t){e[2](t)}let f={};return void 0!==e[0]&&(f.checked=e[0]),s=new rc({props:f}),ne.push((()=>Te(s,"checked",h))),{c(){t=A("span"),n=A("span"),r=O(p),i=O(":"),o=P(),Oe(s.$$.fragment),B(n,"margin-left","1em"),N(t,"data-tooltip",a=e[1]("tooltip.aboveCharges"))},m(e,l){L(e,t,l),x(t,n),x(n,r),x(n,i),x(t,o),Pe(s,t,null),c=!0,u||(d=v(ri.call(null,t)),u=!0)},p(e,[n]){(!c||2&n)&&p!==(p=e[1]("editor.aboveCharges")+"")&&U(r,p);const i={};!l&&1&n&&(l=!0,i.checked=e[0],ae((()=>l=!1))),s.$set(i),(!c||2&n&&a!==(a=e[1]("tooltip.aboveCharges")))&&N(t,"data-tooltip",a)},i(e){c||(be(s.$$.fragment,e),c=!0)},o(e){we(s.$$.fragment,e),c=!1},d(e){e&&S(t),Me(s),u=!1,d()}}}function oc(e,t,n){let r;c(e,or,(e=>n(1,r=e)));let{above:i}=t;return e.$$set=e=>{"above"in e&&n(0,i=e.above)},[i,r,function(e){i=e,n(0,i)}]}class sc extends Ne{constructor(e){super(),je(this,e,oc,ic,s,{above:0})}}function lc(e){let t,n,r,i,o;return n=new Pa({props:{coa:e[0],border:"#333",borderWidth:2,type:"menuItem"}}),{c(){t=T("svg"),Oe(n.$$.fragment),N(t,"class","menuItem"),N(t,"width","100%"),N(t,"height","100%"),N(t,"viewBox","0 0 200 200"),N(t,"data-tooltip",e[1])},m(e,s){L(e,t,s),Pe(n,t,null),r=!0,i||(o=v(ri.call(null,t)),i=!0)},p(e,[i]){const o={};1&i&&(o.coa=e[0]),n.$set(o),(!r||2&i)&&N(t,"data-tooltip",e[1])},i(e){r||(be(n.$$.fragment,e),r=!0)},o(e){we(n.$$.fragment,e),r=!1},d(e){e&&S(t),Me(n),i=!1,o()}}}function ac(e,t,n){let{coa:r}=t,{tip:i}=t;return e.$$set=e=>{"coa"in e&&n(0,r=e.coa),"tip"in e&&n(1,i=e.tip)},[r,i]}class cc extends Ne{constructor(e){super(),je(this,e,ac,lc,s,{coa:0,tip:1})}}function uc(e,t,n){const r=e.slice();return r[30]=t[n],r}function dc(e,t,n){const r=e.slice();return r[0]=t[n],r}function pc(e){let t,n,r,i=e[5](`categories.${e[0]}`)+"";return{c(){t=A("option"),n=O(i),t.__value=r=e[0],t.value=t.__value},m(e,r){L(e,t,r),x(t,n)},p(e,t){32&t[0]&&i!==(i=e[5](`categories.${e[0]}`)+"")&&U(n,i)},d(e){e&&S(t)}}}function hc(e,t){let n,r,i,o,s,l;function a(){return t[19](t[30])}return r=new cc({props:{coa:t[30],tip:t[8](t[30].charge)}}),{key:e,first:null,c(){n=A("div"),Oe(r.$$.fragment),i=P(),N(n,"class","item"),G(n,"selected",t[1]===t[30].charge),this.first=n},m(e,t){L(e,n,t),Pe(r,n,null),x(n,i),o=!0,s||(l=I(n,"click",a),s=!0)},p(e,i){t=e;const o={};16&i[0]&&(o.coa=t[30]),16&i[0]&&(o.tip=t[8](t[30].charge)),r.$set(o),18&i[0]&&G(n,"selected",t[1]===t[30].charge)},i(e){o||(be(r.$$.fragment,e),o=!0)},o(e){we(r.$$.fragment,e),o=!1},d(e){e&&S(n),Me(r),s=!1,l()}}}function fc(e){let t,n,r,o,s,l,a,c,u,d,p,h,f,m,g,v,$=e[5]("editor.category")+"",y=e[5]("editor.search")+"",b=[],w=new Map,k=e[6],E=[];for(let t=0;te[30];for(let t=0;t<_.length;t+=1){let n=uc(e,_,t),r=C(n);w.set(r,b[t]=hc(r,n))}return{c(){t=A("span"),n=O($),r=O(":"),o=P(),s=A("select");for(let e=0;ee[17].call(s))),G(s,"inactive",e[3]),N(a,"class","svelte-mg0vr7"),G(a,"indented",!0),N(p,"class","svelte-mg0vr7"),G(p,"inactive",!e[3]),N(f,"class","items")},m(i,$){L(i,t,$),x(t,n),x(t,r),L(i,o,$),L(i,s,$);for(let e=0;en(5,r=e))),c(e,Jn,(e=>n(21,i=e))),c(e,Ln,(e=>n(22,o=e)));let s,l,{charge:a}=t,{type:u}=t,{category:d}=t,{t1:p}=t,{t2:h}=t,{t3:f}=t,{t4:m}=t,{size:g=null}=t,{sinister:v=null}=t,{reversed:$=null}=t,{division:y=!1}=t,b=[];const w=Object.keys(Ba.types),k=w.map((e=>Object.keys(Ba[e]))).flat(),E=k.map((e=>r(`charges.${e}`)));function x(){const e=Object.keys(Ba[d]);n(4,b=e.map((e=>({charge:e,t1:_(e),charges:C(e)}))))}function _(e){return"semy"===u?`semy_of_${e}-${p}-${h}-${g}`:p}function C(e){return"semy"===u?[]:[{charge:e,t:h,t2:f,t3:m,p:"e",size:1.5,sinister:v,reversed:$}]}return e.$$set=e=>{"charge"in e&&n(1,a=e.charge),"type"in e&&n(9,u=e.type),"category"in e&&n(0,d=e.category),"t1"in e&&n(10,p=e.t1),"t2"in e&&n(11,h=e.t2),"t3"in e&&n(12,f=e.t3),"t4"in e&&n(13,m=e.t4),"size"in e&&n(14,g=e.size),"sinister"in e&&n(15,v=e.sinister),"reversed"in e&&n(16,$=e.reversed),"division"in e&&n(2,y=e.division)},e.$$.update=()=>{130049&e.$$.dirty[0]&&x(),8&e.$$.dirty[0]&&function(e){if(e||e===l||x(),l=e,!e)return;const t=new RegExp(e.replaceAll(" ",""),"i"),r=k.filter(((e,n)=>t.test(E[n])));n(4,b=r.map((e=>({charge:e,t1:_(e),charges:C(e)}))))}(s)},[d,a,y,s,b,r,w,function(){n(3,s="")},function(e){const t=((e,t)=>{const n=o?.[i]?.[e]?.[t];return n?r(`${e}.${t}`):t})("charges",e);return"semy"===u?`${r("editor.semyOf")} ${t}`:`${r("tinctures.charge")}: ${t}`},u,p,h,f,m,g,v,$,function(){d=F(this),n(0,d),n(6,w)},function(){s=this.value,n(3,s)},e=>n(1,a=e.charge)]}class gc extends Ne{constructor(e){super(),je(this,e,mc,fc,s,{charge:1,type:9,category:0,t1:10,t2:11,t3:12,t4:13,size:14,sinister:15,reversed:16,division:2},null,[-1,-1])}}function vc(e){let t,n,r=e[2]&&e[8](e[1],e[0][e[2]-1]),i=e[2]+11&&vc(t);return{c(){n=A("span"),r=T("svg"),o=T("use"),l=P(),f&&f.c(),a=P(),c=T("svg"),u=T("use"),N(o,"href","#clone-icon"),N(r,"data-tooltip",s=t[3]("editor.clone")),N(r,"class","svelte-1rbk6h"),N(u,"href","#remove-icon"),N(c,"data-tooltip",d=t[3]("editor.remove")),N(c,"class","svelte-1rbk6h"),N(n,"class","svelte-1rbk6h")},m(e,i){L(e,n,i),x(n,r),x(r,o),x(n,l),f&&f.m(n,null),x(n,a),x(n,c),x(c,u),p||(h=[I(r,"click",t[5]),v(ri.call(null,r)),I(c,"click",t[4]),v(ri.call(null,c))],p=!0)},p(e,[t]){8&t&&s!==(s=e[3]("editor.clone"))&&N(r,"data-tooltip",s),e[0].length>1?f?f.p(e,t):(f=vc(e),f.c(),f.m(n,a)):f&&(f.d(1),f=null),8&t&&d!==(d=e[3]("editor.remove"))&&N(c,"data-tooltip",d)},i:e,o:e,d(e){e&&S(n),f&&f.d(),p=!1,i(h)}}}function wc(e,t,n){let r;c(e,or,(e=>n(3,r=e)));let{els:i}=t,{el:o}=t,{i:s}=t;return e.$$set=e=>{"els"in e&&n(0,i=e.els),"el"in e&&n(1,o=e.el),"i"in e&&n(2,s=e.i)},[i,o,s,r,e=>{e.stopPropagation(),n(0,i=i.filter(((e,t)=>t!==s)))},e=>{e.stopPropagation();const t=JSON.parse(JSON.stringify(o));n(0,i=[...i,t])},e=>{e.stopPropagation(),n(0,[i[s],i[s+1]]=[i[s+1],i[s]],i)},e=>{e.stopPropagation(),n(0,[i[s],i[s-1]]=[i[s-1],i[s]],i)},(e,t)=>JSON.stringify(e)!==JSON.stringify(t)]}class kc extends Ne{constructor(e){super(),je(this,e,wc,bc,s,{els:0,el:1,i:2})}}function Ec(e){let t,n,r=e[2]("editor.counterchanged")+"";return{c(){t=A("option"),n=O(r),t.__value="counter",t.value=t.__value},m(e,r){L(e,t,r),x(t,n)},p(e,t){4&t&&r!==(r=e[2]("editor.counterchanged")+"")&&U(n,r)},d(e){e&&S(t)}}}function xc(t){let n,r,i,o,s,l,a,c,u,d,p,h,f,m=t[2]("editor.divided")+"",g=t[2]("editor.notDivided")+"",v=t[2]("editor.cropByField")+"",$=t[2]("editor.cropByDivision")+"",y=!t[1]&&Ec(t);return{c(){n=A("span"),r=O(m),i=O(":"),o=P(),s=A("select"),l=A("option"),a=O(g),c=A("option"),u=O(v),d=A("option"),p=O($),y&&y.c(),l.__value="",l.value=l.__value,c.__value="field",c.value=c.__value,d.__value="division",d.value=d.__value,void 0===t[0]&&le((()=>t[3].call(s)))},m(e,m){L(e,n,m),x(n,r),x(n,i),L(e,o,m),L(e,s,m),x(s,l),x(l,a),x(s,c),x(c,u),x(s,d),x(d,p),y&&y.m(s,null),D(s,t[0]),h||(f=I(s,"change",t[3]),h=!0)},p(e,[t]){4&t&&m!==(m=e[2]("editor.divided")+"")&&U(r,m),4&t&&g!==(g=e[2]("editor.notDivided")+"")&&U(a,g),4&t&&v!==(v=e[2]("editor.cropByField")+"")&&U(u,v),4&t&&$!==($=e[2]("editor.cropByDivision")+"")&&U(p,$),e[1]?y&&(y.d(1),y=null):y?y.p(e,t):(y=Ec(e),y.c(),y.m(s,null)),1&t&&D(s,e[0])},i:e,o:e,d(e){e&&S(n),e&&S(o),e&&S(s),y&&y.d(),h=!1,f()}}}function _c(e,t,n){let r;c(e,or,(e=>n(2,r=e)));let{divided:i}=t,{raster:o=!1}=t;return e.$$set=e=>{"divided"in e&&n(0,i=e.divided),"raster"in e&&n(1,o=e.raster)},[i,o,r,function(){i=F(this),n(0,i)}]}class Cc extends Ne{constructor(e){super(),je(this,e,_c,xc,s,{divided:0,raster:1})}}function Lc(e,t,n){const r=e.slice();return r[9]=t[n],r}function Sc(e,t){let n,r,i,s,l,a;return r=new cc({props:{coa:t[9],tip:t[2](t[9].division.division)}}),{key:e,first:null,c(){n=A("div"),Oe(r.$$.fragment),i=P(),N(n,"class","item"),G(n,"selected",t[0]===t[9].division.division),this.first=n},m(e,c){L(e,n,c),Pe(r,n,null),x(n,i),s=!0,l||(a=I(n,"click",(function(){o(t[3](t[9].division.division))&&t[3](t[9].division.division).apply(this,arguments)})),l=!0)},p(e,i){t=e;const o={};2&i&&(o.coa=t[9]),2&i&&(o.tip=t[2](t[9].division.division)),r.$set(o),3&i&&G(n,"selected",t[0]===t[9].division.division)},i(e){s||(be(r.$$.fragment,e),s=!0)},o(e){we(r.$$.fragment,e),s=!1},d(e){e&&S(n),Me(r),l=!1,a()}}}function zc(e){let t,n,r=[],i=new Map,o=e[1];const s=e=>e[9];for(let t=0;tn(7,i=e)));let{division:o}=t,{t1:s}=t,{t2:l}=t,{line:a}=t;const u=["no"].concat(Object.keys(Ua.variants));return e.$$set=e=>{"division"in e&&n(0,o=e.division),"t1"in e&&n(4,s=e.t1),"t2"in e&&n(5,l=e.t2),"line"in e&&n(6,a=e.line)},e.$$.update=()=>{112&e.$$.dirty&&n(1,r=u.map((e=>({t1:s,division:{division:e,t:l,line:a}}))))},[o,r,e=>{const t=i(`divisions.${e}`);return`${i("editor.division")}: ${t}`},e=>()=>{n(0,o=e)},s,l,a]}class Tc extends Ne{constructor(e){super(),je(this,e,Ac,zc,s,{division:0,t1:4,t2:5,line:6})}}function Oc(e,t,n){const r=e.slice();return r[10]=t[n].coa,r[11]=t[n].newLine,r}function Pc(e,t){let n,r,i,s,l,a;return r=new cc({props:{coa:t[10],tip:t[3](t[11])}}),{key:e,first:null,c(){n=A("div"),Oe(r.$$.fragment),i=P(),N(n,"class","item"),G(n,"selected",t[0]===t[11]),this.first=n},m(e,c){L(e,n,c),Pe(r,n,null),x(n,i),s=!0,l||(a=I(n,"click",(function(){o(t[4](t[11]))&&t[4](t[11]).apply(this,arguments)})),l=!0)},p(e,i){t=e;const o={};2&i&&(o.coa=t[10]),2&i&&(o.tip=t[3](t[11])),r.$set(o),3&i&&G(n,"selected",t[0]===t[11])},i(e){s||(be(r.$$.fragment,e),s=!0)},o(e){we(r.$$.fragment,e),s=!1},d(e){e&&S(n),Me(r),l=!1,a()}}}function Mc(e){let t,n,r,i,o=e[2]("editor.line")+"",s=[],l=new Map,a=e[1];const c=e=>e[10];for(let t=0;tn(2,i=e)));let{line:o}=t,{division:s=null}=t,{ordinary:l=null}=t,{t1:a}=t,{t2:u}=t;const d=Object.keys(Ha);return e.$$set=e=>{"line"in e&&n(0,o=e.line),"division"in e&&n(5,s=e.division),"ordinary"in e&&n(6,l=e.ordinary),"t1"in e&&n(7,a=e.t1),"t2"in e&&n(8,u=e.t2)},e.$$.update=()=>{480&e.$$.dirty&&n(1,r=s?d.map((e=>({coa:{t1:a,division:{division:s,t:u,line:e}},newLine:e}))):d.map((e=>({coa:{t1:a,ordinaries:[{ordinary:l,t:u,line:e}]},newLine:e}))))},[o,r,i,e=>`${i("editor.line")}: ${i(`lines.${e}`)}`,e=>()=>{n(0,o=e)},s,l,a,u]}class jc extends Ne{constructor(e){super(),je(this,e,Ic,Mc,s,{line:0,division:5,ordinary:6,t1:7,t2:8})}}function Nc(e,t,n){const r=e.slice();return r[9]=t[n].coa,r[10]=t[n].ordinaryName,r}function qc(e,t){let n,r,i,s,l,a;return r=new cc({props:{coa:t[9],tip:t[2](t[10])}}),{key:e,first:null,c(){n=A("div"),Oe(r.$$.fragment),i=P(),N(n,"class","item"),G(n,"selected",t[0]===t[10]),this.first=n},m(e,c){L(e,n,c),Pe(r,n,null),x(n,i),s=!0,l||(a=I(n,"click",(function(){o(t[3](t[10]))&&t[3](t[10]).apply(this,arguments)})),l=!0)},p(e,i){t=e;const o={};2&i&&(o.coa=t[9]),2&i&&(o.tip=t[2](t[10])),r.$set(o),3&i&&G(n,"selected",t[0]===t[10])},i(e){s||(be(r.$$.fragment,e),s=!0)},o(e){we(r.$$.fragment,e),s=!1},d(e){e&&S(n),Me(r),l=!1,a()}}}function Hc(e){let t,n,r=[],i=new Map,o=e[1];const s=e=>e[9];for(let t=0;tn(7,i=e)));let{ordinary:o}=t,{line:s}=t,{t1:l}=t,{t2:a}=t;const u=Object.keys(Ra.lined).concat(Object.keys(Ra.straight));return e.$$set=e=>{"ordinary"in e&&n(0,o=e.ordinary),"line"in e&&n(4,s=e.line),"t1"in e&&n(5,l=e.t1),"t2"in e&&n(6,a=e.t2)},e.$$.update=()=>{112&e.$$.dirty&&n(1,r=u.map((e=>({coa:{t1:l,ordinaries:[{ordinary:e,line:s,t:a}]},ordinaryName:e}))))},[o,r,e=>{const t=i(`ordinaries.${e}`);return`${i("editor.ordinary")}: ${t}`},e=>()=>{n(0,o=e)},s,l,a]}class Rc extends Ne{constructor(e){super(),je(this,e,Uc,Hc,s,{ordinary:0,line:4,t1:5,t2:6})}}function Bc(e,t,n){const r=e.slice();return r[1]=t[n].coa,r[9]=t[n].tip,r}function Dc(e){let t,n,r,i,s,l;return n=new cc({props:{coa:e[1],tip:e[9]}}),{c(){t=A("div"),Oe(n.$$.fragment),r=P(),N(t,"class","item"),G(t,"selected",e[0]===e[1].pattern)},m(a,c){L(a,t,c),Pe(n,t,null),x(t,r),i=!0,s||(l=I(t,"click",(function(){o(e[4](e[1].pattern))&&e[4](e[1].pattern).apply(this,arguments)})),s=!0)},p(r,i){e=r;const o={};8&i&&(o.coa=e[1]),8&i&&(o.tip=e[9]),n.$set(o),9&i&&G(t,"selected",e[0]===e[1].pattern)},i(e){i||(be(n.$$.fragment,e),i=!0)},o(e){we(n.$$.fragment,e),i=!1},d(e){e&&S(t),Me(n),s=!1,l()}}}function Fc(e){let t,n,r,i,o=e[2]("editor.pattern")+"",s=e[3],l=[];for(let t=0;twe(l[e],1,1,(()=>{l[e]=null}));return{c(){t=O(o),n=O(":\n"),r=A("div");for(let e=0;en(2,i=e)));let{pattern:o}=t,{t1:s}=t,{t2:l}=t,{size:a}=t,{coa:u}=t;const d=Object.keys(kr.patterns).filter((e=>"semy"!==e));document.getElementById("patterns").innerHTML="",function(e){ql(e.t1),ql(e.division?.t);for(let t of e.ordinaries||[])ql(t.t);for(let t of e.charges||[])ql(t.t),ql(t.t2),ql(t.t3)}(u);return e.$$set=e=>{"pattern"in e&&n(0,o=e.pattern),"t1"in e&&n(5,s=e.t1),"t2"in e&&n(6,l=e.t2),"size"in e&&n(7,a=e.size),"coa"in e&&n(1,u=e.coa)},e.$$.update=()=>{228&e.$$.dirty&&n(3,r=d.map((e=>{let t=`${e}-${s}-${l}`;"standard"!==a&&(t+=`-${a}`);return{coa:{pattern:e,t1:t},tip:i(`patterns.${e}`)}})))},[o,u,i,r,e=>()=>{n(0,o=e)},s,l,a]}class Vc extends Ne{constructor(e){super(),je(this,e,Gc,Fc,s,{pattern:0,t1:5,t2:6,size:7,coa:1})}}function Jc(e,t,n){const r=e.slice();return r[10]=t[n],r}function Kc(t){let n,r,i,o=t[10]+"";return{c(){n=A("option"),r=O(o),n.__value=i=t[10],n.value=n.__value},m(e,t){L(e,n,t),x(n,r)},p:e,d(e){e&&S(n)}}}function Zc(e){let t,n,r,o,s,l,a,c,u,d,p,h,f,m,g,$,y,b,w,k,E,_,C,T,M,j,q,H,F=e[1]("editor.positions")+"",G=e[1]("editor.sinister")+"",V=e[1]("editor.reversed")+"",J=Na,K=[];for(let t=0;tTe(m,"checked",Z)));let Y={};return void 0!==e[0].reversed&&(Y.checked=e[0].reversed),C=new rc({props:Y}),ne.push((()=>Te(C,"checked",X))),{c(){t=A("span"),n=O(F),r=O(":\n "),o=A("input"),s=P(),l=A("select");for(let e=0;ee[6].call(l))),N(t,"data-tooltip",a=e[1]("tooltip.positions")),B(d,"margin-left","1em"),N(d,"class","svelte-gqtmdl"),N(u,"data-tooltip",$=e[1]("tooltip.sinister")),N(u,"class","svelte-gqtmdl"),B(w,"margin-left","1em"),N(w,"class","svelte-gqtmdl"),N(b,"data-tooltip",M=e[1]("tooltip.reversed")),N(b,"class","svelte-gqtmdl")},m(i,a){L(i,t,a),x(t,n),x(t,r),x(t,o),R(o,e[0].p),x(t,s),x(t,l);for(let e=0;eg=!1))),m.$set(i),(!j||2&r&&$!==($=e[1]("tooltip.sinister")))&&N(u,"data-tooltip",$),(!j||2&r)&&V!==(V=e[1]("editor.reversed")+"")&&U(k,V);const s={};!T&&1&r&&(T=!0,s.checked=e[0].reversed,ae((()=>T=!1))),C.$set(s),(!j||2&r&&M!==(M=e[1]("tooltip.reversed")))&&N(b,"data-tooltip",M)},i(e){j||(be(m.$$.fragment,e),be(C.$$.fragment,e),j=!0)},o(e){we(m.$$.fragment,e),we(C.$$.fragment,e),j=!1},d(e){e&&S(t),z(K,e),e&&S(c),e&&S(u),Me(m),e&&S(y),e&&S(b),Me(C),q=!1,i(H)}}}function Wc(e,t,n){let r,i;c(e,Ur,(e=>n(9,r=e))),c(e,or,(e=>n(1,i=e)));let{charge:o}=t;function s(){g(Ur,r.transform=`rotate(${o.angle||0}) translate(${o.x||0}, ${o.y||0})`,r),g(Ur,r.positions=o.p,r)}return e.$$set=e=>{"charge"in e&&n(0,o=e.charge)},[o,i,s,function(){g(Ur,r.positions=0,r)},function(){s(),n(0,o.size=Ga(o.p),o)},function(){o.p=this.value,n(0,o)},function(){o.p=F(this),n(0,o)},function(t){e.$$.not_equal(o.sinister,t)&&(o.sinister=t,n(0,o))},function(t){e.$$.not_equal(o.reversed,t)&&(o.reversed=t,n(0,o))}]}class Xc extends Ne{constructor(e){super(),je(this,e,Wc,Zc,s,{charge:0})}}function Yc(e){let t,n,r,o,s,l,a,c,u,d,p,h,f,m,g,$,y,b,w,k,E,_,C,z,T,M,j,q,B,D,F,G,V,J,K,Z,W,X,Y,Q,ee=e[1]("editor.size")+"",te=e[1]("editor.rotation")+"",re=e[1]("editor.shift")+"",ie=e[1]("editor.step")+"";function oe(t){e[10](t)}let se={};return void 0!==e[3]&&(se.checked=e[3]),K=new rc({props:se}),ne.push((()=>Te(K,"checked",oe))),{c(){t=A("span"),n=O(ee),r=O(":\n "),o=A("input"),a=P(),c=A("span"),u=A("span"),d=O(te),p=O(":"),h=P(),f=A("input"),g=P(),$=A("span"),y=A("span"),b=O(re),w=O(":"),k=P(),E=A("input"),_=P(),C=A("input"),T=P(),M=A("span"),j=A("span"),q=O(ie),B=O(":"),D=P(),F=A("input"),V=P(),J=A("span"),Oe(K.$$.fragment),N(o,"type","number"),N(o,"min","1"),N(o,"max","500"),N(o,"step","1"),o.value=s=100*e[0].size|0,N(o,"class","svelte-wggx8m"),N(t,"data-tooltip",l=e[1]("tooltip.size")),N(u,"class","svelte-wggx8m"),N(f,"type","number"),N(f,"min","-180"),N(f,"max","180"),N(f,"class","svelte-wggx8m"),N(c,"data-tooltip",m=e[1]("tooltip.rotation")),N(c,"class","svelte-wggx8m"),N(y,"class","svelte-wggx8m"),N(E,"type","number"),N(E,"min","-100"),N(E,"max","100"),N(E,"step",e[2]),N(E,"class","svelte-wggx8m"),N(C,"type","number"),N(C,"min","-100"),N(C,"max","100"),N(C,"step",e[2]),N(C,"class","svelte-wggx8m"),N($,"data-tooltip",z=e[1]("tooltip.shift")),N($,"class","svelte-wggx8m"),N(j,"class","svelte-wggx8m"),N(F,"type","number"),N(F,"min","1"),N(F,"max","50"),N(F,"class","svelte-wggx8m"),N(M,"data-tooltip",G=e[1]("tooltip.step")),N(M,"class","svelte-wggx8m"),N(J,"data-tooltip",W=e[1]("tooltip.showGrid"))},m(i,s){L(i,t,s),x(t,n),x(t,r),x(t,o),L(i,a,s),L(i,c,s),x(c,u),x(u,d),x(u,p),x(c,h),x(c,f),R(f,e[0].angle),L(i,g,s),L(i,$,s),x($,y),x(y,b),x(y,w),x($,k),x($,E),R(E,e[0].x),x($,_),x($,C),R(C,e[0].y),L(i,T,s),L(i,M,s),x(M,j),x(j,q),x(j,B),x(M,D),x(M,F),R(F,e[2]),L(i,V,s),L(i,J,s),Pe(K,J,null),X=!0,Y||(Q=[I(o,"input",e[4]),v(ri.call(null,t)),I(f,"input",e[6]),I(f,"change",e[5]),v(ri.call(null,c)),I(E,"input",e[7]),I(C,"input",e[8]),v(ri.call(null,$)),I(F,"input",e[9]),v(ri.call(null,M)),v(ri.call(null,J))],Y=!0)},p(e,[r]){(!X||2&r)&&ee!==(ee=e[1]("editor.size")+"")&&U(n,ee),(!X||1&r&&s!==(s=100*e[0].size|0))&&(o.value=s),(!X||2&r&&l!==(l=e[1]("tooltip.size")))&&N(t,"data-tooltip",l),(!X||2&r)&&te!==(te=e[1]("editor.rotation")+"")&&U(d,te),1&r&&H(f.value)!==e[0].angle&&R(f,e[0].angle),(!X||2&r&&m!==(m=e[1]("tooltip.rotation")))&&N(c,"data-tooltip",m),(!X||2&r)&&re!==(re=e[1]("editor.shift")+"")&&U(b,re),(!X||4&r)&&N(E,"step",e[2]),1&r&&H(E.value)!==e[0].x&&R(E,e[0].x),(!X||4&r)&&N(C,"step",e[2]),1&r&&H(C.value)!==e[0].y&&R(C,e[0].y),(!X||2&r&&z!==(z=e[1]("tooltip.shift")))&&N($,"data-tooltip",z),(!X||2&r)&&ie!==(ie=e[1]("editor.step")+"")&&U(q,ie),4&r&&H(F.value)!==e[2]&&R(F,e[2]),(!X||2&r&&G!==(G=e[1]("tooltip.step")))&&N(M,"data-tooltip",G);const i={};!Z&&8&r&&(Z=!0,i.checked=e[3],ae((()=>Z=!1))),K.$set(i),(!X||2&r&&W!==(W=e[1]("tooltip.showGrid")))&&N(J,"data-tooltip",W)},i(e){X||(be(K.$$.fragment,e),X=!0)},o(e){we(K.$$.fragment,e),X=!1},d(e){e&&S(t),e&&S(a),e&&S(c),e&&S(g),e&&S($),e&&S(T),e&&S(M),e&&S(V),e&&S(J),Me(K),Y=!1,i(Q)}}}function Qc(e,t,n){let r,i,o,s;c(e,Ur,(e=>n(11,r=e))),c(e,or,(e=>n(1,i=e))),c(e,Ir,(e=>n(2,o=e))),c(e,jr,(e=>n(3,s=e)));let{element:l}=t;return e.$$set=e=>{"element"in e&&n(0,l=e.element)},[l,i,o,s,e=>{const t=e.target;n(0,l.size=parseInt(t.value)/100,l)},()=>{g(Ur,r.transform=`rotate(${l.angle||0})`,r)},function(){l.angle=H(this.value),n(0,l)},function(){l.x=H(this.value),n(0,l)},function(){l.y=H(this.value),n(0,l)},function(){o=H(this.value),Ir.set(o)},function(e){s=e,jr.set(s)}]}class eu extends Ne{constructor(e){super(),je(this,e,Qc,Yc,s,{element:0})}}function tu(t){let n,r,i,o,s,l,a,c,u,d,p,h,f,m,g,v,$,y,b,w=t[1]("editor.size")+"",k=t[1]("editor.bigger")+"",E=t[1]("editor.big")+"",_=t[1]("editor.standard")+"",C=t[1]("editor.small")+"",z=t[1]("editor.smaller")+"",T=t[1]("editor.smallest")+"";return{c(){n=A("span"),r=O(w),i=O(":"),o=P(),s=A("select"),l=A("option"),a=O(k),c=A("option"),u=O(E),d=A("option"),p=O(_),h=A("option"),f=O(C),m=A("option"),g=O(z),v=A("option"),$=O(T),B(n,"margin-left","1em"),l.__value="bigger",l.value=l.__value,c.__value="big",c.value=c.__value,d.__value="standard",d.value=d.__value,h.__value="small",h.value=h.__value,m.__value="smaller",m.value=m.__value,v.__value="smallest",v.value=v.__value,void 0===t[0]&&le((()=>t[2].call(s)))},m(e,w){L(e,n,w),x(n,r),x(n,i),L(e,o,w),L(e,s,w),x(s,l),x(l,a),x(s,c),x(c,u),x(s,d),x(d,p),x(s,h),x(h,f),x(s,m),x(m,g),x(s,v),x(v,$),D(s,t[0]),y||(b=I(s,"change",t[2]),y=!0)},p(e,[t]){2&t&&w!==(w=e[1]("editor.size")+"")&&U(r,w),2&t&&k!==(k=e[1]("editor.bigger")+"")&&U(a,k),2&t&&E!==(E=e[1]("editor.big")+"")&&U(u,E),2&t&&_!==(_=e[1]("editor.standard")+"")&&U(p,_),2&t&&C!==(C=e[1]("editor.small")+"")&&U(f,C),2&t&&z!==(z=e[1]("editor.smaller")+"")&&U(g,z),2&t&&T!==(T=e[1]("editor.smallest")+"")&&U($,T),1&t&&D(s,e[0])},i:e,o:e,d(e){e&&S(n),e&&S(o),e&&S(s),y=!1,b()}}}function nu(e,t,n){let r;c(e,or,(e=>n(1,r=e)));let{size:i}=t;return e.$$set=e=>{"size"in e&&n(0,i=e.size)},[i,r,function(){i=F(this),n(0,i)}]}class ru extends Ne{constructor(e){super(),je(this,e,nu,tu,s,{size:0})}}function iu(e){let t,n,r,i,o,s,l,a,c,u=e[1]("editor.color")+"",d=e[0].ordinary&&ou(e);return{c(){t=A("span"),n=O(u),r=O(":"),i=P(),o=A("input"),s=P(),d&&d.c(),l=M(),B(t,"margin-left","1em"),N(o,"type","color"),N(o,"class","svelte-ex5ti9")},m(u,p){L(u,t,p),x(t,n),x(t,r),L(u,i,p),L(u,o,p),R(o,e[0].stroke),L(u,s,p),d&&d.m(u,p),L(u,l,p),a||(c=I(o,"input",e[3]),a=!0)},p(e,t){2&t&&u!==(u=e[1]("editor.color")+"")&&U(n,u),1&t&&R(o,e[0].stroke),e[0].ordinary?d?d.p(e,t):(d=ou(e),d.c(),d.m(l.parentNode,l)):d&&(d.d(1),d=null)},d(e){e&&S(t),e&&S(i),e&&S(o),e&&S(s),d&&d.d(e),e&&S(l),a=!1,c()}}}function ou(e){let t,n,r,i,o,s,l,a=e[1]("editor.width")+"";return{c(){t=A("span"),n=O(a),r=O(":"),i=P(),o=A("input"),B(t,"margin-left","1em"),N(o,"type","number"),N(o,"min",".1"),N(o,"max","99"),N(o,"step",".1"),N(o,"class","svelte-ex5ti9")},m(a,c){L(a,t,c),x(t,n),x(t,r),L(a,i,c),L(a,o,c),R(o,e[0].strokeWidth),s||(l=I(o,"input",e[4]),s=!0)},p(e,t){2&t&&a!==(a=e[1]("editor.width")+"")&&U(n,a),1&t&&H(o.value)!==e[0].strokeWidth&&R(o,e[0].strokeWidth)},d(e){e&&S(t),e&&S(i),e&&S(o),s=!1,l()}}}function su(e){let t,n,r,i,o,s,l,a,c,u,d,p,h=e[1]("editor.stroke")+"";function f(t){e[2](t)}let m={};void 0!==e[0].showStroke&&(m.checked=e[0].showStroke),s=new rc({props:m}),ne.push((()=>Te(s,"checked",f)));let g=e[0].showStroke&&iu(e);return{c(){t=A("span"),n=A("span"),r=O(h),i=O(":"),o=P(),Oe(s.$$.fragment),a=P(),g&&g.c(),N(t,"data-tooltip",c=e[1]("tooltip.stroke"))},m(e,l){L(e,t,l),x(t,n),x(n,r),x(n,i),x(t,o),Pe(s,t,null),x(t,a),g&&g.m(t,null),u=!0,d||(p=v(ri.call(null,t)),d=!0)},p(e,[n]){(!u||2&n)&&h!==(h=e[1]("editor.stroke")+"")&&U(r,h);const i={};!l&&1&n&&(l=!0,i.checked=e[0].showStroke,ae((()=>l=!1))),s.$set(i),e[0].showStroke?g?g.p(e,n):(g=iu(e),g.c(),g.m(t,null)):g&&(g.d(1),g=null),(!u||2&n&&c!==(c=e[1]("tooltip.stroke")))&&N(t,"data-tooltip",c)},i(e){u||(be(s.$$.fragment,e),u=!0)},o(e){we(s.$$.fragment,e),u=!1},d(e){e&&S(t),Me(s),g&&g.d(),d=!1,p()}}}function lu(e,t,n){let r;c(e,or,(e=>n(1,r=e)));let{element:i}=t;return e.$$set=e=>{"element"in e&&n(0,i=e.element)},[i,r,function(t){e.$$.not_equal(i.showStroke,t)&&(i.showStroke=t,n(0,i))},function(){i.stroke=this.value,n(0,i)},function(){i.strokeWidth=H(this.value),n(0,i)}]}class au extends Ne{constructor(e){super(),je(this,e,lu,su,s,{element:0})}}function cu(e,t,n){const r=e.slice();return r[13]=t[n].coa,r[14]=t[n].tip,r[15]=t,r[16]=n,r}function uu(e){let t,n,r,o,s;function l(){return e[8](e[13])}return{c(){t=T("svg"),n=T("use"),N(n,"href","#undo-icon"),N(t,"class","undo svelte-1qdtip9"),N(t,"data-tooltip",r=e[3]("tooltip.undoColorChange"))},m(e,r){L(e,t,r),x(t,n),o||(s=[I(t,"click",l),v(ri.call(null,t))],o=!0)},p(n,i){e=n,8&i&&r!==(r=e[3]("tooltip.undoColorChange"))&&N(t,"data-tooltip",r)},d(e){e&&S(t),o=!1,i(s)}}}function du(e){let t,n,r,o,s,l,a,c,u,d,p,h,f,m,g,$,y,b=e[2](e[13].t1);function w(){return e[7](e[13])}r=new cc({props:{coa:e[13],tip:e[14]}});let k=b&&uu(e);function E(){e[9].call(c,e[13])}return{c(){t=A("div"),n=A("div"),Oe(r.$$.fragment),o=P(),s=A("div"),k&&k.c(),l=P(),a=A("div"),c=A("input"),u=P(),d=T("svg"),p=T("use"),m=P(),N(n,"class","item"),G(n,"selected",e[0]===e[13].t1),N(c,"type","color"),N(c,"class","svelte-1qdtip9"),N(p,"href","#pencil-icon"),N(d,"class","edit svelte-1qdtip9"),N(d,"data-tooltip",h=e[3]("tooltip.changeColor")),N(s,"class","controls svelte-1qdtip9"),N(t,"class","wrapper svelte-1qdtip9")},m(i,h){L(i,t,h),x(t,n),Pe(r,n,null),x(t,o),x(t,s),k&&k.m(s,null),x(s,l),x(s,a),x(a,c),R(c,e[1][e[13].t1]),x(a,u),x(a,d),x(d,p),x(t,m),g=!0,$||(y=[I(n,"click",w),I(c,"input",E),I(d,"click",hu),v(f=ri.call(null,d))],$=!0)},p(t,r){e=t,17&r&&G(n,"selected",e[0]===e[13].t1),4&r&&(b=e[2](e[13].t1)),b?k?k.p(e,r):(k=uu(e),k.c(),k.m(s,l)):k&&(k.d(1),k=null),18&r&&R(c,e[1][e[13].t1]),(!g||8&r&&h!==(h=e[3]("tooltip.changeColor")))&&N(d,"data-tooltip",h)},i(e){g||(be(r.$$.fragment,e),g=!0)},o(e){we(r.$$.fragment,e),g=!1},d(e){e&&S(t),Me(r),k&&k.d(),$=!1,i(y)}}}function pu(e){let t,n,r,i,o=e[3]("editor.tincture")+"",s=e[4],l=[];for(let t=0;twe(l[e],1,1,(()=>{l[e]=null}));return{c(){t=O(o),n=O(":\n"),r=A("div");for(let e=0;en(1,i=e))),c(e,or,(e=>n(3,o=e))),c(e,Jn,(e=>n(10,s=e))),c(e,Ln,(e=>n(11,l=e))),c(e,Ar,(e=>n(12,a=e)));let{t1:u}=t;const d=["metals","colours","stains"].map((e=>Object.keys(a[e]).map((t=>{const n=l[s]?.tinctures?.[t]?o(`tinctures.${t}`):t;return{coa:{t1:t},tip:`${o(`editor.${e.slice(0,-1)}`)}: ${n}`}})))).flat(),p=e=>{n(0,u=e)};function h(e){g(zr,i[e]=wr[e],i)}return e.$$set=e=>{"t1"in e&&n(0,u=e.t1)},e.$$.update=()=>{2&e.$$.dirty&&localStorage.setItem("colors",JSON.stringify(i)),2&e.$$.dirty&&n(2,r=e=>wr[e]&&i[e]!==wr[e])},[u,i,r,o,d,p,h,e=>p(e.t1),e=>h(e.t1),function(e){i[e.t1]=this.value,zr.set(i),n(4,d)}]}class mu extends Ne{constructor(e){super(),je(this,e,fu,pu,s,{t1:0})}}function gu(t){let n,r,i,o,s,l,a,c,u,d,p,h=t[1]("editor.type")+"",f=t[1]("editor.tincture")+"",m=t[1]("editor.pattern")+"",g=t[1]("editor.semy")+"";return{c(){n=O(h),r=P(),i=A("select"),o=A("option"),s=O(f),l=A("option"),a=O(m),c=A("option"),u=O(g),o.__value="tincture",o.value=o.__value,l.__value="pattern",l.value=l.__value,c.__value="semy",c.value=c.__value,void 0===t[0]&&le((()=>t[2].call(i)))},m(e,h){L(e,n,h),L(e,r,h),L(e,i,h),x(i,o),x(o,s),x(i,l),x(l,a),x(i,c),x(c,u),D(i,t[0]),d||(p=I(i,"change",t[2]),d=!0)},p(e,[t]){2&t&&h!==(h=e[1]("editor.type")+"")&&U(n,h),2&t&&f!==(f=e[1]("editor.tincture")+"")&&U(s,f),2&t&&m!==(m=e[1]("editor.pattern")+"")&&U(a,m),2&t&&g!==(g=e[1]("editor.semy")+"")&&U(u,g),1&t&&D(i,e[0])},i:e,o:e,d(e){e&&S(n),e&&S(r),e&&S(i),d=!1,p()}}}function vu(e,t,n){let r;c(e,or,(e=>n(1,r=e)));let{type:i}=t;return e.$$set=e=>{"type"in e&&n(0,i=e.type)},[i,r,function(){i=F(this),n(0,i)}]}class $u extends Ne{constructor(e){super(),je(this,e,vu,gu,s,{type:0})}}const{Boolean:yu}=Ce;function bu(e,t,n){const r=e.slice();return r[61]=t[n],r[62]=t,r[63]=n,r}function wu(e,t,n){const r=e.slice();return r[64]=t[n],r[65]=t,r[63]=n,r}function ku(e){let t,n;return t=new ja({props:{coa:e[1],i:"Edit"}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};2&n[0]&&(r.coa=e[1]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Eu(e){let t,n=e[2]("tinctures.field")+"";return{c(){t=O(n)},m(e,n){L(e,t,n)},p(e,r){4&r[0]&&n!==(n=e[2]("tinctures.field")+"")&&U(t,n)},d(e){e&&S(t)}}}function xu(e){let t,n,r,i,o,s,l,a,c,u,d,p,h,f;function m(t){e[17](t)}let g={};void 0!==e[0].field.type&&(g.type=e[0].field.type),r=new $u({props:g}),ne.push((()=>Te(r,"type",m)));let v="tincture"!==e[0].field.type&&_u(e);function $(t){e[19](t)}let y={};void 0!==e[0].field.t1&&(y.t1=e[0].field.t1),a=new mu({props:y}),ne.push((()=>Te(a,"t1",$)));let b="tincture"!==e[0].field.type&&Cu(e),w="pattern"===e[0].field.type&&Lu(e),k="semy"===e[0].field.type&&Su(e);return{c(){t=A("div"),n=A("div"),Oe(r.$$.fragment),o=P(),v&&v.c(),s=P(),l=A("div"),Oe(a.$$.fragment),u=P(),b&&b.c(),d=P(),w&&w.c(),p=P(),k&&k.c(),N(n,"class","subsection svelte-1k0wz0q"),N(l,"class","subsection svelte-1k0wz0q"),N(t,"class","panel svelte-1k0wz0q")},m(e,i){L(e,t,i),x(t,n),Pe(r,n,null),x(n,o),v&&v.m(n,null),x(t,s),x(t,l),Pe(a,l,null),x(t,u),b&&b.m(t,null),x(t,d),w&&w.m(t,null),x(t,p),k&&k.m(t,null),f=!0},p(e,o){const s={};!i&&1&o[0]&&(i=!0,s.type=e[0].field.type,ae((()=>i=!1))),r.$set(s),"tincture"!==e[0].field.type?v?(v.p(e,o),1&o[0]&&be(v,1)):(v=_u(e),v.c(),be(v,1),v.m(n,null)):v&&($e(),we(v,1,1,(()=>{v=null})),ye());const l={};!c&&1&o[0]&&(c=!0,l.t1=e[0].field.t1,ae((()=>c=!1))),a.$set(l),"tincture"!==e[0].field.type?b?(b.p(e,o),1&o[0]&&be(b,1)):(b=Cu(e),b.c(),be(b,1),b.m(t,d)):b&&($e(),we(b,1,1,(()=>{b=null})),ye()),"pattern"===e[0].field.type?w?(w.p(e,o),1&o[0]&&be(w,1)):(w=Lu(e),w.c(),be(w,1),w.m(t,p)):w&&($e(),we(w,1,1,(()=>{w=null})),ye()),"semy"===e[0].field.type?k?(k.p(e,o),1&o[0]&&be(k,1)):(k=Su(e),k.c(),be(k,1),k.m(t,null)):k&&($e(),we(k,1,1,(()=>{k=null})),ye())},i(e){f||(be(r.$$.fragment,e),be(v),be(a.$$.fragment,e),be(b),be(w),be(k),le((()=>{h||(h=_e(t,ai,{},!0)),h.run(1)})),f=!0)},o(e){we(r.$$.fragment,e),we(v),we(a.$$.fragment,e),we(b),we(w),we(k),h||(h=_e(t,ai,{},!1)),h.run(0),f=!1},d(e){e&&S(t),Me(r),v&&v.d(),Me(a),b&&b.d(),w&&w.d(),k&&k.d(),e&&h&&h.end()}}}function _u(e){let t,n,r;function i(t){e[18](t)}let o={};return void 0!==e[0].field.size&&(o.size=e[0].field.size),t=new ru({props:o}),ne.push((()=>Te(t,"size",i))),{c(){Oe(t.$$.fragment)},m(e,n){Pe(t,e,n),r=!0},p(e,r){const i={};!n&&1&r[0]&&(n=!0,i.size=e[0].field.size,ae((()=>n=!1))),t.$set(i)},i(e){r||(be(t.$$.fragment,e),r=!0)},o(e){we(t.$$.fragment,e),r=!1},d(e){Me(t,e)}}}function Cu(e){let t,n,r,i;function o(t){e[20](t)}let s={};return void 0!==e[0].field.t2&&(s.t1=e[0].field.t2),n=new mu({props:s}),ne.push((()=>Te(n,"t1",o))),{c(){t=A("div"),Oe(n.$$.fragment),N(t,"class","subsection svelte-1k0wz0q")},m(e,r){L(e,t,r),Pe(n,t,null),i=!0},p(e,t){const i={};!r&&1&t[0]&&(r=!0,i.t1=e[0].field.t2,ae((()=>r=!1))),n.$set(i)},i(e){i||(be(n.$$.fragment,e),i=!0)},o(e){we(n.$$.fragment,e),i=!1},d(e){e&&S(t),Me(n)}}}function Lu(e){let t,n,r,i;function o(t){e[21](t)}let s={t1:e[0].field.t1,t2:e[0].field.t2,size:e[0].field.size,coa:e[1]};return void 0!==e[0].field.pattern&&(s.pattern=e[0].field.pattern),n=new Vc({props:s}),ne.push((()=>Te(n,"pattern",o))),{c(){t=A("div"),Oe(n.$$.fragment),N(t,"class","subsection svelte-1k0wz0q")},m(e,r){L(e,t,r),Pe(n,t,null),i=!0},p(e,t){const i={};1&t[0]&&(i.t1=e[0].field.t1),1&t[0]&&(i.t2=e[0].field.t2),1&t[0]&&(i.size=e[0].field.size),2&t[0]&&(i.coa=e[1]),!r&&1&t[0]&&(r=!0,i.pattern=e[0].field.pattern,ae((()=>r=!1))),n.$set(i)},i(e){i||(be(n.$$.fragment,e),i=!0)},o(e){we(n.$$.fragment,e),i=!1},d(e){e&&S(t),Me(n)}}}function Su(e){let t,n,r,i,o;function s(t){e[22](t)}function l(t){e[23](t)}let a={type:"semy",t1:e[0].field.t1,t2:e[0].field.t2,size:e[0].field.size};return void 0!==e[0].field.charge&&(a.charge=e[0].field.charge),void 0!==e[0].field.semy&&(a.category=e[0].field.semy),n=new gc({props:a}),ne.push((()=>Te(n,"charge",s))),ne.push((()=>Te(n,"category",l))),{c(){t=A("div"),Oe(n.$$.fragment),N(t,"class","subsection svelte-1k0wz0q")},m(e,r){L(e,t,r),Pe(n,t,null),o=!0},p(e,t){const o={};1&t[0]&&(o.t1=e[0].field.t1),1&t[0]&&(o.t2=e[0].field.t2),1&t[0]&&(o.size=e[0].field.size),!r&&1&t[0]&&(r=!0,o.charge=e[0].field.charge,ae((()=>r=!1))),!i&&1&t[0]&&(i=!0,o.category=e[0].field.semy,ae((()=>i=!1))),n.$set(o)},i(e){o||(be(n.$$.fragment,e),o=!0)},o(e){we(n.$$.fragment,e),o=!1},d(e){e&&S(t),Me(n)}}}function zu(e){let t,n,r,i=e[2]("tinctures.division")+"",o=e[4]("divisions",e[0].division.division)+"";return{c(){t=O(i),n=O(": "),r=O(o)},m(e,i){L(e,t,i),L(e,n,i),L(e,r,i)},p(e,n){4&n[0]&&i!==(i=e[2]("tinctures.division")+"")&&U(t,i),17&n[0]&&o!==(o=e[4]("divisions",e[0].division.division)+"")&&U(r,o)},d(e){e&&S(t),e&&S(n),e&&S(r)}}}function Au(e){let t,n,r,i,o,s,l,a;function c(t){e[24](t)}let u={t1:e[1].t1,t2:e[1].division?e[1].division.t:e[0].division.t1,line:e[0].division.line};void 0!==e[0].division.division&&(u.division=e[0].division.division),r=new Tc({props:u}),ne.push((()=>Te(r,"division",c)));let d=Ua[e[1].division?.division]&&Tu(e),p=e[1].division&&Ou(e);return{c(){t=A("div"),n=A("div"),Oe(r.$$.fragment),o=P(),d&&d.c(),s=P(),p&&p.c(),N(n,"class","subsection svelte-1k0wz0q"),N(t,"class","panel svelte-1k0wz0q")},m(e,i){L(e,t,i),x(t,n),Pe(r,n,null),x(t,o),d&&d.m(t,null),x(t,s),p&&p.m(t,null),a=!0},p(e,n){const o={};2&n[0]&&(o.t1=e[1].t1),3&n[0]&&(o.t2=e[1].division?e[1].division.t:e[0].division.t1),1&n[0]&&(o.line=e[0].division.line),!i&&1&n[0]&&(i=!0,o.division=e[0].division.division,ae((()=>i=!1))),r.$set(o),Ua[e[1].division?.division]?d?(d.p(e,n),2&n[0]&&be(d,1)):(d=Tu(e),d.c(),be(d,1),d.m(t,s)):d&&($e(),we(d,1,1,(()=>{d=null})),ye()),e[1].division?p?(p.p(e,n),2&n[0]&&be(p,1)):(p=Ou(e),p.c(),be(p,1),p.m(t,null)):p&&($e(),we(p,1,1,(()=>{p=null})),ye())},i(e){a||(be(r.$$.fragment,e),be(d),be(p),le((()=>{l||(l=_e(t,ai,{},!0)),l.run(1)})),a=!0)},o(e){we(r.$$.fragment,e),we(d),we(p),l||(l=_e(t,ai,{},!1)),l.run(0),a=!1},d(e){e&&S(t),Me(r),d&&d.d(),p&&p.d(),e&&l&&l.end()}}}function Tu(e){let t,n,r,i;function o(t){e[25](t)}let s={division:e[0].division.division,t1:e[1].t1,t2:e[1].division?e[1].division.t:e[0].division.t1};return void 0!==e[0].division.line&&(s.line=e[0].division.line),n=new jc({props:s}),ne.push((()=>Te(n,"line",o))),{c(){t=A("div"),Oe(n.$$.fragment),N(t,"class","subsection svelte-1k0wz0q")},m(e,r){L(e,t,r),Pe(n,t,null),i=!0},p(e,t){const i={};1&t[0]&&(i.division=e[0].division.division),2&t[0]&&(i.t1=e[1].t1),3&t[0]&&(i.t2=e[1].division?e[1].division.t:e[0].division.t1),!r&&1&t[0]&&(r=!0,i.line=e[0].division.line,ae((()=>r=!1))),n.$set(i)},i(e){i||(be(n.$$.fragment,e),i=!0)},o(e){we(n.$$.fragment,e),i=!1},d(e){e&&S(t),Me(n)}}}function Ou(e){let t,n,r,i,o,s,l,a,c,u,d,p,h;function f(t){e[26](t)}let m={};void 0!==e[0].division.type&&(m.type=e[0].division.type),n=new $u({props:m}),ne.push((()=>Te(n,"type",f)));let g="tincture"!==e[0].division.type&&Pu(e);function v(t){e[28](t)}let $={};void 0!==e[0].division.t1&&($.t1=e[0].division.t1),l=new mu({props:$}),ne.push((()=>Te(l,"t1",v)));let y="tincture"!==e[0].division.type&&Mu(e),b="pattern"===e[0].division.type&&Iu(e),w="semy"===e[0].division.type&&ju(e);return{c(){t=A("div"),Oe(n.$$.fragment),i=P(),g&&g.c(),o=P(),s=A("div"),Oe(l.$$.fragment),c=P(),y&&y.c(),u=P(),b&&b.c(),d=P(),w&&w.c(),p=M(),N(t,"class","subsection svelte-1k0wz0q"),N(s,"class","subsection svelte-1k0wz0q")},m(e,r){L(e,t,r),Pe(n,t,null),x(t,i),g&&g.m(t,null),L(e,o,r),L(e,s,r),Pe(l,s,null),L(e,c,r),y&&y.m(e,r),L(e,u,r),b&&b.m(e,r),L(e,d,r),w&&w.m(e,r),L(e,p,r),h=!0},p(e,i){const o={};!r&&1&i[0]&&(r=!0,o.type=e[0].division.type,ae((()=>r=!1))),n.$set(o),"tincture"!==e[0].division.type?g?(g.p(e,i),1&i[0]&&be(g,1)):(g=Pu(e),g.c(),be(g,1),g.m(t,null)):g&&($e(),we(g,1,1,(()=>{g=null})),ye());const s={};!a&&1&i[0]&&(a=!0,s.t1=e[0].division.t1,ae((()=>a=!1))),l.$set(s),"tincture"!==e[0].division.type?y?(y.p(e,i),1&i[0]&&be(y,1)):(y=Mu(e),y.c(),be(y,1),y.m(u.parentNode,u)):y&&($e(),we(y,1,1,(()=>{y=null})),ye()),"pattern"===e[0].division.type?b?(b.p(e,i),1&i[0]&&be(b,1)):(b=Iu(e),b.c(),be(b,1),b.m(d.parentNode,d)):b&&($e(),we(b,1,1,(()=>{b=null})),ye()),"semy"===e[0].division.type?w?(w.p(e,i),1&i[0]&&be(w,1)):(w=ju(e),w.c(),be(w,1),w.m(p.parentNode,p)):w&&($e(),we(w,1,1,(()=>{w=null})),ye())},i(e){h||(be(n.$$.fragment,e),be(g),be(l.$$.fragment,e),be(y),be(b),be(w),h=!0)},o(e){we(n.$$.fragment,e),we(g),we(l.$$.fragment,e),we(y),we(b),we(w),h=!1},d(e){e&&S(t),Me(n),g&&g.d(),e&&S(o),e&&S(s),Me(l),e&&S(c),y&&y.d(e),e&&S(u),b&&b.d(e),e&&S(d),w&&w.d(e),e&&S(p)}}}function Pu(e){let t,n,r;function i(t){e[27](t)}let o={};return void 0!==e[0].division.size&&(o.size=e[0].division.size),t=new ru({props:o}),ne.push((()=>Te(t,"size",i))),{c(){Oe(t.$$.fragment)},m(e,n){Pe(t,e,n),r=!0},p(e,r){const i={};!n&&1&r[0]&&(n=!0,i.size=e[0].division.size,ae((()=>n=!1))),t.$set(i)},i(e){r||(be(t.$$.fragment,e),r=!0)},o(e){we(t.$$.fragment,e),r=!1},d(e){Me(t,e)}}}function Mu(e){let t,n,r,i;function o(t){e[29](t)}let s={};return void 0!==e[0].division.t2&&(s.t1=e[0].division.t2),n=new mu({props:s}),ne.push((()=>Te(n,"t1",o))),{c(){t=A("div"),Oe(n.$$.fragment),N(t,"class","subsection svelte-1k0wz0q")},m(e,r){L(e,t,r),Pe(n,t,null),i=!0},p(e,t){const i={};!r&&1&t[0]&&(r=!0,i.t1=e[0].division.t2,ae((()=>r=!1))),n.$set(i)},i(e){i||(be(n.$$.fragment,e),i=!0)},o(e){we(n.$$.fragment,e),i=!1},d(e){e&&S(t),Me(n)}}}function Iu(e){let t,n,r,i;function o(t){e[30](t)}let s={t1:e[0].division.t1,t2:e[0].division.t2,size:e[0].division.size,coa:e[1]};return void 0!==e[0].division.pattern&&(s.pattern=e[0].division.pattern),n=new Vc({props:s}),ne.push((()=>Te(n,"pattern",o))),{c(){t=A("div"),Oe(n.$$.fragment),N(t,"class","subsection svelte-1k0wz0q")},m(e,r){L(e,t,r),Pe(n,t,null),i=!0},p(e,t){const i={};1&t[0]&&(i.t1=e[0].division.t1),1&t[0]&&(i.t2=e[0].division.t2),1&t[0]&&(i.size=e[0].division.size),2&t[0]&&(i.coa=e[1]),!r&&1&t[0]&&(r=!0,i.pattern=e[0].division.pattern,ae((()=>r=!1))),n.$set(i)},i(e){i||(be(n.$$.fragment,e),i=!0)},o(e){we(n.$$.fragment,e),i=!1},d(e){e&&S(t),Me(n)}}}function ju(e){let t,n,r,i,o;function s(t){e[31](t)}function l(t){e[32](t)}let a={type:"semy",t1:e[0].division.t1,t2:e[0].division.t2,size:e[0].division.size};return void 0!==e[0].division.charge&&(a.charge=e[0].division.charge),void 0!==e[0].division.semy&&(a.category=e[0].division.semy),n=new gc({props:a}),ne.push((()=>Te(n,"charge",s))),ne.push((()=>Te(n,"category",l))),{c(){t=A("div"),Oe(n.$$.fragment),N(t,"class","subsection svelte-1k0wz0q")},m(e,r){L(e,t,r),Pe(n,t,null),o=!0},p(e,t){const o={};1&t[0]&&(o.t1=e[0].division.t1),1&t[0]&&(o.t2=e[0].division.t2),1&t[0]&&(o.size=e[0].division.size),!r&&1&t[0]&&(r=!0,o.charge=e[0].division.charge,ae((()=>r=!1))),!i&&1&t[0]&&(i=!0,o.category=e[0].division.semy,ae((()=>i=!1))),n.$set(o)},i(e){o||(be(n.$$.fragment,e),o=!0)},o(e){we(n.$$.fragment,e),o=!1},d(e){e&&S(t),Me(n)}}}function Nu(e){let t,n,r,i,o,s,l,a,c,u=e[2]("editor.ordinary")+"",d=e[0].ordinaries.length>1?` ${e[63]+1}`:"",p=e[4]("ordinaries",e[64].ordinary)+"",h=e[64].above&&qu(e);function f(t){e[33](t)}let m={el:e[64],i:e[63]};return void 0!==e[0].ordinaries&&(m.els=e[0].ordinaries),l=new kc({props:m}),ne.push((()=>Te(l,"els",f))),{c(){t=O(u),n=O(d),r=O(": "),i=O(p),o=P(),h&&h.c(),s=P(),Oe(l.$$.fragment)},m(e,a){L(e,t,a),L(e,n,a),L(e,r,a),L(e,i,a),L(e,o,a),h&&h.m(e,a),L(e,s,a),Pe(l,e,a),c=!0},p(e,r){(!c||4&r[0])&&u!==(u=e[2]("editor.ordinary")+"")&&U(t,u),(!c||1&r[0])&&d!==(d=e[0].ordinaries.length>1?` ${e[63]+1}`:"")&&U(n,d),(!c||17&r[0])&&p!==(p=e[4]("ordinaries",e[64].ordinary)+"")&&U(i,p),e[64].above?h?h.p(e,r):(h=qu(e),h.c(),h.m(s.parentNode,s)):h&&(h.d(1),h=null);const o={};1&r[0]&&(o.el=e[64]),!a&&1&r[0]&&(a=!0,o.els=e[0].ordinaries,ae((()=>a=!1))),l.$set(o)},i(e){c||(be(l.$$.fragment,e),c=!0)},o(e){we(l.$$.fragment,e),c=!1},d(e){e&&S(t),e&&S(n),e&&S(r),e&&S(i),e&&S(o),h&&h.d(e),e&&S(s),Me(l,e)}}}function qu(e){let t,n,r,i,o=e[2]("editor.aboveCharges")+"";return{c(){t=A("i"),n=O("["),r=O(o),i=O("]"),N(t,"class","svelte-1k0wz0q")},m(e,o){L(e,t,o),x(t,n),x(t,r),x(t,i)},p(e,t){4&t[0]&&o!==(o=e[2]("editor.aboveCharges")+"")&&U(r,o)},d(e){e&&S(t)}}}function Hu(e){let t,n,r,i,o,s,l,a,c,u,d,p,h,f,m,g,v,$,y,b=!["bordure","orle"].includes(e[64].ordinary),w=e[1].division&&Uu(e);function k(t){e[35](t,e[64])}let E={t1:e[1].t1,line:e[64].line,t2:e[64].t};void 0!==e[64].ordinary&&(E.ordinary=e[64].ordinary),i=new Rc({props:E}),ne.push((()=>Te(i,"ordinary",k)));let _=Ra.lined[e[64].ordinary]&&Ru(e),C="counter"!==e[64].divided&&Bu(e),z=b&&Du(e);function T(t){e[39](t,e[64])}let O={};function M(t){e[40](t,e[64],e[65],e[63])}void 0!==e[64].above&&(O.above=e[64].above),d=new sc({props:O}),ne.push((()=>Te(d,"above",T)));let I={};return void 0!==e[64]&&(I.element=e[64]),m=new eu({props:I}),ne.push((()=>Te(m,"element",M))),{c(){t=A("div"),w&&w.c(),n=P(),r=A("div"),Oe(i.$$.fragment),s=P(),_&&_.c(),l=P(),C&&C.c(),a=P(),c=A("div"),z&&z.c(),u=P(),Oe(d.$$.fragment),h=P(),f=A("div"),Oe(m.$$.fragment),v=P(),N(r,"class","subsection svelte-1k0wz0q"),N(c,"class","subsection svelte-1k0wz0q"),N(f,"class","subsection svelte-1k0wz0q"),N(t,"class","panel svelte-1k0wz0q")},m(e,o){L(e,t,o),w&&w.m(t,null),x(t,n),x(t,r),Pe(i,r,null),x(t,s),_&&_.m(t,null),x(t,l),C&&C.m(t,null),x(t,a),x(t,c),z&&z.m(c,null),x(c,u),Pe(d,c,null),x(t,h),x(t,f),Pe(m,f,null),x(t,v),y=!0},p(r,s){(e=r)[1].division?w?(w.p(e,s),2&s[0]&&be(w,1)):(w=Uu(e),w.c(),be(w,1),w.m(t,n)):w&&($e(),we(w,1,1,(()=>{w=null})),ye());const h={};2&s[0]&&(h.t1=e[1].t1),1&s[0]&&(h.line=e[64].line),1&s[0]&&(h.t2=e[64].t),!o&&1&s[0]&&(o=!0,h.ordinary=e[64].ordinary,ae((()=>o=!1))),i.$set(h),Ra.lined[e[64].ordinary]?_?(_.p(e,s),1&s[0]&&be(_,1)):(_=Ru(e),_.c(),be(_,1),_.m(t,l)):_&&($e(),we(_,1,1,(()=>{_=null})),ye()),"counter"!==e[64].divided?C?(C.p(e,s),1&s[0]&&be(C,1)):(C=Bu(e),C.c(),be(C,1),C.m(t,a)):C&&($e(),we(C,1,1,(()=>{C=null})),ye()),1&s[0]&&(b=!["bordure","orle"].includes(e[64].ordinary)),b?z?(z.p(e,s),1&s[0]&&be(z,1)):(z=Du(e),z.c(),be(z,1),z.m(c,u)):z&&($e(),we(z,1,1,(()=>{z=null})),ye());const f={};!p&&1&s[0]&&(p=!0,f.above=e[64].above,ae((()=>p=!1))),d.$set(f);const v={};!g&&1&s[0]&&(g=!0,v.element=e[64],ae((()=>g=!1))),m.$set(v)},i(e){y||(be(w),be(i.$$.fragment,e),be(_),be(C),be(z),be(d.$$.fragment,e),be(m.$$.fragment,e),le((()=>{$||($=_e(t,ai,{},!0)),$.run(1)})),y=!0)},o(e){we(w),we(i.$$.fragment,e),we(_),we(C),we(z),we(d.$$.fragment,e),we(m.$$.fragment,e),$||($=_e(t,ai,{},!1)),$.run(0),y=!1},d(e){e&&S(t),w&&w.d(),Me(i),_&&_.d(),C&&C.d(),z&&z.d(),Me(d),Me(m),e&&$&&$.end()}}}function Uu(e){let t,n,r,i;function o(t){e[34](t,e[64])}let s={};return void 0!==e[64].divided&&(s.divided=e[64].divided),n=new Cc({props:s}),ne.push((()=>Te(n,"divided",o))),{c(){t=A("div"),Oe(n.$$.fragment),N(t,"class","subsection svelte-1k0wz0q")},m(e,r){L(e,t,r),Pe(n,t,null),i=!0},p(t,i){e=t;const o={};!r&&1&i[0]&&(r=!0,o.divided=e[64].divided,ae((()=>r=!1))),n.$set(o)},i(e){i||(be(n.$$.fragment,e),i=!0)},o(e){we(n.$$.fragment,e),i=!1},d(e){e&&S(t),Me(n)}}}function Ru(e){let t,n,r,i;function o(t){e[36](t,e[64])}let s={ordinary:e[64].ordinary,t1:e[1].t1,t2:e[64].t};return void 0!==e[64].line&&(s.line=e[64].line),n=new jc({props:s}),ne.push((()=>Te(n,"line",o))),{c(){t=A("div"),Oe(n.$$.fragment),N(t,"class","subsection svelte-1k0wz0q")},m(e,r){L(e,t,r),Pe(n,t,null),i=!0},p(t,i){e=t;const o={};1&i[0]&&(o.ordinary=e[64].ordinary),2&i[0]&&(o.t1=e[1].t1),1&i[0]&&(o.t2=e[64].t),!r&&1&i[0]&&(r=!0,o.line=e[64].line,ae((()=>r=!1))),n.$set(o)},i(e){i||(be(n.$$.fragment,e),i=!0)},o(e){we(n.$$.fragment,e),i=!1},d(e){e&&S(t),Me(n)}}}function Bu(e){let t,n,r,i;function o(t){e[37](t,e[64])}let s={};return void 0!==e[64].t&&(s.t1=e[64].t),n=new mu({props:s}),ne.push((()=>Te(n,"t1",o))),{c(){t=A("div"),Oe(n.$$.fragment),N(t,"class","subsection svelte-1k0wz0q")},m(e,r){L(e,t,r),Pe(n,t,null),i=!0},p(t,i){e=t;const o={};!r&&1&i[0]&&(r=!0,o.t1=e[64].t,ae((()=>r=!1))),n.$set(o)},i(e){i||(be(n.$$.fragment,e),i=!0)},o(e){we(n.$$.fragment,e),i=!1},d(e){e&&S(t),Me(n)}}}function Du(e){let t,n,r;function i(t){e[38](t,e[64],e[65],e[63])}let o={};return void 0!==e[64]&&(o.element=e[64]),t=new au({props:o}),ne.push((()=>Te(t,"element",i))),{c(){Oe(t.$$.fragment)},m(e,n){Pe(t,e,n),r=!0},p(r,i){e=r;const o={};!n&&1&i[0]&&(n=!0,o.element=e[64],ae((()=>n=!1))),t.$set(o)},i(e){r||(be(t.$$.fragment,e),r=!0)},o(e){we(t.$$.fragment,e),r=!1},d(e){Me(t,e)}}}function Fu(e){let t,n,r,i,o,s,l,a=e[5]&&Nu(e),c=e[3].ordinary[e[63]]&&Hu(e);return{c(){t=A("div"),a&&a.c(),r=P(),c&&c.c(),i=M(),N(t,"class","section svelte-1k0wz0q"),G(t,"expanded",e[3].ordinary[e[63]])},m(n,u){L(n,t,u),a&&a.m(t,null),L(n,r,u),c&&c.m(n,u),L(n,i,u),o=!0,s||(l=I(t,"click",e[7]("ordinary",e[63])),s=!0)},p(n,r){(e=n)[5]?a?(a.p(e,r),32&r[0]&&be(a,1)):(a=Nu(e),a.c(),be(a,1),a.m(t,null)):a&&($e(),we(a,1,1,(()=>{a=null})),ye()),8&r[0]&&G(t,"expanded",e[3].ordinary[e[63]]),e[3].ordinary[e[63]]?c?(c.p(e,r),8&r[0]&&be(c,1)):(c=Hu(e),c.c(),be(c,1),c.m(i.parentNode,i)):c&&($e(),we(c,1,1,(()=>{c=null})),ye())},i(e){o||(be(a),le((()=>{n||(n=_e(t,ai,{},!0)),n.run(1)})),be(c),o=!0)},o(e){we(a),n||(n=_e(t,ai,{},!1)),n.run(0),we(c),o=!1},d(e){e&&S(t),a&&a.d(),e&&n&&n.end(),e&&S(r),c&&c.d(e),e&&S(i),s=!1,l()}}}function Gu(e){let t,n,r,i,o,s,l,a,c=e[2]("tinctures.charge")+"",u=e[0].charges.length>1?` ${e[63]+1}`:"",d=e[4]("charges",e[61].charge)+"";function p(t){e[41](t)}let h={el:e[61],i:e[63]};return void 0!==e[0].charges&&(h.els=e[0].charges),s=new kc({props:h}),ne.push((()=>Te(s,"els",p))),{c(){t=O(c),n=O(u),r=O(": "),i=O(d),o=P(),Oe(s.$$.fragment)},m(e,l){L(e,t,l),L(e,n,l),L(e,r,l),L(e,i,l),L(e,o,l),Pe(s,e,l),a=!0},p(e,r){(!a||4&r[0])&&c!==(c=e[2]("tinctures.charge")+"")&&U(t,c),(!a||1&r[0])&&u!==(u=e[0].charges.length>1?` ${e[63]+1}`:"")&&U(n,u),(!a||17&r[0])&&d!==(d=e[4]("charges",e[61].charge)+"")&&U(i,d);const o={};1&r[0]&&(o.el=e[61]),!l&&1&r[0]&&(l=!0,o.els=e[0].charges,ae((()=>l=!1))),s.$set(o)},i(e){a||(be(s.$$.fragment,e),a=!0)},o(e){we(s.$$.fragment,e),a=!1},d(e){e&&S(t),e&&S(n),e&&S(r),e&&S(i),e&&S(o),Me(s,e)}}}function Vu(e){let t,n,r,i,o,s,l,a,c,u,d,p,h,f,m,g,v,$,y,b,w,k=!ed(e[61].charge)&&"counter"!==e[61].divided,E=e[1].division&&Ju(e);function _(t){e[43](t,e[61])}function C(t){e[44](t,e[61])}let z={type:"charge",t1:e[1].t1,t2:e[61].t,t3:e[61].t2,t4:e[61].t3,sinister:e[61].sinister,reversed:e[61].reversed,division:e[1].division};void 0!==e[61].charge&&(z.charge=e[61].charge),void 0!==e[61].type&&(z.category=e[61].type),i=new gc({props:z}),ne.push((()=>Te(i,"charge",_))),ne.push((()=>Te(i,"category",C)));let T=k&&Ku(e);function O(t){e[48](t,e[61],e[62],e[63])}let M={};function I(t){e[49](t,e[61],e[62],e[63])}void 0!==e[61]&&(M.element=e[61]),u=new au({props:M}),ne.push((()=>Te(u,"element",O)));let j={};function q(t){e[50](t,e[61],e[62],e[63])}void 0!==e[61]&&(j.charge=e[61]),f=new Xc({props:j}),ne.push((()=>Te(f,"charge",I)));let H={};return void 0!==e[61]&&(H.element=e[61]),$=new eu({props:H}),ne.push((()=>Te($,"element",q))),{c(){t=A("div"),n=A("div"),E&&E.c(),r=P(),Oe(i.$$.fragment),l=P(),T&&T.c(),a=P(),c=A("div"),Oe(u.$$.fragment),p=P(),h=A("div"),Oe(f.$$.fragment),g=P(),v=A("div"),Oe($.$$.fragment),N(n,"class","subsection svelte-1k0wz0q"),N(c,"class","subsection svelte-1k0wz0q"),N(h,"class","subsection svelte-1k0wz0q"),N(v,"class","subsection svelte-1k0wz0q"),N(t,"class","panel svelte-1k0wz0q")},m(e,o){L(e,t,o),x(t,n),E&&E.m(n,null),x(n,r),Pe(i,n,null),x(t,l),T&&T.m(t,null),x(t,a),x(t,c),Pe(u,c,null),x(t,p),x(t,h),Pe(f,h,null),x(t,g),x(t,v),Pe($,v,null),w=!0},p(l,c){(e=l)[1].division?E?(E.p(e,c),2&c[0]&&be(E,1)):(E=Ju(e),E.c(),be(E,1),E.m(n,r)):E&&($e(),we(E,1,1,(()=>{E=null})),ye());const p={};2&c[0]&&(p.t1=e[1].t1),1&c[0]&&(p.t2=e[61].t),1&c[0]&&(p.t3=e[61].t2),1&c[0]&&(p.t4=e[61].t3),1&c[0]&&(p.sinister=e[61].sinister),1&c[0]&&(p.reversed=e[61].reversed),2&c[0]&&(p.division=e[1].division),!o&&1&c[0]&&(o=!0,p.charge=e[61].charge,ae((()=>o=!1))),!s&&1&c[0]&&(s=!0,p.category=e[61].type,ae((()=>s=!1))),i.$set(p),1&c[0]&&(k=!ed(e[61].charge)&&"counter"!==e[61].divided),k?T?(T.p(e,c),1&c[0]&&be(T,1)):(T=Ku(e),T.c(),be(T,1),T.m(t,a)):T&&($e(),we(T,1,1,(()=>{T=null})),ye());const h={};!d&&1&c[0]&&(d=!0,h.element=e[61],ae((()=>d=!1))),u.$set(h);const g={};!m&&1&c[0]&&(m=!0,g.charge=e[61],ae((()=>m=!1))),f.$set(g);const v={};!y&&1&c[0]&&(y=!0,v.element=e[61],ae((()=>y=!1))),$.$set(v)},i(e){w||(be(E),be(i.$$.fragment,e),be(T),be(u.$$.fragment,e),be(f.$$.fragment,e),be($.$$.fragment,e),le((()=>{b||(b=_e(t,ai,{},!0)),b.run(1)})),w=!0)},o(e){we(E),we(i.$$.fragment,e),we(T),we(u.$$.fragment,e),we(f.$$.fragment,e),we($.$$.fragment,e),b||(b=_e(t,ai,{},!1)),b.run(0),w=!1},d(e){e&&S(t),E&&E.d(),Me(i),T&&T.d(),Me(u),Me(f),Me($),e&&b&&b.end()}}}function Ju(e){let t,n,r;function i(t){e[42](t,e[61])}let o={raster:ed(e[61].charge)};return void 0!==e[61].divided&&(o.divided=e[61].divided),t=new Cc({props:o}),ne.push((()=>Te(t,"divided",i))),{c(){Oe(t.$$.fragment)},m(e,n){Pe(t,e,n),r=!0},p(r,i){e=r;const o={};1&i[0]&&(o.raster=ed(e[61].charge)),!n&&1&i[0]&&(n=!0,o.divided=e[61].divided,ae((()=>n=!1))),t.$set(o)},i(e){r||(be(t.$$.fragment,e),r=!0)},o(e){we(t.$$.fragment,e),r=!1},d(e){Me(t,e)}}}function Ku(e){let t,n,r,i,o;function s(t){e[45](t,e[61])}let l={};void 0!==e[61].t&&(l.t1=e[61].t),n=new mu({props:l}),ne.push((()=>Te(n,"t1",s)));let a=Ba.data[e[61].charge]?.colors>1&&Zu(e);return{c(){t=A("div"),Oe(n.$$.fragment),i=P(),a&&a.c(),N(t,"class","subsection svelte-1k0wz0q")},m(e,r){L(e,t,r),Pe(n,t,null),x(t,i),a&&a.m(t,null),o=!0},p(i,o){e=i;const s={};!r&&1&o[0]&&(r=!0,s.t1=e[61].t,ae((()=>r=!1))),n.$set(s),Ba.data[e[61].charge]?.colors>1?a?(a.p(e,o),1&o[0]&&be(a,1)):(a=Zu(e),a.c(),be(a,1),a.m(t,null)):a&&($e(),we(a,1,1,(()=>{a=null})),ye())},i(e){o||(be(n.$$.fragment,e),be(a),o=!0)},o(e){we(n.$$.fragment,e),we(a),o=!1},d(e){e&&S(t),Me(n),a&&a.d()}}}function Zu(e){let t,n,r,i,o;function s(t){e[46](t,e[61])}let l={};void 0!==e[61].t2&&(l.t1=e[61].t2),t=new mu({props:l}),ne.push((()=>Te(t,"t1",s)));let a=Ba.data[e[61].charge]?.colors>2&&Wu(e);return{c(){Oe(t.$$.fragment),r=P(),a&&a.c(),i=M()},m(e,n){Pe(t,e,n),L(e,r,n),a&&a.m(e,n),L(e,i,n),o=!0},p(r,o){e=r;const s={};!n&&1&o[0]&&(n=!0,s.t1=e[61].t2,ae((()=>n=!1))),t.$set(s),Ba.data[e[61].charge]?.colors>2?a?(a.p(e,o),1&o[0]&&be(a,1)):(a=Wu(e),a.c(),be(a,1),a.m(i.parentNode,i)):a&&($e(),we(a,1,1,(()=>{a=null})),ye())},i(e){o||(be(t.$$.fragment,e),be(a),o=!0)},o(e){we(t.$$.fragment,e),we(a),o=!1},d(e){Me(t,e),e&&S(r),a&&a.d(e),e&&S(i)}}}function Wu(e){let t,n,r;function i(t){e[47](t,e[61])}let o={};return void 0!==e[61].t3&&(o.t1=e[61].t3),t=new mu({props:o}),ne.push((()=>Te(t,"t1",i))),{c(){Oe(t.$$.fragment)},m(e,n){Pe(t,e,n),r=!0},p(r,i){e=r;const o={};!n&&1&i[0]&&(n=!0,o.t1=e[61].t3,ae((()=>n=!1))),t.$set(o)},i(e){r||(be(t.$$.fragment,e),r=!0)},o(e){we(t.$$.fragment,e),r=!1},d(e){Me(t,e)}}}function Xu(e){let t,n,r,i,o,s,l,a=e[5]&&Gu(e),c=e[3].charge[e[63]]&&Vu(e);return{c(){t=A("div"),a&&a.c(),r=P(),c&&c.c(),i=M(),N(t,"class","section svelte-1k0wz0q"),G(t,"expanded",e[3].charge[e[63]])},m(n,u){L(n,t,u),a&&a.m(t,null),L(n,r,u),c&&c.m(n,u),L(n,i,u),o=!0,s||(l=I(t,"click",e[7]("charge",e[63])),s=!0)},p(n,r){(e=n)[5]?a?(a.p(e,r),32&r[0]&&be(a,1)):(a=Gu(e),a.c(),be(a,1),a.m(t,null)):a&&($e(),we(a,1,1,(()=>{a=null})),ye()),8&r[0]&&G(t,"expanded",e[3].charge[e[63]]),e[3].charge[e[63]]?c?(c.p(e,r),8&r[0]&&be(c,1)):(c=Vu(e),c.c(),be(c,1),c.m(i.parentNode,i)):c&&($e(),we(c,1,1,(()=>{c=null})),ye())},i(e){o||(be(a),le((()=>{n||(n=_e(t,ai,{},!0)),n.run(1)})),be(c),o=!0)},o(e){we(a),n||(n=_e(t,ai,{},!1)),n.run(0),we(c),o=!1},d(e){e&&S(t),a&&a.d(),e&&n&&n.end(),e&&S(r),c&&c.d(e),e&&S(i),s=!1,l()}}}function Yu(e){let t,n,r,o,s,l,a,c=e[2]("editor.addOrdinary")+"",u=e[2]("editor.addCharge")+"";return{c(){t=A("div"),n=O(c),r=P(),o=A("div"),s=O(u),N(t,"class","buttonLine svelte-1k0wz0q"),N(o,"class","buttonLine svelte-1k0wz0q")},m(i,c){L(i,t,c),x(t,n),L(i,r,c),L(i,o,c),x(o,s),l||(a=[I(t,"click",e[8]),I(o,"click",e[9])],l=!0)},p(e,t){4&t[0]&&c!==(c=e[2]("editor.addOrdinary")+"")&&U(n,c),4&t[0]&&u!==(u=e[2]("editor.addCharge")+"")&&U(s,u)},d(e){e&&S(t),e&&S(r),e&&S(o),l=!1,i(a)}}}function Qu(t){let n,r,o,l,a,c,u,d,p,h,f,m,g,v,$,y,b,w,k=t[1],E=ku(t),_=t[5]&&Eu(t),C=t[3].field&&xu(t),T=t[5]&&zu(t),O=t[3].division&&Au(t),M=t[0].ordinaries,j=[];for(let e=0;ewe(j[e],1,1,(()=>{j[e]=null}));let H=t[0].charges,U=[];for(let e=0;ewe(U[e],1,1,(()=>{U[e]=null}));let B=t[5]&&Yu(t);return{c(){n=A("main"),r=A("div"),E.c(),l=P(),a=A("div"),c=A("div"),_&&_.c(),u=P(),C&&C.c(),d=P(),p=A("div"),T&&T.c(),h=P(),O&&O.c(),f=P();for(let e=0;e{C=null})),ye()),t[5]?T?T.p(t,i):(T=zu(t),T.c(),T.m(p,null)):T&&(T.d(1),T=null),8&i[0]&&G(p,"expanded",t[3].division),t[3].division?O?(O.p(t,i),8&i[0]&&be(O,1)):(O=Au(t),O.c(),be(O,1),O.m(a,f)):O&&($e(),we(O,1,1,(()=>{O=null})),ye()),191&i[0]){let e;for(M=t[0].ordinaries,e=0;e{o=Ee(r,li,{x:t[6]?0:1e3,y:t[6]?1e3:0,duration:800}),o.start()})),be(C),be(O);for(let e=0;e{v=Ee(a,li,{x:t[6]?1e3:0,y:t[6]?0:1e3,duration:1e3}),v.start()})),$&&$.end(1),y=!0}},o(e){we(E),we(C),we(O),j=j.filter(yu);for(let e=0;en(2,i=e))),c(e,Jn,(e=>n(12,o=e))),c(e,Ln,(e=>n(13,s=e))),c(e,Br,(e=>n(51,l=e))),c(e,Ar,(e=>n(52,a=e))),c(e,Ur,(e=>n(53,u=e))),c(e,Sr,(e=>n(54,d=e))),c(e,Dr,(e=>n(14,p=e))),c(e,Nr,(e=>n(55,h=e))),c(e,jr,(e=>n(15,f=e))),c(e,Ir,(e=>n(16,m=e))),c(e,Er,(e=>n(5,v=e)));let{historyId:$,seed:y}=t,b={},w={field:0,division:0,ordinary:[],charge:[]};const k=innerWidth>innerHeight;g(Ur,u.transform=null,u),g(Ur,u.positions=null,u);let E=h[$]||Fa(y||void 0);function x(){function e(e){return e?.includes("-")}function t(e){return"semy"===e?.slice(0,4)}function r(e){return e[0].split("_of_")[1]}function i(e){return Object.keys(Ba.types).find((t=>void 0!==Ba[t][e]))||e}function o(e){return i(r(e))}function s(e){return lr("argent"===e||"or"===e?a.colours:a.metals)}return E.shield&&g(Sr,d=E.shield,d),n(0,b.field=function(){const n=t(E.t1)?"semy":e(E.t1)?"pattern":"tincture";let i,l,a="vair",c="lozenge",u="conventional",d="standard";const p=E.t1.split("-");"tincture"===n?(i=E.t1,l=s(E.t1)):(i=p[1],l=p[2],d=p[3]||"standard");"pattern"===n?a=p[0]:"semy"===n&&(c=r(p),u=o(p));return{type:n,t1:i,t2:l,pattern:a,charge:c,semy:u,size:d}}(),b),n(0,b.division=function(){let n,i,l="tincture",a="no",c="straight",u="vair",d="lozenge",p="conventional",h="standard";if(E.division){const f=E.division.t.split("-");l=t(E.division.t)?"semy":e(E.division.t)?"pattern":"tincture",a=E.division.division,c=E.division.line||"straight",n="tincture"===l?E.division.t:f[1],i="tincture"===l?s(n):f[2],"pattern"===l&&(u=f[0]),"semy"===l&&(d=r(f),p=o(f)),h=f[3]||"standard"}else n=s(b.field.t1),i=s(n);return{division:a,line:c,type:l,t1:n,t2:i,pattern:u,charge:d,semy:p,size:h}}(),b),n(0,b.ordinaries=function(){if(!E.ordinaries)return[];const e=E.ordinaries.map((e=>{const{ordinary:t,t:n}=e,r=e.line||"straight",i=Boolean(e.stroke),o=e.stroke||"#000000",s=e.strokeWidth||1,l=e.size||1,a=e.x||0,c=e.y||0,d=e.angle||0,p=e.divided||"",h=e.above||!1;return d&&g(Ur,u.transform=`rotate(${d})`,u),{ordinary:t,t:n,line:r,showStroke:i,stroke:o,strokeWidth:s,size:l,x:a,y:c,angle:d,divided:p,above:h}}));return e}(),b),n(0,b.charges=function(){if(!E.charges)return[];const e=E.charges.map((e=>{const{charge:t,t:n,t2:r,t3:o,p:s,size:l}=e,a=i(t),c="none"!==e.stroke,d=c&&e.stroke?e.stroke:"#000000",p=e.divided||"",h=e.sinister||!1,f=e.reversed||!1,m=e.x||0,v=e.y||0,$=e.angle||0;return $&&g(Ur,u.transform=`rotate(${$})`,u),{charge:t,type:a,showStroke:c,stroke:d,divided:p,t:n,t2:r,t3:o,p:s,size:l,sinister:h,reversed:f,x:m,y:v,angle:$}}));return e}(),b),b}return"ontouchstart"in window||!E.ordinaries&&!E.charges||l||Br.info("info.tipEditControls"),e.$$set=e=>{"historyId"in e&&n(10,$=e.historyId),"seed"in e&&n(11,y=e.seed)},e.$$.update=()=>{16384&e.$$.dirty[0]&&Dr.length()&&(n(1,E=JSON.parse(p[0])),x()),1024&e.$$.dirty[0]&&function(e){n(1,E=h[e]||Fa(y||void 0)),h[e]||h.push(E),Dr.reset(),x()}($),1&e.$$.dirty[0]&&function(){if(delete E.seed,"tincture"===b.field.type)n(1,E.t1=b.field.t1,E);else{const e=["semy"===b.field.type?"semy_of_"+b.field.charge:b.field.pattern,b.field.t1,b.field.t2];"standard"!==b.field.size&&e.push(b.field.size),n(1,E.t1=e.join("-"),E)}if(b.division.division&&"no"!==b.division.division)if(n(1,E.division={division:b.division.division},E),Ua[b.division.division]&&n(1,E.division.line=b.division.line,E),"tincture"===b.division.type)n(1,E.division.t=b.division.t1,E);else{const e=["semy"===b.division.type?"semy_of_"+b.division.charge:b.division.pattern,b.division.t1,b.division.t2];"standard"!==b.division.size&&e.push(b.division.size),n(1,E.division.t=e.join("-"),E)}else delete E.division;b.ordinaries.length?n(1,E.ordinaries=b.ordinaries.map((e=>{const t={ordinary:e.ordinary,t:e.t};return Ra.lined[e.ordinary]&&(t.line=e.line),E.division&&e.divided&&(t.divided=e.divided),e.showStroke&&(t.stroke=e.stroke),e.showStroke&&1!==e.strokeWidth&&(t.strokeWidth=e.strokeWidth),e.size&&1!==e.size&&(t.size=e.size),(e.x||e.y)&&(t.x=e.x,t.y=e.y),e.angle&&(t.angle=e.angle),e.above&&(t.above=!0),t})),E):delete E.ordinaries,b.charges.length?n(1,E.charges=b.charges.map((e=>{const t={charge:e.charge,t:e.t,p:e.p,size:e.size};return Ba.data[e.charge]?.colors>1&&(t.t2=e.t2),Ba.data[e.charge]?.colors>2&&(t.t3=e.t3),e.showStroke?"#000000"!==e.stroke&&(t.stroke=e.stroke):t.stroke="none",e.divided&&(t.divided=e.divided),e.sinister&&(t.sinister=1),e.reversed&&(t.reversed=1),(e.x||e.y)&&(t.x=e.x,t.y=e.y),e.angle&&(t.angle=e.angle),t})),E):delete E.charges}(),2&e.$$.dirty[0]&&function(e){e.shield||(e.shield=d),Dr.add(JSON.stringify(e))}(E),65536&e.$$.dirty[0]&&localStorage.setItem("grid",m),32768&e.$$.dirty[0]&&localStorage.setItem("showGrid",f),12292&e.$$.dirty[0]&&n(4,r=(e,t)=>{const n=s?.[o]?.[e]?.[t];return n?i(`${e}.${t}`):t})},[b,E,i,w,r,v,k,(e,t)=>()=>{n(3,void 0!==t?w[e][t]=!w[e][t]:w[e]=!w[e],w)},function(){const e={ordinary:sr(Object.keys(Ra.lined).concat(Object.keys(Ra.straight))),t:lr(a[lr(a.charge)]),showStroke:!1,stroke:"#000000",strokeWidth:1,line:"straight",size:1,x:0,y:0,angle:0,divided:""};n(0,b.ordinaries=[...b.ordinaries,e],b)},function(){const e=lr(Ba.single),t=lr(Ba[e]),r={charge:t,t:lr(a[lr(a.charge)]),p:"e",showStroke:!0,stroke:"#000000",type:e,size:1.5,sinister:!1,reversed:!1,x:0,y:0,angle:0,divided:""};Ba.data[t]?.colors>1&&(r.t2=lr(a[lr(a.charge)])),Ba.data[t]?.colors>2&&(r.t3=lr(a[lr(a.charge)])),n(0,b.charges=[...b.charges,r],b)},$,y,o,s,p,f,m,function(t){e.$$.not_equal(b.field.type,t)&&(b.field.type=t,n(0,b))},function(t){e.$$.not_equal(b.field.size,t)&&(b.field.size=t,n(0,b))},function(t){e.$$.not_equal(b.field.t1,t)&&(b.field.t1=t,n(0,b))},function(t){e.$$.not_equal(b.field.t2,t)&&(b.field.t2=t,n(0,b))},function(t){e.$$.not_equal(b.field.pattern,t)&&(b.field.pattern=t,n(0,b))},function(t){e.$$.not_equal(b.field.charge,t)&&(b.field.charge=t,n(0,b))},function(t){e.$$.not_equal(b.field.semy,t)&&(b.field.semy=t,n(0,b))},function(t){e.$$.not_equal(b.division.division,t)&&(b.division.division=t,n(0,b))},function(t){e.$$.not_equal(b.division.line,t)&&(b.division.line=t,n(0,b))},function(t){e.$$.not_equal(b.division.type,t)&&(b.division.type=t,n(0,b))},function(t){e.$$.not_equal(b.division.size,t)&&(b.division.size=t,n(0,b))},function(t){e.$$.not_equal(b.division.t1,t)&&(b.division.t1=t,n(0,b))},function(t){e.$$.not_equal(b.division.t2,t)&&(b.division.t2=t,n(0,b))},function(t){e.$$.not_equal(b.division.pattern,t)&&(b.division.pattern=t,n(0,b))},function(t){e.$$.not_equal(b.division.charge,t)&&(b.division.charge=t,n(0,b))},function(t){e.$$.not_equal(b.division.semy,t)&&(b.division.semy=t,n(0,b))},function(t){e.$$.not_equal(b.ordinaries,t)&&(b.ordinaries=t,n(0,b))},function(t,r){e.$$.not_equal(r.divided,t)&&(r.divided=t,n(0,b))},function(t,r){e.$$.not_equal(r.ordinary,t)&&(r.ordinary=t,n(0,b))},function(t,r){e.$$.not_equal(r.line,t)&&(r.line=t,n(0,b))},function(t,r){e.$$.not_equal(r.t,t)&&(r.t=t,n(0,b))},function(e,t,r,i){r[i]=e,n(0,b)},function(t,r){e.$$.not_equal(r.above,t)&&(r.above=t,n(0,b))},function(e,t,r,i){r[i]=e,n(0,b)},function(t){e.$$.not_equal(b.charges,t)&&(b.charges=t,n(0,b))},function(t,r){e.$$.not_equal(r.divided,t)&&(r.divided=t,n(0,b))},function(t,r){e.$$.not_equal(r.charge,t)&&(r.charge=t,n(0,b))},function(t,r){e.$$.not_equal(r.type,t)&&(r.type=t,n(0,b))},function(t,r){e.$$.not_equal(r.t,t)&&(r.t=t,n(0,b))},function(t,r){e.$$.not_equal(r.t2,t)&&(r.t2=t,n(0,b))},function(t,r){e.$$.not_equal(r.t3,t)&&(r.t3=t,n(0,b))},function(e,t,r,i){r[i]=e,n(0,b)},function(e,t,r,i){r[i]=e,n(0,b)},function(e,t,r,i){r[i]=e,n(0,b)}]}class nd extends Ne{constructor(e){super(),je(this,e,td,Qu,s,{historyId:10,seed:11},null,[-1,-1,-1])}}function rd(e,t,n){const r=e.slice();return r[14]=t[n],r[16]=n,r}function id(e){let t,n;return t=new ja({props:{coa:e[14],i:e[16],width:e[0],height:e[1]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};4&n&&(r.coa=e[14]),1&n&&(r.width=e[0]),2&n&&(r.height=e[1]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function od(t){let n,r,o,l,a,c,u,d,p,h,f,m,g,v,$,y=t[14],b=id(t);function w(){return t[8](t[16])}function k(){return t[9](t[16])}function E(){return t[10](t[16])}return{c(){n=A("div"),b.c(),r=P(),o=A("div"),l=T("svg"),a=T("use"),c=P(),u=T("svg"),d=T("use"),p=P(),h=T("svg"),f=T("use"),m=P(),N(a,"href","#dice-icon"),N(l,"class","svelte-1ugrazl"),N(d,"href","#pencil-icon"),N(u,"class","svelte-1ugrazl"),N(f,"href","#download-icon"),N(h,"class","svelte-1ugrazl"),N(o,"class","control svelte-1ugrazl"),N(n,"class","svelte-1ugrazl")},m(e,t){L(e,n,t),b.m(n,null),x(n,r),x(n,o),x(o,l),x(l,a),x(o,c),x(o,u),x(u,d),x(o,p),x(o,h),x(h,f),x(n,m),g=!0,v||($=[I(l,"click",w),I(u,"click",k),I(h,"click",E)],v=!0)},p(i,o){t=i,4&o&&s(y,y=t[14])?($e(),we(b,1,1,e),ye(),b=id(t),b.c(),be(b),b.m(n,r)):b.p(t,o)},i(e){g||(be(b),g=!0)},o(e){we(b),g=!1},d(e){e&&S(n),b.d(e),v=!1,i($)}}}function sd(e){let t,n,r,i=e[2],o=[];for(let t=0;twe(o[e],1,1,(()=>{o[e]=null}));return{c(){t=A("main");for(let e=0;e{n||(n=_e(t,si,{duration:500},!0)),n.run(1)})),r=!0}},o(e){o=o.filter(Boolean);for(let e=0;en(11,o=e))),c(e,Nr,(e=>n(7,s=e))),c(e,Hr,(e=>n(12,l=e))),c(e,qr,(e=>n(13,a=e)));let{gallery:u}=t,{width:d}=t,{height:p}=t;function h(e){g(Ur,o.i=e,o),g(Hr,l++,l),g(qr,a[l]=a[l-1].slice(),a),g(qr,a[l][o.i]=s.length,a)}function f(e){g(Ur,o.edit=1,o),g(Ur,o.c=u[e],o),g(Ur,o.i=e,o)}return e.$$set=e=>{"gallery"in e&&n(6,u=e.gallery),"width"in e&&n(0,d=e.width),"height"in e&&n(1,p=e.height)},e.$$.update=()=>{var t,o,l;1&e.$$.dirty&&n(3,(t=d/20,o=6,l=12,r=Math.max(Math.min(Math.round(t),l),o))),192&e.$$.dirty&&n(2,i=u.map((e=>(s[e]||g(Nr,s[e]=Fa(),s),s[e]))))},[d,p,i,r,h,f,u,s,e=>h(e),e=>f(e),e=>Gr(e)]}class ad extends Ne{constructor(e){super(),je(this,e,ld,sd,s,{gallery:6,width:0,height:1})}}function cd(t){let n,r,i,o,s,l,a,c,u,d,p,h,f,m,g,v,$,y=t[1]("license.unknown")+"",b=t[1]("license.proprietary")+"",w=t[1]("license.copyleft")+"",k=t[1]("license.publicDomain")+"";return{c(){n=A("select"),r=A("option"),i=O(y),o=A("option"),s=O(b),l=A("option"),a=O(w),c=A("option"),u=O(k),d=A("option"),d.textContent="CC BY",p=A("option"),p.textContent="CC BY-SA",h=A("option"),h.textContent="CC BY-NC",f=A("option"),f.textContent="CC BY-ND",m=A("option"),m.textContent="CC BY-NC-SA",g=A("option"),g.textContent="CC BY-NC-ND",r.__value="Unknown",r.value=r.__value,r.selected=!0,o.__value="Proprietary",o.value=o.__value,l.__value="Copyright Free",l.value=l.__value,c.__value="https://creativecommons.org/publicdomain/zero/1.0",c.value=c.__value,d.__value="https://creativecommons.org/licenses/by/4.0",d.value=d.__value,p.__value="https://creativecommons.org/licenses/by-sa/4.0",p.value=p.__value,h.__value="https://creativecommons.org/licenses/by-nc/4.0",h.value=h.__value,f.__value="https://creativecommons.org/licenses/by-nd/4.0",f.value=f.__value,m.__value="https://creativecommons.org/licenses/by-nc-sa/4.0",m.value=m.__value,g.__value="https://creativecommons.org/licenses/by-nc-nd/4.0",g.value=g.__value,B(n,"width","10em"),void 0===t[0]&&le((()=>t[2].call(n)))},m(e,y){L(e,n,y),x(n,r),x(r,i),x(n,o),x(o,s),x(n,l),x(l,a),x(n,c),x(c,u),x(n,d),x(n,p),x(n,h),x(n,f),x(n,m),x(n,g),D(n,t[0]),v||($=I(n,"change",t[2]),v=!0)},p(e,[t]){2&t&&y!==(y=e[1]("license.unknown")+"")&&U(i,y),2&t&&b!==(b=e[1]("license.proprietary")+"")&&U(s,b),2&t&&w!==(w=e[1]("license.copyleft")+"")&&U(a,w),2&t&&k!==(k=e[1]("license.publicDomain")+"")&&U(u,k),1&t&&D(n,e[0])},i:e,o:e,d(e){e&&S(n),v=!1,$()}}}function ud(e,t,n){let r;c(e,or,(e=>n(1,r=e)));let{license:i}=t;return e.$$set=e=>{"license"in e&&n(0,i=e.license)},[i,r,function(){i=F(this),n(0,i)}]}class dd extends Ne{constructor(e){super(),je(this,e,ud,cd,s,{license:0})}}const pd=document.querySelector.bind(document);document.querySelectorAll.bind(document),Node.prototype.on=window.on=function(e,t){this.addEventListener(e,t)},Node.prototype.off=window.off=function(e,t){this.removeEventListener(e,t)};const hd=e=>({dragging:2&e[0]}),fd=e=>({dragging:e[1]});function md(e,t,n){const r=e.slice();return r[29]=t[n],r}function gd(e){let t,n,r,i,o,s;const l=e[16].default,a=u(l,e,e[15],fd),c=a||function(e){let t;return{c(){t=A("div"),t.innerHTML="Drag & Drop image here or browse "},m(e,n){L(e,t,n)},d(e){e&&S(t)}}}();return{c(){t=A("label"),c&&c.c(),n=P(),r=A("input"),N(r,"type","file"),N(r,"accept","image/*"),N(r,"class","svelte-846jl0"),N(t,"class","dragging svelte-846jl0")},m(l,a){L(l,t,a),c&&c.m(t,null),x(t,n),x(t,r),i=!0,o||(s=I(r,"input",e[13](wd)),o=!0)},p(e,t){a&&a.p&&(!i||32770&t[0])&&h(a,l,e,e[15],i?p(l,e[15],t,hd):f(e[15]),fd)},i(e){i||(be(c,e),i=!0)},o(e){we(c,e),i=!1},d(e){e&&S(t),c&&c.d(e),o=!1,s()}}}function vd(e){let t,n,r,o,s,l,a,c,u,d,p,h,f,m,g,$,y,b,w,k,E,_,C,O,M,j,q,U,B,F,G,V,J,K,Z,W,X,Y,Q,ee,te,re,ie,oe,se,ce,ue,de,pe,he,fe,me,ge,ve,$e,ye,ke,Ee,xe,_e;function Ce(t){e[23](t)}let Le={};void 0!==e[9]&&(Le.license=e[9]),te=new dd({props:Le}),ne.push((()=>Te(te,"license",Ce)));let Se=Object.keys(e[0].types),ze=[];for(let t=0;te[25].call(me))),N(pe,"data-tooltip","Category to put a charge"),N($e,"class","svelte-846jl0"),N(ke,"class","svelte-846jl0"),N(ve,"class","buttons svelte-846jl0"),N(h,"class","inputs svelte-846jl0")},m(i,o){L(i,t,o),x(t,n),x(n,r),x(n,c),x(n,d),L(i,p,o),L(i,h,o),x(h,f),x(f,m),x(f,g),x(f,$),R($,e[3]),x(h,y),x(h,b),x(b,w),x(b,k),x(b,E),R(E,e[4]),x(h,_),x(h,C),x(C,O),x(C,M),x(C,j),R(j,e[5]),x(h,q),x(h,U),x(U,B),x(U,F),x(U,G),R(G,e[8]),x(h,V),x(h,J),x(J,K),x(J,Z),x(J,W),R(W,e[10]),x(h,X),x(h,Y),x(Y,Q),x(Y,ee),Pe(te,Y,null),x(h,ie),x(h,oe),x(oe,se),x(oe,ce),x(oe,ue),R(ue,e[6]),x(h,de),x(h,pe),x(pe,he),x(pe,fe),x(pe,me);for(let e=0;ere=!1))),te.$set(n),64&t[0]&&ue.value!==e[6]&&R(ue,e[6]),1&t[0]){let n;for(Se=Object.keys(e[0].types),n=0;n{p[n]=null})),ye(),l=p[s],l?l.p(e,t):(l=p[s]=d[s](e),l.c()),be(l,1),l.m(o,null))},i(e){a||(be(l),a=!0)},o(e){we(l),a=!1},d(e){e&&S(t),p[s].d(),c=!1,i(u)}}}function bd({dataTransfer:{files:e,items:t}}){return e.length?[...e]:t.filter((({kind:e})=>"file"===e)).map((({getAsFile:e})=>e()))}function wd({target:e}){const t=e.files?[...e.files]:[];return e.value="",t}function kd(e,t,n){let r,i;c(e,Ur,(e=>n(11,r=e))),c(e,Sr,(e=>n(12,i=e)));let o,s,l,a,{$$slots:u={},$$scope:d}=t,p=!1,h=!1,f=50,m=0,v=0,$="uploaded";return e.$$set=e=>{"$$scope"in e&&n(15,d=e.$$scope)},[Ba,p,h,f,m,v,o,$,s,l,a,r,i,e=>t=>{n(1,p=!1);const r=e(t),i=r.length?r[0]:[];i.type.match(/image.*/)?(n(2,h=!0),Br.info("info.tipUploadImageSize"),n(6,o=cr(i.name)),function(e){const t=new FileReader;t.onload=function(e){const t=e.target.result;document.getElementById("rasterUpload").querySelector("svg image").setAttribute("href",t)},t.readAsDataURL(e)}(i)):Br.error("error.notAnImage")},function(){const e=Object.keys(Ba.types).map((e=>Object.keys(Ba[e]))).flat();if(n(6,o=cr(o)),!o||document.getElementById(o)||e.includes(o))return void Br.error("error.notUniqueName");Ba.types[$]||n(0,Ba.types[$]=6,Ba),Ba.single[$]||n(0,Ba.single[$]=6,Ba),n(0,Ba[$][o]=5,Ba),delete Ba.types.array,delete Ba.single.array,delete Ba[$].array;const t=pd("#rasterUpload svg image").cloneNode(!0);t.id=o,s&&t.setAttribute("source",s),l&&t.setAttribute("license",l),a&&t.setAttribute("author",a),document.getElementById("charges").appendChild(t),n(2,h=!1),g(Ur,r.raster=0,r),Br.success("success.chargeAdded")},d,u,()=>g(Ur,r.raster=0,r),function(){f=H(this.value),n(3,f)},function(){m=H(this.value),n(4,m)},function(){v=H(this.value),n(5,v)},function(){s=this.value,n(8,s)},function(){a=this.value,n(10,a)},function(e){l=e,n(9,l)},function(){o=this.value,n(6,o)},function(){$=F(this),n(7,$),n(0,Ba)},()=>n(2,h=!1),()=>n(1,p=!0),()=>n(1,p=!1)]}class Ed extends Ne{constructor(e){super(),je(this,e,kd,yd,s,{},null,[-1,-1])}}const xd=e=>({dragging:4&e[0]}),_d=e=>({dragging:e[2]});function Cd(e,t,n){const r=e.slice();return r[37]=t[n],r}function Ld(e,t,n){const r=e.slice();return r[40]=t[n],r}function Sd(e){let t,n,r,o,s,l,a,c;const d=e[18].default,m=u(d,e,e[17],_d),g=m||function(e){let t;return{c(){t=A("div"),t.innerHTML="Drag & Drop svg file here or browse "},m(e,n){L(e,t,n)},d(e){e&&S(t)}}}();return{c(){t=A("label"),g&&g.c(),n=P(),r=A("input"),o=P(),s=A("button"),s.textContent="Download Template",N(r,"type","file"),N(r,"accept",".svg"),N(r,"class","svelte-1jxwqtv"),N(t,"class","dragging svelte-1jxwqtv"),N(s,"class","template svelte-1jxwqtv")},m(i,u){L(i,t,u),g&&g.m(t,null),x(t,n),x(t,r),L(i,o,u),L(i,s,u),l=!0,a||(c=[I(r,"input",e[15](Md)),I(s,"click",Id)],a=!0)},p(e,t){m&&m.p&&(!l||131076&t[0])&&h(m,d,e,e[17],l?p(d,e[17],t,xd):f(e[17]),_d)},i(e){l||(be(g,e),l=!0)},o(e){we(g,e),l=!1},d(e){e&&S(t),g&&g.d(e),e&&S(o),e&&S(s),a=!1,i(c)}}}function zd(e){let t,n,r,o,s,l,a,c,u,d,p,h,f,m,g,$,y,b,w,k,E,_,C,O,M,j,q,U,B,F,G,V,J,K,Z,W,X,Y,Q,ee,te,re,ie,oe,se,ce,ue,de,pe,he,fe,me,ge,ve,$e,ye,ke,Ee,xe,_e,Ce,Le,Se,ze,Ae,Ie=e[14],je=[];for(let t=0;tTe(ce,"license",Ne)));let He=Object.keys(e[1].types),Ue=[];for(let t=0;te[25].call(G))),N(U,"data-tooltip","Tincture preview color, does not affect uploaded actual color. Charges must not have exact color defined. In this case charge will support all tunctures"),N(K,"class","label"),N(W,"class","svelte-1jxwqtv"),N(J,"data-tooltip","Link to the image source"),N(Q,"class","label"),N(te,"class","svelte-1jxwqtv"),N(Y,"data-tooltip","Image author or source portal name"),N(oe,"class","label"),N(ie,"data-tooltip","Image license"),N(he,"class","label"),N(me,"placeholder","Charge id"),me.required=!0,N(me,"class","svelte-1jxwqtv"),N(pe,"data-tooltip","Charge unique name (id)"),N($e,"class","label"),N(ke,"class","svelte-1jxwqtv"),void 0===e[6]&&le((()=>e[30].call(ke))),N(ve,"data-tooltip","Category to put a charge"),N(_e,"class","svelte-1jxwqtv"),N(Le,"class","svelte-1jxwqtv"),N(xe,"class","buttons svelte-1jxwqtv"),N(f,"class","inputs svelte-1jxwqtv")},m(i,o){L(i,t,o),x(t,n),x(n,r),x(n,s),x(t,l),l.innerHTML=e[4],L(i,a,o),L(i,c,o),x(c,u),x(c,d),x(c,p),R(p,e[4]),L(i,h,o),L(i,f,o),x(f,m),x(m,g),x(m,$),x(m,y),R(y,e[0].e),x(m,b),x(m,w),R(w,e[0].f),x(f,k),x(f,E),x(E,_),x(E,C),x(E,O),R(O,e[0].a),x(E,M),x(E,j),R(j,e[0].d),x(f,q),x(f,U),x(U,B),x(U,F),x(U,G);for(let e=0;eue=!1))),ce.$set(i),32&n[0]&&me.value!==e[5]&&R(me,e[5]),2&n[0]){let t;for(He=Object.keys(e[1].types),t=0;t{p[n]=null})),ye(),l=p[s],l?l.p(e,t):(l=p[s]=d[s](e),l.c()),be(l,1),l.m(o,null))},i(e){a||(be(l),a=!0)},o(e){we(l),a=!1},d(e){e&&S(t),p[s].d(),c=!1,i(u)}}}function Pd({dataTransfer:{files:e,items:t}}){return e.length?[...e]:t.filter((({kind:e})=>"file"===e)).map((({getAsFile:e})=>e()))}function Md({target:e}){const t=e.files?[...e.files]:[];return e.value="",t}function Id(){fetch("charges/template.svg").then((e=>e.blob().then((e=>{const t=document.createElement("a");t.href=URL.createObjectURL(e),t.setAttribute("download","armoriaChargeTemplate.txt"),t.click()}))))}function jd(e,t,n){let r,i,o,s;c(e,Ur,(e=>n(11,r=e))),c(e,Ar,(e=>n(34,i=e))),c(e,Sr,(e=>n(12,o=e))),c(e,zr,(e=>n(13,s=e)));let l,a,u,d,p,{$$slots:h={},$$scope:f}=t,m=!1,v=!1,$={a:1,b:0,c:0,d:1,e:0,f:0},y="uploaded",b="#d7374a";const w=["metals","colours","stains"].map((e=>Object.keys(i[e]))).flat();return e.$$set=e=>{"$$scope"in e&&n(17,f=e.$$scope)},e.$$.update=()=>{1&e.$$.dirty[0]&&function(e){if(!l)return;const t=document.createElement("html");t.innerHTML=l;const r=t.querySelector("g"),i=Object.values(e).join(" ");"1 0 0 1 0 0"===i?r.removeAttribute("transform"):r.setAttribute("transform","matrix("+i+")"),n(4,l=r.outerHTML)}($)},[$,Ba,m,v,l,a,y,b,u,d,p,r,o,s,w,e=>t=>{n(2,m=!1);const r=e(t),i=r.length?r[0]:[];i.type.match(/text.*|svg.*/)?(n(3,v=!0),n(5,a=cr(i.name)),function(e){const t=new FileReader;t.onload=function(e){const t=e.target.result,r=document.createElement("html");r.innerHTML=t,r.querySelectorAll("*").forEach((e=>{e.getAttributeNames().forEach((t=>{(t.includes("inkscape")||t.includes("sodipodi"))&&e.removeAttribute(t)}))}));const i=r.querySelector("g");if(!i)return Br.error("error.incorrectSvg"),void n(3,v=!1);const o=i.transform.baseVal.consolidate();if(o){const{a:e,b:t,c:r,d:i,e:s,f:l}=o.matrix,a=e=>+e.toFixed(4);n(0,$=Object.assign($,{a:a(e),b:a(t),c:a(r),d:a(i),e:a(s),f:a(l)}))}i.removeAttribute("id"),n(4,l=i.outerHTML)},t.readAsText(e)}(i)):Br.error("error.notSvgOrText")},function(){const e=Object.keys(Ba.types).map((e=>Object.keys(Ba[e]))).flat();if(n(5,a=cr(a)),!a||document.getElementById(a)||e.includes(a))return void Br.error("error.notUniqueName");Ba.types[y]||n(1,Ba.types[y]=6,Ba),Ba.single[y]||n(1,Ba.single[y]=6,Ba),n(1,Ba[y][a]=5,Ba);const t=document.createElement("html");t.innerHTML=l;const i=t.querySelector("g");i.id=a,u&&i.setAttribute("source",u),d&&i.setAttribute("license",d),p&&i.setAttribute("author",p),pd("defs").insertAdjacentHTML("beforeend",i.outerHTML),n(3,v=!1),g(Ur,r.vector=0,r),Br.success("success.chargeAdded")},f,h,()=>g(Ur,r.vector=0,r),function(){l=this.value,n(4,l)},function(){$.e=H(this.value),n(0,$)},function(){$.f=H(this.value),n(0,$)},function(){$.a=H(this.value),n(0,$)},function(){$.d=H(this.value),n(0,$)},function(){b=F(this),n(7,b),n(14,w)},function(){u=this.value,n(8,u)},function(){p=this.value,n(10,p)},function(e){d=e,n(9,d)},function(){a=this.value,n(5,a)},function(){y=F(this),n(6,y),n(1,Ba)},()=>n(3,v=!1),()=>n(2,m=!0),()=>n(2,m=!1)]}class Nd extends Ne{constructor(e){super(),je(this,e,jd,Od,s,{},null,[-1,-1])}}function qd(e,{from:t,to:n},r={}){const i=getComputedStyle(e),s="none"===i.transform?"":i.transform,[l,a]=i.transformOrigin.split(" ").map(parseFloat),c=t.left+t.width*l/n.width-(n.left+l),u=t.top+t.height*a/n.height-(n.top+a),{delay:d=0,duration:p=(e=>120*Math.sqrt(e)),easing:h=oi}=r;return{delay:d,duration:o(p)?p(Math.sqrt(c*c+u*u)):p,easing:h,css:(e,r)=>{const i=r*c,o=r*u,l=e+r*t.width/n.width,a=e+r*t.height/n.height;return`transform: ${s} translate(${i}px, ${o}px) scale(${l}, ${a});`}}}function Hd(e,t,n){const r=e.slice();return r[29]=t[n].t,r[30]=t[n].type,r[31]=t,r[32]=n,r}function Ud(e,t,n){const r=e.slice();return r[33]=t[n],r}function Rd(e,t,n){const r=e.slice();return r[36]=t[n],r}function Bd(e,t,n){const r=e.slice();return r[30]=t[n],r}function Dd(e,t,n){const r=e.slice();return r[30]=t[n],r}function Fd(e,t){let n,r,i=t[5](`tinctures.${t[30]}`)+"";return{key:e,first:null,c(){n=A("th"),r=O(i),this.first=n},m(e,t){L(e,n,t),x(n,r)},p(e,n){t=e,34&n[0]&&i!==(i=t[5](`tinctures.${t[30]}`)+"")&&U(r,i)},d(e){e&&S(n)}}}function Gd(e,t){let n,r,i,o,s,l,a,c,u,d,p=t[3](t[36])+"";function h(...e){return t[16](t[36],t[30],...e)}return{key:e,first:null,c(){n=A("td"),r=A("input"),s=P(),l=A("span"),a=O("/ "),c=O(p),N(r,"type","number"),N(r,"min",i=t[6].includes(t[30])?1:0),N(r,"max","100"),N(r,"step","1"),r.value=o=t[1][t[36]][t[30]],N(r,"class","svelte-lk1zeb"),N(l,"class","totalChance svelte-lk1zeb"),N(n,"class","svelte-lk1zeb"),this.first=n},m(e,t){L(e,n,t),x(n,r),x(n,s),x(n,l),x(l,a),x(l,c),u||(d=I(r,"change",h),u=!0)},p(e,n){t=e,2&n[0]&&i!==(i=t[6].includes(t[30])?1:0)&&N(r,"min",i),2&n[0]&&o!==(o=t[1][t[36]][t[30]])&&(r.value=o),8&n[0]&&p!==(p=t[3](t[36])+"")&&U(c,p)},d(e){e&&S(n),u=!1,d()}}}function Vd(e,t){let n,r,i,o,s,l=t[5](`tinctures.${t[36]}`)+"",a=[],c=new Map,u=Object.keys(t[1][t[36]]);const d=e=>e[30];for(let e=0;ee[18].call(a))),N(l,"class","svelte-lk1zeb"),N(v,"type","color"),N(v,"class","svelte-lk1zeb"),N(g,"class","svelte-lk1zeb"),N(b,"type","number"),N(b,"min","0"),N(b,"max","100"),N(b,"step","1"),N(b,"class","svelte-lk1zeb"),N(y,"class","svelte-lk1zeb"),N(E,"class","actionButton svelte-lk1zeb"),N(k,"class","svelte-lk1zeb")},m(i,o){L(i,t,o),x(t,n),x(n,r),R(r,e[2].name),x(t,s),x(t,l),x(l,a),x(a,c),x(c,u),x(a,d),x(d,p),x(a,h),x(h,f),D(a,e[2].type),x(t,m),x(t,g),x(g,v),R(v,e[2].color),x(t,$),x(t,y),x(y,b),R(b,e[2].chance),x(t,w),x(t,k),x(k,E),C=!0,z||(T=[I(r,"input",e[17]),I(a,"change",e[18]),I(v,"input",e[19]),I(b,"input",e[20]),I(E,"click",e[11])],z=!0)},p(e,t){(!C||32&t[0]&&o!==(o=e[5]("tinctures.name")))&&N(r,"placeholder",o),4&t[0]&&r.value!==e[2].name&&R(r,e[2].name),(!C||32&t[0])&&M!==(M=e[5]("tinctures.metals")+"")&&U(u,M),(!C||32&t[0])&&j!==(j=e[5]("tinctures.colours")+"")&&U(p,j),(!C||32&t[0])&&q!==(q=e[5]("tinctures.stains")+"")&&U(f,q),4&t[0]&&D(a,e[2].type),4&t[0]&&R(v,e[2].color),4&t[0]&&H(b.value)!==e[2].chance&&R(b,e[2].chance)},i(e){C||(le((()=>{_||(_=_e(t,si,{},!0)),_.run(1)})),C=!0)},o(e){_||(_=_e(t,si,{},!1)),_.run(0),C=!1},d(e){e&&S(t),e&&_&&_.end(),z=!1,i(T)}}}function Xd(e){let t,n,r,o,s;function l(){return e[22](e[29])}return{c(){t=T("svg"),n=T("use"),N(n,"href","#undo-icon"),N(t,"width","12"),N(t,"height","12"),N(t,"data-tooltip",r=e[5]("tooltip.undoColorChange")),N(t,"class","svelte-lk1zeb")},m(e,r){L(e,t,r),x(t,n),o||(s=[I(t,"click",l),v(ri.call(null,t))],o=!0)},p(n,i){e=n,32&i[0]&&r!==(r=e[5]("tooltip.undoColorChange"))&&N(t,"data-tooltip",r)},d(e){e&&S(t),o=!1,i(s)}}}function Yd(e){let t,n,r;function i(){return e[24](e[29],e[30])}return{c(){t=A("span"),t.textContent="×",N(t,"class","actionButton svelte-lk1zeb")},m(e,o){L(e,t,o),n||(r=I(t,"click",i),n=!0)},p(t,n){e=t},d(e){e&&S(t),n=!1,r()}}}function Qd(e){let t,n,r,i,o;return{c(){t=A("span"),n=O("×"),N(t,"class","disabledButton svelte-lk1zeb"),N(t,"data-tooltip",r=e[5]("tooltip.defaultColor"))},m(e,r){L(e,t,r),x(t,n),i||(o=v(ri.call(null,t)),i=!0)},p(e,n){32&n[0]&&r!==(r=e[5]("tooltip.defaultColor"))&&N(t,"data-tooltip",r)},d(e){e&&S(t),i=!1,o()}}}function ep(n,r){let o,s,l,a,c,u,d,p,h,f,m,g,$,b,w,k,_,C,z,T,M,j,q,H,B,D,F=r[15](r[29])+"",G=r[5](`tinctures.${r[30]}`)+"",V=r[3](r[30])+"",J=e;function K(){r[21].call(h,r[29])}let Z=wr[r[29]]&&r[0][r[29]]!==wr[r[29]]&&Xd(r);function Q(...e){return r[23](r[30],r[29],...e)}function ee(e,t){return wr[e[29]]?Qd:Yd}let te=ee(r),ne=te(r);return{key:n,first:null,c(){o=A("tr"),s=A("td"),l=O(F),a=P(),c=A("td"),u=O(G),d=P(),p=A("td"),h=A("input"),g=P(),Z&&Z.c(),$=P(),b=A("td"),w=A("input"),_=P(),C=A("span"),z=O("/ "),T=O(V),M=P(),j=A("td"),ne.c(),q=P(),N(s,"class","svelte-lk1zeb"),N(c,"class","svelte-lk1zeb"),N(h,"type","color"),N(h,"data-tooltip",f=r[5]("tooltip.changeColor")),N(h,"class","svelte-lk1zeb"),N(p,"class","svelte-lk1zeb"),N(w,"type","number"),N(w,"min","0"),N(w,"max","100"),N(w,"step","1"),w.value=k=r[1][r[30]][r[29]],N(w,"class","svelte-lk1zeb"),N(C,"class","totalChance svelte-lk1zeb"),N(b,"class","svelte-lk1zeb"),N(j,"class","svelte-lk1zeb"),this.first=o},m(e,t){L(e,o,t),x(o,s),x(s,l),x(o,a),x(o,c),x(c,u),x(o,d),x(o,p),x(p,h),R(h,r[0][r[29]]),x(p,g),Z&&Z.m(p,null),x(o,$),x(o,b),x(b,w),x(b,_),x(b,C),x(C,z),x(C,T),x(o,M),x(o,j),ne.m(j,null),x(o,q),B||(D=[I(h,"input",K),v(m=ri.call(null,h)),I(w,"change",Q)],B=!0)},p(e,t){r=e,16&t[0]&&F!==(F=r[15](r[29])+"")&&U(l,F),48&t[0]&&G!==(G=r[5](`tinctures.${r[30]}`)+"")&&U(u,G),32&t[0]&&f!==(f=r[5]("tooltip.changeColor"))&&N(h,"data-tooltip",f),17&t[0]&&R(h,r[0][r[29]]),wr[r[29]]&&r[0][r[29]]!==wr[r[29]]?Z?Z.p(r,t):(Z=Xd(r),Z.c(),Z.m(p,null)):Z&&(Z.d(1),Z=null),18&t[0]&&k!==(k=r[1][r[30]][r[29]])&&(w.value=k),24&t[0]&&V!==(V=r[3](r[30])+"")&&U(T,V),te===(te=ee(r))&&ne?ne.p(r,t):(ne.d(1),ne=te(r),ne&&(ne.c(),ne.m(j,null)))},r(){H=o.getBoundingClientRect()},f(){Y(o),J()},a(){J(),J=function(n,r,i,o){if(!r)return e;const s=n.getBoundingClientRect();if(r.left===s.left&&r.right===s.right&&r.top===s.top&&r.bottom===s.bottom)return e;const{delay:l=0,duration:a=300,easing:c=t,start:u=y()+l,end:d=u+a,tick:p=e,css:h}=i(n,{from:r,to:s},o);let f,m=!0,g=!1;function v(){h&&X(n,f),m=!1}return E((e=>{if(!g&&e>=u&&(g=!0),g&&e>=d&&(p(1,0),v()),!m)return!1;if(g){const t=0+1*c((e-u)/a);p(t,1-t)}return!0})),h&&(f=W(n,0,1,a,l,c,h)),l||(g=!0),p(0,1),v}(o,H,qd,{})},d(e){e&&S(o),Z&&Z.d(),ne.d(),B=!1,i(D)}}}function tp(e){let t,n,r,o,s,l,a,c,u,d,p,h,f,m,g,v,$,y,b,w,k,E,_,C,T,M,j,q,H,R,B,D,F,G=[],V=new Map,J=[],K=new Map,Z=e[5]("tinctures.restore")+"",W=[],X=new Map,Y=Object.keys(e[1].field);const Q=e=>e[30];for(let t=0;te[36];for(let t=0;t<3;t+=1){let n=Rd(e,ee,t),r=te(n);K.set(r,J[t]=Vd(r,n))}function ne(e,t){return e[2].show?Kd:Jd}let re=ne(e),ie=re(e),oe=["name","type","color","chance","remove"],se=[];for(let t=0;t<5;t+=1)se[t]=Zd(Ud(e,oe,t));let ae=e[2].show&&Wd(e),ce=e[4];const ue=e=>e[29];for(let t=0;t{ae=null})),ye()),33595&t[0]){ce=e[4];for(let e=0;e{R||(R=_e(t,si,{},!0)),R.run(1)})),B=!0)},o(e){we(ae),e&&(R||(R=_e(t,si,{},!1)),R.run(0)),B=!1},d(e){e&&S(t);for(let e=0;en(5,o=e))),c(e,zr,(e=>n(0,s=e))),c(e,Ar,(e=>n(1,l=e))),c(e,Ur,(e=>n(26,a=e)));const u={show:!1,name:"",type:"colours",color:"#96C8FA",chance:3};for(const e in l)delete l[e].array;const d=["metals","colours","stains"];let p=[];function h(e,t){p.includes(e)?localStorage.setItem(e,JSON.stringify(t)):p.push(e)}function f(e,t,n){const r=n.target,i=+r.value,o=+r.min;if(!isNaN(i))return ie+t),0);if(i<1)return Br.error("error.totalChanceMustNotBeZero"),void(r.value=String(1))}g(Ar,l[e][t]=i,l)}}function v(e,t){delete l[t][e],Ar.set(l),delete s[e],zr.set(s)}return e.$$.update=()=>{2&e.$$.dirty[0]&&n(4,r=d.map((e=>Object.keys(l[e]).map((t=>({t:t,type:e}))))).flat()),2&e.$$.dirty[0]&&h("tinctures",l),1&e.$$.dirty[0]&&h("colors",s),2&e.$$.dirty[0]&&n(3,i=e=>Object.values(l[e]).reduce(((e,t)=>e+t),0))},[s,l,u,i,r,o,["metals","colours"],f,m,v,function(){n(2,u.show=!0,u),Br.info("info.tipAddTincture",8e3)},function(){n(2,u.show=!1,u)},function(){g(Ur,a.tinctures=0,a)},function(){const e=cr(u.name);e&&!s[e]?(g(Ar,l[u.type][e]=u.chance,l),g(zr,s[e]=u.color,s),n(2,u.show=!1,u),n(2,u.name="",u),Br.info("success.tinctureAdded")):Br.error("error.nonUniqueTincture")},function(){g(Ar,l=JSON.parse(JSON.stringify(kr)),l),g(zr,s=JSON.parse(JSON.stringify(wr)),s),localStorage.removeItem("tinctures"),localStorage.removeItem("colors"),p=[],Br.info("info.restoredDefaults")},function(e){const t=o(`tinctures.${e}`);return t.startsWith("tinctures.")?e:t},(e,t,n)=>f(e,t,n),function(){u.name=this.value,n(2,u)},function(){u.type=F(this),n(2,u)},function(){u.color=this.value,n(2,u)},function(){u.chance=H(this.value),n(2,u)},function(e){s[e]=this.value,zr.set(s),n(4,r),n(1,l)},e=>g(zr,s[e]=wr[e],s),(e,t,n)=>m(e,t,n),(e,t)=>v(e,t)]}class rp extends Ne{constructor(e){super(),je(this,e,np,tp,s,{},null,[-1,-1])}}function ip(e){let t,n,r,i,o,s,l,a=e[0](e[1])+"";return{c(){t=A("div"),n=O(a),N(t,"class",m(e[2])+" svelte-1txtc79")},m(r,i){L(r,t,i),x(t,n),o=!0,s||(l=I(t,"click",e[3]),s=!0)},p(e,[t]){(!o||1&t)&&a!==(a=e[0](e[1])+"")&&U(n,a)},i(e){o||(le((()=>{i&&i.end(1),r=Ee(t,li,{y:200,duration:500}),r.start()})),o=!0)},o(e){r&&r.invalidate(),i=xe(t,si,{duration:300}),o=!1},d(e){e&&S(t),e&&i&&i.end(),s=!1,l()}}}function op(e,t,n){let r,i;c(e,Br,(e=>n(4,r=e))),c(e,or,(e=>n(0,i=e)));const{text:o,type:s,timeout:l}=r;ee((async()=>{const e=r.text;setTimeout((()=>{r?.text===e&&Br.clear()}),l)}));return[i,o,s,()=>Br.clear()]}class sp extends Ne{constructor(e){super(),je(this,e,op,ip,s,{})}}function lp(e){let t,n,r,i,o,s,l,a,c,u,d,p,h;r=new Qs({});const f=[up,cp],m=[];function g(e,t){return e[5].edit?0:1}o=g(e),s=m[o]=f[o](e);let v=e[5].about&&dp(),$=e[5].license&&pp(),y=e[5].raster&&hp(),b=e[5].vector&&fp(),w=e[5].tinctures&&mp(),k=e[7]&&e[8]&&gp();return{c(){t=A("div"),n=A("header"),Oe(r.$$.fragment),i=P(),s.c(),l=P(),v&&v.c(),a=P(),$&&$.c(),c=P(),y&&y.c(),u=P(),b&&b.c(),d=P(),w&&w.c(),p=P(),k&&k.c(),B(t,"background-color",e[6]),N(t,"class","svelte-flez0f")},m(e,s){L(e,t,s),x(t,n),Pe(r,n,null),x(t,i),m[o].m(t,null),x(t,l),v&&v.m(t,null),x(t,a),$&&$.m(t,null),x(t,c),y&&y.m(t,null),x(t,u),b&&b.m(t,null),x(t,d),w&&w.m(t,null),x(t,p),k&&k.m(t,null),h=!0},p(e,n){let r=o;o=g(e),o===r?m[o].p(e,n):($e(),we(m[r],1,1,(()=>{m[r]=null})),ye(),s=m[o],s?s.p(e,n):(s=m[o]=f[o](e),s.c()),be(s,1),s.m(t,l)),e[5].about?v?32&n&&be(v,1):(v=dp(),v.c(),be(v,1),v.m(t,a)):v&&($e(),we(v,1,1,(()=>{v=null})),ye()),e[5].license?$?32&n&&be($,1):($=pp(),$.c(),be($,1),$.m(t,c)):$&&($e(),we($,1,1,(()=>{$=null})),ye()),e[5].raster?y?32&n&&be(y,1):(y=hp(),y.c(),be(y,1),y.m(t,u)):y&&($e(),we(y,1,1,(()=>{y=null})),ye()),e[5].vector?b?32&n&&be(b,1):(b=fp(),b.c(),be(b,1),b.m(t,d)):b&&($e(),we(b,1,1,(()=>{b=null})),ye()),e[5].tinctures?w?32&n&&be(w,1):(w=mp(),w.c(),be(w,1),w.m(t,p)):w&&($e(),we(w,1,1,(()=>{w=null})),ye()),e[7]&&e[8]?k?384&n&&be(k,1):(k=gp(),k.c(),be(k,1),k.m(t,null)):k&&($e(),we(k,1,1,(()=>{k=null})),ye()),(!h||64&n)&&B(t,"background-color",e[6])},i(e){h||(be(r.$$.fragment,e),be(s),be(v),be($),be(y),be(b),be(w),be(k),h=!0)},o(e){we(r.$$.fragment,e),we(s),we(v),we($),we(y),we(b),we(w),we(k),h=!1},d(e){e&&S(t),Me(r),m[o].d(),v&&v.d(),$&&$.d(),y&&y.d(),b&&b.d(),w&&w.d(),k&&k.d()}}}function ap(e){let t,n;return t=new ec({props:{c:e[5].c,seed:e[3],coaSize:e[4]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};32&n&&(r.c=e[5].c),8&n&&(r.seed=e[3]),16&n&&(r.coaSize=e[4]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function cp(e){let t,n;return t=new ad({props:{gallery:e[2],width:e[0],height:e[1]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};4&n&&(r.gallery=e[2]),1&n&&(r.width=e[0]),2&n&&(r.height=e[1]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function up(e){let t,n;return t=new nd({props:{historyId:e[5].c,seed:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};32&n&&(r.historyId=e[5].c),8&n&&(r.seed=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function dp(e){let t,n;return t=new sl({}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function pp(e){let t,n;return t=new fl({}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function hp(e){let t,n;return t=new Ed({}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function fp(e){let t,n;return t=new Nd({}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function mp(e){let t,n;return t=new rp({}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function gp(e){let t,n;return t=new sp({}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function vp(e){let t,n,r,i,o;const s=[ap,lp],l=[];function a(e,t){return e[5].view?0:1}return t=a(e),n=l[t]=s[t](e),i=new Xr({}),{c(){n.c(),r=P(),Oe(i.$$.fragment)},m(e,n){l[t].m(e,n),L(e,r,n),Pe(i,e,n),o=!0},p(e,[i]){let o=t;t=a(e),t===o?l[t].p(e,i):($e(),we(l[o],1,1,(()=>{l[o]=null})),ye(),n=l[t],n?n.p(e,i):(n=l[t]=s[t](e),n.c()),be(n,1),n.m(r.parentNode,r))},i(e){o||(be(n),be(i.$$.fragment,e),o=!0)},o(e){we(n),we(i.$$.fragment,e),o=!1},d(e){l[t].d(e),e&&S(r),Me(i,e)}}}function $p(e,t,n){let r,i,o,s,l,a,u,d,p,h,f,m,v;c(e,Ur,(e=>n(5,r=e))),c(e,qr,(e=>n(12,i=e))),c(e,Nr,(e=>n(13,o=e))),c(e,Hr,(e=>n(9,s=e))),c(e,Sr,(e=>n(14,l=e))),c(e,_r,(e=>n(10,a=e))),c(e,Jn,(e=>n(15,u=e))),c(e,Tr,(e=>n(6,d=e))),c(e,Br,(e=>n(7,p=e))),c(e,Er,(e=>n(8,h=e)));let $,y=[],b=200;return g(Jn,u="en",u),function(){const e=new URL(window.location.href),t="1"===e.searchParams.get("view"),s=+e.searchParams.get("size"),l=e.searchParams.get("coa"),a=e.searchParams.get("seed"),c=e.searchParams.get("from");if(!l&&!a)return;if(l){if(!function(e){try{return JSON.parse(e),!0}catch(e){return console.error(e),Br.error(e.message),!1}}(l))return;o.push(JSON.parse(l))}else a&&n(3,$=a);(l||a)&&("FMG"===c&&Br.info("info.tipFromFmg",1e4),g(qr,i[0]=[0],i),t?(s&&n(4,b=s),g(Ur,r.view=1,r)):g(Ur,r.edit=1,r))}(),e.$$.update=()=>{1024&e.$$.dirty&&n(0,[f,m,v]=function(e){const t=window.innerWidth,n=window.innerHeight-60,r=Math.ceil(t/e),i=Math.floor(t/r),o=Math.floor(n/i);return[r*o,i,Math.floor(n/o)]}(a),m,(n(1,v),n(10,a))),1536&e.$$.dirty&&function(){const e=o.length;if(i[s]||(r.edit?(g(qr,i[s]=i[s-1].slice(),i),g(qr,i[s][r.i]=e,i),n(3,$=void 0)):g(qr,i[s]=Array.from({length:f},((t,n)=>e+n++)),i),localStorage.getItem("shield")||g(Sr,l=lr(pr[lr(pr.types)]),l)),i[s].lengthvoid 0!==t[n]?t[n]:e+n)),i)}n(2,y=i[s].slice(0,f)),(r.edit||r.view)&&g(Ur,r.c=i[s][r.i],r)}()},[m,v,y,$,b,r,d,p,h,s,a]}(async()=>{try{const e=await dr("./locales/manifest.json")(),{files:t,languages:n}=e,r=t[0];if(!n?.length||!r)throw new Error("Could not load languages from manifest");for(const e of n)Nn(e,dr(`./locales/${e}${r}`));const i=localStorage.getItem("locale")||navigator.language,o=i.split("-")[0],s=n.find((e=>e===i||e===o))||"en";await function(e){const{formats:t}=e,n=qn(e,["formats"]),r=e.initialLocale||e.fallbackLocale;return Object.assign(Hn,n,{initialLocale:r}),t&&("number"in t&&Object.assign(Hn.formats.number,t.number),"date"in t&&Object.assign(Hn.formats.date,t.date),"time"in t&&Object.assign(Hn.formats.time,t.time)),Jn.set(r)}({fallbackLocale:"en",initialLocale:s}),Er.set(!0)}catch(e){console.error(e),Er.set(!0)}})();"serviceWorker"in navigator&&navigator.serviceWorker.register("./sw.js");const yp=new class extends Ne{constructor(e){super(),je(this,e,$p,vp,s,{})}}({target:document.body,props:{}});return yp}();
+ ***************************************************************************** */function qn(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);in.slice(0,t+1).join("-"))).reverse()}function Gn(e,t=Un().fallbackLocale){const n=Fn(e);return t?[...new Set([...n,...Fn(t)])]:n}function Vn(){return null!=Bn?Bn:void 0}Dn.subscribe((e=>{Bn=null!=e?e:void 0,"undefined"!=typeof window&&null!=e&&document.documentElement.setAttribute("lang",e)}));const Jn=Object.assign(Object.assign({},Dn),{set:e=>{if(e&&function(e){if(null==e)return;const t=Gn(e);for(let e=0;eRn.set(!0)),t):Rn.set(!0),jn(e).then((()=>{Dn.set(e)})).finally((()=>{clearTimeout(n),Rn.set(!1)}))}return Dn.set(e)}}),Kn=e=>{const t=Object.create(null);return n=>{const r=JSON.stringify(n);return r in t?t[r]:t[r]=e(n)}},Zn=(e,t)=>{const{formats:n}=Un();if(e in n&&t in n[e])return n[e][t];throw new Error(`[svelte-i18n] Unknown "${t}" ${e} format.`)},Wn=Kn((e=>{var{locale:t,format:n}=e,r=qn(e,["locale","format"]);if(null==t)throw new Error('[svelte-i18n] A "locale" must be set to format numbers');return n&&(r=Zn("number",n)),new Intl.NumberFormat(t,r)})),Xn=Kn((e=>{var{locale:t,format:n}=e,r=qn(e,["locale","format"]);if(null==t)throw new Error('[svelte-i18n] A "locale" must be set to format dates');return n?r=Zn("date",n):0===Object.keys(r).length&&(r=Zn("date","short")),new Intl.DateTimeFormat(t,r)})),Yn=Kn((e=>{var{locale:t,format:n}=e,r=qn(e,["locale","format"]);if(null==t)throw new Error('[svelte-i18n] A "locale" must be set to format time values');return n?r=Zn("time",n):0===Object.keys(r).length&&(r=Zn("time","short")),new Intl.DateTimeFormat(t,r)})),Qn=Kn(((e,t=Vn())=>new kn(e,t,Un().formats,{ignoreTag:Un().ignoreTag}))),er=(e,t={})=>{let n=t;"object"==typeof e&&(n=e,e=n.id);const{values:r,locale:i=Vn(),default:o}=n;if(null==i)throw new Error("[svelte-i18n] Cannot format a message without first setting the initial locale.");let s=_n(e,i);if(s){if("string"!=typeof s)return console.warn(`[svelte-i18n] Message with id "${e}" must be of type "string", found: "${typeof s}". Gettin its value through the "$format" method is deprecated; use the "json" method instead.`),s}else Un().warnOnMissingMessages&&console.warn(`[svelte-i18n] The message "${e}" was not found in "${Gn(i).join('", "')}".${Pn(Vn())?"\n\nNote: there are at least one loader still registered to this locale that wasn't executed.":""}`),s=null!=o?o:e;if(!r)return s;let l=s;try{l=Qn(s,i).format(r)}catch(t){console.warn(`[svelte-i18n] Message "${e}" has syntax error:`,t.message)}return l},tr=(e,t)=>((e={})=>{var{locale:t=Vn()}=e,n=qn(e,["locale"]);return Yn(Object.assign({locale:t},n))})(t).format(e),nr=(e,t)=>((e={})=>{var{locale:t=Vn()}=e,n=qn(e,["locale"]);return Xn(Object.assign({locale:t},n))})(t).format(e),rr=(e,t)=>((e={})=>{var{locale:t=Vn()}=e,n=qn(e,["locale"]);return Wn(Object.assign({locale:t},n))})(t).format(e),ir=(e,t=Vn())=>_n(e,t),or=Ue([Jn,Ln],(()=>er));Ue([Jn],(()=>tr)),Ue([Jn],(()=>nr)),Ue([Jn],(()=>rr)),Ue([Jn,Ln],(()=>ir));function sr(e){return e[Math.floor(Math.random()*e.length)]}function lr(e,t=!0){if(e.array)return sr(e.array);const n=[];for(const t in e)for(let r=0;rt.toUpperCase())).replace(/^[0-9]/,"_")}function ur(e,t){return`${t} `}const dr=e=>()=>fetch(e).then((e=>e.json())),pr={types:{basic:10,regional:2,historical:1,specific:1,banner:1,simple:2,fantasy:1,middleEarth:0},basic:{heater:12,spanish:6,french:1},regional:{horsehead:1,horsehead2:1,polish:1,hessen:1,swiss:1},historical:{boeotian:1,roman:2,kite:1,oldFrench:5,renaissance:2,baroque:2},specific:{targe:1,targe2:0,pavise:5,wedged:10},banner:{flag:1,pennon:0,guidon:0,banner:0,dovetail:1,gonfalon:5,pennant:0},simple:{round:12,oval:6,vesicaPiscis:1,square:1,diamond:2,no:0},middleEarth:{noldor:1,gondor:1,easterling:1,erebor:1,ironHills:1,urukHai:1,moriaOrc:1},fantasy:{fantasy1:2,fantasy2:2,fantasy3:1,fantasy4:1,fantasy5:3}},hr=["basic","regional","historical","specific","banner","simple","middleEarth","fantasy"],fr={heater:"m25,25 h150 v50 a150,150,0,0,1,-75,125 a150,150,0,0,1,-75,-125 z",spanish:"m25,25 h150 v100 a75,75,0,0,1,-150,0 z",french:"m 25,25 h 150 v 139.15 c 0,41.745 -66,18.15 -75,36.3 -9,-18.15 -75,5.445 -75,-36.3 v 0 z",horsehead:"m 20,40 c 0,60 40,80 40,100 0,10 -4,15 -0.35,30 C 65,185.7 81,200 100,200 c 19.1,0 35.3,-14.6 40.5,-30.4 C 144.2,155 140,150 140,140 140,120 180,100 180,40 142.72,40 150,15 100,15 55,15 55,40 20,40 Z",horsehead2:"M60 20c-5 20-10 35-35 55 25 35 35 65 30 100 20 0 35 10 45 26 10-16 30-26 45-26-5-35 5-65 30-100a87 87 0 01-35-55c-25 3-55 3-80 0z",polish:"m 90.3,6.3 c -12.7,0 -20.7,10.9 -40.5,14 0,11.8 -4.9,23.5 -11.4,31.1 0,0 12.7,6 12.7,19.3 C 51.1,90.8 30,90.8 30,90.8 c 0,0 -3.6,7.4 -3.6,22.4 0,34.3 23.1,60.2 40.7,68.2 17.6,8 27.7,11.4 32.9,18.6 5.2,-7.3 15.3,-10.7 32.8,-18.6 17.6,-8 40.7,-33.9 40.7,-68.2 0,-15 -3.6,-22.4 -3.6,-22.4 0,0 -21.1,0 -21.1,-20.1 0,-13.3 12.7,-19.3 12.7,-19.3 C 155.1,43.7 150.2,32.1 150.2,20.3 130.4,17.2 122.5,6.3 109.7,6.3 102.5,6.3 100,10 100,10 c 0,0 -2.5,-3.7 -9.7,-3.7 z",hessen:"M170 20c4 5 8 13 15 20 0 0-10 0-10 15 0 100-15 140-75 145-65-5-75-45-75-145 0-15-10-15-10-15l15-20c0 15 10-5 70-5s70 20 70 5z",swiss:"m 25,20 c -0.1,0 25.2,8.5 37.6,8.5 C 75.1,28.5 99.1,20 100,20 c 0.6,0 24.9,8.5 37.3,8.5 C 149.8,28.5 174.4,20 175,20 l -0.3,22.6 C 173.2,160.3 100,200 100,200 100,200 26.5,160.9 25.2,42.6 Z",boeotian:"M150 115c-5 0-10-5-10-15s5-15 10-15c10 0 7 10 15 10 10 0 0-30 0-30-10-25-30-55-65-55S45 40 35 65c0 0-10 30 0 30 8 0 5-10 15-10 5 0 10 5 10 15s-5 15-10 15c-10 0-7-10-15-10-10 0 0 30 0 30 10 25 30 55 65 55s55-30 65-55c0 0 10-30 0-30-8 0-5 10-15 10z",roman:"m 160,170 c -40,20 -80,20 -120,0 V 30 C 80,10 120,10 160,30 Z",kite:"m 53.3,46.4 c 0,4.1 1,12.3 1,12.3 7.1,55.7 45.7,141.3 45.7,141.3 0,0 38.6,-85.6 45.7,-141.2 0,0 1,-8.1 1,-12.3 C 146.7,20.9 125.8,0.1 100,0.1 74.2,0.1 53.3,20.9 53.3,46.4 Z",oldFrench:"m25,25 h150 v75 a100,100,0,0,1,-75,100 a100,100,0,0,1,-75,-100 z",renaissance:"M 25,33.9 C 33.4,50.3 36.2,72.9 36.2,81.7 36.2,109.9 25,122.6 25,141 c 0,29.4 24.9,44.1 40.2,47.7 15.3,3.7 29.3,0 34.8,11.3 5.5,-11.3 19.6,-7.6 34.8,-11.3 C 150.1,185 175,170.3 175,141 c 0,-18.4 -11.2,-31.1 -11.2,-59.3 0,-8.8 2.8,-31.3 11.2,-47.7 L 155.7,14.4 C 138.2,21.8 119.3,25.7 100,25.7 c -19.3,0 -38.2,-3.9 -55.7,-11.3 z",baroque:"m 100,25 c 18,0 50,2 75,14 v 37 l -2.7,3.2 c -4.9,5.4 -6.6,9.6 -6.7,16.2 0,6.5 2,11.6 6.9,17.2 l 2.8,3.1 v 10.2 c 0,17.7 -2.2,27.7 -7.8,35.9 -5,7.3 -11.7,11.3 -32.3,19.4 -12.6,5 -20.2,8.8 -28.6,14.5 C 103.3,198 100,200 100,200 c 0,0 -2.8,-2.3 -6.4,-4.7 C 85.6,189.8 78,186 65,180.9 32.4,168.1 26.9,160.9 25.8,129.3 L 25,116 l 3.3,-3.3 c 4.8,-5.2 7,-10.7 7,-17.3 0,-6.8 -1.8,-11.1 -6.5,-16.1 L 25,76 V 39 C 50,27 82,25 100,25 Z",targe:"m 20,35 c 15,0 115,-60 155,-10 -5,10 -15,15 -10,50 5,45 10,70 -10,90 C 125,195 75,195 50,175 25,150 30,130 35,85 50,95 65,85 65,70 65,50 50,45 40,50 30,55 27,65 30,70 23,73 20,70 14,70 11,60 20,45 20,35 Z",targe2:"m 84,32.2 c 6.2,-1 19.5,-31.4 94.1,-20.2 -30.57,33.64 -21.66,67.37 -11.2,95 20.2,69.5 -41.17549,84.7 -66.88,84.7 C 74.32,191.7071 8.38,168.95 32,105.9 36.88,92.88 31,89 31,82.6 35.15,82.262199 56.79,86.17 56.5,69.8 56.20,52.74 42.2,47.9 25.9,55.2 25.9,51.4 39.8,6.7 84,32.2 Z",pavise:"M95 7L39.9 37.3a10 10 0 00-5.1 9.5L46 180c.4 5.2 3.7 10 9 10h90c5.3 0 9.6-4.8 10-10l10.6-133.2a10 10 0 00-5-9.5L105 7c-4.2-2.3-6.2-2.3-10 0z",wedged:"m 51.2,19 h 96.4 c 3.1,12.7 10.7,20.9 26.5,20.8 C 175.7,94.5 165.3,144.3 100,200 43.5,154.2 22.8,102.8 25.1,39.7 37,38.9 47.1,34.7 51.2,19 Z",round:"m 185,100 a 85,85 0 0 1 -85,85 85,85 0 0 1 -85,-85 85,85 0 0 1 85,-85 85,85 0 0 1 85,85",oval:"m 32.3,99.5 a 67.7,93.7 0 1 1 0,1.3 z",vesicaPiscis:"M 100,0 C 63.9,20.4 41,58.5 41,100 c 0,41.5 22.9,79.6 59,100 36.1,-20.4 59,-58.5 59,-100 C 159,58.5 136.1,20.4 100,0 Z",square:"M 25,25 H 175 V 175 H 25 Z",diamond:"M 25,100 100,200 175,100 100,0 Z",no:"m0,0 h200 v200 h-200 z",flag:"M 10,40 h180 v120 h-180 Z",pennon:"M 10,40 l190,60 -190,60 Z",guidon:"M 10,40 h190 l-65,60 65,60 h-190 Z",banner:"m 25,25 v 170 l 25,-40 25,40 25,-40 25,40 25,-40 25,40 V 25 Z",dovetail:"m 25,25 v 175 l 75,-40 75,40 V 25 Z",gonfalon:"m 25,25 v 125 l 75,50 75,-50 V 25 Z",pennant:"M 25,15 100,200 175,15 Z",fantasy1:"M 100,5 C 85,30 40,35 15,40 c 40,35 20,90 40,115 15,25 40,30 45,45 5,-15 30,-20 45,-45 20,-25 0,-80 40,-115 C 160,35 115,30 100,5 Z",fantasy2:"m 152,21 c 0,0 -27,14 -52,-4 C 75,35 48,21 48,21 50,45 30,55 30,75 60,75 60,115 32,120 c 3,40 53,50 68,80 15,-30 65,-40 68,-80 -28,-5 -28,-45 2,-45 C 170,55 150,45 152,21 Z",fantasy3:"M 167,67 C 165,0 35,0 33,67 c 32,-7 27,53 -3,43 -5,45 60,65 70,90 10,-25 75,-47.51058 70,-90 -30,10 -35,-50 -3,-43 z",fantasy4:"M100 9C55 48 27 27 13 39c23 50 3 119 49 150 14 9 28 11 38 11s27-4 38-11c55-39 24-108 49-150-14-12-45 7-87-30z",fantasy5:"M 100,0 C 75,25 30,25 30,25 c 0,69 20,145 70,175 50,-30 71,-106 70,-175 0,0 -45,0 -70,-25 z",noldor:"m 55,75 h 2 c 3,-25 38,-10 3,20 15,50 30,75 40,105 10,-30 25,-55 40,-105 -35,-30 0,-45 3,-20 h 2 C 150,30 110,20 100,0 90,20 50,30 55,75 Z",gondor:"m 100,200 c 15,-15 38,-35 45,-60 h 5 V 30 h -5 C 133,10 67,10 55,30 h -5 v 110 h 5 c 7,25 30,45 45,60 z",easterling:"M 160,185 C 120,170 80,170 40,185 V 15 c 40,15 80,15 120,0 z",erebor:"M25 135 V60 l22-13 16-37 h75 l15 37 22 13 v75l-22 18-16 37 H63l-16-37z",ironHills:"m 30,25 60,-10 10,10 10,-10 60,10 -5,125 -65,50 -65,-50 z",urukHai:"M 30,60 C 40,60 60,50 60,20 l -5,-3 45,-17 75,40 -5,5 -35,155 -5,-35 H 70 v 35 z",moriaOrc:"M45 35c5 3 7 10 13 9h19c4-2 7-4 9-9 6 1 9 9 16 11 7-2 14 0 21 0 6-3 6-10 10-15 2-5 1-10-2-15-2-4-5-14-4-16 3 6 7 11 12 14 7 3 3 12 7 16 3 6 4 12 9 18 2 4 6 8 5 14 0 6-1 12 3 18-3 6-2 13-1 20 1 6-2 12-1 18 0 6-3 13 0 18 8 4 0 8-5 7-4 3-9 3-13 9-5 5-5 13-8 19 0 6 0 15-7 16-1 6-7 6-10 12-1-6 0-6-2-9l2-19c2-4 5-12-3-12-4-5-11-5-15 1l-13-18c-3-4-2 9-3 12 2 2-4-6-7-5-8-2-8 7-11 11-2 4-5 10-8 9 3-10 3-16 1-23-1-4 2-9-4-11 0-6 1-13-2-19-4-2-9-6-13-7V91c4-7-5-13 0-19-3-7 2-11 2-18-1-6 1-12 3-17v-1z"},mr={heater:"0 10 200 200",spanish:"0 10 200 200",french:"0 10 200 200",horsehead:"0 10 200 200",horsehead2:"0 10 200 200",polish:"0 0 200 200",hessen:"0 5 200 200",swiss:"0 10 200 200",boeotian:"0 0 200 200",roman:"0 0 200 200",kite:"0 0 200 200",oldFrench:"0 10 200 200",renaissance:"0 5 200 200",baroque:"0 10 200 200",targe:"0 0 200 200",targe2:"0 0 200 200",pavise:"0 0 200 200",wedged:"0 10 200 200",flag:"0 0 200 200",pennon:"2.5 0 200 200",guidon:"2.5 0 200 200",banner:"0 10 200 200",dovetail:"0 10 200 200",gonfalon:"0 10 200 200",pennant:"0 0 200 200",round:"0 0 200 200",oval:"0 0 200 200",vesicaPiscis:"0 0 200 200",square:"0 0 200 200",diamond:"0 0 200 200",no:"0 0 200 200",fantasy1:"0 0 200 200",fantasy2:"0 5 200 200",fantasy3:"0 5 200 200",fantasy4:"0 5 200 200",fantasy5:"0 0 200 200",noldor:"0 0 200 200",gondor:"0 5 200 200",easterling:"0 0 200 200",erebor:"0 0 200 200",ironHills:"0 5 200 200",urukHai:"0 0 200 200",moriaOrc:"0 0 200 200"},gr={horsehead:.9,horsehead2:.9,polish:.85,swiss:.95,boeotian:.75,roman:.95,kite:.65,targe2:.9,pavise:.9,wedged:.95,flag:.7,pennon:.5,guidon:.65,banner:.8,dovetail:.8,pennant:.6,oval:.95,vesicaPiscis:.8,diamond:.8,no:1.2,fantasy1:.8,fantasy2:.7,fantasy3:.7,fantasy5:.9,noldor:.5,gondor:.75,easterling:.8,erebor:.9,urukHai:.8,moriaOrc:.7},vr={heater:{a:[-43.75,-50],b:[0,-50],c:[43.75,-50],d:[-43.75,0],e:[0,0],f:[43.75,0],g:[-32.25,37.5],h:[0,50],i:[32.25,37.5],y:[-50,-50],z:[0,62.5],j:[-37.5,-37.5],k:[0,-37.5],l:[37.5,-37.5],m:[-30,30],n:[0,42.5],o:[30,30],p:[-37.5,0],q:[37.5,0],A:[-66.2,-66.6],B:[-22,-66.6],C:[22,-66.6],D:[66.2,-66.6],K:[-66.2,-20],E:[66.2,-20],J:[-55.5,26],F:[55.5,26],I:[-33,62],G:[33,62],H:[0,89.5]},spanish:{a:[-43.75,-50],b:[0,-50],c:[43.75,-50],d:[-43.75,0],e:[0,0],f:[43.75,0],g:[-43.75,50],h:[0,50],i:[43.75,50],y:[-50,-50],z:[0,50],j:[-37.5,-37.5],k:[0,-37.5],l:[37.5,-37.5],m:[-37.5,37.5],n:[0,37.5],o:[37.5,37.5],p:[-37.5,0],q:[37.5,0],A:[-66.2,-66.6],B:[-22,-66.6],C:[22,-66.6],D:[66.2,-66.6],K:[-66.4,-20],E:[66.4,-20],J:[-66.4,26],F:[66.4,26],I:[-49,70],G:[49,70],H:[0,92]},french:{a:[-43.75,-50],b:[0,-50],c:[43.75,-50],d:[-43.75,0],e:[0,0],f:[43.75,0],g:[-43.75,50],h:[0,50],i:[43.75,50],y:[-50,-50],z:[0,65],j:[-37.5,-37.5],k:[0,-37.5],l:[37.5,-37.5],m:[-37.5,37.5],n:[0,37.5],o:[37.5,37.5],p:[-37.5,0],q:[37.5,0],A:[-66.2,-66.6],B:[-22,-66.6],C:[22,-66.6],D:[66.2,-66.6],K:[-66.4,-20],E:[66.4,-20],J:[-66.4,26],F:[66.4,26],I:[-65.4,70],G:[65.4,70],H:[0,89]},horsehead:{a:[-43.75,-47.5],b:[0,-50],c:[43.75,-47.5],d:[-35,0],e:[0,0],f:[35,0],h:[0,50],y:[-50,-50],z:[0,55],j:[-35,-35],k:[0,-40],l:[35,-35],m:[-30,30],n:[0,40],o:[30,30],p:[-27.5,0],q:[27.5,0],A:[-71,-52],B:[-24,-73],C:[24,-73],D:[71,-52],K:[-62,-16],E:[62,-16],J:[-39,20],F:[39,20],I:[-33.5,60],G:[33.5,60],H:[0,91.5]},horsehead2:{a:[-37.5,-47.5],b:[0,-50],c:[37.5,-47.5],d:[-35,0],e:[0,0],f:[35,0],g:[-35,47.5],h:[0,50],i:[35,47.5],y:[-50,-50],z:[0,55],j:[-30,-30],k:[0,-40],l:[30,-30],m:[-30,30],n:[0,40],o:[30,30],p:[-27.5,0],q:[27.5,0],A:[-49,-39],B:[-22,-70],C:[22,-70],D:[49,-39],K:[-51,-2],E:[51,-2],J:[-38.5,31],F:[38.5,31],I:[-35,67],G:[35,67],H:[0,85]},polish:{a:[-35,-50],b:[0,-50],c:[35,-50],d:[-40,0],e:[0,0],f:[40,0],g:[-37.5,50],h:[0,50],i:[37.5,50],y:[-50,-50],z:[0,65],j:[-27.5,-27.5],k:[0,-45],l:[27.5,-27.5],m:[-27.5,27.5],n:[0,45],o:[27.5,27.5],p:[-32.5,0],q:[32.5,0],A:[-48,-52],B:[-23,-80],C:[23,-80],D:[48,-52],K:[-47,-10],E:[47,-10],J:[-62,32],F:[62,32],I:[-37,68],G:[37,68],H:[0,86]},hessen:{a:[-43.75,-50],b:[0,-50],c:[43.75,-50],d:[-43.75,0],e:[0,0],f:[43.75,0],g:[-43.75,50],h:[0,50],i:[43.75,50],y:[-50,-50],z:[0,52.5],j:[-40,-40],k:[0,-40],l:[40,-40],m:[-40,40],n:[0,40],o:[40,40],p:[-40,0],q:[40,0],A:[-69,-64],B:[-22,-76],C:[22,-76],D:[69,-64],K:[-66.4,-20],E:[66.4,-20],J:[-62,26],F:[62,26],I:[-46,70],G:[46,70],H:[0,91.5]},swiss:{a:[-43.75,-50],b:[0,-50],c:[43.75,-50],d:[-43.75,0],e:[0,0],f:[43.75,0],g:[-32,37.5],h:[0,50],i:[32,37.5],y:[-50,-50],z:[0,62.5],j:[-37.5,-37.5],k:[0,-37.5],l:[37.5,-37.5],m:[-32,32.5],n:[0,42.5],o:[32,32.5],p:[-37.5,0],q:[37.5,0],A:[-66.2,-66.6],B:[-22,-66],C:[22,-66],D:[66.2,-66.6],K:[-63,-20],E:[63,-20],J:[-50,26],F:[50,26],I:[-29,62],G:[29,62],H:[0,89.5]},boeotian:{a:[-37.5,-47.5],b:[0,-47.5],c:[37.5,-47.5],d:[-25,0],e:[0,0],f:[25,0],g:[-37.5,47.5],h:[0,47.5],i:[37.5,47.5],y:[-48,-48],z:[0,60],j:[-32.5,-37.5],k:[0,-45],l:[32.5,-37.5],m:[-32.5,37.5],n:[0,45],o:[32.5,37.5],p:[-20,0],q:[20,0],A:[-45,-55],B:[-20,-77],C:[20,-77],D:[45,-55],K:[-59,-25],E:[59,-25],J:[-58,27],F:[58,27],I:[-39,63],G:[39,63],H:[0,81]},roman:{a:[-40,-52.5],b:[0,-52.5],c:[40,-52.5],d:[-40,0],e:[0,0],f:[40,0],g:[-40,52.5],h:[0,52.5],i:[40,52.5],y:[-42.5,-52.5],z:[0,65],j:[-30,-37.5],k:[0,-37.5],l:[30,-37.5],m:[-30,37.5],n:[0,37.5],o:[30,37.5],p:[-30,0],q:[30,0],A:[-51.5,-65],B:[-17,-75],C:[17,-75],D:[51.5,-65],K:[-51.5,-21],E:[51.5,-21],J:[-51.5,21],F:[51.5,21],I:[-51.5,65],G:[51.5,65],H:[-17,75],L:[17,75]},kite:{b:[0,-65],e:[0,-15],h:[0,35],z:[0,35],k:[0,-50],n:[0,20],p:[-20,-15],q:[20,-15],A:[-38,-52],B:[-29,-78],C:[29,-78],D:[38,-52],K:[-33,-20],E:[33,-20],J:[-25,11],F:[25,11],I:[-15,42],G:[15,42],H:[0,73],L:[0,-91]},oldFrench:{a:[-43.75,-50],b:[0,-50],c:[43.75,-50],d:[-43.75,0],e:[0,0],f:[43.75,0],g:[-37.5,50],h:[0,50],i:[37.5,50],y:[-50,-50],z:[0,62.5],j:[-37.5,-37.5],k:[0,-37.5],l:[37.5,-37.5],m:[-37.5,37.5],n:[0,45],o:[37.5,37.5],p:[-37.5,0],q:[37.5,0],A:[-66.2,-66.6],B:[-22,-66.6],C:[22,-66.6],D:[66.2,-66.6],K:[-66.2,-20],E:[66.2,-20],J:[-64,26],F:[64,26],I:[-45,62],G:[45,62],H:[0,91]},renaissance:{a:[-43.75,-50],b:[0,-50],c:[43.75,-50],d:[-41.5,0],e:[0,0],f:[41.5,0],g:[-43.75,50],h:[0,50],i:[43.75,50],y:[-50,-50],z:[0,62.5],j:[-37.5,-37.5],k:[0,-37.5],l:[37.5,-37.5],m:[-37.5,37.5],n:[0,37.5],o:[37.5,37.5],p:[-37.5,0],q:[37.5,0],A:[-61,-55],B:[-23,-67],C:[23,-67],D:[61,-55],K:[-55,-11],E:[55,-11],J:[-65,31],F:[65,31],I:[-45,76],G:[45,76],H:[0,87]},baroque:{a:[-43.75,-45],b:[0,-45],c:[43.75,-45],d:[-43.75,0],e:[0,0],f:[43.75,0],g:[-43.75,50],h:[0,50],i:[43.75,50],y:[-50,-50],z:[0,60],j:[-37.5,-37.5],k:[0,-37.5],l:[37.5,-37.5],m:[-37.5,37.5],n:[0,37.5],o:[37.5,37.5],p:[-37.5,0],q:[37.5,0],A:[-65,-54.5],B:[-22,-65],C:[22,-65],D:[65,-54.5],K:[-58.5,-15],E:[58.5,-15],J:[-65,31],F:[66,31],I:[-35,73],G:[35,73],H:[0,89]},targe:{a:[-43.75,-50],b:[0,-50],c:[43.75,-50],d:[-43.75,0],e:[0,0],f:[43.75,0],g:[-43.75,50],h:[0,50],i:[43.75,50],y:[-50,-50],z:[0,50],j:[-40,-40],k:[0,-40],l:[40,-40],m:[-40,40],n:[0,40],o:[40,40],p:[-32.5,0],q:[32.5,0],A:[-66.2,-60],B:[-22,-77],C:[22,-86],D:[60,-66.6],K:[-28,-20],E:[57,-20],J:[-61,26],F:[61,26],I:[-49,63],G:[49,59],H:[0,80]},targe2:{a:[-43.75,-50],b:[0,-50],c:[43.75,-50],d:[-40,0],e:[0,0],f:[40,0],g:[-43.75,50],h:[0,50],i:[43.75,50],y:[-50,-50],z:[0,60],j:[-37.5,-37.5],k:[0,-37.5],l:[37.5,-37.5],m:[-37.5,37.5],n:[0,37.5],o:[37.5,37.5],p:[-32.5,0],q:[32.5,0],A:[-55,-59],B:[-15,-59],C:[24,-79],D:[51,-58],K:[-40,-14],E:[51,-14],J:[-64,26],F:[62,26],I:[-46,66],G:[48,67],H:[0,83]},pavise:{a:[-40,-52.5],b:[0,-52.5],c:[40,-52.5],d:[-40,0],e:[0,0],f:[40,0],g:[-40,52.5],h:[0,52.5],i:[40,52.5],y:[-42.5,-52.5],z:[0,60],j:[-30,-35],k:[0,-37.5],l:[30,-35],m:[-30,35],n:[0,37.5],o:[30,35],p:[-30,0],q:[30,0],A:[-57,-55],B:[-22,-74],C:[22,-74],D:[57,-55],K:[-54,-11],E:[54,-11],J:[-50,36],F:[50,36],I:[-46,81],G:[46,81],H:[0,81]},wedged:{a:[-43.75,-50],b:[0,-50],c:[43.75,-50],d:[-43.75,0],e:[0,0],f:[43.75,0],g:[-32.25,37.5],h:[0,50],i:[32.25,37.5],y:[-50,-50],z:[0,62.5],j:[-37.5,-37.5],k:[0,-37.5],l:[37.5,-37.5],m:[-32.5,32.5],n:[0,42.5],o:[32.5,32.5],p:[-37.5,0],q:[37.5,0],A:[-66,-53],B:[-22,-72.5],C:[22,-72.5],D:[66,-53],K:[-62.6,-13],E:[62.6,-13],J:[-50,26],F:[50,26],I:[-27,62],G:[27,62],H:[0,87]},flag:{a:[-60,-40],b:[0,-40],c:[60,-40],d:[-60,0],e:[0,0],f:[60,0],g:[-60,40],h:[0,40],i:[60,40],y:[-60,-42.5],z:[0,40],j:[-45,-30],k:[0,-30],l:[45,-30],m:[-45,30],n:[0,30],o:[45,30],p:[-45,0],q:[45,0],A:[-81,-51],B:[-27,-51],C:[27,-51],D:[81,-51],K:[-81,-17],E:[81,-17],J:[-81,17],F:[81,17],I:[-81,51],G:[81,51],H:[-27,51],L:[27,51]},pennon:{a:[-75,-40],d:[-75,0],e:[-25,0],f:[25,0],g:[-75,40],y:[-70,-42.5],j:[-60,-30],m:[-60,30],p:[-60,0],q:[5,0],A:[-81,-48],B:[-43,-36],C:[-4.5,-24],D:[33,-12],E:[72,0],F:[33,12],G:[-4.5,24],H:[-43,36],I:[-81,48],J:[-81,17],K:[-81,-17]},guidon:{a:[-60,-40],b:[0,-40],c:[60,-40],d:[-60,0],e:[0,0],g:[-60,40],h:[0,40],i:[60,40],y:[-60,-42.5],z:[0,40],j:[-45,-30],k:[0,-30],l:[45,-30],m:[-45,30],n:[0,30],o:[45,30],p:[-45,0],A:[-81,-51],B:[-27,-51],C:[27,-51],D:[78,-51],K:[-81,-17],E:[40.5,-17],J:[-81,17],F:[40.5,17],I:[-81,51],G:[78,51],H:[-27,51],L:[27,51]},banner:{a:[-50,-50],b:[0,-50],c:[50,-50],d:[-50,0],e:[0,0],f:[50,0],g:[-50,40],h:[0,40],i:[50,40],y:[-50,-50],z:[0,40],j:[-37.5,-37.5],k:[0,-37.5],l:[37.5,-37.5],m:[-37.5,27.5],n:[0,27.5],o:[37.5,27.5],p:[-37.5,0],q:[37.5,0],A:[-66.5,-66.5],B:[-22,-66.5],C:[22,-66.5],D:[66.5,-66.5],K:[-66.5,-20],E:[66.5,-20],J:[-66.5,26],F:[66.5,26],I:[-66.5,66.5],G:[66.5,66.5],H:[-25,75],L:[25,75]},dovetail:{a:[-49.75,-50],b:[0,-50],c:[49.75,-50],d:[-49.75,0],e:[0,0],f:[49.75,0],g:[-49.75,50],i:[49.75,50],y:[-50,-50],z:[0,40],j:[-37.5,-37.5],k:[0,-37.5],l:[37.5,-37.5],m:[-37.5,37.5],n:[0,32.5],o:[37.5,37.5],p:[-37.5,0],q:[37.5,0],A:[-66.5,-66.5],B:[-22,-66.5],C:[22,-66.5],D:[66.5,-66.5],K:[-66.5,-16.5],E:[66.5,-16.5],J:[-66.5,34.5],F:[66.5,34.5],I:[-66.5,84.5],G:[66.5,84.5],H:[-25,64],L:[25,64]},gonfalon:{a:[-49.75,-50],b:[0,-50],c:[49.75,-50],d:[-49.75,0],e:[0,0],f:[49.75,0],g:[-49.75,50],h:[0,50],i:[49.75,50],y:[-50,-50],z:[0,50],j:[-37.5,-37.5],k:[0,-37.5],l:[37.5,-37.5],m:[-37.5,37.5],n:[0,37.5],o:[37.5,37.5],p:[-37.5,0],q:[37.5,0],A:[-66.5,-66.5],B:[-22,-66.5],C:[22,-66.5],D:[66.5,-66.5],K:[-66.5,-20],E:[66.5,-20],J:[-66.5,26],F:[66.5,26],I:[-40,63],G:[40,63],H:[0,88]},pennant:{a:[-45,-50],b:[0,-50],c:[45,-50],e:[0,0],h:[0,50],y:[-50,-50],z:[0,50],j:[-32.5,-37.5],k:[0,-37.5],l:[32.5,-37.5],n:[0,37.5],A:[-60,-76],B:[-22,-76],C:[22,-76],D:[60,-76],K:[-46,-38],E:[46,-38],J:[-31,0],F:[31,0],I:[-16,38],G:[16,38],H:[0,76]},round:{a:[-40,-40],b:[0,-40],c:[40,-40],d:[-40,0],e:[0,0],f:[40,0],g:[-40,40],h:[0,40],i:[40,40],y:[-48,-48],z:[0,57.5],j:[-35.5,-35.5],k:[0,-37.5],l:[35.5,-35.5],m:[-35.5,35.5],n:[0,37.5],o:[35.5,35.5],p:[-36.5,0],q:[36.5,0],A:[-59,-48],B:[-23,-73],C:[23,-73],D:[59,-48],K:[-76,-10],E:[76,-10],J:[-70,31],F:[70,31],I:[-42,64],G:[42,64],H:[0,77]},oval:{a:[-37.5,-50],b:[0,-50],c:[37.5,-50],d:[-43,0],e:[0,0],f:[43,0],g:[-37.5,50],h:[0,50],i:[37.5,50],y:[-48,-48],z:[0,60],j:[-35.5,-37.5],k:[0,-37.5],l:[35.5,-37.5],m:[-35.5,37.5],n:[0,50],o:[35.5,37.5],p:[-36.5,0],q:[36.5,0],A:[-48,-48],B:[-23,-78],C:[23,-78],D:[48,-48],K:[-59,-10],E:[59,-10],J:[-55,31],F:[55,31],I:[-36,68],G:[36,68],H:[0,85]},vesicaPiscis:{a:[-32,-37],b:[0,-50],c:[32,-37],d:[-32,0],e:[0,0],f:[32,0],g:[-32,37],h:[0,50],i:[32,37],y:[-50,-50],z:[0,62],j:[-27.5,-27.5],k:[0,-37],l:[27.5,-27.5],m:[-27.5,27.5],n:[0,42],o:[27.5,27.5],p:[-27.5,0],q:[27.5,0],A:[-45,-32],B:[-29,-63],C:[29,-63],D:[45,-32],K:[-50,0],E:[50,0],J:[-45,32],F:[45,32],I:[-29,63],G:[29,63],H:[0,89],L:[0,-89]},square:{a:[-49.75,-50],b:[0,-50],c:[49.75,-50],d:[-49.75,0],e:[0,0],f:[49.75,0],g:[-49.75,50],h:[0,50],i:[49.75,50],y:[-50,-50],z:[0,50],j:[-37.5,-37.5],k:[0,-37.5],l:[37.5,-37.5],m:[-37.5,37.5],n:[0,37.5],o:[37.5,37.5],p:[-37.5,0],q:[37.5,0],A:[-66.5,-66.5],B:[-22,-66.5],C:[22,-66.5],D:[66.5,-66.5],K:[-66.5,-20],E:[66.5,-20],J:[-66.5,26],F:[66.5,26],I:[-66.5,66.5],G:[66.5,66.5],H:[-22,66.5],L:[22,66.5]},diamond:{a:[-32,-37],b:[0,-50],c:[32,-37],d:[-43,0],e:[0,0],f:[43,0],g:[-32,37],h:[0,50],i:[32,37],y:[-50,-50],z:[0,62],j:[-27.5,-27.5],k:[0,-37],l:[27.5,-27.5],m:[-27.5,27.5],n:[0,42],o:[27.5,27.5],p:[-37,0],q:[37,0],A:[-43,-28],B:[-22,-56],C:[22,-56],D:[43,-28],K:[-63,0],E:[63,0],J:[-42,28],F:[42,28],I:[-22,56],G:[22,56],H:[0,83],L:[0,-82]},no:{a:[-66.5,-66.5],b:[0,-66.5],c:[66.5,-66.5],d:[-66.5,0],e:[0,0],f:[66.5,0],g:[-66.5,66.5],h:[0,66.5],i:[66.5,66.5],y:[-50,-50],z:[0,75],j:[-50,-50],k:[0,-50],l:[50,-50],m:[-50,50],n:[0,50],o:[50,50],p:[-50,0],q:[50,0],A:[-91.5,-91.5],B:[-30.5,-91.5],C:[30.5,-91.5],D:[91.5,-91.5],K:[-91.5,-30.5],E:[91.5,-30.5],J:[-91.5,30.5],F:[91.5,30.5],I:[-91.5,91.5],G:[91.5,91.5],H:[-30.5,91.5],L:[30.5,91.5]},fantasy1:{a:[-45,-45],b:[0,-50],c:[45,-45],d:[-40,0],e:[0,0],f:[40,0],g:[-36,42.5],h:[0,50],i:[36,42.5],y:[-50,-50],z:[0,60],j:[-37,-37],k:[0,-40],l:[37,-37],m:[-32,32],n:[0,40],o:[32,32],p:[-28.5,0],q:[28.5,0],A:[-66,-55],B:[-22,-67],C:[22,-67],D:[66,-55],K:[-53,-20],E:[53,-20],J:[-46,26],F:[46,26],I:[-29,62],G:[29,62],H:[0,84]},fantasy2:{a:[-45,-45],b:[0,-45],c:[45,-45],d:[-35,0],e:[0,0],f:[35,0],g:[-36,42.5],h:[0,45],i:[36,42.5],y:[-50,-50],z:[0,55],j:[-32.5,-32.5],k:[0,-40],l:[32.5,-32.5],m:[-30,30],n:[0,40],o:[30,30],p:[-27.5,0],q:[27.5,0],A:[-58,-35],B:[-44,-67],C:[44,-67],D:[58,-35],K:[-39,-5],E:[39,-5],J:[-57,26],F:[57,26],I:[-32,58],G:[32,58],H:[0,83],L:[0,-72]},fantasy3:{a:[-40,-45],b:[0,-50],c:[40,-45],d:[-35,0],e:[0,0],f:[35,0],g:[-36,42.5],h:[0,50],i:[36,42.5],y:[-50,-50],z:[0,55],j:[-32.5,-32.5],k:[0,-40],l:[32.5,-32.5],m:[-30,30],n:[0,40],o:[30,30],p:[-27.5,0],q:[27.5,0],A:[-56,-42],B:[-22,-72],C:[22,-72],D:[56,-42],K:[-37,-11],E:[37,-11],J:[-60,20],F:[60,20],I:[-34,56],G:[34,56],H:[0,83]},fantasy4:{a:[-50,-45],b:[0,-50],c:[50,-45],d:[-45,0],e:[0,0],f:[45,0],g:[-40,45],h:[0,50],i:[40,45],y:[-50,-50],z:[0,62.5],j:[-37.5,-37.5],k:[0,-45],l:[37.5,-37.5],m:[-37.5,37.5],n:[0,45],o:[37.5,37.5],p:[-35,0],q:[35,0],A:[-75,-56],B:[-36,-61],C:[36,-61],D:[75,-56],K:[-67,-12],E:[67,-12],J:[-63,32],F:[63,32],I:[-42,75],G:[42,75],H:[0,91.5],L:[0,-79]},fantasy5:{a:[-45,-50],b:[0,-50],c:[45,-50],d:[-40,0],e:[0,0],f:[40,0],g:[-30,45],h:[0,50],i:[30,45],y:[-50,-50],z:[0,60],j:[-37,-37],k:[0,-40],l:[37,-37],m:[-32,32],n:[0,40],o:[32,32],p:[-28.5,0],q:[28.5,0],A:[-61,-67],B:[-22,-76],C:[22,-76],D:[61,-67],K:[-58,-25],E:[58,-25],J:[-48,20],F:[48,20],I:[-28.5,60],G:[28.5,60],H:[0,89]},noldor:{b:[0,-65],e:[0,-15],h:[0,35],z:[0,35],k:[0,-50],n:[0,30],p:[-20,-15],q:[20,-15],A:[-34,-47],B:[-20,-68],C:[20,-68],D:[34,-47],K:[-18,-20],E:[18,-20],J:[-26,11],F:[26,11],I:[-14,43],G:[14,43],H:[0,74],L:[0,-85]},gondor:{a:[-32.5,-50],b:[0,-50],c:[32.5,-50],d:[-32.5,0],e:[0,0],f:[32.5,0],g:[-32.5,50],h:[0,50],i:[32.5,50],y:[-42.5,-52.5],z:[0,65],j:[-25,-37.5],k:[0,-37.5],l:[25,-37.5],m:[-25,30],n:[0,37.5],o:[25,30],p:[-25,0],q:[25,0],A:[-42,-52],B:[-17,-75],C:[17,-75],D:[42,-52],K:[-42,-15],E:[42,-15],J:[-42,22],F:[42,22],I:[-26,60],G:[26,60],H:[0,87]},easterling:{a:[-40,-47.5],b:[0,-47.5],c:[40,-47.5],d:[-40,0],e:[0,0],f:[40,0],g:[-40,47.5],h:[0,47.5],i:[40,47.5],y:[-42.5,-52.5],z:[0,65],j:[-30,-37.5],k:[0,-37.5],l:[30,-37.5],m:[-30,37.5],n:[0,37.5],o:[30,37.5],p:[-30,0],q:[30,0],A:[-52,-72],B:[0,-65],D:[52,-72],K:[-52,-24],E:[52,-24],J:[-52,24],F:[52,24],I:[-52,72],G:[52,72],H:[0,65]},erebor:{a:[-40,-40],b:[0,-55],c:[40,-40],d:[-40,0],e:[0,0],f:[40,0],g:[-40,40],h:[0,55],i:[40,40],y:[-50,-50],z:[0,50],j:[-35,-35],k:[0,-45],l:[35,-35],m:[-35,35],n:[0,45],o:[35,35],p:[-37.5,0],q:[37.5,0],A:[-47,-46],B:[-22,-81],C:[22,-81],D:[47,-46],K:[-66.5,0],E:[66.5,0],J:[-47,46],F:[47,46],I:[-22,81],G:[22,81]},ironHills:{a:[-43.75,-50],b:[0,-50],c:[43.75,-50],d:[-43.25,0],e:[0,0],f:[43.25,0],g:[-42.5,42.5],h:[0,50],i:[42.5,42.5],y:[-50,-50],z:[0,62.5],j:[-32.5,-32.5],k:[0,-40],l:[32.5,-32.5],m:[-32.5,32.5],n:[0,40],o:[32.5,32.5],p:[-37.5,0],q:[37.5,0],A:[-61,-67],B:[-22,-74],C:[22,-74],D:[61,-67],K:[-59,-20],E:[59,-20],J:[-57,26],F:[57,26],I:[-33,64],G:[33,64],H:[0,88]},urukHai:{a:[-40,-45],b:[0,-45],c:[40,-45],d:[-36,0],e:[0,0],f:[36,0],g:[-32.25,40],h:[0,40],i:[32.25,40],y:[-50,-50],z:[0,40],j:[-32.5,-32.5],k:[0,-37.5],l:[32.5,-32.5],m:[-27.5,27.5],n:[0,32.5],o:[27.5,27.5],p:[-37.5,0],q:[37.5,0],A:[-31,-79],B:[-1,-90],C:[31,-74],D:[61,-57],K:[-55,-19],E:[53,-19],J:[-45,19],F:[45,19],I:[-33,57],G:[35,57],H:[0,57],L:[-39,-50]},moriaOrc:{a:[-37.5,-37.5],b:[0,-37.5],c:[37.5,-37.5],d:[-37.5,0],e:[0,0],f:[37.5,0],g:[-37.5,37.5],h:[0,37.5],i:[37.5,37.5],y:[-50,-50],z:[0,40],j:[-30,-30],k:[0,-30],l:[30,-30],m:[-30,30],n:[0,30],o:[30,30],p:[-30,0],q:[30,0],A:[-48,-48],B:[-16,-50],C:[16,-46],D:[39,-61],K:[-52,-19],E:[52,-26],J:[-42,9],F:[52,9],I:[-31,40],G:[40,43],H:[4,47]}},$r=["luster","spotlight","backlight"],yr="#333333",br="#333333",wr={argent:"#fafafa",or:"#ffe066",gules:"#d7374a",sable:"#333333",azure:"#377cd7",vert:"#26c061",purpure:"#522d5b",murrey:"#85185b",sanguine:"#b63a3a","tenné":"#cc7f19"},kr={field:{metals:32,colours:49,stains:1,patterns:14},division:{metals:35,colours:49,stains:1,patterns:8},charge:{metals:16,colours:24,stains:1,patterns:0},metals:{argent:3,or:2},colours:{gules:5,azure:4,sable:3,purpure:3,vert:2},stains:{murrey:1,sanguine:1,"tenné":1},patterns:{semy:8,ermine:6,vair:4,counterVair:1,vairInPale:1,vairEnPointe:2,vairAncien:2,potent:2,counterPotent:1,potentInPale:1,potentEnPointe:1,chequy:8,lozengy:5,fusily:2,pally:8,barry:10,gemelles:1,bendy:8,bendySinister:4,palyBendy:2,barryBendy:1,pappellony:2,pappellony2:3,scaly:1,plumetty:1,masoned:6,fretty:3,grillage:1,chainy:1,maily:2,honeycombed:1}},Er=He(!1),xr=function(){const e=e=>{const t=localStorage.getItem(e);return"null"===t?null:t},t=e=>localStorage.getItem(e)?JSON.parse(localStorage.getItem(e)):null,n=+e("size")||200,r=e("diaper")||"no",i=e("grad")||sr($r),o=(()=>{const e=new URL(window.location.href).searchParams.get("coa");return e?JSON.parse(e)?.shield:null})()||e("shield")||lr(pr[lr(pr.types)]),s=t("colors")||JSON.parse(JSON.stringify(wr)),l=e("border")||yr,a=+e("borderWidth")||1,c=e("background")||br,u=+e("scale")||2,d=+e("grid")||1,p=t("showGrid")||false,h=t("tinctures"),f=h&&(e=>{const t=["field","division","charge"],n=["metals","colours"];try{for(const r of t){if(!e[r])throw new Error(`Missing ${r}`);for(const t of n)if(!e[r][t])throw new Error(`Missing ${t} in ${r}`)}for(const t of n){if(!e[t])throw new Error(`Missing ${t}`);if(Object.keys(e[t]).length<2)throw new Error(`Type ${t} must have more than 2 tinctures`);const n=Object.values(e[t]).reduce(((e,t)=>e+t),0);if(n<1)throw new Error(`Total chance for type ${t} must be more that zero`)}return!0}catch(t){return console.error("Invalid stored tinctures data, switching to defaults.",t.message,e),!1}})(h)?h:JSON.parse(JSON.stringify(kr));return{size:n,diaper:r,grad:i,shield:o,colors:s,tinctures:f,border:l,borderWidth:a,background:c,scale:u,grid:d,showGrid:p}}(),_r=He(xr.size),Cr=He(xr.grad),Lr=He(xr.diaper),Sr=He(xr.shield),zr=He(xr.colors),Ar=He(xr.tinctures),Tr=He(xr.background),Or=He(xr.scale),Pr=He(xr.border),Mr=He(xr.borderWidth),Ir=He(xr.grid),jr=He(xr.showGrid),Nr=He([]),qr=He([]),Hr=He(0),Ur=He({edit:0,about:0,license:0,tinctures:0,raster:0,vector:0,i:0,c:0,view:0}),Rr=He(!1),Br=(()=>{const{subscribe:e,set:t}=He(null);return{subscribe:e,clear:()=>t(null),success:(e,n=5e3)=>{t({type:"success",text:e,timeout:n})},info:(e,n=5e3)=>{t({type:"info",text:e,timeout:n})},error:(e,n=5e3)=>{t({type:"error",text:e,timeout:n})}}})(),Dr=(()=>{const{subscribe:e,set:t,update:n}=He(["",-1]);let r=[],i=-1;return{subscribe:e,length:()=>r.length,reset:()=>{r=[],i=-1,t(["",-1])},add:e=>{e!==r[i]&&(in((()=>(i>0&&(i-=1),[r[i],i]))),redo:()=>n((()=>(i1?Math.floor(window.innerWidth/r):1,s=n.length>1?Math.ceil(n.length/o):1,l=a(Or);r=Math.round(r*l),i=Math.round(i*l);const c=document.createElement("canvas"),u=c.getContext("2d");c.width=r*o,c.height=i*s;let d=0;n.forEach((async function(e,s){const l=await async function(e,t,n){const r={},i=e.cloneNode(!0);i.setAttribute("width",t),i.setAttribute("height",n),i.removeAttribute("class"),i.removeAttribute("id");const o=i.getElementsByTagName("defs")[0],s=i.getElementById("grid"),l=i.getElementById("gridPattern");s&&s.remove();l&&l.remove();const c=a(Cr),u=a(Lr);c&&"no"!==c&&o.insertAdjacentHTML("beforeend",defs.getElementById(c).outerHTML);u&&"no"!==u&&o.insertAdjacentHTML("beforeend",defs.getElementById(u).outerHTML);i.querySelectorAll(".charge[charge]").forEach((e=>{const t=e.getAttribute("fill").split("(#")[1]?.split(")")[0];t&&h(t,o);const n=e.getAttribute("charge");r[n]||(o.insertAdjacentHTML("beforeend",defs.getElementById(n).outerHTML),r[n]=!0)})),i.querySelectorAll(".ordinary").forEach((e=>{const t=e.getAttribute("fill").split("(#")[1]?.split(")")[0];t&&h(t,o)}));const d=i.getElementsByClassName("field")[0].getAttribute("fill").split("(#")[1]?.split(")")[0];d&&h(d,o);const p=i.getElementsByClassName("division")[0]?.querySelector("rect").getAttribute("fill").split("(#")[1]?.split(")")[0];p&&h(p,o);function h(e,t){if(!r[e]){if(t.insertAdjacentHTML("beforeend",document.getElementById(e).outerHTML),"semy"===e.slice(0,4)){const n=e.match(/semy_of_(.*?)-/)[1];r[n]||(t.insertAdjacentHTML("beforeend",document.getElementById(n).outerHTML),r[n]=!0)}r[e]=!0}}const f=(new XMLSerializer).serializeToString(i),m=Fr?f:function(e){const t=(new DOMParser).parseFromString(e,"image/svg+xml"),n=(new DOMParser).parseFromString(['',' ',' ',' '," ",' ',' '," ",' '," "].join("\n"),"application/xml"),r=new XSLTProcessor;r.importStylesheet(n);const i=r.transformToDocument(t);return(new XMLSerializer).serializeToString(i)}(f),g=new Blob([m],{type:"image/svg+xml;charset=utf-8"}),v=window.URL.createObjectURL(g);return window.setTimeout((()=>window.URL.revokeObjectURL(v)),6e3),v}(e,r,i);"svg"===t?function(e){const t=document.createElement("a");t.download=`armoria_${Vr()}.svg`,t.href=e,t.click(),window.setTimeout((()=>window.URL.revokeObjectURL(URL)),5e3)}(l):function(e,s){const l=new Image;l.src=e,l.onload=()=>{URL.revokeObjectURL(e),u.drawImage(l,s%o*r,Math.floor(s/o)*i,r,i),d++,d===n.length&&function(e,t){const n=document.createElement("a");n.download=`armoria_${Vr()}.${t}`;const r=e.toDataURL("image/"+t,.92);n.href=r,n.click(),setTimeout((function(){e.remove(),window.URL.revokeObjectURL(n.href)}),5e3)}(c,t)}}(l,s)}))}function Vr(){const e=e=>e<10?"0"+e:e,t=new Date;return[t.getFullYear(),e(t.getMonth()+1),e(t.getDate()),e(t.getHours()),e(t.getMinutes()),e(t.getSeconds())].join("-")}const Jr=()=>{const e=a(Rr),t=window.innerWidth<1132;e!==t&&Rr.set(t)};Jr();const{window:Kr}=Ce;function Zr(t){let n,r;return{c:e,m(e,i){n||(r=[I(Kr,"keydown",t[0]),I(Kr,"touchstart",t[1]),I(Kr,"touchend",t[2]),I(Kr,"resize",Jr)],n=!0)},p:e,i:e,o:e,d(e){n=!1,i(r)}}}function Wr(e,t,n){let r,i,o,s;c(e,Hr,(e=>n(4,r=e))),c(e,Ur,(e=>n(5,i=e))),c(e,Dr,(e=>n(6,o=e))),c(e,Nr,(e=>n(7,s=e)));let l={startX:0,startY:0};"azgaar.github.io"!==location.host||navigator.userAgent.includes("Electron")||(window.onbeforeunload=()=>"Are you sure you want to navigate away?");const a={Backspace:()=>r>0&&Hr.set(r-1),Enter:()=>Hr.set(g(Hr,r+=1,r)),KeyZ:Dr.undo,KeyX:Dr.redo,KeyS:e=>e&&Gr(null,"svg"),KeyP:e=>e&&Gr(null,"png"),KeyJ:e=>e&&Gr(null,"jpeg"),F1:()=>Ur.set({...i,about:!i.about}),Escape:function(){i.edit&&g(Nr,s[i.c]=JSON.parse(o[0]),s),Ur.set({...i,about:0,raster:0,vector:0,tinctures:0,edit:0}),Br.clear()}};return[function(e){const t=e.code,n=e.ctrlKey;if(!n&&!["Backspace","Enter","KeyZ","KeyX","KeyS","KeyP","KeyJ","F1","Escape"].includes(t))return;const r=document.activeElement.tagName;if("INPUT"===r||"SELECT"===r||"TEXTAREA"===r)return;e.preventDefault();const i=a[t];i&&i(n)},function(e){const{screenX:t,screenY:n}=e.changedTouches[0];l.startX=t,l.startY=n},function(e){const t=document.getElementById("menu"),n=document.getElementById("navbar");if(t?.contains(e.target))return;if(n?.contains(e.target))return;const{screenX:o,screenY:s}=e.changedTouches[0],{startX:a,startY:c}=l,u=o-a,d=s-c,p=Math.abs(u/d),h=Math.abs(d/u);Math.abs(p>h?u:d)<100||(p>h?u>=0?i.edit?Dr.redo():g(Hr,r+=1,r):i.edit?Dr.undo():r>0&&g(Hr,r-=1,r):d>=0?g(Hr,r+=1,r):r>0&&g(Hr,r-=1,r))}]}class Xr extends Ne{constructor(e){super(),je(this,e,Wr,Zr,s,{})}}function Yr(t){let n,r,i,o,s;return{c(){n=A("li"),r=T("svg"),i=T("path"),N(i,"fill","#fff"),N(i,"stroke","none"),N(i,"d","m 46,3 0.6,1.4 c -1.5,0.7 -2.6,1.4 -3.3,2.2 -0.7,0.7 -1.2,1.5 -1.5,2.4 -0.3,0.9 -0.4,2.2 -0.4,3.9 0,0.6 0,1.3 0,2.2 l 0.5,23.2 c 0,2.5 0.3,4.2 0.8,5 0.4,0.6 0.8,0.8 1.3,0.8 0.6,0 1.5,-0.6 2.8,-1.8 l 0.9,1.1 -5.8,4.9 -1.9,1.6 C 38.4,49.2 37.2,48.2 36.5,46.9 35.8,45.7 35.3,36.7 35.2,34 c -7.6,0.1 -20.2,0 -20.2,0 0,0 -7.4,9.1 -7.4,11.1 0,0.6 0.2,1.1 0.6,1.8 0.5,0.9 0.8,1.4 0.8,1.7 0,0.4 -0.1,0.7 -0.4,1 -0.3,0.3 -0.6,0.4 -1.1,0.4 -0.5,0 -0.9,-0.2 -1.2,-0.6 -0.5,-0.6 -0.7,-1.3 -0.7,-2.2 0,-1 0.3,-2.1 0.8,-3.3 C 8.8,39.9 11.3,36.7 14.1,32.9 11.1,30.7 9,28.5 7.8,26.4 6.6,24.4 6,22.1 6,19.5 c 0,-3 0.8,-5.7 2.3,-8.3 1.5,-2.5 3.8,-4.5 6.9,-6 3.1,-1.5 6.2,-2.2 9.4,-2.2 4.9,0 9.7,1.7 14.3,5.1 1.1,-1.2 2.2,-2.1 3.2,-2.9 1,-0.8 2.4,-1.5 4,-2.3 z M 30.7,10.2 c -2.6,-1.3 -5.2,-1.9 -7.8,-1.9 -2.7,0 -5.3,0.6 -7.8,1.8 -2.4,1.2 -4.2,2.8 -5.4,4.7 -1.2,1.9 -1.8,3.9 -1.8,5.9 0,4.2 2.3,8 6.9,11.3 L 25.2,17.7 c -1.6,-0.8 -2.9,-1.3 -4.2,-1.3 -1.7,0 -3.1,0.8 -4.2,2.4 -0.4,0.7 -1,0.5 -1.1,-0.2 0,-0.6 0.3,-1.5 1,-2.7 0.7,-1.1 1.6,-2.1 2.9,-2.8 1.3,-0.7 2.6,-1.1 4,-1.1 1.4,0 3.1,0.4 4.9,1.1 z m 4,3.2 C 34,12.4 32.8,11.5 32,11 L 18.4,29.4 h 16.7 z"),N(r,"width","35"),N(r,"height","35"),N(r,"viewBox","-2 -1 55 55"),N(r,"class","svelte-1fl894"),N(n,"class","svelte-1fl894")},m(e,l){L(e,n,l),x(n,r),x(r,i),o||(s=I(r,"click",t[1]),o=!0)},p:e,d(e){e&&S(n),o=!1,s()}}}function Qr(t){let n,r=!t[0]&&Yr(t);return{c(){r&&r.c(),n=M()},m(e,t){r&&r.m(e,t),L(e,n,t)},p(e,[t]){e[0]?r&&(r.d(1),r=null):r?r.p(e,t):(r=Yr(e),r.c(),r.m(n.parentNode,n))},i:e,o:e,d(e){r&&r.d(e),e&&S(n)}}}function ei(e,t,n){let r;c(e,Rr,(e=>n(0,r=e)));return[r,()=>{location.href=location.origin+location.pathname}]}class ti extends Ne{constructor(e){super(),je(this,e,ei,Qr,s,{})}}const ni=a(or),ri=e=>{if(!e.dataset.tooltip)return;const t="ontouchstart"in window,n=document.createElement("div");let r;const i=e.dataset.gesture,o=e.dataset.hotkey;function s(){var e,t;e=".tooltip",t=e=>e.remove(),Array.from(document.querySelectorAll(e)).forEach((e=>{t(e)}))}return e.on("mouseenter",(function(){s();let l=e.dataset.tooltip;t&&i&&(l=`${l}. ${ni("tooltip.gesture")}: ${i}`),!t&&o&&(l=`${l}. ${ni("tooltip.hotkey")}: ${o}`),n.textContent=l,n.className="tooltip",document.body.appendChild(n);const a=n.getBoundingClientRect();r=[window.innerWidth-a.width,window.innerHeight-a.height]})),e.on("mousemove",(function(e){n.style.left=`${Math.min(e.pageX+10,r[0])}px`,n.style.top=`${Math.min(e.pageY+10,r[1])}px`})),e.on("mouseleave",s),{destroy(){s()}}};function ii(e){return e<.5?4*e*e*e:.5*Math.pow(2*e-2,3)+1}function oi(e){const t=e-1;return t*t*t+1}function si(e,{delay:n=0,duration:r=400,easing:i=t}={}){const o=+getComputedStyle(e).opacity;return{delay:n,duration:r,easing:i,css:e=>"opacity: "+e*o}}function li(e,{delay:t=0,duration:n=400,easing:r=oi,x:i=0,y:o=0,opacity:s=0}={}){const l=getComputedStyle(e),a=+l.opacity,c="none"===l.transform?"":l.transform,u=a*(1-s);return{delay:t,duration:n,easing:r,css:(e,t)=>`\n\t\t\ttransform: ${c} translate(${(1-e)*i}px, ${(1-e)*o}px);\n\t\t\topacity: ${a-u*t}`}}function ai(e,{delay:t=0,duration:n=400,easing:r=oi}={}){const i=getComputedStyle(e),o=+i.opacity,s=parseFloat(i.height),l=parseFloat(i.paddingTop),a=parseFloat(i.paddingBottom),c=parseFloat(i.marginTop),u=parseFloat(i.marginBottom),d=parseFloat(i.borderTopWidth),p=parseFloat(i.borderBottomWidth);return{delay:t,duration:n,easing:r,css:e=>`overflow: hidden;opacity: ${Math.min(20*e,1)*o};height: ${e*s}px;padding-top: ${e*l}px;padding-bottom: ${e*a}px;margin-top: ${e*c}px;margin-bottom: ${e*u}px;border-top-width: ${e*d}px;border-bottom-width: ${e*p}px;`}}function ci(e,{delay:t=0,speed:n,duration:r,easing:i=ii}={}){let o=e.getTotalLength();const s=getComputedStyle(e);return"butt"!==s.strokeLinecap&&(o+=parseInt(s.strokeWidth)),void 0===r?r=void 0===n?800:o/n:"function"==typeof r&&(r=r(o)),{delay:t,duration:r,easing:i,css:(e,t)=>`stroke-dasharray: ${e*o} ${t*o}`}}function ui(t){let n,r,i;return{c(){n=A("span"),r=O(t[0])},m(e,t){L(e,n,t),x(n,r)},p(e,t){1&t&&U(r,e[0])},i(e){i||le((()=>{i=Ee(n,si,{duration:100}),i.start()}))},o:e,d(e){e&&S(n)}}}function di(t){let n,r=t[0]&&ui(t);return{c(){r&&r.c(),n=M()},m(e,t){r&&r.m(e,t),L(e,n,t)},p(e,[t]){e[0]?r?(r.p(e,t),1&t&&be(r,1)):(r=ui(e),r.c(),be(r,1),r.m(n.parentNode,n)):r&&(r.d(1),r=null)},i(e){be(r)},o:e,d(e){r&&r.d(e),e&&S(n)}}}function pi(e,t,n){let{label:r}=t;return e.$$set=e=>{"label"in e&&n(0,r=e.label)},[r]}class hi extends Ne{constructor(e){super(),je(this,e,pi,di,s,{label:0})}}function fi(e){let t,n;return t=new hi({props:{label:e[1]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};2&n&&(r.label=e[1]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function mi(t){let n,r,i;return{c(){n=T("svg"),r=T("use"),N(r,"href",i="#"+t[0]+"-icon"),N(n,"class","svelte-1cyv4ar")},m(e,t){L(e,n,t),x(n,r)},p(e,t){1&t&&i!==(i="#"+e[0]+"-icon")&&N(r,"href",i)},i:e,o:e,d(e){e&&S(n)}}}function gi(e){let t,n,r,i,o,s,l;const a=[mi,fi],c=[];function d(e,t){return e[0]&&e[4]?0:1}n=d(e),r=c[n]=a[n](e);const m=e[6].default,g=u(m,e,e[5],null);return{c(){t=A("li"),r.c(),i=P(),g&&g.c(),N(t,"data-tooltip",e[2]),N(t,"class","svelte-1cyv4ar"),G(t,"wide",e[3])},m(e,r){L(e,t,r),c[n].m(t,null),x(t,i),g&&g.m(t,null),o=!0,s||(l=v(ri.call(null,t)),s=!0)},p(e,[s]){let l=n;n=d(e),n===l?c[n].p(e,s):($e(),we(c[l],1,1,(()=>{c[l]=null})),ye(),r=c[n],r?r.p(e,s):(r=c[n]=a[n](e),r.c()),be(r,1),r.m(t,i)),g&&g.p&&(!o||32&s)&&h(g,m,e,e[5],o?p(m,e[5],s,null):f(e[5]),null),(!o||4&s)&&N(t,"data-tooltip",e[2]),8&s&&G(t,"wide",e[3])},i(e){o||(be(r),be(g,e),o=!0)},o(e){we(r),we(g,e),o=!1},d(e){e&&S(t),c[n].d(),g&&g.d(e),s=!1,l()}}}function vi(e,t,n){let r;c(e,Rr,(e=>n(4,r=e)));let{$$slots:i={},$$scope:o}=t,{value:s}=t,{label:l}=t,{tip:a}=t,{wide:u=!1}=t;return e.$$set=e=>{"value"in e&&n(0,s=e.value),"label"in e&&n(1,l=e.label),"tip"in e&&n(2,a=e.tip),"wide"in e&&n(3,u=e.wide),"$$scope"in e&&n(5,o=e.$$scope)},[s,l,a,u,r,o,i]}class $i extends Ne{constructor(e){super(),je(this,e,vi,gi,s,{value:0,label:1,tip:2,wide:3})}}function yi(e){let t,n;return t=new hi({props:{label:e[1]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};2&n&&(r.label=e[1]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function bi(t){let n,r,i;return{c(){n=T("svg"),r=T("use"),N(r,"href",i="#"+t[0]+"-icon"),N(n,"class","svelte-5uhu10")},m(e,t){L(e,n,t),x(n,r)},p(e,t){1&t&&i!==(i="#"+e[0]+"-icon")&&N(r,"href",i)},i:e,o:e,d(e){e&&S(n)}}}function wi(e){let t,n,r,o,s,l,a;const c=[bi,yi],d=[];function m(e,t){return e[0]&&e[9]?0:1}n=m(e),r=d[n]=c[n](e);const g=e[13].default,$=u(g,e,e[12],null);return{c(){t=A("li"),r.c(),o=P(),$&&$.c(),N(t,"data-tooltip",e[2]),N(t,"data-gesture",e[3]),N(t,"data-hotkey",e[4]),N(t,"class","svelte-5uhu10"),G(t,"disabled",e[5]),G(t,"selected",e[6]),G(t,"flutter",e[7]),G(t,"right",e[8])},m(r,i){L(r,t,i),d[n].m(t,null),x(t,o),$&&$.m(t,null),s=!0,l||(a=[I(t,"click",e[10]),v(ri.call(null,t))],l=!0)},p(e,[i]){let l=n;n=m(e),n===l?d[n].p(e,i):($e(),we(d[l],1,1,(()=>{d[l]=null})),ye(),r=d[n],r?r.p(e,i):(r=d[n]=c[n](e),r.c()),be(r,1),r.m(t,o)),$&&$.p&&(!s||4096&i)&&h($,g,e,e[12],s?p(g,e[12],i,null):f(e[12]),null),(!s||4&i)&&N(t,"data-tooltip",e[2]),(!s||8&i)&&N(t,"data-gesture",e[3]),(!s||16&i)&&N(t,"data-hotkey",e[4]),32&i&&G(t,"disabled",e[5]),64&i&&G(t,"selected",e[6]),128&i&&G(t,"flutter",e[7]),256&i&&G(t,"right",e[8])},i(e){s||(be(r),be($,e),s=!0)},o(e){we(r),we($,e),s=!1},d(e){e&&S(t),d[n].d(),$&&$.d(e),l=!1,i(a)}}}function ki(e,t,n){let r;c(e,Rr,(e=>n(9,r=e)));let{$$slots:i={},$$scope:o}=t,{value:s}=t,{label:l}=t,{tip:a}=t,{gesture:u}=t,{hotkey:d}=t,{disabled:p=!1}=t,{selected:h=!1}=t,{flutter:f=!1}=t,{right:m=!1}=t,{onclick:g}=t;return e.$$set=e=>{"value"in e&&n(0,s=e.value),"label"in e&&n(1,l=e.label),"tip"in e&&n(2,a=e.tip),"gesture"in e&&n(3,u=e.gesture),"hotkey"in e&&n(4,d=e.hotkey),"disabled"in e&&n(5,p=e.disabled),"selected"in e&&n(6,h=e.selected),"flutter"in e&&n(7,f=e.flutter),"right"in e&&n(8,m=e.right),"onclick"in e&&n(11,g=e.onclick),"$$scope"in e&&n(12,o=e.$$scope)},[s,l,a,u,d,p,h,f,m,r,e=>{e.stopPropagation(),g()},g,o,i]}class Ei extends Ne{constructor(e){super(),je(this,e,ki,wi,s,{value:0,label:1,tip:2,gesture:3,hotkey:4,disabled:5,selected:6,flutter:7,right:8,onclick:11})}}function xi(e){let t,n,r,o;return{c(){t=A("span"),n=O("🔖"),N(t,"data-tooltip",e[1]),N(t,"class","svelte-e703nl")},m(i,s){L(i,t,s),x(t,n),r||(o=[I(t,"click",e[2]),v(ri.call(null,t))],r=!0)},p(e,n){2&n&&N(t,"data-tooltip",e[1])},d(e){e&&S(t),r=!1,i(o)}}}function _i(t){let n,r=Boolean(t[0]),i=r&&xi(t);return{c(){i&&i.c(),n=M()},m(e,t){i&&i.m(e,t),L(e,n,t)},p(e,[t]){1&t&&(r=Boolean(e[0])),r?i?i.p(e,t):(i=xi(e),i.c(),i.m(n.parentNode,n)):i&&(i.d(1),i=null)},i:e,o:e,d(e){i&&i.d(e),e&&S(n)}}}function Ci(e,t,n){let r,i,o;c(e,or,(e=>n(4,o=e)));let{key:s}=t;return e.$$set=e=>{"key"in e&&n(3,s=e.key)},e.$$.update=()=>{8&e.$$.dirty&&n(0,r=localStorage.getItem(s)),16&e.$$.dirty&&n(1,i=o("tooltip.locked"))},[r,i,function(e){e.stopPropagation(),localStorage.removeItem(s),n(0,r="")},s,o]}class Li extends Ne{constructor(e){super(),je(this,e,Ci,_i,s,{key:3})}}function Si(e,t,n){const r=e.slice();return r[6]=t[n],r}function zi(e,t,n){const r=e.slice();return r[9]=t[n],r}function Ai(e){let t,n,r,i,o,s=e[1](`shield.${e[6]}.${e[9]}`)+"";return{c(){t=T("svg"),n=T("path"),r=P(),i=O(s),o=P(),N(n,"d",fr[e[9]]),N(t,"width","26"),N(t,"height","26"),N(t,"viewBox","0 0 200 210"),N(t,"class","svelte-ljo27"),G(t,"selected",e[9]===e[0])},m(e,s){L(e,t,s),x(t,n),L(e,r,s),L(e,i,s),L(e,o,s)},p(e,n){9&n&&G(t,"selected",e[9]===e[0]),2&n&&s!==(s=e[1](`shield.${e[6]}.${e[9]}`)+"")&&U(i,s)},d(e){e&&S(t),e&&S(r),e&&S(i),e&&S(o)}}}function Ti(e){let t,n;return t=new Ei({props:{onclick:function(){return e[4](e[9])},$$slots:{default:[Ai]},$$scope:{ctx:e}}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(n,r){e=n;const i={};4099&r&&(i.$$scope={dirty:r,ctx:e}),t.$set(i)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Oi(e){let t,n=e[1](`shield.types.${e[6]}`)+"";return{c(){t=O(n)},m(e,n){L(e,t,n)},p(e,r){2&r&&n!==(n=e[1](`shield.types.${e[6]}`)+"")&&U(t,n)},d(e){e&&S(t)}}}function Pi(e){let t,n,r,i,o,s,l=e[3](e[6]),a=[];for(let t=0;twe(a[e],1,1,(()=>{a[e]=null}));return i=new $i({props:{$$slots:{default:[Oi]},$$scope:{ctx:e}}}),{c(){t=A("div"),n=A("div");for(let e=0;ewe(c[e],1,1,(()=>{c[e]=null}));let d=Ii(t);return{c(){n=A("div"),r=A("div");for(let e=0;en(0,r=e))),c(e,Dr,(e=>n(5,i=e))),c(e,or,(e=>n(1,o=e)));const s=e=>{if(Sr.set(e),localStorage.setItem("shield",e),Dr.length()){const e=JSON.parse(i[0]);e.shield=r,Dr.add(JSON.stringify(e))}};return[r,o,s,e=>Object.keys(pr[e]),e=>s(e)]}class qi extends Ne{constructor(e){super(),je(this,e,Ni,ji,s,{})}}function Hi(e){let t,n,r,i,o,s,l=e[0]("menu.colors")+"";return t=new Li({props:{key:"tinctures"}}),r=new Li({props:{key:"colors"}}),{c(){Oe(t.$$.fragment),n=P(),Oe(r.$$.fragment),i=P(),o=O(l)},m(e,l){Pe(t,e,l),L(e,n,l),Pe(r,e,l),L(e,i,l),L(e,o,l),s=!0},p(e,t){(!s||1&t)&&l!==(l=e[0]("menu.colors")+"")&&U(o,l)},i(e){s||(be(t.$$.fragment,e),be(r.$$.fragment,e),s=!0)},o(e){we(t.$$.fragment,e),we(r.$$.fragment,e),s=!1},d(e){Me(t,e),e&&S(n),Me(r,e),e&&S(i),e&&S(o)}}}function Ui(e){let t,n;return t=new Ei({props:{onclick:e[1],tip:e[0]("tooltip.colors"),$$slots:{default:[Hi]},$$scope:{ctx:e}}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,[n]){const r={};1&n&&(r.tip=e[0]("tooltip.colors")),9&n&&(r.$$scope={dirty:n,ctx:e}),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Ri(e,t,n){let r,i;c(e,Ur,(e=>n(2,r=e))),c(e,or,(e=>n(0,i=e)));return[i,()=>{g(Ur,r.tinctures=1,r)}]}class Bi extends Ne{constructor(e){super(),je(this,e,Ri,Ui,s,{})}}const Di=[[80,"giant"],[100,"huge"],[150,"large"],[200,"medium"],[300,"small"],[400,"tiny"]],Fi=["no","luster","spotlight","backlight","brink"],Gi=["no","nourse","tessellation","sennwald","sulzbach"];function Vi(e,t,n){const r=e.slice();return r[4]=t[n],r}function Ji(e){let t,n,r=e[1](`gradient.${e[4]}`)+"";return{c(){t=O(r),n=P()},m(e,r){L(e,t,r),L(e,n,r)},p(e,n){2&n&&r!==(r=e[1](`gradient.${e[4]}`)+"")&&U(t,r)},d(e){e&&S(t),e&&S(n)}}}function Ki(e){let t,n;return t=new Ei({props:{selected:e[4]===e[0],onclick:function(){return e[3](e[4])},$$slots:{default:[Ji]},$$scope:{ctx:e}}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(n,r){e=n;const i={};1&r&&(i.selected=e[4]===e[0]),130&r&&(i.$$scope={dirty:r,ctx:e}),t.$set(i)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Zi(e){let t,n,r,i,o=e[1]("menu.gradient")+"";return t=new Li({props:{key:"grad"}}),{c(){Oe(t.$$.fragment),n=P(),r=O(o)},m(e,o){Pe(t,e,o),L(e,n,o),L(e,r,o),i=!0},p(e,t){(!i||2&t)&&o!==(o=e[1]("menu.gradient")+"")&&U(r,o)},i(e){i||(be(t.$$.fragment,e),i=!0)},o(e){we(t.$$.fragment,e),i=!1},d(e){Me(t,e),e&&S(n),e&&S(r)}}}function Wi(e){let t,n;return t=new $i({props:{tip:e[1]("tooltip.gradient"),$$slots:{default:[Zi]},$$scope:{ctx:e}}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};2&n&&(r.tip=e[1]("tooltip.gradient")),130&n&&(r.$$scope={dirty:n,ctx:e}),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Xi(t){let n,r,i,o,l=t[0],a=Fi,c=[];for(let e=0;ewe(c[e],1,1,(()=>{c[e]=null}));let d=Wi(t);return{c(){n=A("div"),r=A("div");for(let e=0;en(0,r=e))),c(e,or,(e=>n(1,i=e)));const o=e=>{Cr.set(e),localStorage.setItem("grad",e)};return[r,i,o,e=>o(e)]}class Qi extends Ne{constructor(e){super(),je(this,e,Yi,Xi,s,{})}}function eo(e,t,n){const r=e.slice();return r[4]=t[n],r}function to(e){let t,n,r=e[1](`diaper.${e[4]}`)+"";return{c(){t=O(r),n=P()},m(e,r){L(e,t,r),L(e,n,r)},p(e,n){2&n&&r!==(r=e[1](`diaper.${e[4]}`)+"")&&U(t,r)},d(e){e&&S(t),e&&S(n)}}}function no(e){let t,n;return t=new Ei({props:{selected:e[4]===e[0],onclick:function(){return e[3](e[4])},$$slots:{default:[to]},$$scope:{ctx:e}}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(n,r){e=n;const i={};1&r&&(i.selected=e[4]===e[0]),130&r&&(i.$$scope={dirty:r,ctx:e}),t.$set(i)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function ro(e){let t,n,r,i,o=e[1]("menu.damasking")+"";return t=new Li({props:{key:"diaper"}}),{c(){Oe(t.$$.fragment),n=P(),r=O(o)},m(e,o){Pe(t,e,o),L(e,n,o),L(e,r,o),i=!0},p(e,t){(!i||2&t)&&o!==(o=e[1]("menu.damasking")+"")&&U(r,o)},i(e){i||(be(t.$$.fragment,e),i=!0)},o(e){we(t.$$.fragment,e),i=!1},d(e){Me(t,e),e&&S(n),e&&S(r)}}}function io(e){let t,n;return t=new $i({props:{tip:e[1]("tooltip.damasking"),$$slots:{default:[ro]},$$scope:{ctx:e}}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};2&n&&(r.tip=e[1]("tooltip.damasking")),130&n&&(r.$$scope={dirty:n,ctx:e}),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function oo(t){let n,r,i,o,l=t[0],a=Gi,c=[];for(let e=0;ewe(c[e],1,1,(()=>{c[e]=null}));let d=io(t);return{c(){n=A("div"),r=A("div");for(let e=0;en(0,r=e))),c(e,or,(e=>n(1,i=e)));const o=e=>{Lr.set(e),localStorage.setItem("diaper",e)};return[r,i,o,e=>o(e)]}class lo extends Ne{constructor(e){super(),je(this,e,so,oo,s,{})}}function ao(e,t,n){const r=e.slice();return r[4]=t[n][0],r[5]=t[n][1],r}function co(e){let t,n,r=e[1](`gallery.${e[5]}`)+"";return{c(){t=O(r),n=P()},m(e,r){L(e,t,r),L(e,n,r)},p(e,n){2&n&&r!==(r=e[1](`gallery.${e[5]}`)+"")&&U(t,r)},d(e){e&&S(t),e&&S(n)}}}function uo(e){let t,n;return t=new Ei({props:{selected:e[4]===e[0],onclick:function(){return e[3](e[4])},$$slots:{default:[co]},$$scope:{ctx:e}}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(n,r){e=n;const i={};1&r&&(i.selected=e[4]===e[0]),258&r&&(i.$$scope={dirty:r,ctx:e}),t.$set(i)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function po(e){let t,n,r,i,o=e[1]("menu.gallery")+"";return t=new Li({props:{key:"size"}}),{c(){Oe(t.$$.fragment),n=P(),r=O(o)},m(e,o){Pe(t,e,o),L(e,n,o),L(e,r,o),i=!0},p(e,t){(!i||2&t)&&o!==(o=e[1]("menu.gallery")+"")&&U(r,o)},i(e){i||(be(t.$$.fragment,e),i=!0)},o(e){we(t.$$.fragment,e),i=!1},d(e){Me(t,e),e&&S(n),e&&S(r)}}}function ho(e){let t,n;return t=new $i({props:{tip:e[1]("tooltip.gallery"),$$slots:{default:[po]},$$scope:{ctx:e}}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};2&n&&(r.tip=e[1]("tooltip.gallery")),258&n&&(r.$$scope={dirty:n,ctx:e}),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function fo(t){let n,r,i,o,l=t[0],a=Di,c=[];for(let e=0;ewe(c[e],1,1,(()=>{c[e]=null}));let d=ho(t);return{c(){n=A("div"),r=A("div");for(let e=0;en(0,r=e))),c(e,or,(e=>n(1,i=e)));const o=e=>{"number"==typeof e&&(_r.set(e),localStorage.setItem("size",String(e)))};return[r,i,o,e=>o(e)]}class go extends Ne{constructor(e){super(),je(this,e,mo,fo,s,{})}}function vo(t){let n,r,o,s,l;return{c(){n=T("svg"),r=T("use"),N(r,"href",o="#"+t[0]+"-icon"),N(n,"data-tooltip",t[1]),N(n,"class","svelte-m0cv10")},m(e,i){L(e,n,i),x(n,r),s||(l=[I(n,"click",t[2]),v(ri.call(null,n))],s=!0)},p(e,[t]){1&t&&o!==(o="#"+e[0]+"-icon")&&N(r,"href",o),2&t&&N(n,"data-tooltip",e[1])},i:e,o:e,d(e){e&&S(n),s=!1,i(l)}}}function $o(e,t,n){let{icon:r}=t,{tip:i}=t,{onclick:o}=t;return e.$$set=e=>{"icon"in e&&n(0,r=e.icon),"tip"in e&&n(1,i=e.tip),"onclick"in e&&n(3,o=e.onclick)},[r,i,e=>{e.stopPropagation(),o()},o]}class yo extends Ne{constructor(e){super(),je(this,e,$o,vo,s,{icon:0,tip:1,onclick:3})}}function bo(t){let n,r,i;return{c(){n=A("input"),N(n,"type","color"),n.value=t[0],N(n,"class","svelte-sqg2wx")},m(e,o){L(e,n,o),r||(i=I(n,"input",t[1]),r=!0)},p(e,[t]){1&t&&(n.value=e[0])},i:e,o:e,d(e){e&&S(n),r=!1,i()}}}function wo(e,t,n){let{value:r}=t,{oninput:i}=t;return e.$$set=e=>{"value"in e&&n(0,r=e.value),"oninput"in e&&n(2,i=e.oninput)},[r,e=>{const t=e.target.value;i(t)},i]}class ko extends Ne{constructor(e){super(),je(this,e,wo,bo,s,{value:0,oninput:2})}}function Eo(t){let n,r,i;return{c(){n=A("input"),N(n,"type","number"),N(n,"min",t[1]),N(n,"max",t[2]),N(n,"step",t[3]),n.value=t[0],N(n,"class","svelte-1h78xtb")},m(e,o){L(e,n,o),r||(i=I(n,"input",t[4]),r=!0)},p(e,[t]){2&t&&N(n,"min",e[1]),4&t&&N(n,"max",e[2]),8&t&&N(n,"step",e[3]),1&t&&(n.value=e[0])},i:e,o:e,d(e){e&&S(n),r=!1,i()}}}function xo(e,t,n){let{value:r}=t,{oninput:i}=t,{min:o=0}=t,{max:s=1/0}=t,{step:l=1}=t;return e.$$set=e=>{"value"in e&&n(0,r=e.value),"oninput"in e&&n(5,i=e.oninput),"min"in e&&n(1,o=e.min),"max"in e&&n(2,s=e.max),"step"in e&&n(3,l=e.step)},[r,o,s,l,e=>{const t=e.target.value;i(+t)},i]}class _o extends Ne{constructor(e){super(),je(this,e,xo,Eo,s,{value:0,oninput:5,min:1,max:2,step:3})}}function Co(e){let t,n;return t=new yo({props:{icon:"undo",tip:e[0]("tooltip.undoColorChange"),onclick:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.tip=e[0]("tooltip.undoColorChange")),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Lo(e){let t,n,r,i,o,s=e[0]("menu.color")+"",l=e[1]!==yr&&Co(e);return i=new ko({props:{value:e[1],oninput:e[6]}}),{c(){t=O(s),n=P(),l&&l.c(),r=P(),Oe(i.$$.fragment)},m(e,s){L(e,t,s),L(e,n,s),l&&l.m(e,s),L(e,r,s),Pe(i,e,s),o=!0},p(e,n){(!o||1&n)&&s!==(s=e[0]("menu.color")+"")&&U(t,s),e[1]!==yr?l?(l.p(e,n),2&n&&be(l,1)):(l=Co(e),l.c(),be(l,1),l.m(r.parentNode,r)):l&&($e(),we(l,1,1,(()=>{l=null})),ye());const a={};2&n&&(a.value=e[1]),i.$set(a)},i(e){o||(be(l),be(i.$$.fragment,e),o=!0)},o(e){we(l),we(i.$$.fragment,e),o=!1},d(e){e&&S(t),e&&S(n),l&&l.d(e),e&&S(r),Me(i,e)}}}function So(e){let t,n;return t=new yo({props:{icon:"undo",tip:e[0]("tooltip.undoBorderWidthChange"),onclick:e[4]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.tip=e[0]("tooltip.undoBorderWidthChange")),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function zo(e){let t,n,r,i,o,s=e[0]("menu.width")+"",l=1!==e[2]&&So(e);return i=new _o({props:{min:0,max:4,step:.4,value:e[2],oninput:e[5]}}),{c(){t=O(s),n=P(),l&&l.c(),r=P(),Oe(i.$$.fragment)},m(e,s){L(e,t,s),L(e,n,s),l&&l.m(e,s),L(e,r,s),Pe(i,e,s),o=!0},p(e,n){(!o||1&n)&&s!==(s=e[0]("menu.width")+"")&&U(t,s),1!==e[2]?l?(l.p(e,n),4&n&&be(l,1)):(l=So(e),l.c(),be(l,1),l.m(r.parentNode,r)):l&&($e(),we(l,1,1,(()=>{l=null})),ye());const a={};4&n&&(a.value=e[2]),i.$set(a)},i(e){o||(be(l),be(i.$$.fragment,e),o=!0)},o(e){we(l),we(i.$$.fragment,e),o=!1},d(e){e&&S(t),e&&S(n),l&&l.d(e),e&&S(r),Me(i,e)}}}function Ao(e){let t,n=e[0]("menu.border")+"";return{c(){t=O(n)},m(e,n){L(e,t,n)},p(e,r){1&r&&n!==(n=e[0]("menu.border")+"")&&U(t,n)},d(e){e&&S(t)}}}function To(e){let t,n,r,i,o,s,l,a;return r=new $i({props:{$$slots:{default:[Lo]},$$scope:{ctx:e}}}),o=new $i({props:{$$slots:{default:[zo]},$$scope:{ctx:e}}}),l=new $i({props:{tip:e[0]("tooltip.border"),$$slots:{default:[Ao]},$$scope:{ctx:e}}}),{c(){t=A("div"),n=A("div"),Oe(r.$$.fragment),i=P(),Oe(o.$$.fragment),s=P(),Oe(l.$$.fragment),N(n,"class","dropdown level2"),N(t,"class","container")},m(e,c){L(e,t,c),x(t,n),Pe(r,n,null),x(n,i),Pe(o,n,null),x(t,s),Pe(l,t,null),a=!0},p(e,[t]){const n={};131&t&&(n.$$scope={dirty:t,ctx:e}),r.$set(n);const i={};133&t&&(i.$$scope={dirty:t,ctx:e}),o.$set(i);const s={};1&t&&(s.tip=e[0]("tooltip.border")),129&t&&(s.$$scope={dirty:t,ctx:e}),l.$set(s)},i(e){a||(be(r.$$.fragment,e),be(o.$$.fragment,e),be(l.$$.fragment,e),a=!0)},o(e){we(r.$$.fragment,e),we(o.$$.fragment,e),we(l.$$.fragment,e),a=!1},d(e){e&&S(t),Me(r),Me(o),Me(l)}}}function Oo(e,t,n){let r,i,o;c(e,or,(e=>n(0,r=e))),c(e,Pr,(e=>n(1,i=e))),c(e,Mr,(e=>n(2,o=e)));return[r,i,o,()=>{Pr.set(yr),localStorage.removeItem("border")},()=>{Mr.set(1),localStorage.removeItem("borderWidth")},e=>{Mr.set(e),localStorage.setItem("borderWidth",String(e))},e=>{Pr.set(e),localStorage.setItem("border",e)}]}class Po extends Ne{constructor(e){super(),je(this,e,Oo,To,s,{})}}function Mo(e){let t,n;return t=new yo({props:{icon:"undo",tip:e[0]("tooltip.undoColorChange"),onclick:e[2]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.tip=e[0]("tooltip.undoColorChange")),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Io(e){let t,n,r,i,o,s,l,a=e[0]("menu.color")+"";r=new yo({props:{icon:"random",tip:e[0]("tooltip.randomColor"),onclick:e[3]}});let c=e[1]!==br&&Mo(e);return s=new ko({props:{value:e[1],oninput:e[4]}}),{c(){t=O(a),n=P(),Oe(r.$$.fragment),i=P(),c&&c.c(),o=P(),Oe(s.$$.fragment)},m(e,a){L(e,t,a),L(e,n,a),Pe(r,e,a),L(e,i,a),c&&c.m(e,a),L(e,o,a),Pe(s,e,a),l=!0},p(e,n){(!l||1&n)&&a!==(a=e[0]("menu.color")+"")&&U(t,a);const i={};1&n&&(i.tip=e[0]("tooltip.randomColor")),r.$set(i),e[1]!==br?c?(c.p(e,n),2&n&&be(c,1)):(c=Mo(e),c.c(),be(c,1),c.m(o.parentNode,o)):c&&($e(),we(c,1,1,(()=>{c=null})),ye());const u={};2&n&&(u.value=e[1]),s.$set(u)},i(e){l||(be(r.$$.fragment,e),be(c),be(s.$$.fragment,e),l=!0)},o(e){we(r.$$.fragment,e),we(c),we(s.$$.fragment,e),l=!1},d(e){e&&S(t),e&&S(n),Me(r,e),e&&S(i),c&&c.d(e),e&&S(o),Me(s,e)}}}function jo(e){let t,n=e[0]("menu.background")+"";return{c(){t=O(n)},m(e,n){L(e,t,n)},p(e,r){1&r&&n!==(n=e[0]("menu.background")+"")&&U(t,n)},d(e){e&&S(t)}}}function No(e){let t,n,r,i,o,s;return r=new $i({props:{$$slots:{default:[Io]},$$scope:{ctx:e}}}),o=new $i({props:{tip:e[0]("tooltip.background"),$$slots:{default:[jo]},$$scope:{ctx:e}}}),{c(){t=A("div"),n=A("div"),Oe(r.$$.fragment),i=P(),Oe(o.$$.fragment),N(n,"class","dropdown level2"),N(t,"class","container")},m(e,l){L(e,t,l),x(t,n),Pe(r,n,null),x(t,i),Pe(o,t,null),s=!0},p(e,[t]){const n={};35&t&&(n.$$scope={dirty:t,ctx:e}),r.$set(n);const i={};1&t&&(i.tip=e[0]("tooltip.background")),33&t&&(i.$$scope={dirty:t,ctx:e}),o.$set(i)},i(e){s||(be(r.$$.fragment,e),be(o.$$.fragment,e),s=!0)},o(e){we(r.$$.fragment,e),we(o.$$.fragment,e),s=!1},d(e){e&&S(t),Me(r),Me(o)}}}function qo(e,t,n){let r,i;c(e,or,(e=>n(0,r=e))),c(e,Tr,(e=>n(1,i=e)));return[r,i,()=>{Tr.set(br),localStorage.removeItem("background")},()=>{const e="#"+[0,0,0,0,0,0].map((()=>"0123456789ABCDEF"[Math.floor(16*Math.random())])).join("");Tr.set(e),localStorage.setItem("background",e)},e=>{Tr.set(e),localStorage.setItem("background",e)}]}class Ho extends Ne{constructor(e){super(),je(this,e,qo,No,s,{})}}function Uo(t){let n,r,o,s,l;return{c(){n=A("input"),r=P(),o=A("input"),N(n,"type","range"),N(n,"min",t[1]),N(n,"max",t[2]),N(n,"step",t[3]),n.value=t[0],N(n,"class","svelte-1cxyc7"),N(o,"type","number"),N(o,"min",t[1]),N(o,"max",t[2]),N(o,"step",t[3]),o.value=t[0],N(o,"class","svelte-1cxyc7")},m(e,i){L(e,n,i),L(e,r,i),L(e,o,i),s||(l=[I(n,"input",t[4]),I(o,"input",t[4])],s=!0)},p(e,[t]){2&t&&N(n,"min",e[1]),4&t&&N(n,"max",e[2]),8&t&&N(n,"step",e[3]),1&t&&(n.value=e[0]),2&t&&N(o,"min",e[1]),4&t&&N(o,"max",e[2]),8&t&&N(o,"step",e[3]),1&t&&(o.value=e[0])},i:e,o:e,d(e){e&&S(n),e&&S(r),e&&S(o),s=!1,i(l)}}}function Ro(e,t,n){let{value:r}=t,{oninput:i}=t,{min:o=0}=t,{max:s=1/0}=t,{step:l=1}=t;return e.$$set=e=>{"value"in e&&n(0,r=e.value),"oninput"in e&&n(5,i=e.oninput),"min"in e&&n(1,o=e.min),"max"in e&&n(2,s=e.max),"step"in e&&n(3,l=e.step)},[r,o,s,l,e=>{const t=e.target.value;i(+t)},i]}class Bo extends Ne{constructor(e){super(),je(this,e,Ro,Uo,s,{value:0,oninput:5,min:1,max:2,step:3})}}function Do(e){let t,n;return t=new Bo({props:{min:1,max:4,step:.1,value:e[0],oninput:e[2]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.value=e[0]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Fo(e){let t,n=e[1]("menu.scale")+"";return{c(){t=O(n)},m(e,n){L(e,t,n)},p(e,r){2&r&&n!==(n=e[1]("menu.scale")+"")&&U(t,n)},d(e){e&&S(t)}}}function Go(e){let t,n,r,i,o,s;return r=new $i({props:{wide:!0,$$slots:{default:[Do]},$$scope:{ctx:e}}}),o=new $i({props:{tip:e[1]("tooltip.scale"),$$slots:{default:[Fo]},$$scope:{ctx:e}}}),{c(){t=A("div"),n=A("div"),Oe(r.$$.fragment),i=P(),Oe(o.$$.fragment),N(n,"class","dropdown level2"),N(t,"class","container")},m(e,l){L(e,t,l),x(t,n),Pe(r,n,null),x(t,i),Pe(o,t,null),s=!0},p(e,[t]){const n={};9&t&&(n.$$scope={dirty:t,ctx:e}),r.$set(n);const i={};2&t&&(i.tip=e[1]("tooltip.scale")),10&t&&(i.$$scope={dirty:t,ctx:e}),o.$set(i)},i(e){s||(be(r.$$.fragment,e),be(o.$$.fragment,e),s=!0)},o(e){we(r.$$.fragment,e),we(o.$$.fragment,e),s=!1},d(e){e&&S(t),Me(r),Me(o)}}}function Vo(e,t,n){let r,i;c(e,Or,(e=>n(0,r=e))),c(e,or,(e=>n(1,i=e)));return[r,i,e=>{Or.set(e),localStorage.setItem("scale",String(r))}]}class Jo extends Ne{constructor(e){super(),je(this,e,Vo,Go,s,{})}}function Ko(e){let t,n,r,i,o,s,l,a,c,u,d,p,h,f,m,g,v,$,y,b;return n=new $i({props:{value:"options",label:e[0]("menu.options")}}),o=new qi({}),l=new Bi({}),c=new Qi({}),d=new lo({}),h=new go({}),m=new Po({}),v=new Ho({}),y=new Jo({}),{c(){t=A("div"),Oe(n.$$.fragment),r=P(),i=A("div"),Oe(o.$$.fragment),s=P(),Oe(l.$$.fragment),a=P(),Oe(c.$$.fragment),u=P(),Oe(d.$$.fragment),p=P(),Oe(h.$$.fragment),f=P(),Oe(m.$$.fragment),g=P(),Oe(v.$$.fragment),$=P(),Oe(y.$$.fragment),N(i,"class","dropdown level1"),N(t,"class","container")},m(e,w){L(e,t,w),Pe(n,t,null),x(t,r),x(t,i),Pe(o,i,null),x(i,s),Pe(l,i,null),x(i,a),Pe(c,i,null),x(i,u),Pe(d,i,null),x(i,p),Pe(h,i,null),x(i,f),Pe(m,i,null),x(i,g),Pe(v,i,null),x(i,$),Pe(y,i,null),b=!0},p(e,[t]){const r={};1&t&&(r.label=e[0]("menu.options")),n.$set(r)},i(e){b||(be(n.$$.fragment,e),be(o.$$.fragment,e),be(l.$$.fragment,e),be(c.$$.fragment,e),be(d.$$.fragment,e),be(h.$$.fragment,e),be(m.$$.fragment,e),be(v.$$.fragment,e),be(y.$$.fragment,e),b=!0)},o(e){we(n.$$.fragment,e),we(o.$$.fragment,e),we(l.$$.fragment,e),we(c.$$.fragment,e),we(d.$$.fragment,e),we(h.$$.fragment,e),we(m.$$.fragment,e),we(v.$$.fragment,e),we(y.$$.fragment,e),b=!1},d(e){e&&S(t),Me(n),Me(o),Me(l),Me(c),Me(d),Me(h),Me(m),Me(v),Me(y)}}}function Zo(e,t,n){let r;return c(e,or,(e=>n(0,r=e))),[r]}class Wo extends Ne{constructor(e){super(),je(this,e,Zo,Ko,s,{})}}function Xo(e){let t,n;return t=new Ei({props:{value:"rollback",label:e[1]("menu.rollback"),disabled:!e[0],onclick:e[3],tip:e[1](e[2].edit?"tooltip.rollbackEdit":"tooltip.rollback"),gesture:e[1]("tooltip.swipeUp"),hotkey:"Backspace"}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,[n]){const r={};2&n&&(r.label=e[1]("menu.rollback")),1&n&&(r.disabled=!e[0]),6&n&&(r.tip=e[1](e[2].edit?"tooltip.rollbackEdit":"tooltip.rollback")),2&n&&(r.gesture=e[1]("tooltip.swipeUp")),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Yo(e,t,n){let r,i,o;c(e,Hr,(e=>n(0,r=e))),c(e,or,(e=>n(1,i=e))),c(e,Ur,(e=>n(2,o=e)));return[r,i,o,()=>{g(Hr,r-=1,r)}]}class Qo extends Ne{constructor(e){super(),je(this,e,Yo,Xo,s,{})}}function es(e){let t,n;return t=new Ei({props:{value:"reroll",label:e[0]("menu.reroll"),onclick:e[2],tip:e[0](e[1].edit?"tooltip.rerollEdit":"tooltip.reroll"),gesture:e[0]("tooltip.swipeDown"),hotkey:"Enter"}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,[n]){const r={};1&n&&(r.label=e[0]("menu.reroll")),3&n&&(r.tip=e[0](e[1].edit?"tooltip.rerollEdit":"tooltip.reroll")),1&n&&(r.gesture=e[0]("tooltip.swipeDown")),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function ts(e,t,n){let r,i,o;c(e,Hr,(e=>n(3,r=e))),c(e,or,(e=>n(0,i=e))),c(e,Ur,(e=>n(1,o=e)));return[i,o,()=>{g(Hr,r+=1,r)}]}class ns extends Ne{constructor(e){super(),je(this,e,ts,es,s,{})}}function rs(e){let t,n=e[0]("menu.downloadSVG")+"";return{c(){t=O(n)},m(e,n){L(e,t,n)},p(e,r){1&r&&n!==(n=e[0]("menu.downloadSVG")+"")&&U(t,n)},d(e){e&&S(t)}}}function is(e){let t,n=e[0]("menu.downloadPNG")+"";return{c(){t=O(n)},m(e,n){L(e,t,n)},p(e,r){1&r&&n!==(n=e[0]("menu.downloadPNG")+"")&&U(t,n)},d(e){e&&S(t)}}}function os(e){let t,n=e[0]("menu.downloadJPEG")+"";return{c(){t=O(n)},m(e,n){L(e,t,n)},p(e,r){1&r&&n!==(n=e[0]("menu.downloadJPEG")+"")&&U(t,n)},d(e){e&&S(t)}}}function ss(e){let t,n,r,i,o,s;return t=new Ei({props:{onclick:e[2],tip:e[0]("tooltip.copyEditLink"),$$slots:{default:[ls]},$$scope:{ctx:e}}}),r=new Ei({props:{onclick:e[3],tip:e[0]("tooltip.copyApiLink"),$$slots:{default:[as]},$$scope:{ctx:e}}}),o=new Ei({props:{onclick:e[4],tip:e[0]("tooltip.copyCoaString"),$$slots:{default:[cs]},$$scope:{ctx:e}}}),{c(){Oe(t.$$.fragment),n=P(),Oe(r.$$.fragment),i=P(),Oe(o.$$.fragment)},m(e,l){Pe(t,e,l),L(e,n,l),Pe(r,e,l),L(e,i,l),Pe(o,e,l),s=!0},p(e,n){const i={};1&n&&(i.tip=e[0]("tooltip.copyEditLink")),1025&n&&(i.$$scope={dirty:n,ctx:e}),t.$set(i);const s={};1&n&&(s.tip=e[0]("tooltip.copyApiLink")),1025&n&&(s.$$scope={dirty:n,ctx:e}),r.$set(s);const l={};1&n&&(l.tip=e[0]("tooltip.copyCoaString")),1025&n&&(l.$$scope={dirty:n,ctx:e}),o.$set(l)},i(e){s||(be(t.$$.fragment,e),be(r.$$.fragment,e),be(o.$$.fragment,e),s=!0)},o(e){we(t.$$.fragment,e),we(r.$$.fragment,e),we(o.$$.fragment,e),s=!1},d(e){Me(t,e),e&&S(n),Me(r,e),e&&S(i),Me(o,e)}}}function ls(e){let t,n=e[0]("menu.copyEditLink")+"";return{c(){t=O(n)},m(e,n){L(e,t,n)},p(e,r){1&r&&n!==(n=e[0]("menu.copyEditLink")+"")&&U(t,n)},d(e){e&&S(t)}}}function as(e){let t,n=e[0]("menu.copyApiLink")+"";return{c(){t=O(n)},m(e,n){L(e,t,n)},p(e,r){1&r&&n!==(n=e[0]("menu.copyApiLink")+"")&&U(t,n)},d(e){e&&S(t)}}}function cs(e){let t,n=e[0]("menu.copyCoaString")+"";return{c(){t=O(n)},m(e,n){L(e,t,n)},p(e,r){1&r&&n!==(n=e[0]("menu.copyCoaString")+"")&&U(t,n)},d(e){e&&S(t)}}}function us(e){let t,n,r,i,o,s,l,a,c,u,d;n=new $i({props:{value:"save",label:e[0]("menu.save")}}),o=new Ei({props:{onclick:e[5],tip:e[0]("tooltip.downloadSVG"),hotkey:"Ctrl + S",$$slots:{default:[rs]},$$scope:{ctx:e}}}),l=new Ei({props:{onclick:e[6],tip:e[0]("tooltip.downloadPNG"),hotkey:"Ctrl + P",$$slots:{default:[is]},$$scope:{ctx:e}}}),c=new Ei({props:{onclick:e[7],tip:e[0]("tooltip.downloadJPEG"),hotkey:"Ctrl + J",$$slots:{default:[os]},$$scope:{ctx:e}}});let p=e[1].edit&&ss(e);return{c(){t=A("div"),Oe(n.$$.fragment),r=P(),i=A("div"),Oe(o.$$.fragment),s=P(),Oe(l.$$.fragment),a=P(),Oe(c.$$.fragment),u=P(),p&&p.c(),N(i,"class","dropdown level1"),N(t,"class","container")},m(e,h){L(e,t,h),Pe(n,t,null),x(t,r),x(t,i),Pe(o,i,null),x(i,s),Pe(l,i,null),x(i,a),Pe(c,i,null),x(i,u),p&&p.m(i,null),d=!0},p(e,[t]){const r={};1&t&&(r.label=e[0]("menu.save")),n.$set(r);const s={};1&t&&(s.tip=e[0]("tooltip.downloadSVG")),1025&t&&(s.$$scope={dirty:t,ctx:e}),o.$set(s);const a={};1&t&&(a.tip=e[0]("tooltip.downloadPNG")),1025&t&&(a.$$scope={dirty:t,ctx:e}),l.$set(a);const u={};1&t&&(u.tip=e[0]("tooltip.downloadJPEG")),1025&t&&(u.$$scope={dirty:t,ctx:e}),c.$set(u),e[1].edit?p?(p.p(e,t),2&t&&be(p,1)):(p=ss(e),p.c(),be(p,1),p.m(i,null)):p&&($e(),we(p,1,1,(()=>{p=null})),ye())},i(e){d||(be(n.$$.fragment,e),be(o.$$.fragment,e),be(l.$$.fragment,e),be(c.$$.fragment,e),be(p),d=!0)},o(e){we(n.$$.fragment,e),we(o.$$.fragment,e),we(l.$$.fragment,e),we(c.$$.fragment,e),we(p),d=!1},d(e){e&&S(t),Me(n),Me(o),Me(l),Me(c),p&&p.d()}}}function ds(e,t,n){let r,i,o;function s(e,t){Br.clear(),navigator.clipboard.writeText(e).then((()=>{setTimeout((()=>{Br.success(t)}),500)}),(e=>{Br.error("error.copyToClipboard"),console.error(e)}))}c(e,Dr,(e=>n(8,r=e))),c(e,or,(e=>n(0,i=e))),c(e,Ur,(e=>n(1,o=e)));return[i,o,function(){const e=r[0].replaceAll("#","%23");s(location.origin+location.pathname+"?coa="+e,"success.copyEditLink")},function(){s(`https://armoria.herokuapp.com/?size=500&format=png&coa=${encodeURI(r[0])}`,"success.copyApiLink")},function(){s(encodeURI(r[0]),"success.copyCoaString")},()=>Gr(null,"svg"),()=>Gr(null,"png"),()=>Gr(null,"jpeg")]}class ps extends Ne{constructor(e){super(),je(this,e,ds,us,s,{})}}function hs(e){let t,n=e[0]("menu.rasterCharge")+"";return{c(){t=O(n)},m(e,n){L(e,t,n)},p(e,r){1&r&&n!==(n=e[0]("menu.rasterCharge")+"")&&U(t,n)},d(e){e&&S(t)}}}function fs(e){let t,n=e[0]("menu.vectorCharge")+"";return{c(){t=O(n)},m(e,n){L(e,t,n)},p(e,r){1&r&&n!==(n=e[0]("menu.vectorCharge")+"")&&U(t,n)},d(e){e&&S(t)}}}function ms(e){let t,n,r,i,o,s,l,a;return n=new $i({props:{value:"upload",label:e[0]("menu.upload")}}),o=new Ei({props:{onclick:e[1],tip:e[0]("tooltip.rasterCharge"),$$slots:{default:[hs]},$$scope:{ctx:e}}}),l=new Ei({props:{onclick:e[2],tip:e[0]("tooltip.vectorCharge"),$$slots:{default:[fs]},$$scope:{ctx:e}}}),{c(){t=A("div"),Oe(n.$$.fragment),r=P(),i=A("div"),Oe(o.$$.fragment),s=P(),Oe(l.$$.fragment),N(i,"class","dropdown level1"),N(t,"class","container")},m(e,c){L(e,t,c),Pe(n,t,null),x(t,r),x(t,i),Pe(o,i,null),x(i,s),Pe(l,i,null),a=!0},p(e,[t]){const r={};1&t&&(r.label=e[0]("menu.upload")),n.$set(r);const i={};1&t&&(i.tip=e[0]("tooltip.rasterCharge")),17&t&&(i.$$scope={dirty:t,ctx:e}),o.$set(i);const s={};1&t&&(s.tip=e[0]("tooltip.vectorCharge")),17&t&&(s.$$scope={dirty:t,ctx:e}),l.$set(s)},i(e){a||(be(n.$$.fragment,e),be(o.$$.fragment,e),be(l.$$.fragment,e),a=!0)},o(e){we(n.$$.fragment,e),we(o.$$.fragment,e),we(l.$$.fragment,e),a=!1},d(e){e&&S(t),Me(n),Me(o),Me(l)}}}function gs(e,t,n){let r,i;c(e,Ur,(e=>n(3,r=e))),c(e,or,(e=>n(0,i=e)));return[i,()=>{g(Ur,r.raster=1,r)},()=>{g(Ur,r.vector=1,r)}]}class vs extends Ne{constructor(e){super(),je(this,e,gs,ms,s,{})}}function $s(e){let t,n;return t=new Ei({props:{value:"install",label:e[1]("menu.install"),onclick:e[2],flutter:!0,tip:e[1]("tooltip.install")}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};2&n&&(r.label=e[1]("menu.install")),2&n&&(r.tip=e[1]("tooltip.install")),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function ys(e){let t,n,r=e[0]&&$s(e);return{c(){r&&r.c(),t=M()},m(e,i){r&&r.m(e,i),L(e,t,i),n=!0},p(e,[n]){e[0]?r?(r.p(e,n),1&n&&be(r,1)):(r=$s(e),r.c(),be(r,1),r.m(t.parentNode,t)):r&&($e(),we(r,1,1,(()=>{r=null})),ye())},i(e){n||(be(r),n=!0)},o(e){we(r),n=!1},d(e){r&&r.d(e),e&&S(t)}}}function bs(e,t,n){let r;c(e,or,(e=>n(1,r=e)));let i=!1,o=null;return window.addEventListener("beforeinstallprompt",(e=>{o=e,n(0,i=!0)})),window.addEventListener("appinstalled",(()=>{Br.success("success.install")})),[i,r,function(){n(0,i=!1),o.prompt(),o.userChoice.then((()=>{o=null}))}]}class ws extends Ne{constructor(e){super(),je(this,e,bs,ys,s,{})}}function ks(e){let t,n,r,i,o;n=new $i({props:{value:"other"}});const s=e[1].default,l=u(s,e,e[0],null);return{c(){t=A("div"),Oe(n.$$.fragment),r=P(),i=A("div"),l&&l.c(),N(i,"class","dropdown horizontal short svelte-1deb0ry"),N(t,"class","container")},m(e,s){L(e,t,s),Pe(n,t,null),x(t,r),x(t,i),l&&l.m(i,null),o=!0},p(e,[t]){l&&l.p&&(!o||1&t)&&h(l,s,e,e[0],o?p(s,e[0],t,null):f(e[0]),null)},i(e){o||(be(n.$$.fragment,e),be(l,e),o=!0)},o(e){we(n.$$.fragment,e),we(l,e),o=!1},d(e){e&&S(t),Me(n),l&&l.d(e)}}}function Es(e,t,n){let{$$slots:r={},$$scope:i}=t;return e.$$set=e=>{"$$scope"in e&&n(0,i=e.$$scope)},[i,r]}class xs extends Ne{constructor(e){super(),je(this,e,Es,ks,s,{})}}function _s(e){let t,n;return t=new Ei({props:{value:"undo",label:e[1]("menu.undo"),disabled:!e[0],onclick:Dr.undo,tip:e[1]("tooltip.undo"),gesture:e[1]("tooltip.swipeLeft"),hotkey:"Z"}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,[n]){const r={};2&n&&(r.label=e[1]("menu.undo")),1&n&&(r.disabled=!e[0]),2&n&&(r.tip=e[1]("tooltip.undo")),2&n&&(r.gesture=e[1]("tooltip.swipeLeft")),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Cs(e,t,n){let r,i,o;return c(e,Dr,(e=>n(2,i=e))),c(e,or,(e=>n(1,o=e))),e.$$.update=()=>{4&e.$$.dirty&&n(0,r=i[1])},[r,o,i]}class Ls extends Ne{constructor(e){super(),je(this,e,Cs,_s,s,{})}}function Ss(e){let t,n;return t=new Ei({props:{value:"redo",label:e[1]("menu.redo"),disabled:!e[0],onclick:Dr.redo,tip:e[1]("tooltip.redo"),gesture:e[1]("tooltip.swipeRight"),hotkey:"X"}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,[n]){const r={};2&n&&(r.label=e[1]("menu.redo")),1&n&&(r.disabled=!e[0]),2&n&&(r.tip=e[1]("tooltip.redo")),2&n&&(r.gesture=e[1]("tooltip.swipeRight")),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function zs(e,t,n){let r,i,o;return c(e,Dr,(e=>n(2,i=e))),c(e,or,(e=>n(1,o=e))),e.$$.update=()=>{4&e.$$.dirty&&n(0,r=i[1]n(2,r=e))),c(e,or,(e=>n(0,i=e)));return[i,()=>{g(Ur,r.license=1,r)}]}class Ps extends Ne{constructor(e){super(),je(this,e,Os,Ts,s,{})}}function Ms(e){let t,n;return t=new Ei({props:{value:"about",label:e[0]("menu.about"),onclick:e[1],tip:e[0]("tooltip.about"),hotkey:"F1"}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,[n]){const r={};1&n&&(r.label=e[0]("menu.about")),1&n&&(r.tip=e[0]("tooltip.about")),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Is(e,t,n){let r,i;c(e,Ur,(e=>n(2,r=e))),c(e,or,(e=>n(0,i=e)));return[i,()=>{g(Ur,r.about=1,r)}]}class js extends Ne{constructor(e){super(),je(this,e,Is,Ms,s,{})}}function Ns(e){let t,n;return t=new Ei({props:{value:"support",label:e[0]("menu.support"),onclick:e[1],tip:e[0]("tooltip.support")}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,[n]){const r={};1&n&&(r.label=e[0]("menu.support")),1&n&&(r.tip=e[0]("tooltip.support")),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function qs(e,t,n){let r;c(e,or,(e=>n(0,r=e)));return[r,()=>{var e;e="https://www.patreon.com/azgaar",window.open(e,"_blank")}]}class Hs extends Ne{constructor(e){super(),je(this,e,qs,Ns,s,{})}}function Us(e,t,n){const r=e.slice();return r[5]=t[n],r}function Rs(e){let t,n;return t=new Ei({props:{selected:e[2]===e[5],label:e[4](e[5]),onclick:e[3](e[5])}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};6&n&&(r.selected=e[2]===e[5]),2&n&&(r.label=e[4](e[5])),2&n&&(r.onclick=e[3](e[5])),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Bs(e){let t,n,r,i,o;n=new $i({props:{value:"language",label:e[0]("menu.language"),tip:e[0]("tooltip.language")}});let s=e[1],l=[];for(let t=0;twe(l[e],1,1,(()=>{l[e]=null}));return{c(){t=A("div"),Oe(n.$$.fragment),r=P(),i=A("div");for(let e=0;en(0,r=e))),c(e,An,(e=>n(1,i=e))),c(e,Jn,(e=>n(2,o=e)));return[r,i,o,e=>()=>{Jn.set(e),localStorage.setItem("locale",e)},e=>{const t=new Intl.DisplayNames([e],{type:"language"});return(n=t.of(e)).charAt(0).toUpperCase()+n.slice(1);var n}]}class Fs extends Ne{constructor(e){super(),je(this,e,Ds,Bs,s,{})}}function Gs(e){let t,n;return t=new Ei({props:{right:!0,value:"back",label:e[0]("menu.back"),onclick:e[1],tip:e[0]("tooltip.back"),hotkey:"Escape"}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,[n]){const r={};1&n&&(r.label=e[0]("menu.back")),1&n&&(r.tip=e[0]("tooltip.back")),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Vs(e,t,n){let r,i,o,s;c(e,Ur,(e=>n(2,r=e))),c(e,Dr,(e=>n(3,i=e))),c(e,Nr,(e=>n(4,o=e))),c(e,or,(e=>n(0,s=e)));return[s,()=>{g(Nr,o[r.c]=JSON.parse(i[0]),o),g(Ur,r.edit=0,r)}]}class Js extends Ne{constructor(e){super(),je(this,e,Vs,Gs,s,{})}}function Ks(e){let t,n,r,i,o,s,l,a,c,u,d,p,h,f,m;t=new Wo({}),r=new Qo({}),o=new ns({}),l=new ps({});const g=[Ws,Zs],v=[];function $(e,t){return e[1]?0:1}c=$(e),u=v[c]=g[c](e),p=new ws({});let y=e[2].edit&&tl();return{c(){Oe(t.$$.fragment),n=P(),Oe(r.$$.fragment),i=P(),Oe(o.$$.fragment),s=P(),Oe(l.$$.fragment),a=P(),u.c(),d=P(),Oe(p.$$.fragment),h=P(),y&&y.c(),f=M()},m(e,u){Pe(t,e,u),L(e,n,u),Pe(r,e,u),L(e,i,u),Pe(o,e,u),L(e,s,u),Pe(l,e,u),L(e,a,u),v[c].m(e,u),L(e,d,u),Pe(p,e,u),L(e,h,u),y&&y.m(e,u),L(e,f,u),m=!0},p(e,t){let n=c;c=$(e),c===n?v[c].p(e,t):($e(),we(v[n],1,1,(()=>{v[n]=null})),ye(),u=v[c],u?u.p(e,t):(u=v[c]=g[c](e),u.c()),be(u,1),u.m(d.parentNode,d)),e[2].edit?y?4&t&&be(y,1):(y=tl(),y.c(),be(y,1),y.m(f.parentNode,f)):y&&($e(),we(y,1,1,(()=>{y=null})),ye())},i(e){m||(be(t.$$.fragment,e),be(r.$$.fragment,e),be(o.$$.fragment,e),be(l.$$.fragment,e),be(u),be(p.$$.fragment,e),be(y),m=!0)},o(e){we(t.$$.fragment,e),we(r.$$.fragment,e),we(o.$$.fragment,e),we(l.$$.fragment,e),we(u),we(p.$$.fragment,e),we(y),m=!1},d(e){Me(t,e),e&&S(n),Me(r,e),e&&S(i),Me(o,e),e&&S(s),Me(l,e),e&&S(a),v[c].d(e),e&&S(d),Me(p,e),e&&S(h),y&&y.d(e),e&&S(f)}}}function Zs(t){let n,r,i,o,s,l,a,c,u,d;return n=new vs({}),i=new Fs({}),s=new Ps({}),a=new Hs({}),u=new js({}),{c(){Oe(n.$$.fragment),r=P(),Oe(i.$$.fragment),o=P(),Oe(s.$$.fragment),l=P(),Oe(a.$$.fragment),c=P(),Oe(u.$$.fragment)},m(e,t){Pe(n,e,t),L(e,r,t),Pe(i,e,t),L(e,o,t),Pe(s,e,t),L(e,l,t),Pe(a,e,t),L(e,c,t),Pe(u,e,t),d=!0},p:e,i(e){d||(be(n.$$.fragment,e),be(i.$$.fragment,e),be(s.$$.fragment,e),be(a.$$.fragment,e),be(u.$$.fragment,e),d=!0)},o(e){we(n.$$.fragment,e),we(i.$$.fragment,e),we(s.$$.fragment,e),we(a.$$.fragment,e),we(u.$$.fragment,e),d=!1},d(e){Me(n,e),e&&S(r),Me(i,e),e&&S(o),Me(s,e),e&&S(l),Me(a,e),e&&S(c),Me(u,e)}}}function Ws(e){let t,n,r,i;const o=[Ys,Xs],s=[];function l(e,t){return e[2].edit?0:1}return t=l(e),n=s[t]=o[t](e),{c(){n.c(),r=M()},m(e,n){s[t].m(e,n),L(e,r,n),i=!0},p(e,i){let a=t;t=l(e),t!==a&&($e(),we(s[a],1,1,(()=>{s[a]=null})),ye(),n=s[t],n||(n=s[t]=o[t](e),n.c()),be(n,1),n.m(r.parentNode,r))},i(e){i||(be(n),i=!0)},o(e){we(n),i=!1},d(e){s[t].d(e),e&&S(r)}}}function Xs(e){let t,n,r,i,o,s,l,a;return t=new vs({}),r=new Fs({}),o=new Hs({}),l=new xs({props:{$$slots:{default:[Qs]},$$scope:{ctx:e}}}),{c(){Oe(t.$$.fragment),n=P(),Oe(r.$$.fragment),i=P(),Oe(o.$$.fragment),s=P(),Oe(l.$$.fragment)},m(e,c){Pe(t,e,c),L(e,n,c),Pe(r,e,c),L(e,i,c),Pe(o,e,c),L(e,s,c),Pe(l,e,c),a=!0},i(e){a||(be(t.$$.fragment,e),be(r.$$.fragment,e),be(o.$$.fragment,e),be(l.$$.fragment,e),a=!0)},o(e){we(t.$$.fragment,e),we(r.$$.fragment,e),we(o.$$.fragment,e),we(l.$$.fragment,e),a=!1},d(e){Me(t,e),e&&S(n),Me(r,e),e&&S(i),Me(o,e),e&&S(s),Me(l,e)}}}function Ys(e){let t,n;return t=new xs({props:{$$slots:{default:[el]},$$scope:{ctx:e}}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Qs(e){let t,n,r,i;return t=new Ps({}),r=new js({}),{c(){Oe(t.$$.fragment),n=P(),Oe(r.$$.fragment)},m(e,o){Pe(t,e,o),L(e,n,o),Pe(r,e,o),i=!0},i(e){i||(be(t.$$.fragment,e),be(r.$$.fragment,e),i=!0)},o(e){we(t.$$.fragment,e),we(r.$$.fragment,e),i=!1},d(e){Me(t,e),e&&S(n),Me(r,e)}}}function el(e){let t,n,r,i,o,s,l,a,c,u;return t=new vs({}),r=new Fs({}),o=new Ps({}),l=new Hs({}),c=new js({}),{c(){Oe(t.$$.fragment),n=P(),Oe(r.$$.fragment),i=P(),Oe(o.$$.fragment),s=P(),Oe(l.$$.fragment),a=P(),Oe(c.$$.fragment)},m(e,d){Pe(t,e,d),L(e,n,d),Pe(r,e,d),L(e,i,d),Pe(o,e,d),L(e,s,d),Pe(l,e,d),L(e,a,d),Pe(c,e,d),u=!0},i(e){u||(be(t.$$.fragment,e),be(r.$$.fragment,e),be(o.$$.fragment,e),be(l.$$.fragment,e),be(c.$$.fragment,e),u=!0)},o(e){we(t.$$.fragment,e),we(r.$$.fragment,e),we(o.$$.fragment,e),we(l.$$.fragment,e),we(c.$$.fragment,e),u=!1},d(e){Me(t,e),e&&S(n),Me(r,e),e&&S(i),Me(o,e),e&&S(s),Me(l,e),e&&S(a),Me(c,e)}}}function tl(e){let t,n,r,i,o,s;return t=new Ls({}),r=new As({}),o=new Js({}),{c(){Oe(t.$$.fragment),n=P(),Oe(r.$$.fragment),i=P(),Oe(o.$$.fragment)},m(e,l){Pe(t,e,l),L(e,n,l),Pe(r,e,l),L(e,i,l),Pe(o,e,l),s=!0},i(e){s||(be(t.$$.fragment,e),be(r.$$.fragment,e),be(o.$$.fragment,e),s=!0)},o(e){we(t.$$.fragment,e),we(r.$$.fragment,e),we(o.$$.fragment,e),s=!1},d(e){Me(t,e),e&&S(n),Me(r,e),e&&S(i),Me(o,e)}}}function nl(e){let t,n,r,i;n=new ti({});let o=e[0]&&Ks(e);return{c(){t=A("nav"),Oe(n.$$.fragment),r=P(),o&&o.c(),N(t,"class","svelte-1sxoqy9")},m(e,s){L(e,t,s),Pe(n,t,null),x(t,r),o&&o.m(t,null),i=!0},p(e,[n]){e[0]?o?(o.p(e,n),1&n&&be(o,1)):(o=Ks(e),o.c(),be(o,1),o.m(t,null)):o&&($e(),we(o,1,1,(()=>{o=null})),ye())},i(e){i||(be(n.$$.fragment,e),be(o),i=!0)},o(e){we(n.$$.fragment,e),we(o),i=!1},d(e){e&&S(t),Me(n),o&&o.d()}}}function rl(e,t,n){let r,i,o;return c(e,Er,(e=>n(0,r=e))),c(e,Rr,(e=>n(1,i=e))),c(e,Ur,(e=>n(2,o=e))),[r,i,o]}class il extends Ne{constructor(e){super(),je(this,e,rl,nl,s,{})}}function ol(t){let n,r,i,o,s,l,a,c,u,d,p,h,f,m,g,v,$,y;return{c(){n=T("svg"),r=T("clipPath"),i=T("path"),o=T("g"),s=T("path"),a=T("path"),u=T("g"),d=T("rect"),h=T("path"),m=T("rect"),v=T("g"),$=T("path"),N(i,"d",fr.heater),N(r,"id","shieldAbout"),N(s,"stroke-width","1"),N(s,"d","M25,25 h150 v50 a150,150,0,0,1,-75,125 a150,150,0,0,1,-75,-125 z"),N(a,"d",t[7][t[6]][0]),N(d,"x","0"),N(d,"y","0"),N(d,"width","200"),N(d,"height","200"),N(d,"fill",p=t[2][t[4]]),N(h,"d",t[7][t[6]][1]),N(h,"fill",f=t[2][t[5]]),N(m,"x","0"),N(m,"y","0"),N(m,"width","200"),N(m,"height","200"),N(m,"fill","url(#nourse)"),N(u,"stroke","none"),N(o,"clip-path","url(#shieldAbout)"),N(o,"stroke","#fff"),N(o,"stroke-width",".5"),N($,"d",fr.heater),N(v,"stroke","#000"),N(v,"fill","url(#backlight)"),N(n,"width",t[1]),N(n,"height",t[1]),N(n,"viewBox","0 0 200 200")},m(e,t){L(e,n,t),x(n,r),x(r,i),x(n,o),x(o,s),x(o,a),x(o,u),x(u,d),x(u,h),x(u,m),x(n,v),x(v,$)},p(e,[r]){t=e,4&r&&p!==(p=t[2][t[4]])&&N(d,"fill",p),4&r&&f!==(f=t[2][t[5]])&&N(h,"fill",f),2&r&&N(n,"width",t[1]),2&r&&N(n,"height",t[1])},i(e){l||le((()=>{l=Ee(s,ci,{duration:t[0]}),l.start()})),c||le((()=>{c=Ee(a,ci,{delay:t[0]}),c.start()})),g||le((()=>{g=Ee(u,si,{delay:t[3],duration:t[0]}),g.start()})),y||le((()=>{y=Ee($,ci,{delay:t[3],duration:t[0]}),y.start()}))},o:e,d(e){e&&S(n)}}}function sl(e,t,n){let r;c(e,zr,(e=>n(2,r=e)));let{duration:i}=t;const o=2.6*i,s={argent:3,or:2},l={gules:5,sable:3,azure:4,vert:2,purpure:3},a=Math.random()>.5,u=lr(a?s:l),d=lr(a?l:s),p=lr({perPale:2,perFess:2,perBend:2,perBendSinister:1,perCross:6,perChevron:1,perChevronReversed:1,perPile:2,perSaltire:5,gyronny:1,chevronny:1});let h=window.innerWidth<600?.9*window.innerWidth:500;return window.innerHeight<600&&(h*=.5),e.$$set=e=>{"duration"in e&&n(0,i=e.duration)},[i,h,r,o,u,d,p,{perPale:["M100,25 v175","M100,0 v200 h100 v-200 Z"],perFess:["M27.5,100 h145","M0,100 h200 v100 h-200 Z"],perBend:["M0,0 l200,200","M0,0 l200,200 h-200 Z"],perBendSinister:["M200,0 L0,200","M200,0 L0,200 h200 Z"],perCross:["M100,25 v175 M27.5,100 h145","M100,0 v200 h-100 v-100 h200 v-100 Z"],perChevron:["M0,0 l100,100 l100,-100","M0,0 l100,100 l100,-100 Z"],perChevronReversed:["M0,200 l100,-100 l100,100","M0,200 l100,-100 l100,100 Z"],perPile:["M15,0 l85,200 l85,-200","M15,0 l85,200 l85,-200 Z"],perSaltire:["M0,0 L200,200 M200,0 l-200,200","M0,0 L200,200 v-200 l-200,200 Z"],gyronny:["M0,0 l200,200 M200,100 h-200 M100,0 v200 M0,200 l200,-200","M0,0 l200,200 v-100 h-200 h-100 M100,0 v200, h-100 l200,-200 h-100"],chevronny:["","M0,80 100,-15 200,80 200,120 100,25 0,120z M0,160 100,65 200,160 200,200 100,105 0,200z M0,240 100,145 200,240 0,240z"]}]}class ll extends Ne{constructor(e){super(),je(this,e,sl,ol,s,{duration:0})}}function al(e){let t,n,r,i,o,s,l,a,c,u,d,p,h,f,m,g,v,$,y,b,w,k,E,_,C,z,T,M,j,q,H=e[0]("about.tutorial")+"",R=e[0]("about.discord")+"",B=e[0]("about.gitHub")+"",D=e[0]("about.api")+"",F=e[0]("about.patreon")+"";return i=new ll({props:{duration:cl}}),{c(){t=A("div"),n=A("span"),n.textContent="×",r=P(),Oe(i.$$.fragment),o=P(),s=A("div"),l=A("a"),a=A("span"),c=O(H),u=P(),d=A("a"),p=A("span"),h=O(R),f=P(),m=A("a"),g=A("span"),v=O(B),$=P(),y=A("a"),b=A("span"),w=O(D),k=P(),E=A("a"),_=A("span"),C=O(F),N(n,"class","close svelte-1ssn3sl"),N(a,"class","svelte-1ssn3sl"),N(l,"target","_blank"),N(l,"href","https://github.com/Azgaar/Armoria/wiki/Armoria-Tutorial"),N(l,"class","svelte-1ssn3sl"),N(p,"class","svelte-1ssn3sl"),N(d,"target","_blank"),N(d,"href","https://discord.com/invite/X7E84HU"),N(d,"class","svelte-1ssn3sl"),N(g,"class","svelte-1ssn3sl"),N(m,"target","_blank"),N(m,"href","https://github.com/Azgaar/Armoria"),N(m,"class","svelte-1ssn3sl"),N(b,"class","svelte-1ssn3sl"),N(y,"target","_blank"),N(y,"href","https://github.com/Azgaar/armoria-api#readme"),N(y,"class","svelte-1ssn3sl"),N(_,"class","svelte-1ssn3sl"),N(E,"target","_blank"),N(E,"href","https://www.patreon.com/azgaar"),N(E,"class","svelte-1ssn3sl"),N(s,"class","buttons svelte-1ssn3sl"),N(t,"id","about"),N(t,"class","svelte-1ssn3sl")},m(S,z){L(S,t,z),x(t,n),x(t,r),Pe(i,t,null),x(t,o),x(t,s),x(s,l),x(l,a),x(a,c),x(s,u),x(s,d),x(d,p),x(p,h),x(s,f),x(s,m),x(m,g),x(g,v),x(s,$),x(s,y),x(y,b),x(b,w),x(s,k),x(s,E),x(E,_),x(_,C),M=!0,j||(q=I(n,"click",e[1]),j=!0)},p(t,[n]){e=t,(!M||1&n)&&H!==(H=e[0]("about.tutorial")+"")&&U(c,H),(!M||1&n)&&R!==(R=e[0]("about.discord")+"")&&U(h,R),(!M||1&n)&&B!==(B=e[0]("about.gitHub")+"")&&U(v,B),(!M||1&n)&&D!==(D=e[0]("about.api")+"")&&U(w,D),(!M||1&n)&&F!==(F=e[0]("about.patreon")+"")&&U(C,F)},i(e){M||(be(i.$$.fragment,e),z||le((()=>{z=Ee(s,li,{y:200,delay:cl,duration:cl}),z.start()})),le((()=>{T||(T=_e(t,si,{},!0)),T.run(1)})),M=!0)},o(e){we(i.$$.fragment,e),T||(T=_e(t,si,{},!1)),T.run(0),M=!1},d(e){e&&S(t),Me(i),e&&T&&T.end(),j=!1,q()}}}const cl=1e3;function ul(e,t,n){let r,i;c(e,Ur,(e=>n(2,r=e))),c(e,or,(e=>n(0,i=e)));return[i,()=>{g(Ur,r.about=0,r)}]}class dl extends Ne{constructor(e){super(),je(this,e,ul,al,s,{})}}function pl(e,t,n){const r=e.slice();return r[9]=t[n].charge,r[21]=t[n].license,r[22]=t[n].source,r}function hl(e){let t,n=e[7],r=[];for(let t=0;t1?e[0]("license.charges"):e[9].charge)+"",a=e[9].license+"",c=e[9].source+"";return{c(){t=A("h3"),n=O(l),r=O(": "),i=new V,o=O(", "),s=new V,i.a=o,s.a=null},m(e,l){L(e,t,l),x(t,n),x(t,r),i.m(a,t),x(t,o),s.m(c,t)},p(e,t){1&t&&l!==(l=(e[7].length>1?e[0]("license.charges"):e[9].charge)+"")&&U(n,l)},d(e){e&&S(t)}}}function ml(t){let n,r,i,o,s,l,a,c=t[9]+"",u=t[21]+"",d=t[22]+"";return{c(){n=A("div"),r=A("span"),i=O(c),o=O(": "),s=new V,l=O(", "),a=new V,N(r,"class","charge svelte-1b7i60q"),s.a=l,a.a=null},m(e,t){L(e,n,t),x(n,r),x(r,i),x(n,o),s.m(u,n),x(n,l),a.m(d,n)},p:e,d(e){e&&S(n)}}}function gl(e){let t,n=e[0]("license.wetaShield")+"";return{c(){t=A("p")},m(e,r){L(e,t,r),t.innerHTML=n},p(e,r){1&r&&n!==(n=e[0]("license.wetaShield")+"")&&(t.innerHTML=n)},d(e){e&&S(t)}}}function vl(e){let t,n,r,i,o,s,l,a,c,u,d,p,h,f,m,g,v,$,y,b,w,k,E,_,C,z,T,M,j,q,H,R,B,D,F,G,J,K=e[0]("license.armoriaLicense")+"",Z=e[3](e[2]),W=e[0]("license.code")+"",X=e[0]("license.textMain")+"",Y=e[0]("license.textRest")+"",Q=e[0]("license.icons")+"",ee=e[7].length&&function(e){let t,n,r,i,o=e[0]("license.currentCoas")+"";return{c(){t=A("hr"),n=P(),r=A("h2"),i=O(o),N(t,"class","svelte-1b7i60q")},m(e,o){L(e,t,o),L(e,n,o),L(e,r,o),x(r,i)},p(e,t){1&t&&o!==(o=e[0]("license.currentCoas")+"")&&U(i,o)},d(e){e&&S(t),e&&S(n),e&&S(r)}}}(e);let te=function(e,t){return e[8]?fl:hl}(e),ne=te(e),re=Z&&gl(e);return{c(){t=A("div"),n=A("span"),n.textContent="×",r=P(),i=A("div"),o=A("h1"),s=O(K),l=P(),ee&&ee.c(),a=P(),ne.c(),c=P(),re&&re.c(),u=P(),d=A("hr"),p=P(),h=A("h2"),f=O(W),m=O(": MIT License, "),g=new V,v=P(),$=A("p"),y=O(X),b=P(),w=A("p"),k=O(Y),E=P(),_=A("hr"),C=P(),z=A("h2"),T=O(Q),M=O(": "),j=new V,q=O(", "),H=new V,R=P(),B=A("br"),N(n,"class","close svelte-1b7i60q"),N(d,"class","svelte-1b7i60q"),g.a=null,N(_,"class","svelte-1b7i60q"),j.a=q,H.a=null,N(i,"id","licenseContainer"),N(i,"class","svelte-1b7i60q"),N(t,"id","license"),N(t,"class","svelte-1b7i60q")},m(S,A){L(S,t,A),x(t,n),x(t,r),x(t,i),x(i,o),x(o,s),x(i,l),ee&&ee.m(i,null),x(i,a),ne.m(i,null),x(i,c),re&&re.m(i,null),x(i,u),x(i,d),x(i,p),x(i,h),x(h,f),x(h,m),g.m(e[4],h),x(i,v),x(i,$),x($,y),x(i,b),x(i,w),x(w,k),x(i,E),x(i,_),x(i,C),x(i,z),x(z,T),x(z,M),j.m(e[5],z),x(z,q),H.m(e[6],z),x(i,R),x(i,B),F=!0,G||(J=I(n,"click",e[10]),G=!0)},p(e,[t]){(!F||1&t)&&K!==(K=e[0]("license.armoriaLicense")+"")&&U(s,K),e[7].length&&ee.p(e,t),ne.p(e,t),4&t&&(Z=e[3](e[2])),Z?re?re.p(e,t):(re=gl(e),re.c(),re.m(i,u)):re&&(re.d(1),re=null),(!F||1&t)&&W!==(W=e[0]("license.code")+"")&&U(f,W),(!F||1&t)&&X!==(X=e[0]("license.textMain")+"")&&U(y,X),(!F||1&t)&&Y!==(Y=e[0]("license.textRest")+"")&&U(k,Y),(!F||1&t)&&Q!==(Q=e[0]("license.icons")+"")&&U(T,Q)},i(e){F||(le((()=>{D||(D=_e(t,si,{},!0)),D.run(1)})),F=!0)},o(e){D||(D=_e(t,si,{},!1)),D.run(0),F=!1},d(e){e&&S(t),ee&&ee.d(),ne.d(),re&&re.d(),e&&D&&D.end(),G=!1,J()}}}function $l(e,t,n){let r,i,o,s,l;c(e,or,(e=>n(0,r=e))),c(e,Jn,(e=>n(11,i=e))),c(e,Ln,(e=>n(12,o=e))),c(e,Ur,(e=>n(1,s=e))),c(e,Sr,(e=>n(2,l=e)));const a=Array.from(document.querySelectorAll("svg.coa")).map((e=>Array.from(e.querySelectorAll(".charge[charge]")).map((e=>e.getAttribute("charge"))))).flat(),u=r("license.noLicenseData"),d=r("license.noSourceData"),p=r("license.publicDomain"),h=r("license.fairUse"),f=ur("https://github.com/Azgaar/Armoria","Azgaar"),m=ur("https://creativecommons.org/licenses/by/4.0/","CC BY 4.0"),v=ur("https://fontawesome.com/license/free","Font Awesome"),$=(e,t)=>{const n=o?.[i]?.[e]?.[t];return n?r(`${e}.${t}`):t},y=[...new Set(a)].map((e=>{const t=document.getElementById(e),n=t.getAttribute("license"),r=function(e){return e?e.includes("publicdomain")?p:e.includes("by-nc-sa")?"CC BY-NC-SA":e.includes("by-nc-nd")?"CC BY-NC-ND":e.includes("by-nc")?"CC BY-NC":e.includes("by-nd")?"CC BY-ND":e.includes("by-sa")?"CC BY-SA":e.includes("by")?"CC BY":e.includes("Fair")?h:e:null}(n),i=t.getAttribute("source"),o=t.getAttribute("author")||(i?new URL(i).host:null),s=n&&r?ur(n,r):u,l=i?ur(i,o):o||d;return{charge:$("charges",e),license:s,source:l}})).sort(((e,t)=>e.license[e.license,e.source].join(","))))].length,w=b?y[0]:null;return[r,s,l,e=>["noldor","gondor","easterling","ironHills","urukHai","moriaOrc"].includes(e),f,m,v,y,b,w,()=>g(Ur,s.license=0,s)]}class yl extends Ne{constructor(e){super(),je(this,e,$l,vl,s,{})}}function bl(e){let t,n,r,i,o,s,l;return{c(){t=T("pattern"),n=T("path"),r=P(),i=T("g"),o=T("rect"),N(n,"d","M 100 0 L 0 0 0 100"),N(n,"fill","none"),N(n,"stroke","#000"),N(n,"opacity",".2"),N(n,"stroke-width",".5"),N(t,"id","gridPattern"),N(t,"width",e[2]),N(t,"height",e[2]),N(t,"patternUnits","userSpaceOnUse"),N(o,"x","-200"),N(o,"y","-200"),N(o,"width","400"),N(o,"height","400"),N(o,"fill","url(#gridPattern)"),N(i,"id","grid"),B(i,"pointer-events","none"),N(i,"transform",e[0]),N(i,"transform-origin","center")},m(e,s){L(e,t,s),x(t,n),L(e,r,s),L(e,i,s),x(i,o),l=!0},p(e,n){(!l||4&n)&&N(t,"width",e[2]),(!l||4&n)&&N(t,"height",e[2]),(!l||1&n)&&N(i,"transform",e[0])},i(e){l||(e&&le((()=>{s||(s=_e(i,si,{},!0)),s.run(1)})),l=!0)},o(e){e&&(s||(s=_e(i,si,{},!1)),s.run(0)),l=!1},d(e){e&&S(t),e&&S(r),e&&S(i),e&&s&&s.end()}}}function wl(e){let t,n=e[1]&&bl(e);return{c(){n&&n.c(),t=M()},m(e,r){n&&n.m(e,r),L(e,t,r)},p(e,[r]){e[1]?n?(n.p(e,r),2&r&&be(n,1)):(n=bl(e),n.c(),be(n,1),n.m(t.parentNode,t)):n&&($e(),we(n,1,1,(()=>{n=null})),ye())},i(e){be(n)},o(e){we(n)},d(e){n&&n.d(e),e&&S(t)}}}function kl(e,t,n){let r,i,o,s;return c(e,Ur,(e=>n(3,i=e))),c(e,jr,(e=>n(1,o=e))),c(e,Ir,(e=>n(2,s=e))),e.$$.update=()=>{8&e.$$.dirty&&n(0,r=i.transform||null)},[r,o,s,i]}class El extends Ne{constructor(e){super(),je(this,e,kl,wl,s,{})}}function xl(e,t,n){const r=e.slice();return r[3]=t[n],r}function _l(e){let t,n,r,i,o,s=e[0],l=[];for(let t=0;t{r||(r=_e(n,si,{},!0)),r.run(1)})),o=!0)},o(e){e&&(r||(r=_e(n,si,{},!1)),r.run(0)),o=!1},d(e){e&&S(t),z(l,e),e&&r&&r.end()}}}function Cl(e){let t,n,r,i,o,s,l,a,c,u,d=e[3][0]+"";return{c(){t=T("g"),n=T("circle"),o=T("text"),s=O(d),N(n,"cx",r=e[3][1][0]),N(n,"cy",i=e[3][1][1]),N(n,"r","3"),N(n,"class","svelte-lt1npm"),G(n,"active",e[1].positions.includes(e[3][0])),B(o,"dominant-baseline","central"),N(o,"x",l=e[3][1][0]),N(o,"y",a=e[3][1][1]),N(o,"class","svelte-lt1npm"),G(o,"active",e[1].positions.includes(e[3][0])),N(t,"id",c=e[3][0]),N(t,"class",u=m(Sl(e[3][0]))+" svelte-lt1npm")},m(e,r){L(e,t,r),x(t,n),x(t,o),x(o,s)},p(e,p){1&p&&r!==(r=e[3][1][0])&&N(n,"cx",r),1&p&&i!==(i=e[3][1][1])&&N(n,"cy",i),3&p&&G(n,"active",e[1].positions.includes(e[3][0])),1&p&&d!==(d=e[3][0]+"")&&U(s,d),1&p&&l!==(l=e[3][1][0])&&N(o,"x",l),1&p&&a!==(a=e[3][1][1])&&N(o,"y",a),3&p&&G(o,"active",e[1].positions.includes(e[3][0])),1&p&&c!==(c=e[3][0])&&N(t,"id",c),1&p&&u!==(u=m(Sl(e[3][0]))+" svelte-lt1npm")&&N(t,"class",u)},d(e){e&&S(t)}}}function Ll(e){let t,n=e[1].positions&&_l(e);return{c(){n&&n.c(),t=M()},m(e,r){n&&n.m(e,r),L(e,t,r)},p(e,[r]){e[1].positions?n?(n.p(e,r),2&r&&be(n,1)):(n=_l(e),n.c(),be(n,1),n.m(t.parentNode,t)):n&&($e(),we(n,1,1,(()=>{n=null})),ye())},i(e){be(n)},o(e){we(n)},d(e){n&&n.d(e),e&&S(t)}}}function Sl(e){return"abcdefghi".includes(e)?"green":"ABCDEFGHIJKL".includes(e)?"red":"zy".includes(e)?"yellow":"blue"}function zl(e,t,n){let r,i,o;return c(e,Sr,(e=>n(2,i=e))),c(e,Ur,(e=>n(1,o=e))),e.$$.update=()=>{4&e.$$.dirty&&n(0,r=vr[i]?Object.entries(vr[i]):Object.entries(vr.spanish))},[r,o,i]}class Al extends Ne{constructor(e){super(),je(this,e,zl,Ll,s,{})}}function Tl(e,t,n){const r=e.currentTarget,i=e.x,o=e.y,s=r.closest("svg").clientWidth/200;document.addEventListener("mouseup",(function(){document.removeEventListener("mousemove",f),document.removeEventListener("mousemove",m),document.removeEventListener("mousemove",g),document.body.style.cursor="auto",Dr.add(JSON.stringify(n))}),{once:!0});const{x:l=0,y:c=0,size:u=1}=t,d=a(Ir),p=r.querySelectorAll("use"),h=vr[a(Sr)]||vr.spanish;function f(e){const n=l+(e.x-i)/s,a=c+(e.y-o)/s;t.x=Math.round(n/d)*d,t.y=Math.round(a/d)*d,v(r,t)}function m(e){const n=c+(e.y-o)/s;t.size=Ol(u+n/-100),t.p?function(e){const t=[...new Set(e.p)].filter((e=>h[e]));t.forEach(((t,n)=>{const r=p[n];if(r){const n=Ml(e,t,a(Sr));n?r.setAttribute("transform",n):r.removeAttribute("transform")}}))}(t):v(r,t)}function g(e){const n=l+100,i=c+100,o=e.x/s,a=e.y/s;let u=90+180*Math.atan2(a-i,o-n)/Math.PI;u>180&&(u=u%180-180),u<-179&&(u=u%180+180),t.angle=Math.round(u/d)*d,v(r,t)}function v(e,t){const n=Pl(t);n?e.setAttribute("transform",n):e.removeAttribute("transform")}e.shiftKey?(document.addEventListener("mousemove",m),document.body.style.cursor="ns-resize"):e.ctrlKey||e.metaKey?(document.addEventListener("mousemove",g),document.body.style.cursor="ew-resize"):(document.addEventListener("mousemove",f),document.body.style.cursor="move")}function Ol(e){return Math.round(100*e)/100}function Pl(e){let{x:t=0,y:n=0,angle:r=0,size:i=1,p:o}=e;o&&(i=1),1!==i&&(t=Ol(t+100-100*i),n=Ol(n+100-100*i));let s="";return(t||n)&&(s+=`translate(${t} ${n})`),r&&(s+=` rotate(${r} ${100*i} ${100*i})`),1!==i&&(s+=` scale(${i})`),s?s.trim():null}function Ml(e,t,n){const r=vr[n]||vr.spanish,i=gr[n]||1,o=Ol((e.size||1)*i),s=e.sinister?-o:o,l=e.reversed?-o:o;let[a,c]=r[t];a=Ol(a-100*(s-1)),c=Ol(c-100*(l-1));const u=a||c?`translate(${a} ${c})`:null,d=1!==s||1!==l?s===l?`scale(${s})`:`scale(${s} ${l})`:null;return u&&d?`${u} ${d}`:u||(d||null)}const Il={straight:"m 0,100 v15 h 200 v -15 z",engrailed:"m 0,95 a 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 v 20 H 0 Z",invecked:"M0,102.5 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 v12.5 H0 z",embattled:"M 0,105 H 2.5 V 95 h 15 v 10 h 15 V 95 h 15 v 10 h 15 V 95 h 15 v 10 h 15 V 95 h 15 v 10 h 15 V 95 h 15 v 10 h 15 V 95 h 15 v 10 h 15 V 95 h 15 v 10 h 2.5 v 10 H 0 Z",wavy:"m 200,115 v -15 c -8.9,3.5 -16,3.1 -25,0 -8.9,-3.5 -16,-3.1 -25,0 -8.9,3.5 -16,3.2 -25,0 -8.9,-3.5 -16,-3.2 -25,0 -8.9,3.5 -16,3.1 -25,0 -8.9,-3.5 -16,-3.1 -25,0 -8.9,3.5 -16,3.2 -25,0 -8.9,-3.5 -16,-3.2 -25,0 v 15 z",raguly:"m 200,95 h -3 l -5,10 h -10 l 5,-10 h -10 l -5,10 h -10 l 5,-10 h -10 l -5,10 h -10 l 5,-10 h -10 l -5,10 h -10 l 5,-10 h -10 l -5,10 h -10 l 5,-10 H 97 l -5,10 H 82 L 87,95 H 77 l -5,10 H 62 L 67,95 H 57 l -5,10 H 42 L 47,95 H 37 l -5,10 H 22 L 27,95 H 17 l -5,10 H 2 L 7,95 H 0 v 20 h 200 z",dancetty:"m 0,105 10,-15 15,20 15,-20 15,20 15,-20 15,20 15,-20 15,20 15,-20 15,20 15,-20 15,20 15,-20 10,15 v 10 H 0 Z",dentilly:"M 180,105 170,95 v 10 L 160,95 v 10 L 150,95 v 10 L 140,95 v 10 L 130,95 v 10 L 120,95 v 10 L 110,95 v 10 L 100,95 v 10 L 90,95 v 10 L 80,95 v 10 L 70,95 v 10 L 60,95 v 10 L 50,95 v 10 L 40,95 v 10 L 30,95 v 10 L 20,95 v 10 L 10,95 v 10 L 0,95 v 20 H 200 V 105 L 190,95 v 10 L 180,95 Z",angled:"m 0,95 h 100 v 10 h 100 v 10 H 0 Z",urdy:"m 200,90 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,6 -5,-6 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,6 -5,-6 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 L 0,90 v 25 h 200",indented:"m 100,95 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 v 20 H 0 V 95 l 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 z",bevilled:"m 0,92.5 h 110 l -20,15 H 200 V 115 H 0 Z",nowy:"m 0,95 h 80 c 0,0 0.1,20.1 20,20 19.9,-0.1 20,-20 20,-20 h 80 v 20 H 0 Z",nowyReversed:"m 200,105 h -80 c 0,0 -0.1,-20.1 -20,-20 -19.9,0.1 -20,20 -20,20 H 0 v 10 h 200 z",potenty:"m 3,95 v 5 h 5 v 5 H 0 v 10 h 200 l 0.5,-10 H 193 v -5 h 5 v -5 h -15 v 5 h 5 v 5 h -15 v -5 h 5 v -5 h -15 v 5 h 5 v 5 h -15 v -5 h 5 v -5 h -15 v 5 h 5 v 5 h -15 v -5 h 5 v -5 h -15 v 5 h 5 v 5 h -15 v -5 h 5 v -5 h -15 v 5 h 5 v 5 H 100.5 93 v -5 h 5 V 95 H 83 v 5 h 5 v 5 H 73 v -5 h 5 V 95 H 63 v 5 h 5 v 5 H 53 v -5 h 5 V 95 H 43 v 5 h 5 v 5 H 33 v -5 h 5 V 95 H 23 v 5 h 5 v 5 H 13 v -5 h 5 v -5 z",potentyDexter:"m 200,105 h -2 v -10 0 0 h -10 v 5 h 5 v 5 H 183 V 95 h -10 v 5 h 5 v 5 H 168 V 95 h -10 v 5 h 5 v 5 H 153 V 95 h -10 v 5 h 5 v 5 H 138 V 95 h -10 v 5 h 5 v 5 H 123 V 95 h -10 v 5 h 5 v 5 h -10 v 0 0 -10 H 98 v 5 h 5 v 5 H 93 V 95 H 83 v 5 h 5 v 5 H 78 V 95 H 68 v 5 h 5 v 5 H 63 V 95 H 53 v 5 h 5 v 5 H 48 V 95 H 38 v 5 h 5 v 5 H 33 V 95 H 23 v 5 h 5 v 5 H 18 V 95 H 8 v 5 h 5 v 5 H 3 V 95 H 0 v 20 h 200 z",potentySinister:"m 2.5,95 v 10 H 0 v 10 h 202.5 v -15 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 z",embattledGhibellin:"M 200,200 V 100 l -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 v 15 h 200",embattledNotched:"m 200,105 h -5 V 95 l -5,5 -5,-5 v 10 h -5 V 95 l -5,5 -5,-5 v 10 h -5 V 95 l -5,5 -5,-5 v 10 h -5 V 95 l -5,5 -5,-5 v 10 h -5 V 95 l -5,5 -5,-5 v 10 h -5 V 95 l -5,5 -5,-5 v 10 h -5 V 95 l -5,5 -5,-5 v 10 H 90 V 95 l -5,5 -5,-5 v 10 H 75 V 95 l -5,5 -5,-5 v 10 H 60 V 95 l -5,5 -5,-5 v 10 H 45 V 95 l -5,5 -5,-5 v 10 H 30 V 95 l -5,5 -5,-5 v 10 H 15 V 95 l -5,5 -5,-5 v 10 H 0 v 10 h 200",embattledGrady:"m 0,95 v 20 H 200 V 95 h -2.5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 z",dovetailed:"m 200,95 h -7 l 4,10 h -14 l 4,-10 h -14 l 4,10 h -14 l 4,-10 h -14 l 4,10 h -14 l 4,-10 h -14 l 4,10 h -14 l 4,-10 h -14 l 4,10 h -14 l 4,-10 H 93 l 4,10 H 83 L 87,95 H 73 l 4,10 H 63 L 67,95 H 53 l 4,10 H 43 L 47,95 H 33 l 4,10 H 23 L 27,95 H 13 l 4,10 H 3 L 7,95 H 0 v 20 h 200",dovetailedIndented:"m 200,100 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 v 15 h 200",nebuly:"m 13.1,89.8 c -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.2,4.5 -7.3,4.5 -0.5,0 -2.2,-0.2 -2.2,-0.2 V 115 h 200 v -10.1 c -3.7,-0.2 -6.7,-2.2 -6.7,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.8,-1.9 1.8,-3.1 0,-2.5 -3.2,-4.5 -7.2,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.8,-1.9 1.8,-3.1 0,-2.5 -3.2,-4.5 -7.2,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 -1.5,4.1 -4.2,4.4 -8.8,4.5 -4.7,-0.1 -8.7,-1.5 -8.9,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 z",rayonne:"M0 115l-.1-6 .2.8c1.3-1 2.3-2.5 2.9-4.4.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4A9 9 0 015.5 90c-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 2.1 3.1 3.1 4.6 1 1.6 2.4 3.1 2.7 4.8.3 1.7.3 3.3 0 5.2 1.3-1 2.6-2.7 3.2-4.6.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.75 2.79 2.72 4.08 4.45 5.82L200 115z",seaWaves:"m 28.83,94.9 c -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.44,-3.6 3.6,-3.6 0.7,0 1.36,0.17 1.93,0.48 -0.33,-2.03 -2.19,-3.56 -4.45,-3.56 -4.24,0 -6.91,3.13 -8.5,5.13 V 115 h 200 v -14.89 c -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.2,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.21,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.21,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.2,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.44,-3.6 3.6,-3.6 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.21,-3.55 -4.46,-3.55 -4.25,0 -6.6,3.09 -8.19,5.09 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.21,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.2,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.2,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.21,-3.55 -4.46,-3.55 z",dragonTeeth:"M 9.4,85 C 6.5,88.1 4.1,92.9 3,98.8 1.9,104.6 2.3,110.4 3.8,115 2.4,113.5 0,106.6 0,109.3 v 5.7 h 200 v -5.7 c -1.1,-2.4 -2,-5.1 -2.6,-8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -1.4,-1.5 -2.8,-3.9 -3.8,-6.1 -1.1,-2.4 -2.3,-6.1 -2.6,-7.7 -0.2,-5.9 0.2,-11.7 1.7,-16.3 -3,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.8 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1,-5.8 -0.7,-11.6 0.9,-16.2 -3,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.8 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.8 -0.7,-11.6 0.9,-16.2 -3,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.8 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 C 63,95.4 63.4,89.6 64.9,85 c -2.9,3.1 -5.3,7.9 -6.3,13.8 -1.1,5.8 -0.7,11.6 0.8,16.2 -3,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.8 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1,5.8 -0.6,11.6 0.9,16.2 -3,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.8 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1,5.8 -0.7,11.6 0.9,16.2 -3,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.8 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.8 -0.7,11.6 0.9,16.2 -3,-3.1 -5.3,-7.9 -6.4,-13.8 C 18.6,95.4 19,89.6 20.5,85 17.6,88.1 15.2,92.9 14.1,98.8 13,104.6 13.4,110.4 14.9,115 12,111.9 9.6,107.1 8.6,101.2 7.5,95.4 7.9,89.6 9.4,85 Z",firTrees:"m 3.9,90 -4,7 2,-0.5 L 0,100 v 15 h 200 v -15 l -1.9,-3.5 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4.1,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4.1,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 z",flechy:"m 0,100 h 85 l 15,-15 15,15 h 85 v 15 H 0 Z",barby:"m 0,100 h 85 l 15,15 15,-15 h 85 v 15 H 0 Z",enclavy:"M 0,100 H 85 V 85 h 30 v 15 h 85 v 15 H 0 Z",escartely:"m 0,100 h 85 v 15 h 30 v -15 h 85 v 15 H 0 Z",arched:"m 100,95 c 40,-0.2 100,20 100,20 H 0 c 0,0 60,-19.8 100,-20 z",archedReversed:"m 0,85 c 0,0 60,20.2 100,20 40,-0.2 100,-20 100,-20 v 30 H 0 Z"},jl={perFess:' ',perPale:' ',perBend:' ',perBendSinister:' ',perChevron:' ',perChevronReversed:' ',perCross:' ',perPile:' ',perSaltire:' ',gyronny:' ',chevronny:' ',perFessLined:e=>` `,perPaleLined:e=>` `,perBendLined:e=>` `,perBendSinisterLined:e=>` `,perChevronLined:e=>` `,perChevronReversedLined:e=>` `,perCrossLined:e=>` `,perPileLined:e=>` `,fess:' ',pale:' ',bend:' ',bendSinister:' ',chief:' ',bar:' ',gemelle:' ',fessCotissed:' ',fessDoubleCotissed:' ',bendlet:' ',bendletSinister:' ',terrace:' ',cross:' ',crossParted:' ',saltire:' ',saltireParted:' ',mount:' ',point:' ',flaunches:' ',gore:' ',pall:' ',pallReversed:' ',chevron:' ',chevronReversed:' ',gyron:' ',quarter:' ',canton:' ',pile:' ',pileInBend:' ',pileInBendSinister:' ',piles:' ',pilesInPoint:' ',label:' ',fessLined:e=>` `,paleLined:e=>` `,bendLined:e=>` `,bendSinisterLined:e=>` `,chiefLined:e=>` `,barLined:e=>` `,gemelleLined:e=>` `,fessCotissedLined:e=>` `,fessDoubleCotissedLined:e=>` `,bendletLined:e=>` `,bendletSinisterLined:e=>` `,terraceLined:e=>` `,crossLined:e=>` `,crossPartedLined:e=>` `,saltireLined:e=>` `,saltirePartedLined:e=>` `},Nl={semy:(e,t,n,r,i)=>` `,vair:(e,t,n,r)=>` `,counterVair:(e,t,n,r)=>` `,vairInPale:(e,t,n,r)=>` `,vairEnPointe:(e,t,n,r)=>` `,vairAncien:(e,t,n,r)=>` `,potent:(e,t,n,r)=>` `,counterPotent:(e,t,n,r)=>` `,potentInPale:(e,t,n,r)=>` `,potentEnPointe:(e,t,n,r)=>` `,ermine:(e,t,n,r)=>` `,chequy:(e,t,n,r)=>` `,lozengy:(e,t,n,r)=>` `,fusily:(e,t,n,r)=>` `,pally:(e,t,n,r)=>` `,barry:(e,t,n,r)=>` `,gemelles:(e,t,n,r)=>` `,bendy:(e,t,n,r)=>` `,bendySinister:(e,t,n,r)=>` `,palyBendy:(e,t,n,r)=>` `,barryBendy:(e,t,n,r)=>` `,pappellony:(e,t,n,r)=>` `,pappellony2:(e,t,n,r)=>` `,scaly:(e,t,n,r)=>` `,plumetty:(e,t,n,r)=>` `,masoned:(e,t,n,r)=>` `,fretty:(e,t,n,r)=>` `,grillage:(e,t,n,r)=>` `,chainy:(e,t,n,r)=>` `,maily:(e,t,n,r)=>` `,honeycombed:(e,t,n,r)=>` `},ql=document.getElementById("charges"),Hl=a(zr),Ul={},Rl=(e,t)=>{const n=e+"Lined";if(!t||"straight"===t||!jl[n])return jl[e];const r=Il[t];return jl[n](r)},Bl=e=>{if(!e)return console.error("No patternId");if(document.getElementById(e))return;const[t,n,r,i]=e.split("-"),o=!!/^semy/.test(s=e)&&s.match(/semy_of_(.*?)-/)[1];var s;o&&Fl(o);const l=Nl[o?"semy":t](e,Gl(n),Gl(r),function(e){return"small"===e?.8:"smaller"===e?.5:"smallest"===e?.25:"big"===e?1.6:"bigger"===e?2:1}(i),o);document.getElementById("patterns").insertAdjacentHTML("beforeend",l)};function Dl(e){e?.includes("-")&&Bl(e)}function Fl(e){"inescutcheon"===e.slice(0,12)?function(e){const t=e.length>12?e.slice(12,13).toLowerCase()+e.slice(13):a(Sr),n=e.length>12?e:"inescutcheon"+t.charAt(0).toUpperCase()+t.slice(1);if(Ul[n])return;Ul[n]=!0;const r=["noldor","gondor","easterling","ironHills","urukHai","moriaOrc"].includes(t)?'author="Weta Workshop" source="www.wetanz.com" license="https://en.wikipedia.org/wiki/Fair_use"':'author=Azgaar license="https://creativecommons.org/publicdomain/zero/1.0"',i=` `;ql.insertAdjacentHTML("beforeend",i)}(e):function(e){if(Ul[e])return;Ul[e]=!0,fetch("charges/"+e+".svg").then((e=>{if(e.ok)return e.text();throw new Error("Cannot fetch charge")})).then((e=>{const t=document.createElement("html");t.innerHTML=e;const n=t.querySelector("g"),r=t.getElementsByTagName("metadata")[0];if(r){const e=r.getAttribute("author"),t=r.getAttribute("source"),i=r.getAttribute("license");e&&n.setAttribute("author",e),t&&n.setAttribute("source",t),i&&n.setAttribute("license",i)}ql.insertAdjacentHTML("beforeend",n.outerHTML)})).catch((e=>console.error(e)))}(e)}function Gl(e){if(!Hl[e])throw new Error(`Tincture ${e} is not found`);return Hl[e]}function Vl(e){let t,n,r,i,o=Rl(e[0].ordinary,e[0].line)+"";return{c(){t=T("g"),N(t,"class","ordinary"),N(t,"i",e[1]),N(t,"transform",n=Pl(e[0])),N(t,"fill",e[3]),N(t,"stroke",e[4]),N(t,"stroke-width",e[5])},m(n,s){L(n,t,s),t.innerHTML=o,r||(i=I(t,"mousedown",e[6]),r=!0)},p(e,r){1&r&&o!==(o=Rl(e[0].ordinary,e[0].line)+"")&&(t.innerHTML=o),2&r&&N(t,"i",e[1]),1&r&&n!==(n=Pl(e[0]))&&N(t,"transform",n),8&r&&N(t,"fill",e[3]),16&r&&N(t,"stroke",e[4]),32&r&&N(t,"stroke-width",e[5])},d(e){e&&S(t),r=!1,i()}}}function Jl(e){let t,n,r,i,o;return{c(){t=T("g"),n=T("path"),N(n,"d",e[2]),N(n,"fill","none"),N(n,"stroke",e[3]),N(n,"stroke-width","5%"),N(n,"transform","translate(15 15) scale(.85)"),N(t,"class","ordinary"),N(t,"i",e[1]),N(t,"transform",r=Pl(e[0]))},m(r,s){L(r,t,s),x(t,n),i||(o=I(t,"mousedown",e[6]),i=!0)},p(e,i){4&i&&N(n,"d",e[2]),8&i&&N(n,"stroke",e[3]),2&i&&N(t,"i",e[1]),1&i&&r!==(r=Pl(e[0]))&&N(t,"transform",r)},d(e){e&&S(t),i=!1,o()}}}function Kl(e){let t,n,r,i,o;return{c(){t=T("g"),n=T("path"),N(n,"d",e[2]),N(n,"fill","none"),N(n,"stroke",e[3]),N(n,"stroke-width","16.7%"),N(t,"class","ordinary"),N(t,"i",e[1]),N(t,"transform",r=Pl(e[0]))},m(r,s){L(r,t,s),x(t,n),i||(o=I(t,"mousedown",e[6]),i=!0)},p(e,i){4&i&&N(n,"d",e[2]),8&i&&N(n,"stroke",e[3]),2&i&&N(t,"i",e[1]),1&i&&r!==(r=Pl(e[0]))&&N(t,"transform",r)},d(e){e&&S(t),i=!1,o()}}}function Zl(t){let n;function r(e,t){return"bordure"===e[0].ordinary?Kl:"orle"===e[0].ordinary?Jl:Vl}let i=r(t),o=i(t);return{c(){o.c(),n=M()},m(e,t){o.m(e,t),L(e,n,t)},p(e,[t]){i===(i=r(e))&&o?o.p(e,t):(o.d(1),o=i(e),o&&(o.c(),o.m(n.parentNode,n)))},i:e,o:e,d(e){o.d(e),e&&S(n)}}}function Wl(e,t,n){let r,i,{coa:o,ordinary:s,i:l,shieldPath:a,t:c,type:u}=t;return e.$$set=e=>{"coa"in e&&n(7,o=e.coa),"ordinary"in e&&n(0,s=e.ordinary),"i"in e&&n(1,l=e.i),"shieldPath"in e&&n(2,a=e.shieldPath),"t"in e&&n(3,c=e.t),"type"in e&&n(8,u=e.type)},e.$$.update=()=>{1&e.$$.dirty&&(n(4,r=s.stroke||"none"),n(5,i=s.strokeWidth||1))},[s,l,a,c,r,i,function(e){"Edit"===u&&Tl(e,s,o)},o,u]}class Xl extends Ne{constructor(e){super(),je(this,e,Wl,Zl,s,{coa:7,ordinary:0,i:1,shieldPath:2,t:3,type:8})}}function Yl(e,t,n){const r=e.slice();return r[11]=t[n],r}function Ql(e){let t,n,r;return{c(){t=T("use"),q(t,"xlink:href",n="#"+e[6]),N(t,"transform",r=Ml(e[0],e[11],e[2]))},m(e,n){L(e,t,n)},p(e,i){64&i&&n!==(n="#"+e[6])&&q(t,"xlink:href",n),133&i&&r!==(r=Ml(e[0],e[11],e[2]))&&N(t,"transform",r)},d(e){e&&S(t)}}}function ea(t){let n,r,i,o,s,l=t[7],a=[];for(let e=0;e{"coa"in e&&n(9,o=e.coa),"charge"in e&&n(0,s=e.charge),"i"in e&&n(1,l=e.i),"shield"in e&&n(2,a=e.shield),"t"in e&&n(3,c=e.t),"t2"in e&&n(4,u=e.t2),"t3"in e&&n(5,d=e.t3),"type"in e&&n(10,p=e.type)},e.$$.update=()=>{if(5&e.$$.dirty){const e=vr[a]||vr.spanish;n(7,i=[...new Set(s.p)].filter((t=>e[t])))}69&e.$$.dirty&&(n(6,r=s.charge),"inescutcheon"===r&&n(6,r="inescutcheon"+a.charAt(0).toUpperCase()+a.slice(1)))},[s,l,a,c,u,d,r,i,function(e){"Edit"===p&&Tl(e,s,o)},o,p]}class na extends Ne{constructor(e){super(),je(this,e,ta,ea,s,{coa:9,charge:0,i:1,shield:2,t:3,t2:4,t3:5,type:10})}}function ra(e,t,n){const r=e.slice();return r[20]=t[n],r[22]=n,r}function ia(e,t,n){const r=e.slice();return r[23]=t[n],r[22]=n,r}function oa(e,t,n){const r=e.slice();return r[20]=t[n],r[22]=n,r}function sa(e,t,n){const r=e.slice();return r[20]=t[n],r[22]=n,r}function la(e,t,n){const r=e.slice();return r[23]=t[n],r[22]=n,r}function aa(e,t,n){const r=e.slice();return r[20]=t[n],r[22]=n,r}function ca(e,t,n){const r=e.slice();return r[20]=t[n],r[22]=n,r}function ua(e,t,n){const r=e.slice();return r[23]=t[n],r[22]=n,r}function da(e,t,n){const r=e.slice();return r[20]=t[n],r[22]=n,r}function pa(e){let t,n;return t=new Xl({props:{coa:e[0],ordinary:e[20],i:e[22],shieldPath:e[9],t:e[6](e[11].t),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),512&n[0]&&(r.shieldPath=e[9]),64&n[0]&&(r.t=e[6](e[11].t)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function ha(e){let t,n;return t=new Xl({props:{coa:e[0],ordinary:e[20],i:e[22],shieldPath:e[9],t:e[6](e[20].t),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),512&n[0]&&(r.shieldPath=e[9]),64&n[0]&&(r.t=e[6](e[20].t)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function fa(e){let t,n,r,i;const o=[ha,pa],s=[];return~(t=function(e,t){return"field"===e[20].divided?0:"counter"===e[20].divided?1:-1}(e))&&(n=s[t]=o[t](e)),{c(){n&&n.c(),r=M()},m(e,n){~t&&s[t].m(e,n),L(e,r,n),i=!0},p(e,t){n&&n.p(e,t)},i(e){i||(be(n),i=!0)},o(e){we(n),i=!1},d(e){~t&&s[t].d(e),e&&S(r)}}}function ma(e){let t,n;return{c(){t=T("rect"),N(t,"class","diaper"),N(t,"x","0"),N(t,"y","0"),N(t,"width","200"),N(t,"height","200"),N(t,"fill",n="url(#"+e[4]+")"),B(t,"pointer-events","none")},m(e,n){L(e,t,n)},p(e,r){16&r[0]&&n!==(n="url(#"+e[4]+")")&&N(t,"fill",n)},d(e){e&&S(t)}}}function ga(e){let t,n;return t=new na({props:{coa:e[0],charge:e[23],i:e[22],shield:e[5],t:e[6](e[11].t),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),32&n[0]&&(r.shield=e[5]),64&n[0]&&(r.t=e[6](e[11].t)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function va(e){let t,n;return t=new na({props:{coa:e[0],charge:e[23],i:e[22],shield:e[5],t:e[6](e[23].t),t2:e[6](e[23].t2),t3:e[6](e[23].t3),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),32&n[0]&&(r.shield=e[5]),64&n[0]&&(r.t=e[6](e[23].t)),64&n[0]&&(r.t2=e[6](e[23].t2)),64&n[0]&&(r.t3=e[6](e[23].t3)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function $a(e){let t,n,r,i;const o=[va,ga],s=[];return~(t=function(e,t){return"field"===e[23].divided?0:"counter"===e[23].divided?1:-1}(e))&&(n=s[t]=o[t](e)),{c(){n&&n.c(),r=M()},m(e,n){~t&&s[t].m(e,n),L(e,r,n),i=!0},p(e,t){n&&n.p(e,t)},i(e){i||(be(n),i=!0)},o(e){we(n),i=!1},d(e){~t&&s[t].d(e),e&&S(r)}}}function ya(e){let t,n;return t=new Xl({props:{coa:e[0],ordinary:e[20],i:e[22],shieldPath:e[9],t:e[6](e[11].t),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),512&n[0]&&(r.shieldPath=e[9]),64&n[0]&&(r.t=e[6](e[11].t)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function ba(e){let t,n;return t=new Xl({props:{coa:e[0],ordinary:e[20],i:e[22],shieldPath:e[9],t:e[6](e[20].t),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),512&n[0]&&(r.shieldPath=e[9]),64&n[0]&&(r.t=e[6](e[20].t)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function wa(e){let t,n,r,i;const o=[ba,ya],s=[];return~(t=function(e,t){return"field"===e[20].divided?0:"counter"===e[20].divided?1:-1}(e))&&(n=s[t]=o[t](e)),{c(){n&&n.c(),r=M()},m(e,n){~t&&s[t].m(e,n),L(e,r,n),i=!0},p(e,t){n&&n.p(e,t)},i(e){i||(be(n),i=!0)},o(e){we(n),i=!1},d(e){~t&&s[t].d(e),e&&S(r)}}}function ka(e){let t,n;return t=new Xl({props:{coa:e[0],ordinary:e[20],i:e[22],shieldPath:e[9],t:e[6](e[0].t1),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),512&n[0]&&(r.shieldPath=e[9]),65&n[0]&&(r.t=e[6](e[0].t1)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Ea(e){let t,n;return t=new Xl({props:{coa:e[0],ordinary:e[20],i:e[22],shieldPath:e[9],t:e[6](e[20].t),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),512&n[0]&&(r.shieldPath=e[9]),64&n[0]&&(r.t=e[6](e[20].t)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function xa(e){let t,n,r,i;const o=[Ea,ka],s=[];return~(t=function(e,t){return"division"===e[20].divided?0:"counter"===e[20].divided?1:-1}(e))&&(n=s[t]=o[t](e)),{c(){n&&n.c(),r=M()},m(e,n){~t&&s[t].m(e,n),L(e,r,n),i=!0},p(e,t){n&&n.p(e,t)},i(e){i||(be(n),i=!0)},o(e){we(n),i=!1},d(e){~t&&s[t].d(e),e&&S(r)}}}function _a(e){let t,n;return{c(){t=T("rect"),N(t,"class","diaper"),N(t,"x","0"),N(t,"y","0"),N(t,"width","200"),N(t,"height","200"),N(t,"fill",n="url(#"+e[4]+")"),B(t,"pointer-events","none")},m(e,n){L(e,t,n)},p(e,r){16&r[0]&&n!==(n="url(#"+e[4]+")")&&N(t,"fill",n)},d(e){e&&S(t)}}}function Ca(e){let t,n;return t=new na({props:{coa:e[0],charge:e[23],i:e[22],shield:e[5],t:e[6](e[0].t1),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),32&n[0]&&(r.shield=e[5]),65&n[0]&&(r.t=e[6](e[0].t1)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function La(e){let t,n;return t=new na({props:{coa:e[0],charge:e[23],i:e[22],shield:e[5],t:e[6](e[23].t),t2:e[6](e[23].t2),t3:e[6](e[23].t3),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),32&n[0]&&(r.shield=e[5]),64&n[0]&&(r.t=e[6](e[23].t)),64&n[0]&&(r.t2=e[6](e[23].t2)),64&n[0]&&(r.t3=e[6](e[23].t3)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Sa(e){let t,n,r,i;const o=[La,Ca],s=[];return~(t=function(e,t){return"division"===e[23].divided?0:"counter"===e[23].divided?1:-1}(e))&&(n=s[t]=o[t](e)),{c(){n&&n.c(),r=M()},m(e,n){~t&&s[t].m(e,n),L(e,r,n),i=!0},p(e,t){n&&n.p(e,t)},i(e){i||(be(n),i=!0)},o(e){we(n),i=!1},d(e){~t&&s[t].d(e),e&&S(r)}}}function za(e){let t,n;return t=new Xl({props:{coa:e[0],ordinary:e[20],i:e[22],shieldPath:e[9],t:e[6](e[0].t1),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),512&n[0]&&(r.shieldPath=e[9]),65&n[0]&&(r.t=e[6](e[0].t1)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Aa(e){let t,n;return t=new Xl({props:{coa:e[0],ordinary:e[20],i:e[22],shieldPath:e[9],t:e[6](e[20].t),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),512&n[0]&&(r.shieldPath=e[9]),64&n[0]&&(r.t=e[6](e[20].t)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Ta(e){let t,n,r,i;const o=[Aa,za],s=[];return~(t=function(e,t){return"division"===e[20].divided?0:"counter"===e[20].divided?1:-1}(e))&&(n=s[t]=o[t](e)),{c(){n&&n.c(),r=M()},m(e,n){~t&&s[t].m(e,n),L(e,r,n),i=!0},p(e,t){n&&n.p(e,t)},i(e){i||(be(n),i=!0)},o(e){we(n),i=!1},d(e){~t&&s[t].d(e),e&&S(r)}}}function Oa(e){let t,n,r=!e[20].divided&&function(e){let t,n;return t=new Xl({props:{coa:e[0],ordinary:e[20],i:e[22],shieldPath:e[9],t:e[6](e[20].t),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),512&n[0]&&(r.shieldPath=e[9]),64&n[0]&&(r.t=e[6](e[20].t)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}(e);return{c(){r&&r.c(),t=M()},m(e,i){r&&r.m(e,i),L(e,t,i),n=!0},p(e,t){e[20].divided||r.p(e,t)},i(e){n||(be(r),n=!0)},o(e){we(r),n=!1},d(e){r&&r.d(e),e&&S(t)}}}function Pa(e){let t,n;return{c(){t=T("rect"),N(t,"class","diaper"),N(t,"x","0"),N(t,"y","0"),N(t,"width","200"),N(t,"height","200"),N(t,"fill",n="url(#"+e[4]+")"),B(t,"pointer-events","none")},m(e,n){L(e,t,n)},p(e,r){16&r[0]&&n!==(n="url(#"+e[4]+")")&&N(t,"fill",n)},d(e){e&&S(t)}}}function Ma(e){let t,n,r=(!e[23].divided||!e[11])&&function(e){let t,n;return t=new na({props:{coa:e[0],charge:e[23],i:e[22],shield:e[5],t:e[6](e[23].t),t2:e[6](e[23].t2),t3:e[6](e[23].t3),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),32&n[0]&&(r.shield=e[5]),64&n[0]&&(r.t=e[6](e[23].t)),64&n[0]&&(r.t2=e[6](e[23].t2)),64&n[0]&&(r.t3=e[6](e[23].t3)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}(e);return{c(){r&&r.c(),t=M()},m(e,i){r&&r.m(e,i),L(e,t,i),n=!0},p(e,t){e[23].divided&&e[11]||r.p(e,t)},i(e){n||(be(r),n=!0)},o(e){we(r),n=!1},d(e){r&&r.d(e),e&&S(t)}}}function Ia(e){let t,n,r=!e[20].divided&&function(e){let t,n;return t=new Xl({props:{coa:e[0],ordinary:e[20],i:e[22],shieldPath:e[9],t:e[6](e[20].t),type:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};1&n[0]&&(r.coa=e[0]),512&n[0]&&(r.shieldPath=e[9]),64&n[0]&&(r.t=e[6](e[20].t)),8&n[0]&&(r.type=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}(e);return{c(){r&&r.c(),t=M()},m(e,i){r&&r.m(e,i),L(e,t,i),n=!0},p(e,t){e[20].divided||r.p(e,t)},i(e){n||(be(r),n=!0)},o(e){we(r),n=!1},d(e){r&&r.d(e),e&&S(t)}}}function ja(t){let n,r,i,o,s,l,a,c,u,d,p,h,f,m,g,v,$=t[11]&&"no"!==t[11].division&&function(t){let n,r,i=Rl(t[11].division,t[11].line)+"";return{c(){n=T("clipPath"),N(n,"id",r="division_"+t[10])},m(e,t){L(e,n,t),n.innerHTML=i},p:e,d(e){e&&S(n)}}}(t),y=t[11]&&"no"!==t[11].division&&function(e){let t,n,r,i,o,s,l,a,c,u,d,p=e[13],h=[];for(let t=0;twe(h[e],1,1,(()=>{h[e]=null}));let m="field"===e[8]&&ma(e),g=e[12],v=[];for(let t=0;twe(v[e],1,1,(()=>{v[e]=null}));let y=e[14],b=[];for(let t=0;twe(b[e],1,1,(()=>{b[e]=null}));let k=e[13],E=[];for(let t=0;twe(E[e],1,1,(()=>{E[e]=null}));let C="division"===e[8]&&_a(e),A=e[12],O=[];for(let t=0;twe(O[e],1,1,(()=>{O[e]=null}));let I=e[14],j=[];for(let t=0;twe(j[e],1,1,(()=>{j[e]=null}));return{c(){for(let e=0;ewe(w[e],1,1,(()=>{w[e]=null}));let E="overall"===t[8]&&Pa(t),_=t[12],C=[];for(let e=0;e<_.length;e+=1)C[e]=Ma(ia(t,_,e));const A=e=>we(C[e],1,1,(()=>{C[e]=null}));let I=t[14],j=[];for(let e=0;ewe(j[e],1,1,(()=>{j[e]=null}));return{c(){n=T("defs"),r=T("clipPath"),i=T("path"),$&&$.c(),o=T("style"),s=O("g.secondary,\n path.secondary {\n fill: var(--secondary);\n }\n g.tertiary,\n path.tertiary {\n fill: var(--tertiary);\n }"),l=P(),a=T("g"),c=T("rect"),y&&y.c(),d=M();for(let e=0;en(15,a=e))),c(e,Cr,(e=>n(16,u=e))),c(e,Lr,(e=>n(17,d=e))),c(e,Sr,(e=>n(5,p=e)));let{coa:h}=t,{border:f}=t,{borderWidth:m}=t,{type:g}=t;const v=h.seed||Math.floor(1e9*Math.random()),{division:$,ordinaries:y=[],charges:b=[]}=h,w=y.filter((e=>!e.above)),k=y.filter((e=>e.above));return b.forEach((({charge:e})=>Fl(e))),e.$$set=e=>{"coa"in e&&n(0,h=e.coa),"border"in e&&n(1,f=e.border),"borderWidth"in e&&n(2,m=e.borderWidth),"type"in e&&n(3,g=e.type)},e.$$.update=()=>{32&e.$$.dirty[0]&&n(9,r=fr[p]),131081&e.$$.dirty[0]&&n(4,i="menuItem"===g?null:h.diaper||d),16&e.$$.dirty[0]&&n(8,o=function(e){if(!e||"no"===e)return null;const t=!h.t1.includes("-"),n=!$?.t.includes("-");return t&&n?"overall":t?"field":n?"division":null}(i)),65536&e.$$.dirty[0]&&n(7,s=u&&"no"!==u?`url(#${u})`:"none"),32768&e.$$.dirty[0]&&n(6,l=e=>e?a[e]?a[e]:(Bl(e),"url(#"+e+")"):null)},[h,f,m,g,i,p,l,s,o,r,v,$,b,w,k,a,u,d]}class qa extends Ne{constructor(e){super(),je(this,e,Na,ja,s,{coa:0,border:1,borderWidth:2,type:3},null,[-1,-1])}}function Ha(e){let t,n,r,i;n=new qa({props:{coa:e[0],border:e[5],borderWidth:e[6],type:e[1]}});let o=e[7]&&function(e){let t,n,r;return t=new El({}),n=new Al({}),{c(){Oe(t.$$.fragment),Oe(n.$$.fragment)},m(e,i){Pe(t,e,i),Pe(n,e,i),r=!0},i(e){r||(be(t.$$.fragment,e),be(n.$$.fragment,e),r=!0)},o(e){we(t.$$.fragment,e),we(n.$$.fragment,e),r=!1},d(e){Me(t,e),Me(n,e)}}}();return{c(){t=T("svg"),Oe(n.$$.fragment),o&&o.c(),N(t,"id",r="coa"+e[1]),N(t,"class","coa"),N(t,"width",e[2]),N(t,"height",e[3]),N(t,"viewBox",e[4]),N(t,"xmlns","http://www.w3.org/2000/svg"),N(t,"xmlns:xlink","http://www.w3.org/1999/xlink"),N(t,"xmlns:dc","http://purl.org/dc/elements/1.1/"),N(t,"xmlns:rdf","http://www.w3.org/1999/02/22-rdf-syntax-ns#")},m(e,r){L(e,t,r),Pe(n,t,null),o&&o.m(t,null),i=!0},p(e,[o]){const s={};1&o&&(s.coa=e[0]),32&o&&(s.border=e[5]),64&o&&(s.borderWidth=e[6]),2&o&&(s.type=e[1]),n.$set(s),(!i||2&o&&r!==(r="coa"+e[1]))&&N(t,"id",r),(!i||4&o)&&N(t,"width",e[2]),(!i||8&o)&&N(t,"height",e[3]),(!i||16&o)&&N(t,"viewBox",e[4])},i(e){i||(be(n.$$.fragment,e),be(o),i=!0)},o(e){we(n.$$.fragment,e),we(o),i=!1},d(e){e&&S(t),Me(n),o&&o.d()}}}function Ua(e,t,n){let r,i,o,s;c(e,Sr,(e=>n(8,i=e))),c(e,Pr,(e=>n(5,o=e))),c(e,Mr,(e=>n(6,s=e)));let{coa:l}=t,{i:a}=t,{width:u="100%"}=t,{height:d="100%"}=t;const p="Edit"===a;return e.$$set=e=>{"coa"in e&&n(0,l=e.coa),"i"in e&&n(1,a=e.i),"width"in e&&n(2,u=e.width),"height"in e&&n(3,d=e.height)},e.$$.update=()=>{256&e.$$.dirty&&n(4,r=mr[i]||"0 0 200 200")},[l,a,u,d,r,o,s,p,i]}class Ra extends Ne{constructor(e){super(),je(this,e,Ua,Ha,s,{coa:0,i:1,width:2,height:3})}}const Ba=["a","b","c","d","e","f","g","h","i","y","z","kn","bh","df","pq","jo","lm","abc","def","ghi","adg","beh","cfi","jeo","jln","kmo","peq","lem","bhdf","jleh","acegi","bdefh","kenpq","abcpqh","abcdefgzi","ABCDEFGHIJKL"],Da={conventional:{e:20,abcdefgzi:3,beh:3,behdf:2,acegi:1,kn:3,bhdf:1,jeo:1,abc:3,jln:6,jlh:3,kmo:2,jleh:1,def:3,abcpqh:4,ABCDEFGHIJKL:1},complex:{e:40,beh:1,kn:1,jeo:1,abc:2,jln:7,jlh:2,def:1,abcpqh:1},divisions:{perPale:{e:15,pq:5,jo:2,jl:2,ABCDEFGHIJKL:1},perFess:{e:12,kn:4,jkl:2,gizgiz:1,jlh:3,kmo:1,ABCDEFGHIJKL:1},perBend:{e:5,lm:5,bcfdgh:1},perBendSinister:{e:1,jo:1},perCross:{e:4,jlmo:1,j:1,jo:2,jl:1},perChevron:{e:1,jlh:1,dfk:1,dfbh:2,bdefh:1},perChevronReversed:{e:1,mok:2,dfh:2,dfbh:1,bdefh:1},perSaltire:{bhdf:8,e:3,abcdefgzi:1,bh:1,df:1,ABCDEFGHIJKL:1},perPile:{ee:3,be:2,abceh:1,abcabc:1,jleh:1}},inescutcheon:{e:4,jln:1}},Fa={straight:50,wavy:8,engrailed:4,invecked:3,rayonne:3,embattled:1,raguly:1,urdy:1,dancetty:1,indented:2,dentilly:1,bevilled:1,angled:1,flechy:1,barby:1,enclavy:1,escartely:1,arched:2,archedReversed:1,nowy:1,nowyReversed:1,embattledGhibellin:1,embattledNotched:1,embattledGrady:1,dovetailedIndented:1,dovetailed:1,potenty:1,potentyDexter:1,potentySinister:1,nebuly:2,seaWaves:1,dragonTeeth:1,firTrees:1},Ga={variants:{perPale:5,perFess:5,perBend:2,perBendSinister:1,perChevron:1,perChevronReversed:1,perCross:5,perPile:1,perSaltire:1,gyronny:1,chevronny:1},perPale:Fa,perFess:Fa,perBend:Fa,perBendSinister:Fa,perChevron:Fa,perChevronReversed:Fa,perCross:{straight:20,wavy:5,engrailed:4,invecked:3,rayonne:1,embattled:1,raguly:1,urdy:1,indented:2,dentilly:1,bevilled:1,angled:1,embattledGhibellin:1,embattledGrady:1,dovetailedIndented:1,dovetailed:1,potenty:1,potentyDexter:1,potentySinister:1,nebuly:1},perPile:Fa},Va={lined:{pale:7,fess:5,bend:3,bendSinister:2,chief:5,bar:2,gemelle:1,fessCotissed:1,fessDoubleCotissed:1,bendlet:2,bendletSinister:1,terrace:3,cross:6,crossParted:1,saltire:2,saltireParted:1},straight:{bordure:8,orle:4,mount:1,point:2,flaunches:1,gore:1,gyron:1,quarter:1,canton:2,pall:3,pallReversed:2,chevron:4,chevronReversed:3,pile:2,pileInBend:2,pileInBendSinister:1,piles:1,pilesInPoint:2,label:1},data:{bar:{positionsOn:{defdefdef:1},positionsOff:{abc:2,abcgzi:1,jlh:5,bgi:2,ach:1}},bend:{positionsOn:{ee:2,jo:1,joe:1},positionsOff:{ccg:2,ccc:1}},bendSinister:{positionsOn:{ee:1,lm:1,lem:4},positionsOff:{aai:2,aaa:1}},bendlet:{positionsOn:{joejoejoe:1},positionsOff:{ccg:2,ccc:1}},bendletSinister:{positionsOn:{lemlemlem:1},positionsOff:{aai:2,aaa:1}},bordure:{positionsOn:{ABCDEFGHIJKL:1},positionsOff:{e:4,jleh:2,kenken:1,peqpeq:1}},canton:{positionsOn:{yyyy:1},positionsOff:{e:5,beh:1,def:1,bdefh:1,kn:1}},chevron:{positionsOn:{ach:3,hhh:1}},chevronReversed:{positionsOff:{bbb:1}},chief:{positionsOn:{abc:5,bbb:1},positionsOff:{emo:2,emoz:1,ez:2}},cross:{positionsOn:{eeee:1,behdfbehdf:3,behbehbeh:2},positionsOff:{acgi:1}},crossParted:{positionsOn:{e:5,ee:1}},fess:{positionsOn:{ee:1,def:3},positionsOff:{abc:3,abcz:1}},fessCotissed:{positionsOn:{ee:1,def:3}},fessDoubleCotissed:{positionsOn:{ee:1,defdef:3}},flaunches:{positionsOff:{e:3,kn:1,beh:3}},gemelle:{positionsOff:{abc:1}},gyron:{positionsOff:{bh:1}},label:{positionsOff:{defgzi:2,eh:3,defdefhmo:1,egiegi:1,pqn:5}},mount:{positionsOff:{e:5,def:1,bdf:3}},orle:{positionsOff:{e:4,jleh:1,kenken:1,peqpeq:1}},pale:{positionsOn:{ee:12,beh:10,kn:3,bb:1},positionsOff:{yyy:1}},pall:{positionsOn:{ee:1,jleh:5,jlhh:3},positionsOff:{BCKFEILGJbdmfo:1}},pallReversed:{positionsOn:{ee:1,bemo:5},positionsOff:{aczac:1}},pile:{positionsOn:{bbb:1},positionsOff:{acdfgi:1,acac:1}},pileInBend:{positionsOn:{eeee:1,eeoo:1},positionsOff:{cg:1}},pileInBendSinister:{positionsOn:{eeee:1,eemm:1},positionsOff:{ai:1}},point:{positionsOff:{e:2,def:1,bdf:3,acbdef:1}},quarter:{positionsOn:{jjj:1},positionsOff:{e:1}},saltire:{positionsOn:{ee:5,jlemo:1}},saltireParted:{positionsOn:{e:5,ee:1}},terrace:{positionsOff:{e:5,def:1,bdf:3}}}},Ja={types:{conventional:30,crosses:10,animals:2,animalHeads:1,birds:2,aquatic:1,seafaring:1,fantastic:3,plants:1,agriculture:1,arms:3,bodyparts:1,people:1,architecture:1,miscellaneous:3,inescutcheon:3,uploaded:0},single:{conventional:12,crosses:8,plants:2,animals:10,animalHeads:2,birds:4,aquatic:2,seafaring:2,fantastic:7,agriculture:1,arms:6,bodyparts:1,people:2,architecture:1,miscellaneous:10,inescutcheon:5,uploaded:0},semy:{conventional:4,crosses:1},conventional:{lozenge:2,fusil:4,mascle:4,rustre:2,lozengeFaceted:3,lozengePloye:1,roundel:4,roundel2:3,annulet:4,mullet:5,mulletPierced:1,mulletFaceted:1,mullet4:3,mullet6:4,mullet6Pierced:1,mullet6Faceted:1,mullet7:1,mullet8:1,mullet10:1,estoile:1,compassRose:1,billet:5,delf:0,triangle:3,trianglePierced:1,goutte:4,heart:4,pique:2,carreau:1,trefle:2,fleurDeLis:6,sun:3,sunInSplendour:1,sunInSplendour2:1,moonInCrescent:1,crescent:5,fountain:1},inescutcheon:{inescutcheonHeater:1,inescutcheonSpanish:1,inescutcheonFrench:1,inescutcheonHorsehead:1,inescutcheonHorsehead2:1,inescutcheonPolish:1,inescutcheonHessen:1,inescutcheonSwiss:1,inescutcheonBoeotian:1,inescutcheonRoman:1,inescutcheonKite:1,inescutcheonOldFrench:1,inescutcheonRenaissance:1,inescutcheonBaroque:1,inescutcheonTarge:1,inescutcheonTarge2:1,inescutcheonPavise:1,inescutcheonWedged:1,inescutcheonFlag:1,inescutcheonPennon:1,inescutcheonGuidon:1,inescutcheonBanner:1,inescutcheonDovetail:1,inescutcheonGonfalon:1,inescutcheonPennant:1,inescutcheonRound:1,inescutcheonOval:1,inescutcheonVesicaPiscis:1,inescutcheonSquare:1,inescutcheonDiamond:1,inescutcheonNo:1,inescutcheonFantasy1:1,inescutcheonFantasy2:1,inescutcheonFantasy3:1,inescutcheonFantasy4:1,inescutcheonFantasy5:1,inescutcheonNoldor:1,inescutcheonGondor:1,inescutcheonEasterling:1,inescutcheonErebor:1,inescutcheonIronHills:1,inescutcheonUrukHai:1,inescutcheonMoriaOrc:1},crosses:{crossHummetty:15,crossVoided:1,crossPattee:2,crossPatteeAlisee:1,crossFormee:1,crossFormee2:2,crossPotent:2,crossJerusalem:1,crosslet:1,crossClechy:3,crossBottony:1,crossFleury:3,crossPatonce:1,crossPommy:1,crossGamma:1,crossArrowed:1,crossFitchy:1,crossCercelee:1,crossMoline:2,crossFourchy:1,crossAvellane:1,crossErminee:1,crossBiparted:1,crossMaltese:3,crossTemplar:2,crossCeltic:1,crossCeltic2:1,crossTriquetra:1,crossCarolingian:1,crossOccitan:1,crossSaltire:3,crossBurgundy:1,crossLatin:3,crossPatriarchal:1,crossOrthodox:1,crossCalvary:1,crossDouble:1,crossTau:1,crossSantiago:1,crossAnkh:1},animals:{lionRampant:6,lionPassant:2,lionPassantGuardant:1,lionSejant:1,wolfRampant:1,wolfPassant:1,wolfStatant:1,greyhoundCourant:1,greyhoundRampant:1,greyhoundSejant:1,mastiffStatant:1,talbotPassant:1,talbotSejant:1,martenCourant:1,boarRampant:1,stagPassant:1,hindStatant:1,horseRampant:2,horseSalient:1,horsePassant:1,bearRampant:2,bearPassant:1,bullPassant:1,cowStatant:1,goat:1,lamb:1,lambPassantReguardant:1,agnusDei:1,ramPassant:1,badgerStatant:1,elephant:1,rhinoceros:1,camel:1,porcupine:1,hedgehog:1,catPassantGuardant:1,rabbitSejant:1,ratRampant:1,squirrel:1,frog:1,snake:1,crocodile:1,lizard:1,scorpion:1,butterfly:1,bee:1,fly:1},animalHeads:{wolfHeadErased:2,bullHeadCaboshed:1,deerHeadCaboshed:1,donkeyHeadCaboshed:1,lionHeadCaboshed:2,lionHeadErased:2,boarHeadErased:1,horseHeadCouped:1,ramHeadErased:1,elephantHeadErased:1},fantastic:{dragonPassant:2,dragonRampant:2,wyvern:1,wyvernWithWingsDisplayed:1,griffinPassant:1,griffinRampant:1,eagleTwoHeads:2,unicornRampant:1,pegasus:1,serpent:1,basilisk:1,sagittarius:1},birds:{eagle:9,falcon:2,raven:2,cock:3,parrot:1,swan:2,swanErased:1,heron:1,owl:1,owlDisplayed:1,dove:2,doveDisplayed:1,duck:1,peacock:1,peacockInPride:1,swallow:1},plants:{tree:1,oak:1,pineTree:1,palmTree:1,trefoil:1,quatrefoil:1,cinquefoil:1,sextifoil:1,mapleLeaf:1,rose:1,apple:1,pear:1,grapeBunch:1,wheatStalk:1,pineCone:1},aquatic:{escallop:5,pike:1,plaice:1,salmon:1,cancer:1,dolphin:1},seafaring:{anchor:6,boat:2,boat2:1,lymphad:2,caravel:1,armillarySphere:1},agriculture:{garb:2,sickle:1,scythe:1,rake:1,plough:2},arms:{sword:4,falchion:1,sabre:1,sabresCrossed:1,sabre2:1,hatchet:3,axe:3,lochaberAxe:1,spear:1,mallet:1,bowWithArrow:3,bow:1,arrow:1,arrowsSheaf:1,arbalest:1,helmet:2,gauntlet:1,shield:1,cannon:1},bodyparts:{hand:4,head:1,headWreathed:1,foot:1,skull:1},people:{cavalier:3,monk:1,angel:2},architecture:{tower:1,castle:1,bridge:1,column:1},miscellaneous:{crown:2,crown2:1,laurelWreath:1,mitre:1,orb:1,chalice:1,key:1,buckle:1,bugleHorn:1,bugleHorn2:1,bell:2,pot:1,bucket:1,horseshoe:3,stirrup:1,attire:1,stagsAttires:1,ramsHorn:1,cowHorns:2,wing:1,wingSword:1,lute:1,harp:1,drum:1,wheel:2,crosier:1,sceptre:1,fasces:1,log:1,chain:1,anvil:1,ladder:1,banner:1,bookClosed:1,bookOpen:1,scissors:1},uploaded:{},data:{agnusDei:{colors:2,sinister:!0},angel:{colors:2,positions:{e:1}},anvil:{sinister:!0},apple:{colors:2},arbalest:{colors:3,reversed:!0},armillarySphere:{positions:{e:1}},arrow:{colors:3,reversed:!0},arrowsSheaf:{colors:3,reversed:!0},axe:{colors:2,sinister:!0},badgerStatant:{colors:2,sinister:!0},banner:{colors:2},basilisk:{colors:3,sinister:!0},bearPassant:{colors:3,sinister:!0},bearRampant:{colors:3,sinister:!0},bee:{colors:3,reversed:!0},bell:{colors:2},boarHeadErased:{colors:3,sinister:!0},boarRampant:{colors:3,sinister:!0,positions:{e:12,beh:1,kn:1,jln:2}},boat:{colors:2},bookClosed:{colors:3},bookOpen:{colors:3},bow:{sinister:!0},bowWithArrow:{colors:3,reversed:!0},bucket:{colors:2},bugleHorn:{colors:2},bugleHorn2:{colors:2},bullHeadCaboshed:{colors:2},bullPassant:{colors:3,sinister:!0},butterfly:{colors:3,reversed:!0},camel:{colors:2,sinister:!0},cancer:{reversed:!0},cannon:{colors:2,sinister:!0},caravel:{colors:3,sinister:!0},castle:{colors:2},catPassantGuardant:{colors:2,sinister:!0},cavalier:{positions:{e:1}},chalice:{colors:2},cinquefoil:{reversed:!0},cock:{colors:3,sinister:!0},cowStatant:{colors:3,sinister:!0},crescent:{reversed:!0},crocodile:{colors:2,sinister:!0},crosier:{sinister:!0},crossGamma:{sinister:!0},crossLatin:{reversed:!0},crossTau:{reversed:!0},crossTriquetra:{reversed:!0},crown:{colors:2,positions:{e:10,abcdefgzi:1,beh:3,behdf:2,acegi:1,kn:1,pq:2,abc:1,jln:4,jleh:1,def:2,abcpqh:3}},crown2:{colors:3,positions:{e:10,abcdefgzi:1,beh:3,behdf:2,acegi:1,kn:1,pq:2,abc:1,jln:4,jleh:1,def:2,abcpqh:3}},deerHeadCaboshed:{colors:2},dolphin:{colors:2,sinister:!0},donkeyHeadCaboshed:{colors:2},dove:{colors:2,natural:"argent",sinister:!0},doveDisplayed:{colors:2,natural:"argent",sinister:!0},dragonPassant:{colors:3,sinister:!0},dragonRampant:{colors:3,sinister:!0},drum:{colors:3},duck:{colors:3,sinister:!0},eagle:{colors:3,sinister:!0,positions:{e:15,beh:1,kn:1,abc:1,jlh:2,def:2,pq:1}},eagleTwoHeads:{colors:3},elephant:{colors:2,sinister:!0},elephantHeadErased:{colors:2,sinister:!0},falchion:{colors:2,reversed:!0},falcon:{colors:3,sinister:!0},fasces:{colors:3,sinister:!0},fly:{colors:3,natural:"sable",reversed:!0},foot:{sinister:!0},fountain:{natural:"azure"},frog:{reversed:!0},garb:{colors:2,natural:"or",positions:{e:1,def:3,abc:2,beh:1,kn:1,jln:3,jleh:1,abcpqh:1,joe:1,lme:1}},gauntlet:{sinister:!0,reversed:!0},goat:{colors:3,sinister:!0},goutte:{reversed:!0},grapeBunch:{colors:3},greyhoundCourant:{colors:3,sinister:!0,positions:{e:10,def:1,abc:1,bdefh:1,jlh:1,abcpqh:1}},greyhoundRampant:{colors:2,sinister:!0,positions:{e:10,def:1,abc:1,bdefh:1,jlh:1,abcpqh:1}},greyhoundSejant:{colors:3,sinister:!0},griffinPassant:{colors:3,sinister:!0,positions:{e:10,def:2,abc:2,bdefh:1,kn:1,jlh:2,abcpqh:1}},griffinRampant:{colors:3,sinister:!0,positions:{e:10,def:1,abc:1,bdefh:1,jlh:1,abcpqh:1}},hand:{sinister:!0,reversed:!0,positions:{e:10,jln:2,kn:1,jeo:1,abc:2,pqe:1}},harp:{colors:2,sinister:!0},hatchet:{colors:2,sinister:!0},head:{colors:2,sinister:!0,positions:{e:1}},headWreathed:{colors:3,sinister:!0,positions:{e:1}},hedgehog:{colors:3,sinister:!0},helmet:{sinister:!0},heron:{colors:2,sinister:!0},hindStatant:{colors:2,sinister:!0},horseHeadCouped:{sinister:!0},horsePassant:{colors:2,sinister:!0},horseRampant:{colors:3,sinister:!0},horseSalient:{colors:2,sinister:!0},horseshoe:{reversed:!0},knight:{sinister:!0},lamb:{colors:2,sinister:!0},lambPassantReguardant:{colors:2,sinister:!0},laurelWreath:{colors:2},lionHeadCaboshed:{colors:2},lionHeadErased:{colors:2,sinister:!0},lionPassant:{colors:3,sinister:!0,positions:{e:10,def:1,abc:1,bdefh:1,jlh:1,abcpqh:1}},lionPassantGuardant:{colors:3,sinister:!0},lionRampant:{colors:3,sinister:!0,positions:{e:10,def:2,abc:2,bdefh:1,kn:1,jlh:2,abcpqh:1}},lionSejant:{colors:3,sinister:!0},lizard:{reversed:!0},lochaberAxe:{colors:2,sinister:!0},log:{sinister:!0},lute:{colors:2,sinister:!0},lymphad:{colors:3,sinister:!0,positions:{e:1}},mallet:{colors:2},martenCourant:{colors:3,sinister:!0},mascle:{positions:{e:15,abcdefgzi:3,beh:3,bdefh:4,acegi:1,kn:3,joe:2,abc:3,jlh:8,jleh:1,df:3,abcpqh:4,pqe:3,eknpq:3}},mastiffStatant:{colors:3,sinister:!0},mitre:{colors:3},monk:{sinister:!0},moonInCrescent:{sinister:!0},mullet:{reversed:!0},mullet7:{reversed:!0},oak:{colors:3},orb:{colors:3},owl:{colors:2,sinister:!0},owlDisplayed:{colors:2},palmTree:{colors:3},parrot:{colors:2,sinister:!0},peacock:{colors:3,sinister:!0},peacockInPride:{colors:3,sinister:!0},pear:{colors:2},pegasus:{colors:3,sinister:!0},pike:{colors:2,sinister:!0},pineTree:{colors:2},plaice:{colors:2,sinister:!0},plough:{colors:2,sinister:!0},porcupine:{colors:2,sinister:!0},rabbitSejant:{colors:2,sinister:!0},rake:{reversed:!0},ramHeadErased:{colors:3,sinister:!0},ramPassant:{colors:3,sinister:!0},ratRampant:{colors:2,sinister:!0},raven:{colors:2,natural:"sable",sinister:!0,positions:{e:15,beh:1,kn:1,jeo:1,abc:3,jln:3,def:1}},rhinoceros:{colors:2,sinister:!0},rose:{colors:3},sabre:{colors:2,sinister:!0},sabre2:{colors:2,sinister:!0,reversed:!0},sabresCrossed:{colors:2,reversed:!0},sagittarius:{colors:3,sinister:!0},salmon:{colors:2,sinister:!0},scissors:{reversed:!0},scorpion:{reversed:!0},scythe:{colors:2,sinister:!0,reversed:!0},serpent:{colors:2,sinister:!0},shield:{colors:2,sinister:!0},sickle:{colors:2,sinister:!0,reversed:!0},snake:{colors:2,sinister:!0},spear:{colors:2,reversed:!0},squirrel:{colors:2,sinister:!0},stagPassant:{colors:2,sinister:!0},stirrup:{colors:2},swallow:{colors:2,sinister:!0},swan:{colors:3,sinister:!0},swanErased:{colors:3,sinister:!0},sword:{colors:2,reversed:!0},talbotPassant:{colors:3,sinister:!0},talbotSejant:{colors:3,sinister:!0},tower:{colors:2},tree:{positions:{e:1}},trefoil:{reversed:!0},unicornRampant:{colors:3,sinister:!0},wheatStalk:{colors:2},wing:{sinister:!0},wingSword:{colors:3,sinister:!0},wolfHeadErased:{colors:2,sinister:!0},wolfPassant:{colors:3,sinister:!0,positions:{e:10,def:1,abc:1,bdefh:1,jlh:1,abcpqh:1}},wolfRampant:{colors:3,sinister:!0},wolfStatant:{colors:3,sinister:!0},wyvern:{colors:3,sinister:!0,positions:{e:10,jln:1}},wyvernWithWingsDisplayed:{colors:3,sinister:!0}}},Ka={standard:154,small:20,smaller:20,big:5,smallest:1},Za=function(e){const t=e||Math.floor(1e9*Math.random());Math.random=function(){return function(e){const t="aleaPRNG 1.1.0";var n,r,i,o,s,l=new Uint32Array(3),a="";function c(e){var t=function(){var e=4022871197,t=function(t){for(var n=0,r=(t=t.toString()).length;n>>0,e=(i*=e)>>>0,e+=4294967296*(i-=e)}return 2.3283064365386963e-10*(e>>>0)};return t.version="Mash 0.9",t}();n=t(" "),r=t(" "),i=t(" "),o=1;for(var s=0;sarguments[1]&&(e=arguments[1],t=arguments[0]),u(e)&&u(t)?Math.floor(d()*(t-e+1))+e:d()*(t-e)+e},d.restart=function(){c(s)},d.seed=function(){c(Array.prototype.slice.call(arguments))},d.version=function(){return t},d.versions=function(){return t+", "+a},0===e.length&&(window.crypto.getRandomValues(l),e=[l[0],l[1],l[2]]),s=e,c(e),d}(Array.prototype.slice.call(arguments))}(t);const n={usedPattern:null,usedTinctures:[],tData:a(Ar),divisioned:null,ordinary:null},r={seed:t,t1:tc(n,"field")},i=ar(n.usedPattern?.5:.93),o=i&&ar(.3)||ar(.5)?lr(Va.lined):null;n.ordinary=!i&&ar(.65)||ar(.3)?o||lr(Va.straight):null;const s=["chief","terrace","chevron","quarter","flaunches"].includes(n.ordinary);n.divisioned=s||i&&n.ordinary?ar(.03):i?ar(.3):n.ordinary?ar(.7):ar(.995);const l=n.divisioned?lr(Ga.variants):null;if(l){const e=tc(n,"division",n.usedTinctures,ar(.98)?r.t1:null);r.division={division:l,t:e},Ga[l]&&(r.division.line=n.usedPattern||n.ordinary&&ar(.7)?"straight":lr(Ga[l]))}if(n.ordinary){const e=tc(n,"charge",n.usedTinctures,r.t1);r.ordinaries=[{ordinary:n.ordinary,t:e}],o&&(r.ordinaries[0].line=n.usedPattern||l&&ar(.7)?"straight":lr(Fa)),l&&!i&&!n.usedPattern&&ar(.5)&&"bordure"!==n.ordinary&&"orle"!==n.ordinary&&(ar(.8)?r.ordinaries[0].divided="counter":ar(.6)?r.ordinaries[0].divided="field":r.ordinaries[0].divided="division")}if(i){const e=Xa(n),t=Ja.data[e]||{};let i="e",o="gules";const s=Va.data[n.ordinary],a=r.ordinaries?r.ordinaries[0].t:null;s?.positionsOn&&ar(.8)?(i=lr(s.positionsOn),o=!n.usedPattern&&ar(.3)?r.t1:tc(n,"charge",[],a)):s?.positionsOff&&ar(.95)?(i=lr(s.positionsOff),o=!n.usedPattern&&ar(.3)?a:tc(n,"charge",n.usedTinctures,r.t1)):Da.divisions[l]?(i=lr(Da.divisions[l]),o=tc(n,"charge",a?n.usedTinctures.concat(a):n.usedTinctures,r.t1)):t.positions?(i=lr(t.positions),o=tc(n,"charge",n.usedTinctures,r.t1)):(i=n.usedPattern?"e":Ja.conventional[e]?lr(Da.conventional):lr(Da.complex),o=tc(n,"charge",n.usedTinctures.concat(a),r.t1)),t.natural&&t.natural!==o&&t.natural!==a&&(o=t.natural);const c={charge:e,t:o,p:i};if(t.colors>1&&(c.t2=ar(.25)?tc(n,"charge",n.usedTinctures,r.t1):o),t.colors>2&&(c.t3=ar(.5)?tc(n,"charge",n.usedTinctures,r.t1):o),r.charges=[c],"ABCDEFGHIKL"===i&&ar(.95)){r.charges[0].charge=lr(Ja.conventional);const e=Xa(Ja.single),t=tc(n,"charge",n.usedTinctures,r.t1);r.charges.push({charge:e,t:t,p:"e"})}else if(ar(.8)&&"inescutcheon"===e){const e=Xa(Ja.types),t=tc(n,"charge",[],o);r.charges.push({charge:e,t:t,p:i,size:.5})}else if(l&&!n.ordinary){const e=!(n.usedPattern||r.line&&"straight"!==r.line);if(ar(.3)&&["perPale","perFess"].includes(l)&&"straight"===r.line){if(r.charges[0].divided="field",ar(.95)){const e="e"===i||ar(.5)?"e":lr(Da.divisions[l]),t=Xa(Ja.single),o=tc(n,"charge",n.usedTinctures,r.division.t);r.charges.push({charge:t,t:o,p:e,divided:"division"})}}else if(e&&ar(.4))r.charges[0].divided="counter";else if(["perPale","perFess","perBend","perBendSinister"].includes(l)&&ar(.8)){const[e,t]="perPale"===l?["p","q"]:"perFess"===l?["k","n"]:"perBend"===l?["l","m"]:["j","o"];r.charges[0].p=e;const i=Xa(Ja.single),o=tc(n,"charge",n.usedTinctures,r.division.t);r.charges.push({charge:i,t:o,p:t})}else if(["perCross","perSaltire"].includes(l)&&ar(.5)){const[e,t,i,o]="perCross"===l?["j","l","m","o"]:["b","d","f","h"];r.charges[0].p=e;const s=Xa(Ja.single),a=tc(n,"charge",[],r.division.t),c=Xa(Ja.single),u=tc(n,"charge",[],r.division.t),d=Xa(Ja.single),p=tc(n,"charge",[],r.t1);r.charges.push({charge:s,t:a,p:t},{charge:c,t:u,p:i},{charge:d,t:p,p:o})}else e&&i.length>1&&(r.charges[0].divided="counter")}r.charges.forEach((e=>function(e,t,n){n.size=(n.size||1)*Wa(n.p,e.ordinary,t),n.p=[...new Set(n.p)].join(""),ar(.02)&&Ja.data[n.charge]?.sinister&&(n.sinister=1);ar(.02)&&Ja.data[n.charge]?.reversed&&(n.reversed=1)}(n,l,e)))}return r},Wa=(e,t=null,n=null)=>"e"!==e||"bordure"!==t&&"orle"!==t?"e"===e?1.5:"jln"===e||"jlh"===e?.7:"abcpqh"===e||"ez"===e||"be"===e||["a","b","c","d","f","g","h","i","bh","df"].includes(e)?.5:["j","l","m","o","jlmo"].includes(e)&&"perCross"===n?.6:e.length>10?.18:e.length>7?.3:e.length>4?.4:e.length>2?.5:.7:1.1;function Xa(e,t){const n=t?lr(t):e.ordinary||e.divisioned?lr(Ja.types):lr(Ja.single);return"inescutcheon"===n?"inescutcheon":lr(Ja[n])}function Ya(e,t){const n=Qa(e,t),r={...e.tData[n]};delete r[t];return lr(r,!1)?lr(r,!1):(console.warn(`Type ${n} has only one valid tincture. Cannot follow the Rule of Tincture`),t)}function Qa(e,t){const n=ec(t);if(Object.keys(e.tData.metals).includes(n))return"metals";if(Object.keys(e.tData.colours).includes(n))return"colours";if(Object.keys(e.tData.stains).includes(n))return"stains";throw new Error("Unknown tincture type",t)}function ec(e){return e.includes("-")?e.split("-")[1]:e}function tc(e,t,n=[],r){let i=lr(e.tData[t]);if("patterns"===i){const n=lr(e.tData[i]);e.usedPattern=n;const r=function(e,t,n){let r=null,i=null;if(ar(.5)&&(t.includes("air")||t.includes("otent"))?(r="argent",i="azure"):"ermine"===t?ar(.7)?(r="argent",i="sable"):ar(.3)?(r="sable",i="argent"):ar(.1)?(r="or",i="sable"):ar(.1)?(r="sable",i="or"):ar(.1)&&(r="gules",i="argent"):t.includes("pappellony")||"scaly"===t?ar(.2)?(r="gules",i="or"):ar(.2)?(r="sable",i="argent"):ar(.2)?(r="argent",i="sable"):ar(.2)&&(r="azure",i="argent"):ar(.2)&&"plumetty"===t?(r="gules",i="or"):"masoned"===t?ar(.3)?(r="gules",i="argent"):ar(.3)?(r="argent",i="sable"):ar(.1)&&(r="or",i="sable"):"fretty"===t||"grillage"===t||"chainy"===t?ar(.35)?(r="argent",i="gules"):ar(.1)?(r="sable",i="or"):ar(.2)&&(r="gules",i="argent"):"honeycombed"===t?ar(.4)?(r="sable",i="or"):ar(.3)&&(r="or",i="sable"):"semy"===t&&(t+="_of_"+Xa(Ja.semy)),!r||!i){const t=ar(.7);r=lr(t?e.tData.metals:e.tData.colours),i=lr(t?e.tData.colours:e.tData.metals)}"division"===n&&(e.usedTinctures.includes(r)&&(r=Ya(e,r)),e.usedTinctures.includes(i)&&(i=Ya(e,i))),e.usedTinctures.push(r,i);const o=lr(Ka);return`${t}-${r}-${i}${"standard"===o?"":"-"+o}`}(e,n,t);return r}if(r){i="metals"===Qa(e,ec(r))?"colours":"metals"}const o=e.tData[i],s=n.length?function(e,t){const n={...e};t.forEach((e=>{delete n[e]}));const r=Object.keys(n).length&&Object.values(n).reduce(((e,t)=>e+t),0);return r?n:e}(o,n):o;let l=lr(s,!1);return"charge"!==t&&e.usedTinctures.push(l),l}function nc(e){let t,n,r,i,o;return n=new Ra({props:{coa:e[1],i:"View",width:e[0],height:e[0]}}),{c(){t=A("div"),Oe(n.$$.fragment),N(t,"id","viewer")},m(e,s){L(e,t,s),Pe(n,t,null),r=!0,i||(o=I(t,"click",rc),i=!0)},p(e,[t]){const r={};1&t&&(r.width=e[0]),1&t&&(r.height=e[0]),n.$set(r)},i(e){r||(be(n.$$.fragment,e),r=!0)},o(e){we(n.$$.fragment,e),r=!1},d(e){e&&S(t),Me(n),i=!1,o()}}}function rc(){if(new URLSearchParams(window.location.search).has("noedit"))return;const e=window.location.href.replace("view=1","view=0");window.open(e,"_blank").focus()}function ic(e,t,n){let r;c(e,Nr,(e=>n(4,r=e)));let{c:i,seed:o,coaSize:s}=t,l=r[i]||Za(o||void 0);return e.$$set=e=>{"c"in e&&n(2,i=e.c),"seed"in e&&n(3,o=e.seed),"coaSize"in e&&n(0,s=e.coaSize)},[s,l,i,o]}class oc extends Ne{constructor(e){super(),je(this,e,ic,nc,s,{c:2,seed:3,coaSize:0})}}function sc(t){let n,r,i,o,s,l,a;return{c(){n=A("div"),r=A("input"),i=P(),o=A("label"),s=O("Switch"),N(r,"id",t[1]),N(r,"class","switch-input svelte-1cmzv6a"),N(r,"type","checkbox"),N(o,"for",t[1]),N(o,"class","switch-label svelte-1cmzv6a"),N(n,"class","switch svelte-1cmzv6a")},m(e,c){L(e,n,c),x(n,r),r.checked=t[0],x(n,i),x(n,o),x(o,s),l||(a=I(r,"change",t[2]),l=!0)},p(e,[t]){1&t&&(r.checked=e[0])},i:e,o:e,d(e){e&&S(n),l=!1,a()}}}function lc(e,t,n){let{checked:r=!1}=t;const i="switch"+Math.floor(1e6*Math.random());return e.$$set=e=>{"checked"in e&&n(0,r=e.checked)},[r,i,function(){r=this.checked,n(0,r)}]}class ac extends Ne{constructor(e){super(),je(this,e,lc,sc,s,{checked:0})}}function cc(e){let t,n,r,i,o,s,l,a,c,u,d,p=e[1]("editor.aboveCharges")+"";function h(t){e[2](t)}let f={};return void 0!==e[0]&&(f.checked=e[0]),s=new ac({props:f}),ne.push((()=>Te(s,"checked",h))),{c(){t=A("span"),n=A("span"),r=O(p),i=O(":"),o=P(),Oe(s.$$.fragment),B(n,"margin-left","1em"),N(t,"data-tooltip",a=e[1]("tooltip.aboveCharges"))},m(e,l){L(e,t,l),x(t,n),x(n,r),x(n,i),x(t,o),Pe(s,t,null),c=!0,u||(d=v(ri.call(null,t)),u=!0)},p(e,[n]){(!c||2&n)&&p!==(p=e[1]("editor.aboveCharges")+"")&&U(r,p);const i={};!l&&1&n&&(l=!0,i.checked=e[0],ae((()=>l=!1))),s.$set(i),(!c||2&n&&a!==(a=e[1]("tooltip.aboveCharges")))&&N(t,"data-tooltip",a)},i(e){c||(be(s.$$.fragment,e),c=!0)},o(e){we(s.$$.fragment,e),c=!1},d(e){e&&S(t),Me(s),u=!1,d()}}}function uc(e,t,n){let r;c(e,or,(e=>n(1,r=e)));let{above:i}=t;return e.$$set=e=>{"above"in e&&n(0,i=e.above)},[i,r,function(e){i=e,n(0,i)}]}class dc extends Ne{constructor(e){super(),je(this,e,uc,cc,s,{above:0})}}function pc(e){let t,n,r,i,o;return n=new qa({props:{coa:e[0],border:"#333",borderWidth:2,type:"menuItem"}}),{c(){t=T("svg"),Oe(n.$$.fragment),N(t,"class","menuItem"),N(t,"width","100%"),N(t,"height","100%"),N(t,"viewBox","0 0 200 200"),N(t,"data-tooltip",e[1])},m(e,s){L(e,t,s),Pe(n,t,null),r=!0,i||(o=v(ri.call(null,t)),i=!0)},p(e,[i]){const o={};1&i&&(o.coa=e[0]),n.$set(o),(!r||2&i)&&N(t,"data-tooltip",e[1])},i(e){r||(be(n.$$.fragment,e),r=!0)},o(e){we(n.$$.fragment,e),r=!1},d(e){e&&S(t),Me(n),i=!1,o()}}}function hc(e,t,n){let{coa:r}=t,{tip:i}=t;return e.$$set=e=>{"coa"in e&&n(0,r=e.coa),"tip"in e&&n(1,i=e.tip)},[r,i]}class fc extends Ne{constructor(e){super(),je(this,e,hc,pc,s,{coa:0,tip:1})}}function mc(e,t,n){const r=e.slice();return r[30]=t[n],r}function gc(e,t,n){const r=e.slice();return r[0]=t[n],r}function vc(e){let t,n,r,i=e[5](`categories.${e[0]}`)+"";return{c(){t=A("option"),n=O(i),t.__value=r=e[0],t.value=t.__value},m(e,r){L(e,t,r),x(t,n)},p(e,t){32&t[0]&&i!==(i=e[5](`categories.${e[0]}`)+"")&&U(n,i)},d(e){e&&S(t)}}}function $c(e,t){let n,r,i,o,s,l;function a(){return t[19](t[30])}return r=new fc({props:{coa:t[30],tip:t[8](t[30].charge)}}),{key:e,first:null,c(){n=A("div"),Oe(r.$$.fragment),i=P(),N(n,"class","item"),G(n,"selected",t[1]===t[30].charge),this.first=n},m(e,t){L(e,n,t),Pe(r,n,null),x(n,i),o=!0,s||(l=I(n,"click",a),s=!0)},p(e,i){t=e;const o={};16&i[0]&&(o.coa=t[30]),16&i[0]&&(o.tip=t[8](t[30].charge)),r.$set(o),18&i[0]&&G(n,"selected",t[1]===t[30].charge)},i(e){o||(be(r.$$.fragment,e),o=!0)},o(e){we(r.$$.fragment,e),o=!1},d(e){e&&S(n),Me(r),s=!1,l()}}}function yc(e){let t,n,r,o,s,l,a,c,u,d,p,h,f,m,g,v,$=e[5]("editor.category")+"",y=e[5]("editor.search")+"",b=[],w=new Map,k=e[6],E=[];for(let t=0;te[30];for(let t=0;t<_.length;t+=1){let n=mc(e,_,t),r=C(n);w.set(r,b[t]=$c(r,n))}return{c(){t=A("span"),n=O($),r=O(":"),o=P(),s=A("select");for(let e=0;ee[17].call(s))),G(s,"inactive",e[3]),N(a,"class","svelte-mg0vr7"),G(a,"indented",!0),N(p,"class","svelte-mg0vr7"),G(p,"inactive",!e[3]),N(f,"class","items")},m(i,$){L(i,t,$),x(t,n),x(t,r),L(i,o,$),L(i,s,$);for(let e=0;en(5,r=e))),c(e,Jn,(e=>n(21,i=e))),c(e,Ln,(e=>n(22,o=e)));let s,l,{charge:a}=t,{type:u}=t,{category:d}=t,{t1:p}=t,{t2:h}=t,{t3:f}=t,{t4:m}=t,{size:g=null}=t,{sinister:v=null}=t,{reversed:$=null}=t,{division:y=!1}=t,b=[];const w=Object.keys(Ja.types),k=w.map((e=>Object.keys(Ja[e]))).flat(),E=k.map((e=>r(`charges.${e}`)));function x(){const e=Object.keys(Ja[d]);n(4,b=e.map((e=>({charge:e,t1:_(e),charges:C(e)}))))}function _(e){return"semy"===u?`semy_of_${e}-${p}-${h}-${g}`:p}function C(e){return"semy"===u?[]:[{charge:e,t:h,t2:f,t3:m,p:"e",size:1.5,sinister:v,reversed:$}]}return e.$$set=e=>{"charge"in e&&n(1,a=e.charge),"type"in e&&n(9,u=e.type),"category"in e&&n(0,d=e.category),"t1"in e&&n(10,p=e.t1),"t2"in e&&n(11,h=e.t2),"t3"in e&&n(12,f=e.t3),"t4"in e&&n(13,m=e.t4),"size"in e&&n(14,g=e.size),"sinister"in e&&n(15,v=e.sinister),"reversed"in e&&n(16,$=e.reversed),"division"in e&&n(2,y=e.division)},e.$$.update=()=>{130049&e.$$.dirty[0]&&x(),8&e.$$.dirty[0]&&function(e){if(e||e===l||x(),l=e,!e)return;const t=new RegExp(e.replaceAll(" ",""),"i"),r=k.filter(((e,n)=>t.test(E[n])));n(4,b=r.map((e=>({charge:e,t1:_(e),charges:C(e)}))))}(s)},[d,a,y,s,b,r,w,function(){n(3,s="")},function(e){const t=((e,t)=>{const n=o?.[i]?.[e]?.[t];return n?r(`${e}.${t}`):t})("charges",e);return"semy"===u?`${r("editor.semyOf")} ${t}`:`${r("tinctures.charge")}: ${t}`},u,p,h,f,m,g,v,$,function(){d=F(this),n(0,d),n(6,w)},function(){s=this.value,n(3,s)},e=>n(1,a=e.charge)]}class wc extends Ne{constructor(e){super(),je(this,e,bc,yc,s,{charge:1,type:9,category:0,t1:10,t2:11,t3:12,t4:13,size:14,sinister:15,reversed:16,division:2},null,[-1,-1])}}function kc(e){let t,n,r=e[2]&&e[8](e[1],e[0][e[2]-1]),i=e[2]+11&&kc(t);return{c(){n=A("span"),r=T("svg"),o=T("use"),l=P(),f&&f.c(),a=P(),c=T("svg"),u=T("use"),N(o,"href","#clone-icon"),N(r,"data-tooltip",s=t[3]("editor.clone")),N(r,"class","svelte-1rbk6h"),N(u,"href","#remove-icon"),N(c,"data-tooltip",d=t[3]("editor.remove")),N(c,"class","svelte-1rbk6h"),N(n,"class","svelte-1rbk6h")},m(e,i){L(e,n,i),x(n,r),x(r,o),x(n,l),f&&f.m(n,null),x(n,a),x(n,c),x(c,u),p||(h=[I(r,"click",t[5]),v(ri.call(null,r)),I(c,"click",t[4]),v(ri.call(null,c))],p=!0)},p(e,[t]){8&t&&s!==(s=e[3]("editor.clone"))&&N(r,"data-tooltip",s),e[0].length>1?f?f.p(e,t):(f=kc(e),f.c(),f.m(n,a)):f&&(f.d(1),f=null),8&t&&d!==(d=e[3]("editor.remove"))&&N(c,"data-tooltip",d)},i:e,o:e,d(e){e&&S(n),f&&f.d(),p=!1,i(h)}}}function Cc(e,t,n){let r;c(e,or,(e=>n(3,r=e)));let{els:i}=t,{el:o}=t,{i:s}=t;return e.$$set=e=>{"els"in e&&n(0,i=e.els),"el"in e&&n(1,o=e.el),"i"in e&&n(2,s=e.i)},[i,o,s,r,e=>{e.stopPropagation(),n(0,i=i.filter(((e,t)=>t!==s)))},e=>{e.stopPropagation();const t=JSON.parse(JSON.stringify(o));n(0,i=[...i,t])},e=>{e.stopPropagation(),n(0,[i[s],i[s+1]]=[i[s+1],i[s]],i)},e=>{e.stopPropagation(),n(0,[i[s],i[s-1]]=[i[s-1],i[s]],i)},(e,t)=>JSON.stringify(e)!==JSON.stringify(t)]}class Lc extends Ne{constructor(e){super(),je(this,e,Cc,_c,s,{els:0,el:1,i:2})}}function Sc(e){let t,n,r=e[2]("editor.counterchanged")+"";return{c(){t=A("option"),n=O(r),t.__value="counter",t.value=t.__value},m(e,r){L(e,t,r),x(t,n)},p(e,t){4&t&&r!==(r=e[2]("editor.counterchanged")+"")&&U(n,r)},d(e){e&&S(t)}}}function zc(t){let n,r,i,o,s,l,a,c,u,d,p,h,f,m=t[2]("editor.divided")+"",g=t[2]("editor.notDivided")+"",v=t[2]("editor.cropByField")+"",$=t[2]("editor.cropByDivision")+"",y=!t[1]&&Sc(t);return{c(){n=A("span"),r=O(m),i=O(":"),o=P(),s=A("select"),l=A("option"),a=O(g),c=A("option"),u=O(v),d=A("option"),p=O($),y&&y.c(),l.__value="",l.value=l.__value,c.__value="field",c.value=c.__value,d.__value="division",d.value=d.__value,void 0===t[0]&&le((()=>t[3].call(s)))},m(e,m){L(e,n,m),x(n,r),x(n,i),L(e,o,m),L(e,s,m),x(s,l),x(l,a),x(s,c),x(c,u),x(s,d),x(d,p),y&&y.m(s,null),D(s,t[0]),h||(f=I(s,"change",t[3]),h=!0)},p(e,[t]){4&t&&m!==(m=e[2]("editor.divided")+"")&&U(r,m),4&t&&g!==(g=e[2]("editor.notDivided")+"")&&U(a,g),4&t&&v!==(v=e[2]("editor.cropByField")+"")&&U(u,v),4&t&&$!==($=e[2]("editor.cropByDivision")+"")&&U(p,$),e[1]?y&&(y.d(1),y=null):y?y.p(e,t):(y=Sc(e),y.c(),y.m(s,null)),1&t&&D(s,e[0])},i:e,o:e,d(e){e&&S(n),e&&S(o),e&&S(s),y&&y.d(),h=!1,f()}}}function Ac(e,t,n){let r;c(e,or,(e=>n(2,r=e)));let{divided:i}=t,{raster:o=!1}=t;return e.$$set=e=>{"divided"in e&&n(0,i=e.divided),"raster"in e&&n(1,o=e.raster)},[i,o,r,function(){i=F(this),n(0,i)}]}class Tc extends Ne{constructor(e){super(),je(this,e,Ac,zc,s,{divided:0,raster:1})}}function Oc(e,t,n){const r=e.slice();return r[9]=t[n],r}function Pc(e,t){let n,r,i,s,l,a;return r=new fc({props:{coa:t[9],tip:t[2](t[9].division.division)}}),{key:e,first:null,c(){n=A("div"),Oe(r.$$.fragment),i=P(),N(n,"class","item"),G(n,"selected",t[0]===t[9].division.division),this.first=n},m(e,c){L(e,n,c),Pe(r,n,null),x(n,i),s=!0,l||(a=I(n,"click",(function(){o(t[3](t[9].division.division))&&t[3](t[9].division.division).apply(this,arguments)})),l=!0)},p(e,i){t=e;const o={};2&i&&(o.coa=t[9]),2&i&&(o.tip=t[2](t[9].division.division)),r.$set(o),3&i&&G(n,"selected",t[0]===t[9].division.division)},i(e){s||(be(r.$$.fragment,e),s=!0)},o(e){we(r.$$.fragment,e),s=!1},d(e){e&&S(n),Me(r),l=!1,a()}}}function Mc(e){let t,n,r=[],i=new Map,o=e[1];const s=e=>e[9];for(let t=0;tn(7,i=e)));let{division:o}=t,{t1:s}=t,{t2:l}=t,{line:a}=t;const u=["no"].concat(Object.keys(Ga.variants));return e.$$set=e=>{"division"in e&&n(0,o=e.division),"t1"in e&&n(4,s=e.t1),"t2"in e&&n(5,l=e.t2),"line"in e&&n(6,a=e.line)},e.$$.update=()=>{112&e.$$.dirty&&n(1,r=u.map((e=>({t1:s,division:{division:e,t:l,line:a}}))))},[o,r,e=>{const t=i(`divisions.${e}`);return`${i("editor.division")}: ${t}`},e=>()=>{n(0,o=e)},s,l,a]}class jc extends Ne{constructor(e){super(),je(this,e,Ic,Mc,s,{division:0,t1:4,t2:5,line:6})}}function Nc(e,t,n){const r=e.slice();return r[10]=t[n].coa,r[11]=t[n].newLine,r}function qc(e,t){let n,r,i,s,l,a;return r=new fc({props:{coa:t[10],tip:t[3](t[11])}}),{key:e,first:null,c(){n=A("div"),Oe(r.$$.fragment),i=P(),N(n,"class","item"),G(n,"selected",t[0]===t[11]),this.first=n},m(e,c){L(e,n,c),Pe(r,n,null),x(n,i),s=!0,l||(a=I(n,"click",(function(){o(t[4](t[11]))&&t[4](t[11]).apply(this,arguments)})),l=!0)},p(e,i){t=e;const o={};2&i&&(o.coa=t[10]),2&i&&(o.tip=t[3](t[11])),r.$set(o),3&i&&G(n,"selected",t[0]===t[11])},i(e){s||(be(r.$$.fragment,e),s=!0)},o(e){we(r.$$.fragment,e),s=!1},d(e){e&&S(n),Me(r),l=!1,a()}}}function Hc(e){let t,n,r,i,o=e[2]("editor.line")+"",s=[],l=new Map,a=e[1];const c=e=>e[10];for(let t=0;tn(2,i=e)));let{line:o}=t,{division:s=null}=t,{ordinary:l=null}=t,{t1:a}=t,{t2:u}=t;const d=Object.keys(Fa);return e.$$set=e=>{"line"in e&&n(0,o=e.line),"division"in e&&n(5,s=e.division),"ordinary"in e&&n(6,l=e.ordinary),"t1"in e&&n(7,a=e.t1),"t2"in e&&n(8,u=e.t2)},e.$$.update=()=>{480&e.$$.dirty&&n(1,r=s?d.map((e=>({coa:{t1:a,division:{division:s,t:u,line:e}},newLine:e}))):d.map((e=>({coa:{t1:a,ordinaries:[{ordinary:l,t:u,line:e}]},newLine:e}))))},[o,r,i,e=>`${i("editor.line")}: ${i(`lines.${e}`)}`,e=>()=>{n(0,o=e)},s,l,a,u]}class Rc extends Ne{constructor(e){super(),je(this,e,Uc,Hc,s,{line:0,division:5,ordinary:6,t1:7,t2:8})}}function Bc(e,t,n){const r=e.slice();return r[9]=t[n].coa,r[10]=t[n].ordinaryName,r}function Dc(e,t){let n,r,i,s,l,a;return r=new fc({props:{coa:t[9],tip:t[2](t[10])}}),{key:e,first:null,c(){n=A("div"),Oe(r.$$.fragment),i=P(),N(n,"class","item"),G(n,"selected",t[0]===t[10]),this.first=n},m(e,c){L(e,n,c),Pe(r,n,null),x(n,i),s=!0,l||(a=I(n,"click",(function(){o(t[3](t[10]))&&t[3](t[10]).apply(this,arguments)})),l=!0)},p(e,i){t=e;const o={};2&i&&(o.coa=t[9]),2&i&&(o.tip=t[2](t[10])),r.$set(o),3&i&&G(n,"selected",t[0]===t[10])},i(e){s||(be(r.$$.fragment,e),s=!0)},o(e){we(r.$$.fragment,e),s=!1},d(e){e&&S(n),Me(r),l=!1,a()}}}function Fc(e){let t,n,r=[],i=new Map,o=e[1];const s=e=>e[9];for(let t=0;tn(7,i=e)));let{ordinary:o}=t,{line:s}=t,{t1:l}=t,{t2:a}=t;const u=Object.keys(Va.lined).concat(Object.keys(Va.straight));return e.$$set=e=>{"ordinary"in e&&n(0,o=e.ordinary),"line"in e&&n(4,s=e.line),"t1"in e&&n(5,l=e.t1),"t2"in e&&n(6,a=e.t2)},e.$$.update=()=>{112&e.$$.dirty&&n(1,r=u.map((e=>({coa:{t1:l,ordinaries:[{ordinary:e,line:s,t:a}]},ordinaryName:e}))))},[o,r,e=>{const t=i(`ordinaries.${e}`);return`${i("editor.ordinary")}: ${t}`},e=>()=>{n(0,o=e)},s,l,a]}class Vc extends Ne{constructor(e){super(),je(this,e,Gc,Fc,s,{ordinary:0,line:4,t1:5,t2:6})}}function Jc(e,t,n){const r=e.slice();return r[1]=t[n].coa,r[9]=t[n].tip,r}function Kc(e){let t,n,r,i,s,l;return n=new fc({props:{coa:e[1],tip:e[9]}}),{c(){t=A("div"),Oe(n.$$.fragment),r=P(),N(t,"class","item"),G(t,"selected",e[0]===e[1].pattern)},m(a,c){L(a,t,c),Pe(n,t,null),x(t,r),i=!0,s||(l=I(t,"click",(function(){o(e[4](e[1].pattern))&&e[4](e[1].pattern).apply(this,arguments)})),s=!0)},p(r,i){e=r;const o={};8&i&&(o.coa=e[1]),8&i&&(o.tip=e[9]),n.$set(o),9&i&&G(t,"selected",e[0]===e[1].pattern)},i(e){i||(be(n.$$.fragment,e),i=!0)},o(e){we(n.$$.fragment,e),i=!1},d(e){e&&S(t),Me(n),s=!1,l()}}}function Zc(e){let t,n,r,i,o=e[2]("editor.pattern")+"",s=e[3],l=[];for(let t=0;twe(l[e],1,1,(()=>{l[e]=null}));return{c(){t=O(o),n=O(":\n"),r=A("div");for(let e=0;en(2,i=e)));let{pattern:o}=t,{t1:s}=t,{t2:l}=t,{size:a}=t,{coa:u}=t;const d=Object.keys(kr.patterns).filter((e=>"semy"!==e));document.getElementById("patterns").innerHTML="",function(e){Dl(e.t1),Dl(e.division?.t);for(let t of e.ordinaries||[])Dl(t.t);for(let t of e.charges||[])Dl(t.t),Dl(t.t2),Dl(t.t3)}(u);return e.$$set=e=>{"pattern"in e&&n(0,o=e.pattern),"t1"in e&&n(5,s=e.t1),"t2"in e&&n(6,l=e.t2),"size"in e&&n(7,a=e.size),"coa"in e&&n(1,u=e.coa)},e.$$.update=()=>{228&e.$$.dirty&&n(3,r=d.map((e=>{let t=`${e}-${s}-${l}`;"standard"!==a&&(t+=`-${a}`);return{coa:{pattern:e,t1:t},tip:i(`patterns.${e}`)}})))},[o,u,i,r,e=>()=>{n(0,o=e)},s,l,a]}class Xc extends Ne{constructor(e){super(),je(this,e,Wc,Zc,s,{pattern:0,t1:5,t2:6,size:7,coa:1})}}function Yc(e,t,n){const r=e.slice();return r[10]=t[n],r}function Qc(t){let n,r,i,o=t[10]+"";return{c(){n=A("option"),r=O(o),n.__value=i=t[10],n.value=n.__value},m(e,t){L(e,n,t),x(n,r)},p:e,d(e){e&&S(n)}}}function eu(e){let t,n,r,o,s,l,a,c,u,d,p,h,f,m,g,$,y,b,w,k,E,_,C,T,M,j,q,H,F=e[1]("editor.positions")+"",G=e[1]("editor.sinister")+"",V=e[1]("editor.reversed")+"",J=Ba,K=[];for(let t=0;tTe(m,"checked",Z)));let Y={};return void 0!==e[0].reversed&&(Y.checked=e[0].reversed),C=new ac({props:Y}),ne.push((()=>Te(C,"checked",X))),{c(){t=A("span"),n=O(F),r=O(":\n "),o=A("input"),s=P(),l=A("select");for(let e=0;ee[6].call(l))),N(t,"data-tooltip",a=e[1]("tooltip.positions")),B(d,"margin-left","1em"),N(d,"class","svelte-gqtmdl"),N(u,"data-tooltip",$=e[1]("tooltip.sinister")),N(u,"class","svelte-gqtmdl"),B(w,"margin-left","1em"),N(w,"class","svelte-gqtmdl"),N(b,"data-tooltip",M=e[1]("tooltip.reversed")),N(b,"class","svelte-gqtmdl")},m(i,a){L(i,t,a),x(t,n),x(t,r),x(t,o),R(o,e[0].p),x(t,s),x(t,l);for(let e=0;eg=!1))),m.$set(i),(!j||2&r&&$!==($=e[1]("tooltip.sinister")))&&N(u,"data-tooltip",$),(!j||2&r)&&V!==(V=e[1]("editor.reversed")+"")&&U(k,V);const s={};!T&&1&r&&(T=!0,s.checked=e[0].reversed,ae((()=>T=!1))),C.$set(s),(!j||2&r&&M!==(M=e[1]("tooltip.reversed")))&&N(b,"data-tooltip",M)},i(e){j||(be(m.$$.fragment,e),be(C.$$.fragment,e),j=!0)},o(e){we(m.$$.fragment,e),we(C.$$.fragment,e),j=!1},d(e){e&&S(t),z(K,e),e&&S(c),e&&S(u),Me(m),e&&S(y),e&&S(b),Me(C),q=!1,i(H)}}}function tu(e,t,n){let r,i;c(e,Ur,(e=>n(9,r=e))),c(e,or,(e=>n(1,i=e)));let{charge:o}=t;function s(){g(Ur,r.transform=`rotate(${o.angle||0}) translate(${o.x||0}, ${o.y||0})`,r),g(Ur,r.positions=o.p,r)}return e.$$set=e=>{"charge"in e&&n(0,o=e.charge)},[o,i,s,function(){g(Ur,r.positions=0,r)},function(){s(),n(0,o.size=Wa(o.p),o)},function(){o.p=this.value,n(0,o)},function(){o.p=F(this),n(0,o)},function(t){e.$$.not_equal(o.sinister,t)&&(o.sinister=t,n(0,o))},function(t){e.$$.not_equal(o.reversed,t)&&(o.reversed=t,n(0,o))}]}class nu extends Ne{constructor(e){super(),je(this,e,tu,eu,s,{charge:0})}}function ru(e){let t,n,r,o,s,l,a,c,u,d,p,h,f,m,g,$,y,b,w,k,E,_,C,z,T,M,j,q,B,D,F,G,V,J,K,Z,W,X,Y,Q,ee=e[1]("editor.size")+"",te=e[1]("editor.rotation")+"",re=e[1]("editor.shift")+"",ie=e[1]("editor.step")+"";function oe(t){e[10](t)}let se={};return void 0!==e[3]&&(se.checked=e[3]),K=new ac({props:se}),ne.push((()=>Te(K,"checked",oe))),{c(){t=A("span"),n=O(ee),r=O(":\n "),o=A("input"),a=P(),c=A("span"),u=A("span"),d=O(te),p=O(":"),h=P(),f=A("input"),g=P(),$=A("span"),y=A("span"),b=O(re),w=O(":"),k=P(),E=A("input"),_=P(),C=A("input"),T=P(),M=A("span"),j=A("span"),q=O(ie),B=O(":"),D=P(),F=A("input"),V=P(),J=A("span"),Oe(K.$$.fragment),N(o,"type","number"),N(o,"min","1"),N(o,"max","500"),N(o,"step","1"),o.value=s=100*e[0].size|0,N(o,"class","svelte-wggx8m"),N(t,"data-tooltip",l=e[1]("tooltip.size")),N(u,"class","svelte-wggx8m"),N(f,"type","number"),N(f,"min","-180"),N(f,"max","180"),N(f,"class","svelte-wggx8m"),N(c,"data-tooltip",m=e[1]("tooltip.rotation")),N(c,"class","svelte-wggx8m"),N(y,"class","svelte-wggx8m"),N(E,"type","number"),N(E,"min","-100"),N(E,"max","100"),N(E,"step",e[2]),N(E,"class","svelte-wggx8m"),N(C,"type","number"),N(C,"min","-100"),N(C,"max","100"),N(C,"step",e[2]),N(C,"class","svelte-wggx8m"),N($,"data-tooltip",z=e[1]("tooltip.shift")),N($,"class","svelte-wggx8m"),N(j,"class","svelte-wggx8m"),N(F,"type","number"),N(F,"min","1"),N(F,"max","50"),N(F,"class","svelte-wggx8m"),N(M,"data-tooltip",G=e[1]("tooltip.step")),N(M,"class","svelte-wggx8m"),N(J,"data-tooltip",W=e[1]("tooltip.showGrid"))},m(i,s){L(i,t,s),x(t,n),x(t,r),x(t,o),L(i,a,s),L(i,c,s),x(c,u),x(u,d),x(u,p),x(c,h),x(c,f),R(f,e[0].angle),L(i,g,s),L(i,$,s),x($,y),x(y,b),x(y,w),x($,k),x($,E),R(E,e[0].x),x($,_),x($,C),R(C,e[0].y),L(i,T,s),L(i,M,s),x(M,j),x(j,q),x(j,B),x(M,D),x(M,F),R(F,e[2]),L(i,V,s),L(i,J,s),Pe(K,J,null),X=!0,Y||(Q=[I(o,"input",e[4]),v(ri.call(null,t)),I(f,"input",e[6]),I(f,"change",e[5]),v(ri.call(null,c)),I(E,"input",e[7]),I(C,"input",e[8]),v(ri.call(null,$)),I(F,"input",e[9]),v(ri.call(null,M)),v(ri.call(null,J))],Y=!0)},p(e,[r]){(!X||2&r)&&ee!==(ee=e[1]("editor.size")+"")&&U(n,ee),(!X||1&r&&s!==(s=100*e[0].size|0))&&(o.value=s),(!X||2&r&&l!==(l=e[1]("tooltip.size")))&&N(t,"data-tooltip",l),(!X||2&r)&&te!==(te=e[1]("editor.rotation")+"")&&U(d,te),1&r&&H(f.value)!==e[0].angle&&R(f,e[0].angle),(!X||2&r&&m!==(m=e[1]("tooltip.rotation")))&&N(c,"data-tooltip",m),(!X||2&r)&&re!==(re=e[1]("editor.shift")+"")&&U(b,re),(!X||4&r)&&N(E,"step",e[2]),1&r&&H(E.value)!==e[0].x&&R(E,e[0].x),(!X||4&r)&&N(C,"step",e[2]),1&r&&H(C.value)!==e[0].y&&R(C,e[0].y),(!X||2&r&&z!==(z=e[1]("tooltip.shift")))&&N($,"data-tooltip",z),(!X||2&r)&&ie!==(ie=e[1]("editor.step")+"")&&U(q,ie),4&r&&H(F.value)!==e[2]&&R(F,e[2]),(!X||2&r&&G!==(G=e[1]("tooltip.step")))&&N(M,"data-tooltip",G);const i={};!Z&&8&r&&(Z=!0,i.checked=e[3],ae((()=>Z=!1))),K.$set(i),(!X||2&r&&W!==(W=e[1]("tooltip.showGrid")))&&N(J,"data-tooltip",W)},i(e){X||(be(K.$$.fragment,e),X=!0)},o(e){we(K.$$.fragment,e),X=!1},d(e){e&&S(t),e&&S(a),e&&S(c),e&&S(g),e&&S($),e&&S(T),e&&S(M),e&&S(V),e&&S(J),Me(K),Y=!1,i(Q)}}}function iu(e,t,n){let r,i,o,s;c(e,Ur,(e=>n(11,r=e))),c(e,or,(e=>n(1,i=e))),c(e,Ir,(e=>n(2,o=e))),c(e,jr,(e=>n(3,s=e)));let{element:l}=t;return e.$$set=e=>{"element"in e&&n(0,l=e.element)},[l,i,o,s,e=>{const t=e.target;n(0,l.size=parseInt(t.value)/100,l)},()=>{g(Ur,r.transform=`rotate(${l.angle||0})`,r)},function(){l.angle=H(this.value),n(0,l)},function(){l.x=H(this.value),n(0,l)},function(){l.y=H(this.value),n(0,l)},function(){o=H(this.value),Ir.set(o)},function(e){s=e,jr.set(s)}]}class ou extends Ne{constructor(e){super(),je(this,e,iu,ru,s,{element:0})}}function su(t){let n,r,i,o,s,l,a,c,u,d,p,h,f,m,g,v,$,y,b,w=t[1]("editor.size")+"",k=t[1]("editor.bigger")+"",E=t[1]("editor.big")+"",_=t[1]("editor.standard")+"",C=t[1]("editor.small")+"",z=t[1]("editor.smaller")+"",T=t[1]("editor.smallest")+"";return{c(){n=A("span"),r=O(w),i=O(":"),o=P(),s=A("select"),l=A("option"),a=O(k),c=A("option"),u=O(E),d=A("option"),p=O(_),h=A("option"),f=O(C),m=A("option"),g=O(z),v=A("option"),$=O(T),B(n,"margin-left","1em"),l.__value="bigger",l.value=l.__value,c.__value="big",c.value=c.__value,d.__value="standard",d.value=d.__value,h.__value="small",h.value=h.__value,m.__value="smaller",m.value=m.__value,v.__value="smallest",v.value=v.__value,void 0===t[0]&&le((()=>t[2].call(s)))},m(e,w){L(e,n,w),x(n,r),x(n,i),L(e,o,w),L(e,s,w),x(s,l),x(l,a),x(s,c),x(c,u),x(s,d),x(d,p),x(s,h),x(h,f),x(s,m),x(m,g),x(s,v),x(v,$),D(s,t[0]),y||(b=I(s,"change",t[2]),y=!0)},p(e,[t]){2&t&&w!==(w=e[1]("editor.size")+"")&&U(r,w),2&t&&k!==(k=e[1]("editor.bigger")+"")&&U(a,k),2&t&&E!==(E=e[1]("editor.big")+"")&&U(u,E),2&t&&_!==(_=e[1]("editor.standard")+"")&&U(p,_),2&t&&C!==(C=e[1]("editor.small")+"")&&U(f,C),2&t&&z!==(z=e[1]("editor.smaller")+"")&&U(g,z),2&t&&T!==(T=e[1]("editor.smallest")+"")&&U($,T),1&t&&D(s,e[0])},i:e,o:e,d(e){e&&S(n),e&&S(o),e&&S(s),y=!1,b()}}}function lu(e,t,n){let r;c(e,or,(e=>n(1,r=e)));let{size:i}=t;return e.$$set=e=>{"size"in e&&n(0,i=e.size)},[i,r,function(){i=F(this),n(0,i)}]}class au extends Ne{constructor(e){super(),je(this,e,lu,su,s,{size:0})}}function cu(e){let t,n,r,i,o,s,l,a,c,u=e[1]("editor.color")+"",d=e[0].ordinary&&uu(e);return{c(){t=A("span"),n=O(u),r=O(":"),i=P(),o=A("input"),s=P(),d&&d.c(),l=M(),B(t,"margin-left","1em"),N(o,"type","color"),N(o,"class","svelte-ex5ti9")},m(u,p){L(u,t,p),x(t,n),x(t,r),L(u,i,p),L(u,o,p),R(o,e[0].stroke),L(u,s,p),d&&d.m(u,p),L(u,l,p),a||(c=I(o,"input",e[3]),a=!0)},p(e,t){2&t&&u!==(u=e[1]("editor.color")+"")&&U(n,u),1&t&&R(o,e[0].stroke),e[0].ordinary?d?d.p(e,t):(d=uu(e),d.c(),d.m(l.parentNode,l)):d&&(d.d(1),d=null)},d(e){e&&S(t),e&&S(i),e&&S(o),e&&S(s),d&&d.d(e),e&&S(l),a=!1,c()}}}function uu(e){let t,n,r,i,o,s,l,a=e[1]("editor.width")+"";return{c(){t=A("span"),n=O(a),r=O(":"),i=P(),o=A("input"),B(t,"margin-left","1em"),N(o,"type","number"),N(o,"min",".1"),N(o,"max","99"),N(o,"step",".1"),N(o,"class","svelte-ex5ti9")},m(a,c){L(a,t,c),x(t,n),x(t,r),L(a,i,c),L(a,o,c),R(o,e[0].strokeWidth),s||(l=I(o,"input",e[4]),s=!0)},p(e,t){2&t&&a!==(a=e[1]("editor.width")+"")&&U(n,a),1&t&&H(o.value)!==e[0].strokeWidth&&R(o,e[0].strokeWidth)},d(e){e&&S(t),e&&S(i),e&&S(o),s=!1,l()}}}function du(e){let t,n,r,i,o,s,l,a,c,u,d,p,h=e[1]("editor.stroke")+"";function f(t){e[2](t)}let m={};void 0!==e[0].showStroke&&(m.checked=e[0].showStroke),s=new ac({props:m}),ne.push((()=>Te(s,"checked",f)));let g=e[0].showStroke&&cu(e);return{c(){t=A("span"),n=A("span"),r=O(h),i=O(":"),o=P(),Oe(s.$$.fragment),a=P(),g&&g.c(),N(t,"data-tooltip",c=e[1]("tooltip.stroke"))},m(e,l){L(e,t,l),x(t,n),x(n,r),x(n,i),x(t,o),Pe(s,t,null),x(t,a),g&&g.m(t,null),u=!0,d||(p=v(ri.call(null,t)),d=!0)},p(e,[n]){(!u||2&n)&&h!==(h=e[1]("editor.stroke")+"")&&U(r,h);const i={};!l&&1&n&&(l=!0,i.checked=e[0].showStroke,ae((()=>l=!1))),s.$set(i),e[0].showStroke?g?g.p(e,n):(g=cu(e),g.c(),g.m(t,null)):g&&(g.d(1),g=null),(!u||2&n&&c!==(c=e[1]("tooltip.stroke")))&&N(t,"data-tooltip",c)},i(e){u||(be(s.$$.fragment,e),u=!0)},o(e){we(s.$$.fragment,e),u=!1},d(e){e&&S(t),Me(s),g&&g.d(),d=!1,p()}}}function pu(e,t,n){let r;c(e,or,(e=>n(1,r=e)));let{element:i}=t;return e.$$set=e=>{"element"in e&&n(0,i=e.element)},[i,r,function(t){e.$$.not_equal(i.showStroke,t)&&(i.showStroke=t,n(0,i))},function(){i.stroke=this.value,n(0,i)},function(){i.strokeWidth=H(this.value),n(0,i)}]}class hu extends Ne{constructor(e){super(),je(this,e,pu,du,s,{element:0})}}function fu(e,t,n){const r=e.slice();return r[13]=t[n].coa,r[14]=t[n].tip,r[15]=t,r[16]=n,r}function mu(e){let t,n,r,o,s;function l(){return e[8](e[13])}return{c(){t=T("svg"),n=T("use"),N(n,"href","#undo-icon"),N(t,"class","undo svelte-1qdtip9"),N(t,"data-tooltip",r=e[3]("tooltip.undoColorChange"))},m(e,r){L(e,t,r),x(t,n),o||(s=[I(t,"click",l),v(ri.call(null,t))],o=!0)},p(n,i){e=n,8&i&&r!==(r=e[3]("tooltip.undoColorChange"))&&N(t,"data-tooltip",r)},d(e){e&&S(t),o=!1,i(s)}}}function gu(e){let t,n,r,o,s,l,a,c,u,d,p,h,f,m,g,$,y,b=e[2](e[13].t1);function w(){return e[7](e[13])}r=new fc({props:{coa:e[13],tip:e[14]}});let k=b&&mu(e);function E(){e[9].call(c,e[13])}return{c(){t=A("div"),n=A("div"),Oe(r.$$.fragment),o=P(),s=A("div"),k&&k.c(),l=P(),a=A("div"),c=A("input"),u=P(),d=T("svg"),p=T("use"),m=P(),N(n,"class","item"),G(n,"selected",e[0]===e[13].t1),N(c,"type","color"),N(c,"class","svelte-1qdtip9"),N(p,"href","#pencil-icon"),N(d,"class","edit svelte-1qdtip9"),N(d,"data-tooltip",h=e[3]("tooltip.changeColor")),N(s,"class","controls svelte-1qdtip9"),N(t,"class","wrapper svelte-1qdtip9")},m(i,h){L(i,t,h),x(t,n),Pe(r,n,null),x(t,o),x(t,s),k&&k.m(s,null),x(s,l),x(s,a),x(a,c),R(c,e[1][e[13].t1]),x(a,u),x(a,d),x(d,p),x(t,m),g=!0,$||(y=[I(n,"click",w),I(c,"input",E),I(d,"click",$u),v(f=ri.call(null,d))],$=!0)},p(t,r){e=t,17&r&&G(n,"selected",e[0]===e[13].t1),4&r&&(b=e[2](e[13].t1)),b?k?k.p(e,r):(k=mu(e),k.c(),k.m(s,l)):k&&(k.d(1),k=null),18&r&&R(c,e[1][e[13].t1]),(!g||8&r&&h!==(h=e[3]("tooltip.changeColor")))&&N(d,"data-tooltip",h)},i(e){g||(be(r.$$.fragment,e),g=!0)},o(e){we(r.$$.fragment,e),g=!1},d(e){e&&S(t),Me(r),k&&k.d(),$=!1,i(y)}}}function vu(e){let t,n,r,i,o=e[3]("editor.tincture")+"",s=e[4],l=[];for(let t=0;twe(l[e],1,1,(()=>{l[e]=null}));return{c(){t=O(o),n=O(":\n"),r=A("div");for(let e=0;en(1,i=e))),c(e,or,(e=>n(3,o=e))),c(e,Jn,(e=>n(10,s=e))),c(e,Ln,(e=>n(11,l=e))),c(e,Ar,(e=>n(12,a=e)));let{t1:u}=t;const d=["metals","colours","stains"].map((e=>Object.keys(a[e]).map((t=>{const n=l[s]?.tinctures?.[t]?o(`tinctures.${t}`):t;return{coa:{t1:t},tip:`${o(`editor.${e.slice(0,-1)}`)}: ${n}`}})))).flat(),p=e=>{n(0,u=e)};function h(e){g(zr,i[e]=wr[e],i)}return e.$$set=e=>{"t1"in e&&n(0,u=e.t1)},e.$$.update=()=>{2&e.$$.dirty&&localStorage.setItem("colors",JSON.stringify(i)),2&e.$$.dirty&&n(2,r=e=>wr[e]&&i[e]!==wr[e])},[u,i,r,o,d,p,h,e=>p(e.t1),e=>h(e.t1),function(e){i[e.t1]=this.value,zr.set(i),n(4,d)}]}class bu extends Ne{constructor(e){super(),je(this,e,yu,vu,s,{t1:0})}}function wu(t){let n,r,i,o,s,l,a,c,u,d,p,h=t[1]("editor.type")+"",f=t[1]("editor.tincture")+"",m=t[1]("editor.pattern")+"",g=t[1]("editor.semy")+"";return{c(){n=O(h),r=P(),i=A("select"),o=A("option"),s=O(f),l=A("option"),a=O(m),c=A("option"),u=O(g),o.__value="tincture",o.value=o.__value,l.__value="pattern",l.value=l.__value,c.__value="semy",c.value=c.__value,void 0===t[0]&&le((()=>t[2].call(i)))},m(e,h){L(e,n,h),L(e,r,h),L(e,i,h),x(i,o),x(o,s),x(i,l),x(l,a),x(i,c),x(c,u),D(i,t[0]),d||(p=I(i,"change",t[2]),d=!0)},p(e,[t]){2&t&&h!==(h=e[1]("editor.type")+"")&&U(n,h),2&t&&f!==(f=e[1]("editor.tincture")+"")&&U(s,f),2&t&&m!==(m=e[1]("editor.pattern")+"")&&U(a,m),2&t&&g!==(g=e[1]("editor.semy")+"")&&U(u,g),1&t&&D(i,e[0])},i:e,o:e,d(e){e&&S(n),e&&S(r),e&&S(i),d=!1,p()}}}function ku(e,t,n){let r;c(e,or,(e=>n(1,r=e)));let{type:i}=t;return e.$$set=e=>{"type"in e&&n(0,i=e.type)},[i,r,function(){i=F(this),n(0,i)}]}class Eu extends Ne{constructor(e){super(),je(this,e,ku,wu,s,{type:0})}}const{Boolean:xu}=Ce;function _u(e,t,n){const r=e.slice();return r[61]=t[n],r[62]=t,r[63]=n,r}function Cu(e,t,n){const r=e.slice();return r[64]=t[n],r[65]=t,r[63]=n,r}function Lu(e){let t,n;return t=new Ra({props:{coa:e[1],i:"Edit"}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};2&n[0]&&(r.coa=e[1]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function Su(e){let t,n=e[2]("tinctures.field")+"";return{c(){t=O(n)},m(e,n){L(e,t,n)},p(e,r){4&r[0]&&n!==(n=e[2]("tinctures.field")+"")&&U(t,n)},d(e){e&&S(t)}}}function zu(e){let t,n,r,i,o,s,l,a,c,u,d,p,h,f;function m(t){e[17](t)}let g={};void 0!==e[0].field.type&&(g.type=e[0].field.type),r=new Eu({props:g}),ne.push((()=>Te(r,"type",m)));let v="tincture"!==e[0].field.type&&Au(e);function $(t){e[19](t)}let y={};void 0!==e[0].field.t1&&(y.t1=e[0].field.t1),a=new bu({props:y}),ne.push((()=>Te(a,"t1",$)));let b="tincture"!==e[0].field.type&&Tu(e),w="pattern"===e[0].field.type&&Ou(e),k="semy"===e[0].field.type&&Pu(e);return{c(){t=A("div"),n=A("div"),Oe(r.$$.fragment),o=P(),v&&v.c(),s=P(),l=A("div"),Oe(a.$$.fragment),u=P(),b&&b.c(),d=P(),w&&w.c(),p=P(),k&&k.c(),N(n,"class","subsection svelte-1k0wz0q"),N(l,"class","subsection svelte-1k0wz0q"),N(t,"class","panel svelte-1k0wz0q")},m(e,i){L(e,t,i),x(t,n),Pe(r,n,null),x(n,o),v&&v.m(n,null),x(t,s),x(t,l),Pe(a,l,null),x(t,u),b&&b.m(t,null),x(t,d),w&&w.m(t,null),x(t,p),k&&k.m(t,null),f=!0},p(e,o){const s={};!i&&1&o[0]&&(i=!0,s.type=e[0].field.type,ae((()=>i=!1))),r.$set(s),"tincture"!==e[0].field.type?v?(v.p(e,o),1&o[0]&&be(v,1)):(v=Au(e),v.c(),be(v,1),v.m(n,null)):v&&($e(),we(v,1,1,(()=>{v=null})),ye());const l={};!c&&1&o[0]&&(c=!0,l.t1=e[0].field.t1,ae((()=>c=!1))),a.$set(l),"tincture"!==e[0].field.type?b?(b.p(e,o),1&o[0]&&be(b,1)):(b=Tu(e),b.c(),be(b,1),b.m(t,d)):b&&($e(),we(b,1,1,(()=>{b=null})),ye()),"pattern"===e[0].field.type?w?(w.p(e,o),1&o[0]&&be(w,1)):(w=Ou(e),w.c(),be(w,1),w.m(t,p)):w&&($e(),we(w,1,1,(()=>{w=null})),ye()),"semy"===e[0].field.type?k?(k.p(e,o),1&o[0]&&be(k,1)):(k=Pu(e),k.c(),be(k,1),k.m(t,null)):k&&($e(),we(k,1,1,(()=>{k=null})),ye())},i(e){f||(be(r.$$.fragment,e),be(v),be(a.$$.fragment,e),be(b),be(w),be(k),le((()=>{h||(h=_e(t,ai,{},!0)),h.run(1)})),f=!0)},o(e){we(r.$$.fragment,e),we(v),we(a.$$.fragment,e),we(b),we(w),we(k),h||(h=_e(t,ai,{},!1)),h.run(0),f=!1},d(e){e&&S(t),Me(r),v&&v.d(),Me(a),b&&b.d(),w&&w.d(),k&&k.d(),e&&h&&h.end()}}}function Au(e){let t,n,r;function i(t){e[18](t)}let o={};return void 0!==e[0].field.size&&(o.size=e[0].field.size),t=new au({props:o}),ne.push((()=>Te(t,"size",i))),{c(){Oe(t.$$.fragment)},m(e,n){Pe(t,e,n),r=!0},p(e,r){const i={};!n&&1&r[0]&&(n=!0,i.size=e[0].field.size,ae((()=>n=!1))),t.$set(i)},i(e){r||(be(t.$$.fragment,e),r=!0)},o(e){we(t.$$.fragment,e),r=!1},d(e){Me(t,e)}}}function Tu(e){let t,n,r,i;function o(t){e[20](t)}let s={};return void 0!==e[0].field.t2&&(s.t1=e[0].field.t2),n=new bu({props:s}),ne.push((()=>Te(n,"t1",o))),{c(){t=A("div"),Oe(n.$$.fragment),N(t,"class","subsection svelte-1k0wz0q")},m(e,r){L(e,t,r),Pe(n,t,null),i=!0},p(e,t){const i={};!r&&1&t[0]&&(r=!0,i.t1=e[0].field.t2,ae((()=>r=!1))),n.$set(i)},i(e){i||(be(n.$$.fragment,e),i=!0)},o(e){we(n.$$.fragment,e),i=!1},d(e){e&&S(t),Me(n)}}}function Ou(e){let t,n,r,i;function o(t){e[21](t)}let s={t1:e[0].field.t1,t2:e[0].field.t2,size:e[0].field.size,coa:e[1]};return void 0!==e[0].field.pattern&&(s.pattern=e[0].field.pattern),n=new Xc({props:s}),ne.push((()=>Te(n,"pattern",o))),{c(){t=A("div"),Oe(n.$$.fragment),N(t,"class","subsection svelte-1k0wz0q")},m(e,r){L(e,t,r),Pe(n,t,null),i=!0},p(e,t){const i={};1&t[0]&&(i.t1=e[0].field.t1),1&t[0]&&(i.t2=e[0].field.t2),1&t[0]&&(i.size=e[0].field.size),2&t[0]&&(i.coa=e[1]),!r&&1&t[0]&&(r=!0,i.pattern=e[0].field.pattern,ae((()=>r=!1))),n.$set(i)},i(e){i||(be(n.$$.fragment,e),i=!0)},o(e){we(n.$$.fragment,e),i=!1},d(e){e&&S(t),Me(n)}}}function Pu(e){let t,n,r,i,o;function s(t){e[22](t)}function l(t){e[23](t)}let a={type:"semy",t1:e[0].field.t1,t2:e[0].field.t2,size:e[0].field.size};return void 0!==e[0].field.charge&&(a.charge=e[0].field.charge),void 0!==e[0].field.semy&&(a.category=e[0].field.semy),n=new wc({props:a}),ne.push((()=>Te(n,"charge",s))),ne.push((()=>Te(n,"category",l))),{c(){t=A("div"),Oe(n.$$.fragment),N(t,"class","subsection svelte-1k0wz0q")},m(e,r){L(e,t,r),Pe(n,t,null),o=!0},p(e,t){const o={};1&t[0]&&(o.t1=e[0].field.t1),1&t[0]&&(o.t2=e[0].field.t2),1&t[0]&&(o.size=e[0].field.size),!r&&1&t[0]&&(r=!0,o.charge=e[0].field.charge,ae((()=>r=!1))),!i&&1&t[0]&&(i=!0,o.category=e[0].field.semy,ae((()=>i=!1))),n.$set(o)},i(e){o||(be(n.$$.fragment,e),o=!0)},o(e){we(n.$$.fragment,e),o=!1},d(e){e&&S(t),Me(n)}}}function Mu(e){let t,n,r,i=e[2]("tinctures.division")+"",o=e[4]("divisions",e[0].division.division)+"";return{c(){t=O(i),n=O(": "),r=O(o)},m(e,i){L(e,t,i),L(e,n,i),L(e,r,i)},p(e,n){4&n[0]&&i!==(i=e[2]("tinctures.division")+"")&&U(t,i),17&n[0]&&o!==(o=e[4]("divisions",e[0].division.division)+"")&&U(r,o)},d(e){e&&S(t),e&&S(n),e&&S(r)}}}function Iu(e){let t,n,r,i,o,s,l,a;function c(t){e[24](t)}let u={t1:e[1].t1,t2:e[1].division?e[1].division.t:e[0].division.t1,line:e[0].division.line};void 0!==e[0].division.division&&(u.division=e[0].division.division),r=new jc({props:u}),ne.push((()=>Te(r,"division",c)));let d=Ga[e[1].division?.division]&&ju(e),p=e[1].division&&Nu(e);return{c(){t=A("div"),n=A("div"),Oe(r.$$.fragment),o=P(),d&&d.c(),s=P(),p&&p.c(),N(n,"class","subsection svelte-1k0wz0q"),N(t,"class","panel svelte-1k0wz0q")},m(e,i){L(e,t,i),x(t,n),Pe(r,n,null),x(t,o),d&&d.m(t,null),x(t,s),p&&p.m(t,null),a=!0},p(e,n){const o={};2&n[0]&&(o.t1=e[1].t1),3&n[0]&&(o.t2=e[1].division?e[1].division.t:e[0].division.t1),1&n[0]&&(o.line=e[0].division.line),!i&&1&n[0]&&(i=!0,o.division=e[0].division.division,ae((()=>i=!1))),r.$set(o),Ga[e[1].division?.division]?d?(d.p(e,n),2&n[0]&&be(d,1)):(d=ju(e),d.c(),be(d,1),d.m(t,s)):d&&($e(),we(d,1,1,(()=>{d=null})),ye()),e[1].division?p?(p.p(e,n),2&n[0]&&be(p,1)):(p=Nu(e),p.c(),be(p,1),p.m(t,null)):p&&($e(),we(p,1,1,(()=>{p=null})),ye())},i(e){a||(be(r.$$.fragment,e),be(d),be(p),le((()=>{l||(l=_e(t,ai,{},!0)),l.run(1)})),a=!0)},o(e){we(r.$$.fragment,e),we(d),we(p),l||(l=_e(t,ai,{},!1)),l.run(0),a=!1},d(e){e&&S(t),Me(r),d&&d.d(),p&&p.d(),e&&l&&l.end()}}}function ju(e){let t,n,r,i;function o(t){e[25](t)}let s={division:e[0].division.division,t1:e[1].t1,t2:e[1].division?e[1].division.t:e[0].division.t1};return void 0!==e[0].division.line&&(s.line=e[0].division.line),n=new Rc({props:s}),ne.push((()=>Te(n,"line",o))),{c(){t=A("div"),Oe(n.$$.fragment),N(t,"class","subsection svelte-1k0wz0q")},m(e,r){L(e,t,r),Pe(n,t,null),i=!0},p(e,t){const i={};1&t[0]&&(i.division=e[0].division.division),2&t[0]&&(i.t1=e[1].t1),3&t[0]&&(i.t2=e[1].division?e[1].division.t:e[0].division.t1),!r&&1&t[0]&&(r=!0,i.line=e[0].division.line,ae((()=>r=!1))),n.$set(i)},i(e){i||(be(n.$$.fragment,e),i=!0)},o(e){we(n.$$.fragment,e),i=!1},d(e){e&&S(t),Me(n)}}}function Nu(e){let t,n,r,i,o,s,l,a,c,u,d,p,h;function f(t){e[26](t)}let m={};void 0!==e[0].division.type&&(m.type=e[0].division.type),n=new Eu({props:m}),ne.push((()=>Te(n,"type",f)));let g="tincture"!==e[0].division.type&&qu(e);function v(t){e[28](t)}let $={};void 0!==e[0].division.t1&&($.t1=e[0].division.t1),l=new bu({props:$}),ne.push((()=>Te(l,"t1",v)));let y="tincture"!==e[0].division.type&&Hu(e),b="pattern"===e[0].division.type&&Uu(e),w="semy"===e[0].division.type&&Ru(e);return{c(){t=A("div"),Oe(n.$$.fragment),i=P(),g&&g.c(),o=P(),s=A("div"),Oe(l.$$.fragment),c=P(),y&&y.c(),u=P(),b&&b.c(),d=P(),w&&w.c(),p=M(),N(t,"class","subsection svelte-1k0wz0q"),N(s,"class","subsection svelte-1k0wz0q")},m(e,r){L(e,t,r),Pe(n,t,null),x(t,i),g&&g.m(t,null),L(e,o,r),L(e,s,r),Pe(l,s,null),L(e,c,r),y&&y.m(e,r),L(e,u,r),b&&b.m(e,r),L(e,d,r),w&&w.m(e,r),L(e,p,r),h=!0},p(e,i){const o={};!r&&1&i[0]&&(r=!0,o.type=e[0].division.type,ae((()=>r=!1))),n.$set(o),"tincture"!==e[0].division.type?g?(g.p(e,i),1&i[0]&&be(g,1)):(g=qu(e),g.c(),be(g,1),g.m(t,null)):g&&($e(),we(g,1,1,(()=>{g=null})),ye());const s={};!a&&1&i[0]&&(a=!0,s.t1=e[0].division.t1,ae((()=>a=!1))),l.$set(s),"tincture"!==e[0].division.type?y?(y.p(e,i),1&i[0]&&be(y,1)):(y=Hu(e),y.c(),be(y,1),y.m(u.parentNode,u)):y&&($e(),we(y,1,1,(()=>{y=null})),ye()),"pattern"===e[0].division.type?b?(b.p(e,i),1&i[0]&&be(b,1)):(b=Uu(e),b.c(),be(b,1),b.m(d.parentNode,d)):b&&($e(),we(b,1,1,(()=>{b=null})),ye()),"semy"===e[0].division.type?w?(w.p(e,i),1&i[0]&&be(w,1)):(w=Ru(e),w.c(),be(w,1),w.m(p.parentNode,p)):w&&($e(),we(w,1,1,(()=>{w=null})),ye())},i(e){h||(be(n.$$.fragment,e),be(g),be(l.$$.fragment,e),be(y),be(b),be(w),h=!0)},o(e){we(n.$$.fragment,e),we(g),we(l.$$.fragment,e),we(y),we(b),we(w),h=!1},d(e){e&&S(t),Me(n),g&&g.d(),e&&S(o),e&&S(s),Me(l),e&&S(c),y&&y.d(e),e&&S(u),b&&b.d(e),e&&S(d),w&&w.d(e),e&&S(p)}}}function qu(e){let t,n,r;function i(t){e[27](t)}let o={};return void 0!==e[0].division.size&&(o.size=e[0].division.size),t=new au({props:o}),ne.push((()=>Te(t,"size",i))),{c(){Oe(t.$$.fragment)},m(e,n){Pe(t,e,n),r=!0},p(e,r){const i={};!n&&1&r[0]&&(n=!0,i.size=e[0].division.size,ae((()=>n=!1))),t.$set(i)},i(e){r||(be(t.$$.fragment,e),r=!0)},o(e){we(t.$$.fragment,e),r=!1},d(e){Me(t,e)}}}function Hu(e){let t,n,r,i;function o(t){e[29](t)}let s={};return void 0!==e[0].division.t2&&(s.t1=e[0].division.t2),n=new bu({props:s}),ne.push((()=>Te(n,"t1",o))),{c(){t=A("div"),Oe(n.$$.fragment),N(t,"class","subsection svelte-1k0wz0q")},m(e,r){L(e,t,r),Pe(n,t,null),i=!0},p(e,t){const i={};!r&&1&t[0]&&(r=!0,i.t1=e[0].division.t2,ae((()=>r=!1))),n.$set(i)},i(e){i||(be(n.$$.fragment,e),i=!0)},o(e){we(n.$$.fragment,e),i=!1},d(e){e&&S(t),Me(n)}}}function Uu(e){let t,n,r,i;function o(t){e[30](t)}let s={t1:e[0].division.t1,t2:e[0].division.t2,size:e[0].division.size,coa:e[1]};return void 0!==e[0].division.pattern&&(s.pattern=e[0].division.pattern),n=new Xc({props:s}),ne.push((()=>Te(n,"pattern",o))),{c(){t=A("div"),Oe(n.$$.fragment),N(t,"class","subsection svelte-1k0wz0q")},m(e,r){L(e,t,r),Pe(n,t,null),i=!0},p(e,t){const i={};1&t[0]&&(i.t1=e[0].division.t1),1&t[0]&&(i.t2=e[0].division.t2),1&t[0]&&(i.size=e[0].division.size),2&t[0]&&(i.coa=e[1]),!r&&1&t[0]&&(r=!0,i.pattern=e[0].division.pattern,ae((()=>r=!1))),n.$set(i)},i(e){i||(be(n.$$.fragment,e),i=!0)},o(e){we(n.$$.fragment,e),i=!1},d(e){e&&S(t),Me(n)}}}function Ru(e){let t,n,r,i,o;function s(t){e[31](t)}function l(t){e[32](t)}let a={type:"semy",t1:e[0].division.t1,t2:e[0].division.t2,size:e[0].division.size};return void 0!==e[0].division.charge&&(a.charge=e[0].division.charge),void 0!==e[0].division.semy&&(a.category=e[0].division.semy),n=new wc({props:a}),ne.push((()=>Te(n,"charge",s))),ne.push((()=>Te(n,"category",l))),{c(){t=A("div"),Oe(n.$$.fragment),N(t,"class","subsection svelte-1k0wz0q")},m(e,r){L(e,t,r),Pe(n,t,null),o=!0},p(e,t){const o={};1&t[0]&&(o.t1=e[0].division.t1),1&t[0]&&(o.t2=e[0].division.t2),1&t[0]&&(o.size=e[0].division.size),!r&&1&t[0]&&(r=!0,o.charge=e[0].division.charge,ae((()=>r=!1))),!i&&1&t[0]&&(i=!0,o.category=e[0].division.semy,ae((()=>i=!1))),n.$set(o)},i(e){o||(be(n.$$.fragment,e),o=!0)},o(e){we(n.$$.fragment,e),o=!1},d(e){e&&S(t),Me(n)}}}function Bu(e){let t,n,r,i,o,s,l,a,c,u=e[2]("editor.ordinary")+"",d=e[0].ordinaries.length>1?` ${e[63]+1}`:"",p=e[4]("ordinaries",e[64].ordinary)+"",h=e[64].above&&Du(e);function f(t){e[33](t)}let m={el:e[64],i:e[63]};return void 0!==e[0].ordinaries&&(m.els=e[0].ordinaries),l=new Lc({props:m}),ne.push((()=>Te(l,"els",f))),{c(){t=O(u),n=O(d),r=O(": "),i=O(p),o=P(),h&&h.c(),s=P(),Oe(l.$$.fragment)},m(e,a){L(e,t,a),L(e,n,a),L(e,r,a),L(e,i,a),L(e,o,a),h&&h.m(e,a),L(e,s,a),Pe(l,e,a),c=!0},p(e,r){(!c||4&r[0])&&u!==(u=e[2]("editor.ordinary")+"")&&U(t,u),(!c||1&r[0])&&d!==(d=e[0].ordinaries.length>1?` ${e[63]+1}`:"")&&U(n,d),(!c||17&r[0])&&p!==(p=e[4]("ordinaries",e[64].ordinary)+"")&&U(i,p),e[64].above?h?h.p(e,r):(h=Du(e),h.c(),h.m(s.parentNode,s)):h&&(h.d(1),h=null);const o={};1&r[0]&&(o.el=e[64]),!a&&1&r[0]&&(a=!0,o.els=e[0].ordinaries,ae((()=>a=!1))),l.$set(o)},i(e){c||(be(l.$$.fragment,e),c=!0)},o(e){we(l.$$.fragment,e),c=!1},d(e){e&&S(t),e&&S(n),e&&S(r),e&&S(i),e&&S(o),h&&h.d(e),e&&S(s),Me(l,e)}}}function Du(e){let t,n,r,i,o=e[2]("editor.aboveCharges")+"";return{c(){t=A("i"),n=O("["),r=O(o),i=O("]"),N(t,"class","svelte-1k0wz0q")},m(e,o){L(e,t,o),x(t,n),x(t,r),x(t,i)},p(e,t){4&t[0]&&o!==(o=e[2]("editor.aboveCharges")+"")&&U(r,o)},d(e){e&&S(t)}}}function Fu(e){let t,n,r,i,o,s,l,a,c,u,d,p,h,f,m,g,v,$,y,b=!["bordure","orle"].includes(e[64].ordinary),w=e[1].division&&Gu(e);function k(t){e[35](t,e[64])}let E={t1:e[1].t1,line:e[64].line,t2:e[64].t};void 0!==e[64].ordinary&&(E.ordinary=e[64].ordinary),i=new Vc({props:E}),ne.push((()=>Te(i,"ordinary",k)));let _=Va.lined[e[64].ordinary]&&Vu(e),C="counter"!==e[64].divided&&Ju(e),z=b&&Ku(e);function T(t){e[39](t,e[64])}let O={};function M(t){e[40](t,e[64],e[65],e[63])}void 0!==e[64].above&&(O.above=e[64].above),d=new dc({props:O}),ne.push((()=>Te(d,"above",T)));let I={};return void 0!==e[64]&&(I.element=e[64]),m=new ou({props:I}),ne.push((()=>Te(m,"element",M))),{c(){t=A("div"),w&&w.c(),n=P(),r=A("div"),Oe(i.$$.fragment),s=P(),_&&_.c(),l=P(),C&&C.c(),a=P(),c=A("div"),z&&z.c(),u=P(),Oe(d.$$.fragment),h=P(),f=A("div"),Oe(m.$$.fragment),v=P(),N(r,"class","subsection svelte-1k0wz0q"),N(c,"class","subsection svelte-1k0wz0q"),N(f,"class","subsection svelte-1k0wz0q"),N(t,"class","panel svelte-1k0wz0q")},m(e,o){L(e,t,o),w&&w.m(t,null),x(t,n),x(t,r),Pe(i,r,null),x(t,s),_&&_.m(t,null),x(t,l),C&&C.m(t,null),x(t,a),x(t,c),z&&z.m(c,null),x(c,u),Pe(d,c,null),x(t,h),x(t,f),Pe(m,f,null),x(t,v),y=!0},p(r,s){(e=r)[1].division?w?(w.p(e,s),2&s[0]&&be(w,1)):(w=Gu(e),w.c(),be(w,1),w.m(t,n)):w&&($e(),we(w,1,1,(()=>{w=null})),ye());const h={};2&s[0]&&(h.t1=e[1].t1),1&s[0]&&(h.line=e[64].line),1&s[0]&&(h.t2=e[64].t),!o&&1&s[0]&&(o=!0,h.ordinary=e[64].ordinary,ae((()=>o=!1))),i.$set(h),Va.lined[e[64].ordinary]?_?(_.p(e,s),1&s[0]&&be(_,1)):(_=Vu(e),_.c(),be(_,1),_.m(t,l)):_&&($e(),we(_,1,1,(()=>{_=null})),ye()),"counter"!==e[64].divided?C?(C.p(e,s),1&s[0]&&be(C,1)):(C=Ju(e),C.c(),be(C,1),C.m(t,a)):C&&($e(),we(C,1,1,(()=>{C=null})),ye()),1&s[0]&&(b=!["bordure","orle"].includes(e[64].ordinary)),b?z?(z.p(e,s),1&s[0]&&be(z,1)):(z=Ku(e),z.c(),be(z,1),z.m(c,u)):z&&($e(),we(z,1,1,(()=>{z=null})),ye());const f={};!p&&1&s[0]&&(p=!0,f.above=e[64].above,ae((()=>p=!1))),d.$set(f);const v={};!g&&1&s[0]&&(g=!0,v.element=e[64],ae((()=>g=!1))),m.$set(v)},i(e){y||(be(w),be(i.$$.fragment,e),be(_),be(C),be(z),be(d.$$.fragment,e),be(m.$$.fragment,e),le((()=>{$||($=_e(t,ai,{},!0)),$.run(1)})),y=!0)},o(e){we(w),we(i.$$.fragment,e),we(_),we(C),we(z),we(d.$$.fragment,e),we(m.$$.fragment,e),$||($=_e(t,ai,{},!1)),$.run(0),y=!1},d(e){e&&S(t),w&&w.d(),Me(i),_&&_.d(),C&&C.d(),z&&z.d(),Me(d),Me(m),e&&$&&$.end()}}}function Gu(e){let t,n,r,i;function o(t){e[34](t,e[64])}let s={};return void 0!==e[64].divided&&(s.divided=e[64].divided),n=new Tc({props:s}),ne.push((()=>Te(n,"divided",o))),{c(){t=A("div"),Oe(n.$$.fragment),N(t,"class","subsection svelte-1k0wz0q")},m(e,r){L(e,t,r),Pe(n,t,null),i=!0},p(t,i){e=t;const o={};!r&&1&i[0]&&(r=!0,o.divided=e[64].divided,ae((()=>r=!1))),n.$set(o)},i(e){i||(be(n.$$.fragment,e),i=!0)},o(e){we(n.$$.fragment,e),i=!1},d(e){e&&S(t),Me(n)}}}function Vu(e){let t,n,r,i;function o(t){e[36](t,e[64])}let s={ordinary:e[64].ordinary,t1:e[1].t1,t2:e[64].t};return void 0!==e[64].line&&(s.line=e[64].line),n=new Rc({props:s}),ne.push((()=>Te(n,"line",o))),{c(){t=A("div"),Oe(n.$$.fragment),N(t,"class","subsection svelte-1k0wz0q")},m(e,r){L(e,t,r),Pe(n,t,null),i=!0},p(t,i){e=t;const o={};1&i[0]&&(o.ordinary=e[64].ordinary),2&i[0]&&(o.t1=e[1].t1),1&i[0]&&(o.t2=e[64].t),!r&&1&i[0]&&(r=!0,o.line=e[64].line,ae((()=>r=!1))),n.$set(o)},i(e){i||(be(n.$$.fragment,e),i=!0)},o(e){we(n.$$.fragment,e),i=!1},d(e){e&&S(t),Me(n)}}}function Ju(e){let t,n,r,i;function o(t){e[37](t,e[64])}let s={};return void 0!==e[64].t&&(s.t1=e[64].t),n=new bu({props:s}),ne.push((()=>Te(n,"t1",o))),{c(){t=A("div"),Oe(n.$$.fragment),N(t,"class","subsection svelte-1k0wz0q")},m(e,r){L(e,t,r),Pe(n,t,null),i=!0},p(t,i){e=t;const o={};!r&&1&i[0]&&(r=!0,o.t1=e[64].t,ae((()=>r=!1))),n.$set(o)},i(e){i||(be(n.$$.fragment,e),i=!0)},o(e){we(n.$$.fragment,e),i=!1},d(e){e&&S(t),Me(n)}}}function Ku(e){let t,n,r;function i(t){e[38](t,e[64],e[65],e[63])}let o={};return void 0!==e[64]&&(o.element=e[64]),t=new hu({props:o}),ne.push((()=>Te(t,"element",i))),{c(){Oe(t.$$.fragment)},m(e,n){Pe(t,e,n),r=!0},p(r,i){e=r;const o={};!n&&1&i[0]&&(n=!0,o.element=e[64],ae((()=>n=!1))),t.$set(o)},i(e){r||(be(t.$$.fragment,e),r=!0)},o(e){we(t.$$.fragment,e),r=!1},d(e){Me(t,e)}}}function Zu(e){let t,n,r,i,o,s,l,a=e[5]&&Bu(e),c=e[3].ordinary[e[63]]&&Fu(e);return{c(){t=A("div"),a&&a.c(),r=P(),c&&c.c(),i=M(),N(t,"class","section svelte-1k0wz0q"),G(t,"expanded",e[3].ordinary[e[63]])},m(n,u){L(n,t,u),a&&a.m(t,null),L(n,r,u),c&&c.m(n,u),L(n,i,u),o=!0,s||(l=I(t,"click",e[7]("ordinary",e[63])),s=!0)},p(n,r){(e=n)[5]?a?(a.p(e,r),32&r[0]&&be(a,1)):(a=Bu(e),a.c(),be(a,1),a.m(t,null)):a&&($e(),we(a,1,1,(()=>{a=null})),ye()),8&r[0]&&G(t,"expanded",e[3].ordinary[e[63]]),e[3].ordinary[e[63]]?c?(c.p(e,r),8&r[0]&&be(c,1)):(c=Fu(e),c.c(),be(c,1),c.m(i.parentNode,i)):c&&($e(),we(c,1,1,(()=>{c=null})),ye())},i(e){o||(be(a),le((()=>{n||(n=_e(t,ai,{},!0)),n.run(1)})),be(c),o=!0)},o(e){we(a),n||(n=_e(t,ai,{},!1)),n.run(0),we(c),o=!1},d(e){e&&S(t),a&&a.d(),e&&n&&n.end(),e&&S(r),c&&c.d(e),e&&S(i),s=!1,l()}}}function Wu(e){let t,n,r,i,o,s,l,a,c=e[2]("tinctures.charge")+"",u=e[0].charges.length>1?` ${e[63]+1}`:"",d=e[4]("charges",e[61].charge)+"";function p(t){e[41](t)}let h={el:e[61],i:e[63]};return void 0!==e[0].charges&&(h.els=e[0].charges),s=new Lc({props:h}),ne.push((()=>Te(s,"els",p))),{c(){t=O(c),n=O(u),r=O(": "),i=O(d),o=P(),Oe(s.$$.fragment)},m(e,l){L(e,t,l),L(e,n,l),L(e,r,l),L(e,i,l),L(e,o,l),Pe(s,e,l),a=!0},p(e,r){(!a||4&r[0])&&c!==(c=e[2]("tinctures.charge")+"")&&U(t,c),(!a||1&r[0])&&u!==(u=e[0].charges.length>1?` ${e[63]+1}`:"")&&U(n,u),(!a||17&r[0])&&d!==(d=e[4]("charges",e[61].charge)+"")&&U(i,d);const o={};1&r[0]&&(o.el=e[61]),!l&&1&r[0]&&(l=!0,o.els=e[0].charges,ae((()=>l=!1))),s.$set(o)},i(e){a||(be(s.$$.fragment,e),a=!0)},o(e){we(s.$$.fragment,e),a=!1},d(e){e&&S(t),e&&S(n),e&&S(r),e&&S(i),e&&S(o),Me(s,e)}}}function Xu(e){let t,n,r,i,o,s,l,a,c,u,d,p,h,f,m,g,v,$,y,b,w,k=!od(e[61].charge)&&"counter"!==e[61].divided,E=e[1].division&&Yu(e);function _(t){e[43](t,e[61])}function C(t){e[44](t,e[61])}let z={type:"charge",t1:e[1].t1,t2:e[61].t,t3:e[61].t2,t4:e[61].t3,sinister:e[61].sinister,reversed:e[61].reversed,division:e[1].division};void 0!==e[61].charge&&(z.charge=e[61].charge),void 0!==e[61].type&&(z.category=e[61].type),i=new wc({props:z}),ne.push((()=>Te(i,"charge",_))),ne.push((()=>Te(i,"category",C)));let T=k&&Qu(e);function O(t){e[48](t,e[61],e[62],e[63])}let M={};function I(t){e[49](t,e[61],e[62],e[63])}void 0!==e[61]&&(M.element=e[61]),u=new hu({props:M}),ne.push((()=>Te(u,"element",O)));let j={};function q(t){e[50](t,e[61],e[62],e[63])}void 0!==e[61]&&(j.charge=e[61]),f=new nu({props:j}),ne.push((()=>Te(f,"charge",I)));let H={};return void 0!==e[61]&&(H.element=e[61]),$=new ou({props:H}),ne.push((()=>Te($,"element",q))),{c(){t=A("div"),n=A("div"),E&&E.c(),r=P(),Oe(i.$$.fragment),l=P(),T&&T.c(),a=P(),c=A("div"),Oe(u.$$.fragment),p=P(),h=A("div"),Oe(f.$$.fragment),g=P(),v=A("div"),Oe($.$$.fragment),N(n,"class","subsection svelte-1k0wz0q"),N(c,"class","subsection svelte-1k0wz0q"),N(h,"class","subsection svelte-1k0wz0q"),N(v,"class","subsection svelte-1k0wz0q"),N(t,"class","panel svelte-1k0wz0q")},m(e,o){L(e,t,o),x(t,n),E&&E.m(n,null),x(n,r),Pe(i,n,null),x(t,l),T&&T.m(t,null),x(t,a),x(t,c),Pe(u,c,null),x(t,p),x(t,h),Pe(f,h,null),x(t,g),x(t,v),Pe($,v,null),w=!0},p(l,c){(e=l)[1].division?E?(E.p(e,c),2&c[0]&&be(E,1)):(E=Yu(e),E.c(),be(E,1),E.m(n,r)):E&&($e(),we(E,1,1,(()=>{E=null})),ye());const p={};2&c[0]&&(p.t1=e[1].t1),1&c[0]&&(p.t2=e[61].t),1&c[0]&&(p.t3=e[61].t2),1&c[0]&&(p.t4=e[61].t3),1&c[0]&&(p.sinister=e[61].sinister),1&c[0]&&(p.reversed=e[61].reversed),2&c[0]&&(p.division=e[1].division),!o&&1&c[0]&&(o=!0,p.charge=e[61].charge,ae((()=>o=!1))),!s&&1&c[0]&&(s=!0,p.category=e[61].type,ae((()=>s=!1))),i.$set(p),1&c[0]&&(k=!od(e[61].charge)&&"counter"!==e[61].divided),k?T?(T.p(e,c),1&c[0]&&be(T,1)):(T=Qu(e),T.c(),be(T,1),T.m(t,a)):T&&($e(),we(T,1,1,(()=>{T=null})),ye());const h={};!d&&1&c[0]&&(d=!0,h.element=e[61],ae((()=>d=!1))),u.$set(h);const g={};!m&&1&c[0]&&(m=!0,g.charge=e[61],ae((()=>m=!1))),f.$set(g);const v={};!y&&1&c[0]&&(y=!0,v.element=e[61],ae((()=>y=!1))),$.$set(v)},i(e){w||(be(E),be(i.$$.fragment,e),be(T),be(u.$$.fragment,e),be(f.$$.fragment,e),be($.$$.fragment,e),le((()=>{b||(b=_e(t,ai,{},!0)),b.run(1)})),w=!0)},o(e){we(E),we(i.$$.fragment,e),we(T),we(u.$$.fragment,e),we(f.$$.fragment,e),we($.$$.fragment,e),b||(b=_e(t,ai,{},!1)),b.run(0),w=!1},d(e){e&&S(t),E&&E.d(),Me(i),T&&T.d(),Me(u),Me(f),Me($),e&&b&&b.end()}}}function Yu(e){let t,n,r;function i(t){e[42](t,e[61])}let o={raster:od(e[61].charge)};return void 0!==e[61].divided&&(o.divided=e[61].divided),t=new Tc({props:o}),ne.push((()=>Te(t,"divided",i))),{c(){Oe(t.$$.fragment)},m(e,n){Pe(t,e,n),r=!0},p(r,i){e=r;const o={};1&i[0]&&(o.raster=od(e[61].charge)),!n&&1&i[0]&&(n=!0,o.divided=e[61].divided,ae((()=>n=!1))),t.$set(o)},i(e){r||(be(t.$$.fragment,e),r=!0)},o(e){we(t.$$.fragment,e),r=!1},d(e){Me(t,e)}}}function Qu(e){let t,n,r,i,o;function s(t){e[45](t,e[61])}let l={};void 0!==e[61].t&&(l.t1=e[61].t),n=new bu({props:l}),ne.push((()=>Te(n,"t1",s)));let a=Ja.data[e[61].charge]?.colors>1&&ed(e);return{c(){t=A("div"),Oe(n.$$.fragment),i=P(),a&&a.c(),N(t,"class","subsection svelte-1k0wz0q")},m(e,r){L(e,t,r),Pe(n,t,null),x(t,i),a&&a.m(t,null),o=!0},p(i,o){e=i;const s={};!r&&1&o[0]&&(r=!0,s.t1=e[61].t,ae((()=>r=!1))),n.$set(s),Ja.data[e[61].charge]?.colors>1?a?(a.p(e,o),1&o[0]&&be(a,1)):(a=ed(e),a.c(),be(a,1),a.m(t,null)):a&&($e(),we(a,1,1,(()=>{a=null})),ye())},i(e){o||(be(n.$$.fragment,e),be(a),o=!0)},o(e){we(n.$$.fragment,e),we(a),o=!1},d(e){e&&S(t),Me(n),a&&a.d()}}}function ed(e){let t,n,r,i,o;function s(t){e[46](t,e[61])}let l={};void 0!==e[61].t2&&(l.t1=e[61].t2),t=new bu({props:l}),ne.push((()=>Te(t,"t1",s)));let a=Ja.data[e[61].charge]?.colors>2&&td(e);return{c(){Oe(t.$$.fragment),r=P(),a&&a.c(),i=M()},m(e,n){Pe(t,e,n),L(e,r,n),a&&a.m(e,n),L(e,i,n),o=!0},p(r,o){e=r;const s={};!n&&1&o[0]&&(n=!0,s.t1=e[61].t2,ae((()=>n=!1))),t.$set(s),Ja.data[e[61].charge]?.colors>2?a?(a.p(e,o),1&o[0]&&be(a,1)):(a=td(e),a.c(),be(a,1),a.m(i.parentNode,i)):a&&($e(),we(a,1,1,(()=>{a=null})),ye())},i(e){o||(be(t.$$.fragment,e),be(a),o=!0)},o(e){we(t.$$.fragment,e),we(a),o=!1},d(e){Me(t,e),e&&S(r),a&&a.d(e),e&&S(i)}}}function td(e){let t,n,r;function i(t){e[47](t,e[61])}let o={};return void 0!==e[61].t3&&(o.t1=e[61].t3),t=new bu({props:o}),ne.push((()=>Te(t,"t1",i))),{c(){Oe(t.$$.fragment)},m(e,n){Pe(t,e,n),r=!0},p(r,i){e=r;const o={};!n&&1&i[0]&&(n=!0,o.t1=e[61].t3,ae((()=>n=!1))),t.$set(o)},i(e){r||(be(t.$$.fragment,e),r=!0)},o(e){we(t.$$.fragment,e),r=!1},d(e){Me(t,e)}}}function nd(e){let t,n,r,i,o,s,l,a=e[5]&&Wu(e),c=e[3].charge[e[63]]&&Xu(e);return{c(){t=A("div"),a&&a.c(),r=P(),c&&c.c(),i=M(),N(t,"class","section svelte-1k0wz0q"),G(t,"expanded",e[3].charge[e[63]])},m(n,u){L(n,t,u),a&&a.m(t,null),L(n,r,u),c&&c.m(n,u),L(n,i,u),o=!0,s||(l=I(t,"click",e[7]("charge",e[63])),s=!0)},p(n,r){(e=n)[5]?a?(a.p(e,r),32&r[0]&&be(a,1)):(a=Wu(e),a.c(),be(a,1),a.m(t,null)):a&&($e(),we(a,1,1,(()=>{a=null})),ye()),8&r[0]&&G(t,"expanded",e[3].charge[e[63]]),e[3].charge[e[63]]?c?(c.p(e,r),8&r[0]&&be(c,1)):(c=Xu(e),c.c(),be(c,1),c.m(i.parentNode,i)):c&&($e(),we(c,1,1,(()=>{c=null})),ye())},i(e){o||(be(a),le((()=>{n||(n=_e(t,ai,{},!0)),n.run(1)})),be(c),o=!0)},o(e){we(a),n||(n=_e(t,ai,{},!1)),n.run(0),we(c),o=!1},d(e){e&&S(t),a&&a.d(),e&&n&&n.end(),e&&S(r),c&&c.d(e),e&&S(i),s=!1,l()}}}function rd(e){let t,n,r,o,s,l,a,c=e[2]("editor.addOrdinary")+"",u=e[2]("editor.addCharge")+"";return{c(){t=A("div"),n=O(c),r=P(),o=A("div"),s=O(u),N(t,"class","buttonLine svelte-1k0wz0q"),N(o,"class","buttonLine svelte-1k0wz0q")},m(i,c){L(i,t,c),x(t,n),L(i,r,c),L(i,o,c),x(o,s),l||(a=[I(t,"click",e[8]),I(o,"click",e[9])],l=!0)},p(e,t){4&t[0]&&c!==(c=e[2]("editor.addOrdinary")+"")&&U(n,c),4&t[0]&&u!==(u=e[2]("editor.addCharge")+"")&&U(s,u)},d(e){e&&S(t),e&&S(r),e&&S(o),l=!1,i(a)}}}function id(t){let n,r,o,l,a,c,u,d,p,h,f,m,g,v,$,y,b,w,k=t[1],E=Lu(t),_=t[5]&&Su(t),C=t[3].field&&zu(t),T=t[5]&&Mu(t),O=t[3].division&&Iu(t),M=t[0].ordinaries,j=[];for(let e=0;ewe(j[e],1,1,(()=>{j[e]=null}));let H=t[0].charges,U=[];for(let e=0;ewe(U[e],1,1,(()=>{U[e]=null}));let B=t[5]&&rd(t);return{c(){n=A("main"),r=A("div"),E.c(),l=P(),a=A("div"),c=A("div"),_&&_.c(),u=P(),C&&C.c(),d=P(),p=A("div"),T&&T.c(),h=P(),O&&O.c(),f=P();for(let e=0;e{C=null})),ye()),t[5]?T?T.p(t,i):(T=Mu(t),T.c(),T.m(p,null)):T&&(T.d(1),T=null),8&i[0]&&G(p,"expanded",t[3].division),t[3].division?O?(O.p(t,i),8&i[0]&&be(O,1)):(O=Iu(t),O.c(),be(O,1),O.m(a,f)):O&&($e(),we(O,1,1,(()=>{O=null})),ye()),191&i[0]){let e;for(M=t[0].ordinaries,e=0;e{o=Ee(r,li,{x:t[6]?0:1e3,y:t[6]?1e3:0,duration:800}),o.start()})),be(C),be(O);for(let e=0;e{v=Ee(a,li,{x:t[6]?1e3:0,y:t[6]?0:1e3,duration:1e3}),v.start()})),$&&$.end(1),y=!0}},o(e){we(E),we(C),we(O),j=j.filter(xu);for(let e=0;en(2,i=e))),c(e,Jn,(e=>n(12,o=e))),c(e,Ln,(e=>n(13,s=e))),c(e,Br,(e=>n(51,l=e))),c(e,Ar,(e=>n(52,a=e))),c(e,Ur,(e=>n(53,u=e))),c(e,Sr,(e=>n(54,d=e))),c(e,Dr,(e=>n(14,p=e))),c(e,Nr,(e=>n(55,h=e))),c(e,jr,(e=>n(15,f=e))),c(e,Ir,(e=>n(16,m=e))),c(e,Er,(e=>n(5,v=e)));let{historyId:$,seed:y}=t,b={},w={field:0,division:0,ordinary:[],charge:[]};const k=innerWidth>innerHeight;g(Ur,u.transform=null,u),g(Ur,u.positions=null,u);let E=h[$]||Za(y||void 0);function x(){function e(e){return e?.includes("-")}function t(e){return"semy"===e?.slice(0,4)}function r(e){return e[0].split("_of_")[1]}function i(e){return Object.keys(Ja.types).find((t=>void 0!==Ja[t][e]))||e}function o(e){return i(r(e))}function s(e){return lr("argent"===e||"or"===e?a.colours:a.metals)}return E.shield&&g(Sr,d=E.shield,d),n(0,b.field=function(){const n=t(E.t1)?"semy":e(E.t1)?"pattern":"tincture";let i,l,a="vair",c="lozenge",u="conventional",d="standard";const p=E.t1.split("-");"tincture"===n?(i=E.t1,l=s(E.t1)):(i=p[1],l=p[2],d=p[3]||"standard");"pattern"===n?a=p[0]:"semy"===n&&(c=r(p),u=o(p));return{type:n,t1:i,t2:l,pattern:a,charge:c,semy:u,size:d}}(),b),n(0,b.division=function(){let n,i,l="tincture",a="no",c="straight",u="vair",d="lozenge",p="conventional",h="standard";if(E.division){const f=E.division.t.split("-");l=t(E.division.t)?"semy":e(E.division.t)?"pattern":"tincture",a=E.division.division,c=E.division.line||"straight",n="tincture"===l?E.division.t:f[1],i="tincture"===l?s(n):f[2],"pattern"===l&&(u=f[0]),"semy"===l&&(d=r(f),p=o(f)),h=f[3]||"standard"}else n=s(b.field.t1),i=s(n);return{division:a,line:c,type:l,t1:n,t2:i,pattern:u,charge:d,semy:p,size:h}}(),b),n(0,b.ordinaries=function(){if(!E.ordinaries)return[];const e=E.ordinaries.map((e=>{const{ordinary:t,t:n}=e,r=e.line||"straight",i=Boolean(e.stroke),o=e.stroke||"#000000",s=e.strokeWidth||1,l=e.size||1,a=e.x||0,c=e.y||0,d=e.angle||0,p=e.divided||"",h=e.above||!1;return d&&g(Ur,u.transform=`rotate(${d})`,u),{ordinary:t,t:n,line:r,showStroke:i,stroke:o,strokeWidth:s,size:l,x:a,y:c,angle:d,divided:p,above:h}}));return e}(),b),n(0,b.charges=function(){if(!E.charges)return[];const e=E.charges.map((e=>{const{charge:t,t:n,t2:r,t3:o,p:s,size:l}=e,a=i(t),c="none"!==e.stroke,d=c&&e.stroke?e.stroke:"#000000",p=e.divided||"",h=e.sinister||!1,f=e.reversed||!1,m=e.x||0,v=e.y||0,$=e.angle||0;return $&&g(Ur,u.transform=`rotate(${$})`,u),{charge:t,type:a,showStroke:c,stroke:d,divided:p,t:n,t2:r,t3:o,p:s,size:l,sinister:h,reversed:f,x:m,y:v,angle:$}}));return e}(),b),b}return"ontouchstart"in window||!E.ordinaries&&!E.charges||l||Br.info("info.tipEditControls"),e.$$set=e=>{"historyId"in e&&n(10,$=e.historyId),"seed"in e&&n(11,y=e.seed)},e.$$.update=()=>{16384&e.$$.dirty[0]&&Dr.length()&&(n(1,E=JSON.parse(p[0])),x()),1024&e.$$.dirty[0]&&function(e){n(1,E=h[e]||Za(y||void 0)),h[e]||h.push(E),Dr.reset(),x()}($),1&e.$$.dirty[0]&&function(){if(delete E.seed,"tincture"===b.field.type)n(1,E.t1=b.field.t1,E);else{const e=["semy"===b.field.type?"semy_of_"+b.field.charge:b.field.pattern,b.field.t1,b.field.t2];"standard"!==b.field.size&&e.push(b.field.size),n(1,E.t1=e.join("-"),E)}if(b.division.division&&"no"!==b.division.division)if(n(1,E.division={division:b.division.division},E),Ga[b.division.division]&&n(1,E.division.line=b.division.line,E),"tincture"===b.division.type)n(1,E.division.t=b.division.t1,E);else{const e=["semy"===b.division.type?"semy_of_"+b.division.charge:b.division.pattern,b.division.t1,b.division.t2];"standard"!==b.division.size&&e.push(b.division.size),n(1,E.division.t=e.join("-"),E)}else delete E.division;b.ordinaries.length?n(1,E.ordinaries=b.ordinaries.map((e=>{const t={ordinary:e.ordinary,t:e.t};return Va.lined[e.ordinary]&&(t.line=e.line),E.division&&e.divided&&(t.divided=e.divided),e.showStroke&&(t.stroke=e.stroke),e.showStroke&&1!==e.strokeWidth&&(t.strokeWidth=e.strokeWidth),e.size&&1!==e.size&&(t.size=e.size),(e.x||e.y)&&(t.x=e.x,t.y=e.y),e.angle&&(t.angle=e.angle),e.above&&(t.above=!0),t})),E):delete E.ordinaries,b.charges.length?n(1,E.charges=b.charges.map((e=>{const t={charge:e.charge,t:e.t,p:e.p,size:e.size};return Ja.data[e.charge]?.colors>1&&(t.t2=e.t2),Ja.data[e.charge]?.colors>2&&(t.t3=e.t3),e.showStroke?"#000000"!==e.stroke&&(t.stroke=e.stroke):t.stroke="none",e.divided&&(t.divided=e.divided),e.sinister&&(t.sinister=1),e.reversed&&(t.reversed=1),(e.x||e.y)&&(t.x=e.x,t.y=e.y),e.angle&&(t.angle=e.angle),t})),E):delete E.charges}(),2&e.$$.dirty[0]&&function(e){e.shield||(e.shield=d),Dr.add(JSON.stringify(e))}(E),65536&e.$$.dirty[0]&&localStorage.setItem("grid",m),32768&e.$$.dirty[0]&&localStorage.setItem("showGrid",f),12292&e.$$.dirty[0]&&n(4,r=(e,t)=>{const n=s?.[o]?.[e]?.[t];return n?i(`${e}.${t}`):t})},[b,E,i,w,r,v,k,(e,t)=>()=>{n(3,void 0!==t?w[e][t]=!w[e][t]:w[e]=!w[e],w)},function(){const e={ordinary:sr(Object.keys(Va.lined).concat(Object.keys(Va.straight))),t:lr(a[lr(a.charge)]),showStroke:!1,stroke:"#000000",strokeWidth:1,line:"straight",size:1,x:0,y:0,angle:0,divided:""};n(0,b.ordinaries=[...b.ordinaries,e],b)},function(){const e=lr(Ja.single),t=lr(Ja[e]),r={charge:t,t:lr(a[lr(a.charge)]),p:"e",showStroke:!0,stroke:"#000000",type:e,size:1.5,sinister:!1,reversed:!1,x:0,y:0,angle:0,divided:""};Ja.data[t]?.colors>1&&(r.t2=lr(a[lr(a.charge)])),Ja.data[t]?.colors>2&&(r.t3=lr(a[lr(a.charge)])),n(0,b.charges=[...b.charges,r],b)},$,y,o,s,p,f,m,function(t){e.$$.not_equal(b.field.type,t)&&(b.field.type=t,n(0,b))},function(t){e.$$.not_equal(b.field.size,t)&&(b.field.size=t,n(0,b))},function(t){e.$$.not_equal(b.field.t1,t)&&(b.field.t1=t,n(0,b))},function(t){e.$$.not_equal(b.field.t2,t)&&(b.field.t2=t,n(0,b))},function(t){e.$$.not_equal(b.field.pattern,t)&&(b.field.pattern=t,n(0,b))},function(t){e.$$.not_equal(b.field.charge,t)&&(b.field.charge=t,n(0,b))},function(t){e.$$.not_equal(b.field.semy,t)&&(b.field.semy=t,n(0,b))},function(t){e.$$.not_equal(b.division.division,t)&&(b.division.division=t,n(0,b))},function(t){e.$$.not_equal(b.division.line,t)&&(b.division.line=t,n(0,b))},function(t){e.$$.not_equal(b.division.type,t)&&(b.division.type=t,n(0,b))},function(t){e.$$.not_equal(b.division.size,t)&&(b.division.size=t,n(0,b))},function(t){e.$$.not_equal(b.division.t1,t)&&(b.division.t1=t,n(0,b))},function(t){e.$$.not_equal(b.division.t2,t)&&(b.division.t2=t,n(0,b))},function(t){e.$$.not_equal(b.division.pattern,t)&&(b.division.pattern=t,n(0,b))},function(t){e.$$.not_equal(b.division.charge,t)&&(b.division.charge=t,n(0,b))},function(t){e.$$.not_equal(b.division.semy,t)&&(b.division.semy=t,n(0,b))},function(t){e.$$.not_equal(b.ordinaries,t)&&(b.ordinaries=t,n(0,b))},function(t,r){e.$$.not_equal(r.divided,t)&&(r.divided=t,n(0,b))},function(t,r){e.$$.not_equal(r.ordinary,t)&&(r.ordinary=t,n(0,b))},function(t,r){e.$$.not_equal(r.line,t)&&(r.line=t,n(0,b))},function(t,r){e.$$.not_equal(r.t,t)&&(r.t=t,n(0,b))},function(e,t,r,i){r[i]=e,n(0,b)},function(t,r){e.$$.not_equal(r.above,t)&&(r.above=t,n(0,b))},function(e,t,r,i){r[i]=e,n(0,b)},function(t){e.$$.not_equal(b.charges,t)&&(b.charges=t,n(0,b))},function(t,r){e.$$.not_equal(r.divided,t)&&(r.divided=t,n(0,b))},function(t,r){e.$$.not_equal(r.charge,t)&&(r.charge=t,n(0,b))},function(t,r){e.$$.not_equal(r.type,t)&&(r.type=t,n(0,b))},function(t,r){e.$$.not_equal(r.t,t)&&(r.t=t,n(0,b))},function(t,r){e.$$.not_equal(r.t2,t)&&(r.t2=t,n(0,b))},function(t,r){e.$$.not_equal(r.t3,t)&&(r.t3=t,n(0,b))},function(e,t,r,i){r[i]=e,n(0,b)},function(e,t,r,i){r[i]=e,n(0,b)},function(e,t,r,i){r[i]=e,n(0,b)}]}class ld extends Ne{constructor(e){super(),je(this,e,sd,id,s,{historyId:10,seed:11},null,[-1,-1,-1])}}function ad(e,t,n){const r=e.slice();return r[14]=t[n],r[16]=n,r}function cd(e){let t,n;return t=new Ra({props:{coa:e[14],i:e[16],width:e[0],height:e[1]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};4&n&&(r.coa=e[14]),1&n&&(r.width=e[0]),2&n&&(r.height=e[1]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function ud(t){let n,r,o,l,a,c,u,d,p,h,f,m,g,v,$,y=t[14],b=cd(t);function w(){return t[8](t[16])}function k(){return t[9](t[16])}function E(){return t[10](t[16])}return{c(){n=A("div"),b.c(),r=P(),o=A("div"),l=T("svg"),a=T("use"),c=P(),u=T("svg"),d=T("use"),p=P(),h=T("svg"),f=T("use"),m=P(),N(a,"href","#dice-icon"),N(l,"class","svelte-1ugrazl"),N(d,"href","#pencil-icon"),N(u,"class","svelte-1ugrazl"),N(f,"href","#download-icon"),N(h,"class","svelte-1ugrazl"),N(o,"class","control svelte-1ugrazl"),N(n,"class","svelte-1ugrazl")},m(e,t){L(e,n,t),b.m(n,null),x(n,r),x(n,o),x(o,l),x(l,a),x(o,c),x(o,u),x(u,d),x(o,p),x(o,h),x(h,f),x(n,m),g=!0,v||($=[I(l,"click",w),I(u,"click",k),I(h,"click",E)],v=!0)},p(i,o){t=i,4&o&&s(y,y=t[14])?($e(),we(b,1,1,e),ye(),b=cd(t),b.c(),be(b),b.m(n,r)):b.p(t,o)},i(e){g||(be(b),g=!0)},o(e){we(b),g=!1},d(e){e&&S(n),b.d(e),v=!1,i($)}}}function dd(e){let t,n,r,i=e[2],o=[];for(let t=0;twe(o[e],1,1,(()=>{o[e]=null}));return{c(){t=A("main");for(let e=0;e{n||(n=_e(t,si,{duration:500},!0)),n.run(1)})),r=!0}},o(e){o=o.filter(Boolean);for(let e=0;en(11,o=e))),c(e,Nr,(e=>n(7,s=e))),c(e,Hr,(e=>n(12,l=e))),c(e,qr,(e=>n(13,a=e)));let{gallery:u}=t,{width:d}=t,{height:p}=t;function h(e){g(Ur,o.i=e,o),g(Hr,l++,l),g(qr,a[l]=a[l-1].slice(),a),g(qr,a[l][o.i]=s.length,a)}function f(e){g(Ur,o.edit=1,o),g(Ur,o.c=u[e],o),g(Ur,o.i=e,o)}return e.$$set=e=>{"gallery"in e&&n(6,u=e.gallery),"width"in e&&n(0,d=e.width),"height"in e&&n(1,p=e.height)},e.$$.update=()=>{var t,o,l;1&e.$$.dirty&&n(3,(t=d/20,o=6,l=12,r=Math.max(Math.min(Math.round(t),l),o))),192&e.$$.dirty&&n(2,i=u.map((e=>(s[e]||g(Nr,s[e]=Za(),s),s[e]))))},[d,p,i,r,h,f,u,s,e=>h(e),e=>f(e),e=>Gr(e)]}class hd extends Ne{constructor(e){super(),je(this,e,pd,dd,s,{gallery:6,width:0,height:1})}}function fd(t){let n,r,i,o,s,l,a,c,u,d,p,h,f,m,g,v,$,y=t[1]("license.unknown")+"",b=t[1]("license.proprietary")+"",w=t[1]("license.copyleft")+"",k=t[1]("license.publicDomain")+"";return{c(){n=A("select"),r=A("option"),i=O(y),o=A("option"),s=O(b),l=A("option"),a=O(w),c=A("option"),u=O(k),d=A("option"),d.textContent="CC BY",p=A("option"),p.textContent="CC BY-SA",h=A("option"),h.textContent="CC BY-NC",f=A("option"),f.textContent="CC BY-ND",m=A("option"),m.textContent="CC BY-NC-SA",g=A("option"),g.textContent="CC BY-NC-ND",r.__value="Unknown",r.value=r.__value,r.selected=!0,o.__value="Proprietary",o.value=o.__value,l.__value="Copyright Free",l.value=l.__value,c.__value="https://creativecommons.org/publicdomain/zero/1.0",c.value=c.__value,d.__value="https://creativecommons.org/licenses/by/4.0",d.value=d.__value,p.__value="https://creativecommons.org/licenses/by-sa/4.0",p.value=p.__value,h.__value="https://creativecommons.org/licenses/by-nc/4.0",h.value=h.__value,f.__value="https://creativecommons.org/licenses/by-nd/4.0",f.value=f.__value,m.__value="https://creativecommons.org/licenses/by-nc-sa/4.0",m.value=m.__value,g.__value="https://creativecommons.org/licenses/by-nc-nd/4.0",g.value=g.__value,B(n,"width","10em"),void 0===t[0]&&le((()=>t[2].call(n)))},m(e,y){L(e,n,y),x(n,r),x(r,i),x(n,o),x(o,s),x(n,l),x(l,a),x(n,c),x(c,u),x(n,d),x(n,p),x(n,h),x(n,f),x(n,m),x(n,g),D(n,t[0]),v||($=I(n,"change",t[2]),v=!0)},p(e,[t]){2&t&&y!==(y=e[1]("license.unknown")+"")&&U(i,y),2&t&&b!==(b=e[1]("license.proprietary")+"")&&U(s,b),2&t&&w!==(w=e[1]("license.copyleft")+"")&&U(a,w),2&t&&k!==(k=e[1]("license.publicDomain")+"")&&U(u,k),1&t&&D(n,e[0])},i:e,o:e,d(e){e&&S(n),v=!1,$()}}}function md(e,t,n){let r;c(e,or,(e=>n(1,r=e)));let{license:i}=t;return e.$$set=e=>{"license"in e&&n(0,i=e.license)},[i,r,function(){i=F(this),n(0,i)}]}class gd extends Ne{constructor(e){super(),je(this,e,md,fd,s,{license:0})}}const vd=document.querySelector.bind(document);document.querySelectorAll.bind(document),Node.prototype.on=window.on=function(e,t){this.addEventListener(e,t)},Node.prototype.off=window.off=function(e,t){this.removeEventListener(e,t)};const $d=e=>({dragging:2&e[0]}),yd=e=>({dragging:e[1]});function bd(e,t,n){const r=e.slice();return r[29]=t[n],r}function wd(e){let t,n,r,i,o,s;const l=e[16].default,a=u(l,e,e[15],yd),c=a||function(e){let t;return{c(){t=A("div"),t.innerHTML="Drag & Drop image here or browse "},m(e,n){L(e,t,n)},d(e){e&&S(t)}}}();return{c(){t=A("label"),c&&c.c(),n=P(),r=A("input"),N(r,"type","file"),N(r,"accept","image/*"),N(r,"class","svelte-846jl0"),N(t,"class","dragging svelte-846jl0")},m(l,a){L(l,t,a),c&&c.m(t,null),x(t,n),x(t,r),i=!0,o||(s=I(r,"input",e[13](Cd)),o=!0)},p(e,t){a&&a.p&&(!i||32770&t[0])&&h(a,l,e,e[15],i?p(l,e[15],t,$d):f(e[15]),yd)},i(e){i||(be(c,e),i=!0)},o(e){we(c,e),i=!1},d(e){e&&S(t),c&&c.d(e),o=!1,s()}}}function kd(e){let t,n,r,o,s,l,a,c,u,d,p,h,f,m,g,$,y,b,w,k,E,_,C,O,M,j,q,U,B,F,G,V,J,K,Z,W,X,Y,Q,ee,te,re,ie,oe,se,ce,ue,de,pe,he,fe,me,ge,ve,$e,ye,ke,Ee,xe,_e;function Ce(t){e[23](t)}let Le={};void 0!==e[9]&&(Le.license=e[9]),te=new gd({props:Le}),ne.push((()=>Te(te,"license",Ce)));let Se=Object.keys(e[0].types),ze=[];for(let t=0;te[25].call(me))),N(pe,"data-tooltip","Category to put a charge"),N($e,"class","svelte-846jl0"),N(ke,"class","svelte-846jl0"),N(ve,"class","buttons svelte-846jl0"),N(h,"class","inputs svelte-846jl0")},m(i,o){L(i,t,o),x(t,n),x(n,r),x(n,c),x(n,d),L(i,p,o),L(i,h,o),x(h,f),x(f,m),x(f,g),x(f,$),R($,e[3]),x(h,y),x(h,b),x(b,w),x(b,k),x(b,E),R(E,e[4]),x(h,_),x(h,C),x(C,O),x(C,M),x(C,j),R(j,e[5]),x(h,q),x(h,U),x(U,B),x(U,F),x(U,G),R(G,e[8]),x(h,V),x(h,J),x(J,K),x(J,Z),x(J,W),R(W,e[10]),x(h,X),x(h,Y),x(Y,Q),x(Y,ee),Pe(te,Y,null),x(h,ie),x(h,oe),x(oe,se),x(oe,ce),x(oe,ue),R(ue,e[6]),x(h,de),x(h,pe),x(pe,he),x(pe,fe),x(pe,me);for(let e=0;ere=!1))),te.$set(n),64&t[0]&&ue.value!==e[6]&&R(ue,e[6]),1&t[0]){let n;for(Se=Object.keys(e[0].types),n=0;n{p[n]=null})),ye(),l=p[s],l?l.p(e,t):(l=p[s]=d[s](e),l.c()),be(l,1),l.m(o,null))},i(e){a||(be(l),a=!0)},o(e){we(l),a=!1},d(e){e&&S(t),p[s].d(),c=!1,i(u)}}}function _d({dataTransfer:{files:e,items:t}}){return e.length?[...e]:t.filter((({kind:e})=>"file"===e)).map((({getAsFile:e})=>e()))}function Cd({target:e}){const t=e.files?[...e.files]:[];return e.value="",t}function Ld(e,t,n){let r,i;c(e,Ur,(e=>n(11,r=e))),c(e,Sr,(e=>n(12,i=e)));let o,s,l,a,{$$slots:u={},$$scope:d}=t,p=!1,h=!1,f=50,m=0,v=0,$="uploaded";return e.$$set=e=>{"$$scope"in e&&n(15,d=e.$$scope)},[Ja,p,h,f,m,v,o,$,s,l,a,r,i,e=>t=>{n(1,p=!1);const r=e(t),i=r.length?r[0]:[];i.type.match(/image.*/)?(n(2,h=!0),Br.info("info.tipUploadImageSize"),n(6,o=cr(i.name)),function(e){const t=new FileReader;t.onload=function(e){const t=e.target.result;document.getElementById("rasterUpload").querySelector("svg image").setAttribute("href",t)},t.readAsDataURL(e)}(i)):Br.error("error.notAnImage")},function(){const e=Object.keys(Ja.types).map((e=>Object.keys(Ja[e]))).flat();if(n(6,o=cr(o)),!o||document.getElementById(o)||e.includes(o))return void Br.error("error.notUniqueName");Ja.types[$]||n(0,Ja.types[$]=6,Ja),Ja.single[$]||n(0,Ja.single[$]=6,Ja),n(0,Ja[$][o]=5,Ja),delete Ja.types.array,delete Ja.single.array,delete Ja[$].array;const t=vd("#rasterUpload svg image").cloneNode(!0);t.id=o,s&&t.setAttribute("source",s),l&&t.setAttribute("license",l),a&&t.setAttribute("author",a),document.getElementById("charges").appendChild(t),n(2,h=!1),g(Ur,r.raster=0,r),Br.success("success.chargeAdded")},d,u,()=>g(Ur,r.raster=0,r),function(){f=H(this.value),n(3,f)},function(){m=H(this.value),n(4,m)},function(){v=H(this.value),n(5,v)},function(){s=this.value,n(8,s)},function(){a=this.value,n(10,a)},function(e){l=e,n(9,l)},function(){o=this.value,n(6,o)},function(){$=F(this),n(7,$),n(0,Ja)},()=>n(2,h=!1),()=>n(1,p=!0),()=>n(1,p=!1)]}class Sd extends Ne{constructor(e){super(),je(this,e,Ld,xd,s,{},null,[-1,-1])}}const zd=e=>({dragging:4&e[0]}),Ad=e=>({dragging:e[2]});function Td(e,t,n){const r=e.slice();return r[37]=t[n],r}function Od(e,t,n){const r=e.slice();return r[40]=t[n],r}function Pd(e){let t,n,r,o,s,l,a,c;const d=e[18].default,m=u(d,e,e[17],Ad),g=m||function(e){let t;return{c(){t=A("div"),t.innerHTML="Drag & Drop svg file here or browse "},m(e,n){L(e,t,n)},d(e){e&&S(t)}}}();return{c(){t=A("label"),g&&g.c(),n=P(),r=A("input"),o=P(),s=A("button"),s.textContent="Download Template",N(r,"type","file"),N(r,"accept",".svg"),N(r,"class","svelte-1jxwqtv"),N(t,"class","dragging svelte-1jxwqtv"),N(s,"class","template svelte-1jxwqtv")},m(i,u){L(i,t,u),g&&g.m(t,null),x(t,n),x(t,r),L(i,o,u),L(i,s,u),l=!0,a||(c=[I(r,"input",e[15](Hd)),I(s,"click",Ud)],a=!0)},p(e,t){m&&m.p&&(!l||131076&t[0])&&h(m,d,e,e[17],l?p(d,e[17],t,zd):f(e[17]),Ad)},i(e){l||(be(g,e),l=!0)},o(e){we(g,e),l=!1},d(e){e&&S(t),g&&g.d(e),e&&S(o),e&&S(s),a=!1,i(c)}}}function Md(e){let t,n,r,o,s,l,a,c,u,d,p,h,f,m,g,$,y,b,w,k,E,_,C,O,M,j,q,U,B,F,G,V,J,K,Z,W,X,Y,Q,ee,te,re,ie,oe,se,ce,ue,de,pe,he,fe,me,ge,ve,$e,ye,ke,Ee,xe,_e,Ce,Le,Se,ze,Ae,Ie=e[14],je=[];for(let t=0;tTe(ce,"license",Ne)));let He=Object.keys(e[1].types),Ue=[];for(let t=0;te[25].call(G))),N(U,"data-tooltip","Tincture preview color, does not affect uploaded actual color. Charges must not have exact color defined. In this case charge will support all tunctures"),N(K,"class","label"),N(W,"class","svelte-1jxwqtv"),N(J,"data-tooltip","Link to the image source"),N(Q,"class","label"),N(te,"class","svelte-1jxwqtv"),N(Y,"data-tooltip","Image author or source portal name"),N(oe,"class","label"),N(ie,"data-tooltip","Image license"),N(he,"class","label"),N(me,"placeholder","Charge id"),me.required=!0,N(me,"class","svelte-1jxwqtv"),N(pe,"data-tooltip","Charge unique name (id)"),N($e,"class","label"),N(ke,"class","svelte-1jxwqtv"),void 0===e[6]&&le((()=>e[30].call(ke))),N(ve,"data-tooltip","Category to put a charge"),N(_e,"class","svelte-1jxwqtv"),N(Le,"class","svelte-1jxwqtv"),N(xe,"class","buttons svelte-1jxwqtv"),N(f,"class","inputs svelte-1jxwqtv")},m(i,o){L(i,t,o),x(t,n),x(n,r),x(n,s),x(t,l),l.innerHTML=e[4],L(i,a,o),L(i,c,o),x(c,u),x(c,d),x(c,p),R(p,e[4]),L(i,h,o),L(i,f,o),x(f,m),x(m,g),x(m,$),x(m,y),R(y,e[0].e),x(m,b),x(m,w),R(w,e[0].f),x(f,k),x(f,E),x(E,_),x(E,C),x(E,O),R(O,e[0].a),x(E,M),x(E,j),R(j,e[0].d),x(f,q),x(f,U),x(U,B),x(U,F),x(U,G);for(let e=0;eue=!1))),ce.$set(i),32&n[0]&&me.value!==e[5]&&R(me,e[5]),2&n[0]){let t;for(He=Object.keys(e[1].types),t=0;t{p[n]=null})),ye(),l=p[s],l?l.p(e,t):(l=p[s]=d[s](e),l.c()),be(l,1),l.m(o,null))},i(e){a||(be(l),a=!0)},o(e){we(l),a=!1},d(e){e&&S(t),p[s].d(),c=!1,i(u)}}}function qd({dataTransfer:{files:e,items:t}}){return e.length?[...e]:t.filter((({kind:e})=>"file"===e)).map((({getAsFile:e})=>e()))}function Hd({target:e}){const t=e.files?[...e.files]:[];return e.value="",t}function Ud(){fetch("charges/template.svg").then((e=>e.blob().then((e=>{const t=document.createElement("a");t.href=URL.createObjectURL(e),t.setAttribute("download","armoriaChargeTemplate.txt"),t.click()}))))}function Rd(e,t,n){let r,i,o,s;c(e,Ur,(e=>n(11,r=e))),c(e,Ar,(e=>n(34,i=e))),c(e,Sr,(e=>n(12,o=e))),c(e,zr,(e=>n(13,s=e)));let l,a,u,d,p,{$$slots:h={},$$scope:f}=t,m=!1,v=!1,$={a:1,b:0,c:0,d:1,e:0,f:0},y="uploaded",b="#d7374a";const w=["metals","colours","stains"].map((e=>Object.keys(i[e]))).flat();return e.$$set=e=>{"$$scope"in e&&n(17,f=e.$$scope)},e.$$.update=()=>{1&e.$$.dirty[0]&&function(e){if(!l)return;const t=document.createElement("html");t.innerHTML=l;const r=t.querySelector("g"),i=Object.values(e).join(" ");"1 0 0 1 0 0"===i?r.removeAttribute("transform"):r.setAttribute("transform","matrix("+i+")"),n(4,l=r.outerHTML)}($)},[$,Ja,m,v,l,a,y,b,u,d,p,r,o,s,w,e=>t=>{n(2,m=!1);const r=e(t),i=r.length?r[0]:[];i.type.match(/text.*|svg.*/)?(n(3,v=!0),n(5,a=cr(i.name)),function(e){const t=new FileReader;t.onload=function(e){const t=e.target.result,r=document.createElement("html");r.innerHTML=t,r.querySelectorAll("*").forEach((e=>{e.getAttributeNames().forEach((t=>{(t.includes("inkscape")||t.includes("sodipodi"))&&e.removeAttribute(t)}))}));const i=r.querySelector("g");if(!i)return Br.error("error.incorrectSvg"),void n(3,v=!1);const o=i.transform.baseVal.consolidate();if(o){const{a:e,b:t,c:r,d:i,e:s,f:l}=o.matrix,a=e=>+e.toFixed(4);n(0,$=Object.assign($,{a:a(e),b:a(t),c:a(r),d:a(i),e:a(s),f:a(l)}))}i.removeAttribute("id"),n(4,l=i.outerHTML)},t.readAsText(e)}(i)):Br.error("error.notSvgOrText")},function(){const e=Object.keys(Ja.types).map((e=>Object.keys(Ja[e]))).flat();if(n(5,a=cr(a)),!a||document.getElementById(a)||e.includes(a))return void Br.error("error.notUniqueName");Ja.types[y]||n(1,Ja.types[y]=6,Ja),Ja.single[y]||n(1,Ja.single[y]=6,Ja),n(1,Ja[y][a]=5,Ja);const t=document.createElement("html");t.innerHTML=l;const i=t.querySelector("g");i.id=a,u&&i.setAttribute("source",u),d&&i.setAttribute("license",d),p&&i.setAttribute("author",p),vd("defs").insertAdjacentHTML("beforeend",i.outerHTML),n(3,v=!1),g(Ur,r.vector=0,r),Br.success("success.chargeAdded")},f,h,()=>g(Ur,r.vector=0,r),function(){l=this.value,n(4,l)},function(){$.e=H(this.value),n(0,$)},function(){$.f=H(this.value),n(0,$)},function(){$.a=H(this.value),n(0,$)},function(){$.d=H(this.value),n(0,$)},function(){b=F(this),n(7,b),n(14,w)},function(){u=this.value,n(8,u)},function(){p=this.value,n(10,p)},function(e){d=e,n(9,d)},function(){a=this.value,n(5,a)},function(){y=F(this),n(6,y),n(1,Ja)},()=>n(3,v=!1),()=>n(2,m=!0),()=>n(2,m=!1)]}class Bd extends Ne{constructor(e){super(),je(this,e,Rd,Nd,s,{},null,[-1,-1])}}function Dd(e,{from:t,to:n},r={}){const i=getComputedStyle(e),s="none"===i.transform?"":i.transform,[l,a]=i.transformOrigin.split(" ").map(parseFloat),c=t.left+t.width*l/n.width-(n.left+l),u=t.top+t.height*a/n.height-(n.top+a),{delay:d=0,duration:p=(e=>120*Math.sqrt(e)),easing:h=oi}=r;return{delay:d,duration:o(p)?p(Math.sqrt(c*c+u*u)):p,easing:h,css:(e,r)=>{const i=r*c,o=r*u,l=e+r*t.width/n.width,a=e+r*t.height/n.height;return`transform: ${s} translate(${i}px, ${o}px) scale(${l}, ${a});`}}}function Fd(e,t,n){const r=e.slice();return r[29]=t[n].t,r[30]=t[n].type,r[31]=t,r[32]=n,r}function Gd(e,t,n){const r=e.slice();return r[33]=t[n],r}function Vd(e,t,n){const r=e.slice();return r[36]=t[n],r}function Jd(e,t,n){const r=e.slice();return r[30]=t[n],r}function Kd(e,t,n){const r=e.slice();return r[30]=t[n],r}function Zd(e,t){let n,r,i=t[5](`tinctures.${t[30]}`)+"";return{key:e,first:null,c(){n=A("th"),r=O(i),this.first=n},m(e,t){L(e,n,t),x(n,r)},p(e,n){t=e,34&n[0]&&i!==(i=t[5](`tinctures.${t[30]}`)+"")&&U(r,i)},d(e){e&&S(n)}}}function Wd(e,t){let n,r,i,o,s,l,a,c,u,d,p=t[3](t[36])+"";function h(...e){return t[16](t[36],t[30],...e)}return{key:e,first:null,c(){n=A("td"),r=A("input"),s=P(),l=A("span"),a=O("/ "),c=O(p),N(r,"type","number"),N(r,"min",i=t[6].includes(t[30])?1:0),N(r,"max","100"),N(r,"step","1"),r.value=o=t[1][t[36]][t[30]],N(r,"class","svelte-lk1zeb"),N(l,"class","totalChance svelte-lk1zeb"),N(n,"class","svelte-lk1zeb"),this.first=n},m(e,t){L(e,n,t),x(n,r),x(n,s),x(n,l),x(l,a),x(l,c),u||(d=I(r,"change",h),u=!0)},p(e,n){t=e,2&n[0]&&i!==(i=t[6].includes(t[30])?1:0)&&N(r,"min",i),2&n[0]&&o!==(o=t[1][t[36]][t[30]])&&(r.value=o),8&n[0]&&p!==(p=t[3](t[36])+"")&&U(c,p)},d(e){e&&S(n),u=!1,d()}}}function Xd(e,t){let n,r,i,o,s,l=t[5](`tinctures.${t[36]}`)+"",a=[],c=new Map,u=Object.keys(t[1][t[36]]);const d=e=>e[30];for(let e=0;ee[18].call(a))),N(l,"class","svelte-lk1zeb"),N(v,"type","color"),N(v,"class","svelte-lk1zeb"),N(g,"class","svelte-lk1zeb"),N(b,"type","number"),N(b,"min","0"),N(b,"max","100"),N(b,"step","1"),N(b,"class","svelte-lk1zeb"),N(y,"class","svelte-lk1zeb"),N(E,"class","actionButton svelte-lk1zeb"),N(k,"class","svelte-lk1zeb")},m(i,o){L(i,t,o),x(t,n),x(n,r),R(r,e[2].name),x(t,s),x(t,l),x(l,a),x(a,c),x(c,u),x(a,d),x(d,p),x(a,h),x(h,f),D(a,e[2].type),x(t,m),x(t,g),x(g,v),R(v,e[2].color),x(t,$),x(t,y),x(y,b),R(b,e[2].chance),x(t,w),x(t,k),x(k,E),C=!0,z||(T=[I(r,"input",e[17]),I(a,"change",e[18]),I(v,"input",e[19]),I(b,"input",e[20]),I(E,"click",e[11])],z=!0)},p(e,t){(!C||32&t[0]&&o!==(o=e[5]("tinctures.name")))&&N(r,"placeholder",o),4&t[0]&&r.value!==e[2].name&&R(r,e[2].name),(!C||32&t[0])&&M!==(M=e[5]("tinctures.metals")+"")&&U(u,M),(!C||32&t[0])&&j!==(j=e[5]("tinctures.colours")+"")&&U(p,j),(!C||32&t[0])&&q!==(q=e[5]("tinctures.stains")+"")&&U(f,q),4&t[0]&&D(a,e[2].type),4&t[0]&&R(v,e[2].color),4&t[0]&&H(b.value)!==e[2].chance&&R(b,e[2].chance)},i(e){C||(le((()=>{_||(_=_e(t,si,{},!0)),_.run(1)})),C=!0)},o(e){_||(_=_e(t,si,{},!1)),_.run(0),C=!1},d(e){e&&S(t),e&&_&&_.end(),z=!1,i(T)}}}function np(e){let t,n,r,o,s;function l(){return e[22](e[29])}return{c(){t=T("svg"),n=T("use"),N(n,"href","#undo-icon"),N(t,"width","12"),N(t,"height","12"),N(t,"data-tooltip",r=e[5]("tooltip.undoColorChange")),N(t,"class","svelte-lk1zeb")},m(e,r){L(e,t,r),x(t,n),o||(s=[I(t,"click",l),v(ri.call(null,t))],o=!0)},p(n,i){e=n,32&i[0]&&r!==(r=e[5]("tooltip.undoColorChange"))&&N(t,"data-tooltip",r)},d(e){e&&S(t),o=!1,i(s)}}}function rp(e){let t,n,r;function i(){return e[24](e[29],e[30])}return{c(){t=A("span"),t.textContent="×",N(t,"class","actionButton svelte-lk1zeb")},m(e,o){L(e,t,o),n||(r=I(t,"click",i),n=!0)},p(t,n){e=t},d(e){e&&S(t),n=!1,r()}}}function ip(e){let t,n,r,i,o;return{c(){t=A("span"),n=O("×"),N(t,"class","disabledButton svelte-lk1zeb"),N(t,"data-tooltip",r=e[5]("tooltip.defaultColor"))},m(e,r){L(e,t,r),x(t,n),i||(o=v(ri.call(null,t)),i=!0)},p(e,n){32&n[0]&&r!==(r=e[5]("tooltip.defaultColor"))&&N(t,"data-tooltip",r)},d(e){e&&S(t),i=!1,o()}}}function op(n,r){let o,s,l,a,c,u,d,p,h,f,m,g,$,b,w,k,_,C,z,T,M,j,q,H,B,D,F=r[15](r[29])+"",G=r[5](`tinctures.${r[30]}`)+"",V=r[3](r[30])+"",J=e;function K(){r[21].call(h,r[29])}let Z=wr[r[29]]&&r[0][r[29]]!==wr[r[29]]&&np(r);function Q(...e){return r[23](r[30],r[29],...e)}function ee(e,t){return wr[e[29]]?ip:rp}let te=ee(r),ne=te(r);return{key:n,first:null,c(){o=A("tr"),s=A("td"),l=O(F),a=P(),c=A("td"),u=O(G),d=P(),p=A("td"),h=A("input"),g=P(),Z&&Z.c(),$=P(),b=A("td"),w=A("input"),_=P(),C=A("span"),z=O("/ "),T=O(V),M=P(),j=A("td"),ne.c(),q=P(),N(s,"class","svelte-lk1zeb"),N(c,"class","svelte-lk1zeb"),N(h,"type","color"),N(h,"data-tooltip",f=r[5]("tooltip.changeColor")),N(h,"class","svelte-lk1zeb"),N(p,"class","svelte-lk1zeb"),N(w,"type","number"),N(w,"min","0"),N(w,"max","100"),N(w,"step","1"),w.value=k=r[1][r[30]][r[29]],N(w,"class","svelte-lk1zeb"),N(C,"class","totalChance svelte-lk1zeb"),N(b,"class","svelte-lk1zeb"),N(j,"class","svelte-lk1zeb"),this.first=o},m(e,t){L(e,o,t),x(o,s),x(s,l),x(o,a),x(o,c),x(c,u),x(o,d),x(o,p),x(p,h),R(h,r[0][r[29]]),x(p,g),Z&&Z.m(p,null),x(o,$),x(o,b),x(b,w),x(b,_),x(b,C),x(C,z),x(C,T),x(o,M),x(o,j),ne.m(j,null),x(o,q),B||(D=[I(h,"input",K),v(m=ri.call(null,h)),I(w,"change",Q)],B=!0)},p(e,t){r=e,16&t[0]&&F!==(F=r[15](r[29])+"")&&U(l,F),48&t[0]&&G!==(G=r[5](`tinctures.${r[30]}`)+"")&&U(u,G),32&t[0]&&f!==(f=r[5]("tooltip.changeColor"))&&N(h,"data-tooltip",f),17&t[0]&&R(h,r[0][r[29]]),wr[r[29]]&&r[0][r[29]]!==wr[r[29]]?Z?Z.p(r,t):(Z=np(r),Z.c(),Z.m(p,null)):Z&&(Z.d(1),Z=null),18&t[0]&&k!==(k=r[1][r[30]][r[29]])&&(w.value=k),24&t[0]&&V!==(V=r[3](r[30])+"")&&U(T,V),te===(te=ee(r))&&ne?ne.p(r,t):(ne.d(1),ne=te(r),ne&&(ne.c(),ne.m(j,null)))},r(){H=o.getBoundingClientRect()},f(){Y(o),J()},a(){J(),J=function(n,r,i,o){if(!r)return e;const s=n.getBoundingClientRect();if(r.left===s.left&&r.right===s.right&&r.top===s.top&&r.bottom===s.bottom)return e;const{delay:l=0,duration:a=300,easing:c=t,start:u=y()+l,end:d=u+a,tick:p=e,css:h}=i(n,{from:r,to:s},o);let f,m=!0,g=!1;function v(){h&&X(n,f),m=!1}return E((e=>{if(!g&&e>=u&&(g=!0),g&&e>=d&&(p(1,0),v()),!m)return!1;if(g){const t=0+1*c((e-u)/a);p(t,1-t)}return!0})),h&&(f=W(n,0,1,a,l,c,h)),l||(g=!0),p(0,1),v}(o,H,Dd,{})},d(e){e&&S(o),Z&&Z.d(),ne.d(),B=!1,i(D)}}}function sp(e){let t,n,r,o,s,l,a,c,u,d,p,h,f,m,g,v,$,y,b,w,k,E,_,C,T,M,j,q,H,R,B,D,F,G=[],V=new Map,J=[],K=new Map,Z=e[5]("tinctures.restore")+"",W=[],X=new Map,Y=Object.keys(e[1].field);const Q=e=>e[30];for(let t=0;te[36];for(let t=0;t<3;t+=1){let n=Vd(e,ee,t),r=te(n);K.set(r,J[t]=Xd(r,n))}function ne(e,t){return e[2].show?Qd:Yd}let re=ne(e),ie=re(e),oe=["name","type","color","chance","remove"],se=[];for(let t=0;t<5;t+=1)se[t]=ep(Gd(e,oe,t));let ae=e[2].show&&tp(e),ce=e[4];const ue=e=>e[29];for(let t=0;t{ae=null})),ye()),33595&t[0]){ce=e[4];for(let e=0;e{R||(R=_e(t,si,{},!0)),R.run(1)})),B=!0)},o(e){we(ae),e&&(R||(R=_e(t,si,{},!1)),R.run(0)),B=!1},d(e){e&&S(t);for(let e=0;en(5,o=e))),c(e,zr,(e=>n(0,s=e))),c(e,Ar,(e=>n(1,l=e))),c(e,Ur,(e=>n(26,a=e)));const u={show:!1,name:"",type:"colours",color:"#96C8FA",chance:3};for(const e in l)delete l[e].array;const d=["metals","colours","stains"];let p=[];function h(e,t){p.includes(e)?localStorage.setItem(e,JSON.stringify(t)):p.push(e)}function f(e,t,n){const r=n.target,i=+r.value,o=+r.min;if(!isNaN(i))return ie+t),0);if(i<1)return Br.error("error.totalChanceMustNotBeZero"),void(r.value=String(1))}g(Ar,l[e][t]=i,l)}}function v(e,t){delete l[t][e],Ar.set(l),delete s[e],zr.set(s)}return e.$$.update=()=>{2&e.$$.dirty[0]&&n(4,r=d.map((e=>Object.keys(l[e]).map((t=>({t:t,type:e}))))).flat()),2&e.$$.dirty[0]&&h("tinctures",l),1&e.$$.dirty[0]&&h("colors",s),2&e.$$.dirty[0]&&n(3,i=e=>Object.values(l[e]).reduce(((e,t)=>e+t),0))},[s,l,u,i,r,o,["metals","colours"],f,m,v,function(){n(2,u.show=!0,u),Br.info("info.tipAddTincture",8e3)},function(){n(2,u.show=!1,u)},function(){g(Ur,a.tinctures=0,a)},function(){const e=cr(u.name);e&&!s[e]?(g(Ar,l[u.type][e]=u.chance,l),g(zr,s[e]=u.color,s),n(2,u.show=!1,u),n(2,u.name="",u),Br.info("success.tinctureAdded")):Br.error("error.nonUniqueTincture")},function(){g(Ar,l=JSON.parse(JSON.stringify(kr)),l),g(zr,s=JSON.parse(JSON.stringify(wr)),s),localStorage.removeItem("tinctures"),localStorage.removeItem("colors"),p=[],Br.info("info.restoredDefaults")},function(e){const t=o(`tinctures.${e}`);return t.startsWith("tinctures.")?e:t},(e,t,n)=>f(e,t,n),function(){u.name=this.value,n(2,u)},function(){u.type=F(this),n(2,u)},function(){u.color=this.value,n(2,u)},function(){u.chance=H(this.value),n(2,u)},function(e){s[e]=this.value,zr.set(s),n(4,r),n(1,l)},e=>g(zr,s[e]=wr[e],s),(e,t,n)=>m(e,t,n),(e,t)=>v(e,t)]}class ap extends Ne{constructor(e){super(),je(this,e,lp,sp,s,{},null,[-1,-1])}}function cp(e){let t,n,r,i,o,s,l,a=e[0](e[1])+"";return{c(){t=A("div"),n=O(a),N(t,"class",m(e[2])+" svelte-1txtc79")},m(r,i){L(r,t,i),x(t,n),o=!0,s||(l=I(t,"click",e[3]),s=!0)},p(e,[t]){(!o||1&t)&&a!==(a=e[0](e[1])+"")&&U(n,a)},i(e){o||(le((()=>{i&&i.end(1),r=Ee(t,li,{y:200,duration:500}),r.start()})),o=!0)},o(e){r&&r.invalidate(),i=xe(t,si,{duration:300}),o=!1},d(e){e&&S(t),e&&i&&i.end(),s=!1,l()}}}function up(e,t,n){let r,i;c(e,Br,(e=>n(4,r=e))),c(e,or,(e=>n(0,i=e)));const{text:o,type:s,timeout:l}=r;ee((async()=>{const e=r.text;setTimeout((()=>{r?.text===e&&Br.clear()}),l)}));return[i,o,s,()=>Br.clear()]}class dp extends Ne{constructor(e){super(),je(this,e,up,cp,s,{})}}function pp(e){let t,n,r,i,o,s,l,a,c,u,d,p,h;r=new il({});const f=[mp,fp],m=[];function g(e,t){return e[5].edit?0:1}o=g(e),s=m[o]=f[o](e);let v=e[5].about&&gp(),$=e[5].license&&vp(),y=e[5].raster&&$p(),b=e[5].vector&&yp(),w=e[5].tinctures&&bp(),k=e[7]&&e[8]&&wp();return{c(){t=A("div"),n=A("header"),Oe(r.$$.fragment),i=P(),s.c(),l=P(),v&&v.c(),a=P(),$&&$.c(),c=P(),y&&y.c(),u=P(),b&&b.c(),d=P(),w&&w.c(),p=P(),k&&k.c(),B(t,"background-color",e[6]),N(t,"class","svelte-flez0f")},m(e,s){L(e,t,s),x(t,n),Pe(r,n,null),x(t,i),m[o].m(t,null),x(t,l),v&&v.m(t,null),x(t,a),$&&$.m(t,null),x(t,c),y&&y.m(t,null),x(t,u),b&&b.m(t,null),x(t,d),w&&w.m(t,null),x(t,p),k&&k.m(t,null),h=!0},p(e,n){let r=o;o=g(e),o===r?m[o].p(e,n):($e(),we(m[r],1,1,(()=>{m[r]=null})),ye(),s=m[o],s?s.p(e,n):(s=m[o]=f[o](e),s.c()),be(s,1),s.m(t,l)),e[5].about?v?32&n&&be(v,1):(v=gp(),v.c(),be(v,1),v.m(t,a)):v&&($e(),we(v,1,1,(()=>{v=null})),ye()),e[5].license?$?32&n&&be($,1):($=vp(),$.c(),be($,1),$.m(t,c)):$&&($e(),we($,1,1,(()=>{$=null})),ye()),e[5].raster?y?32&n&&be(y,1):(y=$p(),y.c(),be(y,1),y.m(t,u)):y&&($e(),we(y,1,1,(()=>{y=null})),ye()),e[5].vector?b?32&n&&be(b,1):(b=yp(),b.c(),be(b,1),b.m(t,d)):b&&($e(),we(b,1,1,(()=>{b=null})),ye()),e[5].tinctures?w?32&n&&be(w,1):(w=bp(),w.c(),be(w,1),w.m(t,p)):w&&($e(),we(w,1,1,(()=>{w=null})),ye()),e[7]&&e[8]?k?384&n&&be(k,1):(k=wp(),k.c(),be(k,1),k.m(t,null)):k&&($e(),we(k,1,1,(()=>{k=null})),ye()),(!h||64&n)&&B(t,"background-color",e[6])},i(e){h||(be(r.$$.fragment,e),be(s),be(v),be($),be(y),be(b),be(w),be(k),h=!0)},o(e){we(r.$$.fragment,e),we(s),we(v),we($),we(y),we(b),we(w),we(k),h=!1},d(e){e&&S(t),Me(r),m[o].d(),v&&v.d(),$&&$.d(),y&&y.d(),b&&b.d(),w&&w.d(),k&&k.d()}}}function hp(e){let t,n;return t=new oc({props:{c:e[5].c,seed:e[3],coaSize:e[4]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};32&n&&(r.c=e[5].c),8&n&&(r.seed=e[3]),16&n&&(r.coaSize=e[4]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function fp(e){let t,n;return t=new hd({props:{gallery:e[2],width:e[0],height:e[1]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};4&n&&(r.gallery=e[2]),1&n&&(r.width=e[0]),2&n&&(r.height=e[1]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function mp(e){let t,n;return t=new ld({props:{historyId:e[5].c,seed:e[3]}}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},p(e,n){const r={};32&n&&(r.historyId=e[5].c),8&n&&(r.seed=e[3]),t.$set(r)},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function gp(e){let t,n;return t=new dl({}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function vp(e){let t,n;return t=new yl({}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function $p(e){let t,n;return t=new Sd({}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function yp(e){let t,n;return t=new Bd({}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function bp(e){let t,n;return t=new ap({}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function wp(e){let t,n;return t=new dp({}),{c(){Oe(t.$$.fragment)},m(e,r){Pe(t,e,r),n=!0},i(e){n||(be(t.$$.fragment,e),n=!0)},o(e){we(t.$$.fragment,e),n=!1},d(e){Me(t,e)}}}function kp(e){let t,n,r,i,o;const s=[hp,pp],l=[];function a(e,t){return e[5].view?0:1}return t=a(e),n=l[t]=s[t](e),i=new Xr({}),{c(){n.c(),r=P(),Oe(i.$$.fragment)},m(e,n){l[t].m(e,n),L(e,r,n),Pe(i,e,n),o=!0},p(e,[i]){let o=t;t=a(e),t===o?l[t].p(e,i):($e(),we(l[o],1,1,(()=>{l[o]=null})),ye(),n=l[t],n?n.p(e,i):(n=l[t]=s[t](e),n.c()),be(n,1),n.m(r.parentNode,r))},i(e){o||(be(n),be(i.$$.fragment,e),o=!0)},o(e){we(n),we(i.$$.fragment,e),o=!1},d(e){l[t].d(e),e&&S(r),Me(i,e)}}}function Ep(e,t,n){let r,i,o,s,l,a,u,d,p,h,f,m,v;c(e,Ur,(e=>n(5,r=e))),c(e,qr,(e=>n(12,i=e))),c(e,Nr,(e=>n(13,o=e))),c(e,Hr,(e=>n(9,s=e))),c(e,Sr,(e=>n(14,l=e))),c(e,_r,(e=>n(10,a=e))),c(e,Jn,(e=>n(15,u=e))),c(e,Tr,(e=>n(6,d=e))),c(e,Br,(e=>n(7,p=e))),c(e,Er,(e=>n(8,h=e)));let $,y=[],b=200;return g(Jn,u="en",u),function(){const e=new URL(window.location.href),t="1"===e.searchParams.get("view"),s=+e.searchParams.get("size"),l=e.searchParams.get("coa"),a=e.searchParams.get("seed"),c=e.searchParams.get("from");if(!l&&!a)return;if(l){if(!function(e){try{return JSON.parse(e),!0}catch(e){return console.error(e),Br.error(e.message),!1}}(l))return;o.push(JSON.parse(l))}else a&&n(3,$=a);(l||a)&&("FMG"===c&&Br.info("info.tipFromFmg",1e4),g(qr,i[0]=[0],i),t?(s&&n(4,b=s),g(Ur,r.view=1,r)):g(Ur,r.edit=1,r))}(),e.$$.update=()=>{1024&e.$$.dirty&&n(0,[f,m,v]=function(e){const t=window.innerWidth,n=window.innerHeight-60,r=Math.ceil(t/e),i=Math.floor(t/r),o=Math.floor(n/i);return[r*o,i,Math.floor(n/o)]}(a),m,(n(1,v),n(10,a))),1536&e.$$.dirty&&function(){const e=o.length;if(i[s]||(r.edit?(g(qr,i[s]=i[s-1].slice(),i),g(qr,i[s][r.i]=e,i),n(3,$=void 0)):g(qr,i[s]=Array.from({length:f},((t,n)=>e+n++)),i),localStorage.getItem("shield")||g(Sr,l=lr(pr[lr(pr.types)]),l)),i[s].lengthvoid 0!==t[n]?t[n]:e+n)),i)}n(2,y=i[s].slice(0,f)),(r.edit||r.view)&&g(Ur,r.c=i[s][r.i],r)}()},[m,v,y,$,b,r,d,p,h,s,a]}(async()=>{try{const e=await dr("./locales/manifest.json")(),{files:t,languages:n}=e,r=t[0];if(!n?.length||!r)throw new Error("Could not load languages from manifest");for(const e of n)Nn(e,dr(`./locales/${e}${r}`));const i=localStorage.getItem("locale")||navigator.language,o=i.split("-")[0],s=n.find((e=>e===i||e===o))||"en";await function(e){const{formats:t}=e,n=qn(e,["formats"]),r=e.initialLocale||e.fallbackLocale;return Object.assign(Hn,n,{initialLocale:r}),t&&("number"in t&&Object.assign(Hn.formats.number,t.number),"date"in t&&Object.assign(Hn.formats.date,t.date),"time"in t&&Object.assign(Hn.formats.time,t.time)),Jn.set(r)}({fallbackLocale:"en",initialLocale:s}),Er.set(!0)}catch(e){console.error(e),Er.set(!0)}})();"serviceWorker"in navigator&&navigator.serviceWorker.register("./sw.js");const xp=new class extends Ne{constructor(e){super(),je(this,e,Ep,kp,s,{})}}({target:document.body,props:{}});return xp}();
//# sourceMappingURL=bundle.js.map
diff --git a/build/bundle.js.map b/build/bundle.js.map
index 4c760f82..9971d99d 100644
--- a/build/bundle.js.map
+++ b/build/bundle.js.map
@@ -1 +1 @@
-{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte/store/index.mjs","../../node_modules/deepmerge/dist/cjs.js","../../node_modules/tslib/tslib.es6.js","../../node_modules/@formatjs/icu-messageformat-parser/lib/error.js","../../node_modules/@formatjs/icu-messageformat-parser/lib/types.js","../../node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","../../node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","../../node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","../../node_modules/@formatjs/icu-skeleton-parser/lib/number.js","../../node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","../../node_modules/@formatjs/icu-messageformat-parser/lib/index.js","../../node_modules/@formatjs/fast-memoize/lib/index.js","../../node_modules/intl-messageformat/lib/src/error.js","../../node_modules/intl-messageformat/lib/src/formatters.js","../../node_modules/intl-messageformat/lib/src/core.js","../../node_modules/intl-messageformat/lib/index.js","../../node_modules/svelte-i18n/dist/runtime.esm.js","../../src/scripts/utils.ts","../../src/data/shields.js","../../src/config/defaults.ts","../../src/data/stores.ts","../../src/data/validators.ts","../../src/scripts/download.js","../../src/scripts/navbar.ts","../../src/components/WindowEvents.svelte","../../src/components/navigation/header/menu/Logo.svelte","../../src/scripts/tooltip.ts","../../node_modules/svelte/easing/index.mjs","../../node_modules/svelte/transition/index.mjs","../../src/components/navigation/header/shared/NavLabel.svelte","../../src/components/navigation/header/shared/NavItem.svelte","../../src/components/navigation/header/shared/NavButton.svelte","../../src/components/navigation/header/shared/Lock.svelte","../../src/components/navigation/header/menu/options/NavShieldOption.svelte","../../src/components/navigation/header/menu/options/NavColorsOption.svelte","../../src/config/options.js","../../src/components/navigation/header/menu/options/NavGradientOption.svelte","../../src/components/navigation/header/menu/options/NavDamaskingOption.svelte","../../src/components/navigation/header/menu/options/NavGalleryOption.svelte","../../src/components/navigation/header/shared/IconButton.svelte","../../src/components/shared/ColorInput.svelte","../../src/components/shared/NumberInput.svelte","../../src/components/navigation/header/menu/options/NavBorderOption.svelte","../../src/components/navigation/header/menu/options/NavBackgroundOption.svelte","../../src/components/shared/RangeInput.svelte","../../src/components/navigation/header/menu/options/NavScaleOption.svelte","../../src/components/navigation/header/menu/options/Options.svelte","../../src/components/navigation/header/menu/Rollback.svelte","../../src/components/navigation/header/menu/Reroll.svelte","../../src/components/navigation/header/menu/Save.svelte","../../src/components/navigation/header/menu/Upload.svelte","../../src/components/navigation/header/menu/Install.svelte","../../src/components/navigation/header/menu/License.svelte","../../src/components/navigation/header/menu/About.svelte","../../src/components/navigation/header/menu/Support.svelte","../../src/components/navigation/header/menu/Language.svelte","../../src/components/navigation/header/menu/Other.svelte","../../src/components/navigation/header/menu/Undo.svelte","../../src/components/navigation/header/menu/Redo.svelte","../../src/components/navigation/header/menu/Back.svelte","../../src/components/navigation/header/Navbar.svelte","../../src/components/navigation/AnimatedCOA.svelte","../../src/components/navigation/About.svelte","../../src/components/navigation/License.svelte","../../src/components/editor/Grid.svelte","../../src/components/editor/Positions.svelte","../../src/scripts/drag.js","../../src/data/templates.js","../../src/scripts/getters.js","../../src/components/object/Ordinary.svelte","../../src/components/object/Charge.svelte","../../src/components/object/Shield.svelte","../../src/components/object/COA.svelte","../../src/data/dataModel.js","../../src/scripts/generator.js","../../src/scripts/alea.js","../../src/components/navigation/Viewer.svelte","../../src/components/editor/Switch.svelte","../../src/components/editor/EditorAbove.svelte","../../src/components/editor/EditorItem.svelte","../../src/components/editor/EditorCharge.svelte","../../src/components/editor/EditorControls.svelte","../../src/components/editor/EditorDivided.svelte","../../src/components/editor/EditorDivision.svelte","../../src/components/editor/EditorLine.svelte","../../src/components/editor/EditorOrdinary.svelte","../../src/components/editor/EditorPattern.svelte","../../src/components/editor/EditorPosition.svelte","../../src/components/editor/EditorShift.svelte","../../src/components/editor/EditorSize.svelte","../../src/components/editor/EditorStroke.svelte","../../src/components/editor/EditorTincture.svelte","../../src/components/editor/EditorType.svelte","../../src/components/editor/Editor.svelte","../../src/components/navigation/Gallery.svelte","../../src/components/navigation/LicenseList.svelte","../../src/scripts/aliases.ts","../../src/components/navigation/UploadRaster.svelte","../../src/components/navigation/UploadVector.svelte","../../node_modules/svelte/animate/index.mjs","../../src/components/navigation/Tinctures.svelte","../../src/components/Message.svelte","../../src/components/App.svelte","../../src/scripts/i18n.ts","../../src/main.js"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentElement !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n node.parentNode.removeChild(node);\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration();\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n node.style.setProperty(key, value, important ? 'important' : '');\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, bubbles = false) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, false, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nclass HtmlTag {\n constructor() {\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes) {\n super();\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\n\nconst active_docs = new Set();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n active_docs.add(doc);\n const stylesheet = doc.__svelte_stylesheet || (doc.__svelte_stylesheet = append_empty_stylesheet(node).sheet);\n const current_rules = doc.__svelte_rules || (doc.__svelte_rules = {});\n if (!current_rules[name]) {\n current_rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n active_docs.forEach(doc => {\n const stylesheet = doc.__svelte_stylesheet;\n let i = stylesheet.cssRules.length;\n while (i--)\n stylesheet.deleteRule(i);\n doc.__svelte_rules = {};\n });\n active_docs.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail);\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n }\n };\n}\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n}\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\nlet flushing = false;\nconst seen_callbacks = new Set();\nfunction flush() {\n if (flushing)\n return;\n flushing = true;\n do {\n // first, call beforeUpdate functions\n // and update components\n for (let i = 0; i < dirty_components.length; i += 1) {\n const component = dirty_components[i];\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n flushing = false;\n seen_callbacks.clear();\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'ismap',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, classes_to_add) {\n const attributes = Object.assign({}, ...args);\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nconst escaped = {\n '\"': '"',\n \"'\": ''',\n '&': '&',\n '<': '<',\n '>': '>'\n};\nfunction escape(html) {\n return String(html).replace(/[\"'&<>]/g, match => escaped[match]);\n}\nfunction escape_attribute_value(value) {\n return typeof value === 'string' ? escape(value) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n return ` ${name}${value === true ? '' : `=${typeof value === 'string' ? JSON.stringify(escape(value)) : `\"${value}\"`}`}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, on_mount, on_destroy, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = on_mount.map(run).filter(is_function);\n if (on_destroy) {\n on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: null,\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.44.2' }, detail), true));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, escaped, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, listen, listen_dev, loop, loop_guard, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_each_argument, validate_each_keys, validate_slots, validate_store, xlink_attr };\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","export var ErrorKind;\n(function (ErrorKind) {\n /** Argument is unclosed (e.g. `{0`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n /** Argument is empty (e.g. `{}`). */\n ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n /** Argument is malformed (e.g. `{foo!}``) */\n ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n /** Expect an argument type (e.g. `{foo,}`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n /** Unsupported argument type (e.g. `{foo,foo}`) */\n ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n /** Expect an argument style (e.g. `{foo, number, }`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n /** The number skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n /** The date time skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n /** Missing select argument options (e.g. `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n /**\n * Expecting a message fragment after the `plural` or `selectordinal` selector\n * (e.g. `{foo, plural, one}`)\n */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n /**\n * Duplicate selectors in `plural` or `selectordinal` argument.\n * (e.g. {foo, plural, one {#} one {#}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n /** Duplicate selectors in `select` argument.\n * (e.g. {foo, select, apple {apple} apple {apple}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n /** Plural or select argument option must have `other` clause. */\n ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n /** The tag is malformed. (e.g. `foo ) */\n ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n /** The tag name is invalid. (e.g. `<123>foo123>`) */\n ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n /** The closing tag does not match the opening tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n /** The opening tag has unmatched closing tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n /**\n * XML-like tag\n */\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isTagElement(el) {\n return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.dateTime);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\n","/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'short' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) patterns are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: miliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n if (skeleton.length === 0) {\n throw new Error('Number skeleton cannot be empty');\n }\n // Parse the skeleton\n var stringTokens = skeleton\n .split(WHITE_SPACE_REGEX)\n .filter(function (x) { return x.length > 0; });\n var tokens = [];\n for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n var stringToken = stringTokens_1[_i];\n var stemAndOptions = stringToken.split('/');\n if (stemAndOptions.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n var option = options_1[_a];\n if (option.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n }\n tokens.push({ stem: stem, options: options });\n }\n return tokens;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n if (str[str.length - 1] === 'r') {\n result.roundingPriority = 'morePrecision';\n }\n else if (str[str.length - 1] === 's') {\n result.roundingPriority = 'lessPrecision';\n }\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n case '()':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n case '+!':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n case '()!':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n case '+?':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n case '()?':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n case '+_':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n // Engineering\n var result;\n if (stem[0] === 'E' && stem[1] === 'E') {\n result = {\n notation: 'engineering',\n };\n stem = stem.slice(2);\n }\n else if (stem[0] === 'E') {\n result = {\n notation: 'scientific',\n };\n stem = stem.slice(1);\n }\n if (result) {\n var signDisplay = stem.slice(0, 2);\n if (signDisplay === '+!') {\n result.signDisplay = 'always';\n stem = stem.slice(2);\n }\n else if (signDisplay === '+?') {\n result.signDisplay = 'exceptZero';\n stem = stem.slice(2);\n }\n if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n throw new Error('Malformed concise eng/scientific notation');\n }\n result.minimumIntegerDigits = stem.length;\n }\n return result;\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function parseNumberSkeleton(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n case '%':\n result.style = 'percent';\n continue;\n case '%x100':\n result.style = 'percent';\n result.scale = 100;\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n case ',_':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n case 'unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n case 'K':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n case 'KK':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n case 'integer-width':\n if (token.options.length > 1) {\n throw new RangeError('integer-width stems only accept a single optional option');\n }\n token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n if (g1) {\n result.minimumIntegerDigits = g2.length;\n }\n else if (g3 && g4) {\n throw new Error('We currently do not support maximum integer digits');\n }\n else if (g5) {\n throw new Error('We currently do not support exact integer digits');\n }\n return '';\n });\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n result.minimumIntegerDigits = token.stem.length;\n continue;\n }\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n // Precision\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n // precision-integer case\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (_, g1, g2, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n }\n // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n }\n // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n }\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\n }\n return '';\n });\n var opt = token.options[0];\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n if (opt === 'w') {\n result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });\n }\n else if (opt) {\n result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n }\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n if (conciseScientificAndEngineeringOpts) {\n result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n }\n }\n return result;\n}\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\".concat(SPACE_SEPARATOR_REGEX.source, \"*\"));\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(\"\".concat(SPACE_SEPARATOR_REGEX.source, \"*$\"));\nfunction createLocation(start, end) {\n return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith;\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n ? Number.isSafeInteger\n : function (n) {\n return (typeof n === 'number' &&\n isFinite(n) &&\n Math.floor(n) === n &&\n Math.abs(n) <= 0x1fffffffffffff);\n };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n /**\n * legacy Edge or Xbox One browser\n * Unicode flag support: supported\n * Pattern_Syntax support: not supported\n * See https://github.com/formatjs/formatjs/issues/2822\n */\n REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n ? // Native\n function startsWith(s, search, position) {\n return s.startsWith(search, position);\n }\n : // For IE11\n function startsWith(s, search, position) {\n return s.slice(position, position + search.length) === search;\n };\nvar fromCodePoint = hasNativeFromCodePoint\n ? String.fromCodePoint\n : // IE11\n function fromCodePoint() {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n var elements = '';\n var length = codePoints.length;\n var i = 0;\n var code;\n while (length > i) {\n code = codePoints[i++];\n if (code > 0x10ffff)\n throw RangeError(code + ' is not a valid code point');\n elements +=\n code < 0x10000\n ? String.fromCharCode(code)\n : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n }\n return elements;\n };\nvar fromEntries = \n// native\nhasNativeFromEntries\n ? Object.fromEntries\n : // Ponyfill\n function fromEntries(entries) {\n var obj = {};\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var _a = entries_1[_i], k = _a[0], v = _a[1];\n obj[k] = v;\n }\n return obj;\n };\nvar codePointAt = hasNativeCodePointAt\n ? // Native\n function codePointAt(s, index) {\n return s.codePointAt(index);\n }\n : // IE 11\n function codePointAt(s, index) {\n var size = s.length;\n if (index < 0 || index >= size) {\n return undefined;\n }\n var first = s.charCodeAt(index);\n var second;\n return first < 0xd800 ||\n first > 0xdbff ||\n index + 1 === size ||\n (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n second > 0xdfff\n ? first\n : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n };\nvar trimStart = hasTrimStart\n ? // Native\n function trimStart(s) {\n return s.trimStart();\n }\n : // Ponyfill\n function trimStart(s) {\n return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n };\nvar trimEnd = hasTrimEnd\n ? // Native\n function trimEnd(s) {\n return s.trimEnd();\n }\n : // Ponyfill\n function trimEnd(s) {\n return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n // Native\n var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var _a;\n IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n };\n}\nelse {\n // IE11\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var match = [];\n while (true) {\n var c = codePointAt(s, index);\n if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n break;\n }\n match.push(c);\n index += c >= 0x10000 ? 2 : 1;\n }\n return fromCodePoint.apply(void 0, match);\n };\n}\nvar Parser = /** @class */ (function () {\n function Parser(message, options) {\n if (options === void 0) { options = {}; }\n this.message = message;\n this.position = { offset: 0, line: 1, column: 1 };\n this.ignoreTag = !!options.ignoreTag;\n this.requiresOtherClause = !!options.requiresOtherClause;\n this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n }\n Parser.prototype.parse = function () {\n if (this.offset() !== 0) {\n throw Error('parser can only be used once');\n }\n return this.parseMessage(0, '', false);\n };\n Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n var elements = [];\n while (!this.isEOF()) {\n var char = this.char();\n if (char === 123 /* `{` */) {\n var result = this.parseArgument(nestingLevel, expectingCloseTag);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else if (char === 125 /* `}` */ && nestingLevel > 0) {\n break;\n }\n else if (char === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n var position = this.clonePosition();\n this.bump();\n elements.push({\n type: TYPE.pound,\n location: createLocation(position, this.clonePosition()),\n });\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n this.peek() === 47 // char code for '/'\n ) {\n if (expectingCloseTag) {\n break;\n }\n else {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n }\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n _isAlpha(this.peek() || 0)) {\n var result = this.parseTag(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else {\n var result = this.parseLiteral(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n }\n return { val: elements, err: null };\n };\n /**\n * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n * are accepted:\n *\n * ```\n * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"\" tagName (whitespace)* \">\"\n * tagName ::= [a-z] (PENChar)*\n * PENChar ::=\n * \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n * [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n * [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n * ```\n *\n * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n * since other tag-based engines like React allow it\n */\n Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n var startPosition = this.clonePosition();\n this.bump(); // `<`\n var tagName = this.parseTagName();\n this.bumpSpace();\n if (this.bumpIf('/>')) {\n // Self closing tag\n return {\n val: {\n type: TYPE.literal,\n value: \"<\".concat(tagName, \"/>\"),\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else if (this.bumpIf('>')) {\n var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n if (childrenResult.err) {\n return childrenResult;\n }\n var children = childrenResult.val;\n // Expecting a close tag\n var endTagStartPosition = this.clonePosition();\n if (this.bumpIf('')) {\n if (this.isEOF() || !_isAlpha(this.char())) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n var closingTagNameStartPosition = this.clonePosition();\n var closingTagName = this.parseTagName();\n if (tagName !== closingTagName) {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(closingTagNameStartPosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (!this.bumpIf('>')) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n return {\n val: {\n type: TYPE.tag,\n value: tagName,\n children: children,\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else {\n return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n }\n }\n else {\n return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n }\n };\n /**\n * This method assumes that the caller has peeked ahead for the first tag character.\n */\n Parser.prototype.parseTagName = function () {\n var startOffset = this.offset();\n this.bump(); // the first tag name character\n while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n this.bump();\n }\n return this.message.slice(startOffset, this.offset());\n };\n Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n var start = this.clonePosition();\n var value = '';\n while (true) {\n var parseQuoteResult = this.tryParseQuote(parentArgType);\n if (parseQuoteResult) {\n value += parseQuoteResult;\n continue;\n }\n var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n if (parseUnquotedResult) {\n value += parseUnquotedResult;\n continue;\n }\n var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n if (parseLeftAngleResult) {\n value += parseLeftAngleResult;\n continue;\n }\n break;\n }\n var location = createLocation(start, this.clonePosition());\n return {\n val: { type: TYPE.literal, value: value, location: location },\n err: null,\n };\n };\n Parser.prototype.tryParseLeftAngleBracket = function () {\n if (!this.isEOF() &&\n this.char() === 60 /* `<` */ &&\n (this.ignoreTag ||\n // If at the opening tag or closing tag position, bail.\n !_isAlphaOrSlash(this.peek() || 0))) {\n this.bump(); // `<`\n return '<';\n }\n return null;\n };\n /**\n * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n * a character that requires quoting (that is, \"only where needed\"), and works the same in\n * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n */\n Parser.prototype.tryParseQuote = function (parentArgType) {\n if (this.isEOF() || this.char() !== 39 /* `'` */) {\n return null;\n }\n // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n // Check if is valid escaped character\n switch (this.peek()) {\n case 39 /* `'` */:\n // double quote, should return as a single quote.\n this.bump();\n this.bump();\n return \"'\";\n // '{', '<', '>', '}'\n case 123:\n case 60:\n case 62:\n case 125:\n break;\n case 35: // '#'\n if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n break;\n }\n return null;\n default:\n return null;\n }\n this.bump(); // apostrophe\n var codePoints = [this.char()]; // escaped char\n this.bump();\n // read chars until the optional closing apostrophe is found\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch === 39 /* `'` */) {\n if (this.peek() === 39 /* `'` */) {\n codePoints.push(39);\n // Bump one more time because we need to skip 2 characters.\n this.bump();\n }\n else {\n // Optional closing apostrophe.\n this.bump();\n break;\n }\n }\n else {\n codePoints.push(ch);\n }\n this.bump();\n }\n return fromCodePoint.apply(void 0, codePoints);\n };\n Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n if (this.isEOF()) {\n return null;\n }\n var ch = this.char();\n if (ch === 60 /* `<` */ ||\n ch === 123 /* `{` */ ||\n (ch === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n (ch === 125 /* `}` */ && nestingLevel > 0)) {\n return null;\n }\n else {\n this.bump();\n return fromCodePoint(ch);\n }\n };\n Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n var openingBracePosition = this.clonePosition();\n this.bump(); // `{`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n if (this.char() === 125 /* `}` */) {\n this.bump();\n return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n // argument name\n var value = this.parseIdentifierIfPossible().value;\n if (!value) {\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n switch (this.char()) {\n // Simple argument: `{name}`\n case 125 /* `}` */: {\n this.bump(); // `}`\n return {\n val: {\n type: TYPE.argument,\n // value does not include the opening and closing braces.\n value: value,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n err: null,\n };\n }\n // Argument with options: `{name, format, ...}`\n case 44 /* `,` */: {\n this.bump(); // `,`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n }\n default:\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n };\n /**\n * Advance the parser until the end of the identifier, if it is currently on\n * an identifier character. Return an empty string otherwise.\n */\n Parser.prototype.parseIdentifierIfPossible = function () {\n var startingPosition = this.clonePosition();\n var startOffset = this.offset();\n var value = matchIdentifierAtIndex(this.message, startOffset);\n var endOffset = startOffset + value.length;\n this.bumpTo(endOffset);\n var endPosition = this.clonePosition();\n var location = createLocation(startingPosition, endPosition);\n return { value: value, location: location };\n };\n Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n var _a;\n // Parse this range:\n // {name, type, style}\n // ^---^\n var typeStartPosition = this.clonePosition();\n var argType = this.parseIdentifierIfPossible().value;\n var typeEndPosition = this.clonePosition();\n switch (argType) {\n case '':\n // Expecting a style string number, date, time, plural, selectordinal, or select.\n return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n case 'number':\n case 'date':\n case 'time': {\n // Parse this range:\n // {name, number, style}\n // ^-------^\n this.bumpSpace();\n var styleAndLocation = null;\n if (this.bumpIf(',')) {\n this.bumpSpace();\n var styleStartPosition = this.clonePosition();\n var result = this.parseSimpleArgStyleIfPossible();\n if (result.err) {\n return result;\n }\n var style = trimEnd(result.val);\n if (style.length === 0) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n styleAndLocation = { style: style, styleLocation: styleLocation };\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_1 = createLocation(openingBracePosition, this.clonePosition());\n // Extract style or skeleton\n if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n // Skeleton starts with `::`.\n var skeleton = trimStart(styleAndLocation.style.slice(2));\n if (argType === 'number') {\n var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n if (result.err) {\n return result;\n }\n return {\n val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n err: null,\n };\n }\n else {\n if (skeleton.length === 0) {\n return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n }\n var style = {\n type: SKELETON_TYPE.dateTime,\n pattern: skeleton,\n location: styleAndLocation.styleLocation,\n parsedOptions: this.shouldParseSkeletons\n ? parseDateTimeSkeleton(skeleton)\n : {},\n };\n var type = argType === 'date' ? TYPE.date : TYPE.time;\n return {\n val: { type: type, value: value, location: location_1, style: style },\n err: null,\n };\n }\n }\n // Regular style or no style.\n return {\n val: {\n type: argType === 'number'\n ? TYPE.number\n : argType === 'date'\n ? TYPE.date\n : TYPE.time,\n value: value,\n location: location_1,\n style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n },\n err: null,\n };\n }\n case 'plural':\n case 'selectordinal':\n case 'select': {\n // Parse this range:\n // {name, plural, options}\n // ^---------^\n var typeEndPosition_1 = this.clonePosition();\n this.bumpSpace();\n if (!this.bumpIf(',')) {\n return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n }\n this.bumpSpace();\n // Parse offset:\n // {name, plural, offset:1, options}\n // ^-----^\n //\n // or the first option:\n //\n // {name, plural, one {...} other {...}}\n // ^--^\n var identifierAndLocation = this.parseIdentifierIfPossible();\n var pluralOffset = 0;\n if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n if (!this.bumpIf(':')) {\n return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n this.bumpSpace();\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n if (result.err) {\n return result;\n }\n // Parse another identifier for option parsing\n this.bumpSpace();\n identifierAndLocation = this.parseIdentifierIfPossible();\n pluralOffset = result.val;\n }\n var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n if (optionsResult.err) {\n return optionsResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_2 = createLocation(openingBracePosition, this.clonePosition());\n if (argType === 'select') {\n return {\n val: {\n type: TYPE.select,\n value: value,\n options: fromEntries(optionsResult.val),\n location: location_2,\n },\n err: null,\n };\n }\n else {\n return {\n val: {\n type: TYPE.plural,\n value: value,\n options: fromEntries(optionsResult.val),\n offset: pluralOffset,\n pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n location: location_2,\n },\n err: null,\n };\n }\n }\n default:\n return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n }\n };\n Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n // Parse: {value, number, ::currency/GBP }\n //\n if (this.isEOF() || this.char() !== 125 /* `}` */) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bump(); // `}`\n return { val: true, err: null };\n };\n /**\n * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n */\n Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n var nestedBraces = 0;\n var startPosition = this.clonePosition();\n while (!this.isEOF()) {\n var ch = this.char();\n switch (ch) {\n case 39 /* `'` */: {\n // Treat apostrophe as quoting but include it in the style part.\n // Find the end of the quoted literal text.\n this.bump();\n var apostrophePosition = this.clonePosition();\n if (!this.bumpUntil(\"'\")) {\n return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n }\n this.bump();\n break;\n }\n case 123 /* `{` */: {\n nestedBraces += 1;\n this.bump();\n break;\n }\n case 125 /* `}` */: {\n if (nestedBraces > 0) {\n nestedBraces -= 1;\n }\n else {\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n }\n break;\n }\n default:\n this.bump();\n break;\n }\n }\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n };\n Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n var tokens = [];\n try {\n tokens = parseNumberSkeletonFromString(skeleton);\n }\n catch (e) {\n return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n }\n return {\n val: {\n type: SKELETON_TYPE.number,\n tokens: tokens,\n location: location,\n parsedOptions: this.shouldParseSkeletons\n ? parseNumberSkeleton(tokens)\n : {},\n },\n err: null,\n };\n };\n /**\n * @param nesting_level The current nesting level of messages.\n * This can be positive when parsing message fragment in select or plural argument options.\n * @param parent_arg_type The parent argument's type.\n * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n * the argument. It is a by-product of a previous parsing attempt.\n * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n * between a pair of opening and closing tags. The nested message will not parse beyond\n * the closing tag boundary.\n */\n Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n var _a;\n var hasOtherClause = false;\n var options = [];\n var parsedSelectors = new Set();\n var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n // Parse:\n // one {one apple}\n // ^--^\n while (true) {\n if (selector.length === 0) {\n var startPosition = this.clonePosition();\n if (parentArgType !== 'select' && this.bumpIf('=')) {\n // Try parse `={number}` selector\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n if (result.err) {\n return result;\n }\n selectorLocation = createLocation(startPosition, this.clonePosition());\n selector = this.message.slice(startPosition.offset, this.offset());\n }\n else {\n break;\n }\n }\n // Duplicate selector clauses\n if (parsedSelectors.has(selector)) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n }\n if (selector === 'other') {\n hasOtherClause = true;\n }\n // Parse:\n // one {one apple}\n // ^----------^\n this.bumpSpace();\n var openingBracePosition = this.clonePosition();\n if (!this.bumpIf('{')) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n if (fragmentResult.err) {\n return fragmentResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n options.push([\n selector,\n {\n value: fragmentResult.val,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n ]);\n // Keep track of the existing selectors\n parsedSelectors.add(selector);\n // Prep next selector clause.\n this.bumpSpace();\n (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n }\n if (options.length === 0) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n }\n if (this.requiresOtherClause && !hasOtherClause) {\n return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n return { val: options, err: null };\n };\n Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n var sign = 1;\n var startingPosition = this.clonePosition();\n if (this.bumpIf('+')) {\n }\n else if (this.bumpIf('-')) {\n sign = -1;\n }\n var hasDigits = false;\n var decimal = 0;\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n hasDigits = true;\n decimal = decimal * 10 + (ch - 48);\n this.bump();\n }\n else {\n break;\n }\n }\n var location = createLocation(startingPosition, this.clonePosition());\n if (!hasDigits) {\n return this.error(expectNumberError, location);\n }\n decimal *= sign;\n if (!isSafeInteger(decimal)) {\n return this.error(invalidNumberError, location);\n }\n return { val: decimal, err: null };\n };\n Parser.prototype.offset = function () {\n return this.position.offset;\n };\n Parser.prototype.isEOF = function () {\n return this.offset() === this.message.length;\n };\n Parser.prototype.clonePosition = function () {\n // This is much faster than `Object.assign` or spread.\n return {\n offset: this.position.offset,\n line: this.position.line,\n column: this.position.column,\n };\n };\n /**\n * Return the code point at the current position of the parser.\n * Throws if the index is out of bound.\n */\n Parser.prototype.char = function () {\n var offset = this.position.offset;\n if (offset >= this.message.length) {\n throw Error('out of bound');\n }\n var code = codePointAt(this.message, offset);\n if (code === undefined) {\n throw Error(\"Offset \".concat(offset, \" is at invalid UTF-16 code unit boundary\"));\n }\n return code;\n };\n Parser.prototype.error = function (kind, location) {\n return {\n val: null,\n err: {\n kind: kind,\n message: this.message,\n location: location,\n },\n };\n };\n /** Bump the parser to the next UTF-16 code unit. */\n Parser.prototype.bump = function () {\n if (this.isEOF()) {\n return;\n }\n var code = this.char();\n if (code === 10 /* '\\n' */) {\n this.position.line += 1;\n this.position.column = 1;\n this.position.offset += 1;\n }\n else {\n this.position.column += 1;\n // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n this.position.offset += code < 0x10000 ? 1 : 2;\n }\n };\n /**\n * If the substring starting at the current position of the parser has\n * the given prefix, then bump the parser to the character immediately\n * following the prefix and return true. Otherwise, don't bump the parser\n * and return false.\n */\n Parser.prototype.bumpIf = function (prefix) {\n if (startsWith(this.message, prefix, this.offset())) {\n for (var i = 0; i < prefix.length; i++) {\n this.bump();\n }\n return true;\n }\n return false;\n };\n /**\n * Bump the parser until the pattern character is found and return `true`.\n * Otherwise bump to the end of the file and return `false`.\n */\n Parser.prototype.bumpUntil = function (pattern) {\n var currentOffset = this.offset();\n var index = this.message.indexOf(pattern, currentOffset);\n if (index >= 0) {\n this.bumpTo(index);\n return true;\n }\n else {\n this.bumpTo(this.message.length);\n return false;\n }\n };\n /**\n * Bump the parser to the target offset.\n * If target offset is beyond the end of the input, bump the parser to the end of the input.\n */\n Parser.prototype.bumpTo = function (targetOffset) {\n if (this.offset() > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" must be greater than or equal to the current offset \").concat(this.offset()));\n }\n targetOffset = Math.min(targetOffset, this.message.length);\n while (true) {\n var offset = this.offset();\n if (offset === targetOffset) {\n break;\n }\n if (offset > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" is at invalid UTF-16 code unit boundary\"));\n }\n this.bump();\n if (this.isEOF()) {\n break;\n }\n }\n };\n /** advance the parser through all whitespace to the next non-whitespace code unit. */\n Parser.prototype.bumpSpace = function () {\n while (!this.isEOF() && _isWhiteSpace(this.char())) {\n this.bump();\n }\n };\n /**\n * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n * If the input has been exhausted, then this returns null.\n */\n Parser.prototype.peek = function () {\n if (this.isEOF()) {\n return null;\n }\n var code = this.char();\n var offset = this.offset();\n var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n return ((codepoint >= 97 && codepoint <= 122) ||\n (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n return (c === 45 /* '-' */ ||\n c === 46 /* '.' */ ||\n (c >= 48 && c <= 57) /* 0..9 */ ||\n c === 95 /* '_' */ ||\n (c >= 97 && c <= 122) /** a..z */ ||\n (c >= 65 && c <= 90) /* A..Z */ ||\n c == 0xb7 ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x203f && c <= 0x2040) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n return ((c >= 0x0009 && c <= 0x000d) ||\n c === 0x0020 ||\n c === 0x0085 ||\n (c >= 0x200e && c <= 0x200f) ||\n c === 0x2028 ||\n c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n return ((c >= 0x0021 && c <= 0x0023) ||\n c === 0x0024 ||\n (c >= 0x0025 && c <= 0x0027) ||\n c === 0x0028 ||\n c === 0x0029 ||\n c === 0x002a ||\n c === 0x002b ||\n c === 0x002c ||\n c === 0x002d ||\n (c >= 0x002e && c <= 0x002f) ||\n (c >= 0x003a && c <= 0x003b) ||\n (c >= 0x003c && c <= 0x003e) ||\n (c >= 0x003f && c <= 0x0040) ||\n c === 0x005b ||\n c === 0x005c ||\n c === 0x005d ||\n c === 0x005e ||\n c === 0x0060 ||\n c === 0x007b ||\n c === 0x007c ||\n c === 0x007d ||\n c === 0x007e ||\n c === 0x00a1 ||\n (c >= 0x00a2 && c <= 0x00a5) ||\n c === 0x00a6 ||\n c === 0x00a7 ||\n c === 0x00a9 ||\n c === 0x00ab ||\n c === 0x00ac ||\n c === 0x00ae ||\n c === 0x00b0 ||\n c === 0x00b1 ||\n c === 0x00b6 ||\n c === 0x00bb ||\n c === 0x00bf ||\n c === 0x00d7 ||\n c === 0x00f7 ||\n (c >= 0x2010 && c <= 0x2015) ||\n (c >= 0x2016 && c <= 0x2017) ||\n c === 0x2018 ||\n c === 0x2019 ||\n c === 0x201a ||\n (c >= 0x201b && c <= 0x201c) ||\n c === 0x201d ||\n c === 0x201e ||\n c === 0x201f ||\n (c >= 0x2020 && c <= 0x2027) ||\n (c >= 0x2030 && c <= 0x2038) ||\n c === 0x2039 ||\n c === 0x203a ||\n (c >= 0x203b && c <= 0x203e) ||\n (c >= 0x2041 && c <= 0x2043) ||\n c === 0x2044 ||\n c === 0x2045 ||\n c === 0x2046 ||\n (c >= 0x2047 && c <= 0x2051) ||\n c === 0x2052 ||\n c === 0x2053 ||\n (c >= 0x2055 && c <= 0x205e) ||\n (c >= 0x2190 && c <= 0x2194) ||\n (c >= 0x2195 && c <= 0x2199) ||\n (c >= 0x219a && c <= 0x219b) ||\n (c >= 0x219c && c <= 0x219f) ||\n c === 0x21a0 ||\n (c >= 0x21a1 && c <= 0x21a2) ||\n c === 0x21a3 ||\n (c >= 0x21a4 && c <= 0x21a5) ||\n c === 0x21a6 ||\n (c >= 0x21a7 && c <= 0x21ad) ||\n c === 0x21ae ||\n (c >= 0x21af && c <= 0x21cd) ||\n (c >= 0x21ce && c <= 0x21cf) ||\n (c >= 0x21d0 && c <= 0x21d1) ||\n c === 0x21d2 ||\n c === 0x21d3 ||\n c === 0x21d4 ||\n (c >= 0x21d5 && c <= 0x21f3) ||\n (c >= 0x21f4 && c <= 0x22ff) ||\n (c >= 0x2300 && c <= 0x2307) ||\n c === 0x2308 ||\n c === 0x2309 ||\n c === 0x230a ||\n c === 0x230b ||\n (c >= 0x230c && c <= 0x231f) ||\n (c >= 0x2320 && c <= 0x2321) ||\n (c >= 0x2322 && c <= 0x2328) ||\n c === 0x2329 ||\n c === 0x232a ||\n (c >= 0x232b && c <= 0x237b) ||\n c === 0x237c ||\n (c >= 0x237d && c <= 0x239a) ||\n (c >= 0x239b && c <= 0x23b3) ||\n (c >= 0x23b4 && c <= 0x23db) ||\n (c >= 0x23dc && c <= 0x23e1) ||\n (c >= 0x23e2 && c <= 0x2426) ||\n (c >= 0x2427 && c <= 0x243f) ||\n (c >= 0x2440 && c <= 0x244a) ||\n (c >= 0x244b && c <= 0x245f) ||\n (c >= 0x2500 && c <= 0x25b6) ||\n c === 0x25b7 ||\n (c >= 0x25b8 && c <= 0x25c0) ||\n c === 0x25c1 ||\n (c >= 0x25c2 && c <= 0x25f7) ||\n (c >= 0x25f8 && c <= 0x25ff) ||\n (c >= 0x2600 && c <= 0x266e) ||\n c === 0x266f ||\n (c >= 0x2670 && c <= 0x2767) ||\n c === 0x2768 ||\n c === 0x2769 ||\n c === 0x276a ||\n c === 0x276b ||\n c === 0x276c ||\n c === 0x276d ||\n c === 0x276e ||\n c === 0x276f ||\n c === 0x2770 ||\n c === 0x2771 ||\n c === 0x2772 ||\n c === 0x2773 ||\n c === 0x2774 ||\n c === 0x2775 ||\n (c >= 0x2794 && c <= 0x27bf) ||\n (c >= 0x27c0 && c <= 0x27c4) ||\n c === 0x27c5 ||\n c === 0x27c6 ||\n (c >= 0x27c7 && c <= 0x27e5) ||\n c === 0x27e6 ||\n c === 0x27e7 ||\n c === 0x27e8 ||\n c === 0x27e9 ||\n c === 0x27ea ||\n c === 0x27eb ||\n c === 0x27ec ||\n c === 0x27ed ||\n c === 0x27ee ||\n c === 0x27ef ||\n (c >= 0x27f0 && c <= 0x27ff) ||\n (c >= 0x2800 && c <= 0x28ff) ||\n (c >= 0x2900 && c <= 0x2982) ||\n c === 0x2983 ||\n c === 0x2984 ||\n c === 0x2985 ||\n c === 0x2986 ||\n c === 0x2987 ||\n c === 0x2988 ||\n c === 0x2989 ||\n c === 0x298a ||\n c === 0x298b ||\n c === 0x298c ||\n c === 0x298d ||\n c === 0x298e ||\n c === 0x298f ||\n c === 0x2990 ||\n c === 0x2991 ||\n c === 0x2992 ||\n c === 0x2993 ||\n c === 0x2994 ||\n c === 0x2995 ||\n c === 0x2996 ||\n c === 0x2997 ||\n c === 0x2998 ||\n (c >= 0x2999 && c <= 0x29d7) ||\n c === 0x29d8 ||\n c === 0x29d9 ||\n c === 0x29da ||\n c === 0x29db ||\n (c >= 0x29dc && c <= 0x29fb) ||\n c === 0x29fc ||\n c === 0x29fd ||\n (c >= 0x29fe && c <= 0x2aff) ||\n (c >= 0x2b00 && c <= 0x2b2f) ||\n (c >= 0x2b30 && c <= 0x2b44) ||\n (c >= 0x2b45 && c <= 0x2b46) ||\n (c >= 0x2b47 && c <= 0x2b4c) ||\n (c >= 0x2b4d && c <= 0x2b73) ||\n (c >= 0x2b74 && c <= 0x2b75) ||\n (c >= 0x2b76 && c <= 0x2b95) ||\n c === 0x2b96 ||\n (c >= 0x2b97 && c <= 0x2bff) ||\n (c >= 0x2e00 && c <= 0x2e01) ||\n c === 0x2e02 ||\n c === 0x2e03 ||\n c === 0x2e04 ||\n c === 0x2e05 ||\n (c >= 0x2e06 && c <= 0x2e08) ||\n c === 0x2e09 ||\n c === 0x2e0a ||\n c === 0x2e0b ||\n c === 0x2e0c ||\n c === 0x2e0d ||\n (c >= 0x2e0e && c <= 0x2e16) ||\n c === 0x2e17 ||\n (c >= 0x2e18 && c <= 0x2e19) ||\n c === 0x2e1a ||\n c === 0x2e1b ||\n c === 0x2e1c ||\n c === 0x2e1d ||\n (c >= 0x2e1e && c <= 0x2e1f) ||\n c === 0x2e20 ||\n c === 0x2e21 ||\n c === 0x2e22 ||\n c === 0x2e23 ||\n c === 0x2e24 ||\n c === 0x2e25 ||\n c === 0x2e26 ||\n c === 0x2e27 ||\n c === 0x2e28 ||\n c === 0x2e29 ||\n (c >= 0x2e2a && c <= 0x2e2e) ||\n c === 0x2e2f ||\n (c >= 0x2e30 && c <= 0x2e39) ||\n (c >= 0x2e3a && c <= 0x2e3b) ||\n (c >= 0x2e3c && c <= 0x2e3f) ||\n c === 0x2e40 ||\n c === 0x2e41 ||\n c === 0x2e42 ||\n (c >= 0x2e43 && c <= 0x2e4f) ||\n (c >= 0x2e50 && c <= 0x2e51) ||\n c === 0x2e52 ||\n (c >= 0x2e53 && c <= 0x2e7f) ||\n (c >= 0x3001 && c <= 0x3003) ||\n c === 0x3008 ||\n c === 0x3009 ||\n c === 0x300a ||\n c === 0x300b ||\n c === 0x300c ||\n c === 0x300d ||\n c === 0x300e ||\n c === 0x300f ||\n c === 0x3010 ||\n c === 0x3011 ||\n (c >= 0x3012 && c <= 0x3013) ||\n c === 0x3014 ||\n c === 0x3015 ||\n c === 0x3016 ||\n c === 0x3017 ||\n c === 0x3018 ||\n c === 0x3019 ||\n c === 0x301a ||\n c === 0x301b ||\n c === 0x301c ||\n c === 0x301d ||\n (c >= 0x301e && c <= 0x301f) ||\n c === 0x3020 ||\n c === 0x3030 ||\n c === 0xfd3e ||\n c === 0xfd3f ||\n (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n els.forEach(function (el) {\n delete el.location;\n if (isSelectElement(el) || isPluralElement(el)) {\n for (var k in el.options) {\n delete el.options[k].location;\n pruneLocation(el.options[k].value);\n }\n }\n else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n delete el.style.location;\n }\n else if ((isDateElement(el) || isTimeElement(el)) &&\n isDateTimeSkeleton(el.style)) {\n delete el.style.location;\n }\n else if (isTagElement(el)) {\n pruneLocation(el.children);\n }\n });\n}\nexport function parse(message, opts) {\n if (opts === void 0) { opts = {}; }\n opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n var result = new Parser(message, opts).parse();\n if (result.err) {\n var error = SyntaxError(ErrorKind[result.err.kind]);\n // @ts-expect-error Assign to error object\n error.location = result.err.location;\n // @ts-expect-error Assign to error object\n error.originalMessage = result.err.message;\n throw error;\n }\n if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n pruneLocation(result.val);\n }\n return result.val;\n}\nexport * from './types';\n","//\n// Main\n//\nexport default function memoize(fn, options) {\n var cache = options && options.cache ? options.cache : cacheDefault;\n var serializer = options && options.serializer ? options.serializer : serializerDefault;\n var strategy = options && options.strategy ? options.strategy : strategyDefault;\n return strategy(fn, {\n cache: cache,\n serializer: serializer,\n });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3);\n var cacheKey = serializer(args);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic;\n return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nfunction ObjectWithoutPrototypeCache() {\n this.cache = Object.create(null);\n}\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key];\n};\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value;\n};\nvar cacheDefault = {\n create: function create() {\n // @ts-ignore\n return new ObjectWithoutPrototypeCache();\n },\n};\nexport var strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic,\n};\n","import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n // When value supplied is invalid\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n // When we need specific Intl API but it's not available\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \".concat(this.code, \"] \").concat(this.message);\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\".concat(variableId, \"\\\": \\\"\").concat(value, \"\\\". Options are \\\"\").concat(Object.keys(options).join('\", \"'), \"\\\"\"), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n __extends(InvalidValueTypeError, _super);\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\".concat(value, \"\\\" must be of type \").concat(type), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n __extends(MissingValueError, _super);\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\".concat(variableId, \"\\\" was not provided to the string \\\"\").concat(originalMessage, \"\\\"\"), ErrorCode.MISSING_VALUE, originalMessage) || this;\n }\n return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, isTagElement, } from '@formatjs/icu-messageformat-parser';\nimport { MissingValueError, InvalidValueError, ErrorCode, FormatError, InvalidValueTypeError, } from './error';\nexport var PART_TYPE;\n(function (PART_TYPE) {\n PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\nfunction mergeLiteral(parts) {\n if (parts.length < 2) {\n return parts;\n }\n return parts.reduce(function (all, part) {\n var lastPart = all[all.length - 1];\n if (!lastPart ||\n lastPart.type !== PART_TYPE.literal ||\n part.type !== PART_TYPE.literal) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\nexport function isFormatXMLElementFn(el) {\n return typeof el === 'function';\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [\n {\n type: PART_TYPE.literal,\n value: els[0].value,\n },\n ];\n }\n var result = [];\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i];\n // Exit early for string parts.\n if (isLiteralElement(el)) {\n result.push({\n type: PART_TYPE.literal,\n value: el.value,\n });\n continue;\n }\n // TODO: should this part be literal type?\n // Replace `#` in plural rules with the actual numeric value.\n if (isPoundElement(el)) {\n if (typeof currentPluralValue === 'number') {\n result.push({\n type: PART_TYPE.literal,\n value: formatters.getNumberFormat(locales).format(currentPluralValue),\n });\n }\n continue;\n }\n var varName = el.value;\n // Enforce that all required values are provided by the caller.\n if (!(values && varName in values)) {\n throw new MissingValueError(varName, originalMessage);\n }\n var value = values[varName];\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (isDateElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.date[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTimeElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.time[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isNumberElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.number[el.style]\n : isNumberSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n if (style && style.scale) {\n value =\n value *\n (style.scale || 1);\n }\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTagElement(el)) {\n var children = el.children, value_1 = el.value;\n var formatFn = values[value_1];\n if (!isFormatXMLElementFn(formatFn)) {\n throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n }\n var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n var chunks = formatFn(parts.map(function (p) { return p.value; }));\n if (!Array.isArray(chunks)) {\n chunks = [chunks];\n }\n result.push.apply(result, chunks.map(function (c) {\n return {\n type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: c,\n };\n }));\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (isPluralElement(el)) {\n var opt = el.options[\"=\".concat(value)];\n if (!opt) {\n if (!Intl.PluralRules) {\n throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API, originalMessage);\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { __assign, __spreadArray } from \"tslib\";\nimport { parse } from '@formatjs/icu-messageformat-parser';\nimport memoize, { strategies } from '@formatjs/fast-memoize';\nimport { formatToParts, PART_TYPE, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n if (!c2) {\n return c1;\n }\n return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n return all;\n }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n if (!configs) {\n return defaultConfig;\n }\n return Object.keys(defaultConfig).reduce(function (all, k) {\n all[k] = mergeConfig(defaultConfig[k], configs[k]);\n return all;\n }, __assign({}, defaultConfig));\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\nfunction createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n }),\n getDateTimeFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n }),\n };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n var _this = this;\n if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n this.formatterCache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n };\n this.format = function (values) {\n var parts = _this.formatToParts(values);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n var result = parts.reduce(function (all, part) {\n if (!all.length ||\n part.type !== PART_TYPE.literal ||\n typeof all[all.length - 1] !== 'string') {\n all.push(part.value);\n }\n else {\n all[all.length - 1] += part.value;\n }\n return all;\n }, []);\n if (result.length <= 1) {\n return result[0] || '';\n }\n return result;\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.resolvedOptions = function () { return ({\n locale: Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n }); };\n this.getAst = function () { return _this.ast; };\n if (typeof message === 'string') {\n this.message = message;\n if (!IntlMessageFormat.__parse) {\n throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n }\n // Parse string messages into an AST.\n this.ast = IntlMessageFormat.__parse(message, {\n ignoreTag: opts === null || opts === void 0 ? void 0 : opts.ignoreTag,\n });\n }\n else {\n this.ast = message;\n }\n if (!Array.isArray(this.ast)) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n // Defined first because it's used to build the format pattern.\n this.locales = locales;\n this.formatters =\n (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n }\n Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n get: function () {\n if (!IntlMessageFormat.memoizedDefaultLocale) {\n IntlMessageFormat.memoizedDefaultLocale =\n new Intl.NumberFormat().resolvedOptions().locale;\n }\n return IntlMessageFormat.memoizedDefaultLocale;\n },\n enumerable: false,\n configurable: true\n });\n IntlMessageFormat.memoizedDefaultLocale = null;\n IntlMessageFormat.__parse = parse;\n // Default format options used as the prototype of the `formats` provided to the\n // constructor. These are used when constructing the internal Intl.NumberFormat\n // and Intl.DateTimeFormat instances.\n IntlMessageFormat.formats = {\n number: {\n integer: {\n maximumFractionDigits: 0,\n },\n currency: {\n style: 'currency',\n },\n percent: {\n style: 'percent',\n },\n },\n date: {\n short: {\n month: 'numeric',\n day: 'numeric',\n year: '2-digit',\n },\n medium: {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n full: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n },\n time: {\n short: {\n hour: 'numeric',\n minute: 'numeric',\n },\n medium: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n },\n long: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n full: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n },\n };\n return IntlMessageFormat;\n}());\nexport { IntlMessageFormat };\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { IntlMessageFormat } from './src/core';\nexport * from './src/formatters';\nexport * from './src/core';\nexport * from './src/error';\nexport default IntlMessageFormat;\n","import{writable as e,derived as n}from\"svelte/store\";import t from\"deepmerge\";import o from\"intl-messageformat\";const r={},i=(e,n,t)=>t?(n in r||(r[n]={}),e in r[n]||(r[n][e]=t),t):t,l=(e,n)=>{if(null==n)return;if(n in r&&e in r[n])return r[n][e];const t=E(n);for(let o=0;o0){const n=t.slice(e,t.length).join(\".\");if(n in o){o=o[n];break}}o=o[t[e]]}else o=void 0;return o}(function(e){return a[e]||null}(e),n)}function m(e,...n){delete r[e],s.update((o=>(o[e]=t.all([o[e]||{},...n]),o)))}const f=n([s],(([e])=>Object.keys(e)));s.subscribe((e=>a=e));const d={};function g(e){return d[e]}function w(e){return null!=e&&E(e).some((e=>{var n;return null===(n=g(e))||void 0===n?void 0:n.size}))}function h(e,n){return Promise.all(n.map((n=>(function(e,n){d[e].delete(n),0===d[e].size&&delete d[e]}(e,n),n().then((e=>e.default||e)))))).then((n=>m(e,...n)))}const p={};function b(e){if(!w(e))return e in p?p[e]:Promise.resolve();const n=function(e){return E(e).map((e=>{const n=g(e);return[e,n?[...n]:[]]})).filter((([,e])=>e.length>0))}(e);return p[e]=Promise.all(n.map((([e,n])=>h(e,n)))).then((()=>{if(w(e))return b(e);delete p[e]})),p[e]}function y(e,n){g(e)||function(e){d[e]=new Set}(e);const t=g(e);g(e).has(n)||(u(e)||s.update((n=>(n[e]={},n))),t.add(n))}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */function v(e,n){var t={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&n.indexOf(o)<0&&(t[o]=e[o]);if(null!=e&&\"function\"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);rt.slice(0,n+1).join(\"-\"))).reverse()}function E(e,n=j().fallbackLocale){const t=x(e);return n?[...new Set([...t,...x(n)])]:t}function D(){return null!=L?L:void 0}T.subscribe((e=>{L=null!=e?e:void 0,\"undefined\"!=typeof window&&null!=e&&document.documentElement.setAttribute(\"lang\",e)}));const M=Object.assign(Object.assign({},T),{set:e=>{if(e&&function(e){if(null==e)return;const n=E(e);for(let e=0;ek.set(!0)),n):k.set(!0),b(e).then((()=>{T.set(e)})).finally((()=>{clearTimeout(t),k.set(!1)}))}return T.set(e)}}),P=(e,n)=>{const t=e.split(\"&\").find((e=>0===e.indexOf(`${n}=`)));return t?t.split(\"=\").pop():null},S=(e,n)=>{const t=n.exec(e);return t&&t[1]||null},N=e=>\"undefined\"==typeof window?null:S(window.location.hostname,e),A=e=>\"undefined\"==typeof window?null:S(window.location.pathname,e),I=()=>\"undefined\"==typeof window?null:window.navigator.language||window.navigator.languages[0],F=e=>\"undefined\"==typeof window?null:P(window.location.search.substr(1),e),z=e=>\"undefined\"==typeof window?null:P(window.location.hash.substr(1),e),Z=e=>{const n=Object.create(null);return t=>{const o=JSON.stringify(t);return o in n?n[o]:n[o]=e(t)}},C=(e,n)=>{const{formats:t}=j();if(e in t&&n in t[e])return t[e][n];throw new Error(`[svelte-i18n] Unknown \"${n}\" ${e} format.`)},G=Z((e=>{var{locale:n,format:t}=e,o=v(e,[\"locale\",\"format\"]);if(null==n)throw new Error('[svelte-i18n] A \"locale\" must be set to format numbers');return t&&(o=C(\"number\",t)),new Intl.NumberFormat(n,o)})),J=Z((e=>{var{locale:n,format:t}=e,o=v(e,[\"locale\",\"format\"]);if(null==n)throw new Error('[svelte-i18n] A \"locale\" must be set to format dates');return t?o=C(\"date\",t):0===Object.keys(o).length&&(o=C(\"date\",\"short\")),new Intl.DateTimeFormat(n,o)})),U=Z((e=>{var{locale:n,format:t}=e,o=v(e,[\"locale\",\"format\"]);if(null==n)throw new Error('[svelte-i18n] A \"locale\" must be set to format time values');return t?o=C(\"time\",t):0===Object.keys(o).length&&(o=C(\"time\",\"short\")),new Intl.DateTimeFormat(n,o)})),_=(e={})=>{var{locale:n=D()}=e,t=v(e,[\"locale\"]);return G(Object.assign({locale:n},t))},q=(e={})=>{var{locale:n=D()}=e,t=v(e,[\"locale\"]);return J(Object.assign({locale:n},t))},B=(e={})=>{var{locale:n=D()}=e,t=v(e,[\"locale\"]);return U(Object.assign({locale:n},t))},H=Z(((e,n=D())=>new o(e,n,j().formats,{ignoreTag:j().ignoreTag}))),K=(e,n={})=>{let t=n;\"object\"==typeof e&&(t=e,e=t.id);const{values:o,locale:r=D(),default:i}=t;if(null==r)throw new Error(\"[svelte-i18n] Cannot format a message without first setting the initial locale.\");let a=l(e,r);if(a){if(\"string\"!=typeof a)return console.warn(`[svelte-i18n] Message with id \"${e}\" must be of type \"string\", found: \"${typeof a}\". Gettin its value through the \"$format\" method is deprecated; use the \"json\" method instead.`),a}else j().warnOnMissingMessages&&console.warn(`[svelte-i18n] The message \"${e}\" was not found in \"${E(r).join('\", \"')}\".${w(D())?\"\\n\\nNote: there are at least one loader still registered to this locale that wasn't executed.\":\"\"}`),a=null!=i?i:e;if(!o)return a;let s=a;try{s=H(a,r).format(o)}catch(n){console.warn(`[svelte-i18n] Message \"${e}\" has syntax error:`,n.message)}return s},Q=(e,n)=>B(n).format(e),R=(e,n)=>q(n).format(e),V=(e,n)=>_(n).format(e),W=(e,n=D())=>l(e,n),X=n([M,s],(()=>K)),Y=n([M],(()=>Q)),ee=n([M],(()=>R)),ne=n([M],(()=>V)),te=n([M,s],(()=>W));function oe(e){return e}function re(e){return b(e||D()||j().initialLocale)}export{X as _,m as addMessages,ee as date,oe as defineMessages,s as dictionary,X as format,q as getDateFormatter,z as getLocaleFromHash,N as getLocaleFromHostname,I as getLocaleFromNavigator,A as getLocaleFromPathname,F as getLocaleFromQueryString,H as getMessageFormatter,_ as getNumberFormatter,B as getTimeFormatter,$ as init,k as isLoading,te as json,M as locale,f as locales,ne as number,y as register,X as t,Y as time,re as waitLocale};\n","export const forEach = (selector, callback) => {\n Array.from(document.querySelectorAll(selector)).forEach(element => {\n callback(element);\n });\n};\nexport function ra(array) {\n return array[Math.floor(Math.random() * array.length)];\n}\n// return random value from weighted array\nexport function rw(object, save = true) {\n if (object.array) {\n return ra(object.array);\n }\n const array = [];\n for (const key in object) {\n for (let i = 0; i < object[key]; i++) {\n array.push(key);\n }\n }\n if (save) {\n Object.defineProperty(object, \"array\", {\n enumerable: false,\n configurable: true,\n writable: false,\n value: array\n });\n }\n return ra(array);\n}\nexport function P(probability) {\n return Math.random() < probability;\n}\nexport function camelize(str) {\n return str\n .toLowerCase()\n .replace(/\\.[^/.]+$/, \"\") // remove extension\n .replace(/[()]/g, \"\") // remove parentheses\n .replace(/[^a-zA-Z0-9]+(.)/g, (m, c) => c.toUpperCase())\n .replace(/^[0-9]/, \"_\"); // first char should not be a number\n}\nexport const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1);\nexport function link(url, text) {\n return `${text} `;\n}\nexport function openURL(url) {\n return window.open(url, \"_blank\");\n}\nexport const minmax = (value, min, max) => {\n return Math.max(Math.min(Math.round(value), max), min);\n};\nexport const fetcher = (url) => () => {\n return fetch(url).then(result => result.json());\n};\n","export const shields = {\n types: {basic: 10, regional: 2, historical: 1, specific: 1, banner: 1, simple: 2, fantasy: 1, middleEarth: 0},\n basic: {heater: 12, spanish: 6, french: 1},\n regional: {horsehead: 1, horsehead2: 1, polish: 1, hessen: 1, swiss: 1},\n historical: {boeotian: 1, roman: 2, kite: 1, oldFrench: 5, renaissance: 2, baroque: 2},\n specific: {targe: 1, targe2: 0, pavise: 5, wedged: 10},\n banner: {flag: 1, pennon: 0, guidon: 0, banner: 0, dovetail: 1, gonfalon: 5, pennant: 0},\n simple: {round: 12, oval: 6, vesicaPiscis: 1, square: 1, diamond: 2, no: 0},\n middleEarth: {noldor: 1, gondor: 1, easterling: 1, erebor: 1, ironHills: 1, urukHai: 1, moriaOrc: 1},\n fantasy: {fantasy1: 2, fantasy2: 2, fantasy3: 1, fantasy4: 1, fantasy5: 3}\n};\n\nexport const shieldTypes = [\"basic\", \"regional\", \"historical\", \"specific\", \"banner\", \"simple\", \"middleEarth\", \"fantasy\"];\n\nexport const shieldPaths = {\n heater: \"m25,25 h150 v50 a150,150,0,0,1,-75,125 a150,150,0,0,1,-75,-125 z\",\n spanish: \"m25,25 h150 v100 a75,75,0,0,1,-150,0 z\",\n french: \"m 25,25 h 150 v 139.15 c 0,41.745 -66,18.15 -75,36.3 -9,-18.15 -75,5.445 -75,-36.3 v 0 z\",\n horsehead:\n \"m 20,40 c 0,60 40,80 40,100 0,10 -4,15 -0.35,30 C 65,185.7 81,200 100,200 c 19.1,0 35.3,-14.6 40.5,-30.4 C 144.2,155 140,150 140,140 140,120 180,100 180,40 142.72,40 150,15 100,15 55,15 55,40 20,40 Z\",\n horsehead2: \"M60 20c-5 20-10 35-35 55 25 35 35 65 30 100 20 0 35 10 45 26 10-16 30-26 45-26-5-35 5-65 30-100a87 87 0 01-35-55c-25 3-55 3-80 0z\",\n polish:\n \"m 90.3,6.3 c -12.7,0 -20.7,10.9 -40.5,14 0,11.8 -4.9,23.5 -11.4,31.1 0,0 12.7,6 12.7,19.3 C 51.1,90.8 30,90.8 30,90.8 c 0,0 -3.6,7.4 -3.6,22.4 0,34.3 23.1,60.2 40.7,68.2 17.6,8 27.7,11.4 32.9,18.6 5.2,-7.3 15.3,-10.7 32.8,-18.6 17.6,-8 40.7,-33.9 40.7,-68.2 0,-15 -3.6,-22.4 -3.6,-22.4 0,0 -21.1,0 -21.1,-20.1 0,-13.3 12.7,-19.3 12.7,-19.3 C 155.1,43.7 150.2,32.1 150.2,20.3 130.4,17.2 122.5,6.3 109.7,6.3 102.5,6.3 100,10 100,10 c 0,0 -2.5,-3.7 -9.7,-3.7 z\",\n hessen: \"M170 20c4 5 8 13 15 20 0 0-10 0-10 15 0 100-15 140-75 145-65-5-75-45-75-145 0-15-10-15-10-15l15-20c0 15 10-5 70-5s70 20 70 5z\",\n swiss:\n \"m 25,20 c -0.1,0 25.2,8.5 37.6,8.5 C 75.1,28.5 99.1,20 100,20 c 0.6,0 24.9,8.5 37.3,8.5 C 149.8,28.5 174.4,20 175,20 l -0.3,22.6 C 173.2,160.3 100,200 100,200 100,200 26.5,160.9 25.2,42.6 Z\",\n boeotian:\n \"M150 115c-5 0-10-5-10-15s5-15 10-15c10 0 7 10 15 10 10 0 0-30 0-30-10-25-30-55-65-55S45 40 35 65c0 0-10 30 0 30 8 0 5-10 15-10 5 0 10 5 10 15s-5 15-10 15c-10 0-7-10-15-10-10 0 0 30 0 30 10 25 30 55 65 55s55-30 65-55c0 0 10-30 0-30-8 0-5 10-15 10z\",\n roman: \"m 160,170 c -40,20 -80,20 -120,0 V 30 C 80,10 120,10 160,30 Z\",\n kite: \"m 53.3,46.4 c 0,4.1 1,12.3 1,12.3 7.1,55.7 45.7,141.3 45.7,141.3 0,0 38.6,-85.6 45.7,-141.2 0,0 1,-8.1 1,-12.3 C 146.7,20.9 125.8,0.1 100,0.1 74.2,0.1 53.3,20.9 53.3,46.4 Z\",\n oldFrench: \"m25,25 h150 v75 a100,100,0,0,1,-75,100 a100,100,0,0,1,-75,-100 z\",\n renaissance:\n \"M 25,33.9 C 33.4,50.3 36.2,72.9 36.2,81.7 36.2,109.9 25,122.6 25,141 c 0,29.4 24.9,44.1 40.2,47.7 15.3,3.7 29.3,0 34.8,11.3 5.5,-11.3 19.6,-7.6 34.8,-11.3 C 150.1,185 175,170.3 175,141 c 0,-18.4 -11.2,-31.1 -11.2,-59.3 0,-8.8 2.8,-31.3 11.2,-47.7 L 155.7,14.4 C 138.2,21.8 119.3,25.7 100,25.7 c -19.3,0 -38.2,-3.9 -55.7,-11.3 z\",\n baroque:\n \"m 100,25 c 18,0 50,2 75,14 v 37 l -2.7,3.2 c -4.9,5.4 -6.6,9.6 -6.7,16.2 0,6.5 2,11.6 6.9,17.2 l 2.8,3.1 v 10.2 c 0,17.7 -2.2,27.7 -7.8,35.9 -5,7.3 -11.7,11.3 -32.3,19.4 -12.6,5 -20.2,8.8 -28.6,14.5 C 103.3,198 100,200 100,200 c 0,0 -2.8,-2.3 -6.4,-4.7 C 85.6,189.8 78,186 65,180.9 32.4,168.1 26.9,160.9 25.8,129.3 L 25,116 l 3.3,-3.3 c 4.8,-5.2 7,-10.7 7,-17.3 0,-6.8 -1.8,-11.1 -6.5,-16.1 L 25,76 V 39 C 50,27 82,25 100,25 Z\",\n targe:\n \"m 20,35 c 15,0 115,-60 155,-10 -5,10 -15,15 -10,50 5,45 10,70 -10,90 C 125,195 75,195 50,175 25,150 30,130 35,85 50,95 65,85 65,70 65,50 50,45 40,50 30,55 27,65 30,70 23,73 20,70 14,70 11,60 20,45 20,35 Z\",\n targe2:\n \"m 84,32.2 c 6.2,-1 19.5,-31.4 94.1,-20.2 -30.57,33.64 -21.66,67.37 -11.2,95 20.2,69.5 -41.17549,84.7 -66.88,84.7 C 74.32,191.7071 8.38,168.95 32,105.9 36.88,92.88 31,89 31,82.6 35.15,82.262199 56.79,86.17 56.5,69.8 56.20,52.74 42.2,47.9 25.9,55.2 25.9,51.4 39.8,6.7 84,32.2 Z\",\n pavise: \"M95 7L39.9 37.3a10 10 0 00-5.1 9.5L46 180c.4 5.2 3.7 10 9 10h90c5.3 0 9.6-4.8 10-10l10.6-133.2a10 10 0 00-5-9.5L105 7c-4.2-2.3-6.2-2.3-10 0z\",\n wedged: \"m 51.2,19 h 96.4 c 3.1,12.7 10.7,20.9 26.5,20.8 C 175.7,94.5 165.3,144.3 100,200 43.5,154.2 22.8,102.8 25.1,39.7 37,38.9 47.1,34.7 51.2,19 Z\",\n round: \"m 185,100 a 85,85 0 0 1 -85,85 85,85 0 0 1 -85,-85 85,85 0 0 1 85,-85 85,85 0 0 1 85,85\",\n oval: \"m 32.3,99.5 a 67.7,93.7 0 1 1 0,1.3 z\",\n vesicaPiscis: \"M 100,0 C 63.9,20.4 41,58.5 41,100 c 0,41.5 22.9,79.6 59,100 36.1,-20.4 59,-58.5 59,-100 C 159,58.5 136.1,20.4 100,0 Z\",\n square: \"M 25,25 H 175 V 175 H 25 Z\",\n diamond: \"M 25,100 100,200 175,100 100,0 Z\",\n no: \"m0,0 h200 v200 h-200 z\",\n flag: \"M 10,40 h180 v120 h-180 Z\",\n pennon: \"M 10,40 l190,60 -190,60 Z\",\n guidon: \"M 10,40 h190 l-65,60 65,60 h-190 Z\",\n banner: \"m 25,25 v 170 l 25,-40 25,40 25,-40 25,40 25,-40 25,40 V 25 Z\",\n dovetail: \"m 25,25 v 175 l 75,-40 75,40 V 25 Z\",\n gonfalon: \"m 25,25 v 125 l 75,50 75,-50 V 25 Z\",\n pennant: \"M 25,15 100,200 175,15 Z\",\n fantasy1: \"M 100,5 C 85,30 40,35 15,40 c 40,35 20,90 40,115 15,25 40,30 45,45 5,-15 30,-20 45,-45 20,-25 0,-80 40,-115 C 160,35 115,30 100,5 Z\",\n fantasy2:\n \"m 152,21 c 0,0 -27,14 -52,-4 C 75,35 48,21 48,21 50,45 30,55 30,75 60,75 60,115 32,120 c 3,40 53,50 68,80 15,-30 65,-40 68,-80 -28,-5 -28,-45 2,-45 C 170,55 150,45 152,21 Z\",\n fantasy3: \"M 167,67 C 165,0 35,0 33,67 c 32,-7 27,53 -3,43 -5,45 60,65 70,90 10,-25 75,-47.51058 70,-90 -30,10 -35,-50 -3,-43 z\",\n fantasy4: \"M100 9C55 48 27 27 13 39c23 50 3 119 49 150 14 9 28 11 38 11s27-4 38-11c55-39 24-108 49-150-14-12-45 7-87-30z\",\n fantasy5: \"M 100,0 C 75,25 30,25 30,25 c 0,69 20,145 70,175 50,-30 71,-106 70,-175 0,0 -45,0 -70,-25 z\",\n noldor: \"m 55,75 h 2 c 3,-25 38,-10 3,20 15,50 30,75 40,105 10,-30 25,-55 40,-105 -35,-30 0,-45 3,-20 h 2 C 150,30 110,20 100,0 90,20 50,30 55,75 Z\",\n gondor: \"m 100,200 c 15,-15 38,-35 45,-60 h 5 V 30 h -5 C 133,10 67,10 55,30 h -5 v 110 h 5 c 7,25 30,45 45,60 z\",\n easterling: \"M 160,185 C 120,170 80,170 40,185 V 15 c 40,15 80,15 120,0 z\",\n erebor: \"M25 135 V60 l22-13 16-37 h75 l15 37 22 13 v75l-22 18-16 37 H63l-16-37z\",\n ironHills: \"m 30,25 60,-10 10,10 10,-10 60,10 -5,125 -65,50 -65,-50 z\",\n urukHai: \"M 30,60 C 40,60 60,50 60,20 l -5,-3 45,-17 75,40 -5,5 -35,155 -5,-35 H 70 v 35 z\",\n moriaOrc:\n \"M45 35c5 3 7 10 13 9h19c4-2 7-4 9-9 6 1 9 9 16 11 7-2 14 0 21 0 6-3 6-10 10-15 2-5 1-10-2-15-2-4-5-14-4-16 3 6 7 11 12 14 7 3 3 12 7 16 3 6 4 12 9 18 2 4 6 8 5 14 0 6-1 12 3 18-3 6-2 13-1 20 1 6-2 12-1 18 0 6-3 13 0 18 8 4 0 8-5 7-4 3-9 3-13 9-5 5-5 13-8 19 0 6 0 15-7 16-1 6-7 6-10 12-1-6 0-6-2-9l2-19c2-4 5-12-3-12-4-5-11-5-15 1l-13-18c-3-4-2 9-3 12 2 2-4-6-7-5-8-2-8 7-11 11-2 4-5 10-8 9 3-10 3-16 1-23-1-4 2-9-4-11 0-6 1-13-2-19-4-2-9-6-13-7V91c4-7-5-13 0-19-3-7 2-11 2-18-1-6 1-12 3-17v-1z\"\n};\n\nexport const shieldBox = {\n heater: \"0 10 200 200\",\n spanish: \"0 10 200 200\",\n french: \"0 10 200 200\",\n\n horsehead: \"0 10 200 200\",\n horsehead2: \"0 10 200 200\",\n polish: \"0 0 200 200\",\n hessen: \"0 5 200 200\",\n swiss: \"0 10 200 200\",\n\n boeotian: \"0 0 200 200\",\n roman: \"0 0 200 200\",\n kite: \"0 0 200 200\",\n oldFrench: \"0 10 200 200\",\n renaissance: \"0 5 200 200\",\n baroque: \"0 10 200 200\",\n\n targe: \"0 0 200 200\",\n targe2: \"0 0 200 200\",\n pavise: \"0 0 200 200\",\n wedged: \"0 10 200 200\",\n\n flag: \"0 0 200 200\",\n pennon: \"2.5 0 200 200\",\n guidon: \"2.5 0 200 200\",\n banner: \"0 10 200 200\",\n dovetail: \"0 10 200 200\",\n gonfalon: \"0 10 200 200\",\n pennant: \"0 0 200 200\",\n\n round: \"0 0 200 200\",\n oval: \"0 0 200 200\",\n vesicaPiscis: \"0 0 200 200\",\n square: \"0 0 200 200\",\n diamond: \"0 0 200 200\",\n no: \"0 0 200 200\",\n\n fantasy1: \"0 0 200 200\",\n fantasy2: \"0 5 200 200\",\n fantasy3: \"0 5 200 200\",\n fantasy4: \"0 5 200 200\",\n fantasy5: \"0 0 200 200\",\n\n noldor: \"0 0 200 200\",\n gondor: \"0 5 200 200\",\n easterling: \"0 0 200 200\",\n erebor: \"0 0 200 200\",\n ironHills: \"0 5 200 200\",\n urukHai: \"0 0 200 200\",\n moriaOrc: \"0 0 200 200\"\n};\n\n// size modifier applied for charges, default is 1\nexport const shieldSize = {\n horsehead: 0.9,\n horsehead2: 0.9,\n polish: 0.85,\n swiss: 0.95,\n boeotian: 0.75,\n roman: 0.95,\n kite: 0.65,\n targe2: 0.9,\n pavise: 0.9,\n wedged: 0.95,\n flag: 0.7,\n pennon: 0.5,\n guidon: 0.65,\n banner: 0.8,\n dovetail: 0.8,\n pennant: 0.6,\n oval: 0.95,\n vesicaPiscis: 0.8,\n diamond: 0.8,\n no: 1.2,\n fantasy1: 0.8,\n fantasy2: 0.7,\n fantasy3: 0.7,\n fantasy5: 0.9,\n noldor: 0.5,\n gondor: 0.75,\n easterling: 0.8,\n erebor: 0.9,\n urukHai: 0.8,\n moriaOrc: 0.7\n};\n\nexport const shieldPositions = {\n // shield-specific position: [x, y] (relative to center)\n heater: {\n a: [-43.75, -50],\n b: [0, -50],\n c: [43.75, -50],\n d: [-43.75, 0],\n e: [0, 0],\n f: [43.75, 0],\n g: [-32.25, 37.5],\n h: [0, 50],\n i: [32.25, 37.5],\n y: [-50, -50],\n z: [0, 62.5],\n j: [-37.5, -37.5],\n k: [0, -37.5],\n l: [37.5, -37.5],\n m: [-30, 30],\n n: [0, 42.5],\n o: [30, 30],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-66.2, -66.6],\n B: [-22, -66.6],\n C: [22, -66.6],\n D: [66.2, -66.6],\n K: [-66.2, -20],\n E: [66.2, -20],\n J: [-55.5, 26],\n F: [55.5, 26],\n I: [-33, 62],\n G: [33, 62],\n H: [0, 89.5]\n },\n spanish: {\n a: [-43.75, -50],\n b: [0, -50],\n c: [43.75, -50],\n d: [-43.75, 0],\n e: [0, 0],\n f: [43.75, 0],\n g: [-43.75, 50],\n h: [0, 50],\n i: [43.75, 50],\n y: [-50, -50],\n z: [0, 50],\n j: [-37.5, -37.5],\n k: [0, -37.5],\n l: [37.5, -37.5],\n m: [-37.5, 37.5],\n n: [0, 37.5],\n o: [37.5, 37.5],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-66.2, -66.6],\n B: [-22, -66.6],\n C: [22, -66.6],\n D: [66.2, -66.6],\n K: [-66.4, -20],\n E: [66.4, -20],\n J: [-66.4, 26],\n F: [66.4, 26],\n I: [-49, 70],\n G: [49, 70],\n H: [0, 92]\n },\n french: {\n a: [-43.75, -50],\n b: [0, -50],\n c: [43.75, -50],\n d: [-43.75, 0],\n e: [0, 0],\n f: [43.75, 0],\n g: [-43.75, 50],\n h: [0, 50],\n i: [43.75, 50],\n y: [-50, -50],\n z: [0, 65],\n j: [-37.5, -37.5],\n k: [0, -37.5],\n l: [37.5, -37.5],\n m: [-37.5, 37.5],\n n: [0, 37.5],\n o: [37.5, 37.5],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-66.2, -66.6],\n B: [-22, -66.6],\n C: [22, -66.6],\n D: [66.2, -66.6],\n K: [-66.4, -20],\n E: [66.4, -20],\n J: [-66.4, 26],\n F: [66.4, 26],\n I: [-65.4, 70],\n G: [65.4, 70],\n H: [0, 89]\n },\n horsehead: {\n a: [-43.75, -47.5],\n b: [0, -50],\n c: [43.75, -47.5],\n d: [-35, 0],\n e: [0, 0],\n f: [35, 0],\n h: [0, 50],\n y: [-50, -50],\n z: [0, 55],\n j: [-35, -35],\n k: [0, -40],\n l: [35, -35],\n m: [-30, 30],\n n: [0, 40],\n o: [30, 30],\n p: [-27.5, 0],\n q: [27.5, 0],\n A: [-71, -52],\n B: [-24, -73],\n C: [24, -73],\n D: [71, -52],\n K: [-62, -16],\n E: [62, -16],\n J: [-39, 20],\n F: [39, 20],\n I: [-33.5, 60],\n G: [33.5, 60],\n H: [0, 91.5]\n },\n horsehead2: {\n a: [-37.5, -47.5],\n b: [0, -50],\n c: [37.5, -47.5],\n d: [-35, 0],\n e: [0, 0],\n f: [35, 0],\n g: [-35, 47.5],\n h: [0, 50],\n i: [35, 47.5],\n y: [-50, -50],\n z: [0, 55],\n j: [-30, -30],\n k: [0, -40],\n l: [30, -30],\n m: [-30, 30],\n n: [0, 40],\n o: [30, 30],\n p: [-27.5, 0],\n q: [27.5, 0],\n A: [-49, -39],\n B: [-22, -70],\n C: [22, -70],\n D: [49, -39],\n K: [-51, -2],\n E: [51, -2],\n J: [-38.5, 31],\n F: [38.5, 31],\n I: [-35, 67],\n G: [35, 67],\n H: [0, 85]\n },\n polish: {\n a: [-35, -50],\n b: [0, -50],\n c: [35, -50],\n d: [-40, 0],\n e: [0, 0],\n f: [40, 0],\n g: [-37.5, 50],\n h: [0, 50],\n i: [37.5, 50],\n y: [-50, -50],\n z: [0, 65],\n j: [-27.5, -27.5],\n k: [0, -45],\n l: [27.5, -27.5],\n m: [-27.5, 27.5],\n n: [0, 45],\n o: [27.5, 27.5],\n p: [-32.5, 0],\n q: [32.5, 0],\n A: [-48, -52],\n B: [-23, -80],\n C: [23, -80],\n D: [48, -52],\n K: [-47, -10],\n E: [47, -10],\n J: [-62, 32],\n F: [62, 32],\n I: [-37, 68],\n G: [37, 68],\n H: [0, 86]\n },\n hessen: {\n a: [-43.75, -50],\n b: [0, -50],\n c: [43.75, -50],\n d: [-43.75, 0],\n e: [0, 0],\n f: [43.75, 0],\n g: [-43.75, 50],\n h: [0, 50],\n i: [43.75, 50],\n y: [-50, -50],\n z: [0, 52.5],\n j: [-40, -40],\n k: [0, -40],\n l: [40, -40],\n m: [-40, 40],\n n: [0, 40],\n o: [40, 40],\n p: [-40, 0],\n q: [40, 0],\n A: [-69, -64],\n B: [-22, -76],\n C: [22, -76],\n D: [69, -64],\n K: [-66.4, -20],\n E: [66.4, -20],\n J: [-62, 26],\n F: [62, 26],\n I: [-46, 70],\n G: [46, 70],\n H: [0, 91.5]\n },\n swiss: {\n a: [-43.75, -50],\n b: [0, -50],\n c: [43.75, -50],\n d: [-43.75, 0],\n e: [0, 0],\n f: [43.75, 0],\n g: [-32, 37.5],\n h: [0, 50],\n i: [32, 37.5],\n y: [-50, -50],\n z: [0, 62.5],\n j: [-37.5, -37.5],\n k: [0, -37.5],\n l: [37.5, -37.5],\n m: [-32, 32.5],\n n: [0, 42.5],\n o: [32, 32.5],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-66.2, -66.6],\n B: [-22, -66],\n C: [22, -66],\n D: [66.2, -66.6],\n K: [-63, -20],\n E: [63, -20],\n J: [-50, 26],\n F: [50, 26],\n I: [-29, 62],\n G: [29, 62],\n H: [0, 89.5]\n },\n boeotian: {\n a: [-37.5, -47.5],\n b: [0, -47.5],\n c: [37.5, -47.5],\n d: [-25, 0],\n e: [0, 0],\n f: [25, 0],\n g: [-37.5, 47.5],\n h: [0, 47.5],\n i: [37.5, 47.5],\n y: [-48, -48],\n z: [0, 60],\n j: [-32.5, -37.5],\n k: [0, -45],\n l: [32.5, -37.5],\n m: [-32.5, 37.5],\n n: [0, 45],\n o: [32.5, 37.5],\n p: [-20, 0],\n q: [20, 0],\n A: [-45, -55],\n B: [-20, -77],\n C: [20, -77],\n D: [45, -55],\n K: [-59, -25],\n E: [59, -25],\n J: [-58, 27],\n F: [58, 27],\n I: [-39, 63],\n G: [39, 63],\n H: [0, 81]\n },\n roman: {\n a: [-40, -52.5],\n b: [0, -52.5],\n c: [40, -52.5],\n d: [-40, 0],\n e: [0, 0],\n f: [40, 0],\n g: [-40, 52.5],\n h: [0, 52.5],\n i: [40, 52.5],\n y: [-42.5, -52.5],\n z: [0, 65],\n j: [-30, -37.5],\n k: [0, -37.5],\n l: [30, -37.5],\n m: [-30, 37.5],\n n: [0, 37.5],\n o: [30, 37.5],\n p: [-30, 0],\n q: [30, 0],\n A: [-51.5, -65],\n B: [-17, -75],\n C: [17, -75],\n D: [51.5, -65],\n K: [-51.5, -21],\n E: [51.5, -21],\n J: [-51.5, 21],\n F: [51.5, 21],\n I: [-51.5, 65],\n G: [51.5, 65],\n H: [-17, 75],\n L: [17, 75]\n },\n kite: {\n b: [0, -65],\n e: [0, -15],\n h: [0, 35],\n z: [0, 35],\n k: [0, -50],\n n: [0, 20],\n p: [-20, -15],\n q: [20, -15],\n A: [-38, -52],\n B: [-29, -78],\n C: [29, -78],\n D: [38, -52],\n K: [-33, -20],\n E: [33, -20],\n J: [-25, 11],\n F: [25, 11],\n I: [-15, 42],\n G: [15, 42],\n H: [0, 73],\n L: [0, -91]\n },\n oldFrench: {\n a: [-43.75, -50],\n b: [0, -50],\n c: [43.75, -50],\n d: [-43.75, 0],\n e: [0, 0],\n f: [43.75, 0],\n g: [-37.5, 50],\n h: [0, 50],\n i: [37.5, 50],\n y: [-50, -50],\n z: [0, 62.5],\n j: [-37.5, -37.5],\n k: [0, -37.5],\n l: [37.5, -37.5],\n m: [-37.5, 37.5],\n n: [0, 45],\n o: [37.5, 37.5],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-66.2, -66.6],\n B: [-22, -66.6],\n C: [22, -66.6],\n D: [66.2, -66.6],\n K: [-66.2, -20],\n E: [66.2, -20],\n J: [-64, 26],\n F: [64, 26],\n I: [-45, 62],\n G: [45, 62],\n H: [0, 91]\n },\n renaissance: {\n a: [-43.75, -50],\n b: [0, -50],\n c: [43.75, -50],\n d: [-41.5, 0],\n e: [0, 0],\n f: [41.5, 0],\n g: [-43.75, 50],\n h: [0, 50],\n i: [43.75, 50],\n y: [-50, -50],\n z: [0, 62.5],\n j: [-37.5, -37.5],\n k: [0, -37.5],\n l: [37.5, -37.5],\n m: [-37.5, 37.5],\n n: [0, 37.5],\n o: [37.5, 37.5],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-61, -55],\n B: [-23, -67],\n C: [23, -67],\n D: [61, -55],\n K: [-55, -11],\n E: [55, -11],\n J: [-65, 31],\n F: [65, 31],\n I: [-45, 76],\n G: [45, 76],\n H: [0, 87]\n },\n baroque: {\n a: [-43.75, -45],\n b: [0, -45],\n c: [43.75, -45],\n d: [-43.75, 0],\n e: [0, 0],\n f: [43.75, 0],\n g: [-43.75, 50],\n h: [0, 50],\n i: [43.75, 50],\n y: [-50, -50],\n z: [0, 60],\n j: [-37.5, -37.5],\n k: [0, -37.5],\n l: [37.5, -37.5],\n m: [-37.5, 37.5],\n n: [0, 37.5],\n o: [37.5, 37.5],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-65, -54.5],\n B: [-22, -65],\n C: [22, -65],\n D: [65, -54.5],\n K: [-58.5, -15],\n E: [58.5, -15],\n J: [-65, 31],\n F: [66, 31],\n I: [-35, 73],\n G: [35, 73],\n H: [0, 89]\n },\n targe: {\n a: [-43.75, -50],\n b: [0, -50],\n c: [43.75, -50],\n d: [-43.75, 0],\n e: [0, 0],\n f: [43.75, 0],\n g: [-43.75, 50],\n h: [0, 50],\n i: [43.75, 50],\n y: [-50, -50],\n z: [0, 50],\n j: [-40, -40],\n k: [0, -40],\n l: [40, -40],\n m: [-40, 40],\n n: [0, 40],\n o: [40, 40],\n p: [-32.5, 0],\n q: [32.5, 0],\n A: [-66.2, -60],\n B: [-22, -77],\n C: [22, -86],\n D: [60, -66.6],\n K: [-28, -20],\n E: [57, -20],\n J: [-61, 26],\n F: [61, 26],\n I: [-49, 63],\n G: [49, 59],\n H: [0, 80]\n },\n targe2: {\n a: [-43.75, -50],\n b: [0, -50],\n c: [43.75, -50],\n d: [-40, 0],\n e: [0, 0],\n f: [40, 0],\n g: [-43.75, 50],\n h: [0, 50],\n i: [43.75, 50],\n y: [-50, -50],\n z: [0, 60],\n j: [-37.5, -37.5],\n k: [0, -37.5],\n l: [37.5, -37.5],\n m: [-37.5, 37.5],\n n: [0, 37.5],\n o: [37.5, 37.5],\n p: [-32.5, 0],\n q: [32.5, 0],\n A: [-55, -59],\n B: [-15, -59],\n C: [24, -79],\n D: [51, -58],\n K: [-40, -14],\n E: [51, -14],\n J: [-64, 26],\n F: [62, 26],\n I: [-46, 66],\n G: [48, 67],\n H: [0, 83]\n },\n pavise: {\n a: [-40, -52.5],\n b: [0, -52.5],\n c: [40, -52.5],\n d: [-40, 0],\n e: [0, 0],\n f: [40, 0],\n g: [-40, 52.5],\n h: [0, 52.5],\n i: [40, 52.5],\n y: [-42.5, -52.5],\n z: [0, 60],\n j: [-30, -35],\n k: [0, -37.5],\n l: [30, -35],\n m: [-30, 35],\n n: [0, 37.5],\n o: [30, 35],\n p: [-30, 0],\n q: [30, 0],\n A: [-57, -55],\n B: [-22, -74],\n C: [22, -74],\n D: [57, -55],\n K: [-54, -11],\n E: [54, -11],\n J: [-50, 36],\n F: [50, 36],\n I: [-46, 81],\n G: [46, 81],\n H: [0, 81]\n },\n wedged: {\n a: [-43.75, -50],\n b: [0, -50],\n c: [43.75, -50],\n d: [-43.75, 0],\n e: [0, 0],\n f: [43.75, 0],\n g: [-32.25, 37.5],\n h: [0, 50],\n i: [32.25, 37.5],\n y: [-50, -50],\n z: [0, 62.5],\n j: [-37.5, -37.5],\n k: [0, -37.5],\n l: [37.5, -37.5],\n m: [-32.5, 32.5],\n n: [0, 42.5],\n o: [32.5, 32.5],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-66, -53],\n B: [-22, -72.5],\n C: [22, -72.5],\n D: [66, -53],\n K: [-62.6, -13],\n E: [62.6, -13],\n J: [-50, 26],\n F: [50, 26],\n I: [-27, 62],\n G: [27, 62],\n H: [0, 87]\n },\n flag: {\n a: [-60, -40],\n b: [0, -40],\n c: [60, -40],\n d: [-60, 0],\n e: [0, 0],\n f: [60, 0],\n g: [-60, 40],\n h: [0, 40],\n i: [60, 40],\n y: [-60, -42.5],\n z: [0, 40],\n j: [-45, -30],\n k: [0, -30],\n l: [45, -30],\n m: [-45, 30],\n n: [0, 30],\n o: [45, 30],\n p: [-45, 0],\n q: [45, 0],\n A: [-81, -51],\n B: [-27, -51],\n C: [27, -51],\n D: [81, -51],\n K: [-81, -17],\n E: [81, -17],\n J: [-81, 17],\n F: [81, 17],\n I: [-81, 51],\n G: [81, 51],\n H: [-27, 51],\n L: [27, 51]\n },\n pennon: {\n a: [-75, -40],\n d: [-75, 0],\n e: [-25, 0],\n f: [25, 0],\n g: [-75, 40],\n y: [-70, -42.5],\n j: [-60, -30],\n m: [-60, 30],\n p: [-60, 0],\n q: [5, 0],\n A: [-81, -48],\n B: [-43, -36],\n C: [-4.5, -24],\n D: [33, -12],\n E: [72, 0],\n F: [33, 12],\n G: [-4.5, 24],\n H: [-43, 36],\n I: [-81, 48],\n J: [-81, 17],\n K: [-81, -17]\n },\n guidon: {\n a: [-60, -40],\n b: [0, -40],\n c: [60, -40],\n d: [-60, 0],\n e: [0, 0],\n g: [-60, 40],\n h: [0, 40],\n i: [60, 40],\n y: [-60, -42.5],\n z: [0, 40],\n j: [-45, -30],\n k: [0, -30],\n l: [45, -30],\n m: [-45, 30],\n n: [0, 30],\n o: [45, 30],\n p: [-45, 0],\n A: [-81, -51],\n B: [-27, -51],\n C: [27, -51],\n D: [78, -51],\n K: [-81, -17],\n E: [40.5, -17],\n J: [-81, 17],\n F: [40.5, 17],\n I: [-81, 51],\n G: [78, 51],\n H: [-27, 51],\n L: [27, 51]\n },\n banner: {\n a: [-50, -50],\n b: [0, -50],\n c: [50, -50],\n d: [-50, 0],\n e: [0, 0],\n f: [50, 0],\n g: [-50, 40],\n h: [0, 40],\n i: [50, 40],\n y: [-50, -50],\n z: [0, 40],\n j: [-37.5, -37.5],\n k: [0, -37.5],\n l: [37.5, -37.5],\n m: [-37.5, 27.5],\n n: [0, 27.5],\n o: [37.5, 27.5],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-66.5, -66.5],\n B: [-22, -66.5],\n C: [22, -66.5],\n D: [66.5, -66.5],\n K: [-66.5, -20],\n E: [66.5, -20],\n J: [-66.5, 26],\n F: [66.5, 26],\n I: [-66.5, 66.5],\n G: [66.5, 66.5],\n H: [-25, 75],\n L: [25, 75]\n },\n dovetail: {\n a: [-49.75, -50],\n b: [0, -50],\n c: [49.75, -50],\n d: [-49.75, 0],\n e: [0, 0],\n f: [49.75, 0],\n g: [-49.75, 50],\n i: [49.75, 50],\n y: [-50, -50],\n z: [0, 40],\n j: [-37.5, -37.5],\n k: [0, -37.5],\n l: [37.5, -37.5],\n m: [-37.5, 37.5],\n n: [0, 32.5],\n o: [37.5, 37.5],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-66.5, -66.5],\n B: [-22, -66.5],\n C: [22, -66.5],\n D: [66.5, -66.5],\n K: [-66.5, -16.5],\n E: [66.5, -16.5],\n J: [-66.5, 34.5],\n F: [66.5, 34.5],\n I: [-66.5, 84.5],\n G: [66.5, 84.5],\n H: [-25, 64],\n L: [25, 64]\n },\n gonfalon: {\n a: [-49.75, -50],\n b: [0, -50],\n c: [49.75, -50],\n d: [-49.75, 0],\n e: [0, 0],\n f: [49.75, 0],\n g: [-49.75, 50],\n h: [0, 50],\n i: [49.75, 50],\n y: [-50, -50],\n z: [0, 50],\n j: [-37.5, -37.5],\n k: [0, -37.5],\n l: [37.5, -37.5],\n m: [-37.5, 37.5],\n n: [0, 37.5],\n o: [37.5, 37.5],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-66.5, -66.5],\n B: [-22, -66.5],\n C: [22, -66.5],\n D: [66.5, -66.5],\n K: [-66.5, -20],\n E: [66.5, -20],\n J: [-66.5, 26],\n F: [66.5, 26],\n I: [-40, 63],\n G: [40, 63],\n H: [0, 88]\n },\n pennant: {\n a: [-45, -50],\n b: [0, -50],\n c: [45, -50],\n e: [0, 0],\n h: [0, 50],\n y: [-50, -50],\n z: [0, 50],\n j: [-32.5, -37.5],\n k: [0, -37.5],\n l: [32.5, -37.5],\n n: [0, 37.5],\n A: [-60, -76],\n B: [-22, -76],\n C: [22, -76],\n D: [60, -76],\n K: [-46, -38],\n E: [46, -38],\n J: [-31, 0],\n F: [31, 0],\n I: [-16, 38],\n G: [16, 38],\n H: [0, 76]\n },\n round: {\n a: [-40, -40],\n b: [0, -40],\n c: [40, -40],\n d: [-40, 0],\n e: [0, 0],\n f: [40, 0],\n g: [-40, 40],\n h: [0, 40],\n i: [40, 40],\n y: [-48, -48],\n z: [0, 57.5],\n j: [-35.5, -35.5],\n k: [0, -37.5],\n l: [35.5, -35.5],\n m: [-35.5, 35.5],\n n: [0, 37.5],\n o: [35.5, 35.5],\n p: [-36.5, 0],\n q: [36.5, 0],\n A: [-59, -48],\n B: [-23, -73],\n C: [23, -73],\n D: [59, -48],\n K: [-76, -10],\n E: [76, -10],\n J: [-70, 31],\n F: [70, 31],\n I: [-42, 64],\n G: [42, 64],\n H: [0, 77]\n },\n oval: {\n a: [-37.5, -50],\n b: [0, -50],\n c: [37.5, -50],\n d: [-43, 0],\n e: [0, 0],\n f: [43, 0],\n g: [-37.5, 50],\n h: [0, 50],\n i: [37.5, 50],\n y: [-48, -48],\n z: [0, 60],\n j: [-35.5, -37.5],\n k: [0, -37.5],\n l: [35.5, -37.5],\n m: [-35.5, 37.5],\n n: [0, 50],\n o: [35.5, 37.5],\n p: [-36.5, 0],\n q: [36.5, 0],\n A: [-48, -48],\n B: [-23, -78],\n C: [23, -78],\n D: [48, -48],\n K: [-59, -10],\n E: [59, -10],\n J: [-55, 31],\n F: [55, 31],\n I: [-36, 68],\n G: [36, 68],\n H: [0, 85]\n },\n vesicaPiscis: {\n a: [-32, -37],\n b: [0, -50],\n c: [32, -37],\n d: [-32, 0],\n e: [0, 0],\n f: [32, 0],\n g: [-32, 37],\n h: [0, 50],\n i: [32, 37],\n y: [-50, -50],\n z: [0, 62],\n j: [-27.5, -27.5],\n k: [0, -37],\n l: [27.5, -27.5],\n m: [-27.5, 27.5],\n n: [0, 42],\n o: [27.5, 27.5],\n p: [-27.5, 0],\n q: [27.5, 0],\n A: [-45, -32],\n B: [-29, -63],\n C: [29, -63],\n D: [45, -32],\n K: [-50, 0],\n E: [50, 0],\n J: [-45, 32],\n F: [45, 32],\n I: [-29, 63],\n G: [29, 63],\n H: [0, 89],\n L: [0, -89]\n },\n square: {\n a: [-49.75, -50],\n b: [0, -50],\n c: [49.75, -50],\n d: [-49.75, 0],\n e: [0, 0],\n f: [49.75, 0],\n g: [-49.75, 50],\n h: [0, 50],\n i: [49.75, 50],\n y: [-50, -50],\n z: [0, 50],\n j: [-37.5, -37.5],\n k: [0, -37.5],\n l: [37.5, -37.5],\n m: [-37.5, 37.5],\n n: [0, 37.5],\n o: [37.5, 37.5],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-66.5, -66.5],\n B: [-22, -66.5],\n C: [22, -66.5],\n D: [66.5, -66.5],\n K: [-66.5, -20],\n E: [66.5, -20],\n J: [-66.5, 26],\n F: [66.5, 26],\n I: [-66.5, 66.5],\n G: [66.5, 66.5],\n H: [-22, 66.5],\n L: [22, 66.5]\n },\n diamond: {\n a: [-32, -37],\n b: [0, -50],\n c: [32, -37],\n d: [-43, 0],\n e: [0, 0],\n f: [43, 0],\n g: [-32, 37],\n h: [0, 50],\n i: [32, 37],\n y: [-50, -50],\n z: [0, 62],\n j: [-27.5, -27.5],\n k: [0, -37],\n l: [27.5, -27.5],\n m: [-27.5, 27.5],\n n: [0, 42],\n o: [27.5, 27.5],\n p: [-37, 0],\n q: [37, 0],\n A: [-43, -28],\n B: [-22, -56],\n C: [22, -56],\n D: [43, -28],\n K: [-63, 0],\n E: [63, 0],\n J: [-42, 28],\n F: [42, 28],\n I: [-22, 56],\n G: [22, 56],\n H: [0, 83],\n L: [0, -82]\n },\n no: {\n a: [-66.5, -66.5],\n b: [0, -66.5],\n c: [66.5, -66.5],\n d: [-66.5, 0],\n e: [0, 0],\n f: [66.5, 0],\n g: [-66.5, 66.5],\n h: [0, 66.5],\n i: [66.5, 66.5],\n y: [-50, -50],\n z: [0, 75],\n j: [-50, -50],\n k: [0, -50],\n l: [50, -50],\n m: [-50, 50],\n n: [0, 50],\n o: [50, 50],\n p: [-50, 0],\n q: [50, 0],\n A: [-91.5, -91.5],\n B: [-30.5, -91.5],\n C: [30.5, -91.5],\n D: [91.5, -91.5],\n K: [-91.5, -30.5],\n E: [91.5, -30.5],\n J: [-91.5, 30.5],\n F: [91.5, 30.5],\n I: [-91.5, 91.5],\n G: [91.5, 91.5],\n H: [-30.5, 91.5],\n L: [30.5, 91.5]\n },\n fantasy1: {\n a: [-45, -45],\n b: [0, -50],\n c: [45, -45],\n d: [-40, 0],\n e: [0, 0],\n f: [40, 0],\n g: [-36, 42.5],\n h: [0, 50],\n i: [36, 42.5],\n y: [-50, -50],\n z: [0, 60],\n j: [-37, -37],\n k: [0, -40],\n l: [37, -37],\n m: [-32, 32],\n n: [0, 40],\n o: [32, 32],\n p: [-28.5, 0],\n q: [28.5, 0],\n A: [-66, -55],\n B: [-22, -67],\n C: [22, -67],\n D: [66, -55],\n K: [-53, -20],\n E: [53, -20],\n J: [-46, 26],\n F: [46, 26],\n I: [-29, 62],\n G: [29, 62],\n H: [0, 84]\n },\n fantasy2: {\n a: [-45, -45],\n b: [0, -45],\n c: [45, -45],\n d: [-35, 0],\n e: [0, 0],\n f: [35, 0],\n g: [-36, 42.5],\n h: [0, 45],\n i: [36, 42.5],\n y: [-50, -50],\n z: [0, 55],\n j: [-32.5, -32.5],\n k: [0, -40],\n l: [32.5, -32.5],\n m: [-30, 30],\n n: [0, 40],\n o: [30, 30],\n p: [-27.5, 0],\n q: [27.5, 0],\n A: [-58, -35],\n B: [-44, -67],\n C: [44, -67],\n D: [58, -35],\n K: [-39, -5],\n E: [39, -5],\n J: [-57, 26],\n F: [57, 26],\n I: [-32, 58],\n G: [32, 58],\n H: [0, 83],\n L: [0, -72]\n },\n fantasy3: {\n a: [-40, -45],\n b: [0, -50],\n c: [40, -45],\n d: [-35, 0],\n e: [0, 0],\n f: [35, 0],\n g: [-36, 42.5],\n h: [0, 50],\n i: [36, 42.5],\n y: [-50, -50],\n z: [0, 55],\n j: [-32.5, -32.5],\n k: [0, -40],\n l: [32.5, -32.5],\n m: [-30, 30],\n n: [0, 40],\n o: [30, 30],\n p: [-27.5, 0],\n q: [27.5, 0],\n A: [-56, -42],\n B: [-22, -72],\n C: [22, -72],\n D: [56, -42],\n K: [-37, -11],\n E: [37, -11],\n J: [-60, 20],\n F: [60, 20],\n I: [-34, 56],\n G: [34, 56],\n H: [0, 83]\n },\n fantasy4: {\n a: [-50, -45],\n b: [0, -50],\n c: [50, -45],\n d: [-45, 0],\n e: [0, 0],\n f: [45, 0],\n g: [-40, 45],\n h: [0, 50],\n i: [40, 45],\n y: [-50, -50],\n z: [0, 62.5],\n j: [-37.5, -37.5],\n k: [0, -45],\n l: [37.5, -37.5],\n m: [-37.5, 37.5],\n n: [0, 45],\n o: [37.5, 37.5],\n p: [-35, 0],\n q: [35, 0],\n A: [-75, -56],\n B: [-36, -61],\n C: [36, -61],\n D: [75, -56],\n K: [-67, -12],\n E: [67, -12],\n J: [-63, 32],\n F: [63, 32],\n I: [-42, 75],\n G: [42, 75],\n H: [0, 91.5],\n L: [0, -79]\n },\n fantasy5: {\n a: [-45, -50],\n b: [0, -50],\n c: [45, -50],\n d: [-40, 0],\n e: [0, 0],\n f: [40, 0],\n g: [-30, 45],\n h: [0, 50],\n i: [30, 45],\n y: [-50, -50],\n z: [0, 60],\n j: [-37, -37],\n k: [0, -40],\n l: [37, -37],\n m: [-32, 32],\n n: [0, 40],\n o: [32, 32],\n p: [-28.5, 0],\n q: [28.5, 0],\n A: [-61, -67],\n B: [-22, -76],\n C: [22, -76],\n D: [61, -67],\n K: [-58, -25],\n E: [58, -25],\n J: [-48, 20],\n F: [48, 20],\n I: [-28.5, 60],\n G: [28.5, 60],\n H: [0, 89]\n },\n noldor: {\n b: [0, -65],\n e: [0, -15],\n h: [0, 35],\n z: [0, 35],\n k: [0, -50],\n n: [0, 30],\n p: [-20, -15],\n q: [20, -15],\n A: [-34, -47],\n B: [-20, -68],\n C: [20, -68],\n D: [34, -47],\n K: [-18, -20],\n E: [18, -20],\n J: [-26, 11],\n F: [26, 11],\n I: [-14, 43],\n G: [14, 43],\n H: [0, 74],\n L: [0, -85]\n },\n gondor: {\n a: [-32.5, -50],\n b: [0, -50],\n c: [32.5, -50],\n d: [-32.5, 0],\n e: [0, 0],\n f: [32.5, 0],\n g: [-32.5, 50],\n h: [0, 50],\n i: [32.5, 50],\n y: [-42.5, -52.5],\n z: [0, 65],\n j: [-25, -37.5],\n k: [0, -37.5],\n l: [25, -37.5],\n m: [-25, 30],\n n: [0, 37.5],\n o: [25, 30],\n p: [-25, 0],\n q: [25, 0],\n A: [-42, -52],\n B: [-17, -75],\n C: [17, -75],\n D: [42, -52],\n K: [-42, -15],\n E: [42, -15],\n J: [-42, 22],\n F: [42, 22],\n I: [-26, 60],\n G: [26, 60],\n H: [0, 87]\n },\n easterling: {\n a: [-40, -47.5],\n b: [0, -47.5],\n c: [40, -47.5],\n d: [-40, 0],\n e: [0, 0],\n f: [40, 0],\n g: [-40, 47.5],\n h: [0, 47.5],\n i: [40, 47.5],\n y: [-42.5, -52.5],\n z: [0, 65],\n j: [-30, -37.5],\n k: [0, -37.5],\n l: [30, -37.5],\n m: [-30, 37.5],\n n: [0, 37.5],\n o: [30, 37.5],\n p: [-30, 0],\n q: [30, 0],\n A: [-52, -72],\n B: [0, -65],\n D: [52, -72],\n K: [-52, -24],\n E: [52, -24],\n J: [-52, 24],\n F: [52, 24],\n I: [-52, 72],\n G: [52, 72],\n H: [0, 65]\n },\n erebor: {\n a: [-40, -40],\n b: [0, -55],\n c: [40, -40],\n d: [-40, 0],\n e: [0, 0],\n f: [40, 0],\n g: [-40, 40],\n h: [0, 55],\n i: [40, 40],\n y: [-50, -50],\n z: [0, 50],\n j: [-35, -35],\n k: [0, -45],\n l: [35, -35],\n m: [-35, 35],\n n: [0, 45],\n o: [35, 35],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-47, -46],\n B: [-22, -81],\n C: [22, -81],\n D: [47, -46],\n K: [-66.5, 0],\n E: [66.5, 0],\n J: [-47, 46],\n F: [47, 46],\n I: [-22, 81],\n G: [22, 81]\n },\n ironHills: {\n a: [-43.75, -50],\n b: [0, -50],\n c: [43.75, -50],\n d: [-43.25, 0],\n e: [0, 0],\n f: [43.25, 0],\n g: [-42.5, 42.5],\n h: [0, 50],\n i: [42.5, 42.5],\n y: [-50, -50],\n z: [0, 62.5],\n j: [-32.5, -32.5],\n k: [0, -40],\n l: [32.5, -32.5],\n m: [-32.5, 32.5],\n n: [0, 40],\n o: [32.5, 32.5],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-61, -67],\n B: [-22, -74],\n C: [22, -74],\n D: [61, -67],\n K: [-59, -20],\n E: [59, -20],\n J: [-57, 26],\n F: [57, 26],\n I: [-33, 64],\n G: [33, 64],\n H: [0, 88]\n },\n urukHai: {\n a: [-40, -45],\n b: [0, -45],\n c: [40, -45],\n d: [-36, 0],\n e: [0, 0],\n f: [36, 0],\n g: [-32.25, 40],\n h: [0, 40],\n i: [32.25, 40],\n y: [-50, -50],\n z: [0, 40],\n j: [-32.5, -32.5],\n k: [0, -37.5],\n l: [32.5, -32.5],\n m: [-27.5, 27.5],\n n: [0, 32.5],\n o: [27.5, 27.5],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-31, -79],\n B: [-1, -90],\n C: [31, -74],\n D: [61, -57],\n K: [-55, -19],\n E: [53, -19],\n J: [-45, 19],\n F: [45, 19],\n I: [-33, 57],\n G: [35, 57],\n H: [0, 57],\n L: [-39, -50]\n },\n moriaOrc: {\n a: [-37.5, -37.5],\n b: [0, -37.5],\n c: [37.5, -37.5],\n d: [-37.5, 0],\n e: [0, 0],\n f: [37.5, 0],\n g: [-37.5, 37.5],\n h: [0, 37.5],\n i: [37.5, 37.5],\n y: [-50, -50],\n z: [0, 40],\n j: [-30, -30],\n k: [0, -30],\n l: [30, -30],\n m: [-30, 30],\n n: [0, 30],\n o: [30, 30],\n p: [-30, 0],\n q: [30, 0],\n A: [-48, -48],\n B: [-16, -50],\n C: [16, -46],\n D: [39, -61],\n K: [-52, -19],\n E: [52, -26],\n J: [-42, 9],\n F: [52, 9],\n I: [-31, 40],\n G: [40, 43],\n H: [4, 47]\n }\n};\n","export const DEFAULT_SIZE = 200;\nexport const DEFAULT_DIAPER = \"no\";\nexport const DEFAULT_GRADIENTS = [\"luster\", \"spotlight\", \"backlight\"];\nexport const DEFAULT_BORDER = \"#333333\";\nexport const DEFAULT_BORDER_WIDTH = 1;\nexport const DEFAULT_BACKGROUND = \"#333333\";\nexport const DEFAULT_SCALE = 2;\nexport const DEFAULT_GRID = 1;\nexport const DEFAULT_SHOW_GRID = false;\nexport const DEFAULT_COLORS = {\n argent: \"#fafafa\",\n or: \"#ffe066\",\n gules: \"#d7374a\",\n sable: \"#333333\",\n azure: \"#377cd7\",\n vert: \"#26c061\",\n purpure: \"#522d5b\",\n murrey: \"#85185b\",\n sanguine: \"#b63a3a\",\n tenné: \"#cc7f19\"\n};\nexport const DEFAULT_TINCTURES = {\n field: { metals: 32, colours: 49, stains: 1, patterns: 14 },\n division: { metals: 35, colours: 49, stains: 1, patterns: 8 },\n charge: { metals: 16, colours: 24, stains: 1, patterns: 0 },\n metals: { argent: 3, or: 2 },\n colours: { gules: 5, azure: 4, sable: 3, purpure: 3, vert: 2 },\n stains: { murrey: 1, sanguine: 1, tenné: 1 },\n patterns: {\n semy: 8,\n ermine: 6,\n vair: 4,\n counterVair: 1,\n vairInPale: 1,\n vairEnPointe: 2,\n vairAncien: 2,\n potent: 2,\n counterPotent: 1,\n potentInPale: 1,\n potentEnPointe: 1,\n chequy: 8,\n lozengy: 5,\n fusily: 2,\n pally: 8,\n barry: 10,\n gemelles: 1,\n bendy: 8,\n bendySinister: 4,\n palyBendy: 2,\n barryBendy: 1,\n pappellony: 2,\n pappellony2: 3,\n scaly: 1,\n plumetty: 1,\n masoned: 6,\n fretty: 3,\n grillage: 1,\n chainy: 1,\n maily: 2,\n honeycombed: 1\n }\n};\n","import { ra, rw } from \"scripts/utils\";\nimport { writable } from \"svelte/store\";\nimport { shields } from \"./shields\";\nimport { DEFAULT_SIZE, DEFAULT_DIAPER, DEFAULT_GRADIENTS, DEFAULT_COLORS, DEFAULT_TINCTURES, DEFAULT_BORDER, DEFAULT_BORDER_WIDTH, DEFAULT_BACKGROUND, DEFAULT_SCALE, DEFAULT_GRID, DEFAULT_SHOW_GRID } from \"config/defaults\";\nimport { validateTinctures } from \"./validators\";\nexport const isTextReady = writable(false);\nconst options = defineInitialOptions();\nexport const size = writable(options.size);\nexport const grad = writable(options.grad);\nexport const diaper = writable(options.diaper);\nexport const shield = writable(options.shield);\nexport const colors = writable(options.colors);\nexport const tinctures = writable(options.tinctures);\nexport const background = writable(options.background);\nexport const scale = writable(options.scale);\nexport const border = writable(options.border);\nexport const borderWidth = writable(options.borderWidth);\nexport const grid = writable(options.grid);\nexport const showGrid = writable(options.showGrid);\nexport const history = writable([]);\nexport const matrices = writable([]);\nexport const matrix = writable(0);\nexport const state = writable({ edit: 0, about: 0, license: 0, tinctures: 0, raster: 0, vector: 0, i: 0, c: 0, view: 0 });\nexport const iconedNav = writable(false);\nconst createMessageStore = () => {\n const { subscribe, set } = writable(null);\n const defaultTimeout = 5000;\n return {\n subscribe,\n clear: () => set(null),\n success: (text, timeout = defaultTimeout) => {\n set({ type: \"success\", text, timeout });\n },\n info: (text, timeout = defaultTimeout) => {\n set({ type: \"info\", text, timeout });\n },\n error: (text, timeout = defaultTimeout) => {\n set({ type: \"error\", text, timeout });\n }\n };\n};\nexport const message = createMessageStore();\nconst createChangesStore = () => {\n const { subscribe, set, update } = writable([\"\", -1]);\n let history = [];\n let position = -1;\n return {\n subscribe,\n length: () => history.length,\n reset: () => {\n history = [];\n position = -1;\n set([\"\", -1]);\n },\n add: (value) => {\n if (value === history[position])\n return; // no change\n if (position < history.length - 1)\n history = history.slice(0, position + 1); // cut future history\n history.push(value);\n position += 1;\n set([history[position], position]);\n },\n undo: () => update(() => {\n if (position > 0)\n position -= 1;\n return [history[position], position];\n }),\n redo: () => update(() => {\n if (position < history.length - 1)\n position += 1;\n return [history[position], position];\n })\n };\n};\nexport const changes = createChangesStore();\nfunction defineInitialOptions() {\n const stored = (key) => {\n const value = localStorage.getItem(key);\n if (value === \"null\")\n return null;\n return value;\n };\n const storedObj = (key) => {\n return localStorage.getItem(key) ? JSON.parse(localStorage.getItem(key)) : null;\n };\n const getShieldFromURL = () => {\n const coaParam = new URL(window.location.href).searchParams.get(\"coa\");\n if (!coaParam)\n return null;\n const coa = JSON.parse(coaParam);\n return coa?.shield;\n };\n const size = +stored(\"size\") || DEFAULT_SIZE;\n const diaper = stored(\"diaper\") || DEFAULT_DIAPER;\n const grad = stored(\"grad\") || ra(DEFAULT_GRADIENTS);\n const shield = getShieldFromURL() || stored(\"shield\") || rw(shields[rw(shields.types)]);\n const colors = storedObj(\"colors\") || JSON.parse(JSON.stringify(DEFAULT_COLORS));\n const border = stored(\"border\") || DEFAULT_BORDER;\n const borderWidth = +stored(\"borderWidth\") || DEFAULT_BORDER_WIDTH;\n const background = stored(\"background\") || DEFAULT_BACKGROUND;\n const scale = +stored(\"scale\") || DEFAULT_SCALE;\n const grid = +stored(\"grid\") || DEFAULT_GRID;\n const showGrid = storedObj(\"showGrid\") || DEFAULT_SHOW_GRID;\n const storedTinctures = storedObj(\"tinctures\");\n const areTincturesValid = storedTinctures ? validateTinctures(storedTinctures) : false;\n const tinctures = areTincturesValid ? storedTinctures : JSON.parse(JSON.stringify(DEFAULT_TINCTURES));\n return {\n size,\n diaper,\n grad,\n shield,\n colors,\n tinctures,\n border,\n borderWidth,\n background,\n scale,\n grid,\n showGrid\n };\n}\n","export const validateTinctures = (tinctures) => {\n const mandatoryElements = [\"field\", \"division\", \"charge\"];\n const mandatoryTypes = [\"metals\", \"colours\"];\n try {\n for (const element of mandatoryElements) {\n if (!tinctures[element])\n throw new Error(`Missing ${element}`);\n for (const type of mandatoryTypes) {\n if (!tinctures[element][type])\n throw new Error(`Missing ${type} in ${element}`);\n }\n }\n for (const type of mandatoryTypes) {\n if (!tinctures[type])\n throw new Error(`Missing ${type}`);\n const keys = Object.keys(tinctures[type]);\n if (keys.length < 2)\n throw new Error(`Type ${type} must have more than 2 tinctures`);\n const totalChance = Object.values(tinctures[type]).reduce((a, b) => a + b, 0);\n if (totalChance < 1)\n throw new Error(`Total chance for type ${type} must be more that zero`);\n }\n return true;\n }\n catch (err) {\n console.error(\"Invalid stored tinctures data, switching to defaults.\", err.message, tinctures);\n return false;\n }\n};\n","import {get} from \"svelte/store\";\nimport {scale, grad, diaper} from \"data/stores\";\n\nconst isFirefox = navigator.userAgent.includes(\"Firefox\");\n\nexport async function download(i, format = \"png\") {\n const coas = i || i === 0 ? [document.getElementById(\"coa\" + i)] : document.querySelectorAll(\"svg.coa\");\n let {width, height} = coas[0].getBoundingClientRect();\n const numberX = coas.length > 1 ? Math.floor(window.innerWidth / width) : 1;\n const numberY = coas.length > 1 ? Math.ceil(coas.length / numberX) : 1;\n\n const scaleValue = get(scale);\n width = Math.round(width * scaleValue);\n height = Math.round(height * scaleValue);\n\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n canvas.width = width * numberX;\n canvas.height = height * numberY;\n\n let loaded = 0;\n coas.forEach(async function (svg, i) {\n const url = await getURL(svg, width, height);\n format === \"svg\" ? downloadVector(url) : downloadRaster(url, i);\n });\n\n function downloadVector(url) {\n const link = document.createElement(\"a\");\n link.download = `armoria_${getTimestamp()}.svg`;\n link.href = url;\n link.click();\n window.setTimeout(() => window.URL.revokeObjectURL(URL), 5000);\n }\n\n function downloadRaster(url, i) {\n const img = new Image();\n img.src = url;\n img.onload = () => {\n URL.revokeObjectURL(url);\n ctx.drawImage(img, (i % numberX) * width, Math.floor(i / numberX) * height, width, height);\n loaded++;\n if (loaded === coas.length) drawCanvas(canvas, format);\n };\n }\n}\n\nasync function getURL(svg, width, height) {\n const addedElements = {};\n const clone = svg.cloneNode(true); // clone svg\n clone.setAttribute(\"width\", width);\n clone.setAttribute(\"height\", height);\n clone.removeAttribute(\"class\");\n clone.removeAttribute(\"id\");\n const d = clone.getElementsByTagName(\"defs\")[0];\n\n // remove grid if any\n const grid = clone.getElementById(\"grid\");\n const gridPattern = clone.getElementById(\"gridPattern\");\n if (grid) grid.remove();\n if (gridPattern) gridPattern.remove();\n\n const gr = get(grad),\n di = get(diaper);\n if (gr && gr !== \"no\") d.insertAdjacentHTML(\"beforeend\", defs.getElementById(gr).outerHTML);\n if (di && di !== \"no\") d.insertAdjacentHTML(\"beforeend\", defs.getElementById(di).outerHTML);\n clone.querySelectorAll(\".charge[charge]\").forEach(el => {\n const chargePattern = el.getAttribute(\"fill\").split(\"(#\")[1]?.split(\")\")[0];\n if (chargePattern) addPattern(chargePattern, d);\n const charge = el.getAttribute(\"charge\");\n if (addedElements[charge]) return;\n d.insertAdjacentHTML(\"beforeend\", defs.getElementById(charge).outerHTML);\n addedElements[charge] = true;\n });\n clone.querySelectorAll(\".ordinary\").forEach(el => {\n const ordinaryPattern = el.getAttribute(\"fill\").split(\"(#\")[1]?.split(\")\")[0];\n if (ordinaryPattern) addPattern(ordinaryPattern, d);\n });\n const fieldPattern = clone.getElementsByClassName(\"field\")[0].getAttribute(\"fill\").split(\"(#\")[1]?.split(\")\")[0];\n if (fieldPattern) addPattern(fieldPattern, d);\n const divisionPattern = clone.getElementsByClassName(\"division\")[0]?.querySelector(\"rect\").getAttribute(\"fill\").split(\"(#\")[1]?.split(\")\")[0];\n if (divisionPattern) addPattern(divisionPattern, d);\n\n function addPattern(pattern, d) {\n if (addedElements[pattern]) return;\n d.insertAdjacentHTML(\"beforeend\", document.getElementById(pattern).outerHTML);\n\n if (pattern.slice(0, 4) === \"semy\") {\n const charge = pattern.match(/semy_of_(.*?)-/)[1];\n if (!addedElements[charge]) {\n d.insertAdjacentHTML(\"beforeend\", document.getElementById(charge).outerHTML);\n addedElements[charge] = true;\n }\n }\n addedElements[pattern] = true;\n }\n\n const serialized = new XMLSerializer().serializeToString(clone);\n const pretty = isFirefox ? serialized : prettify(serialized); // don't prettify in Firefox\n const blob = new Blob([pretty], {type: \"image/svg+xml;charset=utf-8\"});\n const url = window.URL.createObjectURL(blob);\n window.setTimeout(() => window.URL.revokeObjectURL(url), 6000);\n return url;\n}\n\nfunction drawCanvas(canvas, format) {\n const link = document.createElement(\"a\");\n link.download = `armoria_${getTimestamp()}.${format}`;\n\n const URL = canvas.toDataURL(\"image/\" + format, 0.92);\n link.href = URL;\n link.click();\n\n setTimeout(function () {\n canvas.remove();\n window.URL.revokeObjectURL(link.href);\n }, 5000);\n}\n\nfunction getTimestamp() {\n const formatTime = time => (time < 10 ? \"0\" + time : time);\n const date = new Date();\n const year = date.getFullYear();\n const month = formatTime(date.getMonth() + 1);\n const day = formatTime(date.getDate());\n const hour = formatTime(date.getHours());\n const minutes = formatTime(date.getMinutes());\n const seconds = formatTime(date.getSeconds());\n return [year, month, day, hour, minutes, seconds].join(\"-\");\n}\n\nfunction prettify(source) {\n const xmlDoc = new DOMParser().parseFromString(source, \"image/svg+xml\");\n const xsltDoc = new DOMParser().parseFromString(\n [\n '',\n ' ',\n ' ',\n ' ',\n \" \",\n ' ',\n ' ',\n \" \",\n ' ',\n \" \"\n ].join(\"\\n\"),\n \"application/xml\"\n );\n\n const xsltProcessor = new XSLTProcessor();\n xsltProcessor.importStylesheet(xsltDoc);\n const resultDoc = xsltProcessor.transformToDocument(xmlDoc);\n const resultXml = new XMLSerializer().serializeToString(resultDoc);\n return resultXml;\n}\n","import { get } from \"svelte/store\";\nimport { iconedNav } from \"data/stores\";\nconst MIN_WIDTH = 1132;\nexport const checkForIconedNav = () => {\n const isIconed = get(iconedNav);\n const makeIconed = window.innerWidth < MIN_WIDTH;\n if (isIconed !== makeIconed)\n iconedNav.set(makeIconed);\n};\ncheckForIconedNav();\n","\n\n \n","\n\n{#if !$iconedNav}\n \n \n \n \n \n{/if}\n\n\n","import { get } from \"svelte/store\";\nimport { t } from \"svelte-i18n\";\nimport { forEach } from \"./utils\";\nconst translate = get(t);\nexport const tooltip = (element) => {\n if (!element.dataset.tooltip) {\n return;\n }\n const isTouchAvailable = \"ontouchstart\" in window;\n const div = document.createElement(\"div\");\n let limit;\n const gesture = element.dataset.gesture;\n const hotkey = element.dataset.hotkey;\n function mouseEnter() {\n removeTooltip();\n let text = element.dataset.tooltip;\n if (isTouchAvailable && gesture)\n text = `${text}. ${translate(\"tooltip.gesture\")}: ${gesture}`;\n if (!isTouchAvailable && hotkey)\n text = `${text}. ${translate(\"tooltip.hotkey\")}: ${hotkey}`;\n div.textContent = text;\n div.className = \"tooltip\";\n document.body.appendChild(div);\n const bbox = div.getBoundingClientRect();\n limit = [window.innerWidth - bbox.width, window.innerHeight - bbox.height];\n }\n function mouseMove(event) {\n div.style.left = `${Math.min(event.pageX + 10, limit[0])}px`;\n div.style.top = `${Math.min(event.pageY + 10, limit[1])}px`;\n }\n function removeTooltip() {\n forEach(\".tooltip\", el => el.remove());\n }\n element.on(\"mouseenter\", mouseEnter);\n element.on(\"mousemove\", mouseMove);\n element.on(\"mouseleave\", removeTooltip);\n return {\n destroy() {\n removeTooltip();\n }\n };\n};\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\n\n{#if label}\n \n {label}\n \n{/if}\n","\n\n\n {#if value && $iconedNav}\n \n \n \n {:else}\n \n {/if}\n\n \n \n\n\n","\n\n\n {#if value && $iconedNav}\n \n \n \n {:else}\n \n {/if}\n \n \n\n\n","\n\n{#if Boolean(locked)}\n 🔖 \n{/if}\n\n\n","\n\n\n
\n {#each shieldTypes as shieldType}\n
\n
\n {#each getShieldsInType(shieldType) as shieldName}\n
changeShield(shieldName)}>\n \n \n \n {$t(`shield.${shieldType}.${shieldName}`)}\n \n {/each}\n
\n\n
{$t(`shield.types.${shieldType}`)} \n
\n {/each}\n
\n\n {#key $shield}\n
\n \n {$t(`menu.shield`)}\n \n {/key}\n
\n\n\n","\n\n\n \n \n {$t(`menu.colors`)}\n \n","export const sizes = [\n [80, \"giant\"],\n [100, \"huge\"],\n [150, \"large\"],\n [200, \"medium\"],\n [300, \"small\"],\n [400, \"tiny\"]\n];\n\nexport const gradients = [\"no\", \"luster\", \"spotlight\", \"backlight\", \"brink\"];\n\nexport const diapers = [\"no\", \"nourse\", \"tessellation\", \"sennwald\", \"sulzbach\"];\n","\n\n\n
\n {#each gradients as gradient}\n changeGradient(gradient)}>\n {$t(`gradient.${gradient}`)}\n \n {/each}\n
\n\n {#key $grad}\n
\n \n {$t(`menu.gradient`)}\n \n {/key}\n
\n","\n\n\n
\n {#each diapers as d}\n changeDamasking(d)}>\n {$t(`diaper.${d}`)}\n \n {/each}\n
\n\n {#key $diaper}\n
\n \n {$t(`menu.damasking`)}\n \n {/key}\n
\n","\n\n\n
\n {#each sizes as [sizeNumber, sizeName]}\n changeSize(sizeNumber)}>\n {$t(`gallery.${sizeName}`)}\n \n {/each}\n
\n\n {#key $size}\n
\n \n {$t(`menu.gallery`)}\n \n {/key}\n
\n","\n\n\n \n \n\n\n","\n\n \n\n\n","\n\n \n\n\n","\n\n\n
\n \n {$t(`menu.color`)}\n {#if $border !== DEFAULT_BORDER}\n \n {/if}\n \n \n\n \n {$t(`menu.width`)}\n {#if $borderWidth !== DEFAULT_BORDER_WIDTH}\n \n {/if}\n \n \n
\n\n
\n {$t(`menu.border`)}\n \n
\n","\n\n\n
\n \n {$t(`menu.color`)}\n \n\n {#if $background !== DEFAULT_BACKGROUND}\n \n {/if}\n\n \n \n
\n\n
\n {$t(`menu.background`)}\n \n
\n","\n\n \n \n\n\n","\n\n\n
\n \n \n \n
\n\n
\n {$t(`menu.scale`)}\n \n
\n","\n\n\n
\n\n
\n \n \n \n \n \n \n \n \n
\n
\n","\n\n\n","\n\n\n","\n\n\n
\n
\n download(null, \"svg\")} tip={$t(\"tooltip.downloadSVG\")} hotkey=\"Ctrl + S\">{$t(`menu.downloadSVG`)} \n download(null, \"png\")} tip={$t(\"tooltip.downloadPNG\")} hotkey=\"Ctrl + P\">{$t(`menu.downloadPNG`)} \n download(null, \"jpeg\")} tip={$t(\"tooltip.downloadJPEG\")} hotkey=\"Ctrl + J\">{$t(`menu.downloadJPEG`)} \n\n {#if $state.edit}\n {$t(`menu.copyEditLink`)} \n {$t(`menu.copyApiLink`)} \n {$t(`menu.copyCoaString`)} \n {/if}\n
\n
\n","\n\n\n
\n
\n \n {$t(`menu.rasterCharge`)}\n \n\n \n {$t(`menu.vectorCharge`)}\n \n
\n
\n","\n\n{#if installable}\n \n{/if}\n","\n\n \n","\n\n \n","\n\n \n","\n\n\n
\n
\n {#each $locales as langCode}\n \n {/each}\n
\n
\n","\n\n\n","\n\n\n","\n\n\n","\n\n \n","\n\n\n \n {#if $isTextReady}\n \n \n \n \n \n \n\n {#if $iconedNav && $state.edit}\n \n {:else}\n \n \n \n \n {/if}\n\n {#if $state.edit}\n \n \n \n {/if}\n {/if}\n \n\n\n","\n\n\n \n \n \n\n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n","\n\n\n\n\n","\n\n\n
($state.license = 0)} class=\"close\">× \n\n
\n
{$t(\"license.armoriaLicense\")} \n\n {#if chargeData.length}\n
\n
{$t(\"license.currentCoas\")} \n {/if}\n\n {#if isLicenseSame}\n
{chargeData.length > 1 ? $t(\"license.charges\") : charge.charge}: {@html charge.license}, {@html charge.source} \n {:else}\n
\n {#each chargeData as { charge, license, source }}\n
{charge} : {@html license}, {@html source}
\n {/each}\n
\n {/if}\n\n {#if wetaShield($shield)}\n
{@html $t(\"license.wetaShield\")}
\n {/if}\n\n
\n
{$t(\"license.code\")}: MIT License, {@html armoriaGitHub} \n
{$t(\"license.textMain\")}
\n
{$t(\"license.textRest\")}
\n\n
\n
{$t(\"license.icons\")}: {@html ccBy}, {@html fontAwesome} \n
\n
\n
\n\n\n","\n\n{#if $showGrid}\n \n \n \n \n \n \n{/if}\n","\n\n{#if $state.positions}\n \n \n {#each points as p}\n \n \n {p[0]} \n \n {/each}\n \n \n{/if}\n\n\n","import {get} from \"svelte/store\";\nimport {changes, grid, shield} from \"data/stores\";\nimport {shieldPositions, shieldSize} from \"data/shields\";\n\nexport function drag(event, charge, coa) {\n const el = event.currentTarget;\n const x0 = event.x;\n const y0 = event.y;\n\n const sizeAdj = el.closest(\"svg\").clientWidth / 200;\n document.addEventListener(\"mouseup\", stopDragging, {once: true});\n\n const {x = 0, y = 0, size = 1} = charge;\n const gridSize = get(grid);\n const positionElements = el.querySelectorAll(\"use\");\n const positions = shieldPositions[get(shield)] || shieldPositions.spanish;\n\n if (event.shiftKey) {\n document.addEventListener(\"mousemove\", resize);\n document.body.style.cursor = \"ns-resize\";\n } else if (event.ctrlKey || event.metaKey) {\n document.addEventListener(\"mousemove\", rotate);\n document.body.style.cursor = \"ew-resize\";\n } else {\n document.addEventListener(\"mousemove\", move);\n document.body.style.cursor = \"move\";\n }\n\n function move(event) {\n const dx = x + (event.x - x0) / sizeAdj;\n const dy = y + (event.y - y0) / sizeAdj;\n\n charge.x = Math.round(dx / gridSize) * gridSize;\n charge.y = Math.round(dy / gridSize) * gridSize;\n setGroupTransform(el, charge);\n }\n\n function resize(event) {\n const dy = y + (event.y - y0) / sizeAdj;\n charge.size = round(size + dy / -100);\n\n if (charge.p) {\n setElementTransform(charge);\n } else {\n setGroupTransform(el, charge);\n }\n }\n\n function rotate(event) {\n const cx = x + 100;\n const cy = y + 100;\n\n const x1 = event.x / sizeAdj;\n const y1 = event.y / sizeAdj;\n\n let a = 90 + (Math.atan2(y1 - cy, x1 - cx) * 180) / Math.PI;\n if (a > 180) a = (a % 180) - 180;\n if (a < -179) a = (a % 180) + 180;\n\n charge.angle = Math.round(a / gridSize) * gridSize;\n setGroupTransform(el, charge);\n }\n\n function setGroupTransform(el, charge) {\n const tr = transform(charge);\n\n if (tr) el.setAttribute(\"transform\", tr);\n else el.removeAttribute(\"transform\");\n }\n\n function setElementTransform(charge) {\n const validPositions = [...new Set(charge.p)].filter(p => positions[p]);\n validPositions.forEach((p, i) => {\n const element = positionElements[i];\n if (element) {\n const transform = getElTransform(charge, p, get(shield));\n if (transform) element.setAttribute(\"transform\", transform);\n else element.removeAttribute(\"transform\");\n }\n });\n }\n\n function stopDragging() {\n document.removeEventListener(\"mousemove\", move);\n document.removeEventListener(\"mousemove\", resize);\n document.removeEventListener(\"mousemove\", rotate);\n document.body.style.cursor = \"auto\";\n changes.add(JSON.stringify(coa));\n }\n}\n\nfunction round(n) {\n return Math.round(n * 100) / 100;\n}\n\nexport function transform(charge) {\n let {x = 0, y = 0, angle = 0, size = 1, p} = charge;\n if (p) size = 1; // size is defined on use element level\n\n if (size !== 1) {\n x = round(x + 100 - size * 100);\n y = round(y + 100 - size * 100);\n }\n\n let transform = \"\";\n if (x || y) transform += `translate(${x} ${y})`;\n if (angle) transform += ` rotate(${angle} ${size * 100} ${size * 100})`;\n if (size !== 1) transform += ` scale(${size})`;\n\n return transform ? transform.trim() : null;\n}\n\nexport function getElTransform(charge, p, shield) {\n const positions = shieldPositions[shield] || shieldPositions.spanish;\n const sizeModifier = shieldSize[shield] || 1;\n\n const size = round((charge.size || 1) * sizeModifier);\n const sx = charge.sinister ? -size : size;\n const sy = charge.reversed ? -size : size;\n let [x, y] = positions[p];\n x = round(x - 100 * (sx - 1));\n y = round(y - 100 * (sy - 1));\n\n const translate = x || y ? `translate(${x} ${y})` : null;\n const scale = sx !== 1 || sy !== 1 ? (sx === sy ? `scale(${sx})` : `scale(${sx} ${sy})`) : null;\n return translate && scale ? `${translate} ${scale}` : translate ? translate : scale ? scale : null;\n}\n","export const lines = {\n straight: \"m 0,100 v15 h 200 v -15 z\",\n engrailed: \"m 0,95 a 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 v 20 H 0 Z\",\n invecked: \"M0,102.5 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 v12.5 H0 z\",\n embattled: \"M 0,105 H 2.5 V 95 h 15 v 10 h 15 V 95 h 15 v 10 h 15 V 95 h 15 v 10 h 15 V 95 h 15 v 10 h 15 V 95 h 15 v 10 h 15 V 95 h 15 v 10 h 15 V 95 h 15 v 10 h 2.5 v 10 H 0 Z\",\n wavy: \"m 200,115 v -15 c -8.9,3.5 -16,3.1 -25,0 -8.9,-3.5 -16,-3.1 -25,0 -8.9,3.5 -16,3.2 -25,0 -8.9,-3.5 -16,-3.2 -25,0 -8.9,3.5 -16,3.1 -25,0 -8.9,-3.5 -16,-3.1 -25,0 -8.9,3.5 -16,3.2 -25,0 -8.9,-3.5 -16,-3.2 -25,0 v 15 z\",\n raguly: \"m 200,95 h -3 l -5,10 h -10 l 5,-10 h -10 l -5,10 h -10 l 5,-10 h -10 l -5,10 h -10 l 5,-10 h -10 l -5,10 h -10 l 5,-10 h -10 l -5,10 h -10 l 5,-10 H 97 l -5,10 H 82 L 87,95 H 77 l -5,10 H 62 L 67,95 H 57 l -5,10 H 42 L 47,95 H 37 l -5,10 H 22 L 27,95 H 17 l -5,10 H 2 L 7,95 H 0 v 20 h 200 z\",\n dancetty: \"m 0,105 10,-15 15,20 15,-20 15,20 15,-20 15,20 15,-20 15,20 15,-20 15,20 15,-20 15,20 15,-20 10,15 v 10 H 0 Z\",\n dentilly: \"M 180,105 170,95 v 10 L 160,95 v 10 L 150,95 v 10 L 140,95 v 10 L 130,95 v 10 L 120,95 v 10 L 110,95 v 10 L 100,95 v 10 L 90,95 v 10 L 80,95 v 10 L 70,95 v 10 L 60,95 v 10 L 50,95 v 10 L 40,95 v 10 L 30,95 v 10 L 20,95 v 10 L 10,95 v 10 L 0,95 v 20 H 200 V 105 L 190,95 v 10 L 180,95 Z\",\n angled: \"m 0,95 h 100 v 10 h 100 v 10 H 0 Z\",\n urdy: \"m 200,90 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,6 -5,-6 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,6 -5,-6 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 L 0,90 v 25 h 200\",\n indented: \"m 100,95 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 v 20 H 0 V 95 l 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 z\",\n bevilled: \"m 0,92.5 h 110 l -20,15 H 200 V 115 H 0 Z\",\n nowy: \"m 0,95 h 80 c 0,0 0.1,20.1 20,20 19.9,-0.1 20,-20 20,-20 h 80 v 20 H 0 Z\",\n nowyReversed: \"m 200,105 h -80 c 0,0 -0.1,-20.1 -20,-20 -19.9,0.1 -20,20 -20,20 H 0 v 10 h 200 z\",\n potenty: \"m 3,95 v 5 h 5 v 5 H 0 v 10 h 200 l 0.5,-10 H 193 v -5 h 5 v -5 h -15 v 5 h 5 v 5 h -15 v -5 h 5 v -5 h -15 v 5 h 5 v 5 h -15 v -5 h 5 v -5 h -15 v 5 h 5 v 5 h -15 v -5 h 5 v -5 h -15 v 5 h 5 v 5 h -15 v -5 h 5 v -5 h -15 v 5 h 5 v 5 H 100.5 93 v -5 h 5 V 95 H 83 v 5 h 5 v 5 H 73 v -5 h 5 V 95 H 63 v 5 h 5 v 5 H 53 v -5 h 5 V 95 H 43 v 5 h 5 v 5 H 33 v -5 h 5 V 95 H 23 v 5 h 5 v 5 H 13 v -5 h 5 v -5 z\",\n potentyDexter: \"m 200,105 h -2 v -10 0 0 h -10 v 5 h 5 v 5 H 183 V 95 h -10 v 5 h 5 v 5 H 168 V 95 h -10 v 5 h 5 v 5 H 153 V 95 h -10 v 5 h 5 v 5 H 138 V 95 h -10 v 5 h 5 v 5 H 123 V 95 h -10 v 5 h 5 v 5 h -10 v 0 0 -10 H 98 v 5 h 5 v 5 H 93 V 95 H 83 v 5 h 5 v 5 H 78 V 95 H 68 v 5 h 5 v 5 H 63 V 95 H 53 v 5 h 5 v 5 H 48 V 95 H 38 v 5 h 5 v 5 H 33 V 95 H 23 v 5 h 5 v 5 H 18 V 95 H 8 v 5 h 5 v 5 H 3 V 95 H 0 v 20 h 200 z\",\n potentySinister: \"m 2.5,95 v 10 H 0 v 10 h 202.5 v -15 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 z\",\n embattledGhibellin: \"M 200,200 V 100 l -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 v 15 h 200\",\n embattledNotched: \"m 200,105 h -5 V 95 l -5,5 -5,-5 v 10 h -5 V 95 l -5,5 -5,-5 v 10 h -5 V 95 l -5,5 -5,-5 v 10 h -5 V 95 l -5,5 -5,-5 v 10 h -5 V 95 l -5,5 -5,-5 v 10 h -5 V 95 l -5,5 -5,-5 v 10 h -5 V 95 l -5,5 -5,-5 v 10 H 90 V 95 l -5,5 -5,-5 v 10 H 75 V 95 l -5,5 -5,-5 v 10 H 60 V 95 l -5,5 -5,-5 v 10 H 45 V 95 l -5,5 -5,-5 v 10 H 30 V 95 l -5,5 -5,-5 v 10 H 15 V 95 l -5,5 -5,-5 v 10 H 0 v 10 h 200\",\n embattledGrady: \"m 0,95 v 20 H 200 V 95 h -2.5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 z\",\n dovetailed: \"m 200,95 h -7 l 4,10 h -14 l 4,-10 h -14 l 4,10 h -14 l 4,-10 h -14 l 4,10 h -14 l 4,-10 h -14 l 4,10 h -14 l 4,-10 h -14 l 4,10 h -14 l 4,-10 H 93 l 4,10 H 83 L 87,95 H 73 l 4,10 H 63 L 67,95 H 53 l 4,10 H 43 L 47,95 H 33 l 4,10 H 23 L 27,95 H 13 l 4,10 H 3 L 7,95 H 0 v 20 h 200\",\n dovetailedIndented: \"m 200,100 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 v 15 h 200\",\n nebuly: \"m 13.1,89.8 c -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.2,4.5 -7.3,4.5 -0.5,0 -2.2,-0.2 -2.2,-0.2 V 115 h 200 v -10.1 c -3.7,-0.2 -6.7,-2.2 -6.7,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.8,-1.9 1.8,-3.1 0,-2.5 -3.2,-4.5 -7.2,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.8,-1.9 1.8,-3.1 0,-2.5 -3.2,-4.5 -7.2,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 -1.5,4.1 -4.2,4.4 -8.8,4.5 -4.7,-0.1 -8.7,-1.5 -8.9,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 z\",\n rayonne: \"M0 115l-.1-6 .2.8c1.3-1 2.3-2.5 2.9-4.4.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4A9 9 0 015.5 90c-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 2.1 3.1 3.1 4.6 1 1.6 2.4 3.1 2.7 4.8.3 1.7.3 3.3 0 5.2 1.3-1 2.6-2.7 3.2-4.6.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.75 2.79 2.72 4.08 4.45 5.82L200 115z\",\n seaWaves: \"m 28.83,94.9 c -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.44,-3.6 3.6,-3.6 0.7,0 1.36,0.17 1.93,0.48 -0.33,-2.03 -2.19,-3.56 -4.45,-3.56 -4.24,0 -6.91,3.13 -8.5,5.13 V 115 h 200 v -14.89 c -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.2,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.21,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.21,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.2,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.44,-3.6 3.6,-3.6 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.21,-3.55 -4.46,-3.55 -4.25,0 -6.6,3.09 -8.19,5.09 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.21,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.2,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.2,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.21,-3.55 -4.46,-3.55 z\",\n dragonTeeth: \"M 9.4,85 C 6.5,88.1 4.1,92.9 3,98.8 1.9,104.6 2.3,110.4 3.8,115 2.4,113.5 0,106.6 0,109.3 v 5.7 h 200 v -5.7 c -1.1,-2.4 -2,-5.1 -2.6,-8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -1.4,-1.5 -2.8,-3.9 -3.8,-6.1 -1.1,-2.4 -2.3,-6.1 -2.6,-7.7 -0.2,-5.9 0.2,-11.7 1.7,-16.3 -3,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.8 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1,-5.8 -0.7,-11.6 0.9,-16.2 -3,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.8 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.8 -0.7,-11.6 0.9,-16.2 -3,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.8 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 C 63,95.4 63.4,89.6 64.9,85 c -2.9,3.1 -5.3,7.9 -6.3,13.8 -1.1,5.8 -0.7,11.6 0.8,16.2 -3,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.8 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1,5.8 -0.6,11.6 0.9,16.2 -3,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.8 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1,5.8 -0.7,11.6 0.9,16.2 -3,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.8 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.8 -0.7,11.6 0.9,16.2 -3,-3.1 -5.3,-7.9 -6.4,-13.8 C 18.6,95.4 19,89.6 20.5,85 17.6,88.1 15.2,92.9 14.1,98.8 13,104.6 13.4,110.4 14.9,115 12,111.9 9.6,107.1 8.6,101.2 7.5,95.4 7.9,89.6 9.4,85 Z\",\n firTrees: \"m 3.9,90 -4,7 2,-0.5 L 0,100 v 15 h 200 v -15 l -1.9,-3.5 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4.1,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4.1,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 z\",\n flechy: \"m 0,100 h 85 l 15,-15 15,15 h 85 v 15 H 0 Z\",\n barby: \"m 0,100 h 85 l 15,15 15,-15 h 85 v 15 H 0 Z\",\n enclavy: \"M 0,100 H 85 V 85 h 30 v 15 h 85 v 15 H 0 Z\",\n escartely: \"m 0,100 h 85 v 15 h 30 v -15 h 85 v 15 H 0 Z\",\n arched: \"m 100,95 c 40,-0.2 100,20 100,20 H 0 c 0,0 60,-19.8 100,-20 z\",\n archedReversed: \"m 0,85 c 0,0 60,20.2 100,20 40,-0.2 100,-20 100,-20 v 30 H 0 Z\"\n}\n\nexport const templates = {\n // straight divisions\n perFess: ``,\n perPale: ``,\n perBend: ` `,\n perBendSinister: ` `,\n perChevron: ` `,\n perChevronReversed: ` `,\n perCross: ``,\n perPile: ` `,\n perSaltire: ` `,\n gyronny: ` `,\n chevronny: ` `,\n // lined divisions\n perFessLined: line => ``,\n perPaleLined: line => ``,\n perBendLined: line => ``,\n perBendSinisterLined: line => ``,\n perChevronLined: line => ` `,\n perChevronReversedLined: line => ` `,\n perCrossLined: line => ` `,\n perPileLined: line => ` `,\n // straight ordinaries\n fess: ``,\n pale: ``,\n bend: ` `,\n bendSinister: ` `,\n chief: ``,\n bar: ``,\n gemelle: ``,\n fessCotissed: ``,\n fessDoubleCotissed: ``,\n bendlet: ` `,\n bendletSinister: ` `,\n terrace: ``,\n cross: ` `,\n crossParted: ` `,\n saltire: ` `,\n saltireParted: ` `,\n mount: ` `,\n point: ` `,\n flaunches: ` `,\n gore: ` `,\n pall: ` `,\n pallReversed: ` `,\n chevron: ` `,\n chevronReversed: ` `,\n gyron: ` `,\n quarter: ``,\n canton: ``,\n pile: ` `,\n pileInBend: ` `,\n pileInBendSinister: ` `,\n piles: ` `,\n pilesInPoint: ` `,\n label: ` `,\n // lined ordinaries\n fessLined: line => ``,\n paleLined: line => ``,\n bendLined: line => ``,\n bendSinisterLined: line => ``,\n chiefLined: line => ``,\n barLined: line => ``,\n gemelleLined: line => ` `,\n fessCotissedLined: line => ``,\n fessDoubleCotissedLined: line => ` `,\n bendletLined: line => ``,\n bendletSinisterLined: line => ``,\n terraceLined: line => ``,\n crossLined: line => ` `,\n crossPartedLined: line => ` `,\n saltireLined: line => ` `,\n saltirePartedLined: line => ` `\n}\n\nexport const patterns = {\n semy: (p, c1, c2, size, chargeId) => ` `,\n vair: (p, c1, c2, size) => ` `,\n counterVair: (p, c1, c2, size) => ` `,\n vairInPale: (p, c1, c2, size) => ` `,\n vairEnPointe: (p, c1, c2, size) => ` `,\n vairAncien: (p, c1, c2, size) => ` `,\n potent: (p, c1, c2, size) => ` `,\n counterPotent: (p, c1, c2, size) => ` `,\n potentInPale: (p, c1, c2, size) => ` `,\n potentEnPointe: (p, c1, c2, size) => ` `,\n ermine: (p, c1, c2, size) => ` `,\n chequy: (p, c1, c2, size) => ` `,\n lozengy: (p, c1, c2, size) => ` `,\n fusily: (p, c1, c2, size) => ` `,\n pally: (p, c1, c2, size) => ` `,\n barry: (p, c1, c2, size) => ` `,\n gemelles: (p, c1, c2, size) => ` `,\n bendy: (p, c1, c2, size) => ` `,\n bendySinister: (p, c1, c2, size) => ` `,\n palyBendy: (p, c1, c2, size) => ` `,\n barryBendy: (p, c1, c2, size) => ` `,\n pappellony: (p, c1, c2, size) => ` `,\n pappellony2: (p, c1, c2, size) => ` `,\n scaly: (p, c1, c2, size) => ` `,\n plumetty: (p, c1, c2, size) => ` `,\n masoned: (p, c1, c2, size) => ` `,\n fretty: (p, c1, c2, size) => ` `,\n grillage: (p, c1, c2, size) => ` `,\n chainy: (p, c1, c2, size) => ` `,\n maily: (p, c1, c2, size) => ` `,\n honeycombed: (p, c1, c2, size) => ` `\n}\n","import {get} from \"svelte/store\";\nimport {templates, lines, patterns} from \"data/templates\";\nimport {shieldPaths} from \"data/shields\";\nimport {colors, shield} from \"data/stores\";\n\nconst chargesGroup = document.getElementById(\"charges\");\nconst colorsData = get(colors);\nconst loadedCharges = {};\n\nexport const getTemplate = (id, line) => {\n const linedId = id + \"Lined\";\n if (!line || line === \"straight\" || !templates[linedId]) return templates[id];\n const linePath = lines[line];\n return templates[linedId](linePath);\n};\n\nexport const addPattern = patternId => {\n if (!patternId) return console.error(\"No patternId\");\n if (document.getElementById(patternId)) return; // already added;\n\n const [pattern, t1, t2, size] = patternId.split(\"-\");\n const charge = semy(patternId);\n if (charge) addCharge(charge);\n\n const html = patterns[charge ? \"semy\" : pattern](patternId, clr(t1), clr(t2), getSizeMod(size), charge);\n document.getElementById(\"patterns\").insertAdjacentHTML(\"beforeend\", html);\n};\n\nfunction checkPattern(string) {\n if (string?.includes(\"-\")) addPattern(string);\n}\n\nexport function addShieldPatterns(coa) {\n checkPattern(coa.t1);\n checkPattern(coa.division?.t);\n for (let o of (coa.ordinaries || [])) {\n checkPattern(o.t);\n }\n for (let c of (coa.charges || [])) {\n checkPattern(c.t);\n checkPattern(c.t2);\n checkPattern(c.t3);\n }\n}\n\nfunction semy(string) {\n const isSemy = /^semy/.test(string);\n if (!isSemy) return false;\n return string.match(/semy_of_(.*?)-/)[1];\n}\n\nexport function addCharge(charge) {\n charge.slice(0, 12) === \"inescutcheon\" ? addInescutcheon(charge) : fetchCharge(charge);\n}\n\nfunction addInescutcheon(charge) {\n const shieldName = charge.length > 12 ? charge.slice(12, 13).toLowerCase() + charge.slice(13) : get(shield);\n const id = charge.length > 12 ? charge : \"inescutcheon\" + shieldName.charAt(0).toUpperCase() + shieldName.slice(1);\n\n if (loadedCharges[id]) return; // already added\n loadedCharges[id] = true;\n\n const licenseAttrs = [\"noldor\", \"gondor\", \"easterling\", \"ironHills\", \"urukHai\", \"moriaOrc\"].includes(shieldName)\n ? `author=\"Weta Workshop\" source=\"www.wetanz.com\" license=\"https://en.wikipedia.org/wiki/Fair_use\"`\n : `author=Azgaar license=\"https://creativecommons.org/publicdomain/zero/1.0\"`;\n const g = ` `;\n chargesGroup.insertAdjacentHTML(\"beforeend\", g);\n}\n\nfunction fetchCharge(charge) {\n if (loadedCharges[charge]) return; // already added\n loadedCharges[charge] = true;\n\n fetch(\"charges/\" + charge + \".svg\")\n .then(res => {\n if (res.ok) return res.text();\n else throw new Error(\"Cannot fetch charge\");\n })\n .then(text => {\n const el = document.createElement(\"html\");\n el.innerHTML = text;\n const g = el.querySelector(\"g\");\n const metadata = el.getElementsByTagName(\"metadata\")[0];\n\n if (metadata) {\n const author = metadata.getAttribute(\"author\");\n const source = metadata.getAttribute(\"source\");\n const license = metadata.getAttribute(\"license\");\n if (author) g.setAttribute(\"author\", author);\n if (source) g.setAttribute(\"source\", source);\n if (license) g.setAttribute(\"license\", license);\n }\n\n chargesGroup.insertAdjacentHTML(\"beforeend\", g.outerHTML);\n })\n .catch(err => console.error(err));\n}\n\nfunction clr(tincture) {\n if (!colorsData[tincture]) throw new Error(`Tincture ${tincture} is not found`);\n return colorsData[tincture];\n}\n\nfunction getSizeMod(size) {\n if (size === \"small\") return 0.8;\n if (size === \"smaller\") return 0.5;\n if (size === \"smallest\") return 0.25;\n if (size === \"big\") return 1.6;\n if (size === \"bigger\") return 2;\n return 1;\n}\n","\n\n{#if ordinary.ordinary === \"bordure\"}\n \n \n \n{:else if ordinary.ordinary === \"orle\"}\n \n \n \n{:else}\n \n {@html getTemplate(ordinary.ordinary, ordinary.line)}\n \n{/if}\n","\n\n\n {#each validPositions as position}\n \n {/each}\n \n","\n\n\n \n \n \n {#if division && division.division !== \"no\"}\n \n {@html getTemplate(division.division, division.line)}\n \n {/if}\n\n \n \n\n\n \n \n\n {#if division && division.division !== \"no\"}\n \n {#each ordinariesRegular as ordinary, i}\n {#if ordinary.divided === \"field\"}\n \n {:else if ordinary.divided === \"counter\"}\n \n {/if}\n {/each}\n\n {#if diaperType === \"field\"}\n \n {/if}\n\n {#each charges as charge, i}\n {#if charge.divided === \"field\"}\n \n {:else if charge.divided === \"counter\"}\n \n {/if}\n {/each}\n\n {#each ordinariesAboveCharges as ordinary, i}\n {#if ordinary.divided === \"field\"}\n \n {:else if ordinary.divided === \"counter\"}\n \n {/if}\n {/each}\n\n \n \n \n\n {#each ordinariesRegular as ordinary, i}\n {#if ordinary.divided === \"division\"}\n \n {:else if ordinary.divided === \"counter\"}\n \n {/if}\n {/each}\n\n {#if diaperType === \"division\"}\n \n {/if}\n\n {#each charges as charge, i}\n {#if charge.divided === \"division\"}\n \n {:else if charge.divided === \"counter\"}\n \n {/if}\n {/each}\n\n {#each ordinariesAboveCharges as ordinary, i}\n {#if ordinary.divided === \"division\"}\n \n {:else if ordinary.divided === \"counter\"}\n \n {/if}\n {/each}\n \n {/if}\n\n \n {#each ordinariesRegular as ordinary, i}\n {#if !ordinary.divided}\n \n {/if}\n {/each}\n\n {#if diaperType === \"overall\"}\n \n {/if}\n\n {#each charges as charge, i}\n {#if !charge.divided || !division}\n \n {/if}\n {/each}\n\n {#each ordinariesAboveCharges as ordinary, i}\n {#if !ordinary.divided}\n \n {/if}\n {/each}\n \n\n \n","\n\n\n \n {#if isEdit}\n \n \n {/if}\n \n","export const positionsSelect = [\n \"a\",\n \"b\",\n \"c\",\n \"d\",\n \"e\",\n \"f\",\n \"g\",\n \"h\",\n \"i\",\n \"y\",\n \"z\",\n \"kn\",\n \"bh\",\n \"df\",\n \"pq\",\n \"jo\",\n \"lm\",\n \"abc\",\n \"def\",\n \"ghi\",\n \"adg\",\n \"beh\",\n \"cfi\",\n \"jeo\",\n \"jln\",\n \"kmo\",\n \"peq\",\n \"lem\",\n \"bhdf\",\n \"jleh\",\n \"acegi\",\n \"bdefh\",\n \"kenpq\",\n \"abcpqh\",\n \"abcdefgzi\",\n \"ABCDEFGHIJKL\"\n];\n\nexport const positions = {\n conventional: {\n e: 20,\n abcdefgzi: 3,\n beh: 3,\n behdf: 2,\n acegi: 1,\n kn: 3,\n bhdf: 1,\n jeo: 1,\n abc: 3,\n jln: 6,\n jlh: 3,\n kmo: 2,\n jleh: 1,\n def: 3,\n abcpqh: 4,\n ABCDEFGHIJKL: 1\n },\n complex: {e: 40, beh: 1, kn: 1, jeo: 1, abc: 2, jln: 7, jlh: 2, def: 1, abcpqh: 1},\n divisions: {\n perPale: {e: 15, pq: 5, jo: 2, jl: 2, ABCDEFGHIJKL: 1},\n perFess: {e: 12, kn: 4, jkl: 2, gizgiz: 1, jlh: 3, kmo: 1, ABCDEFGHIJKL: 1},\n perBend: {e: 5, lm: 5, bcfdgh: 1},\n perBendSinister: {e: 1, jo: 1},\n perCross: {e: 4, jlmo: 1, j: 1, jo: 2, jl: 1},\n perChevron: {e: 1, jlh: 1, dfk: 1, dfbh: 2, bdefh: 1},\n perChevronReversed: {e: 1, mok: 2, dfh: 2, dfbh: 1, bdefh: 1},\n perSaltire: {bhdf: 8, e: 3, abcdefgzi: 1, bh: 1, df: 1, ABCDEFGHIJKL: 1},\n perPile: {ee: 3, be: 2, abceh: 1, abcabc: 1, jleh: 1}\n },\n inescutcheon: {e: 4, jln: 1}\n};\n\nexport const lines = {\n straight: 50,\n wavy: 8,\n engrailed: 4,\n invecked: 3,\n rayonne: 3,\n embattled: 1,\n raguly: 1,\n urdy: 1,\n dancetty: 1,\n indented: 2,\n dentilly: 1,\n bevilled: 1,\n angled: 1,\n flechy: 1,\n barby: 1,\n enclavy: 1,\n escartely: 1,\n arched: 2,\n archedReversed: 1,\n nowy: 1,\n nowyReversed: 1,\n embattledGhibellin: 1,\n embattledNotched: 1,\n embattledGrady: 1,\n dovetailedIndented: 1,\n dovetailed: 1,\n potenty: 1,\n potentyDexter: 1,\n potentySinister: 1,\n nebuly: 2,\n seaWaves: 1,\n dragonTeeth: 1,\n firTrees: 1\n};\n\nexport const divisions = {\n variants: {\n perPale: 5,\n perFess: 5,\n perBend: 2,\n perBendSinister: 1,\n perChevron: 1,\n perChevronReversed: 1,\n perCross: 5,\n perPile: 1,\n perSaltire: 1,\n gyronny: 1,\n chevronny: 1\n },\n perPale: lines,\n perFess: lines,\n perBend: lines,\n perBendSinister: lines,\n perChevron: lines,\n perChevronReversed: lines,\n perCross: {\n straight: 20,\n wavy: 5,\n engrailed: 4,\n invecked: 3,\n rayonne: 1,\n embattled: 1,\n raguly: 1,\n urdy: 1,\n indented: 2,\n dentilly: 1,\n bevilled: 1,\n angled: 1,\n embattledGhibellin: 1,\n embattledGrady: 1,\n dovetailedIndented: 1,\n dovetailed: 1,\n potenty: 1,\n potentyDexter: 1,\n potentySinister: 1,\n nebuly: 1\n },\n perPile: lines\n};\n\nexport const ordinaries = {\n lined: {\n pale: 7,\n fess: 5,\n bend: 3,\n bendSinister: 2,\n chief: 5,\n bar: 2,\n gemelle: 1,\n fessCotissed: 1,\n fessDoubleCotissed: 1,\n bendlet: 2,\n bendletSinister: 1,\n terrace: 3,\n cross: 6,\n crossParted: 1,\n saltire: 2,\n saltireParted: 1\n },\n straight: {\n bordure: 8,\n orle: 4,\n mount: 1,\n point: 2,\n flaunches: 1,\n gore: 1,\n gyron: 1,\n quarter: 1,\n canton: 2,\n pall: 3,\n pallReversed: 2,\n chevron: 4,\n chevronReversed: 3,\n pile: 2,\n pileInBend: 2,\n pileInBendSinister: 1,\n piles: 1,\n pilesInPoint: 2,\n label: 1\n },\n data: {\n bar: {\n positionsOn: {defdefdef: 1},\n positionsOff: {abc: 2, abcgzi: 1, jlh: 5, bgi: 2, ach: 1}\n },\n bend: {\n positionsOn: {ee: 2, jo: 1, joe: 1},\n positionsOff: {ccg: 2, ccc: 1}\n },\n bendSinister: {\n positionsOn: {ee: 1, lm: 1, lem: 4},\n positionsOff: {aai: 2, aaa: 1}\n },\n bendlet: {\n positionsOn: {joejoejoe: 1},\n positionsOff: {ccg: 2, ccc: 1}\n },\n bendletSinister: {\n positionsOn: {lemlemlem: 1},\n positionsOff: {aai: 2, aaa: 1}\n },\n bordure: {\n positionsOn: {ABCDEFGHIJKL: 1},\n positionsOff: {e: 4, jleh: 2, kenken: 1, peqpeq: 1}\n },\n canton: {\n positionsOn: {yyyy: 1},\n positionsOff: {e: 5, beh: 1, def: 1, bdefh: 1, kn: 1}\n },\n chevron: {\n positionsOn: {ach: 3, hhh: 1}\n },\n chevronReversed: {\n positionsOff: {bbb: 1}\n },\n chief: {\n positionsOn: {abc: 5, bbb: 1},\n positionsOff: {emo: 2, emoz: 1, ez: 2}\n },\n cross: {\n positionsOn: {eeee: 1, behdfbehdf: 3, behbehbeh: 2},\n positionsOff: {acgi: 1}\n },\n crossParted: {\n positionsOn: {e: 5, ee: 1}\n },\n fess: {\n positionsOn: {ee: 1, def: 3},\n positionsOff: {abc: 3, abcz: 1}\n },\n fessCotissed: {\n positionsOn: {ee: 1, def: 3}\n },\n fessDoubleCotissed: {\n positionsOn: {ee: 1, defdef: 3}\n },\n flaunches: {\n positionsOff: {e: 3, kn: 1, beh: 3}\n },\n gemelle: {\n positionsOff: {abc: 1}\n },\n gyron: {\n positionsOff: {bh: 1}\n },\n label: {\n positionsOff: {defgzi: 2, eh: 3, defdefhmo: 1, egiegi: 1, pqn: 5}\n },\n mount: {\n positionsOff: {e: 5, def: 1, bdf: 3}\n },\n orle: {\n positionsOff: {e: 4, jleh: 1, kenken: 1, peqpeq: 1}\n },\n pale: {\n positionsOn: {ee: 12, beh: 10, kn: 3, bb: 1},\n positionsOff: {yyy: 1}\n },\n pall: {\n positionsOn: {ee: 1, jleh: 5, jlhh: 3},\n positionsOff: {BCKFEILGJbdmfo: 1}\n },\n pallReversed: {\n positionsOn: {ee: 1, bemo: 5},\n positionsOff: {aczac: 1}\n },\n pile: {\n positionsOn: {bbb: 1},\n positionsOff: {acdfgi: 1, acac: 1}\n },\n pileInBend: {\n positionsOn: {eeee: 1, eeoo: 1},\n positionsOff: {cg: 1}\n },\n pileInBendSinister: {\n positionsOn: {eeee: 1, eemm: 1},\n positionsOff: {ai: 1}\n },\n point: {\n positionsOff: {e: 2, def: 1, bdf: 3, acbdef: 1}\n },\n quarter: {\n positionsOn: {jjj: 1},\n positionsOff: {e: 1}\n },\n saltire: {\n positionsOn: {ee: 5, jlemo: 1}\n },\n saltireParted: {\n positionsOn: {e: 5, ee: 1}\n },\n terrace: {\n positionsOff: {e: 5, def: 1, bdf: 3}\n }\n }\n};\n\nconst chargeData = {\n agnusDei: {\n colors: 2,\n sinister: true\n },\n angel: {\n colors: 2,\n positions: {e: 1}\n },\n anvil: {\n sinister: true\n },\n apple: {\n colors: 2\n },\n arbalest: {\n colors: 3,\n reversed: true\n },\n armillarySphere: {\n positions: {e: 1}\n },\n arrow: {\n colors: 3,\n reversed: true\n },\n arrowsSheaf: {\n colors: 3,\n reversed: true\n },\n axe: {\n colors: 2,\n sinister: true\n },\n badgerStatant: {\n colors: 2,\n sinister: true\n },\n banner: {\n colors: 2\n },\n basilisk: {\n colors: 3,\n sinister: true\n },\n bearPassant: {\n colors: 3,\n sinister: true\n },\n bearRampant: {\n colors: 3,\n sinister: true\n },\n bee: {\n colors: 3,\n reversed: true\n },\n bell: {\n colors: 2\n },\n boarHeadErased: {\n colors: 3,\n sinister: true\n },\n boarRampant: {\n colors: 3,\n sinister: true,\n positions: {e: 12, beh: 1, kn: 1, jln: 2}\n },\n boat: {\n colors: 2\n },\n bookClosed: {\n colors: 3\n },\n bookOpen: {\n colors: 3\n },\n bow: {\n sinister: true\n },\n bowWithArrow: {\n colors: 3,\n reversed: true\n },\n bucket: {\n colors: 2\n },\n bugleHorn: {\n colors: 2\n },\n bugleHorn2: {\n colors: 2\n },\n bullHeadCaboshed: {\n colors: 2\n },\n bullPassant: {\n colors: 3,\n sinister: true\n },\n butterfly: {\n colors: 3,\n reversed: true\n },\n camel: {\n colors: 2,\n sinister: true\n },\n cancer: {\n reversed: true\n },\n cannon: {\n colors: 2,\n sinister: true\n },\n caravel: {\n colors: 3,\n sinister: true\n },\n castle: {\n colors: 2\n },\n catPassantGuardant: {\n colors: 2,\n sinister: true\n },\n cavalier: {\n positions: {e: 1}\n },\n chalice: {\n colors: 2\n },\n cinquefoil: {\n reversed: true\n },\n cock: {\n colors: 3,\n sinister: true\n },\n cowStatant: {\n colors: 3,\n sinister: true\n },\n crescent: {\n reversed: true\n },\n crocodile: {\n colors: 2,\n sinister: true\n },\n crosier: {\n sinister: true\n },\n crossGamma: {\n sinister: true\n },\n crossLatin: {\n reversed: true\n },\n crossTau: {\n reversed: true\n },\n crossTriquetra: {\n reversed: true\n },\n crown: {\n colors: 2,\n positions: {e: 10, abcdefgzi: 1, beh: 3, behdf: 2, acegi: 1, kn: 1, pq: 2, abc: 1, jln: 4, jleh: 1, def: 2, abcpqh: 3}\n },\n crown2: {\n colors: 3,\n positions: {e: 10, abcdefgzi: 1, beh: 3, behdf: 2, acegi: 1, kn: 1, pq: 2, abc: 1, jln: 4, jleh: 1, def: 2, abcpqh: 3}\n },\n deerHeadCaboshed: {\n colors: 2\n },\n dolphin: {\n colors: 2,\n sinister: true\n },\n donkeyHeadCaboshed: {\n colors: 2\n },\n dove: {\n colors: 2,\n natural: \"argent\",\n sinister: true\n },\n doveDisplayed: {\n colors: 2,\n natural: \"argent\",\n sinister: true\n },\n dragonPassant: {\n colors: 3,\n sinister: true\n },\n dragonRampant: {\n colors: 3,\n sinister: true\n },\n drum: {\n colors: 3\n },\n duck: {\n colors: 3,\n sinister: true\n },\n eagle: {\n colors: 3,\n sinister: true,\n positions: {e: 15, beh: 1, kn: 1, abc: 1, jlh: 2, def: 2, pq: 1}\n },\n eagleTwoHeads: {\n colors: 3\n },\n elephant: {\n colors: 2,\n sinister: true\n },\n elephantHeadErased: {\n colors: 2,\n sinister: true\n },\n falchion: {\n colors: 2,\n reversed: true\n },\n falcon: {\n colors: 3,\n sinister: true\n },\n fasces: {\n colors: 3,\n sinister: true\n },\n fly: {\n colors: 3,\n natural: \"sable\",\n reversed: true\n },\n foot: {\n sinister: true\n },\n fountain: {\n natural: \"azure\"\n },\n frog: {\n reversed: true\n },\n garb: {\n colors: 2,\n natural: \"or\",\n positions: {e: 1, def: 3, abc: 2, beh: 1, kn: 1, jln: 3, jleh: 1, abcpqh: 1, joe: 1, lme: 1}\n },\n gauntlet: {\n sinister: true,\n reversed: true\n },\n goat: {\n colors: 3,\n sinister: true\n },\n goutte: {\n reversed: true\n },\n grapeBunch: {\n colors: 3\n },\n greyhoundCourant: {\n colors: 3,\n sinister: true,\n positions: {e: 10, def: 1, abc: 1, bdefh: 1, jlh: 1, abcpqh: 1}\n },\n greyhoundRampant: {\n colors: 2,\n sinister: true,\n positions: {e: 10, def: 1, abc: 1, bdefh: 1, jlh: 1, abcpqh: 1}\n },\n greyhoundSejant: {\n colors: 3,\n sinister: true\n },\n griffinPassant: {\n colors: 3,\n sinister: true,\n positions: {e: 10, def: 2, abc: 2, bdefh: 1, kn: 1, jlh: 2, abcpqh: 1}\n },\n griffinRampant: {\n colors: 3,\n sinister: true,\n positions: {e: 10, def: 1, abc: 1, bdefh: 1, jlh: 1, abcpqh: 1}\n },\n hand: {\n sinister: true,\n reversed: true,\n positions: {e: 10, jln: 2, kn: 1, jeo: 1, abc: 2, pqe: 1}\n },\n harp: {\n colors: 2,\n sinister: true\n },\n hatchet: {\n colors: 2,\n sinister: true\n },\n head: {\n colors: 2,\n sinister: true,\n positions: {e: 1}\n },\n headWreathed: {\n colors: 3,\n sinister: true,\n positions: {e: 1}\n },\n hedgehog: {\n colors: 3,\n sinister: true\n },\n helmet: {\n sinister: true\n },\n heron: {\n colors: 2,\n sinister: true\n },\n hindStatant: {\n colors: 2,\n sinister: true\n },\n horseHeadCouped: {\n sinister: true\n },\n horsePassant: {\n colors: 2,\n sinister: true\n },\n horseRampant: {\n colors: 3,\n sinister: true\n },\n horseSalient: {\n colors: 2,\n sinister: true\n },\n horseshoe: {\n reversed: true\n },\n knight: {\n sinister: true\n },\n lamb: {\n colors: 2,\n sinister: true\n },\n lambPassantReguardant: {\n colors: 2,\n sinister: true\n },\n laurelWreath: {\n colors: 2\n },\n lionHeadCaboshed: {\n colors: 2\n },\n lionHeadErased: {\n colors: 2,\n sinister: true\n },\n lionPassant: {\n colors: 3,\n sinister: true,\n positions: {e: 10, def: 1, abc: 1, bdefh: 1, jlh: 1, abcpqh: 1}\n },\n lionPassantGuardant: {\n colors: 3,\n sinister: true\n },\n lionRampant: {\n colors: 3,\n sinister: true,\n positions: {e: 10, def: 2, abc: 2, bdefh: 1, kn: 1, jlh: 2, abcpqh: 1}\n },\n lionSejant: {\n colors: 3,\n sinister: true\n },\n lizard: {\n reversed: true\n },\n lochaberAxe: {\n colors: 2,\n sinister: true\n },\n log: {\n sinister: true\n },\n lute: {\n colors: 2,\n sinister: true\n },\n lymphad: {\n colors: 3,\n sinister: true,\n positions: {e: 1}\n },\n mallet: {\n colors: 2\n },\n martenCourant: {\n colors: 3,\n sinister: true\n },\n mascle: {\n positions: {e: 15, abcdefgzi: 3, beh: 3, bdefh: 4, acegi: 1, kn: 3, joe: 2, abc: 3, jlh: 8, jleh: 1, df: 3, abcpqh: 4, pqe: 3, eknpq: 3}\n },\n mastiffStatant: {\n colors: 3,\n sinister: true\n },\n mitre: {\n colors: 3\n },\n monk: {\n sinister: true\n },\n moonInCrescent: {\n sinister: true\n },\n mullet: {\n reversed: true\n },\n mullet7: {\n reversed: true\n },\n oak: {\n colors: 3\n },\n orb: {\n colors: 3\n },\n owl: {\n colors: 2,\n sinister: true\n },\n owlDisplayed: {\n colors: 2\n },\n palmTree: {\n colors: 3\n },\n parrot: {\n colors: 2,\n sinister: true\n },\n peacock: {\n colors: 3,\n sinister: true\n },\n peacockInPride: {\n colors: 3,\n sinister: true\n },\n pear: {\n colors: 2\n },\n pegasus: {\n colors: 3,\n sinister: true\n },\n pike: {\n colors: 2,\n sinister: true\n },\n pineTree: {\n colors: 2\n },\n plaice: {\n colors: 2,\n sinister: true\n },\n plough: {\n colors: 2,\n sinister: true\n },\n porcupine: {\n colors: 2,\n sinister: true\n },\n rabbitSejant: {\n colors: 2,\n sinister: true\n },\n rake: {\n reversed: true\n },\n ramHeadErased: {\n colors: 3,\n sinister: true\n },\n ramPassant: {\n colors: 3,\n sinister: true\n },\n ratRampant: {\n colors: 2,\n sinister: true\n },\n raven: {\n colors: 2,\n natural: \"sable\",\n sinister: true,\n positions: {e: 15, beh: 1, kn: 1, jeo: 1, abc: 3, jln: 3, def: 1}\n },\n rhinoceros: {\n colors: 2,\n sinister: true\n },\n rose: {\n colors: 3\n },\n sabre: {\n colors: 2,\n sinister: true\n },\n sabre2: {\n colors: 2,\n sinister: true,\n reversed: true\n },\n sabresCrossed: {\n colors: 2,\n reversed: true\n },\n sagittarius: {\n colors: 3,\n sinister: true\n },\n salmon: {\n colors: 2,\n sinister: true\n },\n scissors: {\n reversed: true\n },\n scorpion: {\n reversed: true\n },\n scythe: {\n colors: 2,\n sinister: true,\n reversed: true\n },\n serpent: {\n colors: 2,\n sinister: true\n },\n shield: {\n colors: 2,\n sinister: true\n },\n sickle: {\n colors: 2,\n sinister: true,\n reversed: true\n },\n snake: {\n colors: 2,\n sinister: true\n },\n spear: {\n colors: 2,\n reversed: true\n },\n squirrel: {\n colors: 2,\n sinister: true\n },\n stagPassant: {\n colors: 2,\n sinister: true\n },\n stirrup: {\n colors: 2\n },\n swallow: {\n colors: 2,\n sinister: true\n },\n swan: {\n colors: 3,\n sinister: true\n },\n swanErased: {\n colors: 3,\n sinister: true\n },\n sword: {\n colors: 2,\n reversed: true\n },\n talbotPassant: {\n colors: 3,\n sinister: true\n },\n talbotSejant: {\n colors: 3,\n sinister: true\n },\n tower: {\n colors: 2\n },\n tree: {\n positions: {e: 1}\n },\n trefoil: {\n reversed: true\n },\n unicornRampant: {\n colors: 3,\n sinister: true\n },\n wheatStalk: {\n colors: 2\n },\n wing: {\n sinister: true\n },\n wingSword: {\n colors: 3,\n sinister: true\n },\n wolfHeadErased: {\n colors: 2,\n sinister: true\n },\n wolfPassant: {\n colors: 3,\n sinister: true,\n positions: {e: 10, def: 1, abc: 1, bdefh: 1, jlh: 1, abcpqh: 1}\n },\n wolfRampant: {\n colors: 3,\n sinister: true\n },\n wolfStatant: {\n colors: 3,\n sinister: true\n },\n wyvern: {\n colors: 3,\n sinister: true,\n positions: {e: 10, jln: 1}\n },\n wyvernWithWingsDisplayed: {\n colors: 3,\n sinister: true\n }\n}\n\nexport const charges = {\n types: {\n conventional: 30,\n crosses: 10,\n animals: 2,\n animalHeads: 1,\n birds: 2,\n aquatic: 1,\n seafaring: 1,\n fantastic: 3,\n plants: 1,\n agriculture: 1,\n arms: 3,\n bodyparts: 1,\n people: 1,\n architecture: 1,\n miscellaneous: 3,\n inescutcheon: 3,\n uploaded: 0\n },\n single: {\n conventional: 12,\n crosses: 8,\n plants: 2,\n animals: 10,\n animalHeads: 2,\n birds: 4,\n aquatic: 2,\n seafaring: 2,\n fantastic: 7,\n agriculture: 1,\n arms: 6,\n bodyparts: 1,\n people: 2,\n architecture: 1,\n miscellaneous: 10,\n inescutcheon: 5,\n uploaded: 0\n },\n semy: {\n conventional: 4,\n crosses: 1\n },\n conventional: {\n lozenge: 2,\n fusil: 4,\n mascle: 4,\n rustre: 2,\n lozengeFaceted: 3,\n lozengePloye: 1,\n roundel: 4,\n roundel2: 3,\n annulet: 4,\n mullet: 5,\n mulletPierced: 1,\n mulletFaceted: 1,\n mullet4: 3,\n mullet6: 4,\n mullet6Pierced: 1,\n mullet6Faceted: 1,\n mullet7: 1,\n mullet8: 1,\n mullet10: 1,\n estoile: 1,\n compassRose: 1,\n billet: 5,\n delf: 0,\n triangle: 3,\n trianglePierced: 1,\n goutte: 4,\n heart: 4,\n pique: 2,\n carreau: 1,\n trefle: 2,\n fleurDeLis: 6,\n sun: 3,\n sunInSplendour: 1,\n sunInSplendour2: 1,\n moonInCrescent: 1,\n crescent: 5,\n fountain: 1\n },\n inescutcheon: {\n inescutcheonHeater: 1,\n inescutcheonSpanish: 1,\n inescutcheonFrench: 1,\n inescutcheonHorsehead: 1,\n inescutcheonHorsehead2: 1,\n inescutcheonPolish: 1,\n inescutcheonHessen: 1,\n inescutcheonSwiss: 1,\n inescutcheonBoeotian: 1,\n inescutcheonRoman: 1,\n inescutcheonKite: 1,\n inescutcheonOldFrench: 1,\n inescutcheonRenaissance: 1,\n inescutcheonBaroque: 1,\n inescutcheonTarge: 1,\n inescutcheonTarge2: 1,\n inescutcheonPavise: 1,\n inescutcheonWedged: 1,\n inescutcheonFlag: 1,\n inescutcheonPennon: 1,\n inescutcheonGuidon: 1,\n inescutcheonBanner: 1,\n inescutcheonDovetail: 1,\n inescutcheonGonfalon: 1,\n inescutcheonPennant: 1,\n inescutcheonRound: 1,\n inescutcheonOval: 1,\n inescutcheonVesicaPiscis: 1,\n inescutcheonSquare: 1,\n inescutcheonDiamond: 1,\n inescutcheonNo: 1,\n inescutcheonFantasy1: 1,\n inescutcheonFantasy2: 1,\n inescutcheonFantasy3: 1,\n inescutcheonFantasy4: 1,\n inescutcheonFantasy5: 1,\n inescutcheonNoldor: 1,\n inescutcheonGondor: 1,\n inescutcheonEasterling: 1,\n inescutcheonErebor: 1,\n inescutcheonIronHills: 1,\n inescutcheonUrukHai: 1,\n inescutcheonMoriaOrc: 1\n },\n crosses: {\n crossHummetty: 15,\n crossVoided: 1,\n crossPattee: 2,\n crossPatteeAlisee: 1,\n crossFormee: 1,\n crossFormee2: 2,\n crossPotent: 2,\n crossJerusalem: 1,\n crosslet: 1,\n crossClechy: 3,\n crossBottony: 1,\n crossFleury: 3,\n crossPatonce: 1,\n crossPommy: 1,\n crossGamma: 1,\n crossArrowed: 1,\n crossFitchy: 1,\n crossCercelee: 1,\n crossMoline: 2,\n crossFourchy: 1,\n crossAvellane: 1,\n crossErminee: 1,\n crossBiparted: 1,\n crossMaltese: 3,\n crossTemplar: 2,\n crossCeltic: 1,\n crossCeltic2: 1,\n crossTriquetra: 1,\n crossCarolingian: 1,\n crossOccitan: 1,\n crossSaltire: 3,\n crossBurgundy: 1,\n crossLatin: 3,\n crossPatriarchal: 1,\n crossOrthodox: 1,\n crossCalvary: 1,\n crossDouble: 1,\n crossTau: 1,\n crossSantiago: 1,\n crossAnkh: 1\n },\n animals: {\n lionRampant: 6,\n lionPassant: 2,\n lionPassantGuardant: 1,\n lionSejant: 1,\n wolfRampant: 1,\n wolfPassant: 1,\n wolfStatant: 1,\n greyhoundCourant: 1,\n greyhoundRampant: 1,\n greyhoundSejant: 1,\n mastiffStatant: 1,\n talbotPassant: 1,\n talbotSejant: 1,\n martenCourant: 1,\n boarRampant: 1,\n stagPassant: 1,\n hindStatant: 1,\n horseRampant: 2,\n horseSalient: 1,\n horsePassant: 1,\n bearRampant: 2,\n bearPassant: 1,\n bullPassant: 1,\n cowStatant: 1,\n goat: 1,\n lamb: 1,\n lambPassantReguardant: 1,\n agnusDei: 1,\n ramPassant: 1,\n badgerStatant: 1,\n elephant: 1,\n rhinoceros: 1,\n camel: 1,\n porcupine: 1,\n hedgehog: 1,\n catPassantGuardant: 1,\n rabbitSejant: 1,\n ratRampant: 1,\n squirrel: 1,\n frog: 1,\n snake: 1,\n crocodile: 1,\n lizard: 1,\n scorpion: 1,\n butterfly: 1,\n bee: 1,\n fly: 1\n },\n animalHeads: {\n wolfHeadErased: 2,\n bullHeadCaboshed: 1,\n deerHeadCaboshed: 1,\n donkeyHeadCaboshed: 1,\n lionHeadCaboshed: 2,\n lionHeadErased: 2,\n boarHeadErased: 1,\n horseHeadCouped: 1,\n ramHeadErased: 1,\n elephantHeadErased: 1\n },\n fantastic: {\n dragonPassant: 2,\n dragonRampant: 2,\n wyvern: 1,\n wyvernWithWingsDisplayed: 1,\n griffinPassant: 1,\n griffinRampant: 1,\n eagleTwoHeads: 2,\n unicornRampant: 1,\n pegasus: 1,\n serpent: 1,\n basilisk: 1,\n sagittarius: 1\n },\n birds: {\n eagle: 9,\n falcon: 2,\n raven: 2,\n cock: 3,\n parrot: 1,\n swan: 2,\n swanErased: 1,\n heron: 1,\n owl: 1,\n owlDisplayed: 1,\n dove: 2,\n doveDisplayed: 1,\n duck: 1,\n peacock: 1,\n peacockInPride: 1,\n swallow: 1\n },\n plants: {\n tree: 1,\n oak: 1,\n pineTree: 1,\n palmTree: 1,\n trefoil: 1,\n quatrefoil: 1,\n cinquefoil: 1,\n sextifoil: 1,\n mapleLeaf: 1,\n rose: 1,\n apple: 1,\n pear: 1,\n grapeBunch: 1,\n wheatStalk: 1,\n pineCone: 1\n },\n aquatic: {\n escallop: 5,\n pike: 1,\n plaice: 1,\n salmon: 1,\n cancer: 1,\n dolphin: 1\n },\n seafaring: {\n anchor: 6,\n boat: 2,\n boat2: 1,\n lymphad: 2,\n caravel: 1,\n armillarySphere: 1\n },\n agriculture: {\n garb: 2,\n sickle: 1,\n scythe: 1,\n rake: 1,\n plough: 2\n },\n arms: {\n sword: 4,\n falchion: 1,\n sabre: 1,\n sabresCrossed: 1,\n sabre2: 1,\n hatchet: 3,\n axe: 3,\n lochaberAxe: 1,\n spear: 1,\n mallet: 1,\n bowWithArrow: 3,\n bow: 1,\n arrow: 1,\n arrowsSheaf: 1,\n arbalest: 1,\n helmet: 2,\n gauntlet: 1,\n shield: 1,\n cannon: 1\n },\n bodyparts: {\n hand: 4,\n head: 1,\n headWreathed: 1,\n foot: 1,\n skull: 1\n },\n people: {\n cavalier: 3,\n monk: 1,\n angel: 2\n },\n architecture: {\n tower: 1,\n castle: 1,\n bridge: 1,\n column: 1\n },\n miscellaneous: {\n crown: 2,\n crown2: 1,\n laurelWreath: 1,\n mitre: 1,\n orb: 1,\n chalice: 1,\n key: 1,\n buckle: 1,\n bugleHorn: 1,\n bugleHorn2: 1,\n bell: 2,\n pot: 1,\n bucket: 1,\n horseshoe: 3,\n stirrup: 1,\n attire: 1,\n stagsAttires: 1,\n ramsHorn: 1,\n cowHorns: 2,\n wing: 1,\n wingSword: 1,\n lute: 1,\n harp: 1,\n drum: 1,\n wheel: 2,\n crosier: 1,\n sceptre: 1,\n fasces: 1,\n log: 1,\n chain: 1,\n anvil: 1,\n ladder: 1,\n banner: 1,\n bookClosed: 1,\n bookOpen: 1,\n scissors: 1\n },\n uploaded: {},\n data: chargeData\n};\n\nexport const patternSize = {standard: 154, small: 20, smaller: 20, big: 5, smallest: 1};\n","import {get} from \"svelte/store\";\nimport {aleaPRNG} from \"./alea\";\nimport {rw, P} from \"./utils\";\nimport {charges, divisions, lines, ordinaries, positions, patternSize} from \"data/dataModel\";\nimport {tinctures} from \"data/stores\";\n\nconst createConfig = () => ({\n usedPattern: null,\n usedTinctures: [],\n tData: get(tinctures),\n divisioned: null,\n ordinary: null\n});\n\n// main generation routine\nexport const generate = function (providedSeed) {\n const seed = providedSeed || Math.floor(Math.random() * 1e9);\n Math.random = aleaPRNG(seed);\n\n const config = createConfig();\n const coa = {seed, t1: getTincture(config, \"field\")};\n\n const addCharge = P(config.usedPattern ? 0.5 : 0.93); // 80% for charge\n const linedOrdinary = (addCharge && P(0.3)) || P(0.5) ? rw(ordinaries.lined) : null;\n config.ordinary =\n (!addCharge && P(0.65)) || P(0.3) ? (linedOrdinary ? linedOrdinary : rw(ordinaries.straight)) : null; // 36% for ordinary\n\n const rareDivided = [\"chief\", \"terrace\", \"chevron\", \"quarter\", \"flaunches\"].includes(config.ordinary);\n config.divisioned = rareDivided\n ? P(0.03)\n : addCharge && config.ordinary\n ? P(0.03)\n : addCharge\n ? P(0.3)\n : config.ordinary\n ? P(0.7)\n : P(0.995); // 33% for division\n const division = config.divisioned ? rw(divisions.variants) : null;\n\n if (division) {\n const t = getTincture(config, \"division\", config.usedTinctures, P(0.98) ? coa.t1 : null);\n coa.division = {division, t};\n if (divisions[division])\n coa.division.line = config.usedPattern || (config.ordinary && P(0.7)) ? \"straight\" : rw(divisions[division]);\n }\n\n if (config.ordinary) {\n const t = getTincture(config, \"charge\", config.usedTinctures, coa.t1);\n coa.ordinaries = [{ordinary: config.ordinary, t}];\n if (linedOrdinary) coa.ordinaries[0].line = config.usedPattern || (division && P(0.7)) ? \"straight\" : rw(lines);\n if (\n division &&\n !addCharge &&\n !config.usedPattern &&\n P(0.5) &&\n config.ordinary !== \"bordure\" &&\n config.ordinary !== \"orle\"\n ) {\n if (P(0.8)) coa.ordinaries[0].divided = \"counter\";\n // 40%\n else if (P(0.6)) coa.ordinaries[0].divided = \"field\";\n // 6%\n else coa.ordinaries[0].divided = \"division\"; // 4%\n }\n }\n\n if (addCharge) {\n const charge = selectCharge(config);\n const chargeData = charges.data[charge] || {};\n\n let p = \"e\";\n let t = \"gules\";\n\n const ordinaryData = ordinaries.data[config.ordinary];\n const tOrdinary = coa.ordinaries ? coa.ordinaries[0].t : null;\n\n if (ordinaryData?.positionsOn && P(0.8)) {\n // place charge over ordinary (use tincture of field type)\n p = rw(ordinaryData.positionsOn);\n t = !config.usedPattern && P(0.3) ? coa.t1 : getTincture(config, \"charge\", [], tOrdinary);\n } else if (ordinaryData?.positionsOff && P(0.95)) {\n // place charge out of ordinary (use tincture of ordinary type)\n p = rw(ordinaryData.positionsOff);\n t = !config.usedPattern && P(0.3) ? tOrdinary : getTincture(config, \"charge\", config.usedTinctures, coa.t1);\n } else if (positions.divisions[division]) {\n // place charge in fields made by division\n p = rw(positions.divisions[division]);\n t = getTincture(\n config,\n \"charge\",\n tOrdinary ? config.usedTinctures.concat(tOrdinary) : config.usedTinctures,\n coa.t1\n );\n } else if (chargeData.positions) {\n // place charge-suitable position\n p = rw(chargeData.positions);\n t = getTincture(config, \"charge\", config.usedTinctures, coa.t1);\n } else {\n // place in standard position (use new tincture)\n p = config.usedPattern ? \"e\" : charges.conventional[charge] ? rw(positions.conventional) : rw(positions.complex);\n t = getTincture(config, \"charge\", config.usedTinctures.concat(tOrdinary), coa.t1);\n }\n\n if (chargeData.natural && chargeData.natural !== t && chargeData.natural !== tOrdinary) t = chargeData.natural;\n\n const item = {charge: charge, t, p};\n if (chargeData.colors > 1) item.t2 = P(0.25) ? getTincture(config, \"charge\", config.usedTinctures, coa.t1) : t;\n if (chargeData.colors > 2) item.t3 = P(0.5) ? getTincture(config, \"charge\", config.usedTinctures, coa.t1) : t;\n coa.charges = [item];\n\n if (p === \"ABCDEFGHIKL\" && P(0.95)) {\n // add central charge if charge is in bordure\n coa.charges[0].charge = rw(charges.conventional);\n const charge = selectCharge(charges.single);\n const t = getTincture(config, \"charge\", config.usedTinctures, coa.t1);\n coa.charges.push({charge, t, p: \"e\"});\n } else if (P(0.8) && charge === \"inescutcheon\") {\n // add charge to inescutcheon\n const charge = selectCharge(charges.types);\n const t2 = getTincture(config, \"charge\", [], t);\n coa.charges.push({charge, t: t2, p, size: 0.5});\n } else if (division && !config.ordinary) {\n const allowCounter = !config.usedPattern && (!coa.line || coa.line === \"straight\");\n\n // dimidiation: second charge at division basic positons\n if (P(0.3) && [\"perPale\", \"perFess\"].includes(division) && coa.line === \"straight\") {\n coa.charges[0].divided = \"field\";\n if (P(0.95)) {\n const p2 = p === \"e\" || P(0.5) ? \"e\" : rw(positions.divisions[division]);\n const charge = selectCharge(charges.single);\n const t = getTincture(config, \"charge\", config.usedTinctures, coa.division.t);\n coa.charges.push({charge, t, p: p2, divided: \"division\"});\n }\n } else if (allowCounter && P(0.4)) coa.charges[0].divided = \"counter\";\n // counterchanged, 40%\n else if ([\"perPale\", \"perFess\", \"perBend\", \"perBendSinister\"].includes(division) && P(0.8)) {\n // place 2 charges in division standard positions\n const [p1, p2] =\n division === \"perPale\"\n ? [\"p\", \"q\"]\n : division === \"perFess\"\n ? [\"k\", \"n\"]\n : division === \"perBend\"\n ? [\"l\", \"m\"]\n : [\"j\", \"o\"]; // perBendSinister\n coa.charges[0].p = p1;\n\n const charge = selectCharge(charges.single);\n const t = getTincture(config, \"charge\", config.usedTinctures, coa.division.t);\n coa.charges.push({charge, t, p: p2});\n } else if ([\"perCross\", \"perSaltire\"].includes(division) && P(0.5)) {\n // place 4 charges in division standard positions\n const [p1, p2, p3, p4] = division === \"perCross\" ? [\"j\", \"l\", \"m\", \"o\"] : [\"b\", \"d\", \"f\", \"h\"];\n coa.charges[0].p = p1;\n\n const c2 = selectCharge(charges.single);\n const t2 = getTincture(config, \"charge\", [], coa.division.t);\n\n const c3 = selectCharge(charges.single);\n const t3 = getTincture(config, \"charge\", [], coa.division.t);\n\n const c4 = selectCharge(charges.single);\n const t4 = getTincture(config, \"charge\", [], coa.t1);\n coa.charges.push({charge: c2, t: t2, p: p2}, {charge: c3, t: t3, p: p3}, {charge: c4, t: t4, p: p4});\n } else if (allowCounter && p.length > 1) coa.charges[0].divided = \"counter\"; // counterchanged, 40%\n }\n\n coa.charges.forEach(c => defineChargeAttributes(config, division, c));\n }\n\n return coa;\n};\n\nexport const getSize = (p, o = null, d = null) => {\n if (p === \"e\" && (o === \"bordure\" || o === \"orle\")) return 1.1;\n if (p === \"e\") return 1.5;\n if (p === \"jln\" || p === \"jlh\") return 0.7;\n if (p === \"abcpqh\" || p === \"ez\" || p === \"be\") return 0.5;\n if ([\"a\", \"b\", \"c\", \"d\", \"f\", \"g\", \"h\", \"i\", \"bh\", \"df\"].includes(p)) return 0.5;\n if ([\"j\", \"l\", \"m\", \"o\", \"jlmo\"].includes(p) && d === \"perCross\") return 0.6;\n if (p.length > 10) return 0.18; // >10 (bordure)\n if (p.length > 7) return 0.3; // 8, 9, 10\n if (p.length > 4) return 0.4; // 5, 6, 7\n if (p.length > 2) return 0.5; // 3, 4\n return 0.7; // 1, 2\n};\n\nfunction defineChargeAttributes(config, division, c) {\n // define size\n c.size = (c.size || 1) * getSize(c.p, config.ordinary, division);\n\n // clean-up position\n c.p = [...new Set(c.p)].join(\"\");\n\n // define orientation\n if (P(0.02) && charges.data[c.charge]?.sinister) c.sinister = 1;\n if (P(0.02) && charges.data[c.charge]?.reversed) c.reversed = 1;\n}\n\nfunction selectCharge(config, set) {\n const type = set ? rw(set) : config.ordinary || config.divisioned ? rw(charges.types) : rw(charges.single);\n return type === \"inescutcheon\" ? \"inescutcheon\" : rw(charges[type]);\n}\n\nfunction replaceTincture(config, tincture) {\n const type = getType(config, tincture);\n const typeTinctures = config.tData[type];\n\n const candidateTinctures = {...typeTinctures};\n delete candidateTinctures[tincture];\n\n const newTincture = rw(candidateTinctures, false);\n if (!newTincture) {\n console.warn(`Type ${type} has only one valid tincture. Cannot follow the Rule of Tincture`);\n return tincture;\n }\n\n return rw(candidateTinctures, false);\n}\n\nfunction getType(config, t) {\n const tincture = getBaseTincture(t);\n if (Object.keys(config.tData.metals).includes(tincture)) return \"metals\";\n if (Object.keys(config.tData.colours).includes(tincture)) return \"colours\";\n if (Object.keys(config.tData.stains).includes(tincture)) return \"stains\";\n throw new Error(\"Unknown tincture type\", t);\n}\n\nfunction definePattern(config, patternName, element) {\n let t1 = null;\n let t2 = null;\n\n // apply standard tinctures\n if (P(0.5) && (patternName.includes(\"air\") || patternName.includes(\"otent\"))) {\n t1 = \"argent\";\n t2 = \"azure\";\n } else if (patternName === \"ermine\") {\n if (P(0.7)) {\n t1 = \"argent\";\n t2 = \"sable\";\n } else if (P(0.3)) {\n t1 = \"sable\";\n t2 = \"argent\";\n } else if (P(0.1)) {\n t1 = \"or\";\n t2 = \"sable\";\n } else if (P(0.1)) {\n t1 = \"sable\";\n t2 = \"or\";\n } else if (P(0.1)) {\n t1 = \"gules\";\n t2 = \"argent\";\n }\n } else if (patternName.includes(\"pappellony\") || patternName === \"scaly\") {\n if (P(0.2)) {\n t1 = \"gules\";\n t2 = \"or\";\n } else if (P(0.2)) {\n t1 = \"sable\";\n t2 = \"argent\";\n } else if (P(0.2)) {\n t1 = \"argent\";\n t2 = \"sable\";\n } else if (P(0.2)) {\n t1 = \"azure\";\n t2 = \"argent\";\n }\n } else if (P(0.2) && patternName === \"plumetty\") {\n t1 = \"gules\";\n t2 = \"or\";\n } else if (patternName === \"masoned\") {\n if (P(0.3)) {\n t1 = \"gules\";\n t2 = \"argent\";\n } else if (P(0.3)) {\n t1 = \"argent\";\n t2 = \"sable\";\n } else if (P(0.1)) {\n t1 = \"or\";\n t2 = \"sable\";\n }\n } else if (patternName === \"fretty\" || patternName === \"grillage\" || patternName === \"chainy\") {\n if (P(0.35)) {\n t1 = \"argent\";\n t2 = \"gules\";\n } else if (P(0.1)) {\n t1 = \"sable\";\n t2 = \"or\";\n } else if (P(0.2)) {\n t1 = \"gules\";\n t2 = \"argent\";\n }\n } else if (patternName === \"honeycombed\") {\n if (P(0.4)) {\n t1 = \"sable\";\n t2 = \"or\";\n } else if (P(0.3)) {\n t1 = \"or\";\n t2 = \"sable\";\n }\n } else if (patternName === \"semy\") patternName += \"_of_\" + selectCharge(charges.semy);\n\n if (!t1 || !t2) {\n const startWithMetal = P(0.7);\n t1 = startWithMetal ? rw(config.tData.metals) : rw(config.tData.colours);\n t2 = startWithMetal ? rw(config.tData.colours) : rw(config.tData.metals);\n }\n\n // division should not be the same tincture as base field\n if (element === \"division\") {\n if (config.usedTinctures.includes(t1)) t1 = replaceTincture(config, t1);\n if (config.usedTinctures.includes(t2)) t2 = replaceTincture(config, t2);\n }\n\n config.usedTinctures.push(t1, t2);\n const size = rw(patternSize);\n const sizeString = size === \"standard\" ? \"\" : \"-\" + size;\n\n return `${patternName}-${t1}-${t2}${sizeString}`;\n}\n\nfunction getBaseTincture(tincture) {\n return tincture.includes(\"-\") ? tincture.split(\"-\")[1] : tincture;\n}\n\nfunction excludeTinctures(typeTinctures, usedTinctures) {\n const unusedTinctures = {...typeTinctures};\n usedTinctures.forEach(usedTincture => {\n delete unusedTinctures[usedTincture];\n });\n\n const isAnyUnused = Object.keys(unusedTinctures).length && Object.values(unusedTinctures).reduce((a, b) => a + b, 0);\n return isAnyUnused ? unusedTinctures : typeTinctures;\n}\n\n// select tincture: element type (field, division, charge), used field tinctures, field type to follow RoT\nfunction getTincture(config, element, fields = [], RoT) {\n let type = rw(config.tData[element]); // random type\n\n if (type === \"patterns\") {\n const patternName = rw(config.tData[type]);\n config.usedPattern = patternName;\n const tincture = definePattern(config, patternName, element);\n return tincture;\n }\n\n // follow Rule of Tinctures: metal should not be put on metal, nor colour on colour\n if (RoT) {\n const underlyingTincture = getBaseTincture(RoT);\n const underlyingType = getType(config, underlyingTincture);\n type = underlyingType === \"metals\" ? \"colours\" : \"metals\";\n }\n\n const typeTinctures = config.tData[type];\n const candidateTinctures = fields.length ? excludeTinctures(typeTinctures, fields) : typeTinctures;\n let tincture = rw(candidateTinctures, false);\n\n if (element !== \"charge\") config.usedTinctures.push(tincture); // add field tincture\n\n return tincture;\n}\n","/*///////////////////////////////////////////////////////////////////////////////////////////////////\naleaPRNG 1.1\n/////////////////////////////////////////////////////////////////////////////////////////////////////\nhttps://github.com/macmcmeans/aleaPRNG/blob/master/aleaPRNG-1.1.js\n/////////////////////////////////////////////////////////////////////////////////////////////////////\nOriginal work copyright © 2010 Johannes Baagøe, under MIT license\nThis is a derivative work copyright (c) 2017-2020, W. Mac\" McMeans, under BSD license.\nRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n///////////////////////////////////////////////////////////////////////////////////////////////////*/\nexport function aleaPRNG() {\n return (function (args) {\n \"use strict\";\n\n const version = \"aleaPRNG 1.1.0\";\n\n var s0,\n s1,\n s2,\n c,\n uinta = new Uint32Array(3),\n initialArgs,\n mashver = \"\";\n /* private: initializes generator with specified seed */\n function _initState(_internalSeed) {\n var mash = Mash();\n\n // internal state of generator\n s0 = mash(\" \");\n s1 = mash(\" \");\n s2 = mash(\" \");\n\n c = 1;\n\n for (var i = 0; i < _internalSeed.length; i++) {\n s0 -= mash(_internalSeed[i]);\n if (s0 < 0) {\n s0 += 1;\n }\n\n s1 -= mash(_internalSeed[i]);\n if (s1 < 0) {\n s1 += 1;\n }\n\n s2 -= mash(_internalSeed[i]);\n if (s2 < 0) {\n s2 += 1;\n }\n }\n\n mashver = mash.version;\n\n mash = null;\n }\n\n /* private: dependent string hash function */\n function Mash() {\n var n = 4022871197; // 0xefc8249d\n\n var mash = function (data) {\n data = data.toString();\n\n // cache the length\n for (var i = 0, l = data.length; i < l; i++) {\n n += data.charCodeAt(i);\n\n var h = 0.02519603282416938 * n;\n\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 4294967296; // 0x100000000 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n mash.version = \"Mash 0.9\";\n return mash;\n }\n\n /* private: check if number is integer */\n function _isInteger(_int) {\n return parseInt(_int, 10) === _int;\n }\n\n /* public: return a 32-bit fraction in the range [0, 1]\n This is the main function returned when aleaPRNG is instantiated\n */\n var random = function () {\n var t = 2091639 * s0 + c * 2.3283064365386963e-10; // 2^-32\n\n s0 = s1;\n s1 = s2;\n\n return (s2 = t - (c = t | 0));\n };\n\n /* public: return a 53-bit fraction in the range [0, 1] */\n random.fract53 = function () {\n return random() + ((random() * 0x200000) | 0) * 1.1102230246251565e-16; // 2^-53\n };\n\n /* public: return an unsigned integer in the range [0, 2^32] */\n random.int32 = function () {\n return random() * 0x100000000; // 2^32\n };\n\n /* public: advance the generator the specified amount of cycles */\n random.cycle = function (_run) {\n _run = typeof _run === \"undefined\" ? 1 : +_run;\n if (_run < 1) {\n _run = 1;\n }\n for (var i = 0; i < _run; i++) {\n random();\n }\n };\n\n /* public: return inclusive range */\n random.range = function () {\n var loBound, hiBound;\n\n if (arguments.length === 1) {\n loBound = 0;\n hiBound = arguments[0];\n } else {\n loBound = arguments[0];\n hiBound = arguments[1];\n }\n\n if (arguments[0] > arguments[1]) {\n loBound = arguments[1];\n hiBound = arguments[0];\n }\n\n // return integer\n if (_isInteger(loBound) && _isInteger(hiBound)) {\n return Math.floor(random() * (hiBound - loBound + 1)) + loBound;\n\n // return float\n } else {\n return random() * (hiBound - loBound) + loBound;\n }\n };\n\n /* public: initialize generator with the seed values used upon instantiation */\n random.restart = function () {\n _initState(initialArgs);\n };\n\n /* public: seeding function */\n random.seed = function () {\n _initState(Array.prototype.slice.call(arguments));\n };\n\n /* public: show the version of the RNG */\n random.version = function () {\n return version;\n };\n\n /* public: show the version of the RNG and the Mash string hasher */\n random.versions = function () {\n return version + \", \" + mashver;\n };\n\n // when no seed is specified, create a random one from Windows Crypto (Monte Carlo application)\n if (args.length === 0) {\n window.crypto.getRandomValues(uinta);\n args = [uinta[0], uinta[1], uinta[2]];\n }\n\n // store the seed used when the RNG was instantiated, if any\n initialArgs = args;\n\n // initialize the RNG\n _initState(args);\n\n return random;\n })(Array.prototype.slice.call(arguments));\n}\n","\n\n\n \n
\n","\n\n\n \n Switch \n
\n\n\n","\n\n\n {$t(\"editor.aboveCharges\")}: \n \n \n","\n\n\n","\n\n{$t(\"editor.category\")}: \n\n {#each categories as category}\n {$t(`categories.${category}`)} \n {/each}\n \n\n{$t(\"editor.search\")}: \n \n\n\n {#each chargesData as coa (coa)}\n
(charge = coa.charge)}>\n \n
\n {/each}\n
\n\n\n","\n\n\n \n \n \n {#if els.length > 1}\n {#if i && areDifferent(el, els[i - 1])}\n \n \n \n {/if}\n {#if i + 1 < els.length && areDifferent(el, els[i + 1])}\n \n \n \n {/if}\n {/if}\n \n \n \n \n\n\n","\n\n{$t(\"editor.divided\")}: \n\n {$t(\"editor.notDivided\")} \n {$t(\"editor.cropByField\")} \n {$t(\"editor.cropByDivision\")} \n {#if !raster}\n {$t(\"editor.counterchanged\")} \n {/if}\n \n","\n\n\n {#each divisionsData as coa (coa)}\n
\n \n
\n {/each}\n
\n","\n\n{$t(\"editor.line\")}:\n\n {#each linesData as { coa, newLine } (coa)}\n
\n \n
\n {/each}\n
\n","\n\n\n {#each coas as { coa, ordinaryName } (coa)}\n
\n \n
\n {/each}\n
\n","\n\n{$t(\"editor.pattern\")}:\n\n {#each patternsData as { coa, tip }}\n
\n \n
\n {/each}\n
\n","\n\n\n {$t(\"editor.positions\")}:\n \n \n {#each positionsSelect as position}\n {position} \n {/each}\n \n \n\n\n {$t(\"editor.sinister\")}: \n \n \n\n\n {$t(\"editor.reversed\")}: \n \n \n\n\n","\n\n\n {$t(\"editor.size\")}:\n \n \n\n\n {$t(\"editor.rotation\")}: \n \n \n\n\n {$t(\"editor.shift\")}: \n \n \n \n\n\n {$t(\"editor.step\")}: \n \n \n\n\n \n \n\n\n","\n\n{$t(\"editor.size\")}: \n\n {$t(\"editor.bigger\")} \n {$t(\"editor.big\")} \n {$t(\"editor.standard\")} \n {$t(\"editor.small\")} \n {$t(\"editor.smaller\")} \n {$t(\"editor.smallest\")} \n \n","\n\n\n {$t(\"editor.stroke\")}: \n \n {#if element.showStroke}\n {$t(\"editor.color\")}: \n \n\n {#if element.ordinary}\n {$t(\"editor.width\")}: \n \n {/if}\n {/if}\n \n\n\n","\n\n{$t(\"editor.tincture\")}:\n\n {#each tincturesData as { coa, tip }}\n
\n
handleChange(coa.t1)}>\n \n
\n\n
\n {#if colorChanged(coa.t1)}\n
restoreColor(coa.t1)} data-tooltip={$t(\"tooltip.undoColorChange\")} use:tooltip>\n \n \n {/if}\n\n
\n \n \n \n \n
\n
\n
\n {/each}\n
\n\n\n","\n\n{$t(\"editor.type\")}\n\n {$t(\"editor.tincture\")} \n {$t(\"editor.pattern\")} \n {$t(\"editor.semy\")} \n \n","\n\n\n \n {#key coa}\n \n {/key}\n
\n\n \n \n\n\n","\n\n\n {#each coas as coa, i}\n \n {#key coa}\n
\n {/key}\n
\n regenerate(i)}> \n editCOA(i)}> \n download(i)}> \n
\n
\n {/each}\n \n\n\n","\n\n\n {$t(`license.unknown`)} \n {$t(`license.proprietary`)} \n {$t(`license.copyleft`)} \n {$t(`license.publicDomain`)} \n CC BY \n CC BY-SA \n CC BY-NC \n CC BY-ND \n CC BY-NC-SA \n CC BY-NC-ND \n \n","export const query = document.querySelector.bind(document);\nexport const queryAll = document.querySelectorAll.bind(document);\nNode.prototype.on = window.on = function (name, fn) {\n this.addEventListener(name, fn);\n};\nNode.prototype.off = window.off = function (name, fn) {\n this.removeEventListener(name, fn);\n};\n","\n\n (dragging = true)}\n on:dragleave|preventDefault={() => (dragging = false)}\n>\n
($state.raster = 0)} class=\"close\">× \n
\n {#if selected}\n
\n \n \n \n \n \n \n\n
\n {:else}\n
\n \n Drag & Drop image here or browse
\n \n \n \n {/if}\n
\n
\n\n\n","\n\n (dragging = true)}\n on:dragleave|preventDefault={() => (dragging = false)}\n>\n
($state.vector = 0)} class=\"close\">× \n
\n {#if selected}\n
\n \n \n \n \n {@html svg} \n \n\n
\n\n
\n {:else}\n
\n \n Drag & Drop svg file here or browse
\n \n \n \n
Download Template \n {/if}\n
\n
\n\n\n","import { cubicOut } from '../easing/index.mjs';\nimport { is_function } from '../internal/index.mjs';\n\nfunction flip(node, { from, to }, params = {}) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const [ox, oy] = style.transformOrigin.split(' ').map(parseFloat);\n const dx = (from.left + from.width * ox / to.width) - (to.left + ox);\n const dy = (from.top + from.height * oy / to.height) - (to.top + oy);\n const { delay = 0, duration = (d) => Math.sqrt(d) * 120, easing = cubicOut } = params;\n return {\n delay,\n duration: is_function(duration) ? duration(Math.sqrt(dx * dx + dy * dy)) : duration,\n easing,\n css: (t, u) => {\n const x = u * dx;\n const y = u * dy;\n const sx = t + u * from.width / to.width;\n const sy = t + u * from.height / to.height;\n return `transform: ${transform} translate(${x}px, ${y}px) scale(${sx}, ${sy});`;\n }\n };\n}\n\nexport { flip };\n","\n\n\n\n\n","\n\n message.clear()}>\n {$t(text)}\n
\n\n\n","\n\n{#if $state.view}\n \n{:else}\n \n
\n\n {#if $state.edit}
\n {:else}
{/if}\n\n {#if $state.about}
{/if}\n {#if $state.license}
{/if}\n {#if $state.raster}
{/if}\n {#if $state.vector}
{/if}\n {#if $state.tinctures}
{/if}\n\n {#if $message && $isTextReady}
{/if}\n
\n{/if}\n \n\n\n","import { register, init } from \"svelte-i18n\";\nimport { isTextReady } from \"data/stores\";\nimport { fetcher } from \"./utils\";\nconst localesPath = \"./locales/\";\nconst fallbackLocale = \"en\";\nconst registerSupportedLocales = async () => {\n try {\n const manifest = await fetcher(`${localesPath}manifest.json`)();\n const { files, languages } = manifest;\n const file = files[0];\n if (!languages?.length || !file) {\n throw new Error(\"Could not load languages from manifest\");\n }\n for (const language of languages) {\n register(language, fetcher(`${localesPath}${language}${file}`));\n }\n const storedLocale = localStorage.getItem(\"locale\");\n const preferredLocale = storedLocale || navigator.language;\n const shortLocale = preferredLocale.split(\"-\")[0];\n const initialLocale = languages.find((language) => language === preferredLocale || language === shortLocale) || fallbackLocale;\n await init({ fallbackLocale, initialLocale });\n isTextReady.set(true);\n }\n catch (error) {\n console.error(error);\n isTextReady.set(true);\n }\n};\nregisterSupportedLocales();\n","import App from \"./components/App.svelte\";\nimport \"scripts/aliases\";\n\nconst isProduction = process.env.production;\n\nif (isProduction && \"serviceWorker\" in navigator) {\n navigator.serviceWorker.register(\"./sw.js\");\n}\n\nconst app = new App({\n target: document.body,\n props: {}\n});\n\nexport default app;\n"],"names":["noop","identity","x","run","fn","blank_object","Object","create","run_all","fns","forEach","is_function","thing","safe_not_equal","a","b","subscribe","store","callbacks","unsub","unsubscribe","get_store_value","value","_","component_subscribe","component","callback","$$","on_destroy","push","create_slot","definition","ctx","$$scope","slot_ctx","get_slot_context","tar","src","k","assign","slice","get_slot_changes","dirty","lets","undefined","merged","len","Math","max","length","i","update_slot_base","slot","slot_definition","slot_changes","get_slot_context_fn","slot_context","p","get_all_dirty_from_scope","null_to_empty","set_store_value","ret","set","action_destroyer","action_result","destroy","is_client","window","now","performance","Date","raf","cb","requestAnimationFrame","tasks","Set","run_tasks","task","c","delete","f","size","loop","promise","Promise","fulfill","add","abort","append","target","node","appendChild","get_root_for_style","document","root","getRootNode","ownerDocument","host","append_empty_stylesheet","style_element","element","style","head","append_stylesheet","insert","anchor","insertBefore","detach","parentNode","removeChild","destroy_each","iterations","detaching","d","name","createElement","svg_element","createElementNS","text","data","createTextNode","space","empty","listen","event","handler","options","addEventListener","removeEventListener","prevent_default","preventDefault","call","this","attr","attribute","removeAttribute","getAttribute","setAttribute","xlink_attr","setAttributeNS","to_number","set_data","wholeText","set_input_value","input","set_style","key","important","setProperty","select_option","select","option","__value","selected","selectedIndex","select_value","selected_option","querySelector","toggle_class","toggle","classList","HtmlTag","constructor","e","n","html","h","m","nodeName","t","innerHTML","Array","from","childNodes","active_docs","current_component","active","create_rule","duration","delay","ease","uid","step","keyframes","rule","str","hash","charCodeAt","doc","stylesheet","__svelte_stylesheet","sheet","current_rules","__svelte_rules","insertRule","cssRules","animation","delete_rule","previous","split","next","filter","anim","indexOf","deleted","join","deleteRule","clear","fix_position","getComputedStyle","position","width","height","getBoundingClientRect","left","top","transform","add_transform","set_current_component","onMount","Error","get_current_component","on_mount","dirty_components","binding_callbacks","render_callbacks","flush_callbacks","resolved_promise","resolve","update_scheduled","add_render_callback","add_flush_callback","flushing","seen_callbacks","flush","update","pop","has","fragment","before_update","after_update","wait","then","dispatch","direction","kind","dispatchEvent","type","detail","bubbles","createEvent","initCustomEvent","custom_event","outroing","outros","group_outros","r","check_outros","transition_in","block","local","transition_out","o","null_transition","create_in_transition","params","animation_name","config","running","cleanup","go","easing","tick","css","start_time","end_time","started","start","invalidate","end","create_out_transition","group","reset","create_bidirectional_transition","intro","running_program","pending_program","clear_animation","init","program","abs","globals","globalThis","global","destroy_block","lookup","outro_and_destroy_block","fix_and_destroy_block","update_keyed_each","old_blocks","get_key","dynamic","list","create_each_block","get_context","old_indexes","new_blocks","new_lookup","Map","deltas","child_ctx","get","will_move","did_move","first","new_block","old_block","new_key","old_key","bind","index","props","bound","create_component","mount_component","customElement","new_on_destroy","map","destroy_component","make_dirty","fill","instance","create_fragment","not_equal","append_styles","parent_component","on_disconnect","context","skip_bound","ready","rest","hydrate","nodes","children","l","SvelteComponent","$destroy","$on","splice","$set","$$props","obj","$$set","keys","subscriber_queue","writable","stop","subscribers","new_value","run_queue","subscriber","derived","stores","initial_value","single","isArray","stores_array","auto","inited","values","pending","sync","result","unsubscribers","isMergeableObject","isNonNullObject","stringValue","prototype","toString","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","Symbol","for","cloneUnlessOtherwiseSpecified","clone","deepmerge","val","defaultArrayMerge","source","concat","getKeys","getOwnPropertySymbols","symbol","propertyIsEnumerable","getEnumerableOwnPropertySymbols","propertyIsOnObject","object","property","mergeObject","destination","hasOwnProperty","propertyIsUnsafe","customMerge","getMergeFunction","arrayMerge","sourceIsArray","all","array","reduce","prev","extendStatics","setPrototypeOf","__proto__","__extends","TypeError","String","__","ErrorKind","TYPE","SKELETON_TYPE","__assign","s","arguments","apply","__spreadArray","to","pack","ar","isLiteralElement","el","literal","isArgumentElement","argument","isNumberElement","number","isDateElement","date","isTimeElement","time","isSelectElement","isPluralElement","plural","isPoundElement","pound","isTagElement","tag","isNumberSkeleton","isDateTimeSkeleton","dateTime","SPACE_SEPARATOR_REGEX","DATE_TIME_REGEX","parseDateTimeSkeleton","skeleton","replace","match","era","year","RangeError","month","day","weekday","hour12","hourCycle","hour","minute","second","timeZoneName","WHITE_SPACE_REGEX","_a","FRACTION_PRECISION_REGEX","SIGNIFICANT_PRECISION_REGEX","INTEGER_WIDTH_REGEX","CONCISE_INTEGER_WIDTH_REGEX","parseSignificantPrecision","roundingPriority","g1","g2","minimumSignificantDigits","maximumSignificantDigits","parseSign","signDisplay","currencySign","parseConciseScientificAndEngineeringStem","stem","notation","test","minimumIntegerDigits","parseNotationOptions","opt","signOpts","parseNumberSkeleton","tokens","_i","tokens_1","token","scale","currency","useGrouping","maximumFractionDigits","unit","compactDisplay","currencyDisplay","unitDisplay","parseFloat","g3","g4","g5","minimumFractionDigits","trailingZeroDisplay","conciseScientificAndEngineeringOpts","SPACE_SEPARATOR_START_REGEX","RegExp","SPACE_SEPARATOR_END_REGEX","createLocation","hasNativeStartsWith","startsWith","hasNativeFromCodePoint","fromCodePoint","hasNativeFromEntries","fromEntries","hasNativeCodePointAt","codePointAt","hasTrimStart","trimStart","hasTrimEnd","trimEnd","isSafeInteger","Number","isFinite","floor","REGEX_SUPPORTS_U_AND_Y","RE","exec","matchIdentifierAtIndex","search","codePoints","code","elements","fromCharCode","entries","entries_1","v","flag","IDENTIFIER_PREFIX_RE_1","lastIndex","_isWhiteSpace","_isPatternSyntax","Parser","message","offset","line","column","ignoreTag","requiresOtherClause","shouldParseSkeletons","parse","parseMessage","nestingLevel","parentArgType","expectingCloseTag","isEOF","char","parseArgument","err","peek","error","UNMATCHED_CLOSING_TAG","clonePosition","_isAlpha","parseTag","parseLiteral","bump","location","startPosition","tagName","parseTagName","bumpSpace","bumpIf","childrenResult","endTagStartPosition","INVALID_TAG","closingTagNameStartPosition","UNCLOSED_TAG","startOffset","_isPotentialElementNameChar","parseQuoteResult","tryParseQuote","parseUnquotedResult","tryParseUnquoted","parseLeftAngleResult","tryParseLeftAngleBracket","codepoint","ch","openingBracePosition","EXPECT_ARGUMENT_CLOSING_BRACE","EMPTY_ARGUMENT","parseIdentifierIfPossible","MALFORMED_ARGUMENT","parseArgumentOptions","startingPosition","endOffset","bumpTo","typeStartPosition","argType","typeEndPosition","EXPECT_ARGUMENT_TYPE","styleAndLocation","styleStartPosition","parseSimpleArgStyleIfPossible","EXPECT_ARGUMENT_STYLE","styleLocation","argCloseResult","tryParseArgumentClose","location_1","parseNumberSkeletonFromString","EXPECT_DATE_TIME_SKELETON","pattern","parsedOptions","typeEndPosition_1","EXPECT_SELECT_ARGUMENT_OPTIONS","identifierAndLocation","pluralOffset","EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE","tryParseDecimalInteger","INVALID_PLURAL_ARGUMENT_OFFSET_VALUE","optionsResult","tryParsePluralOrSelectOptions","location_2","pluralType","INVALID_ARGUMENT_TYPE","nestedBraces","apostrophePosition","bumpUntil","UNCLOSED_QUOTE_IN_ARGUMENT_STYLE","stringTokens","stringTokens_1","stemAndOptions","options_1","INVALID_NUMBER_SKELETON","expectCloseTag","parsedFirstIdentifier","hasOtherClause","parsedSelectors","selector","selectorLocation","EXPECT_PLURAL_ARGUMENT_SELECTOR","INVALID_PLURAL_ARGUMENT_SELECTOR","DUPLICATE_SELECT_ARGUMENT_SELECTOR","DUPLICATE_PLURAL_ARGUMENT_SELECTOR","EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT","EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT","fragmentResult","EXPECT_SELECT_ARGUMENT_SELECTOR","MISSING_OTHER_CLAUSE","expectNumberError","invalidNumberError","sign","hasDigits","decimal","prefix","currentOffset","targetOffset","min","nextCode","pruneLocation","els","opts","SyntaxError","originalMessage","captureLocation","memoize","cache","cacheDefault","serializer","serializerDefault","strategy","strategyDefault","monadic","arg","cacheKey","computedValue","variadic","args","assemble","serialize","JSON","stringify","ObjectWithoutPrototypeCache","ErrorCode","strategies","PART_TYPE","FormatError","_super","msg","_this","InvalidValueError","variableId","INVALID_VALUE","InvalidValueTypeError","MissingValueError","MISSING_VALUE","isFormatXMLElementFn","formatToParts","locales","formatters","formats","currentPluralValue","els_1","getNumberFormat","format","varName","getDateTimeFormat","value_1","formatFn","chunks","other","Intl","PluralRules","MISSING_INTL_API","getPluralRules","parts","part","lastPart","mergeLiteral","mergeConfigs","defaultConfig","configs","c1","c2","createFastMemoizeCache","IntlMessageFormat","overrideFormats","defaultLocale","formatterCache","pluralRules","ast","resolvedOptions","locale","NumberFormat","supportedLocalesOf","getAst","__parse","DateTimeFormat","defineProperty","memoizedDefaultLocale","enumerable","configurable","integer","percent","short","medium","long","full","E","u","g","w","some","default","y","O","fallbackLocale","loadingDelay","scientific","engineering","compactLong","compactShort","warnOnMissingMessages","j","L","T","reverse","D","documentElement","M","setTimeout","finally","clearTimeout","Z","C","G","J","U","H","K","id","console","warn","Q","B","R","q","V","W","X","ra","random","rw","save","P","probability","camelize","toLowerCase","toUpperCase","link","url","fetcher","fetch","json","shields","types","basic","regional","historical","specific","banner","simple","fantasy","middleEarth","heater","spanish","french","horsehead","horsehead2","polish","hessen","swiss","boeotian","roman","kite","oldFrench","renaissance","baroque","targe","targe2","pavise","wedged","pennon","guidon","dovetail","gonfalon","pennant","round","oval","vesicaPiscis","square","diamond","no","noldor","gondor","easterling","erebor","ironHills","urukHai","moriaOrc","fantasy1","fantasy2","fantasy3","fantasy4","fantasy5","shieldTypes","shieldPaths","shieldBox","shieldSize","shieldPositions","z","A","F","I","DEFAULT_GRADIENTS","DEFAULT_BORDER","DEFAULT_BACKGROUND","DEFAULT_COLORS","argent","or","gules","sable","azure","vert","purpure","murrey","sanguine","DEFAULT_TINCTURES","field","metals","colours","stains","patterns","division","charge","semy","ermine","vair","counterVair","vairInPale","vairEnPointe","vairAncien","potent","counterPotent","potentInPale","potentEnPointe","chequy","lozengy","fusily","pally","barry","gemelles","bendy","bendySinister","palyBendy","barryBendy","pappellony","pappellony2","scaly","plumetty","masoned","fretty","grillage","chainy","maily","honeycombed","isTextReady","stored","localStorage","getItem","storedObj","diaper","grad","shield","coaParam","URL","href","searchParams","getShieldFromURL","colors","border","borderWidth","background","grid","showGrid","storedTinctures","tinctures","mandatoryElements","mandatoryTypes","totalChance","validateTinctures","defineInitialOptions","history","matrices","matrix","state","edit","about","license","raster","vector","view","iconedNav","success","timeout","defaultTimeout","info","createMessageStore","changes","undo","redo","createChangesStore","isFirefox","navigator","userAgent","includes","async","download","coas","getElementById","querySelectorAll","numberX","innerWidth","numberY","ceil","scaleValue","canvas","getContext","loaded","svg","addedElements","cloneNode","getElementsByTagName","gridPattern","remove","gr","di","insertAdjacentHTML","defs","outerHTML","chargePattern","addPattern","ordinaryPattern","fieldPattern","getElementsByClassName","divisionPattern","serialized","XMLSerializer","serializeToString","pretty","xmlDoc","DOMParser","parseFromString","xsltDoc","xsltProcessor","XSLTProcessor","importStylesheet","resultDoc","transformToDocument","prettify","blob","Blob","createObjectURL","revokeObjectURL","getURL","getTimestamp","click","downloadVector","img","Image","onload","drawImage","toDataURL","drawCanvas","downloadRaster","formatTime","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","checkForIconedNav","isIconed","makeIconed","touch","startX","startY","onbeforeunload","keybinding","Backspace","$matrix","Enter","KeyZ","KeyX","KeyS","ctrl","KeyP","KeyJ","F1","$state","Escape","$history","$changes","ctrlKey","activeElement","action","screenX","screenY","changedTouches","menu","navbar","contains","diffX","diffY","ratioX","ratioY","origin","pathname","translate","tooltip","dataset","isTouchAvailable","div","limit","gesture","hotkey","removeTooltip","on","textContent","className","body","bbox","innerHeight","pageX","pageY","cubicInOut","pow","cubicOut","fade","linear","opacity","fly","target_opacity","od","slide","padding_top","paddingTop","padding_bottom","paddingBottom","margin_top","marginTop","margin_bottom","marginBottom","border_top_width","borderTopWidth","border_bottom_width","borderBottomWidth","draw","speed","getTotalLength","strokeLinecap","parseInt","strokeWidth","label","tip","wide","disabled","flutter","right","onclick","stopPropagation","Boolean","locked","$t","removeItem","changeShield","setItem","coa","$shield","shieldName","sizes","gradients","diapers","changeGradient","gradient","changeDamasking","changeSize","sizeNumber","icon","oninput","Infinity","color","$scale","copyToClipboard","stringToCopy","clipboard","writeText","replaceAll","encodeURI","installable","promptEvent","prompt","userChoice","open","newLocale","languageName","DisplayNames","of","charAt","redoable","metal","t1","t2","perPale","perFess","perBend","perBendSinister","perCross","perChevron","perChevronReversed","perPile","perSaltire","gyronny","chevronny","charges","flat","noLicenseData","noSourceData","publicDomain","fairUse","armoriaGitHub","ccBy","fontAwesome","translateSafely","isInDictionary","$dictionary","$locale","chargeData","licenseURL","licenseName","getLicenseName","sourceURL","author","sort","isLicenseSame","positions","getClass","points","drag","currentTarget","x0","y0","sizeAdj","closest","clientWidth","move","resize","rotate","cursor","once","gridSize","positionElements","dx","dy","setGroupTransform","validPositions","getElTransform","setElementTransform","cx","cy","x1","y1","atan2","PI","angle","tr","shiftKey","metaKey","trim","sizeModifier","sx","sinister","sy","reversed","lines","straight","engrailed","invecked","embattled","wavy","raguly","dancetty","dentilly","angled","urdy","indented","bevilled","nowy","nowyReversed","potenty","potentyDexter","potentySinister","embattledGhibellin","embattledNotched","embattledGrady","dovetailed","dovetailedIndented","nebuly","rayonne","seaWaves","dragonTeeth","firTrees","flechy","barby","enclavy","escartely","arched","archedReversed","templates","perFessLined","perPaleLined","perBendLined","perBendSinisterLined","perChevronLined","perChevronReversedLined","perCrossLined","perPileLined","fess","pale","bend","bendSinister","chief","bar","gemelle","fessCotissed","fessDoubleCotissed","bendlet","bendletSinister","terrace","cross","crossParted","saltire","saltireParted","mount","point","flaunches","gore","pall","pallReversed","chevron","chevronReversed","gyron","quarter","canton","pile","pileInBend","pileInBendSinister","piles","pilesInPoint","fessLined","paleLined","bendLined","bendSinisterLined","chiefLined","barLined","gemelleLined","fessCotissedLined","fessDoubleCotissedLined","bendletLined","bendletSinisterLined","terraceLined","crossLined","crossPartedLined","saltireLined","saltirePartedLined","chargeId","chargesGroup","colorsData","loadedCharges","getTemplate","linedId","linePath","patternId","string","addCharge","clr","getSizeMod","checkPattern","licenseAttrs","addInescutcheon","res","ok","metadata","catch","fetchCharge","tincture","ordinary","stroke","shieldPath","t3","divided","seed","ordinaries","ordinariesRegular","above","ordinariesAboveCharges","coaDiaper","$diaper","diaperType","getDieperType","overFill","$grad","$colors","isEdit","viewBox","positionsSelect","conventional","abcdefgzi","beh","behdf","acegi","kn","bhdf","jeo","abc","jln","jlh","kmo","jleh","def","abcpqh","ABCDEFGHIJKL","complex","divisions","pq","jo","jl","jkl","gizgiz","lm","bcfdgh","jlmo","dfk","dfbh","bdefh","mok","dfh","bh","df","ee","be","abceh","abcabc","inescutcheon","variants","lined","bordure","orle","positionsOn","defdefdef","positionsOff","abcgzi","bgi","ach","joe","ccg","ccc","lem","aai","aaa","joejoejoe","lemlemlem","kenken","peqpeq","yyyy","hhh","bbb","emo","emoz","ez","eeee","behdfbehdf","behbehbeh","acgi","abcz","defdef","defgzi","eh","defdefhmo","egiegi","pqn","bdf","bb","yyy","jlhh","BCKFEILGJbdmfo","bemo","aczac","acdfgi","acac","eeoo","cg","eemm","ai","acbdef","jjj","jlemo","crosses","animals","animalHeads","birds","aquatic","seafaring","fantastic","plants","agriculture","arms","bodyparts","people","architecture","miscellaneous","uploaded","lozenge","fusil","mascle","rustre","lozengeFaceted","lozengePloye","roundel","roundel2","annulet","mullet","mulletPierced","mulletFaceted","mullet4","mullet6","mullet6Pierced","mullet6Faceted","mullet7","mullet8","mullet10","estoile","compassRose","billet","delf","triangle","trianglePierced","goutte","heart","pique","carreau","trefle","fleurDeLis","sun","sunInSplendour","sunInSplendour2","moonInCrescent","crescent","fountain","inescutcheonHeater","inescutcheonSpanish","inescutcheonFrench","inescutcheonHorsehead","inescutcheonHorsehead2","inescutcheonPolish","inescutcheonHessen","inescutcheonSwiss","inescutcheonBoeotian","inescutcheonRoman","inescutcheonKite","inescutcheonOldFrench","inescutcheonRenaissance","inescutcheonBaroque","inescutcheonTarge","inescutcheonTarge2","inescutcheonPavise","inescutcheonWedged","inescutcheonFlag","inescutcheonPennon","inescutcheonGuidon","inescutcheonBanner","inescutcheonDovetail","inescutcheonGonfalon","inescutcheonPennant","inescutcheonRound","inescutcheonOval","inescutcheonVesicaPiscis","inescutcheonSquare","inescutcheonDiamond","inescutcheonNo","inescutcheonFantasy1","inescutcheonFantasy2","inescutcheonFantasy3","inescutcheonFantasy4","inescutcheonFantasy5","inescutcheonNoldor","inescutcheonGondor","inescutcheonEasterling","inescutcheonErebor","inescutcheonIronHills","inescutcheonUrukHai","inescutcheonMoriaOrc","crossHummetty","crossVoided","crossPattee","crossPatteeAlisee","crossFormee","crossFormee2","crossPotent","crossJerusalem","crosslet","crossClechy","crossBottony","crossFleury","crossPatonce","crossPommy","crossGamma","crossArrowed","crossFitchy","crossCercelee","crossMoline","crossFourchy","crossAvellane","crossErminee","crossBiparted","crossMaltese","crossTemplar","crossCeltic","crossCeltic2","crossTriquetra","crossCarolingian","crossOccitan","crossSaltire","crossBurgundy","crossLatin","crossPatriarchal","crossOrthodox","crossCalvary","crossDouble","crossTau","crossSantiago","crossAnkh","lionRampant","lionPassant","lionPassantGuardant","lionSejant","wolfRampant","wolfPassant","wolfStatant","greyhoundCourant","greyhoundRampant","greyhoundSejant","mastiffStatant","talbotPassant","talbotSejant","martenCourant","boarRampant","stagPassant","hindStatant","horseRampant","horseSalient","horsePassant","bearRampant","bearPassant","bullPassant","cowStatant","goat","lamb","lambPassantReguardant","agnusDei","ramPassant","badgerStatant","elephant","rhinoceros","camel","porcupine","hedgehog","catPassantGuardant","rabbitSejant","ratRampant","squirrel","frog","snake","crocodile","lizard","scorpion","butterfly","bee","wolfHeadErased","bullHeadCaboshed","deerHeadCaboshed","donkeyHeadCaboshed","lionHeadCaboshed","lionHeadErased","boarHeadErased","horseHeadCouped","ramHeadErased","elephantHeadErased","dragonPassant","dragonRampant","wyvern","wyvernWithWingsDisplayed","griffinPassant","griffinRampant","eagleTwoHeads","unicornRampant","pegasus","serpent","basilisk","sagittarius","eagle","falcon","raven","cock","parrot","swan","swanErased","heron","owl","owlDisplayed","dove","doveDisplayed","duck","peacock","peacockInPride","swallow","tree","oak","pineTree","palmTree","trefoil","quatrefoil","cinquefoil","sextifoil","mapleLeaf","rose","apple","pear","grapeBunch","wheatStalk","pineCone","escallop","pike","plaice","salmon","cancer","dolphin","boat","boat2","lymphad","caravel","armillarySphere","garb","sickle","scythe","rake","plough","sword","falchion","sabre","sabresCrossed","sabre2","hatchet","axe","lochaberAxe","spear","mallet","bowWithArrow","bow","arrow","arrowsSheaf","arbalest","helmet","gauntlet","cannon","hand","headWreathed","foot","skull","cavalier","monk","angel","tower","castle","bridge","crown","crown2","laurelWreath","mitre","orb","chalice","buckle","bugleHorn","bugleHorn2","bell","pot","bucket","horseshoe","stirrup","attire","stagsAttires","ramsHorn","cowHorns","wing","wingSword","lute","harp","drum","wheel","crosier","sceptre","fasces","log","chain","anvil","ladder","bookClosed","bookOpen","scissors","natural","lme","pqe","knight","eknpq","patternSize","standard","small","smaller","big","smallest","generate","providedSeed","version","s0","s1","s2","initialArgs","uinta","Uint32Array","mashver","_initState","_internalSeed","mash","Mash","_isInteger","_int","fract53","int32","cycle","_run","range","loBound","hiBound","restart","versions","crypto","getRandomValues","aleaPRNG","usedPattern","usedTinctures","tData","divisioned","getTincture","linedOrdinary","rareDivided","selectCharge","ordinaryData","tOrdinary","item","allowCounter","p2","p1","p3","p4","c3","c4","t4","getSize","defineChargeAttributes","replaceTincture","getType","candidateTinctures","getBaseTincture","fields","RoT","patternName","startWithMetal","definePattern","typeTinctures","unusedTinctures","usedTincture","isAnyUnused","excludeTinctures","URLSearchParams","focus","coaSize","checked","query","queryOld","category","chargesData","categories","allCharges","allChargesTranslated","chargeList","getCharge","regEx","results","_charge","filterCharges","chargeName","elementCopy","divisionList","divisionsData","divisionName","newDivision","lineList","linesData","newLine","ordinariesList","ordinaryName","newOrdinary","addShieldPatterns","patternsData","newPattern","showPositions","$grid","$showGrid","showStroke","openColorInput","previousElementSibling","tincturesData","$tinctures","tinctureName","handleChange","restoreColor","defaults","colorChanged","isRaster","historyId","section","isLandscape","defineMenuState","isPattern","isSemy","getSemyCharge","getChargeCategory","find","getSemyType","selectSecondTincture","getField","tSplit","getDivision","getOrdinaries","getCharges","$message","reroll","attibutes","gallery","regenerate","$matrices","editCOA","fontSize","Node","off","getFilesFromInputEvent","getFilesFromDropEvent","dataTransfer","files","items","getAsFile","dragging","offsetX","offsetY","getFilesFunction","file","reader","FileReader","readerEvent","dataURL","readAsDataURL","loadImage","image","downloadTemplate","tinctureList","transformString","updateTransform","svgText","getAttributeNames","consolidated","baseVal","consolidate","fix","toFixed","readAsText","flip","ox","oy","transformOrigin","sqrt","chance","bottom","show","addLine","lock","changeElementChance","newValue","isNaN","changeTinctureChance","removeTincture","getTotalChance","translated","textOnMount","quantity","viewParam","sizeParam","seedParam","validateJSON","checkLoadParameters","desiredSize","defineGallerySize","$size","handleMatrixChange","manifest","languages","language","register","preferredLocale","shortLocale","initialLocale","registerSupportedLocales","serviceWorker","app"],"mappings":"gCAAA,SAASA,KACT,MAAMC,EAAWC,GAAKA,EAetB,SAASC,EAAIC,GACT,OAAOA,IAEX,SAASC,IACL,OAAOC,OAAOC,OAAO,MAEzB,SAASC,EAAQC,GACbA,EAAIC,QAAQP,GAEhB,SAASQ,EAAYC,GACjB,MAAwB,mBAAVA,EAElB,SAASC,EAAeC,EAAGC,GACvB,OAAOD,GAAKA,EAAIC,GAAKA,EAAID,IAAMC,GAAOD,GAAkB,iBAANA,GAAgC,mBAANA,EAqBhF,SAASE,EAAUC,KAAUC,GACzB,GAAa,MAATD,EACA,OAAOjB,EAEX,MAAMmB,EAAQF,EAAMD,aAAaE,GACjC,OAAOC,EAAMC,YAAc,IAAMD,EAAMC,cAAgBD,EAE3D,SAASE,EAAgBJ,GACrB,IAAIK,EAEJ,OADAN,EAAUC,GAAOM,GAAKD,EAAQC,GAA9BP,GACOM,EAEX,SAASE,EAAoBC,EAAWR,EAAOS,GAC3CD,EAAUE,GAAGC,WAAWC,KAAKb,EAAUC,EAAOS,IAElD,SAASI,EAAYC,EAAYC,EAAKC,EAAS7B,GAC3C,GAAI2B,EAAY,CACZ,MAAMG,EAAWC,EAAiBJ,EAAYC,EAAKC,EAAS7B,GAC5D,OAAO2B,EAAW,GAAGG,IAG7B,SAASC,EAAiBJ,EAAYC,EAAKC,EAAS7B,GAChD,OAAO2B,EAAW,IAAM3B,EAtE5B,SAAgBgC,EAAKC,GAEjB,IAAK,MAAMC,KAAKD,EACZD,EAAIE,GAAKD,EAAIC,GACjB,OAAOF,EAmEDG,CAAON,EAAQD,IAAIQ,QAAST,EAAW,GAAG3B,EAAG4B,KAC7CC,EAAQD,IAElB,SAASS,EAAiBV,EAAYE,EAASS,EAAOtC,GAClD,GAAI2B,EAAW,IAAM3B,EAAI,CACrB,MAAMuC,EAAOZ,EAAW,GAAG3B,EAAGsC,IAC9B,QAAsBE,IAAlBX,EAAQS,MACR,OAAOC,EAEX,GAAoB,iBAATA,EAAmB,CAC1B,MAAME,EAAS,GACTC,EAAMC,KAAKC,IAAIf,EAAQS,MAAMO,OAAQN,EAAKM,QAChD,IAAK,IAAIC,EAAI,EAAGA,EAAIJ,EAAKI,GAAK,EAC1BL,EAAOK,GAAKjB,EAAQS,MAAMQ,GAAKP,EAAKO,GAExC,OAAOL,EAEX,OAAOZ,EAAQS,MAAQC,EAE3B,OAAOV,EAAQS,MAEnB,SAASS,EAAiBC,EAAMC,EAAiBrB,EAAKC,EAASqB,EAAcC,GACzE,GAAID,EAAc,CACd,MAAME,EAAerB,EAAiBkB,EAAiBrB,EAAKC,EAASsB,GACrEH,EAAKK,EAAED,EAAcF,IAO7B,SAASI,EAAyBzB,GAC9B,GAAIA,EAAQD,IAAIiB,OAAS,GAAI,CACzB,MAAMP,EAAQ,GACRO,EAAShB,EAAQD,IAAIiB,OAAS,GACpC,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAQC,IACxBR,EAAMQ,IAAM,EAEhB,OAAOR,EAEX,OAAQ,EAiCZ,SAASiB,EAAcrC,GACnB,OAAgB,MAATA,EAAgB,GAAKA,EAEhC,SAASsC,EAAgB3C,EAAO4C,EAAKvC,GAEjC,OADAL,EAAM6C,IAAIxC,GACHuC,EAGX,SAASE,EAAiBC,GACtB,OAAOA,GAAiBrD,EAAYqD,EAAcC,SAAWD,EAAcC,QAAUjE,EAGzF,MAAMkE,EAA8B,oBAAXC,OACzB,IAAIC,EAAMF,EACJ,IAAMC,OAAOE,YAAYD,MACzB,IAAME,KAAKF,MACbG,EAAML,EAAYM,GAAMC,sBAAsBD,GAAMxE,EASxD,MAAM0E,EAAQ,IAAIC,IAClB,SAASC,EAAUR,GACfM,EAAMhE,SAAQmE,IACLA,EAAKC,EAAEV,KACRM,EAAMK,OAAOF,GACbA,EAAKG,QAGM,IAAfN,EAAMO,MACNV,EAAIK,GAYZ,SAASM,EAAKxD,GACV,IAAImD,EAGJ,OAFmB,IAAfH,EAAMO,MACNV,EAAIK,GACD,CACHO,QAAS,IAAIC,SAAQC,IACjBX,EAAMY,IAAIT,EAAO,CAAEC,EAAGpD,EAAUsD,EAAGK,OAEvCE,QACIb,EAAMK,OAAOF,KA0GzB,SAASW,EAAOC,EAAQC,GACpBD,EAAOE,YAAYD,GAWvB,SAASE,EAAmBF,GACxB,IAAKA,EACD,OAAOG,SACX,MAAMC,EAAOJ,EAAKK,YAAcL,EAAKK,cAAgBL,EAAKM,cAC1D,OAAIF,GAAQA,EAAKG,KACNH,EAEJJ,EAAKM,cAEhB,SAASE,EAAwBR,GAC7B,MAAMS,EAAgBC,EAAQ,SAE9B,OAEJ,SAA2BV,EAAMW,GAC7Bb,EAAOE,EAAKY,MAAQZ,EAAMW,GAJ1BE,CAAkBX,EAAmBF,GAAOS,GACrCA,EA6BX,SAASK,EAAOf,EAAQC,EAAMe,GAC1BhB,EAAOiB,aAAahB,EAAMe,GAAU,MAUxC,SAASE,EAAOjB,GACZA,EAAKkB,WAAWC,YAAYnB,GAEhC,SAASoB,EAAaC,EAAYC,GAC9B,IAAK,IAAI9D,EAAI,EAAGA,EAAI6D,EAAW9D,OAAQC,GAAK,EACpC6D,EAAW7D,IACX6D,EAAW7D,GAAG+D,EAAED,GAG5B,SAASZ,EAAQc,GACb,OAAOrB,SAASsB,cAAcD,GAiBlC,SAASE,EAAYF,GACjB,OAAOrB,SAASwB,gBAAgB,6BAA8BH,GAElE,SAASI,EAAKC,GACV,OAAO1B,SAAS2B,eAAeD,GAEnC,SAASE,IACL,OAAOH,EAAK,KAEhB,SAASI,IACL,OAAOJ,EAAK,IAEhB,SAASK,EAAOjC,EAAMkC,EAAOC,EAASC,GAElC,OADApC,EAAKqC,iBAAiBH,EAAOC,EAASC,GAC/B,IAAMpC,EAAKsC,oBAAoBJ,EAAOC,EAASC,GAE1D,SAASG,EAAgB7H,GACrB,OAAO,SAAUwH,GAGb,OAFAA,EAAMM,iBAEC9H,EAAG+H,KAAKC,KAAMR,IAwB7B,SAASS,EAAK3C,EAAM4C,EAAWhH,GACd,MAATA,EACAoE,EAAK6C,gBAAgBD,GAChB5C,EAAK8C,aAAaF,KAAehH,GACtCoE,EAAK+C,aAAaH,EAAWhH,GAoCrC,SAASoH,EAAWhD,EAAM4C,EAAWhH,GACjCoE,EAAKiD,eAAe,+BAAgCL,EAAWhH,GAanE,SAASsH,EAAUtH,GACf,MAAiB,KAAVA,EAAe,MAAQA,EAkIlC,SAASuH,EAASvB,EAAMC,GACpBA,EAAO,GAAKA,EACRD,EAAKwB,YAAcvB,IACnBD,EAAKC,KAAOA,GAEpB,SAASwB,EAAgBC,EAAO1H,GAC5B0H,EAAM1H,MAAiB,MAATA,EAAgB,GAAKA,EAUvC,SAAS2H,EAAUvD,EAAMwD,EAAK5H,EAAO6H,GACjCzD,EAAKW,MAAM+C,YAAYF,EAAK5H,EAAO6H,EAAY,YAAc,IAEjE,SAASE,EAAcC,EAAQhI,GAC3B,IAAK,IAAI4B,EAAI,EAAGA,EAAIoG,EAAOxB,QAAQ7E,OAAQC,GAAK,EAAG,CAC/C,MAAMqG,EAASD,EAAOxB,QAAQ5E,GAC9B,GAAIqG,EAAOC,UAAYlI,EAEnB,YADAiI,EAAOE,UAAW,GAI1BH,EAAOI,eAAiB,EAQ5B,SAASC,EAAaL,GAClB,MAAMM,EAAkBN,EAAOO,cAAc,aAAeP,EAAOxB,QAAQ,GAC3E,OAAO8B,GAAmBA,EAAgBJ,QA0D9C,SAASM,EAAa1D,EAASc,EAAM6C,GACjC3D,EAAQ4D,UAAUD,EAAS,MAAQ,UAAU7C,GAUjD,MAAM+C,EACFC,cACI9B,KAAK+B,EAAI/B,KAAKgC,EAAI,KAEtBtF,EAAEuF,GACEjC,KAAKkC,EAAED,GAEXE,EAAEF,EAAM5E,EAAQgB,EAAS,MAChB2B,KAAK+B,IACN/B,KAAK+B,EAAI/D,EAAQX,EAAO+E,UACxBpC,KAAKqC,EAAIhF,EACT2C,KAAKtD,EAAEuF,IAEXjC,KAAKlF,EAAEuD,GAEX6D,EAAED,GACEjC,KAAK+B,EAAEO,UAAYL,EACnBjC,KAAKgC,EAAIO,MAAMC,KAAKxC,KAAK+B,EAAEU,YAE/B3H,EAAEuD,GACE,IAAK,IAAIvD,EAAI,EAAGA,EAAIkF,KAAKgC,EAAEnH,OAAQC,GAAK,EACpCsD,EAAO4B,KAAKqC,EAAGrC,KAAKgC,EAAElH,GAAIuD,GAGlChD,EAAE4G,GACEjC,KAAKnB,IACLmB,KAAKkC,EAAED,GACPjC,KAAKlF,EAAEkF,KAAKtH,GAEhBmG,IACImB,KAAKgC,EAAE1J,QAAQiG,IAsCvB,MAAMmE,EAAc,IAAInG,IACxB,IAiIIoG,EAjIAC,EAAS,EASb,SAASC,EAAYvF,EAAM5E,EAAGC,EAAGmK,EAAUC,EAAOC,EAAMhL,EAAIiL,EAAM,GAC9D,MAAMC,EAAO,OAASJ,EACtB,IAAIK,EAAY,MAChB,IAAK,IAAI9H,EAAI,EAAGA,GAAK,EAAGA,GAAK6H,EAAM,CAC/B,MAAMb,EAAI3J,GAAKC,EAAID,GAAKsK,EAAK3H,GAC7B8H,GAAiB,IAAJ9H,EAAU,KAAKrD,EAAGqK,EAAG,EAAIA,QAE1C,MAAMe,EAAOD,EAAY,SAASnL,EAAGW,EAAG,EAAIA,SACtCmG,EAAO,YAfjB,SAAcuE,GACV,IAAIC,EAAO,KACPxI,EAAIuI,EAAIxI,OACZ,KAAOC,KACHwI,GAASA,GAAQ,GAAKA,EAAQD,EAAIE,WAAWzI,GACjD,OAAOwI,IAAS,EAUSA,CAAKF,MAASH,IACjCO,EAAMhG,EAAmBF,GAC/BoF,EAAYxF,IAAIsG,GAChB,MAAMC,EAAaD,EAAIE,sBAAwBF,EAAIE,oBAAsB5F,EAAwBR,GAAMqG,OACjGC,EAAgBJ,EAAIK,iBAAmBL,EAAIK,eAAiB,IAC7DD,EAAc9E,KACf8E,EAAc9E,IAAQ,EACtB2E,EAAWK,WAAW,cAAchF,KAAQsE,IAAQK,EAAWM,SAASlJ,SAE5E,MAAMmJ,EAAY1G,EAAKW,MAAM+F,WAAa,GAG1C,OAFA1G,EAAKW,MAAM+F,UAAY,GAAGA,EAAY,GAAGA,MAAgB,KAAKlF,KAAQgE,cAAqBC,aAC3FH,GAAU,EACH9D,EAEX,SAASmF,EAAY3G,EAAMwB,GACvB,MAAMoF,GAAY5G,EAAKW,MAAM+F,WAAa,IAAIG,MAAM,MAC9CC,EAAOF,EAASG,OAAOvF,EACvBwF,GAAQA,EAAKC,QAAQzF,GAAQ,EAC7BwF,IAAsC,IAA9BA,EAAKC,QAAQ,aAErBC,EAAUN,EAASrJ,OAASuJ,EAAKvJ,OACnC2J,IACAlH,EAAKW,MAAM+F,UAAYI,EAAKK,KAAK,MACjC7B,GAAU4B,EACL5B,GAKTzG,GAAI,KACIyG,IAEJF,EAAYpK,SAAQkL,IAChB,MAAMC,EAAaD,EAAIE,oBACvB,IAAI5I,EAAI2I,EAAWM,SAASlJ,OAC5B,KAAOC,KACH2I,EAAWiB,WAAW5J,GAC1B0I,EAAIK,eAAiB,MAEzBnB,EAAYiC,aAqDpB,SAASC,EAAatH,GAClB,MAAMW,EAAQ4G,iBAAiBvH,GAC/B,GAAuB,aAAnBW,EAAM6G,UAA8C,UAAnB7G,EAAM6G,SAAsB,CAC7D,MAAMC,MAAEA,EAAKC,OAAEA,GAAW/G,EACpBvF,EAAI4E,EAAK2H,wBACf3H,EAAKW,MAAM6G,SAAW,WACtBxH,EAAKW,MAAM8G,MAAQA,EACnBzH,EAAKW,MAAM+G,OAASA,EAI5B,SAAuB1H,EAAM5E,GACzB,MAAMC,EAAI2E,EAAK2H,wBACf,GAAIvM,EAAEwM,OAASvM,EAAEuM,MAAQxM,EAAEyM,MAAQxM,EAAEwM,IAAK,CACtC,MAAMlH,EAAQ4G,iBAAiBvH,GACzB8H,EAAgC,SAApBnH,EAAMmH,UAAuB,GAAKnH,EAAMmH,UAC1D9H,EAAKW,MAAMmH,UAAY,GAAGA,eAAuB1M,EAAEwM,KAAOvM,EAAEuM,WAAWxM,EAAEyM,IAAMxM,EAAEwM,UARjFE,CAAc/H,EAAM5E,IAa5B,SAAS4M,EAAsBjM,GAC3BsJ,EAAoBtJ,EAUxB,SAASkM,GAAQvN,IARjB,WACI,IAAK2K,EACD,MAAM,IAAI6C,MAAM,oDACpB,OAAO7C,GAMP8C,GAAwBlM,GAAGmM,SAASjM,KAAKzB,GA6C7C,MAAM2N,GAAmB,GAEnBC,GAAoB,GACpBC,GAAmB,GACnBC,GAAkB,GAClBC,GAAmB/I,QAAQgJ,UACjC,IAAIC,IAAmB,EAWvB,SAASC,GAAoBlO,GACzB6N,GAAiBpM,KAAKzB,GAE1B,SAASmO,GAAmBnO,GACxB8N,GAAgBrM,KAAKzB,GAEzB,IAAIoO,IAAW,EACf,MAAMC,GAAiB,IAAI9J,IAC3B,SAAS+J,KACL,IAAIF,GAAJ,CAEAA,IAAW,EACX,EAAG,CAGC,IAAK,IAAItL,EAAI,EAAGA,EAAI6K,GAAiB9K,OAAQC,GAAK,EAAG,CACjD,MAAMzB,EAAYsM,GAAiB7K,GACnCwK,EAAsBjM,GACtBkN,GAAOlN,EAAUE,IAIrB,IAFA+L,EAAsB,MACtBK,GAAiB9K,OAAS,EACnB+K,GAAkB/K,QACrB+K,GAAkBY,KAAlBZ,GAIJ,IAAK,IAAI9K,EAAI,EAAGA,EAAI+K,GAAiBhL,OAAQC,GAAK,EAAG,CACjD,MAAMxB,EAAWuM,GAAiB/K,GAC7BuL,GAAeI,IAAInN,KAEpB+M,GAAenJ,IAAI5D,GACnBA,KAGRuM,GAAiBhL,OAAS,QACrB8K,GAAiB9K,QAC1B,KAAOiL,GAAgBjL,QACnBiL,GAAgBU,KAAhBV,GAEJG,IAAmB,EACnBG,IAAW,EACXC,GAAe1B,SAEnB,SAAS4B,GAAOhN,GACZ,GAAoB,OAAhBA,EAAGmN,SAAmB,CACtBnN,EAAGgN,SACHnO,EAAQmB,EAAGoN,eACX,MAAMrM,EAAQf,EAAGe,MACjBf,EAAGe,MAAQ,EAAE,GACbf,EAAGmN,UAAYnN,EAAGmN,SAASrL,EAAE9B,EAAGK,IAAKU,GACrCf,EAAGqN,aAAatO,QAAQ4N,KAIhC,IAAInJ,GACJ,SAAS8J,KAOL,OANK9J,KACDA,GAAUC,QAAQgJ,UAClBjJ,GAAQ+J,MAAK,KACT/J,GAAU,SAGXA,GAEX,SAASgK,GAASzJ,EAAM0J,EAAWC,GAC/B3J,EAAK4J,cA3VT,SAAsBC,EAAMC,EAAQC,GAAU,GAC1C,MAAMtF,EAAItE,SAAS6J,YAAY,eAE/B,OADAvF,EAAEwF,gBAAgBJ,EAAME,GAAS,EAAOD,GACjCrF,EAwVYyF,CAAa,GAAGR,EAAY,QAAU,UAAUC,MAEvE,MAAMQ,GAAW,IAAIlL,IACrB,IAAImL,GACJ,SAASC,KACLD,GAAS,CACLE,EAAG,EACHlL,EAAG,GACHrB,EAAGqM,IAGX,SAASG,KACAH,GAAOE,GACRxP,EAAQsP,GAAOhL,GAEnBgL,GAASA,GAAOrM,EAEpB,SAASyM,GAAcC,EAAOC,GACtBD,GAASA,EAAMjN,IACf2M,GAAS9K,OAAOoL,GAChBA,EAAMjN,EAAEkN,IAGhB,SAASC,GAAeF,EAAOC,EAAOzJ,EAAQjF,GAC1C,GAAIyO,GAASA,EAAMG,EAAG,CAClB,GAAIT,GAAShB,IAAIsB,GACb,OACJN,GAASvK,IAAI6K,GACbL,GAAOhL,EAAEjD,MAAK,KACVgO,GAAS9K,OAAOoL,GACZzO,IACIiF,GACAwJ,EAAMlJ,EAAE,GACZvF,QAGRyO,EAAMG,EAAEF,IAGhB,MAAMG,GAAkB,CAAErF,SAAU,GACpC,SAASsF,GAAqB9K,EAAMtF,EAAIqQ,GACpC,IAEIC,EACA7L,EAHA8L,EAASvQ,EAAGsF,EAAM+K,GAClBG,GAAU,EAGVvF,EAAM,EACV,SAASwF,IACDH,GACArE,EAAY3G,EAAMgL,GAE1B,SAASI,IACL,MAAM3F,MAAEA,EAAQ,EAACD,SAAEA,EAAW,IAAG6F,OAAEA,EAAS9Q,EAAQ+Q,KAAEA,EAAOhR,EAAIiR,IAAEA,GAAQN,GAAUJ,GACjFU,IACAP,EAAiBzF,EAAYvF,EAAM,EAAG,EAAGwF,EAAUC,EAAO4F,EAAQE,EAAK5F,MAC3E2F,EAAK,EAAG,GACR,MAAME,EAAa9M,IAAQ+G,EACrBgG,EAAWD,EAAahG,EAC1BrG,GACAA,EAAKU,QACTqL,GAAU,EACVtC,IAAoB,IAAMa,GAASzJ,GAAM,EAAM,WAC/Cb,EAAOK,GAAKd,IACR,GAAIwM,EAAS,CACT,GAAIxM,GAAO+M,EAIP,OAHAH,EAAK,EAAG,GACR7B,GAASzJ,GAAM,EAAM,OACrBmL,IACOD,GAAU,EAErB,GAAIxM,GAAO8M,EAAY,CACnB,MAAMzG,EAAIsG,GAAQ3M,EAAM8M,GAAchG,GACtC8F,EAAKvG,EAAG,EAAIA,IAGpB,OAAOmG,KAGf,IAAIQ,GAAU,EACd,MAAO,CACHC,QACQD,IAEJA,GAAU,EACV/E,EAAY3G,GACR/E,EAAYgQ,IACZA,EAASA,IACT1B,KAAOC,KAAK4B,IAGZA,MAGRQ,aACIF,GAAU,GAEdG,MACQX,IACAC,IACAD,GAAU,KAK1B,SAASY,GAAsB9L,EAAMtF,EAAIqQ,GACrC,IAEIC,EAFAC,EAASvQ,EAAGsF,EAAM+K,GAClBG,GAAU,EAEd,MAAMa,EAAQ3B,GAEd,SAASgB,IACL,MAAM3F,MAAEA,EAAQ,EAACD,SAAEA,EAAW,IAAG6F,OAAEA,EAAS9Q,EAAQ+Q,KAAEA,EAAOhR,EAAIiR,IAAEA,GAAQN,GAAUJ,GACjFU,IACAP,EAAiBzF,EAAYvF,EAAM,EAAG,EAAGwF,EAAUC,EAAO4F,EAAQE,IACtE,MAAMC,EAAa9M,IAAQ+G,EACrBgG,EAAWD,EAAahG,EAC9BoD,IAAoB,IAAMa,GAASzJ,GAAM,EAAO,WAChDR,GAAKd,IACD,GAAIwM,EAAS,CACT,GAAIxM,GAAO+M,EAQP,OAPAH,EAAK,EAAG,GACR7B,GAASzJ,GAAM,EAAO,SACf+L,EAAMzB,GAGTxP,EAAQiR,EAAM3M,IAEX,EAEX,GAAIV,GAAO8M,EAAY,CACnB,MAAMzG,EAAIsG,GAAQ3M,EAAM8M,GAAchG,GACtC8F,EAAK,EAAIvG,EAAGA,IAGpB,OAAOmG,KAaf,OAtCAa,EAAMzB,GAAK,EA4BPrP,EAAYgQ,GACZ1B,KAAOC,MAAK,KAERyB,EAASA,IACTG,OAIJA,IAEG,CACHS,IAAIG,GACIA,GAASf,EAAOK,MAChBL,EAAOK,KAAK,EAAG,GAEfJ,IACIF,GACArE,EAAY3G,EAAMgL,GACtBE,GAAU,KAK1B,SAASe,GAAgCjM,EAAMtF,EAAIqQ,EAAQmB,GACvD,IAAIjB,EAASvQ,EAAGsF,EAAM+K,GAClBhG,EAAImH,EAAQ,EAAI,EAChBC,EAAkB,KAClBC,EAAkB,KAClBpB,EAAiB,KACrB,SAASqB,IACDrB,GACArE,EAAY3G,EAAMgL,GAE1B,SAASsB,EAAKC,EAAS/G,GACnB,MAAMjE,EAAKgL,EAAQlR,EAAI0J,EAEvB,OADAS,GAAYnI,KAAKmP,IAAIjL,GACd,CACHnG,EAAG2J,EACH1J,EAAGkR,EAAQlR,EACXkG,EAAAA,EACAiE,SAAAA,EACAmG,MAAOY,EAAQZ,MACfE,IAAKU,EAAQZ,MAAQnG,EACrBuG,MAAOQ,EAAQR,OAGvB,SAASX,EAAG/P,GACR,MAAMoK,MAAEA,EAAQ,EAACD,SAAEA,EAAW,IAAG6F,OAAEA,EAAS9Q,EAAQ+Q,KAAEA,EAAOhR,EAAIiR,IAAEA,GAAQN,GAAUJ,GAC/E0B,EAAU,CACZZ,MAAOjN,IAAQ+G,EACfpK,EAAAA,GAECA,IAEDkR,EAAQR,MAAQ3B,GAChBA,GAAOE,GAAK,GAEZ6B,GAAmBC,EACnBA,EAAkBG,GAKdhB,IACAc,IACArB,EAAiBzF,EAAYvF,EAAM+E,EAAG1J,EAAGmK,EAAUC,EAAO4F,EAAQE,IAElElQ,GACAiQ,EAAK,EAAG,GACZa,EAAkBG,EAAKC,EAAS/G,GAChCoD,IAAoB,IAAMa,GAASzJ,EAAM3E,EAAG,WAC5CmE,GAAKd,IAUD,GATI0N,GAAmB1N,EAAM0N,EAAgBT,QACzCQ,EAAkBG,EAAKF,EAAiB5G,GACxC4G,EAAkB,KAClB3C,GAASzJ,EAAMmM,EAAgB9Q,EAAG,SAC9BkQ,IACAc,IACArB,EAAiBzF,EAAYvF,EAAM+E,EAAGoH,EAAgB9Q,EAAG8Q,EAAgB3G,SAAU,EAAG6F,EAAQJ,EAAOM,OAGzGY,EACA,GAAIzN,GAAOyN,EAAgBN,IACvBP,EAAKvG,EAAIoH,EAAgB9Q,EAAG,EAAI0J,GAChC0E,GAASzJ,EAAMmM,EAAgB9Q,EAAG,OAC7B+Q,IAEGD,EAAgB9Q,EAEhBgR,MAIOF,EAAgBJ,MAAMzB,GACzBxP,EAAQqR,EAAgBJ,MAAM3M,IAG1C+M,EAAkB,UAEjB,GAAIzN,GAAOyN,EAAgBR,MAAO,CACnC,MAAM5N,EAAIW,EAAMyN,EAAgBR,MAChC5G,EAAIoH,EAAgB/Q,EAAI+Q,EAAgB5K,EAAI8J,EAAOtN,EAAIoO,EAAgB3G,UACvE8F,EAAKvG,EAAG,EAAIA,GAGpB,SAAUoH,IAAmBC,OAIzC,MAAO,CACH3R,IAAIY,GACIJ,EAAYgQ,GACZ1B,KAAOC,MAAK,KAERyB,EAASA,IACTG,EAAG/P,MAIP+P,EAAG/P,IAGXwQ,MACIQ,IACAF,EAAkBC,EAAkB,OAuFhD,MAAMK,GAA6B,oBAAXhO,OAClBA,OACsB,oBAAfiO,WACHA,WACAC,OAEV,SAASC,GAAcnC,EAAOoC,GAC1BpC,EAAMlJ,EAAE,GACRsL,EAAOxN,OAAOoL,EAAMjH,KAExB,SAASsJ,GAAwBrC,EAAOoC,GACpClC,GAAeF,EAAO,EAAG,GAAG,KACxBoC,EAAOxN,OAAOoL,EAAMjH,QAG5B,SAASuJ,GAAsBtC,EAAOoC,GAClCpC,EAAMnL,IACNsN,GAAcnC,EAAOoC,GAMzB,SAASG,GAAkBC,EAAYjQ,EAAOkQ,EAASC,EAAS7Q,EAAK8Q,EAAMP,EAAQ7M,EAAMzB,EAAS8O,EAAmBvG,EAAMwG,GACvH,IAAI1C,EAAIqC,EAAW1P,OACfmH,EAAI0I,EAAK7P,OACTC,EAAIoN,EACR,MAAM2C,EAAc,GACpB,KAAO/P,KACH+P,EAAYN,EAAWzP,GAAGgG,KAAOhG,EACrC,MAAMgQ,EAAa,GACbC,EAAa,IAAIC,IACjBC,EAAS,IAAID,IAEnB,IADAlQ,EAAIkH,EACGlH,KAAK,CACR,MAAMoQ,EAAYN,EAAYhR,EAAK8Q,EAAM5P,GACnCgG,EAAM0J,EAAQU,GACpB,IAAInD,EAAQoC,EAAOgB,IAAIrK,GAClBiH,EAII0C,GACL1C,EAAM1M,EAAE6P,EAAW5Q,IAJnByN,EAAQ4C,EAAkB7J,EAAKoK,GAC/BnD,EAAMrL,KAKVqO,EAAWrP,IAAIoF,EAAKgK,EAAWhQ,GAAKiN,GAChCjH,KAAO+J,GACPI,EAAOvP,IAAIoF,EAAKnG,KAAKmP,IAAIhP,EAAI+P,EAAY/J,KAEjD,MAAMsK,EAAY,IAAI7O,IAChB8O,EAAW,IAAI9O,IACrB,SAAS6B,EAAO2J,GACZD,GAAcC,EAAO,GACrBA,EAAM5F,EAAE7E,EAAM8G,GACd+F,EAAOzO,IAAIqM,EAAMjH,IAAKiH,GACtB3D,EAAO2D,EAAMuD,MACbtJ,IAEJ,KAAOkG,GAAKlG,GAAG,CACX,MAAMuJ,EAAYT,EAAW9I,EAAI,GAC3BwJ,EAAYjB,EAAWrC,EAAI,GAC3BuD,EAAUF,EAAUzK,IACpB4K,EAAUF,EAAU1K,IACtByK,IAAcC,GAEdpH,EAAOmH,EAAUD,MACjBpD,IACAlG,KAEM+I,EAAWtE,IAAIiF,IAKfvB,EAAO1D,IAAIgF,IAAYL,EAAU3E,IAAIgF,GAC3CrN,EAAOmN,GAEFF,EAAS5E,IAAIiF,GAClBxD,IAEK+C,EAAOE,IAAIM,GAAWR,EAAOE,IAAIO,IACtCL,EAASnO,IAAIuO,GACbrN,EAAOmN,KAGPH,EAAUlO,IAAIwO,GACdxD,MAfArM,EAAQ2P,EAAWrB,GACnBjC,KAiBR,KAAOA,KAAK,CACR,MAAMsD,EAAYjB,EAAWrC,GACxB6C,EAAWtE,IAAI+E,EAAU1K,MAC1BjF,EAAQ2P,EAAWrB,GAE3B,KAAOnI,GACH5D,EAAO0M,EAAW9I,EAAI,IAC1B,OAAO8I,EAoMX,SAASa,GAAKtS,EAAWyF,EAAMxF,GAC3B,MAAMsS,EAAQvS,EAAUE,GAAGsS,MAAM/M,QACnBtE,IAAVoR,IACAvS,EAAUE,GAAGuS,MAAMF,GAAStS,EAC5BA,EAASD,EAAUE,GAAGK,IAAIgS,KAGlC,SAASG,GAAiBhE,GACtBA,GAASA,EAAMrL,IAKnB,SAASsP,GAAgB3S,EAAWgE,EAAQgB,EAAQ4N,GAChD,MAAMvF,SAAEA,EAAQhB,SAAEA,EAAQlM,WAAEA,EAAUoN,aAAEA,GAAiBvN,EAAUE,GACnEmN,GAAYA,EAASvE,EAAE9E,EAAQgB,GAC1B4N,GAED/F,IAAoB,KAChB,MAAMgG,EAAiBxG,EAASyG,IAAIpU,GAAKsM,OAAO9L,GAC5CiB,EACAA,EAAWC,QAAQyS,GAKnB9T,EAAQ8T,GAEZ7S,EAAUE,GAAGmM,SAAW,MAGhCkB,EAAatO,QAAQ4N,IAEzB,SAASkG,GAAkB/S,EAAWuF,GAClC,MAAMrF,EAAKF,EAAUE,GACD,OAAhBA,EAAGmN,WACHtO,EAAQmB,EAAGC,YACXD,EAAGmN,UAAYnN,EAAGmN,SAAS7H,EAAED,GAG7BrF,EAAGC,WAAaD,EAAGmN,SAAW,KAC9BnN,EAAGK,IAAM,IAGjB,SAASyS,GAAWhT,EAAWyB,IACI,IAA3BzB,EAAUE,GAAGe,MAAM,KACnBqL,GAAiBlM,KAAKJ,GAxvBrB4M,KACDA,IAAmB,EACnBF,GAAiBe,KAAKR,KAwvBtBjN,EAAUE,GAAGe,MAAMgS,KAAK,IAE5BjT,EAAUE,GAAGe,MAAOQ,EAAI,GAAM,IAAO,GAAMA,EAAI,GAEnD,SAAS8O,GAAKvQ,EAAWqG,EAAS6M,EAAUC,EAAiBC,EAAWZ,EAAOa,EAAepS,EAAQ,EAAE,IACpG,MAAMqS,EAAmBhK,EACzB2C,EAAsBjM,GACtB,MAAME,EAAKF,EAAUE,GAAK,CACtBmN,SAAU,KACV9M,IAAK,KAELiS,MAAAA,EACAtF,OAAQ3O,EACR6U,UAAAA,EACAX,MAAO7T,IAEPyN,SAAU,GACVlM,WAAY,GACZoT,cAAe,GACfjG,cAAe,GACfC,aAAc,GACdiG,QAAS,IAAI7B,IAAItL,EAAQmN,UAAYF,EAAmBA,EAAiBpT,GAAGsT,QAAU,KAEtF/T,UAAWb,IACXqC,MAAAA,EACAwS,YAAY,EACZpP,KAAMgC,EAAQrC,QAAUsP,EAAiBpT,GAAGmE,MAEhDgP,GAAiBA,EAAcnT,EAAGmE,MAClC,IAAIqP,GAAQ,EAkBZ,GAjBAxT,EAAGK,IAAM2S,EACHA,EAASlT,EAAWqG,EAAQmM,OAAS,IAAI,CAAC/Q,EAAGW,KAAQuR,KACnD,MAAM9T,EAAQ8T,EAAKnS,OAASmS,EAAK,GAAKvR,EAOtC,OANIlC,EAAGK,KAAO6S,EAAUlT,EAAGK,IAAIkB,GAAIvB,EAAGK,IAAIkB,GAAK5B,MACtCK,EAAGuT,YAAcvT,EAAGuS,MAAMhR,IAC3BvB,EAAGuS,MAAMhR,GAAG5B,GACZ6T,GACAV,GAAWhT,EAAWyB,IAEvBW,KAET,GACNlC,EAAGgN,SACHwG,GAAQ,EACR3U,EAAQmB,EAAGoN,eAEXpN,EAAGmN,WAAW8F,GAAkBA,EAAgBjT,EAAGK,KAC/C8F,EAAQrC,OAAQ,CAChB,GAAIqC,EAAQuN,QAAS,CAEjB,MAAMC,EAvxClB,SAAkBlP,GACd,OAAOuE,MAAMC,KAAKxE,EAAQyE,YAsxCJ0K,CAASzN,EAAQrC,QAE/B9D,EAAGmN,UAAYnN,EAAGmN,SAAS0G,EAAEF,GAC7BA,EAAM5U,QAAQiG,QAIdhF,EAAGmN,UAAYnN,EAAGmN,SAAShK,IAE3BgD,EAAQ8J,OACR1B,GAAczO,EAAUE,GAAGmN,UAC/BsF,GAAgB3S,EAAWqG,EAAQrC,OAAQqC,EAAQrB,OAAQqB,EAAQuM,eAEnE3F,KAEJhB,EAAsBqH,GAkD1B,MAAMU,GACFC,WACIlB,GAAkBpM,KAAM,GACxBA,KAAKsN,SAAW1V,EAEpB2V,IAAIpG,EAAM7N,GACN,MAAMR,EAAakH,KAAKzG,GAAGT,UAAUqO,KAAUnH,KAAKzG,GAAGT,UAAUqO,GAAQ,IAEzE,OADArO,EAAUW,KAAKH,GACR,KACH,MAAMsS,EAAQ9S,EAAUyL,QAAQjL,IACjB,IAAXsS,GACA9S,EAAU0U,OAAO5B,EAAO,IAGpC6B,KAAKC,GAtzDT,IAAkBC,EAuzDN3N,KAAK4N,QAvzDCD,EAuzDkBD,EAtzDG,IAA5BxV,OAAO2V,KAAKF,GAAK9S,UAuzDhBmF,KAAKzG,GAAGuT,YAAa,EACrB9M,KAAK4N,MAAMF,GACX1N,KAAKzG,GAAGuT,YAAa,ICj2DjC,MAAMgB,GAAmB,GAgBzB,SAASC,GAAS7U,EAAO+P,EAAQrR,GAC7B,IAAIoW,EACJ,MAAMC,EAAc,IAAI1R,IACxB,SAASb,EAAIwS,GACT,GAAIzV,EAAeS,EAAOgV,KACtBhV,EAAQgV,EACJF,GAAM,CACN,MAAMG,GAAaL,GAAiBjT,OACpC,IAAK,MAAMuT,KAAcH,EACrBG,EAAW,KACXN,GAAiBrU,KAAK2U,EAAYlV,GAEtC,GAAIiV,EAAW,CACX,IAAK,IAAIrT,EAAI,EAAGA,EAAIgT,GAAiBjT,OAAQC,GAAK,EAC9CgT,GAAiBhT,GAAG,GAAGgT,GAAiBhT,EAAI,IAEhDgT,GAAiBjT,OAAS,IAuB1C,MAAO,CAAEa,IAAAA,EAAK6K,OAlBd,SAAgBvO,GACZ0D,EAAI1D,EAAGkB,KAiBWN,UAftB,SAAmBb,EAAKmR,EAAatR,GACjC,MAAMwW,EAAa,CAACrW,EAAKmR,GAMzB,OALA+E,EAAY/Q,IAAIkR,GACS,IAArBH,EAAYpR,OACZmR,EAAO/E,EAAMvN,IAAQ9D,GAEzBG,EAAImB,GACG,KACH+U,EAAYtR,OAAOyR,GACM,IAArBH,EAAYpR,OACZmR,IACAA,EAAO,SAMvB,SAASK,GAAQC,EAAQtW,EAAIuW,GACzB,MAAMC,GAAUjM,MAAMkM,QAAQH,GACxBI,EAAeF,EACf,CAACF,GACDA,EACAK,EAAO3W,EAAG6C,OAAS,EACzB,OAzDqBoO,EAyDWvN,IAC5B,IAAIkT,GAAS,EACb,MAAMC,EAAS,GACf,IAAIC,EAAU,EACVrG,EAAU7Q,EACd,MAAMmX,EAAO,KACT,GAAID,EACA,OAEJrG,IACA,MAAMuG,EAAShX,EAAGwW,EAASK,EAAO,GAAKA,EAAQnT,GAC3CiT,EACAjT,EAAIsT,GAGJvG,EAAUlQ,EAAYyW,GAAUA,EAASpX,GAG3CqX,EAAgBP,EAAavC,KAAI,CAACtT,EAAOiC,IAAMlC,EAAUC,GAAQK,IACnE2V,EAAO/T,GAAK5B,EACZ4V,KAAa,GAAKhU,GACd8T,GACAG,OAEL,KACCD,GAAY,GAAKhU,OAIrB,OAFA8T,GAAS,EACTG,IACO,WACH3W,EAAQ6W,GACRxG,MAvFD,CACH7P,UAAWmV,GAuDCQ,EAvDetF,GAAOrQ,WAF1C,IAAyBqQ,ECPzB,IAAIiG,GAAoB,SAA2BhW,GAClD,OAID,SAAyBA,GACxB,QAASA,GAA0B,iBAAVA,EALlBiW,CAAgBjW,KAQxB,SAAmBA,GAClB,IAAIkW,EAAclX,OAAOmX,UAAUC,SAASvP,KAAK7G,GAEjD,MAAuB,oBAAhBkW,GACa,kBAAhBA,GAQL,SAAwBlW,GACvB,OAAOA,EAAMqW,WAAaC,GARtBC,CAAevW,GAZdwW,CAAUxW,IAgBhB,IACIsW,GADiC,mBAAXG,QAAyBA,OAAOC,IAClBD,OAAOC,IAAI,iBAAmB,MAUtE,SAASC,GAA8B3W,EAAOwG,GAC7C,OAA0B,IAAlBA,EAAQoQ,OAAmBpQ,EAAQwP,kBAAkBhW,GAC1D6W,IANiBC,EAMK9W,EALlBqJ,MAAMkM,QAAQuB,GAAO,GAAK,IAKA9W,EAAOwG,GACrCxG,EAPJ,IAAqB8W,EAUrB,SAASC,GAAkB5S,EAAQ6S,EAAQxQ,GAC1C,OAAOrC,EAAO8S,OAAOD,GAAQ/D,KAAI,SAASnO,GACzC,OAAO6R,GAA8B7R,EAAS0B,MAoBhD,SAAS0Q,GAAQ/S,GAChB,OAAOnF,OAAO2V,KAAKxQ,GAAQ8S,OAT5B,SAAyC9S,GACxC,OAAOnF,OAAOmY,sBACXnY,OAAOmY,sBAAsBhT,GAAQgH,QAAO,SAASiM,GACtD,OAAOjT,EAAOkT,qBAAqBD,MAElC,GAI+BE,CAAgCnT,IAGnE,SAASoT,GAAmBC,EAAQC,GACnC,IACC,OAAOA,KAAYD,EAClB,MAAMvX,GACP,OAAO,GAWT,SAASyX,GAAYvT,EAAQ6S,EAAQxQ,GACpC,IAAImR,EAAc,GAiBlB,OAhBInR,EAAQwP,kBAAkB7R,IAC7B+S,GAAQ/S,GAAQ/E,SAAQ,SAASwI,GAChC+P,EAAY/P,GAAO+O,GAA8BxS,EAAOyD,GAAMpB,MAGhE0Q,GAAQF,GAAQ5X,SAAQ,SAASwI,IAblC,SAA0BzD,EAAQyD,GACjC,OAAO2P,GAAmBpT,EAAQyD,MAC5B5I,OAAO4Y,eAAe/Q,KAAK1C,EAAQyD,IACpC5I,OAAOqY,qBAAqBxQ,KAAK1C,EAAQyD,KAWzCiQ,CAAiB1T,EAAQyD,KAIzB2P,GAAmBpT,EAAQyD,IAAQpB,EAAQwP,kBAAkBgB,EAAOpP,IACvE+P,EAAY/P,GAhDf,SAA0BA,EAAKpB,GAC9B,IAAKA,EAAQsR,YACZ,OAAOjB,GAER,IAAIiB,EAActR,EAAQsR,YAAYlQ,GACtC,MAA8B,mBAAhBkQ,EAA6BA,EAAcjB,GA2CpCkB,CAAiBnQ,EAAKpB,EAAtBuR,CAA+B5T,EAAOyD,GAAMoP,EAAOpP,GAAMpB,GAE5EmR,EAAY/P,GAAO+O,GAA8BK,EAAOpP,GAAMpB,OAGzDmR,EAGR,SAASd,GAAU1S,EAAQ6S,EAAQxQ,IAClCA,EAAUA,GAAW,IACbwR,WAAaxR,EAAQwR,YAAcjB,GAC3CvQ,EAAQwP,kBAAoBxP,EAAQwP,mBAAqBA,GAGzDxP,EAAQmQ,8BAAgCA,GAExC,IAAIsB,EAAgB5O,MAAMkM,QAAQyB,GAIlC,OAFgCiB,IADZ5O,MAAMkM,QAAQpR,GAKvB8T,EACHzR,EAAQwR,WAAW7T,EAAQ6S,EAAQxQ,GAEnCkR,GAAYvT,EAAQ6S,EAAQxQ,GAJ5BmQ,GAA8BK,EAAQxQ,GAQ/CqQ,GAAUqB,IAAM,SAAsBC,EAAO3R,GAC5C,IAAK6C,MAAMkM,QAAQ4C,GAClB,MAAM,IAAI7L,MAAM,qCAGjB,OAAO6L,EAAMC,QAAO,SAASC,EAAMnN,GAClC,OAAO2L,GAAUwB,EAAMnN,EAAM1E,KAC3B,KAGJ,OAAkBqQ,GClHdyB,GAAgB,SAAS3S,EAAGlG,GAI5B,OAHA6Y,GAAgBtZ,OAAOuZ,gBAClB,CAAEC,UAAW,cAAgBnP,OAAS,SAAU1D,EAAGlG,GAAKkG,EAAE6S,UAAY/Y,IACvE,SAAUkG,EAAGlG,GAAK,IAAK,IAAI0C,KAAK1C,EAAOT,OAAOmX,UAAUyB,eAAe/Q,KAAKpH,EAAG0C,KAAIwD,EAAExD,GAAK1C,EAAE0C,KACzFmW,GAAc3S,EAAGlG,IAGrB,SAASgZ,GAAU9S,EAAGlG,GACzB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIiZ,UAAU,uBAAyBC,OAAOlZ,GAAK,iCAE7D,SAASmZ,IAAO9R,KAAK8B,YAAcjD,EADnC2S,GAAc3S,EAAGlG,GAEjBkG,EAAEwQ,UAAkB,OAAN1W,EAAaT,OAAOC,OAAOQ,IAAMmZ,EAAGzC,UAAY1W,EAAE0W,UAAW,IAAIyC,GAG5E,IC/BIC,GCAAC,GAwCAC,GFTAC,GAAW,WAQlB,OAPAA,GAAWha,OAAOiC,QAAU,SAAkBkI,GAC1C,IAAK,IAAI8P,EAAGrX,EAAI,EAAGkH,EAAIoQ,UAAUvX,OAAQC,EAAIkH,EAAGlH,IAE5C,IAAK,IAAIO,KADT8W,EAAIC,UAAUtX,GACO5C,OAAOmX,UAAUyB,eAAe/Q,KAAKoS,EAAG9W,KAAIgH,EAAEhH,GAAK8W,EAAE9W,IAE9E,OAAOgH,GAEJ6P,GAASG,MAAMrS,KAAMoS,YA6HzB,SAASE,GAAcC,EAAI/P,EAAMgQ,GACpC,GAAIA,GAA6B,IAArBJ,UAAUvX,OAAc,IAAK,IAA4B4X,EAAxB3X,EAAI,EAAGsS,EAAI5K,EAAK3H,OAAYC,EAAIsS,EAAGtS,KACxE2X,GAAQ3X,KAAK0H,IACRiQ,IAAIA,EAAKlQ,MAAM8M,UAAUjV,MAAM2F,KAAKyC,EAAM,EAAG1H,IAClD2X,EAAG3X,GAAK0H,EAAK1H,IAGrB,OAAOyX,EAAGpC,OAAOsC,GAAMlQ,MAAM8M,UAAUjV,MAAM2F,KAAKyC,IE3H/C,SAASkQ,GAAiBC,GAC7B,OAAOA,EAAGxL,OAAS6K,GAAKY,QAErB,SAASC,GAAkBF,GAC9B,OAAOA,EAAGxL,OAAS6K,GAAKc,SAErB,SAASC,GAAgBJ,GAC5B,OAAOA,EAAGxL,OAAS6K,GAAKgB,OAErB,SAASC,GAAcN,GAC1B,OAAOA,EAAGxL,OAAS6K,GAAKkB,KAErB,SAASC,GAAcR,GAC1B,OAAOA,EAAGxL,OAAS6K,GAAKoB,KAErB,SAASC,GAAgBV,GAC5B,OAAOA,EAAGxL,OAAS6K,GAAK9Q,OAErB,SAASoS,GAAgBX,GAC5B,OAAOA,EAAGxL,OAAS6K,GAAKuB,OAErB,SAASC,GAAeb,GAC3B,OAAOA,EAAGxL,OAAS6K,GAAKyB,MAErB,SAASC,GAAaf,GACzB,OAAOA,EAAGxL,OAAS6K,GAAK2B,IAErB,SAASC,GAAiBjB,GAC7B,SAAUA,GAAoB,iBAAPA,GAAmBA,EAAGxL,OAAS8K,GAAce,QAEjE,SAASa,GAAmBlB,GAC/B,SAAUA,GAAoB,iBAAPA,GAAmBA,EAAGxL,OAAS8K,GAAc6B,WD9ExE,SAAW/B,GAEPA,EAAUA,EAAyC,8BAAI,GAAK,gCAE5DA,EAAUA,EAA0B,eAAI,GAAK,iBAE7CA,EAAUA,EAA8B,mBAAI,GAAK,qBAEjDA,EAAUA,EAAgC,qBAAI,GAAK,uBAEnDA,EAAUA,EAAiC,sBAAI,GAAK,wBAEpDA,EAAUA,EAAiC,sBAAI,GAAK,wBAEpDA,EAAUA,EAAmC,wBAAI,GAAK,0BAEtDA,EAAUA,EAAsC,2BAAI,GAAK,6BAEzDA,EAAUA,EAAkC,uBAAI,GAAK,yBAErDA,EAAUA,EAAqC,0BAAI,IAAM,4BAEzDA,EAAUA,EAA4C,iCAAI,IAAM,mCAEhEA,EAAUA,EAA0C,+BAAI,IAAM,iCAE9DA,EAAUA,EAA+C,oCAAI,IAAM,sCAEnEA,EAAUA,EAAgD,qCAAI,IAAM,uCAEpEA,EAAUA,EAA2C,gCAAI,IAAM,kCAE/DA,EAAUA,EAA2C,gCAAI,IAAM,kCAE/DA,EAAUA,EAAoD,yCAAI,IAAM,2CAKxEA,EAAUA,EAAoD,yCAAI,IAAM,2CAExEA,EAAUA,EAA4C,iCAAI,IAAM,mCAKhEA,EAAUA,EAA8C,mCAAI,IAAM,qCAIlEA,EAAUA,EAA8C,mCAAI,IAAM,qCAElEA,EAAUA,EAAgC,qBAAI,IAAM,uBAEpDA,EAAUA,EAAuB,YAAI,IAAM,cAE3CA,EAAUA,EAA4B,iBAAI,IAAM,mBAEhDA,EAAUA,EAAiC,sBAAI,IAAM,wBAErDA,EAAUA,EAAwB,aAAI,IAAM,eA5DhD,CA6DGA,KAAcA,GAAY,KC7D7B,SAAWC,GAIPA,EAAKA,EAAc,QAAI,GAAK,UAI5BA,EAAKA,EAAe,SAAI,GAAK,WAI7BA,EAAKA,EAAa,OAAI,GAAK,SAI3BA,EAAKA,EAAW,KAAI,GAAK,OAIzBA,EAAKA,EAAW,KAAI,GAAK,OAIzBA,EAAKA,EAAa,OAAI,GAAK,SAI3BA,EAAKA,EAAa,OAAI,GAAK,SAK3BA,EAAKA,EAAY,MAAI,GAAK,QAI1BA,EAAKA,EAAU,IAAI,GAAK,MArC5B,CAsCGA,KAASA,GAAO,KAEnB,SAAWC,GACPA,EAAcA,EAAsB,OAAI,GAAK,SAC7CA,EAAcA,EAAwB,SAAI,GAAK,WAFnD,CAGGA,KAAkBA,GAAgB,KC3C9B,IAAI8B,GAAwB,+CCI/BC,GAAkB,4KAOf,SAASC,GAAsBC,GAClC,IAAIlF,EAAS,GA0Gb,OAzGAkF,EAASC,QAAQH,IAAiB,SAAUI,GACxC,IAAI1Z,EAAM0Z,EAAMvZ,OAChB,OAAQuZ,EAAM,IAEV,IAAK,IACDpF,EAAOqF,IAAc,IAAR3Z,EAAY,OAAiB,IAARA,EAAY,SAAW,QACzD,MAEJ,IAAK,IACDsU,EAAOsF,KAAe,IAAR5Z,EAAY,UAAY,UACtC,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACD,MAAM,IAAI6Z,WAAW,gEAEzB,IAAK,IACL,IAAK,IACD,MAAM,IAAIA,WAAW,8CAEzB,IAAK,IACL,IAAK,IACDvF,EAAOwF,MAAQ,CAAC,UAAW,UAAW,QAAS,OAAQ,UAAU9Z,EAAM,GACvE,MAEJ,IAAK,IACL,IAAK,IACD,MAAM,IAAI6Z,WAAW,2CACzB,IAAK,IACDvF,EAAOyF,IAAM,CAAC,UAAW,WAAW/Z,EAAM,GAC1C,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACD,MAAM,IAAI6Z,WAAW,6DAEzB,IAAK,IACDvF,EAAO0F,QAAkB,IAARha,EAAY,QAAkB,IAARA,EAAY,SAAW,QAC9D,MACJ,IAAK,IACD,GAAIA,EAAM,EACN,MAAM,IAAI6Z,WAAW,iDAEzBvF,EAAO0F,QAAU,CAAC,QAAS,OAAQ,SAAU,SAASha,EAAM,GAC5D,MACJ,IAAK,IACD,GAAIA,EAAM,EACN,MAAM,IAAI6Z,WAAW,iDAEzBvF,EAAO0F,QAAU,CAAC,QAAS,OAAQ,SAAU,SAASha,EAAM,GAC5D,MAEJ,IAAK,IACDsU,EAAO2F,QAAS,EAChB,MACJ,IAAK,IACL,IAAK,IACD,MAAM,IAAIJ,WAAW,8DAEzB,IAAK,IACDvF,EAAO4F,UAAY,MACnB5F,EAAO6F,KAAO,CAAC,UAAW,WAAWna,EAAM,GAC3C,MACJ,IAAK,IACDsU,EAAO4F,UAAY,MACnB5F,EAAO6F,KAAO,CAAC,UAAW,WAAWna,EAAM,GAC3C,MACJ,IAAK,IACDsU,EAAO4F,UAAY,MACnB5F,EAAO6F,KAAO,CAAC,UAAW,WAAWna,EAAM,GAC3C,MACJ,IAAK,IACDsU,EAAO4F,UAAY,MACnB5F,EAAO6F,KAAO,CAAC,UAAW,WAAWna,EAAM,GAC3C,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACD,MAAM,IAAI6Z,WAAW,oEAEzB,IAAK,IACDvF,EAAO8F,OAAS,CAAC,UAAW,WAAWpa,EAAM,GAC7C,MAEJ,IAAK,IACDsU,EAAO+F,OAAS,CAAC,UAAW,WAAWra,EAAM,GAC7C,MACJ,IAAK,IACL,IAAK,IACD,MAAM,IAAI6Z,WAAW,8DAEzB,IAAK,IACDvF,EAAOgG,aAAeta,EAAM,EAAI,QAAU,OAC1C,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACD,MAAM,IAAI6Z,WAAW,wEAE7B,MAAO,MAEJvF,ECtHJ,IAAIiG,GAAoB,wCC8B/B,IC/BIC,GD+BAC,GAA2B,mCAC3BC,GAA8B,wBAC9BC,GAAsB,0BACtBC,GAA8B,SAClC,SAASC,GAA0BlS,GAC/B,IAAI2L,EAAS,GA6Bb,MA5B4B,MAAxB3L,EAAIA,EAAIxI,OAAS,GACjBmU,EAAOwG,iBAAmB,gBAEG,MAAxBnS,EAAIA,EAAIxI,OAAS,KACtBmU,EAAOwG,iBAAmB,iBAE9BnS,EAAI8Q,QAAQiB,IAA6B,SAAUjc,EAAGsc,EAAIC,GAoBtD,MAlBkB,iBAAPA,GACP1G,EAAO2G,yBAA2BF,EAAG5a,OACrCmU,EAAO4G,yBAA2BH,EAAG5a,QAGzB,MAAP6a,EACL1G,EAAO2G,yBAA2BF,EAAG5a,OAGtB,MAAV4a,EAAG,GACRzG,EAAO4G,yBAA2BH,EAAG5a,QAIrCmU,EAAO2G,yBAA2BF,EAAG5a,OACrCmU,EAAO4G,yBACHH,EAAG5a,QAAwB,iBAAP6a,EAAkBA,EAAG7a,OAAS,IAEnD,MAEJmU,EAEX,SAAS6G,GAAUxS,GACf,OAAQA,GACJ,IAAK,YACD,MAAO,CACHyS,YAAa,QAErB,IAAK,kBACL,IAAK,KACD,MAAO,CACHC,aAAc,cAEtB,IAAK,cACL,IAAK,KACD,MAAO,CACHD,YAAa,UAErB,IAAK,yBACL,IAAK,MACD,MAAO,CACHA,YAAa,SACbC,aAAc,cAEtB,IAAK,mBACL,IAAK,KACD,MAAO,CACHD,YAAa,cAErB,IAAK,8BACL,IAAK,MACD,MAAO,CACHA,YAAa,aACbC,aAAc,cAEtB,IAAK,aACL,IAAK,KACD,MAAO,CACHD,YAAa,UAI7B,SAASE,GAAyCC,GAE9C,IAAIjH,EAaJ,GAZgB,MAAZiH,EAAK,IAA0B,MAAZA,EAAK,IACxBjH,EAAS,CACLkH,SAAU,eAEdD,EAAOA,EAAK7b,MAAM,IAED,MAAZ6b,EAAK,KACVjH,EAAS,CACLkH,SAAU,cAEdD,EAAOA,EAAK7b,MAAM,IAElB4U,EAAQ,CACR,IAAI8G,EAAcG,EAAK7b,MAAM,EAAG,GAShC,GARoB,OAAhB0b,GACA9G,EAAO8G,YAAc,SACrBG,EAAOA,EAAK7b,MAAM,IAEG,OAAhB0b,IACL9G,EAAO8G,YAAc,aACrBG,EAAOA,EAAK7b,MAAM,KAEjBkb,GAA4Ba,KAAKF,GAClC,MAAM,IAAIzQ,MAAM,6CAEpBwJ,EAAOoH,qBAAuBH,EAAKpb,OAEvC,OAAOmU,EAEX,SAASqH,GAAqBC,GAC1B,IACIC,EAAWV,GAAUS,GACzB,OAAIC,GAFS,GAUV,SAASC,GAAoBC,GAEhC,IADA,IAAIzH,EAAS,GACJ0H,EAAK,EAAGC,EAAWF,EAAQC,EAAKC,EAAS9b,OAAQ6b,IAAM,CAC5D,IAAIE,EAAQD,EAASD,GACrB,OAAQE,EAAMX,MACV,IAAK,UACL,IAAK,IACDjH,EAAO/Q,MAAQ,UACf,SACJ,IAAK,QACD+Q,EAAO/Q,MAAQ,UACf+Q,EAAO6H,MAAQ,IACf,SACJ,IAAK,WACD7H,EAAO/Q,MAAQ,WACf+Q,EAAO8H,SAAWF,EAAMlX,QAAQ,GAChC,SACJ,IAAK,YACL,IAAK,KACDsP,EAAO+H,aAAc,EACrB,SACJ,IAAK,oBACL,IAAK,IACD/H,EAAOgI,sBAAwB,EAC/B,SACJ,IAAK,eACL,IAAK,OACDhI,EAAO/Q,MAAQ,OACf+Q,EAAOiI,KAAqBL,EAAMlX,QAAQ,GArJ1CyU,QAAQ,UAAW,IAsJnB,SACJ,IAAK,gBACL,IAAK,IACDnF,EAAOkH,SAAW,UAClBlH,EAAOkI,eAAiB,QACxB,SACJ,IAAK,eACL,IAAK,KACDlI,EAAOkH,SAAW,UAClBlH,EAAOkI,eAAiB,OACxB,SACJ,IAAK,aACDlI,EAASkD,GAASA,GAASA,GAAS,GAAIlD,GAAS,CAAEkH,SAAU,eAAiBU,EAAMlX,QAAQ4R,QAAO,SAAUF,EAAKkF,GAAO,OAAQpE,GAASA,GAAS,GAAId,GAAMiF,GAAqBC,MAAW,KAC7L,SACJ,IAAK,cACDtH,EAASkD,GAASA,GAASA,GAAS,GAAIlD,GAAS,CAAEkH,SAAU,gBAAkBU,EAAMlX,QAAQ4R,QAAO,SAAUF,EAAKkF,GAAO,OAAQpE,GAASA,GAAS,GAAId,GAAMiF,GAAqBC,MAAW,KAC9L,SACJ,IAAK,kBACDtH,EAAOkH,SAAW,WAClB,SAEJ,IAAK,oBACDlH,EAAOmI,gBAAkB,eACzBnI,EAAOoI,YAAc,SACrB,SACJ,IAAK,mBACDpI,EAAOmI,gBAAkB,OACzBnI,EAAOoI,YAAc,QACrB,SACJ,IAAK,uBACDpI,EAAOmI,gBAAkB,OACzBnI,EAAOoI,YAAc,OACrB,SACJ,IAAK,sBACDpI,EAAOmI,gBAAkB,SACzB,SACJ,IAAK,QACDnI,EAAO6H,MAAQQ,WAAWT,EAAMlX,QAAQ,IACxC,SAEJ,IAAK,gBACD,GAAIkX,EAAMlX,QAAQ7E,OAAS,EACvB,MAAM,IAAI0Z,WAAW,4DAEzBqC,EAAMlX,QAAQ,GAAGyU,QAAQkB,IAAqB,SAAUlc,EAAGsc,EAAIC,EAAI4B,EAAIC,EAAIC,GACvE,GAAI/B,EACAzG,EAAOoH,qBAAuBV,EAAG7a,WAEhC,CAAA,GAAIyc,GAAMC,EACX,MAAM,IAAI/R,MAAM,sDAEf,GAAIgS,EACL,MAAM,IAAIhS,MAAM,oDAEpB,MAAO,MAEX,SAGR,GAAI8P,GAA4Ba,KAAKS,EAAMX,MACvCjH,EAAOoH,qBAAuBQ,EAAMX,KAAKpb,YAG7C,GAAIsa,GAAyBgB,KAAKS,EAAMX,MAAxC,CAII,GAAIW,EAAMlX,QAAQ7E,OAAS,EACvB,MAAM,IAAI0Z,WAAW,iEAEzBqC,EAAMX,KAAK9B,QAAQgB,IAA0B,SAAUhc,EAAGsc,EAAIC,EAAI4B,EAAIC,EAAIC,GAkBtE,MAhBW,MAAP9B,EACA1G,EAAOyI,sBAAwBhC,EAAG5a,OAG7Byc,GAAgB,MAAVA,EAAG,GACdtI,EAAOgI,sBAAwBM,EAAGzc,OAG7B0c,GAAMC,GACXxI,EAAOyI,sBAAwBF,EAAG1c,OAClCmU,EAAOgI,sBAAwBO,EAAG1c,OAAS2c,EAAG3c,SAG9CmU,EAAOyI,sBAAwBhC,EAAG5a,OAClCmU,EAAOgI,sBAAwBvB,EAAG5a,QAE/B,MAEX,IAAIyb,EAAMM,EAAMlX,QAAQ,GAEZ,MAAR4W,EACAtH,EAASkD,GAASA,GAAS,GAAIlD,GAAS,CAAE0I,oBAAqB,mBAE1DpB,IACLtH,EAASkD,GAASA,GAAS,GAAIlD,GAASuG,GAA0Be,UAK1E,GAAIlB,GAA4Be,KAAKS,EAAMX,MACvCjH,EAASkD,GAASA,GAAS,GAAIlD,GAASuG,GAA0BqB,EAAMX,WAD5E,CAIA,IAAIM,EAAWV,GAAUe,EAAMX,MAC3BM,IACAvH,EAASkD,GAASA,GAAS,GAAIlD,GAASuH,IAE5C,IAAIoB,EAAsC3B,GAAyCY,EAAMX,MACrF0B,IACA3I,EAASkD,GAASA,GAAS,GAAIlD,GAAS2I,KAGhD,OAAO3I,EC/RX,IAAI4I,GAA8B,IAAIC,OAAO,IAAI1H,OAAO4D,GAAsB7D,OAAQ,MAClF4H,GAA4B,IAAID,OAAO,GAAG1H,OAAO4D,GAAsB7D,OAAQ,OACnF,SAAS6H,GAAe9O,EAAOE,GAC3B,MAAO,CAAEF,MAAOA,EAAOE,IAAKA,GAIhC,IAAI6O,KAAwBnG,OAAOxC,UAAU4I,WACzCC,KAA2BrG,OAAOsG,cAClCC,KAAyBlgB,OAAOmgB,YAChCC,KAAyBzG,OAAOxC,UAAUkJ,YAC1CC,KAAiB3G,OAAOxC,UAAUoJ,UAClCC,KAAe7G,OAAOxC,UAAUsJ,QAEhCC,KAD2BC,OAAOD,cAEhCC,OAAOD,cACP,SAAU5W,GACR,MAAqB,iBAANA,GACX8W,SAAS9W,IACTrH,KAAKoe,MAAM/W,KAAOA,GAClBrH,KAAKmP,IAAI9H,IAAM,kBAGvBgX,IAAyB,EAC7B,IAQIA,GAA8F,OAA5C,QAAvB9D,GAPlB+D,GAAG,4CAA6C,MAOtBC,KAAK,YAAyB,IAAPhE,QAAgB,EAASA,GAAG,IAE1F,MAAO/b,GACH6f,IAAyB,EAE7B,IAyFIG,GAzFAlB,GAAaD,GAET,SAAoB7F,EAAGiH,EAAQtU,GAC3B,OAAOqN,EAAE8F,WAAWmB,EAAQtU,IAGhC,SAAoBqN,EAAGiH,EAAQtU,GAC3B,OAAOqN,EAAE/X,MAAM0K,EAAUA,EAAWsU,EAAOve,UAAYue,GAE/DjB,GAAgBD,GACdrG,OAAOsG,cAEL,WAEI,IADA,IAAIkB,EAAa,GACR3C,EAAK,EAAGA,EAAKtE,UAAUvX,OAAQ6b,IACpC2C,EAAW3C,GAAMtE,UAAUsE,GAM/B,IAJA,IAGI4C,EAHAC,EAAW,GACX1e,EAASwe,EAAWxe,OACpBC,EAAI,EAEDD,EAASC,GAAG,CAEf,IADAwe,EAAOD,EAAWve,MACP,QACP,MAAMyZ,WAAW+E,EAAO,8BAC5BC,GACID,EAAO,MACDzH,OAAO2H,aAAaF,GACpBzH,OAAO2H,aAAyC,QAA1BF,GAAQ,QAAY,IAAeA,EAAO,KAAS,OAEvF,OAAOC,GAEflB,GAEJD,GACMlgB,OAAOmgB,YAEL,SAAqBoB,GAEjB,IADA,IAAI9L,EAAM,GACD+I,EAAK,EAAGgD,EAAYD,EAAS/C,EAAKgD,EAAU7e,OAAQ6b,IAAM,CAC/D,IAAIxB,EAAKwE,EAAUhD,GAAKxc,EAAIgb,EAAG,GAAIyE,EAAIzE,EAAG,GAC1CvH,EAAIzT,GAAKyf,EAEb,OAAOhM,GAEf4K,GAAcD,GAEV,SAAqBnG,EAAGvG,GACpB,OAAOuG,EAAEoG,YAAY3M,IAGzB,SAAqBuG,EAAGvG,GACpB,IAAI/O,EAAOsV,EAAEtX,OACb,KAAI+Q,EAAQ,GAAKA,GAAS/O,GAA1B,CAGA,IACIkY,EADAzJ,EAAQ6G,EAAE5O,WAAWqI,GAEzB,OAAON,EAAQ,OACXA,EAAQ,OACRM,EAAQ,IAAM/O,IACbkY,EAAS5C,EAAE5O,WAAWqI,EAAQ,IAAM,OACrCmJ,EAAS,MACPzJ,EAC4ByJ,EAAS,OAAnCzJ,EAAQ,OAAW,IAA0B,QAE7DmN,GAAYD,GAER,SAAmBrG,GACf,OAAOA,EAAEsG,aAGb,SAAmBtG,GACf,OAAOA,EAAEgC,QAAQyD,GAA6B,KAEtDe,GAAUD,GAEN,SAAiBvG,GACb,OAAOA,EAAEwG,WAGb,SAAiBxG,GACb,OAAOA,EAAEgC,QAAQ2D,GAA2B,KAGxD,SAASmB,GAAG9G,EAAGyH,GACX,OAAO,IAAI/B,OAAO1F,EAAGyH,GAIzB,GAAIZ,GAAwB,CAExB,IAAIa,GAAyBZ,GAAG,4CAA6C,MAC7EE,GAAyB,SAAgChH,EAAGvG,GACxD,IAAIsJ,EAGJ,OAFA2E,GAAuBC,UAAYlO,EAER,QAAnBsJ,EADI2E,GAAuBX,KAAK/G,GACrB,UAAuB,IAAP+C,EAAgBA,EAAK,SAK5DiE,GAAyB,SAAgChH,EAAGvG,GAExD,IADA,IAAIwI,EAAQ,KACC,CACT,IAAI1X,EAAI6b,GAAYpG,EAAGvG,GACvB,QAAUpR,IAANkC,GAAmBqd,GAAcrd,IAAMsd,GAAiBtd,GACxD,MAEJ0X,EAAM3a,KAAKiD,GACXkP,GAASlP,GAAK,MAAU,EAAI,EAEhC,OAAOyb,GAAc9F,WAAM,EAAQ+B,IAG3C,IAAI6F,GAAwB,WACxB,SAASA,EAAOC,EAASxa,QACL,IAAZA,IAAsBA,EAAU,IACpCM,KAAKka,QAAUA,EACfla,KAAK8E,SAAW,CAAEqV,OAAQ,EAAGC,KAAM,EAAGC,OAAQ,GAC9Cra,KAAKsa,YAAc5a,EAAQ4a,UAC3Bta,KAAKua,sBAAwB7a,EAAQ6a,oBACrCva,KAAKwa,uBAAyB9a,EAAQ8a,qBA+xB1C,OA7xBAP,EAAO5K,UAAUoL,MAAQ,WACrB,GAAsB,IAAlBza,KAAKma,SACL,MAAM3U,MAAM,gCAEhB,OAAOxF,KAAK0a,aAAa,EAAG,IAAI,IAEpCT,EAAO5K,UAAUqL,aAAe,SAAUC,EAAcC,EAAeC,GAEnE,IADA,IAAItB,EAAW,IACPvZ,KAAK8a,SAAS,CAClB,IAAIC,EAAO/a,KAAK+a,OAChB,GAAa,MAATA,EAAwB,CAExB,IADI/L,EAAShP,KAAKgb,cAAcL,EAAcE,IACnCI,IACP,OAAOjM,EAEXuK,EAAS9f,KAAKuV,EAAOgB,SAEpB,CAAA,GAAa,MAAT+K,GAA0BJ,EAAe,EAC9C,MAEC,GAAa,KAATI,GACc,WAAlBH,GAAgD,kBAAlBA,EAQ9B,CAAA,GAAa,KAATG,IACJ/a,KAAKsa,WACU,KAAhBta,KAAKkb,OACP,CACE,GAAIL,EACA,MAGA,OAAO7a,KAAKmb,MAAMpJ,GAAUqJ,sBAAuBrD,GAAe/X,KAAKqb,gBAAiBrb,KAAKqb,kBAGhG,GAAa,KAATN,IACJ/a,KAAKsa,WACNgB,GAAStb,KAAKkb,QAAU,GAAI,CAE5B,IADIlM,EAAShP,KAAKub,SAASZ,EAAcC,IAC9BK,IACP,OAAOjM,EAEXuK,EAAS9f,KAAKuV,EAAOgB,SAEpB,CACD,IAAIhB,EACJ,IADIA,EAAShP,KAAKwb,aAAab,EAAcC,IAClCK,IACP,OAAOjM,EAEXuK,EAAS9f,KAAKuV,EAAOgB,UAjC8C,CACnE,IAAIlL,EAAW9E,KAAKqb,gBACpBrb,KAAKyb,OACLlC,EAAS9f,KAAK,CACV0N,KAAM6K,GAAKyB,MACXiI,SAAU3D,GAAejT,EAAU9E,KAAKqb,qBA+BpD,MAAO,CAAErL,IAAKuJ,EAAU0B,IAAK,OAoBjChB,EAAO5K,UAAUkM,SAAW,SAAUZ,EAAcC,GAChD,IAAIe,EAAgB3b,KAAKqb,gBACzBrb,KAAKyb,OACL,IAAIG,EAAU5b,KAAK6b,eAEnB,GADA7b,KAAK8b,YACD9b,KAAK+b,OAAO,MAEZ,MAAO,CACH/L,IAAK,CACD7I,KAAM6K,GAAKY,QACX1Z,MAAO,IAAIiX,OAAOyL,EAAS,MAC3BF,SAAU3D,GAAe4D,EAAe3b,KAAKqb,kBAEjDJ,IAAK,MAGR,GAAIjb,KAAK+b,OAAO,KAAM,CACvB,IAAIC,EAAiBhc,KAAK0a,aAAaC,EAAe,EAAGC,GAAe,GACxE,GAAIoB,EAAef,IACf,OAAOe,EAEX,IAAI7O,EAAW6O,EAAehM,IAE1BiM,EAAsBjc,KAAKqb,gBAC/B,GAAIrb,KAAK+b,OAAO,MAAO,CACnB,GAAI/b,KAAK8a,UAAYQ,GAAStb,KAAK+a,QAC/B,OAAO/a,KAAKmb,MAAMpJ,GAAUmK,YAAanE,GAAekE,EAAqBjc,KAAKqb,kBAEtF,IAAIc,EAA8Bnc,KAAKqb,gBAEvC,OAAIO,IADiB5b,KAAK6b,eAEf7b,KAAKmb,MAAMpJ,GAAUqJ,sBAAuBrD,GAAeoE,EAA6Bnc,KAAKqb,mBAExGrb,KAAK8b,YACA9b,KAAK+b,OAAO,KAGV,CACH/L,IAAK,CACD7I,KAAM6K,GAAK2B,IACXza,MAAO0iB,EACPzO,SAAUA,EACVuO,SAAU3D,GAAe4D,EAAe3b,KAAKqb,kBAEjDJ,IAAK,MATEjb,KAAKmb,MAAMpJ,GAAUmK,YAAanE,GAAekE,EAAqBjc,KAAKqb,mBAatF,OAAOrb,KAAKmb,MAAMpJ,GAAUqK,aAAcrE,GAAe4D,EAAe3b,KAAKqb,kBAIjF,OAAOrb,KAAKmb,MAAMpJ,GAAUmK,YAAanE,GAAe4D,EAAe3b,KAAKqb,mBAMpFpB,EAAO5K,UAAUwM,aAAe,WAC5B,IAAIQ,EAAcrc,KAAKma,SAEvB,IADAna,KAAKyb,QACGzb,KAAK8a,SAAWwB,GAA4Btc,KAAK+a,SACrD/a,KAAKyb,OAET,OAAOzb,KAAKka,QAAQ9f,MAAMiiB,EAAarc,KAAKma,WAEhDF,EAAO5K,UAAUmM,aAAe,SAAUb,EAAcC,GAGpD,IAFA,IAAI3R,EAAQjJ,KAAKqb,gBACbniB,EAAQ,KACC,CACT,IAAIqjB,EAAmBvc,KAAKwc,cAAc5B,GAC1C,GAAI2B,EACArjB,GAASqjB,MADb,CAIA,IAAIE,EAAsBzc,KAAK0c,iBAAiB/B,EAAcC,GAC9D,GAAI6B,EACAvjB,GAASujB,MADb,CAIA,IAAIE,EAAuB3c,KAAK4c,2BAChC,IAAID,EAIJ,MAHIzjB,GAASyjB,IAKjB,IAAIjB,EAAW3D,GAAe9O,EAAOjJ,KAAKqb,iBAC1C,MAAO,CACHrL,IAAK,CAAE7I,KAAM6K,GAAKY,QAAS1Z,MAAOA,EAAOwiB,SAAUA,GACnDT,IAAK,OAGbhB,EAAO5K,UAAUuN,yBAA2B,WACxC,OAAK5c,KAAK8a,SACU,KAAhB9a,KAAK+a,SACJ/a,KAAKsa,YA6nBPgB,GADcuB,EA1nBQ7c,KAAKkb,QAAU,IA2nBA,KAAd2B,GAvnBnB,MAHH7c,KAAKyb,OACE,KAwnBnB,IAAyBoB,GA/mBrB5C,EAAO5K,UAAUmN,cAAgB,SAAU5B,GACvC,GAAI5a,KAAK8a,SAA2B,KAAhB9a,KAAK+a,OACrB,OAAO,KAIX,OAAQ/a,KAAKkb,QACT,KAAK,GAID,OAFAlb,KAAKyb,OACLzb,KAAKyb,OACE,IAEX,KAAK,IACL,KAAK,GACL,KAAK,GACL,KAAK,IACD,MACJ,KAAK,GACD,GAAsB,WAAlBb,GAAgD,kBAAlBA,EAC9B,MAEJ,OAAO,KACX,QACI,OAAO,KAEf5a,KAAKyb,OACL,IAAIpC,EAAa,CAACrZ,KAAK+a,QAGvB,IAFA/a,KAAKyb,QAEGzb,KAAK8a,SAAS,CAClB,IAAIgC,EAAK9c,KAAK+a,OACd,GAAW,KAAP+B,EAAqB,CACrB,GAAoB,KAAhB9c,KAAKkb,OAKJ,CAEDlb,KAAKyb,OACL,MAPApC,EAAW5f,KAAK,IAEhBuG,KAAKyb,YASTpC,EAAW5f,KAAKqjB,GAEpB9c,KAAKyb,OAET,OAAOtD,GAAc9F,WAAM,EAAQgH,IAEvCY,EAAO5K,UAAUqN,iBAAmB,SAAU/B,EAAcC,GACxD,GAAI5a,KAAK8a,QACL,OAAO,KAEX,IAAIgC,EAAK9c,KAAK+a,OACd,OAAW,KAAP+B,GACO,MAAPA,GACQ,KAAPA,IACsB,WAAlBlC,GAAgD,kBAAlBA,IAC3B,MAAPkC,GAAwBnC,EAAe,EACjC,MAGP3a,KAAKyb,OACEtD,GAAc2E,KAG7B7C,EAAO5K,UAAU2L,cAAgB,SAAUL,EAAcE,GACrD,IAAIkC,EAAuB/c,KAAKqb,gBAGhC,GAFArb,KAAKyb,OACLzb,KAAK8b,YACD9b,KAAK8a,QACL,OAAO9a,KAAKmb,MAAMpJ,GAAUiL,8BAA+BjF,GAAegF,EAAsB/c,KAAKqb,kBAEzG,GAAoB,MAAhBrb,KAAK+a,OAEL,OADA/a,KAAKyb,OACEzb,KAAKmb,MAAMpJ,GAAUkL,eAAgBlF,GAAegF,EAAsB/c,KAAKqb,kBAG1F,IAAIniB,EAAQ8G,KAAKkd,4BAA4BhkB,MAC7C,IAAKA,EACD,OAAO8G,KAAKmb,MAAMpJ,GAAUoL,mBAAoBpF,GAAegF,EAAsB/c,KAAKqb,kBAG9F,GADArb,KAAK8b,YACD9b,KAAK8a,QACL,OAAO9a,KAAKmb,MAAMpJ,GAAUiL,8BAA+BjF,GAAegF,EAAsB/c,KAAKqb,kBAEzG,OAAQrb,KAAK+a,QAET,KAAK,IAED,OADA/a,KAAKyb,OACE,CACHzL,IAAK,CACD7I,KAAM6K,GAAKc,SAEX5Z,MAAOA,EACPwiB,SAAU3D,GAAegF,EAAsB/c,KAAKqb,kBAExDJ,IAAK,MAIb,KAAK,GAGD,OAFAjb,KAAKyb,OACLzb,KAAK8b,YACD9b,KAAK8a,QACE9a,KAAKmb,MAAMpJ,GAAUiL,8BAA+BjF,GAAegF,EAAsB/c,KAAKqb,kBAElGrb,KAAKod,qBAAqBzC,EAAcE,EAAmB3hB,EAAO6jB,GAE7E,QACI,OAAO/c,KAAKmb,MAAMpJ,GAAUoL,mBAAoBpF,GAAegF,EAAsB/c,KAAKqb,oBAOtGpB,EAAO5K,UAAU6N,0BAA4B,WACzC,IAAIG,EAAmBrd,KAAKqb,gBACxBgB,EAAcrc,KAAKma,SACnBjhB,EAAQigB,GAAuBnZ,KAAKka,QAASmC,GAC7CiB,EAAYjB,EAAcnjB,EAAM2B,OAIpC,OAHAmF,KAAKud,OAAOD,GAGL,CAAEpkB,MAAOA,EAAOwiB,SADR3D,GAAesF,EADZrd,KAAKqb,mBAI3BpB,EAAO5K,UAAU+N,qBAAuB,SAAUzC,EAAcE,EAAmB3hB,EAAO6jB,GACtF,IAAI7H,EAIAsI,EAAoBxd,KAAKqb,gBACzBoC,EAAUzd,KAAKkd,4BAA4BhkB,MAC3CwkB,EAAkB1d,KAAKqb,gBAC3B,OAAQoC,GACJ,IAAK,GAED,OAAOzd,KAAKmb,MAAMpJ,GAAU4L,qBAAsB5F,GAAeyF,EAAmBE,IACxF,IAAK,SACL,IAAK,OACL,IAAK,OAID1d,KAAK8b,YACL,IAAI8B,EAAmB,KACvB,GAAI5d,KAAK+b,OAAO,KAAM,CAClB/b,KAAK8b,YACL,IAAI+B,EAAqB7d,KAAKqb,gBAE9B,IADIrM,EAAShP,KAAK8d,iCACP7C,IACP,OAAOjM,EAGX,GAAqB,KADjB/Q,EAAQ0a,GAAQ3J,EAAOgB,MACjBnV,OACN,OAAOmF,KAAKmb,MAAMpJ,GAAUgM,sBAAuBhG,GAAe/X,KAAKqb,gBAAiBrb,KAAKqb,kBAGjGuC,EAAmB,CAAE3f,MAAOA,EAAO+f,cADfjG,GAAe8F,EAAoB7d,KAAKqb,kBAIhE,IADI4C,EAAiBje,KAAKke,sBAAsBnB,IAC7B9B,IACf,OAAOgD,EAEX,IAAIE,EAAapG,GAAegF,EAAsB/c,KAAKqb,iBAE3D,GAAIuC,GAAoB3F,GAAW2F,MAAAA,OAA2D,EAASA,EAAiB3f,MAAO,KAAM,GAAI,CAErI,IAAIiW,EAAWuE,GAAUmF,EAAiB3f,MAAM7D,MAAM,IACtD,GAAgB,WAAZqjB,EAEA,OADIzO,EAAShP,KAAKoe,8BAA8BlK,EAAU0J,EAAiBI,gBAChE/C,IACAjM,EAEJ,CACHgB,IAAK,CAAE7I,KAAM6K,GAAKgB,OAAQ9Z,MAAOA,EAAOwiB,SAAUyC,EAAYlgB,MAAO+Q,EAAOgB,KAC5EiL,IAAK,MAIT,GAAwB,IAApB/G,EAASrZ,OACT,OAAOmF,KAAKmb,MAAMpJ,GAAUsM,0BAA2BF,GAE3D,IAAIlgB,EAAQ,CACRkJ,KAAM8K,GAAc6B,SACpBwK,QAASpK,EACTwH,SAAUkC,EAAiBI,cAC3BO,cAAeve,KAAKwa,qBACdvG,GAAsBC,GACtB,IAGV,MAAO,CACHlE,IAAK,CAAE7I,KAFY,SAAZsW,EAAqBzL,GAAKkB,KAAOlB,GAAKoB,KAE1Bla,MAAOA,EAAOwiB,SAAUyC,EAAYlgB,MAAOA,GAC9Dgd,IAAK,MAKjB,MAAO,CACHjL,IAAK,CACD7I,KAAkB,WAAZsW,EACAzL,GAAKgB,OACO,SAAZyK,EACIzL,GAAKkB,KACLlB,GAAKoB,KACfla,MAAOA,EACPwiB,SAAUyC,EACVlgB,MAA6G,QAArGiX,EAAK0I,MAAAA,OAA2D,EAASA,EAAiB3f,aAA0B,IAAPiX,EAAgBA,EAAK,MAE9I+F,IAAK,MAGb,IAAK,SACL,IAAK,gBACL,IAAK,SAID,IAAIuD,EAAoBxe,KAAKqb,gBAE7B,GADArb,KAAK8b,aACA9b,KAAK+b,OAAO,KACb,OAAO/b,KAAKmb,MAAMpJ,GAAU0M,+BAAgC1G,GAAeyG,EAAmBtM,GAAS,GAAIsM,KAE/Gxe,KAAK8b,YASL,IAAI4C,EAAwB1e,KAAKkd,4BAC7ByB,EAAe,EACnB,GAAgB,WAAZlB,GAAwD,WAAhCiB,EAAsBxlB,MAAoB,CAClE,IAAK8G,KAAK+b,OAAO,KACb,OAAO/b,KAAKmb,MAAMpJ,GAAU6M,oCAAqC7G,GAAe/X,KAAKqb,gBAAiBrb,KAAKqb,kBAG/G,IAAIrM,EACJ,GAFAhP,KAAK8b,aACD9M,EAAShP,KAAK6e,uBAAuB9M,GAAU6M,oCAAqC7M,GAAU+M,uCACvF7D,IACP,OAAOjM,EAGXhP,KAAK8b,YACL4C,EAAwB1e,KAAKkd,4BAC7ByB,EAAe3P,EAAOgB,IAE1B,IAIIiO,EAJAc,EAAgB/e,KAAKgf,8BAA8BrE,EAAc8C,EAAS5C,EAAmB6D,GACjG,GAAIK,EAAc9D,IACd,OAAO8D,EAGX,IADId,EAAiBje,KAAKke,sBAAsBnB,IAC7B9B,IACf,OAAOgD,EAEX,IAAIgB,EAAalH,GAAegF,EAAsB/c,KAAKqb,iBAC3D,MAAgB,WAAZoC,EACO,CACHzN,IAAK,CACD7I,KAAM6K,GAAK9Q,OACXhI,MAAOA,EACPwG,QAAS2Y,GAAY0G,EAAc/O,KACnC0L,SAAUuD,GAEdhE,IAAK,MAIF,CACHjL,IAAK,CACD7I,KAAM6K,GAAKuB,OACXra,MAAOA,EACPwG,QAAS2Y,GAAY0G,EAAc/O,KACnCmK,OAAQwE,EACRO,WAAwB,WAAZzB,EAAuB,WAAa,UAChD/B,SAAUuD,GAEdhE,IAAK,MAIjB,QACI,OAAOjb,KAAKmb,MAAMpJ,GAAUoN,sBAAuBpH,GAAeyF,EAAmBE,MAGjGzD,EAAO5K,UAAU6O,sBAAwB,SAAUnB,GAG/C,OAAI/c,KAAK8a,SAA2B,MAAhB9a,KAAK+a,OACd/a,KAAKmb,MAAMpJ,GAAUiL,8BAA+BjF,GAAegF,EAAsB/c,KAAKqb,mBAEzGrb,KAAKyb,OACE,CAAEzL,KAAK,EAAMiL,IAAK,QAK7BhB,EAAO5K,UAAUyO,8BAAgC,WAG7C,IAFA,IAAIsB,EAAe,EACfzD,EAAgB3b,KAAKqb,iBACjBrb,KAAK8a,SAAS,CAElB,OADS9a,KAAK+a,QAEV,KAAK,GAGD/a,KAAKyb,OACL,IAAI4D,EAAqBrf,KAAKqb,gBAC9B,IAAKrb,KAAKsf,UAAU,KAChB,OAAOtf,KAAKmb,MAAMpJ,GAAUwN,iCAAkCxH,GAAesH,EAAoBrf,KAAKqb,kBAE1Grb,KAAKyb,OACL,MAEJ,KAAK,IACD2D,GAAgB,EAChBpf,KAAKyb,OACL,MAEJ,KAAK,IACD,KAAI2D,EAAe,GAIf,MAAO,CACHpP,IAAKhQ,KAAKka,QAAQ9f,MAAMuhB,EAAcxB,OAAQna,KAAKma,UACnDc,IAAK,MALTmE,GAAgB,EAQpB,MAEJ,QACIpf,KAAKyb,QAIjB,MAAO,CACHzL,IAAKhQ,KAAKka,QAAQ9f,MAAMuhB,EAAcxB,OAAQna,KAAKma,UACnDc,IAAK,OAGbhB,EAAO5K,UAAU+O,8BAAgC,SAAUlK,EAAUwH,GACjE,IAAIjF,EAAS,GACb,IACIA,ED5rBL,SAAuCvC,GAC1C,GAAwB,IAApBA,EAASrZ,OACT,MAAM,IAAI2K,MAAM,mCAOpB,IAJA,IAAIga,EAAetL,EACd/P,MAAM8Q,IACN5Q,QAAO,SAAUvM,GAAK,OAAOA,EAAE+C,OAAS,KACzC4b,EAAS,GACJC,EAAK,EAAG+I,EAAiBD,EAAc9I,EAAK+I,EAAe5kB,OAAQ6b,IAAM,CAC9E,IACIgJ,EADcD,EAAe/I,GACAvS,MAAM,KACvC,GAA8B,IAA1Bub,EAAe7kB,OACf,MAAM,IAAI2K,MAAM,2BAGpB,IADA,IAAIyQ,EAAOyJ,EAAe,GAAIhgB,EAAUggB,EAAetlB,MAAM,GACpD8a,EAAK,EAAGyK,EAAYjgB,EAASwV,EAAKyK,EAAU9kB,OAAQqa,IAEzD,GAAsB,IADTyK,EAAUzK,GACZra,OACP,MAAM,IAAI2K,MAAM,2BAGxBiR,EAAOhd,KAAK,CAAEwc,KAAMA,EAAMvW,QAASA,IAEvC,OAAO+W,ECoqBU2H,CAA8BlK,GAE3C,MAAOnS,GACH,OAAO/B,KAAKmb,MAAMpJ,GAAU6N,wBAAyBlE,GAEzD,MAAO,CACH1L,IAAK,CACD7I,KAAM8K,GAAce,OACpByD,OAAQA,EACRiF,SAAUA,EACV6C,cAAeve,KAAKwa,qBACdhE,GAAoBC,GACpB,IAEVwE,IAAK,OAabhB,EAAO5K,UAAU2P,8BAAgC,SAAUrE,EAAcC,EAAeiF,EAAgBC,GASpG,IARA,IAAI5K,EACA6K,GAAiB,EACjBrgB,EAAU,GACVsgB,EAAkB,IAAIzjB,IACtB0jB,EAAWH,EAAsB5mB,MAAOgnB,EAAmBJ,EAAsBpE,WAIxE,CACT,GAAwB,IAApBuE,EAASplB,OAAc,CACvB,IAAI8gB,EAAgB3b,KAAKqb,gBACzB,GAAsB,WAAlBT,IAA8B5a,KAAK+b,OAAO,KAU1C,MARA,IAAI/M,EAAShP,KAAK6e,uBAAuB9M,GAAUoO,gCAAiCpO,GAAUqO,kCAC9F,GAAIpR,EAAOiM,IACP,OAAOjM,EAEXkR,EAAmBnI,GAAe4D,EAAe3b,KAAKqb,iBACtD4E,EAAWjgB,KAAKka,QAAQ9f,MAAMuhB,EAAcxB,OAAQna,KAAKma,UAOjE,GAAI6F,EAAgBvZ,IAAIwZ,GACpB,OAAOjgB,KAAKmb,MAAwB,WAAlBP,EACZ7I,GAAUsO,mCACVtO,GAAUuO,mCAAoCJ,GAEvC,UAAbD,IACAF,GAAiB,GAKrB/f,KAAK8b,YACL,IAAIiB,EAAuB/c,KAAKqb,gBAChC,IAAKrb,KAAK+b,OAAO,KACb,OAAO/b,KAAKmb,MAAwB,WAAlBP,EACZ7I,GAAUwO,yCACVxO,GAAUyO,yCAA0CzI,GAAe/X,KAAKqb,gBAAiBrb,KAAKqb,kBAExG,IAAIoF,EAAiBzgB,KAAK0a,aAAaC,EAAe,EAAGC,EAAeiF,GACxE,GAAIY,EAAexF,IACf,OAAOwF,EAEX,IAAIxC,EAAiBje,KAAKke,sBAAsBnB,GAChD,GAAIkB,EAAehD,IACf,OAAOgD,EAEXve,EAAQjG,KAAK,CACTwmB,EACA,CACI/mB,MAAOunB,EAAezQ,IACtB0L,SAAU3D,GAAegF,EAAsB/c,KAAKqb,oBAI5D2E,EAAgB9iB,IAAI+iB,GAEpBjgB,KAAK8b,YACmCmE,GAAvC/K,EAAKlV,KAAKkd,6BAA2ChkB,MAAOgnB,EAAmBhL,EAAGwG,SAEvF,OAAuB,IAAnBhc,EAAQ7E,OACDmF,KAAKmb,MAAwB,WAAlBP,EACZ7I,GAAU2O,gCACV3O,GAAUoO,gCAAiCpI,GAAe/X,KAAKqb,gBAAiBrb,KAAKqb,kBAE3Frb,KAAKua,sBAAwBwF,EACtB/f,KAAKmb,MAAMpJ,GAAU4O,qBAAsB5I,GAAe/X,KAAKqb,gBAAiBrb,KAAKqb,kBAEzF,CAAErL,IAAKtQ,EAASub,IAAK,OAEhChB,EAAO5K,UAAUwP,uBAAyB,SAAU+B,EAAmBC,GACnE,IAAIC,EAAO,EACPzD,EAAmBrd,KAAKqb,gBACxBrb,KAAK+b,OAAO,MAEP/b,KAAK+b,OAAO,OACjB+E,GAAQ,GAIZ,IAFA,IAAIC,GAAY,EACZC,EAAU,GACNhhB,KAAK8a,SAAS,CAClB,IAAIgC,EAAK9c,KAAK+a,OACd,KAAI+B,GAAM,IAAgBA,GAAM,IAM5B,MALAiE,GAAY,EACZC,EAAoB,GAAVA,GAAgBlE,EAAK,IAC/B9c,KAAKyb,OAMb,IAAIC,EAAW3D,GAAesF,EAAkBrd,KAAKqb,iBACrD,OAAK0F,EAIAnI,GADLoI,GAAWF,GAIJ,CAAE9Q,IAAKgR,EAAS/F,IAAK,MAFjBjb,KAAKmb,MAAM0F,EAAoBnF,GAJ/B1b,KAAKmb,MAAMyF,EAAmBlF,IAQ7CzB,EAAO5K,UAAU8K,OAAS,WACtB,OAAOna,KAAK8E,SAASqV,QAEzBF,EAAO5K,UAAUyL,MAAQ,WACrB,OAAO9a,KAAKma,WAAana,KAAKka,QAAQrf,QAE1Cof,EAAO5K,UAAUgM,cAAgB,WAE7B,MAAO,CACHlB,OAAQna,KAAK8E,SAASqV,OACtBC,KAAMpa,KAAK8E,SAASsV,KACpBC,OAAQra,KAAK8E,SAASuV,SAO9BJ,EAAO5K,UAAU0L,KAAO,WACpB,IAAIZ,EAASna,KAAK8E,SAASqV,OAC3B,GAAIA,GAAUna,KAAKka,QAAQrf,OACvB,MAAM2K,MAAM,gBAEhB,IAAI8T,EAAOf,GAAYvY,KAAKka,QAASC,GACrC,QAAa3f,IAAT8e,EACA,MAAM9T,MAAM,UAAU2K,OAAOgK,EAAQ,6CAEzC,OAAOb,GAEXW,EAAO5K,UAAU8L,MAAQ,SAAUlU,EAAMyU,GACrC,MAAO,CACH1L,IAAK,KACLiL,IAAK,CACDhU,KAAMA,EACNiT,QAASla,KAAKka,QACdwB,SAAUA,KAKtBzB,EAAO5K,UAAUoM,KAAO,WACpB,IAAIzb,KAAK8a,QAAT,CAGA,IAAIxB,EAAOtZ,KAAK+a,OACH,KAATzB,GACAtZ,KAAK8E,SAASsV,MAAQ,EACtBpa,KAAK8E,SAASuV,OAAS,EACvBra,KAAK8E,SAASqV,QAAU,IAGxBna,KAAK8E,SAASuV,QAAU,EAExBra,KAAK8E,SAASqV,QAAUb,EAAO,MAAU,EAAI,KASrDW,EAAO5K,UAAU0M,OAAS,SAAUkF,GAChC,GAAIhJ,GAAWjY,KAAKka,QAAS+G,EAAQjhB,KAAKma,UAAW,CACjD,IAAK,IAAIrf,EAAI,EAAGA,EAAImmB,EAAOpmB,OAAQC,IAC/BkF,KAAKyb,OAET,OAAO,EAEX,OAAO,GAMXxB,EAAO5K,UAAUiQ,UAAY,SAAUhB,GACnC,IAAI4C,EAAgBlhB,KAAKma,SACrBvO,EAAQ5L,KAAKka,QAAQ3V,QAAQ+Z,EAAS4C,GAC1C,OAAItV,GAAS,GACT5L,KAAKud,OAAO3R,IACL,IAGP5L,KAAKud,OAAOvd,KAAKka,QAAQrf,SAClB,IAOfof,EAAO5K,UAAUkO,OAAS,SAAU4D,GAChC,GAAInhB,KAAKma,SAAWgH,EAChB,MAAM3b,MAAM,gBAAgB2K,OAAOgR,EAAc,yDAAyDhR,OAAOnQ,KAAKma,WAG1H,IADAgH,EAAexmB,KAAKymB,IAAID,EAAcnhB,KAAKka,QAAQrf,UACtC,CACT,IAAIsf,EAASna,KAAKma,SAClB,GAAIA,IAAWgH,EACX,MAEJ,GAAIhH,EAASgH,EACT,MAAM3b,MAAM,gBAAgB2K,OAAOgR,EAAc,6CAGrD,GADAnhB,KAAKyb,OACDzb,KAAK8a,QACL,QAKZb,EAAO5K,UAAUyM,UAAY,WACzB,MAAQ9b,KAAK8a,SAAWf,GAAc/Z,KAAK+a,SACvC/a,KAAKyb,QAObxB,EAAO5K,UAAU6L,KAAO,WACpB,GAAIlb,KAAK8a,QACL,OAAO,KAEX,IAAIxB,EAAOtZ,KAAK+a,OACZZ,EAASna,KAAKma,SACdkH,EAAWrhB,KAAKka,QAAQ3W,WAAW4W,GAAUb,GAAQ,MAAU,EAAI,IACvE,OAAO+H,MAAAA,EAA2CA,EAAW,MAE1DpH,KAQX,SAASqB,GAASuB,GACd,OAASA,GAAa,IAAMA,GAAa,KACpCA,GAAa,IAAMA,GAAa,GAMzC,SAASP,GAA4B5f,GACjC,OAAc,KAANA,GACE,KAANA,GACCA,GAAK,IAAMA,GAAK,IACX,KAANA,GACCA,GAAK,IAAMA,GAAK,KAChBA,GAAK,IAAMA,GAAK,IACZ,KAALA,GACCA,GAAK,KAAQA,GAAK,KAClBA,GAAK,KAAQA,GAAK,KAClBA,GAAK,KAAQA,GAAK,KAClBA,GAAK,KAASA,GAAK,MACnBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAWA,GAAK,OAM9B,SAASqd,GAAcrd,GACnB,OAASA,GAAK,GAAUA,GAAK,IACnB,KAANA,GACM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,EAMR,SAASsd,GAAiBtd,GACtB,OAASA,GAAK,IAAUA,GAAK,IACnB,KAANA,GACCA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACCA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,KAAUA,GAAK,KACf,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,KACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,MC7uC7B,SAAS4kB,GAAcC,GACnBA,EAAIjpB,SAAQ,SAAUqa,GAElB,UADOA,EAAG+I,SACNrI,GAAgBV,IAAOW,GAAgBX,GACvC,IAAK,IAAIzY,KAAKyY,EAAGjT,eACNiT,EAAGjT,QAAQxF,GAAGwhB,SACrB4F,GAAc3O,EAAGjT,QAAQxF,GAAGhB,YAG3B6Z,GAAgBJ,IAAOiB,GAAiBjB,EAAG1U,SAG1CgV,GAAcN,IAAOQ,GAAcR,KACzCkB,GAAmBlB,EAAG1U,cAHf0U,EAAG1U,MAAMyd,SAMXhI,GAAaf,IAClB2O,GAAc3O,EAAGxF,aAIt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"}
\ No newline at end of file
+{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte/store/index.mjs","../../node_modules/deepmerge/dist/cjs.js","../../node_modules/tslib/tslib.es6.js","../../node_modules/@formatjs/icu-messageformat-parser/lib/error.js","../../node_modules/@formatjs/icu-messageformat-parser/lib/types.js","../../node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","../../node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","../../node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","../../node_modules/@formatjs/icu-skeleton-parser/lib/number.js","../../node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","../../node_modules/@formatjs/icu-messageformat-parser/lib/index.js","../../node_modules/@formatjs/fast-memoize/lib/index.js","../../node_modules/intl-messageformat/lib/src/error.js","../../node_modules/intl-messageformat/lib/src/formatters.js","../../node_modules/intl-messageformat/lib/src/core.js","../../node_modules/intl-messageformat/lib/index.js","../../node_modules/svelte-i18n/dist/runtime.esm.js","../../src/scripts/utils.ts","../../src/data/shields.js","../../src/config/defaults.ts","../../src/data/stores.ts","../../src/data/validators.ts","../../src/scripts/download.js","../../src/scripts/navbar.ts","../../src/components/WindowEvents.svelte","../../src/components/navigation/header/menu/Logo.svelte","../../src/scripts/tooltip.ts","../../node_modules/svelte/easing/index.mjs","../../node_modules/svelte/transition/index.mjs","../../src/components/navigation/header/shared/NavLabel.svelte","../../src/components/navigation/header/shared/NavItem.svelte","../../src/components/navigation/header/shared/NavButton.svelte","../../src/components/navigation/header/shared/Lock.svelte","../../src/components/navigation/header/menu/options/NavShieldOption.svelte","../../src/components/navigation/header/menu/options/NavColorsOption.svelte","../../src/config/options.js","../../src/components/navigation/header/menu/options/NavGradientOption.svelte","../../src/components/navigation/header/menu/options/NavDamaskingOption.svelte","../../src/components/navigation/header/menu/options/NavGalleryOption.svelte","../../src/components/navigation/header/shared/IconButton.svelte","../../src/components/shared/ColorInput.svelte","../../src/components/shared/NumberInput.svelte","../../src/components/navigation/header/menu/options/NavBorderOption.svelte","../../src/components/navigation/header/menu/options/NavBackgroundOption.svelte","../../src/components/shared/RangeInput.svelte","../../src/components/navigation/header/menu/options/NavScaleOption.svelte","../../src/components/navigation/header/menu/options/Options.svelte","../../src/components/navigation/header/menu/Rollback.svelte","../../src/components/navigation/header/menu/Reroll.svelte","../../src/components/navigation/header/menu/Save.svelte","../../src/components/navigation/header/menu/Upload.svelte","../../src/components/navigation/header/menu/Install.svelte","../../src/components/navigation/header/menu/Other.svelte","../../src/components/navigation/header/menu/Undo.svelte","../../src/components/navigation/header/menu/Redo.svelte","../../src/components/navigation/header/menu/License.svelte","../../src/components/navigation/header/menu/About.svelte","../../src/components/navigation/header/menu/Support.svelte","../../src/components/navigation/header/menu/Language.svelte","../../src/components/navigation/header/menu/Back.svelte","../../src/components/navigation/header/Navbar.svelte","../../src/components/navigation/AnimatedCOA.svelte","../../src/components/navigation/About.svelte","../../src/components/navigation/License.svelte","../../src/components/editor/Grid.svelte","../../src/components/editor/Positions.svelte","../../src/scripts/drag.js","../../src/data/templates.js","../../src/scripts/getters.js","../../src/components/object/Ordinary.svelte","../../src/components/object/Charge.svelte","../../src/components/object/Shield.svelte","../../src/components/object/COA.svelte","../../src/data/dataModel.js","../../src/scripts/generator.js","../../src/scripts/alea.js","../../src/components/navigation/Viewer.svelte","../../src/components/editor/Switch.svelte","../../src/components/editor/EditorAbove.svelte","../../src/components/editor/EditorItem.svelte","../../src/components/editor/EditorCharge.svelte","../../src/components/editor/EditorControls.svelte","../../src/components/editor/EditorDivided.svelte","../../src/components/editor/EditorDivision.svelte","../../src/components/editor/EditorLine.svelte","../../src/components/editor/EditorOrdinary.svelte","../../src/components/editor/EditorPattern.svelte","../../src/components/editor/EditorPosition.svelte","../../src/components/editor/EditorShift.svelte","../../src/components/editor/EditorSize.svelte","../../src/components/editor/EditorStroke.svelte","../../src/components/editor/EditorTincture.svelte","../../src/components/editor/EditorType.svelte","../../src/components/editor/Editor.svelte","../../src/components/navigation/Gallery.svelte","../../src/components/navigation/LicenseList.svelte","../../src/scripts/aliases.ts","../../src/components/navigation/UploadRaster.svelte","../../src/components/navigation/UploadVector.svelte","../../node_modules/svelte/animate/index.mjs","../../src/components/navigation/Tinctures.svelte","../../src/components/Message.svelte","../../src/components/App.svelte","../../src/scripts/i18n.ts","../../src/main.js"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentElement !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n node.parentNode.removeChild(node);\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration();\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n node.style.setProperty(key, value, important ? 'important' : '');\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, bubbles = false) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, false, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nclass HtmlTag {\n constructor() {\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes) {\n super();\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\n\nconst active_docs = new Set();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n active_docs.add(doc);\n const stylesheet = doc.__svelte_stylesheet || (doc.__svelte_stylesheet = append_empty_stylesheet(node).sheet);\n const current_rules = doc.__svelte_rules || (doc.__svelte_rules = {});\n if (!current_rules[name]) {\n current_rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n active_docs.forEach(doc => {\n const stylesheet = doc.__svelte_stylesheet;\n let i = stylesheet.cssRules.length;\n while (i--)\n stylesheet.deleteRule(i);\n doc.__svelte_rules = {};\n });\n active_docs.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail);\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n }\n };\n}\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n}\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\nlet flushing = false;\nconst seen_callbacks = new Set();\nfunction flush() {\n if (flushing)\n return;\n flushing = true;\n do {\n // first, call beforeUpdate functions\n // and update components\n for (let i = 0; i < dirty_components.length; i += 1) {\n const component = dirty_components[i];\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n flushing = false;\n seen_callbacks.clear();\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'ismap',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, classes_to_add) {\n const attributes = Object.assign({}, ...args);\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nconst escaped = {\n '\"': '"',\n \"'\": ''',\n '&': '&',\n '<': '<',\n '>': '>'\n};\nfunction escape(html) {\n return String(html).replace(/[\"'&<>]/g, match => escaped[match]);\n}\nfunction escape_attribute_value(value) {\n return typeof value === 'string' ? escape(value) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n return ` ${name}${value === true ? '' : `=${typeof value === 'string' ? JSON.stringify(escape(value)) : `\"${value}\"`}`}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, on_mount, on_destroy, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = on_mount.map(run).filter(is_function);\n if (on_destroy) {\n on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: null,\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.44.2' }, detail), true));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, escaped, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, listen, listen_dev, loop, loop_guard, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_each_argument, validate_each_keys, validate_slots, validate_store, xlink_attr };\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","export var ErrorKind;\n(function (ErrorKind) {\n /** Argument is unclosed (e.g. `{0`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n /** Argument is empty (e.g. `{}`). */\n ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n /** Argument is malformed (e.g. `{foo!}``) */\n ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n /** Expect an argument type (e.g. `{foo,}`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n /** Unsupported argument type (e.g. `{foo,foo}`) */\n ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n /** Expect an argument style (e.g. `{foo, number, }`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n /** The number skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n /** The date time skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n /** Missing select argument options (e.g. `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n /**\n * Expecting a message fragment after the `plural` or `selectordinal` selector\n * (e.g. `{foo, plural, one}`)\n */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n /**\n * Duplicate selectors in `plural` or `selectordinal` argument.\n * (e.g. {foo, plural, one {#} one {#}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n /** Duplicate selectors in `select` argument.\n * (e.g. {foo, select, apple {apple} apple {apple}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n /** Plural or select argument option must have `other` clause. */\n ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n /** The tag is malformed. (e.g. `foo ) */\n ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n /** The tag name is invalid. (e.g. `<123>foo123>`) */\n ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n /** The closing tag does not match the opening tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n /** The opening tag has unmatched closing tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n /**\n * XML-like tag\n */\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isTagElement(el) {\n return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.dateTime);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\n","/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'short' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) patterns are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: miliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n if (skeleton.length === 0) {\n throw new Error('Number skeleton cannot be empty');\n }\n // Parse the skeleton\n var stringTokens = skeleton\n .split(WHITE_SPACE_REGEX)\n .filter(function (x) { return x.length > 0; });\n var tokens = [];\n for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n var stringToken = stringTokens_1[_i];\n var stemAndOptions = stringToken.split('/');\n if (stemAndOptions.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n var option = options_1[_a];\n if (option.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n }\n tokens.push({ stem: stem, options: options });\n }\n return tokens;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n if (str[str.length - 1] === 'r') {\n result.roundingPriority = 'morePrecision';\n }\n else if (str[str.length - 1] === 's') {\n result.roundingPriority = 'lessPrecision';\n }\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n case '()':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n case '+!':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n case '()!':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n case '+?':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n case '()?':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n case '+_':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n // Engineering\n var result;\n if (stem[0] === 'E' && stem[1] === 'E') {\n result = {\n notation: 'engineering',\n };\n stem = stem.slice(2);\n }\n else if (stem[0] === 'E') {\n result = {\n notation: 'scientific',\n };\n stem = stem.slice(1);\n }\n if (result) {\n var signDisplay = stem.slice(0, 2);\n if (signDisplay === '+!') {\n result.signDisplay = 'always';\n stem = stem.slice(2);\n }\n else if (signDisplay === '+?') {\n result.signDisplay = 'exceptZero';\n stem = stem.slice(2);\n }\n if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n throw new Error('Malformed concise eng/scientific notation');\n }\n result.minimumIntegerDigits = stem.length;\n }\n return result;\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function parseNumberSkeleton(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n case '%':\n result.style = 'percent';\n continue;\n case '%x100':\n result.style = 'percent';\n result.scale = 100;\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n case ',_':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n case 'unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n case 'K':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n case 'KK':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n case 'integer-width':\n if (token.options.length > 1) {\n throw new RangeError('integer-width stems only accept a single optional option');\n }\n token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n if (g1) {\n result.minimumIntegerDigits = g2.length;\n }\n else if (g3 && g4) {\n throw new Error('We currently do not support maximum integer digits');\n }\n else if (g5) {\n throw new Error('We currently do not support exact integer digits');\n }\n return '';\n });\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n result.minimumIntegerDigits = token.stem.length;\n continue;\n }\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n // Precision\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n // precision-integer case\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (_, g1, g2, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n }\n // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n }\n // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n }\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\n }\n return '';\n });\n var opt = token.options[0];\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n if (opt === 'w') {\n result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });\n }\n else if (opt) {\n result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n }\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n if (conciseScientificAndEngineeringOpts) {\n result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n }\n }\n return result;\n}\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\".concat(SPACE_SEPARATOR_REGEX.source, \"*\"));\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(\"\".concat(SPACE_SEPARATOR_REGEX.source, \"*$\"));\nfunction createLocation(start, end) {\n return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith;\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n ? Number.isSafeInteger\n : function (n) {\n return (typeof n === 'number' &&\n isFinite(n) &&\n Math.floor(n) === n &&\n Math.abs(n) <= 0x1fffffffffffff);\n };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n /**\n * legacy Edge or Xbox One browser\n * Unicode flag support: supported\n * Pattern_Syntax support: not supported\n * See https://github.com/formatjs/formatjs/issues/2822\n */\n REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n ? // Native\n function startsWith(s, search, position) {\n return s.startsWith(search, position);\n }\n : // For IE11\n function startsWith(s, search, position) {\n return s.slice(position, position + search.length) === search;\n };\nvar fromCodePoint = hasNativeFromCodePoint\n ? String.fromCodePoint\n : // IE11\n function fromCodePoint() {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n var elements = '';\n var length = codePoints.length;\n var i = 0;\n var code;\n while (length > i) {\n code = codePoints[i++];\n if (code > 0x10ffff)\n throw RangeError(code + ' is not a valid code point');\n elements +=\n code < 0x10000\n ? String.fromCharCode(code)\n : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n }\n return elements;\n };\nvar fromEntries = \n// native\nhasNativeFromEntries\n ? Object.fromEntries\n : // Ponyfill\n function fromEntries(entries) {\n var obj = {};\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var _a = entries_1[_i], k = _a[0], v = _a[1];\n obj[k] = v;\n }\n return obj;\n };\nvar codePointAt = hasNativeCodePointAt\n ? // Native\n function codePointAt(s, index) {\n return s.codePointAt(index);\n }\n : // IE 11\n function codePointAt(s, index) {\n var size = s.length;\n if (index < 0 || index >= size) {\n return undefined;\n }\n var first = s.charCodeAt(index);\n var second;\n return first < 0xd800 ||\n first > 0xdbff ||\n index + 1 === size ||\n (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n second > 0xdfff\n ? first\n : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n };\nvar trimStart = hasTrimStart\n ? // Native\n function trimStart(s) {\n return s.trimStart();\n }\n : // Ponyfill\n function trimStart(s) {\n return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n };\nvar trimEnd = hasTrimEnd\n ? // Native\n function trimEnd(s) {\n return s.trimEnd();\n }\n : // Ponyfill\n function trimEnd(s) {\n return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n // Native\n var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var _a;\n IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n };\n}\nelse {\n // IE11\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var match = [];\n while (true) {\n var c = codePointAt(s, index);\n if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n break;\n }\n match.push(c);\n index += c >= 0x10000 ? 2 : 1;\n }\n return fromCodePoint.apply(void 0, match);\n };\n}\nvar Parser = /** @class */ (function () {\n function Parser(message, options) {\n if (options === void 0) { options = {}; }\n this.message = message;\n this.position = { offset: 0, line: 1, column: 1 };\n this.ignoreTag = !!options.ignoreTag;\n this.requiresOtherClause = !!options.requiresOtherClause;\n this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n }\n Parser.prototype.parse = function () {\n if (this.offset() !== 0) {\n throw Error('parser can only be used once');\n }\n return this.parseMessage(0, '', false);\n };\n Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n var elements = [];\n while (!this.isEOF()) {\n var char = this.char();\n if (char === 123 /* `{` */) {\n var result = this.parseArgument(nestingLevel, expectingCloseTag);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else if (char === 125 /* `}` */ && nestingLevel > 0) {\n break;\n }\n else if (char === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n var position = this.clonePosition();\n this.bump();\n elements.push({\n type: TYPE.pound,\n location: createLocation(position, this.clonePosition()),\n });\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n this.peek() === 47 // char code for '/'\n ) {\n if (expectingCloseTag) {\n break;\n }\n else {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n }\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n _isAlpha(this.peek() || 0)) {\n var result = this.parseTag(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else {\n var result = this.parseLiteral(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n }\n return { val: elements, err: null };\n };\n /**\n * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n * are accepted:\n *\n * ```\n * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"\" tagName (whitespace)* \">\"\n * tagName ::= [a-z] (PENChar)*\n * PENChar ::=\n * \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n * [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n * [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n * ```\n *\n * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n * since other tag-based engines like React allow it\n */\n Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n var startPosition = this.clonePosition();\n this.bump(); // `<`\n var tagName = this.parseTagName();\n this.bumpSpace();\n if (this.bumpIf('/>')) {\n // Self closing tag\n return {\n val: {\n type: TYPE.literal,\n value: \"<\".concat(tagName, \"/>\"),\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else if (this.bumpIf('>')) {\n var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n if (childrenResult.err) {\n return childrenResult;\n }\n var children = childrenResult.val;\n // Expecting a close tag\n var endTagStartPosition = this.clonePosition();\n if (this.bumpIf('')) {\n if (this.isEOF() || !_isAlpha(this.char())) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n var closingTagNameStartPosition = this.clonePosition();\n var closingTagName = this.parseTagName();\n if (tagName !== closingTagName) {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(closingTagNameStartPosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (!this.bumpIf('>')) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n return {\n val: {\n type: TYPE.tag,\n value: tagName,\n children: children,\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else {\n return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n }\n }\n else {\n return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n }\n };\n /**\n * This method assumes that the caller has peeked ahead for the first tag character.\n */\n Parser.prototype.parseTagName = function () {\n var startOffset = this.offset();\n this.bump(); // the first tag name character\n while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n this.bump();\n }\n return this.message.slice(startOffset, this.offset());\n };\n Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n var start = this.clonePosition();\n var value = '';\n while (true) {\n var parseQuoteResult = this.tryParseQuote(parentArgType);\n if (parseQuoteResult) {\n value += parseQuoteResult;\n continue;\n }\n var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n if (parseUnquotedResult) {\n value += parseUnquotedResult;\n continue;\n }\n var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n if (parseLeftAngleResult) {\n value += parseLeftAngleResult;\n continue;\n }\n break;\n }\n var location = createLocation(start, this.clonePosition());\n return {\n val: { type: TYPE.literal, value: value, location: location },\n err: null,\n };\n };\n Parser.prototype.tryParseLeftAngleBracket = function () {\n if (!this.isEOF() &&\n this.char() === 60 /* `<` */ &&\n (this.ignoreTag ||\n // If at the opening tag or closing tag position, bail.\n !_isAlphaOrSlash(this.peek() || 0))) {\n this.bump(); // `<`\n return '<';\n }\n return null;\n };\n /**\n * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n * a character that requires quoting (that is, \"only where needed\"), and works the same in\n * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n */\n Parser.prototype.tryParseQuote = function (parentArgType) {\n if (this.isEOF() || this.char() !== 39 /* `'` */) {\n return null;\n }\n // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n // Check if is valid escaped character\n switch (this.peek()) {\n case 39 /* `'` */:\n // double quote, should return as a single quote.\n this.bump();\n this.bump();\n return \"'\";\n // '{', '<', '>', '}'\n case 123:\n case 60:\n case 62:\n case 125:\n break;\n case 35: // '#'\n if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n break;\n }\n return null;\n default:\n return null;\n }\n this.bump(); // apostrophe\n var codePoints = [this.char()]; // escaped char\n this.bump();\n // read chars until the optional closing apostrophe is found\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch === 39 /* `'` */) {\n if (this.peek() === 39 /* `'` */) {\n codePoints.push(39);\n // Bump one more time because we need to skip 2 characters.\n this.bump();\n }\n else {\n // Optional closing apostrophe.\n this.bump();\n break;\n }\n }\n else {\n codePoints.push(ch);\n }\n this.bump();\n }\n return fromCodePoint.apply(void 0, codePoints);\n };\n Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n if (this.isEOF()) {\n return null;\n }\n var ch = this.char();\n if (ch === 60 /* `<` */ ||\n ch === 123 /* `{` */ ||\n (ch === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n (ch === 125 /* `}` */ && nestingLevel > 0)) {\n return null;\n }\n else {\n this.bump();\n return fromCodePoint(ch);\n }\n };\n Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n var openingBracePosition = this.clonePosition();\n this.bump(); // `{`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n if (this.char() === 125 /* `}` */) {\n this.bump();\n return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n // argument name\n var value = this.parseIdentifierIfPossible().value;\n if (!value) {\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n switch (this.char()) {\n // Simple argument: `{name}`\n case 125 /* `}` */: {\n this.bump(); // `}`\n return {\n val: {\n type: TYPE.argument,\n // value does not include the opening and closing braces.\n value: value,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n err: null,\n };\n }\n // Argument with options: `{name, format, ...}`\n case 44 /* `,` */: {\n this.bump(); // `,`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n }\n default:\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n };\n /**\n * Advance the parser until the end of the identifier, if it is currently on\n * an identifier character. Return an empty string otherwise.\n */\n Parser.prototype.parseIdentifierIfPossible = function () {\n var startingPosition = this.clonePosition();\n var startOffset = this.offset();\n var value = matchIdentifierAtIndex(this.message, startOffset);\n var endOffset = startOffset + value.length;\n this.bumpTo(endOffset);\n var endPosition = this.clonePosition();\n var location = createLocation(startingPosition, endPosition);\n return { value: value, location: location };\n };\n Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n var _a;\n // Parse this range:\n // {name, type, style}\n // ^---^\n var typeStartPosition = this.clonePosition();\n var argType = this.parseIdentifierIfPossible().value;\n var typeEndPosition = this.clonePosition();\n switch (argType) {\n case '':\n // Expecting a style string number, date, time, plural, selectordinal, or select.\n return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n case 'number':\n case 'date':\n case 'time': {\n // Parse this range:\n // {name, number, style}\n // ^-------^\n this.bumpSpace();\n var styleAndLocation = null;\n if (this.bumpIf(',')) {\n this.bumpSpace();\n var styleStartPosition = this.clonePosition();\n var result = this.parseSimpleArgStyleIfPossible();\n if (result.err) {\n return result;\n }\n var style = trimEnd(result.val);\n if (style.length === 0) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n styleAndLocation = { style: style, styleLocation: styleLocation };\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_1 = createLocation(openingBracePosition, this.clonePosition());\n // Extract style or skeleton\n if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n // Skeleton starts with `::`.\n var skeleton = trimStart(styleAndLocation.style.slice(2));\n if (argType === 'number') {\n var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n if (result.err) {\n return result;\n }\n return {\n val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n err: null,\n };\n }\n else {\n if (skeleton.length === 0) {\n return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n }\n var style = {\n type: SKELETON_TYPE.dateTime,\n pattern: skeleton,\n location: styleAndLocation.styleLocation,\n parsedOptions: this.shouldParseSkeletons\n ? parseDateTimeSkeleton(skeleton)\n : {},\n };\n var type = argType === 'date' ? TYPE.date : TYPE.time;\n return {\n val: { type: type, value: value, location: location_1, style: style },\n err: null,\n };\n }\n }\n // Regular style or no style.\n return {\n val: {\n type: argType === 'number'\n ? TYPE.number\n : argType === 'date'\n ? TYPE.date\n : TYPE.time,\n value: value,\n location: location_1,\n style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n },\n err: null,\n };\n }\n case 'plural':\n case 'selectordinal':\n case 'select': {\n // Parse this range:\n // {name, plural, options}\n // ^---------^\n var typeEndPosition_1 = this.clonePosition();\n this.bumpSpace();\n if (!this.bumpIf(',')) {\n return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n }\n this.bumpSpace();\n // Parse offset:\n // {name, plural, offset:1, options}\n // ^-----^\n //\n // or the first option:\n //\n // {name, plural, one {...} other {...}}\n // ^--^\n var identifierAndLocation = this.parseIdentifierIfPossible();\n var pluralOffset = 0;\n if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n if (!this.bumpIf(':')) {\n return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n this.bumpSpace();\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n if (result.err) {\n return result;\n }\n // Parse another identifier for option parsing\n this.bumpSpace();\n identifierAndLocation = this.parseIdentifierIfPossible();\n pluralOffset = result.val;\n }\n var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n if (optionsResult.err) {\n return optionsResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_2 = createLocation(openingBracePosition, this.clonePosition());\n if (argType === 'select') {\n return {\n val: {\n type: TYPE.select,\n value: value,\n options: fromEntries(optionsResult.val),\n location: location_2,\n },\n err: null,\n };\n }\n else {\n return {\n val: {\n type: TYPE.plural,\n value: value,\n options: fromEntries(optionsResult.val),\n offset: pluralOffset,\n pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n location: location_2,\n },\n err: null,\n };\n }\n }\n default:\n return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n }\n };\n Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n // Parse: {value, number, ::currency/GBP }\n //\n if (this.isEOF() || this.char() !== 125 /* `}` */) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bump(); // `}`\n return { val: true, err: null };\n };\n /**\n * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n */\n Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n var nestedBraces = 0;\n var startPosition = this.clonePosition();\n while (!this.isEOF()) {\n var ch = this.char();\n switch (ch) {\n case 39 /* `'` */: {\n // Treat apostrophe as quoting but include it in the style part.\n // Find the end of the quoted literal text.\n this.bump();\n var apostrophePosition = this.clonePosition();\n if (!this.bumpUntil(\"'\")) {\n return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n }\n this.bump();\n break;\n }\n case 123 /* `{` */: {\n nestedBraces += 1;\n this.bump();\n break;\n }\n case 125 /* `}` */: {\n if (nestedBraces > 0) {\n nestedBraces -= 1;\n }\n else {\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n }\n break;\n }\n default:\n this.bump();\n break;\n }\n }\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n };\n Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n var tokens = [];\n try {\n tokens = parseNumberSkeletonFromString(skeleton);\n }\n catch (e) {\n return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n }\n return {\n val: {\n type: SKELETON_TYPE.number,\n tokens: tokens,\n location: location,\n parsedOptions: this.shouldParseSkeletons\n ? parseNumberSkeleton(tokens)\n : {},\n },\n err: null,\n };\n };\n /**\n * @param nesting_level The current nesting level of messages.\n * This can be positive when parsing message fragment in select or plural argument options.\n * @param parent_arg_type The parent argument's type.\n * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n * the argument. It is a by-product of a previous parsing attempt.\n * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n * between a pair of opening and closing tags. The nested message will not parse beyond\n * the closing tag boundary.\n */\n Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n var _a;\n var hasOtherClause = false;\n var options = [];\n var parsedSelectors = new Set();\n var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n // Parse:\n // one {one apple}\n // ^--^\n while (true) {\n if (selector.length === 0) {\n var startPosition = this.clonePosition();\n if (parentArgType !== 'select' && this.bumpIf('=')) {\n // Try parse `={number}` selector\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n if (result.err) {\n return result;\n }\n selectorLocation = createLocation(startPosition, this.clonePosition());\n selector = this.message.slice(startPosition.offset, this.offset());\n }\n else {\n break;\n }\n }\n // Duplicate selector clauses\n if (parsedSelectors.has(selector)) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n }\n if (selector === 'other') {\n hasOtherClause = true;\n }\n // Parse:\n // one {one apple}\n // ^----------^\n this.bumpSpace();\n var openingBracePosition = this.clonePosition();\n if (!this.bumpIf('{')) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n if (fragmentResult.err) {\n return fragmentResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n options.push([\n selector,\n {\n value: fragmentResult.val,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n ]);\n // Keep track of the existing selectors\n parsedSelectors.add(selector);\n // Prep next selector clause.\n this.bumpSpace();\n (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n }\n if (options.length === 0) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n }\n if (this.requiresOtherClause && !hasOtherClause) {\n return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n return { val: options, err: null };\n };\n Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n var sign = 1;\n var startingPosition = this.clonePosition();\n if (this.bumpIf('+')) {\n }\n else if (this.bumpIf('-')) {\n sign = -1;\n }\n var hasDigits = false;\n var decimal = 0;\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n hasDigits = true;\n decimal = decimal * 10 + (ch - 48);\n this.bump();\n }\n else {\n break;\n }\n }\n var location = createLocation(startingPosition, this.clonePosition());\n if (!hasDigits) {\n return this.error(expectNumberError, location);\n }\n decimal *= sign;\n if (!isSafeInteger(decimal)) {\n return this.error(invalidNumberError, location);\n }\n return { val: decimal, err: null };\n };\n Parser.prototype.offset = function () {\n return this.position.offset;\n };\n Parser.prototype.isEOF = function () {\n return this.offset() === this.message.length;\n };\n Parser.prototype.clonePosition = function () {\n // This is much faster than `Object.assign` or spread.\n return {\n offset: this.position.offset,\n line: this.position.line,\n column: this.position.column,\n };\n };\n /**\n * Return the code point at the current position of the parser.\n * Throws if the index is out of bound.\n */\n Parser.prototype.char = function () {\n var offset = this.position.offset;\n if (offset >= this.message.length) {\n throw Error('out of bound');\n }\n var code = codePointAt(this.message, offset);\n if (code === undefined) {\n throw Error(\"Offset \".concat(offset, \" is at invalid UTF-16 code unit boundary\"));\n }\n return code;\n };\n Parser.prototype.error = function (kind, location) {\n return {\n val: null,\n err: {\n kind: kind,\n message: this.message,\n location: location,\n },\n };\n };\n /** Bump the parser to the next UTF-16 code unit. */\n Parser.prototype.bump = function () {\n if (this.isEOF()) {\n return;\n }\n var code = this.char();\n if (code === 10 /* '\\n' */) {\n this.position.line += 1;\n this.position.column = 1;\n this.position.offset += 1;\n }\n else {\n this.position.column += 1;\n // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n this.position.offset += code < 0x10000 ? 1 : 2;\n }\n };\n /**\n * If the substring starting at the current position of the parser has\n * the given prefix, then bump the parser to the character immediately\n * following the prefix and return true. Otherwise, don't bump the parser\n * and return false.\n */\n Parser.prototype.bumpIf = function (prefix) {\n if (startsWith(this.message, prefix, this.offset())) {\n for (var i = 0; i < prefix.length; i++) {\n this.bump();\n }\n return true;\n }\n return false;\n };\n /**\n * Bump the parser until the pattern character is found and return `true`.\n * Otherwise bump to the end of the file and return `false`.\n */\n Parser.prototype.bumpUntil = function (pattern) {\n var currentOffset = this.offset();\n var index = this.message.indexOf(pattern, currentOffset);\n if (index >= 0) {\n this.bumpTo(index);\n return true;\n }\n else {\n this.bumpTo(this.message.length);\n return false;\n }\n };\n /**\n * Bump the parser to the target offset.\n * If target offset is beyond the end of the input, bump the parser to the end of the input.\n */\n Parser.prototype.bumpTo = function (targetOffset) {\n if (this.offset() > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" must be greater than or equal to the current offset \").concat(this.offset()));\n }\n targetOffset = Math.min(targetOffset, this.message.length);\n while (true) {\n var offset = this.offset();\n if (offset === targetOffset) {\n break;\n }\n if (offset > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" is at invalid UTF-16 code unit boundary\"));\n }\n this.bump();\n if (this.isEOF()) {\n break;\n }\n }\n };\n /** advance the parser through all whitespace to the next non-whitespace code unit. */\n Parser.prototype.bumpSpace = function () {\n while (!this.isEOF() && _isWhiteSpace(this.char())) {\n this.bump();\n }\n };\n /**\n * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n * If the input has been exhausted, then this returns null.\n */\n Parser.prototype.peek = function () {\n if (this.isEOF()) {\n return null;\n }\n var code = this.char();\n var offset = this.offset();\n var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n return ((codepoint >= 97 && codepoint <= 122) ||\n (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n return (c === 45 /* '-' */ ||\n c === 46 /* '.' */ ||\n (c >= 48 && c <= 57) /* 0..9 */ ||\n c === 95 /* '_' */ ||\n (c >= 97 && c <= 122) /** a..z */ ||\n (c >= 65 && c <= 90) /* A..Z */ ||\n c == 0xb7 ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x203f && c <= 0x2040) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n return ((c >= 0x0009 && c <= 0x000d) ||\n c === 0x0020 ||\n c === 0x0085 ||\n (c >= 0x200e && c <= 0x200f) ||\n c === 0x2028 ||\n c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n return ((c >= 0x0021 && c <= 0x0023) ||\n c === 0x0024 ||\n (c >= 0x0025 && c <= 0x0027) ||\n c === 0x0028 ||\n c === 0x0029 ||\n c === 0x002a ||\n c === 0x002b ||\n c === 0x002c ||\n c === 0x002d ||\n (c >= 0x002e && c <= 0x002f) ||\n (c >= 0x003a && c <= 0x003b) ||\n (c >= 0x003c && c <= 0x003e) ||\n (c >= 0x003f && c <= 0x0040) ||\n c === 0x005b ||\n c === 0x005c ||\n c === 0x005d ||\n c === 0x005e ||\n c === 0x0060 ||\n c === 0x007b ||\n c === 0x007c ||\n c === 0x007d ||\n c === 0x007e ||\n c === 0x00a1 ||\n (c >= 0x00a2 && c <= 0x00a5) ||\n c === 0x00a6 ||\n c === 0x00a7 ||\n c === 0x00a9 ||\n c === 0x00ab ||\n c === 0x00ac ||\n c === 0x00ae ||\n c === 0x00b0 ||\n c === 0x00b1 ||\n c === 0x00b6 ||\n c === 0x00bb ||\n c === 0x00bf ||\n c === 0x00d7 ||\n c === 0x00f7 ||\n (c >= 0x2010 && c <= 0x2015) ||\n (c >= 0x2016 && c <= 0x2017) ||\n c === 0x2018 ||\n c === 0x2019 ||\n c === 0x201a ||\n (c >= 0x201b && c <= 0x201c) ||\n c === 0x201d ||\n c === 0x201e ||\n c === 0x201f ||\n (c >= 0x2020 && c <= 0x2027) ||\n (c >= 0x2030 && c <= 0x2038) ||\n c === 0x2039 ||\n c === 0x203a ||\n (c >= 0x203b && c <= 0x203e) ||\n (c >= 0x2041 && c <= 0x2043) ||\n c === 0x2044 ||\n c === 0x2045 ||\n c === 0x2046 ||\n (c >= 0x2047 && c <= 0x2051) ||\n c === 0x2052 ||\n c === 0x2053 ||\n (c >= 0x2055 && c <= 0x205e) ||\n (c >= 0x2190 && c <= 0x2194) ||\n (c >= 0x2195 && c <= 0x2199) ||\n (c >= 0x219a && c <= 0x219b) ||\n (c >= 0x219c && c <= 0x219f) ||\n c === 0x21a0 ||\n (c >= 0x21a1 && c <= 0x21a2) ||\n c === 0x21a3 ||\n (c >= 0x21a4 && c <= 0x21a5) ||\n c === 0x21a6 ||\n (c >= 0x21a7 && c <= 0x21ad) ||\n c === 0x21ae ||\n (c >= 0x21af && c <= 0x21cd) ||\n (c >= 0x21ce && c <= 0x21cf) ||\n (c >= 0x21d0 && c <= 0x21d1) ||\n c === 0x21d2 ||\n c === 0x21d3 ||\n c === 0x21d4 ||\n (c >= 0x21d5 && c <= 0x21f3) ||\n (c >= 0x21f4 && c <= 0x22ff) ||\n (c >= 0x2300 && c <= 0x2307) ||\n c === 0x2308 ||\n c === 0x2309 ||\n c === 0x230a ||\n c === 0x230b ||\n (c >= 0x230c && c <= 0x231f) ||\n (c >= 0x2320 && c <= 0x2321) ||\n (c >= 0x2322 && c <= 0x2328) ||\n c === 0x2329 ||\n c === 0x232a ||\n (c >= 0x232b && c <= 0x237b) ||\n c === 0x237c ||\n (c >= 0x237d && c <= 0x239a) ||\n (c >= 0x239b && c <= 0x23b3) ||\n (c >= 0x23b4 && c <= 0x23db) ||\n (c >= 0x23dc && c <= 0x23e1) ||\n (c >= 0x23e2 && c <= 0x2426) ||\n (c >= 0x2427 && c <= 0x243f) ||\n (c >= 0x2440 && c <= 0x244a) ||\n (c >= 0x244b && c <= 0x245f) ||\n (c >= 0x2500 && c <= 0x25b6) ||\n c === 0x25b7 ||\n (c >= 0x25b8 && c <= 0x25c0) ||\n c === 0x25c1 ||\n (c >= 0x25c2 && c <= 0x25f7) ||\n (c >= 0x25f8 && c <= 0x25ff) ||\n (c >= 0x2600 && c <= 0x266e) ||\n c === 0x266f ||\n (c >= 0x2670 && c <= 0x2767) ||\n c === 0x2768 ||\n c === 0x2769 ||\n c === 0x276a ||\n c === 0x276b ||\n c === 0x276c ||\n c === 0x276d ||\n c === 0x276e ||\n c === 0x276f ||\n c === 0x2770 ||\n c === 0x2771 ||\n c === 0x2772 ||\n c === 0x2773 ||\n c === 0x2774 ||\n c === 0x2775 ||\n (c >= 0x2794 && c <= 0x27bf) ||\n (c >= 0x27c0 && c <= 0x27c4) ||\n c === 0x27c5 ||\n c === 0x27c6 ||\n (c >= 0x27c7 && c <= 0x27e5) ||\n c === 0x27e6 ||\n c === 0x27e7 ||\n c === 0x27e8 ||\n c === 0x27e9 ||\n c === 0x27ea ||\n c === 0x27eb ||\n c === 0x27ec ||\n c === 0x27ed ||\n c === 0x27ee ||\n c === 0x27ef ||\n (c >= 0x27f0 && c <= 0x27ff) ||\n (c >= 0x2800 && c <= 0x28ff) ||\n (c >= 0x2900 && c <= 0x2982) ||\n c === 0x2983 ||\n c === 0x2984 ||\n c === 0x2985 ||\n c === 0x2986 ||\n c === 0x2987 ||\n c === 0x2988 ||\n c === 0x2989 ||\n c === 0x298a ||\n c === 0x298b ||\n c === 0x298c ||\n c === 0x298d ||\n c === 0x298e ||\n c === 0x298f ||\n c === 0x2990 ||\n c === 0x2991 ||\n c === 0x2992 ||\n c === 0x2993 ||\n c === 0x2994 ||\n c === 0x2995 ||\n c === 0x2996 ||\n c === 0x2997 ||\n c === 0x2998 ||\n (c >= 0x2999 && c <= 0x29d7) ||\n c === 0x29d8 ||\n c === 0x29d9 ||\n c === 0x29da ||\n c === 0x29db ||\n (c >= 0x29dc && c <= 0x29fb) ||\n c === 0x29fc ||\n c === 0x29fd ||\n (c >= 0x29fe && c <= 0x2aff) ||\n (c >= 0x2b00 && c <= 0x2b2f) ||\n (c >= 0x2b30 && c <= 0x2b44) ||\n (c >= 0x2b45 && c <= 0x2b46) ||\n (c >= 0x2b47 && c <= 0x2b4c) ||\n (c >= 0x2b4d && c <= 0x2b73) ||\n (c >= 0x2b74 && c <= 0x2b75) ||\n (c >= 0x2b76 && c <= 0x2b95) ||\n c === 0x2b96 ||\n (c >= 0x2b97 && c <= 0x2bff) ||\n (c >= 0x2e00 && c <= 0x2e01) ||\n c === 0x2e02 ||\n c === 0x2e03 ||\n c === 0x2e04 ||\n c === 0x2e05 ||\n (c >= 0x2e06 && c <= 0x2e08) ||\n c === 0x2e09 ||\n c === 0x2e0a ||\n c === 0x2e0b ||\n c === 0x2e0c ||\n c === 0x2e0d ||\n (c >= 0x2e0e && c <= 0x2e16) ||\n c === 0x2e17 ||\n (c >= 0x2e18 && c <= 0x2e19) ||\n c === 0x2e1a ||\n c === 0x2e1b ||\n c === 0x2e1c ||\n c === 0x2e1d ||\n (c >= 0x2e1e && c <= 0x2e1f) ||\n c === 0x2e20 ||\n c === 0x2e21 ||\n c === 0x2e22 ||\n c === 0x2e23 ||\n c === 0x2e24 ||\n c === 0x2e25 ||\n c === 0x2e26 ||\n c === 0x2e27 ||\n c === 0x2e28 ||\n c === 0x2e29 ||\n (c >= 0x2e2a && c <= 0x2e2e) ||\n c === 0x2e2f ||\n (c >= 0x2e30 && c <= 0x2e39) ||\n (c >= 0x2e3a && c <= 0x2e3b) ||\n (c >= 0x2e3c && c <= 0x2e3f) ||\n c === 0x2e40 ||\n c === 0x2e41 ||\n c === 0x2e42 ||\n (c >= 0x2e43 && c <= 0x2e4f) ||\n (c >= 0x2e50 && c <= 0x2e51) ||\n c === 0x2e52 ||\n (c >= 0x2e53 && c <= 0x2e7f) ||\n (c >= 0x3001 && c <= 0x3003) ||\n c === 0x3008 ||\n c === 0x3009 ||\n c === 0x300a ||\n c === 0x300b ||\n c === 0x300c ||\n c === 0x300d ||\n c === 0x300e ||\n c === 0x300f ||\n c === 0x3010 ||\n c === 0x3011 ||\n (c >= 0x3012 && c <= 0x3013) ||\n c === 0x3014 ||\n c === 0x3015 ||\n c === 0x3016 ||\n c === 0x3017 ||\n c === 0x3018 ||\n c === 0x3019 ||\n c === 0x301a ||\n c === 0x301b ||\n c === 0x301c ||\n c === 0x301d ||\n (c >= 0x301e && c <= 0x301f) ||\n c === 0x3020 ||\n c === 0x3030 ||\n c === 0xfd3e ||\n c === 0xfd3f ||\n (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n els.forEach(function (el) {\n delete el.location;\n if (isSelectElement(el) || isPluralElement(el)) {\n for (var k in el.options) {\n delete el.options[k].location;\n pruneLocation(el.options[k].value);\n }\n }\n else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n delete el.style.location;\n }\n else if ((isDateElement(el) || isTimeElement(el)) &&\n isDateTimeSkeleton(el.style)) {\n delete el.style.location;\n }\n else if (isTagElement(el)) {\n pruneLocation(el.children);\n }\n });\n}\nexport function parse(message, opts) {\n if (opts === void 0) { opts = {}; }\n opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n var result = new Parser(message, opts).parse();\n if (result.err) {\n var error = SyntaxError(ErrorKind[result.err.kind]);\n // @ts-expect-error Assign to error object\n error.location = result.err.location;\n // @ts-expect-error Assign to error object\n error.originalMessage = result.err.message;\n throw error;\n }\n if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n pruneLocation(result.val);\n }\n return result.val;\n}\nexport * from './types';\n","//\n// Main\n//\nexport default function memoize(fn, options) {\n var cache = options && options.cache ? options.cache : cacheDefault;\n var serializer = options && options.serializer ? options.serializer : serializerDefault;\n var strategy = options && options.strategy ? options.strategy : strategyDefault;\n return strategy(fn, {\n cache: cache,\n serializer: serializer,\n });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3);\n var cacheKey = serializer(args);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic;\n return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nfunction ObjectWithoutPrototypeCache() {\n this.cache = Object.create(null);\n}\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key];\n};\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value;\n};\nvar cacheDefault = {\n create: function create() {\n // @ts-ignore\n return new ObjectWithoutPrototypeCache();\n },\n};\nexport var strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic,\n};\n","import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n // When value supplied is invalid\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n // When we need specific Intl API but it's not available\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \".concat(this.code, \"] \").concat(this.message);\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\".concat(variableId, \"\\\": \\\"\").concat(value, \"\\\". Options are \\\"\").concat(Object.keys(options).join('\", \"'), \"\\\"\"), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n __extends(InvalidValueTypeError, _super);\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\".concat(value, \"\\\" must be of type \").concat(type), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n __extends(MissingValueError, _super);\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\".concat(variableId, \"\\\" was not provided to the string \\\"\").concat(originalMessage, \"\\\"\"), ErrorCode.MISSING_VALUE, originalMessage) || this;\n }\n return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, isTagElement, } from '@formatjs/icu-messageformat-parser';\nimport { MissingValueError, InvalidValueError, ErrorCode, FormatError, InvalidValueTypeError, } from './error';\nexport var PART_TYPE;\n(function (PART_TYPE) {\n PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\nfunction mergeLiteral(parts) {\n if (parts.length < 2) {\n return parts;\n }\n return parts.reduce(function (all, part) {\n var lastPart = all[all.length - 1];\n if (!lastPart ||\n lastPart.type !== PART_TYPE.literal ||\n part.type !== PART_TYPE.literal) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\nexport function isFormatXMLElementFn(el) {\n return typeof el === 'function';\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [\n {\n type: PART_TYPE.literal,\n value: els[0].value,\n },\n ];\n }\n var result = [];\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i];\n // Exit early for string parts.\n if (isLiteralElement(el)) {\n result.push({\n type: PART_TYPE.literal,\n value: el.value,\n });\n continue;\n }\n // TODO: should this part be literal type?\n // Replace `#` in plural rules with the actual numeric value.\n if (isPoundElement(el)) {\n if (typeof currentPluralValue === 'number') {\n result.push({\n type: PART_TYPE.literal,\n value: formatters.getNumberFormat(locales).format(currentPluralValue),\n });\n }\n continue;\n }\n var varName = el.value;\n // Enforce that all required values are provided by the caller.\n if (!(values && varName in values)) {\n throw new MissingValueError(varName, originalMessage);\n }\n var value = values[varName];\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (isDateElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.date[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTimeElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.time[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isNumberElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.number[el.style]\n : isNumberSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n if (style && style.scale) {\n value =\n value *\n (style.scale || 1);\n }\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTagElement(el)) {\n var children = el.children, value_1 = el.value;\n var formatFn = values[value_1];\n if (!isFormatXMLElementFn(formatFn)) {\n throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n }\n var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n var chunks = formatFn(parts.map(function (p) { return p.value; }));\n if (!Array.isArray(chunks)) {\n chunks = [chunks];\n }\n result.push.apply(result, chunks.map(function (c) {\n return {\n type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: c,\n };\n }));\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (isPluralElement(el)) {\n var opt = el.options[\"=\".concat(value)];\n if (!opt) {\n if (!Intl.PluralRules) {\n throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API, originalMessage);\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { __assign, __spreadArray } from \"tslib\";\nimport { parse } from '@formatjs/icu-messageformat-parser';\nimport memoize, { strategies } from '@formatjs/fast-memoize';\nimport { formatToParts, PART_TYPE, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n if (!c2) {\n return c1;\n }\n return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n return all;\n }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n if (!configs) {\n return defaultConfig;\n }\n return Object.keys(defaultConfig).reduce(function (all, k) {\n all[k] = mergeConfig(defaultConfig[k], configs[k]);\n return all;\n }, __assign({}, defaultConfig));\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\nfunction createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n }),\n getDateTimeFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n }),\n };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n var _this = this;\n if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n this.formatterCache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n };\n this.format = function (values) {\n var parts = _this.formatToParts(values);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n var result = parts.reduce(function (all, part) {\n if (!all.length ||\n part.type !== PART_TYPE.literal ||\n typeof all[all.length - 1] !== 'string') {\n all.push(part.value);\n }\n else {\n all[all.length - 1] += part.value;\n }\n return all;\n }, []);\n if (result.length <= 1) {\n return result[0] || '';\n }\n return result;\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.resolvedOptions = function () { return ({\n locale: Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n }); };\n this.getAst = function () { return _this.ast; };\n if (typeof message === 'string') {\n this.message = message;\n if (!IntlMessageFormat.__parse) {\n throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n }\n // Parse string messages into an AST.\n this.ast = IntlMessageFormat.__parse(message, {\n ignoreTag: opts === null || opts === void 0 ? void 0 : opts.ignoreTag,\n });\n }\n else {\n this.ast = message;\n }\n if (!Array.isArray(this.ast)) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n // Defined first because it's used to build the format pattern.\n this.locales = locales;\n this.formatters =\n (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n }\n Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n get: function () {\n if (!IntlMessageFormat.memoizedDefaultLocale) {\n IntlMessageFormat.memoizedDefaultLocale =\n new Intl.NumberFormat().resolvedOptions().locale;\n }\n return IntlMessageFormat.memoizedDefaultLocale;\n },\n enumerable: false,\n configurable: true\n });\n IntlMessageFormat.memoizedDefaultLocale = null;\n IntlMessageFormat.__parse = parse;\n // Default format options used as the prototype of the `formats` provided to the\n // constructor. These are used when constructing the internal Intl.NumberFormat\n // and Intl.DateTimeFormat instances.\n IntlMessageFormat.formats = {\n number: {\n integer: {\n maximumFractionDigits: 0,\n },\n currency: {\n style: 'currency',\n },\n percent: {\n style: 'percent',\n },\n },\n date: {\n short: {\n month: 'numeric',\n day: 'numeric',\n year: '2-digit',\n },\n medium: {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n full: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n },\n time: {\n short: {\n hour: 'numeric',\n minute: 'numeric',\n },\n medium: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n },\n long: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n full: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n },\n };\n return IntlMessageFormat;\n}());\nexport { IntlMessageFormat };\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { IntlMessageFormat } from './src/core';\nexport * from './src/formatters';\nexport * from './src/core';\nexport * from './src/error';\nexport default IntlMessageFormat;\n","import{writable as e,derived as n}from\"svelte/store\";import t from\"deepmerge\";import o from\"intl-messageformat\";const r={},i=(e,n,t)=>t?(n in r||(r[n]={}),e in r[n]||(r[n][e]=t),t):t,l=(e,n)=>{if(null==n)return;if(n in r&&e in r[n])return r[n][e];const t=E(n);for(let o=0;o0){const n=t.slice(e,t.length).join(\".\");if(n in o){o=o[n];break}}o=o[t[e]]}else o=void 0;return o}(function(e){return a[e]||null}(e),n)}function m(e,...n){delete r[e],s.update((o=>(o[e]=t.all([o[e]||{},...n]),o)))}const f=n([s],(([e])=>Object.keys(e)));s.subscribe((e=>a=e));const d={};function g(e){return d[e]}function w(e){return null!=e&&E(e).some((e=>{var n;return null===(n=g(e))||void 0===n?void 0:n.size}))}function h(e,n){return Promise.all(n.map((n=>(function(e,n){d[e].delete(n),0===d[e].size&&delete d[e]}(e,n),n().then((e=>e.default||e)))))).then((n=>m(e,...n)))}const p={};function b(e){if(!w(e))return e in p?p[e]:Promise.resolve();const n=function(e){return E(e).map((e=>{const n=g(e);return[e,n?[...n]:[]]})).filter((([,e])=>e.length>0))}(e);return p[e]=Promise.all(n.map((([e,n])=>h(e,n)))).then((()=>{if(w(e))return b(e);delete p[e]})),p[e]}function y(e,n){g(e)||function(e){d[e]=new Set}(e);const t=g(e);g(e).has(n)||(u(e)||s.update((n=>(n[e]={},n))),t.add(n))}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */function v(e,n){var t={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&n.indexOf(o)<0&&(t[o]=e[o]);if(null!=e&&\"function\"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);rt.slice(0,n+1).join(\"-\"))).reverse()}function E(e,n=j().fallbackLocale){const t=x(e);return n?[...new Set([...t,...x(n)])]:t}function D(){return null!=L?L:void 0}T.subscribe((e=>{L=null!=e?e:void 0,\"undefined\"!=typeof window&&null!=e&&document.documentElement.setAttribute(\"lang\",e)}));const M=Object.assign(Object.assign({},T),{set:e=>{if(e&&function(e){if(null==e)return;const n=E(e);for(let e=0;ek.set(!0)),n):k.set(!0),b(e).then((()=>{T.set(e)})).finally((()=>{clearTimeout(t),k.set(!1)}))}return T.set(e)}}),P=(e,n)=>{const t=e.split(\"&\").find((e=>0===e.indexOf(`${n}=`)));return t?t.split(\"=\").pop():null},S=(e,n)=>{const t=n.exec(e);return t&&t[1]||null},N=e=>\"undefined\"==typeof window?null:S(window.location.hostname,e),A=e=>\"undefined\"==typeof window?null:S(window.location.pathname,e),I=()=>\"undefined\"==typeof window?null:window.navigator.language||window.navigator.languages[0],F=e=>\"undefined\"==typeof window?null:P(window.location.search.substr(1),e),z=e=>\"undefined\"==typeof window?null:P(window.location.hash.substr(1),e),Z=e=>{const n=Object.create(null);return t=>{const o=JSON.stringify(t);return o in n?n[o]:n[o]=e(t)}},C=(e,n)=>{const{formats:t}=j();if(e in t&&n in t[e])return t[e][n];throw new Error(`[svelte-i18n] Unknown \"${n}\" ${e} format.`)},G=Z((e=>{var{locale:n,format:t}=e,o=v(e,[\"locale\",\"format\"]);if(null==n)throw new Error('[svelte-i18n] A \"locale\" must be set to format numbers');return t&&(o=C(\"number\",t)),new Intl.NumberFormat(n,o)})),J=Z((e=>{var{locale:n,format:t}=e,o=v(e,[\"locale\",\"format\"]);if(null==n)throw new Error('[svelte-i18n] A \"locale\" must be set to format dates');return t?o=C(\"date\",t):0===Object.keys(o).length&&(o=C(\"date\",\"short\")),new Intl.DateTimeFormat(n,o)})),U=Z((e=>{var{locale:n,format:t}=e,o=v(e,[\"locale\",\"format\"]);if(null==n)throw new Error('[svelte-i18n] A \"locale\" must be set to format time values');return t?o=C(\"time\",t):0===Object.keys(o).length&&(o=C(\"time\",\"short\")),new Intl.DateTimeFormat(n,o)})),_=(e={})=>{var{locale:n=D()}=e,t=v(e,[\"locale\"]);return G(Object.assign({locale:n},t))},q=(e={})=>{var{locale:n=D()}=e,t=v(e,[\"locale\"]);return J(Object.assign({locale:n},t))},B=(e={})=>{var{locale:n=D()}=e,t=v(e,[\"locale\"]);return U(Object.assign({locale:n},t))},H=Z(((e,n=D())=>new o(e,n,j().formats,{ignoreTag:j().ignoreTag}))),K=(e,n={})=>{let t=n;\"object\"==typeof e&&(t=e,e=t.id);const{values:o,locale:r=D(),default:i}=t;if(null==r)throw new Error(\"[svelte-i18n] Cannot format a message without first setting the initial locale.\");let a=l(e,r);if(a){if(\"string\"!=typeof a)return console.warn(`[svelte-i18n] Message with id \"${e}\" must be of type \"string\", found: \"${typeof a}\". Gettin its value through the \"$format\" method is deprecated; use the \"json\" method instead.`),a}else j().warnOnMissingMessages&&console.warn(`[svelte-i18n] The message \"${e}\" was not found in \"${E(r).join('\", \"')}\".${w(D())?\"\\n\\nNote: there are at least one loader still registered to this locale that wasn't executed.\":\"\"}`),a=null!=i?i:e;if(!o)return a;let s=a;try{s=H(a,r).format(o)}catch(n){console.warn(`[svelte-i18n] Message \"${e}\" has syntax error:`,n.message)}return s},Q=(e,n)=>B(n).format(e),R=(e,n)=>q(n).format(e),V=(e,n)=>_(n).format(e),W=(e,n=D())=>l(e,n),X=n([M,s],(()=>K)),Y=n([M],(()=>Q)),ee=n([M],(()=>R)),ne=n([M],(()=>V)),te=n([M,s],(()=>W));function oe(e){return e}function re(e){return b(e||D()||j().initialLocale)}export{X as _,m as addMessages,ee as date,oe as defineMessages,s as dictionary,X as format,q as getDateFormatter,z as getLocaleFromHash,N as getLocaleFromHostname,I as getLocaleFromNavigator,A as getLocaleFromPathname,F as getLocaleFromQueryString,H as getMessageFormatter,_ as getNumberFormatter,B as getTimeFormatter,$ as init,k as isLoading,te as json,M as locale,f as locales,ne as number,y as register,X as t,Y as time,re as waitLocale};\n","export const forEach = (selector, callback) => {\n Array.from(document.querySelectorAll(selector)).forEach(element => {\n callback(element);\n });\n};\nexport function ra(array) {\n return array[Math.floor(Math.random() * array.length)];\n}\n// return random value from weighted array\nexport function rw(object, save = true) {\n if (object.array) {\n return ra(object.array);\n }\n const array = [];\n for (const key in object) {\n for (let i = 0; i < object[key]; i++) {\n array.push(key);\n }\n }\n if (save) {\n Object.defineProperty(object, \"array\", {\n enumerable: false,\n configurable: true,\n writable: false,\n value: array\n });\n }\n return ra(array);\n}\nexport function P(probability) {\n return Math.random() < probability;\n}\nexport function camelize(str) {\n return str\n .toLowerCase()\n .replace(/\\.[^/.]+$/, \"\") // remove extension\n .replace(/[()]/g, \"\") // remove parentheses\n .replace(/[^a-zA-Z0-9]+(.)/g, (m, c) => c.toUpperCase())\n .replace(/^[0-9]/, \"_\"); // first char should not be a number\n}\nexport const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1);\nexport function link(url, text) {\n return `${text} `;\n}\nexport function openURL(url) {\n return window.open(url, \"_blank\");\n}\nexport const minmax = (value, min, max) => {\n return Math.max(Math.min(Math.round(value), max), min);\n};\nexport const fetcher = (url) => () => {\n return fetch(url).then(result => result.json());\n};\n","export const shields = {\n types: {basic: 10, regional: 2, historical: 1, specific: 1, banner: 1, simple: 2, fantasy: 1, middleEarth: 0},\n basic: {heater: 12, spanish: 6, french: 1},\n regional: {horsehead: 1, horsehead2: 1, polish: 1, hessen: 1, swiss: 1},\n historical: {boeotian: 1, roman: 2, kite: 1, oldFrench: 5, renaissance: 2, baroque: 2},\n specific: {targe: 1, targe2: 0, pavise: 5, wedged: 10},\n banner: {flag: 1, pennon: 0, guidon: 0, banner: 0, dovetail: 1, gonfalon: 5, pennant: 0},\n simple: {round: 12, oval: 6, vesicaPiscis: 1, square: 1, diamond: 2, no: 0},\n middleEarth: {noldor: 1, gondor: 1, easterling: 1, erebor: 1, ironHills: 1, urukHai: 1, moriaOrc: 1},\n fantasy: {fantasy1: 2, fantasy2: 2, fantasy3: 1, fantasy4: 1, fantasy5: 3}\n};\n\nexport const shieldTypes = [\"basic\", \"regional\", \"historical\", \"specific\", \"banner\", \"simple\", \"middleEarth\", \"fantasy\"];\n\nexport const shieldPaths = {\n heater: \"m25,25 h150 v50 a150,150,0,0,1,-75,125 a150,150,0,0,1,-75,-125 z\",\n spanish: \"m25,25 h150 v100 a75,75,0,0,1,-150,0 z\",\n french: \"m 25,25 h 150 v 139.15 c 0,41.745 -66,18.15 -75,36.3 -9,-18.15 -75,5.445 -75,-36.3 v 0 z\",\n horsehead:\n \"m 20,40 c 0,60 40,80 40,100 0,10 -4,15 -0.35,30 C 65,185.7 81,200 100,200 c 19.1,0 35.3,-14.6 40.5,-30.4 C 144.2,155 140,150 140,140 140,120 180,100 180,40 142.72,40 150,15 100,15 55,15 55,40 20,40 Z\",\n horsehead2: \"M60 20c-5 20-10 35-35 55 25 35 35 65 30 100 20 0 35 10 45 26 10-16 30-26 45-26-5-35 5-65 30-100a87 87 0 01-35-55c-25 3-55 3-80 0z\",\n polish:\n \"m 90.3,6.3 c -12.7,0 -20.7,10.9 -40.5,14 0,11.8 -4.9,23.5 -11.4,31.1 0,0 12.7,6 12.7,19.3 C 51.1,90.8 30,90.8 30,90.8 c 0,0 -3.6,7.4 -3.6,22.4 0,34.3 23.1,60.2 40.7,68.2 17.6,8 27.7,11.4 32.9,18.6 5.2,-7.3 15.3,-10.7 32.8,-18.6 17.6,-8 40.7,-33.9 40.7,-68.2 0,-15 -3.6,-22.4 -3.6,-22.4 0,0 -21.1,0 -21.1,-20.1 0,-13.3 12.7,-19.3 12.7,-19.3 C 155.1,43.7 150.2,32.1 150.2,20.3 130.4,17.2 122.5,6.3 109.7,6.3 102.5,6.3 100,10 100,10 c 0,0 -2.5,-3.7 -9.7,-3.7 z\",\n hessen: \"M170 20c4 5 8 13 15 20 0 0-10 0-10 15 0 100-15 140-75 145-65-5-75-45-75-145 0-15-10-15-10-15l15-20c0 15 10-5 70-5s70 20 70 5z\",\n swiss:\n \"m 25,20 c -0.1,0 25.2,8.5 37.6,8.5 C 75.1,28.5 99.1,20 100,20 c 0.6,0 24.9,8.5 37.3,8.5 C 149.8,28.5 174.4,20 175,20 l -0.3,22.6 C 173.2,160.3 100,200 100,200 100,200 26.5,160.9 25.2,42.6 Z\",\n boeotian:\n \"M150 115c-5 0-10-5-10-15s5-15 10-15c10 0 7 10 15 10 10 0 0-30 0-30-10-25-30-55-65-55S45 40 35 65c0 0-10 30 0 30 8 0 5-10 15-10 5 0 10 5 10 15s-5 15-10 15c-10 0-7-10-15-10-10 0 0 30 0 30 10 25 30 55 65 55s55-30 65-55c0 0 10-30 0-30-8 0-5 10-15 10z\",\n roman: \"m 160,170 c -40,20 -80,20 -120,0 V 30 C 80,10 120,10 160,30 Z\",\n kite: \"m 53.3,46.4 c 0,4.1 1,12.3 1,12.3 7.1,55.7 45.7,141.3 45.7,141.3 0,0 38.6,-85.6 45.7,-141.2 0,0 1,-8.1 1,-12.3 C 146.7,20.9 125.8,0.1 100,0.1 74.2,0.1 53.3,20.9 53.3,46.4 Z\",\n oldFrench: \"m25,25 h150 v75 a100,100,0,0,1,-75,100 a100,100,0,0,1,-75,-100 z\",\n renaissance:\n \"M 25,33.9 C 33.4,50.3 36.2,72.9 36.2,81.7 36.2,109.9 25,122.6 25,141 c 0,29.4 24.9,44.1 40.2,47.7 15.3,3.7 29.3,0 34.8,11.3 5.5,-11.3 19.6,-7.6 34.8,-11.3 C 150.1,185 175,170.3 175,141 c 0,-18.4 -11.2,-31.1 -11.2,-59.3 0,-8.8 2.8,-31.3 11.2,-47.7 L 155.7,14.4 C 138.2,21.8 119.3,25.7 100,25.7 c -19.3,0 -38.2,-3.9 -55.7,-11.3 z\",\n baroque:\n \"m 100,25 c 18,0 50,2 75,14 v 37 l -2.7,3.2 c -4.9,5.4 -6.6,9.6 -6.7,16.2 0,6.5 2,11.6 6.9,17.2 l 2.8,3.1 v 10.2 c 0,17.7 -2.2,27.7 -7.8,35.9 -5,7.3 -11.7,11.3 -32.3,19.4 -12.6,5 -20.2,8.8 -28.6,14.5 C 103.3,198 100,200 100,200 c 0,0 -2.8,-2.3 -6.4,-4.7 C 85.6,189.8 78,186 65,180.9 32.4,168.1 26.9,160.9 25.8,129.3 L 25,116 l 3.3,-3.3 c 4.8,-5.2 7,-10.7 7,-17.3 0,-6.8 -1.8,-11.1 -6.5,-16.1 L 25,76 V 39 C 50,27 82,25 100,25 Z\",\n targe:\n \"m 20,35 c 15,0 115,-60 155,-10 -5,10 -15,15 -10,50 5,45 10,70 -10,90 C 125,195 75,195 50,175 25,150 30,130 35,85 50,95 65,85 65,70 65,50 50,45 40,50 30,55 27,65 30,70 23,73 20,70 14,70 11,60 20,45 20,35 Z\",\n targe2:\n \"m 84,32.2 c 6.2,-1 19.5,-31.4 94.1,-20.2 -30.57,33.64 -21.66,67.37 -11.2,95 20.2,69.5 -41.17549,84.7 -66.88,84.7 C 74.32,191.7071 8.38,168.95 32,105.9 36.88,92.88 31,89 31,82.6 35.15,82.262199 56.79,86.17 56.5,69.8 56.20,52.74 42.2,47.9 25.9,55.2 25.9,51.4 39.8,6.7 84,32.2 Z\",\n pavise: \"M95 7L39.9 37.3a10 10 0 00-5.1 9.5L46 180c.4 5.2 3.7 10 9 10h90c5.3 0 9.6-4.8 10-10l10.6-133.2a10 10 0 00-5-9.5L105 7c-4.2-2.3-6.2-2.3-10 0z\",\n wedged: \"m 51.2,19 h 96.4 c 3.1,12.7 10.7,20.9 26.5,20.8 C 175.7,94.5 165.3,144.3 100,200 43.5,154.2 22.8,102.8 25.1,39.7 37,38.9 47.1,34.7 51.2,19 Z\",\n round: \"m 185,100 a 85,85 0 0 1 -85,85 85,85 0 0 1 -85,-85 85,85 0 0 1 85,-85 85,85 0 0 1 85,85\",\n oval: \"m 32.3,99.5 a 67.7,93.7 0 1 1 0,1.3 z\",\n vesicaPiscis: \"M 100,0 C 63.9,20.4 41,58.5 41,100 c 0,41.5 22.9,79.6 59,100 36.1,-20.4 59,-58.5 59,-100 C 159,58.5 136.1,20.4 100,0 Z\",\n square: \"M 25,25 H 175 V 175 H 25 Z\",\n diamond: \"M 25,100 100,200 175,100 100,0 Z\",\n no: \"m0,0 h200 v200 h-200 z\",\n flag: \"M 10,40 h180 v120 h-180 Z\",\n pennon: \"M 10,40 l190,60 -190,60 Z\",\n guidon: \"M 10,40 h190 l-65,60 65,60 h-190 Z\",\n banner: \"m 25,25 v 170 l 25,-40 25,40 25,-40 25,40 25,-40 25,40 V 25 Z\",\n dovetail: \"m 25,25 v 175 l 75,-40 75,40 V 25 Z\",\n gonfalon: \"m 25,25 v 125 l 75,50 75,-50 V 25 Z\",\n pennant: \"M 25,15 100,200 175,15 Z\",\n fantasy1: \"M 100,5 C 85,30 40,35 15,40 c 40,35 20,90 40,115 15,25 40,30 45,45 5,-15 30,-20 45,-45 20,-25 0,-80 40,-115 C 160,35 115,30 100,5 Z\",\n fantasy2:\n \"m 152,21 c 0,0 -27,14 -52,-4 C 75,35 48,21 48,21 50,45 30,55 30,75 60,75 60,115 32,120 c 3,40 53,50 68,80 15,-30 65,-40 68,-80 -28,-5 -28,-45 2,-45 C 170,55 150,45 152,21 Z\",\n fantasy3: \"M 167,67 C 165,0 35,0 33,67 c 32,-7 27,53 -3,43 -5,45 60,65 70,90 10,-25 75,-47.51058 70,-90 -30,10 -35,-50 -3,-43 z\",\n fantasy4: \"M100 9C55 48 27 27 13 39c23 50 3 119 49 150 14 9 28 11 38 11s27-4 38-11c55-39 24-108 49-150-14-12-45 7-87-30z\",\n fantasy5: \"M 100,0 C 75,25 30,25 30,25 c 0,69 20,145 70,175 50,-30 71,-106 70,-175 0,0 -45,0 -70,-25 z\",\n noldor: \"m 55,75 h 2 c 3,-25 38,-10 3,20 15,50 30,75 40,105 10,-30 25,-55 40,-105 -35,-30 0,-45 3,-20 h 2 C 150,30 110,20 100,0 90,20 50,30 55,75 Z\",\n gondor: \"m 100,200 c 15,-15 38,-35 45,-60 h 5 V 30 h -5 C 133,10 67,10 55,30 h -5 v 110 h 5 c 7,25 30,45 45,60 z\",\n easterling: \"M 160,185 C 120,170 80,170 40,185 V 15 c 40,15 80,15 120,0 z\",\n erebor: \"M25 135 V60 l22-13 16-37 h75 l15 37 22 13 v75l-22 18-16 37 H63l-16-37z\",\n ironHills: \"m 30,25 60,-10 10,10 10,-10 60,10 -5,125 -65,50 -65,-50 z\",\n urukHai: \"M 30,60 C 40,60 60,50 60,20 l -5,-3 45,-17 75,40 -5,5 -35,155 -5,-35 H 70 v 35 z\",\n moriaOrc:\n \"M45 35c5 3 7 10 13 9h19c4-2 7-4 9-9 6 1 9 9 16 11 7-2 14 0 21 0 6-3 6-10 10-15 2-5 1-10-2-15-2-4-5-14-4-16 3 6 7 11 12 14 7 3 3 12 7 16 3 6 4 12 9 18 2 4 6 8 5 14 0 6-1 12 3 18-3 6-2 13-1 20 1 6-2 12-1 18 0 6-3 13 0 18 8 4 0 8-5 7-4 3-9 3-13 9-5 5-5 13-8 19 0 6 0 15-7 16-1 6-7 6-10 12-1-6 0-6-2-9l2-19c2-4 5-12-3-12-4-5-11-5-15 1l-13-18c-3-4-2 9-3 12 2 2-4-6-7-5-8-2-8 7-11 11-2 4-5 10-8 9 3-10 3-16 1-23-1-4 2-9-4-11 0-6 1-13-2-19-4-2-9-6-13-7V91c4-7-5-13 0-19-3-7 2-11 2-18-1-6 1-12 3-17v-1z\"\n};\n\nexport const shieldBox = {\n heater: \"0 10 200 200\",\n spanish: \"0 10 200 200\",\n french: \"0 10 200 200\",\n\n horsehead: \"0 10 200 200\",\n horsehead2: \"0 10 200 200\",\n polish: \"0 0 200 200\",\n hessen: \"0 5 200 200\",\n swiss: \"0 10 200 200\",\n\n boeotian: \"0 0 200 200\",\n roman: \"0 0 200 200\",\n kite: \"0 0 200 200\",\n oldFrench: \"0 10 200 200\",\n renaissance: \"0 5 200 200\",\n baroque: \"0 10 200 200\",\n\n targe: \"0 0 200 200\",\n targe2: \"0 0 200 200\",\n pavise: \"0 0 200 200\",\n wedged: \"0 10 200 200\",\n\n flag: \"0 0 200 200\",\n pennon: \"2.5 0 200 200\",\n guidon: \"2.5 0 200 200\",\n banner: \"0 10 200 200\",\n dovetail: \"0 10 200 200\",\n gonfalon: \"0 10 200 200\",\n pennant: \"0 0 200 200\",\n\n round: \"0 0 200 200\",\n oval: \"0 0 200 200\",\n vesicaPiscis: \"0 0 200 200\",\n square: \"0 0 200 200\",\n diamond: \"0 0 200 200\",\n no: \"0 0 200 200\",\n\n fantasy1: \"0 0 200 200\",\n fantasy2: \"0 5 200 200\",\n fantasy3: \"0 5 200 200\",\n fantasy4: \"0 5 200 200\",\n fantasy5: \"0 0 200 200\",\n\n noldor: \"0 0 200 200\",\n gondor: \"0 5 200 200\",\n easterling: \"0 0 200 200\",\n erebor: \"0 0 200 200\",\n ironHills: \"0 5 200 200\",\n urukHai: \"0 0 200 200\",\n moriaOrc: \"0 0 200 200\"\n};\n\n// size modifier applied for charges, default is 1\nexport const shieldSize = {\n horsehead: 0.9,\n horsehead2: 0.9,\n polish: 0.85,\n swiss: 0.95,\n boeotian: 0.75,\n roman: 0.95,\n kite: 0.65,\n targe2: 0.9,\n pavise: 0.9,\n wedged: 0.95,\n flag: 0.7,\n pennon: 0.5,\n guidon: 0.65,\n banner: 0.8,\n dovetail: 0.8,\n pennant: 0.6,\n oval: 0.95,\n vesicaPiscis: 0.8,\n diamond: 0.8,\n no: 1.2,\n fantasy1: 0.8,\n fantasy2: 0.7,\n fantasy3: 0.7,\n fantasy5: 0.9,\n noldor: 0.5,\n gondor: 0.75,\n easterling: 0.8,\n erebor: 0.9,\n urukHai: 0.8,\n moriaOrc: 0.7\n};\n\nexport const shieldPositions = {\n // shield-specific position: [x, y] (relative to center)\n heater: {\n a: [-43.75, -50],\n b: [0, -50],\n c: [43.75, -50],\n d: [-43.75, 0],\n e: [0, 0],\n f: [43.75, 0],\n g: [-32.25, 37.5],\n h: [0, 50],\n i: [32.25, 37.5],\n y: [-50, -50],\n z: [0, 62.5],\n j: [-37.5, -37.5],\n k: [0, -37.5],\n l: [37.5, -37.5],\n m: [-30, 30],\n n: [0, 42.5],\n o: [30, 30],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-66.2, -66.6],\n B: [-22, -66.6],\n C: [22, -66.6],\n D: [66.2, -66.6],\n K: [-66.2, -20],\n E: [66.2, -20],\n J: [-55.5, 26],\n F: [55.5, 26],\n I: [-33, 62],\n G: [33, 62],\n H: [0, 89.5]\n },\n spanish: {\n a: [-43.75, -50],\n b: [0, -50],\n c: [43.75, -50],\n d: [-43.75, 0],\n e: [0, 0],\n f: [43.75, 0],\n g: [-43.75, 50],\n h: [0, 50],\n i: [43.75, 50],\n y: [-50, -50],\n z: [0, 50],\n j: [-37.5, -37.5],\n k: [0, -37.5],\n l: [37.5, -37.5],\n m: [-37.5, 37.5],\n n: [0, 37.5],\n o: [37.5, 37.5],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-66.2, -66.6],\n B: [-22, -66.6],\n C: [22, -66.6],\n D: [66.2, -66.6],\n K: [-66.4, -20],\n E: [66.4, -20],\n J: [-66.4, 26],\n F: [66.4, 26],\n I: [-49, 70],\n G: [49, 70],\n H: [0, 92]\n },\n french: {\n a: [-43.75, -50],\n b: [0, -50],\n c: [43.75, -50],\n d: [-43.75, 0],\n e: [0, 0],\n f: [43.75, 0],\n g: [-43.75, 50],\n h: [0, 50],\n i: [43.75, 50],\n y: [-50, -50],\n z: [0, 65],\n j: [-37.5, -37.5],\n k: [0, -37.5],\n l: [37.5, -37.5],\n m: [-37.5, 37.5],\n n: [0, 37.5],\n o: [37.5, 37.5],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-66.2, -66.6],\n B: [-22, -66.6],\n C: [22, -66.6],\n D: [66.2, -66.6],\n K: [-66.4, -20],\n E: [66.4, -20],\n J: [-66.4, 26],\n F: [66.4, 26],\n I: [-65.4, 70],\n G: [65.4, 70],\n H: [0, 89]\n },\n horsehead: {\n a: [-43.75, -47.5],\n b: [0, -50],\n c: [43.75, -47.5],\n d: [-35, 0],\n e: [0, 0],\n f: [35, 0],\n h: [0, 50],\n y: [-50, -50],\n z: [0, 55],\n j: [-35, -35],\n k: [0, -40],\n l: [35, -35],\n m: [-30, 30],\n n: [0, 40],\n o: [30, 30],\n p: [-27.5, 0],\n q: [27.5, 0],\n A: [-71, -52],\n B: [-24, -73],\n C: [24, -73],\n D: [71, -52],\n K: [-62, -16],\n E: [62, -16],\n J: [-39, 20],\n F: [39, 20],\n I: [-33.5, 60],\n G: [33.5, 60],\n H: [0, 91.5]\n },\n horsehead2: {\n a: [-37.5, -47.5],\n b: [0, -50],\n c: [37.5, -47.5],\n d: [-35, 0],\n e: [0, 0],\n f: [35, 0],\n g: [-35, 47.5],\n h: [0, 50],\n i: [35, 47.5],\n y: [-50, -50],\n z: [0, 55],\n j: [-30, -30],\n k: [0, -40],\n l: [30, -30],\n m: [-30, 30],\n n: [0, 40],\n o: [30, 30],\n p: [-27.5, 0],\n q: [27.5, 0],\n A: [-49, -39],\n B: [-22, -70],\n C: [22, -70],\n D: [49, -39],\n K: [-51, -2],\n E: [51, -2],\n J: [-38.5, 31],\n F: [38.5, 31],\n I: [-35, 67],\n G: [35, 67],\n H: [0, 85]\n },\n polish: {\n a: [-35, -50],\n b: [0, -50],\n c: [35, -50],\n d: [-40, 0],\n e: [0, 0],\n f: [40, 0],\n g: [-37.5, 50],\n h: [0, 50],\n i: [37.5, 50],\n y: [-50, -50],\n z: [0, 65],\n j: [-27.5, -27.5],\n k: [0, -45],\n l: [27.5, -27.5],\n m: [-27.5, 27.5],\n n: [0, 45],\n o: [27.5, 27.5],\n p: [-32.5, 0],\n q: [32.5, 0],\n A: [-48, -52],\n B: [-23, -80],\n C: [23, -80],\n D: [48, -52],\n K: [-47, -10],\n E: [47, -10],\n J: [-62, 32],\n F: [62, 32],\n I: [-37, 68],\n G: [37, 68],\n H: [0, 86]\n },\n hessen: {\n a: [-43.75, -50],\n b: [0, -50],\n c: [43.75, -50],\n d: [-43.75, 0],\n e: [0, 0],\n f: [43.75, 0],\n g: [-43.75, 50],\n h: [0, 50],\n i: [43.75, 50],\n y: [-50, -50],\n z: [0, 52.5],\n j: [-40, -40],\n k: [0, -40],\n l: [40, -40],\n m: [-40, 40],\n n: [0, 40],\n o: [40, 40],\n p: [-40, 0],\n q: [40, 0],\n A: [-69, -64],\n B: [-22, -76],\n C: [22, -76],\n D: [69, -64],\n K: [-66.4, -20],\n E: [66.4, -20],\n J: [-62, 26],\n F: [62, 26],\n I: [-46, 70],\n G: [46, 70],\n H: [0, 91.5]\n },\n swiss: {\n a: [-43.75, -50],\n b: [0, -50],\n c: [43.75, -50],\n d: [-43.75, 0],\n e: [0, 0],\n f: [43.75, 0],\n g: [-32, 37.5],\n h: [0, 50],\n i: [32, 37.5],\n y: [-50, -50],\n z: [0, 62.5],\n j: [-37.5, -37.5],\n k: [0, -37.5],\n l: [37.5, -37.5],\n m: [-32, 32.5],\n n: [0, 42.5],\n o: [32, 32.5],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-66.2, -66.6],\n B: [-22, -66],\n C: [22, -66],\n D: [66.2, -66.6],\n K: [-63, -20],\n E: [63, -20],\n J: [-50, 26],\n F: [50, 26],\n I: [-29, 62],\n G: [29, 62],\n H: [0, 89.5]\n },\n boeotian: {\n a: [-37.5, -47.5],\n b: [0, -47.5],\n c: [37.5, -47.5],\n d: [-25, 0],\n e: [0, 0],\n f: [25, 0],\n g: [-37.5, 47.5],\n h: [0, 47.5],\n i: [37.5, 47.5],\n y: [-48, -48],\n z: [0, 60],\n j: [-32.5, -37.5],\n k: [0, -45],\n l: [32.5, -37.5],\n m: [-32.5, 37.5],\n n: [0, 45],\n o: [32.5, 37.5],\n p: [-20, 0],\n q: [20, 0],\n A: [-45, -55],\n B: [-20, -77],\n C: [20, -77],\n D: [45, -55],\n K: [-59, -25],\n E: [59, -25],\n J: [-58, 27],\n F: [58, 27],\n I: [-39, 63],\n G: [39, 63],\n H: [0, 81]\n },\n roman: {\n a: [-40, -52.5],\n b: [0, -52.5],\n c: [40, -52.5],\n d: [-40, 0],\n e: [0, 0],\n f: [40, 0],\n g: [-40, 52.5],\n h: [0, 52.5],\n i: [40, 52.5],\n y: [-42.5, -52.5],\n z: [0, 65],\n j: [-30, -37.5],\n k: [0, -37.5],\n l: [30, -37.5],\n m: [-30, 37.5],\n n: [0, 37.5],\n o: [30, 37.5],\n p: [-30, 0],\n q: [30, 0],\n A: [-51.5, -65],\n B: [-17, -75],\n C: [17, -75],\n D: [51.5, -65],\n K: [-51.5, -21],\n E: [51.5, -21],\n J: [-51.5, 21],\n F: [51.5, 21],\n I: [-51.5, 65],\n G: [51.5, 65],\n H: [-17, 75],\n L: [17, 75]\n },\n kite: {\n b: [0, -65],\n e: [0, -15],\n h: [0, 35],\n z: [0, 35],\n k: [0, -50],\n n: [0, 20],\n p: [-20, -15],\n q: [20, -15],\n A: [-38, -52],\n B: [-29, -78],\n C: [29, -78],\n D: [38, -52],\n K: [-33, -20],\n E: [33, -20],\n J: [-25, 11],\n F: [25, 11],\n I: [-15, 42],\n G: [15, 42],\n H: [0, 73],\n L: [0, -91]\n },\n oldFrench: {\n a: [-43.75, -50],\n b: [0, -50],\n c: [43.75, -50],\n d: [-43.75, 0],\n e: [0, 0],\n f: [43.75, 0],\n g: [-37.5, 50],\n h: [0, 50],\n i: [37.5, 50],\n y: [-50, -50],\n z: [0, 62.5],\n j: [-37.5, -37.5],\n k: [0, -37.5],\n l: [37.5, -37.5],\n m: [-37.5, 37.5],\n n: [0, 45],\n o: [37.5, 37.5],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-66.2, -66.6],\n B: [-22, -66.6],\n C: [22, -66.6],\n D: [66.2, -66.6],\n K: [-66.2, -20],\n E: [66.2, -20],\n J: [-64, 26],\n F: [64, 26],\n I: [-45, 62],\n G: [45, 62],\n H: [0, 91]\n },\n renaissance: {\n a: [-43.75, -50],\n b: [0, -50],\n c: [43.75, -50],\n d: [-41.5, 0],\n e: [0, 0],\n f: [41.5, 0],\n g: [-43.75, 50],\n h: [0, 50],\n i: [43.75, 50],\n y: [-50, -50],\n z: [0, 62.5],\n j: [-37.5, -37.5],\n k: [0, -37.5],\n l: [37.5, -37.5],\n m: [-37.5, 37.5],\n n: [0, 37.5],\n o: [37.5, 37.5],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-61, -55],\n B: [-23, -67],\n C: [23, -67],\n D: [61, -55],\n K: [-55, -11],\n E: [55, -11],\n J: [-65, 31],\n F: [65, 31],\n I: [-45, 76],\n G: [45, 76],\n H: [0, 87]\n },\n baroque: {\n a: [-43.75, -45],\n b: [0, -45],\n c: [43.75, -45],\n d: [-43.75, 0],\n e: [0, 0],\n f: [43.75, 0],\n g: [-43.75, 50],\n h: [0, 50],\n i: [43.75, 50],\n y: [-50, -50],\n z: [0, 60],\n j: [-37.5, -37.5],\n k: [0, -37.5],\n l: [37.5, -37.5],\n m: [-37.5, 37.5],\n n: [0, 37.5],\n o: [37.5, 37.5],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-65, -54.5],\n B: [-22, -65],\n C: [22, -65],\n D: [65, -54.5],\n K: [-58.5, -15],\n E: [58.5, -15],\n J: [-65, 31],\n F: [66, 31],\n I: [-35, 73],\n G: [35, 73],\n H: [0, 89]\n },\n targe: {\n a: [-43.75, -50],\n b: [0, -50],\n c: [43.75, -50],\n d: [-43.75, 0],\n e: [0, 0],\n f: [43.75, 0],\n g: [-43.75, 50],\n h: [0, 50],\n i: [43.75, 50],\n y: [-50, -50],\n z: [0, 50],\n j: [-40, -40],\n k: [0, -40],\n l: [40, -40],\n m: [-40, 40],\n n: [0, 40],\n o: [40, 40],\n p: [-32.5, 0],\n q: [32.5, 0],\n A: [-66.2, -60],\n B: [-22, -77],\n C: [22, -86],\n D: [60, -66.6],\n K: [-28, -20],\n E: [57, -20],\n J: [-61, 26],\n F: [61, 26],\n I: [-49, 63],\n G: [49, 59],\n H: [0, 80]\n },\n targe2: {\n a: [-43.75, -50],\n b: [0, -50],\n c: [43.75, -50],\n d: [-40, 0],\n e: [0, 0],\n f: [40, 0],\n g: [-43.75, 50],\n h: [0, 50],\n i: [43.75, 50],\n y: [-50, -50],\n z: [0, 60],\n j: [-37.5, -37.5],\n k: [0, -37.5],\n l: [37.5, -37.5],\n m: [-37.5, 37.5],\n n: [0, 37.5],\n o: [37.5, 37.5],\n p: [-32.5, 0],\n q: [32.5, 0],\n A: [-55, -59],\n B: [-15, -59],\n C: [24, -79],\n D: [51, -58],\n K: [-40, -14],\n E: [51, -14],\n J: [-64, 26],\n F: [62, 26],\n I: [-46, 66],\n G: [48, 67],\n H: [0, 83]\n },\n pavise: {\n a: [-40, -52.5],\n b: [0, -52.5],\n c: [40, -52.5],\n d: [-40, 0],\n e: [0, 0],\n f: [40, 0],\n g: [-40, 52.5],\n h: [0, 52.5],\n i: [40, 52.5],\n y: [-42.5, -52.5],\n z: [0, 60],\n j: [-30, -35],\n k: [0, -37.5],\n l: [30, -35],\n m: [-30, 35],\n n: [0, 37.5],\n o: [30, 35],\n p: [-30, 0],\n q: [30, 0],\n A: [-57, -55],\n B: [-22, -74],\n C: [22, -74],\n D: [57, -55],\n K: [-54, -11],\n E: [54, -11],\n J: [-50, 36],\n F: [50, 36],\n I: [-46, 81],\n G: [46, 81],\n H: [0, 81]\n },\n wedged: {\n a: [-43.75, -50],\n b: [0, -50],\n c: [43.75, -50],\n d: [-43.75, 0],\n e: [0, 0],\n f: [43.75, 0],\n g: [-32.25, 37.5],\n h: [0, 50],\n i: [32.25, 37.5],\n y: [-50, -50],\n z: [0, 62.5],\n j: [-37.5, -37.5],\n k: [0, -37.5],\n l: [37.5, -37.5],\n m: [-32.5, 32.5],\n n: [0, 42.5],\n o: [32.5, 32.5],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-66, -53],\n B: [-22, -72.5],\n C: [22, -72.5],\n D: [66, -53],\n K: [-62.6, -13],\n E: [62.6, -13],\n J: [-50, 26],\n F: [50, 26],\n I: [-27, 62],\n G: [27, 62],\n H: [0, 87]\n },\n flag: {\n a: [-60, -40],\n b: [0, -40],\n c: [60, -40],\n d: [-60, 0],\n e: [0, 0],\n f: [60, 0],\n g: [-60, 40],\n h: [0, 40],\n i: [60, 40],\n y: [-60, -42.5],\n z: [0, 40],\n j: [-45, -30],\n k: [0, -30],\n l: [45, -30],\n m: [-45, 30],\n n: [0, 30],\n o: [45, 30],\n p: [-45, 0],\n q: [45, 0],\n A: [-81, -51],\n B: [-27, -51],\n C: [27, -51],\n D: [81, -51],\n K: [-81, -17],\n E: [81, -17],\n J: [-81, 17],\n F: [81, 17],\n I: [-81, 51],\n G: [81, 51],\n H: [-27, 51],\n L: [27, 51]\n },\n pennon: {\n a: [-75, -40],\n d: [-75, 0],\n e: [-25, 0],\n f: [25, 0],\n g: [-75, 40],\n y: [-70, -42.5],\n j: [-60, -30],\n m: [-60, 30],\n p: [-60, 0],\n q: [5, 0],\n A: [-81, -48],\n B: [-43, -36],\n C: [-4.5, -24],\n D: [33, -12],\n E: [72, 0],\n F: [33, 12],\n G: [-4.5, 24],\n H: [-43, 36],\n I: [-81, 48],\n J: [-81, 17],\n K: [-81, -17]\n },\n guidon: {\n a: [-60, -40],\n b: [0, -40],\n c: [60, -40],\n d: [-60, 0],\n e: [0, 0],\n g: [-60, 40],\n h: [0, 40],\n i: [60, 40],\n y: [-60, -42.5],\n z: [0, 40],\n j: [-45, -30],\n k: [0, -30],\n l: [45, -30],\n m: [-45, 30],\n n: [0, 30],\n o: [45, 30],\n p: [-45, 0],\n A: [-81, -51],\n B: [-27, -51],\n C: [27, -51],\n D: [78, -51],\n K: [-81, -17],\n E: [40.5, -17],\n J: [-81, 17],\n F: [40.5, 17],\n I: [-81, 51],\n G: [78, 51],\n H: [-27, 51],\n L: [27, 51]\n },\n banner: {\n a: [-50, -50],\n b: [0, -50],\n c: [50, -50],\n d: [-50, 0],\n e: [0, 0],\n f: [50, 0],\n g: [-50, 40],\n h: [0, 40],\n i: [50, 40],\n y: [-50, -50],\n z: [0, 40],\n j: [-37.5, -37.5],\n k: [0, -37.5],\n l: [37.5, -37.5],\n m: [-37.5, 27.5],\n n: [0, 27.5],\n o: [37.5, 27.5],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-66.5, -66.5],\n B: [-22, -66.5],\n C: [22, -66.5],\n D: [66.5, -66.5],\n K: [-66.5, -20],\n E: [66.5, -20],\n J: [-66.5, 26],\n F: [66.5, 26],\n I: [-66.5, 66.5],\n G: [66.5, 66.5],\n H: [-25, 75],\n L: [25, 75]\n },\n dovetail: {\n a: [-49.75, -50],\n b: [0, -50],\n c: [49.75, -50],\n d: [-49.75, 0],\n e: [0, 0],\n f: [49.75, 0],\n g: [-49.75, 50],\n i: [49.75, 50],\n y: [-50, -50],\n z: [0, 40],\n j: [-37.5, -37.5],\n k: [0, -37.5],\n l: [37.5, -37.5],\n m: [-37.5, 37.5],\n n: [0, 32.5],\n o: [37.5, 37.5],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-66.5, -66.5],\n B: [-22, -66.5],\n C: [22, -66.5],\n D: [66.5, -66.5],\n K: [-66.5, -16.5],\n E: [66.5, -16.5],\n J: [-66.5, 34.5],\n F: [66.5, 34.5],\n I: [-66.5, 84.5],\n G: [66.5, 84.5],\n H: [-25, 64],\n L: [25, 64]\n },\n gonfalon: {\n a: [-49.75, -50],\n b: [0, -50],\n c: [49.75, -50],\n d: [-49.75, 0],\n e: [0, 0],\n f: [49.75, 0],\n g: [-49.75, 50],\n h: [0, 50],\n i: [49.75, 50],\n y: [-50, -50],\n z: [0, 50],\n j: [-37.5, -37.5],\n k: [0, -37.5],\n l: [37.5, -37.5],\n m: [-37.5, 37.5],\n n: [0, 37.5],\n o: [37.5, 37.5],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-66.5, -66.5],\n B: [-22, -66.5],\n C: [22, -66.5],\n D: [66.5, -66.5],\n K: [-66.5, -20],\n E: [66.5, -20],\n J: [-66.5, 26],\n F: [66.5, 26],\n I: [-40, 63],\n G: [40, 63],\n H: [0, 88]\n },\n pennant: {\n a: [-45, -50],\n b: [0, -50],\n c: [45, -50],\n e: [0, 0],\n h: [0, 50],\n y: [-50, -50],\n z: [0, 50],\n j: [-32.5, -37.5],\n k: [0, -37.5],\n l: [32.5, -37.5],\n n: [0, 37.5],\n A: [-60, -76],\n B: [-22, -76],\n C: [22, -76],\n D: [60, -76],\n K: [-46, -38],\n E: [46, -38],\n J: [-31, 0],\n F: [31, 0],\n I: [-16, 38],\n G: [16, 38],\n H: [0, 76]\n },\n round: {\n a: [-40, -40],\n b: [0, -40],\n c: [40, -40],\n d: [-40, 0],\n e: [0, 0],\n f: [40, 0],\n g: [-40, 40],\n h: [0, 40],\n i: [40, 40],\n y: [-48, -48],\n z: [0, 57.5],\n j: [-35.5, -35.5],\n k: [0, -37.5],\n l: [35.5, -35.5],\n m: [-35.5, 35.5],\n n: [0, 37.5],\n o: [35.5, 35.5],\n p: [-36.5, 0],\n q: [36.5, 0],\n A: [-59, -48],\n B: [-23, -73],\n C: [23, -73],\n D: [59, -48],\n K: [-76, -10],\n E: [76, -10],\n J: [-70, 31],\n F: [70, 31],\n I: [-42, 64],\n G: [42, 64],\n H: [0, 77]\n },\n oval: {\n a: [-37.5, -50],\n b: [0, -50],\n c: [37.5, -50],\n d: [-43, 0],\n e: [0, 0],\n f: [43, 0],\n g: [-37.5, 50],\n h: [0, 50],\n i: [37.5, 50],\n y: [-48, -48],\n z: [0, 60],\n j: [-35.5, -37.5],\n k: [0, -37.5],\n l: [35.5, -37.5],\n m: [-35.5, 37.5],\n n: [0, 50],\n o: [35.5, 37.5],\n p: [-36.5, 0],\n q: [36.5, 0],\n A: [-48, -48],\n B: [-23, -78],\n C: [23, -78],\n D: [48, -48],\n K: [-59, -10],\n E: [59, -10],\n J: [-55, 31],\n F: [55, 31],\n I: [-36, 68],\n G: [36, 68],\n H: [0, 85]\n },\n vesicaPiscis: {\n a: [-32, -37],\n b: [0, -50],\n c: [32, -37],\n d: [-32, 0],\n e: [0, 0],\n f: [32, 0],\n g: [-32, 37],\n h: [0, 50],\n i: [32, 37],\n y: [-50, -50],\n z: [0, 62],\n j: [-27.5, -27.5],\n k: [0, -37],\n l: [27.5, -27.5],\n m: [-27.5, 27.5],\n n: [0, 42],\n o: [27.5, 27.5],\n p: [-27.5, 0],\n q: [27.5, 0],\n A: [-45, -32],\n B: [-29, -63],\n C: [29, -63],\n D: [45, -32],\n K: [-50, 0],\n E: [50, 0],\n J: [-45, 32],\n F: [45, 32],\n I: [-29, 63],\n G: [29, 63],\n H: [0, 89],\n L: [0, -89]\n },\n square: {\n a: [-49.75, -50],\n b: [0, -50],\n c: [49.75, -50],\n d: [-49.75, 0],\n e: [0, 0],\n f: [49.75, 0],\n g: [-49.75, 50],\n h: [0, 50],\n i: [49.75, 50],\n y: [-50, -50],\n z: [0, 50],\n j: [-37.5, -37.5],\n k: [0, -37.5],\n l: [37.5, -37.5],\n m: [-37.5, 37.5],\n n: [0, 37.5],\n o: [37.5, 37.5],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-66.5, -66.5],\n B: [-22, -66.5],\n C: [22, -66.5],\n D: [66.5, -66.5],\n K: [-66.5, -20],\n E: [66.5, -20],\n J: [-66.5, 26],\n F: [66.5, 26],\n I: [-66.5, 66.5],\n G: [66.5, 66.5],\n H: [-22, 66.5],\n L: [22, 66.5]\n },\n diamond: {\n a: [-32, -37],\n b: [0, -50],\n c: [32, -37],\n d: [-43, 0],\n e: [0, 0],\n f: [43, 0],\n g: [-32, 37],\n h: [0, 50],\n i: [32, 37],\n y: [-50, -50],\n z: [0, 62],\n j: [-27.5, -27.5],\n k: [0, -37],\n l: [27.5, -27.5],\n m: [-27.5, 27.5],\n n: [0, 42],\n o: [27.5, 27.5],\n p: [-37, 0],\n q: [37, 0],\n A: [-43, -28],\n B: [-22, -56],\n C: [22, -56],\n D: [43, -28],\n K: [-63, 0],\n E: [63, 0],\n J: [-42, 28],\n F: [42, 28],\n I: [-22, 56],\n G: [22, 56],\n H: [0, 83],\n L: [0, -82]\n },\n no: {\n a: [-66.5, -66.5],\n b: [0, -66.5],\n c: [66.5, -66.5],\n d: [-66.5, 0],\n e: [0, 0],\n f: [66.5, 0],\n g: [-66.5, 66.5],\n h: [0, 66.5],\n i: [66.5, 66.5],\n y: [-50, -50],\n z: [0, 75],\n j: [-50, -50],\n k: [0, -50],\n l: [50, -50],\n m: [-50, 50],\n n: [0, 50],\n o: [50, 50],\n p: [-50, 0],\n q: [50, 0],\n A: [-91.5, -91.5],\n B: [-30.5, -91.5],\n C: [30.5, -91.5],\n D: [91.5, -91.5],\n K: [-91.5, -30.5],\n E: [91.5, -30.5],\n J: [-91.5, 30.5],\n F: [91.5, 30.5],\n I: [-91.5, 91.5],\n G: [91.5, 91.5],\n H: [-30.5, 91.5],\n L: [30.5, 91.5]\n },\n fantasy1: {\n a: [-45, -45],\n b: [0, -50],\n c: [45, -45],\n d: [-40, 0],\n e: [0, 0],\n f: [40, 0],\n g: [-36, 42.5],\n h: [0, 50],\n i: [36, 42.5],\n y: [-50, -50],\n z: [0, 60],\n j: [-37, -37],\n k: [0, -40],\n l: [37, -37],\n m: [-32, 32],\n n: [0, 40],\n o: [32, 32],\n p: [-28.5, 0],\n q: [28.5, 0],\n A: [-66, -55],\n B: [-22, -67],\n C: [22, -67],\n D: [66, -55],\n K: [-53, -20],\n E: [53, -20],\n J: [-46, 26],\n F: [46, 26],\n I: [-29, 62],\n G: [29, 62],\n H: [0, 84]\n },\n fantasy2: {\n a: [-45, -45],\n b: [0, -45],\n c: [45, -45],\n d: [-35, 0],\n e: [0, 0],\n f: [35, 0],\n g: [-36, 42.5],\n h: [0, 45],\n i: [36, 42.5],\n y: [-50, -50],\n z: [0, 55],\n j: [-32.5, -32.5],\n k: [0, -40],\n l: [32.5, -32.5],\n m: [-30, 30],\n n: [0, 40],\n o: [30, 30],\n p: [-27.5, 0],\n q: [27.5, 0],\n A: [-58, -35],\n B: [-44, -67],\n C: [44, -67],\n D: [58, -35],\n K: [-39, -5],\n E: [39, -5],\n J: [-57, 26],\n F: [57, 26],\n I: [-32, 58],\n G: [32, 58],\n H: [0, 83],\n L: [0, -72]\n },\n fantasy3: {\n a: [-40, -45],\n b: [0, -50],\n c: [40, -45],\n d: [-35, 0],\n e: [0, 0],\n f: [35, 0],\n g: [-36, 42.5],\n h: [0, 50],\n i: [36, 42.5],\n y: [-50, -50],\n z: [0, 55],\n j: [-32.5, -32.5],\n k: [0, -40],\n l: [32.5, -32.5],\n m: [-30, 30],\n n: [0, 40],\n o: [30, 30],\n p: [-27.5, 0],\n q: [27.5, 0],\n A: [-56, -42],\n B: [-22, -72],\n C: [22, -72],\n D: [56, -42],\n K: [-37, -11],\n E: [37, -11],\n J: [-60, 20],\n F: [60, 20],\n I: [-34, 56],\n G: [34, 56],\n H: [0, 83]\n },\n fantasy4: {\n a: [-50, -45],\n b: [0, -50],\n c: [50, -45],\n d: [-45, 0],\n e: [0, 0],\n f: [45, 0],\n g: [-40, 45],\n h: [0, 50],\n i: [40, 45],\n y: [-50, -50],\n z: [0, 62.5],\n j: [-37.5, -37.5],\n k: [0, -45],\n l: [37.5, -37.5],\n m: [-37.5, 37.5],\n n: [0, 45],\n o: [37.5, 37.5],\n p: [-35, 0],\n q: [35, 0],\n A: [-75, -56],\n B: [-36, -61],\n C: [36, -61],\n D: [75, -56],\n K: [-67, -12],\n E: [67, -12],\n J: [-63, 32],\n F: [63, 32],\n I: [-42, 75],\n G: [42, 75],\n H: [0, 91.5],\n L: [0, -79]\n },\n fantasy5: {\n a: [-45, -50],\n b: [0, -50],\n c: [45, -50],\n d: [-40, 0],\n e: [0, 0],\n f: [40, 0],\n g: [-30, 45],\n h: [0, 50],\n i: [30, 45],\n y: [-50, -50],\n z: [0, 60],\n j: [-37, -37],\n k: [0, -40],\n l: [37, -37],\n m: [-32, 32],\n n: [0, 40],\n o: [32, 32],\n p: [-28.5, 0],\n q: [28.5, 0],\n A: [-61, -67],\n B: [-22, -76],\n C: [22, -76],\n D: [61, -67],\n K: [-58, -25],\n E: [58, -25],\n J: [-48, 20],\n F: [48, 20],\n I: [-28.5, 60],\n G: [28.5, 60],\n H: [0, 89]\n },\n noldor: {\n b: [0, -65],\n e: [0, -15],\n h: [0, 35],\n z: [0, 35],\n k: [0, -50],\n n: [0, 30],\n p: [-20, -15],\n q: [20, -15],\n A: [-34, -47],\n B: [-20, -68],\n C: [20, -68],\n D: [34, -47],\n K: [-18, -20],\n E: [18, -20],\n J: [-26, 11],\n F: [26, 11],\n I: [-14, 43],\n G: [14, 43],\n H: [0, 74],\n L: [0, -85]\n },\n gondor: {\n a: [-32.5, -50],\n b: [0, -50],\n c: [32.5, -50],\n d: [-32.5, 0],\n e: [0, 0],\n f: [32.5, 0],\n g: [-32.5, 50],\n h: [0, 50],\n i: [32.5, 50],\n y: [-42.5, -52.5],\n z: [0, 65],\n j: [-25, -37.5],\n k: [0, -37.5],\n l: [25, -37.5],\n m: [-25, 30],\n n: [0, 37.5],\n o: [25, 30],\n p: [-25, 0],\n q: [25, 0],\n A: [-42, -52],\n B: [-17, -75],\n C: [17, -75],\n D: [42, -52],\n K: [-42, -15],\n E: [42, -15],\n J: [-42, 22],\n F: [42, 22],\n I: [-26, 60],\n G: [26, 60],\n H: [0, 87]\n },\n easterling: {\n a: [-40, -47.5],\n b: [0, -47.5],\n c: [40, -47.5],\n d: [-40, 0],\n e: [0, 0],\n f: [40, 0],\n g: [-40, 47.5],\n h: [0, 47.5],\n i: [40, 47.5],\n y: [-42.5, -52.5],\n z: [0, 65],\n j: [-30, -37.5],\n k: [0, -37.5],\n l: [30, -37.5],\n m: [-30, 37.5],\n n: [0, 37.5],\n o: [30, 37.5],\n p: [-30, 0],\n q: [30, 0],\n A: [-52, -72],\n B: [0, -65],\n D: [52, -72],\n K: [-52, -24],\n E: [52, -24],\n J: [-52, 24],\n F: [52, 24],\n I: [-52, 72],\n G: [52, 72],\n H: [0, 65]\n },\n erebor: {\n a: [-40, -40],\n b: [0, -55],\n c: [40, -40],\n d: [-40, 0],\n e: [0, 0],\n f: [40, 0],\n g: [-40, 40],\n h: [0, 55],\n i: [40, 40],\n y: [-50, -50],\n z: [0, 50],\n j: [-35, -35],\n k: [0, -45],\n l: [35, -35],\n m: [-35, 35],\n n: [0, 45],\n o: [35, 35],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-47, -46],\n B: [-22, -81],\n C: [22, -81],\n D: [47, -46],\n K: [-66.5, 0],\n E: [66.5, 0],\n J: [-47, 46],\n F: [47, 46],\n I: [-22, 81],\n G: [22, 81]\n },\n ironHills: {\n a: [-43.75, -50],\n b: [0, -50],\n c: [43.75, -50],\n d: [-43.25, 0],\n e: [0, 0],\n f: [43.25, 0],\n g: [-42.5, 42.5],\n h: [0, 50],\n i: [42.5, 42.5],\n y: [-50, -50],\n z: [0, 62.5],\n j: [-32.5, -32.5],\n k: [0, -40],\n l: [32.5, -32.5],\n m: [-32.5, 32.5],\n n: [0, 40],\n o: [32.5, 32.5],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-61, -67],\n B: [-22, -74],\n C: [22, -74],\n D: [61, -67],\n K: [-59, -20],\n E: [59, -20],\n J: [-57, 26],\n F: [57, 26],\n I: [-33, 64],\n G: [33, 64],\n H: [0, 88]\n },\n urukHai: {\n a: [-40, -45],\n b: [0, -45],\n c: [40, -45],\n d: [-36, 0],\n e: [0, 0],\n f: [36, 0],\n g: [-32.25, 40],\n h: [0, 40],\n i: [32.25, 40],\n y: [-50, -50],\n z: [0, 40],\n j: [-32.5, -32.5],\n k: [0, -37.5],\n l: [32.5, -32.5],\n m: [-27.5, 27.5],\n n: [0, 32.5],\n o: [27.5, 27.5],\n p: [-37.5, 0],\n q: [37.5, 0],\n A: [-31, -79],\n B: [-1, -90],\n C: [31, -74],\n D: [61, -57],\n K: [-55, -19],\n E: [53, -19],\n J: [-45, 19],\n F: [45, 19],\n I: [-33, 57],\n G: [35, 57],\n H: [0, 57],\n L: [-39, -50]\n },\n moriaOrc: {\n a: [-37.5, -37.5],\n b: [0, -37.5],\n c: [37.5, -37.5],\n d: [-37.5, 0],\n e: [0, 0],\n f: [37.5, 0],\n g: [-37.5, 37.5],\n h: [0, 37.5],\n i: [37.5, 37.5],\n y: [-50, -50],\n z: [0, 40],\n j: [-30, -30],\n k: [0, -30],\n l: [30, -30],\n m: [-30, 30],\n n: [0, 30],\n o: [30, 30],\n p: [-30, 0],\n q: [30, 0],\n A: [-48, -48],\n B: [-16, -50],\n C: [16, -46],\n D: [39, -61],\n K: [-52, -19],\n E: [52, -26],\n J: [-42, 9],\n F: [52, 9],\n I: [-31, 40],\n G: [40, 43],\n H: [4, 47]\n }\n};\n","export const DEFAULT_SIZE = 200;\nexport const DEFAULT_DIAPER = \"no\";\nexport const DEFAULT_GRADIENTS = [\"luster\", \"spotlight\", \"backlight\"];\nexport const DEFAULT_BORDER = \"#333333\";\nexport const DEFAULT_BORDER_WIDTH = 1;\nexport const DEFAULT_BACKGROUND = \"#333333\";\nexport const DEFAULT_SCALE = 2;\nexport const DEFAULT_GRID = 1;\nexport const DEFAULT_SHOW_GRID = false;\nexport const DEFAULT_COLORS = {\n argent: \"#fafafa\",\n or: \"#ffe066\",\n gules: \"#d7374a\",\n sable: \"#333333\",\n azure: \"#377cd7\",\n vert: \"#26c061\",\n purpure: \"#522d5b\",\n murrey: \"#85185b\",\n sanguine: \"#b63a3a\",\n tenné: \"#cc7f19\"\n};\nexport const DEFAULT_TINCTURES = {\n field: { metals: 32, colours: 49, stains: 1, patterns: 14 },\n division: { metals: 35, colours: 49, stains: 1, patterns: 8 },\n charge: { metals: 16, colours: 24, stains: 1, patterns: 0 },\n metals: { argent: 3, or: 2 },\n colours: { gules: 5, azure: 4, sable: 3, purpure: 3, vert: 2 },\n stains: { murrey: 1, sanguine: 1, tenné: 1 },\n patterns: {\n semy: 8,\n ermine: 6,\n vair: 4,\n counterVair: 1,\n vairInPale: 1,\n vairEnPointe: 2,\n vairAncien: 2,\n potent: 2,\n counterPotent: 1,\n potentInPale: 1,\n potentEnPointe: 1,\n chequy: 8,\n lozengy: 5,\n fusily: 2,\n pally: 8,\n barry: 10,\n gemelles: 1,\n bendy: 8,\n bendySinister: 4,\n palyBendy: 2,\n barryBendy: 1,\n pappellony: 2,\n pappellony2: 3,\n scaly: 1,\n plumetty: 1,\n masoned: 6,\n fretty: 3,\n grillage: 1,\n chainy: 1,\n maily: 2,\n honeycombed: 1\n }\n};\n","import { ra, rw } from \"scripts/utils\";\nimport { writable } from \"svelte/store\";\nimport { shields } from \"./shields\";\nimport { DEFAULT_SIZE, DEFAULT_DIAPER, DEFAULT_GRADIENTS, DEFAULT_COLORS, DEFAULT_TINCTURES, DEFAULT_BORDER, DEFAULT_BORDER_WIDTH, DEFAULT_BACKGROUND, DEFAULT_SCALE, DEFAULT_GRID, DEFAULT_SHOW_GRID } from \"config/defaults\";\nimport { validateTinctures } from \"./validators\";\nexport const isTextReady = writable(false);\nconst options = defineInitialOptions();\nexport const size = writable(options.size);\nexport const grad = writable(options.grad);\nexport const diaper = writable(options.diaper);\nexport const shield = writable(options.shield);\nexport const colors = writable(options.colors);\nexport const tinctures = writable(options.tinctures);\nexport const background = writable(options.background);\nexport const scale = writable(options.scale);\nexport const border = writable(options.border);\nexport const borderWidth = writable(options.borderWidth);\nexport const grid = writable(options.grid);\nexport const showGrid = writable(options.showGrid);\nexport const history = writable([]);\nexport const matrices = writable([]);\nexport const matrix = writable(0);\nexport const state = writable({ edit: 0, about: 0, license: 0, tinctures: 0, raster: 0, vector: 0, i: 0, c: 0, view: 0 });\nexport const iconedNav = writable(false);\nconst createMessageStore = () => {\n const { subscribe, set } = writable(null);\n const defaultTimeout = 5000;\n return {\n subscribe,\n clear: () => set(null),\n success: (text, timeout = defaultTimeout) => {\n set({ type: \"success\", text, timeout });\n },\n info: (text, timeout = defaultTimeout) => {\n set({ type: \"info\", text, timeout });\n },\n error: (text, timeout = defaultTimeout) => {\n set({ type: \"error\", text, timeout });\n }\n };\n};\nexport const message = createMessageStore();\nconst createChangesStore = () => {\n const { subscribe, set, update } = writable([\"\", -1]);\n let history = [];\n let position = -1;\n return {\n subscribe,\n length: () => history.length,\n reset: () => {\n history = [];\n position = -1;\n set([\"\", -1]);\n },\n add: (value) => {\n if (value === history[position])\n return; // no change\n if (position < history.length - 1)\n history = history.slice(0, position + 1); // cut future history\n history.push(value);\n position += 1;\n set([history[position], position]);\n },\n undo: () => update(() => {\n if (position > 0)\n position -= 1;\n return [history[position], position];\n }),\n redo: () => update(() => {\n if (position < history.length - 1)\n position += 1;\n return [history[position], position];\n })\n };\n};\nexport const changes = createChangesStore();\nfunction defineInitialOptions() {\n const stored = (key) => {\n const value = localStorage.getItem(key);\n if (value === \"null\")\n return null;\n return value;\n };\n const storedObj = (key) => {\n return localStorage.getItem(key) ? JSON.parse(localStorage.getItem(key)) : null;\n };\n const getShieldFromURL = () => {\n const coaParam = new URL(window.location.href).searchParams.get(\"coa\");\n if (!coaParam)\n return null;\n const coa = JSON.parse(coaParam);\n return coa?.shield;\n };\n const size = +stored(\"size\") || DEFAULT_SIZE;\n const diaper = stored(\"diaper\") || DEFAULT_DIAPER;\n const grad = stored(\"grad\") || ra(DEFAULT_GRADIENTS);\n const shield = getShieldFromURL() || stored(\"shield\") || rw(shields[rw(shields.types)]);\n const colors = storedObj(\"colors\") || JSON.parse(JSON.stringify(DEFAULT_COLORS));\n const border = stored(\"border\") || DEFAULT_BORDER;\n const borderWidth = +stored(\"borderWidth\") || DEFAULT_BORDER_WIDTH;\n const background = stored(\"background\") || DEFAULT_BACKGROUND;\n const scale = +stored(\"scale\") || DEFAULT_SCALE;\n const grid = +stored(\"grid\") || DEFAULT_GRID;\n const showGrid = storedObj(\"showGrid\") || DEFAULT_SHOW_GRID;\n const storedTinctures = storedObj(\"tinctures\");\n const areTincturesValid = storedTinctures ? validateTinctures(storedTinctures) : false;\n const tinctures = areTincturesValid ? storedTinctures : JSON.parse(JSON.stringify(DEFAULT_TINCTURES));\n return {\n size,\n diaper,\n grad,\n shield,\n colors,\n tinctures,\n border,\n borderWidth,\n background,\n scale,\n grid,\n showGrid\n };\n}\n","export const validateTinctures = (tinctures) => {\n const mandatoryElements = [\"field\", \"division\", \"charge\"];\n const mandatoryTypes = [\"metals\", \"colours\"];\n try {\n for (const element of mandatoryElements) {\n if (!tinctures[element])\n throw new Error(`Missing ${element}`);\n for (const type of mandatoryTypes) {\n if (!tinctures[element][type])\n throw new Error(`Missing ${type} in ${element}`);\n }\n }\n for (const type of mandatoryTypes) {\n if (!tinctures[type])\n throw new Error(`Missing ${type}`);\n const keys = Object.keys(tinctures[type]);\n if (keys.length < 2)\n throw new Error(`Type ${type} must have more than 2 tinctures`);\n const totalChance = Object.values(tinctures[type]).reduce((a, b) => a + b, 0);\n if (totalChance < 1)\n throw new Error(`Total chance for type ${type} must be more that zero`);\n }\n return true;\n }\n catch (err) {\n console.error(\"Invalid stored tinctures data, switching to defaults.\", err.message, tinctures);\n return false;\n }\n};\n","import {get} from \"svelte/store\";\nimport {scale, grad, diaper} from \"data/stores\";\n\nconst isFirefox = navigator.userAgent.includes(\"Firefox\");\n\nexport async function download(i, format = \"png\") {\n const coas = i || i === 0 ? [document.getElementById(\"coa\" + i)] : document.querySelectorAll(\"svg.coa\");\n let {width, height} = coas[0].getBoundingClientRect();\n const numberX = coas.length > 1 ? Math.floor(window.innerWidth / width) : 1;\n const numberY = coas.length > 1 ? Math.ceil(coas.length / numberX) : 1;\n\n const scaleValue = get(scale);\n width = Math.round(width * scaleValue);\n height = Math.round(height * scaleValue);\n\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n canvas.width = width * numberX;\n canvas.height = height * numberY;\n\n let loaded = 0;\n coas.forEach(async function (svg, i) {\n const url = await getURL(svg, width, height);\n format === \"svg\" ? downloadVector(url) : downloadRaster(url, i);\n });\n\n function downloadVector(url) {\n const link = document.createElement(\"a\");\n link.download = `armoria_${getTimestamp()}.svg`;\n link.href = url;\n link.click();\n window.setTimeout(() => window.URL.revokeObjectURL(URL), 5000);\n }\n\n function downloadRaster(url, i) {\n const img = new Image();\n img.src = url;\n img.onload = () => {\n URL.revokeObjectURL(url);\n ctx.drawImage(img, (i % numberX) * width, Math.floor(i / numberX) * height, width, height);\n loaded++;\n if (loaded === coas.length) drawCanvas(canvas, format);\n };\n }\n}\n\nasync function getURL(svg, width, height) {\n const addedElements = {};\n const clone = svg.cloneNode(true); // clone svg\n clone.setAttribute(\"width\", width);\n clone.setAttribute(\"height\", height);\n clone.removeAttribute(\"class\");\n clone.removeAttribute(\"id\");\n const d = clone.getElementsByTagName(\"defs\")[0];\n\n // remove grid if any\n const grid = clone.getElementById(\"grid\");\n const gridPattern = clone.getElementById(\"gridPattern\");\n if (grid) grid.remove();\n if (gridPattern) gridPattern.remove();\n\n const gr = get(grad),\n di = get(diaper);\n if (gr && gr !== \"no\") d.insertAdjacentHTML(\"beforeend\", defs.getElementById(gr).outerHTML);\n if (di && di !== \"no\") d.insertAdjacentHTML(\"beforeend\", defs.getElementById(di).outerHTML);\n clone.querySelectorAll(\".charge[charge]\").forEach(el => {\n const chargePattern = el.getAttribute(\"fill\").split(\"(#\")[1]?.split(\")\")[0];\n if (chargePattern) addPattern(chargePattern, d);\n const charge = el.getAttribute(\"charge\");\n if (addedElements[charge]) return;\n d.insertAdjacentHTML(\"beforeend\", defs.getElementById(charge).outerHTML);\n addedElements[charge] = true;\n });\n clone.querySelectorAll(\".ordinary\").forEach(el => {\n const ordinaryPattern = el.getAttribute(\"fill\").split(\"(#\")[1]?.split(\")\")[0];\n if (ordinaryPattern) addPattern(ordinaryPattern, d);\n });\n const fieldPattern = clone.getElementsByClassName(\"field\")[0].getAttribute(\"fill\").split(\"(#\")[1]?.split(\")\")[0];\n if (fieldPattern) addPattern(fieldPattern, d);\n const divisionPattern = clone.getElementsByClassName(\"division\")[0]?.querySelector(\"rect\").getAttribute(\"fill\").split(\"(#\")[1]?.split(\")\")[0];\n if (divisionPattern) addPattern(divisionPattern, d);\n\n function addPattern(pattern, d) {\n if (addedElements[pattern]) return;\n d.insertAdjacentHTML(\"beforeend\", document.getElementById(pattern).outerHTML);\n\n if (pattern.slice(0, 4) === \"semy\") {\n const charge = pattern.match(/semy_of_(.*?)-/)[1];\n if (!addedElements[charge]) {\n d.insertAdjacentHTML(\"beforeend\", document.getElementById(charge).outerHTML);\n addedElements[charge] = true;\n }\n }\n addedElements[pattern] = true;\n }\n\n const serialized = new XMLSerializer().serializeToString(clone);\n const pretty = isFirefox ? serialized : prettify(serialized); // don't prettify in Firefox\n const blob = new Blob([pretty], {type: \"image/svg+xml;charset=utf-8\"});\n const url = window.URL.createObjectURL(blob);\n window.setTimeout(() => window.URL.revokeObjectURL(url), 6000);\n return url;\n}\n\nfunction drawCanvas(canvas, format) {\n const link = document.createElement(\"a\");\n link.download = `armoria_${getTimestamp()}.${format}`;\n\n const URL = canvas.toDataURL(\"image/\" + format, 0.92);\n link.href = URL;\n link.click();\n\n setTimeout(function () {\n canvas.remove();\n window.URL.revokeObjectURL(link.href);\n }, 5000);\n}\n\nfunction getTimestamp() {\n const formatTime = time => (time < 10 ? \"0\" + time : time);\n const date = new Date();\n const year = date.getFullYear();\n const month = formatTime(date.getMonth() + 1);\n const day = formatTime(date.getDate());\n const hour = formatTime(date.getHours());\n const minutes = formatTime(date.getMinutes());\n const seconds = formatTime(date.getSeconds());\n return [year, month, day, hour, minutes, seconds].join(\"-\");\n}\n\nfunction prettify(source) {\n const xmlDoc = new DOMParser().parseFromString(source, \"image/svg+xml\");\n const xsltDoc = new DOMParser().parseFromString(\n [\n '',\n ' ',\n ' ',\n ' ',\n \" \",\n ' ',\n ' ',\n \" \",\n ' ',\n \" \"\n ].join(\"\\n\"),\n \"application/xml\"\n );\n\n const xsltProcessor = new XSLTProcessor();\n xsltProcessor.importStylesheet(xsltDoc);\n const resultDoc = xsltProcessor.transformToDocument(xmlDoc);\n const resultXml = new XMLSerializer().serializeToString(resultDoc);\n return resultXml;\n}\n","import { get } from \"svelte/store\";\nimport { iconedNav } from \"data/stores\";\nconst MIN_WIDTH = 1132;\nexport const checkForIconedNav = () => {\n const isIconed = get(iconedNav);\n const makeIconed = window.innerWidth < MIN_WIDTH;\n if (isIconed !== makeIconed)\n iconedNav.set(makeIconed);\n};\ncheckForIconedNav();\n","\n\n \n","\n\n{#if !$iconedNav}\n \n \n \n \n \n{/if}\n\n\n","import { get } from \"svelte/store\";\nimport { t } from \"svelte-i18n\";\nimport { forEach } from \"./utils\";\nconst translate = get(t);\nexport const tooltip = (element) => {\n if (!element.dataset.tooltip) {\n return;\n }\n const isTouchAvailable = \"ontouchstart\" in window;\n const div = document.createElement(\"div\");\n let limit;\n const gesture = element.dataset.gesture;\n const hotkey = element.dataset.hotkey;\n function mouseEnter() {\n removeTooltip();\n let text = element.dataset.tooltip;\n if (isTouchAvailable && gesture)\n text = `${text}. ${translate(\"tooltip.gesture\")}: ${gesture}`;\n if (!isTouchAvailable && hotkey)\n text = `${text}. ${translate(\"tooltip.hotkey\")}: ${hotkey}`;\n div.textContent = text;\n div.className = \"tooltip\";\n document.body.appendChild(div);\n const bbox = div.getBoundingClientRect();\n limit = [window.innerWidth - bbox.width, window.innerHeight - bbox.height];\n }\n function mouseMove(event) {\n div.style.left = `${Math.min(event.pageX + 10, limit[0])}px`;\n div.style.top = `${Math.min(event.pageY + 10, limit[1])}px`;\n }\n function removeTooltip() {\n forEach(\".tooltip\", el => el.remove());\n }\n element.on(\"mouseenter\", mouseEnter);\n element.on(\"mousemove\", mouseMove);\n element.on(\"mouseleave\", removeTooltip);\n return {\n destroy() {\n removeTooltip();\n }\n };\n};\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\n\n{#if label}\n \n {label}\n \n{/if}\n","\n\n\n {#if value && $iconedNav}\n \n \n \n {:else}\n \n {/if}\n\n \n \n\n\n","\n\n\n {#if value && $iconedNav}\n \n \n \n {:else}\n \n {/if}\n \n \n\n\n","\n\n{#if Boolean(locked)}\n 🔖 \n{/if}\n\n\n","\n\n\n
\n {#each shieldTypes as shieldType}\n
\n
\n {#each getShieldsInType(shieldType) as shieldName}\n
changeShield(shieldName)}>\n \n \n \n {$t(`shield.${shieldType}.${shieldName}`)}\n \n {/each}\n
\n\n
{$t(`shield.types.${shieldType}`)} \n
\n {/each}\n
\n\n {#key $shield}\n
\n \n {$t(`menu.shield`)}\n \n {/key}\n
\n\n\n","\n\n\n \n \n {$t(`menu.colors`)}\n \n","export const sizes = [\n [80, \"giant\"],\n [100, \"huge\"],\n [150, \"large\"],\n [200, \"medium\"],\n [300, \"small\"],\n [400, \"tiny\"]\n];\n\nexport const gradients = [\"no\", \"luster\", \"spotlight\", \"backlight\", \"brink\"];\n\nexport const diapers = [\"no\", \"nourse\", \"tessellation\", \"sennwald\", \"sulzbach\"];\n","\n\n\n
\n {#each gradients as gradient}\n changeGradient(gradient)}>\n {$t(`gradient.${gradient}`)}\n \n {/each}\n
\n\n {#key $grad}\n
\n \n {$t(`menu.gradient`)}\n \n {/key}\n
\n","\n\n\n
\n {#each diapers as d}\n changeDamasking(d)}>\n {$t(`diaper.${d}`)}\n \n {/each}\n
\n\n {#key $diaper}\n
\n \n {$t(`menu.damasking`)}\n \n {/key}\n
\n","\n\n\n
\n {#each sizes as [sizeNumber, sizeName]}\n changeSize(sizeNumber)}>\n {$t(`gallery.${sizeName}`)}\n \n {/each}\n
\n\n {#key $size}\n
\n \n {$t(`menu.gallery`)}\n \n {/key}\n
\n","\n\n\n \n \n\n\n","\n\n \n\n\n","\n\n \n\n\n","\n\n\n
\n \n {$t(`menu.color`)}\n {#if $border !== DEFAULT_BORDER}\n \n {/if}\n \n \n\n \n {$t(`menu.width`)}\n {#if $borderWidth !== DEFAULT_BORDER_WIDTH}\n \n {/if}\n \n \n
\n\n
\n {$t(`menu.border`)}\n \n
\n","\n\n\n
\n \n {$t(`menu.color`)}\n \n\n {#if $background !== DEFAULT_BACKGROUND}\n \n {/if}\n\n \n \n
\n\n
\n {$t(`menu.background`)}\n \n
\n","\n\n \n \n\n\n","\n\n\n
\n \n \n \n
\n\n
\n {$t(`menu.scale`)}\n \n
\n","\n\n\n
\n\n
\n \n \n \n \n \n \n \n \n
\n
\n","\n\n\n","\n\n\n","\n\n\n
\n
\n download(null, \"svg\")} tip={$t(\"tooltip.downloadSVG\")} hotkey=\"Ctrl + S\">{$t(`menu.downloadSVG`)} \n download(null, \"png\")} tip={$t(\"tooltip.downloadPNG\")} hotkey=\"Ctrl + P\">{$t(`menu.downloadPNG`)} \n download(null, \"jpeg\")} tip={$t(\"tooltip.downloadJPEG\")} hotkey=\"Ctrl + J\">{$t(`menu.downloadJPEG`)} \n\n {#if $state.edit}\n {$t(`menu.copyEditLink`)} \n {$t(`menu.copyApiLink`)} \n {$t(`menu.copyCoaString`)} \n {/if}\n
\n
\n","\n\n\n
\n
\n \n {$t(`menu.rasterCharge`)}\n \n\n \n {$t(`menu.vectorCharge`)}\n \n
\n
\n","\n\n{#if installable}\n \n{/if}\n","\n\n\n\n\n","\n\n\n","\n\n\n","\n\n \n","\n\n \n","\n\n \n","\n\n\n
\n
\n {#each $locales as langCode}\n \n {/each}\n
\n
\n","\n\n \n","\n\n\n \n {#if $isTextReady}\n \n \n \n \n\n {#if $iconedNav}\n {#if $state.edit}\n \n \n \n \n \n \n \n {:else}\n \n \n \n \n \n \n \n {/if}\n {:else}\n \n \n \n \n \n {/if}\n\n \n\n {#if $state.edit}\n \n \n \n {/if}\n {/if}\n \n\n\n","\n\n\n \n \n \n\n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n","\n\n\n\n\n","\n\n\n
($state.license = 0)} class=\"close\">× \n\n
\n
{$t(\"license.armoriaLicense\")} \n\n {#if chargeData.length}\n
\n
{$t(\"license.currentCoas\")} \n {/if}\n\n {#if isLicenseSame}\n
{chargeData.length > 1 ? $t(\"license.charges\") : charge.charge}: {@html charge.license}, {@html charge.source} \n {:else}\n
\n {#each chargeData as { charge, license, source }}\n
{charge} : {@html license}, {@html source}
\n {/each}\n
\n {/if}\n\n {#if wetaShield($shield)}\n
{@html $t(\"license.wetaShield\")}
\n {/if}\n\n
\n
{$t(\"license.code\")}: MIT License, {@html armoriaGitHub} \n
{$t(\"license.textMain\")}
\n
{$t(\"license.textRest\")}
\n\n
\n
{$t(\"license.icons\")}: {@html ccBy}, {@html fontAwesome} \n
\n
\n
\n\n\n","\n\n{#if $showGrid}\n \n \n \n \n \n \n{/if}\n","\n\n{#if $state.positions}\n \n \n {#each points as p}\n \n \n {p[0]} \n \n {/each}\n \n \n{/if}\n\n\n","import {get} from \"svelte/store\";\nimport {changes, grid, shield} from \"data/stores\";\nimport {shieldPositions, shieldSize} from \"data/shields\";\n\nexport function drag(event, charge, coa) {\n const el = event.currentTarget;\n const x0 = event.x;\n const y0 = event.y;\n\n const sizeAdj = el.closest(\"svg\").clientWidth / 200;\n document.addEventListener(\"mouseup\", stopDragging, {once: true});\n\n const {x = 0, y = 0, size = 1} = charge;\n const gridSize = get(grid);\n const positionElements = el.querySelectorAll(\"use\");\n const positions = shieldPositions[get(shield)] || shieldPositions.spanish;\n\n if (event.shiftKey) {\n document.addEventListener(\"mousemove\", resize);\n document.body.style.cursor = \"ns-resize\";\n } else if (event.ctrlKey || event.metaKey) {\n document.addEventListener(\"mousemove\", rotate);\n document.body.style.cursor = \"ew-resize\";\n } else {\n document.addEventListener(\"mousemove\", move);\n document.body.style.cursor = \"move\";\n }\n\n function move(event) {\n const dx = x + (event.x - x0) / sizeAdj;\n const dy = y + (event.y - y0) / sizeAdj;\n\n charge.x = Math.round(dx / gridSize) * gridSize;\n charge.y = Math.round(dy / gridSize) * gridSize;\n setGroupTransform(el, charge);\n }\n\n function resize(event) {\n const dy = y + (event.y - y0) / sizeAdj;\n charge.size = round(size + dy / -100);\n\n if (charge.p) {\n setElementTransform(charge);\n } else {\n setGroupTransform(el, charge);\n }\n }\n\n function rotate(event) {\n const cx = x + 100;\n const cy = y + 100;\n\n const x1 = event.x / sizeAdj;\n const y1 = event.y / sizeAdj;\n\n let a = 90 + (Math.atan2(y1 - cy, x1 - cx) * 180) / Math.PI;\n if (a > 180) a = (a % 180) - 180;\n if (a < -179) a = (a % 180) + 180;\n\n charge.angle = Math.round(a / gridSize) * gridSize;\n setGroupTransform(el, charge);\n }\n\n function setGroupTransform(el, charge) {\n const tr = transform(charge);\n\n if (tr) el.setAttribute(\"transform\", tr);\n else el.removeAttribute(\"transform\");\n }\n\n function setElementTransform(charge) {\n const validPositions = [...new Set(charge.p)].filter(p => positions[p]);\n validPositions.forEach((p, i) => {\n const element = positionElements[i];\n if (element) {\n const transform = getElTransform(charge, p, get(shield));\n if (transform) element.setAttribute(\"transform\", transform);\n else element.removeAttribute(\"transform\");\n }\n });\n }\n\n function stopDragging() {\n document.removeEventListener(\"mousemove\", move);\n document.removeEventListener(\"mousemove\", resize);\n document.removeEventListener(\"mousemove\", rotate);\n document.body.style.cursor = \"auto\";\n changes.add(JSON.stringify(coa));\n }\n}\n\nfunction round(n) {\n return Math.round(n * 100) / 100;\n}\n\nexport function transform(charge) {\n let {x = 0, y = 0, angle = 0, size = 1, p} = charge;\n if (p) size = 1; // size is defined on use element level\n\n if (size !== 1) {\n x = round(x + 100 - size * 100);\n y = round(y + 100 - size * 100);\n }\n\n let transform = \"\";\n if (x || y) transform += `translate(${x} ${y})`;\n if (angle) transform += ` rotate(${angle} ${size * 100} ${size * 100})`;\n if (size !== 1) transform += ` scale(${size})`;\n\n return transform ? transform.trim() : null;\n}\n\nexport function getElTransform(charge, p, shield) {\n const positions = shieldPositions[shield] || shieldPositions.spanish;\n const sizeModifier = shieldSize[shield] || 1;\n\n const size = round((charge.size || 1) * sizeModifier);\n const sx = charge.sinister ? -size : size;\n const sy = charge.reversed ? -size : size;\n let [x, y] = positions[p];\n x = round(x - 100 * (sx - 1));\n y = round(y - 100 * (sy - 1));\n\n const translate = x || y ? `translate(${x} ${y})` : null;\n const scale = sx !== 1 || sy !== 1 ? (sx === sy ? `scale(${sx})` : `scale(${sx} ${sy})`) : null;\n return translate && scale ? `${translate} ${scale}` : translate ? translate : scale ? scale : null;\n}\n","export const lines = {\n straight: \"m 0,100 v15 h 200 v -15 z\",\n engrailed: \"m 0,95 a 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 6.25,6.25 0 0 0 12.5,0 v 20 H 0 Z\",\n invecked: \"M0,102.5 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 a6.25,6.25,0,0,1,12.5,0 v12.5 H0 z\",\n embattled: \"M 0,105 H 2.5 V 95 h 15 v 10 h 15 V 95 h 15 v 10 h 15 V 95 h 15 v 10 h 15 V 95 h 15 v 10 h 15 V 95 h 15 v 10 h 15 V 95 h 15 v 10 h 15 V 95 h 15 v 10 h 2.5 v 10 H 0 Z\",\n wavy: \"m 200,115 v -15 c -8.9,3.5 -16,3.1 -25,0 -8.9,-3.5 -16,-3.1 -25,0 -8.9,3.5 -16,3.2 -25,0 -8.9,-3.5 -16,-3.2 -25,0 -8.9,3.5 -16,3.1 -25,0 -8.9,-3.5 -16,-3.1 -25,0 -8.9,3.5 -16,3.2 -25,0 -8.9,-3.5 -16,-3.2 -25,0 v 15 z\",\n raguly: \"m 200,95 h -3 l -5,10 h -10 l 5,-10 h -10 l -5,10 h -10 l 5,-10 h -10 l -5,10 h -10 l 5,-10 h -10 l -5,10 h -10 l 5,-10 h -10 l -5,10 h -10 l 5,-10 H 97 l -5,10 H 82 L 87,95 H 77 l -5,10 H 62 L 67,95 H 57 l -5,10 H 42 L 47,95 H 37 l -5,10 H 22 L 27,95 H 17 l -5,10 H 2 L 7,95 H 0 v 20 h 200 z\",\n dancetty: \"m 0,105 10,-15 15,20 15,-20 15,20 15,-20 15,20 15,-20 15,20 15,-20 15,20 15,-20 15,20 15,-20 10,15 v 10 H 0 Z\",\n dentilly: \"M 180,105 170,95 v 10 L 160,95 v 10 L 150,95 v 10 L 140,95 v 10 L 130,95 v 10 L 120,95 v 10 L 110,95 v 10 L 100,95 v 10 L 90,95 v 10 L 80,95 v 10 L 70,95 v 10 L 60,95 v 10 L 50,95 v 10 L 40,95 v 10 L 30,95 v 10 L 20,95 v 10 L 10,95 v 10 L 0,95 v 20 H 200 V 105 L 190,95 v 10 L 180,95 Z\",\n angled: \"m 0,95 h 100 v 10 h 100 v 10 H 0 Z\",\n urdy: \"m 200,90 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,6 -5,-6 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,6 -5,-6 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 l -5,-5 -5,5 v 10 l -5,5 -5,-5 V 95 L 0,90 v 25 h 200\",\n indented: \"m 100,95 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 v 20 H 0 V 95 l 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 5,-10 5,10 z\",\n bevilled: \"m 0,92.5 h 110 l -20,15 H 200 V 115 H 0 Z\",\n nowy: \"m 0,95 h 80 c 0,0 0.1,20.1 20,20 19.9,-0.1 20,-20 20,-20 h 80 v 20 H 0 Z\",\n nowyReversed: \"m 200,105 h -80 c 0,0 -0.1,-20.1 -20,-20 -19.9,0.1 -20,20 -20,20 H 0 v 10 h 200 z\",\n potenty: \"m 3,95 v 5 h 5 v 5 H 0 v 10 h 200 l 0.5,-10 H 193 v -5 h 5 v -5 h -15 v 5 h 5 v 5 h -15 v -5 h 5 v -5 h -15 v 5 h 5 v 5 h -15 v -5 h 5 v -5 h -15 v 5 h 5 v 5 h -15 v -5 h 5 v -5 h -15 v 5 h 5 v 5 h -15 v -5 h 5 v -5 h -15 v 5 h 5 v 5 H 100.5 93 v -5 h 5 V 95 H 83 v 5 h 5 v 5 H 73 v -5 h 5 V 95 H 63 v 5 h 5 v 5 H 53 v -5 h 5 V 95 H 43 v 5 h 5 v 5 H 33 v -5 h 5 V 95 H 23 v 5 h 5 v 5 H 13 v -5 h 5 v -5 z\",\n potentyDexter: \"m 200,105 h -2 v -10 0 0 h -10 v 5 h 5 v 5 H 183 V 95 h -10 v 5 h 5 v 5 H 168 V 95 h -10 v 5 h 5 v 5 H 153 V 95 h -10 v 5 h 5 v 5 H 138 V 95 h -10 v 5 h 5 v 5 H 123 V 95 h -10 v 5 h 5 v 5 h -10 v 0 0 -10 H 98 v 5 h 5 v 5 H 93 V 95 H 83 v 5 h 5 v 5 H 78 V 95 H 68 v 5 h 5 v 5 H 63 V 95 H 53 v 5 h 5 v 5 H 48 V 95 H 38 v 5 h 5 v 5 H 33 V 95 H 23 v 5 h 5 v 5 H 18 V 95 H 8 v 5 h 5 v 5 H 3 V 95 H 0 v 20 h 200 z\",\n potentySinister: \"m 2.5,95 v 10 H 0 v 10 h 202.5 v -15 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 h -10 v 10 h -10 v -5 h 5 v -5 z\",\n embattledGhibellin: \"M 200,200 V 100 l -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 -5,-5 v 10 l -5,-5 -5,5 V 95 l -5,5 v 15 h 200\",\n embattledNotched: \"m 200,105 h -5 V 95 l -5,5 -5,-5 v 10 h -5 V 95 l -5,5 -5,-5 v 10 h -5 V 95 l -5,5 -5,-5 v 10 h -5 V 95 l -5,5 -5,-5 v 10 h -5 V 95 l -5,5 -5,-5 v 10 h -5 V 95 l -5,5 -5,-5 v 10 h -5 V 95 l -5,5 -5,-5 v 10 H 90 V 95 l -5,5 -5,-5 v 10 H 75 V 95 l -5,5 -5,-5 v 10 H 60 V 95 l -5,5 -5,-5 v 10 H 45 V 95 l -5,5 -5,-5 v 10 H 30 V 95 l -5,5 -5,-5 v 10 H 15 V 95 l -5,5 -5,-5 v 10 H 0 v 10 h 200\",\n embattledGrady: \"m 0,95 v 20 H 200 V 95 h -2.5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 h -5 v 5 h -5 v 5 h -5 v -5 h -5 v -5 z\",\n dovetailed: \"m 200,95 h -7 l 4,10 h -14 l 4,-10 h -14 l 4,10 h -14 l 4,-10 h -14 l 4,10 h -14 l 4,-10 h -14 l 4,10 h -14 l 4,-10 h -14 l 4,10 h -14 l 4,-10 H 93 l 4,10 H 83 L 87,95 H 73 l 4,10 H 63 L 67,95 H 53 l 4,10 H 43 L 47,95 H 33 l 4,10 H 23 L 27,95 H 13 l 4,10 H 3 L 7,95 H 0 v 20 h 200\",\n dovetailedIndented: \"m 200,100 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 -7,-5 4,10 -7,-5 -7,5 4,-10 -7,5 v 15 h 200\",\n nebuly: \"m 13.1,89.8 c -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.2,4.5 -7.3,4.5 -0.5,0 -2.2,-0.2 -2.2,-0.2 V 115 h 200 v -10.1 c -3.7,-0.2 -6.7,-2.2 -6.7,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.8,-1.9 1.8,-3.1 0,-2.5 -3.2,-4.5 -7.2,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.8,-1.9 1.8,-3.1 0,-2.5 -3.2,-4.5 -7.2,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 -1.5,4.1 -4.2,4.4 -8.8,4.5 -4.7,-0.1 -8.7,-1.5 -8.9,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 -4.1,0 -7.3,2 -7.3,4.5 0,1.2 0.7,2.3 1.8,3.1 1.2,0.7 1.9,1.8 1.9,3 0,2.5 -3.3,4.5 -7.3,4.5 -4,0 -7.3,-2 -7.3,-4.5 0,-1.2 0.7,-2.3 1.9,-3 1.2,-0.8 1.9,-1.9 1.9,-3.1 0,-2.5 -3.3,-4.5 -7.3,-4.5 z\",\n rayonne: \"M0 115l-.1-6 .2.8c1.3-1 2.3-2.5 2.9-4.4.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4A9 9 0 015.5 90c-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 2.1 3.1 3.1 4.6 1 1.6 2.4 3.1 2.7 4.8.3 1.7.3 3.3 0 5.2 1.3-1 2.6-2.7 3.2-4.6.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.5 2 1.7 3.6 3.1 4.6a9 9 0 013.1 4.6c.5 2 .4 3.9-.3 5.4a9 9 0 003.1-4.6c.5-2 .4-3.9-.3-5.4-.7-1.5-.8-3.4-.3-5.4.5-2 1.7-3.6 3.1-4.6-.7 1.5-.8 3.4-.3 5.4.75 2.79 2.72 4.08 4.45 5.82L200 115z\",\n seaWaves: \"m 28.83,94.9 c -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.44,-3.6 3.6,-3.6 0.7,0 1.36,0.17 1.93,0.48 -0.33,-2.03 -2.19,-3.56 -4.45,-3.56 -4.24,0 -6.91,3.13 -8.5,5.13 V 115 h 200 v -14.89 c -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.2,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.21,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.21,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.2,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.44,-3.6 3.6,-3.6 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.21,-3.55 -4.46,-3.55 -4.25,0 -6.6,3.09 -8.19,5.09 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.21,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.2,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.2,-3.55 -4.46,-3.55 -4.25,0 -7.16,3.17 -8.75,5.18 -1.59,2.01 -4.5,5.18 -8.75,5.18 -2.16,0 -3.91,-1.63 -3.91,-3.64 0,-2.01 1.75,-3.64 3.91,-3.64 0.7,0 1.36,0.17 1.93,0.48 -0.34,-2.01 -2.21,-3.55 -4.46,-3.55 z\",\n dragonTeeth: \"M 9.4,85 C 6.5,88.1 4.1,92.9 3,98.8 1.9,104.6 2.3,110.4 3.8,115 2.4,113.5 0,106.6 0,109.3 v 5.7 h 200 v -5.7 c -1.1,-2.4 -2,-5.1 -2.6,-8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.9 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.9 -0.7,11.6 0.8,16.2 -1.4,-1.5 -2.8,-3.9 -3.8,-6.1 -1.1,-2.4 -2.3,-6.1 -2.6,-7.7 -0.2,-5.9 0.2,-11.7 1.7,-16.3 -3,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.8 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1,-5.8 -0.7,-11.6 0.9,-16.2 -3,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.8 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.8 -0.7,-11.6 0.9,-16.2 -3,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.8 -0.7,11.6 0.8,16.2 -2.9,-3.1 -5.3,-7.9 -6.4,-13.8 C 63,95.4 63.4,89.6 64.9,85 c -2.9,3.1 -5.3,7.9 -6.3,13.8 -1.1,5.8 -0.7,11.6 0.8,16.2 -3,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.8 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1,5.8 -0.6,11.6 0.9,16.2 -3,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.8 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1,5.8 -0.7,11.6 0.9,16.2 -3,-3.1 -5.3,-7.9 -6.4,-13.8 -1.1,-5.8 -0.7,-11.6 0.8,-16.2 -2.9,3.1 -5.3,7.9 -6.4,13.8 -1.1,5.8 -0.7,11.6 0.9,16.2 -3,-3.1 -5.3,-7.9 -6.4,-13.8 C 18.6,95.4 19,89.6 20.5,85 17.6,88.1 15.2,92.9 14.1,98.8 13,104.6 13.4,110.4 14.9,115 12,111.9 9.6,107.1 8.6,101.2 7.5,95.4 7.9,89.6 9.4,85 Z\",\n firTrees: \"m 3.9,90 -4,7 2,-0.5 L 0,100 v 15 h 200 v -15 l -1.9,-3.5 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4.1,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4.1,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 -4,-7 -4,7 2,-0.5 -4,7 2,-0.5 -4,7 -4,-7 2,0.5 -4,-7 2,0.5 z\",\n flechy: \"m 0,100 h 85 l 15,-15 15,15 h 85 v 15 H 0 Z\",\n barby: \"m 0,100 h 85 l 15,15 15,-15 h 85 v 15 H 0 Z\",\n enclavy: \"M 0,100 H 85 V 85 h 30 v 15 h 85 v 15 H 0 Z\",\n escartely: \"m 0,100 h 85 v 15 h 30 v -15 h 85 v 15 H 0 Z\",\n arched: \"m 100,95 c 40,-0.2 100,20 100,20 H 0 c 0,0 60,-19.8 100,-20 z\",\n archedReversed: \"m 0,85 c 0,0 60,20.2 100,20 40,-0.2 100,-20 100,-20 v 30 H 0 Z\"\n}\n\nexport const templates = {\n // straight divisions\n perFess: ``,\n perPale: ``,\n perBend: ` `,\n perBendSinister: ` `,\n perChevron: ` `,\n perChevronReversed: ` `,\n perCross: ``,\n perPile: ` `,\n perSaltire: ` `,\n gyronny: ` `,\n chevronny: ` `,\n // lined divisions\n perFessLined: line => ``,\n perPaleLined: line => ``,\n perBendLined: line => ``,\n perBendSinisterLined: line => ``,\n perChevronLined: line => ` `,\n perChevronReversedLined: line => ` `,\n perCrossLined: line => ` `,\n perPileLined: line => ` `,\n // straight ordinaries\n fess: ``,\n pale: ``,\n bend: ` `,\n bendSinister: ` `,\n chief: ``,\n bar: ``,\n gemelle: ``,\n fessCotissed: ``,\n fessDoubleCotissed: ``,\n bendlet: ` `,\n bendletSinister: ` `,\n terrace: ``,\n cross: ` `,\n crossParted: ` `,\n saltire: ` `,\n saltireParted: ` `,\n mount: ` `,\n point: ` `,\n flaunches: ` `,\n gore: ` `,\n pall: ` `,\n pallReversed: ` `,\n chevron: ` `,\n chevronReversed: ` `,\n gyron: ` `,\n quarter: ``,\n canton: ``,\n pile: ` `,\n pileInBend: ` `,\n pileInBendSinister: ` `,\n piles: ` `,\n pilesInPoint: ` `,\n label: ` `,\n // lined ordinaries\n fessLined: line => ``,\n paleLined: line => ``,\n bendLined: line => ``,\n bendSinisterLined: line => ``,\n chiefLined: line => ``,\n barLined: line => ``,\n gemelleLined: line => ` `,\n fessCotissedLined: line => ``,\n fessDoubleCotissedLined: line => ` `,\n bendletLined: line => ``,\n bendletSinisterLined: line => ``,\n terraceLined: line => ``,\n crossLined: line => ` `,\n crossPartedLined: line => ` `,\n saltireLined: line => ` `,\n saltirePartedLined: line => ` `\n}\n\nexport const patterns = {\n semy: (p, c1, c2, size, chargeId) => ` `,\n vair: (p, c1, c2, size) => ` `,\n counterVair: (p, c1, c2, size) => ` `,\n vairInPale: (p, c1, c2, size) => ` `,\n vairEnPointe: (p, c1, c2, size) => ` `,\n vairAncien: (p, c1, c2, size) => ` `,\n potent: (p, c1, c2, size) => ` `,\n counterPotent: (p, c1, c2, size) => ` `,\n potentInPale: (p, c1, c2, size) => ` `,\n potentEnPointe: (p, c1, c2, size) => ` `,\n ermine: (p, c1, c2, size) => ` `,\n chequy: (p, c1, c2, size) => ` `,\n lozengy: (p, c1, c2, size) => ` `,\n fusily: (p, c1, c2, size) => ` `,\n pally: (p, c1, c2, size) => ` `,\n barry: (p, c1, c2, size) => ` `,\n gemelles: (p, c1, c2, size) => ` `,\n bendy: (p, c1, c2, size) => ` `,\n bendySinister: (p, c1, c2, size) => ` `,\n palyBendy: (p, c1, c2, size) => ` `,\n barryBendy: (p, c1, c2, size) => ` `,\n pappellony: (p, c1, c2, size) => ` `,\n pappellony2: (p, c1, c2, size) => ` `,\n scaly: (p, c1, c2, size) => ` `,\n plumetty: (p, c1, c2, size) => ` `,\n masoned: (p, c1, c2, size) => ` `,\n fretty: (p, c1, c2, size) => ` `,\n grillage: (p, c1, c2, size) => ` `,\n chainy: (p, c1, c2, size) => ` `,\n maily: (p, c1, c2, size) => ` `,\n honeycombed: (p, c1, c2, size) => ` `\n}\n","import {get} from \"svelte/store\";\nimport {templates, lines, patterns} from \"data/templates\";\nimport {shieldPaths} from \"data/shields\";\nimport {colors, shield} from \"data/stores\";\n\nconst chargesGroup = document.getElementById(\"charges\");\nconst colorsData = get(colors);\nconst loadedCharges = {};\n\nexport const getTemplate = (id, line) => {\n const linedId = id + \"Lined\";\n if (!line || line === \"straight\" || !templates[linedId]) return templates[id];\n const linePath = lines[line];\n return templates[linedId](linePath);\n};\n\nexport const addPattern = patternId => {\n if (!patternId) return console.error(\"No patternId\");\n if (document.getElementById(patternId)) return; // already added;\n\n const [pattern, t1, t2, size] = patternId.split(\"-\");\n const charge = semy(patternId);\n if (charge) addCharge(charge);\n\n const html = patterns[charge ? \"semy\" : pattern](patternId, clr(t1), clr(t2), getSizeMod(size), charge);\n document.getElementById(\"patterns\").insertAdjacentHTML(\"beforeend\", html);\n};\n\nfunction checkPattern(string) {\n if (string?.includes(\"-\")) addPattern(string);\n}\n\nexport function addShieldPatterns(coa) {\n checkPattern(coa.t1);\n checkPattern(coa.division?.t);\n for (let o of (coa.ordinaries || [])) {\n checkPattern(o.t);\n }\n for (let c of (coa.charges || [])) {\n checkPattern(c.t);\n checkPattern(c.t2);\n checkPattern(c.t3);\n }\n}\n\nfunction semy(string) {\n const isSemy = /^semy/.test(string);\n if (!isSemy) return false;\n return string.match(/semy_of_(.*?)-/)[1];\n}\n\nexport function addCharge(charge) {\n charge.slice(0, 12) === \"inescutcheon\" ? addInescutcheon(charge) : fetchCharge(charge);\n}\n\nfunction addInescutcheon(charge) {\n const shieldName = charge.length > 12 ? charge.slice(12, 13).toLowerCase() + charge.slice(13) : get(shield);\n const id = charge.length > 12 ? charge : \"inescutcheon\" + shieldName.charAt(0).toUpperCase() + shieldName.slice(1);\n\n if (loadedCharges[id]) return; // already added\n loadedCharges[id] = true;\n\n const licenseAttrs = [\"noldor\", \"gondor\", \"easterling\", \"ironHills\", \"urukHai\", \"moriaOrc\"].includes(shieldName)\n ? `author=\"Weta Workshop\" source=\"www.wetanz.com\" license=\"https://en.wikipedia.org/wiki/Fair_use\"`\n : `author=Azgaar license=\"https://creativecommons.org/publicdomain/zero/1.0\"`;\n const g = ` `;\n chargesGroup.insertAdjacentHTML(\"beforeend\", g);\n}\n\nfunction fetchCharge(charge) {\n if (loadedCharges[charge]) return; // already added\n loadedCharges[charge] = true;\n\n fetch(\"charges/\" + charge + \".svg\")\n .then(res => {\n if (res.ok) return res.text();\n else throw new Error(\"Cannot fetch charge\");\n })\n .then(text => {\n const el = document.createElement(\"html\");\n el.innerHTML = text;\n const g = el.querySelector(\"g\");\n const metadata = el.getElementsByTagName(\"metadata\")[0];\n\n if (metadata) {\n const author = metadata.getAttribute(\"author\");\n const source = metadata.getAttribute(\"source\");\n const license = metadata.getAttribute(\"license\");\n if (author) g.setAttribute(\"author\", author);\n if (source) g.setAttribute(\"source\", source);\n if (license) g.setAttribute(\"license\", license);\n }\n\n chargesGroup.insertAdjacentHTML(\"beforeend\", g.outerHTML);\n })\n .catch(err => console.error(err));\n}\n\nfunction clr(tincture) {\n if (!colorsData[tincture]) throw new Error(`Tincture ${tincture} is not found`);\n return colorsData[tincture];\n}\n\nfunction getSizeMod(size) {\n if (size === \"small\") return 0.8;\n if (size === \"smaller\") return 0.5;\n if (size === \"smallest\") return 0.25;\n if (size === \"big\") return 1.6;\n if (size === \"bigger\") return 2;\n return 1;\n}\n","\n\n{#if ordinary.ordinary === \"bordure\"}\n \n \n \n{:else if ordinary.ordinary === \"orle\"}\n \n \n \n{:else}\n \n {@html getTemplate(ordinary.ordinary, ordinary.line)}\n \n{/if}\n","\n\n\n {#each validPositions as position}\n \n {/each}\n \n","\n\n\n \n \n \n {#if division && division.division !== \"no\"}\n \n {@html getTemplate(division.division, division.line)}\n \n {/if}\n\n \n \n\n\n \n \n\n {#if division && division.division !== \"no\"}\n \n {#each ordinariesRegular as ordinary, i}\n {#if ordinary.divided === \"field\"}\n \n {:else if ordinary.divided === \"counter\"}\n \n {/if}\n {/each}\n\n {#if diaperType === \"field\"}\n \n {/if}\n\n {#each charges as charge, i}\n {#if charge.divided === \"field\"}\n \n {:else if charge.divided === \"counter\"}\n \n {/if}\n {/each}\n\n {#each ordinariesAboveCharges as ordinary, i}\n {#if ordinary.divided === \"field\"}\n \n {:else if ordinary.divided === \"counter\"}\n \n {/if}\n {/each}\n\n \n \n \n\n {#each ordinariesRegular as ordinary, i}\n {#if ordinary.divided === \"division\"}\n \n {:else if ordinary.divided === \"counter\"}\n \n {/if}\n {/each}\n\n {#if diaperType === \"division\"}\n \n {/if}\n\n {#each charges as charge, i}\n {#if charge.divided === \"division\"}\n \n {:else if charge.divided === \"counter\"}\n \n {/if}\n {/each}\n\n {#each ordinariesAboveCharges as ordinary, i}\n {#if ordinary.divided === \"division\"}\n \n {:else if ordinary.divided === \"counter\"}\n \n {/if}\n {/each}\n \n {/if}\n\n \n {#each ordinariesRegular as ordinary, i}\n {#if !ordinary.divided}\n \n {/if}\n {/each}\n\n {#if diaperType === \"overall\"}\n \n {/if}\n\n {#each charges as charge, i}\n {#if !charge.divided || !division}\n \n {/if}\n {/each}\n\n {#each ordinariesAboveCharges as ordinary, i}\n {#if !ordinary.divided}\n \n {/if}\n {/each}\n \n\n \n","\n\n\n \n {#if isEdit}\n \n \n {/if}\n \n","export const positionsSelect = [\n \"a\",\n \"b\",\n \"c\",\n \"d\",\n \"e\",\n \"f\",\n \"g\",\n \"h\",\n \"i\",\n \"y\",\n \"z\",\n \"kn\",\n \"bh\",\n \"df\",\n \"pq\",\n \"jo\",\n \"lm\",\n \"abc\",\n \"def\",\n \"ghi\",\n \"adg\",\n \"beh\",\n \"cfi\",\n \"jeo\",\n \"jln\",\n \"kmo\",\n \"peq\",\n \"lem\",\n \"bhdf\",\n \"jleh\",\n \"acegi\",\n \"bdefh\",\n \"kenpq\",\n \"abcpqh\",\n \"abcdefgzi\",\n \"ABCDEFGHIJKL\"\n];\n\nexport const positions = {\n conventional: {\n e: 20,\n abcdefgzi: 3,\n beh: 3,\n behdf: 2,\n acegi: 1,\n kn: 3,\n bhdf: 1,\n jeo: 1,\n abc: 3,\n jln: 6,\n jlh: 3,\n kmo: 2,\n jleh: 1,\n def: 3,\n abcpqh: 4,\n ABCDEFGHIJKL: 1\n },\n complex: {e: 40, beh: 1, kn: 1, jeo: 1, abc: 2, jln: 7, jlh: 2, def: 1, abcpqh: 1},\n divisions: {\n perPale: {e: 15, pq: 5, jo: 2, jl: 2, ABCDEFGHIJKL: 1},\n perFess: {e: 12, kn: 4, jkl: 2, gizgiz: 1, jlh: 3, kmo: 1, ABCDEFGHIJKL: 1},\n perBend: {e: 5, lm: 5, bcfdgh: 1},\n perBendSinister: {e: 1, jo: 1},\n perCross: {e: 4, jlmo: 1, j: 1, jo: 2, jl: 1},\n perChevron: {e: 1, jlh: 1, dfk: 1, dfbh: 2, bdefh: 1},\n perChevronReversed: {e: 1, mok: 2, dfh: 2, dfbh: 1, bdefh: 1},\n perSaltire: {bhdf: 8, e: 3, abcdefgzi: 1, bh: 1, df: 1, ABCDEFGHIJKL: 1},\n perPile: {ee: 3, be: 2, abceh: 1, abcabc: 1, jleh: 1}\n },\n inescutcheon: {e: 4, jln: 1}\n};\n\nexport const lines = {\n straight: 50,\n wavy: 8,\n engrailed: 4,\n invecked: 3,\n rayonne: 3,\n embattled: 1,\n raguly: 1,\n urdy: 1,\n dancetty: 1,\n indented: 2,\n dentilly: 1,\n bevilled: 1,\n angled: 1,\n flechy: 1,\n barby: 1,\n enclavy: 1,\n escartely: 1,\n arched: 2,\n archedReversed: 1,\n nowy: 1,\n nowyReversed: 1,\n embattledGhibellin: 1,\n embattledNotched: 1,\n embattledGrady: 1,\n dovetailedIndented: 1,\n dovetailed: 1,\n potenty: 1,\n potentyDexter: 1,\n potentySinister: 1,\n nebuly: 2,\n seaWaves: 1,\n dragonTeeth: 1,\n firTrees: 1\n};\n\nexport const divisions = {\n variants: {\n perPale: 5,\n perFess: 5,\n perBend: 2,\n perBendSinister: 1,\n perChevron: 1,\n perChevronReversed: 1,\n perCross: 5,\n perPile: 1,\n perSaltire: 1,\n gyronny: 1,\n chevronny: 1\n },\n perPale: lines,\n perFess: lines,\n perBend: lines,\n perBendSinister: lines,\n perChevron: lines,\n perChevronReversed: lines,\n perCross: {\n straight: 20,\n wavy: 5,\n engrailed: 4,\n invecked: 3,\n rayonne: 1,\n embattled: 1,\n raguly: 1,\n urdy: 1,\n indented: 2,\n dentilly: 1,\n bevilled: 1,\n angled: 1,\n embattledGhibellin: 1,\n embattledGrady: 1,\n dovetailedIndented: 1,\n dovetailed: 1,\n potenty: 1,\n potentyDexter: 1,\n potentySinister: 1,\n nebuly: 1\n },\n perPile: lines\n};\n\nexport const ordinaries = {\n lined: {\n pale: 7,\n fess: 5,\n bend: 3,\n bendSinister: 2,\n chief: 5,\n bar: 2,\n gemelle: 1,\n fessCotissed: 1,\n fessDoubleCotissed: 1,\n bendlet: 2,\n bendletSinister: 1,\n terrace: 3,\n cross: 6,\n crossParted: 1,\n saltire: 2,\n saltireParted: 1\n },\n straight: {\n bordure: 8,\n orle: 4,\n mount: 1,\n point: 2,\n flaunches: 1,\n gore: 1,\n gyron: 1,\n quarter: 1,\n canton: 2,\n pall: 3,\n pallReversed: 2,\n chevron: 4,\n chevronReversed: 3,\n pile: 2,\n pileInBend: 2,\n pileInBendSinister: 1,\n piles: 1,\n pilesInPoint: 2,\n label: 1\n },\n data: {\n bar: {\n positionsOn: {defdefdef: 1},\n positionsOff: {abc: 2, abcgzi: 1, jlh: 5, bgi: 2, ach: 1}\n },\n bend: {\n positionsOn: {ee: 2, jo: 1, joe: 1},\n positionsOff: {ccg: 2, ccc: 1}\n },\n bendSinister: {\n positionsOn: {ee: 1, lm: 1, lem: 4},\n positionsOff: {aai: 2, aaa: 1}\n },\n bendlet: {\n positionsOn: {joejoejoe: 1},\n positionsOff: {ccg: 2, ccc: 1}\n },\n bendletSinister: {\n positionsOn: {lemlemlem: 1},\n positionsOff: {aai: 2, aaa: 1}\n },\n bordure: {\n positionsOn: {ABCDEFGHIJKL: 1},\n positionsOff: {e: 4, jleh: 2, kenken: 1, peqpeq: 1}\n },\n canton: {\n positionsOn: {yyyy: 1},\n positionsOff: {e: 5, beh: 1, def: 1, bdefh: 1, kn: 1}\n },\n chevron: {\n positionsOn: {ach: 3, hhh: 1}\n },\n chevronReversed: {\n positionsOff: {bbb: 1}\n },\n chief: {\n positionsOn: {abc: 5, bbb: 1},\n positionsOff: {emo: 2, emoz: 1, ez: 2}\n },\n cross: {\n positionsOn: {eeee: 1, behdfbehdf: 3, behbehbeh: 2},\n positionsOff: {acgi: 1}\n },\n crossParted: {\n positionsOn: {e: 5, ee: 1}\n },\n fess: {\n positionsOn: {ee: 1, def: 3},\n positionsOff: {abc: 3, abcz: 1}\n },\n fessCotissed: {\n positionsOn: {ee: 1, def: 3}\n },\n fessDoubleCotissed: {\n positionsOn: {ee: 1, defdef: 3}\n },\n flaunches: {\n positionsOff: {e: 3, kn: 1, beh: 3}\n },\n gemelle: {\n positionsOff: {abc: 1}\n },\n gyron: {\n positionsOff: {bh: 1}\n },\n label: {\n positionsOff: {defgzi: 2, eh: 3, defdefhmo: 1, egiegi: 1, pqn: 5}\n },\n mount: {\n positionsOff: {e: 5, def: 1, bdf: 3}\n },\n orle: {\n positionsOff: {e: 4, jleh: 1, kenken: 1, peqpeq: 1}\n },\n pale: {\n positionsOn: {ee: 12, beh: 10, kn: 3, bb: 1},\n positionsOff: {yyy: 1}\n },\n pall: {\n positionsOn: {ee: 1, jleh: 5, jlhh: 3},\n positionsOff: {BCKFEILGJbdmfo: 1}\n },\n pallReversed: {\n positionsOn: {ee: 1, bemo: 5},\n positionsOff: {aczac: 1}\n },\n pile: {\n positionsOn: {bbb: 1},\n positionsOff: {acdfgi: 1, acac: 1}\n },\n pileInBend: {\n positionsOn: {eeee: 1, eeoo: 1},\n positionsOff: {cg: 1}\n },\n pileInBendSinister: {\n positionsOn: {eeee: 1, eemm: 1},\n positionsOff: {ai: 1}\n },\n point: {\n positionsOff: {e: 2, def: 1, bdf: 3, acbdef: 1}\n },\n quarter: {\n positionsOn: {jjj: 1},\n positionsOff: {e: 1}\n },\n saltire: {\n positionsOn: {ee: 5, jlemo: 1}\n },\n saltireParted: {\n positionsOn: {e: 5, ee: 1}\n },\n terrace: {\n positionsOff: {e: 5, def: 1, bdf: 3}\n }\n }\n};\n\nconst chargeData = {\n agnusDei: {\n colors: 2,\n sinister: true\n },\n angel: {\n colors: 2,\n positions: {e: 1}\n },\n anvil: {\n sinister: true\n },\n apple: {\n colors: 2\n },\n arbalest: {\n colors: 3,\n reversed: true\n },\n armillarySphere: {\n positions: {e: 1}\n },\n arrow: {\n colors: 3,\n reversed: true\n },\n arrowsSheaf: {\n colors: 3,\n reversed: true\n },\n axe: {\n colors: 2,\n sinister: true\n },\n badgerStatant: {\n colors: 2,\n sinister: true\n },\n banner: {\n colors: 2\n },\n basilisk: {\n colors: 3,\n sinister: true\n },\n bearPassant: {\n colors: 3,\n sinister: true\n },\n bearRampant: {\n colors: 3,\n sinister: true\n },\n bee: {\n colors: 3,\n reversed: true\n },\n bell: {\n colors: 2\n },\n boarHeadErased: {\n colors: 3,\n sinister: true\n },\n boarRampant: {\n colors: 3,\n sinister: true,\n positions: {e: 12, beh: 1, kn: 1, jln: 2}\n },\n boat: {\n colors: 2\n },\n bookClosed: {\n colors: 3\n },\n bookOpen: {\n colors: 3\n },\n bow: {\n sinister: true\n },\n bowWithArrow: {\n colors: 3,\n reversed: true\n },\n bucket: {\n colors: 2\n },\n bugleHorn: {\n colors: 2\n },\n bugleHorn2: {\n colors: 2\n },\n bullHeadCaboshed: {\n colors: 2\n },\n bullPassant: {\n colors: 3,\n sinister: true\n },\n butterfly: {\n colors: 3,\n reversed: true\n },\n camel: {\n colors: 2,\n sinister: true\n },\n cancer: {\n reversed: true\n },\n cannon: {\n colors: 2,\n sinister: true\n },\n caravel: {\n colors: 3,\n sinister: true\n },\n castle: {\n colors: 2\n },\n catPassantGuardant: {\n colors: 2,\n sinister: true\n },\n cavalier: {\n positions: {e: 1}\n },\n chalice: {\n colors: 2\n },\n cinquefoil: {\n reversed: true\n },\n cock: {\n colors: 3,\n sinister: true\n },\n cowStatant: {\n colors: 3,\n sinister: true\n },\n crescent: {\n reversed: true\n },\n crocodile: {\n colors: 2,\n sinister: true\n },\n crosier: {\n sinister: true\n },\n crossGamma: {\n sinister: true\n },\n crossLatin: {\n reversed: true\n },\n crossTau: {\n reversed: true\n },\n crossTriquetra: {\n reversed: true\n },\n crown: {\n colors: 2,\n positions: {e: 10, abcdefgzi: 1, beh: 3, behdf: 2, acegi: 1, kn: 1, pq: 2, abc: 1, jln: 4, jleh: 1, def: 2, abcpqh: 3}\n },\n crown2: {\n colors: 3,\n positions: {e: 10, abcdefgzi: 1, beh: 3, behdf: 2, acegi: 1, kn: 1, pq: 2, abc: 1, jln: 4, jleh: 1, def: 2, abcpqh: 3}\n },\n deerHeadCaboshed: {\n colors: 2\n },\n dolphin: {\n colors: 2,\n sinister: true\n },\n donkeyHeadCaboshed: {\n colors: 2\n },\n dove: {\n colors: 2,\n natural: \"argent\",\n sinister: true\n },\n doveDisplayed: {\n colors: 2,\n natural: \"argent\",\n sinister: true\n },\n dragonPassant: {\n colors: 3,\n sinister: true\n },\n dragonRampant: {\n colors: 3,\n sinister: true\n },\n drum: {\n colors: 3\n },\n duck: {\n colors: 3,\n sinister: true\n },\n eagle: {\n colors: 3,\n sinister: true,\n positions: {e: 15, beh: 1, kn: 1, abc: 1, jlh: 2, def: 2, pq: 1}\n },\n eagleTwoHeads: {\n colors: 3\n },\n elephant: {\n colors: 2,\n sinister: true\n },\n elephantHeadErased: {\n colors: 2,\n sinister: true\n },\n falchion: {\n colors: 2,\n reversed: true\n },\n falcon: {\n colors: 3,\n sinister: true\n },\n fasces: {\n colors: 3,\n sinister: true\n },\n fly: {\n colors: 3,\n natural: \"sable\",\n reversed: true\n },\n foot: {\n sinister: true\n },\n fountain: {\n natural: \"azure\"\n },\n frog: {\n reversed: true\n },\n garb: {\n colors: 2,\n natural: \"or\",\n positions: {e: 1, def: 3, abc: 2, beh: 1, kn: 1, jln: 3, jleh: 1, abcpqh: 1, joe: 1, lme: 1}\n },\n gauntlet: {\n sinister: true,\n reversed: true\n },\n goat: {\n colors: 3,\n sinister: true\n },\n goutte: {\n reversed: true\n },\n grapeBunch: {\n colors: 3\n },\n greyhoundCourant: {\n colors: 3,\n sinister: true,\n positions: {e: 10, def: 1, abc: 1, bdefh: 1, jlh: 1, abcpqh: 1}\n },\n greyhoundRampant: {\n colors: 2,\n sinister: true,\n positions: {e: 10, def: 1, abc: 1, bdefh: 1, jlh: 1, abcpqh: 1}\n },\n greyhoundSejant: {\n colors: 3,\n sinister: true\n },\n griffinPassant: {\n colors: 3,\n sinister: true,\n positions: {e: 10, def: 2, abc: 2, bdefh: 1, kn: 1, jlh: 2, abcpqh: 1}\n },\n griffinRampant: {\n colors: 3,\n sinister: true,\n positions: {e: 10, def: 1, abc: 1, bdefh: 1, jlh: 1, abcpqh: 1}\n },\n hand: {\n sinister: true,\n reversed: true,\n positions: {e: 10, jln: 2, kn: 1, jeo: 1, abc: 2, pqe: 1}\n },\n harp: {\n colors: 2,\n sinister: true\n },\n hatchet: {\n colors: 2,\n sinister: true\n },\n head: {\n colors: 2,\n sinister: true,\n positions: {e: 1}\n },\n headWreathed: {\n colors: 3,\n sinister: true,\n positions: {e: 1}\n },\n hedgehog: {\n colors: 3,\n sinister: true\n },\n helmet: {\n sinister: true\n },\n heron: {\n colors: 2,\n sinister: true\n },\n hindStatant: {\n colors: 2,\n sinister: true\n },\n horseHeadCouped: {\n sinister: true\n },\n horsePassant: {\n colors: 2,\n sinister: true\n },\n horseRampant: {\n colors: 3,\n sinister: true\n },\n horseSalient: {\n colors: 2,\n sinister: true\n },\n horseshoe: {\n reversed: true\n },\n knight: {\n sinister: true\n },\n lamb: {\n colors: 2,\n sinister: true\n },\n lambPassantReguardant: {\n colors: 2,\n sinister: true\n },\n laurelWreath: {\n colors: 2\n },\n lionHeadCaboshed: {\n colors: 2\n },\n lionHeadErased: {\n colors: 2,\n sinister: true\n },\n lionPassant: {\n colors: 3,\n sinister: true,\n positions: {e: 10, def: 1, abc: 1, bdefh: 1, jlh: 1, abcpqh: 1}\n },\n lionPassantGuardant: {\n colors: 3,\n sinister: true\n },\n lionRampant: {\n colors: 3,\n sinister: true,\n positions: {e: 10, def: 2, abc: 2, bdefh: 1, kn: 1, jlh: 2, abcpqh: 1}\n },\n lionSejant: {\n colors: 3,\n sinister: true\n },\n lizard: {\n reversed: true\n },\n lochaberAxe: {\n colors: 2,\n sinister: true\n },\n log: {\n sinister: true\n },\n lute: {\n colors: 2,\n sinister: true\n },\n lymphad: {\n colors: 3,\n sinister: true,\n positions: {e: 1}\n },\n mallet: {\n colors: 2\n },\n martenCourant: {\n colors: 3,\n sinister: true\n },\n mascle: {\n positions: {e: 15, abcdefgzi: 3, beh: 3, bdefh: 4, acegi: 1, kn: 3, joe: 2, abc: 3, jlh: 8, jleh: 1, df: 3, abcpqh: 4, pqe: 3, eknpq: 3}\n },\n mastiffStatant: {\n colors: 3,\n sinister: true\n },\n mitre: {\n colors: 3\n },\n monk: {\n sinister: true\n },\n moonInCrescent: {\n sinister: true\n },\n mullet: {\n reversed: true\n },\n mullet7: {\n reversed: true\n },\n oak: {\n colors: 3\n },\n orb: {\n colors: 3\n },\n owl: {\n colors: 2,\n sinister: true\n },\n owlDisplayed: {\n colors: 2\n },\n palmTree: {\n colors: 3\n },\n parrot: {\n colors: 2,\n sinister: true\n },\n peacock: {\n colors: 3,\n sinister: true\n },\n peacockInPride: {\n colors: 3,\n sinister: true\n },\n pear: {\n colors: 2\n },\n pegasus: {\n colors: 3,\n sinister: true\n },\n pike: {\n colors: 2,\n sinister: true\n },\n pineTree: {\n colors: 2\n },\n plaice: {\n colors: 2,\n sinister: true\n },\n plough: {\n colors: 2,\n sinister: true\n },\n porcupine: {\n colors: 2,\n sinister: true\n },\n rabbitSejant: {\n colors: 2,\n sinister: true\n },\n rake: {\n reversed: true\n },\n ramHeadErased: {\n colors: 3,\n sinister: true\n },\n ramPassant: {\n colors: 3,\n sinister: true\n },\n ratRampant: {\n colors: 2,\n sinister: true\n },\n raven: {\n colors: 2,\n natural: \"sable\",\n sinister: true,\n positions: {e: 15, beh: 1, kn: 1, jeo: 1, abc: 3, jln: 3, def: 1}\n },\n rhinoceros: {\n colors: 2,\n sinister: true\n },\n rose: {\n colors: 3\n },\n sabre: {\n colors: 2,\n sinister: true\n },\n sabre2: {\n colors: 2,\n sinister: true,\n reversed: true\n },\n sabresCrossed: {\n colors: 2,\n reversed: true\n },\n sagittarius: {\n colors: 3,\n sinister: true\n },\n salmon: {\n colors: 2,\n sinister: true\n },\n scissors: {\n reversed: true\n },\n scorpion: {\n reversed: true\n },\n scythe: {\n colors: 2,\n sinister: true,\n reversed: true\n },\n serpent: {\n colors: 2,\n sinister: true\n },\n shield: {\n colors: 2,\n sinister: true\n },\n sickle: {\n colors: 2,\n sinister: true,\n reversed: true\n },\n snake: {\n colors: 2,\n sinister: true\n },\n spear: {\n colors: 2,\n reversed: true\n },\n squirrel: {\n colors: 2,\n sinister: true\n },\n stagPassant: {\n colors: 2,\n sinister: true\n },\n stirrup: {\n colors: 2\n },\n swallow: {\n colors: 2,\n sinister: true\n },\n swan: {\n colors: 3,\n sinister: true\n },\n swanErased: {\n colors: 3,\n sinister: true\n },\n sword: {\n colors: 2,\n reversed: true\n },\n talbotPassant: {\n colors: 3,\n sinister: true\n },\n talbotSejant: {\n colors: 3,\n sinister: true\n },\n tower: {\n colors: 2\n },\n tree: {\n positions: {e: 1}\n },\n trefoil: {\n reversed: true\n },\n unicornRampant: {\n colors: 3,\n sinister: true\n },\n wheatStalk: {\n colors: 2\n },\n wing: {\n sinister: true\n },\n wingSword: {\n colors: 3,\n sinister: true\n },\n wolfHeadErased: {\n colors: 2,\n sinister: true\n },\n wolfPassant: {\n colors: 3,\n sinister: true,\n positions: {e: 10, def: 1, abc: 1, bdefh: 1, jlh: 1, abcpqh: 1}\n },\n wolfRampant: {\n colors: 3,\n sinister: true\n },\n wolfStatant: {\n colors: 3,\n sinister: true\n },\n wyvern: {\n colors: 3,\n sinister: true,\n positions: {e: 10, jln: 1}\n },\n wyvernWithWingsDisplayed: {\n colors: 3,\n sinister: true\n }\n}\n\nexport const charges = {\n types: {\n conventional: 30,\n crosses: 10,\n animals: 2,\n animalHeads: 1,\n birds: 2,\n aquatic: 1,\n seafaring: 1,\n fantastic: 3,\n plants: 1,\n agriculture: 1,\n arms: 3,\n bodyparts: 1,\n people: 1,\n architecture: 1,\n miscellaneous: 3,\n inescutcheon: 3,\n uploaded: 0\n },\n single: {\n conventional: 12,\n crosses: 8,\n plants: 2,\n animals: 10,\n animalHeads: 2,\n birds: 4,\n aquatic: 2,\n seafaring: 2,\n fantastic: 7,\n agriculture: 1,\n arms: 6,\n bodyparts: 1,\n people: 2,\n architecture: 1,\n miscellaneous: 10,\n inescutcheon: 5,\n uploaded: 0\n },\n semy: {\n conventional: 4,\n crosses: 1\n },\n conventional: {\n lozenge: 2,\n fusil: 4,\n mascle: 4,\n rustre: 2,\n lozengeFaceted: 3,\n lozengePloye: 1,\n roundel: 4,\n roundel2: 3,\n annulet: 4,\n mullet: 5,\n mulletPierced: 1,\n mulletFaceted: 1,\n mullet4: 3,\n mullet6: 4,\n mullet6Pierced: 1,\n mullet6Faceted: 1,\n mullet7: 1,\n mullet8: 1,\n mullet10: 1,\n estoile: 1,\n compassRose: 1,\n billet: 5,\n delf: 0,\n triangle: 3,\n trianglePierced: 1,\n goutte: 4,\n heart: 4,\n pique: 2,\n carreau: 1,\n trefle: 2,\n fleurDeLis: 6,\n sun: 3,\n sunInSplendour: 1,\n sunInSplendour2: 1,\n moonInCrescent: 1,\n crescent: 5,\n fountain: 1\n },\n inescutcheon: {\n inescutcheonHeater: 1,\n inescutcheonSpanish: 1,\n inescutcheonFrench: 1,\n inescutcheonHorsehead: 1,\n inescutcheonHorsehead2: 1,\n inescutcheonPolish: 1,\n inescutcheonHessen: 1,\n inescutcheonSwiss: 1,\n inescutcheonBoeotian: 1,\n inescutcheonRoman: 1,\n inescutcheonKite: 1,\n inescutcheonOldFrench: 1,\n inescutcheonRenaissance: 1,\n inescutcheonBaroque: 1,\n inescutcheonTarge: 1,\n inescutcheonTarge2: 1,\n inescutcheonPavise: 1,\n inescutcheonWedged: 1,\n inescutcheonFlag: 1,\n inescutcheonPennon: 1,\n inescutcheonGuidon: 1,\n inescutcheonBanner: 1,\n inescutcheonDovetail: 1,\n inescutcheonGonfalon: 1,\n inescutcheonPennant: 1,\n inescutcheonRound: 1,\n inescutcheonOval: 1,\n inescutcheonVesicaPiscis: 1,\n inescutcheonSquare: 1,\n inescutcheonDiamond: 1,\n inescutcheonNo: 1,\n inescutcheonFantasy1: 1,\n inescutcheonFantasy2: 1,\n inescutcheonFantasy3: 1,\n inescutcheonFantasy4: 1,\n inescutcheonFantasy5: 1,\n inescutcheonNoldor: 1,\n inescutcheonGondor: 1,\n inescutcheonEasterling: 1,\n inescutcheonErebor: 1,\n inescutcheonIronHills: 1,\n inescutcheonUrukHai: 1,\n inescutcheonMoriaOrc: 1\n },\n crosses: {\n crossHummetty: 15,\n crossVoided: 1,\n crossPattee: 2,\n crossPatteeAlisee: 1,\n crossFormee: 1,\n crossFormee2: 2,\n crossPotent: 2,\n crossJerusalem: 1,\n crosslet: 1,\n crossClechy: 3,\n crossBottony: 1,\n crossFleury: 3,\n crossPatonce: 1,\n crossPommy: 1,\n crossGamma: 1,\n crossArrowed: 1,\n crossFitchy: 1,\n crossCercelee: 1,\n crossMoline: 2,\n crossFourchy: 1,\n crossAvellane: 1,\n crossErminee: 1,\n crossBiparted: 1,\n crossMaltese: 3,\n crossTemplar: 2,\n crossCeltic: 1,\n crossCeltic2: 1,\n crossTriquetra: 1,\n crossCarolingian: 1,\n crossOccitan: 1,\n crossSaltire: 3,\n crossBurgundy: 1,\n crossLatin: 3,\n crossPatriarchal: 1,\n crossOrthodox: 1,\n crossCalvary: 1,\n crossDouble: 1,\n crossTau: 1,\n crossSantiago: 1,\n crossAnkh: 1\n },\n animals: {\n lionRampant: 6,\n lionPassant: 2,\n lionPassantGuardant: 1,\n lionSejant: 1,\n wolfRampant: 1,\n wolfPassant: 1,\n wolfStatant: 1,\n greyhoundCourant: 1,\n greyhoundRampant: 1,\n greyhoundSejant: 1,\n mastiffStatant: 1,\n talbotPassant: 1,\n talbotSejant: 1,\n martenCourant: 1,\n boarRampant: 1,\n stagPassant: 1,\n hindStatant: 1,\n horseRampant: 2,\n horseSalient: 1,\n horsePassant: 1,\n bearRampant: 2,\n bearPassant: 1,\n bullPassant: 1,\n cowStatant: 1,\n goat: 1,\n lamb: 1,\n lambPassantReguardant: 1,\n agnusDei: 1,\n ramPassant: 1,\n badgerStatant: 1,\n elephant: 1,\n rhinoceros: 1,\n camel: 1,\n porcupine: 1,\n hedgehog: 1,\n catPassantGuardant: 1,\n rabbitSejant: 1,\n ratRampant: 1,\n squirrel: 1,\n frog: 1,\n snake: 1,\n crocodile: 1,\n lizard: 1,\n scorpion: 1,\n butterfly: 1,\n bee: 1,\n fly: 1\n },\n animalHeads: {\n wolfHeadErased: 2,\n bullHeadCaboshed: 1,\n deerHeadCaboshed: 1,\n donkeyHeadCaboshed: 1,\n lionHeadCaboshed: 2,\n lionHeadErased: 2,\n boarHeadErased: 1,\n horseHeadCouped: 1,\n ramHeadErased: 1,\n elephantHeadErased: 1\n },\n fantastic: {\n dragonPassant: 2,\n dragonRampant: 2,\n wyvern: 1,\n wyvernWithWingsDisplayed: 1,\n griffinPassant: 1,\n griffinRampant: 1,\n eagleTwoHeads: 2,\n unicornRampant: 1,\n pegasus: 1,\n serpent: 1,\n basilisk: 1,\n sagittarius: 1\n },\n birds: {\n eagle: 9,\n falcon: 2,\n raven: 2,\n cock: 3,\n parrot: 1,\n swan: 2,\n swanErased: 1,\n heron: 1,\n owl: 1,\n owlDisplayed: 1,\n dove: 2,\n doveDisplayed: 1,\n duck: 1,\n peacock: 1,\n peacockInPride: 1,\n swallow: 1\n },\n plants: {\n tree: 1,\n oak: 1,\n pineTree: 1,\n palmTree: 1,\n trefoil: 1,\n quatrefoil: 1,\n cinquefoil: 1,\n sextifoil: 1,\n mapleLeaf: 1,\n rose: 1,\n apple: 1,\n pear: 1,\n grapeBunch: 1,\n wheatStalk: 1,\n pineCone: 1\n },\n aquatic: {\n escallop: 5,\n pike: 1,\n plaice: 1,\n salmon: 1,\n cancer: 1,\n dolphin: 1\n },\n seafaring: {\n anchor: 6,\n boat: 2,\n boat2: 1,\n lymphad: 2,\n caravel: 1,\n armillarySphere: 1\n },\n agriculture: {\n garb: 2,\n sickle: 1,\n scythe: 1,\n rake: 1,\n plough: 2\n },\n arms: {\n sword: 4,\n falchion: 1,\n sabre: 1,\n sabresCrossed: 1,\n sabre2: 1,\n hatchet: 3,\n axe: 3,\n lochaberAxe: 1,\n spear: 1,\n mallet: 1,\n bowWithArrow: 3,\n bow: 1,\n arrow: 1,\n arrowsSheaf: 1,\n arbalest: 1,\n helmet: 2,\n gauntlet: 1,\n shield: 1,\n cannon: 1\n },\n bodyparts: {\n hand: 4,\n head: 1,\n headWreathed: 1,\n foot: 1,\n skull: 1\n },\n people: {\n cavalier: 3,\n monk: 1,\n angel: 2\n },\n architecture: {\n tower: 1,\n castle: 1,\n bridge: 1,\n column: 1\n },\n miscellaneous: {\n crown: 2,\n crown2: 1,\n laurelWreath: 1,\n mitre: 1,\n orb: 1,\n chalice: 1,\n key: 1,\n buckle: 1,\n bugleHorn: 1,\n bugleHorn2: 1,\n bell: 2,\n pot: 1,\n bucket: 1,\n horseshoe: 3,\n stirrup: 1,\n attire: 1,\n stagsAttires: 1,\n ramsHorn: 1,\n cowHorns: 2,\n wing: 1,\n wingSword: 1,\n lute: 1,\n harp: 1,\n drum: 1,\n wheel: 2,\n crosier: 1,\n sceptre: 1,\n fasces: 1,\n log: 1,\n chain: 1,\n anvil: 1,\n ladder: 1,\n banner: 1,\n bookClosed: 1,\n bookOpen: 1,\n scissors: 1\n },\n uploaded: {},\n data: chargeData\n};\n\nexport const patternSize = {standard: 154, small: 20, smaller: 20, big: 5, smallest: 1};\n","import {get} from \"svelte/store\";\nimport {aleaPRNG} from \"./alea\";\nimport {rw, P} from \"./utils\";\nimport {charges, divisions, lines, ordinaries, positions, patternSize} from \"data/dataModel\";\nimport {tinctures} from \"data/stores\";\n\nconst createConfig = () => ({\n usedPattern: null,\n usedTinctures: [],\n tData: get(tinctures),\n divisioned: null,\n ordinary: null\n});\n\n// main generation routine\nexport const generate = function (providedSeed) {\n const seed = providedSeed || Math.floor(Math.random() * 1e9);\n Math.random = aleaPRNG(seed);\n\n const config = createConfig();\n const coa = {seed, t1: getTincture(config, \"field\")};\n\n const addCharge = P(config.usedPattern ? 0.5 : 0.93); // 80% for charge\n const linedOrdinary = (addCharge && P(0.3)) || P(0.5) ? rw(ordinaries.lined) : null;\n config.ordinary =\n (!addCharge && P(0.65)) || P(0.3) ? (linedOrdinary ? linedOrdinary : rw(ordinaries.straight)) : null; // 36% for ordinary\n\n const rareDivided = [\"chief\", \"terrace\", \"chevron\", \"quarter\", \"flaunches\"].includes(config.ordinary);\n config.divisioned = rareDivided\n ? P(0.03)\n : addCharge && config.ordinary\n ? P(0.03)\n : addCharge\n ? P(0.3)\n : config.ordinary\n ? P(0.7)\n : P(0.995); // 33% for division\n const division = config.divisioned ? rw(divisions.variants) : null;\n\n if (division) {\n const t = getTincture(config, \"division\", config.usedTinctures, P(0.98) ? coa.t1 : null);\n coa.division = {division, t};\n if (divisions[division])\n coa.division.line = config.usedPattern || (config.ordinary && P(0.7)) ? \"straight\" : rw(divisions[division]);\n }\n\n if (config.ordinary) {\n const t = getTincture(config, \"charge\", config.usedTinctures, coa.t1);\n coa.ordinaries = [{ordinary: config.ordinary, t}];\n if (linedOrdinary) coa.ordinaries[0].line = config.usedPattern || (division && P(0.7)) ? \"straight\" : rw(lines);\n if (\n division &&\n !addCharge &&\n !config.usedPattern &&\n P(0.5) &&\n config.ordinary !== \"bordure\" &&\n config.ordinary !== \"orle\"\n ) {\n if (P(0.8)) coa.ordinaries[0].divided = \"counter\";\n // 40%\n else if (P(0.6)) coa.ordinaries[0].divided = \"field\";\n // 6%\n else coa.ordinaries[0].divided = \"division\"; // 4%\n }\n }\n\n if (addCharge) {\n const charge = selectCharge(config);\n const chargeData = charges.data[charge] || {};\n\n let p = \"e\";\n let t = \"gules\";\n\n const ordinaryData = ordinaries.data[config.ordinary];\n const tOrdinary = coa.ordinaries ? coa.ordinaries[0].t : null;\n\n if (ordinaryData?.positionsOn && P(0.8)) {\n // place charge over ordinary (use tincture of field type)\n p = rw(ordinaryData.positionsOn);\n t = !config.usedPattern && P(0.3) ? coa.t1 : getTincture(config, \"charge\", [], tOrdinary);\n } else if (ordinaryData?.positionsOff && P(0.95)) {\n // place charge out of ordinary (use tincture of ordinary type)\n p = rw(ordinaryData.positionsOff);\n t = !config.usedPattern && P(0.3) ? tOrdinary : getTincture(config, \"charge\", config.usedTinctures, coa.t1);\n } else if (positions.divisions[division]) {\n // place charge in fields made by division\n p = rw(positions.divisions[division]);\n t = getTincture(\n config,\n \"charge\",\n tOrdinary ? config.usedTinctures.concat(tOrdinary) : config.usedTinctures,\n coa.t1\n );\n } else if (chargeData.positions) {\n // place charge-suitable position\n p = rw(chargeData.positions);\n t = getTincture(config, \"charge\", config.usedTinctures, coa.t1);\n } else {\n // place in standard position (use new tincture)\n p = config.usedPattern ? \"e\" : charges.conventional[charge] ? rw(positions.conventional) : rw(positions.complex);\n t = getTincture(config, \"charge\", config.usedTinctures.concat(tOrdinary), coa.t1);\n }\n\n if (chargeData.natural && chargeData.natural !== t && chargeData.natural !== tOrdinary) t = chargeData.natural;\n\n const item = {charge: charge, t, p};\n if (chargeData.colors > 1) item.t2 = P(0.25) ? getTincture(config, \"charge\", config.usedTinctures, coa.t1) : t;\n if (chargeData.colors > 2) item.t3 = P(0.5) ? getTincture(config, \"charge\", config.usedTinctures, coa.t1) : t;\n coa.charges = [item];\n\n if (p === \"ABCDEFGHIKL\" && P(0.95)) {\n // add central charge if charge is in bordure\n coa.charges[0].charge = rw(charges.conventional);\n const charge = selectCharge(charges.single);\n const t = getTincture(config, \"charge\", config.usedTinctures, coa.t1);\n coa.charges.push({charge, t, p: \"e\"});\n } else if (P(0.8) && charge === \"inescutcheon\") {\n // add charge to inescutcheon\n const charge = selectCharge(charges.types);\n const t2 = getTincture(config, \"charge\", [], t);\n coa.charges.push({charge, t: t2, p, size: 0.5});\n } else if (division && !config.ordinary) {\n const allowCounter = !config.usedPattern && (!coa.line || coa.line === \"straight\");\n\n // dimidiation: second charge at division basic positons\n if (P(0.3) && [\"perPale\", \"perFess\"].includes(division) && coa.line === \"straight\") {\n coa.charges[0].divided = \"field\";\n if (P(0.95)) {\n const p2 = p === \"e\" || P(0.5) ? \"e\" : rw(positions.divisions[division]);\n const charge = selectCharge(charges.single);\n const t = getTincture(config, \"charge\", config.usedTinctures, coa.division.t);\n coa.charges.push({charge, t, p: p2, divided: \"division\"});\n }\n } else if (allowCounter && P(0.4)) coa.charges[0].divided = \"counter\";\n // counterchanged, 40%\n else if ([\"perPale\", \"perFess\", \"perBend\", \"perBendSinister\"].includes(division) && P(0.8)) {\n // place 2 charges in division standard positions\n const [p1, p2] =\n division === \"perPale\"\n ? [\"p\", \"q\"]\n : division === \"perFess\"\n ? [\"k\", \"n\"]\n : division === \"perBend\"\n ? [\"l\", \"m\"]\n : [\"j\", \"o\"]; // perBendSinister\n coa.charges[0].p = p1;\n\n const charge = selectCharge(charges.single);\n const t = getTincture(config, \"charge\", config.usedTinctures, coa.division.t);\n coa.charges.push({charge, t, p: p2});\n } else if ([\"perCross\", \"perSaltire\"].includes(division) && P(0.5)) {\n // place 4 charges in division standard positions\n const [p1, p2, p3, p4] = division === \"perCross\" ? [\"j\", \"l\", \"m\", \"o\"] : [\"b\", \"d\", \"f\", \"h\"];\n coa.charges[0].p = p1;\n\n const c2 = selectCharge(charges.single);\n const t2 = getTincture(config, \"charge\", [], coa.division.t);\n\n const c3 = selectCharge(charges.single);\n const t3 = getTincture(config, \"charge\", [], coa.division.t);\n\n const c4 = selectCharge(charges.single);\n const t4 = getTincture(config, \"charge\", [], coa.t1);\n coa.charges.push({charge: c2, t: t2, p: p2}, {charge: c3, t: t3, p: p3}, {charge: c4, t: t4, p: p4});\n } else if (allowCounter && p.length > 1) coa.charges[0].divided = \"counter\"; // counterchanged, 40%\n }\n\n coa.charges.forEach(c => defineChargeAttributes(config, division, c));\n }\n\n return coa;\n};\n\nexport const getSize = (p, o = null, d = null) => {\n if (p === \"e\" && (o === \"bordure\" || o === \"orle\")) return 1.1;\n if (p === \"e\") return 1.5;\n if (p === \"jln\" || p === \"jlh\") return 0.7;\n if (p === \"abcpqh\" || p === \"ez\" || p === \"be\") return 0.5;\n if ([\"a\", \"b\", \"c\", \"d\", \"f\", \"g\", \"h\", \"i\", \"bh\", \"df\"].includes(p)) return 0.5;\n if ([\"j\", \"l\", \"m\", \"o\", \"jlmo\"].includes(p) && d === \"perCross\") return 0.6;\n if (p.length > 10) return 0.18; // >10 (bordure)\n if (p.length > 7) return 0.3; // 8, 9, 10\n if (p.length > 4) return 0.4; // 5, 6, 7\n if (p.length > 2) return 0.5; // 3, 4\n return 0.7; // 1, 2\n};\n\nfunction defineChargeAttributes(config, division, c) {\n // define size\n c.size = (c.size || 1) * getSize(c.p, config.ordinary, division);\n\n // clean-up position\n c.p = [...new Set(c.p)].join(\"\");\n\n // define orientation\n if (P(0.02) && charges.data[c.charge]?.sinister) c.sinister = 1;\n if (P(0.02) && charges.data[c.charge]?.reversed) c.reversed = 1;\n}\n\nfunction selectCharge(config, set) {\n const type = set ? rw(set) : config.ordinary || config.divisioned ? rw(charges.types) : rw(charges.single);\n return type === \"inescutcheon\" ? \"inescutcheon\" : rw(charges[type]);\n}\n\nfunction replaceTincture(config, tincture) {\n const type = getType(config, tincture);\n const typeTinctures = config.tData[type];\n\n const candidateTinctures = {...typeTinctures};\n delete candidateTinctures[tincture];\n\n const newTincture = rw(candidateTinctures, false);\n if (!newTincture) {\n console.warn(`Type ${type} has only one valid tincture. Cannot follow the Rule of Tincture`);\n return tincture;\n }\n\n return rw(candidateTinctures, false);\n}\n\nfunction getType(config, t) {\n const tincture = getBaseTincture(t);\n if (Object.keys(config.tData.metals).includes(tincture)) return \"metals\";\n if (Object.keys(config.tData.colours).includes(tincture)) return \"colours\";\n if (Object.keys(config.tData.stains).includes(tincture)) return \"stains\";\n throw new Error(\"Unknown tincture type\", t);\n}\n\nfunction definePattern(config, patternName, element) {\n let t1 = null;\n let t2 = null;\n\n // apply standard tinctures\n if (P(0.5) && (patternName.includes(\"air\") || patternName.includes(\"otent\"))) {\n t1 = \"argent\";\n t2 = \"azure\";\n } else if (patternName === \"ermine\") {\n if (P(0.7)) {\n t1 = \"argent\";\n t2 = \"sable\";\n } else if (P(0.3)) {\n t1 = \"sable\";\n t2 = \"argent\";\n } else if (P(0.1)) {\n t1 = \"or\";\n t2 = \"sable\";\n } else if (P(0.1)) {\n t1 = \"sable\";\n t2 = \"or\";\n } else if (P(0.1)) {\n t1 = \"gules\";\n t2 = \"argent\";\n }\n } else if (patternName.includes(\"pappellony\") || patternName === \"scaly\") {\n if (P(0.2)) {\n t1 = \"gules\";\n t2 = \"or\";\n } else if (P(0.2)) {\n t1 = \"sable\";\n t2 = \"argent\";\n } else if (P(0.2)) {\n t1 = \"argent\";\n t2 = \"sable\";\n } else if (P(0.2)) {\n t1 = \"azure\";\n t2 = \"argent\";\n }\n } else if (P(0.2) && patternName === \"plumetty\") {\n t1 = \"gules\";\n t2 = \"or\";\n } else if (patternName === \"masoned\") {\n if (P(0.3)) {\n t1 = \"gules\";\n t2 = \"argent\";\n } else if (P(0.3)) {\n t1 = \"argent\";\n t2 = \"sable\";\n } else if (P(0.1)) {\n t1 = \"or\";\n t2 = \"sable\";\n }\n } else if (patternName === \"fretty\" || patternName === \"grillage\" || patternName === \"chainy\") {\n if (P(0.35)) {\n t1 = \"argent\";\n t2 = \"gules\";\n } else if (P(0.1)) {\n t1 = \"sable\";\n t2 = \"or\";\n } else if (P(0.2)) {\n t1 = \"gules\";\n t2 = \"argent\";\n }\n } else if (patternName === \"honeycombed\") {\n if (P(0.4)) {\n t1 = \"sable\";\n t2 = \"or\";\n } else if (P(0.3)) {\n t1 = \"or\";\n t2 = \"sable\";\n }\n } else if (patternName === \"semy\") patternName += \"_of_\" + selectCharge(charges.semy);\n\n if (!t1 || !t2) {\n const startWithMetal = P(0.7);\n t1 = startWithMetal ? rw(config.tData.metals) : rw(config.tData.colours);\n t2 = startWithMetal ? rw(config.tData.colours) : rw(config.tData.metals);\n }\n\n // division should not be the same tincture as base field\n if (element === \"division\") {\n if (config.usedTinctures.includes(t1)) t1 = replaceTincture(config, t1);\n if (config.usedTinctures.includes(t2)) t2 = replaceTincture(config, t2);\n }\n\n config.usedTinctures.push(t1, t2);\n const size = rw(patternSize);\n const sizeString = size === \"standard\" ? \"\" : \"-\" + size;\n\n return `${patternName}-${t1}-${t2}${sizeString}`;\n}\n\nfunction getBaseTincture(tincture) {\n return tincture.includes(\"-\") ? tincture.split(\"-\")[1] : tincture;\n}\n\nfunction excludeTinctures(typeTinctures, usedTinctures) {\n const unusedTinctures = {...typeTinctures};\n usedTinctures.forEach(usedTincture => {\n delete unusedTinctures[usedTincture];\n });\n\n const isAnyUnused = Object.keys(unusedTinctures).length && Object.values(unusedTinctures).reduce((a, b) => a + b, 0);\n return isAnyUnused ? unusedTinctures : typeTinctures;\n}\n\n// select tincture: element type (field, division, charge), used field tinctures, field type to follow RoT\nfunction getTincture(config, element, fields = [], RoT) {\n let type = rw(config.tData[element]); // random type\n\n if (type === \"patterns\") {\n const patternName = rw(config.tData[type]);\n config.usedPattern = patternName;\n const tincture = definePattern(config, patternName, element);\n return tincture;\n }\n\n // follow Rule of Tinctures: metal should not be put on metal, nor colour on colour\n if (RoT) {\n const underlyingTincture = getBaseTincture(RoT);\n const underlyingType = getType(config, underlyingTincture);\n type = underlyingType === \"metals\" ? \"colours\" : \"metals\";\n }\n\n const typeTinctures = config.tData[type];\n const candidateTinctures = fields.length ? excludeTinctures(typeTinctures, fields) : typeTinctures;\n let tincture = rw(candidateTinctures, false);\n\n if (element !== \"charge\") config.usedTinctures.push(tincture); // add field tincture\n\n return tincture;\n}\n","/*///////////////////////////////////////////////////////////////////////////////////////////////////\naleaPRNG 1.1\n/////////////////////////////////////////////////////////////////////////////////////////////////////\nhttps://github.com/macmcmeans/aleaPRNG/blob/master/aleaPRNG-1.1.js\n/////////////////////////////////////////////////////////////////////////////////////////////////////\nOriginal work copyright © 2010 Johannes Baagøe, under MIT license\nThis is a derivative work copyright (c) 2017-2020, W. Mac\" McMeans, under BSD license.\nRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n///////////////////////////////////////////////////////////////////////////////////////////////////*/\nexport function aleaPRNG() {\n return (function (args) {\n \"use strict\";\n\n const version = \"aleaPRNG 1.1.0\";\n\n var s0,\n s1,\n s2,\n c,\n uinta = new Uint32Array(3),\n initialArgs,\n mashver = \"\";\n /* private: initializes generator with specified seed */\n function _initState(_internalSeed) {\n var mash = Mash();\n\n // internal state of generator\n s0 = mash(\" \");\n s1 = mash(\" \");\n s2 = mash(\" \");\n\n c = 1;\n\n for (var i = 0; i < _internalSeed.length; i++) {\n s0 -= mash(_internalSeed[i]);\n if (s0 < 0) {\n s0 += 1;\n }\n\n s1 -= mash(_internalSeed[i]);\n if (s1 < 0) {\n s1 += 1;\n }\n\n s2 -= mash(_internalSeed[i]);\n if (s2 < 0) {\n s2 += 1;\n }\n }\n\n mashver = mash.version;\n\n mash = null;\n }\n\n /* private: dependent string hash function */\n function Mash() {\n var n = 4022871197; // 0xefc8249d\n\n var mash = function (data) {\n data = data.toString();\n\n // cache the length\n for (var i = 0, l = data.length; i < l; i++) {\n n += data.charCodeAt(i);\n\n var h = 0.02519603282416938 * n;\n\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 4294967296; // 0x100000000 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n mash.version = \"Mash 0.9\";\n return mash;\n }\n\n /* private: check if number is integer */\n function _isInteger(_int) {\n return parseInt(_int, 10) === _int;\n }\n\n /* public: return a 32-bit fraction in the range [0, 1]\n This is the main function returned when aleaPRNG is instantiated\n */\n var random = function () {\n var t = 2091639 * s0 + c * 2.3283064365386963e-10; // 2^-32\n\n s0 = s1;\n s1 = s2;\n\n return (s2 = t - (c = t | 0));\n };\n\n /* public: return a 53-bit fraction in the range [0, 1] */\n random.fract53 = function () {\n return random() + ((random() * 0x200000) | 0) * 1.1102230246251565e-16; // 2^-53\n };\n\n /* public: return an unsigned integer in the range [0, 2^32] */\n random.int32 = function () {\n return random() * 0x100000000; // 2^32\n };\n\n /* public: advance the generator the specified amount of cycles */\n random.cycle = function (_run) {\n _run = typeof _run === \"undefined\" ? 1 : +_run;\n if (_run < 1) {\n _run = 1;\n }\n for (var i = 0; i < _run; i++) {\n random();\n }\n };\n\n /* public: return inclusive range */\n random.range = function () {\n var loBound, hiBound;\n\n if (arguments.length === 1) {\n loBound = 0;\n hiBound = arguments[0];\n } else {\n loBound = arguments[0];\n hiBound = arguments[1];\n }\n\n if (arguments[0] > arguments[1]) {\n loBound = arguments[1];\n hiBound = arguments[0];\n }\n\n // return integer\n if (_isInteger(loBound) && _isInteger(hiBound)) {\n return Math.floor(random() * (hiBound - loBound + 1)) + loBound;\n\n // return float\n } else {\n return random() * (hiBound - loBound) + loBound;\n }\n };\n\n /* public: initialize generator with the seed values used upon instantiation */\n random.restart = function () {\n _initState(initialArgs);\n };\n\n /* public: seeding function */\n random.seed = function () {\n _initState(Array.prototype.slice.call(arguments));\n };\n\n /* public: show the version of the RNG */\n random.version = function () {\n return version;\n };\n\n /* public: show the version of the RNG and the Mash string hasher */\n random.versions = function () {\n return version + \", \" + mashver;\n };\n\n // when no seed is specified, create a random one from Windows Crypto (Monte Carlo application)\n if (args.length === 0) {\n window.crypto.getRandomValues(uinta);\n args = [uinta[0], uinta[1], uinta[2]];\n }\n\n // store the seed used when the RNG was instantiated, if any\n initialArgs = args;\n\n // initialize the RNG\n _initState(args);\n\n return random;\n })(Array.prototype.slice.call(arguments));\n}\n","\n\n\n \n
\n","\n\n\n \n Switch \n
\n\n\n","\n\n\n {$t(\"editor.aboveCharges\")}: \n \n \n","\n\n\n","\n\n{$t(\"editor.category\")}: \n\n {#each categories as category}\n {$t(`categories.${category}`)} \n {/each}\n \n\n{$t(\"editor.search\")}: \n \n\n\n {#each chargesData as coa (coa)}\n
(charge = coa.charge)}>\n \n
\n {/each}\n
\n\n\n","\n\n\n \n \n \n {#if els.length > 1}\n {#if i && areDifferent(el, els[i - 1])}\n \n \n \n {/if}\n {#if i + 1 < els.length && areDifferent(el, els[i + 1])}\n \n \n \n {/if}\n {/if}\n \n \n \n \n\n\n","\n\n{$t(\"editor.divided\")}: \n\n {$t(\"editor.notDivided\")} \n {$t(\"editor.cropByField\")} \n {$t(\"editor.cropByDivision\")} \n {#if !raster}\n {$t(\"editor.counterchanged\")} \n {/if}\n \n","\n\n\n {#each divisionsData as coa (coa)}\n
\n \n
\n {/each}\n
\n","\n\n{$t(\"editor.line\")}:\n\n {#each linesData as { coa, newLine } (coa)}\n
\n \n
\n {/each}\n
\n","\n\n\n {#each coas as { coa, ordinaryName } (coa)}\n
\n \n
\n {/each}\n
\n","\n\n{$t(\"editor.pattern\")}:\n\n {#each patternsData as { coa, tip }}\n
\n \n
\n {/each}\n
\n","\n\n\n {$t(\"editor.positions\")}:\n \n \n {#each positionsSelect as position}\n {position} \n {/each}\n \n \n\n\n {$t(\"editor.sinister\")}: \n \n \n\n\n {$t(\"editor.reversed\")}: \n \n \n\n\n","\n\n\n {$t(\"editor.size\")}:\n \n \n\n\n {$t(\"editor.rotation\")}: \n \n \n\n\n {$t(\"editor.shift\")}: \n \n \n \n\n\n {$t(\"editor.step\")}: \n \n \n\n\n \n \n\n\n","\n\n{$t(\"editor.size\")}: \n\n {$t(\"editor.bigger\")} \n {$t(\"editor.big\")} \n {$t(\"editor.standard\")} \n {$t(\"editor.small\")} \n {$t(\"editor.smaller\")} \n {$t(\"editor.smallest\")} \n \n","\n\n\n {$t(\"editor.stroke\")}: \n \n {#if element.showStroke}\n {$t(\"editor.color\")}: \n \n\n {#if element.ordinary}\n {$t(\"editor.width\")}: \n \n {/if}\n {/if}\n \n\n\n","\n\n{$t(\"editor.tincture\")}:\n\n {#each tincturesData as { coa, tip }}\n
\n
handleChange(coa.t1)}>\n \n
\n\n
\n {#if colorChanged(coa.t1)}\n
restoreColor(coa.t1)} data-tooltip={$t(\"tooltip.undoColorChange\")} use:tooltip>\n \n \n {/if}\n\n
\n \n \n \n \n
\n
\n
\n {/each}\n
\n\n\n","\n\n{$t(\"editor.type\")}\n\n {$t(\"editor.tincture\")} \n {$t(\"editor.pattern\")} \n {$t(\"editor.semy\")} \n \n","\n\n\n \n {#key coa}\n \n {/key}\n
\n\n \n \n\n\n","\n\n\n {#each coas as coa, i}\n \n {#key coa}\n
\n {/key}\n
\n regenerate(i)}> \n editCOA(i)}> \n download(i)}> \n
\n
\n {/each}\n \n\n\n","\n\n\n {$t(`license.unknown`)} \n {$t(`license.proprietary`)} \n {$t(`license.copyleft`)} \n {$t(`license.publicDomain`)} \n CC BY \n CC BY-SA \n CC BY-NC \n CC BY-ND \n CC BY-NC-SA \n CC BY-NC-ND \n \n","export const query = document.querySelector.bind(document);\nexport const queryAll = document.querySelectorAll.bind(document);\nNode.prototype.on = window.on = function (name, fn) {\n this.addEventListener(name, fn);\n};\nNode.prototype.off = window.off = function (name, fn) {\n this.removeEventListener(name, fn);\n};\n","\n\n (dragging = true)}\n on:dragleave|preventDefault={() => (dragging = false)}\n>\n
($state.raster = 0)} class=\"close\">× \n
\n {#if selected}\n
\n \n \n \n \n \n \n\n
\n {:else}\n
\n \n Drag & Drop image here or browse
\n \n \n \n {/if}\n
\n
\n\n\n","\n\n (dragging = true)}\n on:dragleave|preventDefault={() => (dragging = false)}\n>\n
($state.vector = 0)} class=\"close\">× \n
\n {#if selected}\n
\n \n \n \n \n {@html svg} \n \n\n
\n\n
\n {:else}\n
\n \n Drag & Drop svg file here or browse
\n \n \n \n
Download Template \n {/if}\n
\n
\n\n\n","import { cubicOut } from '../easing/index.mjs';\nimport { is_function } from '../internal/index.mjs';\n\nfunction flip(node, { from, to }, params = {}) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const [ox, oy] = style.transformOrigin.split(' ').map(parseFloat);\n const dx = (from.left + from.width * ox / to.width) - (to.left + ox);\n const dy = (from.top + from.height * oy / to.height) - (to.top + oy);\n const { delay = 0, duration = (d) => Math.sqrt(d) * 120, easing = cubicOut } = params;\n return {\n delay,\n duration: is_function(duration) ? duration(Math.sqrt(dx * dx + dy * dy)) : duration,\n easing,\n css: (t, u) => {\n const x = u * dx;\n const y = u * dy;\n const sx = t + u * from.width / to.width;\n const sy = t + u * from.height / to.height;\n return `transform: ${transform} translate(${x}px, ${y}px) scale(${sx}, ${sy});`;\n }\n };\n}\n\nexport { flip };\n","\n\n\n\n\n","\n\n message.clear()}>\n {$t(text)}\n
\n\n\n","\n\n{#if $state.view}\n \n{:else}\n \n
\n\n {#if $state.edit}
\n {:else}
{/if}\n\n {#if $state.about}
{/if}\n {#if $state.license}
{/if}\n {#if $state.raster}
{/if}\n {#if $state.vector}
{/if}\n {#if $state.tinctures}
{/if}\n\n {#if $message && $isTextReady}
{/if}\n
\n{/if}\n \n\n\n","import { register, init } from \"svelte-i18n\";\nimport { isTextReady } from \"data/stores\";\nimport { fetcher } from \"./utils\";\nconst localesPath = \"./locales/\";\nconst fallbackLocale = \"en\";\nconst registerSupportedLocales = async () => {\n try {\n const manifest = await fetcher(`${localesPath}manifest.json`)();\n const { files, languages } = manifest;\n const file = files[0];\n if (!languages?.length || !file) {\n throw new Error(\"Could not load languages from manifest\");\n }\n for (const language of languages) {\n register(language, fetcher(`${localesPath}${language}${file}`));\n }\n const storedLocale = localStorage.getItem(\"locale\");\n const preferredLocale = storedLocale || navigator.language;\n const shortLocale = preferredLocale.split(\"-\")[0];\n const initialLocale = languages.find((language) => language === preferredLocale || language === shortLocale) || fallbackLocale;\n await init({ fallbackLocale, initialLocale });\n isTextReady.set(true);\n }\n catch (error) {\n console.error(error);\n isTextReady.set(true);\n }\n};\nregisterSupportedLocales();\n","import App from \"./components/App.svelte\";\nimport \"scripts/aliases\";\n\nconst isProduction = process.env.production;\n\nif (isProduction && \"serviceWorker\" in navigator) {\n navigator.serviceWorker.register(\"./sw.js\");\n}\n\nconst app = new App({\n target: document.body,\n props: {}\n});\n\nexport default app;\n"],"names":["noop","identity","x","run","fn","blank_object","Object","create","run_all","fns","forEach","is_function","thing","safe_not_equal","a","b","subscribe","store","callbacks","unsub","unsubscribe","get_store_value","value","_","component_subscribe","component","callback","$$","on_destroy","push","create_slot","definition","ctx","$$scope","slot_ctx","get_slot_context","tar","src","k","assign","slice","get_slot_changes","dirty","lets","undefined","merged","len","Math","max","length","i","update_slot_base","slot","slot_definition","slot_changes","get_slot_context_fn","slot_context","p","get_all_dirty_from_scope","null_to_empty","set_store_value","ret","set","action_destroyer","action_result","destroy","is_client","window","now","performance","Date","raf","cb","requestAnimationFrame","tasks","Set","run_tasks","task","c","delete","f","size","loop","promise","Promise","fulfill","add","abort","append","target","node","appendChild","get_root_for_style","document","root","getRootNode","ownerDocument","host","append_empty_stylesheet","style_element","element","style","head","append_stylesheet","insert","anchor","insertBefore","detach","parentNode","removeChild","destroy_each","iterations","detaching","d","name","createElement","svg_element","createElementNS","text","data","createTextNode","space","empty","listen","event","handler","options","addEventListener","removeEventListener","prevent_default","preventDefault","call","this","attr","attribute","removeAttribute","getAttribute","setAttribute","xlink_attr","setAttributeNS","to_number","set_data","wholeText","set_input_value","input","set_style","key","important","setProperty","select_option","select","option","__value","selected","selectedIndex","select_value","selected_option","querySelector","toggle_class","toggle","classList","HtmlTag","constructor","e","n","html","h","m","nodeName","t","innerHTML","Array","from","childNodes","active_docs","current_component","active","create_rule","duration","delay","ease","uid","step","keyframes","rule","str","hash","charCodeAt","doc","stylesheet","__svelte_stylesheet","sheet","current_rules","__svelte_rules","insertRule","cssRules","animation","delete_rule","previous","split","next","filter","anim","indexOf","deleted","join","deleteRule","clear","fix_position","getComputedStyle","position","width","height","getBoundingClientRect","left","top","transform","add_transform","set_current_component","onMount","Error","get_current_component","on_mount","dirty_components","binding_callbacks","render_callbacks","flush_callbacks","resolved_promise","resolve","update_scheduled","add_render_callback","add_flush_callback","flushing","seen_callbacks","flush","update","pop","has","fragment","before_update","after_update","wait","then","dispatch","direction","kind","dispatchEvent","type","detail","bubbles","createEvent","initCustomEvent","custom_event","outroing","outros","group_outros","r","check_outros","transition_in","block","local","transition_out","o","null_transition","create_in_transition","params","animation_name","config","running","cleanup","go","easing","tick","css","start_time","end_time","started","start","invalidate","end","create_out_transition","group","reset","create_bidirectional_transition","intro","running_program","pending_program","clear_animation","init","program","abs","globals","globalThis","global","destroy_block","lookup","outro_and_destroy_block","fix_and_destroy_block","update_keyed_each","old_blocks","get_key","dynamic","list","create_each_block","get_context","old_indexes","new_blocks","new_lookup","Map","deltas","child_ctx","get","will_move","did_move","first","new_block","old_block","new_key","old_key","bind","index","props","bound","create_component","mount_component","customElement","new_on_destroy","map","destroy_component","make_dirty","fill","instance","create_fragment","not_equal","append_styles","parent_component","on_disconnect","context","skip_bound","ready","rest","hydrate","nodes","children","l","SvelteComponent","$destroy","$on","splice","$set","$$props","obj","$$set","keys","subscriber_queue","writable","stop","subscribers","new_value","run_queue","subscriber","derived","stores","initial_value","single","isArray","stores_array","auto","inited","values","pending","sync","result","unsubscribers","isMergeableObject","isNonNullObject","stringValue","prototype","toString","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","Symbol","for","cloneUnlessOtherwiseSpecified","clone","deepmerge","val","defaultArrayMerge","source","concat","getKeys","getOwnPropertySymbols","symbol","propertyIsEnumerable","getEnumerableOwnPropertySymbols","propertyIsOnObject","object","property","mergeObject","destination","hasOwnProperty","propertyIsUnsafe","customMerge","getMergeFunction","arrayMerge","sourceIsArray","all","array","reduce","prev","extendStatics","setPrototypeOf","__proto__","__extends","TypeError","String","__","ErrorKind","TYPE","SKELETON_TYPE","__assign","s","arguments","apply","__spreadArray","to","pack","ar","isLiteralElement","el","literal","isArgumentElement","argument","isNumberElement","number","isDateElement","date","isTimeElement","time","isSelectElement","isPluralElement","plural","isPoundElement","pound","isTagElement","tag","isNumberSkeleton","isDateTimeSkeleton","dateTime","SPACE_SEPARATOR_REGEX","DATE_TIME_REGEX","parseDateTimeSkeleton","skeleton","replace","match","era","year","RangeError","month","day","weekday","hour12","hourCycle","hour","minute","second","timeZoneName","WHITE_SPACE_REGEX","_a","FRACTION_PRECISION_REGEX","SIGNIFICANT_PRECISION_REGEX","INTEGER_WIDTH_REGEX","CONCISE_INTEGER_WIDTH_REGEX","parseSignificantPrecision","roundingPriority","g1","g2","minimumSignificantDigits","maximumSignificantDigits","parseSign","signDisplay","currencySign","parseConciseScientificAndEngineeringStem","stem","notation","test","minimumIntegerDigits","parseNotationOptions","opt","signOpts","parseNumberSkeleton","tokens","_i","tokens_1","token","scale","currency","useGrouping","maximumFractionDigits","unit","compactDisplay","currencyDisplay","unitDisplay","parseFloat","g3","g4","g5","minimumFractionDigits","trailingZeroDisplay","conciseScientificAndEngineeringOpts","SPACE_SEPARATOR_START_REGEX","RegExp","SPACE_SEPARATOR_END_REGEX","createLocation","hasNativeStartsWith","startsWith","hasNativeFromCodePoint","fromCodePoint","hasNativeFromEntries","fromEntries","hasNativeCodePointAt","codePointAt","hasTrimStart","trimStart","hasTrimEnd","trimEnd","isSafeInteger","Number","isFinite","floor","REGEX_SUPPORTS_U_AND_Y","RE","exec","matchIdentifierAtIndex","search","codePoints","code","elements","fromCharCode","entries","entries_1","v","flag","IDENTIFIER_PREFIX_RE_1","lastIndex","_isWhiteSpace","_isPatternSyntax","Parser","message","offset","line","column","ignoreTag","requiresOtherClause","shouldParseSkeletons","parse","parseMessage","nestingLevel","parentArgType","expectingCloseTag","isEOF","char","parseArgument","err","peek","error","UNMATCHED_CLOSING_TAG","clonePosition","_isAlpha","parseTag","parseLiteral","bump","location","startPosition","tagName","parseTagName","bumpSpace","bumpIf","childrenResult","endTagStartPosition","INVALID_TAG","closingTagNameStartPosition","UNCLOSED_TAG","startOffset","_isPotentialElementNameChar","parseQuoteResult","tryParseQuote","parseUnquotedResult","tryParseUnquoted","parseLeftAngleResult","tryParseLeftAngleBracket","codepoint","ch","openingBracePosition","EXPECT_ARGUMENT_CLOSING_BRACE","EMPTY_ARGUMENT","parseIdentifierIfPossible","MALFORMED_ARGUMENT","parseArgumentOptions","startingPosition","endOffset","bumpTo","typeStartPosition","argType","typeEndPosition","EXPECT_ARGUMENT_TYPE","styleAndLocation","styleStartPosition","parseSimpleArgStyleIfPossible","EXPECT_ARGUMENT_STYLE","styleLocation","argCloseResult","tryParseArgumentClose","location_1","parseNumberSkeletonFromString","EXPECT_DATE_TIME_SKELETON","pattern","parsedOptions","typeEndPosition_1","EXPECT_SELECT_ARGUMENT_OPTIONS","identifierAndLocation","pluralOffset","EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE","tryParseDecimalInteger","INVALID_PLURAL_ARGUMENT_OFFSET_VALUE","optionsResult","tryParsePluralOrSelectOptions","location_2","pluralType","INVALID_ARGUMENT_TYPE","nestedBraces","apostrophePosition","bumpUntil","UNCLOSED_QUOTE_IN_ARGUMENT_STYLE","stringTokens","stringTokens_1","stemAndOptions","options_1","INVALID_NUMBER_SKELETON","expectCloseTag","parsedFirstIdentifier","hasOtherClause","parsedSelectors","selector","selectorLocation","EXPECT_PLURAL_ARGUMENT_SELECTOR","INVALID_PLURAL_ARGUMENT_SELECTOR","DUPLICATE_SELECT_ARGUMENT_SELECTOR","DUPLICATE_PLURAL_ARGUMENT_SELECTOR","EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT","EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT","fragmentResult","EXPECT_SELECT_ARGUMENT_SELECTOR","MISSING_OTHER_CLAUSE","expectNumberError","invalidNumberError","sign","hasDigits","decimal","prefix","currentOffset","targetOffset","min","nextCode","pruneLocation","els","opts","SyntaxError","originalMessage","captureLocation","memoize","cache","cacheDefault","serializer","serializerDefault","strategy","strategyDefault","monadic","arg","cacheKey","computedValue","variadic","args","assemble","serialize","JSON","stringify","ObjectWithoutPrototypeCache","ErrorCode","strategies","PART_TYPE","FormatError","_super","msg","_this","InvalidValueError","variableId","INVALID_VALUE","InvalidValueTypeError","MissingValueError","MISSING_VALUE","isFormatXMLElementFn","formatToParts","locales","formatters","formats","currentPluralValue","els_1","getNumberFormat","format","varName","getDateTimeFormat","value_1","formatFn","chunks","other","Intl","PluralRules","MISSING_INTL_API","getPluralRules","parts","part","lastPart","mergeLiteral","mergeConfigs","defaultConfig","configs","c1","c2","createFastMemoizeCache","IntlMessageFormat","overrideFormats","defaultLocale","formatterCache","pluralRules","ast","resolvedOptions","locale","NumberFormat","supportedLocalesOf","getAst","__parse","DateTimeFormat","defineProperty","memoizedDefaultLocale","enumerable","configurable","integer","percent","short","medium","long","full","E","u","g","w","some","default","y","O","fallbackLocale","loadingDelay","scientific","engineering","compactLong","compactShort","warnOnMissingMessages","j","L","T","reverse","D","documentElement","M","setTimeout","finally","clearTimeout","Z","C","G","J","U","H","K","id","console","warn","Q","B","R","q","V","W","X","ra","random","rw","save","P","probability","camelize","toLowerCase","toUpperCase","link","url","fetcher","fetch","json","shields","types","basic","regional","historical","specific","banner","simple","fantasy","middleEarth","heater","spanish","french","horsehead","horsehead2","polish","hessen","swiss","boeotian","roman","kite","oldFrench","renaissance","baroque","targe","targe2","pavise","wedged","pennon","guidon","dovetail","gonfalon","pennant","round","oval","vesicaPiscis","square","diamond","no","noldor","gondor","easterling","erebor","ironHills","urukHai","moriaOrc","fantasy1","fantasy2","fantasy3","fantasy4","fantasy5","shieldTypes","shieldPaths","shieldBox","shieldSize","shieldPositions","z","A","F","I","DEFAULT_GRADIENTS","DEFAULT_BORDER","DEFAULT_BACKGROUND","DEFAULT_COLORS","argent","or","gules","sable","azure","vert","purpure","murrey","sanguine","DEFAULT_TINCTURES","field","metals","colours","stains","patterns","division","charge","semy","ermine","vair","counterVair","vairInPale","vairEnPointe","vairAncien","potent","counterPotent","potentInPale","potentEnPointe","chequy","lozengy","fusily","pally","barry","gemelles","bendy","bendySinister","palyBendy","barryBendy","pappellony","pappellony2","scaly","plumetty","masoned","fretty","grillage","chainy","maily","honeycombed","isTextReady","stored","localStorage","getItem","storedObj","diaper","grad","shield","coaParam","URL","href","searchParams","getShieldFromURL","colors","border","borderWidth","background","grid","showGrid","storedTinctures","tinctures","mandatoryElements","mandatoryTypes","totalChance","validateTinctures","defineInitialOptions","history","matrices","matrix","state","edit","about","license","raster","vector","view","iconedNav","success","timeout","defaultTimeout","info","createMessageStore","changes","undo","redo","createChangesStore","isFirefox","navigator","userAgent","includes","async","download","coas","getElementById","querySelectorAll","numberX","innerWidth","numberY","ceil","scaleValue","canvas","getContext","loaded","svg","addedElements","cloneNode","getElementsByTagName","gridPattern","remove","gr","di","insertAdjacentHTML","defs","outerHTML","chargePattern","addPattern","ordinaryPattern","fieldPattern","getElementsByClassName","divisionPattern","serialized","XMLSerializer","serializeToString","pretty","xmlDoc","DOMParser","parseFromString","xsltDoc","xsltProcessor","XSLTProcessor","importStylesheet","resultDoc","transformToDocument","prettify","blob","Blob","createObjectURL","revokeObjectURL","getURL","getTimestamp","click","downloadVector","img","Image","onload","drawImage","toDataURL","drawCanvas","downloadRaster","formatTime","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","checkForIconedNav","isIconed","makeIconed","touch","startX","startY","onbeforeunload","keybinding","Backspace","$matrix","Enter","KeyZ","KeyX","KeyS","ctrl","KeyP","KeyJ","F1","$state","Escape","$history","$changes","ctrlKey","activeElement","action","screenX","screenY","changedTouches","menu","navbar","contains","diffX","diffY","ratioX","ratioY","origin","pathname","translate","tooltip","dataset","isTouchAvailable","div","limit","gesture","hotkey","removeTooltip","on","textContent","className","body","bbox","innerHeight","pageX","pageY","cubicInOut","pow","cubicOut","fade","linear","opacity","fly","target_opacity","od","slide","padding_top","paddingTop","padding_bottom","paddingBottom","margin_top","marginTop","margin_bottom","marginBottom","border_top_width","borderTopWidth","border_bottom_width","borderBottomWidth","draw","speed","getTotalLength","strokeLinecap","parseInt","strokeWidth","label","tip","wide","disabled","flutter","right","onclick","stopPropagation","Boolean","locked","$t","removeItem","changeShield","setItem","coa","$shield","shieldName","sizes","gradients","diapers","changeGradient","gradient","changeDamasking","changeSize","sizeNumber","icon","oninput","Infinity","color","$scale","copyToClipboard","stringToCopy","clipboard","writeText","replaceAll","encodeURI","installable","promptEvent","prompt","userChoice","redoable","open","newLocale","languageName","DisplayNames","of","charAt","metal","t1","t2","perPale","perFess","perBend","perBendSinister","perCross","perChevron","perChevronReversed","perPile","perSaltire","gyronny","chevronny","charges","flat","noLicenseData","noSourceData","publicDomain","fairUse","armoriaGitHub","ccBy","fontAwesome","translateSafely","isInDictionary","$dictionary","$locale","chargeData","licenseURL","licenseName","getLicenseName","sourceURL","author","sort","isLicenseSame","positions","getClass","points","drag","currentTarget","x0","y0","sizeAdj","closest","clientWidth","move","resize","rotate","cursor","once","gridSize","positionElements","dx","dy","setGroupTransform","validPositions","getElTransform","setElementTransform","cx","cy","x1","y1","atan2","PI","angle","tr","shiftKey","metaKey","trim","sizeModifier","sx","sinister","sy","reversed","lines","straight","engrailed","invecked","embattled","wavy","raguly","dancetty","dentilly","angled","urdy","indented","bevilled","nowy","nowyReversed","potenty","potentyDexter","potentySinister","embattledGhibellin","embattledNotched","embattledGrady","dovetailed","dovetailedIndented","nebuly","rayonne","seaWaves","dragonTeeth","firTrees","flechy","barby","enclavy","escartely","arched","archedReversed","templates","perFessLined","perPaleLined","perBendLined","perBendSinisterLined","perChevronLined","perChevronReversedLined","perCrossLined","perPileLined","fess","pale","bend","bendSinister","chief","bar","gemelle","fessCotissed","fessDoubleCotissed","bendlet","bendletSinister","terrace","cross","crossParted","saltire","saltireParted","mount","point","flaunches","gore","pall","pallReversed","chevron","chevronReversed","gyron","quarter","canton","pile","pileInBend","pileInBendSinister","piles","pilesInPoint","fessLined","paleLined","bendLined","bendSinisterLined","chiefLined","barLined","gemelleLined","fessCotissedLined","fessDoubleCotissedLined","bendletLined","bendletSinisterLined","terraceLined","crossLined","crossPartedLined","saltireLined","saltirePartedLined","chargeId","chargesGroup","colorsData","loadedCharges","getTemplate","linedId","linePath","patternId","string","addCharge","clr","getSizeMod","checkPattern","licenseAttrs","addInescutcheon","res","ok","metadata","catch","fetchCharge","tincture","ordinary","stroke","shieldPath","t3","divided","seed","ordinaries","ordinariesRegular","above","ordinariesAboveCharges","coaDiaper","$diaper","diaperType","getDieperType","overFill","$grad","$colors","isEdit","viewBox","positionsSelect","conventional","abcdefgzi","beh","behdf","acegi","kn","bhdf","jeo","abc","jln","jlh","kmo","jleh","def","abcpqh","ABCDEFGHIJKL","complex","divisions","pq","jo","jl","jkl","gizgiz","lm","bcfdgh","jlmo","dfk","dfbh","bdefh","mok","dfh","bh","df","ee","be","abceh","abcabc","inescutcheon","variants","lined","bordure","orle","positionsOn","defdefdef","positionsOff","abcgzi","bgi","ach","joe","ccg","ccc","lem","aai","aaa","joejoejoe","lemlemlem","kenken","peqpeq","yyyy","hhh","bbb","emo","emoz","ez","eeee","behdfbehdf","behbehbeh","acgi","abcz","defdef","defgzi","eh","defdefhmo","egiegi","pqn","bdf","bb","yyy","jlhh","BCKFEILGJbdmfo","bemo","aczac","acdfgi","acac","eeoo","cg","eemm","ai","acbdef","jjj","jlemo","crosses","animals","animalHeads","birds","aquatic","seafaring","fantastic","plants","agriculture","arms","bodyparts","people","architecture","miscellaneous","uploaded","lozenge","fusil","mascle","rustre","lozengeFaceted","lozengePloye","roundel","roundel2","annulet","mullet","mulletPierced","mulletFaceted","mullet4","mullet6","mullet6Pierced","mullet6Faceted","mullet7","mullet8","mullet10","estoile","compassRose","billet","delf","triangle","trianglePierced","goutte","heart","pique","carreau","trefle","fleurDeLis","sun","sunInSplendour","sunInSplendour2","moonInCrescent","crescent","fountain","inescutcheonHeater","inescutcheonSpanish","inescutcheonFrench","inescutcheonHorsehead","inescutcheonHorsehead2","inescutcheonPolish","inescutcheonHessen","inescutcheonSwiss","inescutcheonBoeotian","inescutcheonRoman","inescutcheonKite","inescutcheonOldFrench","inescutcheonRenaissance","inescutcheonBaroque","inescutcheonTarge","inescutcheonTarge2","inescutcheonPavise","inescutcheonWedged","inescutcheonFlag","inescutcheonPennon","inescutcheonGuidon","inescutcheonBanner","inescutcheonDovetail","inescutcheonGonfalon","inescutcheonPennant","inescutcheonRound","inescutcheonOval","inescutcheonVesicaPiscis","inescutcheonSquare","inescutcheonDiamond","inescutcheonNo","inescutcheonFantasy1","inescutcheonFantasy2","inescutcheonFantasy3","inescutcheonFantasy4","inescutcheonFantasy5","inescutcheonNoldor","inescutcheonGondor","inescutcheonEasterling","inescutcheonErebor","inescutcheonIronHills","inescutcheonUrukHai","inescutcheonMoriaOrc","crossHummetty","crossVoided","crossPattee","crossPatteeAlisee","crossFormee","crossFormee2","crossPotent","crossJerusalem","crosslet","crossClechy","crossBottony","crossFleury","crossPatonce","crossPommy","crossGamma","crossArrowed","crossFitchy","crossCercelee","crossMoline","crossFourchy","crossAvellane","crossErminee","crossBiparted","crossMaltese","crossTemplar","crossCeltic","crossCeltic2","crossTriquetra","crossCarolingian","crossOccitan","crossSaltire","crossBurgundy","crossLatin","crossPatriarchal","crossOrthodox","crossCalvary","crossDouble","crossTau","crossSantiago","crossAnkh","lionRampant","lionPassant","lionPassantGuardant","lionSejant","wolfRampant","wolfPassant","wolfStatant","greyhoundCourant","greyhoundRampant","greyhoundSejant","mastiffStatant","talbotPassant","talbotSejant","martenCourant","boarRampant","stagPassant","hindStatant","horseRampant","horseSalient","horsePassant","bearRampant","bearPassant","bullPassant","cowStatant","goat","lamb","lambPassantReguardant","agnusDei","ramPassant","badgerStatant","elephant","rhinoceros","camel","porcupine","hedgehog","catPassantGuardant","rabbitSejant","ratRampant","squirrel","frog","snake","crocodile","lizard","scorpion","butterfly","bee","wolfHeadErased","bullHeadCaboshed","deerHeadCaboshed","donkeyHeadCaboshed","lionHeadCaboshed","lionHeadErased","boarHeadErased","horseHeadCouped","ramHeadErased","elephantHeadErased","dragonPassant","dragonRampant","wyvern","wyvernWithWingsDisplayed","griffinPassant","griffinRampant","eagleTwoHeads","unicornRampant","pegasus","serpent","basilisk","sagittarius","eagle","falcon","raven","cock","parrot","swan","swanErased","heron","owl","owlDisplayed","dove","doveDisplayed","duck","peacock","peacockInPride","swallow","tree","oak","pineTree","palmTree","trefoil","quatrefoil","cinquefoil","sextifoil","mapleLeaf","rose","apple","pear","grapeBunch","wheatStalk","pineCone","escallop","pike","plaice","salmon","cancer","dolphin","boat","boat2","lymphad","caravel","armillarySphere","garb","sickle","scythe","rake","plough","sword","falchion","sabre","sabresCrossed","sabre2","hatchet","axe","lochaberAxe","spear","mallet","bowWithArrow","bow","arrow","arrowsSheaf","arbalest","helmet","gauntlet","cannon","hand","headWreathed","foot","skull","cavalier","monk","angel","tower","castle","bridge","crown","crown2","laurelWreath","mitre","orb","chalice","buckle","bugleHorn","bugleHorn2","bell","pot","bucket","horseshoe","stirrup","attire","stagsAttires","ramsHorn","cowHorns","wing","wingSword","lute","harp","drum","wheel","crosier","sceptre","fasces","log","chain","anvil","ladder","bookClosed","bookOpen","scissors","natural","lme","pqe","knight","eknpq","patternSize","standard","small","smaller","big","smallest","generate","providedSeed","version","s0","s1","s2","initialArgs","uinta","Uint32Array","mashver","_initState","_internalSeed","mash","Mash","_isInteger","_int","fract53","int32","cycle","_run","range","loBound","hiBound","restart","versions","crypto","getRandomValues","aleaPRNG","usedPattern","usedTinctures","tData","divisioned","getTincture","linedOrdinary","rareDivided","selectCharge","ordinaryData","tOrdinary","item","allowCounter","p2","p1","p3","p4","c3","c4","t4","getSize","defineChargeAttributes","replaceTincture","getType","candidateTinctures","getBaseTincture","fields","RoT","patternName","startWithMetal","definePattern","typeTinctures","unusedTinctures","usedTincture","isAnyUnused","excludeTinctures","URLSearchParams","focus","coaSize","checked","query","queryOld","category","chargesData","categories","allCharges","allChargesTranslated","chargeList","getCharge","regEx","results","_charge","filterCharges","chargeName","elementCopy","divisionList","divisionsData","divisionName","newDivision","lineList","linesData","newLine","ordinariesList","ordinaryName","newOrdinary","addShieldPatterns","patternsData","newPattern","showPositions","$grid","$showGrid","showStroke","openColorInput","previousElementSibling","tincturesData","$tinctures","tinctureName","handleChange","restoreColor","defaults","colorChanged","isRaster","historyId","section","isLandscape","defineMenuState","isPattern","isSemy","getSemyCharge","getChargeCategory","find","getSemyType","selectSecondTincture","getField","tSplit","getDivision","getOrdinaries","getCharges","$message","reroll","attibutes","gallery","regenerate","$matrices","editCOA","fontSize","Node","off","getFilesFromInputEvent","getFilesFromDropEvent","dataTransfer","files","items","getAsFile","dragging","offsetX","offsetY","getFilesFunction","file","reader","FileReader","readerEvent","dataURL","readAsDataURL","loadImage","image","downloadTemplate","tinctureList","transformString","updateTransform","svgText","getAttributeNames","consolidated","baseVal","consolidate","fix","toFixed","readAsText","flip","ox","oy","transformOrigin","sqrt","chance","bottom","show","addLine","lock","changeElementChance","newValue","isNaN","changeTinctureChance","removeTincture","getTotalChance","translated","textOnMount","quantity","viewParam","sizeParam","seedParam","validateJSON","checkLoadParameters","desiredSize","defineGallerySize","$size","handleMatrixChange","manifest","languages","language","register","preferredLocale","shortLocale","initialLocale","registerSupportedLocales","serviceWorker","app"],"mappings":"gCAAA,SAASA,KACT,MAAMC,EAAWC,GAAKA,EAetB,SAASC,EAAIC,GACT,OAAOA,IAEX,SAASC,IACL,OAAOC,OAAOC,OAAO,MAEzB,SAASC,EAAQC,GACbA,EAAIC,QAAQP,GAEhB,SAASQ,EAAYC,GACjB,MAAwB,mBAAVA,EAElB,SAASC,EAAeC,EAAGC,GACvB,OAAOD,GAAKA,EAAIC,GAAKA,EAAID,IAAMC,GAAOD,GAAkB,iBAANA,GAAgC,mBAANA,EAqBhF,SAASE,EAAUC,KAAUC,GACzB,GAAa,MAATD,EACA,OAAOjB,EAEX,MAAMmB,EAAQF,EAAMD,aAAaE,GACjC,OAAOC,EAAMC,YAAc,IAAMD,EAAMC,cAAgBD,EAE3D,SAASE,EAAgBJ,GACrB,IAAIK,EAEJ,OADAN,EAAUC,GAAOM,GAAKD,EAAQC,GAA9BP,GACOM,EAEX,SAASE,EAAoBC,EAAWR,EAAOS,GAC3CD,EAAUE,GAAGC,WAAWC,KAAKb,EAAUC,EAAOS,IAElD,SAASI,EAAYC,EAAYC,EAAKC,EAAS7B,GAC3C,GAAI2B,EAAY,CACZ,MAAMG,EAAWC,EAAiBJ,EAAYC,EAAKC,EAAS7B,GAC5D,OAAO2B,EAAW,GAAGG,IAG7B,SAASC,EAAiBJ,EAAYC,EAAKC,EAAS7B,GAChD,OAAO2B,EAAW,IAAM3B,EAtE5B,SAAgBgC,EAAKC,GAEjB,IAAK,MAAMC,KAAKD,EACZD,EAAIE,GAAKD,EAAIC,GACjB,OAAOF,EAmEDG,CAAON,EAAQD,IAAIQ,QAAST,EAAW,GAAG3B,EAAG4B,KAC7CC,EAAQD,IAElB,SAASS,EAAiBV,EAAYE,EAASS,EAAOtC,GAClD,GAAI2B,EAAW,IAAM3B,EAAI,CACrB,MAAMuC,EAAOZ,EAAW,GAAG3B,EAAGsC,IAC9B,QAAsBE,IAAlBX,EAAQS,MACR,OAAOC,EAEX,GAAoB,iBAATA,EAAmB,CAC1B,MAAME,EAAS,GACTC,EAAMC,KAAKC,IAAIf,EAAQS,MAAMO,OAAQN,EAAKM,QAChD,IAAK,IAAIC,EAAI,EAAGA,EAAIJ,EAAKI,GAAK,EAC1BL,EAAOK,GAAKjB,EAAQS,MAAMQ,GAAKP,EAAKO,GAExC,OAAOL,EAEX,OAAOZ,EAAQS,MAAQC,EAE3B,OAAOV,EAAQS,MAEnB,SAASS,EAAiBC,EAAMC,EAAiBrB,EAAKC,EAASqB,EAAcC,GACzE,GAAID,EAAc,CACd,MAAME,EAAerB,EAAiBkB,EAAiBrB,EAAKC,EAASsB,GACrEH,EAAKK,EAAED,EAAcF,IAO7B,SAASI,EAAyBzB,GAC9B,GAAIA,EAAQD,IAAIiB,OAAS,GAAI,CACzB,MAAMP,EAAQ,GACRO,EAAShB,EAAQD,IAAIiB,OAAS,GACpC,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAQC,IACxBR,EAAMQ,IAAM,EAEhB,OAAOR,EAEX,OAAQ,EAiCZ,SAASiB,EAAcrC,GACnB,OAAgB,MAATA,EAAgB,GAAKA,EAEhC,SAASsC,EAAgB3C,EAAO4C,EAAKvC,GAEjC,OADAL,EAAM6C,IAAIxC,GACHuC,EAGX,SAASE,EAAiBC,GACtB,OAAOA,GAAiBrD,EAAYqD,EAAcC,SAAWD,EAAcC,QAAUjE,EAGzF,MAAMkE,EAA8B,oBAAXC,OACzB,IAAIC,EAAMF,EACJ,IAAMC,OAAOE,YAAYD,MACzB,IAAME,KAAKF,MACbG,EAAML,EAAYM,GAAMC,sBAAsBD,GAAMxE,EASxD,MAAM0E,EAAQ,IAAIC,IAClB,SAASC,EAAUR,GACfM,EAAMhE,SAAQmE,IACLA,EAAKC,EAAEV,KACRM,EAAMK,OAAOF,GACbA,EAAKG,QAGM,IAAfN,EAAMO,MACNV,EAAIK,GAYZ,SAASM,EAAKxD,GACV,IAAImD,EAGJ,OAFmB,IAAfH,EAAMO,MACNV,EAAIK,GACD,CACHO,QAAS,IAAIC,SAAQC,IACjBX,EAAMY,IAAIT,EAAO,CAAEC,EAAGpD,EAAUsD,EAAGK,OAEvCE,QACIb,EAAMK,OAAOF,KA0GzB,SAASW,EAAOC,EAAQC,GACpBD,EAAOE,YAAYD,GAWvB,SAASE,EAAmBF,GACxB,IAAKA,EACD,OAAOG,SACX,MAAMC,EAAOJ,EAAKK,YAAcL,EAAKK,cAAgBL,EAAKM,cAC1D,OAAIF,GAAQA,EAAKG,KACNH,EAEJJ,EAAKM,cAEhB,SAASE,EAAwBR,GAC7B,MAAMS,EAAgBC,EAAQ,SAE9B,OAEJ,SAA2BV,EAAMW,GAC7Bb,EAAOE,EAAKY,MAAQZ,EAAMW,GAJ1BE,CAAkBX,EAAmBF,GAAOS,GACrCA,EA6BX,SAASK,EAAOf,EAAQC,EAAMe,GAC1BhB,EAAOiB,aAAahB,EAAMe,GAAU,MAUxC,SAASE,EAAOjB,GACZA,EAAKkB,WAAWC,YAAYnB,GAEhC,SAASoB,EAAaC,EAAYC,GAC9B,IAAK,IAAI9D,EAAI,EAAGA,EAAI6D,EAAW9D,OAAQC,GAAK,EACpC6D,EAAW7D,IACX6D,EAAW7D,GAAG+D,EAAED,GAG5B,SAASZ,EAAQc,GACb,OAAOrB,SAASsB,cAAcD,GAiBlC,SAASE,EAAYF,GACjB,OAAOrB,SAASwB,gBAAgB,6BAA8BH,GAElE,SAASI,EAAKC,GACV,OAAO1B,SAAS2B,eAAeD,GAEnC,SAASE,IACL,OAAOH,EAAK,KAEhB,SAASI,IACL,OAAOJ,EAAK,IAEhB,SAASK,EAAOjC,EAAMkC,EAAOC,EAASC,GAElC,OADApC,EAAKqC,iBAAiBH,EAAOC,EAASC,GAC/B,IAAMpC,EAAKsC,oBAAoBJ,EAAOC,EAASC,GAE1D,SAASG,EAAgB7H,GACrB,OAAO,SAAUwH,GAGb,OAFAA,EAAMM,iBAEC9H,EAAG+H,KAAKC,KAAMR,IAwB7B,SAASS,EAAK3C,EAAM4C,EAAWhH,GACd,MAATA,EACAoE,EAAK6C,gBAAgBD,GAChB5C,EAAK8C,aAAaF,KAAehH,GACtCoE,EAAK+C,aAAaH,EAAWhH,GAoCrC,SAASoH,EAAWhD,EAAM4C,EAAWhH,GACjCoE,EAAKiD,eAAe,+BAAgCL,EAAWhH,GAanE,SAASsH,EAAUtH,GACf,MAAiB,KAAVA,EAAe,MAAQA,EAkIlC,SAASuH,EAASvB,EAAMC,GACpBA,EAAO,GAAKA,EACRD,EAAKwB,YAAcvB,IACnBD,EAAKC,KAAOA,GAEpB,SAASwB,EAAgBC,EAAO1H,GAC5B0H,EAAM1H,MAAiB,MAATA,EAAgB,GAAKA,EAUvC,SAAS2H,EAAUvD,EAAMwD,EAAK5H,EAAO6H,GACjCzD,EAAKW,MAAM+C,YAAYF,EAAK5H,EAAO6H,EAAY,YAAc,IAEjE,SAASE,EAAcC,EAAQhI,GAC3B,IAAK,IAAI4B,EAAI,EAAGA,EAAIoG,EAAOxB,QAAQ7E,OAAQC,GAAK,EAAG,CAC/C,MAAMqG,EAASD,EAAOxB,QAAQ5E,GAC9B,GAAIqG,EAAOC,UAAYlI,EAEnB,YADAiI,EAAOE,UAAW,GAI1BH,EAAOI,eAAiB,EAQ5B,SAASC,EAAaL,GAClB,MAAMM,EAAkBN,EAAOO,cAAc,aAAeP,EAAOxB,QAAQ,GAC3E,OAAO8B,GAAmBA,EAAgBJ,QA0D9C,SAASM,EAAa1D,EAASc,EAAM6C,GACjC3D,EAAQ4D,UAAUD,EAAS,MAAQ,UAAU7C,GAUjD,MAAM+C,EACFC,cACI9B,KAAK+B,EAAI/B,KAAKgC,EAAI,KAEtBtF,EAAEuF,GACEjC,KAAKkC,EAAED,GAEXE,EAAEF,EAAM5E,EAAQgB,EAAS,MAChB2B,KAAK+B,IACN/B,KAAK+B,EAAI/D,EAAQX,EAAO+E,UACxBpC,KAAKqC,EAAIhF,EACT2C,KAAKtD,EAAEuF,IAEXjC,KAAKlF,EAAEuD,GAEX6D,EAAED,GACEjC,KAAK+B,EAAEO,UAAYL,EACnBjC,KAAKgC,EAAIO,MAAMC,KAAKxC,KAAK+B,EAAEU,YAE/B3H,EAAEuD,GACE,IAAK,IAAIvD,EAAI,EAAGA,EAAIkF,KAAKgC,EAAEnH,OAAQC,GAAK,EACpCsD,EAAO4B,KAAKqC,EAAGrC,KAAKgC,EAAElH,GAAIuD,GAGlChD,EAAE4G,GACEjC,KAAKnB,IACLmB,KAAKkC,EAAED,GACPjC,KAAKlF,EAAEkF,KAAKtH,GAEhBmG,IACImB,KAAKgC,EAAE1J,QAAQiG,IAsCvB,MAAMmE,EAAc,IAAInG,IACxB,IAiIIoG,EAjIAC,EAAS,EASb,SAASC,EAAYvF,EAAM5E,EAAGC,EAAGmK,EAAUC,EAAOC,EAAMhL,EAAIiL,EAAM,GAC9D,MAAMC,EAAO,OAASJ,EACtB,IAAIK,EAAY,MAChB,IAAK,IAAI9H,EAAI,EAAGA,GAAK,EAAGA,GAAK6H,EAAM,CAC/B,MAAMb,EAAI3J,GAAKC,EAAID,GAAKsK,EAAK3H,GAC7B8H,GAAiB,IAAJ9H,EAAU,KAAKrD,EAAGqK,EAAG,EAAIA,QAE1C,MAAMe,EAAOD,EAAY,SAASnL,EAAGW,EAAG,EAAIA,SACtCmG,EAAO,YAfjB,SAAcuE,GACV,IAAIC,EAAO,KACPxI,EAAIuI,EAAIxI,OACZ,KAAOC,KACHwI,GAASA,GAAQ,GAAKA,EAAQD,EAAIE,WAAWzI,GACjD,OAAOwI,IAAS,EAUSA,CAAKF,MAASH,IACjCO,EAAMhG,EAAmBF,GAC/BoF,EAAYxF,IAAIsG,GAChB,MAAMC,EAAaD,EAAIE,sBAAwBF,EAAIE,oBAAsB5F,EAAwBR,GAAMqG,OACjGC,EAAgBJ,EAAIK,iBAAmBL,EAAIK,eAAiB,IAC7DD,EAAc9E,KACf8E,EAAc9E,IAAQ,EACtB2E,EAAWK,WAAW,cAAchF,KAAQsE,IAAQK,EAAWM,SAASlJ,SAE5E,MAAMmJ,EAAY1G,EAAKW,MAAM+F,WAAa,GAG1C,OAFA1G,EAAKW,MAAM+F,UAAY,GAAGA,EAAY,GAAGA,MAAgB,KAAKlF,KAAQgE,cAAqBC,aAC3FH,GAAU,EACH9D,EAEX,SAASmF,EAAY3G,EAAMwB,GACvB,MAAMoF,GAAY5G,EAAKW,MAAM+F,WAAa,IAAIG,MAAM,MAC9CC,EAAOF,EAASG,OAAOvF,EACvBwF,GAAQA,EAAKC,QAAQzF,GAAQ,EAC7BwF,IAAsC,IAA9BA,EAAKC,QAAQ,aAErBC,EAAUN,EAASrJ,OAASuJ,EAAKvJ,OACnC2J,IACAlH,EAAKW,MAAM+F,UAAYI,EAAKK,KAAK,MACjC7B,GAAU4B,EACL5B,GAKTzG,GAAI,KACIyG,IAEJF,EAAYpK,SAAQkL,IAChB,MAAMC,EAAaD,EAAIE,oBACvB,IAAI5I,EAAI2I,EAAWM,SAASlJ,OAC5B,KAAOC,KACH2I,EAAWiB,WAAW5J,GAC1B0I,EAAIK,eAAiB,MAEzBnB,EAAYiC,aAqDpB,SAASC,EAAatH,GAClB,MAAMW,EAAQ4G,iBAAiBvH,GAC/B,GAAuB,aAAnBW,EAAM6G,UAA8C,UAAnB7G,EAAM6G,SAAsB,CAC7D,MAAMC,MAAEA,EAAKC,OAAEA,GAAW/G,EACpBvF,EAAI4E,EAAK2H,wBACf3H,EAAKW,MAAM6G,SAAW,WACtBxH,EAAKW,MAAM8G,MAAQA,EACnBzH,EAAKW,MAAM+G,OAASA,EAI5B,SAAuB1H,EAAM5E,GACzB,MAAMC,EAAI2E,EAAK2H,wBACf,GAAIvM,EAAEwM,OAASvM,EAAEuM,MAAQxM,EAAEyM,MAAQxM,EAAEwM,IAAK,CACtC,MAAMlH,EAAQ4G,iBAAiBvH,GACzB8H,EAAgC,SAApBnH,EAAMmH,UAAuB,GAAKnH,EAAMmH,UAC1D9H,EAAKW,MAAMmH,UAAY,GAAGA,eAAuB1M,EAAEwM,KAAOvM,EAAEuM,WAAWxM,EAAEyM,IAAMxM,EAAEwM,UARjFE,CAAc/H,EAAM5E,IAa5B,SAAS4M,EAAsBjM,GAC3BsJ,EAAoBtJ,EAUxB,SAASkM,GAAQvN,IARjB,WACI,IAAK2K,EACD,MAAM,IAAI6C,MAAM,oDACpB,OAAO7C,GAMP8C,GAAwBlM,GAAGmM,SAASjM,KAAKzB,GA6C7C,MAAM2N,GAAmB,GAEnBC,GAAoB,GACpBC,GAAmB,GACnBC,GAAkB,GAClBC,GAAmB/I,QAAQgJ,UACjC,IAAIC,IAAmB,EAWvB,SAASC,GAAoBlO,GACzB6N,GAAiBpM,KAAKzB,GAE1B,SAASmO,GAAmBnO,GACxB8N,GAAgBrM,KAAKzB,GAEzB,IAAIoO,IAAW,EACf,MAAMC,GAAiB,IAAI9J,IAC3B,SAAS+J,KACL,IAAIF,GAAJ,CAEAA,IAAW,EACX,EAAG,CAGC,IAAK,IAAItL,EAAI,EAAGA,EAAI6K,GAAiB9K,OAAQC,GAAK,EAAG,CACjD,MAAMzB,EAAYsM,GAAiB7K,GACnCwK,EAAsBjM,GACtBkN,GAAOlN,EAAUE,IAIrB,IAFA+L,EAAsB,MACtBK,GAAiB9K,OAAS,EACnB+K,GAAkB/K,QACrB+K,GAAkBY,KAAlBZ,GAIJ,IAAK,IAAI9K,EAAI,EAAGA,EAAI+K,GAAiBhL,OAAQC,GAAK,EAAG,CACjD,MAAMxB,EAAWuM,GAAiB/K,GAC7BuL,GAAeI,IAAInN,KAEpB+M,GAAenJ,IAAI5D,GACnBA,KAGRuM,GAAiBhL,OAAS,QACrB8K,GAAiB9K,QAC1B,KAAOiL,GAAgBjL,QACnBiL,GAAgBU,KAAhBV,GAEJG,IAAmB,EACnBG,IAAW,EACXC,GAAe1B,SAEnB,SAAS4B,GAAOhN,GACZ,GAAoB,OAAhBA,EAAGmN,SAAmB,CACtBnN,EAAGgN,SACHnO,EAAQmB,EAAGoN,eACX,MAAMrM,EAAQf,EAAGe,MACjBf,EAAGe,MAAQ,EAAE,GACbf,EAAGmN,UAAYnN,EAAGmN,SAASrL,EAAE9B,EAAGK,IAAKU,GACrCf,EAAGqN,aAAatO,QAAQ4N,KAIhC,IAAInJ,GACJ,SAAS8J,KAOL,OANK9J,KACDA,GAAUC,QAAQgJ,UAClBjJ,GAAQ+J,MAAK,KACT/J,GAAU,SAGXA,GAEX,SAASgK,GAASzJ,EAAM0J,EAAWC,GAC/B3J,EAAK4J,cA3VT,SAAsBC,EAAMC,EAAQC,GAAU,GAC1C,MAAMtF,EAAItE,SAAS6J,YAAY,eAE/B,OADAvF,EAAEwF,gBAAgBJ,EAAME,GAAS,EAAOD,GACjCrF,EAwVYyF,CAAa,GAAGR,EAAY,QAAU,UAAUC,MAEvE,MAAMQ,GAAW,IAAIlL,IACrB,IAAImL,GACJ,SAASC,KACLD,GAAS,CACLE,EAAG,EACHlL,EAAG,GACHrB,EAAGqM,IAGX,SAASG,KACAH,GAAOE,GACRxP,EAAQsP,GAAOhL,GAEnBgL,GAASA,GAAOrM,EAEpB,SAASyM,GAAcC,EAAOC,GACtBD,GAASA,EAAMjN,IACf2M,GAAS9K,OAAOoL,GAChBA,EAAMjN,EAAEkN,IAGhB,SAASC,GAAeF,EAAOC,EAAOzJ,EAAQjF,GAC1C,GAAIyO,GAASA,EAAMG,EAAG,CAClB,GAAIT,GAAShB,IAAIsB,GACb,OACJN,GAASvK,IAAI6K,GACbL,GAAOhL,EAAEjD,MAAK,KACVgO,GAAS9K,OAAOoL,GACZzO,IACIiF,GACAwJ,EAAMlJ,EAAE,GACZvF,QAGRyO,EAAMG,EAAEF,IAGhB,MAAMG,GAAkB,CAAErF,SAAU,GACpC,SAASsF,GAAqB9K,EAAMtF,EAAIqQ,GACpC,IAEIC,EACA7L,EAHA8L,EAASvQ,EAAGsF,EAAM+K,GAClBG,GAAU,EAGVvF,EAAM,EACV,SAASwF,IACDH,GACArE,EAAY3G,EAAMgL,GAE1B,SAASI,IACL,MAAM3F,MAAEA,EAAQ,EAACD,SAAEA,EAAW,IAAG6F,OAAEA,EAAS9Q,EAAQ+Q,KAAEA,EAAOhR,EAAIiR,IAAEA,GAAQN,GAAUJ,GACjFU,IACAP,EAAiBzF,EAAYvF,EAAM,EAAG,EAAGwF,EAAUC,EAAO4F,EAAQE,EAAK5F,MAC3E2F,EAAK,EAAG,GACR,MAAME,EAAa9M,IAAQ+G,EACrBgG,EAAWD,EAAahG,EAC1BrG,GACAA,EAAKU,QACTqL,GAAU,EACVtC,IAAoB,IAAMa,GAASzJ,GAAM,EAAM,WAC/Cb,EAAOK,GAAKd,IACR,GAAIwM,EAAS,CACT,GAAIxM,GAAO+M,EAIP,OAHAH,EAAK,EAAG,GACR7B,GAASzJ,GAAM,EAAM,OACrBmL,IACOD,GAAU,EAErB,GAAIxM,GAAO8M,EAAY,CACnB,MAAMzG,EAAIsG,GAAQ3M,EAAM8M,GAAchG,GACtC8F,EAAKvG,EAAG,EAAIA,IAGpB,OAAOmG,KAGf,IAAIQ,GAAU,EACd,MAAO,CACHC,QACQD,IAEJA,GAAU,EACV/E,EAAY3G,GACR/E,EAAYgQ,IACZA,EAASA,IACT1B,KAAOC,KAAK4B,IAGZA,MAGRQ,aACIF,GAAU,GAEdG,MACQX,IACAC,IACAD,GAAU,KAK1B,SAASY,GAAsB9L,EAAMtF,EAAIqQ,GACrC,IAEIC,EAFAC,EAASvQ,EAAGsF,EAAM+K,GAClBG,GAAU,EAEd,MAAMa,EAAQ3B,GAEd,SAASgB,IACL,MAAM3F,MAAEA,EAAQ,EAACD,SAAEA,EAAW,IAAG6F,OAAEA,EAAS9Q,EAAQ+Q,KAAEA,EAAOhR,EAAIiR,IAAEA,GAAQN,GAAUJ,GACjFU,IACAP,EAAiBzF,EAAYvF,EAAM,EAAG,EAAGwF,EAAUC,EAAO4F,EAAQE,IACtE,MAAMC,EAAa9M,IAAQ+G,EACrBgG,EAAWD,EAAahG,EAC9BoD,IAAoB,IAAMa,GAASzJ,GAAM,EAAO,WAChDR,GAAKd,IACD,GAAIwM,EAAS,CACT,GAAIxM,GAAO+M,EAQP,OAPAH,EAAK,EAAG,GACR7B,GAASzJ,GAAM,EAAO,SACf+L,EAAMzB,GAGTxP,EAAQiR,EAAM3M,IAEX,EAEX,GAAIV,GAAO8M,EAAY,CACnB,MAAMzG,EAAIsG,GAAQ3M,EAAM8M,GAAchG,GACtC8F,EAAK,EAAIvG,EAAGA,IAGpB,OAAOmG,KAaf,OAtCAa,EAAMzB,GAAK,EA4BPrP,EAAYgQ,GACZ1B,KAAOC,MAAK,KAERyB,EAASA,IACTG,OAIJA,IAEG,CACHS,IAAIG,GACIA,GAASf,EAAOK,MAChBL,EAAOK,KAAK,EAAG,GAEfJ,IACIF,GACArE,EAAY3G,EAAMgL,GACtBE,GAAU,KAK1B,SAASe,GAAgCjM,EAAMtF,EAAIqQ,EAAQmB,GACvD,IAAIjB,EAASvQ,EAAGsF,EAAM+K,GAClBhG,EAAImH,EAAQ,EAAI,EAChBC,EAAkB,KAClBC,EAAkB,KAClBpB,EAAiB,KACrB,SAASqB,IACDrB,GACArE,EAAY3G,EAAMgL,GAE1B,SAASsB,EAAKC,EAAS/G,GACnB,MAAMjE,EAAKgL,EAAQlR,EAAI0J,EAEvB,OADAS,GAAYnI,KAAKmP,IAAIjL,GACd,CACHnG,EAAG2J,EACH1J,EAAGkR,EAAQlR,EACXkG,EAAAA,EACAiE,SAAAA,EACAmG,MAAOY,EAAQZ,MACfE,IAAKU,EAAQZ,MAAQnG,EACrBuG,MAAOQ,EAAQR,OAGvB,SAASX,EAAG/P,GACR,MAAMoK,MAAEA,EAAQ,EAACD,SAAEA,EAAW,IAAG6F,OAAEA,EAAS9Q,EAAQ+Q,KAAEA,EAAOhR,EAAIiR,IAAEA,GAAQN,GAAUJ,GAC/E0B,EAAU,CACZZ,MAAOjN,IAAQ+G,EACfpK,EAAAA,GAECA,IAEDkR,EAAQR,MAAQ3B,GAChBA,GAAOE,GAAK,GAEZ6B,GAAmBC,EACnBA,EAAkBG,GAKdhB,IACAc,IACArB,EAAiBzF,EAAYvF,EAAM+E,EAAG1J,EAAGmK,EAAUC,EAAO4F,EAAQE,IAElElQ,GACAiQ,EAAK,EAAG,GACZa,EAAkBG,EAAKC,EAAS/G,GAChCoD,IAAoB,IAAMa,GAASzJ,EAAM3E,EAAG,WAC5CmE,GAAKd,IAUD,GATI0N,GAAmB1N,EAAM0N,EAAgBT,QACzCQ,EAAkBG,EAAKF,EAAiB5G,GACxC4G,EAAkB,KAClB3C,GAASzJ,EAAMmM,EAAgB9Q,EAAG,SAC9BkQ,IACAc,IACArB,EAAiBzF,EAAYvF,EAAM+E,EAAGoH,EAAgB9Q,EAAG8Q,EAAgB3G,SAAU,EAAG6F,EAAQJ,EAAOM,OAGzGY,EACA,GAAIzN,GAAOyN,EAAgBN,IACvBP,EAAKvG,EAAIoH,EAAgB9Q,EAAG,EAAI0J,GAChC0E,GAASzJ,EAAMmM,EAAgB9Q,EAAG,OAC7B+Q,IAEGD,EAAgB9Q,EAEhBgR,MAIOF,EAAgBJ,MAAMzB,GACzBxP,EAAQqR,EAAgBJ,MAAM3M,IAG1C+M,EAAkB,UAEjB,GAAIzN,GAAOyN,EAAgBR,MAAO,CACnC,MAAM5N,EAAIW,EAAMyN,EAAgBR,MAChC5G,EAAIoH,EAAgB/Q,EAAI+Q,EAAgB5K,EAAI8J,EAAOtN,EAAIoO,EAAgB3G,UACvE8F,EAAKvG,EAAG,EAAIA,GAGpB,SAAUoH,IAAmBC,OAIzC,MAAO,CACH3R,IAAIY,GACIJ,EAAYgQ,GACZ1B,KAAOC,MAAK,KAERyB,EAASA,IACTG,EAAG/P,MAIP+P,EAAG/P,IAGXwQ,MACIQ,IACAF,EAAkBC,EAAkB,OAuFhD,MAAMK,GAA6B,oBAAXhO,OAClBA,OACsB,oBAAfiO,WACHA,WACAC,OAEV,SAASC,GAAcnC,EAAOoC,GAC1BpC,EAAMlJ,EAAE,GACRsL,EAAOxN,OAAOoL,EAAMjH,KAExB,SAASsJ,GAAwBrC,EAAOoC,GACpClC,GAAeF,EAAO,EAAG,GAAG,KACxBoC,EAAOxN,OAAOoL,EAAMjH,QAG5B,SAASuJ,GAAsBtC,EAAOoC,GAClCpC,EAAMnL,IACNsN,GAAcnC,EAAOoC,GAMzB,SAASG,GAAkBC,EAAYjQ,EAAOkQ,EAASC,EAAS7Q,EAAK8Q,EAAMP,EAAQ7M,EAAMzB,EAAS8O,EAAmBvG,EAAMwG,GACvH,IAAI1C,EAAIqC,EAAW1P,OACfmH,EAAI0I,EAAK7P,OACTC,EAAIoN,EACR,MAAM2C,EAAc,GACpB,KAAO/P,KACH+P,EAAYN,EAAWzP,GAAGgG,KAAOhG,EACrC,MAAMgQ,EAAa,GACbC,EAAa,IAAIC,IACjBC,EAAS,IAAID,IAEnB,IADAlQ,EAAIkH,EACGlH,KAAK,CACR,MAAMoQ,EAAYN,EAAYhR,EAAK8Q,EAAM5P,GACnCgG,EAAM0J,EAAQU,GACpB,IAAInD,EAAQoC,EAAOgB,IAAIrK,GAClBiH,EAII0C,GACL1C,EAAM1M,EAAE6P,EAAW5Q,IAJnByN,EAAQ4C,EAAkB7J,EAAKoK,GAC/BnD,EAAMrL,KAKVqO,EAAWrP,IAAIoF,EAAKgK,EAAWhQ,GAAKiN,GAChCjH,KAAO+J,GACPI,EAAOvP,IAAIoF,EAAKnG,KAAKmP,IAAIhP,EAAI+P,EAAY/J,KAEjD,MAAMsK,EAAY,IAAI7O,IAChB8O,EAAW,IAAI9O,IACrB,SAAS6B,EAAO2J,GACZD,GAAcC,EAAO,GACrBA,EAAM5F,EAAE7E,EAAM8G,GACd+F,EAAOzO,IAAIqM,EAAMjH,IAAKiH,GACtB3D,EAAO2D,EAAMuD,MACbtJ,IAEJ,KAAOkG,GAAKlG,GAAG,CACX,MAAMuJ,EAAYT,EAAW9I,EAAI,GAC3BwJ,EAAYjB,EAAWrC,EAAI,GAC3BuD,EAAUF,EAAUzK,IACpB4K,EAAUF,EAAU1K,IACtByK,IAAcC,GAEdpH,EAAOmH,EAAUD,MACjBpD,IACAlG,KAEM+I,EAAWtE,IAAIiF,IAKfvB,EAAO1D,IAAIgF,IAAYL,EAAU3E,IAAIgF,GAC3CrN,EAAOmN,GAEFF,EAAS5E,IAAIiF,GAClBxD,IAEK+C,EAAOE,IAAIM,GAAWR,EAAOE,IAAIO,IACtCL,EAASnO,IAAIuO,GACbrN,EAAOmN,KAGPH,EAAUlO,IAAIwO,GACdxD,MAfArM,EAAQ2P,EAAWrB,GACnBjC,KAiBR,KAAOA,KAAK,CACR,MAAMsD,EAAYjB,EAAWrC,GACxB6C,EAAWtE,IAAI+E,EAAU1K,MAC1BjF,EAAQ2P,EAAWrB,GAE3B,KAAOnI,GACH5D,EAAO0M,EAAW9I,EAAI,IAC1B,OAAO8I,EAoMX,SAASa,GAAKtS,EAAWyF,EAAMxF,GAC3B,MAAMsS,EAAQvS,EAAUE,GAAGsS,MAAM/M,QACnBtE,IAAVoR,IACAvS,EAAUE,GAAGuS,MAAMF,GAAStS,EAC5BA,EAASD,EAAUE,GAAGK,IAAIgS,KAGlC,SAASG,GAAiBhE,GACtBA,GAASA,EAAMrL,IAKnB,SAASsP,GAAgB3S,EAAWgE,EAAQgB,EAAQ4N,GAChD,MAAMvF,SAAEA,EAAQhB,SAAEA,EAAQlM,WAAEA,EAAUoN,aAAEA,GAAiBvN,EAAUE,GACnEmN,GAAYA,EAASvE,EAAE9E,EAAQgB,GAC1B4N,GAED/F,IAAoB,KAChB,MAAMgG,EAAiBxG,EAASyG,IAAIpU,GAAKsM,OAAO9L,GAC5CiB,EACAA,EAAWC,QAAQyS,GAKnB9T,EAAQ8T,GAEZ7S,EAAUE,GAAGmM,SAAW,MAGhCkB,EAAatO,QAAQ4N,IAEzB,SAASkG,GAAkB/S,EAAWuF,GAClC,MAAMrF,EAAKF,EAAUE,GACD,OAAhBA,EAAGmN,WACHtO,EAAQmB,EAAGC,YACXD,EAAGmN,UAAYnN,EAAGmN,SAAS7H,EAAED,GAG7BrF,EAAGC,WAAaD,EAAGmN,SAAW,KAC9BnN,EAAGK,IAAM,IAGjB,SAASyS,GAAWhT,EAAWyB,IACI,IAA3BzB,EAAUE,GAAGe,MAAM,KACnBqL,GAAiBlM,KAAKJ,GAxvBrB4M,KACDA,IAAmB,EACnBF,GAAiBe,KAAKR,KAwvBtBjN,EAAUE,GAAGe,MAAMgS,KAAK,IAE5BjT,EAAUE,GAAGe,MAAOQ,EAAI,GAAM,IAAO,GAAMA,EAAI,GAEnD,SAAS8O,GAAKvQ,EAAWqG,EAAS6M,EAAUC,EAAiBC,EAAWZ,EAAOa,EAAepS,EAAQ,EAAE,IACpG,MAAMqS,EAAmBhK,EACzB2C,EAAsBjM,GACtB,MAAME,EAAKF,EAAUE,GAAK,CACtBmN,SAAU,KACV9M,IAAK,KAELiS,MAAAA,EACAtF,OAAQ3O,EACR6U,UAAAA,EACAX,MAAO7T,IAEPyN,SAAU,GACVlM,WAAY,GACZoT,cAAe,GACfjG,cAAe,GACfC,aAAc,GACdiG,QAAS,IAAI7B,IAAItL,EAAQmN,UAAYF,EAAmBA,EAAiBpT,GAAGsT,QAAU,KAEtF/T,UAAWb,IACXqC,MAAAA,EACAwS,YAAY,EACZpP,KAAMgC,EAAQrC,QAAUsP,EAAiBpT,GAAGmE,MAEhDgP,GAAiBA,EAAcnT,EAAGmE,MAClC,IAAIqP,GAAQ,EAkBZ,GAjBAxT,EAAGK,IAAM2S,EACHA,EAASlT,EAAWqG,EAAQmM,OAAS,IAAI,CAAC/Q,EAAGW,KAAQuR,KACnD,MAAM9T,EAAQ8T,EAAKnS,OAASmS,EAAK,GAAKvR,EAOtC,OANIlC,EAAGK,KAAO6S,EAAUlT,EAAGK,IAAIkB,GAAIvB,EAAGK,IAAIkB,GAAK5B,MACtCK,EAAGuT,YAAcvT,EAAGuS,MAAMhR,IAC3BvB,EAAGuS,MAAMhR,GAAG5B,GACZ6T,GACAV,GAAWhT,EAAWyB,IAEvBW,KAET,GACNlC,EAAGgN,SACHwG,GAAQ,EACR3U,EAAQmB,EAAGoN,eAEXpN,EAAGmN,WAAW8F,GAAkBA,EAAgBjT,EAAGK,KAC/C8F,EAAQrC,OAAQ,CAChB,GAAIqC,EAAQuN,QAAS,CAEjB,MAAMC,EAvxClB,SAAkBlP,GACd,OAAOuE,MAAMC,KAAKxE,EAAQyE,YAsxCJ0K,CAASzN,EAAQrC,QAE/B9D,EAAGmN,UAAYnN,EAAGmN,SAAS0G,EAAEF,GAC7BA,EAAM5U,QAAQiG,QAIdhF,EAAGmN,UAAYnN,EAAGmN,SAAShK,IAE3BgD,EAAQ8J,OACR1B,GAAczO,EAAUE,GAAGmN,UAC/BsF,GAAgB3S,EAAWqG,EAAQrC,OAAQqC,EAAQrB,OAAQqB,EAAQuM,eAEnE3F,KAEJhB,EAAsBqH,GAkD1B,MAAMU,GACFC,WACIlB,GAAkBpM,KAAM,GACxBA,KAAKsN,SAAW1V,EAEpB2V,IAAIpG,EAAM7N,GACN,MAAMR,EAAakH,KAAKzG,GAAGT,UAAUqO,KAAUnH,KAAKzG,GAAGT,UAAUqO,GAAQ,IAEzE,OADArO,EAAUW,KAAKH,GACR,KACH,MAAMsS,EAAQ9S,EAAUyL,QAAQjL,IACjB,IAAXsS,GACA9S,EAAU0U,OAAO5B,EAAO,IAGpC6B,KAAKC,GAtzDT,IAAkBC,EAuzDN3N,KAAK4N,QAvzDCD,EAuzDkBD,EAtzDG,IAA5BxV,OAAO2V,KAAKF,GAAK9S,UAuzDhBmF,KAAKzG,GAAGuT,YAAa,EACrB9M,KAAK4N,MAAMF,GACX1N,KAAKzG,GAAGuT,YAAa,ICj2DjC,MAAMgB,GAAmB,GAgBzB,SAASC,GAAS7U,EAAO+P,EAAQrR,GAC7B,IAAIoW,EACJ,MAAMC,EAAc,IAAI1R,IACxB,SAASb,EAAIwS,GACT,GAAIzV,EAAeS,EAAOgV,KACtBhV,EAAQgV,EACJF,GAAM,CACN,MAAMG,GAAaL,GAAiBjT,OACpC,IAAK,MAAMuT,KAAcH,EACrBG,EAAW,KACXN,GAAiBrU,KAAK2U,EAAYlV,GAEtC,GAAIiV,EAAW,CACX,IAAK,IAAIrT,EAAI,EAAGA,EAAIgT,GAAiBjT,OAAQC,GAAK,EAC9CgT,GAAiBhT,GAAG,GAAGgT,GAAiBhT,EAAI,IAEhDgT,GAAiBjT,OAAS,IAuB1C,MAAO,CAAEa,IAAAA,EAAK6K,OAlBd,SAAgBvO,GACZ0D,EAAI1D,EAAGkB,KAiBWN,UAftB,SAAmBb,EAAKmR,EAAatR,GACjC,MAAMwW,EAAa,CAACrW,EAAKmR,GAMzB,OALA+E,EAAY/Q,IAAIkR,GACS,IAArBH,EAAYpR,OACZmR,EAAO/E,EAAMvN,IAAQ9D,GAEzBG,EAAImB,GACG,KACH+U,EAAYtR,OAAOyR,GACM,IAArBH,EAAYpR,OACZmR,IACAA,EAAO,SAMvB,SAASK,GAAQC,EAAQtW,EAAIuW,GACzB,MAAMC,GAAUjM,MAAMkM,QAAQH,GACxBI,EAAeF,EACf,CAACF,GACDA,EACAK,EAAO3W,EAAG6C,OAAS,EACzB,OAzDqBoO,EAyDWvN,IAC5B,IAAIkT,GAAS,EACb,MAAMC,EAAS,GACf,IAAIC,EAAU,EACVrG,EAAU7Q,EACd,MAAMmX,EAAO,KACT,GAAID,EACA,OAEJrG,IACA,MAAMuG,EAAShX,EAAGwW,EAASK,EAAO,GAAKA,EAAQnT,GAC3CiT,EACAjT,EAAIsT,GAGJvG,EAAUlQ,EAAYyW,GAAUA,EAASpX,GAG3CqX,EAAgBP,EAAavC,KAAI,CAACtT,EAAOiC,IAAMlC,EAAUC,GAAQK,IACnE2V,EAAO/T,GAAK5B,EACZ4V,KAAa,GAAKhU,GACd8T,GACAG,OAEL,KACCD,GAAY,GAAKhU,OAIrB,OAFA8T,GAAS,EACTG,IACO,WACH3W,EAAQ6W,GACRxG,MAvFD,CACH7P,UAAWmV,GAuDCQ,EAvDetF,GAAOrQ,WAF1C,IAAyBqQ,ECPzB,IAAIiG,GAAoB,SAA2BhW,GAClD,OAID,SAAyBA,GACxB,QAASA,GAA0B,iBAAVA,EALlBiW,CAAgBjW,KAQxB,SAAmBA,GAClB,IAAIkW,EAAclX,OAAOmX,UAAUC,SAASvP,KAAK7G,GAEjD,MAAuB,oBAAhBkW,GACa,kBAAhBA,GAQL,SAAwBlW,GACvB,OAAOA,EAAMqW,WAAaC,GARtBC,CAAevW,GAZdwW,CAAUxW,IAgBhB,IACIsW,GADiC,mBAAXG,QAAyBA,OAAOC,IAClBD,OAAOC,IAAI,iBAAmB,MAUtE,SAASC,GAA8B3W,EAAOwG,GAC7C,OAA0B,IAAlBA,EAAQoQ,OAAmBpQ,EAAQwP,kBAAkBhW,GAC1D6W,IANiBC,EAMK9W,EALlBqJ,MAAMkM,QAAQuB,GAAO,GAAK,IAKA9W,EAAOwG,GACrCxG,EAPJ,IAAqB8W,EAUrB,SAASC,GAAkB5S,EAAQ6S,EAAQxQ,GAC1C,OAAOrC,EAAO8S,OAAOD,GAAQ/D,KAAI,SAASnO,GACzC,OAAO6R,GAA8B7R,EAAS0B,MAoBhD,SAAS0Q,GAAQ/S,GAChB,OAAOnF,OAAO2V,KAAKxQ,GAAQ8S,OAT5B,SAAyC9S,GACxC,OAAOnF,OAAOmY,sBACXnY,OAAOmY,sBAAsBhT,GAAQgH,QAAO,SAASiM,GACtD,OAAOjT,EAAOkT,qBAAqBD,MAElC,GAI+BE,CAAgCnT,IAGnE,SAASoT,GAAmBC,EAAQC,GACnC,IACC,OAAOA,KAAYD,EAClB,MAAMvX,GACP,OAAO,GAWT,SAASyX,GAAYvT,EAAQ6S,EAAQxQ,GACpC,IAAImR,EAAc,GAiBlB,OAhBInR,EAAQwP,kBAAkB7R,IAC7B+S,GAAQ/S,GAAQ/E,SAAQ,SAASwI,GAChC+P,EAAY/P,GAAO+O,GAA8BxS,EAAOyD,GAAMpB,MAGhE0Q,GAAQF,GAAQ5X,SAAQ,SAASwI,IAblC,SAA0BzD,EAAQyD,GACjC,OAAO2P,GAAmBpT,EAAQyD,MAC5B5I,OAAO4Y,eAAe/Q,KAAK1C,EAAQyD,IACpC5I,OAAOqY,qBAAqBxQ,KAAK1C,EAAQyD,KAWzCiQ,CAAiB1T,EAAQyD,KAIzB2P,GAAmBpT,EAAQyD,IAAQpB,EAAQwP,kBAAkBgB,EAAOpP,IACvE+P,EAAY/P,GAhDf,SAA0BA,EAAKpB,GAC9B,IAAKA,EAAQsR,YACZ,OAAOjB,GAER,IAAIiB,EAActR,EAAQsR,YAAYlQ,GACtC,MAA8B,mBAAhBkQ,EAA6BA,EAAcjB,GA2CpCkB,CAAiBnQ,EAAKpB,EAAtBuR,CAA+B5T,EAAOyD,GAAMoP,EAAOpP,GAAMpB,GAE5EmR,EAAY/P,GAAO+O,GAA8BK,EAAOpP,GAAMpB,OAGzDmR,EAGR,SAASd,GAAU1S,EAAQ6S,EAAQxQ,IAClCA,EAAUA,GAAW,IACbwR,WAAaxR,EAAQwR,YAAcjB,GAC3CvQ,EAAQwP,kBAAoBxP,EAAQwP,mBAAqBA,GAGzDxP,EAAQmQ,8BAAgCA,GAExC,IAAIsB,EAAgB5O,MAAMkM,QAAQyB,GAIlC,OAFgCiB,IADZ5O,MAAMkM,QAAQpR,GAKvB8T,EACHzR,EAAQwR,WAAW7T,EAAQ6S,EAAQxQ,GAEnCkR,GAAYvT,EAAQ6S,EAAQxQ,GAJ5BmQ,GAA8BK,EAAQxQ,GAQ/CqQ,GAAUqB,IAAM,SAAsBC,EAAO3R,GAC5C,IAAK6C,MAAMkM,QAAQ4C,GAClB,MAAM,IAAI7L,MAAM,qCAGjB,OAAO6L,EAAMC,QAAO,SAASC,EAAMnN,GAClC,OAAO2L,GAAUwB,EAAMnN,EAAM1E,KAC3B,KAGJ,OAAkBqQ,GClHdyB,GAAgB,SAAS3S,EAAGlG,GAI5B,OAHA6Y,GAAgBtZ,OAAOuZ,gBAClB,CAAEC,UAAW,cAAgBnP,OAAS,SAAU1D,EAAGlG,GAAKkG,EAAE6S,UAAY/Y,IACvE,SAAUkG,EAAGlG,GAAK,IAAK,IAAI0C,KAAK1C,EAAOT,OAAOmX,UAAUyB,eAAe/Q,KAAKpH,EAAG0C,KAAIwD,EAAExD,GAAK1C,EAAE0C,KACzFmW,GAAc3S,EAAGlG,IAGrB,SAASgZ,GAAU9S,EAAGlG,GACzB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIiZ,UAAU,uBAAyBC,OAAOlZ,GAAK,iCAE7D,SAASmZ,IAAO9R,KAAK8B,YAAcjD,EADnC2S,GAAc3S,EAAGlG,GAEjBkG,EAAEwQ,UAAkB,OAAN1W,EAAaT,OAAOC,OAAOQ,IAAMmZ,EAAGzC,UAAY1W,EAAE0W,UAAW,IAAIyC,GAG5E,IC/BIC,GCAAC,GAwCAC,GFTAC,GAAW,WAQlB,OAPAA,GAAWha,OAAOiC,QAAU,SAAkBkI,GAC1C,IAAK,IAAI8P,EAAGrX,EAAI,EAAGkH,EAAIoQ,UAAUvX,OAAQC,EAAIkH,EAAGlH,IAE5C,IAAK,IAAIO,KADT8W,EAAIC,UAAUtX,GACO5C,OAAOmX,UAAUyB,eAAe/Q,KAAKoS,EAAG9W,KAAIgH,EAAEhH,GAAK8W,EAAE9W,IAE9E,OAAOgH,GAEJ6P,GAASG,MAAMrS,KAAMoS,YA6HzB,SAASE,GAAcC,EAAI/P,EAAMgQ,GACpC,GAAIA,GAA6B,IAArBJ,UAAUvX,OAAc,IAAK,IAA4B4X,EAAxB3X,EAAI,EAAGsS,EAAI5K,EAAK3H,OAAYC,EAAIsS,EAAGtS,KACxE2X,GAAQ3X,KAAK0H,IACRiQ,IAAIA,EAAKlQ,MAAM8M,UAAUjV,MAAM2F,KAAKyC,EAAM,EAAG1H,IAClD2X,EAAG3X,GAAK0H,EAAK1H,IAGrB,OAAOyX,EAAGpC,OAAOsC,GAAMlQ,MAAM8M,UAAUjV,MAAM2F,KAAKyC,IE3H/C,SAASkQ,GAAiBC,GAC7B,OAAOA,EAAGxL,OAAS6K,GAAKY,QAErB,SAASC,GAAkBF,GAC9B,OAAOA,EAAGxL,OAAS6K,GAAKc,SAErB,SAASC,GAAgBJ,GAC5B,OAAOA,EAAGxL,OAAS6K,GAAKgB,OAErB,SAASC,GAAcN,GAC1B,OAAOA,EAAGxL,OAAS6K,GAAKkB,KAErB,SAASC,GAAcR,GAC1B,OAAOA,EAAGxL,OAAS6K,GAAKoB,KAErB,SAASC,GAAgBV,GAC5B,OAAOA,EAAGxL,OAAS6K,GAAK9Q,OAErB,SAASoS,GAAgBX,GAC5B,OAAOA,EAAGxL,OAAS6K,GAAKuB,OAErB,SAASC,GAAeb,GAC3B,OAAOA,EAAGxL,OAAS6K,GAAKyB,MAErB,SAASC,GAAaf,GACzB,OAAOA,EAAGxL,OAAS6K,GAAK2B,IAErB,SAASC,GAAiBjB,GAC7B,SAAUA,GAAoB,iBAAPA,GAAmBA,EAAGxL,OAAS8K,GAAce,QAEjE,SAASa,GAAmBlB,GAC/B,SAAUA,GAAoB,iBAAPA,GAAmBA,EAAGxL,OAAS8K,GAAc6B,WD9ExE,SAAW/B,GAEPA,EAAUA,EAAyC,8BAAI,GAAK,gCAE5DA,EAAUA,EAA0B,eAAI,GAAK,iBAE7CA,EAAUA,EAA8B,mBAAI,GAAK,qBAEjDA,EAAUA,EAAgC,qBAAI,GAAK,uBAEnDA,EAAUA,EAAiC,sBAAI,GAAK,wBAEpDA,EAAUA,EAAiC,sBAAI,GAAK,wBAEpDA,EAAUA,EAAmC,wBAAI,GAAK,0BAEtDA,EAAUA,EAAsC,2BAAI,GAAK,6BAEzDA,EAAUA,EAAkC,uBAAI,GAAK,yBAErDA,EAAUA,EAAqC,0BAAI,IAAM,4BAEzDA,EAAUA,EAA4C,iCAAI,IAAM,mCAEhEA,EAAUA,EAA0C,+BAAI,IAAM,iCAE9DA,EAAUA,EAA+C,oCAAI,IAAM,sCAEnEA,EAAUA,EAAgD,qCAAI,IAAM,uCAEpEA,EAAUA,EAA2C,gCAAI,IAAM,kCAE/DA,EAAUA,EAA2C,gCAAI,IAAM,kCAE/DA,EAAUA,EAAoD,yCAAI,IAAM,2CAKxEA,EAAUA,EAAoD,yCAAI,IAAM,2CAExEA,EAAUA,EAA4C,iCAAI,IAAM,mCAKhEA,EAAUA,EAA8C,mCAAI,IAAM,qCAIlEA,EAAUA,EAA8C,mCAAI,IAAM,qCAElEA,EAAUA,EAAgC,qBAAI,IAAM,uBAEpDA,EAAUA,EAAuB,YAAI,IAAM,cAE3CA,EAAUA,EAA4B,iBAAI,IAAM,mBAEhDA,EAAUA,EAAiC,sBAAI,IAAM,wBAErDA,EAAUA,EAAwB,aAAI,IAAM,eA5DhD,CA6DGA,KAAcA,GAAY,KC7D7B,SAAWC,GAIPA,EAAKA,EAAc,QAAI,GAAK,UAI5BA,EAAKA,EAAe,SAAI,GAAK,WAI7BA,EAAKA,EAAa,OAAI,GAAK,SAI3BA,EAAKA,EAAW,KAAI,GAAK,OAIzBA,EAAKA,EAAW,KAAI,GAAK,OAIzBA,EAAKA,EAAa,OAAI,GAAK,SAI3BA,EAAKA,EAAa,OAAI,GAAK,SAK3BA,EAAKA,EAAY,MAAI,GAAK,QAI1BA,EAAKA,EAAU,IAAI,GAAK,MArC5B,CAsCGA,KAASA,GAAO,KAEnB,SAAWC,GACPA,EAAcA,EAAsB,OAAI,GAAK,SAC7CA,EAAcA,EAAwB,SAAI,GAAK,WAFnD,CAGGA,KAAkBA,GAAgB,KC3C9B,IAAI8B,GAAwB,+CCI/BC,GAAkB,4KAOf,SAASC,GAAsBC,GAClC,IAAIlF,EAAS,GA0Gb,OAzGAkF,EAASC,QAAQH,IAAiB,SAAUI,GACxC,IAAI1Z,EAAM0Z,EAAMvZ,OAChB,OAAQuZ,EAAM,IAEV,IAAK,IACDpF,EAAOqF,IAAc,IAAR3Z,EAAY,OAAiB,IAARA,EAAY,SAAW,QACzD,MAEJ,IAAK,IACDsU,EAAOsF,KAAe,IAAR5Z,EAAY,UAAY,UACtC,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACD,MAAM,IAAI6Z,WAAW,gEAEzB,IAAK,IACL,IAAK,IACD,MAAM,IAAIA,WAAW,8CAEzB,IAAK,IACL,IAAK,IACDvF,EAAOwF,MAAQ,CAAC,UAAW,UAAW,QAAS,OAAQ,UAAU9Z,EAAM,GACvE,MAEJ,IAAK,IACL,IAAK,IACD,MAAM,IAAI6Z,WAAW,2CACzB,IAAK,IACDvF,EAAOyF,IAAM,CAAC,UAAW,WAAW/Z,EAAM,GAC1C,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACD,MAAM,IAAI6Z,WAAW,6DAEzB,IAAK,IACDvF,EAAO0F,QAAkB,IAARha,EAAY,QAAkB,IAARA,EAAY,SAAW,QAC9D,MACJ,IAAK,IACD,GAAIA,EAAM,EACN,MAAM,IAAI6Z,WAAW,iDAEzBvF,EAAO0F,QAAU,CAAC,QAAS,OAAQ,SAAU,SAASha,EAAM,GAC5D,MACJ,IAAK,IACD,GAAIA,EAAM,EACN,MAAM,IAAI6Z,WAAW,iDAEzBvF,EAAO0F,QAAU,CAAC,QAAS,OAAQ,SAAU,SAASha,EAAM,GAC5D,MAEJ,IAAK,IACDsU,EAAO2F,QAAS,EAChB,MACJ,IAAK,IACL,IAAK,IACD,MAAM,IAAIJ,WAAW,8DAEzB,IAAK,IACDvF,EAAO4F,UAAY,MACnB5F,EAAO6F,KAAO,CAAC,UAAW,WAAWna,EAAM,GAC3C,MACJ,IAAK,IACDsU,EAAO4F,UAAY,MACnB5F,EAAO6F,KAAO,CAAC,UAAW,WAAWna,EAAM,GAC3C,MACJ,IAAK,IACDsU,EAAO4F,UAAY,MACnB5F,EAAO6F,KAAO,CAAC,UAAW,WAAWna,EAAM,GAC3C,MACJ,IAAK,IACDsU,EAAO4F,UAAY,MACnB5F,EAAO6F,KAAO,CAAC,UAAW,WAAWna,EAAM,GAC3C,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACD,MAAM,IAAI6Z,WAAW,oEAEzB,IAAK,IACDvF,EAAO8F,OAAS,CAAC,UAAW,WAAWpa,EAAM,GAC7C,MAEJ,IAAK,IACDsU,EAAO+F,OAAS,CAAC,UAAW,WAAWra,EAAM,GAC7C,MACJ,IAAK,IACL,IAAK,IACD,MAAM,IAAI6Z,WAAW,8DAEzB,IAAK,IACDvF,EAAOgG,aAAeta,EAAM,EAAI,QAAU,OAC1C,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACD,MAAM,IAAI6Z,WAAW,wEAE7B,MAAO,MAEJvF,ECtHJ,IAAIiG,GAAoB,wCC8B/B,IC/BIC,GD+BAC,GAA2B,mCAC3BC,GAA8B,wBAC9BC,GAAsB,0BACtBC,GAA8B,SAClC,SAASC,GAA0BlS,GAC/B,IAAI2L,EAAS,GA6Bb,MA5B4B,MAAxB3L,EAAIA,EAAIxI,OAAS,GACjBmU,EAAOwG,iBAAmB,gBAEG,MAAxBnS,EAAIA,EAAIxI,OAAS,KACtBmU,EAAOwG,iBAAmB,iBAE9BnS,EAAI8Q,QAAQiB,IAA6B,SAAUjc,EAAGsc,EAAIC,GAoBtD,MAlBkB,iBAAPA,GACP1G,EAAO2G,yBAA2BF,EAAG5a,OACrCmU,EAAO4G,yBAA2BH,EAAG5a,QAGzB,MAAP6a,EACL1G,EAAO2G,yBAA2BF,EAAG5a,OAGtB,MAAV4a,EAAG,GACRzG,EAAO4G,yBAA2BH,EAAG5a,QAIrCmU,EAAO2G,yBAA2BF,EAAG5a,OACrCmU,EAAO4G,yBACHH,EAAG5a,QAAwB,iBAAP6a,EAAkBA,EAAG7a,OAAS,IAEnD,MAEJmU,EAEX,SAAS6G,GAAUxS,GACf,OAAQA,GACJ,IAAK,YACD,MAAO,CACHyS,YAAa,QAErB,IAAK,kBACL,IAAK,KACD,MAAO,CACHC,aAAc,cAEtB,IAAK,cACL,IAAK,KACD,MAAO,CACHD,YAAa,UAErB,IAAK,yBACL,IAAK,MACD,MAAO,CACHA,YAAa,SACbC,aAAc,cAEtB,IAAK,mBACL,IAAK,KACD,MAAO,CACHD,YAAa,cAErB,IAAK,8BACL,IAAK,MACD,MAAO,CACHA,YAAa,aACbC,aAAc,cAEtB,IAAK,aACL,IAAK,KACD,MAAO,CACHD,YAAa,UAI7B,SAASE,GAAyCC,GAE9C,IAAIjH,EAaJ,GAZgB,MAAZiH,EAAK,IAA0B,MAAZA,EAAK,IACxBjH,EAAS,CACLkH,SAAU,eAEdD,EAAOA,EAAK7b,MAAM,IAED,MAAZ6b,EAAK,KACVjH,EAAS,CACLkH,SAAU,cAEdD,EAAOA,EAAK7b,MAAM,IAElB4U,EAAQ,CACR,IAAI8G,EAAcG,EAAK7b,MAAM,EAAG,GAShC,GARoB,OAAhB0b,GACA9G,EAAO8G,YAAc,SACrBG,EAAOA,EAAK7b,MAAM,IAEG,OAAhB0b,IACL9G,EAAO8G,YAAc,aACrBG,EAAOA,EAAK7b,MAAM,KAEjBkb,GAA4Ba,KAAKF,GAClC,MAAM,IAAIzQ,MAAM,6CAEpBwJ,EAAOoH,qBAAuBH,EAAKpb,OAEvC,OAAOmU,EAEX,SAASqH,GAAqBC,GAC1B,IACIC,EAAWV,GAAUS,GACzB,OAAIC,GAFS,GAUV,SAASC,GAAoBC,GAEhC,IADA,IAAIzH,EAAS,GACJ0H,EAAK,EAAGC,EAAWF,EAAQC,EAAKC,EAAS9b,OAAQ6b,IAAM,CAC5D,IAAIE,EAAQD,EAASD,GACrB,OAAQE,EAAMX,MACV,IAAK,UACL,IAAK,IACDjH,EAAO/Q,MAAQ,UACf,SACJ,IAAK,QACD+Q,EAAO/Q,MAAQ,UACf+Q,EAAO6H,MAAQ,IACf,SACJ,IAAK,WACD7H,EAAO/Q,MAAQ,WACf+Q,EAAO8H,SAAWF,EAAMlX,QAAQ,GAChC,SACJ,IAAK,YACL,IAAK,KACDsP,EAAO+H,aAAc,EACrB,SACJ,IAAK,oBACL,IAAK,IACD/H,EAAOgI,sBAAwB,EAC/B,SACJ,IAAK,eACL,IAAK,OACDhI,EAAO/Q,MAAQ,OACf+Q,EAAOiI,KAAqBL,EAAMlX,QAAQ,GArJ1CyU,QAAQ,UAAW,IAsJnB,SACJ,IAAK,gBACL,IAAK,IACDnF,EAAOkH,SAAW,UAClBlH,EAAOkI,eAAiB,QACxB,SACJ,IAAK,eACL,IAAK,KACDlI,EAAOkH,SAAW,UAClBlH,EAAOkI,eAAiB,OACxB,SACJ,IAAK,aACDlI,EAASkD,GAASA,GAASA,GAAS,GAAIlD,GAAS,CAAEkH,SAAU,eAAiBU,EAAMlX,QAAQ4R,QAAO,SAAUF,EAAKkF,GAAO,OAAQpE,GAASA,GAAS,GAAId,GAAMiF,GAAqBC,MAAW,KAC7L,SACJ,IAAK,cACDtH,EAASkD,GAASA,GAASA,GAAS,GAAIlD,GAAS,CAAEkH,SAAU,gBAAkBU,EAAMlX,QAAQ4R,QAAO,SAAUF,EAAKkF,GAAO,OAAQpE,GAASA,GAAS,GAAId,GAAMiF,GAAqBC,MAAW,KAC9L,SACJ,IAAK,kBACDtH,EAAOkH,SAAW,WAClB,SAEJ,IAAK,oBACDlH,EAAOmI,gBAAkB,eACzBnI,EAAOoI,YAAc,SACrB,SACJ,IAAK,mBACDpI,EAAOmI,gBAAkB,OACzBnI,EAAOoI,YAAc,QACrB,SACJ,IAAK,uBACDpI,EAAOmI,gBAAkB,OACzBnI,EAAOoI,YAAc,OACrB,SACJ,IAAK,sBACDpI,EAAOmI,gBAAkB,SACzB,SACJ,IAAK,QACDnI,EAAO6H,MAAQQ,WAAWT,EAAMlX,QAAQ,IACxC,SAEJ,IAAK,gBACD,GAAIkX,EAAMlX,QAAQ7E,OAAS,EACvB,MAAM,IAAI0Z,WAAW,4DAEzBqC,EAAMlX,QAAQ,GAAGyU,QAAQkB,IAAqB,SAAUlc,EAAGsc,EAAIC,EAAI4B,EAAIC,EAAIC,GACvE,GAAI/B,EACAzG,EAAOoH,qBAAuBV,EAAG7a,WAEhC,CAAA,GAAIyc,GAAMC,EACX,MAAM,IAAI/R,MAAM,sDAEf,GAAIgS,EACL,MAAM,IAAIhS,MAAM,oDAEpB,MAAO,MAEX,SAGR,GAAI8P,GAA4Ba,KAAKS,EAAMX,MACvCjH,EAAOoH,qBAAuBQ,EAAMX,KAAKpb,YAG7C,GAAIsa,GAAyBgB,KAAKS,EAAMX,MAAxC,CAII,GAAIW,EAAMlX,QAAQ7E,OAAS,EACvB,MAAM,IAAI0Z,WAAW,iEAEzBqC,EAAMX,KAAK9B,QAAQgB,IAA0B,SAAUhc,EAAGsc,EAAIC,EAAI4B,EAAIC,EAAIC,GAkBtE,MAhBW,MAAP9B,EACA1G,EAAOyI,sBAAwBhC,EAAG5a,OAG7Byc,GAAgB,MAAVA,EAAG,GACdtI,EAAOgI,sBAAwBM,EAAGzc,OAG7B0c,GAAMC,GACXxI,EAAOyI,sBAAwBF,EAAG1c,OAClCmU,EAAOgI,sBAAwBO,EAAG1c,OAAS2c,EAAG3c,SAG9CmU,EAAOyI,sBAAwBhC,EAAG5a,OAClCmU,EAAOgI,sBAAwBvB,EAAG5a,QAE/B,MAEX,IAAIyb,EAAMM,EAAMlX,QAAQ,GAEZ,MAAR4W,EACAtH,EAASkD,GAASA,GAAS,GAAIlD,GAAS,CAAE0I,oBAAqB,mBAE1DpB,IACLtH,EAASkD,GAASA,GAAS,GAAIlD,GAASuG,GAA0Be,UAK1E,GAAIlB,GAA4Be,KAAKS,EAAMX,MACvCjH,EAASkD,GAASA,GAAS,GAAIlD,GAASuG,GAA0BqB,EAAMX,WAD5E,CAIA,IAAIM,EAAWV,GAAUe,EAAMX,MAC3BM,IACAvH,EAASkD,GAASA,GAAS,GAAIlD,GAASuH,IAE5C,IAAIoB,EAAsC3B,GAAyCY,EAAMX,MACrF0B,IACA3I,EAASkD,GAASA,GAAS,GAAIlD,GAAS2I,KAGhD,OAAO3I,EC/RX,IAAI4I,GAA8B,IAAIC,OAAO,IAAI1H,OAAO4D,GAAsB7D,OAAQ,MAClF4H,GAA4B,IAAID,OAAO,GAAG1H,OAAO4D,GAAsB7D,OAAQ,OACnF,SAAS6H,GAAe9O,EAAOE,GAC3B,MAAO,CAAEF,MAAOA,EAAOE,IAAKA,GAIhC,IAAI6O,KAAwBnG,OAAOxC,UAAU4I,WACzCC,KAA2BrG,OAAOsG,cAClCC,KAAyBlgB,OAAOmgB,YAChCC,KAAyBzG,OAAOxC,UAAUkJ,YAC1CC,KAAiB3G,OAAOxC,UAAUoJ,UAClCC,KAAe7G,OAAOxC,UAAUsJ,QAEhCC,KAD2BC,OAAOD,cAEhCC,OAAOD,cACP,SAAU5W,GACR,MAAqB,iBAANA,GACX8W,SAAS9W,IACTrH,KAAKoe,MAAM/W,KAAOA,GAClBrH,KAAKmP,IAAI9H,IAAM,kBAGvBgX,IAAyB,EAC7B,IAQIA,GAA8F,OAA5C,QAAvB9D,GAPlB+D,GAAG,4CAA6C,MAOtBC,KAAK,YAAyB,IAAPhE,QAAgB,EAASA,GAAG,IAE1F,MAAO/b,GACH6f,IAAyB,EAE7B,IAyFIG,GAzFAlB,GAAaD,GAET,SAAoB7F,EAAGiH,EAAQtU,GAC3B,OAAOqN,EAAE8F,WAAWmB,EAAQtU,IAGhC,SAAoBqN,EAAGiH,EAAQtU,GAC3B,OAAOqN,EAAE/X,MAAM0K,EAAUA,EAAWsU,EAAOve,UAAYue,GAE/DjB,GAAgBD,GACdrG,OAAOsG,cAEL,WAEI,IADA,IAAIkB,EAAa,GACR3C,EAAK,EAAGA,EAAKtE,UAAUvX,OAAQ6b,IACpC2C,EAAW3C,GAAMtE,UAAUsE,GAM/B,IAJA,IAGI4C,EAHAC,EAAW,GACX1e,EAASwe,EAAWxe,OACpBC,EAAI,EAEDD,EAASC,GAAG,CAEf,IADAwe,EAAOD,EAAWve,MACP,QACP,MAAMyZ,WAAW+E,EAAO,8BAC5BC,GACID,EAAO,MACDzH,OAAO2H,aAAaF,GACpBzH,OAAO2H,aAAyC,QAA1BF,GAAQ,QAAY,IAAeA,EAAO,KAAS,OAEvF,OAAOC,GAEflB,GAEJD,GACMlgB,OAAOmgB,YAEL,SAAqBoB,GAEjB,IADA,IAAI9L,EAAM,GACD+I,EAAK,EAAGgD,EAAYD,EAAS/C,EAAKgD,EAAU7e,OAAQ6b,IAAM,CAC/D,IAAIxB,EAAKwE,EAAUhD,GAAKxc,EAAIgb,EAAG,GAAIyE,EAAIzE,EAAG,GAC1CvH,EAAIzT,GAAKyf,EAEb,OAAOhM,GAEf4K,GAAcD,GAEV,SAAqBnG,EAAGvG,GACpB,OAAOuG,EAAEoG,YAAY3M,IAGzB,SAAqBuG,EAAGvG,GACpB,IAAI/O,EAAOsV,EAAEtX,OACb,KAAI+Q,EAAQ,GAAKA,GAAS/O,GAA1B,CAGA,IACIkY,EADAzJ,EAAQ6G,EAAE5O,WAAWqI,GAEzB,OAAON,EAAQ,OACXA,EAAQ,OACRM,EAAQ,IAAM/O,IACbkY,EAAS5C,EAAE5O,WAAWqI,EAAQ,IAAM,OACrCmJ,EAAS,MACPzJ,EAC4ByJ,EAAS,OAAnCzJ,EAAQ,OAAW,IAA0B,QAE7DmN,GAAYD,GAER,SAAmBrG,GACf,OAAOA,EAAEsG,aAGb,SAAmBtG,GACf,OAAOA,EAAEgC,QAAQyD,GAA6B,KAEtDe,GAAUD,GAEN,SAAiBvG,GACb,OAAOA,EAAEwG,WAGb,SAAiBxG,GACb,OAAOA,EAAEgC,QAAQ2D,GAA2B,KAGxD,SAASmB,GAAG9G,EAAGyH,GACX,OAAO,IAAI/B,OAAO1F,EAAGyH,GAIzB,GAAIZ,GAAwB,CAExB,IAAIa,GAAyBZ,GAAG,4CAA6C,MAC7EE,GAAyB,SAAgChH,EAAGvG,GACxD,IAAIsJ,EAGJ,OAFA2E,GAAuBC,UAAYlO,EAER,QAAnBsJ,EADI2E,GAAuBX,KAAK/G,GACrB,UAAuB,IAAP+C,EAAgBA,EAAK,SAK5DiE,GAAyB,SAAgChH,EAAGvG,GAExD,IADA,IAAIwI,EAAQ,KACC,CACT,IAAI1X,EAAI6b,GAAYpG,EAAGvG,GACvB,QAAUpR,IAANkC,GAAmBqd,GAAcrd,IAAMsd,GAAiBtd,GACxD,MAEJ0X,EAAM3a,KAAKiD,GACXkP,GAASlP,GAAK,MAAU,EAAI,EAEhC,OAAOyb,GAAc9F,WAAM,EAAQ+B,IAG3C,IAAI6F,GAAwB,WACxB,SAASA,EAAOC,EAASxa,QACL,IAAZA,IAAsBA,EAAU,IACpCM,KAAKka,QAAUA,EACfla,KAAK8E,SAAW,CAAEqV,OAAQ,EAAGC,KAAM,EAAGC,OAAQ,GAC9Cra,KAAKsa,YAAc5a,EAAQ4a,UAC3Bta,KAAKua,sBAAwB7a,EAAQ6a,oBACrCva,KAAKwa,uBAAyB9a,EAAQ8a,qBA+xB1C,OA7xBAP,EAAO5K,UAAUoL,MAAQ,WACrB,GAAsB,IAAlBza,KAAKma,SACL,MAAM3U,MAAM,gCAEhB,OAAOxF,KAAK0a,aAAa,EAAG,IAAI,IAEpCT,EAAO5K,UAAUqL,aAAe,SAAUC,EAAcC,EAAeC,GAEnE,IADA,IAAItB,EAAW,IACPvZ,KAAK8a,SAAS,CAClB,IAAIC,EAAO/a,KAAK+a,OAChB,GAAa,MAATA,EAAwB,CAExB,IADI/L,EAAShP,KAAKgb,cAAcL,EAAcE,IACnCI,IACP,OAAOjM,EAEXuK,EAAS9f,KAAKuV,EAAOgB,SAEpB,CAAA,GAAa,MAAT+K,GAA0BJ,EAAe,EAC9C,MAEC,GAAa,KAATI,GACc,WAAlBH,GAAgD,kBAAlBA,EAQ9B,CAAA,GAAa,KAATG,IACJ/a,KAAKsa,WACU,KAAhBta,KAAKkb,OACP,CACE,GAAIL,EACA,MAGA,OAAO7a,KAAKmb,MAAMpJ,GAAUqJ,sBAAuBrD,GAAe/X,KAAKqb,gBAAiBrb,KAAKqb,kBAGhG,GAAa,KAATN,IACJ/a,KAAKsa,WACNgB,GAAStb,KAAKkb,QAAU,GAAI,CAE5B,IADIlM,EAAShP,KAAKub,SAASZ,EAAcC,IAC9BK,IACP,OAAOjM,EAEXuK,EAAS9f,KAAKuV,EAAOgB,SAEpB,CACD,IAAIhB,EACJ,IADIA,EAAShP,KAAKwb,aAAab,EAAcC,IAClCK,IACP,OAAOjM,EAEXuK,EAAS9f,KAAKuV,EAAOgB,UAjC8C,CACnE,IAAIlL,EAAW9E,KAAKqb,gBACpBrb,KAAKyb,OACLlC,EAAS9f,KAAK,CACV0N,KAAM6K,GAAKyB,MACXiI,SAAU3D,GAAejT,EAAU9E,KAAKqb,qBA+BpD,MAAO,CAAErL,IAAKuJ,EAAU0B,IAAK,OAoBjChB,EAAO5K,UAAUkM,SAAW,SAAUZ,EAAcC,GAChD,IAAIe,EAAgB3b,KAAKqb,gBACzBrb,KAAKyb,OACL,IAAIG,EAAU5b,KAAK6b,eAEnB,GADA7b,KAAK8b,YACD9b,KAAK+b,OAAO,MAEZ,MAAO,CACH/L,IAAK,CACD7I,KAAM6K,GAAKY,QACX1Z,MAAO,IAAIiX,OAAOyL,EAAS,MAC3BF,SAAU3D,GAAe4D,EAAe3b,KAAKqb,kBAEjDJ,IAAK,MAGR,GAAIjb,KAAK+b,OAAO,KAAM,CACvB,IAAIC,EAAiBhc,KAAK0a,aAAaC,EAAe,EAAGC,GAAe,GACxE,GAAIoB,EAAef,IACf,OAAOe,EAEX,IAAI7O,EAAW6O,EAAehM,IAE1BiM,EAAsBjc,KAAKqb,gBAC/B,GAAIrb,KAAK+b,OAAO,MAAO,CACnB,GAAI/b,KAAK8a,UAAYQ,GAAStb,KAAK+a,QAC/B,OAAO/a,KAAKmb,MAAMpJ,GAAUmK,YAAanE,GAAekE,EAAqBjc,KAAKqb,kBAEtF,IAAIc,EAA8Bnc,KAAKqb,gBAEvC,OAAIO,IADiB5b,KAAK6b,eAEf7b,KAAKmb,MAAMpJ,GAAUqJ,sBAAuBrD,GAAeoE,EAA6Bnc,KAAKqb,mBAExGrb,KAAK8b,YACA9b,KAAK+b,OAAO,KAGV,CACH/L,IAAK,CACD7I,KAAM6K,GAAK2B,IACXza,MAAO0iB,EACPzO,SAAUA,EACVuO,SAAU3D,GAAe4D,EAAe3b,KAAKqb,kBAEjDJ,IAAK,MATEjb,KAAKmb,MAAMpJ,GAAUmK,YAAanE,GAAekE,EAAqBjc,KAAKqb,mBAatF,OAAOrb,KAAKmb,MAAMpJ,GAAUqK,aAAcrE,GAAe4D,EAAe3b,KAAKqb,kBAIjF,OAAOrb,KAAKmb,MAAMpJ,GAAUmK,YAAanE,GAAe4D,EAAe3b,KAAKqb,mBAMpFpB,EAAO5K,UAAUwM,aAAe,WAC5B,IAAIQ,EAAcrc,KAAKma,SAEvB,IADAna,KAAKyb,QACGzb,KAAK8a,SAAWwB,GAA4Btc,KAAK+a,SACrD/a,KAAKyb,OAET,OAAOzb,KAAKka,QAAQ9f,MAAMiiB,EAAarc,KAAKma,WAEhDF,EAAO5K,UAAUmM,aAAe,SAAUb,EAAcC,GAGpD,IAFA,IAAI3R,EAAQjJ,KAAKqb,gBACbniB,EAAQ,KACC,CACT,IAAIqjB,EAAmBvc,KAAKwc,cAAc5B,GAC1C,GAAI2B,EACArjB,GAASqjB,MADb,CAIA,IAAIE,EAAsBzc,KAAK0c,iBAAiB/B,EAAcC,GAC9D,GAAI6B,EACAvjB,GAASujB,MADb,CAIA,IAAIE,EAAuB3c,KAAK4c,2BAChC,IAAID,EAIJ,MAHIzjB,GAASyjB,IAKjB,IAAIjB,EAAW3D,GAAe9O,EAAOjJ,KAAKqb,iBAC1C,MAAO,CACHrL,IAAK,CAAE7I,KAAM6K,GAAKY,QAAS1Z,MAAOA,EAAOwiB,SAAUA,GACnDT,IAAK,OAGbhB,EAAO5K,UAAUuN,yBAA2B,WACxC,OAAK5c,KAAK8a,SACU,KAAhB9a,KAAK+a,SACJ/a,KAAKsa,YA6nBPgB,GADcuB,EA1nBQ7c,KAAKkb,QAAU,IA2nBA,KAAd2B,GAvnBnB,MAHH7c,KAAKyb,OACE,KAwnBnB,IAAyBoB,GA/mBrB5C,EAAO5K,UAAUmN,cAAgB,SAAU5B,GACvC,GAAI5a,KAAK8a,SAA2B,KAAhB9a,KAAK+a,OACrB,OAAO,KAIX,OAAQ/a,KAAKkb,QACT,KAAK,GAID,OAFAlb,KAAKyb,OACLzb,KAAKyb,OACE,IAEX,KAAK,IACL,KAAK,GACL,KAAK,GACL,KAAK,IACD,MACJ,KAAK,GACD,GAAsB,WAAlBb,GAAgD,kBAAlBA,EAC9B,MAEJ,OAAO,KACX,QACI,OAAO,KAEf5a,KAAKyb,OACL,IAAIpC,EAAa,CAACrZ,KAAK+a,QAGvB,IAFA/a,KAAKyb,QAEGzb,KAAK8a,SAAS,CAClB,IAAIgC,EAAK9c,KAAK+a,OACd,GAAW,KAAP+B,EAAqB,CACrB,GAAoB,KAAhB9c,KAAKkb,OAKJ,CAEDlb,KAAKyb,OACL,MAPApC,EAAW5f,KAAK,IAEhBuG,KAAKyb,YASTpC,EAAW5f,KAAKqjB,GAEpB9c,KAAKyb,OAET,OAAOtD,GAAc9F,WAAM,EAAQgH,IAEvCY,EAAO5K,UAAUqN,iBAAmB,SAAU/B,EAAcC,GACxD,GAAI5a,KAAK8a,QACL,OAAO,KAEX,IAAIgC,EAAK9c,KAAK+a,OACd,OAAW,KAAP+B,GACO,MAAPA,GACQ,KAAPA,IACsB,WAAlBlC,GAAgD,kBAAlBA,IAC3B,MAAPkC,GAAwBnC,EAAe,EACjC,MAGP3a,KAAKyb,OACEtD,GAAc2E,KAG7B7C,EAAO5K,UAAU2L,cAAgB,SAAUL,EAAcE,GACrD,IAAIkC,EAAuB/c,KAAKqb,gBAGhC,GAFArb,KAAKyb,OACLzb,KAAK8b,YACD9b,KAAK8a,QACL,OAAO9a,KAAKmb,MAAMpJ,GAAUiL,8BAA+BjF,GAAegF,EAAsB/c,KAAKqb,kBAEzG,GAAoB,MAAhBrb,KAAK+a,OAEL,OADA/a,KAAKyb,OACEzb,KAAKmb,MAAMpJ,GAAUkL,eAAgBlF,GAAegF,EAAsB/c,KAAKqb,kBAG1F,IAAIniB,EAAQ8G,KAAKkd,4BAA4BhkB,MAC7C,IAAKA,EACD,OAAO8G,KAAKmb,MAAMpJ,GAAUoL,mBAAoBpF,GAAegF,EAAsB/c,KAAKqb,kBAG9F,GADArb,KAAK8b,YACD9b,KAAK8a,QACL,OAAO9a,KAAKmb,MAAMpJ,GAAUiL,8BAA+BjF,GAAegF,EAAsB/c,KAAKqb,kBAEzG,OAAQrb,KAAK+a,QAET,KAAK,IAED,OADA/a,KAAKyb,OACE,CACHzL,IAAK,CACD7I,KAAM6K,GAAKc,SAEX5Z,MAAOA,EACPwiB,SAAU3D,GAAegF,EAAsB/c,KAAKqb,kBAExDJ,IAAK,MAIb,KAAK,GAGD,OAFAjb,KAAKyb,OACLzb,KAAK8b,YACD9b,KAAK8a,QACE9a,KAAKmb,MAAMpJ,GAAUiL,8BAA+BjF,GAAegF,EAAsB/c,KAAKqb,kBAElGrb,KAAKod,qBAAqBzC,EAAcE,EAAmB3hB,EAAO6jB,GAE7E,QACI,OAAO/c,KAAKmb,MAAMpJ,GAAUoL,mBAAoBpF,GAAegF,EAAsB/c,KAAKqb,oBAOtGpB,EAAO5K,UAAU6N,0BAA4B,WACzC,IAAIG,EAAmBrd,KAAKqb,gBACxBgB,EAAcrc,KAAKma,SACnBjhB,EAAQigB,GAAuBnZ,KAAKka,QAASmC,GAC7CiB,EAAYjB,EAAcnjB,EAAM2B,OAIpC,OAHAmF,KAAKud,OAAOD,GAGL,CAAEpkB,MAAOA,EAAOwiB,SADR3D,GAAesF,EADZrd,KAAKqb,mBAI3BpB,EAAO5K,UAAU+N,qBAAuB,SAAUzC,EAAcE,EAAmB3hB,EAAO6jB,GACtF,IAAI7H,EAIAsI,EAAoBxd,KAAKqb,gBACzBoC,EAAUzd,KAAKkd,4BAA4BhkB,MAC3CwkB,EAAkB1d,KAAKqb,gBAC3B,OAAQoC,GACJ,IAAK,GAED,OAAOzd,KAAKmb,MAAMpJ,GAAU4L,qBAAsB5F,GAAeyF,EAAmBE,IACxF,IAAK,SACL,IAAK,OACL,IAAK,OAID1d,KAAK8b,YACL,IAAI8B,EAAmB,KACvB,GAAI5d,KAAK+b,OAAO,KAAM,CAClB/b,KAAK8b,YACL,IAAI+B,EAAqB7d,KAAKqb,gBAE9B,IADIrM,EAAShP,KAAK8d,iCACP7C,IACP,OAAOjM,EAGX,GAAqB,KADjB/Q,EAAQ0a,GAAQ3J,EAAOgB,MACjBnV,OACN,OAAOmF,KAAKmb,MAAMpJ,GAAUgM,sBAAuBhG,GAAe/X,KAAKqb,gBAAiBrb,KAAKqb,kBAGjGuC,EAAmB,CAAE3f,MAAOA,EAAO+f,cADfjG,GAAe8F,EAAoB7d,KAAKqb,kBAIhE,IADI4C,EAAiBje,KAAKke,sBAAsBnB,IAC7B9B,IACf,OAAOgD,EAEX,IAAIE,EAAapG,GAAegF,EAAsB/c,KAAKqb,iBAE3D,GAAIuC,GAAoB3F,GAAW2F,MAAAA,OAA2D,EAASA,EAAiB3f,MAAO,KAAM,GAAI,CAErI,IAAIiW,EAAWuE,GAAUmF,EAAiB3f,MAAM7D,MAAM,IACtD,GAAgB,WAAZqjB,EAEA,OADIzO,EAAShP,KAAKoe,8BAA8BlK,EAAU0J,EAAiBI,gBAChE/C,IACAjM,EAEJ,CACHgB,IAAK,CAAE7I,KAAM6K,GAAKgB,OAAQ9Z,MAAOA,EAAOwiB,SAAUyC,EAAYlgB,MAAO+Q,EAAOgB,KAC5EiL,IAAK,MAIT,GAAwB,IAApB/G,EAASrZ,OACT,OAAOmF,KAAKmb,MAAMpJ,GAAUsM,0BAA2BF,GAE3D,IAAIlgB,EAAQ,CACRkJ,KAAM8K,GAAc6B,SACpBwK,QAASpK,EACTwH,SAAUkC,EAAiBI,cAC3BO,cAAeve,KAAKwa,qBACdvG,GAAsBC,GACtB,IAGV,MAAO,CACHlE,IAAK,CAAE7I,KAFY,SAAZsW,EAAqBzL,GAAKkB,KAAOlB,GAAKoB,KAE1Bla,MAAOA,EAAOwiB,SAAUyC,EAAYlgB,MAAOA,GAC9Dgd,IAAK,MAKjB,MAAO,CACHjL,IAAK,CACD7I,KAAkB,WAAZsW,EACAzL,GAAKgB,OACO,SAAZyK,EACIzL,GAAKkB,KACLlB,GAAKoB,KACfla,MAAOA,EACPwiB,SAAUyC,EACVlgB,MAA6G,QAArGiX,EAAK0I,MAAAA,OAA2D,EAASA,EAAiB3f,aAA0B,IAAPiX,EAAgBA,EAAK,MAE9I+F,IAAK,MAGb,IAAK,SACL,IAAK,gBACL,IAAK,SAID,IAAIuD,EAAoBxe,KAAKqb,gBAE7B,GADArb,KAAK8b,aACA9b,KAAK+b,OAAO,KACb,OAAO/b,KAAKmb,MAAMpJ,GAAU0M,+BAAgC1G,GAAeyG,EAAmBtM,GAAS,GAAIsM,KAE/Gxe,KAAK8b,YASL,IAAI4C,EAAwB1e,KAAKkd,4BAC7ByB,EAAe,EACnB,GAAgB,WAAZlB,GAAwD,WAAhCiB,EAAsBxlB,MAAoB,CAClE,IAAK8G,KAAK+b,OAAO,KACb,OAAO/b,KAAKmb,MAAMpJ,GAAU6M,oCAAqC7G,GAAe/X,KAAKqb,gBAAiBrb,KAAKqb,kBAG/G,IAAIrM,EACJ,GAFAhP,KAAK8b,aACD9M,EAAShP,KAAK6e,uBAAuB9M,GAAU6M,oCAAqC7M,GAAU+M,uCACvF7D,IACP,OAAOjM,EAGXhP,KAAK8b,YACL4C,EAAwB1e,KAAKkd,4BAC7ByB,EAAe3P,EAAOgB,IAE1B,IAIIiO,EAJAc,EAAgB/e,KAAKgf,8BAA8BrE,EAAc8C,EAAS5C,EAAmB6D,GACjG,GAAIK,EAAc9D,IACd,OAAO8D,EAGX,IADId,EAAiBje,KAAKke,sBAAsBnB,IAC7B9B,IACf,OAAOgD,EAEX,IAAIgB,EAAalH,GAAegF,EAAsB/c,KAAKqb,iBAC3D,MAAgB,WAAZoC,EACO,CACHzN,IAAK,CACD7I,KAAM6K,GAAK9Q,OACXhI,MAAOA,EACPwG,QAAS2Y,GAAY0G,EAAc/O,KACnC0L,SAAUuD,GAEdhE,IAAK,MAIF,CACHjL,IAAK,CACD7I,KAAM6K,GAAKuB,OACXra,MAAOA,EACPwG,QAAS2Y,GAAY0G,EAAc/O,KACnCmK,OAAQwE,EACRO,WAAwB,WAAZzB,EAAuB,WAAa,UAChD/B,SAAUuD,GAEdhE,IAAK,MAIjB,QACI,OAAOjb,KAAKmb,MAAMpJ,GAAUoN,sBAAuBpH,GAAeyF,EAAmBE,MAGjGzD,EAAO5K,UAAU6O,sBAAwB,SAAUnB,GAG/C,OAAI/c,KAAK8a,SAA2B,MAAhB9a,KAAK+a,OACd/a,KAAKmb,MAAMpJ,GAAUiL,8BAA+BjF,GAAegF,EAAsB/c,KAAKqb,mBAEzGrb,KAAKyb,OACE,CAAEzL,KAAK,EAAMiL,IAAK,QAK7BhB,EAAO5K,UAAUyO,8BAAgC,WAG7C,IAFA,IAAIsB,EAAe,EACfzD,EAAgB3b,KAAKqb,iBACjBrb,KAAK8a,SAAS,CAElB,OADS9a,KAAK+a,QAEV,KAAK,GAGD/a,KAAKyb,OACL,IAAI4D,EAAqBrf,KAAKqb,gBAC9B,IAAKrb,KAAKsf,UAAU,KAChB,OAAOtf,KAAKmb,MAAMpJ,GAAUwN,iCAAkCxH,GAAesH,EAAoBrf,KAAKqb,kBAE1Grb,KAAKyb,OACL,MAEJ,KAAK,IACD2D,GAAgB,EAChBpf,KAAKyb,OACL,MAEJ,KAAK,IACD,KAAI2D,EAAe,GAIf,MAAO,CACHpP,IAAKhQ,KAAKka,QAAQ9f,MAAMuhB,EAAcxB,OAAQna,KAAKma,UACnDc,IAAK,MALTmE,GAAgB,EAQpB,MAEJ,QACIpf,KAAKyb,QAIjB,MAAO,CACHzL,IAAKhQ,KAAKka,QAAQ9f,MAAMuhB,EAAcxB,OAAQna,KAAKma,UACnDc,IAAK,OAGbhB,EAAO5K,UAAU+O,8BAAgC,SAAUlK,EAAUwH,GACjE,IAAIjF,EAAS,GACb,IACIA,ED5rBL,SAAuCvC,GAC1C,GAAwB,IAApBA,EAASrZ,OACT,MAAM,IAAI2K,MAAM,mCAOpB,IAJA,IAAIga,EAAetL,EACd/P,MAAM8Q,IACN5Q,QAAO,SAAUvM,GAAK,OAAOA,EAAE+C,OAAS,KACzC4b,EAAS,GACJC,EAAK,EAAG+I,EAAiBD,EAAc9I,EAAK+I,EAAe5kB,OAAQ6b,IAAM,CAC9E,IACIgJ,EADcD,EAAe/I,GACAvS,MAAM,KACvC,GAA8B,IAA1Bub,EAAe7kB,OACf,MAAM,IAAI2K,MAAM,2BAGpB,IADA,IAAIyQ,EAAOyJ,EAAe,GAAIhgB,EAAUggB,EAAetlB,MAAM,GACpD8a,EAAK,EAAGyK,EAAYjgB,EAASwV,EAAKyK,EAAU9kB,OAAQqa,IAEzD,GAAsB,IADTyK,EAAUzK,GACZra,OACP,MAAM,IAAI2K,MAAM,2BAGxBiR,EAAOhd,KAAK,CAAEwc,KAAMA,EAAMvW,QAASA,IAEvC,OAAO+W,ECoqBU2H,CAA8BlK,GAE3C,MAAOnS,GACH,OAAO/B,KAAKmb,MAAMpJ,GAAU6N,wBAAyBlE,GAEzD,MAAO,CACH1L,IAAK,CACD7I,KAAM8K,GAAce,OACpByD,OAAQA,EACRiF,SAAUA,EACV6C,cAAeve,KAAKwa,qBACdhE,GAAoBC,GACpB,IAEVwE,IAAK,OAabhB,EAAO5K,UAAU2P,8BAAgC,SAAUrE,EAAcC,EAAeiF,EAAgBC,GASpG,IARA,IAAI5K,EACA6K,GAAiB,EACjBrgB,EAAU,GACVsgB,EAAkB,IAAIzjB,IACtB0jB,EAAWH,EAAsB5mB,MAAOgnB,EAAmBJ,EAAsBpE,WAIxE,CACT,GAAwB,IAApBuE,EAASplB,OAAc,CACvB,IAAI8gB,EAAgB3b,KAAKqb,gBACzB,GAAsB,WAAlBT,IAA8B5a,KAAK+b,OAAO,KAU1C,MARA,IAAI/M,EAAShP,KAAK6e,uBAAuB9M,GAAUoO,gCAAiCpO,GAAUqO,kCAC9F,GAAIpR,EAAOiM,IACP,OAAOjM,EAEXkR,EAAmBnI,GAAe4D,EAAe3b,KAAKqb,iBACtD4E,EAAWjgB,KAAKka,QAAQ9f,MAAMuhB,EAAcxB,OAAQna,KAAKma,UAOjE,GAAI6F,EAAgBvZ,IAAIwZ,GACpB,OAAOjgB,KAAKmb,MAAwB,WAAlBP,EACZ7I,GAAUsO,mCACVtO,GAAUuO,mCAAoCJ,GAEvC,UAAbD,IACAF,GAAiB,GAKrB/f,KAAK8b,YACL,IAAIiB,EAAuB/c,KAAKqb,gBAChC,IAAKrb,KAAK+b,OAAO,KACb,OAAO/b,KAAKmb,MAAwB,WAAlBP,EACZ7I,GAAUwO,yCACVxO,GAAUyO,yCAA0CzI,GAAe/X,KAAKqb,gBAAiBrb,KAAKqb,kBAExG,IAAIoF,EAAiBzgB,KAAK0a,aAAaC,EAAe,EAAGC,EAAeiF,GACxE,GAAIY,EAAexF,IACf,OAAOwF,EAEX,IAAIxC,EAAiBje,KAAKke,sBAAsBnB,GAChD,GAAIkB,EAAehD,IACf,OAAOgD,EAEXve,EAAQjG,KAAK,CACTwmB,EACA,CACI/mB,MAAOunB,EAAezQ,IACtB0L,SAAU3D,GAAegF,EAAsB/c,KAAKqb,oBAI5D2E,EAAgB9iB,IAAI+iB,GAEpBjgB,KAAK8b,YACmCmE,GAAvC/K,EAAKlV,KAAKkd,6BAA2ChkB,MAAOgnB,EAAmBhL,EAAGwG,SAEvF,OAAuB,IAAnBhc,EAAQ7E,OACDmF,KAAKmb,MAAwB,WAAlBP,EACZ7I,GAAU2O,gCACV3O,GAAUoO,gCAAiCpI,GAAe/X,KAAKqb,gBAAiBrb,KAAKqb,kBAE3Frb,KAAKua,sBAAwBwF,EACtB/f,KAAKmb,MAAMpJ,GAAU4O,qBAAsB5I,GAAe/X,KAAKqb,gBAAiBrb,KAAKqb,kBAEzF,CAAErL,IAAKtQ,EAASub,IAAK,OAEhChB,EAAO5K,UAAUwP,uBAAyB,SAAU+B,EAAmBC,GACnE,IAAIC,EAAO,EACPzD,EAAmBrd,KAAKqb,gBACxBrb,KAAK+b,OAAO,MAEP/b,KAAK+b,OAAO,OACjB+E,GAAQ,GAIZ,IAFA,IAAIC,GAAY,EACZC,EAAU,GACNhhB,KAAK8a,SAAS,CAClB,IAAIgC,EAAK9c,KAAK+a,OACd,KAAI+B,GAAM,IAAgBA,GAAM,IAM5B,MALAiE,GAAY,EACZC,EAAoB,GAAVA,GAAgBlE,EAAK,IAC/B9c,KAAKyb,OAMb,IAAIC,EAAW3D,GAAesF,EAAkBrd,KAAKqb,iBACrD,OAAK0F,EAIAnI,GADLoI,GAAWF,GAIJ,CAAE9Q,IAAKgR,EAAS/F,IAAK,MAFjBjb,KAAKmb,MAAM0F,EAAoBnF,GAJ/B1b,KAAKmb,MAAMyF,EAAmBlF,IAQ7CzB,EAAO5K,UAAU8K,OAAS,WACtB,OAAOna,KAAK8E,SAASqV,QAEzBF,EAAO5K,UAAUyL,MAAQ,WACrB,OAAO9a,KAAKma,WAAana,KAAKka,QAAQrf,QAE1Cof,EAAO5K,UAAUgM,cAAgB,WAE7B,MAAO,CACHlB,OAAQna,KAAK8E,SAASqV,OACtBC,KAAMpa,KAAK8E,SAASsV,KACpBC,OAAQra,KAAK8E,SAASuV,SAO9BJ,EAAO5K,UAAU0L,KAAO,WACpB,IAAIZ,EAASna,KAAK8E,SAASqV,OAC3B,GAAIA,GAAUna,KAAKka,QAAQrf,OACvB,MAAM2K,MAAM,gBAEhB,IAAI8T,EAAOf,GAAYvY,KAAKka,QAASC,GACrC,QAAa3f,IAAT8e,EACA,MAAM9T,MAAM,UAAU2K,OAAOgK,EAAQ,6CAEzC,OAAOb,GAEXW,EAAO5K,UAAU8L,MAAQ,SAAUlU,EAAMyU,GACrC,MAAO,CACH1L,IAAK,KACLiL,IAAK,CACDhU,KAAMA,EACNiT,QAASla,KAAKka,QACdwB,SAAUA,KAKtBzB,EAAO5K,UAAUoM,KAAO,WACpB,IAAIzb,KAAK8a,QAAT,CAGA,IAAIxB,EAAOtZ,KAAK+a,OACH,KAATzB,GACAtZ,KAAK8E,SAASsV,MAAQ,EACtBpa,KAAK8E,SAASuV,OAAS,EACvBra,KAAK8E,SAASqV,QAAU,IAGxBna,KAAK8E,SAASuV,QAAU,EAExBra,KAAK8E,SAASqV,QAAUb,EAAO,MAAU,EAAI,KASrDW,EAAO5K,UAAU0M,OAAS,SAAUkF,GAChC,GAAIhJ,GAAWjY,KAAKka,QAAS+G,EAAQjhB,KAAKma,UAAW,CACjD,IAAK,IAAIrf,EAAI,EAAGA,EAAImmB,EAAOpmB,OAAQC,IAC/BkF,KAAKyb,OAET,OAAO,EAEX,OAAO,GAMXxB,EAAO5K,UAAUiQ,UAAY,SAAUhB,GACnC,IAAI4C,EAAgBlhB,KAAKma,SACrBvO,EAAQ5L,KAAKka,QAAQ3V,QAAQ+Z,EAAS4C,GAC1C,OAAItV,GAAS,GACT5L,KAAKud,OAAO3R,IACL,IAGP5L,KAAKud,OAAOvd,KAAKka,QAAQrf,SAClB,IAOfof,EAAO5K,UAAUkO,OAAS,SAAU4D,GAChC,GAAInhB,KAAKma,SAAWgH,EAChB,MAAM3b,MAAM,gBAAgB2K,OAAOgR,EAAc,yDAAyDhR,OAAOnQ,KAAKma,WAG1H,IADAgH,EAAexmB,KAAKymB,IAAID,EAAcnhB,KAAKka,QAAQrf,UACtC,CACT,IAAIsf,EAASna,KAAKma,SAClB,GAAIA,IAAWgH,EACX,MAEJ,GAAIhH,EAASgH,EACT,MAAM3b,MAAM,gBAAgB2K,OAAOgR,EAAc,6CAGrD,GADAnhB,KAAKyb,OACDzb,KAAK8a,QACL,QAKZb,EAAO5K,UAAUyM,UAAY,WACzB,MAAQ9b,KAAK8a,SAAWf,GAAc/Z,KAAK+a,SACvC/a,KAAKyb,QAObxB,EAAO5K,UAAU6L,KAAO,WACpB,GAAIlb,KAAK8a,QACL,OAAO,KAEX,IAAIxB,EAAOtZ,KAAK+a,OACZZ,EAASna,KAAKma,SACdkH,EAAWrhB,KAAKka,QAAQ3W,WAAW4W,GAAUb,GAAQ,MAAU,EAAI,IACvE,OAAO+H,MAAAA,EAA2CA,EAAW,MAE1DpH,KAQX,SAASqB,GAASuB,GACd,OAASA,GAAa,IAAMA,GAAa,KACpCA,GAAa,IAAMA,GAAa,GAMzC,SAASP,GAA4B5f,GACjC,OAAc,KAANA,GACE,KAANA,GACCA,GAAK,IAAMA,GAAK,IACX,KAANA,GACCA,GAAK,IAAMA,GAAK,KAChBA,GAAK,IAAMA,GAAK,IACZ,KAALA,GACCA,GAAK,KAAQA,GAAK,KAClBA,GAAK,KAAQA,GAAK,KAClBA,GAAK,KAAQA,GAAK,KAClBA,GAAK,KAASA,GAAK,MACnBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAWA,GAAK,OAM9B,SAASqd,GAAcrd,GACnB,OAASA,GAAK,GAAUA,GAAK,IACnB,KAANA,GACM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,EAMR,SAASsd,GAAiBtd,GACtB,OAASA,GAAK,IAAUA,GAAK,IACnB,KAANA,GACCA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACCA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,KAAUA,GAAK,KACf,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,KACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,MC7uC7B,SAAS4kB,GAAcC,GACnBA,EAAIjpB,SAAQ,SAAUqa,GAElB,UADOA,EAAG+I,SACNrI,GAAgBV,IAAOW,GAAgBX,GACvC,IAAK,IAAIzY,KAAKyY,EAAGjT,eACNiT,EAAGjT,QAAQxF,GAAGwhB,SACrB4F,GAAc3O,EAAGjT,QAAQxF,GAAGhB,YAG3B6Z,GAAgBJ,IAAOiB,GAAiBjB,EAAG1U,SAG1CgV,GAAcN,IAAOQ,GAAcR,KACzCkB,GAAmBlB,EAAG1U,cAHf0U,EAAG1U,MAAMyd,SAMXhI,GAAaf,IAClB2O,GAAc3O,EAAGxF,aAIt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"}
\ No newline at end of file
diff --git a/global.css b/global.css
index 5716183e..e70d108a 100644
--- a/global.css
+++ b/global.css
@@ -174,6 +174,8 @@ font {
position: fixed;
background-color: #1b1c1d;
min-width: 10em;
+ overflow-y: auto;
+ max-height: 80vh;
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
z-index: 1;
}
diff --git a/sw.js.map b/sw.js.map
index 1810bc24..99a317f4 100644
--- a/sw.js.map
+++ b/sw.js.map
@@ -1 +1 @@
-{"version":3,"file":"sw.js","sources":["node_modules/workbox-core/_version.js","node_modules/workbox-core/_private/logger.js","node_modules/workbox-core/models/messages/messageGenerator.js","node_modules/workbox-core/_private/WorkboxError.js","node_modules/workbox-routing/_version.js","node_modules/workbox-routing/utils/constants.js","node_modules/workbox-routing/utils/normalizeHandler.js","node_modules/workbox-routing/Route.js","node_modules/workbox-routing/RegExpRoute.js","node_modules/workbox-routing/Router.js","node_modules/workbox-routing/utils/getOrCreateDefaultRouter.js","node_modules/workbox-routing/registerRoute.js","node_modules/workbox-strategies/_version.js","node_modules/workbox-strategies/plugins/cacheOkAndOpaquePlugin.js","node_modules/workbox-core/_private/cacheNames.js","node_modules/workbox-core/_private/cacheMatchIgnoreParams.js","node_modules/workbox-core/_private/Deferred.js","node_modules/workbox-core/models/quotaErrorCallbacks.js","node_modules/workbox-strategies/StrategyHandler.js","node_modules/workbox-core/_private/timeout.js","node_modules/workbox-core/_private/getFriendlyURL.js","node_modules/workbox-core/_private/executeQuotaErrorCallbacks.js","node_modules/workbox-strategies/Strategy.js","node_modules/workbox-core/_private/waitUntil.js","node_modules/workbox-precaching/_version.js","node_modules/workbox-precaching/utils/createCacheKey.js","node_modules/workbox-precaching/utils/PrecacheInstallReportPlugin.js","node_modules/workbox-precaching/utils/PrecacheCacheKeyPlugin.js","node_modules/workbox-core/_private/canConstructResponseFromBodyStream.js","node_modules/workbox-precaching/utils/getOrCreatePrecacheController.js","node_modules/workbox-core/copyResponse.js","node_modules/workbox-precaching/PrecacheStrategy.js","node_modules/workbox-precaching/PrecacheController.js","node_modules/workbox-precaching/PrecacheRoute.js","node_modules/workbox-precaching/utils/generateURLVariations.js","node_modules/workbox-precaching/utils/removeIgnoredSearchParams.js","node_modules/workbox-core/setCacheNameDetails.js","node_modules/workbox-precaching/precacheAndRoute.js","../../../../../tmp/49153d5611e550cfdada2bee62532349/sw.js","node_modules/workbox-precaching/precache.js","node_modules/workbox-precaching/addRoute.js","node_modules/workbox-precaching/cleanupOutdatedCaches.js","node_modules/workbox-precaching/utils/deleteOutdatedCaches.js","node_modules/workbox-strategies/StaleWhileRevalidate.js"],"sourcesContent":["\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:core:6.4.1'] && _();\n}\ncatch (e) { }\n","/*\n Copyright 2019 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nconst logger = (process.env.NODE_ENV === 'production'\n ? null\n : (() => {\n // Don't overwrite this value if it's already set.\n // See https://github.com/GoogleChrome/workbox/pull/2284#issuecomment-560470923\n if (!('__WB_DISABLE_DEV_LOGS' in self)) {\n self.__WB_DISABLE_DEV_LOGS = false;\n }\n let inGroup = false;\n const methodToColorMap = {\n debug: `#7f8c8d`,\n log: `#2ecc71`,\n warn: `#f39c12`,\n error: `#c0392b`,\n groupCollapsed: `#3498db`,\n groupEnd: null, // No colored prefix on groupEnd\n };\n const print = function (method, args) {\n if (self.__WB_DISABLE_DEV_LOGS) {\n return;\n }\n if (method === 'groupCollapsed') {\n // Safari doesn't print all console.groupCollapsed() arguments:\n // https://bugs.webkit.org/show_bug.cgi?id=182754\n if (/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n console[method](...args);\n return;\n }\n }\n const styles = [\n `background: ${methodToColorMap[method]}`,\n `border-radius: 0.5em`,\n `color: white`,\n `font-weight: bold`,\n `padding: 2px 0.5em`,\n ];\n // When in a group, the workbox prefix is not displayed.\n const logPrefix = inGroup ? [] : ['%cworkbox', styles.join(';')];\n console[method](...logPrefix, ...args);\n if (method === 'groupCollapsed') {\n inGroup = true;\n }\n if (method === 'groupEnd') {\n inGroup = false;\n }\n };\n // eslint-disable-next-line @typescript-eslint/ban-types\n const api = {};\n const loggerMethods = Object.keys(methodToColorMap);\n for (const key of loggerMethods) {\n const method = key;\n api[method] = (...args) => {\n print(method, args);\n };\n }\n return api;\n })());\nexport { logger };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { messages } from './messages.js';\nimport '../../_version.js';\nconst fallback = (code, ...args) => {\n let msg = code;\n if (args.length > 0) {\n msg += ` :: ${JSON.stringify(args)}`;\n }\n return msg;\n};\nconst generatorFunction = (code, details = {}) => {\n const message = messages[code];\n if (!message) {\n throw new Error(`Unable to find message for code '${code}'.`);\n }\n return message(details);\n};\nexport const messageGenerator = process.env.NODE_ENV === 'production' ? fallback : generatorFunction;\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { messageGenerator } from '../models/messages/messageGenerator.js';\nimport '../_version.js';\n/**\n * Workbox errors should be thrown with this class.\n * This allows use to ensure the type easily in tests,\n * helps developers identify errors from workbox\n * easily and allows use to optimise error\n * messages correctly.\n *\n * @private\n */\nclass WorkboxError extends Error {\n /**\n *\n * @param {string} errorCode The error code that\n * identifies this particular error.\n * @param {Object=} details Any relevant arguments\n * that will help developers identify issues should\n * be added as a key on the context object.\n */\n constructor(errorCode, details) {\n const message = messageGenerator(errorCode, details);\n super(message);\n this.name = errorCode;\n this.details = details;\n }\n}\nexport { WorkboxError };\n","\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:routing:6.4.1'] && _();\n}\ncatch (e) { }\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * The default HTTP method, 'GET', used when there's no specific method\n * configured for a route.\n *\n * @type {string}\n *\n * @private\n */\nexport const defaultMethod = 'GET';\n/**\n * The list of valid HTTP methods associated with requests that could be routed.\n *\n * @type {Array}\n *\n * @private\n */\nexport const validMethods = [\n 'DELETE',\n 'GET',\n 'HEAD',\n 'PATCH',\n 'POST',\n 'PUT',\n];\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport '../_version.js';\n/**\n * @param {function()|Object} handler Either a function, or an object with a\n * 'handle' method.\n * @return {Object} An object with a handle method.\n *\n * @private\n */\nexport const normalizeHandler = (handler) => {\n if (handler && typeof handler === 'object') {\n if (process.env.NODE_ENV !== 'production') {\n assert.hasMethod(handler, 'handle', {\n moduleName: 'workbox-routing',\n className: 'Route',\n funcName: 'constructor',\n paramName: 'handler',\n });\n }\n return handler;\n }\n else {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(handler, 'function', {\n moduleName: 'workbox-routing',\n className: 'Route',\n funcName: 'constructor',\n paramName: 'handler',\n });\n }\n return { handle: handler };\n }\n};\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { defaultMethod, validMethods } from './utils/constants.js';\nimport { normalizeHandler } from './utils/normalizeHandler.js';\nimport './_version.js';\n/**\n * A `Route` consists of a pair of callback functions, \"match\" and \"handler\".\n * The \"match\" callback determine if a route should be used to \"handle\" a\n * request by returning a non-falsy value if it can. The \"handler\" callback\n * is called when there is a match and should return a Promise that resolves\n * to a `Response`.\n *\n * @memberof module:workbox-routing\n */\nclass Route {\n /**\n * Constructor for Route class.\n *\n * @param {module:workbox-routing~matchCallback} match\n * A callback function that determines whether the route matches a given\n * `fetch` event by returning a non-falsy value.\n * @param {module:workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resolving to a Response.\n * @param {string} [method='GET'] The HTTP method to match the Route\n * against.\n */\n constructor(match, handler, method = defaultMethod) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(match, 'function', {\n moduleName: 'workbox-routing',\n className: 'Route',\n funcName: 'constructor',\n paramName: 'match',\n });\n if (method) {\n assert.isOneOf(method, validMethods, { paramName: 'method' });\n }\n }\n // These values are referenced directly by Router so cannot be\n // altered by minificaton.\n this.handler = normalizeHandler(handler);\n this.match = match;\n this.method = method;\n }\n /**\n *\n * @param {module:workbox-routing-handlerCallback} handler A callback\n * function that returns a Promise resolving to a Response\n */\n setCatchHandler(handler) {\n this.catchHandler = normalizeHandler(handler);\n }\n}\nexport { Route };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { Route } from './Route.js';\nimport './_version.js';\n/**\n * RegExpRoute makes it easy to create a regular expression based\n * [Route]{@link module:workbox-routing.Route}.\n *\n * For same-origin requests the RegExp only needs to match part of the URL. For\n * requests against third-party servers, you must define a RegExp that matches\n * the start of the URL.\n *\n * [See the module docs for info.]{@link https://developers.google.com/web/tools/workbox/modules/workbox-routing}\n *\n * @memberof module:workbox-routing\n * @extends module:workbox-routing.Route\n */\nclass RegExpRoute extends Route {\n /**\n * If the regular expression contains\n * [capture groups]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#grouping-back-references},\n * the captured values will be passed to the\n * [handler's]{@link module:workbox-routing~handlerCallback} `params`\n * argument.\n *\n * @param {RegExp} regExp The regular expression to match against URLs.\n * @param {module:workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resulting in a Response.\n * @param {string} [method='GET'] The HTTP method to match the Route\n * against.\n */\n constructor(regExp, handler, method) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(regExp, RegExp, {\n moduleName: 'workbox-routing',\n className: 'RegExpRoute',\n funcName: 'constructor',\n paramName: 'pattern',\n });\n }\n const match = ({ url }) => {\n const result = regExp.exec(url.href);\n // Return immediately if there's no match.\n if (!result) {\n return;\n }\n // Require that the match start at the first character in the URL string\n // if it's a cross-origin request.\n // See https://github.com/GoogleChrome/workbox/issues/281 for the context\n // behind this behavior.\n if (url.origin !== location.origin && result.index !== 0) {\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`The regular expression '${regExp.toString()}' only partially matched ` +\n `against the cross-origin URL '${url.toString()}'. RegExpRoute's will only ` +\n `handle cross-origin requests if they match the entire URL.`);\n }\n return;\n }\n // If the route matches, but there aren't any capture groups defined, then\n // this will return [], which is truthy and therefore sufficient to\n // indicate a match.\n // If there are capture groups, then it will return their values.\n return result.slice(1);\n };\n super(match, handler, method);\n }\n}\nexport { RegExpRoute };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { defaultMethod } from './utils/constants.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { normalizeHandler } from './utils/normalizeHandler.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport './_version.js';\n/**\n * The Router can be used to process a FetchEvent through one or more\n * [Routes]{@link module:workbox-routing.Route} responding with a Request if\n * a matching route exists.\n *\n * If no route matches a given a request, the Router will use a \"default\"\n * handler if one is defined.\n *\n * Should the matching Route throw an error, the Router will use a \"catch\"\n * handler if one is defined to gracefully deal with issues and respond with a\n * Request.\n *\n * If a request matches multiple routes, the **earliest** registered route will\n * be used to respond to the request.\n *\n * @memberof module:workbox-routing\n */\nclass Router {\n /**\n * Initializes a new Router.\n */\n constructor() {\n this._routes = new Map();\n this._defaultHandlerMap = new Map();\n }\n /**\n * @return {Map>} routes A `Map` of HTTP\n * method name ('GET', etc.) to an array of all the corresponding `Route`\n * instances that are registered.\n */\n get routes() {\n return this._routes;\n }\n /**\n * Adds a fetch event listener to respond to events when a route matches\n * the event's request.\n */\n addFetchListener() {\n // See https://github.com/Microsoft/TypeScript/issues/28357#issuecomment-436484705\n self.addEventListener('fetch', ((event) => {\n const { request } = event;\n const responsePromise = this.handleRequest({ request, event });\n if (responsePromise) {\n event.respondWith(responsePromise);\n }\n }));\n }\n /**\n * Adds a message event listener for URLs to cache from the window.\n * This is useful to cache resources loaded on the page prior to when the\n * service worker started controlling it.\n *\n * The format of the message data sent from the window should be as follows.\n * Where the `urlsToCache` array may consist of URL strings or an array of\n * URL string + `requestInit` object (the same as you'd pass to `fetch()`).\n *\n * ```\n * {\n * type: 'CACHE_URLS',\n * payload: {\n * urlsToCache: [\n * './script1.js',\n * './script2.js',\n * ['./script3.js', {mode: 'no-cors'}],\n * ],\n * },\n * }\n * ```\n */\n addCacheListener() {\n // See https://github.com/Microsoft/TypeScript/issues/28357#issuecomment-436484705\n self.addEventListener('message', ((event) => {\n // event.data is type 'any'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (event.data && event.data.type === 'CACHE_URLS') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const { payload } = event.data;\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Caching URLs from the window`, payload.urlsToCache);\n }\n const requestPromises = Promise.all(payload.urlsToCache.map((entry) => {\n if (typeof entry === 'string') {\n entry = [entry];\n }\n const request = new Request(...entry);\n return this.handleRequest({ request, event });\n // TODO(philipwalton): TypeScript errors without this typecast for\n // some reason (probably a bug). The real type here should work but\n // doesn't: `Array | undefined>`.\n })); // TypeScript\n event.waitUntil(requestPromises);\n // If a MessageChannel was used, reply to the message on success.\n if (event.ports && event.ports[0]) {\n void requestPromises.then(() => event.ports[0].postMessage(true));\n }\n }\n }));\n }\n /**\n * Apply the routing rules to a FetchEvent object to get a Response from an\n * appropriate Route's handler.\n *\n * @param {Object} options\n * @param {Request} options.request The request to handle.\n * @param {ExtendableEvent} options.event The event that triggered the\n * request.\n * @return {Promise|undefined} A promise is returned if a\n * registered route can handle the request. If there is no matching\n * route and there's no `defaultHandler`, `undefined` is returned.\n */\n handleRequest({ request, event, }) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(request, Request, {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'handleRequest',\n paramName: 'options.request',\n });\n }\n const url = new URL(request.url, location.href);\n if (!url.protocol.startsWith('http')) {\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Workbox Router only supports URLs that start with 'http'.`);\n }\n return;\n }\n const sameOrigin = url.origin === location.origin;\n const { params, route } = this.findMatchingRoute({\n event,\n request,\n sameOrigin,\n url,\n });\n let handler = route && route.handler;\n const debugMessages = [];\n if (process.env.NODE_ENV !== 'production') {\n if (handler) {\n debugMessages.push([`Found a route to handle this request:`, route]);\n if (params) {\n debugMessages.push([\n `Passing the following params to the route's handler:`,\n params,\n ]);\n }\n }\n }\n // If we don't have a handler because there was no matching route, then\n // fall back to defaultHandler if that's defined.\n const method = request.method;\n if (!handler && this._defaultHandlerMap.has(method)) {\n if (process.env.NODE_ENV !== 'production') {\n debugMessages.push(`Failed to find a matching route. Falling ` +\n `back to the default handler for ${method}.`);\n }\n handler = this._defaultHandlerMap.get(method);\n }\n if (!handler) {\n if (process.env.NODE_ENV !== 'production') {\n // No handler so Workbox will do nothing. If logs is set of debug\n // i.e. verbose, we should print out this information.\n logger.debug(`No route found for: ${getFriendlyURL(url)}`);\n }\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // We have a handler, meaning Workbox is going to handle the route.\n // print the routing details to the console.\n logger.groupCollapsed(`Router is responding to: ${getFriendlyURL(url)}`);\n debugMessages.forEach((msg) => {\n if (Array.isArray(msg)) {\n logger.log(...msg);\n }\n else {\n logger.log(msg);\n }\n });\n logger.groupEnd();\n }\n // Wrap in try and catch in case the handle method throws a synchronous\n // error. It should still callback to the catch handler.\n let responsePromise;\n try {\n responsePromise = handler.handle({ url, request, event, params });\n }\n catch (err) {\n responsePromise = Promise.reject(err);\n }\n // Get route's catch handler, if it exists\n const catchHandler = route && route.catchHandler;\n if (responsePromise instanceof Promise &&\n (this._catchHandler || catchHandler)) {\n responsePromise = responsePromise.catch(async (err) => {\n // If there's a route catch handler, process that first\n if (catchHandler) {\n if (process.env.NODE_ENV !== 'production') {\n // Still include URL here as it will be async from the console group\n // and may not make sense without the URL\n logger.groupCollapsed(`Error thrown when responding to: ` +\n ` ${getFriendlyURL(url)}. Falling back to route's Catch Handler.`);\n logger.error(`Error thrown by:`, route);\n logger.error(err);\n logger.groupEnd();\n }\n try {\n return await catchHandler.handle({ url, request, event, params });\n }\n catch (catchErr) {\n if (catchErr instanceof Error) {\n err = catchErr;\n }\n }\n }\n if (this._catchHandler) {\n if (process.env.NODE_ENV !== 'production') {\n // Still include URL here as it will be async from the console group\n // and may not make sense without the URL\n logger.groupCollapsed(`Error thrown when responding to: ` +\n ` ${getFriendlyURL(url)}. Falling back to global Catch Handler.`);\n logger.error(`Error thrown by:`, route);\n logger.error(err);\n logger.groupEnd();\n }\n return this._catchHandler.handle({ url, request, event });\n }\n throw err;\n });\n }\n return responsePromise;\n }\n /**\n * Checks a request and URL (and optionally an event) against the list of\n * registered routes, and if there's a match, returns the corresponding\n * route along with any params generated by the match.\n *\n * @param {Object} options\n * @param {URL} options.url\n * @param {boolean} options.sameOrigin The result of comparing `url.origin`\n * against the current origin.\n * @param {Request} options.request The request to match.\n * @param {Event} options.event The corresponding event.\n * @return {Object} An object with `route` and `params` properties.\n * They are populated if a matching route was found or `undefined`\n * otherwise.\n */\n findMatchingRoute({ url, sameOrigin, request, event, }) {\n const routes = this._routes.get(request.method) || [];\n for (const route of routes) {\n let params;\n // route.match returns type any, not possible to change right now.\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const matchResult = route.match({ url, sameOrigin, request, event });\n if (matchResult) {\n if (process.env.NODE_ENV !== 'production') {\n // Warn developers that using an async matchCallback is almost always\n // not the right thing to do.\n if (matchResult instanceof Promise) {\n logger.warn(`While routing ${getFriendlyURL(url)}, an async ` +\n `matchCallback function was used. Please convert the ` +\n `following route to use a synchronous matchCallback function:`, route);\n }\n }\n // See https://github.com/GoogleChrome/workbox/issues/2079\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n params = matchResult;\n if (Array.isArray(params) && params.length === 0) {\n // Instead of passing an empty array in as params, use undefined.\n params = undefined;\n }\n else if (matchResult.constructor === Object && // eslint-disable-line\n Object.keys(matchResult).length === 0) {\n // Instead of passing an empty object in as params, use undefined.\n params = undefined;\n }\n else if (typeof matchResult === 'boolean') {\n // For the boolean value true (rather than just something truth-y),\n // don't set params.\n // See https://github.com/GoogleChrome/workbox/pull/2134#issuecomment-513924353\n params = undefined;\n }\n // Return early if have a match.\n return { route, params };\n }\n }\n // If no match was found above, return and empty object.\n return {};\n }\n /**\n * Define a default `handler` that's called when no routes explicitly\n * match the incoming request.\n *\n * Each HTTP method ('GET', 'POST', etc.) gets its own default handler.\n *\n * Without a default handler, unmatched requests will go against the\n * network as if there were no service worker present.\n *\n * @param {module:workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resulting in a Response.\n * @param {string} [method='GET'] The HTTP method to associate with this\n * default handler. Each method has its own default.\n */\n setDefaultHandler(handler, method = defaultMethod) {\n this._defaultHandlerMap.set(method, normalizeHandler(handler));\n }\n /**\n * If a Route throws an error while handling a request, this `handler`\n * will be called and given a chance to provide a response.\n *\n * @param {module:workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resulting in a Response.\n */\n setCatchHandler(handler) {\n this._catchHandler = normalizeHandler(handler);\n }\n /**\n * Registers a route with the router.\n *\n * @param {module:workbox-routing.Route} route The route to register.\n */\n registerRoute(route) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(route, 'object', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route',\n });\n assert.hasMethod(route, 'match', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route',\n });\n assert.isType(route.handler, 'object', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route',\n });\n assert.hasMethod(route.handler, 'handle', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route.handler',\n });\n assert.isType(route.method, 'string', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route.method',\n });\n }\n if (!this._routes.has(route.method)) {\n this._routes.set(route.method, []);\n }\n // Give precedence to all of the earlier routes by adding this additional\n // route to the end of the array.\n this._routes.get(route.method).push(route);\n }\n /**\n * Unregisters a route with the router.\n *\n * @param {module:workbox-routing.Route} route The route to unregister.\n */\n unregisterRoute(route) {\n if (!this._routes.has(route.method)) {\n throw new WorkboxError('unregister-route-but-not-found-with-method', {\n method: route.method,\n });\n }\n const routeIndex = this._routes.get(route.method).indexOf(route);\n if (routeIndex > -1) {\n this._routes.get(route.method).splice(routeIndex, 1);\n }\n else {\n throw new WorkboxError('unregister-route-route-not-registered');\n }\n }\n}\nexport { Router };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { Router } from '../Router.js';\nimport '../_version.js';\nlet defaultRouter;\n/**\n * Creates a new, singleton Router instance if one does not exist. If one\n * does already exist, that instance is returned.\n *\n * @private\n * @return {Router}\n */\nexport const getOrCreateDefaultRouter = () => {\n if (!defaultRouter) {\n defaultRouter = new Router();\n // The helpers that use the default Router assume these listeners exist.\n defaultRouter.addFetchListener();\n defaultRouter.addCacheListener();\n }\n return defaultRouter;\n};\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { Route } from './Route.js';\nimport { RegExpRoute } from './RegExpRoute.js';\nimport { getOrCreateDefaultRouter } from './utils/getOrCreateDefaultRouter.js';\nimport './_version.js';\n/**\n * Easily register a RegExp, string, or function with a caching\n * strategy to a singleton Router instance.\n *\n * This method will generate a Route for you if needed and\n * call [registerRoute()]{@link module:workbox-routing.Router#registerRoute}.\n *\n * @param {RegExp|string|module:workbox-routing.Route~matchCallback|module:workbox-routing.Route} capture\n * If the capture param is a `Route`, all other arguments will be ignored.\n * @param {module:workbox-routing~handlerCallback} [handler] A callback\n * function that returns a Promise resulting in a Response. This parameter\n * is required if `capture` is not a `Route` object.\n * @param {string} [method='GET'] The HTTP method to match the Route\n * against.\n * @return {module:workbox-routing.Route} The generated `Route`(Useful for\n * unregistering).\n *\n * @memberof module:workbox-routing\n */\nfunction registerRoute(capture, handler, method) {\n let route;\n if (typeof capture === 'string') {\n const captureUrl = new URL(capture, location.href);\n if (process.env.NODE_ENV !== 'production') {\n if (!(capture.startsWith('/') || capture.startsWith('http'))) {\n throw new WorkboxError('invalid-string', {\n moduleName: 'workbox-routing',\n funcName: 'registerRoute',\n paramName: 'capture',\n });\n }\n // We want to check if Express-style wildcards are in the pathname only.\n // TODO: Remove this log message in v4.\n const valueToCheck = capture.startsWith('http')\n ? captureUrl.pathname\n : capture;\n // See https://github.com/pillarjs/path-to-regexp#parameters\n const wildcards = '[*:?+]';\n if (new RegExp(`${wildcards}`).exec(valueToCheck)) {\n logger.debug(`The '$capture' parameter contains an Express-style wildcard ` +\n `character (${wildcards}). Strings are now always interpreted as ` +\n `exact matches; use a RegExp for partial or wildcard matches.`);\n }\n }\n const matchCallback = ({ url }) => {\n if (process.env.NODE_ENV !== 'production') {\n if (url.pathname === captureUrl.pathname &&\n url.origin !== captureUrl.origin) {\n logger.debug(`${capture} only partially matches the cross-origin URL ` +\n `${url.toString()}. This route will only handle cross-origin requests ` +\n `if they match the entire URL.`);\n }\n }\n return url.href === captureUrl.href;\n };\n // If `capture` is a string then `handler` and `method` must be present.\n route = new Route(matchCallback, handler, method);\n }\n else if (capture instanceof RegExp) {\n // If `capture` is a `RegExp` then `handler` and `method` must be present.\n route = new RegExpRoute(capture, handler, method);\n }\n else if (typeof capture === 'function') {\n // If `capture` is a function then `handler` and `method` must be present.\n route = new Route(capture, handler, method);\n }\n else if (capture instanceof Route) {\n route = capture;\n }\n else {\n throw new WorkboxError('unsupported-route-type', {\n moduleName: 'workbox-routing',\n funcName: 'registerRoute',\n paramName: 'capture',\n });\n }\n const defaultRouter = getOrCreateDefaultRouter();\n defaultRouter.registerRoute(route);\n return route;\n}\nexport { registerRoute };\n","\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:strategies:6.4.1'] && _();\n}\ncatch (e) { }\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nexport const cacheOkAndOpaquePlugin = {\n /**\n * Returns a valid response (to allow caching) if the status is 200 (OK) or\n * 0 (opaque).\n *\n * @param {Object} options\n * @param {Response} options.response\n * @return {Response|null}\n *\n * @private\n */\n cacheWillUpdate: async ({ response }) => {\n if (response.status === 200 || response.status === 0) {\n return response;\n }\n return null;\n },\n};\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nconst _cacheNameDetails = {\n googleAnalytics: 'googleAnalytics',\n precache: 'precache-v2',\n prefix: 'workbox',\n runtime: 'runtime',\n suffix: typeof registration !== 'undefined' ? registration.scope : '',\n};\nconst _createCacheName = (cacheName) => {\n return [_cacheNameDetails.prefix, cacheName, _cacheNameDetails.suffix]\n .filter((value) => value && value.length > 0)\n .join('-');\n};\nconst eachCacheNameDetail = (fn) => {\n for (const key of Object.keys(_cacheNameDetails)) {\n fn(key);\n }\n};\nexport const cacheNames = {\n updateDetails: (details) => {\n eachCacheNameDetail((key) => {\n if (typeof details[key] === 'string') {\n _cacheNameDetails[key] = details[key];\n }\n });\n },\n getGoogleAnalyticsName: (userCacheName) => {\n return userCacheName || _createCacheName(_cacheNameDetails.googleAnalytics);\n },\n getPrecacheName: (userCacheName) => {\n return userCacheName || _createCacheName(_cacheNameDetails.precache);\n },\n getPrefix: () => {\n return _cacheNameDetails.prefix;\n },\n getRuntimeName: (userCacheName) => {\n return userCacheName || _createCacheName(_cacheNameDetails.runtime);\n },\n getSuffix: () => {\n return _cacheNameDetails.suffix;\n },\n};\n","/*\n Copyright 2020 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nfunction stripParams(fullURL, ignoreParams) {\n const strippedURL = new URL(fullURL);\n for (const param of ignoreParams) {\n strippedURL.searchParams.delete(param);\n }\n return strippedURL.href;\n}\n/**\n * Matches an item in the cache, ignoring specific URL params. This is similar\n * to the `ignoreSearch` option, but it allows you to ignore just specific\n * params (while continuing to match on the others).\n *\n * @private\n * @param {Cache} cache\n * @param {Request} request\n * @param {Object} matchOptions\n * @param {Array} ignoreParams\n * @return {Promise}\n */\nasync function cacheMatchIgnoreParams(cache, request, ignoreParams, matchOptions) {\n const strippedRequestURL = stripParams(request.url, ignoreParams);\n // If the request doesn't include any ignored params, match as normal.\n if (request.url === strippedRequestURL) {\n return cache.match(request, matchOptions);\n }\n // Otherwise, match by comparing keys\n const keysOptions = Object.assign(Object.assign({}, matchOptions), { ignoreSearch: true });\n const cacheKeys = await cache.keys(request, keysOptions);\n for (const cacheKey of cacheKeys) {\n const strippedCacheKeyURL = stripParams(cacheKey.url, ignoreParams);\n if (strippedRequestURL === strippedCacheKeyURL) {\n return cache.match(cacheKey, matchOptions);\n }\n }\n return;\n}\nexport { cacheMatchIgnoreParams };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * The Deferred class composes Promises in a way that allows for them to be\n * resolved or rejected from outside the constructor. In most cases promises\n * should be used directly, but Deferreds can be necessary when the logic to\n * resolve a promise must be separate.\n *\n * @private\n */\nclass Deferred {\n /**\n * Creates a promise and exposes its resolve and reject functions as methods.\n */\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n }\n}\nexport { Deferred };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n// Callbacks to be executed whenever there's a quota error.\n// Can't change Function type right now.\n// eslint-disable-next-line @typescript-eslint/ban-types\nconst quotaErrorCallbacks = new Set();\nexport { quotaErrorCallbacks };\n","/*\n Copyright 2020 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { cacheMatchIgnoreParams } from 'workbox-core/_private/cacheMatchIgnoreParams.js';\nimport { Deferred } from 'workbox-core/_private/Deferred.js';\nimport { executeQuotaErrorCallbacks } from 'workbox-core/_private/executeQuotaErrorCallbacks.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { timeout } from 'workbox-core/_private/timeout.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport './_version.js';\nfunction toRequest(input) {\n return typeof input === 'string' ? new Request(input) : input;\n}\n/**\n * A class created every time a Strategy instance instance calls\n * [handle()]{@link module:workbox-strategies.Strategy~handle} or\n * [handleAll()]{@link module:workbox-strategies.Strategy~handleAll} that wraps all fetch and\n * cache actions around plugin callbacks and keeps track of when the strategy\n * is \"done\" (i.e. all added `event.waitUntil()` promises have resolved).\n *\n * @memberof module:workbox-strategies\n */\nclass StrategyHandler {\n /**\n * Creates a new instance associated with the passed strategy and event\n * that's handling the request.\n *\n * The constructor also initializes the state that will be passed to each of\n * the plugins handling this request.\n *\n * @param {module:workbox-strategies.Strategy} strategy\n * @param {Object} options\n * @param {Request|string} options.request A request to run this strategy for.\n * @param {ExtendableEvent} options.event The event associated with the\n * request.\n * @param {URL} [options.url]\n * @param {*} [options.params]\n * [match callback]{@link module:workbox-routing~matchCallback},\n * (if applicable).\n */\n constructor(strategy, options) {\n this._cacheKeys = {};\n /**\n * The request the strategy is performing (passed to the strategy's\n * `handle()` or `handleAll()` method).\n * @name request\n * @instance\n * @type {Request}\n * @memberof module:workbox-strategies.StrategyHandler\n */\n /**\n * The event associated with this request.\n * @name event\n * @instance\n * @type {ExtendableEvent}\n * @memberof module:workbox-strategies.StrategyHandler\n */\n /**\n * A `URL` instance of `request.url` (if passed to the strategy's\n * `handle()` or `handleAll()` method).\n * Note: the `url` param will be present if the strategy was invoked\n * from a workbox `Route` object.\n * @name url\n * @instance\n * @type {URL|undefined}\n * @memberof module:workbox-strategies.StrategyHandler\n */\n /**\n * A `param` value (if passed to the strategy's\n * `handle()` or `handleAll()` method).\n * Note: the `param` param will be present if the strategy was invoked\n * from a workbox `Route` object and the\n * [match callback]{@link module:workbox-routing~matchCallback} returned\n * a truthy value (it will be that value).\n * @name params\n * @instance\n * @type {*|undefined}\n * @memberof module:workbox-strategies.StrategyHandler\n */\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(options.event, ExtendableEvent, {\n moduleName: 'workbox-strategies',\n className: 'StrategyHandler',\n funcName: 'constructor',\n paramName: 'options.event',\n });\n }\n Object.assign(this, options);\n this.event = options.event;\n this._strategy = strategy;\n this._handlerDeferred = new Deferred();\n this._extendLifetimePromises = [];\n // Copy the plugins list (since it's mutable on the strategy),\n // so any mutations don't affect this handler instance.\n this._plugins = [...strategy.plugins];\n this._pluginStateMap = new Map();\n for (const plugin of this._plugins) {\n this._pluginStateMap.set(plugin, {});\n }\n this.event.waitUntil(this._handlerDeferred.promise);\n }\n /**\n * Fetches a given request (and invokes any applicable plugin callback\n * methods) using the `fetchOptions` (for non-navigation requests) and\n * `plugins` defined on the `Strategy` object.\n *\n * The following plugin lifecycle methods are invoked when using this method:\n * - `requestWillFetch()`\n * - `fetchDidSucceed()`\n * - `fetchDidFail()`\n *\n * @param {Request|string} input The URL or request to fetch.\n * @return {Promise}\n */\n async fetch(input) {\n const { event } = this;\n let request = toRequest(input);\n if (request.mode === 'navigate' &&\n event instanceof FetchEvent &&\n event.preloadResponse) {\n const possiblePreloadResponse = (await event.preloadResponse);\n if (possiblePreloadResponse) {\n if (process.env.NODE_ENV !== 'production') {\n logger.log(`Using a preloaded navigation response for ` +\n `'${getFriendlyURL(request.url)}'`);\n }\n return possiblePreloadResponse;\n }\n }\n // If there is a fetchDidFail plugin, we need to save a clone of the\n // original request before it's either modified by a requestWillFetch\n // plugin or before the original request's body is consumed via fetch().\n const originalRequest = this.hasCallback('fetchDidFail')\n ? request.clone()\n : null;\n try {\n for (const cb of this.iterateCallbacks('requestWillFetch')) {\n request = await cb({ request: request.clone(), event });\n }\n }\n catch (err) {\n if (err instanceof Error) {\n throw new WorkboxError('plugin-error-request-will-fetch', {\n thrownErrorMessage: err.message,\n });\n }\n }\n // The request can be altered by plugins with `requestWillFetch` making\n // the original request (most likely from a `fetch` event) different\n // from the Request we make. Pass both to `fetchDidFail` to aid debugging.\n const pluginFilteredRequest = request.clone();\n try {\n let fetchResponse;\n // See https://github.com/GoogleChrome/workbox/issues/1796\n fetchResponse = await fetch(request, request.mode === 'navigate' ? undefined : this._strategy.fetchOptions);\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Network request for ` +\n `'${getFriendlyURL(request.url)}' returned a response with ` +\n `status '${fetchResponse.status}'.`);\n }\n for (const callback of this.iterateCallbacks('fetchDidSucceed')) {\n fetchResponse = await callback({\n event,\n request: pluginFilteredRequest,\n response: fetchResponse,\n });\n }\n return fetchResponse;\n }\n catch (error) {\n if (process.env.NODE_ENV !== 'production') {\n logger.log(`Network request for ` +\n `'${getFriendlyURL(request.url)}' threw an error.`, error);\n }\n // `originalRequest` will only exist if a `fetchDidFail` callback\n // is being used (see above).\n if (originalRequest) {\n await this.runCallbacks('fetchDidFail', {\n error: error,\n event,\n originalRequest: originalRequest.clone(),\n request: pluginFilteredRequest.clone(),\n });\n }\n throw error;\n }\n }\n /**\n * Calls `this.fetch()` and (in the background) runs `this.cachePut()` on\n * the response generated by `this.fetch()`.\n *\n * The call to `this.cachePut()` automatically invokes `this.waitUntil()`,\n * so you do not have to manually call `waitUntil()` on the event.\n *\n * @param {Request|string} input The request or URL to fetch and cache.\n * @return {Promise}\n */\n async fetchAndCachePut(input) {\n const response = await this.fetch(input);\n const responseClone = response.clone();\n void this.waitUntil(this.cachePut(input, responseClone));\n return response;\n }\n /**\n * Matches a request from the cache (and invokes any applicable plugin\n * callback methods) using the `cacheName`, `matchOptions`, and `plugins`\n * defined on the strategy object.\n *\n * The following plugin lifecycle methods are invoked when using this method:\n * - cacheKeyWillByUsed()\n * - cachedResponseWillByUsed()\n *\n * @param {Request|string} key The Request or URL to use as the cache key.\n * @return {Promise} A matching response, if found.\n */\n async cacheMatch(key) {\n const request = toRequest(key);\n let cachedResponse;\n const { cacheName, matchOptions } = this._strategy;\n const effectiveRequest = await this.getCacheKey(request, 'read');\n const multiMatchOptions = Object.assign(Object.assign({}, matchOptions), { cacheName });\n cachedResponse = await caches.match(effectiveRequest, multiMatchOptions);\n if (process.env.NODE_ENV !== 'production') {\n if (cachedResponse) {\n logger.debug(`Found a cached response in '${cacheName}'.`);\n }\n else {\n logger.debug(`No cached response found in '${cacheName}'.`);\n }\n }\n for (const callback of this.iterateCallbacks('cachedResponseWillBeUsed')) {\n cachedResponse =\n (await callback({\n cacheName,\n matchOptions,\n cachedResponse,\n request: effectiveRequest,\n event: this.event,\n })) || undefined;\n }\n return cachedResponse;\n }\n /**\n * Puts a request/response pair in the cache (and invokes any applicable\n * plugin callback methods) using the `cacheName` and `plugins` defined on\n * the strategy object.\n *\n * The following plugin lifecycle methods are invoked when using this method:\n * - cacheKeyWillByUsed()\n * - cacheWillUpdate()\n * - cacheDidUpdate()\n *\n * @param {Request|string} key The request or URL to use as the cache key.\n * @param {Response} response The response to cache.\n * @return {Promise