@rnacanvas/draw 8.1.0 → 8.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +1 -1
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.draw=e():t.draw=e()}(this,(()=>(()=>{var t={127:function(t){var e;e=()=>(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>p,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function p(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},369:function(t){var e;e=()=>(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>p,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function p(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function h(t){return null==t}function u(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}function l(t){return c(t)&&t.every(r)}function d(t){return c(t)&&t.every(n)}function f(t){return c(t)&&t.every(i)}function p(t){return c(t)&&t.every(a)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>d,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>f,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>u,isNullish:()=>h,isNumber:()=>r,isNumbersArray:()=>l,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>p}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Linkers:()=>g,Stems:()=>m,areConflicting:()=>u,areCrossing:()=>d,areEqual:()=>a,areKnotless:()=>l,areStacked:()=>h,deepCopy:()=>i,knotless:()=>p,mountainPlotTraversal:()=>y,parseDotBracket:()=>w,sorted:()=>o});var t=r(854),e=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function i(r){return(0,t.isNumbersArray)(r)?e([],r,!0):r.map((function(t){return e([],t,!0)}))}var s=r(986);function o(t){var e=i(t);return e.forEach(s.sortNumbers),e.sort((function(t,e){return t[0]-e[0]})),e}function a(t,e){var r=i(t),n=i(e);return(0,s.sortNumbers)(r),(0,s.sortNumbers)(n),[0,1].every((function(t){return r[t]==n[t]}))}function h(t,e){var r=o([t,e]);return r[0][0]==r[1][0]-1&&r[0][1]==r[1][1]+1}function u(t,e){return(0,s.min)(t)==(0,s.min)(e)&&(0,s.max)(t)!=(0,s.max)(e)||(0,s.min)(t)!=(0,s.min)(e)&&(0,s.max)(t)==(0,s.max)(e)}function c(t){if(0==t.length)return[];for(var e=[],r=0;r<(0,s.max)(t.flat());r++)e.push(void 0);return t.forEach((function(t){e[t[0]-1]=t[1],e[t[1]-1]=t[0]})),e}function l(t){var e=c(t),r=[],n=!1;return e.forEach((function(t,e){var i=e+1;null==t||(i<t?r.push(i):i==t||r.pop()!=t&&(n=!0))})),!n}function d(t,e){return!l([t,e])}var f=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function p(t){var e=[],r=i(t);return r.sort((function(t,e){return Math.abs(t[0]-t[1])-Math.abs(e[0]-e[1])})),r.forEach((function(t){l(f(f([],e,!0),[t],!1))&&e.push(t)})),e}var m=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=this.targetStructure[1];if(0==t.length)return[];var e=o(t),r=[],n=[];return e.forEach((function(t){var e=0==n.length?null:n[n.length-1];!e||h(e,t)?n.push(t):(r.push(n),n=[t])})),r.push(n),r},t}(),g=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=(new(m.bind.apply(m,function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))}([void 0],this.targetStructure,!1)))).get().flatMap((function(t){return[t.map(s.min),t.map(s.max)]}));t.forEach(s.sortNumbers),t.sort((function(t,e){return(0,s.min)(t)-(0,s.min)(e)}));for(var e=[],r=t.shift(),n=t.shift();r&&n;){for(var i=[],o=(0,s.max)(r),a=(0,s.min)(n),h=o;h<=a;h++)i.push(h);e.push(i),r=n,n=t.shift()}return e},t}();function y(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=t[0],n=t[1],i=c(n);if(!l(n))throw new Error("Pseudoknot(s) encountered.");var s=[],o=0;return r.forEach((function(t,e){var r=e+1,n=i[e];null==n?s.push(o):r<n?(s.push(o),o++):(r==n||o--,s.push(o))})),s}function w(t){var e=t.split(""),r=[".","(",")"];e.forEach((function(t){if(!r.includes(t))throw new Error('Unrecognized character in dot-bracket notation: "'.concat(t,'".'))}));var n=[],i=[];if(e.forEach((function(t,e){var r=e+1;if("("==t)i.push(r);else if(")"==t){var s=i.pop();if("number"!=typeof s)throw new Error("Unmatched downstream partner(s) in dot-bracket notation.");n.push([s,r])}})),i.length>0)throw new Error("Unmatched upstream partner(s) in dot-bracket notation.");return o(n)}})(),n})(),t.exports=e()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{FirstPairedBase:()=>e,LastPairedBase:()=>s,LeadingDanglingBases:()=>o,Linkers:()=>c,PositionPairs:()=>t,Stems:()=>u,TrailingDanglingBases:()=>a,consecutivePairs:()=>f,knotless:()=>l,parseDotBracket:()=>d});class t{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];return this.targetStructure[1].map((e=>[t.indexOf(e[0])+1,t.indexOf(e[1])+1]))}}class e{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat(),n=t.findIndex((t=>r.includes(t)));if(n<0)throw new Error("No paired bases present in sequence.");return t[n]}}var i=r(986);class s{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat().map((e=>t.indexOf(e)));if((0,i.max)(r)<0)throw new Error("No paired bases present in sequence.");return t[(0,i.max)(r)]}}class o{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let r=new e(...this.targetStructure).get(),n=t.indexOf(r);if(n<0)throw new Error("No paired bases present in sequence.");return t.slice(0,n)}}class a{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let e=new s(...this.targetStructure).get(),r=t.indexOf(e);if(r<0)throw new Error("No paired bases present in sequence.");return t.slice(r+1)}}var h=r(369);class u{constructor(...t){this.targetStructure=t}get(){let e=this.targetStructure[0],r=new t(...this.targetStructure).get();return new h.Stems(e,r).get().map((t=>t.map((t=>[e[t[0]-1],e[t[1]-1]]))))}}class c{constructor(...t){this.targetStructure=t}get(){let e=this.targetStructure[0],r=new t(...this.targetStructure).get();return new h.Linkers(e,r).get().map((t=>t.map((t=>e[t-1]))))}}function l(...e){let[r,n]=e,i=new t(...e).get();(0,h.areKnotless)(i)||(i=(0,h.knotless)(i));let s=i.map((t=>[r[t[0]-1],r[t[1]-1]]));return[[...r],s]}function d(t,e){if(e.length>t.length)throw new Error("Dot-bracket notation is longer than the sequence.");return[...(0,h.parseDotBracket)(e)].map((e=>{let r=e[0],n=e[1];return[t[r-1],t[n-1]]}))}function f(t){return t.length<2?[]:t.slice(0,-1).map(((e,r)=>[t[r],t[r+1]]))}})(),n})(),t.exports=e()},661:function(t){var e;e=()=>(()=>{var t={127:function(t){var e;e=()=>(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>p,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function p(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},369:function(t){var e;e=()=>(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>p,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function p(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function h(t){return null==t}function u(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}function l(t){return c(t)&&t.every(r)}function d(t){return c(t)&&t.every(n)}function f(t){return c(t)&&t.every(i)}function p(t){return c(t)&&t.every(a)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>d,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>f,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>u,isNullish:()=>h,isNumber:()=>r,isNumbersArray:()=>l,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>p}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Linkers:()=>g,Stems:()=>m,areConflicting:()=>u,areCrossing:()=>d,areEqual:()=>a,areKnotless:()=>l,areStacked:()=>h,deepCopy:()=>i,knotless:()=>p,mountainPlotTraversal:()=>y,parseDotBracket:()=>w,sorted:()=>o});var t=r(854),e=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function i(r){return(0,t.isNumbersArray)(r)?e([],r,!0):r.map((function(t){return e([],t,!0)}))}var s=r(986);function o(t){var e=i(t);return e.forEach(s.sortNumbers),e.sort((function(t,e){return t[0]-e[0]})),e}function a(t,e){var r=i(t),n=i(e);return(0,s.sortNumbers)(r),(0,s.sortNumbers)(n),[0,1].every((function(t){return r[t]==n[t]}))}function h(t,e){var r=o([t,e]);return r[0][0]==r[1][0]-1&&r[0][1]==r[1][1]+1}function u(t,e){return(0,s.min)(t)==(0,s.min)(e)&&(0,s.max)(t)!=(0,s.max)(e)||(0,s.min)(t)!=(0,s.min)(e)&&(0,s.max)(t)==(0,s.max)(e)}function c(t){if(0==t.length)return[];for(var e=[],r=0;r<(0,s.max)(t.flat());r++)e.push(void 0);return t.forEach((function(t){e[t[0]-1]=t[1],e[t[1]-1]=t[0]})),e}function l(t){var e=c(t),r=[],n=!1;return e.forEach((function(t,e){var i=e+1;null==t||(i<t?r.push(i):i==t||r.pop()!=t&&(n=!0))})),!n}function d(t,e){return!l([t,e])}var f=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function p(t){var e=[],r=i(t);return r.sort((function(t,e){return Math.abs(t[0]-t[1])-Math.abs(e[0]-e[1])})),r.forEach((function(t){l(f(f([],e,!0),[t],!1))&&e.push(t)})),e}var m=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=this.targetStructure[1];if(0==t.length)return[];var e=o(t),r=[],n=[];return e.forEach((function(t){var e=0==n.length?null:n[n.length-1];!e||h(e,t)?n.push(t):(r.push(n),n=[t])})),r.push(n),r},t}(),g=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=(new(m.bind.apply(m,function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))}([void 0],this.targetStructure,!1)))).get().flatMap((function(t){return[t.map(s.min),t.map(s.max)]}));t.forEach(s.sortNumbers),t.sort((function(t,e){return(0,s.min)(t)-(0,s.min)(e)}));for(var e=[],r=t.shift(),n=t.shift();r&&n;){for(var i=[],o=(0,s.max)(r),a=(0,s.min)(n),h=o;h<=a;h++)i.push(h);e.push(i),r=n,n=t.shift()}return e},t}();function y(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=t[0],n=t[1],i=c(n);if(!l(n))throw new Error("Pseudoknot(s) encountered.");var s=[],o=0;return r.forEach((function(t,e){var r=e+1,n=i[e];null==n?s.push(o):r<n?(s.push(o),o++):(r==n||o--,s.push(o))})),s}function w(t){var e=t.split(""),r=[".","(",")"];e.forEach((function(t){if(!r.includes(t))throw new Error('Unrecognized character in dot-bracket notation: "'.concat(t,'".'))}));var n=[],i=[];if(e.forEach((function(t,e){var r=e+1;if("("==t)i.push(r);else if(")"==t){var s=i.pop();if("number"!=typeof s)throw new Error("Unmatched downstream partner(s) in dot-bracket notation.");n.push([s,r])}})),i.length>0)throw new Error("Unmatched upstream partner(s) in dot-bracket notation.");return o(n)}})(),n})(),t.exports=e()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{FirstPairedBase:()=>e,LastPairedBase:()=>s,LeadingDanglingBases:()=>o,Linkers:()=>c,PositionPairs:()=>t,Stems:()=>u,TrailingDanglingBases:()=>a,consecutivePairs:()=>f,knotless:()=>l,parseDotBracket:()=>d});class t{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];return this.targetStructure[1].map((e=>[t.indexOf(e[0])+1,t.indexOf(e[1])+1]))}}class e{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat(),n=t.findIndex((t=>r.includes(t)));if(n<0)throw new Error("No paired bases present in sequence.");return t[n]}}var i=r(986);class s{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat().map((e=>t.indexOf(e)));if((0,i.max)(r)<0)throw new Error("No paired bases present in sequence.");return t[(0,i.max)(r)]}}class o{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let r=new e(...this.targetStructure).get(),n=t.indexOf(r);if(n<0)throw new Error("No paired bases present in sequence.");return t.slice(0,n)}}class a{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let e=new s(...this.targetStructure).get(),r=t.indexOf(e);if(r<0)throw new Error("No paired bases present in sequence.");return t.slice(r+1)}}var h=r(369);class u{constructor(...t){this.targetStructure=t}get(){let e=this.targetStructure[0],r=new t(...this.targetStructure).get();return new h.Stems(e,r).get().map((t=>t.map((t=>[e[t[0]-1],e[t[1]-1]]))))}}class c{constructor(...t){this.targetStructure=t}get(){let e=this.targetStructure[0],r=new t(...this.targetStructure).get();return new h.Linkers(e,r).get().map((t=>t.map((t=>e[t-1]))))}}function l(...e){let[r,n]=e,i=new t(...e).get();(0,h.areKnotless)(i)||(i=(0,h.knotless)(i));let s=i.map((t=>[r[t[0]-1],r[t[1]-1]]));return[[...r],s]}function d(t,e){if(e.length>t.length)throw new Error("Dot-bracket notation is longer than the sequence.");return[...(0,h.parseDotBracket)(e)].map((e=>{let r=e[0],n=e[1];return[t[r-1],t[n-1]]}))}function f(t){return t.length<2?[]:t.slice(0,-1).map(((e,r)=>[t[r],t[r+1]]))}})(),n})(),t.exports=e()},173:function(t){var e;e=()=>(()=>{var t={422:function(t){t.exports=(()=>{var t={138:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}return t.r(e),t.d(e,{average:()=>n,mean:()=>n,sum:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function t(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function e(t,e){return{x:e.x-t.x,y:e.y-t.y}}r.r(n),r.d(n,{centroid:()=>s,displacement:()=>e,distance:()=>t,midpoint:()=>o});var i=r(138);function s(t){return{x:(0,i.mean)(t.map((function(t){return t.x}))),y:(0,i.mean)(t.map((function(t){return t.y})))}}function o(t,e){return s([t,e])}})(),n})()},872:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{CircularSegment:()=>a,Semicircle:()=>e});var t=r(422),e=function(){function e(t){this.chord=t}return Object.defineProperty(e.prototype,"chordLength",{get:function(){return(0,t.distance)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"arcLength",{get:function(){return Math.PI*this.chordLength/2},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"arcAngle",{get:function(){return Math.PI},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleRadius",{get:function(){return this.chordLength/2},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleDiameter",{get:function(){return 2*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCircumference",{get:function(){return 2*Math.PI*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCenterPoint",{get:function(){return(0,t.midpoint)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),e}(),i=r(872),s=function(){function e(e,r){this.chord=e,this.moreProps=r;var n=r.arcLength,i=(0,t.distance)(e[0],e[1]);if(n<=i)throw new Error("Arc length is too small.");if(n>=Math.PI*i/2)throw new Error("Arc length is too big.");for(var s=Math.PI/2,o=0;o<20;o++)s-=(n/i*Math.sin(s)-s)/(n/i*Math.cos(s)-1);this.arcAngle=2*s}return Object.defineProperty(e.prototype,"chordLength",{get:function(){return(0,t.distance)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"arcLength",{get:function(){return this.moreProps.arcLength},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleRadius",{get:function(){return this.arcLength/this.arcAngle},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleDiameter",{get:function(){return 2*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCircumference",{get:function(){return 2*Math.PI*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCenterPoint",{get:function(){var e=(0,i.direction)((0,t.displacement)(this.chord[0],this.chord[1]));e+=(Math.PI-this.arcAngle)/2;var r=this.parentCircleRadius;return{x:this.chord[0].x+r*Math.cos(e),y:this.chord[0].y+r*Math.sin(e)}},enumerable:!1,configurable:!0}),e}(),o=function(){function e(e,r){this.chord=e,this.moreProps=r;var n=r.arcLength,i=(0,t.distance)(e[0],e[1]);if(0==i)throw new Error("Chord length cannot be zero.");if(n<=Math.PI*i/2)throw new Error("Arc length is too small.");for(var s=Math.PI,o=0;o<20;o++)s-=(n/i*Math.sin(Math.PI-s)-s)/(-n/i*Math.cos(Math.PI-s)-1);this.arcAngle=2*s}return Object.defineProperty(e.prototype,"chordLength",{get:function(){return(0,t.distance)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"arcLength",{get:function(){return this.moreProps.arcLength},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleRadius",{get:function(){return this.arcLength/this.arcAngle},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleDiameter",{get:function(){return 2*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCircumference",{get:function(){return 2*Math.PI*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCenterPoint",{get:function(){var e=(0,i.direction)((0,t.displacement)(this.chord[0],this.chord[1]));e-=(this.arcAngle-Math.PI)/2;var r=this.parentCircleRadius;return{x:this.chord[0].x+r*Math.cos(e),y:this.chord[0].y+r*Math.sin(e)}},enumerable:!1,configurable:!0}),e}(),a=function(){function r(r,n){this.chord=r,this.moreProps=n;var i=n.arcLength,a=(0,t.distance)(r[0],r[1]);if(a>0&&i<=a)throw new Error("Arc length is too small.");var h=a<.001&&i<.001,u=Math.PI*a/2,c=Math.abs(i-u)<.001;this.wrappedCircularSegment=h||c?new e(r):i<u?new s(r,{arcLength:i}):new o(r,{arcLength:i})}return Object.defineProperty(r.prototype,"chordLength",{get:function(){return this.wrappedCircularSegment.chordLength},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"arcLength",{get:function(){return this.moreProps.arcLength},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"arcAngle",{get:function(){return this.wrappedCircularSegment.arcAngle},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleRadius",{get:function(){return this.wrappedCircularSegment.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleDiameter",{get:function(){return this.wrappedCircularSegment.parentCircleDiameter},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleCircumference",{get:function(){return this.wrappedCircularSegment.parentCircleCircumference},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleCenterPoint",{get:function(){return this.wrappedCircularSegment.parentCircleCenterPoint},enumerable:!1,configurable:!0}),r}()})(),n})(),t.exports=e()},986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>p,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function p(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},725:function(t){t.exports=(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>d,average:()=>n,degrees:()=>m,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>g,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>f,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return Math.abs(t-e)<=r}function f(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function m(t){return t*(180/Math.PI)}function g(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function h(t){return null==t}function u(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isNonFiniteNumber:()=>i,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>u,isNullish:()=>h,isNumber:()=>r,isPositiveFiniteNumber:()=>s,isString:()=>a}),e})()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{areWithin:()=>a,centroid:()=>f,deepCopy:()=>s,direction:()=>l,displaced:()=>u,displacement:()=>h,distance:()=>o,isFinitePoint:()=>i,isPoint:()=>e,midpoint:()=>p});var t=r(854);function e(e){return(0,t.isNonNullObject)(e)&&(0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)}function i(r){return e(r)&&(0,t.isFiniteNumber)(r.x)&&(0,t.isFiniteNumber)(r.y)}function s(t){return{x:t.x,y:t.y}}function o(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function a(t,e,r){return o(t,e)<=r}function h(t,e){return{x:e.x-t.x,y:e.y-t.y}}function u(t,e){return{x:t.x+e.x,y:t.y+e.y}}var c=r(30);function l(t,e){return(0,c.direction)(h(t,e))}var d=r(986);function f(t){return{x:(0,d.mean)(t.map((function(t){return t.x}))),y:(0,d.mean)(t.map((function(t){return t.y})))}}function p(t,e){return f([t,e])}})(),n})()},369:function(t){var e;e=()=>(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>p,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function p(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function h(t){return null==t}function u(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}function l(t){return c(t)&&t.every(r)}function d(t){return c(t)&&t.every(n)}function f(t){return c(t)&&t.every(i)}function p(t){return c(t)&&t.every(a)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>d,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>f,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>u,isNullish:()=>h,isNumber:()=>r,isNumbersArray:()=>l,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>p}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Linkers:()=>g,Stems:()=>m,areConflicting:()=>u,areCrossing:()=>d,areEqual:()=>a,areKnotless:()=>l,areStacked:()=>h,deepCopy:()=>i,knotless:()=>p,mountainPlotTraversal:()=>y,parseDotBracket:()=>w,sorted:()=>o});var t=r(854),e=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function i(r){return(0,t.isNumbersArray)(r)?e([],r,!0):r.map((function(t){return e([],t,!0)}))}var s=r(986);function o(t){var e=i(t);return e.forEach(s.sortNumbers),e.sort((function(t,e){return t[0]-e[0]})),e}function a(t,e){var r=i(t),n=i(e);return(0,s.sortNumbers)(r),(0,s.sortNumbers)(n),[0,1].every((function(t){return r[t]==n[t]}))}function h(t,e){var r=o([t,e]);return r[0][0]==r[1][0]-1&&r[0][1]==r[1][1]+1}function u(t,e){return(0,s.min)(t)==(0,s.min)(e)&&(0,s.max)(t)!=(0,s.max)(e)||(0,s.min)(t)!=(0,s.min)(e)&&(0,s.max)(t)==(0,s.max)(e)}function c(t){if(0==t.length)return[];for(var e=[],r=0;r<(0,s.max)(t.flat());r++)e.push(void 0);return t.forEach((function(t){e[t[0]-1]=t[1],e[t[1]-1]=t[0]})),e}function l(t){var e=c(t),r=[],n=!1;return e.forEach((function(t,e){var i=e+1;null==t||(i<t?r.push(i):i==t||r.pop()!=t&&(n=!0))})),!n}function d(t,e){return!l([t,e])}var f=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function p(t){var e=[],r=i(t);return r.sort((function(t,e){return Math.abs(t[0]-t[1])-Math.abs(e[0]-e[1])})),r.forEach((function(t){l(f(f([],e,!0),[t],!1))&&e.push(t)})),e}var m=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=this.targetStructure[1];if(0==t.length)return[];var e=o(t),r=[],n=[];return e.forEach((function(t){var e=0==n.length?null:n[n.length-1];!e||h(e,t)?n.push(t):(r.push(n),n=[t])})),r.push(n),r},t}(),g=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=(new(m.bind.apply(m,function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))}([void 0],this.targetStructure,!1)))).get().flatMap((function(t){return[t.map(s.min),t.map(s.max)]}));t.forEach(s.sortNumbers),t.sort((function(t,e){return(0,s.min)(t)-(0,s.min)(e)}));for(var e=[],r=t.shift(),n=t.shift();r&&n;){for(var i=[],o=(0,s.max)(r),a=(0,s.min)(n),h=o;h<=a;h++)i.push(h);e.push(i),r=n,n=t.shift()}return e},t}();function y(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=t[0],n=t[1],i=c(n);if(!l(n))throw new Error("Pseudoknot(s) encountered.");var s=[],o=0;return r.forEach((function(t,e){var r=e+1,n=i[e];null==n?s.push(o):r<n?(s.push(o),o++):(r==n||o--,s.push(o))})),s}function w(t){var e=t.split(""),r=[".","(",")"];e.forEach((function(t){if(!r.includes(t))throw new Error('Unrecognized character in dot-bracket notation: "'.concat(t,'".'))}));var n=[],i=[];if(e.forEach((function(t,e){var r=e+1;if("("==t)i.push(r);else if(")"==t){var s=i.pop();if("number"!=typeof s)throw new Error("Unmatched downstream partner(s) in dot-bracket notation.");n.push([s,r])}})),i.length>0)throw new Error("Unmatched upstream partner(s) in dot-bracket notation.");return o(n)}})(),n})(),t.exports=e()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Centroid:()=>s,Direction:()=>f,MaxCenterX:()=>h,MaxCenterY:()=>c,MinCenterX:()=>a,MinCenterY:()=>u,NucleobaseMock:()=>t,arrange:()=>N,circularize:()=>v,flipSelfX:()=>g,flipSelfY:()=>y,flipX:()=>p,flipY:()=>m,linearize:()=>w,radialize:()=>L,rotate:()=>d,round:()=>S,shift:()=>e,stemmify:()=>x,straighten:()=>b});class t{constructor(t){this.props=t}getCenterPoint(){return this.props.centerPoint}setCenterPoint(t){this.props.centerPoint=t}}function e(t,e){t.forEach((t=>{let r=t.getCenterPoint();t.setCenterPoint({x:r.x+e.x,y:r.y+e.y})}))}var i=r(725);class s{constructor(t){this.targetBases=t}get(){let t=this.targetBases.map((t=>t.getCenterPoint()));return(0,i.centroid)(t)}set(t){let r=this.get(),n=(0,i.displacement)(r,t);e(this.targetBases,n)}}var o=r(986);class a{constructor(t){this.targetBases=t}get(){return(0,o.min)(this.targetBases.map((t=>t.getCenterPoint().x)))}set(t){let r=this.get();e(this.targetBases,{x:t-r,y:0})}}class h{constructor(t){this.targetBases=t}get(){return(0,o.max)(this.targetBases.map((t=>t.getCenterPoint().x)))}set(t){let r=this.get();e(this.targetBases,{x:t-r,y:0})}}class u{constructor(t){this.targetBases=t}get(){return(0,o.min)(this.targetBases.map((t=>t.getCenterPoint().y)))}set(t){let r=this.get();e(this.targetBases,{x:0,y:t-r})}}class c{constructor(t){this.targetBases=t}get(){return(0,o.max)(this.targetBases.map((t=>t.getCenterPoint().y)))}set(t){let r=this.get();e(this.targetBases,{x:0,y:t-r})}}var l=r(30);function d(t,e){if(t.length<2)return;let r=t[0],n=t[t.length-1],s=(0,i.midpoint)(r.getCenterPoint(),n.getCenterPoint());t.forEach((t=>{let r=t.getCenterPoint(),n=(0,i.distance)(s,r),o=(0,l.direction)((0,i.displacement)(s,r));o+=e,t.setCenterPoint({x:s.x+n*Math.cos(o),y:s.y+n*Math.sin(o)})}))}class f{constructor(t){this.targetBases=t}get(){if(this.targetBases.length<2)return 0;let t=this.targetBases[0],e=this.targetBases[this.targetBases.length-1];return(0,l.direction)((0,i.displacement)(t.getCenterPoint(),e.getCenterPoint()))}set(t){let e=t-this.get();d(this.targetBases,e)}}function p(t){let e=new s(t).get().y;t.forEach((t=>{let r=t.getCenterPoint(),n=r.y-e;t.setCenterPoint({x:r.x,y:e-n})}))}function m(t){let e=new s(t).get().x;t.forEach((t=>{let r=t.getCenterPoint(),n=r.x-e;t.setCenterPoint({x:e-n,y:r.y})}))}function g(t){if(0==t.length)return;let r=t[0],{x:n,y:s}=r.getCenterPoint(),o={x:n,y:s},a=new f(t).get();d(t,-a),p(t),d(t,a),e(t,(0,i.displacement)(r.getCenterPoint(),o))}function y(t){let e=new s(t),{x:r,y:n}=e.get(),i=r,o=n,a=new f(t).get();d(t,-a),m(t),d(t,a),e.set({x:i,y:o})}function w(t,e){let{spacing:r}=e;if(t.length<2)return;let n=new f(t),i=n.get(),o=new s(t),{x:a,y:h}=o.get(),u={x:a,y:h};t.forEach(((t,e)=>{t.setCenterPoint({x:e*r,y:0})})),n.set(i),o.set(u)}function b(t){if(t.length<3)return;let e=t[0],r=t[t.length-1],n=[e.getCenterPoint(),r.getCenterPoint()],s=(0,i.distance)(n[0],n[1]),o=(0,l.direction)((0,i.displacement)(n[0],n[1])),a=s/(t.length-1),h=a*Math.cos(o),u=a*Math.sin(o),{x:c,y:d}=n[0];t.forEach((t=>{t.setCenterPoint({x:c,y:d}),c+=h,d+=u}))}function x(t,r){let{basePairLength:n,basePairSpacing:o}=r;if(t.length<2)return;let a=Math.ceil(t.length/2),h=t.slice(0,a),u=t.slice(a),c=new s(t),{x:l,y:p}=c.get(),m={x:l,y:p},g=new f(t).get();w(h,{spacing:o}),w(u,{spacing:o}),new f(h).set(-Math.PI/2),new f(u).set(Math.PI/2);let y=t[0],b=t[t.length-1];e(h,(0,i.displacement)(y.getCenterPoint(),{x:0,y:0})),e(u,(0,i.displacement)(b.getCenterPoint(),{x:n,y:0})),d(t,g),c.set(m)}function v(t,e){let{spacing:r,terminiGap:n}=e;if(t.length<2)return;let i=new s(t),{x:o,y:a}=i.get(),h=o,u=a,c=new f(t).get(),l=r*(t.length-1);l+=n,Math.abs(l)<1e-5&&(l=1e-5);let p=l/(2*Math.PI),m=Math.PI/2+2*Math.PI*(.5*n/l);t.forEach(((t,e)=>{let n=m+2*Math.PI*(e*r)/l;t.setCenterPoint({x:p*Math.cos(n),y:p*Math.sin(n)})})),d(t,c),i.set({x:h,y:u})}var _=r(173);function S(t,r){let{spacing:n}=r;if(t.length<3)return;let s=t[0],o=t[t.length-1],a=[s.getCenterPoint(),o.getCenterPoint()],h=(0,i.distance)(a[0],a[1]),u=n*(t.length-1);if(u-h<.001)return void b(t);if(h<.001){let{x:r,y:o}=s.getCenterPoint();return v(t,{spacing:n,terminiGap:h}),void e(t,(0,i.displacement)(s.getCenterPoint(),{x:r,y:o}))}let c=new _.CircularSegment(a,{arcLength:u}),d=c.parentCircleCenterPoint,f=c.parentCircleRadius,p=(0,l.direction)((0,i.displacement)(d,s.getCenterPoint())),m=c.arcAngle/(t.length-1);t.forEach((t=>{t.setCenterPoint({x:d.x+f*Math.cos(p),y:d.y+f*Math.sin(p)}),p+=m}))}var M=r(127),O=r(369);function N(t,r,n){var a,h,u;let{spacing:c}=n,l=null!==(a=n.basePairSpacing)&&void 0!==a?a:c,d=null!==(h=n.hairpinLoopSpacing)&&void 0!==h?h:c,p=null!==(u=n.terminiGap)&&void 0!==u?u:c,{x:m,y:g}=new s(t).get(),y={x:m,y:g},w=new f(t).get();[,r]=(0,M.knotless)(t,r);let b=new M.PositionPairs(t,r).get(),_=(0,O.mountainPlotTraversal)(t,b),N=t.filter(((t,e)=>0==_[e]));v(N,{spacing:c,terminiGap:p});let P=new M.Stems(t,r).get(),C=new Set(N),A=P.filter((t=>C.has(t[0][0]))),E=r=>{let n=r[0],{x:a,y:h}=new s(n).get(),u={x:a,y:h},p=new f(r[0]).get(),m=[...r.map((t=>t[0])),...r.map((t=>t[1])).reverse()];x(m,{basePairLength:c,basePairSpacing:l}),new f(m).set(p),e(m,(0,i.displacement)(new s(n).get(),u));let g=r[r.length-1],y=g.map((e=>t.indexOf(e))),w=t.filter(((t,e)=>(0,o.isBetweenExclusive)(e,(0,o.min)(y),(0,o.max)(y))&&_[e]==_[(0,o.min)(y)]+1)),b=new Set(w),v=P.filter((t=>b.has(t[0][0])));S([g[0],...w,g[1]],{spacing:v.length>0?c:d}),v.forEach((t=>E(t)))};A.forEach((t=>E(t))),new f(t).set(w),new s(t).set(y)}class P{static from(t){return{to:e=>({inclusive:()=>{let r=e-t+1;return Array.from({length:r},((e,r)=>t+r))}})}}}class C{static of(...t){let[e,r]=t,n=new M.PositionPairs(...t).get();n=(0,O.sorted)(n);let i=n.map((t=>t.map((t=>t-1)))),s=[],a=0;return e.forEach(((t,e)=>{let r=i.find((t=>t.includes(e)));r&&e==(0,o.min)(r)?(s.push(a),a+=1):r&&e==(0,o.max)(r)?(a-=1,s.push(a)):s.push(a)})),s}}class A{constructor(...t){let[e,r]=t;this.rawForm=t,this.mountainPlotTraversal=C.of(...t),this.positionPairs=new M.PositionPairs(...t).get(),this.indexPairs=this.positionPairs.map((t=>[t[0]-1,t[1]-1])),this.pairedBases=new Set(r.flat()),this.pairedIndices=new Set(e.map(((t,e)=>({b:t,i:e}))).filter((t=>this.pairedBases.has(t.b))).map((t=>t.i)))}[Symbol.iterator](){return this.rawForm.values()}get sequence(){return this.rawForm[0]}get basePairs(){return this.rawForm[1]}}class E{static correspondingTo(t){return{in:e=>t.map((t=>e.sequence.indexOf(t)))}}}class T{static composedOf(t){if(0==t.length)throw new Error("All stems must have at least one base-pair.");let r=t[0],n=t[t.length-1],s=t.map((t=>t[0])),o=t.map((t=>t[1])).reverse(),a=r[0],h=r[1],u=[...s,...o];return{[Symbol.iterator]:()=>t.values(),bottomBasePair:r,topBasePair:n,side5:s,side3:o,flat:()=>u,firstBase:a,lastBase:h,stemmify:()=>({with:t=>{let{basePairLength:r,basePairSpacing:n}=t,s=Object.assign({},a.getCenterPoint());x(u,{basePairLength:r,basePairSpacing:n}),e(u,(0,i.displacement)(a.getCenterPoint(),s))}})}}}class j{static in(t){return{[Symbol.iterator]:()=>new M.Stems(t.sequence,t.basePairs).get().map((t=>T.composedOf(t))).values()}}}class D{static composedOf(t){if(t.length<2)throw new Error("Linkers must have at least two bases.");let r=t[0],n=t[t.length-1],s=t.slice(1,-1);return{in:o=>{let a=o.sequence.indexOf(r),h=o.sequence.indexOf(n),u=P.from(a).to(h).inclusive(),c=!!o.indexPairs.find((t=>t.includes(a)&&t.includes(h))),l=u.every((t=>0==o.mountainPlotTraversal[t])),d=1==new Set(u.map((t=>o.mountainPlotTraversal[t]))).size&&!c;return{[Symbol.iterator]:()=>t.values(),indices:u,firstBase:r,lastBase:n,firstIndex:a,lastIndex:h,unpairedBases:{[Symbol.iterator]:()=>s.values(),stemmify:()=>({with:t=>{let{spacing:r}=t;if(s.length<3)return;let n=s[0],o=s[s.length-1],a=Object.assign({},n.getCenterPoint());x(s,{basePairLength:(0,i.distance)(n.getCenterPoint(),o.getCenterPoint()),basePairSpacing:r}),e(s,(0,i.displacement)(n.getCenterPoint(),a))}})},get middleThreeUnpairedBases(){if(s.length<3)throw new Error("This linker has less than three unpaired bases.");if(s.length%2==0)throw new Error("This linker has an even number of unpaired bases.");let t=Math.floor(s.length/2);return[s[t-1],s[t],s[t+1]]},isHairpinLoop:()=>c,isInOutermostLoop:()=>l,isBetweenSiblingStems:()=>d,round:()=>({with:e=>{let{spacing:r}=e;S(t,{spacing:r})}})}}}}}class k{static in(t){let e=new M.Linkers(t.sequence,t.basePairs).get().map((e=>D.composedOf(e).in(t)));return{[Symbol.iterator]:()=>e.values(),thatAreHairpinLoops:{[Symbol.iterator]:()=>e.filter((t=>t.isHairpinLoop())).values()},inOutermostLoop:{[Symbol.iterator]:()=>e.filter((t=>t.isInOutermostLoop())).values()},notInOutermostLoop:{[Symbol.iterator]:()=>e.filter((t=>!t.isInOutermostLoop())).values(),betweenSiblingStems:{[Symbol.iterator]:()=>e.filter((t=>!t.isInOutermostLoop())).filter((t=>t.isBetweenSiblingStems())).values()}},notBetweenSiblingStems:{[Symbol.iterator]:()=>e.filter((t=>!t.isBetweenSiblingStems())).values()}}}}class B{static closedBy(r){return{in:n=>{let s=r.topBasePair,a=E.correspondingTo(s).in(n),h=(0,o.min)(a),u=n.sequence.filter(((t,e)=>e>(0,o.min)(a)&&e<(0,o.max)(a)&&n.mountainPlotTraversal[e]==n.mountainPlotTraversal[h]+1)),c=u.map((t=>n.sequence.indexOf(t))),l=u.filter((t=>n.pairedBases.has(t))),d=c.filter((t=>n.pairedIndices.has(t))),f=[s[0],...u,s[1]];return{[Symbol.iterator]:()=>f.values(),parentStructure:n,closingStem:r,closingBasePair:s,closingIndexPair:a,enclosedBases:u,enclosedIndices:c,enclosedPairedBases:l,enclosedPairedIndices:d,get platform(){if(0==d.length)throw new Error("This loop does not have a platform.");let r=(0,o.min)(d),h=(0,o.max)(d),u=n.sequence.filter(((t,e)=>e>=r&&e<=h&&c.includes(e)&&[e-1,e,e+1].some((t=>d.includes(t)))));return{[Symbol.iterator]:()=>u.values(),firstIndex:r,lastIndex:h,arch:()=>({with:n=>{let{spacing:c}=n,l=(0,o.max)([u.length-2,r-(0,o.min)(a)-1,(0,o.max)(a)-h-1,0]),d=P.from(1).to(l).inclusive().map((()=>new t({centerPoint:{x:0,y:0}}))),f=d.map((()=>new t({centerPoint:{x:0,y:0}}))),p=Object.assign({},s[0].getCenterPoint());v([s[0],...d,...u,...f,s[1]],{spacing:c,terminiGap:c}),e([...s,...u],(0,i.displacement)(s[0].getCenterPoint(),p))}})}}}}}}}class I{static of(t){let e=t.sequence.filter(((e,r)=>0==t.mountainPlotTraversal[r]));return{[Symbol.iterator]:()=>e.values()}}}function L(t,e,r){var n;let{spacing:i,basePairSpacing:o}=r,a=null!==(n=r.hairpinLoopSpacing)&&void 0!==n?n:i,h=new A(t,e);if(t.length<2)return;if(0==e.length)return void v(t,{spacing:i,terminiGap:2*i});let u=Object.assign({},new s(t).get()),c=new f(t).get(),l=j.in(h),d=k.in(h);v([...I.of(h)],{spacing:i,terminiGap:2*i});let p=[...l].map((t=>B.closedBy(t).in(h)));p.filter((t=>t.enclosedPairedBases.length>0)).forEach((t=>{t.closingStem.stemmify().with({basePairLength:i,basePairSpacing:o}),t.platform.arch().with({spacing:i}),t.closingStem.stemmify().with({basePairLength:i,basePairSpacing:o})})),p.filter((t=>0==t.enclosedPairedBases.length)).forEach((t=>t.closingStem.stemmify().with({basePairLength:i,basePairSpacing:o}))),[...d.notBetweenSiblingStems].forEach((t=>t.round().with({spacing:i}))),[...d.thatAreHairpinLoops].forEach((t=>t.round().with({spacing:a}))),[...d.notInOutermostLoop.betweenSiblingStems].filter((t=>[...t.unpairedBases].length>=3)).forEach((t=>{t.unpairedBases.stemmify().with({spacing:i}),[...t.unpairedBases].length%2!=0&&S(t.middleThreeUnpairedBases,{spacing:i})})),new f(t).set(c),new s(t).set(u)}})(),n})(),t.exports=e()},282:function(t){var e;e=()=>(()=>{var t={726:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{CoordinateSystem:()=>c,HorizontalClientScaling:()=>d,InnerXML:()=>w,OuterXML:()=>v,Scaling:()=>l,VerticalClientScaling:()=>f,assignUUID:()=>u,bringToFront:()=>p,sendToBack:()=>m});const r={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};var n,i=new Uint8Array(16);function s(){if(!n&&!(n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return n(i)}for(var o=[],a=0;a<256;++a)o.push((a+256).toString(16).slice(1));const h=function(t,e,n){if(r.randomUUID&&!e&&!t)return r.randomUUID();var i=(t=t||{}).random||(t.rng||s)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,e){n=n||0;for(var a=0;a<16;++a)e[n+a]=i[a];return e}return function(t,e=0){return(o[t[e+0]]+o[t[e+1]]+o[t[e+2]]+o[t[e+3]]+"-"+o[t[e+4]]+o[t[e+5]]+"-"+o[t[e+6]]+o[t[e+7]]+"-"+o[t[e+8]]+o[t[e+9]]+"-"+o[t[e+10]]+o[t[e+11]]+o[t[e+12]]+o[t[e+13]]+o[t[e+14]]+o[t[e+15]]).toLowerCase()}(i)};function u(t){t.id="uuid-"+h()}class c{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class l{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class d{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class f{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function p(t){let e=t.parentNode;e&&e.appendChild(t)}function m(t){let e=t.parentNode;e&&e.prepend(t)}var g,y=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class w{constructor(t){g.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,g,t)}toString(){return y(this,g,"f").innerHTML}set(t){y(this,g,"f").innerHTML=t}}g=new WeakMap;var b,x=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class v{constructor(t){b.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,b,t)}toString(){return x(this,b,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=x(this,b,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...x(this,b,"f").attributes].forEach((t=>x(this,b,"f").removeAttribute(t.name))),[...e.firstElementChild.attributes].forEach((t=>x(this,b,"f").setAttribute(t.name,t.value))),x(this,b,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}return b=new WeakMap,e})(),t.exports=e()},725:function(t){t.exports=(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>d,average:()=>n,degrees:()=>m,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>g,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>f,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return Math.abs(t-e)<=r}function f(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function m(t){return t*(180/Math.PI)}function g(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function h(t){return null==t}function u(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isNonFiniteNumber:()=>i,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>u,isNullish:()=>h,isNumber:()=>r,isPositiveFiniteNumber:()=>s,isString:()=>a}),e})()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{areWithin:()=>a,centroid:()=>f,deepCopy:()=>s,direction:()=>l,displaced:()=>u,displacement:()=>h,distance:()=>o,isFinitePoint:()=>i,isPoint:()=>e,midpoint:()=>p});var t=r(854);function e(e){return(0,t.isNonNullObject)(e)&&(0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)}function i(r){return e(r)&&(0,t.isFiniteNumber)(r.x)&&(0,t.isFiniteNumber)(r.y)}function s(t){return{x:t.x,y:t.y}}function o(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function a(t,e,r){return o(t,e)<=r}function h(t,e){return{x:e.x-t.x,y:e.y-t.y}}function u(t,e){return{x:t.x+e.x,y:t.y+e.y}}var c=r(30);function l(t,e){return(0,c.direction)(h(t,e))}var d=r(986);function f(t){return{x:(0,d.mean)(t.map((function(t){return t.x}))),y:(0,d.mean)(t.map((function(t){return t.y})))}}function p(t,e){return f([t,e])}})(),n})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function h(t){return null==t}function u(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}function l(t){return c(t)&&0==t.length}function d(t){return c(t)&&t.length>0}function f(t){return c(t)&&t.every(r)}function p(t){return f(t)&&t.length>0}function m(t){return c(t)&&t.every(n)}function g(t){return c(t)&&t.every(i)}function y(t){return c(t)&&t.every(a)}function w(t){return y(t)&&t.length>0}return t.r(e),t.d(e,{isArray:()=>c,isEmptyArray:()=>l,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>m,isNonEmptyArray:()=>d,isNonEmptyNumbersArray:()=>p,isNonEmptyStringsArray:()=>w,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>g,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>u,isNullish:()=>h,isNumber:()=>r,isNumbersArray:()=>f,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>y}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{InvertedStraightBondsHider:()=>en,SavableStraightBond:()=>Lr,SavedStraightBond:()=>tn,StraightBond:()=>kr});var t={};r.r(t),r.d(t,{cx:()=>It,cy:()=>Lt,height:()=>zt,rx:()=>jt,ry:()=>Dt,width:()=>Vt,x:()=>kt,y:()=>Bt});var e={};r.r(e),r.d(e,{from:()=>Xt,to:()=>Yt});var i={};r.r(i),r.d(i,{MorphArray:()=>Qt,height:()=>te,width:()=>Kt,x:()=>Jt,y:()=>Zt});var s={};r.r(s),r.d(s,{array:()=>Ce,clear:()=>Ae,move:()=>Ee,plot:()=>Te,size:()=>je});var o={};r.r(o),r.d(o,{amove:()=>or,ax:()=>ir,ay:()=>sr,build:()=>ar,center:()=>nr,cx:()=>er,cy:()=>rr,length:()=>Je,move:()=>tr,plain:()=>Qe,x:()=>Ze,y:()=>Ke});var a={};r.r(a),r.d(a,{dmove:()=>fr,dx:()=>pr,dy:()=>mr,height:()=>gr,move:()=>yr,size:()=>wr,width:()=>br,x:()=>xr,y:()=>vr});const h={},u=[];function c(t,e){if(Array.isArray(t))for(const r of t)c(r,e);else if("object"!=typeof t)d(Object.getOwnPropertyNames(e)),h[t]=Object.assign(h[t]||{},e);else for(const e in t)c(e,t[e])}function l(t){return h[t]||{}}function d(t){u.push(...t)}function f(t,e){let r;const n=t.length,i=[];for(r=0;r<n;r++)i.push(e(t[r]));return i}function p(t){return t%360*Math.PI/180}function m(t){return t.charAt(0).toUpperCase()+t.slice(1)}function g(t,e,r,n){return null!=e&&null!=r||(n=n||t.bbox(),null==e?e=n.width/n.height*r:null==r&&(r=n.height/n.width*e)),{width:e,height:r}}function y(t,e){const r=t.origin;let n=null!=t.ox?t.ox:null!=t.originX?t.originX:"center",i=null!=t.oy?t.oy:null!=t.originY?t.originY:"center";null!=r&&([n,i]=Array.isArray(r)?r:"object"==typeof r?[r.x,r.y]:[r,r]);const s="string"==typeof n,o="string"==typeof i;if(s||o){const{height:t,width:r,x:a,y:h}=e.bbox();s&&(n=n.includes("left")?a:n.includes("right")?a+r:a+r/2),o&&(i=i.includes("top")?h:i.includes("bottom")?h+t:h+t/2)}return[n,i]}const w=new Set(["desc","metadata","title"]),b=t=>w.has(t.nodeName),x=(t,e,r={})=>{const n={...e};for(const t in n)n[t].valueOf()===r[t]&&delete n[t];Object.keys(n).length?t.node.setAttribute("data-svgjs",JSON.stringify(n)):(t.node.removeAttribute("data-svgjs"),t.node.removeAttribute("svgjs:data"))},v="http://www.w3.org/2000/svg",_="http://www.w3.org/2000/xmlns/",S="http://www.w3.org/1999/xlink",M={window:"undefined"==typeof window?null:window,document:"undefined"==typeof document?null:document};class O{}const N={},P="___SYMBOL___ROOT___";function C(t,e=v){return M.document.createElementNS(e,t)}function A(t,e=!1){if(t instanceof O)return t;if("object"==typeof t)return j(t);if(null==t)return new N[P];if("string"==typeof t&&"<"!==t.charAt(0))return j(M.document.querySelector(t));const r=e?M.document.createElement("div"):C("svg");return r.innerHTML=t,t=j(r.firstChild),r.removeChild(r.firstChild),t}function E(t,e){return e&&(e instanceof M.window.Node||e.ownerDocument&&e instanceof e.ownerDocument.defaultView.Node)?e:C(t)}function T(t){if(!t)return null;if(t.instance instanceof O)return t.instance;if("#document-fragment"===t.nodeName)return new N.Fragment(t);let e=m(t.nodeName||"Dom");return"LinearGradient"===e||"RadialGradient"===e?e="Gradient":N[e]||(e="Dom"),new N[e](t)}let j=T;function D(t,e=t.name,r=!1){return N[e]=t,r&&(N[P]=t),d(Object.getOwnPropertyNames(t.prototype)),t}let k=1e3;function B(t){return"Svgjs"+m(t)+k++}function I(t){for(let e=t.children.length-1;e>=0;e--)I(t.children[e]);return t.id?(t.id=B(t.nodeName),t):t}function L(t,e){let r,n;for(n=(t=Array.isArray(t)?t:[t]).length-1;n>=0;n--)for(r in e)t[n].prototype[r]=e[r]}function V(t){return function(...e){const r=e[e.length-1];return!r||r.constructor!==Object||r instanceof Array?t.apply(this,e):t.apply(this,e.slice(0,-1)).attr(r)}}c("Dom",{siblings:function(){return this.parent().children()},position:function(){return this.parent().index(this)},next:function(){return this.siblings()[this.position()+1]},prev:function(){return this.siblings()[this.position()-1]},forward:function(){const t=this.position();return this.parent().add(this.remove(),t+1),this},backward:function(){const t=this.position();return this.parent().add(this.remove(),t?t-1:0),this},front:function(){return this.parent().add(this.remove()),this},back:function(){return this.parent().add(this.remove(),0),this},before:function(t){(t=A(t)).remove();const e=this.position();return this.parent().add(t,e),this},after:function(t){(t=A(t)).remove();const e=this.position();return this.parent().add(t,e+1),this},insertBefore:function(t){return(t=A(t)).before(this),this},insertAfter:function(t){return(t=A(t)).after(this),this}});const z=/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,F=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,R=/rgb\((\d+),(\d+),(\d+)\)/,q=/(#[a-z_][a-z0-9\-_]*)/i,X=/\)\s*,?\s*/,Y=/\s/g,G=/^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i,H=/^rgb\(/,U=/^(\s+)?$/,$=/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,W=/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,Q=/[\s,]+/,J=/[MLHVCSQTAZ]/i;function Z(t){const e=Math.round(t),r=Math.max(0,Math.min(255,e)).toString(16);return 1===r.length?"0"+r:r}function K(t,e){for(let r=e.length;r--;)if(null==t[e[r]])return!1;return!0}function tt(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}c("Dom",{classes:function(){const t=this.attr("class");return null==t?[]:t.trim().split(Q)},hasClass:function(t){return-1!==this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){const e=this.classes();e.push(t),this.attr("class",e.join(" "))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr("class",this.classes().filter((function(e){return e!==t})).join(" ")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)}}),c("Dom",{css:function(t,e){const r={};if(0===arguments.length)return this.node.style.cssText.split(/\s*;\s*/).filter((function(t){return!!t.length})).forEach((function(t){const e=t.split(/\s*:\s*/);r[e[0]]=e[1]})),r;if(arguments.length<2){if(Array.isArray(t)){for(const e of t){const t=e;r[e]=this.node.style.getPropertyValue(t)}return r}if("string"==typeof t)return this.node.style.getPropertyValue(t);if("object"==typeof t)for(const e in t)this.node.style.setProperty(e,null==t[e]||U.test(t[e])?"":t[e])}return 2===arguments.length&&this.node.style.setProperty(t,null==e||U.test(e)?"":e),this},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},visible:function(){return"none"!==this.css("display")}}),c("Dom",{data:function(t,e,r){if(null==t)return this.data(f(function(t){let e;const r=t.length,n=[];for(e=0;e<r;e++)0===t[e].nodeName.indexOf("data-")&&n.push(t[e]);return n}(this.node.attributes),(t=>t.nodeName.slice(5))));if(t instanceof Array){const e={};for(const r of t)e[r]=this.data(r);return e}if("object"==typeof t)for(e in t)this.data(e,t[e]);else if(arguments.length<2)try{return JSON.parse(this.attr("data-"+t))}catch(e){return this.attr("data-"+t)}else this.attr("data-"+t,null===e?null:!0===r||"string"==typeof e||"number"==typeof e?e:JSON.stringify(e));return this}}),c("Dom",{remember:function(t,e){if("object"==typeof arguments[0])for(const e in t)this.remember(e,t[e]);else{if(1===arguments.length)return this.memory()[t];this.memory()[t]=e}return this},forget:function(){if(0===arguments.length)this._memory={};else for(let t=arguments.length-1;t>=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory=this._memory||{}}});class et{constructor(...t){this.init(...t)}static isColor(t){return t&&(t instanceof et||this.isRgb(t)||this.test(t))}static isRgb(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b}static random(t="vibrant",e){const{random:r,round:n,sin:i,PI:s}=Math;if("vibrant"===t){const t=24*r()+57,e=38*r()+45,n=360*r();return new et(t,e,n,"lch")}if("sine"===t){const t=n(80*i(2*s*(e=null==e?r():e)/.5+.01)+150),o=n(50*i(2*s*e/.5+4.6)+200),a=n(100*i(2*s*e/.5+2.3)+150);return new et(t,o,a)}if("pastel"===t){const t=8*r()+86,e=17*r()+9,n=360*r();return new et(t,e,n,"lch")}if("dark"===t){const t=10+10*r(),e=50*r()+86,n=360*r();return new et(t,e,n,"lch")}if("rgb"===t){const t=255*r(),e=255*r(),n=255*r();return new et(t,e,n)}if("lab"===t){const t=100*r(),e=256*r()-128,n=256*r()-128;return new et(t,e,n,"lab")}if("grey"===t){const t=255*r();return new et(t,t,t)}throw new Error("Unsupported random color mode")}static test(t){return"string"==typeof t&&(G.test(t)||H.test(t))}cmyk(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=Math.min(1-n,1-i,1-s);return 1===o?new et(0,0,0,1,"cmyk"):new et((1-n-o)/(1-o),(1-i-o)/(1-o),(1-s-o)/(1-o),o,"cmyk")}hsl(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=Math.max(n,i,s),a=Math.min(n,i,s),h=(o+a)/2,u=o===a,c=o-a;return new et(360*(u?0:o===n?((i-s)/c+(i<s?6:0))/6:o===i?((s-n)/c+2)/6:o===s?((n-i)/c+4)/6:0),100*(u?0:h>.5?c/(2-o-a):c/(o+a)),100*h,"hsl")}init(t=0,e=0,r=0,n=0,i="rgb"){if(t=t||0,this.space)for(const t in this.space)delete this[this.space[t]];if("number"==typeof t)i="string"==typeof n?n:i,n="string"==typeof n?0:n,Object.assign(this,{_a:t,_b:e,_c:r,_d:n,space:i});else if(t instanceof Array)this.space=e||("string"==typeof t[3]?t[3]:t[4])||"rgb",Object.assign(this,{_a:t[0],_b:t[1],_c:t[2],_d:t[3]||0});else if(t instanceof Object){const r=function(t,e){const r=K(t,"rgb")?{_a:t.r,_b:t.g,_c:t.b,_d:0,space:"rgb"}:K(t,"xyz")?{_a:t.x,_b:t.y,_c:t.z,_d:0,space:"xyz"}:K(t,"hsl")?{_a:t.h,_b:t.s,_c:t.l,_d:0,space:"hsl"}:K(t,"lab")?{_a:t.l,_b:t.a,_c:t.b,_d:0,space:"lab"}:K(t,"lch")?{_a:t.l,_b:t.c,_c:t.h,_d:0,space:"lch"}:K(t,"cmyk")?{_a:t.c,_b:t.m,_c:t.y,_d:t.k,space:"cmyk"}:{_a:0,_b:0,_c:0,space:"rgb"};return r.space=e||r.space,r}(t,e);Object.assign(this,r)}else if("string"==typeof t)if(H.test(t)){const e=t.replace(Y,""),[r,n,i]=R.exec(e).slice(1,4).map((t=>parseInt(t)));Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}else{if(!G.test(t))throw Error("Unsupported string format, can't construct Color");{const e=t=>parseInt(t,16),[,r,n,i]=F.exec(function(t){return 4===t.length?["#",t.substring(1,2),t.substring(1,2),t.substring(2,3),t.substring(2,3),t.substring(3,4),t.substring(3,4)].join(""):t}(t)).map(e);Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}}const{_a:s,_b:o,_c:a,_d:h}=this,u="rgb"===this.space?{r:s,g:o,b:a}:"xyz"===this.space?{x:s,y:o,z:a}:"hsl"===this.space?{h:s,s:o,l:a}:"lab"===this.space?{l:s,a:o,b:a}:"lch"===this.space?{l:s,c:o,h:a}:"cmyk"===this.space?{c:s,m:o,y:a,k:h}:{};Object.assign(this,u)}lab(){const{x:t,y:e,z:r}=this.xyz();return new et(116*e-16,500*(t-e),200*(e-r),"lab")}lch(){const{l:t,a:e,b:r}=this.lab(),n=Math.sqrt(e**2+r**2);let i=180*Math.atan2(r,e)/Math.PI;return i<0&&(i*=-1,i=360-i),new et(t,n,i,"lch")}rgb(){if("rgb"===this.space)return this;if("lab"===(t=this.space)||"xyz"===t||"lch"===t){let{x:t,y:e,z:r}=this;if("lab"===this.space||"lch"===this.space){let{l:n,a:i,b:s}=this;if("lch"===this.space){const{c:t,h:e}=this,r=Math.PI/180;i=t*Math.cos(r*e),s=t*Math.sin(r*e)}const o=(n+16)/116,a=i/500+o,h=o-s/200,u=16/116,c=.008856,l=7.787;t=.95047*(a**3>c?a**3:(a-u)/l),e=1*(o**3>c?o**3:(o-u)/l),r=1.08883*(h**3>c?h**3:(h-u)/l)}const n=3.2406*t+-1.5372*e+-.4986*r,i=-.9689*t+1.8758*e+.0415*r,s=.0557*t+-.204*e+1.057*r,o=Math.pow,a=.0031308,h=n>a?1.055*o(n,1/2.4)-.055:12.92*n,u=i>a?1.055*o(i,1/2.4)-.055:12.92*i,c=s>a?1.055*o(s,1/2.4)-.055:12.92*s;return new et(255*h,255*u,255*c)}if("hsl"===this.space){let{h:t,s:e,l:r}=this;if(t/=360,e/=100,r/=100,0===e)return r*=255,new et(r,r,r);const n=r<.5?r*(1+e):r+e-r*e,i=2*r-n,s=255*tt(i,n,t+1/3),o=255*tt(i,n,t),a=255*tt(i,n,t-1/3);return new et(s,o,a)}if("cmyk"===this.space){const{c:t,m:e,y:r,k:n}=this,i=255*(1-Math.min(1,t*(1-n)+n)),s=255*(1-Math.min(1,e*(1-n)+n)),o=255*(1-Math.min(1,r*(1-n)+n));return new et(i,s,o)}return this;var t}toArray(){const{_a:t,_b:e,_c:r,_d:n,space:i}=this;return[t,e,r,n,i]}toHex(){const[t,e,r]=this._clamped().map(Z);return`#${t}${e}${r}`}toRgb(){const[t,e,r]=this._clamped();return`rgb(${t},${e},${r})`}toString(){return this.toHex()}xyz(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92,a=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92,h=s>.04045?Math.pow((s+.055)/1.055,2.4):s/12.92,u=(.4124*o+.3576*a+.1805*h)/.95047,c=(.2126*o+.7152*a+.0722*h)/1,l=(.0193*o+.1192*a+.9505*h)/1.08883,d=u>.008856?Math.pow(u,1/3):7.787*u+16/116,f=c>.008856?Math.pow(c,1/3):7.787*c+16/116,p=l>.008856?Math.pow(l,1/3):7.787*l+16/116;return new et(d,f,p,"xyz")}_clamped(){const{_a:t,_b:e,_c:r}=this.rgb(),{max:n,min:i,round:s}=Math;return[t,e,r].map((t=>n(0,i(s(t),255))))}}class rt{constructor(...t){this.init(...t)}clone(){return new rt(this)}init(t,e){const r=Array.isArray(t)?{x:t[0],y:t[1]}:"object"==typeof t?{x:t.x,y:t.y}:{x:t,y:e};return this.x=null==r.x?0:r.x,this.y=null==r.y?0:r.y,this}toArray(){return[this.x,this.y]}transform(t){return this.clone().transformO(t)}transformO(t){it.isMatrixLike(t)||(t=new it(t));const{x:e,y:r}=this;return this.x=t.a*e+t.c*r+t.e,this.y=t.b*e+t.d*r+t.f,this}}function nt(t,e,r){return Math.abs(e-t)<(r||1e-6)}class it{constructor(...t){this.init(...t)}static formatTransforms(t){const e="both"===t.flip||!0===t.flip,r=t.flip&&(e||"x"===t.flip)?-1:1,n=t.flip&&(e||"y"===t.flip)?-1:1,i=t.skew&&t.skew.length?t.skew[0]:isFinite(t.skew)?t.skew:isFinite(t.skewX)?t.skewX:0,s=t.skew&&t.skew.length?t.skew[1]:isFinite(t.skew)?t.skew:isFinite(t.skewY)?t.skewY:0,o=t.scale&&t.scale.length?t.scale[0]*r:isFinite(t.scale)?t.scale*r:isFinite(t.scaleX)?t.scaleX*r:r,a=t.scale&&t.scale.length?t.scale[1]*n:isFinite(t.scale)?t.scale*n:isFinite(t.scaleY)?t.scaleY*n:n,h=t.shear||0,u=t.rotate||t.theta||0,c=new rt(t.origin||t.around||t.ox||t.originX,t.oy||t.originY),l=c.x,d=c.y,f=new rt(t.position||t.px||t.positionX||NaN,t.py||t.positionY||NaN),p=f.x,m=f.y,g=new rt(t.translate||t.tx||t.translateX,t.ty||t.translateY),y=g.x,w=g.y,b=new rt(t.relative||t.rx||t.relativeX,t.ry||t.relativeY);return{scaleX:o,scaleY:a,skewX:i,skewY:s,shear:h,theta:u,rx:b.x,ry:b.y,tx:y,ty:w,ox:l,oy:d,px:p,py:m}}static fromArray(t){return{a:t[0],b:t[1],c:t[2],d:t[3],e:t[4],f:t[5]}}static isMatrixLike(t){return null!=t.a||null!=t.b||null!=t.c||null!=t.d||null!=t.e||null!=t.f}static matrixMultiply(t,e,r){const n=t.a*e.a+t.c*e.b,i=t.b*e.a+t.d*e.b,s=t.a*e.c+t.c*e.d,o=t.b*e.c+t.d*e.d,a=t.e+t.a*e.e+t.c*e.f,h=t.f+t.b*e.e+t.d*e.f;return r.a=n,r.b=i,r.c=s,r.d=o,r.e=a,r.f=h,r}around(t,e,r){return this.clone().aroundO(t,e,r)}aroundO(t,e,r){const n=t||0,i=e||0;return this.translateO(-n,-i).lmultiplyO(r).translateO(n,i)}clone(){return new it(this)}decompose(t=0,e=0){const r=this.a,n=this.b,i=this.c,s=this.d,o=this.e,a=this.f,h=r*s-n*i,u=h>0?1:-1,c=u*Math.sqrt(r*r+n*n),l=Math.atan2(u*n,u*r),d=180/Math.PI*l,f=Math.cos(l),p=Math.sin(l),m=(r*i+n*s)/h,g=i*c/(m*r-n)||s*c/(m*n+r);return{scaleX:c,scaleY:g,shear:m,rotate:d,translateX:o-t+t*f*c+e*(m*f*c-p*g),translateY:a-e+t*p*c+e*(m*p*c+f*g),originX:t,originY:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}equals(t){if(t===this)return!0;const e=new it(t);return nt(this.a,e.a)&&nt(this.b,e.b)&&nt(this.c,e.c)&&nt(this.d,e.d)&&nt(this.e,e.e)&&nt(this.f,e.f)}flip(t,e){return this.clone().flipO(t,e)}flipO(t,e){return"x"===t?this.scaleO(-1,1,e,0):"y"===t?this.scaleO(1,-1,0,e):this.scaleO(-1,-1,t,e||t)}init(t){const e=it.fromArray([1,0,0,1,0,0]);return t=t instanceof Pt?t.matrixify():"string"==typeof t?it.fromArray(t.split(Q).map(parseFloat)):Array.isArray(t)?it.fromArray(t):"object"==typeof t&&it.isMatrixLike(t)?t:"object"==typeof t?(new it).transform(t):6===arguments.length?it.fromArray([].slice.call(arguments)):e,this.a=null!=t.a?t.a:e.a,this.b=null!=t.b?t.b:e.b,this.c=null!=t.c?t.c:e.c,this.d=null!=t.d?t.d:e.d,this.e=null!=t.e?t.e:e.e,this.f=null!=t.f?t.f:e.f,this}inverse(){return this.clone().inverseO()}inverseO(){const t=this.a,e=this.b,r=this.c,n=this.d,i=this.e,s=this.f,o=t*n-e*r;if(!o)throw new Error("Cannot invert "+this);const a=n/o,h=-e/o,u=-r/o,c=t/o,l=-(a*i+u*s),d=-(h*i+c*s);return this.a=a,this.b=h,this.c=u,this.d=c,this.e=l,this.f=d,this}lmultiply(t){return this.clone().lmultiplyO(t)}lmultiplyO(t){const e=t instanceof it?t:new it(t);return it.matrixMultiply(e,this,this)}multiply(t){return this.clone().multiplyO(t)}multiplyO(t){const e=t instanceof it?t:new it(t);return it.matrixMultiply(this,e,this)}rotate(t,e,r){return this.clone().rotateO(t,e,r)}rotateO(t,e=0,r=0){t=p(t);const n=Math.cos(t),i=Math.sin(t),{a:s,b:o,c:a,d:h,e:u,f:c}=this;return this.a=s*n-o*i,this.b=o*n+s*i,this.c=a*n-h*i,this.d=h*n+a*i,this.e=u*n-c*i+r*i-e*n+e,this.f=c*n+u*i-e*i-r*n+r,this}scale(){return this.clone().scaleO(...arguments)}scaleO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t);const{a:i,b:s,c:o,d:a,e:h,f:u}=this;return this.a=i*t,this.b=s*e,this.c=o*t,this.d=a*e,this.e=h*t-r*t+r,this.f=u*e-n*e+n,this}shear(t,e,r){return this.clone().shearO(t,e,r)}shearO(t,e=0,r=0){const{a:n,b:i,c:s,d:o,e:a,f:h}=this;return this.a=n+i*t,this.c=s+o*t,this.e=a+h*t-r*t,this}skew(){return this.clone().skewO(...arguments)}skewO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t),t=p(t),e=p(e);const i=Math.tan(t),s=Math.tan(e),{a:o,b:a,c:h,d:u,e:c,f:l}=this;return this.a=o+a*i,this.b=a+o*s,this.c=h+u*i,this.d=u+h*s,this.e=c+l*i-n*i,this.f=l+c*s-r*s,this}skewX(t,e,r){return this.skew(t,0,e,r)}skewY(t,e,r){return this.skew(0,t,e,r)}toArray(){return[this.a,this.b,this.c,this.d,this.e,this.f]}toString(){return"matrix("+this.a+","+this.b+","+this.c+","+this.d+","+this.e+","+this.f+")"}transform(t){if(it.isMatrixLike(t))return new it(t).multiplyO(this);const e=it.formatTransforms(t),{x:r,y:n}=new rt(e.ox,e.oy).transform(this),i=(new it).translateO(e.rx,e.ry).lmultiplyO(this).translateO(-r,-n).scaleO(e.scaleX,e.scaleY).skewO(e.skewX,e.skewY).shearO(e.shear).rotateO(e.theta).translateO(r,n);if(isFinite(e.px)||isFinite(e.py)){const t=new rt(r,n).transform(i),s=isFinite(e.px)?e.px-t.x:0,o=isFinite(e.py)?e.py-t.y:0;i.translateO(s,o)}return i.translateO(e.tx,e.ty),i}translate(t,e){return this.clone().translateO(t,e)}translateO(t,e){return this.e+=t||0,this.f+=e||0,this}valueOf(){return{a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}}function st(){if(!st.nodes){const t=A().size(2,0);t.node.style.cssText=["opacity: 0","position: absolute","left: -100%","top: -100%","overflow: hidden"].join(";"),t.attr("focusable","false"),t.attr("aria-hidden","true");const e=t.path().node;st.nodes={svg:t,path:e}}if(!st.nodes.svg.node.parentNode){const t=M.document.body||M.document.documentElement;st.nodes.svg.addTo(t)}return st.nodes}function ot(t){return!(t.width||t.height||t.x||t.y)}D(it,"Matrix");class at{constructor(...t){this.init(...t)}addOffset(){return this.x+=M.window.pageXOffset,this.y+=M.window.pageYOffset,new at(this)}init(t){return t="string"==typeof t?t.split(Q).map(parseFloat):Array.isArray(t)?t:"object"==typeof t?[null!=t.left?t.left:t.x,null!=t.top?t.top:t.y,t.width,t.height]:4===arguments.length?[].slice.call(arguments):[0,0,0,0],this.x=t[0]||0,this.y=t[1]||0,this.width=this.w=t[2]||0,this.height=this.h=t[3]||0,this.x2=this.x+this.w,this.y2=this.y+this.h,this.cx=this.x+this.w/2,this.cy=this.y+this.h/2,this}isNulled(){return ot(this)}merge(t){const e=Math.min(this.x,t.x),r=Math.min(this.y,t.y),n=Math.max(this.x+this.width,t.x+t.width)-e,i=Math.max(this.y+this.height,t.y+t.height)-r;return new at(e,r,n,i)}toArray(){return[this.x,this.y,this.width,this.height]}toString(){return this.x+" "+this.y+" "+this.width+" "+this.height}transform(t){t instanceof it||(t=new it(t));let e=1/0,r=-1/0,n=1/0,i=-1/0;return[new rt(this.x,this.y),new rt(this.x2,this.y),new rt(this.x,this.y2),new rt(this.x2,this.y2)].forEach((function(s){s=s.transform(t),e=Math.min(e,s.x),r=Math.max(r,s.x),n=Math.min(n,s.y),i=Math.max(i,s.y)})),new at(e,n,r-e,i-n)}}function ht(t,e,r){let n;try{if(n=e(t.node),ot(n)&&(i=t.node)!==M.document&&!(M.document.documentElement.contains||function(t){for(;t.parentNode;)t=t.parentNode;return t===M.document}).call(M.document.documentElement,i))throw new Error("Element not in the dom")}catch(e){n=r(t)}var i;return n}c({viewbox:{viewbox(t,e,r,n){return null==t?new at(this.attr("viewBox")):this.attr("viewBox",new at(t,e,r,n))},zoom(t,e){let{width:r,height:n}=this.attr(["width","height"]);if((r||n)&&"string"!=typeof r&&"string"!=typeof n||(r=this.node.clientWidth,n=this.node.clientHeight),!r||!n)throw new Error("Impossible to get absolute width and height. Please provide an absolute width and height attribute on the zooming element");const i=this.viewbox(),s=r/i.width,o=n/i.height,a=Math.min(s,o);if(null==t)return a;let h=a/t;h===1/0&&(h=Number.MAX_SAFE_INTEGER/100),e=e||new rt(r/2/s+i.x,n/2/o+i.y);const u=new at(i).transform(new it({scale:h,origin:e}));return this.viewbox(u)}}}),D(at,"Box");class ut extends Array{constructor(t=[],...e){if(super(t,...e),"number"==typeof t)return this;this.length=0,this.push(...t)}}const ct=ut;L([ut],{each(t,...e){return"function"==typeof t?this.map(((e,r,n)=>t.call(e,e,r,n))):this.map((r=>r[t](...e)))},toArray(){return Array.prototype.concat.apply([],this)}});const lt=["toArray","constructor","each"];function dt(t,e){return new ct(f((e||M.document).querySelectorAll(t),(function(t){return T(t)})))}ut.extend=function(t){t=t.reduce(((t,e)=>(lt.includes(e)||"_"===e[0]||(e in Array.prototype&&(t["$"+e]=Array.prototype[e]),t[e]=function(...t){return this.each(e,...t)}),t)),{}),L([ut],t)};let ft=0;const pt={};function mt(t){let e=t.getEventHolder();return e===M.window&&(e=pt),e.events||(e.events={}),e.events}function gt(t){return t.getEventTarget()}function yt(t,e,r,n,i){const s=r.bind(n||t),o=A(t),a=mt(o),h=gt(o);e=Array.isArray(e)?e:e.split(Q),r._svgjsListenerId||(r._svgjsListenerId=++ft),e.forEach((function(t){const e=t.split(".")[0],n=t.split(".")[1]||"*";a[e]=a[e]||{},a[e][n]=a[e][n]||{},a[e][n][r._svgjsListenerId]=s,h.addEventListener(e,s,i||!1)}))}function wt(t,e,r,n){const i=A(t),s=mt(i),o=gt(i);("function"!=typeof r||(r=r._svgjsListenerId))&&(e=Array.isArray(e)?e:(e||"").split(Q)).forEach((function(t){const e=t&&t.split(".")[0],a=t&&t.split(".")[1];let h,u;if(r)s[e]&&s[e][a||"*"]&&(o.removeEventListener(e,s[e][a||"*"][r],n||!1),delete s[e][a||"*"][r]);else if(e&&a){if(s[e]&&s[e][a]){for(u in s[e][a])wt(o,[e,a].join("."),u);delete s[e][a]}}else if(a)for(t in s)for(h in s[t])a===h&&wt(o,[t,a].join("."));else if(e){if(s[e]){for(h in s[e])wt(o,[e,h].join("."));delete s[e]}}else{for(t in s)wt(o,t);!function(t){let e=t.getEventHolder();e===M.window&&(e=pt),e.events&&(e.events={})}(i)}}))}class bt extends O{addEventListener(){}dispatch(t,e,r){return function(t,e,r,n){const i=gt(t);return e instanceof M.window.Event||(e=new M.window.CustomEvent(e,{detail:r,cancelable:!0,...n})),i.dispatchEvent(e),e}(this,t,e,r)}dispatchEvent(t){const e=this.getEventHolder().events;if(!e)return!0;const r=e[t.type];for(const e in r)for(const n in r[e])r[e][n](t);return!t.defaultPrevented}fire(t,e,r){return this.dispatch(t,e,r),this}getEventHolder(){return this}getEventTarget(){return this}off(t,e,r){return wt(this,t,e,r),this}on(t,e,r,n){return yt(this,t,e,r,n),this}removeEventListener(){}}function xt(){}D(bt,"EventTarget");const vt={"fill-opacity":1,"stroke-opacity":1,"stroke-width":0,"stroke-linejoin":"miter","stroke-linecap":"butt",fill:"#000000",stroke:"#000000",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,"stop-opacity":1,"stop-color":"#000000","text-anchor":"start"};class _t extends Array{constructor(...t){super(...t),this.init(...t)}clone(){return new this.constructor(this)}init(t){return"number"==typeof t||(this.length=0,this.push(...this.parse(t))),this}parse(t=[]){return t instanceof Array?t:t.trim().split(Q).map(parseFloat)}toArray(){return Array.prototype.concat.apply([],this)}toSet(){return new Set(this)}toString(){return this.join(" ")}valueOf(){const t=[];return t.push(...this),t}}class St{constructor(...t){this.init(...t)}convert(t){return new St(this.value,t)}divide(t){return t=new St(t),new St(this/t,this.unit||t.unit)}init(t,e){return e=Array.isArray(t)?t[1]:e,t=Array.isArray(t)?t[0]:t,this.value=0,this.unit=e||"","number"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:"string"==typeof t?(e=t.match(z))&&(this.value=parseFloat(e[1]),"%"===e[5]?this.value/=100:"s"===e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof St&&(this.value=t.valueOf(),this.unit=t.unit),this}minus(t){return t=new St(t),new St(this-t,this.unit||t.unit)}plus(t){return t=new St(t),new St(this+t,this.unit||t.unit)}times(t){return t=new St(t),new St(this*t,this.unit||t.unit)}toArray(){return[this.value,this.unit]}toJSON(){return this.toString()}toString(){return("%"===this.unit?~~(1e8*this.value)/1e6:"s"===this.unit?this.value/1e3:this.value)+this.unit}valueOf(){return this.value}}const Mt=new Set(["fill","stroke","color","bgcolor","stop-color","flood-color","lighting-color"]),Ot=[];class Nt extends bt{constructor(t,e){super(),this.node=t,this.type=t.nodeName,e&&t!==e&&this.attr(e)}add(t,e){return(t=A(t)).removeNamespace&&this.node instanceof M.window.SVGElement&&t.removeNamespace(),null==e?this.node.appendChild(t.node):t.node!==this.node.childNodes[e]&&this.node.insertBefore(t.node,this.node.childNodes[e]),this}addTo(t,e){return A(t).put(this,e)}children(){return new ct(f(this.node.children,(function(t){return T(t)})))}clear(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return this}clone(t=!0,e=!0){this.writeDataToDom();let r=this.node.cloneNode(t);return e&&(r=I(r)),new this.constructor(r)}each(t,e){const r=this.children();let n,i;for(n=0,i=r.length;n<i;n++)t.apply(r[n],[n,r]),e&&r[n].each(t,e);return this}element(t,e){return this.put(new Nt(C(t),e))}first(){return T(this.node.firstChild)}get(t){return T(this.node.childNodes[t])}getEventHolder(){return this.node}getEventTarget(){return this.node}has(t){return this.index(t)>=0}html(t,e){return this.xml(t,e,"http://www.w3.org/1999/xhtml")}id(t){return void 0!==t||this.node.id||(this.node.id=B(this.type)),this.attr("id",t)}index(t){return[].slice.call(this.node.childNodes).indexOf(t.node)}last(){return T(this.node.lastChild)}matches(t){const e=this.node,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector||null;return r&&r.call(e,t)}parent(t){let e=this;if(!e.node.parentNode)return null;if(e=T(e.node.parentNode),!t)return e;do{if("string"==typeof t?e.matches(t):e instanceof t)return e}while(e=T(e.node.parentNode));return e}put(t,e){return t=A(t),this.add(t,e),t}putIn(t,e){return A(t).add(this,e)}remove(){return this.parent()&&this.parent().removeElement(this),this}removeElement(t){return this.node.removeChild(t.node),this}replace(t){return t=A(t),this.node.parentNode&&this.node.parentNode.replaceChild(t.node,this.node),t}round(t=2,e=null){const r=10**t,n=this.attr(e);for(const t in n)"number"==typeof n[t]&&(n[t]=Math.round(n[t]*r)/r);return this.attr(n),this}svg(t,e){return this.xml(t,e,v)}toString(){return this.id()}words(t){return this.node.textContent=t,this}wrap(t){const e=this.parent();if(!e)return this.addTo(t);const r=e.index(this);return e.put(t,r).put(this)}writeDataToDom(){return this.each((function(){this.writeDataToDom()})),this}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){e=null==e||e,this.writeDataToDom();let r=this;if(null!=t){if(r=T(r.node.cloneNode(!0)),e){const e=t(r);if(r=e||r,!1===e)return""}r.each((function(){const e=t(this),r=e||this;!1===e?this.remove():e&&this!==r&&this.replace(r)}),!0)}return e?r.node.outerHTML:r.node.innerHTML}e=null!=e&&e;const n=C("wrapper",r),i=M.document.createDocumentFragment();n.innerHTML=t;for(let t=n.children.length;t--;)i.appendChild(n.firstElementChild);const s=this.parent();return e?this.replace(i)&&s:this.add(i)}}L(Nt,{attr:function(t,e,r){if(null==t){t={},e=this.node.attributes;for(const r of e)t[r.nodeName]=$.test(r.nodeValue)?parseFloat(r.nodeValue):r.nodeValue;return t}if(t instanceof Array)return t.reduce(((t,e)=>(t[e]=this.attr(e),t)),{});if("object"==typeof t&&t.constructor===Object)for(e in t)this.attr(e,t[e]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?vt[t]:$.test(e)?parseFloat(e):e;"number"==typeof(e=Ot.reduce(((e,r)=>r(t,e,this)),e))?e=new St(e):Mt.has(t)&&et.isColor(e)?e=new et(e):e.constructor===Array&&(e=new _t(e)),"leading"===t?this.leading&&this.leading(e):"string"==typeof r?this.node.setAttributeNS(r,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!==t&&"x"!==t||this.rebuild()}return this},find:function(t){return dt(t,this.node)},findOne:function(t){return T(this.node.querySelector(t))}}),D(Nt,"Dom");class Pt extends Nt{constructor(t,e){super(t,e),this.dom={},this.node.instance=this,(t.hasAttribute("data-svgjs")||t.hasAttribute("svgjs:data"))&&this.setData(JSON.parse(t.getAttribute("data-svgjs"))??JSON.parse(t.getAttribute("svgjs:data"))??{})}center(t,e){return this.cx(t).cy(e)}cx(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)}cy(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)}defs(){const t=this.root();return t&&t.defs()}dmove(t,e){return this.dx(t).dy(e)}dx(t=0){return this.x(new St(t).plus(this.x()))}dy(t=0){return this.y(new St(t).plus(this.y()))}getEventHolder(){return this}height(t){return this.attr("height",t)}move(t,e){return this.x(t).y(e)}parents(t=this.root()){const e="string"==typeof t;e||(t=A(t));const r=new ct;let n=this;for(;(n=n.parent())&&n.node!==M.document&&"#document-fragment"!==n.nodeName&&(r.push(n),e||n.node!==t.node)&&(!e||!n.matches(t));)if(n.node===this.root().node)return null;return r}reference(t){if(!(t=this.attr(t)))return null;const e=(t+"").match(q);return e?A(e[1]):null}root(){const t=this.parent(N[P]);return t&&t.root()}setData(t){return this.dom=t,this}size(t,e){const r=g(this,t,e);return this.width(new St(r.width)).height(new St(r.height))}width(t){return this.attr("width",t)}writeDataToDom(){return x(this,this.dom),super.writeDataToDom()}x(t){return this.attr("x",t)}y(t){return this.attr("y",t)}}L(Pt,{bbox:function(){const t=ht(this,(t=>t.getBBox()),(t=>{try{const e=t.clone().addTo(st().svg).show(),r=e.node.getBBox();return e.remove(),r}catch(e){throw new Error(`Getting bbox of element "${t.node.nodeName}" is not possible: ${e.toString()}`)}}));return new at(t)},rbox:function(t){const e=ht(this,(t=>t.getBoundingClientRect()),(t=>{throw new Error(`Getting rbox of element "${t.node.nodeName}" is not possible`)})),r=new at(e);return t?r.transform(t.screenCTM().inverseO()):r.addOffset()},inside:function(t,e){const r=this.bbox();return t>r.x&&e>r.y&&t<r.x+r.width&&e<r.y+r.height},point:function(t,e){return new rt(t,e).transformO(this.screenCTM().inverseO())},ctm:function(){return new it(this.node.getCTM())},screenCTM:function(){try{if("function"==typeof this.isRoot&&!this.isRoot()){const t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new it(e)}return new it(this.node.getScreenCTM())}catch(t){return console.warn(`Cannot get CTM from SVG node ${this.node.nodeName}. Is the element rendered?`),new it}}}),D(Pt,"Element");const Ct={stroke:["color","width","opacity","linecap","linejoin","miterlimit","dasharray","dashoffset"],fill:["color","opacity","rule"],prefix:function(t,e){return"color"===e?t:t+"-"+e}};["fill","stroke"].forEach((function(t){const e={};let r;e[t]=function(e){if(void 0===e)return this.attr(t);if("string"==typeof e||e instanceof et||et.isRgb(e)||e instanceof Pt)this.attr(t,e);else for(r=Ct[t].length-1;r>=0;r--)null!=e[Ct[t][r]]&&this.attr(Ct.prefix(t,Ct[t][r]),e[Ct[t][r]]);return this},c(["Element","Runner"],e)})),c(["Element","Runner"],{matrix:function(t,e,r,n,i,s){return null==t?new it(this):this.attr("transform",new it(t,e,r,n,i,s))},rotate:function(t,e,r){return this.transform({rotate:t,ox:e,oy:r},!0)},skew:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({skew:t,ox:e,oy:r},!0):this.transform({skew:[t,e],ox:r,oy:n},!0)},shear:function(t,e,r){return this.transform({shear:t,ox:e,oy:r},!0)},scale:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({scale:t,ox:e,oy:r},!0):this.transform({scale:[t,e],ox:r,oy:n},!0)},translate:function(t,e){return this.transform({translate:[t,e]},!0)},relative:function(t,e){return this.transform({relative:[t,e]},!0)},flip:function(t="both",e="center"){return-1==="xybothtrue".indexOf(t)&&(e=t,t="both"),this.transform({flip:t,origin:e},!0)},opacity:function(t){return this.attr("opacity",t)}}),c("radius",{radius:function(t,e=t){return"radialGradient"===(this._element||this).type?this.attr("r",new St(t)):this.rx(t).ry(e)}}),c("Path",{length:function(){return this.node.getTotalLength()},pointAt:function(t){return new rt(this.node.getPointAtLength(t))}}),c(["Element","Runner"],{font:function(t,e){if("object"==typeof t){for(e in t)this.font(e,t[e]);return this}return"leading"===t?this.leading(e):"anchor"===t?this.attr("text-anchor",e):"size"===t||"family"===t||"weight"===t||"stretch"===t||"variant"===t||"style"===t?this.attr("font-"+t,e):this.attr(t,e)}}),c("Element",["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","touchstart","touchmove","touchleave","touchend","touchcancel","contextmenu","wheel","pointerdown","pointermove","pointerup","pointerleave","pointercancel"].reduce((function(t,e){return t[e]=function(t){return null===t?this.off(e):this.on(e,t),this},t}),{})),c("Element",{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(X).slice(0,-1).map((function(t){const e=t.trim().split("(");return[e[0],e[1].split(Q).map((function(t){return parseFloat(t)}))]})).reverse().reduce((function(t,e){return"matrix"===e[0]?t.lmultiply(it.fromArray(e[1])):t[e[0]].apply(t,e[1])}),new it)},toParent:function(t,e){if(this===t)return this;if(b(this.node))return this.addTo(t,e);const r=this.screenCTM(),n=t.screenCTM().inverse();return this.addTo(t,e).untransform().transform(n.multiply(r)),this},toRoot:function(t){return this.toParent(this.root(),t)},transform:function(t,e){if(null==t||"string"==typeof t){const e=new it(this).decompose();return null==t?e:e[t]}it.isMatrixLike(t)||(t={...t,origin:y(t,this)});const r=new it(!0===e?this:e||!1).transform(t);return this.attr("transform",r)}});class At extends Pt{flatten(){return this.each((function(){if(this instanceof At)return this.flatten().ungroup()})),this}ungroup(t=this.parent(),e=t.index(this)){return e=-1===e?t.children().length:e,this.each((function(r,n){return n[n.length-r-1].toParent(t,e)})),this.remove()}}D(At,"Container");class Et extends At{constructor(t,e=t){super(E("defs",t),e)}flatten(){return this}ungroup(){return this}}D(Et,"Defs");class Tt extends Pt{}function jt(t){return this.attr("rx",t)}function Dt(t){return this.attr("ry",t)}function kt(t){return null==t?this.cx()-this.rx():this.cx(t+this.rx())}function Bt(t){return null==t?this.cy()-this.ry():this.cy(t+this.ry())}function It(t){return this.attr("cx",t)}function Lt(t){return this.attr("cy",t)}function Vt(t){return null==t?2*this.rx():this.rx(new St(t).divide(2))}function zt(t){return null==t?2*this.ry():this.ry(new St(t).divide(2))}D(Tt,"Shape");class Ft extends Tt{constructor(t,e=t){super(E("ellipse",t),e)}size(t,e){const r=g(this,t,e);return this.rx(new St(r.width).divide(2)).ry(new St(r.height).divide(2))}}L(Ft,t),c("Container",{ellipse:V((function(t=0,e=t){return this.put(new Ft).size(t,e).move(0,0)}))}),D(Ft,"Ellipse");class Rt extends Nt{constructor(t=M.document.createDocumentFragment()){super(t)}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){const t=new Nt(C("wrapper",r));return t.add(this.node.cloneNode(!0)),t.xml(!1,r)}return super.xml(t,!1,r)}}D(Rt,"Fragment");const qt=Rt;function Xt(t,e){return"radialGradient"===(this._element||this).type?this.attr({fx:new St(t),fy:new St(e)}):this.attr({x1:new St(t),y1:new St(e)})}function Yt(t,e){return"radialGradient"===(this._element||this).type?this.attr({cx:new St(t),cy:new St(e)}):this.attr({x2:new St(t),y2:new St(e)})}class Gt extends At{constructor(t,e){super(E(t+"Gradient","string"==typeof t?null:t),e)}attr(t,e,r){return"transform"===t&&(t="gradientTransform"),super.attr(t,e,r)}bbox(){return new at}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}L(Gt,e),c({Container:{gradient(...t){return this.defs().gradient(...t)}},Defs:{gradient:V((function(t,e){return this.put(new Gt(t)).update(e)}))}}),D(Gt,"Gradient");class Ht extends At{constructor(t,e=t){super(E("pattern",t),e)}attr(t,e,r){return"transform"===t&&(t="patternTransform"),super.attr(t,e,r)}bbox(){return new at}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}c({Container:{pattern(...t){return this.defs().pattern(...t)}},Defs:{pattern:V((function(t,e,r){return this.put(new Ht).update(r).attr({x:0,y:0,width:t,height:e,patternUnits:"userSpaceOnUse"})}))}}),D(Ht,"Pattern");class Ut extends Tt{constructor(t,e=t){super(E("image",t),e)}load(t,e){if(!t)return this;const r=new M.window.Image;return yt(r,"load",(function(t){const n=this.parent(Ht);0===this.width()&&0===this.height()&&this.size(r.width,r.height),n instanceof Ht&&0===n.width()&&0===n.height()&&n.size(this.width(),this.height()),"function"==typeof e&&e.call(this,t)}),this),yt(r,"load error",(function(){wt(r)})),this.attr("href",r.src=t,S)}}var $t;$t=function(t,e,r){return"fill"!==t&&"stroke"!==t||W.test(e)&&(e=r.root().defs().image(e)),e instanceof Ut&&(e=r.root().defs().pattern(0,0,(t=>{t.add(e)}))),e},Ot.push($t),c({Container:{image:V((function(t,e){return this.put(new Ut).size(0,0).load(t,e)}))}}),D(Ut,"Image");class Wt extends _t{bbox(){let t=-1/0,e=-1/0,r=1/0,n=1/0;return this.forEach((function(i){t=Math.max(i[0],t),e=Math.max(i[1],e),r=Math.min(i[0],r),n=Math.min(i[1],n)})),new at(r,n,t-r,e-n)}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r=this.length-1;r>=0;r--)this[r]=[this[r][0]+t,this[r][1]+e];return this}parse(t=[0,0]){const e=[];(t=t instanceof Array?Array.prototype.concat.apply([],t):t.trim().split(Q).map(parseFloat)).length%2!=0&&t.pop();for(let r=0,n=t.length;r<n;r+=2)e.push([t[r],t[r+1]]);return e}size(t,e){let r;const n=this.bbox();for(r=this.length-1;r>=0;r--)n.width&&(this[r][0]=(this[r][0]-n.x)*t/n.width+n.x),n.height&&(this[r][1]=(this[r][1]-n.y)*e/n.height+n.y);return this}toLine(){return{x1:this[0][0],y1:this[0][1],x2:this[1][0],y2:this[1][1]}}toString(){const t=[];for(let e=0,r=this.length;e<r;e++)t.push(this[e].join(","));return t.join(" ")}transform(t){return this.clone().transformO(t)}transformO(t){it.isMatrixLike(t)||(t=new it(t));for(let e=this.length;e--;){const[r,n]=this[e];this[e][0]=t.a*r+t.c*n+t.e,this[e][1]=t.b*r+t.d*n+t.f}return this}}const Qt=Wt;function Jt(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}function Zt(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}function Kt(t){const e=this.bbox();return null==t?e.width:this.size(t,e.height)}function te(t){const e=this.bbox();return null==t?e.height:this.size(e.width,t)}class ee extends Tt{constructor(t,e=t){super(E("line",t),e)}array(){return new Wt([[this.attr("x1"),this.attr("y1")],[this.attr("x2"),this.attr("y2")]])}move(t,e){return this.attr(this.array().move(t,e).toLine())}plot(t,e,r,n){return null==t?this.array():(t=void 0!==e?{x1:t,y1:e,x2:r,y2:n}:new Wt(t).toLine(),this.attr(t))}size(t,e){const r=g(this,t,e);return this.attr(this.array().size(r.width,r.height).toLine())}}L(ee,i),c({Container:{line:V((function(...t){return ee.prototype.plot.apply(this.put(new ee),null!=t[0]?t:[0,0,0,0])}))}}),D(ee,"Line");class re extends At{constructor(t,e=t){super(E("marker",t),e)}height(t){return this.attr("markerHeight",t)}orient(t){return this.attr("orient",t)}ref(t,e){return this.attr("refX",t).attr("refY",e)}toString(){return"url(#"+this.id()+")"}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}width(t){return this.attr("markerWidth",t)}}function ne(t,e){return function(r){return null==r?this[t]:(this[t]=r,e&&e.call(this),this)}}c({Container:{marker(...t){return this.defs().marker(...t)}},Defs:{marker:V((function(t,e,r){return this.put(new re).size(t,e).ref(t/2,e/2).viewbox(0,0,t,e).attr("orient","auto").update(r)}))},marker:{marker(t,e,r,n){let i=["marker"];return"all"!==t&&i.push(t),i=i.join("-"),t=arguments[1]instanceof re?arguments[1]:this.defs().marker(e,r,n),this.attr(i,t)}}}),D(re,"Marker");const ie={"-":function(t){return t},"<>":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)},bezier:function(t,e,r,n){return function(i){return i<0?t>0?e/t*i:r>0?n/r*i:0:i>1?r<1?(1-n)/(1-r)*i+(n-r)/(1-r):t<1?(1-e)/(1-t)*i+(e-t)/(1-t):1:3*i*(1-i)**2*e+3*i**2*(1-i)*n+i**3}},steps:function(t,e="end"){e=e.split("-").reverse()[0];let r=t;return"none"===e?--r:"both"===e&&++r,(n,i=!1)=>{let s=Math.floor(n*t);const o=n*s%1==0;return"start"!==e&&"both"!==e||++s,i&&o&&--s,n>=0&&s<0&&(s=0),n<=1&&s>r&&(s=r),s/r}}};class se{done(){return!1}}class oe extends se{constructor(t=">"){super(),this.ease=ie[t]||t}step(t,e,r){return"number"!=typeof t?r<1?t:e:t+(e-t)*this.ease(r)}}class ae extends se{constructor(t){super(),this.stepper=t}done(t){return t.done}step(t,e,r,n){return this.stepper(t,e,r,n)}}function he(){const t=(this._duration||500)/1e3,e=this._overshoot||0,r=Math.PI,n=Math.log(e/100+1e-10),i=-n/Math.sqrt(r*r+n*n),s=3.9/(i*t);this.d=2*i*s,this.k=s*s}L(class extends ae{constructor(t=500,e=0){super(),this.duration(t).overshoot(e)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;r>100&&(r=16),r/=1e3;const i=n.velocity||0,s=-this.d*i-this.k*(t-e),o=t+i*r+s*r*r/2;return n.velocity=i+s*r,n.done=Math.abs(e-o)+Math.abs(i)<.002,n.done?e:o}},{duration:ne("_duration",he),overshoot:ne("_overshoot",he)}),L(class extends ae{constructor(t=.1,e=.01,r=0,n=1e3){super(),this.p(t).i(e).d(r).windup(n)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;const i=e-t;let s=(n.integral||0)+i*r;const o=(i-(n.error||0))/r,a=this._windup;return!1!==a&&(s=Math.max(-a,Math.min(s,a))),n.error=i,n.integral=s,n.done=Math.abs(i)<.001,n.done?e:t+(this.P*i+this.I*s+this.D*o)}},{windup:ne("_windup"),p:ne("P"),i:ne("I"),d:ne("D")});const ue={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0},ce={M:function(t,e,r){return e.x=r.x=t[0],e.y=r.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},S:function(t,e){return e.x=t[2],e.y=t[3],["S",t[0],t[1],t[2],t[3]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},T:function(t,e){return e.x=t[0],e.y=t[1],["T",t[0],t[1]]},Z:function(t,e,r){return e.x=r.x,e.y=r.y,["Z"]},A:function(t,e){return e.x=t[5],e.y=t[6],["A",t[0],t[1],t[2],t[3],t[4],t[5],t[6]]}},le="mlhvqtcsaz".split("");for(let t=0,e=le.length;t<e;++t)ce[le[t]]=function(t){return function(e,r,n){if("H"===t)e[0]=e[0]+r.x;else if("V"===t)e[0]=e[0]+r.y;else if("A"===t)e[5]=e[5]+r.x,e[6]=e[6]+r.y;else for(let t=0,n=e.length;t<n;++t)e[t]=e[t]+(t%2?r.y:r.x);return ce[t](e,r,n)}}(le[t].toUpperCase());function de(t){return t.segment.length&&t.segment.length-1===ue[t.segment[0].toUpperCase()]}function fe(t,e){t.inNumber&&pe(t,!1);const r=J.test(e);if(r)t.segment=[e];else{const e=t.lastCommand,r=e.toLowerCase(),n=e===r;t.segment=["m"===r?n?"l":"L":e]}return t.inSegment=!0,t.lastCommand=t.segment[0],r}function pe(t,e){if(!t.inNumber)throw new Error("Parser Error");t.number&&t.segment.push(parseFloat(t.number)),t.inNumber=e,t.number="",t.pointSeen=!1,t.hasExponent=!1,de(t)&&me(t)}function me(t){t.inSegment=!1,t.absolute&&(t.segment=function(t){const e=t.segment[0];return ce[e](t.segment.slice(1),t.p,t.p0)}(t)),t.segments.push(t.segment)}function ge(t){if(!t.segment.length)return!1;const e="A"===t.segment[0].toUpperCase(),r=t.segment.length;return e&&(4===r||5===r)}function ye(t){return"E"===t.lastToken.toUpperCase()}const we=new Set([" ",",","\t","\n","\r","\f"]);class be extends _t{bbox(){return st().path.setAttribute("d",this.toString()),new at(st.nodes.path.getBBox())}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r,n=this.length-1;n>=0;n--)r=this[n][0],"M"===r||"L"===r||"T"===r?(this[n][1]+=t,this[n][2]+=e):"H"===r?this[n][1]+=t:"V"===r?this[n][1]+=e:"C"===r||"S"===r||"Q"===r?(this[n][1]+=t,this[n][2]+=e,this[n][3]+=t,this[n][4]+=e,"C"===r&&(this[n][5]+=t,this[n][6]+=e)):"A"===r&&(this[n][6]+=t,this[n][7]+=e);return this}parse(t="M0 0"){return Array.isArray(t)&&(t=Array.prototype.concat.apply([],t).toString()),function(t,e=!0){let r=0,n="";const i={segment:[],inNumber:!1,number:"",lastToken:"",inSegment:!1,segments:[],pointSeen:!1,hasExponent:!1,absolute:e,p0:new rt,p:new rt};for(;i.lastToken=n,n=t.charAt(r++);)if(i.inSegment||!fe(i,n))if("."!==n)if(isNaN(parseInt(n)))if(we.has(n))i.inNumber&&pe(i,!1);else if("-"!==n&&"+"!==n)if("E"!==n.toUpperCase()){if(J.test(n)){if(i.inNumber)pe(i,!1);else{if(!de(i))throw new Error("parser Error");me(i)}--r}}else i.number+=n,i.hasExponent=!0;else{if(i.inNumber&&!ye(i)){pe(i,!1),--r;continue}i.number+=n,i.inNumber=!0}else{if("0"===i.number||ge(i)){i.inNumber=!0,i.number=n,pe(i,!0);continue}i.inNumber=!0,i.number+=n}else{if(i.pointSeen||i.hasExponent){pe(i,!1),--r;continue}i.inNumber=!0,i.pointSeen=!0,i.number+=n}return i.inNumber&&pe(i,!1),i.inSegment&&de(i)&&me(i),i.segments}(t)}size(t,e){const r=this.bbox();let n,i;for(r.width=0===r.width?1:r.width,r.height=0===r.height?1:r.height,n=this.length-1;n>=0;n--)i=this[n][0],"M"===i||"L"===i||"T"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y):"H"===i?this[n][1]=(this[n][1]-r.x)*t/r.width+r.x:"V"===i?this[n][1]=(this[n][1]-r.y)*e/r.height+r.y:"C"===i||"S"===i||"Q"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y,this[n][3]=(this[n][3]-r.x)*t/r.width+r.x,this[n][4]=(this[n][4]-r.y)*e/r.height+r.y,"C"===i&&(this[n][5]=(this[n][5]-r.x)*t/r.width+r.x,this[n][6]=(this[n][6]-r.y)*e/r.height+r.y)):"A"===i&&(this[n][1]=this[n][1]*t/r.width,this[n][2]=this[n][2]*e/r.height,this[n][6]=(this[n][6]-r.x)*t/r.width+r.x,this[n][7]=(this[n][7]-r.y)*e/r.height+r.y);return this}toString(){return function(t){let e="";for(let r=0,n=t.length;r<n;r++)e+=t[r][0],null!=t[r][1]&&(e+=t[r][1],null!=t[r][2]&&(e+=" ",e+=t[r][2],null!=t[r][3]&&(e+=" ",e+=t[r][3],e+=" ",e+=t[r][4],null!=t[r][5]&&(e+=" ",e+=t[r][5],e+=" ",e+=t[r][6],null!=t[r][7]&&(e+=" ",e+=t[r][7])))));return e+" "}(this)}}const xe=t=>{const e=typeof t;return"number"===e?St:"string"===e?et.isColor(t)?et:Q.test(t)?J.test(t)?be:_t:z.test(t)?St:_e:Ne.indexOf(t.constructor)>-1?t.constructor:Array.isArray(t)?_t:"object"===e?Oe:_e};class ve{constructor(t){this._stepper=t||new oe("-"),this._from=null,this._to=null,this._type=null,this._context=null,this._morphObj=null}at(t){return this._morphObj.morph(this._from,this._to,t,this._stepper,this._context)}done(){return this._context.map(this._stepper.done).reduce((function(t,e){return t&&e}),!0)}from(t){return null==t?this._from:(this._from=this._set(t),this)}stepper(t){return null==t?this._stepper:(this._stepper=t,this)}to(t){return null==t?this._to:(this._to=this._set(t),this)}type(t){return null==t?this._type:(this._type=t,this)}_set(t){this._type||this.type(xe(t));let e=new this._type(t);return this._type===et&&(e=this._to?e[this._to[4]]():this._from?e[this._from[4]]():e),this._type===Oe&&(e=this._to?e.align(this._to):this._from?e.align(this._from):e),e=e.toConsumable(),this._morphObj=this._morphObj||new this._type,this._context=this._context||Array.apply(null,Array(e.length)).map(Object).map((function(t){return t.done=!0,t})),e}}class _e{constructor(...t){this.init(...t)}init(t){return t=Array.isArray(t)?t[0]:t,this.value=t,this}toArray(){return[this.value]}valueOf(){return this.value}}class Se{constructor(...t){this.init(...t)}init(t){return Array.isArray(t)&&(t={scaleX:t[0],scaleY:t[1],shear:t[2],rotate:t[3],translateX:t[4],translateY:t[5],originX:t[6],originY:t[7]}),Object.assign(this,Se.defaults,t),this}toArray(){const t=this;return[t.scaleX,t.scaleY,t.shear,t.rotate,t.translateX,t.translateY,t.originX,t.originY]}}Se.defaults={scaleX:1,scaleY:1,shear:0,rotate:0,translateX:0,translateY:0,originX:0,originY:0};const Me=(t,e)=>t[0]<e[0]?-1:t[0]>e[0]?1:0;class Oe{constructor(...t){this.init(...t)}align(t){const e=this.values;for(let r=0,n=e.length;r<n;++r){if(e[r+1]===t[r+1]){if(e[r+1]===et&&t[r+7]!==e[r+7]){const e=t[r+7],n=new et(this.values.splice(r+3,5))[e]().toArray();this.values.splice(r+3,0,...n)}r+=e[r+2]+2;continue}if(!t[r+1])return this;const n=(new t[r+1]).toArray(),i=e[r+2]+3;e.splice(r,i,t[r],t[r+1],t[r+2],...n),r+=e[r+2]+2}return this}init(t){if(this.values=[],Array.isArray(t))return void(this.values=t.slice());t=t||{};const e=[];for(const r in t){const n=xe(t[r]),i=new n(t[r]).toArray();e.push([r,n,i.length,...i])}return e.sort(Me),this.values=e.reduce(((t,e)=>t.concat(e)),[]),this}toArray(){return this.values}valueOf(){const t={},e=this.values;for(;e.length;){const r=e.shift(),n=e.shift(),i=e.shift(),s=e.splice(0,i);t[r]=new n(s)}return t}}const Ne=[_e,Se,Oe];class Pe extends Tt{constructor(t,e=t){super(E("path",t),e)}array(){return this._array||(this._array=new be(this.attr("d")))}clear(){return delete this._array,this}height(t){return null==t?this.bbox().height:this.size(this.bbox().width,t)}move(t,e){return this.attr("d",this.array().move(t,e))}plot(t){return null==t?this.array():this.clear().attr("d","string"==typeof t?t:this._array=new be(t))}size(t,e){const r=g(this,t,e);return this.attr("d",this.array().size(r.width,r.height))}width(t){return null==t?this.bbox().width:this.size(t,this.bbox().height)}x(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}y(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}}function Ce(){return this._array||(this._array=new Wt(this.attr("points")))}function Ae(){return delete this._array,this}function Ee(t,e){return this.attr("points",this.array().move(t,e))}function Te(t){return null==t?this.array():this.clear().attr("points","string"==typeof t?t:this._array=new Wt(t))}function je(t,e){const r=g(this,t,e);return this.attr("points",this.array().size(r.width,r.height))}Pe.prototype.MorphArray=be,c({Container:{path:V((function(t){return this.put(new Pe).plot(t||new be)}))}}),D(Pe,"Path");class De extends Tt{constructor(t,e=t){super(E("polygon",t),e)}}c({Container:{polygon:V((function(t){return this.put(new De).plot(t||new Wt)}))}}),L(De,i),L(De,s),D(De,"Polygon");class ke extends Tt{constructor(t,e=t){super(E("polyline",t),e)}}c({Container:{polyline:V((function(t){return this.put(new ke).plot(t||new Wt)}))}}),L(ke,i),L(ke,s),D(ke,"Polyline");class Be extends Tt{constructor(t,e=t){super(E("rect",t),e)}}L(Be,{rx:jt,ry:Dt}),c({Container:{rect:V((function(t,e){return this.put(new Be).size(t,e)}))}}),D(Be,"Rect");class Ie{constructor(){this._first=null,this._last=null}first(){return this._first&&this._first.value}last(){return this._last&&this._last.value}push(t){const e=void 0!==t.next?t:{value:t,next:null,prev:null};return this._last?(e.prev=this._last,this._last.next=e,this._last=e):(this._last=e,this._first=e),e}remove(t){t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t===this._last&&(this._last=t.prev),t===this._first&&(this._first=t.next),t.prev=null,t.next=null}shift(){const t=this._first;return t?(this._first=t.next,this._first&&(this._first.prev=null),this._last=this._first?this._last:null,t.value):null}}const Le={nextDraw:null,frames:new Ie,timeouts:new Ie,immediates:new Ie,timer:()=>M.window.performance||M.window.Date,transforms:[],frame(t){const e=Le.frames.push({run:t});return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),e},timeout(t,e){e=e||0;const r=Le.timer().now()+e,n=Le.timeouts.push({run:t,time:r});return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),n},immediate(t){const e=Le.immediates.push(t);return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),e},cancelFrame(t){null!=t&&Le.frames.remove(t)},clearTimeout(t){null!=t&&Le.timeouts.remove(t)},cancelImmediate(t){null!=t&&Le.immediates.remove(t)},_draw(t){let e=null;const r=Le.timeouts.last();for(;(e=Le.timeouts.shift())&&(t>=e.time?e.run():Le.timeouts.push(e),e!==r););let n=null;const i=Le.frames.last();for(;n!==i&&(n=Le.frames.shift());)n.run(t);let s=null;for(;s=Le.immediates.shift();)s();Le.nextDraw=Le.timeouts.first()||Le.frames.first()?M.window.requestAnimationFrame(Le._draw):null}},Ve=Le,ze=function(t){const e=t.start,r=t.runner.duration();return{start:e,duration:r,end:e+r,runner:t.runner}},Fe=function(){const t=M.window;return(t.performance||t.Date).now()};class Re extends bt{constructor(t=Fe){super(),this._timeSource=t,this.terminate()}active(){return!!this._nextFrame}finish(){return this.time(this.getEndTimeOfTimeline()+1),this.pause()}getEndTime(){const t=this.getLastRunnerInfo(),e=t?t.runner.duration():0;return(t?t.start:this._time)+e}getEndTimeOfTimeline(){const t=this._runners.map((t=>t.start+t.runner.duration()));return Math.max(0,...t)}getLastRunnerInfo(){return this.getRunnerInfoById(this._lastRunnerId)}getRunnerInfoById(t){return this._runners[this._runnerIds.indexOf(t)]||null}pause(){return this._paused=!0,this._continue()}persist(t){return null==t?this._persist:(this._persist=t,this)}play(){return this._paused=!1,this.updateTime()._continue()}reverse(t){const e=this.speed();if(null==t)return this.speed(-e);const r=Math.abs(e);return this.speed(t?-r:r)}schedule(t,e,r){if(null==t)return this._runners.map(ze);let n=0;const i=this.getEndTime();if(e=e||0,null==r||"last"===r||"after"===r)n=i;else if("absolute"===r||"start"===r)n=e,e=0;else if("now"===r)n=this._time;else if("relative"===r){const r=this.getRunnerInfoById(t.id);r&&(n=r.start+e,e=0)}else{if("with-last"!==r)throw new Error('Invalid value for the "when" parameter');{const t=this.getLastRunnerInfo();n=t?t.start:this._time}}t.unschedule(),t.timeline(this);const s=t.persist(),o={persist:null===s?this._persist:s,start:n+e,runner:t};return this._lastRunnerId=t.id,this._runners.push(o),this._runners.sort(((t,e)=>t.start-e.start)),this._runnerIds=this._runners.map((t=>t.runner.id)),this.updateTime()._continue(),this}seek(t){return this.time(this._time+t)}source(t){return null==t?this._timeSource:(this._timeSource=t,this)}speed(t){return null==t?this._speed:(this._speed=t,this)}stop(){return this.time(0),this.pause()}time(t){return null==t?this._time:(this._time=t,this._continue(!0))}unschedule(t){const e=this._runnerIds.indexOf(t.id);return e<0||(this._runners.splice(e,1),this._runnerIds.splice(e,1),t.timeline(null)),this}updateTime(){return this.active()||(this._lastSourceTime=this._timeSource()),this}_continue(t=!1){return Ve.cancelFrame(this._nextFrame),this._nextFrame=null,t?this._stepImmediate():(this._paused||(this._nextFrame=Ve.frame(this._step)),this)}_stepFn(t=!1){const e=this._timeSource();let r=e-this._lastSourceTime;t&&(r=0);const n=this._speed*r+(this._time-this._lastStepTime);this._lastSourceTime=e,t||(this._time+=n,this._time=this._time<0?0:this._time),this._lastStepTime=this._time,this.fire("time",this._time);for(let t=this._runners.length;t--;){const e=this._runners[t],r=e.runner;this._time-e.start<=0&&r.reset()}let i=!1;for(let t=0,e=this._runners.length;t<e;t++){const r=this._runners[t],s=r.runner;let o=n;const a=this._time-r.start;a<=0?i=!0:(a<o&&(o=a),s.active()&&(s.step(o).done?!0!==r.persist&&s.duration()-s.time()+this._time+r.persist<this._time&&(s.unschedule(),--t,--e):i=!0))}return i&&!(this._speed<0&&0===this._time)||this._runnerIds.length&&this._speed<0&&this._time>0?this._continue():(this.pause(),this.fire("finished")),this}terminate(){this._startTime=0,this._speed=1,this._persist=0,this._nextFrame=null,this._paused=!0,this._runners=[],this._runnerIds=[],this._lastRunnerId=-1,this._time=0,this._lastSourceTime=0,this._lastStepTime=0,this._step=this._stepFn.bind(this,!1),this._stepImmediate=this._stepFn.bind(this,!0)}}c({Element:{timeline:function(t){return null==t?(this._timeline=this._timeline||new Re,this._timeline):(this._timeline=t,this)}}});class qe extends bt{constructor(t){super(),this.id=qe.id++,t="function"==typeof(t=null==t?400:t)?new ae(t):t,this._element=null,this._timeline=null,this.done=!1,this._queue=[],this._duration="number"==typeof t&&t,this._isDeclarative=t instanceof ae,this._stepper=this._isDeclarative?t:new oe,this._history={},this.enabled=!0,this._time=0,this._lastTime=0,this._reseted=!0,this.transforms=new it,this.transformId=1,this._haveReversed=!1,this._reverse=!1,this._loopsDone=0,this._swing=!1,this._wait=0,this._times=1,this._frameId=null,this._persist=!!this._isDeclarative||null}static sanitise(t,e,r){let n=1,i=!1,s=0;return e=e??0,r=r||"last","object"!=typeof(t=t??400)||t instanceof se||(e=t.delay??e,r=t.when??r,i=t.swing||i,n=t.times??n,s=t.wait??s,t=t.duration??400),{duration:t,delay:e,swing:i,times:n,wait:s,when:r}}active(t){return null==t?this.enabled:(this.enabled=t,this)}addTransform(t){return this.transforms.lmultiplyO(t),this}after(t){return this.on("finished",t)}animate(t,e,r){const n=qe.sanitise(t,e,r),i=new qe(n.duration);return this._timeline&&i.timeline(this._timeline),this._element&&i.element(this._element),i.loop(n).schedule(n.delay,n.when)}clearTransform(){return this.transforms=new it,this}clearTransformsFromQueue(){this.done&&this._timeline&&this._timeline._runnerIds.includes(this.id)||(this._queue=this._queue.filter((t=>!t.isTransform)))}delay(t){return this.animate(0,t)}duration(){return this._times*(this._wait+this._duration)-this._wait}during(t){return this.queue(null,t)}ease(t){return this._stepper=new oe(t),this}element(t){return null==t?this._element:(this._element=t,t._prepareRunner(),this)}finish(){return this.step(1/0)}loop(t,e,r){return"object"==typeof t&&(e=t.swing,r=t.wait,t=t.times),this._times=t||1/0,this._swing=e||!1,this._wait=r||0,!0===this._times&&(this._times=1/0),this}loops(t){const e=this._duration+this._wait;if(null==t){const t=Math.floor(this._time/e),r=(this._time-t*e)/this._duration;return Math.min(t+r,this._times)}const r=t%1,n=e*Math.floor(t)+this._duration*r;return this.time(n)}persist(t){return null==t?this._persist:(this._persist=t,this)}position(t){const e=this._time,r=this._duration,n=this._wait,i=this._times,s=this._swing,o=this._reverse;let a;if(null==t){const t=function(t){const e=s*Math.floor(t%(2*(n+r))/(n+r)),i=e&&!o||!e&&o,a=Math.pow(-1,i)*(t%(n+r))/r+i;return Math.max(Math.min(a,1),0)},h=i*(n+r)-n;return a=e<=0?Math.round(t(1e-5)):e<h?t(e):Math.round(t(h-1e-5)),a}const h=Math.floor(this.loops()),u=s&&h%2==0;return a=h+(u&&!o||o&&u?t:1-t),this.loops(a)}progress(t){return null==t?Math.min(1,this._time/this.duration()):this.time(t*this.duration())}queue(t,e,r,n){return this._queue.push({initialiser:t||xt,runner:e||xt,retarget:r,isTransform:n,initialised:!1,finished:!1}),this.timeline()&&this.timeline()._continue(),this}reset(){return this._reseted||(this.time(0),this._reseted=!0),this}reverse(t){return this._reverse=null==t?!this._reverse:t,this}schedule(t,e,r){if(t instanceof Re||(r=e,e=t,t=this.timeline()),!t)throw Error("Runner cannot be scheduled without timeline");return t.schedule(this,e,r),this}step(t){if(!this.enabled)return this;t=null==t?16:t,this._time+=t;const e=this.position(),r=this._lastPosition!==e&&this._time>=0;this._lastPosition=e;const n=this.duration(),i=this._lastTime<=0&&this._time>0,s=this._lastTime<n&&this._time>=n;this._lastTime=this._time,i&&this.fire("start",this);const o=this._isDeclarative;this.done=!o&&!s&&this._time>=n,this._reseted=!1;let a=!1;return(r||o)&&(this._initialise(r),this.transforms=new it,a=this._run(o?t:e),this.fire("step",this)),this.done=this.done||a&&o,s&&this.fire("finished",this),this}time(t){if(null==t)return this._time;const e=t-this._time;return this.step(e),this}timeline(t){return void 0===t?this._timeline:(this._timeline=t,this)}unschedule(){const t=this.timeline();return t&&t.unschedule(this),this}_initialise(t){if(t||this._isDeclarative)for(let e=0,r=this._queue.length;e<r;++e){const r=this._queue[e],n=this._isDeclarative||!r.initialised&&t;t=!r.finished,n&&t&&(r.initialiser.call(this),r.initialised=!0)}}_rememberMorpher(t,e){if(this._history[t]={morpher:e,caller:this._queue[this._queue.length-1]},this._isDeclarative){const t=this.timeline();t&&t.play()}}_run(t){let e=!0;for(let r=0,n=this._queue.length;r<n;++r){const n=this._queue[r],i=n.runner.call(this,t);n.finished=n.finished||!0===i,e=e&&n.finished}return e}_tryRetarget(t,e,r){if(this._history[t]){if(!this._history[t].caller.initialised){const e=this._queue.indexOf(this._history[t].caller);return this._queue.splice(e,1),!1}this._history[t].caller.retarget?this._history[t].caller.retarget.call(this,e,r):this._history[t].morpher.to(e),this._history[t].caller.finished=!1;const n=this.timeline();return n&&n.play(),!0}return!1}}qe.id=0;class Xe{constructor(t=new it,e=-1,r=!0){this.transforms=t,this.id=e,this.done=r}clearTransformsFromQueue(){}}L([qe,Xe],{mergeWith(t){return new Xe(t.transforms.lmultiply(this.transforms),t.id)}});const Ye=(t,e)=>t.lmultiplyO(e),Ge=t=>t.transforms;function He(){const t=this._transformationRunners.runners.map(Ge).reduce(Ye,new it);this.transform(t),this._transformationRunners.merge(),1===this._transformationRunners.length()&&(this._frameId=null)}class Ue{constructor(){this.runners=[],this.ids=[]}add(t){if(this.runners.includes(t))return;const e=t.id+1;return this.runners.push(t),this.ids.push(e),this}clearBefore(t){const e=this.ids.indexOf(t+1)||1;return this.ids.splice(0,e,0),this.runners.splice(0,e,new Xe).forEach((t=>t.clearTransformsFromQueue())),this}edit(t,e){const r=this.ids.indexOf(t+1);return this.ids.splice(r,1,t+1),this.runners.splice(r,1,e),this}getByID(t){return this.runners[this.ids.indexOf(t+1)]}length(){return this.ids.length}merge(){let t=null;for(let e=0;e<this.runners.length;++e){const r=this.runners[e];if(!(t&&r.done&&t.done)||r._timeline&&r._timeline._runnerIds.includes(r.id)||t._timeline&&t._timeline._runnerIds.includes(t.id))t=r;else{this.remove(r.id);const n=r.mergeWith(t);this.edit(t.id,n),t=n,--e}}return this}remove(t){const e=this.ids.indexOf(t+1);return this.ids.splice(e,1),this.runners.splice(e,1),this}}c({Element:{animate(t,e,r){const n=qe.sanitise(t,e,r),i=this.timeline();return new qe(n.duration).loop(n).element(this).timeline(i.play()).schedule(n.delay,n.when)},delay(t,e){return this.animate(0,t,e)},_clearTransformRunnersBefore(t){this._transformationRunners.clearBefore(t.id)},_currentTransform(t){return this._transformationRunners.runners.filter((e=>e.id<=t.id)).map(Ge).reduce(Ye,new it)},_addRunner(t){this._transformationRunners.add(t),Ve.cancelImmediate(this._frameId),this._frameId=Ve.immediate(He.bind(this))},_prepareRunner(){null==this._frameId&&(this._transformationRunners=(new Ue).add(new Xe(new it(this))))}}}),L(qe,{attr(t,e){return this.styleAttr("attr",t,e)},css(t,e){return this.styleAttr("css",t,e)},styleAttr(t,e,r){if("string"==typeof e)return this.styleAttr(t,{[e]:r});let n=e;if(this._tryRetarget(t,n))return this;let i=new ve(this._stepper).to(n),s=Object.keys(n);return this.queue((function(){i=i.from(this.element()[t](s))}),(function(e){return this.element()[t](i.at(e).valueOf()),i.done()}),(function(e){const r=Object.keys(e),o=(a=s,r.filter((t=>!a.includes(t))));var a;if(o.length){const e=this.element()[t](o),r=new Oe(i.from()).valueOf();Object.assign(r,e),i.from(r)}const h=new Oe(i.to()).valueOf();Object.assign(h,e),i.to(h),s=r,n=e})),this._rememberMorpher(t,i),this},zoom(t,e){if(this._tryRetarget("zoom",t,e))return this;let r=new ve(this._stepper).to(new St(t));return this.queue((function(){r=r.from(this.element().zoom())}),(function(t){return this.element().zoom(r.at(t),e),r.done()}),(function(t,n){e=n,r.to(t)})),this._rememberMorpher("zoom",r),this},transform(t,e,r){if(e=t.relative||e,this._isDeclarative&&!e&&this._tryRetarget("transform",t))return this;const n=it.isMatrixLike(t);r=null!=t.affine?t.affine:null!=r?r:!n;const i=new ve(this._stepper).type(r?Se:it);let s,o,a,h,u;return this.queue((function(){o=o||this.element(),s=s||y(t,o),u=new it(e?void 0:o),o._addRunner(this),e||o._clearTransformRunnersBefore(this)}),(function(c){e||this.clearTransform();const{x:l,y:d}=new rt(s).transform(o._currentTransform(this));let f=new it({...t,origin:[l,d]}),p=this._isDeclarative&&a?a:u;if(r){f=f.decompose(l,d),p=p.decompose(l,d);const t=f.rotate,e=p.rotate,r=[t-360,t,t+360],n=r.map((t=>Math.abs(t-e))),i=Math.min(...n),s=n.indexOf(i);f.rotate=r[s]}e&&(n||(f.rotate=t.rotate||0),this._isDeclarative&&h&&(p.rotate=h)),i.from(p),i.to(f);const m=i.at(c);return h=m.rotate,a=new it(m),this.addTransform(a),o._addRunner(this),i.done()}),(function(e){(e.origin||"center").toString()!==(t.origin||"center").toString()&&(s=y(e,o)),t={...e,origin:s}}),!0),this._isDeclarative&&this._rememberMorpher("transform",i),this},x(t){return this._queueNumber("x",t)},y(t){return this._queueNumber("y",t)},ax(t){return this._queueNumber("ax",t)},ay(t){return this._queueNumber("ay",t)},dx(t=0){return this._queueNumberDelta("x",t)},dy(t=0){return this._queueNumberDelta("y",t)},dmove(t,e){return this.dx(t).dy(e)},_queueNumberDelta(t,e){if(e=new St(e),this._tryRetarget(t,e))return this;const r=new ve(this._stepper).to(e);let n=null;return this.queue((function(){n=this.element()[t](),r.from(n),r.to(n+e)}),(function(e){return this.element()[t](r.at(e)),r.done()}),(function(t){r.to(n+new St(t))})),this._rememberMorpher(t,r),this},_queueObject(t,e){if(this._tryRetarget(t,e))return this;const r=new ve(this._stepper).to(e);return this.queue((function(){r.from(this.element()[t]())}),(function(e){return this.element()[t](r.at(e)),r.done()})),this._rememberMorpher(t,r),this},_queueNumber(t,e){return this._queueObject(t,new St(e))},cx(t){return this._queueNumber("cx",t)},cy(t){return this._queueNumber("cy",t)},move(t,e){return this.x(t).y(e)},amove(t,e){return this.ax(t).ay(e)},center(t,e){return this.cx(t).cy(e)},size(t,e){let r;return t&&e||(r=this._element.bbox()),t||(t=r.width/r.height*e),e||(e=r.height/r.width*t),this.width(t).height(e)},width(t){return this._queueNumber("width",t)},height(t){return this._queueNumber("height",t)},plot(t,e,r,n){if(4===arguments.length)return this.plot([t,e,r,n]);if(this._tryRetarget("plot",t))return this;const i=new ve(this._stepper).type(this._element.MorphArray).to(t);return this.queue((function(){i.from(this._element.array())}),(function(t){return this._element.plot(i.at(t)),i.done()})),this._rememberMorpher("plot",i),this},leading(t){return this._queueNumber("leading",t)},viewbox(t,e,r,n){return this._queueObject("viewbox",new at(t,e,r,n))},update(t){return"object"!=typeof t?this.update({offset:arguments[0],color:arguments[1],opacity:arguments[2]}):(null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",t.offset),this)}}),L(qe,{rx:jt,ry:Dt,from:Xt,to:Yt}),D(qe,"Runner");class $e extends At{constructor(t,e=t){super(E("svg",t),e),this.namespace()}defs(){return this.isRoot()?T(this.node.querySelector("defs"))||this.put(new Et):this.root().defs()}isRoot(){return!this.node.parentNode||!(this.node.parentNode instanceof M.window.SVGElement)&&"#document-fragment"!==this.node.parentNode.nodeName}namespace(){return this.isRoot()?this.attr({xmlns:v,version:"1.1"}).attr("xmlns:xlink",S,_):this.root().namespace()}removeNamespace(){return this.attr({xmlns:null,version:null}).attr("xmlns:xlink",null,_).attr("xmlns:svgjs",null,_)}root(){return this.isRoot()?this:super.root()}}c({Container:{nested:V((function(){return this.put(new $e)}))}}),D($e,"Svg",!0);class We extends At{constructor(t,e=t){super(E("symbol",t),e)}}function Qe(t){return!1===this._build&&this.clear(),this.node.appendChild(M.document.createTextNode(t)),this}function Je(){return this.node.getComputedTextLength()}function Ze(t,e=this.bbox()){return null==t?e.x:this.attr("x",this.attr("x")+t-e.x)}function Ke(t,e=this.bbox()){return null==t?e.y:this.attr("y",this.attr("y")+t-e.y)}function tr(t,e,r=this.bbox()){return this.x(t,r).y(e,r)}function er(t,e=this.bbox()){return null==t?e.cx:this.attr("x",this.attr("x")+t-e.cx)}function rr(t,e=this.bbox()){return null==t?e.cy:this.attr("y",this.attr("y")+t-e.cy)}function nr(t,e,r=this.bbox()){return this.cx(t,r).cy(e,r)}function ir(t){return this.attr("x",t)}function sr(t){return this.attr("y",t)}function or(t,e){return this.ax(t).ay(e)}function ar(t){return this._build=!!t,this}c({Container:{symbol:V((function(){return this.put(new We)}))}}),D(We,"Symbol");class hr extends Tt{constructor(t,e=t){super(E("text",t),e),this.dom.leading=this.dom.leading??new St(1.3),this._rebuild=!0,this._build=!1}leading(t){return null==t?this.dom.leading:(this.dom.leading=new St(t),this.rebuild())}rebuild(t){if("boolean"==typeof t&&(this._rebuild=t),this._rebuild){const t=this;let e=0;const r=this.dom.leading;this.each((function(n){if(b(this.node))return;const i=M.window.getComputedStyle(this.node).getPropertyValue("font-size"),s=r*new St(i);this.dom.newLined&&(this.attr("x",t.attr("x")),"\n"===this.text()?e+=s:(this.attr("dy",n?s+e:0),e=0))})),this.fire("rebuild")}return this}setData(t){return this.dom=t,this.dom.leading=new St(t.leading||1.3),this}writeDataToDom(){return x(this,this.dom,{leading:1.3}),this}text(t){if(void 0===t){const e=this.node.childNodes;let r=0;t="";for(let n=0,i=e.length;n<i;++n)"textPath"===e[n].nodeName||b(e[n])?0===n&&(r=n+1):(n!==r&&3!==e[n].nodeType&&!0===T(e[n]).dom.newLined&&(t+="\n"),t+=e[n].textContent);return t}if(this.clear().build(!0),"function"==typeof t)t.call(this,this);else for(let e=0,r=(t=(t+"").split("\n")).length;e<r;e++)this.newLine(t[e]);return this.build(!1).rebuild()}}L(hr,o),c({Container:{text:V((function(t=""){return this.put(new hr).text(t)})),plain:V((function(t=""){return this.put(new hr).plain(t)}))}}),D(hr,"Text");class ur extends Tt{constructor(t,e=t){super(E("tspan",t),e),this._build=!1}dx(t){return this.attr("dx",t)}dy(t){return this.attr("dy",t)}newLine(){this.dom.newLined=!0;const t=this.parent();if(!(t instanceof hr))return this;const e=t.index(this),r=M.window.getComputedStyle(this.node).getPropertyValue("font-size"),n=t.dom.leading*new St(r);return this.dy(e?n:0).attr("x",t.x())}text(t){return null==t?this.node.textContent+(this.dom.newLined?"\n":""):("function"==typeof t?(this.clear().build(!0),t.call(this,this),this.build(!1)):this.plain(t),this)}}L(ur,o),c({Tspan:{tspan:V((function(t=""){const e=new ur;return this._build||this.clear(),this.put(e).text(t)}))},Text:{newLine:function(t=""){return this.tspan(t).newLine()}}}),D(ur,"Tspan");class cr extends Tt{constructor(t,e=t){super(E("circle",t),e)}radius(t){return this.attr("r",t)}rx(t){return this.attr("r",t)}ry(t){return this.rx(t)}size(t){return this.radius(new St(t).divide(2))}}L(cr,{x:kt,y:Bt,cx:It,cy:Lt,width:Vt,height:zt}),c({Container:{circle:V((function(t=0){return this.put(new cr).size(t).move(0,0)}))}}),D(cr,"Circle");class lr extends At{constructor(t,e=t){super(E("clipPath",t),e)}remove(){return this.targets().forEach((function(t){t.unclip()})),super.remove()}targets(){return dt("svg [clip-path*="+this.id()+"]")}}c({Container:{clip:V((function(){return this.defs().put(new lr)}))},Element:{clipper(){return this.reference("clip-path")},clipWith(t){const e=t instanceof lr?t:this.parent().clip().add(t);return this.attr("clip-path","url(#"+e.id()+")")},unclip(){return this.attr("clip-path",null)}}}),D(lr,"ClipPath");class dr extends Pt{constructor(t,e=t){super(E("foreignObject",t),e)}}function fr(t,e){return this.children().forEach((r=>{let n;try{n=r.node instanceof M.window.SVGSVGElement?new at(r.attr(["x","y","width","height"])):r.bbox()}catch(t){return}const i=new it(r),s=i.translate(t,e).transform(i.inverse()),o=new rt(n.x,n.y).transform(s);r.move(o.x,o.y)})),this}function pr(t){return this.dmove(t,0)}function mr(t){return this.dmove(0,t)}function gr(t,e=this.bbox()){return null==t?e.height:this.size(e.width,t,e)}function yr(t=0,e=0,r=this.bbox()){const n=t-r.x,i=e-r.y;return this.dmove(n,i)}function wr(t,e,r=this.bbox()){const n=g(this,t,e,r),i=n.width/r.width,s=n.height/r.height;return this.children().forEach((t=>{const e=new rt(r).transform(new it(t).inverse());t.scale(i,s,e.x,e.y)})),this}function br(t,e=this.bbox()){return null==t?e.width:this.size(t,e.height,e)}function xr(t,e=this.bbox()){return null==t?e.x:this.move(t,e.y,e)}function vr(t,e=this.bbox()){return null==t?e.y:this.move(e.x,t,e)}c({Container:{foreignObject:V((function(t,e){return this.put(new dr).size(t,e)}))}}),D(dr,"ForeignObject");class _r extends At{constructor(t,e=t){super(E("g",t),e)}}L(_r,a),c({Container:{group:V((function(){return this.put(new _r)}))}}),D(_r,"G");class Sr extends At{constructor(t,e=t){super(E("a",t),e)}target(t){return this.attr("target",t)}to(t){return this.attr("href",t,S)}}L(Sr,a),c({Container:{link:V((function(t){return this.put(new Sr).to(t)}))},Element:{unlink(){const t=this.linker();if(!t)return this;const e=t.parent();if(!e)return this.remove();const r=e.index(t);return e.add(this,r),t.remove(),this},linkTo(t){let e=this.linker();return e||(e=new Sr,this.wrap(e)),"function"==typeof t?t.call(e,e):e.to(t),this},linker(){const t=this.parent();return t&&"a"===t.node.nodeName.toLowerCase()?t:null}}}),D(Sr,"A");class Mr extends At{constructor(t,e=t){super(E("mask",t),e)}remove(){return this.targets().forEach((function(t){t.unmask()})),super.remove()}targets(){return dt("svg [mask*="+this.id()+"]")}}c({Container:{mask:V((function(){return this.defs().put(new Mr)}))},Element:{masker(){return this.reference("mask")},maskWith(t){const e=t instanceof Mr?t:this.parent().mask().add(t);return this.attr("mask","url(#"+e.id()+")")},unmask(){return this.attr("mask",null)}}}),D(Mr,"Mask");class Or extends Pt{constructor(t,e=t){super(E("stop",t),e)}update(t){return("number"==typeof t||t instanceof St)&&(t={offset:arguments[0],color:arguments[1],opacity:arguments[2]}),null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",new St(t.offset)),this}}c({Gradient:{stop:function(t,e,r){return this.put(new Or).update(t,e,r)}}}),D(Or,"Stop");class Nr extends Pt{constructor(t,e=t){super(E("style",t),e)}addText(t=""){return this.node.textContent+=t,this}font(t,e,r={}){return this.rule("@font-face",{fontFamily:t,src:e,...r})}rule(t,e){return this.addText(function(t,e){if(!t)return"";if(!e)return t;let r=t+"{";for(const t in e)r+=t.replace(/([A-Z])/g,(function(t,e){return"-"+e.toLowerCase()}))+":"+e[t]+";";return r+="}",r}(t,e))}}c("Dom",{style(t,e){return this.put(new Nr).rule(t,e)},fontface(t,e,r){return this.put(new Nr).font(t,e,r)}}),D(Nr,"Style");class Pr extends hr{constructor(t,e=t){super(E("textPath",t),e)}array(){const t=this.track();return t?t.array():null}plot(t){const e=this.track();let r=null;return e&&(r=e.plot(t)),null==t?r:this}track(){return this.reference("href")}}c({Container:{textPath:V((function(t,e){return t instanceof hr||(t=this.text(t)),t.path(e)}))},Text:{path:V((function(t,e=!0){const r=new Pr;let n;if(t instanceof Pe||(t=this.defs().path(t)),r.attr("href","#"+t,S),e)for(;n=this.node.firstChild;)r.node.appendChild(n);return this.put(r)})),textPath(){return this.findOne("textPath")}},Path:{text:V((function(t){return t instanceof hr||(t=(new hr).addTo(this.parent()).text(t)),t.path(this)})),targets(){return dt("svg textPath").filter((t=>(t.attr("href")||"").includes(this.id())))}}}),Pr.prototype.MorphArray=be,D(Pr,"TextPath");class Cr extends Tt{constructor(t,e=t){super(E("use",t),e)}use(t,e){return this.attr("href",(e||"")+"#"+t,S)}}c({Container:{use:V((function(t,e){return this.put(new Cr).use(t,e)}))}}),D(Cr,"Use"),L([$e,We,Ut,Ht,re],l("viewbox")),L([ee,ke,De,Pe],l("marker")),L(hr,l("Text")),L(Pe,l("Path")),L(Et,l("Defs")),L([hr,ur],l("Tspan")),L([Be,Ft,Gt,qe],l("radius")),L(bt,l("EventTarget")),L(Nt,l("Dom")),L(Pt,l("Element")),L(Tt,l("Shape")),L([At,qt],l("Container")),L(Gt,l("Gradient")),L(qe,l("Runner")),ct.extend([...new Set(u)]),function(t=[]){Ne.push(...[].concat(t))}([St,et,at,it,_t,Wt,be,rt]),L(Ne,{to(t){return(new ve).type(this.constructor).from(this.toArray()).to(t)},fromArray(t){return this.init(t),this},toConsumable(){return this.toArray()},morph(t,e,r,n,i){return this.fromArray(t.map((function(t,s){return n.step(t,e[s],r,i[s],i)})))}});var Ar=r(726),Er=r(725),Tr=r(854);const jr=["basePadding1","basePadding2"],Dr={basePadding1:"setBasePadding1",basePadding2:"setBasePadding2"};class kr{static between(t,e){let r=(new ee).node,n=new kr(r,t,e);return n.assignUUID(),n.set(kr.defaultValues),n.reposition(),n}constructor(t,e,r){this.line=t,this.base1=e,this.base2=r,this.cachedBasePadding1=(0,Er.distance)(this.point1,this.base1.centerPoint),this.cachedBasePadding2=(0,Er.distance)(this.point2,this.base2.centerPoint),e.centerPoint.addEventListener("move",(()=>this.reposition())),r.centerPoint.addEventListener("move",(()=>this.reposition()))}get basePair(){return[this.base1,this.base2]}get domNode(){return this.line}getAttribute(t){return this.domNode.getAttribute(t)}setAttribute(t,e){this.domNode.setAttribute(t,e)}setAttributes(t){if((0,Tr.isNonNullObject)(t))try{new ee(this.domNode).attr(t)}catch(t){}}get id(){return this.domNode.id}assignUUID(){(0,Ar.assignUUID)(this.domNode)}appendTo(t){t.appendChild(this.domNode)}remove(){this.domNode.remove()}isIn(t){return t.contains(this.domNode)&&t!==this.domNode}hasParent(){return!!this.domNode.parentNode}getTotalLength(){return this.domNode.getTotalLength()}getPointAtLength(t){return this.domNode.getPointAtLength(t)}get point1(){return{x:this.domNode.x1.baseVal.value,y:this.domNode.y1.baseVal.value}}get point2(){return{x:this.domNode.x2.baseVal.value,y:this.domNode.y2.baseVal.value}}get basePadding1(){return this.cachedBasePadding1}set basePadding1(t){this.cachedBasePadding1=t,this.reposition()}setBasePadding1(t){(0,Tr.isFiniteNumber)(t)&&(this.basePadding1=Math.max(0,t))}get basePadding2(){return this.cachedBasePadding2}set basePadding2(t){this.cachedBasePadding2=t,this.reposition()}setBasePadding2(t){(0,Tr.isFiniteNumber)(t)&&(this.basePadding2=Math.max(0,t))}isInverted(){return this.basePadding1+this.basePadding2>(0,Er.distance)(this.base1.centerPoint,this.base2.centerPoint)}set(t){try{this.setAttributes(t.attributes)}catch(t){}jr.forEach((e=>{try{this[Dr[e]](t[e])}catch(t){}}))}reposition(){let t=this.base1.centerPoint,e=this.base2.centerPoint,r=(0,Er.direction)(t,e);this.setAttribute("x1",`${t.x+this.basePadding1*Math.cos(r)}`),this.setAttribute("y1",`${t.y+this.basePadding1*Math.sin(r)}`),this.setAttribute("x2",""+(e.x-this.basePadding2*Math.cos(r))),this.setAttribute("y2",""+(e.y-this.basePadding2*Math.sin(r)))}}kr.defaultValues={attributes:{stroke:"#000000","stroke-width":"2"},basePadding1:6,basePadding2:6};var Br,Ir=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class Lr{constructor(t){Br.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,Br,t)}toJSONSerializable(){let t=Ir(this,Br,"f").id,e=Ir(this,Br,"f").base1.id,r=Ir(this,Br,"f").base2.id;if(!t)throw new Error("Straight bond ID is falsy.");if(!e)throw new Error("Base ID 1 is falsy.");if(!r)throw new Error("Base ID 2 is falsy.");return{id:t,baseID1:e,baseID2:r,basePadding1:Ir(this,Br,"f").basePadding1,basePadding2:Ir(this,Br,"f").basePadding2}}}Br=new WeakMap;var Vr,zr,Fr,Rr,qr,Xr,Yr,Gr,Hr,Ur,$r,Wr,Qr,Jr,Zr=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},Kr=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class tn{constructor(t,e){Vr.add(this),zr.set(this,void 0),Fr.set(this,void 0),Zr(this,zr,t,"f"),Zr(this,Fr,e,"f")}recreate(){let t=new kr(Kr(this,Vr,"a",Xr),Kr(this,Vr,"a",Ur),Kr(this,Vr,"a",$r));try{t.basePadding1=Kr(this,Vr,"a",Qr)}catch(t){}try{t.basePadding2=Kr(this,Vr,"a",Jr)}catch(t){}return t}}zr=new WeakMap,Fr=new WeakMap,Vr=new WeakSet,Rr=function(t){let e=Kr(this,zr,"f")[t];if(!e)throw new Error(`No ID with name "${t}" was saved.`);if("string"!=typeof e)throw new Error(`The ID with name "${t}" is not a string: ${e}.`);return e},qr=function(){try{return Kr(this,Vr,"m",Rr).call(this,"id")}catch(t){return Kr(this,Vr,"m",Rr).call(this,"lineId")}},Xr=function(){let t=Kr(this,Vr,"a",qr),e=Kr(this,Fr,"f").domNode.querySelector(`#${t}`);if(!e)throw new Error(`No DOM node in the drawing has the ID "${t}".`);if(!(e instanceof SVGLineElement))throw new Error(`The DOM node with ID "${t}" is not an SVG line element.`);return e},Yr=function(){try{return Kr(this,Vr,"m",Rr).call(this,"baseID1")}catch(t){return Kr(this,Vr,"m",Rr).call(this,"baseId1")}},Gr=function(){try{return Kr(this,Vr,"m",Rr).call(this,"baseID2")}catch(t){return Kr(this,Vr,"m",Rr).call(this,"baseId2")}},Hr=function(t){let e={1:Kr(this,Vr,"a",Yr),2:Kr(this,Vr,"a",Gr)}[t],r=[...Kr(this,Fr,"f").bases].find((t=>t.id===e));if(!r)throw new Error(`No base in the drawing has the ID "${e}".`);return r},Ur=function(){return Kr(this,Vr,"m",Hr).call(this,1)},$r=function(){return Kr(this,Vr,"m",Hr).call(this,2)},Wr=function(t){let e=Kr(this,zr,"f")[`basePadding${t}`];if("number"!=typeof e)throw new Error(`Saved base padding ${t} is not a number: ${e}.`);return e},Qr=function(){return Kr(this,Vr,"m",Wr).call(this,1)},Jr=function(){return Kr(this,Vr,"m",Wr).call(this,2)};class en{constructor(t,e){this.targetStraightBonds=t,new MutationObserver((t=>{let e=new Set([...this.targetStraightBonds].map((t=>t.domNode)));!t.some((t=>e.has(t.target)))||this.updateOpacities()})).observe(e,{attributes:!0,attributeFilter:["x1","y1","x2","y2"],subtree:!0})}updateOpacities(){[...this.targetStraightBonds].forEach((t=>{let e=t.isInverted()?"0":"1";t.setAttribute("opacity",e)}))}}})(),n})(),t.exports=e()},775:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{BaseOutline:()=>r});class r{constructor(t,e){this.domNode=t,this.owner=e,e.centerPoint.addEventListener("move",(()=>{t.setAttribute("cx",`${e.centerPoint.x}`),t.setAttribute("cy",`${e.centerPoint.y}`)}))}}return e})(),t.exports=e()},358:function(t){var e;e=()=>(()=>{var t={731:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{CenterPoint:()=>u});var r,n,i,s,o,a=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},h=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class u{constructor(t){r.add(this),n.set(this,void 0),i.set(this,{move:[]}),s.set(this,void 0),a(this,n,t,"f"),a(this,s,new MutationObserver((()=>h(this,r,"m",o).call(this,"move"))),"f"),h(this,s,"f").observe(t,{attributes:!0,childList:!0,characterData:!0,subtree:!0})}get x(){let t=h(this,n,"f").getBBox();return t.x+t.width/2}set x(t){let e=this.x,r=[...h(this,n,"f").x.baseVal].map((t=>t.value));0!=r.length||r.push(0),r=r.map((r=>r+(t-e))),h(this,n,"f").setAttribute("x",r.join(", "))}get y(){let t=h(this,n,"f").getBBox();return t.y+t.height/2}set y(t){let e=this.y,r=[...h(this,n,"f").y.baseVal].map((t=>t.value));0!=r.length||r.push(0),r=r.map((r=>r+(t-e))),h(this,n,"f").setAttribute("y",r.join(", "))}addEventListener(t,e){h(this,i,"f")[t].push(e)}removeEventListener(t,e){h(this,i,"f")[t]=h(this,i,"f")[t].filter((t=>t!==e))}}return n=new WeakMap,i=new WeakMap,s=new WeakMap,r=new WeakSet,o=function(t){h(this,i,"f")[t].forEach((t=>t()))},e})(),t.exports=e()},726:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{CoordinateSystem:()=>c,HorizontalClientScaling:()=>d,InnerXML:()=>w,OuterXML:()=>v,Scaling:()=>l,VerticalClientScaling:()=>f,assignUUID:()=>u,bringToFront:()=>p,sendToBack:()=>m});const r={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};var n,i=new Uint8Array(16);function s(){if(!n&&!(n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return n(i)}for(var o=[],a=0;a<256;++a)o.push((a+256).toString(16).slice(1));const h=function(t,e,n){if(r.randomUUID&&!e&&!t)return r.randomUUID();var i=(t=t||{}).random||(t.rng||s)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,e){n=n||0;for(var a=0;a<16;++a)e[n+a]=i[a];return e}return function(t,e=0){return(o[t[e+0]]+o[t[e+1]]+o[t[e+2]]+o[t[e+3]]+"-"+o[t[e+4]]+o[t[e+5]]+"-"+o[t[e+6]]+o[t[e+7]]+"-"+o[t[e+8]]+o[t[e+9]]+"-"+o[t[e+10]]+o[t[e+11]]+o[t[e+12]]+o[t[e+13]]+o[t[e+14]]+o[t[e+15]]).toLowerCase()}(i)};function u(t){t.id="uuid-"+h()}class c{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class l{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class d{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class f{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function p(t){let e=t.parentNode;e&&e.appendChild(t)}function m(t){let e=t.parentNode;e&&e.prepend(t)}var g,y=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class w{constructor(t){g.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,g,t)}toString(){return y(this,g,"f").innerHTML}set(t){y(this,g,"f").innerHTML=t}}g=new WeakMap;var b,x=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class v{constructor(t){b.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,b,t)}toString(){return x(this,b,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=x(this,b,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...x(this,b,"f").attributes].forEach((t=>x(this,b,"f").removeAttribute(t.name))),[...e.firstElementChild.attributes].forEach((t=>x(this,b,"f").setAttribute(t.name,t.value))),x(this,b,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}return b=new WeakMap,e})(),t.exports=e()},986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>p,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function p(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Nucleobase:()=>jr,SavableNucleobase:()=>Br,SavedNucleobase:()=>Xr});var t={};r.r(t),r.d(t,{cx:()=>It,cy:()=>Lt,height:()=>zt,rx:()=>jt,ry:()=>Dt,width:()=>Vt,x:()=>kt,y:()=>Bt});var e={};r.r(e),r.d(e,{from:()=>Xt,to:()=>Yt});var i={};r.r(i),r.d(i,{MorphArray:()=>Qt,height:()=>te,width:()=>Kt,x:()=>Jt,y:()=>Zt});var s={};r.r(s),r.d(s,{array:()=>Ce,clear:()=>Ae,move:()=>Ee,plot:()=>Te,size:()=>je});var o={};r.r(o),r.d(o,{amove:()=>or,ax:()=>ir,ay:()=>sr,build:()=>ar,center:()=>nr,cx:()=>er,cy:()=>rr,length:()=>Je,move:()=>tr,plain:()=>Qe,x:()=>Ze,y:()=>Ke});var a={};r.r(a),r.d(a,{dmove:()=>fr,dx:()=>pr,dy:()=>mr,height:()=>gr,move:()=>yr,size:()=>wr,width:()=>br,x:()=>xr,y:()=>vr});const h={},u=[];function c(t,e){if(Array.isArray(t))for(const r of t)c(r,e);else if("object"!=typeof t)d(Object.getOwnPropertyNames(e)),h[t]=Object.assign(h[t]||{},e);else for(const e in t)c(e,t[e])}function l(t){return h[t]||{}}function d(t){u.push(...t)}function f(t,e){let r;const n=t.length,i=[];for(r=0;r<n;r++)i.push(e(t[r]));return i}function p(t){return t%360*Math.PI/180}function m(t){return t.charAt(0).toUpperCase()+t.slice(1)}function g(t,e,r,n){return null!=e&&null!=r||(n=n||t.bbox(),null==e?e=n.width/n.height*r:null==r&&(r=n.height/n.width*e)),{width:e,height:r}}function y(t,e){const r=t.origin;let n=null!=t.ox?t.ox:null!=t.originX?t.originX:"center",i=null!=t.oy?t.oy:null!=t.originY?t.originY:"center";null!=r&&([n,i]=Array.isArray(r)?r:"object"==typeof r?[r.x,r.y]:[r,r]);const s="string"==typeof n,o="string"==typeof i;if(s||o){const{height:t,width:r,x:a,y:h}=e.bbox();s&&(n=n.includes("left")?a:n.includes("right")?a+r:a+r/2),o&&(i=i.includes("top")?h:i.includes("bottom")?h+t:h+t/2)}return[n,i]}const w=new Set(["desc","metadata","title"]),b=t=>w.has(t.nodeName),x=(t,e,r={})=>{const n={...e};for(const t in n)n[t].valueOf()===r[t]&&delete n[t];Object.keys(n).length?t.node.setAttribute("data-svgjs",JSON.stringify(n)):(t.node.removeAttribute("data-svgjs"),t.node.removeAttribute("svgjs:data"))},v="http://www.w3.org/2000/svg",_="http://www.w3.org/2000/xmlns/",S="http://www.w3.org/1999/xlink",M={window:"undefined"==typeof window?null:window,document:"undefined"==typeof document?null:document};class O{}const N={},P="___SYMBOL___ROOT___";function C(t,e=v){return M.document.createElementNS(e,t)}function A(t,e=!1){if(t instanceof O)return t;if("object"==typeof t)return j(t);if(null==t)return new N[P];if("string"==typeof t&&"<"!==t.charAt(0))return j(M.document.querySelector(t));const r=e?M.document.createElement("div"):C("svg");return r.innerHTML=t,t=j(r.firstChild),r.removeChild(r.firstChild),t}function E(t,e){return e&&(e instanceof M.window.Node||e.ownerDocument&&e instanceof e.ownerDocument.defaultView.Node)?e:C(t)}function T(t){if(!t)return null;if(t.instance instanceof O)return t.instance;if("#document-fragment"===t.nodeName)return new N.Fragment(t);let e=m(t.nodeName||"Dom");return"LinearGradient"===e||"RadialGradient"===e?e="Gradient":N[e]||(e="Dom"),new N[e](t)}let j=T;function D(t,e=t.name,r=!1){return N[e]=t,r&&(N[P]=t),d(Object.getOwnPropertyNames(t.prototype)),t}let k=1e3;function B(t){return"Svgjs"+m(t)+k++}function I(t){for(let e=t.children.length-1;e>=0;e--)I(t.children[e]);return t.id?(t.id=B(t.nodeName),t):t}function L(t,e){let r,n;for(n=(t=Array.isArray(t)?t:[t]).length-1;n>=0;n--)for(r in e)t[n].prototype[r]=e[r]}function V(t){return function(...e){const r=e[e.length-1];return!r||r.constructor!==Object||r instanceof Array?t.apply(this,e):t.apply(this,e.slice(0,-1)).attr(r)}}c("Dom",{siblings:function(){return this.parent().children()},position:function(){return this.parent().index(this)},next:function(){return this.siblings()[this.position()+1]},prev:function(){return this.siblings()[this.position()-1]},forward:function(){const t=this.position();return this.parent().add(this.remove(),t+1),this},backward:function(){const t=this.position();return this.parent().add(this.remove(),t?t-1:0),this},front:function(){return this.parent().add(this.remove()),this},back:function(){return this.parent().add(this.remove(),0),this},before:function(t){(t=A(t)).remove();const e=this.position();return this.parent().add(t,e),this},after:function(t){(t=A(t)).remove();const e=this.position();return this.parent().add(t,e+1),this},insertBefore:function(t){return(t=A(t)).before(this),this},insertAfter:function(t){return(t=A(t)).after(this),this}});const z=/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,F=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,R=/rgb\((\d+),(\d+),(\d+)\)/,q=/(#[a-z_][a-z0-9\-_]*)/i,X=/\)\s*,?\s*/,Y=/\s/g,G=/^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i,H=/^rgb\(/,U=/^(\s+)?$/,$=/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,W=/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,Q=/[\s,]+/,J=/[MLHVCSQTAZ]/i;function Z(t){const e=Math.round(t),r=Math.max(0,Math.min(255,e)).toString(16);return 1===r.length?"0"+r:r}function K(t,e){for(let r=e.length;r--;)if(null==t[e[r]])return!1;return!0}function tt(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}c("Dom",{classes:function(){const t=this.attr("class");return null==t?[]:t.trim().split(Q)},hasClass:function(t){return-1!==this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){const e=this.classes();e.push(t),this.attr("class",e.join(" "))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr("class",this.classes().filter((function(e){return e!==t})).join(" ")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)}}),c("Dom",{css:function(t,e){const r={};if(0===arguments.length)return this.node.style.cssText.split(/\s*;\s*/).filter((function(t){return!!t.length})).forEach((function(t){const e=t.split(/\s*:\s*/);r[e[0]]=e[1]})),r;if(arguments.length<2){if(Array.isArray(t)){for(const e of t){const t=e;r[e]=this.node.style.getPropertyValue(t)}return r}if("string"==typeof t)return this.node.style.getPropertyValue(t);if("object"==typeof t)for(const e in t)this.node.style.setProperty(e,null==t[e]||U.test(t[e])?"":t[e])}return 2===arguments.length&&this.node.style.setProperty(t,null==e||U.test(e)?"":e),this},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},visible:function(){return"none"!==this.css("display")}}),c("Dom",{data:function(t,e,r){if(null==t)return this.data(f(function(t){let e;const r=t.length,n=[];for(e=0;e<r;e++)0===t[e].nodeName.indexOf("data-")&&n.push(t[e]);return n}(this.node.attributes),(t=>t.nodeName.slice(5))));if(t instanceof Array){const e={};for(const r of t)e[r]=this.data(r);return e}if("object"==typeof t)for(e in t)this.data(e,t[e]);else if(arguments.length<2)try{return JSON.parse(this.attr("data-"+t))}catch(e){return this.attr("data-"+t)}else this.attr("data-"+t,null===e?null:!0===r||"string"==typeof e||"number"==typeof e?e:JSON.stringify(e));return this}}),c("Dom",{remember:function(t,e){if("object"==typeof arguments[0])for(const e in t)this.remember(e,t[e]);else{if(1===arguments.length)return this.memory()[t];this.memory()[t]=e}return this},forget:function(){if(0===arguments.length)this._memory={};else for(let t=arguments.length-1;t>=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory=this._memory||{}}});class et{constructor(...t){this.init(...t)}static isColor(t){return t&&(t instanceof et||this.isRgb(t)||this.test(t))}static isRgb(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b}static random(t="vibrant",e){const{random:r,round:n,sin:i,PI:s}=Math;if("vibrant"===t){const t=24*r()+57,e=38*r()+45,n=360*r();return new et(t,e,n,"lch")}if("sine"===t){const t=n(80*i(2*s*(e=null==e?r():e)/.5+.01)+150),o=n(50*i(2*s*e/.5+4.6)+200),a=n(100*i(2*s*e/.5+2.3)+150);return new et(t,o,a)}if("pastel"===t){const t=8*r()+86,e=17*r()+9,n=360*r();return new et(t,e,n,"lch")}if("dark"===t){const t=10+10*r(),e=50*r()+86,n=360*r();return new et(t,e,n,"lch")}if("rgb"===t){const t=255*r(),e=255*r(),n=255*r();return new et(t,e,n)}if("lab"===t){const t=100*r(),e=256*r()-128,n=256*r()-128;return new et(t,e,n,"lab")}if("grey"===t){const t=255*r();return new et(t,t,t)}throw new Error("Unsupported random color mode")}static test(t){return"string"==typeof t&&(G.test(t)||H.test(t))}cmyk(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=Math.min(1-n,1-i,1-s);return 1===o?new et(0,0,0,1,"cmyk"):new et((1-n-o)/(1-o),(1-i-o)/(1-o),(1-s-o)/(1-o),o,"cmyk")}hsl(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=Math.max(n,i,s),a=Math.min(n,i,s),h=(o+a)/2,u=o===a,c=o-a;return new et(360*(u?0:o===n?((i-s)/c+(i<s?6:0))/6:o===i?((s-n)/c+2)/6:o===s?((n-i)/c+4)/6:0),100*(u?0:h>.5?c/(2-o-a):c/(o+a)),100*h,"hsl")}init(t=0,e=0,r=0,n=0,i="rgb"){if(t=t||0,this.space)for(const t in this.space)delete this[this.space[t]];if("number"==typeof t)i="string"==typeof n?n:i,n="string"==typeof n?0:n,Object.assign(this,{_a:t,_b:e,_c:r,_d:n,space:i});else if(t instanceof Array)this.space=e||("string"==typeof t[3]?t[3]:t[4])||"rgb",Object.assign(this,{_a:t[0],_b:t[1],_c:t[2],_d:t[3]||0});else if(t instanceof Object){const r=function(t,e){const r=K(t,"rgb")?{_a:t.r,_b:t.g,_c:t.b,_d:0,space:"rgb"}:K(t,"xyz")?{_a:t.x,_b:t.y,_c:t.z,_d:0,space:"xyz"}:K(t,"hsl")?{_a:t.h,_b:t.s,_c:t.l,_d:0,space:"hsl"}:K(t,"lab")?{_a:t.l,_b:t.a,_c:t.b,_d:0,space:"lab"}:K(t,"lch")?{_a:t.l,_b:t.c,_c:t.h,_d:0,space:"lch"}:K(t,"cmyk")?{_a:t.c,_b:t.m,_c:t.y,_d:t.k,space:"cmyk"}:{_a:0,_b:0,_c:0,space:"rgb"};return r.space=e||r.space,r}(t,e);Object.assign(this,r)}else if("string"==typeof t)if(H.test(t)){const e=t.replace(Y,""),[r,n,i]=R.exec(e).slice(1,4).map((t=>parseInt(t)));Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}else{if(!G.test(t))throw Error("Unsupported string format, can't construct Color");{const e=t=>parseInt(t,16),[,r,n,i]=F.exec(function(t){return 4===t.length?["#",t.substring(1,2),t.substring(1,2),t.substring(2,3),t.substring(2,3),t.substring(3,4),t.substring(3,4)].join(""):t}(t)).map(e);Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}}const{_a:s,_b:o,_c:a,_d:h}=this,u="rgb"===this.space?{r:s,g:o,b:a}:"xyz"===this.space?{x:s,y:o,z:a}:"hsl"===this.space?{h:s,s:o,l:a}:"lab"===this.space?{l:s,a:o,b:a}:"lch"===this.space?{l:s,c:o,h:a}:"cmyk"===this.space?{c:s,m:o,y:a,k:h}:{};Object.assign(this,u)}lab(){const{x:t,y:e,z:r}=this.xyz();return new et(116*e-16,500*(t-e),200*(e-r),"lab")}lch(){const{l:t,a:e,b:r}=this.lab(),n=Math.sqrt(e**2+r**2);let i=180*Math.atan2(r,e)/Math.PI;return i<0&&(i*=-1,i=360-i),new et(t,n,i,"lch")}rgb(){if("rgb"===this.space)return this;if("lab"===(t=this.space)||"xyz"===t||"lch"===t){let{x:t,y:e,z:r}=this;if("lab"===this.space||"lch"===this.space){let{l:n,a:i,b:s}=this;if("lch"===this.space){const{c:t,h:e}=this,r=Math.PI/180;i=t*Math.cos(r*e),s=t*Math.sin(r*e)}const o=(n+16)/116,a=i/500+o,h=o-s/200,u=16/116,c=.008856,l=7.787;t=.95047*(a**3>c?a**3:(a-u)/l),e=1*(o**3>c?o**3:(o-u)/l),r=1.08883*(h**3>c?h**3:(h-u)/l)}const n=3.2406*t+-1.5372*e+-.4986*r,i=-.9689*t+1.8758*e+.0415*r,s=.0557*t+-.204*e+1.057*r,o=Math.pow,a=.0031308,h=n>a?1.055*o(n,1/2.4)-.055:12.92*n,u=i>a?1.055*o(i,1/2.4)-.055:12.92*i,c=s>a?1.055*o(s,1/2.4)-.055:12.92*s;return new et(255*h,255*u,255*c)}if("hsl"===this.space){let{h:t,s:e,l:r}=this;if(t/=360,e/=100,r/=100,0===e)return r*=255,new et(r,r,r);const n=r<.5?r*(1+e):r+e-r*e,i=2*r-n,s=255*tt(i,n,t+1/3),o=255*tt(i,n,t),a=255*tt(i,n,t-1/3);return new et(s,o,a)}if("cmyk"===this.space){const{c:t,m:e,y:r,k:n}=this,i=255*(1-Math.min(1,t*(1-n)+n)),s=255*(1-Math.min(1,e*(1-n)+n)),o=255*(1-Math.min(1,r*(1-n)+n));return new et(i,s,o)}return this;var t}toArray(){const{_a:t,_b:e,_c:r,_d:n,space:i}=this;return[t,e,r,n,i]}toHex(){const[t,e,r]=this._clamped().map(Z);return`#${t}${e}${r}`}toRgb(){const[t,e,r]=this._clamped();return`rgb(${t},${e},${r})`}toString(){return this.toHex()}xyz(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92,a=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92,h=s>.04045?Math.pow((s+.055)/1.055,2.4):s/12.92,u=(.4124*o+.3576*a+.1805*h)/.95047,c=(.2126*o+.7152*a+.0722*h)/1,l=(.0193*o+.1192*a+.9505*h)/1.08883,d=u>.008856?Math.pow(u,1/3):7.787*u+16/116,f=c>.008856?Math.pow(c,1/3):7.787*c+16/116,p=l>.008856?Math.pow(l,1/3):7.787*l+16/116;return new et(d,f,p,"xyz")}_clamped(){const{_a:t,_b:e,_c:r}=this.rgb(),{max:n,min:i,round:s}=Math;return[t,e,r].map((t=>n(0,i(s(t),255))))}}class rt{constructor(...t){this.init(...t)}clone(){return new rt(this)}init(t,e){const r=Array.isArray(t)?{x:t[0],y:t[1]}:"object"==typeof t?{x:t.x,y:t.y}:{x:t,y:e};return this.x=null==r.x?0:r.x,this.y=null==r.y?0:r.y,this}toArray(){return[this.x,this.y]}transform(t){return this.clone().transformO(t)}transformO(t){it.isMatrixLike(t)||(t=new it(t));const{x:e,y:r}=this;return this.x=t.a*e+t.c*r+t.e,this.y=t.b*e+t.d*r+t.f,this}}function nt(t,e,r){return Math.abs(e-t)<(r||1e-6)}class it{constructor(...t){this.init(...t)}static formatTransforms(t){const e="both"===t.flip||!0===t.flip,r=t.flip&&(e||"x"===t.flip)?-1:1,n=t.flip&&(e||"y"===t.flip)?-1:1,i=t.skew&&t.skew.length?t.skew[0]:isFinite(t.skew)?t.skew:isFinite(t.skewX)?t.skewX:0,s=t.skew&&t.skew.length?t.skew[1]:isFinite(t.skew)?t.skew:isFinite(t.skewY)?t.skewY:0,o=t.scale&&t.scale.length?t.scale[0]*r:isFinite(t.scale)?t.scale*r:isFinite(t.scaleX)?t.scaleX*r:r,a=t.scale&&t.scale.length?t.scale[1]*n:isFinite(t.scale)?t.scale*n:isFinite(t.scaleY)?t.scaleY*n:n,h=t.shear||0,u=t.rotate||t.theta||0,c=new rt(t.origin||t.around||t.ox||t.originX,t.oy||t.originY),l=c.x,d=c.y,f=new rt(t.position||t.px||t.positionX||NaN,t.py||t.positionY||NaN),p=f.x,m=f.y,g=new rt(t.translate||t.tx||t.translateX,t.ty||t.translateY),y=g.x,w=g.y,b=new rt(t.relative||t.rx||t.relativeX,t.ry||t.relativeY);return{scaleX:o,scaleY:a,skewX:i,skewY:s,shear:h,theta:u,rx:b.x,ry:b.y,tx:y,ty:w,ox:l,oy:d,px:p,py:m}}static fromArray(t){return{a:t[0],b:t[1],c:t[2],d:t[3],e:t[4],f:t[5]}}static isMatrixLike(t){return null!=t.a||null!=t.b||null!=t.c||null!=t.d||null!=t.e||null!=t.f}static matrixMultiply(t,e,r){const n=t.a*e.a+t.c*e.b,i=t.b*e.a+t.d*e.b,s=t.a*e.c+t.c*e.d,o=t.b*e.c+t.d*e.d,a=t.e+t.a*e.e+t.c*e.f,h=t.f+t.b*e.e+t.d*e.f;return r.a=n,r.b=i,r.c=s,r.d=o,r.e=a,r.f=h,r}around(t,e,r){return this.clone().aroundO(t,e,r)}aroundO(t,e,r){const n=t||0,i=e||0;return this.translateO(-n,-i).lmultiplyO(r).translateO(n,i)}clone(){return new it(this)}decompose(t=0,e=0){const r=this.a,n=this.b,i=this.c,s=this.d,o=this.e,a=this.f,h=r*s-n*i,u=h>0?1:-1,c=u*Math.sqrt(r*r+n*n),l=Math.atan2(u*n,u*r),d=180/Math.PI*l,f=Math.cos(l),p=Math.sin(l),m=(r*i+n*s)/h,g=i*c/(m*r-n)||s*c/(m*n+r);return{scaleX:c,scaleY:g,shear:m,rotate:d,translateX:o-t+t*f*c+e*(m*f*c-p*g),translateY:a-e+t*p*c+e*(m*p*c+f*g),originX:t,originY:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}equals(t){if(t===this)return!0;const e=new it(t);return nt(this.a,e.a)&&nt(this.b,e.b)&&nt(this.c,e.c)&&nt(this.d,e.d)&&nt(this.e,e.e)&&nt(this.f,e.f)}flip(t,e){return this.clone().flipO(t,e)}flipO(t,e){return"x"===t?this.scaleO(-1,1,e,0):"y"===t?this.scaleO(1,-1,0,e):this.scaleO(-1,-1,t,e||t)}init(t){const e=it.fromArray([1,0,0,1,0,0]);return t=t instanceof Pt?t.matrixify():"string"==typeof t?it.fromArray(t.split(Q).map(parseFloat)):Array.isArray(t)?it.fromArray(t):"object"==typeof t&&it.isMatrixLike(t)?t:"object"==typeof t?(new it).transform(t):6===arguments.length?it.fromArray([].slice.call(arguments)):e,this.a=null!=t.a?t.a:e.a,this.b=null!=t.b?t.b:e.b,this.c=null!=t.c?t.c:e.c,this.d=null!=t.d?t.d:e.d,this.e=null!=t.e?t.e:e.e,this.f=null!=t.f?t.f:e.f,this}inverse(){return this.clone().inverseO()}inverseO(){const t=this.a,e=this.b,r=this.c,n=this.d,i=this.e,s=this.f,o=t*n-e*r;if(!o)throw new Error("Cannot invert "+this);const a=n/o,h=-e/o,u=-r/o,c=t/o,l=-(a*i+u*s),d=-(h*i+c*s);return this.a=a,this.b=h,this.c=u,this.d=c,this.e=l,this.f=d,this}lmultiply(t){return this.clone().lmultiplyO(t)}lmultiplyO(t){const e=t instanceof it?t:new it(t);return it.matrixMultiply(e,this,this)}multiply(t){return this.clone().multiplyO(t)}multiplyO(t){const e=t instanceof it?t:new it(t);return it.matrixMultiply(this,e,this)}rotate(t,e,r){return this.clone().rotateO(t,e,r)}rotateO(t,e=0,r=0){t=p(t);const n=Math.cos(t),i=Math.sin(t),{a:s,b:o,c:a,d:h,e:u,f:c}=this;return this.a=s*n-o*i,this.b=o*n+s*i,this.c=a*n-h*i,this.d=h*n+a*i,this.e=u*n-c*i+r*i-e*n+e,this.f=c*n+u*i-e*i-r*n+r,this}scale(){return this.clone().scaleO(...arguments)}scaleO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t);const{a:i,b:s,c:o,d:a,e:h,f:u}=this;return this.a=i*t,this.b=s*e,this.c=o*t,this.d=a*e,this.e=h*t-r*t+r,this.f=u*e-n*e+n,this}shear(t,e,r){return this.clone().shearO(t,e,r)}shearO(t,e=0,r=0){const{a:n,b:i,c:s,d:o,e:a,f:h}=this;return this.a=n+i*t,this.c=s+o*t,this.e=a+h*t-r*t,this}skew(){return this.clone().skewO(...arguments)}skewO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t),t=p(t),e=p(e);const i=Math.tan(t),s=Math.tan(e),{a:o,b:a,c:h,d:u,e:c,f:l}=this;return this.a=o+a*i,this.b=a+o*s,this.c=h+u*i,this.d=u+h*s,this.e=c+l*i-n*i,this.f=l+c*s-r*s,this}skewX(t,e,r){return this.skew(t,0,e,r)}skewY(t,e,r){return this.skew(0,t,e,r)}toArray(){return[this.a,this.b,this.c,this.d,this.e,this.f]}toString(){return"matrix("+this.a+","+this.b+","+this.c+","+this.d+","+this.e+","+this.f+")"}transform(t){if(it.isMatrixLike(t))return new it(t).multiplyO(this);const e=it.formatTransforms(t),{x:r,y:n}=new rt(e.ox,e.oy).transform(this),i=(new it).translateO(e.rx,e.ry).lmultiplyO(this).translateO(-r,-n).scaleO(e.scaleX,e.scaleY).skewO(e.skewX,e.skewY).shearO(e.shear).rotateO(e.theta).translateO(r,n);if(isFinite(e.px)||isFinite(e.py)){const t=new rt(r,n).transform(i),s=isFinite(e.px)?e.px-t.x:0,o=isFinite(e.py)?e.py-t.y:0;i.translateO(s,o)}return i.translateO(e.tx,e.ty),i}translate(t,e){return this.clone().translateO(t,e)}translateO(t,e){return this.e+=t||0,this.f+=e||0,this}valueOf(){return{a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}}function st(){if(!st.nodes){const t=A().size(2,0);t.node.style.cssText=["opacity: 0","position: absolute","left: -100%","top: -100%","overflow: hidden"].join(";"),t.attr("focusable","false"),t.attr("aria-hidden","true");const e=t.path().node;st.nodes={svg:t,path:e}}if(!st.nodes.svg.node.parentNode){const t=M.document.body||M.document.documentElement;st.nodes.svg.addTo(t)}return st.nodes}function ot(t){return!(t.width||t.height||t.x||t.y)}D(it,"Matrix");class at{constructor(...t){this.init(...t)}addOffset(){return this.x+=M.window.pageXOffset,this.y+=M.window.pageYOffset,new at(this)}init(t){return t="string"==typeof t?t.split(Q).map(parseFloat):Array.isArray(t)?t:"object"==typeof t?[null!=t.left?t.left:t.x,null!=t.top?t.top:t.y,t.width,t.height]:4===arguments.length?[].slice.call(arguments):[0,0,0,0],this.x=t[0]||0,this.y=t[1]||0,this.width=this.w=t[2]||0,this.height=this.h=t[3]||0,this.x2=this.x+this.w,this.y2=this.y+this.h,this.cx=this.x+this.w/2,this.cy=this.y+this.h/2,this}isNulled(){return ot(this)}merge(t){const e=Math.min(this.x,t.x),r=Math.min(this.y,t.y),n=Math.max(this.x+this.width,t.x+t.width)-e,i=Math.max(this.y+this.height,t.y+t.height)-r;return new at(e,r,n,i)}toArray(){return[this.x,this.y,this.width,this.height]}toString(){return this.x+" "+this.y+" "+this.width+" "+this.height}transform(t){t instanceof it||(t=new it(t));let e=1/0,r=-1/0,n=1/0,i=-1/0;return[new rt(this.x,this.y),new rt(this.x2,this.y),new rt(this.x,this.y2),new rt(this.x2,this.y2)].forEach((function(s){s=s.transform(t),e=Math.min(e,s.x),r=Math.max(r,s.x),n=Math.min(n,s.y),i=Math.max(i,s.y)})),new at(e,n,r-e,i-n)}}function ht(t,e,r){let n;try{if(n=e(t.node),ot(n)&&(i=t.node)!==M.document&&!(M.document.documentElement.contains||function(t){for(;t.parentNode;)t=t.parentNode;return t===M.document}).call(M.document.documentElement,i))throw new Error("Element not in the dom")}catch(e){n=r(t)}var i;return n}c({viewbox:{viewbox(t,e,r,n){return null==t?new at(this.attr("viewBox")):this.attr("viewBox",new at(t,e,r,n))},zoom(t,e){let{width:r,height:n}=this.attr(["width","height"]);if((r||n)&&"string"!=typeof r&&"string"!=typeof n||(r=this.node.clientWidth,n=this.node.clientHeight),!r||!n)throw new Error("Impossible to get absolute width and height. Please provide an absolute width and height attribute on the zooming element");const i=this.viewbox(),s=r/i.width,o=n/i.height,a=Math.min(s,o);if(null==t)return a;let h=a/t;h===1/0&&(h=Number.MAX_SAFE_INTEGER/100),e=e||new rt(r/2/s+i.x,n/2/o+i.y);const u=new at(i).transform(new it({scale:h,origin:e}));return this.viewbox(u)}}}),D(at,"Box");class ut extends Array{constructor(t=[],...e){if(super(t,...e),"number"==typeof t)return this;this.length=0,this.push(...t)}}const ct=ut;L([ut],{each(t,...e){return"function"==typeof t?this.map(((e,r,n)=>t.call(e,e,r,n))):this.map((r=>r[t](...e)))},toArray(){return Array.prototype.concat.apply([],this)}});const lt=["toArray","constructor","each"];function dt(t,e){return new ct(f((e||M.document).querySelectorAll(t),(function(t){return T(t)})))}ut.extend=function(t){t=t.reduce(((t,e)=>(lt.includes(e)||"_"===e[0]||(e in Array.prototype&&(t["$"+e]=Array.prototype[e]),t[e]=function(...t){return this.each(e,...t)}),t)),{}),L([ut],t)};let ft=0;const pt={};function mt(t){let e=t.getEventHolder();return e===M.window&&(e=pt),e.events||(e.events={}),e.events}function gt(t){return t.getEventTarget()}function yt(t,e,r,n,i){const s=r.bind(n||t),o=A(t),a=mt(o),h=gt(o);e=Array.isArray(e)?e:e.split(Q),r._svgjsListenerId||(r._svgjsListenerId=++ft),e.forEach((function(t){const e=t.split(".")[0],n=t.split(".")[1]||"*";a[e]=a[e]||{},a[e][n]=a[e][n]||{},a[e][n][r._svgjsListenerId]=s,h.addEventListener(e,s,i||!1)}))}function wt(t,e,r,n){const i=A(t),s=mt(i),o=gt(i);("function"!=typeof r||(r=r._svgjsListenerId))&&(e=Array.isArray(e)?e:(e||"").split(Q)).forEach((function(t){const e=t&&t.split(".")[0],a=t&&t.split(".")[1];let h,u;if(r)s[e]&&s[e][a||"*"]&&(o.removeEventListener(e,s[e][a||"*"][r],n||!1),delete s[e][a||"*"][r]);else if(e&&a){if(s[e]&&s[e][a]){for(u in s[e][a])wt(o,[e,a].join("."),u);delete s[e][a]}}else if(a)for(t in s)for(h in s[t])a===h&&wt(o,[t,a].join("."));else if(e){if(s[e]){for(h in s[e])wt(o,[e,h].join("."));delete s[e]}}else{for(t in s)wt(o,t);!function(t){let e=t.getEventHolder();e===M.window&&(e=pt),e.events&&(e.events={})}(i)}}))}class bt extends O{addEventListener(){}dispatch(t,e,r){return function(t,e,r,n){const i=gt(t);return e instanceof M.window.Event||(e=new M.window.CustomEvent(e,{detail:r,cancelable:!0,...n})),i.dispatchEvent(e),e}(this,t,e,r)}dispatchEvent(t){const e=this.getEventHolder().events;if(!e)return!0;const r=e[t.type];for(const e in r)for(const n in r[e])r[e][n](t);return!t.defaultPrevented}fire(t,e,r){return this.dispatch(t,e,r),this}getEventHolder(){return this}getEventTarget(){return this}off(t,e,r){return wt(this,t,e,r),this}on(t,e,r,n){return yt(this,t,e,r,n),this}removeEventListener(){}}function xt(){}D(bt,"EventTarget");const vt={"fill-opacity":1,"stroke-opacity":1,"stroke-width":0,"stroke-linejoin":"miter","stroke-linecap":"butt",fill:"#000000",stroke:"#000000",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,"stop-opacity":1,"stop-color":"#000000","text-anchor":"start"};class _t extends Array{constructor(...t){super(...t),this.init(...t)}clone(){return new this.constructor(this)}init(t){return"number"==typeof t||(this.length=0,this.push(...this.parse(t))),this}parse(t=[]){return t instanceof Array?t:t.trim().split(Q).map(parseFloat)}toArray(){return Array.prototype.concat.apply([],this)}toSet(){return new Set(this)}toString(){return this.join(" ")}valueOf(){const t=[];return t.push(...this),t}}class St{constructor(...t){this.init(...t)}convert(t){return new St(this.value,t)}divide(t){return t=new St(t),new St(this/t,this.unit||t.unit)}init(t,e){return e=Array.isArray(t)?t[1]:e,t=Array.isArray(t)?t[0]:t,this.value=0,this.unit=e||"","number"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:"string"==typeof t?(e=t.match(z))&&(this.value=parseFloat(e[1]),"%"===e[5]?this.value/=100:"s"===e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof St&&(this.value=t.valueOf(),this.unit=t.unit),this}minus(t){return t=new St(t),new St(this-t,this.unit||t.unit)}plus(t){return t=new St(t),new St(this+t,this.unit||t.unit)}times(t){return t=new St(t),new St(this*t,this.unit||t.unit)}toArray(){return[this.value,this.unit]}toJSON(){return this.toString()}toString(){return("%"===this.unit?~~(1e8*this.value)/1e6:"s"===this.unit?this.value/1e3:this.value)+this.unit}valueOf(){return this.value}}const Mt=new Set(["fill","stroke","color","bgcolor","stop-color","flood-color","lighting-color"]),Ot=[];class Nt extends bt{constructor(t,e){super(),this.node=t,this.type=t.nodeName,e&&t!==e&&this.attr(e)}add(t,e){return(t=A(t)).removeNamespace&&this.node instanceof M.window.SVGElement&&t.removeNamespace(),null==e?this.node.appendChild(t.node):t.node!==this.node.childNodes[e]&&this.node.insertBefore(t.node,this.node.childNodes[e]),this}addTo(t,e){return A(t).put(this,e)}children(){return new ct(f(this.node.children,(function(t){return T(t)})))}clear(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return this}clone(t=!0,e=!0){this.writeDataToDom();let r=this.node.cloneNode(t);return e&&(r=I(r)),new this.constructor(r)}each(t,e){const r=this.children();let n,i;for(n=0,i=r.length;n<i;n++)t.apply(r[n],[n,r]),e&&r[n].each(t,e);return this}element(t,e){return this.put(new Nt(C(t),e))}first(){return T(this.node.firstChild)}get(t){return T(this.node.childNodes[t])}getEventHolder(){return this.node}getEventTarget(){return this.node}has(t){return this.index(t)>=0}html(t,e){return this.xml(t,e,"http://www.w3.org/1999/xhtml")}id(t){return void 0!==t||this.node.id||(this.node.id=B(this.type)),this.attr("id",t)}index(t){return[].slice.call(this.node.childNodes).indexOf(t.node)}last(){return T(this.node.lastChild)}matches(t){const e=this.node,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector||null;return r&&r.call(e,t)}parent(t){let e=this;if(!e.node.parentNode)return null;if(e=T(e.node.parentNode),!t)return e;do{if("string"==typeof t?e.matches(t):e instanceof t)return e}while(e=T(e.node.parentNode));return e}put(t,e){return t=A(t),this.add(t,e),t}putIn(t,e){return A(t).add(this,e)}remove(){return this.parent()&&this.parent().removeElement(this),this}removeElement(t){return this.node.removeChild(t.node),this}replace(t){return t=A(t),this.node.parentNode&&this.node.parentNode.replaceChild(t.node,this.node),t}round(t=2,e=null){const r=10**t,n=this.attr(e);for(const t in n)"number"==typeof n[t]&&(n[t]=Math.round(n[t]*r)/r);return this.attr(n),this}svg(t,e){return this.xml(t,e,v)}toString(){return this.id()}words(t){return this.node.textContent=t,this}wrap(t){const e=this.parent();if(!e)return this.addTo(t);const r=e.index(this);return e.put(t,r).put(this)}writeDataToDom(){return this.each((function(){this.writeDataToDom()})),this}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){e=null==e||e,this.writeDataToDom();let r=this;if(null!=t){if(r=T(r.node.cloneNode(!0)),e){const e=t(r);if(r=e||r,!1===e)return""}r.each((function(){const e=t(this),r=e||this;!1===e?this.remove():e&&this!==r&&this.replace(r)}),!0)}return e?r.node.outerHTML:r.node.innerHTML}e=null!=e&&e;const n=C("wrapper",r),i=M.document.createDocumentFragment();n.innerHTML=t;for(let t=n.children.length;t--;)i.appendChild(n.firstElementChild);const s=this.parent();return e?this.replace(i)&&s:this.add(i)}}L(Nt,{attr:function(t,e,r){if(null==t){t={},e=this.node.attributes;for(const r of e)t[r.nodeName]=$.test(r.nodeValue)?parseFloat(r.nodeValue):r.nodeValue;return t}if(t instanceof Array)return t.reduce(((t,e)=>(t[e]=this.attr(e),t)),{});if("object"==typeof t&&t.constructor===Object)for(e in t)this.attr(e,t[e]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?vt[t]:$.test(e)?parseFloat(e):e;"number"==typeof(e=Ot.reduce(((e,r)=>r(t,e,this)),e))?e=new St(e):Mt.has(t)&&et.isColor(e)?e=new et(e):e.constructor===Array&&(e=new _t(e)),"leading"===t?this.leading&&this.leading(e):"string"==typeof r?this.node.setAttributeNS(r,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!==t&&"x"!==t||this.rebuild()}return this},find:function(t){return dt(t,this.node)},findOne:function(t){return T(this.node.querySelector(t))}}),D(Nt,"Dom");class Pt extends Nt{constructor(t,e){super(t,e),this.dom={},this.node.instance=this,(t.hasAttribute("data-svgjs")||t.hasAttribute("svgjs:data"))&&this.setData(JSON.parse(t.getAttribute("data-svgjs"))??JSON.parse(t.getAttribute("svgjs:data"))??{})}center(t,e){return this.cx(t).cy(e)}cx(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)}cy(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)}defs(){const t=this.root();return t&&t.defs()}dmove(t,e){return this.dx(t).dy(e)}dx(t=0){return this.x(new St(t).plus(this.x()))}dy(t=0){return this.y(new St(t).plus(this.y()))}getEventHolder(){return this}height(t){return this.attr("height",t)}move(t,e){return this.x(t).y(e)}parents(t=this.root()){const e="string"==typeof t;e||(t=A(t));const r=new ct;let n=this;for(;(n=n.parent())&&n.node!==M.document&&"#document-fragment"!==n.nodeName&&(r.push(n),e||n.node!==t.node)&&(!e||!n.matches(t));)if(n.node===this.root().node)return null;return r}reference(t){if(!(t=this.attr(t)))return null;const e=(t+"").match(q);return e?A(e[1]):null}root(){const t=this.parent(N[P]);return t&&t.root()}setData(t){return this.dom=t,this}size(t,e){const r=g(this,t,e);return this.width(new St(r.width)).height(new St(r.height))}width(t){return this.attr("width",t)}writeDataToDom(){return x(this,this.dom),super.writeDataToDom()}x(t){return this.attr("x",t)}y(t){return this.attr("y",t)}}L(Pt,{bbox:function(){const t=ht(this,(t=>t.getBBox()),(t=>{try{const e=t.clone().addTo(st().svg).show(),r=e.node.getBBox();return e.remove(),r}catch(e){throw new Error(`Getting bbox of element "${t.node.nodeName}" is not possible: ${e.toString()}`)}}));return new at(t)},rbox:function(t){const e=ht(this,(t=>t.getBoundingClientRect()),(t=>{throw new Error(`Getting rbox of element "${t.node.nodeName}" is not possible`)})),r=new at(e);return t?r.transform(t.screenCTM().inverseO()):r.addOffset()},inside:function(t,e){const r=this.bbox();return t>r.x&&e>r.y&&t<r.x+r.width&&e<r.y+r.height},point:function(t,e){return new rt(t,e).transformO(this.screenCTM().inverseO())},ctm:function(){return new it(this.node.getCTM())},screenCTM:function(){try{if("function"==typeof this.isRoot&&!this.isRoot()){const t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new it(e)}return new it(this.node.getScreenCTM())}catch(t){return console.warn(`Cannot get CTM from SVG node ${this.node.nodeName}. Is the element rendered?`),new it}}}),D(Pt,"Element");const Ct={stroke:["color","width","opacity","linecap","linejoin","miterlimit","dasharray","dashoffset"],fill:["color","opacity","rule"],prefix:function(t,e){return"color"===e?t:t+"-"+e}};["fill","stroke"].forEach((function(t){const e={};let r;e[t]=function(e){if(void 0===e)return this.attr(t);if("string"==typeof e||e instanceof et||et.isRgb(e)||e instanceof Pt)this.attr(t,e);else for(r=Ct[t].length-1;r>=0;r--)null!=e[Ct[t][r]]&&this.attr(Ct.prefix(t,Ct[t][r]),e[Ct[t][r]]);return this},c(["Element","Runner"],e)})),c(["Element","Runner"],{matrix:function(t,e,r,n,i,s){return null==t?new it(this):this.attr("transform",new it(t,e,r,n,i,s))},rotate:function(t,e,r){return this.transform({rotate:t,ox:e,oy:r},!0)},skew:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({skew:t,ox:e,oy:r},!0):this.transform({skew:[t,e],ox:r,oy:n},!0)},shear:function(t,e,r){return this.transform({shear:t,ox:e,oy:r},!0)},scale:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({scale:t,ox:e,oy:r},!0):this.transform({scale:[t,e],ox:r,oy:n},!0)},translate:function(t,e){return this.transform({translate:[t,e]},!0)},relative:function(t,e){return this.transform({relative:[t,e]},!0)},flip:function(t="both",e="center"){return-1==="xybothtrue".indexOf(t)&&(e=t,t="both"),this.transform({flip:t,origin:e},!0)},opacity:function(t){return this.attr("opacity",t)}}),c("radius",{radius:function(t,e=t){return"radialGradient"===(this._element||this).type?this.attr("r",new St(t)):this.rx(t).ry(e)}}),c("Path",{length:function(){return this.node.getTotalLength()},pointAt:function(t){return new rt(this.node.getPointAtLength(t))}}),c(["Element","Runner"],{font:function(t,e){if("object"==typeof t){for(e in t)this.font(e,t[e]);return this}return"leading"===t?this.leading(e):"anchor"===t?this.attr("text-anchor",e):"size"===t||"family"===t||"weight"===t||"stretch"===t||"variant"===t||"style"===t?this.attr("font-"+t,e):this.attr(t,e)}}),c("Element",["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","touchstart","touchmove","touchleave","touchend","touchcancel","contextmenu","wheel","pointerdown","pointermove","pointerup","pointerleave","pointercancel"].reduce((function(t,e){return t[e]=function(t){return null===t?this.off(e):this.on(e,t),this},t}),{})),c("Element",{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(X).slice(0,-1).map((function(t){const e=t.trim().split("(");return[e[0],e[1].split(Q).map((function(t){return parseFloat(t)}))]})).reverse().reduce((function(t,e){return"matrix"===e[0]?t.lmultiply(it.fromArray(e[1])):t[e[0]].apply(t,e[1])}),new it)},toParent:function(t,e){if(this===t)return this;if(b(this.node))return this.addTo(t,e);const r=this.screenCTM(),n=t.screenCTM().inverse();return this.addTo(t,e).untransform().transform(n.multiply(r)),this},toRoot:function(t){return this.toParent(this.root(),t)},transform:function(t,e){if(null==t||"string"==typeof t){const e=new it(this).decompose();return null==t?e:e[t]}it.isMatrixLike(t)||(t={...t,origin:y(t,this)});const r=new it(!0===e?this:e||!1).transform(t);return this.attr("transform",r)}});class At extends Pt{flatten(){return this.each((function(){if(this instanceof At)return this.flatten().ungroup()})),this}ungroup(t=this.parent(),e=t.index(this)){return e=-1===e?t.children().length:e,this.each((function(r,n){return n[n.length-r-1].toParent(t,e)})),this.remove()}}D(At,"Container");class Et extends At{constructor(t,e=t){super(E("defs",t),e)}flatten(){return this}ungroup(){return this}}D(Et,"Defs");class Tt extends Pt{}function jt(t){return this.attr("rx",t)}function Dt(t){return this.attr("ry",t)}function kt(t){return null==t?this.cx()-this.rx():this.cx(t+this.rx())}function Bt(t){return null==t?this.cy()-this.ry():this.cy(t+this.ry())}function It(t){return this.attr("cx",t)}function Lt(t){return this.attr("cy",t)}function Vt(t){return null==t?2*this.rx():this.rx(new St(t).divide(2))}function zt(t){return null==t?2*this.ry():this.ry(new St(t).divide(2))}D(Tt,"Shape");class Ft extends Tt{constructor(t,e=t){super(E("ellipse",t),e)}size(t,e){const r=g(this,t,e);return this.rx(new St(r.width).divide(2)).ry(new St(r.height).divide(2))}}L(Ft,t),c("Container",{ellipse:V((function(t=0,e=t){return this.put(new Ft).size(t,e).move(0,0)}))}),D(Ft,"Ellipse");class Rt extends Nt{constructor(t=M.document.createDocumentFragment()){super(t)}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){const t=new Nt(C("wrapper",r));return t.add(this.node.cloneNode(!0)),t.xml(!1,r)}return super.xml(t,!1,r)}}D(Rt,"Fragment");const qt=Rt;function Xt(t,e){return"radialGradient"===(this._element||this).type?this.attr({fx:new St(t),fy:new St(e)}):this.attr({x1:new St(t),y1:new St(e)})}function Yt(t,e){return"radialGradient"===(this._element||this).type?this.attr({cx:new St(t),cy:new St(e)}):this.attr({x2:new St(t),y2:new St(e)})}class Gt extends At{constructor(t,e){super(E(t+"Gradient","string"==typeof t?null:t),e)}attr(t,e,r){return"transform"===t&&(t="gradientTransform"),super.attr(t,e,r)}bbox(){return new at}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}L(Gt,e),c({Container:{gradient(...t){return this.defs().gradient(...t)}},Defs:{gradient:V((function(t,e){return this.put(new Gt(t)).update(e)}))}}),D(Gt,"Gradient");class Ht extends At{constructor(t,e=t){super(E("pattern",t),e)}attr(t,e,r){return"transform"===t&&(t="patternTransform"),super.attr(t,e,r)}bbox(){return new at}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}c({Container:{pattern(...t){return this.defs().pattern(...t)}},Defs:{pattern:V((function(t,e,r){return this.put(new Ht).update(r).attr({x:0,y:0,width:t,height:e,patternUnits:"userSpaceOnUse"})}))}}),D(Ht,"Pattern");class Ut extends Tt{constructor(t,e=t){super(E("image",t),e)}load(t,e){if(!t)return this;const r=new M.window.Image;return yt(r,"load",(function(t){const n=this.parent(Ht);0===this.width()&&0===this.height()&&this.size(r.width,r.height),n instanceof Ht&&0===n.width()&&0===n.height()&&n.size(this.width(),this.height()),"function"==typeof e&&e.call(this,t)}),this),yt(r,"load error",(function(){wt(r)})),this.attr("href",r.src=t,S)}}var $t;$t=function(t,e,r){return"fill"!==t&&"stroke"!==t||W.test(e)&&(e=r.root().defs().image(e)),e instanceof Ut&&(e=r.root().defs().pattern(0,0,(t=>{t.add(e)}))),e},Ot.push($t),c({Container:{image:V((function(t,e){return this.put(new Ut).size(0,0).load(t,e)}))}}),D(Ut,"Image");class Wt extends _t{bbox(){let t=-1/0,e=-1/0,r=1/0,n=1/0;return this.forEach((function(i){t=Math.max(i[0],t),e=Math.max(i[1],e),r=Math.min(i[0],r),n=Math.min(i[1],n)})),new at(r,n,t-r,e-n)}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r=this.length-1;r>=0;r--)this[r]=[this[r][0]+t,this[r][1]+e];return this}parse(t=[0,0]){const e=[];(t=t instanceof Array?Array.prototype.concat.apply([],t):t.trim().split(Q).map(parseFloat)).length%2!=0&&t.pop();for(let r=0,n=t.length;r<n;r+=2)e.push([t[r],t[r+1]]);return e}size(t,e){let r;const n=this.bbox();for(r=this.length-1;r>=0;r--)n.width&&(this[r][0]=(this[r][0]-n.x)*t/n.width+n.x),n.height&&(this[r][1]=(this[r][1]-n.y)*e/n.height+n.y);return this}toLine(){return{x1:this[0][0],y1:this[0][1],x2:this[1][0],y2:this[1][1]}}toString(){const t=[];for(let e=0,r=this.length;e<r;e++)t.push(this[e].join(","));return t.join(" ")}transform(t){return this.clone().transformO(t)}transformO(t){it.isMatrixLike(t)||(t=new it(t));for(let e=this.length;e--;){const[r,n]=this[e];this[e][0]=t.a*r+t.c*n+t.e,this[e][1]=t.b*r+t.d*n+t.f}return this}}const Qt=Wt;function Jt(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}function Zt(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}function Kt(t){const e=this.bbox();return null==t?e.width:this.size(t,e.height)}function te(t){const e=this.bbox();return null==t?e.height:this.size(e.width,t)}class ee extends Tt{constructor(t,e=t){super(E("line",t),e)}array(){return new Wt([[this.attr("x1"),this.attr("y1")],[this.attr("x2"),this.attr("y2")]])}move(t,e){return this.attr(this.array().move(t,e).toLine())}plot(t,e,r,n){return null==t?this.array():(t=void 0!==e?{x1:t,y1:e,x2:r,y2:n}:new Wt(t).toLine(),this.attr(t))}size(t,e){const r=g(this,t,e);return this.attr(this.array().size(r.width,r.height).toLine())}}L(ee,i),c({Container:{line:V((function(...t){return ee.prototype.plot.apply(this.put(new ee),null!=t[0]?t:[0,0,0,0])}))}}),D(ee,"Line");class re extends At{constructor(t,e=t){super(E("marker",t),e)}height(t){return this.attr("markerHeight",t)}orient(t){return this.attr("orient",t)}ref(t,e){return this.attr("refX",t).attr("refY",e)}toString(){return"url(#"+this.id()+")"}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}width(t){return this.attr("markerWidth",t)}}function ne(t,e){return function(r){return null==r?this[t]:(this[t]=r,e&&e.call(this),this)}}c({Container:{marker(...t){return this.defs().marker(...t)}},Defs:{marker:V((function(t,e,r){return this.put(new re).size(t,e).ref(t/2,e/2).viewbox(0,0,t,e).attr("orient","auto").update(r)}))},marker:{marker(t,e,r,n){let i=["marker"];return"all"!==t&&i.push(t),i=i.join("-"),t=arguments[1]instanceof re?arguments[1]:this.defs().marker(e,r,n),this.attr(i,t)}}}),D(re,"Marker");const ie={"-":function(t){return t},"<>":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)},bezier:function(t,e,r,n){return function(i){return i<0?t>0?e/t*i:r>0?n/r*i:0:i>1?r<1?(1-n)/(1-r)*i+(n-r)/(1-r):t<1?(1-e)/(1-t)*i+(e-t)/(1-t):1:3*i*(1-i)**2*e+3*i**2*(1-i)*n+i**3}},steps:function(t,e="end"){e=e.split("-").reverse()[0];let r=t;return"none"===e?--r:"both"===e&&++r,(n,i=!1)=>{let s=Math.floor(n*t);const o=n*s%1==0;return"start"!==e&&"both"!==e||++s,i&&o&&--s,n>=0&&s<0&&(s=0),n<=1&&s>r&&(s=r),s/r}}};class se{done(){return!1}}class oe extends se{constructor(t=">"){super(),this.ease=ie[t]||t}step(t,e,r){return"number"!=typeof t?r<1?t:e:t+(e-t)*this.ease(r)}}class ae extends se{constructor(t){super(),this.stepper=t}done(t){return t.done}step(t,e,r,n){return this.stepper(t,e,r,n)}}function he(){const t=(this._duration||500)/1e3,e=this._overshoot||0,r=Math.PI,n=Math.log(e/100+1e-10),i=-n/Math.sqrt(r*r+n*n),s=3.9/(i*t);this.d=2*i*s,this.k=s*s}L(class extends ae{constructor(t=500,e=0){super(),this.duration(t).overshoot(e)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;r>100&&(r=16),r/=1e3;const i=n.velocity||0,s=-this.d*i-this.k*(t-e),o=t+i*r+s*r*r/2;return n.velocity=i+s*r,n.done=Math.abs(e-o)+Math.abs(i)<.002,n.done?e:o}},{duration:ne("_duration",he),overshoot:ne("_overshoot",he)}),L(class extends ae{constructor(t=.1,e=.01,r=0,n=1e3){super(),this.p(t).i(e).d(r).windup(n)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;const i=e-t;let s=(n.integral||0)+i*r;const o=(i-(n.error||0))/r,a=this._windup;return!1!==a&&(s=Math.max(-a,Math.min(s,a))),n.error=i,n.integral=s,n.done=Math.abs(i)<.001,n.done?e:t+(this.P*i+this.I*s+this.D*o)}},{windup:ne("_windup"),p:ne("P"),i:ne("I"),d:ne("D")});const ue={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0},ce={M:function(t,e,r){return e.x=r.x=t[0],e.y=r.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},S:function(t,e){return e.x=t[2],e.y=t[3],["S",t[0],t[1],t[2],t[3]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},T:function(t,e){return e.x=t[0],e.y=t[1],["T",t[0],t[1]]},Z:function(t,e,r){return e.x=r.x,e.y=r.y,["Z"]},A:function(t,e){return e.x=t[5],e.y=t[6],["A",t[0],t[1],t[2],t[3],t[4],t[5],t[6]]}},le="mlhvqtcsaz".split("");for(let t=0,e=le.length;t<e;++t)ce[le[t]]=function(t){return function(e,r,n){if("H"===t)e[0]=e[0]+r.x;else if("V"===t)e[0]=e[0]+r.y;else if("A"===t)e[5]=e[5]+r.x,e[6]=e[6]+r.y;else for(let t=0,n=e.length;t<n;++t)e[t]=e[t]+(t%2?r.y:r.x);return ce[t](e,r,n)}}(le[t].toUpperCase());function de(t){return t.segment.length&&t.segment.length-1===ue[t.segment[0].toUpperCase()]}function fe(t,e){t.inNumber&&pe(t,!1);const r=J.test(e);if(r)t.segment=[e];else{const e=t.lastCommand,r=e.toLowerCase(),n=e===r;t.segment=["m"===r?n?"l":"L":e]}return t.inSegment=!0,t.lastCommand=t.segment[0],r}function pe(t,e){if(!t.inNumber)throw new Error("Parser Error");t.number&&t.segment.push(parseFloat(t.number)),t.inNumber=e,t.number="",t.pointSeen=!1,t.hasExponent=!1,de(t)&&me(t)}function me(t){t.inSegment=!1,t.absolute&&(t.segment=function(t){const e=t.segment[0];return ce[e](t.segment.slice(1),t.p,t.p0)}(t)),t.segments.push(t.segment)}function ge(t){if(!t.segment.length)return!1;const e="A"===t.segment[0].toUpperCase(),r=t.segment.length;return e&&(4===r||5===r)}function ye(t){return"E"===t.lastToken.toUpperCase()}const we=new Set([" ",",","\t","\n","\r","\f"]);class be extends _t{bbox(){return st().path.setAttribute("d",this.toString()),new at(st.nodes.path.getBBox())}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r,n=this.length-1;n>=0;n--)r=this[n][0],"M"===r||"L"===r||"T"===r?(this[n][1]+=t,this[n][2]+=e):"H"===r?this[n][1]+=t:"V"===r?this[n][1]+=e:"C"===r||"S"===r||"Q"===r?(this[n][1]+=t,this[n][2]+=e,this[n][3]+=t,this[n][4]+=e,"C"===r&&(this[n][5]+=t,this[n][6]+=e)):"A"===r&&(this[n][6]+=t,this[n][7]+=e);return this}parse(t="M0 0"){return Array.isArray(t)&&(t=Array.prototype.concat.apply([],t).toString()),function(t,e=!0){let r=0,n="";const i={segment:[],inNumber:!1,number:"",lastToken:"",inSegment:!1,segments:[],pointSeen:!1,hasExponent:!1,absolute:e,p0:new rt,p:new rt};for(;i.lastToken=n,n=t.charAt(r++);)if(i.inSegment||!fe(i,n))if("."!==n)if(isNaN(parseInt(n)))if(we.has(n))i.inNumber&&pe(i,!1);else if("-"!==n&&"+"!==n)if("E"!==n.toUpperCase()){if(J.test(n)){if(i.inNumber)pe(i,!1);else{if(!de(i))throw new Error("parser Error");me(i)}--r}}else i.number+=n,i.hasExponent=!0;else{if(i.inNumber&&!ye(i)){pe(i,!1),--r;continue}i.number+=n,i.inNumber=!0}else{if("0"===i.number||ge(i)){i.inNumber=!0,i.number=n,pe(i,!0);continue}i.inNumber=!0,i.number+=n}else{if(i.pointSeen||i.hasExponent){pe(i,!1),--r;continue}i.inNumber=!0,i.pointSeen=!0,i.number+=n}return i.inNumber&&pe(i,!1),i.inSegment&&de(i)&&me(i),i.segments}(t)}size(t,e){const r=this.bbox();let n,i;for(r.width=0===r.width?1:r.width,r.height=0===r.height?1:r.height,n=this.length-1;n>=0;n--)i=this[n][0],"M"===i||"L"===i||"T"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y):"H"===i?this[n][1]=(this[n][1]-r.x)*t/r.width+r.x:"V"===i?this[n][1]=(this[n][1]-r.y)*e/r.height+r.y:"C"===i||"S"===i||"Q"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y,this[n][3]=(this[n][3]-r.x)*t/r.width+r.x,this[n][4]=(this[n][4]-r.y)*e/r.height+r.y,"C"===i&&(this[n][5]=(this[n][5]-r.x)*t/r.width+r.x,this[n][6]=(this[n][6]-r.y)*e/r.height+r.y)):"A"===i&&(this[n][1]=this[n][1]*t/r.width,this[n][2]=this[n][2]*e/r.height,this[n][6]=(this[n][6]-r.x)*t/r.width+r.x,this[n][7]=(this[n][7]-r.y)*e/r.height+r.y);return this}toString(){return function(t){let e="";for(let r=0,n=t.length;r<n;r++)e+=t[r][0],null!=t[r][1]&&(e+=t[r][1],null!=t[r][2]&&(e+=" ",e+=t[r][2],null!=t[r][3]&&(e+=" ",e+=t[r][3],e+=" ",e+=t[r][4],null!=t[r][5]&&(e+=" ",e+=t[r][5],e+=" ",e+=t[r][6],null!=t[r][7]&&(e+=" ",e+=t[r][7])))));return e+" "}(this)}}const xe=t=>{const e=typeof t;return"number"===e?St:"string"===e?et.isColor(t)?et:Q.test(t)?J.test(t)?be:_t:z.test(t)?St:_e:Ne.indexOf(t.constructor)>-1?t.constructor:Array.isArray(t)?_t:"object"===e?Oe:_e};class ve{constructor(t){this._stepper=t||new oe("-"),this._from=null,this._to=null,this._type=null,this._context=null,this._morphObj=null}at(t){return this._morphObj.morph(this._from,this._to,t,this._stepper,this._context)}done(){return this._context.map(this._stepper.done).reduce((function(t,e){return t&&e}),!0)}from(t){return null==t?this._from:(this._from=this._set(t),this)}stepper(t){return null==t?this._stepper:(this._stepper=t,this)}to(t){return null==t?this._to:(this._to=this._set(t),this)}type(t){return null==t?this._type:(this._type=t,this)}_set(t){this._type||this.type(xe(t));let e=new this._type(t);return this._type===et&&(e=this._to?e[this._to[4]]():this._from?e[this._from[4]]():e),this._type===Oe&&(e=this._to?e.align(this._to):this._from?e.align(this._from):e),e=e.toConsumable(),this._morphObj=this._morphObj||new this._type,this._context=this._context||Array.apply(null,Array(e.length)).map(Object).map((function(t){return t.done=!0,t})),e}}class _e{constructor(...t){this.init(...t)}init(t){return t=Array.isArray(t)?t[0]:t,this.value=t,this}toArray(){return[this.value]}valueOf(){return this.value}}class Se{constructor(...t){this.init(...t)}init(t){return Array.isArray(t)&&(t={scaleX:t[0],scaleY:t[1],shear:t[2],rotate:t[3],translateX:t[4],translateY:t[5],originX:t[6],originY:t[7]}),Object.assign(this,Se.defaults,t),this}toArray(){const t=this;return[t.scaleX,t.scaleY,t.shear,t.rotate,t.translateX,t.translateY,t.originX,t.originY]}}Se.defaults={scaleX:1,scaleY:1,shear:0,rotate:0,translateX:0,translateY:0,originX:0,originY:0};const Me=(t,e)=>t[0]<e[0]?-1:t[0]>e[0]?1:0;class Oe{constructor(...t){this.init(...t)}align(t){const e=this.values;for(let r=0,n=e.length;r<n;++r){if(e[r+1]===t[r+1]){if(e[r+1]===et&&t[r+7]!==e[r+7]){const e=t[r+7],n=new et(this.values.splice(r+3,5))[e]().toArray();this.values.splice(r+3,0,...n)}r+=e[r+2]+2;continue}if(!t[r+1])return this;const n=(new t[r+1]).toArray(),i=e[r+2]+3;e.splice(r,i,t[r],t[r+1],t[r+2],...n),r+=e[r+2]+2}return this}init(t){if(this.values=[],Array.isArray(t))return void(this.values=t.slice());t=t||{};const e=[];for(const r in t){const n=xe(t[r]),i=new n(t[r]).toArray();e.push([r,n,i.length,...i])}return e.sort(Me),this.values=e.reduce(((t,e)=>t.concat(e)),[]),this}toArray(){return this.values}valueOf(){const t={},e=this.values;for(;e.length;){const r=e.shift(),n=e.shift(),i=e.shift(),s=e.splice(0,i);t[r]=new n(s)}return t}}const Ne=[_e,Se,Oe];class Pe extends Tt{constructor(t,e=t){super(E("path",t),e)}array(){return this._array||(this._array=new be(this.attr("d")))}clear(){return delete this._array,this}height(t){return null==t?this.bbox().height:this.size(this.bbox().width,t)}move(t,e){return this.attr("d",this.array().move(t,e))}plot(t){return null==t?this.array():this.clear().attr("d","string"==typeof t?t:this._array=new be(t))}size(t,e){const r=g(this,t,e);return this.attr("d",this.array().size(r.width,r.height))}width(t){return null==t?this.bbox().width:this.size(t,this.bbox().height)}x(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}y(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}}function Ce(){return this._array||(this._array=new Wt(this.attr("points")))}function Ae(){return delete this._array,this}function Ee(t,e){return this.attr("points",this.array().move(t,e))}function Te(t){return null==t?this.array():this.clear().attr("points","string"==typeof t?t:this._array=new Wt(t))}function je(t,e){const r=g(this,t,e);return this.attr("points",this.array().size(r.width,r.height))}Pe.prototype.MorphArray=be,c({Container:{path:V((function(t){return this.put(new Pe).plot(t||new be)}))}}),D(Pe,"Path");class De extends Tt{constructor(t,e=t){super(E("polygon",t),e)}}c({Container:{polygon:V((function(t){return this.put(new De).plot(t||new Wt)}))}}),L(De,i),L(De,s),D(De,"Polygon");class ke extends Tt{constructor(t,e=t){super(E("polyline",t),e)}}c({Container:{polyline:V((function(t){return this.put(new ke).plot(t||new Wt)}))}}),L(ke,i),L(ke,s),D(ke,"Polyline");class Be extends Tt{constructor(t,e=t){super(E("rect",t),e)}}L(Be,{rx:jt,ry:Dt}),c({Container:{rect:V((function(t,e){return this.put(new Be).size(t,e)}))}}),D(Be,"Rect");class Ie{constructor(){this._first=null,this._last=null}first(){return this._first&&this._first.value}last(){return this._last&&this._last.value}push(t){const e=void 0!==t.next?t:{value:t,next:null,prev:null};return this._last?(e.prev=this._last,this._last.next=e,this._last=e):(this._last=e,this._first=e),e}remove(t){t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t===this._last&&(this._last=t.prev),t===this._first&&(this._first=t.next),t.prev=null,t.next=null}shift(){const t=this._first;return t?(this._first=t.next,this._first&&(this._first.prev=null),this._last=this._first?this._last:null,t.value):null}}const Le={nextDraw:null,frames:new Ie,timeouts:new Ie,immediates:new Ie,timer:()=>M.window.performance||M.window.Date,transforms:[],frame(t){const e=Le.frames.push({run:t});return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),e},timeout(t,e){e=e||0;const r=Le.timer().now()+e,n=Le.timeouts.push({run:t,time:r});return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),n},immediate(t){const e=Le.immediates.push(t);return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),e},cancelFrame(t){null!=t&&Le.frames.remove(t)},clearTimeout(t){null!=t&&Le.timeouts.remove(t)},cancelImmediate(t){null!=t&&Le.immediates.remove(t)},_draw(t){let e=null;const r=Le.timeouts.last();for(;(e=Le.timeouts.shift())&&(t>=e.time?e.run():Le.timeouts.push(e),e!==r););let n=null;const i=Le.frames.last();for(;n!==i&&(n=Le.frames.shift());)n.run(t);let s=null;for(;s=Le.immediates.shift();)s();Le.nextDraw=Le.timeouts.first()||Le.frames.first()?M.window.requestAnimationFrame(Le._draw):null}},Ve=Le,ze=function(t){const e=t.start,r=t.runner.duration();return{start:e,duration:r,end:e+r,runner:t.runner}},Fe=function(){const t=M.window;return(t.performance||t.Date).now()};class Re extends bt{constructor(t=Fe){super(),this._timeSource=t,this.terminate()}active(){return!!this._nextFrame}finish(){return this.time(this.getEndTimeOfTimeline()+1),this.pause()}getEndTime(){const t=this.getLastRunnerInfo(),e=t?t.runner.duration():0;return(t?t.start:this._time)+e}getEndTimeOfTimeline(){const t=this._runners.map((t=>t.start+t.runner.duration()));return Math.max(0,...t)}getLastRunnerInfo(){return this.getRunnerInfoById(this._lastRunnerId)}getRunnerInfoById(t){return this._runners[this._runnerIds.indexOf(t)]||null}pause(){return this._paused=!0,this._continue()}persist(t){return null==t?this._persist:(this._persist=t,this)}play(){return this._paused=!1,this.updateTime()._continue()}reverse(t){const e=this.speed();if(null==t)return this.speed(-e);const r=Math.abs(e);return this.speed(t?-r:r)}schedule(t,e,r){if(null==t)return this._runners.map(ze);let n=0;const i=this.getEndTime();if(e=e||0,null==r||"last"===r||"after"===r)n=i;else if("absolute"===r||"start"===r)n=e,e=0;else if("now"===r)n=this._time;else if("relative"===r){const r=this.getRunnerInfoById(t.id);r&&(n=r.start+e,e=0)}else{if("with-last"!==r)throw new Error('Invalid value for the "when" parameter');{const t=this.getLastRunnerInfo();n=t?t.start:this._time}}t.unschedule(),t.timeline(this);const s=t.persist(),o={persist:null===s?this._persist:s,start:n+e,runner:t};return this._lastRunnerId=t.id,this._runners.push(o),this._runners.sort(((t,e)=>t.start-e.start)),this._runnerIds=this._runners.map((t=>t.runner.id)),this.updateTime()._continue(),this}seek(t){return this.time(this._time+t)}source(t){return null==t?this._timeSource:(this._timeSource=t,this)}speed(t){return null==t?this._speed:(this._speed=t,this)}stop(){return this.time(0),this.pause()}time(t){return null==t?this._time:(this._time=t,this._continue(!0))}unschedule(t){const e=this._runnerIds.indexOf(t.id);return e<0||(this._runners.splice(e,1),this._runnerIds.splice(e,1),t.timeline(null)),this}updateTime(){return this.active()||(this._lastSourceTime=this._timeSource()),this}_continue(t=!1){return Ve.cancelFrame(this._nextFrame),this._nextFrame=null,t?this._stepImmediate():(this._paused||(this._nextFrame=Ve.frame(this._step)),this)}_stepFn(t=!1){const e=this._timeSource();let r=e-this._lastSourceTime;t&&(r=0);const n=this._speed*r+(this._time-this._lastStepTime);this._lastSourceTime=e,t||(this._time+=n,this._time=this._time<0?0:this._time),this._lastStepTime=this._time,this.fire("time",this._time);for(let t=this._runners.length;t--;){const e=this._runners[t],r=e.runner;this._time-e.start<=0&&r.reset()}let i=!1;for(let t=0,e=this._runners.length;t<e;t++){const r=this._runners[t],s=r.runner;let o=n;const a=this._time-r.start;a<=0?i=!0:(a<o&&(o=a),s.active()&&(s.step(o).done?!0!==r.persist&&s.duration()-s.time()+this._time+r.persist<this._time&&(s.unschedule(),--t,--e):i=!0))}return i&&!(this._speed<0&&0===this._time)||this._runnerIds.length&&this._speed<0&&this._time>0?this._continue():(this.pause(),this.fire("finished")),this}terminate(){this._startTime=0,this._speed=1,this._persist=0,this._nextFrame=null,this._paused=!0,this._runners=[],this._runnerIds=[],this._lastRunnerId=-1,this._time=0,this._lastSourceTime=0,this._lastStepTime=0,this._step=this._stepFn.bind(this,!1),this._stepImmediate=this._stepFn.bind(this,!0)}}c({Element:{timeline:function(t){return null==t?(this._timeline=this._timeline||new Re,this._timeline):(this._timeline=t,this)}}});class qe extends bt{constructor(t){super(),this.id=qe.id++,t="function"==typeof(t=null==t?400:t)?new ae(t):t,this._element=null,this._timeline=null,this.done=!1,this._queue=[],this._duration="number"==typeof t&&t,this._isDeclarative=t instanceof ae,this._stepper=this._isDeclarative?t:new oe,this._history={},this.enabled=!0,this._time=0,this._lastTime=0,this._reseted=!0,this.transforms=new it,this.transformId=1,this._haveReversed=!1,this._reverse=!1,this._loopsDone=0,this._swing=!1,this._wait=0,this._times=1,this._frameId=null,this._persist=!!this._isDeclarative||null}static sanitise(t,e,r){let n=1,i=!1,s=0;return e=e??0,r=r||"last","object"!=typeof(t=t??400)||t instanceof se||(e=t.delay??e,r=t.when??r,i=t.swing||i,n=t.times??n,s=t.wait??s,t=t.duration??400),{duration:t,delay:e,swing:i,times:n,wait:s,when:r}}active(t){return null==t?this.enabled:(this.enabled=t,this)}addTransform(t){return this.transforms.lmultiplyO(t),this}after(t){return this.on("finished",t)}animate(t,e,r){const n=qe.sanitise(t,e,r),i=new qe(n.duration);return this._timeline&&i.timeline(this._timeline),this._element&&i.element(this._element),i.loop(n).schedule(n.delay,n.when)}clearTransform(){return this.transforms=new it,this}clearTransformsFromQueue(){this.done&&this._timeline&&this._timeline._runnerIds.includes(this.id)||(this._queue=this._queue.filter((t=>!t.isTransform)))}delay(t){return this.animate(0,t)}duration(){return this._times*(this._wait+this._duration)-this._wait}during(t){return this.queue(null,t)}ease(t){return this._stepper=new oe(t),this}element(t){return null==t?this._element:(this._element=t,t._prepareRunner(),this)}finish(){return this.step(1/0)}loop(t,e,r){return"object"==typeof t&&(e=t.swing,r=t.wait,t=t.times),this._times=t||1/0,this._swing=e||!1,this._wait=r||0,!0===this._times&&(this._times=1/0),this}loops(t){const e=this._duration+this._wait;if(null==t){const t=Math.floor(this._time/e),r=(this._time-t*e)/this._duration;return Math.min(t+r,this._times)}const r=t%1,n=e*Math.floor(t)+this._duration*r;return this.time(n)}persist(t){return null==t?this._persist:(this._persist=t,this)}position(t){const e=this._time,r=this._duration,n=this._wait,i=this._times,s=this._swing,o=this._reverse;let a;if(null==t){const t=function(t){const e=s*Math.floor(t%(2*(n+r))/(n+r)),i=e&&!o||!e&&o,a=Math.pow(-1,i)*(t%(n+r))/r+i;return Math.max(Math.min(a,1),0)},h=i*(n+r)-n;return a=e<=0?Math.round(t(1e-5)):e<h?t(e):Math.round(t(h-1e-5)),a}const h=Math.floor(this.loops()),u=s&&h%2==0;return a=h+(u&&!o||o&&u?t:1-t),this.loops(a)}progress(t){return null==t?Math.min(1,this._time/this.duration()):this.time(t*this.duration())}queue(t,e,r,n){return this._queue.push({initialiser:t||xt,runner:e||xt,retarget:r,isTransform:n,initialised:!1,finished:!1}),this.timeline()&&this.timeline()._continue(),this}reset(){return this._reseted||(this.time(0),this._reseted=!0),this}reverse(t){return this._reverse=null==t?!this._reverse:t,this}schedule(t,e,r){if(t instanceof Re||(r=e,e=t,t=this.timeline()),!t)throw Error("Runner cannot be scheduled without timeline");return t.schedule(this,e,r),this}step(t){if(!this.enabled)return this;t=null==t?16:t,this._time+=t;const e=this.position(),r=this._lastPosition!==e&&this._time>=0;this._lastPosition=e;const n=this.duration(),i=this._lastTime<=0&&this._time>0,s=this._lastTime<n&&this._time>=n;this._lastTime=this._time,i&&this.fire("start",this);const o=this._isDeclarative;this.done=!o&&!s&&this._time>=n,this._reseted=!1;let a=!1;return(r||o)&&(this._initialise(r),this.transforms=new it,a=this._run(o?t:e),this.fire("step",this)),this.done=this.done||a&&o,s&&this.fire("finished",this),this}time(t){if(null==t)return this._time;const e=t-this._time;return this.step(e),this}timeline(t){return void 0===t?this._timeline:(this._timeline=t,this)}unschedule(){const t=this.timeline();return t&&t.unschedule(this),this}_initialise(t){if(t||this._isDeclarative)for(let e=0,r=this._queue.length;e<r;++e){const r=this._queue[e],n=this._isDeclarative||!r.initialised&&t;t=!r.finished,n&&t&&(r.initialiser.call(this),r.initialised=!0)}}_rememberMorpher(t,e){if(this._history[t]={morpher:e,caller:this._queue[this._queue.length-1]},this._isDeclarative){const t=this.timeline();t&&t.play()}}_run(t){let e=!0;for(let r=0,n=this._queue.length;r<n;++r){const n=this._queue[r],i=n.runner.call(this,t);n.finished=n.finished||!0===i,e=e&&n.finished}return e}_tryRetarget(t,e,r){if(this._history[t]){if(!this._history[t].caller.initialised){const e=this._queue.indexOf(this._history[t].caller);return this._queue.splice(e,1),!1}this._history[t].caller.retarget?this._history[t].caller.retarget.call(this,e,r):this._history[t].morpher.to(e),this._history[t].caller.finished=!1;const n=this.timeline();return n&&n.play(),!0}return!1}}qe.id=0;class Xe{constructor(t=new it,e=-1,r=!0){this.transforms=t,this.id=e,this.done=r}clearTransformsFromQueue(){}}L([qe,Xe],{mergeWith(t){return new Xe(t.transforms.lmultiply(this.transforms),t.id)}});const Ye=(t,e)=>t.lmultiplyO(e),Ge=t=>t.transforms;function He(){const t=this._transformationRunners.runners.map(Ge).reduce(Ye,new it);this.transform(t),this._transformationRunners.merge(),1===this._transformationRunners.length()&&(this._frameId=null)}class Ue{constructor(){this.runners=[],this.ids=[]}add(t){if(this.runners.includes(t))return;const e=t.id+1;return this.runners.push(t),this.ids.push(e),this}clearBefore(t){const e=this.ids.indexOf(t+1)||1;return this.ids.splice(0,e,0),this.runners.splice(0,e,new Xe).forEach((t=>t.clearTransformsFromQueue())),this}edit(t,e){const r=this.ids.indexOf(t+1);return this.ids.splice(r,1,t+1),this.runners.splice(r,1,e),this}getByID(t){return this.runners[this.ids.indexOf(t+1)]}length(){return this.ids.length}merge(){let t=null;for(let e=0;e<this.runners.length;++e){const r=this.runners[e];if(!(t&&r.done&&t.done)||r._timeline&&r._timeline._runnerIds.includes(r.id)||t._timeline&&t._timeline._runnerIds.includes(t.id))t=r;else{this.remove(r.id);const n=r.mergeWith(t);this.edit(t.id,n),t=n,--e}}return this}remove(t){const e=this.ids.indexOf(t+1);return this.ids.splice(e,1),this.runners.splice(e,1),this}}c({Element:{animate(t,e,r){const n=qe.sanitise(t,e,r),i=this.timeline();return new qe(n.duration).loop(n).element(this).timeline(i.play()).schedule(n.delay,n.when)},delay(t,e){return this.animate(0,t,e)},_clearTransformRunnersBefore(t){this._transformationRunners.clearBefore(t.id)},_currentTransform(t){return this._transformationRunners.runners.filter((e=>e.id<=t.id)).map(Ge).reduce(Ye,new it)},_addRunner(t){this._transformationRunners.add(t),Ve.cancelImmediate(this._frameId),this._frameId=Ve.immediate(He.bind(this))},_prepareRunner(){null==this._frameId&&(this._transformationRunners=(new Ue).add(new Xe(new it(this))))}}}),L(qe,{attr(t,e){return this.styleAttr("attr",t,e)},css(t,e){return this.styleAttr("css",t,e)},styleAttr(t,e,r){if("string"==typeof e)return this.styleAttr(t,{[e]:r});let n=e;if(this._tryRetarget(t,n))return this;let i=new ve(this._stepper).to(n),s=Object.keys(n);return this.queue((function(){i=i.from(this.element()[t](s))}),(function(e){return this.element()[t](i.at(e).valueOf()),i.done()}),(function(e){const r=Object.keys(e),o=(a=s,r.filter((t=>!a.includes(t))));var a;if(o.length){const e=this.element()[t](o),r=new Oe(i.from()).valueOf();Object.assign(r,e),i.from(r)}const h=new Oe(i.to()).valueOf();Object.assign(h,e),i.to(h),s=r,n=e})),this._rememberMorpher(t,i),this},zoom(t,e){if(this._tryRetarget("zoom",t,e))return this;let r=new ve(this._stepper).to(new St(t));return this.queue((function(){r=r.from(this.element().zoom())}),(function(t){return this.element().zoom(r.at(t),e),r.done()}),(function(t,n){e=n,r.to(t)})),this._rememberMorpher("zoom",r),this},transform(t,e,r){if(e=t.relative||e,this._isDeclarative&&!e&&this._tryRetarget("transform",t))return this;const n=it.isMatrixLike(t);r=null!=t.affine?t.affine:null!=r?r:!n;const i=new ve(this._stepper).type(r?Se:it);let s,o,a,h,u;return this.queue((function(){o=o||this.element(),s=s||y(t,o),u=new it(e?void 0:o),o._addRunner(this),e||o._clearTransformRunnersBefore(this)}),(function(c){e||this.clearTransform();const{x:l,y:d}=new rt(s).transform(o._currentTransform(this));let f=new it({...t,origin:[l,d]}),p=this._isDeclarative&&a?a:u;if(r){f=f.decompose(l,d),p=p.decompose(l,d);const t=f.rotate,e=p.rotate,r=[t-360,t,t+360],n=r.map((t=>Math.abs(t-e))),i=Math.min(...n),s=n.indexOf(i);f.rotate=r[s]}e&&(n||(f.rotate=t.rotate||0),this._isDeclarative&&h&&(p.rotate=h)),i.from(p),i.to(f);const m=i.at(c);return h=m.rotate,a=new it(m),this.addTransform(a),o._addRunner(this),i.done()}),(function(e){(e.origin||"center").toString()!==(t.origin||"center").toString()&&(s=y(e,o)),t={...e,origin:s}}),!0),this._isDeclarative&&this._rememberMorpher("transform",i),this},x(t){return this._queueNumber("x",t)},y(t){return this._queueNumber("y",t)},ax(t){return this._queueNumber("ax",t)},ay(t){return this._queueNumber("ay",t)},dx(t=0){return this._queueNumberDelta("x",t)},dy(t=0){return this._queueNumberDelta("y",t)},dmove(t,e){return this.dx(t).dy(e)},_queueNumberDelta(t,e){if(e=new St(e),this._tryRetarget(t,e))return this;const r=new ve(this._stepper).to(e);let n=null;return this.queue((function(){n=this.element()[t](),r.from(n),r.to(n+e)}),(function(e){return this.element()[t](r.at(e)),r.done()}),(function(t){r.to(n+new St(t))})),this._rememberMorpher(t,r),this},_queueObject(t,e){if(this._tryRetarget(t,e))return this;const r=new ve(this._stepper).to(e);return this.queue((function(){r.from(this.element()[t]())}),(function(e){return this.element()[t](r.at(e)),r.done()})),this._rememberMorpher(t,r),this},_queueNumber(t,e){return this._queueObject(t,new St(e))},cx(t){return this._queueNumber("cx",t)},cy(t){return this._queueNumber("cy",t)},move(t,e){return this.x(t).y(e)},amove(t,e){return this.ax(t).ay(e)},center(t,e){return this.cx(t).cy(e)},size(t,e){let r;return t&&e||(r=this._element.bbox()),t||(t=r.width/r.height*e),e||(e=r.height/r.width*t),this.width(t).height(e)},width(t){return this._queueNumber("width",t)},height(t){return this._queueNumber("height",t)},plot(t,e,r,n){if(4===arguments.length)return this.plot([t,e,r,n]);if(this._tryRetarget("plot",t))return this;const i=new ve(this._stepper).type(this._element.MorphArray).to(t);return this.queue((function(){i.from(this._element.array())}),(function(t){return this._element.plot(i.at(t)),i.done()})),this._rememberMorpher("plot",i),this},leading(t){return this._queueNumber("leading",t)},viewbox(t,e,r,n){return this._queueObject("viewbox",new at(t,e,r,n))},update(t){return"object"!=typeof t?this.update({offset:arguments[0],color:arguments[1],opacity:arguments[2]}):(null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",t.offset),this)}}),L(qe,{rx:jt,ry:Dt,from:Xt,to:Yt}),D(qe,"Runner");class $e extends At{constructor(t,e=t){super(E("svg",t),e),this.namespace()}defs(){return this.isRoot()?T(this.node.querySelector("defs"))||this.put(new Et):this.root().defs()}isRoot(){return!this.node.parentNode||!(this.node.parentNode instanceof M.window.SVGElement)&&"#document-fragment"!==this.node.parentNode.nodeName}namespace(){return this.isRoot()?this.attr({xmlns:v,version:"1.1"}).attr("xmlns:xlink",S,_):this.root().namespace()}removeNamespace(){return this.attr({xmlns:null,version:null}).attr("xmlns:xlink",null,_).attr("xmlns:svgjs",null,_)}root(){return this.isRoot()?this:super.root()}}c({Container:{nested:V((function(){return this.put(new $e)}))}}),D($e,"Svg",!0);class We extends At{constructor(t,e=t){super(E("symbol",t),e)}}function Qe(t){return!1===this._build&&this.clear(),this.node.appendChild(M.document.createTextNode(t)),this}function Je(){return this.node.getComputedTextLength()}function Ze(t,e=this.bbox()){return null==t?e.x:this.attr("x",this.attr("x")+t-e.x)}function Ke(t,e=this.bbox()){return null==t?e.y:this.attr("y",this.attr("y")+t-e.y)}function tr(t,e,r=this.bbox()){return this.x(t,r).y(e,r)}function er(t,e=this.bbox()){return null==t?e.cx:this.attr("x",this.attr("x")+t-e.cx)}function rr(t,e=this.bbox()){return null==t?e.cy:this.attr("y",this.attr("y")+t-e.cy)}function nr(t,e,r=this.bbox()){return this.cx(t,r).cy(e,r)}function ir(t){return this.attr("x",t)}function sr(t){return this.attr("y",t)}function or(t,e){return this.ax(t).ay(e)}function ar(t){return this._build=!!t,this}c({Container:{symbol:V((function(){return this.put(new We)}))}}),D(We,"Symbol");class hr extends Tt{constructor(t,e=t){super(E("text",t),e),this.dom.leading=this.dom.leading??new St(1.3),this._rebuild=!0,this._build=!1}leading(t){return null==t?this.dom.leading:(this.dom.leading=new St(t),this.rebuild())}rebuild(t){if("boolean"==typeof t&&(this._rebuild=t),this._rebuild){const t=this;let e=0;const r=this.dom.leading;this.each((function(n){if(b(this.node))return;const i=M.window.getComputedStyle(this.node).getPropertyValue("font-size"),s=r*new St(i);this.dom.newLined&&(this.attr("x",t.attr("x")),"\n"===this.text()?e+=s:(this.attr("dy",n?s+e:0),e=0))})),this.fire("rebuild")}return this}setData(t){return this.dom=t,this.dom.leading=new St(t.leading||1.3),this}writeDataToDom(){return x(this,this.dom,{leading:1.3}),this}text(t){if(void 0===t){const e=this.node.childNodes;let r=0;t="";for(let n=0,i=e.length;n<i;++n)"textPath"===e[n].nodeName||b(e[n])?0===n&&(r=n+1):(n!==r&&3!==e[n].nodeType&&!0===T(e[n]).dom.newLined&&(t+="\n"),t+=e[n].textContent);return t}if(this.clear().build(!0),"function"==typeof t)t.call(this,this);else for(let e=0,r=(t=(t+"").split("\n")).length;e<r;e++)this.newLine(t[e]);return this.build(!1).rebuild()}}L(hr,o),c({Container:{text:V((function(t=""){return this.put(new hr).text(t)})),plain:V((function(t=""){return this.put(new hr).plain(t)}))}}),D(hr,"Text");class ur extends Tt{constructor(t,e=t){super(E("tspan",t),e),this._build=!1}dx(t){return this.attr("dx",t)}dy(t){return this.attr("dy",t)}newLine(){this.dom.newLined=!0;const t=this.parent();if(!(t instanceof hr))return this;const e=t.index(this),r=M.window.getComputedStyle(this.node).getPropertyValue("font-size"),n=t.dom.leading*new St(r);return this.dy(e?n:0).attr("x",t.x())}text(t){return null==t?this.node.textContent+(this.dom.newLined?"\n":""):("function"==typeof t?(this.clear().build(!0),t.call(this,this),this.build(!1)):this.plain(t),this)}}L(ur,o),c({Tspan:{tspan:V((function(t=""){const e=new ur;return this._build||this.clear(),this.put(e).text(t)}))},Text:{newLine:function(t=""){return this.tspan(t).newLine()}}}),D(ur,"Tspan");class cr extends Tt{constructor(t,e=t){super(E("circle",t),e)}radius(t){return this.attr("r",t)}rx(t){return this.attr("r",t)}ry(t){return this.rx(t)}size(t){return this.radius(new St(t).divide(2))}}L(cr,{x:kt,y:Bt,cx:It,cy:Lt,width:Vt,height:zt}),c({Container:{circle:V((function(t=0){return this.put(new cr).size(t).move(0,0)}))}}),D(cr,"Circle");class lr extends At{constructor(t,e=t){super(E("clipPath",t),e)}remove(){return this.targets().forEach((function(t){t.unclip()})),super.remove()}targets(){return dt("svg [clip-path*="+this.id()+"]")}}c({Container:{clip:V((function(){return this.defs().put(new lr)}))},Element:{clipper(){return this.reference("clip-path")},clipWith(t){const e=t instanceof lr?t:this.parent().clip().add(t);return this.attr("clip-path","url(#"+e.id()+")")},unclip(){return this.attr("clip-path",null)}}}),D(lr,"ClipPath");class dr extends Pt{constructor(t,e=t){super(E("foreignObject",t),e)}}function fr(t,e){return this.children().forEach((r=>{let n;try{n=r.node instanceof M.window.SVGSVGElement?new at(r.attr(["x","y","width","height"])):r.bbox()}catch(t){return}const i=new it(r),s=i.translate(t,e).transform(i.inverse()),o=new rt(n.x,n.y).transform(s);r.move(o.x,o.y)})),this}function pr(t){return this.dmove(t,0)}function mr(t){return this.dmove(0,t)}function gr(t,e=this.bbox()){return null==t?e.height:this.size(e.width,t,e)}function yr(t=0,e=0,r=this.bbox()){const n=t-r.x,i=e-r.y;return this.dmove(n,i)}function wr(t,e,r=this.bbox()){const n=g(this,t,e,r),i=n.width/r.width,s=n.height/r.height;return this.children().forEach((t=>{const e=new rt(r).transform(new it(t).inverse());t.scale(i,s,e.x,e.y)})),this}function br(t,e=this.bbox()){return null==t?e.width:this.size(t,e.height,e)}function xr(t,e=this.bbox()){return null==t?e.x:this.move(t,e.y,e)}function vr(t,e=this.bbox()){return null==t?e.y:this.move(e.x,t,e)}c({Container:{foreignObject:V((function(t,e){return this.put(new dr).size(t,e)}))}}),D(dr,"ForeignObject");class _r extends At{constructor(t,e=t){super(E("g",t),e)}}L(_r,a),c({Container:{group:V((function(){return this.put(new _r)}))}}),D(_r,"G");class Sr extends At{constructor(t,e=t){super(E("a",t),e)}target(t){return this.attr("target",t)}to(t){return this.attr("href",t,S)}}L(Sr,a),c({Container:{link:V((function(t){return this.put(new Sr).to(t)}))},Element:{unlink(){const t=this.linker();if(!t)return this;const e=t.parent();if(!e)return this.remove();const r=e.index(t);return e.add(this,r),t.remove(),this},linkTo(t){let e=this.linker();return e||(e=new Sr,this.wrap(e)),"function"==typeof t?t.call(e,e):e.to(t),this},linker(){const t=this.parent();return t&&"a"===t.node.nodeName.toLowerCase()?t:null}}}),D(Sr,"A");class Mr extends At{constructor(t,e=t){super(E("mask",t),e)}remove(){return this.targets().forEach((function(t){t.unmask()})),super.remove()}targets(){return dt("svg [mask*="+this.id()+"]")}}c({Container:{mask:V((function(){return this.defs().put(new Mr)}))},Element:{masker(){return this.reference("mask")},maskWith(t){const e=t instanceof Mr?t:this.parent().mask().add(t);return this.attr("mask","url(#"+e.id()+")")},unmask(){return this.attr("mask",null)}}}),D(Mr,"Mask");class Or extends Pt{constructor(t,e=t){super(E("stop",t),e)}update(t){return("number"==typeof t||t instanceof St)&&(t={offset:arguments[0],color:arguments[1],opacity:arguments[2]}),null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",new St(t.offset)),this}}c({Gradient:{stop:function(t,e,r){return this.put(new Or).update(t,e,r)}}}),D(Or,"Stop");class Nr extends Pt{constructor(t,e=t){super(E("style",t),e)}addText(t=""){return this.node.textContent+=t,this}font(t,e,r={}){return this.rule("@font-face",{fontFamily:t,src:e,...r})}rule(t,e){return this.addText(function(t,e){if(!t)return"";if(!e)return t;let r=t+"{";for(const t in e)r+=t.replace(/([A-Z])/g,(function(t,e){return"-"+e.toLowerCase()}))+":"+e[t]+";";return r+="}",r}(t,e))}}c("Dom",{style(t,e){return this.put(new Nr).rule(t,e)},fontface(t,e,r){return this.put(new Nr).font(t,e,r)}}),D(Nr,"Style");class Pr extends hr{constructor(t,e=t){super(E("textPath",t),e)}array(){const t=this.track();return t?t.array():null}plot(t){const e=this.track();let r=null;return e&&(r=e.plot(t)),null==t?r:this}track(){return this.reference("href")}}c({Container:{textPath:V((function(t,e){return t instanceof hr||(t=this.text(t)),t.path(e)}))},Text:{path:V((function(t,e=!0){const r=new Pr;let n;if(t instanceof Pe||(t=this.defs().path(t)),r.attr("href","#"+t,S),e)for(;n=this.node.firstChild;)r.node.appendChild(n);return this.put(r)})),textPath(){return this.findOne("textPath")}},Path:{text:V((function(t){return t instanceof hr||(t=(new hr).addTo(this.parent()).text(t)),t.path(this)})),targets(){return dt("svg textPath").filter((t=>(t.attr("href")||"").includes(this.id())))}}}),Pr.prototype.MorphArray=be,D(Pr,"TextPath");class Cr extends Tt{constructor(t,e=t){super(E("use",t),e)}use(t,e){return this.attr("href",(e||"")+"#"+t,S)}}c({Container:{use:V((function(t,e){return this.put(new Cr).use(t,e)}))}}),D(Cr,"Use"),L([$e,We,Ut,Ht,re],l("viewbox")),L([ee,ke,De,Pe],l("marker")),L(hr,l("Text")),L(Pe,l("Path")),L(Et,l("Defs")),L([hr,ur],l("Tspan")),L([Be,Ft,Gt,qe],l("radius")),L(bt,l("EventTarget")),L(Nt,l("Dom")),L(Pt,l("Element")),L(Tt,l("Shape")),L([At,qt],l("Container")),L(Gt,l("Gradient")),L(qe,l("Runner")),ct.extend([...new Set(u)]),function(t=[]){Ne.push(...[].concat(t))}([St,et,at,it,_t,Wt,be,rt]),L(Ne,{to(t){return(new ve).type(this.constructor).from(this.toArray()).to(t)},fromArray(t){return this.init(t),this},toConsumable(){return this.toArray()},morph(t,e,r,n,i){return this.fromArray(t.map((function(t,s){return n.step(t,e[s],r,i[s],i)})))}});var Ar=r(726),Er=r(731),Tr=r(986);class jr{static create(t){let e=document.createElementNS("http://www.w3.org/2000/svg","text");e.textContent=t;let r=new jr(e);return r.assignUUID(),r.setAttributes(jr.defaultAttributes),r}constructor(t){this.textElement=t,this.centerPoint=new Er.CenterPoint(t)}get domNode(){return this.textElement}appendTo(t){t.appendChild(this.domNode)}remove(){this.domNode.remove()}isIn(t){return t.contains(this.domNode)&&t!==this.domNode}hasParent(){return!!this.domNode.parentNode}bringToFront(){(0,Ar.bringToFront)(this.domNode)}sendToBack(){(0,Ar.sendToBack)(this.domNode)}getAttribute(t){return this.domNode.getAttribute(t)}setAttribute(t,e){this.domNode.setAttribute(t,e)}setAttributes(t){try{new hr(this.domNode).attr(t)}catch(t){}}get id(){return this.domNode.id}assignUUID(){(0,Ar.assignUUID)(this.domNode)}get textContent(){return this.domNode.textContent}set textContent(t){this.domNode.textContent=t}get bbox(){return this.domNode.getBBox()}getCenterPoint(){return this.centerPoint}setCenterPoint(t){this.centerPoint.x=t.x,this.centerPoint.y=t.y}maintainingCenterPoint(t){let{x:e,y:r}=this.centerPoint;t(),this.centerPoint.x=e,this.centerPoint.y=r}get boundingClientRect(){return this.domNode.getBoundingClientRect()}get centerClientPoint(){let t=this.domNode.getBoundingClientRect();return{x:(0,Tr.mean)([t.left,t.right]),y:(0,Tr.mean)([t.top,t.bottom])}}getCenterClientPoint(){return this.centerClientPoint}}jr.defaultAttributes={"font-family":"Arial","font-size":"9","font-weight":"700"},jr.defaultAttributeNames=["font-family","font-size","font-weight"];var Dr,kr=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class Br{constructor(t){Dr.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,Dr,t)}toJSONSerializable(){if(!kr(this,Dr,"f").id)throw new Error("Nucleobase has a falsy ID.");return{id:kr(this,Dr,"f").id}}}Dr=new WeakMap;var Ir,Lr,Vr,zr,Fr,Rr=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},qr=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class Xr{constructor(t,e){Ir.add(this),Lr.set(this,void 0),Vr.set(this,void 0),Rr(this,Lr,t,"f"),Rr(this,Vr,e,"f")}recreate(){return new jr(qr(this,Ir,"a",Fr))}}Lr=new WeakMap,Vr=new WeakMap,Ir=new WeakSet,zr=function(){let t=qr(this,Lr,"f").id;if(t=null!=t?t:qr(this,Lr,"f").textId,!t)throw new Error("Unable to find nucleobase ID.");if("string"!=typeof t)throw new Error("Nucleobase ID is not a string.");return t},Fr=function(){let t=qr(this,Ir,"a",zr),e=qr(this,Vr,"f").domNode.querySelector(`#${t}`);if(!e)throw new Error(`No DOM node in the drawing has the nucleobase ID "${t}".`);if(!(e instanceof SVGTextElement))throw new Error(`The DOM node with ID "${t}" is not an SVG text element.`);return e}})(),n})(),t.exports=e()},726:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{CoordinateSystem:()=>c,HorizontalClientScaling:()=>d,InnerXML:()=>w,OuterXML:()=>v,Scaling:()=>l,VerticalClientScaling:()=>f,assignUUID:()=>u,bringToFront:()=>p,sendToBack:()=>m});const r={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};var n,i=new Uint8Array(16);function s(){if(!n&&!(n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return n(i)}for(var o=[],a=0;a<256;++a)o.push((a+256).toString(16).slice(1));const h=function(t,e,n){if(r.randomUUID&&!e&&!t)return r.randomUUID();var i=(t=t||{}).random||(t.rng||s)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,e){n=n||0;for(var a=0;a<16;++a)e[n+a]=i[a];return e}return function(t,e=0){return(o[t[e+0]]+o[t[e+1]]+o[t[e+2]]+o[t[e+3]]+"-"+o[t[e+4]]+o[t[e+5]]+"-"+o[t[e+6]]+o[t[e+7]]+"-"+o[t[e+8]]+o[t[e+9]]+"-"+o[t[e+10]]+o[t[e+11]]+o[t[e+12]]+o[t[e+13]]+o[t[e+14]]+o[t[e+15]]).toLowerCase()}(i)};function u(t){t.id="uuid-"+h()}class c{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class l{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class d{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class f{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function p(t){let e=t.parentNode;e&&e.appendChild(t)}function m(t){let e=t.parentNode;e&&e.prepend(t)}var g,y=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class w{constructor(t){g.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,g,t)}toString(){return y(this,g,"f").innerHTML}set(t){y(this,g,"f").innerHTML=t}}g=new WeakMap;var b,x=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class v{constructor(t){b.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,b,t)}toString(){return x(this,b,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=x(this,b,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...x(this,b,"f").attributes].forEach((t=>x(this,b,"f").removeAttribute(t.name))),[...e.firstElementChild.attributes].forEach((t=>x(this,b,"f").setAttribute(t.name,t.value))),x(this,b,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}return b=new WeakMap,e})(),t.exports=e()},986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>p,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function p(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{BaseOutline:()=>Br.BaseOutline,DotBracketDrawer:()=>Jr,Drawing:()=>Ur,Nucleobase:()=>Er.Nucleobase,SchemaDrawer:()=>nn,StraightBond:()=>Rr.StraightBond});var t={};r.r(t),r.d(t,{cx:()=>It,cy:()=>Lt,height:()=>zt,rx:()=>jt,ry:()=>Dt,width:()=>Vt,x:()=>kt,y:()=>Bt});var e={};r.r(e),r.d(e,{from:()=>Xt,to:()=>Yt});var i={};r.r(i),r.d(i,{MorphArray:()=>Qt,height:()=>te,width:()=>Kt,x:()=>Jt,y:()=>Zt});var s={};r.r(s),r.d(s,{array:()=>Ce,clear:()=>Ae,move:()=>Ee,plot:()=>Te,size:()=>je});var o={};r.r(o),r.d(o,{amove:()=>or,ax:()=>ir,ay:()=>sr,build:()=>ar,center:()=>nr,cx:()=>er,cy:()=>rr,length:()=>Je,move:()=>tr,plain:()=>Qe,x:()=>Ze,y:()=>Ke});var a={};r.r(a),r.d(a,{dmove:()=>fr,dx:()=>pr,dy:()=>mr,height:()=>gr,move:()=>yr,size:()=>wr,width:()=>br,x:()=>xr,y:()=>vr});const h={},u=[];function c(t,e){if(Array.isArray(t))for(const r of t)c(r,e);else if("object"!=typeof t)d(Object.getOwnPropertyNames(e)),h[t]=Object.assign(h[t]||{},e);else for(const e in t)c(e,t[e])}function l(t){return h[t]||{}}function d(t){u.push(...t)}function f(t,e){let r;const n=t.length,i=[];for(r=0;r<n;r++)i.push(e(t[r]));return i}function p(t){return t%360*Math.PI/180}function m(t){return t.charAt(0).toUpperCase()+t.slice(1)}function g(t,e,r,n){return null!=e&&null!=r||(n=n||t.bbox(),null==e?e=n.width/n.height*r:null==r&&(r=n.height/n.width*e)),{width:e,height:r}}function y(t,e){const r=t.origin;let n=null!=t.ox?t.ox:null!=t.originX?t.originX:"center",i=null!=t.oy?t.oy:null!=t.originY?t.originY:"center";null!=r&&([n,i]=Array.isArray(r)?r:"object"==typeof r?[r.x,r.y]:[r,r]);const s="string"==typeof n,o="string"==typeof i;if(s||o){const{height:t,width:r,x:a,y:h}=e.bbox();s&&(n=n.includes("left")?a:n.includes("right")?a+r:a+r/2),o&&(i=i.includes("top")?h:i.includes("bottom")?h+t:h+t/2)}return[n,i]}const w=new Set(["desc","metadata","title"]),b=t=>w.has(t.nodeName),x=(t,e,r={})=>{const n={...e};for(const t in n)n[t].valueOf()===r[t]&&delete n[t];Object.keys(n).length?t.node.setAttribute("data-svgjs",JSON.stringify(n)):(t.node.removeAttribute("data-svgjs"),t.node.removeAttribute("svgjs:data"))},v="http://www.w3.org/2000/svg",_="http://www.w3.org/2000/xmlns/",S="http://www.w3.org/1999/xlink",M={window:"undefined"==typeof window?null:window,document:"undefined"==typeof document?null:document};class O{}const N={},P="___SYMBOL___ROOT___";function C(t,e=v){return M.document.createElementNS(e,t)}function A(t,e=!1){if(t instanceof O)return t;if("object"==typeof t)return j(t);if(null==t)return new N[P];if("string"==typeof t&&"<"!==t.charAt(0))return j(M.document.querySelector(t));const r=e?M.document.createElement("div"):C("svg");return r.innerHTML=t,t=j(r.firstChild),r.removeChild(r.firstChild),t}function E(t,e){return e&&(e instanceof M.window.Node||e.ownerDocument&&e instanceof e.ownerDocument.defaultView.Node)?e:C(t)}function T(t){if(!t)return null;if(t.instance instanceof O)return t.instance;if("#document-fragment"===t.nodeName)return new N.Fragment(t);let e=m(t.nodeName||"Dom");return"LinearGradient"===e||"RadialGradient"===e?e="Gradient":N[e]||(e="Dom"),new N[e](t)}let j=T;function D(t,e=t.name,r=!1){return N[e]=t,r&&(N[P]=t),d(Object.getOwnPropertyNames(t.prototype)),t}let k=1e3;function B(t){return"Svgjs"+m(t)+k++}function I(t){for(let e=t.children.length-1;e>=0;e--)I(t.children[e]);return t.id?(t.id=B(t.nodeName),t):t}function L(t,e){let r,n;for(n=(t=Array.isArray(t)?t:[t]).length-1;n>=0;n--)for(r in e)t[n].prototype[r]=e[r]}function V(t){return function(...e){const r=e[e.length-1];return!r||r.constructor!==Object||r instanceof Array?t.apply(this,e):t.apply(this,e.slice(0,-1)).attr(r)}}c("Dom",{siblings:function(){return this.parent().children()},position:function(){return this.parent().index(this)},next:function(){return this.siblings()[this.position()+1]},prev:function(){return this.siblings()[this.position()-1]},forward:function(){const t=this.position();return this.parent().add(this.remove(),t+1),this},backward:function(){const t=this.position();return this.parent().add(this.remove(),t?t-1:0),this},front:function(){return this.parent().add(this.remove()),this},back:function(){return this.parent().add(this.remove(),0),this},before:function(t){(t=A(t)).remove();const e=this.position();return this.parent().add(t,e),this},after:function(t){(t=A(t)).remove();const e=this.position();return this.parent().add(t,e+1),this},insertBefore:function(t){return(t=A(t)).before(this),this},insertAfter:function(t){return(t=A(t)).after(this),this}});const z=/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,F=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,R=/rgb\((\d+),(\d+),(\d+)\)/,q=/(#[a-z_][a-z0-9\-_]*)/i,X=/\)\s*,?\s*/,Y=/\s/g,G=/^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i,H=/^rgb\(/,U=/^(\s+)?$/,$=/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,W=/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,Q=/[\s,]+/,J=/[MLHVCSQTAZ]/i;function Z(t){const e=Math.round(t),r=Math.max(0,Math.min(255,e)).toString(16);return 1===r.length?"0"+r:r}function K(t,e){for(let r=e.length;r--;)if(null==t[e[r]])return!1;return!0}function tt(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}c("Dom",{classes:function(){const t=this.attr("class");return null==t?[]:t.trim().split(Q)},hasClass:function(t){return-1!==this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){const e=this.classes();e.push(t),this.attr("class",e.join(" "))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr("class",this.classes().filter((function(e){return e!==t})).join(" ")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)}}),c("Dom",{css:function(t,e){const r={};if(0===arguments.length)return this.node.style.cssText.split(/\s*;\s*/).filter((function(t){return!!t.length})).forEach((function(t){const e=t.split(/\s*:\s*/);r[e[0]]=e[1]})),r;if(arguments.length<2){if(Array.isArray(t)){for(const e of t){const t=e;r[e]=this.node.style.getPropertyValue(t)}return r}if("string"==typeof t)return this.node.style.getPropertyValue(t);if("object"==typeof t)for(const e in t)this.node.style.setProperty(e,null==t[e]||U.test(t[e])?"":t[e])}return 2===arguments.length&&this.node.style.setProperty(t,null==e||U.test(e)?"":e),this},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},visible:function(){return"none"!==this.css("display")}}),c("Dom",{data:function(t,e,r){if(null==t)return this.data(f(function(t){let e;const r=t.length,n=[];for(e=0;e<r;e++)0===t[e].nodeName.indexOf("data-")&&n.push(t[e]);return n}(this.node.attributes),(t=>t.nodeName.slice(5))));if(t instanceof Array){const e={};for(const r of t)e[r]=this.data(r);return e}if("object"==typeof t)for(e in t)this.data(e,t[e]);else if(arguments.length<2)try{return JSON.parse(this.attr("data-"+t))}catch(e){return this.attr("data-"+t)}else this.attr("data-"+t,null===e?null:!0===r||"string"==typeof e||"number"==typeof e?e:JSON.stringify(e));return this}}),c("Dom",{remember:function(t,e){if("object"==typeof arguments[0])for(const e in t)this.remember(e,t[e]);else{if(1===arguments.length)return this.memory()[t];this.memory()[t]=e}return this},forget:function(){if(0===arguments.length)this._memory={};else for(let t=arguments.length-1;t>=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory=this._memory||{}}});class et{constructor(...t){this.init(...t)}static isColor(t){return t&&(t instanceof et||this.isRgb(t)||this.test(t))}static isRgb(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b}static random(t="vibrant",e){const{random:r,round:n,sin:i,PI:s}=Math;if("vibrant"===t){const t=24*r()+57,e=38*r()+45,n=360*r();return new et(t,e,n,"lch")}if("sine"===t){const t=n(80*i(2*s*(e=null==e?r():e)/.5+.01)+150),o=n(50*i(2*s*e/.5+4.6)+200),a=n(100*i(2*s*e/.5+2.3)+150);return new et(t,o,a)}if("pastel"===t){const t=8*r()+86,e=17*r()+9,n=360*r();return new et(t,e,n,"lch")}if("dark"===t){const t=10+10*r(),e=50*r()+86,n=360*r();return new et(t,e,n,"lch")}if("rgb"===t){const t=255*r(),e=255*r(),n=255*r();return new et(t,e,n)}if("lab"===t){const t=100*r(),e=256*r()-128,n=256*r()-128;return new et(t,e,n,"lab")}if("grey"===t){const t=255*r();return new et(t,t,t)}throw new Error("Unsupported random color mode")}static test(t){return"string"==typeof t&&(G.test(t)||H.test(t))}cmyk(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=Math.min(1-n,1-i,1-s);return 1===o?new et(0,0,0,1,"cmyk"):new et((1-n-o)/(1-o),(1-i-o)/(1-o),(1-s-o)/(1-o),o,"cmyk")}hsl(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=Math.max(n,i,s),a=Math.min(n,i,s),h=(o+a)/2,u=o===a,c=o-a;return new et(360*(u?0:o===n?((i-s)/c+(i<s?6:0))/6:o===i?((s-n)/c+2)/6:o===s?((n-i)/c+4)/6:0),100*(u?0:h>.5?c/(2-o-a):c/(o+a)),100*h,"hsl")}init(t=0,e=0,r=0,n=0,i="rgb"){if(t=t||0,this.space)for(const t in this.space)delete this[this.space[t]];if("number"==typeof t)i="string"==typeof n?n:i,n="string"==typeof n?0:n,Object.assign(this,{_a:t,_b:e,_c:r,_d:n,space:i});else if(t instanceof Array)this.space=e||("string"==typeof t[3]?t[3]:t[4])||"rgb",Object.assign(this,{_a:t[0],_b:t[1],_c:t[2],_d:t[3]||0});else if(t instanceof Object){const r=function(t,e){const r=K(t,"rgb")?{_a:t.r,_b:t.g,_c:t.b,_d:0,space:"rgb"}:K(t,"xyz")?{_a:t.x,_b:t.y,_c:t.z,_d:0,space:"xyz"}:K(t,"hsl")?{_a:t.h,_b:t.s,_c:t.l,_d:0,space:"hsl"}:K(t,"lab")?{_a:t.l,_b:t.a,_c:t.b,_d:0,space:"lab"}:K(t,"lch")?{_a:t.l,_b:t.c,_c:t.h,_d:0,space:"lch"}:K(t,"cmyk")?{_a:t.c,_b:t.m,_c:t.y,_d:t.k,space:"cmyk"}:{_a:0,_b:0,_c:0,space:"rgb"};return r.space=e||r.space,r}(t,e);Object.assign(this,r)}else if("string"==typeof t)if(H.test(t)){const e=t.replace(Y,""),[r,n,i]=R.exec(e).slice(1,4).map((t=>parseInt(t)));Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}else{if(!G.test(t))throw Error("Unsupported string format, can't construct Color");{const e=t=>parseInt(t,16),[,r,n,i]=F.exec(function(t){return 4===t.length?["#",t.substring(1,2),t.substring(1,2),t.substring(2,3),t.substring(2,3),t.substring(3,4),t.substring(3,4)].join(""):t}(t)).map(e);Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}}const{_a:s,_b:o,_c:a,_d:h}=this,u="rgb"===this.space?{r:s,g:o,b:a}:"xyz"===this.space?{x:s,y:o,z:a}:"hsl"===this.space?{h:s,s:o,l:a}:"lab"===this.space?{l:s,a:o,b:a}:"lch"===this.space?{l:s,c:o,h:a}:"cmyk"===this.space?{c:s,m:o,y:a,k:h}:{};Object.assign(this,u)}lab(){const{x:t,y:e,z:r}=this.xyz();return new et(116*e-16,500*(t-e),200*(e-r),"lab")}lch(){const{l:t,a:e,b:r}=this.lab(),n=Math.sqrt(e**2+r**2);let i=180*Math.atan2(r,e)/Math.PI;return i<0&&(i*=-1,i=360-i),new et(t,n,i,"lch")}rgb(){if("rgb"===this.space)return this;if("lab"===(t=this.space)||"xyz"===t||"lch"===t){let{x:t,y:e,z:r}=this;if("lab"===this.space||"lch"===this.space){let{l:n,a:i,b:s}=this;if("lch"===this.space){const{c:t,h:e}=this,r=Math.PI/180;i=t*Math.cos(r*e),s=t*Math.sin(r*e)}const o=(n+16)/116,a=i/500+o,h=o-s/200,u=16/116,c=.008856,l=7.787;t=.95047*(a**3>c?a**3:(a-u)/l),e=1*(o**3>c?o**3:(o-u)/l),r=1.08883*(h**3>c?h**3:(h-u)/l)}const n=3.2406*t+-1.5372*e+-.4986*r,i=-.9689*t+1.8758*e+.0415*r,s=.0557*t+-.204*e+1.057*r,o=Math.pow,a=.0031308,h=n>a?1.055*o(n,1/2.4)-.055:12.92*n,u=i>a?1.055*o(i,1/2.4)-.055:12.92*i,c=s>a?1.055*o(s,1/2.4)-.055:12.92*s;return new et(255*h,255*u,255*c)}if("hsl"===this.space){let{h:t,s:e,l:r}=this;if(t/=360,e/=100,r/=100,0===e)return r*=255,new et(r,r,r);const n=r<.5?r*(1+e):r+e-r*e,i=2*r-n,s=255*tt(i,n,t+1/3),o=255*tt(i,n,t),a=255*tt(i,n,t-1/3);return new et(s,o,a)}if("cmyk"===this.space){const{c:t,m:e,y:r,k:n}=this,i=255*(1-Math.min(1,t*(1-n)+n)),s=255*(1-Math.min(1,e*(1-n)+n)),o=255*(1-Math.min(1,r*(1-n)+n));return new et(i,s,o)}return this;var t}toArray(){const{_a:t,_b:e,_c:r,_d:n,space:i}=this;return[t,e,r,n,i]}toHex(){const[t,e,r]=this._clamped().map(Z);return`#${t}${e}${r}`}toRgb(){const[t,e,r]=this._clamped();return`rgb(${t},${e},${r})`}toString(){return this.toHex()}xyz(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92,a=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92,h=s>.04045?Math.pow((s+.055)/1.055,2.4):s/12.92,u=(.4124*o+.3576*a+.1805*h)/.95047,c=(.2126*o+.7152*a+.0722*h)/1,l=(.0193*o+.1192*a+.9505*h)/1.08883,d=u>.008856?Math.pow(u,1/3):7.787*u+16/116,f=c>.008856?Math.pow(c,1/3):7.787*c+16/116,p=l>.008856?Math.pow(l,1/3):7.787*l+16/116;return new et(d,f,p,"xyz")}_clamped(){const{_a:t,_b:e,_c:r}=this.rgb(),{max:n,min:i,round:s}=Math;return[t,e,r].map((t=>n(0,i(s(t),255))))}}class rt{constructor(...t){this.init(...t)}clone(){return new rt(this)}init(t,e){const r=Array.isArray(t)?{x:t[0],y:t[1]}:"object"==typeof t?{x:t.x,y:t.y}:{x:t,y:e};return this.x=null==r.x?0:r.x,this.y=null==r.y?0:r.y,this}toArray(){return[this.x,this.y]}transform(t){return this.clone().transformO(t)}transformO(t){it.isMatrixLike(t)||(t=new it(t));const{x:e,y:r}=this;return this.x=t.a*e+t.c*r+t.e,this.y=t.b*e+t.d*r+t.f,this}}function nt(t,e,r){return Math.abs(e-t)<(r||1e-6)}class it{constructor(...t){this.init(...t)}static formatTransforms(t){const e="both"===t.flip||!0===t.flip,r=t.flip&&(e||"x"===t.flip)?-1:1,n=t.flip&&(e||"y"===t.flip)?-1:1,i=t.skew&&t.skew.length?t.skew[0]:isFinite(t.skew)?t.skew:isFinite(t.skewX)?t.skewX:0,s=t.skew&&t.skew.length?t.skew[1]:isFinite(t.skew)?t.skew:isFinite(t.skewY)?t.skewY:0,o=t.scale&&t.scale.length?t.scale[0]*r:isFinite(t.scale)?t.scale*r:isFinite(t.scaleX)?t.scaleX*r:r,a=t.scale&&t.scale.length?t.scale[1]*n:isFinite(t.scale)?t.scale*n:isFinite(t.scaleY)?t.scaleY*n:n,h=t.shear||0,u=t.rotate||t.theta||0,c=new rt(t.origin||t.around||t.ox||t.originX,t.oy||t.originY),l=c.x,d=c.y,f=new rt(t.position||t.px||t.positionX||NaN,t.py||t.positionY||NaN),p=f.x,m=f.y,g=new rt(t.translate||t.tx||t.translateX,t.ty||t.translateY),y=g.x,w=g.y,b=new rt(t.relative||t.rx||t.relativeX,t.ry||t.relativeY);return{scaleX:o,scaleY:a,skewX:i,skewY:s,shear:h,theta:u,rx:b.x,ry:b.y,tx:y,ty:w,ox:l,oy:d,px:p,py:m}}static fromArray(t){return{a:t[0],b:t[1],c:t[2],d:t[3],e:t[4],f:t[5]}}static isMatrixLike(t){return null!=t.a||null!=t.b||null!=t.c||null!=t.d||null!=t.e||null!=t.f}static matrixMultiply(t,e,r){const n=t.a*e.a+t.c*e.b,i=t.b*e.a+t.d*e.b,s=t.a*e.c+t.c*e.d,o=t.b*e.c+t.d*e.d,a=t.e+t.a*e.e+t.c*e.f,h=t.f+t.b*e.e+t.d*e.f;return r.a=n,r.b=i,r.c=s,r.d=o,r.e=a,r.f=h,r}around(t,e,r){return this.clone().aroundO(t,e,r)}aroundO(t,e,r){const n=t||0,i=e||0;return this.translateO(-n,-i).lmultiplyO(r).translateO(n,i)}clone(){return new it(this)}decompose(t=0,e=0){const r=this.a,n=this.b,i=this.c,s=this.d,o=this.e,a=this.f,h=r*s-n*i,u=h>0?1:-1,c=u*Math.sqrt(r*r+n*n),l=Math.atan2(u*n,u*r),d=180/Math.PI*l,f=Math.cos(l),p=Math.sin(l),m=(r*i+n*s)/h,g=i*c/(m*r-n)||s*c/(m*n+r);return{scaleX:c,scaleY:g,shear:m,rotate:d,translateX:o-t+t*f*c+e*(m*f*c-p*g),translateY:a-e+t*p*c+e*(m*p*c+f*g),originX:t,originY:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}equals(t){if(t===this)return!0;const e=new it(t);return nt(this.a,e.a)&&nt(this.b,e.b)&&nt(this.c,e.c)&&nt(this.d,e.d)&&nt(this.e,e.e)&&nt(this.f,e.f)}flip(t,e){return this.clone().flipO(t,e)}flipO(t,e){return"x"===t?this.scaleO(-1,1,e,0):"y"===t?this.scaleO(1,-1,0,e):this.scaleO(-1,-1,t,e||t)}init(t){const e=it.fromArray([1,0,0,1,0,0]);return t=t instanceof Pt?t.matrixify():"string"==typeof t?it.fromArray(t.split(Q).map(parseFloat)):Array.isArray(t)?it.fromArray(t):"object"==typeof t&&it.isMatrixLike(t)?t:"object"==typeof t?(new it).transform(t):6===arguments.length?it.fromArray([].slice.call(arguments)):e,this.a=null!=t.a?t.a:e.a,this.b=null!=t.b?t.b:e.b,this.c=null!=t.c?t.c:e.c,this.d=null!=t.d?t.d:e.d,this.e=null!=t.e?t.e:e.e,this.f=null!=t.f?t.f:e.f,this}inverse(){return this.clone().inverseO()}inverseO(){const t=this.a,e=this.b,r=this.c,n=this.d,i=this.e,s=this.f,o=t*n-e*r;if(!o)throw new Error("Cannot invert "+this);const a=n/o,h=-e/o,u=-r/o,c=t/o,l=-(a*i+u*s),d=-(h*i+c*s);return this.a=a,this.b=h,this.c=u,this.d=c,this.e=l,this.f=d,this}lmultiply(t){return this.clone().lmultiplyO(t)}lmultiplyO(t){const e=t instanceof it?t:new it(t);return it.matrixMultiply(e,this,this)}multiply(t){return this.clone().multiplyO(t)}multiplyO(t){const e=t instanceof it?t:new it(t);return it.matrixMultiply(this,e,this)}rotate(t,e,r){return this.clone().rotateO(t,e,r)}rotateO(t,e=0,r=0){t=p(t);const n=Math.cos(t),i=Math.sin(t),{a:s,b:o,c:a,d:h,e:u,f:c}=this;return this.a=s*n-o*i,this.b=o*n+s*i,this.c=a*n-h*i,this.d=h*n+a*i,this.e=u*n-c*i+r*i-e*n+e,this.f=c*n+u*i-e*i-r*n+r,this}scale(){return this.clone().scaleO(...arguments)}scaleO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t);const{a:i,b:s,c:o,d:a,e:h,f:u}=this;return this.a=i*t,this.b=s*e,this.c=o*t,this.d=a*e,this.e=h*t-r*t+r,this.f=u*e-n*e+n,this}shear(t,e,r){return this.clone().shearO(t,e,r)}shearO(t,e=0,r=0){const{a:n,b:i,c:s,d:o,e:a,f:h}=this;return this.a=n+i*t,this.c=s+o*t,this.e=a+h*t-r*t,this}skew(){return this.clone().skewO(...arguments)}skewO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t),t=p(t),e=p(e);const i=Math.tan(t),s=Math.tan(e),{a:o,b:a,c:h,d:u,e:c,f:l}=this;return this.a=o+a*i,this.b=a+o*s,this.c=h+u*i,this.d=u+h*s,this.e=c+l*i-n*i,this.f=l+c*s-r*s,this}skewX(t,e,r){return this.skew(t,0,e,r)}skewY(t,e,r){return this.skew(0,t,e,r)}toArray(){return[this.a,this.b,this.c,this.d,this.e,this.f]}toString(){return"matrix("+this.a+","+this.b+","+this.c+","+this.d+","+this.e+","+this.f+")"}transform(t){if(it.isMatrixLike(t))return new it(t).multiplyO(this);const e=it.formatTransforms(t),{x:r,y:n}=new rt(e.ox,e.oy).transform(this),i=(new it).translateO(e.rx,e.ry).lmultiplyO(this).translateO(-r,-n).scaleO(e.scaleX,e.scaleY).skewO(e.skewX,e.skewY).shearO(e.shear).rotateO(e.theta).translateO(r,n);if(isFinite(e.px)||isFinite(e.py)){const t=new rt(r,n).transform(i),s=isFinite(e.px)?e.px-t.x:0,o=isFinite(e.py)?e.py-t.y:0;i.translateO(s,o)}return i.translateO(e.tx,e.ty),i}translate(t,e){return this.clone().translateO(t,e)}translateO(t,e){return this.e+=t||0,this.f+=e||0,this}valueOf(){return{a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}}function st(){if(!st.nodes){const t=A().size(2,0);t.node.style.cssText=["opacity: 0","position: absolute","left: -100%","top: -100%","overflow: hidden"].join(";"),t.attr("focusable","false"),t.attr("aria-hidden","true");const e=t.path().node;st.nodes={svg:t,path:e}}if(!st.nodes.svg.node.parentNode){const t=M.document.body||M.document.documentElement;st.nodes.svg.addTo(t)}return st.nodes}function ot(t){return!(t.width||t.height||t.x||t.y)}D(it,"Matrix");class at{constructor(...t){this.init(...t)}addOffset(){return this.x+=M.window.pageXOffset,this.y+=M.window.pageYOffset,new at(this)}init(t){return t="string"==typeof t?t.split(Q).map(parseFloat):Array.isArray(t)?t:"object"==typeof t?[null!=t.left?t.left:t.x,null!=t.top?t.top:t.y,t.width,t.height]:4===arguments.length?[].slice.call(arguments):[0,0,0,0],this.x=t[0]||0,this.y=t[1]||0,this.width=this.w=t[2]||0,this.height=this.h=t[3]||0,this.x2=this.x+this.w,this.y2=this.y+this.h,this.cx=this.x+this.w/2,this.cy=this.y+this.h/2,this}isNulled(){return ot(this)}merge(t){const e=Math.min(this.x,t.x),r=Math.min(this.y,t.y),n=Math.max(this.x+this.width,t.x+t.width)-e,i=Math.max(this.y+this.height,t.y+t.height)-r;return new at(e,r,n,i)}toArray(){return[this.x,this.y,this.width,this.height]}toString(){return this.x+" "+this.y+" "+this.width+" "+this.height}transform(t){t instanceof it||(t=new it(t));let e=1/0,r=-1/0,n=1/0,i=-1/0;return[new rt(this.x,this.y),new rt(this.x2,this.y),new rt(this.x,this.y2),new rt(this.x2,this.y2)].forEach((function(s){s=s.transform(t),e=Math.min(e,s.x),r=Math.max(r,s.x),n=Math.min(n,s.y),i=Math.max(i,s.y)})),new at(e,n,r-e,i-n)}}function ht(t,e,r){let n;try{if(n=e(t.node),ot(n)&&(i=t.node)!==M.document&&!(M.document.documentElement.contains||function(t){for(;t.parentNode;)t=t.parentNode;return t===M.document}).call(M.document.documentElement,i))throw new Error("Element not in the dom")}catch(e){n=r(t)}var i;return n}c({viewbox:{viewbox(t,e,r,n){return null==t?new at(this.attr("viewBox")):this.attr("viewBox",new at(t,e,r,n))},zoom(t,e){let{width:r,height:n}=this.attr(["width","height"]);if((r||n)&&"string"!=typeof r&&"string"!=typeof n||(r=this.node.clientWidth,n=this.node.clientHeight),!r||!n)throw new Error("Impossible to get absolute width and height. Please provide an absolute width and height attribute on the zooming element");const i=this.viewbox(),s=r/i.width,o=n/i.height,a=Math.min(s,o);if(null==t)return a;let h=a/t;h===1/0&&(h=Number.MAX_SAFE_INTEGER/100),e=e||new rt(r/2/s+i.x,n/2/o+i.y);const u=new at(i).transform(new it({scale:h,origin:e}));return this.viewbox(u)}}}),D(at,"Box");class ut extends Array{constructor(t=[],...e){if(super(t,...e),"number"==typeof t)return this;this.length=0,this.push(...t)}}const ct=ut;L([ut],{each(t,...e){return"function"==typeof t?this.map(((e,r,n)=>t.call(e,e,r,n))):this.map((r=>r[t](...e)))},toArray(){return Array.prototype.concat.apply([],this)}});const lt=["toArray","constructor","each"];function dt(t,e){return new ct(f((e||M.document).querySelectorAll(t),(function(t){return T(t)})))}ut.extend=function(t){t=t.reduce(((t,e)=>(lt.includes(e)||"_"===e[0]||(e in Array.prototype&&(t["$"+e]=Array.prototype[e]),t[e]=function(...t){return this.each(e,...t)}),t)),{}),L([ut],t)};let ft=0;const pt={};function mt(t){let e=t.getEventHolder();return e===M.window&&(e=pt),e.events||(e.events={}),e.events}function gt(t){return t.getEventTarget()}function yt(t,e,r,n,i){const s=r.bind(n||t),o=A(t),a=mt(o),h=gt(o);e=Array.isArray(e)?e:e.split(Q),r._svgjsListenerId||(r._svgjsListenerId=++ft),e.forEach((function(t){const e=t.split(".")[0],n=t.split(".")[1]||"*";a[e]=a[e]||{},a[e][n]=a[e][n]||{},a[e][n][r._svgjsListenerId]=s,h.addEventListener(e,s,i||!1)}))}function wt(t,e,r,n){const i=A(t),s=mt(i),o=gt(i);("function"!=typeof r||(r=r._svgjsListenerId))&&(e=Array.isArray(e)?e:(e||"").split(Q)).forEach((function(t){const e=t&&t.split(".")[0],a=t&&t.split(".")[1];let h,u;if(r)s[e]&&s[e][a||"*"]&&(o.removeEventListener(e,s[e][a||"*"][r],n||!1),delete s[e][a||"*"][r]);else if(e&&a){if(s[e]&&s[e][a]){for(u in s[e][a])wt(o,[e,a].join("."),u);delete s[e][a]}}else if(a)for(t in s)for(h in s[t])a===h&&wt(o,[t,a].join("."));else if(e){if(s[e]){for(h in s[e])wt(o,[e,h].join("."));delete s[e]}}else{for(t in s)wt(o,t);!function(t){let e=t.getEventHolder();e===M.window&&(e=pt),e.events&&(e.events={})}(i)}}))}class bt extends O{addEventListener(){}dispatch(t,e,r){return function(t,e,r,n){const i=gt(t);return e instanceof M.window.Event||(e=new M.window.CustomEvent(e,{detail:r,cancelable:!0,...n})),i.dispatchEvent(e),e}(this,t,e,r)}dispatchEvent(t){const e=this.getEventHolder().events;if(!e)return!0;const r=e[t.type];for(const e in r)for(const n in r[e])r[e][n](t);return!t.defaultPrevented}fire(t,e,r){return this.dispatch(t,e,r),this}getEventHolder(){return this}getEventTarget(){return this}off(t,e,r){return wt(this,t,e,r),this}on(t,e,r,n){return yt(this,t,e,r,n),this}removeEventListener(){}}function xt(){}D(bt,"EventTarget");const vt={"fill-opacity":1,"stroke-opacity":1,"stroke-width":0,"stroke-linejoin":"miter","stroke-linecap":"butt",fill:"#000000",stroke:"#000000",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,"stop-opacity":1,"stop-color":"#000000","text-anchor":"start"};class _t extends Array{constructor(...t){super(...t),this.init(...t)}clone(){return new this.constructor(this)}init(t){return"number"==typeof t||(this.length=0,this.push(...this.parse(t))),this}parse(t=[]){return t instanceof Array?t:t.trim().split(Q).map(parseFloat)}toArray(){return Array.prototype.concat.apply([],this)}toSet(){return new Set(this)}toString(){return this.join(" ")}valueOf(){const t=[];return t.push(...this),t}}class St{constructor(...t){this.init(...t)}convert(t){return new St(this.value,t)}divide(t){return t=new St(t),new St(this/t,this.unit||t.unit)}init(t,e){return e=Array.isArray(t)?t[1]:e,t=Array.isArray(t)?t[0]:t,this.value=0,this.unit=e||"","number"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:"string"==typeof t?(e=t.match(z))&&(this.value=parseFloat(e[1]),"%"===e[5]?this.value/=100:"s"===e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof St&&(this.value=t.valueOf(),this.unit=t.unit),this}minus(t){return t=new St(t),new St(this-t,this.unit||t.unit)}plus(t){return t=new St(t),new St(this+t,this.unit||t.unit)}times(t){return t=new St(t),new St(this*t,this.unit||t.unit)}toArray(){return[this.value,this.unit]}toJSON(){return this.toString()}toString(){return("%"===this.unit?~~(1e8*this.value)/1e6:"s"===this.unit?this.value/1e3:this.value)+this.unit}valueOf(){return this.value}}const Mt=new Set(["fill","stroke","color","bgcolor","stop-color","flood-color","lighting-color"]),Ot=[];class Nt extends bt{constructor(t,e){super(),this.node=t,this.type=t.nodeName,e&&t!==e&&this.attr(e)}add(t,e){return(t=A(t)).removeNamespace&&this.node instanceof M.window.SVGElement&&t.removeNamespace(),null==e?this.node.appendChild(t.node):t.node!==this.node.childNodes[e]&&this.node.insertBefore(t.node,this.node.childNodes[e]),this}addTo(t,e){return A(t).put(this,e)}children(){return new ct(f(this.node.children,(function(t){return T(t)})))}clear(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return this}clone(t=!0,e=!0){this.writeDataToDom();let r=this.node.cloneNode(t);return e&&(r=I(r)),new this.constructor(r)}each(t,e){const r=this.children();let n,i;for(n=0,i=r.length;n<i;n++)t.apply(r[n],[n,r]),e&&r[n].each(t,e);return this}element(t,e){return this.put(new Nt(C(t),e))}first(){return T(this.node.firstChild)}get(t){return T(this.node.childNodes[t])}getEventHolder(){return this.node}getEventTarget(){return this.node}has(t){return this.index(t)>=0}html(t,e){return this.xml(t,e,"http://www.w3.org/1999/xhtml")}id(t){return void 0!==t||this.node.id||(this.node.id=B(this.type)),this.attr("id",t)}index(t){return[].slice.call(this.node.childNodes).indexOf(t.node)}last(){return T(this.node.lastChild)}matches(t){const e=this.node,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector||null;return r&&r.call(e,t)}parent(t){let e=this;if(!e.node.parentNode)return null;if(e=T(e.node.parentNode),!t)return e;do{if("string"==typeof t?e.matches(t):e instanceof t)return e}while(e=T(e.node.parentNode));return e}put(t,e){return t=A(t),this.add(t,e),t}putIn(t,e){return A(t).add(this,e)}remove(){return this.parent()&&this.parent().removeElement(this),this}removeElement(t){return this.node.removeChild(t.node),this}replace(t){return t=A(t),this.node.parentNode&&this.node.parentNode.replaceChild(t.node,this.node),t}round(t=2,e=null){const r=10**t,n=this.attr(e);for(const t in n)"number"==typeof n[t]&&(n[t]=Math.round(n[t]*r)/r);return this.attr(n),this}svg(t,e){return this.xml(t,e,v)}toString(){return this.id()}words(t){return this.node.textContent=t,this}wrap(t){const e=this.parent();if(!e)return this.addTo(t);const r=e.index(this);return e.put(t,r).put(this)}writeDataToDom(){return this.each((function(){this.writeDataToDom()})),this}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){e=null==e||e,this.writeDataToDom();let r=this;if(null!=t){if(r=T(r.node.cloneNode(!0)),e){const e=t(r);if(r=e||r,!1===e)return""}r.each((function(){const e=t(this),r=e||this;!1===e?this.remove():e&&this!==r&&this.replace(r)}),!0)}return e?r.node.outerHTML:r.node.innerHTML}e=null!=e&&e;const n=C("wrapper",r),i=M.document.createDocumentFragment();n.innerHTML=t;for(let t=n.children.length;t--;)i.appendChild(n.firstElementChild);const s=this.parent();return e?this.replace(i)&&s:this.add(i)}}L(Nt,{attr:function(t,e,r){if(null==t){t={},e=this.node.attributes;for(const r of e)t[r.nodeName]=$.test(r.nodeValue)?parseFloat(r.nodeValue):r.nodeValue;return t}if(t instanceof Array)return t.reduce(((t,e)=>(t[e]=this.attr(e),t)),{});if("object"==typeof t&&t.constructor===Object)for(e in t)this.attr(e,t[e]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?vt[t]:$.test(e)?parseFloat(e):e;"number"==typeof(e=Ot.reduce(((e,r)=>r(t,e,this)),e))?e=new St(e):Mt.has(t)&&et.isColor(e)?e=new et(e):e.constructor===Array&&(e=new _t(e)),"leading"===t?this.leading&&this.leading(e):"string"==typeof r?this.node.setAttributeNS(r,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!==t&&"x"!==t||this.rebuild()}return this},find:function(t){return dt(t,this.node)},findOne:function(t){return T(this.node.querySelector(t))}}),D(Nt,"Dom");class Pt extends Nt{constructor(t,e){super(t,e),this.dom={},this.node.instance=this,(t.hasAttribute("data-svgjs")||t.hasAttribute("svgjs:data"))&&this.setData(JSON.parse(t.getAttribute("data-svgjs"))??JSON.parse(t.getAttribute("svgjs:data"))??{})}center(t,e){return this.cx(t).cy(e)}cx(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)}cy(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)}defs(){const t=this.root();return t&&t.defs()}dmove(t,e){return this.dx(t).dy(e)}dx(t=0){return this.x(new St(t).plus(this.x()))}dy(t=0){return this.y(new St(t).plus(this.y()))}getEventHolder(){return this}height(t){return this.attr("height",t)}move(t,e){return this.x(t).y(e)}parents(t=this.root()){const e="string"==typeof t;e||(t=A(t));const r=new ct;let n=this;for(;(n=n.parent())&&n.node!==M.document&&"#document-fragment"!==n.nodeName&&(r.push(n),e||n.node!==t.node)&&(!e||!n.matches(t));)if(n.node===this.root().node)return null;return r}reference(t){if(!(t=this.attr(t)))return null;const e=(t+"").match(q);return e?A(e[1]):null}root(){const t=this.parent(N[P]);return t&&t.root()}setData(t){return this.dom=t,this}size(t,e){const r=g(this,t,e);return this.width(new St(r.width)).height(new St(r.height))}width(t){return this.attr("width",t)}writeDataToDom(){return x(this,this.dom),super.writeDataToDom()}x(t){return this.attr("x",t)}y(t){return this.attr("y",t)}}L(Pt,{bbox:function(){const t=ht(this,(t=>t.getBBox()),(t=>{try{const e=t.clone().addTo(st().svg).show(),r=e.node.getBBox();return e.remove(),r}catch(e){throw new Error(`Getting bbox of element "${t.node.nodeName}" is not possible: ${e.toString()}`)}}));return new at(t)},rbox:function(t){const e=ht(this,(t=>t.getBoundingClientRect()),(t=>{throw new Error(`Getting rbox of element "${t.node.nodeName}" is not possible`)})),r=new at(e);return t?r.transform(t.screenCTM().inverseO()):r.addOffset()},inside:function(t,e){const r=this.bbox();return t>r.x&&e>r.y&&t<r.x+r.width&&e<r.y+r.height},point:function(t,e){return new rt(t,e).transformO(this.screenCTM().inverseO())},ctm:function(){return new it(this.node.getCTM())},screenCTM:function(){try{if("function"==typeof this.isRoot&&!this.isRoot()){const t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new it(e)}return new it(this.node.getScreenCTM())}catch(t){return console.warn(`Cannot get CTM from SVG node ${this.node.nodeName}. Is the element rendered?`),new it}}}),D(Pt,"Element");const Ct={stroke:["color","width","opacity","linecap","linejoin","miterlimit","dasharray","dashoffset"],fill:["color","opacity","rule"],prefix:function(t,e){return"color"===e?t:t+"-"+e}};["fill","stroke"].forEach((function(t){const e={};let r;e[t]=function(e){if(void 0===e)return this.attr(t);if("string"==typeof e||e instanceof et||et.isRgb(e)||e instanceof Pt)this.attr(t,e);else for(r=Ct[t].length-1;r>=0;r--)null!=e[Ct[t][r]]&&this.attr(Ct.prefix(t,Ct[t][r]),e[Ct[t][r]]);return this},c(["Element","Runner"],e)})),c(["Element","Runner"],{matrix:function(t,e,r,n,i,s){return null==t?new it(this):this.attr("transform",new it(t,e,r,n,i,s))},rotate:function(t,e,r){return this.transform({rotate:t,ox:e,oy:r},!0)},skew:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({skew:t,ox:e,oy:r},!0):this.transform({skew:[t,e],ox:r,oy:n},!0)},shear:function(t,e,r){return this.transform({shear:t,ox:e,oy:r},!0)},scale:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({scale:t,ox:e,oy:r},!0):this.transform({scale:[t,e],ox:r,oy:n},!0)},translate:function(t,e){return this.transform({translate:[t,e]},!0)},relative:function(t,e){return this.transform({relative:[t,e]},!0)},flip:function(t="both",e="center"){return-1==="xybothtrue".indexOf(t)&&(e=t,t="both"),this.transform({flip:t,origin:e},!0)},opacity:function(t){return this.attr("opacity",t)}}),c("radius",{radius:function(t,e=t){return"radialGradient"===(this._element||this).type?this.attr("r",new St(t)):this.rx(t).ry(e)}}),c("Path",{length:function(){return this.node.getTotalLength()},pointAt:function(t){return new rt(this.node.getPointAtLength(t))}}),c(["Element","Runner"],{font:function(t,e){if("object"==typeof t){for(e in t)this.font(e,t[e]);return this}return"leading"===t?this.leading(e):"anchor"===t?this.attr("text-anchor",e):"size"===t||"family"===t||"weight"===t||"stretch"===t||"variant"===t||"style"===t?this.attr("font-"+t,e):this.attr(t,e)}}),c("Element",["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","touchstart","touchmove","touchleave","touchend","touchcancel","contextmenu","wheel","pointerdown","pointermove","pointerup","pointerleave","pointercancel"].reduce((function(t,e){return t[e]=function(t){return null===t?this.off(e):this.on(e,t),this},t}),{})),c("Element",{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(X).slice(0,-1).map((function(t){const e=t.trim().split("(");return[e[0],e[1].split(Q).map((function(t){return parseFloat(t)}))]})).reverse().reduce((function(t,e){return"matrix"===e[0]?t.lmultiply(it.fromArray(e[1])):t[e[0]].apply(t,e[1])}),new it)},toParent:function(t,e){if(this===t)return this;if(b(this.node))return this.addTo(t,e);const r=this.screenCTM(),n=t.screenCTM().inverse();return this.addTo(t,e).untransform().transform(n.multiply(r)),this},toRoot:function(t){return this.toParent(this.root(),t)},transform:function(t,e){if(null==t||"string"==typeof t){const e=new it(this).decompose();return null==t?e:e[t]}it.isMatrixLike(t)||(t={...t,origin:y(t,this)});const r=new it(!0===e?this:e||!1).transform(t);return this.attr("transform",r)}});class At extends Pt{flatten(){return this.each((function(){if(this instanceof At)return this.flatten().ungroup()})),this}ungroup(t=this.parent(),e=t.index(this)){return e=-1===e?t.children().length:e,this.each((function(r,n){return n[n.length-r-1].toParent(t,e)})),this.remove()}}D(At,"Container");class Et extends At{constructor(t,e=t){super(E("defs",t),e)}flatten(){return this}ungroup(){return this}}D(Et,"Defs");class Tt extends Pt{}function jt(t){return this.attr("rx",t)}function Dt(t){return this.attr("ry",t)}function kt(t){return null==t?this.cx()-this.rx():this.cx(t+this.rx())}function Bt(t){return null==t?this.cy()-this.ry():this.cy(t+this.ry())}function It(t){return this.attr("cx",t)}function Lt(t){return this.attr("cy",t)}function Vt(t){return null==t?2*this.rx():this.rx(new St(t).divide(2))}function zt(t){return null==t?2*this.ry():this.ry(new St(t).divide(2))}D(Tt,"Shape");class Ft extends Tt{constructor(t,e=t){super(E("ellipse",t),e)}size(t,e){const r=g(this,t,e);return this.rx(new St(r.width).divide(2)).ry(new St(r.height).divide(2))}}L(Ft,t),c("Container",{ellipse:V((function(t=0,e=t){return this.put(new Ft).size(t,e).move(0,0)}))}),D(Ft,"Ellipse");class Rt extends Nt{constructor(t=M.document.createDocumentFragment()){super(t)}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){const t=new Nt(C("wrapper",r));return t.add(this.node.cloneNode(!0)),t.xml(!1,r)}return super.xml(t,!1,r)}}D(Rt,"Fragment");const qt=Rt;function Xt(t,e){return"radialGradient"===(this._element||this).type?this.attr({fx:new St(t),fy:new St(e)}):this.attr({x1:new St(t),y1:new St(e)})}function Yt(t,e){return"radialGradient"===(this._element||this).type?this.attr({cx:new St(t),cy:new St(e)}):this.attr({x2:new St(t),y2:new St(e)})}class Gt extends At{constructor(t,e){super(E(t+"Gradient","string"==typeof t?null:t),e)}attr(t,e,r){return"transform"===t&&(t="gradientTransform"),super.attr(t,e,r)}bbox(){return new at}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}L(Gt,e),c({Container:{gradient(...t){return this.defs().gradient(...t)}},Defs:{gradient:V((function(t,e){return this.put(new Gt(t)).update(e)}))}}),D(Gt,"Gradient");class Ht extends At{constructor(t,e=t){super(E("pattern",t),e)}attr(t,e,r){return"transform"===t&&(t="patternTransform"),super.attr(t,e,r)}bbox(){return new at}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}c({Container:{pattern(...t){return this.defs().pattern(...t)}},Defs:{pattern:V((function(t,e,r){return this.put(new Ht).update(r).attr({x:0,y:0,width:t,height:e,patternUnits:"userSpaceOnUse"})}))}}),D(Ht,"Pattern");class Ut extends Tt{constructor(t,e=t){super(E("image",t),e)}load(t,e){if(!t)return this;const r=new M.window.Image;return yt(r,"load",(function(t){const n=this.parent(Ht);0===this.width()&&0===this.height()&&this.size(r.width,r.height),n instanceof Ht&&0===n.width()&&0===n.height()&&n.size(this.width(),this.height()),"function"==typeof e&&e.call(this,t)}),this),yt(r,"load error",(function(){wt(r)})),this.attr("href",r.src=t,S)}}var $t;$t=function(t,e,r){return"fill"!==t&&"stroke"!==t||W.test(e)&&(e=r.root().defs().image(e)),e instanceof Ut&&(e=r.root().defs().pattern(0,0,(t=>{t.add(e)}))),e},Ot.push($t),c({Container:{image:V((function(t,e){return this.put(new Ut).size(0,0).load(t,e)}))}}),D(Ut,"Image");class Wt extends _t{bbox(){let t=-1/0,e=-1/0,r=1/0,n=1/0;return this.forEach((function(i){t=Math.max(i[0],t),e=Math.max(i[1],e),r=Math.min(i[0],r),n=Math.min(i[1],n)})),new at(r,n,t-r,e-n)}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r=this.length-1;r>=0;r--)this[r]=[this[r][0]+t,this[r][1]+e];return this}parse(t=[0,0]){const e=[];(t=t instanceof Array?Array.prototype.concat.apply([],t):t.trim().split(Q).map(parseFloat)).length%2!=0&&t.pop();for(let r=0,n=t.length;r<n;r+=2)e.push([t[r],t[r+1]]);return e}size(t,e){let r;const n=this.bbox();for(r=this.length-1;r>=0;r--)n.width&&(this[r][0]=(this[r][0]-n.x)*t/n.width+n.x),n.height&&(this[r][1]=(this[r][1]-n.y)*e/n.height+n.y);return this}toLine(){return{x1:this[0][0],y1:this[0][1],x2:this[1][0],y2:this[1][1]}}toString(){const t=[];for(let e=0,r=this.length;e<r;e++)t.push(this[e].join(","));return t.join(" ")}transform(t){return this.clone().transformO(t)}transformO(t){it.isMatrixLike(t)||(t=new it(t));for(let e=this.length;e--;){const[r,n]=this[e];this[e][0]=t.a*r+t.c*n+t.e,this[e][1]=t.b*r+t.d*n+t.f}return this}}const Qt=Wt;function Jt(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}function Zt(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}function Kt(t){const e=this.bbox();return null==t?e.width:this.size(t,e.height)}function te(t){const e=this.bbox();return null==t?e.height:this.size(e.width,t)}class ee extends Tt{constructor(t,e=t){super(E("line",t),e)}array(){return new Wt([[this.attr("x1"),this.attr("y1")],[this.attr("x2"),this.attr("y2")]])}move(t,e){return this.attr(this.array().move(t,e).toLine())}plot(t,e,r,n){return null==t?this.array():(t=void 0!==e?{x1:t,y1:e,x2:r,y2:n}:new Wt(t).toLine(),this.attr(t))}size(t,e){const r=g(this,t,e);return this.attr(this.array().size(r.width,r.height).toLine())}}L(ee,i),c({Container:{line:V((function(...t){return ee.prototype.plot.apply(this.put(new ee),null!=t[0]?t:[0,0,0,0])}))}}),D(ee,"Line");class re extends At{constructor(t,e=t){super(E("marker",t),e)}height(t){return this.attr("markerHeight",t)}orient(t){return this.attr("orient",t)}ref(t,e){return this.attr("refX",t).attr("refY",e)}toString(){return"url(#"+this.id()+")"}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}width(t){return this.attr("markerWidth",t)}}function ne(t,e){return function(r){return null==r?this[t]:(this[t]=r,e&&e.call(this),this)}}c({Container:{marker(...t){return this.defs().marker(...t)}},Defs:{marker:V((function(t,e,r){return this.put(new re).size(t,e).ref(t/2,e/2).viewbox(0,0,t,e).attr("orient","auto").update(r)}))},marker:{marker(t,e,r,n){let i=["marker"];return"all"!==t&&i.push(t),i=i.join("-"),t=arguments[1]instanceof re?arguments[1]:this.defs().marker(e,r,n),this.attr(i,t)}}}),D(re,"Marker");const ie={"-":function(t){return t},"<>":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)},bezier:function(t,e,r,n){return function(i){return i<0?t>0?e/t*i:r>0?n/r*i:0:i>1?r<1?(1-n)/(1-r)*i+(n-r)/(1-r):t<1?(1-e)/(1-t)*i+(e-t)/(1-t):1:3*i*(1-i)**2*e+3*i**2*(1-i)*n+i**3}},steps:function(t,e="end"){e=e.split("-").reverse()[0];let r=t;return"none"===e?--r:"both"===e&&++r,(n,i=!1)=>{let s=Math.floor(n*t);const o=n*s%1==0;return"start"!==e&&"both"!==e||++s,i&&o&&--s,n>=0&&s<0&&(s=0),n<=1&&s>r&&(s=r),s/r}}};class se{done(){return!1}}class oe extends se{constructor(t=">"){super(),this.ease=ie[t]||t}step(t,e,r){return"number"!=typeof t?r<1?t:e:t+(e-t)*this.ease(r)}}class ae extends se{constructor(t){super(),this.stepper=t}done(t){return t.done}step(t,e,r,n){return this.stepper(t,e,r,n)}}function he(){const t=(this._duration||500)/1e3,e=this._overshoot||0,r=Math.PI,n=Math.log(e/100+1e-10),i=-n/Math.sqrt(r*r+n*n),s=3.9/(i*t);this.d=2*i*s,this.k=s*s}L(class extends ae{constructor(t=500,e=0){super(),this.duration(t).overshoot(e)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;r>100&&(r=16),r/=1e3;const i=n.velocity||0,s=-this.d*i-this.k*(t-e),o=t+i*r+s*r*r/2;return n.velocity=i+s*r,n.done=Math.abs(e-o)+Math.abs(i)<.002,n.done?e:o}},{duration:ne("_duration",he),overshoot:ne("_overshoot",he)}),L(class extends ae{constructor(t=.1,e=.01,r=0,n=1e3){super(),this.p(t).i(e).d(r).windup(n)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;const i=e-t;let s=(n.integral||0)+i*r;const o=(i-(n.error||0))/r,a=this._windup;return!1!==a&&(s=Math.max(-a,Math.min(s,a))),n.error=i,n.integral=s,n.done=Math.abs(i)<.001,n.done?e:t+(this.P*i+this.I*s+this.D*o)}},{windup:ne("_windup"),p:ne("P"),i:ne("I"),d:ne("D")});const ue={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0},ce={M:function(t,e,r){return e.x=r.x=t[0],e.y=r.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},S:function(t,e){return e.x=t[2],e.y=t[3],["S",t[0],t[1],t[2],t[3]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},T:function(t,e){return e.x=t[0],e.y=t[1],["T",t[0],t[1]]},Z:function(t,e,r){return e.x=r.x,e.y=r.y,["Z"]},A:function(t,e){return e.x=t[5],e.y=t[6],["A",t[0],t[1],t[2],t[3],t[4],t[5],t[6]]}},le="mlhvqtcsaz".split("");for(let t=0,e=le.length;t<e;++t)ce[le[t]]=function(t){return function(e,r,n){if("H"===t)e[0]=e[0]+r.x;else if("V"===t)e[0]=e[0]+r.y;else if("A"===t)e[5]=e[5]+r.x,e[6]=e[6]+r.y;else for(let t=0,n=e.length;t<n;++t)e[t]=e[t]+(t%2?r.y:r.x);return ce[t](e,r,n)}}(le[t].toUpperCase());function de(t){return t.segment.length&&t.segment.length-1===ue[t.segment[0].toUpperCase()]}function fe(t,e){t.inNumber&&pe(t,!1);const r=J.test(e);if(r)t.segment=[e];else{const e=t.lastCommand,r=e.toLowerCase(),n=e===r;t.segment=["m"===r?n?"l":"L":e]}return t.inSegment=!0,t.lastCommand=t.segment[0],r}function pe(t,e){if(!t.inNumber)throw new Error("Parser Error");t.number&&t.segment.push(parseFloat(t.number)),t.inNumber=e,t.number="",t.pointSeen=!1,t.hasExponent=!1,de(t)&&me(t)}function me(t){t.inSegment=!1,t.absolute&&(t.segment=function(t){const e=t.segment[0];return ce[e](t.segment.slice(1),t.p,t.p0)}(t)),t.segments.push(t.segment)}function ge(t){if(!t.segment.length)return!1;const e="A"===t.segment[0].toUpperCase(),r=t.segment.length;return e&&(4===r||5===r)}function ye(t){return"E"===t.lastToken.toUpperCase()}const we=new Set([" ",",","\t","\n","\r","\f"]);class be extends _t{bbox(){return st().path.setAttribute("d",this.toString()),new at(st.nodes.path.getBBox())}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r,n=this.length-1;n>=0;n--)r=this[n][0],"M"===r||"L"===r||"T"===r?(this[n][1]+=t,this[n][2]+=e):"H"===r?this[n][1]+=t:"V"===r?this[n][1]+=e:"C"===r||"S"===r||"Q"===r?(this[n][1]+=t,this[n][2]+=e,this[n][3]+=t,this[n][4]+=e,"C"===r&&(this[n][5]+=t,this[n][6]+=e)):"A"===r&&(this[n][6]+=t,this[n][7]+=e);return this}parse(t="M0 0"){return Array.isArray(t)&&(t=Array.prototype.concat.apply([],t).toString()),function(t,e=!0){let r=0,n="";const i={segment:[],inNumber:!1,number:"",lastToken:"",inSegment:!1,segments:[],pointSeen:!1,hasExponent:!1,absolute:e,p0:new rt,p:new rt};for(;i.lastToken=n,n=t.charAt(r++);)if(i.inSegment||!fe(i,n))if("."!==n)if(isNaN(parseInt(n)))if(we.has(n))i.inNumber&&pe(i,!1);else if("-"!==n&&"+"!==n)if("E"!==n.toUpperCase()){if(J.test(n)){if(i.inNumber)pe(i,!1);else{if(!de(i))throw new Error("parser Error");me(i)}--r}}else i.number+=n,i.hasExponent=!0;else{if(i.inNumber&&!ye(i)){pe(i,!1),--r;continue}i.number+=n,i.inNumber=!0}else{if("0"===i.number||ge(i)){i.inNumber=!0,i.number=n,pe(i,!0);continue}i.inNumber=!0,i.number+=n}else{if(i.pointSeen||i.hasExponent){pe(i,!1),--r;continue}i.inNumber=!0,i.pointSeen=!0,i.number+=n}return i.inNumber&&pe(i,!1),i.inSegment&&de(i)&&me(i),i.segments}(t)}size(t,e){const r=this.bbox();let n,i;for(r.width=0===r.width?1:r.width,r.height=0===r.height?1:r.height,n=this.length-1;n>=0;n--)i=this[n][0],"M"===i||"L"===i||"T"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y):"H"===i?this[n][1]=(this[n][1]-r.x)*t/r.width+r.x:"V"===i?this[n][1]=(this[n][1]-r.y)*e/r.height+r.y:"C"===i||"S"===i||"Q"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y,this[n][3]=(this[n][3]-r.x)*t/r.width+r.x,this[n][4]=(this[n][4]-r.y)*e/r.height+r.y,"C"===i&&(this[n][5]=(this[n][5]-r.x)*t/r.width+r.x,this[n][6]=(this[n][6]-r.y)*e/r.height+r.y)):"A"===i&&(this[n][1]=this[n][1]*t/r.width,this[n][2]=this[n][2]*e/r.height,this[n][6]=(this[n][6]-r.x)*t/r.width+r.x,this[n][7]=(this[n][7]-r.y)*e/r.height+r.y);return this}toString(){return function(t){let e="";for(let r=0,n=t.length;r<n;r++)e+=t[r][0],null!=t[r][1]&&(e+=t[r][1],null!=t[r][2]&&(e+=" ",e+=t[r][2],null!=t[r][3]&&(e+=" ",e+=t[r][3],e+=" ",e+=t[r][4],null!=t[r][5]&&(e+=" ",e+=t[r][5],e+=" ",e+=t[r][6],null!=t[r][7]&&(e+=" ",e+=t[r][7])))));return e+" "}(this)}}const xe=t=>{const e=typeof t;return"number"===e?St:"string"===e?et.isColor(t)?et:Q.test(t)?J.test(t)?be:_t:z.test(t)?St:_e:Ne.indexOf(t.constructor)>-1?t.constructor:Array.isArray(t)?_t:"object"===e?Oe:_e};class ve{constructor(t){this._stepper=t||new oe("-"),this._from=null,this._to=null,this._type=null,this._context=null,this._morphObj=null}at(t){return this._morphObj.morph(this._from,this._to,t,this._stepper,this._context)}done(){return this._context.map(this._stepper.done).reduce((function(t,e){return t&&e}),!0)}from(t){return null==t?this._from:(this._from=this._set(t),this)}stepper(t){return null==t?this._stepper:(this._stepper=t,this)}to(t){return null==t?this._to:(this._to=this._set(t),this)}type(t){return null==t?this._type:(this._type=t,this)}_set(t){this._type||this.type(xe(t));let e=new this._type(t);return this._type===et&&(e=this._to?e[this._to[4]]():this._from?e[this._from[4]]():e),this._type===Oe&&(e=this._to?e.align(this._to):this._from?e.align(this._from):e),e=e.toConsumable(),this._morphObj=this._morphObj||new this._type,this._context=this._context||Array.apply(null,Array(e.length)).map(Object).map((function(t){return t.done=!0,t})),e}}class _e{constructor(...t){this.init(...t)}init(t){return t=Array.isArray(t)?t[0]:t,this.value=t,this}toArray(){return[this.value]}valueOf(){return this.value}}class Se{constructor(...t){this.init(...t)}init(t){return Array.isArray(t)&&(t={scaleX:t[0],scaleY:t[1],shear:t[2],rotate:t[3],translateX:t[4],translateY:t[5],originX:t[6],originY:t[7]}),Object.assign(this,Se.defaults,t),this}toArray(){const t=this;return[t.scaleX,t.scaleY,t.shear,t.rotate,t.translateX,t.translateY,t.originX,t.originY]}}Se.defaults={scaleX:1,scaleY:1,shear:0,rotate:0,translateX:0,translateY:0,originX:0,originY:0};const Me=(t,e)=>t[0]<e[0]?-1:t[0]>e[0]?1:0;class Oe{constructor(...t){this.init(...t)}align(t){const e=this.values;for(let r=0,n=e.length;r<n;++r){if(e[r+1]===t[r+1]){if(e[r+1]===et&&t[r+7]!==e[r+7]){const e=t[r+7],n=new et(this.values.splice(r+3,5))[e]().toArray();this.values.splice(r+3,0,...n)}r+=e[r+2]+2;continue}if(!t[r+1])return this;const n=(new t[r+1]).toArray(),i=e[r+2]+3;e.splice(r,i,t[r],t[r+1],t[r+2],...n),r+=e[r+2]+2}return this}init(t){if(this.values=[],Array.isArray(t))return void(this.values=t.slice());t=t||{};const e=[];for(const r in t){const n=xe(t[r]),i=new n(t[r]).toArray();e.push([r,n,i.length,...i])}return e.sort(Me),this.values=e.reduce(((t,e)=>t.concat(e)),[]),this}toArray(){return this.values}valueOf(){const t={},e=this.values;for(;e.length;){const r=e.shift(),n=e.shift(),i=e.shift(),s=e.splice(0,i);t[r]=new n(s)}return t}}const Ne=[_e,Se,Oe];class Pe extends Tt{constructor(t,e=t){super(E("path",t),e)}array(){return this._array||(this._array=new be(this.attr("d")))}clear(){return delete this._array,this}height(t){return null==t?this.bbox().height:this.size(this.bbox().width,t)}move(t,e){return this.attr("d",this.array().move(t,e))}plot(t){return null==t?this.array():this.clear().attr("d","string"==typeof t?t:this._array=new be(t))}size(t,e){const r=g(this,t,e);return this.attr("d",this.array().size(r.width,r.height))}width(t){return null==t?this.bbox().width:this.size(t,this.bbox().height)}x(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}y(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}}function Ce(){return this._array||(this._array=new Wt(this.attr("points")))}function Ae(){return delete this._array,this}function Ee(t,e){return this.attr("points",this.array().move(t,e))}function Te(t){return null==t?this.array():this.clear().attr("points","string"==typeof t?t:this._array=new Wt(t))}function je(t,e){const r=g(this,t,e);return this.attr("points",this.array().size(r.width,r.height))}Pe.prototype.MorphArray=be,c({Container:{path:V((function(t){return this.put(new Pe).plot(t||new be)}))}}),D(Pe,"Path");class De extends Tt{constructor(t,e=t){super(E("polygon",t),e)}}c({Container:{polygon:V((function(t){return this.put(new De).plot(t||new Wt)}))}}),L(De,i),L(De,s),D(De,"Polygon");class ke extends Tt{constructor(t,e=t){super(E("polyline",t),e)}}c({Container:{polyline:V((function(t){return this.put(new ke).plot(t||new Wt)}))}}),L(ke,i),L(ke,s),D(ke,"Polyline");class Be extends Tt{constructor(t,e=t){super(E("rect",t),e)}}L(Be,{rx:jt,ry:Dt}),c({Container:{rect:V((function(t,e){return this.put(new Be).size(t,e)}))}}),D(Be,"Rect");class Ie{constructor(){this._first=null,this._last=null}first(){return this._first&&this._first.value}last(){return this._last&&this._last.value}push(t){const e=void 0!==t.next?t:{value:t,next:null,prev:null};return this._last?(e.prev=this._last,this._last.next=e,this._last=e):(this._last=e,this._first=e),e}remove(t){t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t===this._last&&(this._last=t.prev),t===this._first&&(this._first=t.next),t.prev=null,t.next=null}shift(){const t=this._first;return t?(this._first=t.next,this._first&&(this._first.prev=null),this._last=this._first?this._last:null,t.value):null}}const Le={nextDraw:null,frames:new Ie,timeouts:new Ie,immediates:new Ie,timer:()=>M.window.performance||M.window.Date,transforms:[],frame(t){const e=Le.frames.push({run:t});return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),e},timeout(t,e){e=e||0;const r=Le.timer().now()+e,n=Le.timeouts.push({run:t,time:r});return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),n},immediate(t){const e=Le.immediates.push(t);return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),e},cancelFrame(t){null!=t&&Le.frames.remove(t)},clearTimeout(t){null!=t&&Le.timeouts.remove(t)},cancelImmediate(t){null!=t&&Le.immediates.remove(t)},_draw(t){let e=null;const r=Le.timeouts.last();for(;(e=Le.timeouts.shift())&&(t>=e.time?e.run():Le.timeouts.push(e),e!==r););let n=null;const i=Le.frames.last();for(;n!==i&&(n=Le.frames.shift());)n.run(t);let s=null;for(;s=Le.immediates.shift();)s();Le.nextDraw=Le.timeouts.first()||Le.frames.first()?M.window.requestAnimationFrame(Le._draw):null}},Ve=Le,ze=function(t){const e=t.start,r=t.runner.duration();return{start:e,duration:r,end:e+r,runner:t.runner}},Fe=function(){const t=M.window;return(t.performance||t.Date).now()};class Re extends bt{constructor(t=Fe){super(),this._timeSource=t,this.terminate()}active(){return!!this._nextFrame}finish(){return this.time(this.getEndTimeOfTimeline()+1),this.pause()}getEndTime(){const t=this.getLastRunnerInfo(),e=t?t.runner.duration():0;return(t?t.start:this._time)+e}getEndTimeOfTimeline(){const t=this._runners.map((t=>t.start+t.runner.duration()));return Math.max(0,...t)}getLastRunnerInfo(){return this.getRunnerInfoById(this._lastRunnerId)}getRunnerInfoById(t){return this._runners[this._runnerIds.indexOf(t)]||null}pause(){return this._paused=!0,this._continue()}persist(t){return null==t?this._persist:(this._persist=t,this)}play(){return this._paused=!1,this.updateTime()._continue()}reverse(t){const e=this.speed();if(null==t)return this.speed(-e);const r=Math.abs(e);return this.speed(t?-r:r)}schedule(t,e,r){if(null==t)return this._runners.map(ze);let n=0;const i=this.getEndTime();if(e=e||0,null==r||"last"===r||"after"===r)n=i;else if("absolute"===r||"start"===r)n=e,e=0;else if("now"===r)n=this._time;else if("relative"===r){const r=this.getRunnerInfoById(t.id);r&&(n=r.start+e,e=0)}else{if("with-last"!==r)throw new Error('Invalid value for the "when" parameter');{const t=this.getLastRunnerInfo();n=t?t.start:this._time}}t.unschedule(),t.timeline(this);const s=t.persist(),o={persist:null===s?this._persist:s,start:n+e,runner:t};return this._lastRunnerId=t.id,this._runners.push(o),this._runners.sort(((t,e)=>t.start-e.start)),this._runnerIds=this._runners.map((t=>t.runner.id)),this.updateTime()._continue(),this}seek(t){return this.time(this._time+t)}source(t){return null==t?this._timeSource:(this._timeSource=t,this)}speed(t){return null==t?this._speed:(this._speed=t,this)}stop(){return this.time(0),this.pause()}time(t){return null==t?this._time:(this._time=t,this._continue(!0))}unschedule(t){const e=this._runnerIds.indexOf(t.id);return e<0||(this._runners.splice(e,1),this._runnerIds.splice(e,1),t.timeline(null)),this}updateTime(){return this.active()||(this._lastSourceTime=this._timeSource()),this}_continue(t=!1){return Ve.cancelFrame(this._nextFrame),this._nextFrame=null,t?this._stepImmediate():(this._paused||(this._nextFrame=Ve.frame(this._step)),this)}_stepFn(t=!1){const e=this._timeSource();let r=e-this._lastSourceTime;t&&(r=0);const n=this._speed*r+(this._time-this._lastStepTime);this._lastSourceTime=e,t||(this._time+=n,this._time=this._time<0?0:this._time),this._lastStepTime=this._time,this.fire("time",this._time);for(let t=this._runners.length;t--;){const e=this._runners[t],r=e.runner;this._time-e.start<=0&&r.reset()}let i=!1;for(let t=0,e=this._runners.length;t<e;t++){const r=this._runners[t],s=r.runner;let o=n;const a=this._time-r.start;a<=0?i=!0:(a<o&&(o=a),s.active()&&(s.step(o).done?!0!==r.persist&&s.duration()-s.time()+this._time+r.persist<this._time&&(s.unschedule(),--t,--e):i=!0))}return i&&!(this._speed<0&&0===this._time)||this._runnerIds.length&&this._speed<0&&this._time>0?this._continue():(this.pause(),this.fire("finished")),this}terminate(){this._startTime=0,this._speed=1,this._persist=0,this._nextFrame=null,this._paused=!0,this._runners=[],this._runnerIds=[],this._lastRunnerId=-1,this._time=0,this._lastSourceTime=0,this._lastStepTime=0,this._step=this._stepFn.bind(this,!1),this._stepImmediate=this._stepFn.bind(this,!0)}}c({Element:{timeline:function(t){return null==t?(this._timeline=this._timeline||new Re,this._timeline):(this._timeline=t,this)}}});class qe extends bt{constructor(t){super(),this.id=qe.id++,t="function"==typeof(t=null==t?400:t)?new ae(t):t,this._element=null,this._timeline=null,this.done=!1,this._queue=[],this._duration="number"==typeof t&&t,this._isDeclarative=t instanceof ae,this._stepper=this._isDeclarative?t:new oe,this._history={},this.enabled=!0,this._time=0,this._lastTime=0,this._reseted=!0,this.transforms=new it,this.transformId=1,this._haveReversed=!1,this._reverse=!1,this._loopsDone=0,this._swing=!1,this._wait=0,this._times=1,this._frameId=null,this._persist=!!this._isDeclarative||null}static sanitise(t,e,r){let n=1,i=!1,s=0;return e=e??0,r=r||"last","object"!=typeof(t=t??400)||t instanceof se||(e=t.delay??e,r=t.when??r,i=t.swing||i,n=t.times??n,s=t.wait??s,t=t.duration??400),{duration:t,delay:e,swing:i,times:n,wait:s,when:r}}active(t){return null==t?this.enabled:(this.enabled=t,this)}addTransform(t){return this.transforms.lmultiplyO(t),this}after(t){return this.on("finished",t)}animate(t,e,r){const n=qe.sanitise(t,e,r),i=new qe(n.duration);return this._timeline&&i.timeline(this._timeline),this._element&&i.element(this._element),i.loop(n).schedule(n.delay,n.when)}clearTransform(){return this.transforms=new it,this}clearTransformsFromQueue(){this.done&&this._timeline&&this._timeline._runnerIds.includes(this.id)||(this._queue=this._queue.filter((t=>!t.isTransform)))}delay(t){return this.animate(0,t)}duration(){return this._times*(this._wait+this._duration)-this._wait}during(t){return this.queue(null,t)}ease(t){return this._stepper=new oe(t),this}element(t){return null==t?this._element:(this._element=t,t._prepareRunner(),this)}finish(){return this.step(1/0)}loop(t,e,r){return"object"==typeof t&&(e=t.swing,r=t.wait,t=t.times),this._times=t||1/0,this._swing=e||!1,this._wait=r||0,!0===this._times&&(this._times=1/0),this}loops(t){const e=this._duration+this._wait;if(null==t){const t=Math.floor(this._time/e),r=(this._time-t*e)/this._duration;return Math.min(t+r,this._times)}const r=t%1,n=e*Math.floor(t)+this._duration*r;return this.time(n)}persist(t){return null==t?this._persist:(this._persist=t,this)}position(t){const e=this._time,r=this._duration,n=this._wait,i=this._times,s=this._swing,o=this._reverse;let a;if(null==t){const t=function(t){const e=s*Math.floor(t%(2*(n+r))/(n+r)),i=e&&!o||!e&&o,a=Math.pow(-1,i)*(t%(n+r))/r+i;return Math.max(Math.min(a,1),0)},h=i*(n+r)-n;return a=e<=0?Math.round(t(1e-5)):e<h?t(e):Math.round(t(h-1e-5)),a}const h=Math.floor(this.loops()),u=s&&h%2==0;return a=h+(u&&!o||o&&u?t:1-t),this.loops(a)}progress(t){return null==t?Math.min(1,this._time/this.duration()):this.time(t*this.duration())}queue(t,e,r,n){return this._queue.push({initialiser:t||xt,runner:e||xt,retarget:r,isTransform:n,initialised:!1,finished:!1}),this.timeline()&&this.timeline()._continue(),this}reset(){return this._reseted||(this.time(0),this._reseted=!0),this}reverse(t){return this._reverse=null==t?!this._reverse:t,this}schedule(t,e,r){if(t instanceof Re||(r=e,e=t,t=this.timeline()),!t)throw Error("Runner cannot be scheduled without timeline");return t.schedule(this,e,r),this}step(t){if(!this.enabled)return this;t=null==t?16:t,this._time+=t;const e=this.position(),r=this._lastPosition!==e&&this._time>=0;this._lastPosition=e;const n=this.duration(),i=this._lastTime<=0&&this._time>0,s=this._lastTime<n&&this._time>=n;this._lastTime=this._time,i&&this.fire("start",this);const o=this._isDeclarative;this.done=!o&&!s&&this._time>=n,this._reseted=!1;let a=!1;return(r||o)&&(this._initialise(r),this.transforms=new it,a=this._run(o?t:e),this.fire("step",this)),this.done=this.done||a&&o,s&&this.fire("finished",this),this}time(t){if(null==t)return this._time;const e=t-this._time;return this.step(e),this}timeline(t){return void 0===t?this._timeline:(this._timeline=t,this)}unschedule(){const t=this.timeline();return t&&t.unschedule(this),this}_initialise(t){if(t||this._isDeclarative)for(let e=0,r=this._queue.length;e<r;++e){const r=this._queue[e],n=this._isDeclarative||!r.initialised&&t;t=!r.finished,n&&t&&(r.initialiser.call(this),r.initialised=!0)}}_rememberMorpher(t,e){if(this._history[t]={morpher:e,caller:this._queue[this._queue.length-1]},this._isDeclarative){const t=this.timeline();t&&t.play()}}_run(t){let e=!0;for(let r=0,n=this._queue.length;r<n;++r){const n=this._queue[r],i=n.runner.call(this,t);n.finished=n.finished||!0===i,e=e&&n.finished}return e}_tryRetarget(t,e,r){if(this._history[t]){if(!this._history[t].caller.initialised){const e=this._queue.indexOf(this._history[t].caller);return this._queue.splice(e,1),!1}this._history[t].caller.retarget?this._history[t].caller.retarget.call(this,e,r):this._history[t].morpher.to(e),this._history[t].caller.finished=!1;const n=this.timeline();return n&&n.play(),!0}return!1}}qe.id=0;class Xe{constructor(t=new it,e=-1,r=!0){this.transforms=t,this.id=e,this.done=r}clearTransformsFromQueue(){}}L([qe,Xe],{mergeWith(t){return new Xe(t.transforms.lmultiply(this.transforms),t.id)}});const Ye=(t,e)=>t.lmultiplyO(e),Ge=t=>t.transforms;function He(){const t=this._transformationRunners.runners.map(Ge).reduce(Ye,new it);this.transform(t),this._transformationRunners.merge(),1===this._transformationRunners.length()&&(this._frameId=null)}class Ue{constructor(){this.runners=[],this.ids=[]}add(t){if(this.runners.includes(t))return;const e=t.id+1;return this.runners.push(t),this.ids.push(e),this}clearBefore(t){const e=this.ids.indexOf(t+1)||1;return this.ids.splice(0,e,0),this.runners.splice(0,e,new Xe).forEach((t=>t.clearTransformsFromQueue())),this}edit(t,e){const r=this.ids.indexOf(t+1);return this.ids.splice(r,1,t+1),this.runners.splice(r,1,e),this}getByID(t){return this.runners[this.ids.indexOf(t+1)]}length(){return this.ids.length}merge(){let t=null;for(let e=0;e<this.runners.length;++e){const r=this.runners[e];if(!(t&&r.done&&t.done)||r._timeline&&r._timeline._runnerIds.includes(r.id)||t._timeline&&t._timeline._runnerIds.includes(t.id))t=r;else{this.remove(r.id);const n=r.mergeWith(t);this.edit(t.id,n),t=n,--e}}return this}remove(t){const e=this.ids.indexOf(t+1);return this.ids.splice(e,1),this.runners.splice(e,1),this}}c({Element:{animate(t,e,r){const n=qe.sanitise(t,e,r),i=this.timeline();return new qe(n.duration).loop(n).element(this).timeline(i.play()).schedule(n.delay,n.when)},delay(t,e){return this.animate(0,t,e)},_clearTransformRunnersBefore(t){this._transformationRunners.clearBefore(t.id)},_currentTransform(t){return this._transformationRunners.runners.filter((e=>e.id<=t.id)).map(Ge).reduce(Ye,new it)},_addRunner(t){this._transformationRunners.add(t),Ve.cancelImmediate(this._frameId),this._frameId=Ve.immediate(He.bind(this))},_prepareRunner(){null==this._frameId&&(this._transformationRunners=(new Ue).add(new Xe(new it(this))))}}}),L(qe,{attr(t,e){return this.styleAttr("attr",t,e)},css(t,e){return this.styleAttr("css",t,e)},styleAttr(t,e,r){if("string"==typeof e)return this.styleAttr(t,{[e]:r});let n=e;if(this._tryRetarget(t,n))return this;let i=new ve(this._stepper).to(n),s=Object.keys(n);return this.queue((function(){i=i.from(this.element()[t](s))}),(function(e){return this.element()[t](i.at(e).valueOf()),i.done()}),(function(e){const r=Object.keys(e),o=(a=s,r.filter((t=>!a.includes(t))));var a;if(o.length){const e=this.element()[t](o),r=new Oe(i.from()).valueOf();Object.assign(r,e),i.from(r)}const h=new Oe(i.to()).valueOf();Object.assign(h,e),i.to(h),s=r,n=e})),this._rememberMorpher(t,i),this},zoom(t,e){if(this._tryRetarget("zoom",t,e))return this;let r=new ve(this._stepper).to(new St(t));return this.queue((function(){r=r.from(this.element().zoom())}),(function(t){return this.element().zoom(r.at(t),e),r.done()}),(function(t,n){e=n,r.to(t)})),this._rememberMorpher("zoom",r),this},transform(t,e,r){if(e=t.relative||e,this._isDeclarative&&!e&&this._tryRetarget("transform",t))return this;const n=it.isMatrixLike(t);r=null!=t.affine?t.affine:null!=r?r:!n;const i=new ve(this._stepper).type(r?Se:it);let s,o,a,h,u;return this.queue((function(){o=o||this.element(),s=s||y(t,o),u=new it(e?void 0:o),o._addRunner(this),e||o._clearTransformRunnersBefore(this)}),(function(c){e||this.clearTransform();const{x:l,y:d}=new rt(s).transform(o._currentTransform(this));let f=new it({...t,origin:[l,d]}),p=this._isDeclarative&&a?a:u;if(r){f=f.decompose(l,d),p=p.decompose(l,d);const t=f.rotate,e=p.rotate,r=[t-360,t,t+360],n=r.map((t=>Math.abs(t-e))),i=Math.min(...n),s=n.indexOf(i);f.rotate=r[s]}e&&(n||(f.rotate=t.rotate||0),this._isDeclarative&&h&&(p.rotate=h)),i.from(p),i.to(f);const m=i.at(c);return h=m.rotate,a=new it(m),this.addTransform(a),o._addRunner(this),i.done()}),(function(e){(e.origin||"center").toString()!==(t.origin||"center").toString()&&(s=y(e,o)),t={...e,origin:s}}),!0),this._isDeclarative&&this._rememberMorpher("transform",i),this},x(t){return this._queueNumber("x",t)},y(t){return this._queueNumber("y",t)},ax(t){return this._queueNumber("ax",t)},ay(t){return this._queueNumber("ay",t)},dx(t=0){return this._queueNumberDelta("x",t)},dy(t=0){return this._queueNumberDelta("y",t)},dmove(t,e){return this.dx(t).dy(e)},_queueNumberDelta(t,e){if(e=new St(e),this._tryRetarget(t,e))return this;const r=new ve(this._stepper).to(e);let n=null;return this.queue((function(){n=this.element()[t](),r.from(n),r.to(n+e)}),(function(e){return this.element()[t](r.at(e)),r.done()}),(function(t){r.to(n+new St(t))})),this._rememberMorpher(t,r),this},_queueObject(t,e){if(this._tryRetarget(t,e))return this;const r=new ve(this._stepper).to(e);return this.queue((function(){r.from(this.element()[t]())}),(function(e){return this.element()[t](r.at(e)),r.done()})),this._rememberMorpher(t,r),this},_queueNumber(t,e){return this._queueObject(t,new St(e))},cx(t){return this._queueNumber("cx",t)},cy(t){return this._queueNumber("cy",t)},move(t,e){return this.x(t).y(e)},amove(t,e){return this.ax(t).ay(e)},center(t,e){return this.cx(t).cy(e)},size(t,e){let r;return t&&e||(r=this._element.bbox()),t||(t=r.width/r.height*e),e||(e=r.height/r.width*t),this.width(t).height(e)},width(t){return this._queueNumber("width",t)},height(t){return this._queueNumber("height",t)},plot(t,e,r,n){if(4===arguments.length)return this.plot([t,e,r,n]);if(this._tryRetarget("plot",t))return this;const i=new ve(this._stepper).type(this._element.MorphArray).to(t);return this.queue((function(){i.from(this._element.array())}),(function(t){return this._element.plot(i.at(t)),i.done()})),this._rememberMorpher("plot",i),this},leading(t){return this._queueNumber("leading",t)},viewbox(t,e,r,n){return this._queueObject("viewbox",new at(t,e,r,n))},update(t){return"object"!=typeof t?this.update({offset:arguments[0],color:arguments[1],opacity:arguments[2]}):(null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",t.offset),this)}}),L(qe,{rx:jt,ry:Dt,from:Xt,to:Yt}),D(qe,"Runner");class $e extends At{constructor(t,e=t){super(E("svg",t),e),this.namespace()}defs(){return this.isRoot()?T(this.node.querySelector("defs"))||this.put(new Et):this.root().defs()}isRoot(){return!this.node.parentNode||!(this.node.parentNode instanceof M.window.SVGElement)&&"#document-fragment"!==this.node.parentNode.nodeName}namespace(){return this.isRoot()?this.attr({xmlns:v,version:"1.1"}).attr("xmlns:xlink",S,_):this.root().namespace()}removeNamespace(){return this.attr({xmlns:null,version:null}).attr("xmlns:xlink",null,_).attr("xmlns:svgjs",null,_)}root(){return this.isRoot()?this:super.root()}}c({Container:{nested:V((function(){return this.put(new $e)}))}}),D($e,"Svg",!0);class We extends At{constructor(t,e=t){super(E("symbol",t),e)}}function Qe(t){return!1===this._build&&this.clear(),this.node.appendChild(M.document.createTextNode(t)),this}function Je(){return this.node.getComputedTextLength()}function Ze(t,e=this.bbox()){return null==t?e.x:this.attr("x",this.attr("x")+t-e.x)}function Ke(t,e=this.bbox()){return null==t?e.y:this.attr("y",this.attr("y")+t-e.y)}function tr(t,e,r=this.bbox()){return this.x(t,r).y(e,r)}function er(t,e=this.bbox()){return null==t?e.cx:this.attr("x",this.attr("x")+t-e.cx)}function rr(t,e=this.bbox()){return null==t?e.cy:this.attr("y",this.attr("y")+t-e.cy)}function nr(t,e,r=this.bbox()){return this.cx(t,r).cy(e,r)}function ir(t){return this.attr("x",t)}function sr(t){return this.attr("y",t)}function or(t,e){return this.ax(t).ay(e)}function ar(t){return this._build=!!t,this}c({Container:{symbol:V((function(){return this.put(new We)}))}}),D(We,"Symbol");class hr extends Tt{constructor(t,e=t){super(E("text",t),e),this.dom.leading=this.dom.leading??new St(1.3),this._rebuild=!0,this._build=!1}leading(t){return null==t?this.dom.leading:(this.dom.leading=new St(t),this.rebuild())}rebuild(t){if("boolean"==typeof t&&(this._rebuild=t),this._rebuild){const t=this;let e=0;const r=this.dom.leading;this.each((function(n){if(b(this.node))return;const i=M.window.getComputedStyle(this.node).getPropertyValue("font-size"),s=r*new St(i);this.dom.newLined&&(this.attr("x",t.attr("x")),"\n"===this.text()?e+=s:(this.attr("dy",n?s+e:0),e=0))})),this.fire("rebuild")}return this}setData(t){return this.dom=t,this.dom.leading=new St(t.leading||1.3),this}writeDataToDom(){return x(this,this.dom,{leading:1.3}),this}text(t){if(void 0===t){const e=this.node.childNodes;let r=0;t="";for(let n=0,i=e.length;n<i;++n)"textPath"===e[n].nodeName||b(e[n])?0===n&&(r=n+1):(n!==r&&3!==e[n].nodeType&&!0===T(e[n]).dom.newLined&&(t+="\n"),t+=e[n].textContent);return t}if(this.clear().build(!0),"function"==typeof t)t.call(this,this);else for(let e=0,r=(t=(t+"").split("\n")).length;e<r;e++)this.newLine(t[e]);return this.build(!1).rebuild()}}L(hr,o),c({Container:{text:V((function(t=""){return this.put(new hr).text(t)})),plain:V((function(t=""){return this.put(new hr).plain(t)}))}}),D(hr,"Text");class ur extends Tt{constructor(t,e=t){super(E("tspan",t),e),this._build=!1}dx(t){return this.attr("dx",t)}dy(t){return this.attr("dy",t)}newLine(){this.dom.newLined=!0;const t=this.parent();if(!(t instanceof hr))return this;const e=t.index(this),r=M.window.getComputedStyle(this.node).getPropertyValue("font-size"),n=t.dom.leading*new St(r);return this.dy(e?n:0).attr("x",t.x())}text(t){return null==t?this.node.textContent+(this.dom.newLined?"\n":""):("function"==typeof t?(this.clear().build(!0),t.call(this,this),this.build(!1)):this.plain(t),this)}}L(ur,o),c({Tspan:{tspan:V((function(t=""){const e=new ur;return this._build||this.clear(),this.put(e).text(t)}))},Text:{newLine:function(t=""){return this.tspan(t).newLine()}}}),D(ur,"Tspan");class cr extends Tt{constructor(t,e=t){super(E("circle",t),e)}radius(t){return this.attr("r",t)}rx(t){return this.attr("r",t)}ry(t){return this.rx(t)}size(t){return this.radius(new St(t).divide(2))}}L(cr,{x:kt,y:Bt,cx:It,cy:Lt,width:Vt,height:zt}),c({Container:{circle:V((function(t=0){return this.put(new cr).size(t).move(0,0)}))}}),D(cr,"Circle");class lr extends At{constructor(t,e=t){super(E("clipPath",t),e)}remove(){return this.targets().forEach((function(t){t.unclip()})),super.remove()}targets(){return dt("svg [clip-path*="+this.id()+"]")}}c({Container:{clip:V((function(){return this.defs().put(new lr)}))},Element:{clipper(){return this.reference("clip-path")},clipWith(t){const e=t instanceof lr?t:this.parent().clip().add(t);return this.attr("clip-path","url(#"+e.id()+")")},unclip(){return this.attr("clip-path",null)}}}),D(lr,"ClipPath");class dr extends Pt{constructor(t,e=t){super(E("foreignObject",t),e)}}function fr(t,e){return this.children().forEach((r=>{let n;try{n=r.node instanceof M.window.SVGSVGElement?new at(r.attr(["x","y","width","height"])):r.bbox()}catch(t){return}const i=new it(r),s=i.translate(t,e).transform(i.inverse()),o=new rt(n.x,n.y).transform(s);r.move(o.x,o.y)})),this}function pr(t){return this.dmove(t,0)}function mr(t){return this.dmove(0,t)}function gr(t,e=this.bbox()){return null==t?e.height:this.size(e.width,t,e)}function yr(t=0,e=0,r=this.bbox()){const n=t-r.x,i=e-r.y;return this.dmove(n,i)}function wr(t,e,r=this.bbox()){const n=g(this,t,e,r),i=n.width/r.width,s=n.height/r.height;return this.children().forEach((t=>{const e=new rt(r).transform(new it(t).inverse());t.scale(i,s,e.x,e.y)})),this}function br(t,e=this.bbox()){return null==t?e.width:this.size(t,e.height,e)}function xr(t,e=this.bbox()){return null==t?e.x:this.move(t,e.y,e)}function vr(t,e=this.bbox()){return null==t?e.y:this.move(e.x,t,e)}c({Container:{foreignObject:V((function(t,e){return this.put(new dr).size(t,e)}))}}),D(dr,"ForeignObject");class _r extends At{constructor(t,e=t){super(E("g",t),e)}}L(_r,a),c({Container:{group:V((function(){return this.put(new _r)}))}}),D(_r,"G");class Sr extends At{constructor(t,e=t){super(E("a",t),e)}target(t){return this.attr("target",t)}to(t){return this.attr("href",t,S)}}L(Sr,a),c({Container:{link:V((function(t){return this.put(new Sr).to(t)}))},Element:{unlink(){const t=this.linker();if(!t)return this;const e=t.parent();if(!e)return this.remove();const r=e.index(t);return e.add(this,r),t.remove(),this},linkTo(t){let e=this.linker();return e||(e=new Sr,this.wrap(e)),"function"==typeof t?t.call(e,e):e.to(t),this},linker(){const t=this.parent();return t&&"a"===t.node.nodeName.toLowerCase()?t:null}}}),D(Sr,"A");class Mr extends At{constructor(t,e=t){super(E("mask",t),e)}remove(){return this.targets().forEach((function(t){t.unmask()})),super.remove()}targets(){return dt("svg [mask*="+this.id()+"]")}}c({Container:{mask:V((function(){return this.defs().put(new Mr)}))},Element:{masker(){return this.reference("mask")},maskWith(t){const e=t instanceof Mr?t:this.parent().mask().add(t);return this.attr("mask","url(#"+e.id()+")")},unmask(){return this.attr("mask",null)}}}),D(Mr,"Mask");class Or extends Pt{constructor(t,e=t){super(E("stop",t),e)}update(t){return("number"==typeof t||t instanceof St)&&(t={offset:arguments[0],color:arguments[1],opacity:arguments[2]}),null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",new St(t.offset)),this}}c({Gradient:{stop:function(t,e,r){return this.put(new Or).update(t,e,r)}}}),D(Or,"Stop");class Nr extends Pt{constructor(t,e=t){super(E("style",t),e)}addText(t=""){return this.node.textContent+=t,this}font(t,e,r={}){return this.rule("@font-face",{fontFamily:t,src:e,...r})}rule(t,e){return this.addText(function(t,e){if(!t)return"";if(!e)return t;let r=t+"{";for(const t in e)r+=t.replace(/([A-Z])/g,(function(t,e){return"-"+e.toLowerCase()}))+":"+e[t]+";";return r+="}",r}(t,e))}}c("Dom",{style(t,e){return this.put(new Nr).rule(t,e)},fontface(t,e,r){return this.put(new Nr).font(t,e,r)}}),D(Nr,"Style");class Pr extends hr{constructor(t,e=t){super(E("textPath",t),e)}array(){const t=this.track();return t?t.array():null}plot(t){const e=this.track();let r=null;return e&&(r=e.plot(t)),null==t?r:this}track(){return this.reference("href")}}c({Container:{textPath:V((function(t,e){return t instanceof hr||(t=this.text(t)),t.path(e)}))},Text:{path:V((function(t,e=!0){const r=new Pr;let n;if(t instanceof Pe||(t=this.defs().path(t)),r.attr("href","#"+t,S),e)for(;n=this.node.firstChild;)r.node.appendChild(n);return this.put(r)})),textPath(){return this.findOne("textPath")}},Path:{text:V((function(t){return t instanceof hr||(t=(new hr).addTo(this.parent()).text(t)),t.path(this)})),targets(){return dt("svg textPath").filter((t=>(t.attr("href")||"").includes(this.id())))}}}),Pr.prototype.MorphArray=be,D(Pr,"TextPath");class Cr extends Tt{constructor(t,e=t){super(E("use",t),e)}use(t,e){return this.attr("href",(e||"")+"#"+t,S)}}c({Container:{use:V((function(t,e){return this.put(new Cr).use(t,e)}))}}),D(Cr,"Use"),L([$e,We,Ut,Ht,re],l("viewbox")),L([ee,ke,De,Pe],l("marker")),L(hr,l("Text")),L(Pe,l("Path")),L(Et,l("Defs")),L([hr,ur],l("Tspan")),L([Be,Ft,Gt,qe],l("radius")),L(bt,l("EventTarget")),L(Nt,l("Dom")),L(Pt,l("Element")),L(Tt,l("Shape")),L([At,qt],l("Container")),L(Gt,l("Gradient")),L(qe,l("Runner")),ct.extend([...new Set(u)]),function(t=[]){Ne.push(...[].concat(t))}([St,et,at,it,_t,Wt,be,rt]),L(Ne,{to(t){return(new ve).type(this.constructor).from(this.toArray()).to(t)},fromArray(t){return this.init(t),this},toConsumable(){return this.toArray()},morph(t,e,r,n,i){return this.fromArray(t.map((function(t,s){return n.step(t,e[s],r,i[s],i)})))}});var Ar=r(726),Er=r(358);class Tr{constructor(t,e){this.svgDoc=t,this.elements=e,new MutationObserver((t=>{t.some((t=>t.removedNodes.length>0))&&(this.elements=this.elements.filter((t=>this.svgDoc.contains(t.domNode))))})).observe(t,{childList:!0,subtree:!0})}}class jr{constructor(t,e){this.svgDoc=t,this.elementsDrawing=new Tr(t,e)}get bases(){return this.elementsDrawing.elements}append(t){t.appendTo(this.svgDoc),this.bases.push(t)}add(t){let e=Er.Nucleobase.create(t);return this.append(e),e}}var Dr,kr,Br=r(775),Ir=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},Lr=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class Vr{constructor(t){this.domNode=t,Dr.set(this,void 0),kr.set(this,void 0),Ir(this,Dr,new Tr(t,[]),"f"),Ir(this,kr,new MutationObserver((()=>{this.elements.forEach((t=>{this.domNode.contains(t.owner.domNode)||t.domNode.remove()}))})),"f"),Lr(this,kr,"f").observe(t,{childList:!0,subtree:!0})}get elements(){return Lr(this,Dr,"f").elements}}Dr=new WeakMap,kr=new WeakMap;var zr;class Fr{constructor(t){this.domNode=t,zr.set(this,void 0),function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,zr,new Vr(t),"f")}get baseOutlines(){return function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)}(this,zr,"f").elements}append(t){this.domNode.append(t.domNode),this.baseOutlines.push(t)}outline(t){let e=document.createElementNS("http://www.w3.org/2000/svg","circle"),r=new Br.BaseOutline(e,t);return t.domNode.insertAdjacentElement("beforebegin",r.domNode),this.baseOutlines.push(r),r}}zr=new WeakMap;var Rr=r(282);class qr{constructor(t,e){this.svgDoc=t,this.elementsDrawing=new Tr(t,e),new MutationObserver((()=>{this.bonds.forEach((t=>{this.svgDoc.contains(t.base1.domNode)&&this.svgDoc.contains(t.base2.domNode)||t.remove()}))})).observe(t,{childList:!0,subtree:!0})}get bonds(){return this.elementsDrawing.elements}set bonds(t){this.elementsDrawing.elements=t}}class Xr{constructor(t,e){this.svgDoc=t,this.primaryBondDefaultValues={attributes:{stroke:"#808080","stroke-width":"1"},basePadding1:6,basePadding2:6},this.bondsDrawing=new qr(t,e)}get primaryBonds(){return this.bondsDrawing.bonds}set primaryBonds(t){this.bondsDrawing.bonds=t}append(t){t.appendTo(this.svgDoc),this.primaryBonds.push(t)}add(t,e){let r=Rr.StraightBond.between(t,e);return r.set(this.primaryBondDefaultValues),this.append(r),r}}class Yr{constructor(t,e){this.svgDoc=t,this.secondaryBondDefaultValues={attributes:{stroke:"#000000","stroke-width":"2"},basePadding1:6,basePadding2:6},this.bondsDrawing=new qr(t,e)}get secondaryBonds(){return this.bondsDrawing.bonds}set secondaryBonds(t){this.bondsDrawing.bonds=t}append(t){t.appendTo(this.svgDoc),this.secondaryBonds.push(t)}add(t,e){let r=Rr.StraightBond.between(t,e);return r.set(this.secondaryBondDefaultValues),this.append(r),r}}var Gr,Hr=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class Ur{constructor(){Gr.set(this,void 0),this.domNode=(new $e).node,this.domNode.setAttribute("viewBox","0 0 250 250"),this.domNode.setAttribute("width","250"),this.domNode.setAttribute("height","250"),this.basesDrawing=new jr(this.domNode,[]),function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,Gr,new Fr(this.domNode),"f"),this.primaryBondsDrawing=new Xr(this.domNode,[]),this.secondaryBondsDrawing=new Yr(this.domNode,[])}get outerXML(){return this.domNode.outerHTML}get innerXML(){return this.domNode.innerHTML}appendTo(t){t.appendChild(this.domNode)}remove(){this.domNode.remove()}get minX(){return this.domNode.viewBox.baseVal.x}set minX(t){let e=this.maxX-t,r=this.horizontalScaling;this.domNode.setAttribute("viewBox",`${t} ${this.minY} ${e} ${this.height}`),this.domNode.setAttribute("width",(r*e).toString())}get maxX(){return this.minX+this.width}set maxX(t){let e=t-this.minX,r=this.horizontalScaling;this.domNode.setAttribute("viewBox",`${this.minX} ${this.minY} ${e} ${this.height}`),this.domNode.setAttribute("width",(r*e).toString())}get minY(){return this.domNode.viewBox.baseVal.y}set minY(t){let e=this.maxY-t,r=this.verticalScaling;this.domNode.setAttribute("viewBox",`${this.minX} ${t} ${this.width} ${e}`),this.domNode.setAttribute("height",(r*e).toString())}get maxY(){return this.minY+this.height}set maxY(t){let e=t-this.minY,r=this.verticalScaling;this.domNode.setAttribute("viewBox",`${this.minX} ${this.minY} ${this.width} ${e}`),this.domNode.setAttribute("height",(r*e).toString())}setBoundaries({minX:t,maxX:e,minY:r,maxY:n}){this.minX=t,this.maxX=e,this.minY=r,this.maxY=n}get width(){return this.domNode.viewBox.baseVal.width}set width(t){this.maxX=this.minX+t}get height(){return this.domNode.viewBox.baseVal.height}set height(t){this.maxY=this.minY+t}get horizontalScaling(){let t=this.width;return this.domNode.width.baseVal.value/t}set horizontalScaling(t){let e=this.width;this.domNode.setAttribute("width",(t*e).toString())}get verticalScaling(){let t=this.height;return this.domNode.height.baseVal.value/t}set verticalScaling(t){let e=this.height;this.domNode.setAttribute("height",(t*e).toString())}setScaling(t){this.horizontalScaling=t,this.verticalScaling=t}get horizontalClientScaling(){return new Ar.HorizontalClientScaling(this.domNode).get()}get verticalClientScaling(){return new Ar.VerticalClientScaling(this.domNode).get()}get bases(){return this.basesDrawing.bases}appendBase(t){this.basesDrawing.append(t)}addBase(t){return this.basesDrawing.add(t)}get baseOutlines(){return Hr(this,Gr,"f").baseOutlines}outlineBase(t){return Hr(this,Gr,"f").outline(t)}appendBaseOutline(t){Hr(this,Gr,"f").append(t)}get primaryBondDefaultValues(){return this.primaryBondsDrawing.primaryBondDefaultValues}set primaryBondDefaultValues(t){this.primaryBondsDrawing.primaryBondDefaultValues=t}get primaryBonds(){return this.primaryBondsDrawing.primaryBonds}set primaryBonds(t){this.primaryBondsDrawing.primaryBonds=[...t]}appendPrimaryBond(t){this.primaryBondsDrawing.append(t)}addPrimaryBond(t,e){return this.primaryBondsDrawing.add(t,e)}get secondaryBondDefaultValues(){return this.secondaryBondsDrawing.secondaryBondDefaultValues}set secondaryBondDefaultValues(t){this.secondaryBondsDrawing.secondaryBondDefaultValues=t}get secondaryBonds(){return this.secondaryBondsDrawing.secondaryBonds}set secondaryBonds(t){this.secondaryBondsDrawing.secondaryBonds=[...t]}appendSecondaryBond(t){this.secondaryBondsDrawing.append(t)}addSecondaryBond(t,e){return this.secondaryBondsDrawing.add(t,e)}get contentBBox(){return this.domNode.getBBox()}setPadding(t){let e=this.contentBBox;this.setBoundaries({minX:e.x-t,maxX:e.x+e.width+t,minY:e.y-t,maxY:e.y+e.height+t})}}Gr=new WeakMap;var $r=r(127),Wr=r(661),Qr=r(986);class Jr{constructor(t){this.targetDrawing=t}draw(t,e){let r=[...t].map((t=>this.targetDrawing.addBase(t)));(0,$r.consecutivePairs)(r).forEach((t=>this.targetDrawing.addPrimaryBond(...t)));let n=[...(0,$r.parseDotBracket)(r,e)];n.forEach((t=>this.targetDrawing.addSecondaryBond(...t))),r.forEach((t=>t.bringToFront()));let i=1.87*(0,Qr.mean)(r.map((t=>t.bbox.height)));(0,Wr.radialize)(r,n,{spacing:i,basePairSpacing:i/2,hairpinLoopSpacing:i/2})}}var Zr,Kr,tn,en,rn=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class nn{constructor(t){Zr.add(this),Kr.set(this,void 0),function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,Kr,t,"f")}draw(t){t.rnaComplexes.forEach((e=>{e.rnaMolecules.forEach((e=>{let r=e.sequence.map((e=>rn(this,Zr,"m",tn).call(this,e,t))),n=(0,Qr.mean)(r.map((t=>t.bbox.height)));rn(this,Kr,"f").primaryBondDefaultValues.attributes["stroke-width"]=""+.125*n,rn(this,Kr,"f").primaryBondDefaultValues.basePadding1=.6*n,rn(this,Kr,"f").primaryBondDefaultValues.basePadding2=.6*n,(0,$r.consecutivePairs)(r).forEach((t=>rn(this,Kr,"f").addPrimaryBond(...t))),rn(this,Kr,"f").secondaryBondDefaultValues.attributes["stroke-width"]=""+.15*n,rn(this,Kr,"f").secondaryBondDefaultValues.basePadding1=.5*n,rn(this,Kr,"f").secondaryBondDefaultValues.basePadding2=.5*n,new Set(e.basePairs.map((t=>JSON.stringify(t)))).forEach((e=>rn(this,Zr,"m",en).call(this,JSON.parse(e),r,t)))}))}))}}Kr=new WeakMap,Zr=new WeakSet,tn=function(t,e){let r=rn(this,Kr,"f").addBase(t.residueName);return t.classes.forEach((t=>{e.classes.filter((e=>e.name==t)).forEach((t=>r.setAttributes(Object.assign(Object.assign({},t),{name:void 0}))))})),r.centerPoint.x=t.x,r.centerPoint.y=t.y,r},en=function(t,e,r){let n=e[t.residueIndex1],i=e[t.residueIndex2],s=rn(this,Kr,"f").addSecondaryBond(n,i);return t.classes.forEach((t=>{r.classes.filter((e=>e.name==t)).forEach((t=>s.setAttributes(Object.assign(Object.assign({},t),{name:void 0}))))})),s}})(),n})()));
1
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.draw=e():t.draw=e()}(this,(()=>(()=>{var t={127:function(t){var e;e=()=>(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>p,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function p(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},369:function(t){var e;e=()=>(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>p,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function p(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function h(t){return null==t}function u(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}function l(t){return c(t)&&t.every(r)}function d(t){return c(t)&&t.every(n)}function f(t){return c(t)&&t.every(i)}function p(t){return c(t)&&t.every(a)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>d,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>f,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>u,isNullish:()=>h,isNumber:()=>r,isNumbersArray:()=>l,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>p}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Linkers:()=>g,Stems:()=>m,areConflicting:()=>u,areCrossing:()=>d,areEqual:()=>a,areKnotless:()=>l,areStacked:()=>h,deepCopy:()=>i,knotless:()=>p,mountainPlotTraversal:()=>y,parseDotBracket:()=>w,sorted:()=>o});var t=r(854),e=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function i(r){return(0,t.isNumbersArray)(r)?e([],r,!0):r.map((function(t){return e([],t,!0)}))}var s=r(986);function o(t){var e=i(t);return e.forEach(s.sortNumbers),e.sort((function(t,e){return t[0]-e[0]})),e}function a(t,e){var r=i(t),n=i(e);return(0,s.sortNumbers)(r),(0,s.sortNumbers)(n),[0,1].every((function(t){return r[t]==n[t]}))}function h(t,e){var r=o([t,e]);return r[0][0]==r[1][0]-1&&r[0][1]==r[1][1]+1}function u(t,e){return(0,s.min)(t)==(0,s.min)(e)&&(0,s.max)(t)!=(0,s.max)(e)||(0,s.min)(t)!=(0,s.min)(e)&&(0,s.max)(t)==(0,s.max)(e)}function c(t){if(0==t.length)return[];for(var e=[],r=0;r<(0,s.max)(t.flat());r++)e.push(void 0);return t.forEach((function(t){e[t[0]-1]=t[1],e[t[1]-1]=t[0]})),e}function l(t){var e=c(t),r=[],n=!1;return e.forEach((function(t,e){var i=e+1;null==t||(i<t?r.push(i):i==t||r.pop()!=t&&(n=!0))})),!n}function d(t,e){return!l([t,e])}var f=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function p(t){var e=[],r=i(t);return r.sort((function(t,e){return Math.abs(t[0]-t[1])-Math.abs(e[0]-e[1])})),r.forEach((function(t){l(f(f([],e,!0),[t],!1))&&e.push(t)})),e}var m=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=this.targetStructure[1];if(0==t.length)return[];var e=o(t),r=[],n=[];return e.forEach((function(t){var e=0==n.length?null:n[n.length-1];!e||h(e,t)?n.push(t):(r.push(n),n=[t])})),r.push(n),r},t}(),g=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=(new(m.bind.apply(m,function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))}([void 0],this.targetStructure,!1)))).get().flatMap((function(t){return[t.map(s.min),t.map(s.max)]}));t.forEach(s.sortNumbers),t.sort((function(t,e){return(0,s.min)(t)-(0,s.min)(e)}));for(var e=[],r=t.shift(),n=t.shift();r&&n;){for(var i=[],o=(0,s.max)(r),a=(0,s.min)(n),h=o;h<=a;h++)i.push(h);e.push(i),r=n,n=t.shift()}return e},t}();function y(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=t[0],n=t[1],i=c(n);if(!l(n))throw new Error("Pseudoknot(s) encountered.");var s=[],o=0;return r.forEach((function(t,e){var r=e+1,n=i[e];null==n?s.push(o):r<n?(s.push(o),o++):(r==n||o--,s.push(o))})),s}function w(t){var e=t.split(""),r=[".","(",")"];e.forEach((function(t){if(!r.includes(t))throw new Error('Unrecognized character in dot-bracket notation: "'.concat(t,'".'))}));var n=[],i=[];if(e.forEach((function(t,e){var r=e+1;if("("==t)i.push(r);else if(")"==t){var s=i.pop();if("number"!=typeof s)throw new Error("Unmatched downstream partner(s) in dot-bracket notation.");n.push([s,r])}})),i.length>0)throw new Error("Unmatched upstream partner(s) in dot-bracket notation.");return o(n)}})(),n})(),t.exports=e()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{FirstPairedBase:()=>e,LastPairedBase:()=>s,LeadingDanglingBases:()=>o,Linkers:()=>c,PositionPairs:()=>t,Stems:()=>u,TrailingDanglingBases:()=>a,consecutivePairs:()=>f,knotless:()=>l,parseDotBracket:()=>d});class t{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];return this.targetStructure[1].map((e=>[t.indexOf(e[0])+1,t.indexOf(e[1])+1]))}}class e{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat(),n=t.findIndex((t=>r.includes(t)));if(n<0)throw new Error("No paired bases present in sequence.");return t[n]}}var i=r(986);class s{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat().map((e=>t.indexOf(e)));if((0,i.max)(r)<0)throw new Error("No paired bases present in sequence.");return t[(0,i.max)(r)]}}class o{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let r=new e(...this.targetStructure).get(),n=t.indexOf(r);if(n<0)throw new Error("No paired bases present in sequence.");return t.slice(0,n)}}class a{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let e=new s(...this.targetStructure).get(),r=t.indexOf(e);if(r<0)throw new Error("No paired bases present in sequence.");return t.slice(r+1)}}var h=r(369);class u{constructor(...t){this.targetStructure=t}get(){let e=this.targetStructure[0],r=new t(...this.targetStructure).get();return new h.Stems(e,r).get().map((t=>t.map((t=>[e[t[0]-1],e[t[1]-1]]))))}}class c{constructor(...t){this.targetStructure=t}get(){let e=this.targetStructure[0],r=new t(...this.targetStructure).get();return new h.Linkers(e,r).get().map((t=>t.map((t=>e[t-1]))))}}function l(...e){let[r,n]=e,i=new t(...e).get();(0,h.areKnotless)(i)||(i=(0,h.knotless)(i));let s=i.map((t=>[r[t[0]-1],r[t[1]-1]]));return[[...r],s]}function d(t,e){if(e.length>t.length)throw new Error("Dot-bracket notation is longer than the sequence.");return[...(0,h.parseDotBracket)(e)].map((e=>{let r=e[0],n=e[1];return[t[r-1],t[n-1]]}))}function f(t){return t.length<2?[]:t.slice(0,-1).map(((e,r)=>[t[r],t[r+1]]))}})(),n})(),t.exports=e()},661:function(t){var e;e=()=>(()=>{var t={127:function(t){var e;e=()=>(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>p,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function p(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},369:function(t){var e;e=()=>(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>p,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function p(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function h(t){return null==t}function u(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}function l(t){return c(t)&&t.every(r)}function d(t){return c(t)&&t.every(n)}function f(t){return c(t)&&t.every(i)}function p(t){return c(t)&&t.every(a)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>d,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>f,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>u,isNullish:()=>h,isNumber:()=>r,isNumbersArray:()=>l,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>p}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Linkers:()=>g,Stems:()=>m,areConflicting:()=>u,areCrossing:()=>d,areEqual:()=>a,areKnotless:()=>l,areStacked:()=>h,deepCopy:()=>i,knotless:()=>p,mountainPlotTraversal:()=>y,parseDotBracket:()=>w,sorted:()=>o});var t=r(854),e=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function i(r){return(0,t.isNumbersArray)(r)?e([],r,!0):r.map((function(t){return e([],t,!0)}))}var s=r(986);function o(t){var e=i(t);return e.forEach(s.sortNumbers),e.sort((function(t,e){return t[0]-e[0]})),e}function a(t,e){var r=i(t),n=i(e);return(0,s.sortNumbers)(r),(0,s.sortNumbers)(n),[0,1].every((function(t){return r[t]==n[t]}))}function h(t,e){var r=o([t,e]);return r[0][0]==r[1][0]-1&&r[0][1]==r[1][1]+1}function u(t,e){return(0,s.min)(t)==(0,s.min)(e)&&(0,s.max)(t)!=(0,s.max)(e)||(0,s.min)(t)!=(0,s.min)(e)&&(0,s.max)(t)==(0,s.max)(e)}function c(t){if(0==t.length)return[];for(var e=[],r=0;r<(0,s.max)(t.flat());r++)e.push(void 0);return t.forEach((function(t){e[t[0]-1]=t[1],e[t[1]-1]=t[0]})),e}function l(t){var e=c(t),r=[],n=!1;return e.forEach((function(t,e){var i=e+1;null==t||(i<t?r.push(i):i==t||r.pop()!=t&&(n=!0))})),!n}function d(t,e){return!l([t,e])}var f=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function p(t){var e=[],r=i(t);return r.sort((function(t,e){return Math.abs(t[0]-t[1])-Math.abs(e[0]-e[1])})),r.forEach((function(t){l(f(f([],e,!0),[t],!1))&&e.push(t)})),e}var m=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=this.targetStructure[1];if(0==t.length)return[];var e=o(t),r=[],n=[];return e.forEach((function(t){var e=0==n.length?null:n[n.length-1];!e||h(e,t)?n.push(t):(r.push(n),n=[t])})),r.push(n),r},t}(),g=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=(new(m.bind.apply(m,function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))}([void 0],this.targetStructure,!1)))).get().flatMap((function(t){return[t.map(s.min),t.map(s.max)]}));t.forEach(s.sortNumbers),t.sort((function(t,e){return(0,s.min)(t)-(0,s.min)(e)}));for(var e=[],r=t.shift(),n=t.shift();r&&n;){for(var i=[],o=(0,s.max)(r),a=(0,s.min)(n),h=o;h<=a;h++)i.push(h);e.push(i),r=n,n=t.shift()}return e},t}();function y(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=t[0],n=t[1],i=c(n);if(!l(n))throw new Error("Pseudoknot(s) encountered.");var s=[],o=0;return r.forEach((function(t,e){var r=e+1,n=i[e];null==n?s.push(o):r<n?(s.push(o),o++):(r==n||o--,s.push(o))})),s}function w(t){var e=t.split(""),r=[".","(",")"];e.forEach((function(t){if(!r.includes(t))throw new Error('Unrecognized character in dot-bracket notation: "'.concat(t,'".'))}));var n=[],i=[];if(e.forEach((function(t,e){var r=e+1;if("("==t)i.push(r);else if(")"==t){var s=i.pop();if("number"!=typeof s)throw new Error("Unmatched downstream partner(s) in dot-bracket notation.");n.push([s,r])}})),i.length>0)throw new Error("Unmatched upstream partner(s) in dot-bracket notation.");return o(n)}})(),n})(),t.exports=e()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{FirstPairedBase:()=>e,LastPairedBase:()=>s,LeadingDanglingBases:()=>o,Linkers:()=>c,PositionPairs:()=>t,Stems:()=>u,TrailingDanglingBases:()=>a,consecutivePairs:()=>f,knotless:()=>l,parseDotBracket:()=>d});class t{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];return this.targetStructure[1].map((e=>[t.indexOf(e[0])+1,t.indexOf(e[1])+1]))}}class e{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat(),n=t.findIndex((t=>r.includes(t)));if(n<0)throw new Error("No paired bases present in sequence.");return t[n]}}var i=r(986);class s{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat().map((e=>t.indexOf(e)));if((0,i.max)(r)<0)throw new Error("No paired bases present in sequence.");return t[(0,i.max)(r)]}}class o{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let r=new e(...this.targetStructure).get(),n=t.indexOf(r);if(n<0)throw new Error("No paired bases present in sequence.");return t.slice(0,n)}}class a{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let e=new s(...this.targetStructure).get(),r=t.indexOf(e);if(r<0)throw new Error("No paired bases present in sequence.");return t.slice(r+1)}}var h=r(369);class u{constructor(...t){this.targetStructure=t}get(){let e=this.targetStructure[0],r=new t(...this.targetStructure).get();return new h.Stems(e,r).get().map((t=>t.map((t=>[e[t[0]-1],e[t[1]-1]]))))}}class c{constructor(...t){this.targetStructure=t}get(){let e=this.targetStructure[0],r=new t(...this.targetStructure).get();return new h.Linkers(e,r).get().map((t=>t.map((t=>e[t-1]))))}}function l(...e){let[r,n]=e,i=new t(...e).get();(0,h.areKnotless)(i)||(i=(0,h.knotless)(i));let s=i.map((t=>[r[t[0]-1],r[t[1]-1]]));return[[...r],s]}function d(t,e){if(e.length>t.length)throw new Error("Dot-bracket notation is longer than the sequence.");return[...(0,h.parseDotBracket)(e)].map((e=>{let r=e[0],n=e[1];return[t[r-1],t[n-1]]}))}function f(t){return t.length<2?[]:t.slice(0,-1).map(((e,r)=>[t[r],t[r+1]]))}})(),n})(),t.exports=e()},173:function(t){var e;e=()=>(()=>{var t={422:function(t){t.exports=(()=>{var t={138:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}return t.r(e),t.d(e,{average:()=>n,mean:()=>n,sum:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function t(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function e(t,e){return{x:e.x-t.x,y:e.y-t.y}}r.r(n),r.d(n,{centroid:()=>s,displacement:()=>e,distance:()=>t,midpoint:()=>o});var i=r(138);function s(t){return{x:(0,i.mean)(t.map((function(t){return t.x}))),y:(0,i.mean)(t.map((function(t){return t.y})))}}function o(t,e){return s([t,e])}})(),n})()},872:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{CircularSegment:()=>a,Semicircle:()=>e});var t=r(422),e=function(){function e(t){this.chord=t}return Object.defineProperty(e.prototype,"chordLength",{get:function(){return(0,t.distance)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"arcLength",{get:function(){return Math.PI*this.chordLength/2},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"arcAngle",{get:function(){return Math.PI},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleRadius",{get:function(){return this.chordLength/2},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleDiameter",{get:function(){return 2*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCircumference",{get:function(){return 2*Math.PI*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCenterPoint",{get:function(){return(0,t.midpoint)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),e}(),i=r(872),s=function(){function e(e,r){this.chord=e,this.moreProps=r;var n=r.arcLength,i=(0,t.distance)(e[0],e[1]);if(n<=i)throw new Error("Arc length is too small.");if(n>=Math.PI*i/2)throw new Error("Arc length is too big.");for(var s=Math.PI/2,o=0;o<20;o++)s-=(n/i*Math.sin(s)-s)/(n/i*Math.cos(s)-1);this.arcAngle=2*s}return Object.defineProperty(e.prototype,"chordLength",{get:function(){return(0,t.distance)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"arcLength",{get:function(){return this.moreProps.arcLength},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleRadius",{get:function(){return this.arcLength/this.arcAngle},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleDiameter",{get:function(){return 2*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCircumference",{get:function(){return 2*Math.PI*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCenterPoint",{get:function(){var e=(0,i.direction)((0,t.displacement)(this.chord[0],this.chord[1]));e+=(Math.PI-this.arcAngle)/2;var r=this.parentCircleRadius;return{x:this.chord[0].x+r*Math.cos(e),y:this.chord[0].y+r*Math.sin(e)}},enumerable:!1,configurable:!0}),e}(),o=function(){function e(e,r){this.chord=e,this.moreProps=r;var n=r.arcLength,i=(0,t.distance)(e[0],e[1]);if(0==i)throw new Error("Chord length cannot be zero.");if(n<=Math.PI*i/2)throw new Error("Arc length is too small.");for(var s=Math.PI,o=0;o<20;o++)s-=(n/i*Math.sin(Math.PI-s)-s)/(-n/i*Math.cos(Math.PI-s)-1);this.arcAngle=2*s}return Object.defineProperty(e.prototype,"chordLength",{get:function(){return(0,t.distance)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"arcLength",{get:function(){return this.moreProps.arcLength},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleRadius",{get:function(){return this.arcLength/this.arcAngle},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleDiameter",{get:function(){return 2*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCircumference",{get:function(){return 2*Math.PI*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCenterPoint",{get:function(){var e=(0,i.direction)((0,t.displacement)(this.chord[0],this.chord[1]));e-=(this.arcAngle-Math.PI)/2;var r=this.parentCircleRadius;return{x:this.chord[0].x+r*Math.cos(e),y:this.chord[0].y+r*Math.sin(e)}},enumerable:!1,configurable:!0}),e}(),a=function(){function r(r,n){this.chord=r,this.moreProps=n;var i=n.arcLength,a=(0,t.distance)(r[0],r[1]);if(a>0&&i<=a)throw new Error("Arc length is too small.");var h=a<.001&&i<.001,u=Math.PI*a/2,c=Math.abs(i-u)<.001;this.wrappedCircularSegment=h||c?new e(r):i<u?new s(r,{arcLength:i}):new o(r,{arcLength:i})}return Object.defineProperty(r.prototype,"chordLength",{get:function(){return this.wrappedCircularSegment.chordLength},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"arcLength",{get:function(){return this.moreProps.arcLength},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"arcAngle",{get:function(){return this.wrappedCircularSegment.arcAngle},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleRadius",{get:function(){return this.wrappedCircularSegment.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleDiameter",{get:function(){return this.wrappedCircularSegment.parentCircleDiameter},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleCircumference",{get:function(){return this.wrappedCircularSegment.parentCircleCircumference},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleCenterPoint",{get:function(){return this.wrappedCircularSegment.parentCircleCenterPoint},enumerable:!1,configurable:!0}),r}()})(),n})(),t.exports=e()},986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>p,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function p(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},456:function(t){var e;e=()=>(()=>{var t={277:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{Vector:()=>r});class r{static matching(t){return new r(t.x,t.y)}constructor(t,e){this.x=t,this.y=e}[Symbol.iterator](){return[this.x,this.y].values()}get magnitude(){return Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2))}get direction(){return Math.atan2(this.y,this.x)}}return e})(),t.exports=e()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Point:()=>e,RelativePoint:()=>c});var t=r(277);class e{static matching(t){return new e(t.x,t.y)}constructor(t,e){this.x=t,this.y=e}[Symbol.iterator](){return[this.x,this.y].values()}displacementTo(e){return new t.Vector(e.x-this.x,e.y-this.y)}displacementFrom(e){return new t.Vector(this.x-e.x,this.y-e.y)}distanceTo(t){return this.displacementTo(t).magnitude}distanceFrom(t){return this.distanceTo(t)}directionTo(t){return this.displacementTo(t).direction}directionFrom(t){return this.displacementFrom(t).direction}}var i,s,o,a,h,u=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class c{constructor(e){i.add(this),s.set(this,void 0),o.set(this,new t.Vector(0,0)),a.set(this,{move:[]}),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,s,e),e.addEventListener("move",(()=>u(this,i,"m",h).call(this,"move")))}get x(){return u(this,s,"f").x+u(this,o,"f").x}set x(t){u(this,o,"f").x=t-u(this,s,"f").x,u(this,i,"m",h).call(this,"move")}get y(){return u(this,s,"f").y+u(this,o,"f").y}set y(t){u(this,o,"f").y=t-u(this,s,"f").y,u(this,i,"m",h).call(this,"move")}addEventListener(t,e){u(this,a,"f")[t].push(e)}removeEventListener(t,e){u(this,a,"f")[t]=u(this,a,"f")[t].filter((t=>t!==e))}}s=new WeakMap,o=new WeakMap,a=new WeakMap,i=new WeakSet,h=function(t){u(this,a,"f")[t].forEach((t=>t()))}})(),n})(),t.exports=e()},725:function(t){t.exports=(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>d,average:()=>n,degrees:()=>m,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>g,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>f,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return Math.abs(t-e)<=r}function f(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function m(t){return t*(180/Math.PI)}function g(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function h(t){return null==t}function u(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isNonFiniteNumber:()=>i,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>u,isNullish:()=>h,isNumber:()=>r,isPositiveFiniteNumber:()=>s,isString:()=>a}),e})()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{areWithin:()=>a,centroid:()=>f,deepCopy:()=>s,direction:()=>l,displaced:()=>u,displacement:()=>h,distance:()=>o,isFinitePoint:()=>i,isPoint:()=>e,midpoint:()=>p});var t=r(854);function e(e){return(0,t.isNonNullObject)(e)&&(0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)}function i(r){return e(r)&&(0,t.isFiniteNumber)(r.x)&&(0,t.isFiniteNumber)(r.y)}function s(t){return{x:t.x,y:t.y}}function o(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function a(t,e,r){return o(t,e)<=r}function h(t,e){return{x:e.x-t.x,y:e.y-t.y}}function u(t,e){return{x:t.x+e.x,y:t.y+e.y}}var c=r(30);function l(t,e){return(0,c.direction)(h(t,e))}var d=r(986);function f(t){return{x:(0,d.mean)(t.map((function(t){return t.x}))),y:(0,d.mean)(t.map((function(t){return t.y})))}}function p(t,e){return f([t,e])}})(),n})()},369:function(t){var e;e=()=>(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>p,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function p(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function h(t){return null==t}function u(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}function l(t){return c(t)&&t.every(r)}function d(t){return c(t)&&t.every(n)}function f(t){return c(t)&&t.every(i)}function p(t){return c(t)&&t.every(a)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>d,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>f,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>u,isNullish:()=>h,isNumber:()=>r,isNumbersArray:()=>l,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>p}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Linkers:()=>g,Stems:()=>m,areConflicting:()=>u,areCrossing:()=>d,areEqual:()=>a,areKnotless:()=>l,areStacked:()=>h,deepCopy:()=>i,knotless:()=>p,mountainPlotTraversal:()=>y,parseDotBracket:()=>w,sorted:()=>o});var t=r(854),e=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function i(r){return(0,t.isNumbersArray)(r)?e([],r,!0):r.map((function(t){return e([],t,!0)}))}var s=r(986);function o(t){var e=i(t);return e.forEach(s.sortNumbers),e.sort((function(t,e){return t[0]-e[0]})),e}function a(t,e){var r=i(t),n=i(e);return(0,s.sortNumbers)(r),(0,s.sortNumbers)(n),[0,1].every((function(t){return r[t]==n[t]}))}function h(t,e){var r=o([t,e]);return r[0][0]==r[1][0]-1&&r[0][1]==r[1][1]+1}function u(t,e){return(0,s.min)(t)==(0,s.min)(e)&&(0,s.max)(t)!=(0,s.max)(e)||(0,s.min)(t)!=(0,s.min)(e)&&(0,s.max)(t)==(0,s.max)(e)}function c(t){if(0==t.length)return[];for(var e=[],r=0;r<(0,s.max)(t.flat());r++)e.push(void 0);return t.forEach((function(t){e[t[0]-1]=t[1],e[t[1]-1]=t[0]})),e}function l(t){var e=c(t),r=[],n=!1;return e.forEach((function(t,e){var i=e+1;null==t||(i<t?r.push(i):i==t||r.pop()!=t&&(n=!0))})),!n}function d(t,e){return!l([t,e])}var f=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function p(t){var e=[],r=i(t);return r.sort((function(t,e){return Math.abs(t[0]-t[1])-Math.abs(e[0]-e[1])})),r.forEach((function(t){l(f(f([],e,!0),[t],!1))&&e.push(t)})),e}var m=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=this.targetStructure[1];if(0==t.length)return[];var e=o(t),r=[],n=[];return e.forEach((function(t){var e=0==n.length?null:n[n.length-1];!e||h(e,t)?n.push(t):(r.push(n),n=[t])})),r.push(n),r},t}(),g=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=(new(m.bind.apply(m,function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))}([void 0],this.targetStructure,!1)))).get().flatMap((function(t){return[t.map(s.min),t.map(s.max)]}));t.forEach(s.sortNumbers),t.sort((function(t,e){return(0,s.min)(t)-(0,s.min)(e)}));for(var e=[],r=t.shift(),n=t.shift();r&&n;){for(var i=[],o=(0,s.max)(r),a=(0,s.min)(n),h=o;h<=a;h++)i.push(h);e.push(i),r=n,n=t.shift()}return e},t}();function y(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=t[0],n=t[1],i=c(n);if(!l(n))throw new Error("Pseudoknot(s) encountered.");var s=[],o=0;return r.forEach((function(t,e){var r=e+1,n=i[e];null==n?s.push(o):r<n?(s.push(o),o++):(r==n||o--,s.push(o))})),s}function w(t){var e=t.split(""),r=[".","(",")"];e.forEach((function(t){if(!r.includes(t))throw new Error('Unrecognized character in dot-bracket notation: "'.concat(t,'".'))}));var n=[],i=[];if(e.forEach((function(t,e){var r=e+1;if("("==t)i.push(r);else if(")"==t){var s=i.pop();if("number"!=typeof s)throw new Error("Unmatched downstream partner(s) in dot-bracket notation.");n.push([s,r])}})),i.length>0)throw new Error("Unmatched upstream partner(s) in dot-bracket notation.");return o(n)}})(),n})(),t.exports=e()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Centroid:()=>s,Direction:()=>f,MaxCenterX:()=>h,MaxCenterY:()=>c,MinCenterX:()=>a,MinCenterY:()=>u,NucleobaseMock:()=>t,arrange:()=>N,circularize:()=>v,flipSelfX:()=>g,flipSelfY:()=>y,flipX:()=>p,flipY:()=>m,linearize:()=>w,radialize:()=>V,rotate:()=>d,round:()=>S,shift:()=>e,stemmify:()=>x,straighten:()=>b});class t{constructor(t){this.props=t}getCenterPoint(){return this.props.centerPoint}setCenterPoint(t){this.props.centerPoint=t}}function e(t,e){t.forEach((t=>{let r=t.getCenterPoint();t.setCenterPoint({x:r.x+e.x,y:r.y+e.y})}))}var i=r(725);class s{constructor(t){this.targetBases=t}get(){let t=this.targetBases.map((t=>t.getCenterPoint()));return(0,i.centroid)(t)}set(t){let r=this.get(),n=(0,i.displacement)(r,t);e(this.targetBases,n)}}var o=r(986);class a{constructor(t){this.targetBases=t}get(){return(0,o.min)(this.targetBases.map((t=>t.getCenterPoint().x)))}set(t){let r=this.get();e(this.targetBases,{x:t-r,y:0})}}class h{constructor(t){this.targetBases=t}get(){return(0,o.max)(this.targetBases.map((t=>t.getCenterPoint().x)))}set(t){let r=this.get();e(this.targetBases,{x:t-r,y:0})}}class u{constructor(t){this.targetBases=t}get(){return(0,o.min)(this.targetBases.map((t=>t.getCenterPoint().y)))}set(t){let r=this.get();e(this.targetBases,{x:0,y:t-r})}}class c{constructor(t){this.targetBases=t}get(){return(0,o.max)(this.targetBases.map((t=>t.getCenterPoint().y)))}set(t){let r=this.get();e(this.targetBases,{x:0,y:t-r})}}var l=r(30);function d(t,e){if(t.length<2)return;let r=t[0],n=t[t.length-1],s=(0,i.midpoint)(r.getCenterPoint(),n.getCenterPoint());t.forEach((t=>{let r=t.getCenterPoint(),n=(0,i.distance)(s,r),o=(0,l.direction)((0,i.displacement)(s,r));o+=e,t.setCenterPoint({x:s.x+n*Math.cos(o),y:s.y+n*Math.sin(o)})}))}class f{constructor(t){this.targetBases=t}get(){if(this.targetBases.length<2)return 0;let t=this.targetBases[0],e=this.targetBases[this.targetBases.length-1];return(0,l.direction)((0,i.displacement)(t.getCenterPoint(),e.getCenterPoint()))}set(t){let e=t-this.get();d(this.targetBases,e)}}function p(t){let e=new s(t).get().y;t.forEach((t=>{let r=t.getCenterPoint(),n=r.y-e;t.setCenterPoint({x:r.x,y:e-n})}))}function m(t){let e=new s(t).get().x;t.forEach((t=>{let r=t.getCenterPoint(),n=r.x-e;t.setCenterPoint({x:e-n,y:r.y})}))}function g(t){if(0==t.length)return;let r=t[0],{x:n,y:s}=r.getCenterPoint(),o={x:n,y:s},a=new f(t).get();d(t,-a),p(t),d(t,a),e(t,(0,i.displacement)(r.getCenterPoint(),o))}function y(t){let e=new s(t),{x:r,y:n}=e.get(),i=r,o=n,a=new f(t).get();d(t,-a),m(t),d(t,a),e.set({x:i,y:o})}function w(t,e){let{spacing:r}=e;if(t.length<2)return;let n=new f(t),i=n.get(),o=new s(t),{x:a,y:h}=o.get(),u={x:a,y:h};t.forEach(((t,e)=>{t.setCenterPoint({x:e*r,y:0})})),n.set(i),o.set(u)}function b(t){if(t.length<3)return;let e=t[0],r=t[t.length-1],n=[e.getCenterPoint(),r.getCenterPoint()],s=(0,i.distance)(n[0],n[1]),o=(0,l.direction)((0,i.displacement)(n[0],n[1])),a=s/(t.length-1),h=a*Math.cos(o),u=a*Math.sin(o),{x:c,y:d}=n[0];t.forEach((t=>{t.setCenterPoint({x:c,y:d}),c+=h,d+=u}))}function x(t,r){let{basePairLength:n,basePairSpacing:o}=r;if(t.length<2)return;let a=Math.ceil(t.length/2),h=t.slice(0,a),u=t.slice(a),c=new s(t),{x:l,y:p}=c.get(),m={x:l,y:p},g=new f(t).get();w(h,{spacing:o}),w(u,{spacing:o}),new f(h).set(-Math.PI/2),new f(u).set(Math.PI/2);let y=t[0],b=t[t.length-1];e(h,(0,i.displacement)(y.getCenterPoint(),{x:0,y:0})),e(u,(0,i.displacement)(b.getCenterPoint(),{x:n,y:0})),d(t,g),c.set(m)}function v(t,e){let{spacing:r,terminiGap:n}=e;if(t.length<2)return;let i=new s(t),{x:o,y:a}=i.get(),h=o,u=a,c=new f(t).get(),l=r*(t.length-1);l+=n,Math.abs(l)<1e-5&&(l=1e-5);let p=l/(2*Math.PI),m=Math.PI/2+2*Math.PI*(.5*n/l);t.forEach(((t,e)=>{let n=m+2*Math.PI*(e*r)/l;t.setCenterPoint({x:p*Math.cos(n),y:p*Math.sin(n)})})),d(t,c),i.set({x:h,y:u})}var _=r(173);function S(t,r){let{spacing:n}=r;if(t.length<3)return;let s=t[0],o=t[t.length-1],a=[s.getCenterPoint(),o.getCenterPoint()],h=(0,i.distance)(a[0],a[1]),u=n*(t.length-1);if(u-h<.001)return void b(t);if(h<.001){let{x:r,y:o}=s.getCenterPoint();return v(t,{spacing:n,terminiGap:h}),void e(t,(0,i.displacement)(s.getCenterPoint(),{x:r,y:o}))}let c=new _.CircularSegment(a,{arcLength:u}),d=c.parentCircleCenterPoint,f=c.parentCircleRadius,p=(0,l.direction)((0,i.displacement)(d,s.getCenterPoint())),m=c.arcAngle/(t.length-1);t.forEach((t=>{t.setCenterPoint({x:d.x+f*Math.cos(p),y:d.y+f*Math.sin(p)}),p+=m}))}var M=r(127),O=r(369);function N(t,r,n){var a,h,u;let{spacing:c}=n,l=null!==(a=n.basePairSpacing)&&void 0!==a?a:c,d=null!==(h=n.hairpinLoopSpacing)&&void 0!==h?h:c,p=null!==(u=n.terminiGap)&&void 0!==u?u:c,{x:m,y:g}=new s(t).get(),y={x:m,y:g},w=new f(t).get();[,r]=(0,M.knotless)(t,r);let b=new M.PositionPairs(t,r).get(),_=(0,O.mountainPlotTraversal)(t,b),N=t.filter(((t,e)=>0==_[e]));v(N,{spacing:c,terminiGap:p});let P=new M.Stems(t,r).get(),C=new Set(N),A=P.filter((t=>C.has(t[0][0]))),T=r=>{let n=r[0],{x:a,y:h}=new s(n).get(),u={x:a,y:h},p=new f(r[0]).get(),m=[...r.map((t=>t[0])),...r.map((t=>t[1])).reverse()];x(m,{basePairLength:c,basePairSpacing:l}),new f(m).set(p),e(m,(0,i.displacement)(new s(n).get(),u));let g=r[r.length-1],y=g.map((e=>t.indexOf(e))),w=t.filter(((t,e)=>(0,o.isBetweenExclusive)(e,(0,o.min)(y),(0,o.max)(y))&&_[e]==_[(0,o.min)(y)]+1)),b=new Set(w),v=P.filter((t=>b.has(t[0][0])));S([g[0],...w,g[1]],{spacing:v.length>0?c:d}),v.forEach((t=>T(t)))};A.forEach((t=>T(t))),new f(t).set(w),new s(t).set(y)}var P=r(456);class C{static from(t){return{to:e=>({inclusive:()=>{let r=e-t+1;return Array.from({length:r},((e,r)=>t+r))}})}}}class A{static of(...t){let[e,r]=t,n=new M.PositionPairs(...t).get();n=(0,O.sorted)(n);let i=n.map((t=>t.map((t=>t-1)))),s=[],a=0;return e.forEach(((t,e)=>{let r=i.find((t=>t.includes(e)));r&&e==(0,o.min)(r)?(s.push(a),a+=1):r&&e==(0,o.max)(r)?(a-=1,s.push(a)):s.push(a)})),s}}class T{constructor(...t){let[e,r]=t;this.rawForm=t,this.mountainPlotTraversal=A.of(...t),this.positionPairs=new M.PositionPairs(...t).get(),this.indexPairs=this.positionPairs.map((t=>[t[0]-1,t[1]-1])),this.pairedBases=new Set(r.flat()),this.pairedIndices=new Set(e.map(((t,e)=>({b:t,i:e}))).filter((t=>this.pairedBases.has(t.b))).map((t=>t.i)))}[Symbol.iterator](){return this.rawForm.values()}get sequence(){return this.rawForm[0]}get basePairs(){return this.rawForm[1]}}class E{static correspondingTo(t){return{in:e=>t.map((t=>e.sequence.indexOf(t)))}}}class j{static composedOf(t){if(0==t.length)throw new Error("All stems must have at least one base-pair.");let r=t[0],n=t[t.length-1],s=t.map((t=>t[0])),o=t.map((t=>t[1])).reverse(),a=r[0],h=r[1],u=[...s,...o];return{[Symbol.iterator]:()=>t.values(),bottomBasePair:r,topBasePair:n,side5:s,side3:o,flat:()=>u,firstBase:a,lastBase:h,stemmify:()=>({with:t=>{let{basePairLength:r,basePairSpacing:n}=t,s=P.Point.matching(a.getCenterPoint());x(u,{basePairLength:r,basePairSpacing:n}),e(u,(0,i.displacement)(a.getCenterPoint(),s))}})}}}class D{static in(t){return{[Symbol.iterator]:()=>new M.Stems(t.sequence,t.basePairs).get().map((t=>j.composedOf(t))).values()}}}class k{static composedOf(t){if(t.length<2)throw new Error("Linkers must have at least two bases.");let r=t[0],n=t[t.length-1],s=t.slice(1,-1);return{in:o=>{let a=o.sequence.indexOf(r),h=o.sequence.indexOf(n),u=C.from(a).to(h).inclusive(),c=!!o.indexPairs.find((t=>t.includes(a)&&t.includes(h))),l=u.every((t=>0==o.mountainPlotTraversal[t])),d=1==new Set(u.map((t=>o.mountainPlotTraversal[t]))).size&&!c;return{[Symbol.iterator]:()=>t.values(),indices:u,firstBase:r,lastBase:n,firstIndex:a,lastIndex:h,unpairedBases:{[Symbol.iterator]:()=>s.values(),stemmify:()=>({with:t=>{let{spacing:r}=t;if(s.length<3)return;let n=s[0],o=s[s.length-1],a=P.Point.matching(n.getCenterPoint());x(s,{basePairLength:(0,i.distance)(n.getCenterPoint(),o.getCenterPoint()),basePairSpacing:r}),e(s,(0,i.displacement)(n.getCenterPoint(),a))}})},get middleThreeUnpairedBases(){if(s.length<3)throw new Error("This linker has less than three unpaired bases.");if(s.length%2==0)throw new Error("This linker has an even number of unpaired bases.");let t=Math.floor(s.length/2);return[s[t-1],s[t],s[t+1]]},isHairpinLoop:()=>c,isInOutermostLoop:()=>l,isBetweenSiblingStems:()=>d,round:()=>({with:e=>{let{spacing:r}=e;S(t,{spacing:r})}})}}}}}class B{static in(t){let e=new M.Linkers(t.sequence,t.basePairs).get().map((e=>k.composedOf(e).in(t)));return{[Symbol.iterator]:()=>e.values(),thatAreHairpinLoops:{[Symbol.iterator]:()=>e.filter((t=>t.isHairpinLoop())).values()},inOutermostLoop:{[Symbol.iterator]:()=>e.filter((t=>t.isInOutermostLoop())).values()},notInOutermostLoop:{[Symbol.iterator]:()=>e.filter((t=>!t.isInOutermostLoop())).values(),betweenSiblingStems:{[Symbol.iterator]:()=>e.filter((t=>!t.isInOutermostLoop())).filter((t=>t.isBetweenSiblingStems())).values()}},notBetweenSiblingStems:{[Symbol.iterator]:()=>e.filter((t=>!t.isBetweenSiblingStems())).values()}}}}class I{static closedBy(r){return{in:n=>{let s=r.topBasePair,a=E.correspondingTo(s).in(n),h=(0,o.min)(a),u=n.sequence.filter(((t,e)=>e>(0,o.min)(a)&&e<(0,o.max)(a)&&n.mountainPlotTraversal[e]==n.mountainPlotTraversal[h]+1)),c=u.map((t=>n.sequence.indexOf(t))),l=u.filter((t=>n.pairedBases.has(t))),d=c.filter((t=>n.pairedIndices.has(t))),f=[s[0],...u,s[1]];return{[Symbol.iterator]:()=>f.values(),parentStructure:n,closingStem:r,closingBasePair:s,closingIndexPair:a,enclosedBases:u,enclosedIndices:c,enclosedPairedBases:l,enclosedPairedIndices:d,get platform(){if(0==d.length)throw new Error("This loop does not have a platform.");let r=(0,o.min)(d),h=(0,o.max)(d),u=n.sequence.filter(((t,e)=>e>=r&&e<=h&&c.includes(e)&&[e-1,e,e+1].some((t=>d.includes(t)))));return{[Symbol.iterator]:()=>u.values(),firstIndex:r,lastIndex:h,arch:()=>({with:n=>{let{spacing:c}=n,l=(0,o.max)([u.length-2,r-(0,o.min)(a)-1,(0,o.max)(a)-h-1,0]),d=C.from(1).to(l).inclusive().map((()=>new t({centerPoint:{x:0,y:0}}))),f=d.map((()=>new t({centerPoint:{x:0,y:0}}))),p=P.Point.matching(s[0].getCenterPoint());v([s[0],...d,...u,...f,s[1]],{spacing:c,terminiGap:c}),e([...s,...u],(0,i.displacement)(s[0].getCenterPoint(),p))}})}}}}}}}class L{static of(t){let e=t.sequence.filter(((e,r)=>0==t.mountainPlotTraversal[r]));return{[Symbol.iterator]:()=>e.values()}}}function V(t,e,r){var n;let{spacing:i,basePairSpacing:o}=r,a=null!==(n=r.hairpinLoopSpacing)&&void 0!==n?n:i,h=new T(t,e);if(t.length<2)return;if(0==e.length)return void v(t,{spacing:i,terminiGap:2*i});let u=P.Point.matching(new s(t).get()),c=new f(t).get(),l=D.in(h),d=B.in(h);v([...L.of(h)],{spacing:i,terminiGap:2*i});let p=[...l].map((t=>I.closedBy(t).in(h)));p.filter((t=>t.enclosedPairedBases.length>0)).forEach((t=>{t.closingStem.stemmify().with({basePairLength:i,basePairSpacing:o}),t.platform.arch().with({spacing:i}),t.closingStem.stemmify().with({basePairLength:i,basePairSpacing:o})})),p.filter((t=>0==t.enclosedPairedBases.length)).forEach((t=>t.closingStem.stemmify().with({basePairLength:i,basePairSpacing:o}))),[...d.notBetweenSiblingStems].forEach((t=>t.round().with({spacing:i}))),[...d.thatAreHairpinLoops].forEach((t=>t.round().with({spacing:a}))),[...d.notInOutermostLoop.betweenSiblingStems].filter((t=>[...t.unpairedBases].length>=3)).forEach((t=>{t.unpairedBases.stemmify().with({spacing:i}),[...t.unpairedBases].length%2!=0&&S(t.middleThreeUnpairedBases,{spacing:i})})),new f(t).set(c),new s(t).set(u)}})(),n})(),t.exports=e()},282:function(t){var e;e=()=>(()=>{var t={726:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{CoordinateSystem:()=>c,HorizontalClientScaling:()=>d,InnerXML:()=>w,OuterXML:()=>v,Scaling:()=>l,VerticalClientScaling:()=>f,assignUUID:()=>u,bringToFront:()=>p,sendToBack:()=>m});const r={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};var n,i=new Uint8Array(16);function s(){if(!n&&!(n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return n(i)}for(var o=[],a=0;a<256;++a)o.push((a+256).toString(16).slice(1));const h=function(t,e,n){if(r.randomUUID&&!e&&!t)return r.randomUUID();var i=(t=t||{}).random||(t.rng||s)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,e){n=n||0;for(var a=0;a<16;++a)e[n+a]=i[a];return e}return function(t,e=0){return(o[t[e+0]]+o[t[e+1]]+o[t[e+2]]+o[t[e+3]]+"-"+o[t[e+4]]+o[t[e+5]]+"-"+o[t[e+6]]+o[t[e+7]]+"-"+o[t[e+8]]+o[t[e+9]]+"-"+o[t[e+10]]+o[t[e+11]]+o[t[e+12]]+o[t[e+13]]+o[t[e+14]]+o[t[e+15]]).toLowerCase()}(i)};function u(t){t.id="uuid-"+h()}class c{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class l{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class d{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class f{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function p(t){let e=t.parentNode;e&&e.appendChild(t)}function m(t){let e=t.parentNode;e&&e.prepend(t)}var g,y=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class w{constructor(t){g.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,g,t)}toString(){return y(this,g,"f").innerHTML}set(t){y(this,g,"f").innerHTML=t}}g=new WeakMap;var b,x=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class v{constructor(t){b.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,b,t)}toString(){return x(this,b,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=x(this,b,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...x(this,b,"f").attributes].forEach((t=>x(this,b,"f").removeAttribute(t.name))),[...e.firstElementChild.attributes].forEach((t=>x(this,b,"f").setAttribute(t.name,t.value))),x(this,b,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}return b=new WeakMap,e})(),t.exports=e()},725:function(t){t.exports=(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>d,average:()=>n,degrees:()=>m,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>g,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>f,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return Math.abs(t-e)<=r}function f(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function m(t){return t*(180/Math.PI)}function g(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function h(t){return null==t}function u(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isNonFiniteNumber:()=>i,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>u,isNullish:()=>h,isNumber:()=>r,isPositiveFiniteNumber:()=>s,isString:()=>a}),e})()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{areWithin:()=>a,centroid:()=>f,deepCopy:()=>s,direction:()=>l,displaced:()=>u,displacement:()=>h,distance:()=>o,isFinitePoint:()=>i,isPoint:()=>e,midpoint:()=>p});var t=r(854);function e(e){return(0,t.isNonNullObject)(e)&&(0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)}function i(r){return e(r)&&(0,t.isFiniteNumber)(r.x)&&(0,t.isFiniteNumber)(r.y)}function s(t){return{x:t.x,y:t.y}}function o(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function a(t,e,r){return o(t,e)<=r}function h(t,e){return{x:e.x-t.x,y:e.y-t.y}}function u(t,e){return{x:t.x+e.x,y:t.y+e.y}}var c=r(30);function l(t,e){return(0,c.direction)(h(t,e))}var d=r(986);function f(t){return{x:(0,d.mean)(t.map((function(t){return t.x}))),y:(0,d.mean)(t.map((function(t){return t.y})))}}function p(t,e){return f([t,e])}})(),n})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function h(t){return null==t}function u(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}function l(t){return c(t)&&0==t.length}function d(t){return c(t)&&t.length>0}function f(t){return c(t)&&t.every(r)}function p(t){return f(t)&&t.length>0}function m(t){return c(t)&&t.every(n)}function g(t){return c(t)&&t.every(i)}function y(t){return c(t)&&t.every(a)}function w(t){return y(t)&&t.length>0}return t.r(e),t.d(e,{isArray:()=>c,isEmptyArray:()=>l,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>m,isNonEmptyArray:()=>d,isNonEmptyNumbersArray:()=>p,isNonEmptyStringsArray:()=>w,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>g,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>u,isNullish:()=>h,isNumber:()=>r,isNumbersArray:()=>f,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>y}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{InvertedStraightBondsHider:()=>en,SavableStraightBond:()=>Lr,SavedStraightBond:()=>tn,StraightBond:()=>kr});var t={};r.r(t),r.d(t,{cx:()=>It,cy:()=>Lt,height:()=>Ft,rx:()=>jt,ry:()=>Dt,width:()=>Vt,x:()=>kt,y:()=>Bt});var e={};r.r(e),r.d(e,{from:()=>Xt,to:()=>Yt});var i={};r.r(i),r.d(i,{MorphArray:()=>Qt,height:()=>te,width:()=>Kt,x:()=>Jt,y:()=>Zt});var s={};r.r(s),r.d(s,{array:()=>Ce,clear:()=>Ae,move:()=>Te,plot:()=>Ee,size:()=>je});var o={};r.r(o),r.d(o,{amove:()=>or,ax:()=>ir,ay:()=>sr,build:()=>ar,center:()=>nr,cx:()=>er,cy:()=>rr,length:()=>Je,move:()=>tr,plain:()=>Qe,x:()=>Ze,y:()=>Ke});var a={};r.r(a),r.d(a,{dmove:()=>fr,dx:()=>pr,dy:()=>mr,height:()=>gr,move:()=>yr,size:()=>wr,width:()=>br,x:()=>xr,y:()=>vr});const h={},u=[];function c(t,e){if(Array.isArray(t))for(const r of t)c(r,e);else if("object"!=typeof t)d(Object.getOwnPropertyNames(e)),h[t]=Object.assign(h[t]||{},e);else for(const e in t)c(e,t[e])}function l(t){return h[t]||{}}function d(t){u.push(...t)}function f(t,e){let r;const n=t.length,i=[];for(r=0;r<n;r++)i.push(e(t[r]));return i}function p(t){return t%360*Math.PI/180}function m(t){return t.charAt(0).toUpperCase()+t.slice(1)}function g(t,e,r,n){return null!=e&&null!=r||(n=n||t.bbox(),null==e?e=n.width/n.height*r:null==r&&(r=n.height/n.width*e)),{width:e,height:r}}function y(t,e){const r=t.origin;let n=null!=t.ox?t.ox:null!=t.originX?t.originX:"center",i=null!=t.oy?t.oy:null!=t.originY?t.originY:"center";null!=r&&([n,i]=Array.isArray(r)?r:"object"==typeof r?[r.x,r.y]:[r,r]);const s="string"==typeof n,o="string"==typeof i;if(s||o){const{height:t,width:r,x:a,y:h}=e.bbox();s&&(n=n.includes("left")?a:n.includes("right")?a+r:a+r/2),o&&(i=i.includes("top")?h:i.includes("bottom")?h+t:h+t/2)}return[n,i]}const w=new Set(["desc","metadata","title"]),b=t=>w.has(t.nodeName),x=(t,e,r={})=>{const n={...e};for(const t in n)n[t].valueOf()===r[t]&&delete n[t];Object.keys(n).length?t.node.setAttribute("data-svgjs",JSON.stringify(n)):(t.node.removeAttribute("data-svgjs"),t.node.removeAttribute("svgjs:data"))},v="http://www.w3.org/2000/svg",_="http://www.w3.org/2000/xmlns/",S="http://www.w3.org/1999/xlink",M={window:"undefined"==typeof window?null:window,document:"undefined"==typeof document?null:document};class O{}const N={},P="___SYMBOL___ROOT___";function C(t,e=v){return M.document.createElementNS(e,t)}function A(t,e=!1){if(t instanceof O)return t;if("object"==typeof t)return j(t);if(null==t)return new N[P];if("string"==typeof t&&"<"!==t.charAt(0))return j(M.document.querySelector(t));const r=e?M.document.createElement("div"):C("svg");return r.innerHTML=t,t=j(r.firstChild),r.removeChild(r.firstChild),t}function T(t,e){return e&&(e instanceof M.window.Node||e.ownerDocument&&e instanceof e.ownerDocument.defaultView.Node)?e:C(t)}function E(t){if(!t)return null;if(t.instance instanceof O)return t.instance;if("#document-fragment"===t.nodeName)return new N.Fragment(t);let e=m(t.nodeName||"Dom");return"LinearGradient"===e||"RadialGradient"===e?e="Gradient":N[e]||(e="Dom"),new N[e](t)}let j=E;function D(t,e=t.name,r=!1){return N[e]=t,r&&(N[P]=t),d(Object.getOwnPropertyNames(t.prototype)),t}let k=1e3;function B(t){return"Svgjs"+m(t)+k++}function I(t){for(let e=t.children.length-1;e>=0;e--)I(t.children[e]);return t.id?(t.id=B(t.nodeName),t):t}function L(t,e){let r,n;for(n=(t=Array.isArray(t)?t:[t]).length-1;n>=0;n--)for(r in e)t[n].prototype[r]=e[r]}function V(t){return function(...e){const r=e[e.length-1];return!r||r.constructor!==Object||r instanceof Array?t.apply(this,e):t.apply(this,e.slice(0,-1)).attr(r)}}c("Dom",{siblings:function(){return this.parent().children()},position:function(){return this.parent().index(this)},next:function(){return this.siblings()[this.position()+1]},prev:function(){return this.siblings()[this.position()-1]},forward:function(){const t=this.position();return this.parent().add(this.remove(),t+1),this},backward:function(){const t=this.position();return this.parent().add(this.remove(),t?t-1:0),this},front:function(){return this.parent().add(this.remove()),this},back:function(){return this.parent().add(this.remove(),0),this},before:function(t){(t=A(t)).remove();const e=this.position();return this.parent().add(t,e),this},after:function(t){(t=A(t)).remove();const e=this.position();return this.parent().add(t,e+1),this},insertBefore:function(t){return(t=A(t)).before(this),this},insertAfter:function(t){return(t=A(t)).after(this),this}});const F=/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,R=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,z=/rgb\((\d+),(\d+),(\d+)\)/,q=/(#[a-z_][a-z0-9\-_]*)/i,X=/\)\s*,?\s*/,Y=/\s/g,G=/^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i,H=/^rgb\(/,U=/^(\s+)?$/,$=/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,W=/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,Q=/[\s,]+/,J=/[MLHVCSQTAZ]/i;function Z(t){const e=Math.round(t),r=Math.max(0,Math.min(255,e)).toString(16);return 1===r.length?"0"+r:r}function K(t,e){for(let r=e.length;r--;)if(null==t[e[r]])return!1;return!0}function tt(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}c("Dom",{classes:function(){const t=this.attr("class");return null==t?[]:t.trim().split(Q)},hasClass:function(t){return-1!==this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){const e=this.classes();e.push(t),this.attr("class",e.join(" "))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr("class",this.classes().filter((function(e){return e!==t})).join(" ")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)}}),c("Dom",{css:function(t,e){const r={};if(0===arguments.length)return this.node.style.cssText.split(/\s*;\s*/).filter((function(t){return!!t.length})).forEach((function(t){const e=t.split(/\s*:\s*/);r[e[0]]=e[1]})),r;if(arguments.length<2){if(Array.isArray(t)){for(const e of t){const t=e;r[e]=this.node.style.getPropertyValue(t)}return r}if("string"==typeof t)return this.node.style.getPropertyValue(t);if("object"==typeof t)for(const e in t)this.node.style.setProperty(e,null==t[e]||U.test(t[e])?"":t[e])}return 2===arguments.length&&this.node.style.setProperty(t,null==e||U.test(e)?"":e),this},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},visible:function(){return"none"!==this.css("display")}}),c("Dom",{data:function(t,e,r){if(null==t)return this.data(f(function(t){let e;const r=t.length,n=[];for(e=0;e<r;e++)0===t[e].nodeName.indexOf("data-")&&n.push(t[e]);return n}(this.node.attributes),(t=>t.nodeName.slice(5))));if(t instanceof Array){const e={};for(const r of t)e[r]=this.data(r);return e}if("object"==typeof t)for(e in t)this.data(e,t[e]);else if(arguments.length<2)try{return JSON.parse(this.attr("data-"+t))}catch(e){return this.attr("data-"+t)}else this.attr("data-"+t,null===e?null:!0===r||"string"==typeof e||"number"==typeof e?e:JSON.stringify(e));return this}}),c("Dom",{remember:function(t,e){if("object"==typeof arguments[0])for(const e in t)this.remember(e,t[e]);else{if(1===arguments.length)return this.memory()[t];this.memory()[t]=e}return this},forget:function(){if(0===arguments.length)this._memory={};else for(let t=arguments.length-1;t>=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory=this._memory||{}}});class et{constructor(...t){this.init(...t)}static isColor(t){return t&&(t instanceof et||this.isRgb(t)||this.test(t))}static isRgb(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b}static random(t="vibrant",e){const{random:r,round:n,sin:i,PI:s}=Math;if("vibrant"===t){const t=24*r()+57,e=38*r()+45,n=360*r();return new et(t,e,n,"lch")}if("sine"===t){const t=n(80*i(2*s*(e=null==e?r():e)/.5+.01)+150),o=n(50*i(2*s*e/.5+4.6)+200),a=n(100*i(2*s*e/.5+2.3)+150);return new et(t,o,a)}if("pastel"===t){const t=8*r()+86,e=17*r()+9,n=360*r();return new et(t,e,n,"lch")}if("dark"===t){const t=10+10*r(),e=50*r()+86,n=360*r();return new et(t,e,n,"lch")}if("rgb"===t){const t=255*r(),e=255*r(),n=255*r();return new et(t,e,n)}if("lab"===t){const t=100*r(),e=256*r()-128,n=256*r()-128;return new et(t,e,n,"lab")}if("grey"===t){const t=255*r();return new et(t,t,t)}throw new Error("Unsupported random color mode")}static test(t){return"string"==typeof t&&(G.test(t)||H.test(t))}cmyk(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=Math.min(1-n,1-i,1-s);return 1===o?new et(0,0,0,1,"cmyk"):new et((1-n-o)/(1-o),(1-i-o)/(1-o),(1-s-o)/(1-o),o,"cmyk")}hsl(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=Math.max(n,i,s),a=Math.min(n,i,s),h=(o+a)/2,u=o===a,c=o-a;return new et(360*(u?0:o===n?((i-s)/c+(i<s?6:0))/6:o===i?((s-n)/c+2)/6:o===s?((n-i)/c+4)/6:0),100*(u?0:h>.5?c/(2-o-a):c/(o+a)),100*h,"hsl")}init(t=0,e=0,r=0,n=0,i="rgb"){if(t=t||0,this.space)for(const t in this.space)delete this[this.space[t]];if("number"==typeof t)i="string"==typeof n?n:i,n="string"==typeof n?0:n,Object.assign(this,{_a:t,_b:e,_c:r,_d:n,space:i});else if(t instanceof Array)this.space=e||("string"==typeof t[3]?t[3]:t[4])||"rgb",Object.assign(this,{_a:t[0],_b:t[1],_c:t[2],_d:t[3]||0});else if(t instanceof Object){const r=function(t,e){const r=K(t,"rgb")?{_a:t.r,_b:t.g,_c:t.b,_d:0,space:"rgb"}:K(t,"xyz")?{_a:t.x,_b:t.y,_c:t.z,_d:0,space:"xyz"}:K(t,"hsl")?{_a:t.h,_b:t.s,_c:t.l,_d:0,space:"hsl"}:K(t,"lab")?{_a:t.l,_b:t.a,_c:t.b,_d:0,space:"lab"}:K(t,"lch")?{_a:t.l,_b:t.c,_c:t.h,_d:0,space:"lch"}:K(t,"cmyk")?{_a:t.c,_b:t.m,_c:t.y,_d:t.k,space:"cmyk"}:{_a:0,_b:0,_c:0,space:"rgb"};return r.space=e||r.space,r}(t,e);Object.assign(this,r)}else if("string"==typeof t)if(H.test(t)){const e=t.replace(Y,""),[r,n,i]=z.exec(e).slice(1,4).map((t=>parseInt(t)));Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}else{if(!G.test(t))throw Error("Unsupported string format, can't construct Color");{const e=t=>parseInt(t,16),[,r,n,i]=R.exec(function(t){return 4===t.length?["#",t.substring(1,2),t.substring(1,2),t.substring(2,3),t.substring(2,3),t.substring(3,4),t.substring(3,4)].join(""):t}(t)).map(e);Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}}const{_a:s,_b:o,_c:a,_d:h}=this,u="rgb"===this.space?{r:s,g:o,b:a}:"xyz"===this.space?{x:s,y:o,z:a}:"hsl"===this.space?{h:s,s:o,l:a}:"lab"===this.space?{l:s,a:o,b:a}:"lch"===this.space?{l:s,c:o,h:a}:"cmyk"===this.space?{c:s,m:o,y:a,k:h}:{};Object.assign(this,u)}lab(){const{x:t,y:e,z:r}=this.xyz();return new et(116*e-16,500*(t-e),200*(e-r),"lab")}lch(){const{l:t,a:e,b:r}=this.lab(),n=Math.sqrt(e**2+r**2);let i=180*Math.atan2(r,e)/Math.PI;return i<0&&(i*=-1,i=360-i),new et(t,n,i,"lch")}rgb(){if("rgb"===this.space)return this;if("lab"===(t=this.space)||"xyz"===t||"lch"===t){let{x:t,y:e,z:r}=this;if("lab"===this.space||"lch"===this.space){let{l:n,a:i,b:s}=this;if("lch"===this.space){const{c:t,h:e}=this,r=Math.PI/180;i=t*Math.cos(r*e),s=t*Math.sin(r*e)}const o=(n+16)/116,a=i/500+o,h=o-s/200,u=16/116,c=.008856,l=7.787;t=.95047*(a**3>c?a**3:(a-u)/l),e=1*(o**3>c?o**3:(o-u)/l),r=1.08883*(h**3>c?h**3:(h-u)/l)}const n=3.2406*t+-1.5372*e+-.4986*r,i=-.9689*t+1.8758*e+.0415*r,s=.0557*t+-.204*e+1.057*r,o=Math.pow,a=.0031308,h=n>a?1.055*o(n,1/2.4)-.055:12.92*n,u=i>a?1.055*o(i,1/2.4)-.055:12.92*i,c=s>a?1.055*o(s,1/2.4)-.055:12.92*s;return new et(255*h,255*u,255*c)}if("hsl"===this.space){let{h:t,s:e,l:r}=this;if(t/=360,e/=100,r/=100,0===e)return r*=255,new et(r,r,r);const n=r<.5?r*(1+e):r+e-r*e,i=2*r-n,s=255*tt(i,n,t+1/3),o=255*tt(i,n,t),a=255*tt(i,n,t-1/3);return new et(s,o,a)}if("cmyk"===this.space){const{c:t,m:e,y:r,k:n}=this,i=255*(1-Math.min(1,t*(1-n)+n)),s=255*(1-Math.min(1,e*(1-n)+n)),o=255*(1-Math.min(1,r*(1-n)+n));return new et(i,s,o)}return this;var t}toArray(){const{_a:t,_b:e,_c:r,_d:n,space:i}=this;return[t,e,r,n,i]}toHex(){const[t,e,r]=this._clamped().map(Z);return`#${t}${e}${r}`}toRgb(){const[t,e,r]=this._clamped();return`rgb(${t},${e},${r})`}toString(){return this.toHex()}xyz(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92,a=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92,h=s>.04045?Math.pow((s+.055)/1.055,2.4):s/12.92,u=(.4124*o+.3576*a+.1805*h)/.95047,c=(.2126*o+.7152*a+.0722*h)/1,l=(.0193*o+.1192*a+.9505*h)/1.08883,d=u>.008856?Math.pow(u,1/3):7.787*u+16/116,f=c>.008856?Math.pow(c,1/3):7.787*c+16/116,p=l>.008856?Math.pow(l,1/3):7.787*l+16/116;return new et(d,f,p,"xyz")}_clamped(){const{_a:t,_b:e,_c:r}=this.rgb(),{max:n,min:i,round:s}=Math;return[t,e,r].map((t=>n(0,i(s(t),255))))}}class rt{constructor(...t){this.init(...t)}clone(){return new rt(this)}init(t,e){const r=Array.isArray(t)?{x:t[0],y:t[1]}:"object"==typeof t?{x:t.x,y:t.y}:{x:t,y:e};return this.x=null==r.x?0:r.x,this.y=null==r.y?0:r.y,this}toArray(){return[this.x,this.y]}transform(t){return this.clone().transformO(t)}transformO(t){it.isMatrixLike(t)||(t=new it(t));const{x:e,y:r}=this;return this.x=t.a*e+t.c*r+t.e,this.y=t.b*e+t.d*r+t.f,this}}function nt(t,e,r){return Math.abs(e-t)<(r||1e-6)}class it{constructor(...t){this.init(...t)}static formatTransforms(t){const e="both"===t.flip||!0===t.flip,r=t.flip&&(e||"x"===t.flip)?-1:1,n=t.flip&&(e||"y"===t.flip)?-1:1,i=t.skew&&t.skew.length?t.skew[0]:isFinite(t.skew)?t.skew:isFinite(t.skewX)?t.skewX:0,s=t.skew&&t.skew.length?t.skew[1]:isFinite(t.skew)?t.skew:isFinite(t.skewY)?t.skewY:0,o=t.scale&&t.scale.length?t.scale[0]*r:isFinite(t.scale)?t.scale*r:isFinite(t.scaleX)?t.scaleX*r:r,a=t.scale&&t.scale.length?t.scale[1]*n:isFinite(t.scale)?t.scale*n:isFinite(t.scaleY)?t.scaleY*n:n,h=t.shear||0,u=t.rotate||t.theta||0,c=new rt(t.origin||t.around||t.ox||t.originX,t.oy||t.originY),l=c.x,d=c.y,f=new rt(t.position||t.px||t.positionX||NaN,t.py||t.positionY||NaN),p=f.x,m=f.y,g=new rt(t.translate||t.tx||t.translateX,t.ty||t.translateY),y=g.x,w=g.y,b=new rt(t.relative||t.rx||t.relativeX,t.ry||t.relativeY);return{scaleX:o,scaleY:a,skewX:i,skewY:s,shear:h,theta:u,rx:b.x,ry:b.y,tx:y,ty:w,ox:l,oy:d,px:p,py:m}}static fromArray(t){return{a:t[0],b:t[1],c:t[2],d:t[3],e:t[4],f:t[5]}}static isMatrixLike(t){return null!=t.a||null!=t.b||null!=t.c||null!=t.d||null!=t.e||null!=t.f}static matrixMultiply(t,e,r){const n=t.a*e.a+t.c*e.b,i=t.b*e.a+t.d*e.b,s=t.a*e.c+t.c*e.d,o=t.b*e.c+t.d*e.d,a=t.e+t.a*e.e+t.c*e.f,h=t.f+t.b*e.e+t.d*e.f;return r.a=n,r.b=i,r.c=s,r.d=o,r.e=a,r.f=h,r}around(t,e,r){return this.clone().aroundO(t,e,r)}aroundO(t,e,r){const n=t||0,i=e||0;return this.translateO(-n,-i).lmultiplyO(r).translateO(n,i)}clone(){return new it(this)}decompose(t=0,e=0){const r=this.a,n=this.b,i=this.c,s=this.d,o=this.e,a=this.f,h=r*s-n*i,u=h>0?1:-1,c=u*Math.sqrt(r*r+n*n),l=Math.atan2(u*n,u*r),d=180/Math.PI*l,f=Math.cos(l),p=Math.sin(l),m=(r*i+n*s)/h,g=i*c/(m*r-n)||s*c/(m*n+r);return{scaleX:c,scaleY:g,shear:m,rotate:d,translateX:o-t+t*f*c+e*(m*f*c-p*g),translateY:a-e+t*p*c+e*(m*p*c+f*g),originX:t,originY:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}equals(t){if(t===this)return!0;const e=new it(t);return nt(this.a,e.a)&&nt(this.b,e.b)&&nt(this.c,e.c)&&nt(this.d,e.d)&&nt(this.e,e.e)&&nt(this.f,e.f)}flip(t,e){return this.clone().flipO(t,e)}flipO(t,e){return"x"===t?this.scaleO(-1,1,e,0):"y"===t?this.scaleO(1,-1,0,e):this.scaleO(-1,-1,t,e||t)}init(t){const e=it.fromArray([1,0,0,1,0,0]);return t=t instanceof Pt?t.matrixify():"string"==typeof t?it.fromArray(t.split(Q).map(parseFloat)):Array.isArray(t)?it.fromArray(t):"object"==typeof t&&it.isMatrixLike(t)?t:"object"==typeof t?(new it).transform(t):6===arguments.length?it.fromArray([].slice.call(arguments)):e,this.a=null!=t.a?t.a:e.a,this.b=null!=t.b?t.b:e.b,this.c=null!=t.c?t.c:e.c,this.d=null!=t.d?t.d:e.d,this.e=null!=t.e?t.e:e.e,this.f=null!=t.f?t.f:e.f,this}inverse(){return this.clone().inverseO()}inverseO(){const t=this.a,e=this.b,r=this.c,n=this.d,i=this.e,s=this.f,o=t*n-e*r;if(!o)throw new Error("Cannot invert "+this);const a=n/o,h=-e/o,u=-r/o,c=t/o,l=-(a*i+u*s),d=-(h*i+c*s);return this.a=a,this.b=h,this.c=u,this.d=c,this.e=l,this.f=d,this}lmultiply(t){return this.clone().lmultiplyO(t)}lmultiplyO(t){const e=t instanceof it?t:new it(t);return it.matrixMultiply(e,this,this)}multiply(t){return this.clone().multiplyO(t)}multiplyO(t){const e=t instanceof it?t:new it(t);return it.matrixMultiply(this,e,this)}rotate(t,e,r){return this.clone().rotateO(t,e,r)}rotateO(t,e=0,r=0){t=p(t);const n=Math.cos(t),i=Math.sin(t),{a:s,b:o,c:a,d:h,e:u,f:c}=this;return this.a=s*n-o*i,this.b=o*n+s*i,this.c=a*n-h*i,this.d=h*n+a*i,this.e=u*n-c*i+r*i-e*n+e,this.f=c*n+u*i-e*i-r*n+r,this}scale(){return this.clone().scaleO(...arguments)}scaleO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t);const{a:i,b:s,c:o,d:a,e:h,f:u}=this;return this.a=i*t,this.b=s*e,this.c=o*t,this.d=a*e,this.e=h*t-r*t+r,this.f=u*e-n*e+n,this}shear(t,e,r){return this.clone().shearO(t,e,r)}shearO(t,e=0,r=0){const{a:n,b:i,c:s,d:o,e:a,f:h}=this;return this.a=n+i*t,this.c=s+o*t,this.e=a+h*t-r*t,this}skew(){return this.clone().skewO(...arguments)}skewO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t),t=p(t),e=p(e);const i=Math.tan(t),s=Math.tan(e),{a:o,b:a,c:h,d:u,e:c,f:l}=this;return this.a=o+a*i,this.b=a+o*s,this.c=h+u*i,this.d=u+h*s,this.e=c+l*i-n*i,this.f=l+c*s-r*s,this}skewX(t,e,r){return this.skew(t,0,e,r)}skewY(t,e,r){return this.skew(0,t,e,r)}toArray(){return[this.a,this.b,this.c,this.d,this.e,this.f]}toString(){return"matrix("+this.a+","+this.b+","+this.c+","+this.d+","+this.e+","+this.f+")"}transform(t){if(it.isMatrixLike(t))return new it(t).multiplyO(this);const e=it.formatTransforms(t),{x:r,y:n}=new rt(e.ox,e.oy).transform(this),i=(new it).translateO(e.rx,e.ry).lmultiplyO(this).translateO(-r,-n).scaleO(e.scaleX,e.scaleY).skewO(e.skewX,e.skewY).shearO(e.shear).rotateO(e.theta).translateO(r,n);if(isFinite(e.px)||isFinite(e.py)){const t=new rt(r,n).transform(i),s=isFinite(e.px)?e.px-t.x:0,o=isFinite(e.py)?e.py-t.y:0;i.translateO(s,o)}return i.translateO(e.tx,e.ty),i}translate(t,e){return this.clone().translateO(t,e)}translateO(t,e){return this.e+=t||0,this.f+=e||0,this}valueOf(){return{a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}}function st(){if(!st.nodes){const t=A().size(2,0);t.node.style.cssText=["opacity: 0","position: absolute","left: -100%","top: -100%","overflow: hidden"].join(";"),t.attr("focusable","false"),t.attr("aria-hidden","true");const e=t.path().node;st.nodes={svg:t,path:e}}if(!st.nodes.svg.node.parentNode){const t=M.document.body||M.document.documentElement;st.nodes.svg.addTo(t)}return st.nodes}function ot(t){return!(t.width||t.height||t.x||t.y)}D(it,"Matrix");class at{constructor(...t){this.init(...t)}addOffset(){return this.x+=M.window.pageXOffset,this.y+=M.window.pageYOffset,new at(this)}init(t){return t="string"==typeof t?t.split(Q).map(parseFloat):Array.isArray(t)?t:"object"==typeof t?[null!=t.left?t.left:t.x,null!=t.top?t.top:t.y,t.width,t.height]:4===arguments.length?[].slice.call(arguments):[0,0,0,0],this.x=t[0]||0,this.y=t[1]||0,this.width=this.w=t[2]||0,this.height=this.h=t[3]||0,this.x2=this.x+this.w,this.y2=this.y+this.h,this.cx=this.x+this.w/2,this.cy=this.y+this.h/2,this}isNulled(){return ot(this)}merge(t){const e=Math.min(this.x,t.x),r=Math.min(this.y,t.y),n=Math.max(this.x+this.width,t.x+t.width)-e,i=Math.max(this.y+this.height,t.y+t.height)-r;return new at(e,r,n,i)}toArray(){return[this.x,this.y,this.width,this.height]}toString(){return this.x+" "+this.y+" "+this.width+" "+this.height}transform(t){t instanceof it||(t=new it(t));let e=1/0,r=-1/0,n=1/0,i=-1/0;return[new rt(this.x,this.y),new rt(this.x2,this.y),new rt(this.x,this.y2),new rt(this.x2,this.y2)].forEach((function(s){s=s.transform(t),e=Math.min(e,s.x),r=Math.max(r,s.x),n=Math.min(n,s.y),i=Math.max(i,s.y)})),new at(e,n,r-e,i-n)}}function ht(t,e,r){let n;try{if(n=e(t.node),ot(n)&&(i=t.node)!==M.document&&!(M.document.documentElement.contains||function(t){for(;t.parentNode;)t=t.parentNode;return t===M.document}).call(M.document.documentElement,i))throw new Error("Element not in the dom")}catch(e){n=r(t)}var i;return n}c({viewbox:{viewbox(t,e,r,n){return null==t?new at(this.attr("viewBox")):this.attr("viewBox",new at(t,e,r,n))},zoom(t,e){let{width:r,height:n}=this.attr(["width","height"]);if((r||n)&&"string"!=typeof r&&"string"!=typeof n||(r=this.node.clientWidth,n=this.node.clientHeight),!r||!n)throw new Error("Impossible to get absolute width and height. Please provide an absolute width and height attribute on the zooming element");const i=this.viewbox(),s=r/i.width,o=n/i.height,a=Math.min(s,o);if(null==t)return a;let h=a/t;h===1/0&&(h=Number.MAX_SAFE_INTEGER/100),e=e||new rt(r/2/s+i.x,n/2/o+i.y);const u=new at(i).transform(new it({scale:h,origin:e}));return this.viewbox(u)}}}),D(at,"Box");class ut extends Array{constructor(t=[],...e){if(super(t,...e),"number"==typeof t)return this;this.length=0,this.push(...t)}}const ct=ut;L([ut],{each(t,...e){return"function"==typeof t?this.map(((e,r,n)=>t.call(e,e,r,n))):this.map((r=>r[t](...e)))},toArray(){return Array.prototype.concat.apply([],this)}});const lt=["toArray","constructor","each"];function dt(t,e){return new ct(f((e||M.document).querySelectorAll(t),(function(t){return E(t)})))}ut.extend=function(t){t=t.reduce(((t,e)=>(lt.includes(e)||"_"===e[0]||(e in Array.prototype&&(t["$"+e]=Array.prototype[e]),t[e]=function(...t){return this.each(e,...t)}),t)),{}),L([ut],t)};let ft=0;const pt={};function mt(t){let e=t.getEventHolder();return e===M.window&&(e=pt),e.events||(e.events={}),e.events}function gt(t){return t.getEventTarget()}function yt(t,e,r,n,i){const s=r.bind(n||t),o=A(t),a=mt(o),h=gt(o);e=Array.isArray(e)?e:e.split(Q),r._svgjsListenerId||(r._svgjsListenerId=++ft),e.forEach((function(t){const e=t.split(".")[0],n=t.split(".")[1]||"*";a[e]=a[e]||{},a[e][n]=a[e][n]||{},a[e][n][r._svgjsListenerId]=s,h.addEventListener(e,s,i||!1)}))}function wt(t,e,r,n){const i=A(t),s=mt(i),o=gt(i);("function"!=typeof r||(r=r._svgjsListenerId))&&(e=Array.isArray(e)?e:(e||"").split(Q)).forEach((function(t){const e=t&&t.split(".")[0],a=t&&t.split(".")[1];let h,u;if(r)s[e]&&s[e][a||"*"]&&(o.removeEventListener(e,s[e][a||"*"][r],n||!1),delete s[e][a||"*"][r]);else if(e&&a){if(s[e]&&s[e][a]){for(u in s[e][a])wt(o,[e,a].join("."),u);delete s[e][a]}}else if(a)for(t in s)for(h in s[t])a===h&&wt(o,[t,a].join("."));else if(e){if(s[e]){for(h in s[e])wt(o,[e,h].join("."));delete s[e]}}else{for(t in s)wt(o,t);!function(t){let e=t.getEventHolder();e===M.window&&(e=pt),e.events&&(e.events={})}(i)}}))}class bt extends O{addEventListener(){}dispatch(t,e,r){return function(t,e,r,n){const i=gt(t);return e instanceof M.window.Event||(e=new M.window.CustomEvent(e,{detail:r,cancelable:!0,...n})),i.dispatchEvent(e),e}(this,t,e,r)}dispatchEvent(t){const e=this.getEventHolder().events;if(!e)return!0;const r=e[t.type];for(const e in r)for(const n in r[e])r[e][n](t);return!t.defaultPrevented}fire(t,e,r){return this.dispatch(t,e,r),this}getEventHolder(){return this}getEventTarget(){return this}off(t,e,r){return wt(this,t,e,r),this}on(t,e,r,n){return yt(this,t,e,r,n),this}removeEventListener(){}}function xt(){}D(bt,"EventTarget");const vt={"fill-opacity":1,"stroke-opacity":1,"stroke-width":0,"stroke-linejoin":"miter","stroke-linecap":"butt",fill:"#000000",stroke:"#000000",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,"stop-opacity":1,"stop-color":"#000000","text-anchor":"start"};class _t extends Array{constructor(...t){super(...t),this.init(...t)}clone(){return new this.constructor(this)}init(t){return"number"==typeof t||(this.length=0,this.push(...this.parse(t))),this}parse(t=[]){return t instanceof Array?t:t.trim().split(Q).map(parseFloat)}toArray(){return Array.prototype.concat.apply([],this)}toSet(){return new Set(this)}toString(){return this.join(" ")}valueOf(){const t=[];return t.push(...this),t}}class St{constructor(...t){this.init(...t)}convert(t){return new St(this.value,t)}divide(t){return t=new St(t),new St(this/t,this.unit||t.unit)}init(t,e){return e=Array.isArray(t)?t[1]:e,t=Array.isArray(t)?t[0]:t,this.value=0,this.unit=e||"","number"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:"string"==typeof t?(e=t.match(F))&&(this.value=parseFloat(e[1]),"%"===e[5]?this.value/=100:"s"===e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof St&&(this.value=t.valueOf(),this.unit=t.unit),this}minus(t){return t=new St(t),new St(this-t,this.unit||t.unit)}plus(t){return t=new St(t),new St(this+t,this.unit||t.unit)}times(t){return t=new St(t),new St(this*t,this.unit||t.unit)}toArray(){return[this.value,this.unit]}toJSON(){return this.toString()}toString(){return("%"===this.unit?~~(1e8*this.value)/1e6:"s"===this.unit?this.value/1e3:this.value)+this.unit}valueOf(){return this.value}}const Mt=new Set(["fill","stroke","color","bgcolor","stop-color","flood-color","lighting-color"]),Ot=[];class Nt extends bt{constructor(t,e){super(),this.node=t,this.type=t.nodeName,e&&t!==e&&this.attr(e)}add(t,e){return(t=A(t)).removeNamespace&&this.node instanceof M.window.SVGElement&&t.removeNamespace(),null==e?this.node.appendChild(t.node):t.node!==this.node.childNodes[e]&&this.node.insertBefore(t.node,this.node.childNodes[e]),this}addTo(t,e){return A(t).put(this,e)}children(){return new ct(f(this.node.children,(function(t){return E(t)})))}clear(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return this}clone(t=!0,e=!0){this.writeDataToDom();let r=this.node.cloneNode(t);return e&&(r=I(r)),new this.constructor(r)}each(t,e){const r=this.children();let n,i;for(n=0,i=r.length;n<i;n++)t.apply(r[n],[n,r]),e&&r[n].each(t,e);return this}element(t,e){return this.put(new Nt(C(t),e))}first(){return E(this.node.firstChild)}get(t){return E(this.node.childNodes[t])}getEventHolder(){return this.node}getEventTarget(){return this.node}has(t){return this.index(t)>=0}html(t,e){return this.xml(t,e,"http://www.w3.org/1999/xhtml")}id(t){return void 0!==t||this.node.id||(this.node.id=B(this.type)),this.attr("id",t)}index(t){return[].slice.call(this.node.childNodes).indexOf(t.node)}last(){return E(this.node.lastChild)}matches(t){const e=this.node,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector||null;return r&&r.call(e,t)}parent(t){let e=this;if(!e.node.parentNode)return null;if(e=E(e.node.parentNode),!t)return e;do{if("string"==typeof t?e.matches(t):e instanceof t)return e}while(e=E(e.node.parentNode));return e}put(t,e){return t=A(t),this.add(t,e),t}putIn(t,e){return A(t).add(this,e)}remove(){return this.parent()&&this.parent().removeElement(this),this}removeElement(t){return this.node.removeChild(t.node),this}replace(t){return t=A(t),this.node.parentNode&&this.node.parentNode.replaceChild(t.node,this.node),t}round(t=2,e=null){const r=10**t,n=this.attr(e);for(const t in n)"number"==typeof n[t]&&(n[t]=Math.round(n[t]*r)/r);return this.attr(n),this}svg(t,e){return this.xml(t,e,v)}toString(){return this.id()}words(t){return this.node.textContent=t,this}wrap(t){const e=this.parent();if(!e)return this.addTo(t);const r=e.index(this);return e.put(t,r).put(this)}writeDataToDom(){return this.each((function(){this.writeDataToDom()})),this}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){e=null==e||e,this.writeDataToDom();let r=this;if(null!=t){if(r=E(r.node.cloneNode(!0)),e){const e=t(r);if(r=e||r,!1===e)return""}r.each((function(){const e=t(this),r=e||this;!1===e?this.remove():e&&this!==r&&this.replace(r)}),!0)}return e?r.node.outerHTML:r.node.innerHTML}e=null!=e&&e;const n=C("wrapper",r),i=M.document.createDocumentFragment();n.innerHTML=t;for(let t=n.children.length;t--;)i.appendChild(n.firstElementChild);const s=this.parent();return e?this.replace(i)&&s:this.add(i)}}L(Nt,{attr:function(t,e,r){if(null==t){t={},e=this.node.attributes;for(const r of e)t[r.nodeName]=$.test(r.nodeValue)?parseFloat(r.nodeValue):r.nodeValue;return t}if(t instanceof Array)return t.reduce(((t,e)=>(t[e]=this.attr(e),t)),{});if("object"==typeof t&&t.constructor===Object)for(e in t)this.attr(e,t[e]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?vt[t]:$.test(e)?parseFloat(e):e;"number"==typeof(e=Ot.reduce(((e,r)=>r(t,e,this)),e))?e=new St(e):Mt.has(t)&&et.isColor(e)?e=new et(e):e.constructor===Array&&(e=new _t(e)),"leading"===t?this.leading&&this.leading(e):"string"==typeof r?this.node.setAttributeNS(r,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!==t&&"x"!==t||this.rebuild()}return this},find:function(t){return dt(t,this.node)},findOne:function(t){return E(this.node.querySelector(t))}}),D(Nt,"Dom");class Pt extends Nt{constructor(t,e){super(t,e),this.dom={},this.node.instance=this,(t.hasAttribute("data-svgjs")||t.hasAttribute("svgjs:data"))&&this.setData(JSON.parse(t.getAttribute("data-svgjs"))??JSON.parse(t.getAttribute("svgjs:data"))??{})}center(t,e){return this.cx(t).cy(e)}cx(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)}cy(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)}defs(){const t=this.root();return t&&t.defs()}dmove(t,e){return this.dx(t).dy(e)}dx(t=0){return this.x(new St(t).plus(this.x()))}dy(t=0){return this.y(new St(t).plus(this.y()))}getEventHolder(){return this}height(t){return this.attr("height",t)}move(t,e){return this.x(t).y(e)}parents(t=this.root()){const e="string"==typeof t;e||(t=A(t));const r=new ct;let n=this;for(;(n=n.parent())&&n.node!==M.document&&"#document-fragment"!==n.nodeName&&(r.push(n),e||n.node!==t.node)&&(!e||!n.matches(t));)if(n.node===this.root().node)return null;return r}reference(t){if(!(t=this.attr(t)))return null;const e=(t+"").match(q);return e?A(e[1]):null}root(){const t=this.parent(N[P]);return t&&t.root()}setData(t){return this.dom=t,this}size(t,e){const r=g(this,t,e);return this.width(new St(r.width)).height(new St(r.height))}width(t){return this.attr("width",t)}writeDataToDom(){return x(this,this.dom),super.writeDataToDom()}x(t){return this.attr("x",t)}y(t){return this.attr("y",t)}}L(Pt,{bbox:function(){const t=ht(this,(t=>t.getBBox()),(t=>{try{const e=t.clone().addTo(st().svg).show(),r=e.node.getBBox();return e.remove(),r}catch(e){throw new Error(`Getting bbox of element "${t.node.nodeName}" is not possible: ${e.toString()}`)}}));return new at(t)},rbox:function(t){const e=ht(this,(t=>t.getBoundingClientRect()),(t=>{throw new Error(`Getting rbox of element "${t.node.nodeName}" is not possible`)})),r=new at(e);return t?r.transform(t.screenCTM().inverseO()):r.addOffset()},inside:function(t,e){const r=this.bbox();return t>r.x&&e>r.y&&t<r.x+r.width&&e<r.y+r.height},point:function(t,e){return new rt(t,e).transformO(this.screenCTM().inverseO())},ctm:function(){return new it(this.node.getCTM())},screenCTM:function(){try{if("function"==typeof this.isRoot&&!this.isRoot()){const t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new it(e)}return new it(this.node.getScreenCTM())}catch(t){return console.warn(`Cannot get CTM from SVG node ${this.node.nodeName}. Is the element rendered?`),new it}}}),D(Pt,"Element");const Ct={stroke:["color","width","opacity","linecap","linejoin","miterlimit","dasharray","dashoffset"],fill:["color","opacity","rule"],prefix:function(t,e){return"color"===e?t:t+"-"+e}};["fill","stroke"].forEach((function(t){const e={};let r;e[t]=function(e){if(void 0===e)return this.attr(t);if("string"==typeof e||e instanceof et||et.isRgb(e)||e instanceof Pt)this.attr(t,e);else for(r=Ct[t].length-1;r>=0;r--)null!=e[Ct[t][r]]&&this.attr(Ct.prefix(t,Ct[t][r]),e[Ct[t][r]]);return this},c(["Element","Runner"],e)})),c(["Element","Runner"],{matrix:function(t,e,r,n,i,s){return null==t?new it(this):this.attr("transform",new it(t,e,r,n,i,s))},rotate:function(t,e,r){return this.transform({rotate:t,ox:e,oy:r},!0)},skew:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({skew:t,ox:e,oy:r},!0):this.transform({skew:[t,e],ox:r,oy:n},!0)},shear:function(t,e,r){return this.transform({shear:t,ox:e,oy:r},!0)},scale:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({scale:t,ox:e,oy:r},!0):this.transform({scale:[t,e],ox:r,oy:n},!0)},translate:function(t,e){return this.transform({translate:[t,e]},!0)},relative:function(t,e){return this.transform({relative:[t,e]},!0)},flip:function(t="both",e="center"){return-1==="xybothtrue".indexOf(t)&&(e=t,t="both"),this.transform({flip:t,origin:e},!0)},opacity:function(t){return this.attr("opacity",t)}}),c("radius",{radius:function(t,e=t){return"radialGradient"===(this._element||this).type?this.attr("r",new St(t)):this.rx(t).ry(e)}}),c("Path",{length:function(){return this.node.getTotalLength()},pointAt:function(t){return new rt(this.node.getPointAtLength(t))}}),c(["Element","Runner"],{font:function(t,e){if("object"==typeof t){for(e in t)this.font(e,t[e]);return this}return"leading"===t?this.leading(e):"anchor"===t?this.attr("text-anchor",e):"size"===t||"family"===t||"weight"===t||"stretch"===t||"variant"===t||"style"===t?this.attr("font-"+t,e):this.attr(t,e)}}),c("Element",["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","touchstart","touchmove","touchleave","touchend","touchcancel","contextmenu","wheel","pointerdown","pointermove","pointerup","pointerleave","pointercancel"].reduce((function(t,e){return t[e]=function(t){return null===t?this.off(e):this.on(e,t),this},t}),{})),c("Element",{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(X).slice(0,-1).map((function(t){const e=t.trim().split("(");return[e[0],e[1].split(Q).map((function(t){return parseFloat(t)}))]})).reverse().reduce((function(t,e){return"matrix"===e[0]?t.lmultiply(it.fromArray(e[1])):t[e[0]].apply(t,e[1])}),new it)},toParent:function(t,e){if(this===t)return this;if(b(this.node))return this.addTo(t,e);const r=this.screenCTM(),n=t.screenCTM().inverse();return this.addTo(t,e).untransform().transform(n.multiply(r)),this},toRoot:function(t){return this.toParent(this.root(),t)},transform:function(t,e){if(null==t||"string"==typeof t){const e=new it(this).decompose();return null==t?e:e[t]}it.isMatrixLike(t)||(t={...t,origin:y(t,this)});const r=new it(!0===e?this:e||!1).transform(t);return this.attr("transform",r)}});class At extends Pt{flatten(){return this.each((function(){if(this instanceof At)return this.flatten().ungroup()})),this}ungroup(t=this.parent(),e=t.index(this)){return e=-1===e?t.children().length:e,this.each((function(r,n){return n[n.length-r-1].toParent(t,e)})),this.remove()}}D(At,"Container");class Tt extends At{constructor(t,e=t){super(T("defs",t),e)}flatten(){return this}ungroup(){return this}}D(Tt,"Defs");class Et extends Pt{}function jt(t){return this.attr("rx",t)}function Dt(t){return this.attr("ry",t)}function kt(t){return null==t?this.cx()-this.rx():this.cx(t+this.rx())}function Bt(t){return null==t?this.cy()-this.ry():this.cy(t+this.ry())}function It(t){return this.attr("cx",t)}function Lt(t){return this.attr("cy",t)}function Vt(t){return null==t?2*this.rx():this.rx(new St(t).divide(2))}function Ft(t){return null==t?2*this.ry():this.ry(new St(t).divide(2))}D(Et,"Shape");class Rt extends Et{constructor(t,e=t){super(T("ellipse",t),e)}size(t,e){const r=g(this,t,e);return this.rx(new St(r.width).divide(2)).ry(new St(r.height).divide(2))}}L(Rt,t),c("Container",{ellipse:V((function(t=0,e=t){return this.put(new Rt).size(t,e).move(0,0)}))}),D(Rt,"Ellipse");class zt extends Nt{constructor(t=M.document.createDocumentFragment()){super(t)}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){const t=new Nt(C("wrapper",r));return t.add(this.node.cloneNode(!0)),t.xml(!1,r)}return super.xml(t,!1,r)}}D(zt,"Fragment");const qt=zt;function Xt(t,e){return"radialGradient"===(this._element||this).type?this.attr({fx:new St(t),fy:new St(e)}):this.attr({x1:new St(t),y1:new St(e)})}function Yt(t,e){return"radialGradient"===(this._element||this).type?this.attr({cx:new St(t),cy:new St(e)}):this.attr({x2:new St(t),y2:new St(e)})}class Gt extends At{constructor(t,e){super(T(t+"Gradient","string"==typeof t?null:t),e)}attr(t,e,r){return"transform"===t&&(t="gradientTransform"),super.attr(t,e,r)}bbox(){return new at}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}L(Gt,e),c({Container:{gradient(...t){return this.defs().gradient(...t)}},Defs:{gradient:V((function(t,e){return this.put(new Gt(t)).update(e)}))}}),D(Gt,"Gradient");class Ht extends At{constructor(t,e=t){super(T("pattern",t),e)}attr(t,e,r){return"transform"===t&&(t="patternTransform"),super.attr(t,e,r)}bbox(){return new at}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}c({Container:{pattern(...t){return this.defs().pattern(...t)}},Defs:{pattern:V((function(t,e,r){return this.put(new Ht).update(r).attr({x:0,y:0,width:t,height:e,patternUnits:"userSpaceOnUse"})}))}}),D(Ht,"Pattern");class Ut extends Et{constructor(t,e=t){super(T("image",t),e)}load(t,e){if(!t)return this;const r=new M.window.Image;return yt(r,"load",(function(t){const n=this.parent(Ht);0===this.width()&&0===this.height()&&this.size(r.width,r.height),n instanceof Ht&&0===n.width()&&0===n.height()&&n.size(this.width(),this.height()),"function"==typeof e&&e.call(this,t)}),this),yt(r,"load error",(function(){wt(r)})),this.attr("href",r.src=t,S)}}var $t;$t=function(t,e,r){return"fill"!==t&&"stroke"!==t||W.test(e)&&(e=r.root().defs().image(e)),e instanceof Ut&&(e=r.root().defs().pattern(0,0,(t=>{t.add(e)}))),e},Ot.push($t),c({Container:{image:V((function(t,e){return this.put(new Ut).size(0,0).load(t,e)}))}}),D(Ut,"Image");class Wt extends _t{bbox(){let t=-1/0,e=-1/0,r=1/0,n=1/0;return this.forEach((function(i){t=Math.max(i[0],t),e=Math.max(i[1],e),r=Math.min(i[0],r),n=Math.min(i[1],n)})),new at(r,n,t-r,e-n)}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r=this.length-1;r>=0;r--)this[r]=[this[r][0]+t,this[r][1]+e];return this}parse(t=[0,0]){const e=[];(t=t instanceof Array?Array.prototype.concat.apply([],t):t.trim().split(Q).map(parseFloat)).length%2!=0&&t.pop();for(let r=0,n=t.length;r<n;r+=2)e.push([t[r],t[r+1]]);return e}size(t,e){let r;const n=this.bbox();for(r=this.length-1;r>=0;r--)n.width&&(this[r][0]=(this[r][0]-n.x)*t/n.width+n.x),n.height&&(this[r][1]=(this[r][1]-n.y)*e/n.height+n.y);return this}toLine(){return{x1:this[0][0],y1:this[0][1],x2:this[1][0],y2:this[1][1]}}toString(){const t=[];for(let e=0,r=this.length;e<r;e++)t.push(this[e].join(","));return t.join(" ")}transform(t){return this.clone().transformO(t)}transformO(t){it.isMatrixLike(t)||(t=new it(t));for(let e=this.length;e--;){const[r,n]=this[e];this[e][0]=t.a*r+t.c*n+t.e,this[e][1]=t.b*r+t.d*n+t.f}return this}}const Qt=Wt;function Jt(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}function Zt(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}function Kt(t){const e=this.bbox();return null==t?e.width:this.size(t,e.height)}function te(t){const e=this.bbox();return null==t?e.height:this.size(e.width,t)}class ee extends Et{constructor(t,e=t){super(T("line",t),e)}array(){return new Wt([[this.attr("x1"),this.attr("y1")],[this.attr("x2"),this.attr("y2")]])}move(t,e){return this.attr(this.array().move(t,e).toLine())}plot(t,e,r,n){return null==t?this.array():(t=void 0!==e?{x1:t,y1:e,x2:r,y2:n}:new Wt(t).toLine(),this.attr(t))}size(t,e){const r=g(this,t,e);return this.attr(this.array().size(r.width,r.height).toLine())}}L(ee,i),c({Container:{line:V((function(...t){return ee.prototype.plot.apply(this.put(new ee),null!=t[0]?t:[0,0,0,0])}))}}),D(ee,"Line");class re extends At{constructor(t,e=t){super(T("marker",t),e)}height(t){return this.attr("markerHeight",t)}orient(t){return this.attr("orient",t)}ref(t,e){return this.attr("refX",t).attr("refY",e)}toString(){return"url(#"+this.id()+")"}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}width(t){return this.attr("markerWidth",t)}}function ne(t,e){return function(r){return null==r?this[t]:(this[t]=r,e&&e.call(this),this)}}c({Container:{marker(...t){return this.defs().marker(...t)}},Defs:{marker:V((function(t,e,r){return this.put(new re).size(t,e).ref(t/2,e/2).viewbox(0,0,t,e).attr("orient","auto").update(r)}))},marker:{marker(t,e,r,n){let i=["marker"];return"all"!==t&&i.push(t),i=i.join("-"),t=arguments[1]instanceof re?arguments[1]:this.defs().marker(e,r,n),this.attr(i,t)}}}),D(re,"Marker");const ie={"-":function(t){return t},"<>":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)},bezier:function(t,e,r,n){return function(i){return i<0?t>0?e/t*i:r>0?n/r*i:0:i>1?r<1?(1-n)/(1-r)*i+(n-r)/(1-r):t<1?(1-e)/(1-t)*i+(e-t)/(1-t):1:3*i*(1-i)**2*e+3*i**2*(1-i)*n+i**3}},steps:function(t,e="end"){e=e.split("-").reverse()[0];let r=t;return"none"===e?--r:"both"===e&&++r,(n,i=!1)=>{let s=Math.floor(n*t);const o=n*s%1==0;return"start"!==e&&"both"!==e||++s,i&&o&&--s,n>=0&&s<0&&(s=0),n<=1&&s>r&&(s=r),s/r}}};class se{done(){return!1}}class oe extends se{constructor(t=">"){super(),this.ease=ie[t]||t}step(t,e,r){return"number"!=typeof t?r<1?t:e:t+(e-t)*this.ease(r)}}class ae extends se{constructor(t){super(),this.stepper=t}done(t){return t.done}step(t,e,r,n){return this.stepper(t,e,r,n)}}function he(){const t=(this._duration||500)/1e3,e=this._overshoot||0,r=Math.PI,n=Math.log(e/100+1e-10),i=-n/Math.sqrt(r*r+n*n),s=3.9/(i*t);this.d=2*i*s,this.k=s*s}L(class extends ae{constructor(t=500,e=0){super(),this.duration(t).overshoot(e)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;r>100&&(r=16),r/=1e3;const i=n.velocity||0,s=-this.d*i-this.k*(t-e),o=t+i*r+s*r*r/2;return n.velocity=i+s*r,n.done=Math.abs(e-o)+Math.abs(i)<.002,n.done?e:o}},{duration:ne("_duration",he),overshoot:ne("_overshoot",he)}),L(class extends ae{constructor(t=.1,e=.01,r=0,n=1e3){super(),this.p(t).i(e).d(r).windup(n)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;const i=e-t;let s=(n.integral||0)+i*r;const o=(i-(n.error||0))/r,a=this._windup;return!1!==a&&(s=Math.max(-a,Math.min(s,a))),n.error=i,n.integral=s,n.done=Math.abs(i)<.001,n.done?e:t+(this.P*i+this.I*s+this.D*o)}},{windup:ne("_windup"),p:ne("P"),i:ne("I"),d:ne("D")});const ue={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0},ce={M:function(t,e,r){return e.x=r.x=t[0],e.y=r.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},S:function(t,e){return e.x=t[2],e.y=t[3],["S",t[0],t[1],t[2],t[3]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},T:function(t,e){return e.x=t[0],e.y=t[1],["T",t[0],t[1]]},Z:function(t,e,r){return e.x=r.x,e.y=r.y,["Z"]},A:function(t,e){return e.x=t[5],e.y=t[6],["A",t[0],t[1],t[2],t[3],t[4],t[5],t[6]]}},le="mlhvqtcsaz".split("");for(let t=0,e=le.length;t<e;++t)ce[le[t]]=function(t){return function(e,r,n){if("H"===t)e[0]=e[0]+r.x;else if("V"===t)e[0]=e[0]+r.y;else if("A"===t)e[5]=e[5]+r.x,e[6]=e[6]+r.y;else for(let t=0,n=e.length;t<n;++t)e[t]=e[t]+(t%2?r.y:r.x);return ce[t](e,r,n)}}(le[t].toUpperCase());function de(t){return t.segment.length&&t.segment.length-1===ue[t.segment[0].toUpperCase()]}function fe(t,e){t.inNumber&&pe(t,!1);const r=J.test(e);if(r)t.segment=[e];else{const e=t.lastCommand,r=e.toLowerCase(),n=e===r;t.segment=["m"===r?n?"l":"L":e]}return t.inSegment=!0,t.lastCommand=t.segment[0],r}function pe(t,e){if(!t.inNumber)throw new Error("Parser Error");t.number&&t.segment.push(parseFloat(t.number)),t.inNumber=e,t.number="",t.pointSeen=!1,t.hasExponent=!1,de(t)&&me(t)}function me(t){t.inSegment=!1,t.absolute&&(t.segment=function(t){const e=t.segment[0];return ce[e](t.segment.slice(1),t.p,t.p0)}(t)),t.segments.push(t.segment)}function ge(t){if(!t.segment.length)return!1;const e="A"===t.segment[0].toUpperCase(),r=t.segment.length;return e&&(4===r||5===r)}function ye(t){return"E"===t.lastToken.toUpperCase()}const we=new Set([" ",",","\t","\n","\r","\f"]);class be extends _t{bbox(){return st().path.setAttribute("d",this.toString()),new at(st.nodes.path.getBBox())}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r,n=this.length-1;n>=0;n--)r=this[n][0],"M"===r||"L"===r||"T"===r?(this[n][1]+=t,this[n][2]+=e):"H"===r?this[n][1]+=t:"V"===r?this[n][1]+=e:"C"===r||"S"===r||"Q"===r?(this[n][1]+=t,this[n][2]+=e,this[n][3]+=t,this[n][4]+=e,"C"===r&&(this[n][5]+=t,this[n][6]+=e)):"A"===r&&(this[n][6]+=t,this[n][7]+=e);return this}parse(t="M0 0"){return Array.isArray(t)&&(t=Array.prototype.concat.apply([],t).toString()),function(t,e=!0){let r=0,n="";const i={segment:[],inNumber:!1,number:"",lastToken:"",inSegment:!1,segments:[],pointSeen:!1,hasExponent:!1,absolute:e,p0:new rt,p:new rt};for(;i.lastToken=n,n=t.charAt(r++);)if(i.inSegment||!fe(i,n))if("."!==n)if(isNaN(parseInt(n)))if(we.has(n))i.inNumber&&pe(i,!1);else if("-"!==n&&"+"!==n)if("E"!==n.toUpperCase()){if(J.test(n)){if(i.inNumber)pe(i,!1);else{if(!de(i))throw new Error("parser Error");me(i)}--r}}else i.number+=n,i.hasExponent=!0;else{if(i.inNumber&&!ye(i)){pe(i,!1),--r;continue}i.number+=n,i.inNumber=!0}else{if("0"===i.number||ge(i)){i.inNumber=!0,i.number=n,pe(i,!0);continue}i.inNumber=!0,i.number+=n}else{if(i.pointSeen||i.hasExponent){pe(i,!1),--r;continue}i.inNumber=!0,i.pointSeen=!0,i.number+=n}return i.inNumber&&pe(i,!1),i.inSegment&&de(i)&&me(i),i.segments}(t)}size(t,e){const r=this.bbox();let n,i;for(r.width=0===r.width?1:r.width,r.height=0===r.height?1:r.height,n=this.length-1;n>=0;n--)i=this[n][0],"M"===i||"L"===i||"T"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y):"H"===i?this[n][1]=(this[n][1]-r.x)*t/r.width+r.x:"V"===i?this[n][1]=(this[n][1]-r.y)*e/r.height+r.y:"C"===i||"S"===i||"Q"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y,this[n][3]=(this[n][3]-r.x)*t/r.width+r.x,this[n][4]=(this[n][4]-r.y)*e/r.height+r.y,"C"===i&&(this[n][5]=(this[n][5]-r.x)*t/r.width+r.x,this[n][6]=(this[n][6]-r.y)*e/r.height+r.y)):"A"===i&&(this[n][1]=this[n][1]*t/r.width,this[n][2]=this[n][2]*e/r.height,this[n][6]=(this[n][6]-r.x)*t/r.width+r.x,this[n][7]=(this[n][7]-r.y)*e/r.height+r.y);return this}toString(){return function(t){let e="";for(let r=0,n=t.length;r<n;r++)e+=t[r][0],null!=t[r][1]&&(e+=t[r][1],null!=t[r][2]&&(e+=" ",e+=t[r][2],null!=t[r][3]&&(e+=" ",e+=t[r][3],e+=" ",e+=t[r][4],null!=t[r][5]&&(e+=" ",e+=t[r][5],e+=" ",e+=t[r][6],null!=t[r][7]&&(e+=" ",e+=t[r][7])))));return e+" "}(this)}}const xe=t=>{const e=typeof t;return"number"===e?St:"string"===e?et.isColor(t)?et:Q.test(t)?J.test(t)?be:_t:F.test(t)?St:_e:Ne.indexOf(t.constructor)>-1?t.constructor:Array.isArray(t)?_t:"object"===e?Oe:_e};class ve{constructor(t){this._stepper=t||new oe("-"),this._from=null,this._to=null,this._type=null,this._context=null,this._morphObj=null}at(t){return this._morphObj.morph(this._from,this._to,t,this._stepper,this._context)}done(){return this._context.map(this._stepper.done).reduce((function(t,e){return t&&e}),!0)}from(t){return null==t?this._from:(this._from=this._set(t),this)}stepper(t){return null==t?this._stepper:(this._stepper=t,this)}to(t){return null==t?this._to:(this._to=this._set(t),this)}type(t){return null==t?this._type:(this._type=t,this)}_set(t){this._type||this.type(xe(t));let e=new this._type(t);return this._type===et&&(e=this._to?e[this._to[4]]():this._from?e[this._from[4]]():e),this._type===Oe&&(e=this._to?e.align(this._to):this._from?e.align(this._from):e),e=e.toConsumable(),this._morphObj=this._morphObj||new this._type,this._context=this._context||Array.apply(null,Array(e.length)).map(Object).map((function(t){return t.done=!0,t})),e}}class _e{constructor(...t){this.init(...t)}init(t){return t=Array.isArray(t)?t[0]:t,this.value=t,this}toArray(){return[this.value]}valueOf(){return this.value}}class Se{constructor(...t){this.init(...t)}init(t){return Array.isArray(t)&&(t={scaleX:t[0],scaleY:t[1],shear:t[2],rotate:t[3],translateX:t[4],translateY:t[5],originX:t[6],originY:t[7]}),Object.assign(this,Se.defaults,t),this}toArray(){const t=this;return[t.scaleX,t.scaleY,t.shear,t.rotate,t.translateX,t.translateY,t.originX,t.originY]}}Se.defaults={scaleX:1,scaleY:1,shear:0,rotate:0,translateX:0,translateY:0,originX:0,originY:0};const Me=(t,e)=>t[0]<e[0]?-1:t[0]>e[0]?1:0;class Oe{constructor(...t){this.init(...t)}align(t){const e=this.values;for(let r=0,n=e.length;r<n;++r){if(e[r+1]===t[r+1]){if(e[r+1]===et&&t[r+7]!==e[r+7]){const e=t[r+7],n=new et(this.values.splice(r+3,5))[e]().toArray();this.values.splice(r+3,0,...n)}r+=e[r+2]+2;continue}if(!t[r+1])return this;const n=(new t[r+1]).toArray(),i=e[r+2]+3;e.splice(r,i,t[r],t[r+1],t[r+2],...n),r+=e[r+2]+2}return this}init(t){if(this.values=[],Array.isArray(t))return void(this.values=t.slice());t=t||{};const e=[];for(const r in t){const n=xe(t[r]),i=new n(t[r]).toArray();e.push([r,n,i.length,...i])}return e.sort(Me),this.values=e.reduce(((t,e)=>t.concat(e)),[]),this}toArray(){return this.values}valueOf(){const t={},e=this.values;for(;e.length;){const r=e.shift(),n=e.shift(),i=e.shift(),s=e.splice(0,i);t[r]=new n(s)}return t}}const Ne=[_e,Se,Oe];class Pe extends Et{constructor(t,e=t){super(T("path",t),e)}array(){return this._array||(this._array=new be(this.attr("d")))}clear(){return delete this._array,this}height(t){return null==t?this.bbox().height:this.size(this.bbox().width,t)}move(t,e){return this.attr("d",this.array().move(t,e))}plot(t){return null==t?this.array():this.clear().attr("d","string"==typeof t?t:this._array=new be(t))}size(t,e){const r=g(this,t,e);return this.attr("d",this.array().size(r.width,r.height))}width(t){return null==t?this.bbox().width:this.size(t,this.bbox().height)}x(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}y(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}}function Ce(){return this._array||(this._array=new Wt(this.attr("points")))}function Ae(){return delete this._array,this}function Te(t,e){return this.attr("points",this.array().move(t,e))}function Ee(t){return null==t?this.array():this.clear().attr("points","string"==typeof t?t:this._array=new Wt(t))}function je(t,e){const r=g(this,t,e);return this.attr("points",this.array().size(r.width,r.height))}Pe.prototype.MorphArray=be,c({Container:{path:V((function(t){return this.put(new Pe).plot(t||new be)}))}}),D(Pe,"Path");class De extends Et{constructor(t,e=t){super(T("polygon",t),e)}}c({Container:{polygon:V((function(t){return this.put(new De).plot(t||new Wt)}))}}),L(De,i),L(De,s),D(De,"Polygon");class ke extends Et{constructor(t,e=t){super(T("polyline",t),e)}}c({Container:{polyline:V((function(t){return this.put(new ke).plot(t||new Wt)}))}}),L(ke,i),L(ke,s),D(ke,"Polyline");class Be extends Et{constructor(t,e=t){super(T("rect",t),e)}}L(Be,{rx:jt,ry:Dt}),c({Container:{rect:V((function(t,e){return this.put(new Be).size(t,e)}))}}),D(Be,"Rect");class Ie{constructor(){this._first=null,this._last=null}first(){return this._first&&this._first.value}last(){return this._last&&this._last.value}push(t){const e=void 0!==t.next?t:{value:t,next:null,prev:null};return this._last?(e.prev=this._last,this._last.next=e,this._last=e):(this._last=e,this._first=e),e}remove(t){t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t===this._last&&(this._last=t.prev),t===this._first&&(this._first=t.next),t.prev=null,t.next=null}shift(){const t=this._first;return t?(this._first=t.next,this._first&&(this._first.prev=null),this._last=this._first?this._last:null,t.value):null}}const Le={nextDraw:null,frames:new Ie,timeouts:new Ie,immediates:new Ie,timer:()=>M.window.performance||M.window.Date,transforms:[],frame(t){const e=Le.frames.push({run:t});return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),e},timeout(t,e){e=e||0;const r=Le.timer().now()+e,n=Le.timeouts.push({run:t,time:r});return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),n},immediate(t){const e=Le.immediates.push(t);return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),e},cancelFrame(t){null!=t&&Le.frames.remove(t)},clearTimeout(t){null!=t&&Le.timeouts.remove(t)},cancelImmediate(t){null!=t&&Le.immediates.remove(t)},_draw(t){let e=null;const r=Le.timeouts.last();for(;(e=Le.timeouts.shift())&&(t>=e.time?e.run():Le.timeouts.push(e),e!==r););let n=null;const i=Le.frames.last();for(;n!==i&&(n=Le.frames.shift());)n.run(t);let s=null;for(;s=Le.immediates.shift();)s();Le.nextDraw=Le.timeouts.first()||Le.frames.first()?M.window.requestAnimationFrame(Le._draw):null}},Ve=Le,Fe=function(t){const e=t.start,r=t.runner.duration();return{start:e,duration:r,end:e+r,runner:t.runner}},Re=function(){const t=M.window;return(t.performance||t.Date).now()};class ze extends bt{constructor(t=Re){super(),this._timeSource=t,this.terminate()}active(){return!!this._nextFrame}finish(){return this.time(this.getEndTimeOfTimeline()+1),this.pause()}getEndTime(){const t=this.getLastRunnerInfo(),e=t?t.runner.duration():0;return(t?t.start:this._time)+e}getEndTimeOfTimeline(){const t=this._runners.map((t=>t.start+t.runner.duration()));return Math.max(0,...t)}getLastRunnerInfo(){return this.getRunnerInfoById(this._lastRunnerId)}getRunnerInfoById(t){return this._runners[this._runnerIds.indexOf(t)]||null}pause(){return this._paused=!0,this._continue()}persist(t){return null==t?this._persist:(this._persist=t,this)}play(){return this._paused=!1,this.updateTime()._continue()}reverse(t){const e=this.speed();if(null==t)return this.speed(-e);const r=Math.abs(e);return this.speed(t?-r:r)}schedule(t,e,r){if(null==t)return this._runners.map(Fe);let n=0;const i=this.getEndTime();if(e=e||0,null==r||"last"===r||"after"===r)n=i;else if("absolute"===r||"start"===r)n=e,e=0;else if("now"===r)n=this._time;else if("relative"===r){const r=this.getRunnerInfoById(t.id);r&&(n=r.start+e,e=0)}else{if("with-last"!==r)throw new Error('Invalid value for the "when" parameter');{const t=this.getLastRunnerInfo();n=t?t.start:this._time}}t.unschedule(),t.timeline(this);const s=t.persist(),o={persist:null===s?this._persist:s,start:n+e,runner:t};return this._lastRunnerId=t.id,this._runners.push(o),this._runners.sort(((t,e)=>t.start-e.start)),this._runnerIds=this._runners.map((t=>t.runner.id)),this.updateTime()._continue(),this}seek(t){return this.time(this._time+t)}source(t){return null==t?this._timeSource:(this._timeSource=t,this)}speed(t){return null==t?this._speed:(this._speed=t,this)}stop(){return this.time(0),this.pause()}time(t){return null==t?this._time:(this._time=t,this._continue(!0))}unschedule(t){const e=this._runnerIds.indexOf(t.id);return e<0||(this._runners.splice(e,1),this._runnerIds.splice(e,1),t.timeline(null)),this}updateTime(){return this.active()||(this._lastSourceTime=this._timeSource()),this}_continue(t=!1){return Ve.cancelFrame(this._nextFrame),this._nextFrame=null,t?this._stepImmediate():(this._paused||(this._nextFrame=Ve.frame(this._step)),this)}_stepFn(t=!1){const e=this._timeSource();let r=e-this._lastSourceTime;t&&(r=0);const n=this._speed*r+(this._time-this._lastStepTime);this._lastSourceTime=e,t||(this._time+=n,this._time=this._time<0?0:this._time),this._lastStepTime=this._time,this.fire("time",this._time);for(let t=this._runners.length;t--;){const e=this._runners[t],r=e.runner;this._time-e.start<=0&&r.reset()}let i=!1;for(let t=0,e=this._runners.length;t<e;t++){const r=this._runners[t],s=r.runner;let o=n;const a=this._time-r.start;a<=0?i=!0:(a<o&&(o=a),s.active()&&(s.step(o).done?!0!==r.persist&&s.duration()-s.time()+this._time+r.persist<this._time&&(s.unschedule(),--t,--e):i=!0))}return i&&!(this._speed<0&&0===this._time)||this._runnerIds.length&&this._speed<0&&this._time>0?this._continue():(this.pause(),this.fire("finished")),this}terminate(){this._startTime=0,this._speed=1,this._persist=0,this._nextFrame=null,this._paused=!0,this._runners=[],this._runnerIds=[],this._lastRunnerId=-1,this._time=0,this._lastSourceTime=0,this._lastStepTime=0,this._step=this._stepFn.bind(this,!1),this._stepImmediate=this._stepFn.bind(this,!0)}}c({Element:{timeline:function(t){return null==t?(this._timeline=this._timeline||new ze,this._timeline):(this._timeline=t,this)}}});class qe extends bt{constructor(t){super(),this.id=qe.id++,t="function"==typeof(t=null==t?400:t)?new ae(t):t,this._element=null,this._timeline=null,this.done=!1,this._queue=[],this._duration="number"==typeof t&&t,this._isDeclarative=t instanceof ae,this._stepper=this._isDeclarative?t:new oe,this._history={},this.enabled=!0,this._time=0,this._lastTime=0,this._reseted=!0,this.transforms=new it,this.transformId=1,this._haveReversed=!1,this._reverse=!1,this._loopsDone=0,this._swing=!1,this._wait=0,this._times=1,this._frameId=null,this._persist=!!this._isDeclarative||null}static sanitise(t,e,r){let n=1,i=!1,s=0;return e=e??0,r=r||"last","object"!=typeof(t=t??400)||t instanceof se||(e=t.delay??e,r=t.when??r,i=t.swing||i,n=t.times??n,s=t.wait??s,t=t.duration??400),{duration:t,delay:e,swing:i,times:n,wait:s,when:r}}active(t){return null==t?this.enabled:(this.enabled=t,this)}addTransform(t){return this.transforms.lmultiplyO(t),this}after(t){return this.on("finished",t)}animate(t,e,r){const n=qe.sanitise(t,e,r),i=new qe(n.duration);return this._timeline&&i.timeline(this._timeline),this._element&&i.element(this._element),i.loop(n).schedule(n.delay,n.when)}clearTransform(){return this.transforms=new it,this}clearTransformsFromQueue(){this.done&&this._timeline&&this._timeline._runnerIds.includes(this.id)||(this._queue=this._queue.filter((t=>!t.isTransform)))}delay(t){return this.animate(0,t)}duration(){return this._times*(this._wait+this._duration)-this._wait}during(t){return this.queue(null,t)}ease(t){return this._stepper=new oe(t),this}element(t){return null==t?this._element:(this._element=t,t._prepareRunner(),this)}finish(){return this.step(1/0)}loop(t,e,r){return"object"==typeof t&&(e=t.swing,r=t.wait,t=t.times),this._times=t||1/0,this._swing=e||!1,this._wait=r||0,!0===this._times&&(this._times=1/0),this}loops(t){const e=this._duration+this._wait;if(null==t){const t=Math.floor(this._time/e),r=(this._time-t*e)/this._duration;return Math.min(t+r,this._times)}const r=t%1,n=e*Math.floor(t)+this._duration*r;return this.time(n)}persist(t){return null==t?this._persist:(this._persist=t,this)}position(t){const e=this._time,r=this._duration,n=this._wait,i=this._times,s=this._swing,o=this._reverse;let a;if(null==t){const t=function(t){const e=s*Math.floor(t%(2*(n+r))/(n+r)),i=e&&!o||!e&&o,a=Math.pow(-1,i)*(t%(n+r))/r+i;return Math.max(Math.min(a,1),0)},h=i*(n+r)-n;return a=e<=0?Math.round(t(1e-5)):e<h?t(e):Math.round(t(h-1e-5)),a}const h=Math.floor(this.loops()),u=s&&h%2==0;return a=h+(u&&!o||o&&u?t:1-t),this.loops(a)}progress(t){return null==t?Math.min(1,this._time/this.duration()):this.time(t*this.duration())}queue(t,e,r,n){return this._queue.push({initialiser:t||xt,runner:e||xt,retarget:r,isTransform:n,initialised:!1,finished:!1}),this.timeline()&&this.timeline()._continue(),this}reset(){return this._reseted||(this.time(0),this._reseted=!0),this}reverse(t){return this._reverse=null==t?!this._reverse:t,this}schedule(t,e,r){if(t instanceof ze||(r=e,e=t,t=this.timeline()),!t)throw Error("Runner cannot be scheduled without timeline");return t.schedule(this,e,r),this}step(t){if(!this.enabled)return this;t=null==t?16:t,this._time+=t;const e=this.position(),r=this._lastPosition!==e&&this._time>=0;this._lastPosition=e;const n=this.duration(),i=this._lastTime<=0&&this._time>0,s=this._lastTime<n&&this._time>=n;this._lastTime=this._time,i&&this.fire("start",this);const o=this._isDeclarative;this.done=!o&&!s&&this._time>=n,this._reseted=!1;let a=!1;return(r||o)&&(this._initialise(r),this.transforms=new it,a=this._run(o?t:e),this.fire("step",this)),this.done=this.done||a&&o,s&&this.fire("finished",this),this}time(t){if(null==t)return this._time;const e=t-this._time;return this.step(e),this}timeline(t){return void 0===t?this._timeline:(this._timeline=t,this)}unschedule(){const t=this.timeline();return t&&t.unschedule(this),this}_initialise(t){if(t||this._isDeclarative)for(let e=0,r=this._queue.length;e<r;++e){const r=this._queue[e],n=this._isDeclarative||!r.initialised&&t;t=!r.finished,n&&t&&(r.initialiser.call(this),r.initialised=!0)}}_rememberMorpher(t,e){if(this._history[t]={morpher:e,caller:this._queue[this._queue.length-1]},this._isDeclarative){const t=this.timeline();t&&t.play()}}_run(t){let e=!0;for(let r=0,n=this._queue.length;r<n;++r){const n=this._queue[r],i=n.runner.call(this,t);n.finished=n.finished||!0===i,e=e&&n.finished}return e}_tryRetarget(t,e,r){if(this._history[t]){if(!this._history[t].caller.initialised){const e=this._queue.indexOf(this._history[t].caller);return this._queue.splice(e,1),!1}this._history[t].caller.retarget?this._history[t].caller.retarget.call(this,e,r):this._history[t].morpher.to(e),this._history[t].caller.finished=!1;const n=this.timeline();return n&&n.play(),!0}return!1}}qe.id=0;class Xe{constructor(t=new it,e=-1,r=!0){this.transforms=t,this.id=e,this.done=r}clearTransformsFromQueue(){}}L([qe,Xe],{mergeWith(t){return new Xe(t.transforms.lmultiply(this.transforms),t.id)}});const Ye=(t,e)=>t.lmultiplyO(e),Ge=t=>t.transforms;function He(){const t=this._transformationRunners.runners.map(Ge).reduce(Ye,new it);this.transform(t),this._transformationRunners.merge(),1===this._transformationRunners.length()&&(this._frameId=null)}class Ue{constructor(){this.runners=[],this.ids=[]}add(t){if(this.runners.includes(t))return;const e=t.id+1;return this.runners.push(t),this.ids.push(e),this}clearBefore(t){const e=this.ids.indexOf(t+1)||1;return this.ids.splice(0,e,0),this.runners.splice(0,e,new Xe).forEach((t=>t.clearTransformsFromQueue())),this}edit(t,e){const r=this.ids.indexOf(t+1);return this.ids.splice(r,1,t+1),this.runners.splice(r,1,e),this}getByID(t){return this.runners[this.ids.indexOf(t+1)]}length(){return this.ids.length}merge(){let t=null;for(let e=0;e<this.runners.length;++e){const r=this.runners[e];if(!(t&&r.done&&t.done)||r._timeline&&r._timeline._runnerIds.includes(r.id)||t._timeline&&t._timeline._runnerIds.includes(t.id))t=r;else{this.remove(r.id);const n=r.mergeWith(t);this.edit(t.id,n),t=n,--e}}return this}remove(t){const e=this.ids.indexOf(t+1);return this.ids.splice(e,1),this.runners.splice(e,1),this}}c({Element:{animate(t,e,r){const n=qe.sanitise(t,e,r),i=this.timeline();return new qe(n.duration).loop(n).element(this).timeline(i.play()).schedule(n.delay,n.when)},delay(t,e){return this.animate(0,t,e)},_clearTransformRunnersBefore(t){this._transformationRunners.clearBefore(t.id)},_currentTransform(t){return this._transformationRunners.runners.filter((e=>e.id<=t.id)).map(Ge).reduce(Ye,new it)},_addRunner(t){this._transformationRunners.add(t),Ve.cancelImmediate(this._frameId),this._frameId=Ve.immediate(He.bind(this))},_prepareRunner(){null==this._frameId&&(this._transformationRunners=(new Ue).add(new Xe(new it(this))))}}}),L(qe,{attr(t,e){return this.styleAttr("attr",t,e)},css(t,e){return this.styleAttr("css",t,e)},styleAttr(t,e,r){if("string"==typeof e)return this.styleAttr(t,{[e]:r});let n=e;if(this._tryRetarget(t,n))return this;let i=new ve(this._stepper).to(n),s=Object.keys(n);return this.queue((function(){i=i.from(this.element()[t](s))}),(function(e){return this.element()[t](i.at(e).valueOf()),i.done()}),(function(e){const r=Object.keys(e),o=(a=s,r.filter((t=>!a.includes(t))));var a;if(o.length){const e=this.element()[t](o),r=new Oe(i.from()).valueOf();Object.assign(r,e),i.from(r)}const h=new Oe(i.to()).valueOf();Object.assign(h,e),i.to(h),s=r,n=e})),this._rememberMorpher(t,i),this},zoom(t,e){if(this._tryRetarget("zoom",t,e))return this;let r=new ve(this._stepper).to(new St(t));return this.queue((function(){r=r.from(this.element().zoom())}),(function(t){return this.element().zoom(r.at(t),e),r.done()}),(function(t,n){e=n,r.to(t)})),this._rememberMorpher("zoom",r),this},transform(t,e,r){if(e=t.relative||e,this._isDeclarative&&!e&&this._tryRetarget("transform",t))return this;const n=it.isMatrixLike(t);r=null!=t.affine?t.affine:null!=r?r:!n;const i=new ve(this._stepper).type(r?Se:it);let s,o,a,h,u;return this.queue((function(){o=o||this.element(),s=s||y(t,o),u=new it(e?void 0:o),o._addRunner(this),e||o._clearTransformRunnersBefore(this)}),(function(c){e||this.clearTransform();const{x:l,y:d}=new rt(s).transform(o._currentTransform(this));let f=new it({...t,origin:[l,d]}),p=this._isDeclarative&&a?a:u;if(r){f=f.decompose(l,d),p=p.decompose(l,d);const t=f.rotate,e=p.rotate,r=[t-360,t,t+360],n=r.map((t=>Math.abs(t-e))),i=Math.min(...n),s=n.indexOf(i);f.rotate=r[s]}e&&(n||(f.rotate=t.rotate||0),this._isDeclarative&&h&&(p.rotate=h)),i.from(p),i.to(f);const m=i.at(c);return h=m.rotate,a=new it(m),this.addTransform(a),o._addRunner(this),i.done()}),(function(e){(e.origin||"center").toString()!==(t.origin||"center").toString()&&(s=y(e,o)),t={...e,origin:s}}),!0),this._isDeclarative&&this._rememberMorpher("transform",i),this},x(t){return this._queueNumber("x",t)},y(t){return this._queueNumber("y",t)},ax(t){return this._queueNumber("ax",t)},ay(t){return this._queueNumber("ay",t)},dx(t=0){return this._queueNumberDelta("x",t)},dy(t=0){return this._queueNumberDelta("y",t)},dmove(t,e){return this.dx(t).dy(e)},_queueNumberDelta(t,e){if(e=new St(e),this._tryRetarget(t,e))return this;const r=new ve(this._stepper).to(e);let n=null;return this.queue((function(){n=this.element()[t](),r.from(n),r.to(n+e)}),(function(e){return this.element()[t](r.at(e)),r.done()}),(function(t){r.to(n+new St(t))})),this._rememberMorpher(t,r),this},_queueObject(t,e){if(this._tryRetarget(t,e))return this;const r=new ve(this._stepper).to(e);return this.queue((function(){r.from(this.element()[t]())}),(function(e){return this.element()[t](r.at(e)),r.done()})),this._rememberMorpher(t,r),this},_queueNumber(t,e){return this._queueObject(t,new St(e))},cx(t){return this._queueNumber("cx",t)},cy(t){return this._queueNumber("cy",t)},move(t,e){return this.x(t).y(e)},amove(t,e){return this.ax(t).ay(e)},center(t,e){return this.cx(t).cy(e)},size(t,e){let r;return t&&e||(r=this._element.bbox()),t||(t=r.width/r.height*e),e||(e=r.height/r.width*t),this.width(t).height(e)},width(t){return this._queueNumber("width",t)},height(t){return this._queueNumber("height",t)},plot(t,e,r,n){if(4===arguments.length)return this.plot([t,e,r,n]);if(this._tryRetarget("plot",t))return this;const i=new ve(this._stepper).type(this._element.MorphArray).to(t);return this.queue((function(){i.from(this._element.array())}),(function(t){return this._element.plot(i.at(t)),i.done()})),this._rememberMorpher("plot",i),this},leading(t){return this._queueNumber("leading",t)},viewbox(t,e,r,n){return this._queueObject("viewbox",new at(t,e,r,n))},update(t){return"object"!=typeof t?this.update({offset:arguments[0],color:arguments[1],opacity:arguments[2]}):(null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",t.offset),this)}}),L(qe,{rx:jt,ry:Dt,from:Xt,to:Yt}),D(qe,"Runner");class $e extends At{constructor(t,e=t){super(T("svg",t),e),this.namespace()}defs(){return this.isRoot()?E(this.node.querySelector("defs"))||this.put(new Tt):this.root().defs()}isRoot(){return!this.node.parentNode||!(this.node.parentNode instanceof M.window.SVGElement)&&"#document-fragment"!==this.node.parentNode.nodeName}namespace(){return this.isRoot()?this.attr({xmlns:v,version:"1.1"}).attr("xmlns:xlink",S,_):this.root().namespace()}removeNamespace(){return this.attr({xmlns:null,version:null}).attr("xmlns:xlink",null,_).attr("xmlns:svgjs",null,_)}root(){return this.isRoot()?this:super.root()}}c({Container:{nested:V((function(){return this.put(new $e)}))}}),D($e,"Svg",!0);class We extends At{constructor(t,e=t){super(T("symbol",t),e)}}function Qe(t){return!1===this._build&&this.clear(),this.node.appendChild(M.document.createTextNode(t)),this}function Je(){return this.node.getComputedTextLength()}function Ze(t,e=this.bbox()){return null==t?e.x:this.attr("x",this.attr("x")+t-e.x)}function Ke(t,e=this.bbox()){return null==t?e.y:this.attr("y",this.attr("y")+t-e.y)}function tr(t,e,r=this.bbox()){return this.x(t,r).y(e,r)}function er(t,e=this.bbox()){return null==t?e.cx:this.attr("x",this.attr("x")+t-e.cx)}function rr(t,e=this.bbox()){return null==t?e.cy:this.attr("y",this.attr("y")+t-e.cy)}function nr(t,e,r=this.bbox()){return this.cx(t,r).cy(e,r)}function ir(t){return this.attr("x",t)}function sr(t){return this.attr("y",t)}function or(t,e){return this.ax(t).ay(e)}function ar(t){return this._build=!!t,this}c({Container:{symbol:V((function(){return this.put(new We)}))}}),D(We,"Symbol");class hr extends Et{constructor(t,e=t){super(T("text",t),e),this.dom.leading=this.dom.leading??new St(1.3),this._rebuild=!0,this._build=!1}leading(t){return null==t?this.dom.leading:(this.dom.leading=new St(t),this.rebuild())}rebuild(t){if("boolean"==typeof t&&(this._rebuild=t),this._rebuild){const t=this;let e=0;const r=this.dom.leading;this.each((function(n){if(b(this.node))return;const i=M.window.getComputedStyle(this.node).getPropertyValue("font-size"),s=r*new St(i);this.dom.newLined&&(this.attr("x",t.attr("x")),"\n"===this.text()?e+=s:(this.attr("dy",n?s+e:0),e=0))})),this.fire("rebuild")}return this}setData(t){return this.dom=t,this.dom.leading=new St(t.leading||1.3),this}writeDataToDom(){return x(this,this.dom,{leading:1.3}),this}text(t){if(void 0===t){const e=this.node.childNodes;let r=0;t="";for(let n=0,i=e.length;n<i;++n)"textPath"===e[n].nodeName||b(e[n])?0===n&&(r=n+1):(n!==r&&3!==e[n].nodeType&&!0===E(e[n]).dom.newLined&&(t+="\n"),t+=e[n].textContent);return t}if(this.clear().build(!0),"function"==typeof t)t.call(this,this);else for(let e=0,r=(t=(t+"").split("\n")).length;e<r;e++)this.newLine(t[e]);return this.build(!1).rebuild()}}L(hr,o),c({Container:{text:V((function(t=""){return this.put(new hr).text(t)})),plain:V((function(t=""){return this.put(new hr).plain(t)}))}}),D(hr,"Text");class ur extends Et{constructor(t,e=t){super(T("tspan",t),e),this._build=!1}dx(t){return this.attr("dx",t)}dy(t){return this.attr("dy",t)}newLine(){this.dom.newLined=!0;const t=this.parent();if(!(t instanceof hr))return this;const e=t.index(this),r=M.window.getComputedStyle(this.node).getPropertyValue("font-size"),n=t.dom.leading*new St(r);return this.dy(e?n:0).attr("x",t.x())}text(t){return null==t?this.node.textContent+(this.dom.newLined?"\n":""):("function"==typeof t?(this.clear().build(!0),t.call(this,this),this.build(!1)):this.plain(t),this)}}L(ur,o),c({Tspan:{tspan:V((function(t=""){const e=new ur;return this._build||this.clear(),this.put(e).text(t)}))},Text:{newLine:function(t=""){return this.tspan(t).newLine()}}}),D(ur,"Tspan");class cr extends Et{constructor(t,e=t){super(T("circle",t),e)}radius(t){return this.attr("r",t)}rx(t){return this.attr("r",t)}ry(t){return this.rx(t)}size(t){return this.radius(new St(t).divide(2))}}L(cr,{x:kt,y:Bt,cx:It,cy:Lt,width:Vt,height:Ft}),c({Container:{circle:V((function(t=0){return this.put(new cr).size(t).move(0,0)}))}}),D(cr,"Circle");class lr extends At{constructor(t,e=t){super(T("clipPath",t),e)}remove(){return this.targets().forEach((function(t){t.unclip()})),super.remove()}targets(){return dt("svg [clip-path*="+this.id()+"]")}}c({Container:{clip:V((function(){return this.defs().put(new lr)}))},Element:{clipper(){return this.reference("clip-path")},clipWith(t){const e=t instanceof lr?t:this.parent().clip().add(t);return this.attr("clip-path","url(#"+e.id()+")")},unclip(){return this.attr("clip-path",null)}}}),D(lr,"ClipPath");class dr extends Pt{constructor(t,e=t){super(T("foreignObject",t),e)}}function fr(t,e){return this.children().forEach((r=>{let n;try{n=r.node instanceof M.window.SVGSVGElement?new at(r.attr(["x","y","width","height"])):r.bbox()}catch(t){return}const i=new it(r),s=i.translate(t,e).transform(i.inverse()),o=new rt(n.x,n.y).transform(s);r.move(o.x,o.y)})),this}function pr(t){return this.dmove(t,0)}function mr(t){return this.dmove(0,t)}function gr(t,e=this.bbox()){return null==t?e.height:this.size(e.width,t,e)}function yr(t=0,e=0,r=this.bbox()){const n=t-r.x,i=e-r.y;return this.dmove(n,i)}function wr(t,e,r=this.bbox()){const n=g(this,t,e,r),i=n.width/r.width,s=n.height/r.height;return this.children().forEach((t=>{const e=new rt(r).transform(new it(t).inverse());t.scale(i,s,e.x,e.y)})),this}function br(t,e=this.bbox()){return null==t?e.width:this.size(t,e.height,e)}function xr(t,e=this.bbox()){return null==t?e.x:this.move(t,e.y,e)}function vr(t,e=this.bbox()){return null==t?e.y:this.move(e.x,t,e)}c({Container:{foreignObject:V((function(t,e){return this.put(new dr).size(t,e)}))}}),D(dr,"ForeignObject");class _r extends At{constructor(t,e=t){super(T("g",t),e)}}L(_r,a),c({Container:{group:V((function(){return this.put(new _r)}))}}),D(_r,"G");class Sr extends At{constructor(t,e=t){super(T("a",t),e)}target(t){return this.attr("target",t)}to(t){return this.attr("href",t,S)}}L(Sr,a),c({Container:{link:V((function(t){return this.put(new Sr).to(t)}))},Element:{unlink(){const t=this.linker();if(!t)return this;const e=t.parent();if(!e)return this.remove();const r=e.index(t);return e.add(this,r),t.remove(),this},linkTo(t){let e=this.linker();return e||(e=new Sr,this.wrap(e)),"function"==typeof t?t.call(e,e):e.to(t),this},linker(){const t=this.parent();return t&&"a"===t.node.nodeName.toLowerCase()?t:null}}}),D(Sr,"A");class Mr extends At{constructor(t,e=t){super(T("mask",t),e)}remove(){return this.targets().forEach((function(t){t.unmask()})),super.remove()}targets(){return dt("svg [mask*="+this.id()+"]")}}c({Container:{mask:V((function(){return this.defs().put(new Mr)}))},Element:{masker(){return this.reference("mask")},maskWith(t){const e=t instanceof Mr?t:this.parent().mask().add(t);return this.attr("mask","url(#"+e.id()+")")},unmask(){return this.attr("mask",null)}}}),D(Mr,"Mask");class Or extends Pt{constructor(t,e=t){super(T("stop",t),e)}update(t){return("number"==typeof t||t instanceof St)&&(t={offset:arguments[0],color:arguments[1],opacity:arguments[2]}),null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",new St(t.offset)),this}}c({Gradient:{stop:function(t,e,r){return this.put(new Or).update(t,e,r)}}}),D(Or,"Stop");class Nr extends Pt{constructor(t,e=t){super(T("style",t),e)}addText(t=""){return this.node.textContent+=t,this}font(t,e,r={}){return this.rule("@font-face",{fontFamily:t,src:e,...r})}rule(t,e){return this.addText(function(t,e){if(!t)return"";if(!e)return t;let r=t+"{";for(const t in e)r+=t.replace(/([A-Z])/g,(function(t,e){return"-"+e.toLowerCase()}))+":"+e[t]+";";return r+="}",r}(t,e))}}c("Dom",{style(t,e){return this.put(new Nr).rule(t,e)},fontface(t,e,r){return this.put(new Nr).font(t,e,r)}}),D(Nr,"Style");class Pr extends hr{constructor(t,e=t){super(T("textPath",t),e)}array(){const t=this.track();return t?t.array():null}plot(t){const e=this.track();let r=null;return e&&(r=e.plot(t)),null==t?r:this}track(){return this.reference("href")}}c({Container:{textPath:V((function(t,e){return t instanceof hr||(t=this.text(t)),t.path(e)}))},Text:{path:V((function(t,e=!0){const r=new Pr;let n;if(t instanceof Pe||(t=this.defs().path(t)),r.attr("href","#"+t,S),e)for(;n=this.node.firstChild;)r.node.appendChild(n);return this.put(r)})),textPath(){return this.findOne("textPath")}},Path:{text:V((function(t){return t instanceof hr||(t=(new hr).addTo(this.parent()).text(t)),t.path(this)})),targets(){return dt("svg textPath").filter((t=>(t.attr("href")||"").includes(this.id())))}}}),Pr.prototype.MorphArray=be,D(Pr,"TextPath");class Cr extends Et{constructor(t,e=t){super(T("use",t),e)}use(t,e){return this.attr("href",(e||"")+"#"+t,S)}}c({Container:{use:V((function(t,e){return this.put(new Cr).use(t,e)}))}}),D(Cr,"Use"),L([$e,We,Ut,Ht,re],l("viewbox")),L([ee,ke,De,Pe],l("marker")),L(hr,l("Text")),L(Pe,l("Path")),L(Tt,l("Defs")),L([hr,ur],l("Tspan")),L([Be,Rt,Gt,qe],l("radius")),L(bt,l("EventTarget")),L(Nt,l("Dom")),L(Pt,l("Element")),L(Et,l("Shape")),L([At,qt],l("Container")),L(Gt,l("Gradient")),L(qe,l("Runner")),ct.extend([...new Set(u)]),function(t=[]){Ne.push(...[].concat(t))}([St,et,at,it,_t,Wt,be,rt]),L(Ne,{to(t){return(new ve).type(this.constructor).from(this.toArray()).to(t)},fromArray(t){return this.init(t),this},toConsumable(){return this.toArray()},morph(t,e,r,n,i){return this.fromArray(t.map((function(t,s){return n.step(t,e[s],r,i[s],i)})))}});var Ar=r(726),Tr=r(725),Er=r(854);const jr=["basePadding1","basePadding2"],Dr={basePadding1:"setBasePadding1",basePadding2:"setBasePadding2"};class kr{static between(t,e){let r=(new ee).node,n=new kr(r,t,e);return n.assignUUID(),n.set(kr.defaultValues),n.reposition(),n}constructor(t,e,r){this.line=t,this.base1=e,this.base2=r,this.cachedBasePadding1=(0,Tr.distance)(this.point1,this.base1.centerPoint),this.cachedBasePadding2=(0,Tr.distance)(this.point2,this.base2.centerPoint),e.centerPoint.addEventListener("move",(()=>this.reposition())),r.centerPoint.addEventListener("move",(()=>this.reposition()))}get basePair(){return[this.base1,this.base2]}get domNode(){return this.line}getAttribute(t){return this.domNode.getAttribute(t)}setAttribute(t,e){this.domNode.setAttribute(t,e)}setAttributes(t){if((0,Er.isNonNullObject)(t))try{new ee(this.domNode).attr(t)}catch(t){}}get id(){return this.domNode.id}assignUUID(){(0,Ar.assignUUID)(this.domNode)}appendTo(t){t.appendChild(this.domNode)}remove(){this.domNode.remove()}isIn(t){return t.contains(this.domNode)&&t!==this.domNode}hasParent(){return!!this.domNode.parentNode}getTotalLength(){return this.domNode.getTotalLength()}getPointAtLength(t){return this.domNode.getPointAtLength(t)}get point1(){return{x:this.domNode.x1.baseVal.value,y:this.domNode.y1.baseVal.value}}get point2(){return{x:this.domNode.x2.baseVal.value,y:this.domNode.y2.baseVal.value}}get basePadding1(){return this.cachedBasePadding1}set basePadding1(t){this.cachedBasePadding1=t,this.reposition()}setBasePadding1(t){(0,Er.isFiniteNumber)(t)&&(this.basePadding1=Math.max(0,t))}get basePadding2(){return this.cachedBasePadding2}set basePadding2(t){this.cachedBasePadding2=t,this.reposition()}setBasePadding2(t){(0,Er.isFiniteNumber)(t)&&(this.basePadding2=Math.max(0,t))}isInverted(){return this.basePadding1+this.basePadding2>(0,Tr.distance)(this.base1.centerPoint,this.base2.centerPoint)}set(t){try{this.setAttributes(t.attributes)}catch(t){}jr.forEach((e=>{try{this[Dr[e]](t[e])}catch(t){}}))}reposition(){let t=this.base1.centerPoint,e=this.base2.centerPoint,r=(0,Tr.direction)(t,e);this.setAttribute("x1",`${t.x+this.basePadding1*Math.cos(r)}`),this.setAttribute("y1",`${t.y+this.basePadding1*Math.sin(r)}`),this.setAttribute("x2",""+(e.x-this.basePadding2*Math.cos(r))),this.setAttribute("y2",""+(e.y-this.basePadding2*Math.sin(r)))}}kr.defaultValues={attributes:{stroke:"#000000","stroke-width":"2"},basePadding1:6,basePadding2:6};var Br,Ir=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class Lr{constructor(t){Br.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,Br,t)}toJSONSerializable(){let t=Ir(this,Br,"f").id,e=Ir(this,Br,"f").base1.id,r=Ir(this,Br,"f").base2.id;if(!t)throw new Error("Straight bond ID is falsy.");if(!e)throw new Error("Base ID 1 is falsy.");if(!r)throw new Error("Base ID 2 is falsy.");return{id:t,baseID1:e,baseID2:r,basePadding1:Ir(this,Br,"f").basePadding1,basePadding2:Ir(this,Br,"f").basePadding2}}}Br=new WeakMap;var Vr,Fr,Rr,zr,qr,Xr,Yr,Gr,Hr,Ur,$r,Wr,Qr,Jr,Zr=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},Kr=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class tn{constructor(t,e){Vr.add(this),Fr.set(this,void 0),Rr.set(this,void 0),Zr(this,Fr,t,"f"),Zr(this,Rr,e,"f")}recreate(){let t=new kr(Kr(this,Vr,"a",Xr),Kr(this,Vr,"a",Ur),Kr(this,Vr,"a",$r));try{t.basePadding1=Kr(this,Vr,"a",Qr)}catch(t){}try{t.basePadding2=Kr(this,Vr,"a",Jr)}catch(t){}return t}}Fr=new WeakMap,Rr=new WeakMap,Vr=new WeakSet,zr=function(t){let e=Kr(this,Fr,"f")[t];if(!e)throw new Error(`No ID with name "${t}" was saved.`);if("string"!=typeof e)throw new Error(`The ID with name "${t}" is not a string: ${e}.`);return e},qr=function(){try{return Kr(this,Vr,"m",zr).call(this,"id")}catch(t){return Kr(this,Vr,"m",zr).call(this,"lineId")}},Xr=function(){let t=Kr(this,Vr,"a",qr),e=Kr(this,Rr,"f").domNode.querySelector(`#${t}`);if(!e)throw new Error(`No DOM node in the drawing has the ID "${t}".`);if(!(e instanceof SVGLineElement))throw new Error(`The DOM node with ID "${t}" is not an SVG line element.`);return e},Yr=function(){try{return Kr(this,Vr,"m",zr).call(this,"baseID1")}catch(t){return Kr(this,Vr,"m",zr).call(this,"baseId1")}},Gr=function(){try{return Kr(this,Vr,"m",zr).call(this,"baseID2")}catch(t){return Kr(this,Vr,"m",zr).call(this,"baseId2")}},Hr=function(t){let e={1:Kr(this,Vr,"a",Yr),2:Kr(this,Vr,"a",Gr)}[t],r=[...Kr(this,Rr,"f").bases].find((t=>t.id===e));if(!r)throw new Error(`No base in the drawing has the ID "${e}".`);return r},Ur=function(){return Kr(this,Vr,"m",Hr).call(this,1)},$r=function(){return Kr(this,Vr,"m",Hr).call(this,2)},Wr=function(t){let e=Kr(this,Fr,"f")[`basePadding${t}`];if("number"!=typeof e)throw new Error(`Saved base padding ${t} is not a number: ${e}.`);return e},Qr=function(){return Kr(this,Vr,"m",Wr).call(this,1)},Jr=function(){return Kr(this,Vr,"m",Wr).call(this,2)};class en{constructor(t,e){this.targetStraightBonds=t,new MutationObserver((t=>{let e=new Set([...this.targetStraightBonds].map((t=>t.domNode)));!t.some((t=>e.has(t.target)))||this.updateOpacities()})).observe(e,{attributes:!0,attributeFilter:["x1","y1","x2","y2"],subtree:!0})}updateOpacities(){[...this.targetStraightBonds].forEach((t=>{let e=t.isInverted()?"0":"1";t.setAttribute("opacity",e)}))}}})(),n})(),t.exports=e()},775:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{BaseOutline:()=>r});class r{constructor(t,e){this.domNode=t,this.owner=e,e.centerPoint.addEventListener("move",(()=>{t.setAttribute("cx",`${e.centerPoint.x}`),t.setAttribute("cy",`${e.centerPoint.y}`)}))}}return e})(),t.exports=e()},358:function(t){var e;e=()=>(()=>{var t={731:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{CenterPoint:()=>u});var r,n,i,s,o,a=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},h=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class u{constructor(t){r.add(this),n.set(this,void 0),i.set(this,{move:[]}),s.set(this,void 0),a(this,n,t,"f"),a(this,s,new MutationObserver((()=>h(this,r,"m",o).call(this,"move"))),"f"),h(this,s,"f").observe(t,{attributes:!0,childList:!0,characterData:!0,subtree:!0})}get x(){let t=h(this,n,"f").getBBox();return t.x+t.width/2}set x(t){let e=this.x,r=[...h(this,n,"f").x.baseVal].map((t=>t.value));0!=r.length||r.push(0),r=r.map((r=>r+(t-e))),h(this,n,"f").setAttribute("x",r.join(", "))}get y(){let t=h(this,n,"f").getBBox();return t.y+t.height/2}set y(t){let e=this.y,r=[...h(this,n,"f").y.baseVal].map((t=>t.value));0!=r.length||r.push(0),r=r.map((r=>r+(t-e))),h(this,n,"f").setAttribute("y",r.join(", "))}addEventListener(t,e){h(this,i,"f")[t].push(e)}removeEventListener(t,e){h(this,i,"f")[t]=h(this,i,"f")[t].filter((t=>t!==e))}}return n=new WeakMap,i=new WeakMap,s=new WeakMap,r=new WeakSet,o=function(t){h(this,i,"f")[t].forEach((t=>t()))},e})(),t.exports=e()},726:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{CoordinateSystem:()=>c,HorizontalClientScaling:()=>d,InnerXML:()=>w,OuterXML:()=>v,Scaling:()=>l,VerticalClientScaling:()=>f,assignUUID:()=>u,bringToFront:()=>p,sendToBack:()=>m});const r={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};var n,i=new Uint8Array(16);function s(){if(!n&&!(n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return n(i)}for(var o=[],a=0;a<256;++a)o.push((a+256).toString(16).slice(1));const h=function(t,e,n){if(r.randomUUID&&!e&&!t)return r.randomUUID();var i=(t=t||{}).random||(t.rng||s)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,e){n=n||0;for(var a=0;a<16;++a)e[n+a]=i[a];return e}return function(t,e=0){return(o[t[e+0]]+o[t[e+1]]+o[t[e+2]]+o[t[e+3]]+"-"+o[t[e+4]]+o[t[e+5]]+"-"+o[t[e+6]]+o[t[e+7]]+"-"+o[t[e+8]]+o[t[e+9]]+"-"+o[t[e+10]]+o[t[e+11]]+o[t[e+12]]+o[t[e+13]]+o[t[e+14]]+o[t[e+15]]).toLowerCase()}(i)};function u(t){t.id="uuid-"+h()}class c{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class l{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class d{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class f{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function p(t){let e=t.parentNode;e&&e.appendChild(t)}function m(t){let e=t.parentNode;e&&e.prepend(t)}var g,y=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class w{constructor(t){g.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,g,t)}toString(){return y(this,g,"f").innerHTML}set(t){y(this,g,"f").innerHTML=t}}g=new WeakMap;var b,x=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class v{constructor(t){b.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,b,t)}toString(){return x(this,b,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=x(this,b,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...x(this,b,"f").attributes].forEach((t=>x(this,b,"f").removeAttribute(t.name))),[...e.firstElementChild.attributes].forEach((t=>x(this,b,"f").setAttribute(t.name,t.value))),x(this,b,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}return b=new WeakMap,e})(),t.exports=e()},986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>p,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function p(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Nucleobase:()=>jr,SavableNucleobase:()=>Br,SavedNucleobase:()=>Xr});var t={};r.r(t),r.d(t,{cx:()=>It,cy:()=>Lt,height:()=>Ft,rx:()=>jt,ry:()=>Dt,width:()=>Vt,x:()=>kt,y:()=>Bt});var e={};r.r(e),r.d(e,{from:()=>Xt,to:()=>Yt});var i={};r.r(i),r.d(i,{MorphArray:()=>Qt,height:()=>te,width:()=>Kt,x:()=>Jt,y:()=>Zt});var s={};r.r(s),r.d(s,{array:()=>Ce,clear:()=>Ae,move:()=>Te,plot:()=>Ee,size:()=>je});var o={};r.r(o),r.d(o,{amove:()=>or,ax:()=>ir,ay:()=>sr,build:()=>ar,center:()=>nr,cx:()=>er,cy:()=>rr,length:()=>Je,move:()=>tr,plain:()=>Qe,x:()=>Ze,y:()=>Ke});var a={};r.r(a),r.d(a,{dmove:()=>fr,dx:()=>pr,dy:()=>mr,height:()=>gr,move:()=>yr,size:()=>wr,width:()=>br,x:()=>xr,y:()=>vr});const h={},u=[];function c(t,e){if(Array.isArray(t))for(const r of t)c(r,e);else if("object"!=typeof t)d(Object.getOwnPropertyNames(e)),h[t]=Object.assign(h[t]||{},e);else for(const e in t)c(e,t[e])}function l(t){return h[t]||{}}function d(t){u.push(...t)}function f(t,e){let r;const n=t.length,i=[];for(r=0;r<n;r++)i.push(e(t[r]));return i}function p(t){return t%360*Math.PI/180}function m(t){return t.charAt(0).toUpperCase()+t.slice(1)}function g(t,e,r,n){return null!=e&&null!=r||(n=n||t.bbox(),null==e?e=n.width/n.height*r:null==r&&(r=n.height/n.width*e)),{width:e,height:r}}function y(t,e){const r=t.origin;let n=null!=t.ox?t.ox:null!=t.originX?t.originX:"center",i=null!=t.oy?t.oy:null!=t.originY?t.originY:"center";null!=r&&([n,i]=Array.isArray(r)?r:"object"==typeof r?[r.x,r.y]:[r,r]);const s="string"==typeof n,o="string"==typeof i;if(s||o){const{height:t,width:r,x:a,y:h}=e.bbox();s&&(n=n.includes("left")?a:n.includes("right")?a+r:a+r/2),o&&(i=i.includes("top")?h:i.includes("bottom")?h+t:h+t/2)}return[n,i]}const w=new Set(["desc","metadata","title"]),b=t=>w.has(t.nodeName),x=(t,e,r={})=>{const n={...e};for(const t in n)n[t].valueOf()===r[t]&&delete n[t];Object.keys(n).length?t.node.setAttribute("data-svgjs",JSON.stringify(n)):(t.node.removeAttribute("data-svgjs"),t.node.removeAttribute("svgjs:data"))},v="http://www.w3.org/2000/svg",_="http://www.w3.org/2000/xmlns/",S="http://www.w3.org/1999/xlink",M={window:"undefined"==typeof window?null:window,document:"undefined"==typeof document?null:document};class O{}const N={},P="___SYMBOL___ROOT___";function C(t,e=v){return M.document.createElementNS(e,t)}function A(t,e=!1){if(t instanceof O)return t;if("object"==typeof t)return j(t);if(null==t)return new N[P];if("string"==typeof t&&"<"!==t.charAt(0))return j(M.document.querySelector(t));const r=e?M.document.createElement("div"):C("svg");return r.innerHTML=t,t=j(r.firstChild),r.removeChild(r.firstChild),t}function T(t,e){return e&&(e instanceof M.window.Node||e.ownerDocument&&e instanceof e.ownerDocument.defaultView.Node)?e:C(t)}function E(t){if(!t)return null;if(t.instance instanceof O)return t.instance;if("#document-fragment"===t.nodeName)return new N.Fragment(t);let e=m(t.nodeName||"Dom");return"LinearGradient"===e||"RadialGradient"===e?e="Gradient":N[e]||(e="Dom"),new N[e](t)}let j=E;function D(t,e=t.name,r=!1){return N[e]=t,r&&(N[P]=t),d(Object.getOwnPropertyNames(t.prototype)),t}let k=1e3;function B(t){return"Svgjs"+m(t)+k++}function I(t){for(let e=t.children.length-1;e>=0;e--)I(t.children[e]);return t.id?(t.id=B(t.nodeName),t):t}function L(t,e){let r,n;for(n=(t=Array.isArray(t)?t:[t]).length-1;n>=0;n--)for(r in e)t[n].prototype[r]=e[r]}function V(t){return function(...e){const r=e[e.length-1];return!r||r.constructor!==Object||r instanceof Array?t.apply(this,e):t.apply(this,e.slice(0,-1)).attr(r)}}c("Dom",{siblings:function(){return this.parent().children()},position:function(){return this.parent().index(this)},next:function(){return this.siblings()[this.position()+1]},prev:function(){return this.siblings()[this.position()-1]},forward:function(){const t=this.position();return this.parent().add(this.remove(),t+1),this},backward:function(){const t=this.position();return this.parent().add(this.remove(),t?t-1:0),this},front:function(){return this.parent().add(this.remove()),this},back:function(){return this.parent().add(this.remove(),0),this},before:function(t){(t=A(t)).remove();const e=this.position();return this.parent().add(t,e),this},after:function(t){(t=A(t)).remove();const e=this.position();return this.parent().add(t,e+1),this},insertBefore:function(t){return(t=A(t)).before(this),this},insertAfter:function(t){return(t=A(t)).after(this),this}});const F=/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,R=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,z=/rgb\((\d+),(\d+),(\d+)\)/,q=/(#[a-z_][a-z0-9\-_]*)/i,X=/\)\s*,?\s*/,Y=/\s/g,G=/^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i,H=/^rgb\(/,U=/^(\s+)?$/,$=/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,W=/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,Q=/[\s,]+/,J=/[MLHVCSQTAZ]/i;function Z(t){const e=Math.round(t),r=Math.max(0,Math.min(255,e)).toString(16);return 1===r.length?"0"+r:r}function K(t,e){for(let r=e.length;r--;)if(null==t[e[r]])return!1;return!0}function tt(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}c("Dom",{classes:function(){const t=this.attr("class");return null==t?[]:t.trim().split(Q)},hasClass:function(t){return-1!==this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){const e=this.classes();e.push(t),this.attr("class",e.join(" "))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr("class",this.classes().filter((function(e){return e!==t})).join(" ")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)}}),c("Dom",{css:function(t,e){const r={};if(0===arguments.length)return this.node.style.cssText.split(/\s*;\s*/).filter((function(t){return!!t.length})).forEach((function(t){const e=t.split(/\s*:\s*/);r[e[0]]=e[1]})),r;if(arguments.length<2){if(Array.isArray(t)){for(const e of t){const t=e;r[e]=this.node.style.getPropertyValue(t)}return r}if("string"==typeof t)return this.node.style.getPropertyValue(t);if("object"==typeof t)for(const e in t)this.node.style.setProperty(e,null==t[e]||U.test(t[e])?"":t[e])}return 2===arguments.length&&this.node.style.setProperty(t,null==e||U.test(e)?"":e),this},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},visible:function(){return"none"!==this.css("display")}}),c("Dom",{data:function(t,e,r){if(null==t)return this.data(f(function(t){let e;const r=t.length,n=[];for(e=0;e<r;e++)0===t[e].nodeName.indexOf("data-")&&n.push(t[e]);return n}(this.node.attributes),(t=>t.nodeName.slice(5))));if(t instanceof Array){const e={};for(const r of t)e[r]=this.data(r);return e}if("object"==typeof t)for(e in t)this.data(e,t[e]);else if(arguments.length<2)try{return JSON.parse(this.attr("data-"+t))}catch(e){return this.attr("data-"+t)}else this.attr("data-"+t,null===e?null:!0===r||"string"==typeof e||"number"==typeof e?e:JSON.stringify(e));return this}}),c("Dom",{remember:function(t,e){if("object"==typeof arguments[0])for(const e in t)this.remember(e,t[e]);else{if(1===arguments.length)return this.memory()[t];this.memory()[t]=e}return this},forget:function(){if(0===arguments.length)this._memory={};else for(let t=arguments.length-1;t>=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory=this._memory||{}}});class et{constructor(...t){this.init(...t)}static isColor(t){return t&&(t instanceof et||this.isRgb(t)||this.test(t))}static isRgb(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b}static random(t="vibrant",e){const{random:r,round:n,sin:i,PI:s}=Math;if("vibrant"===t){const t=24*r()+57,e=38*r()+45,n=360*r();return new et(t,e,n,"lch")}if("sine"===t){const t=n(80*i(2*s*(e=null==e?r():e)/.5+.01)+150),o=n(50*i(2*s*e/.5+4.6)+200),a=n(100*i(2*s*e/.5+2.3)+150);return new et(t,o,a)}if("pastel"===t){const t=8*r()+86,e=17*r()+9,n=360*r();return new et(t,e,n,"lch")}if("dark"===t){const t=10+10*r(),e=50*r()+86,n=360*r();return new et(t,e,n,"lch")}if("rgb"===t){const t=255*r(),e=255*r(),n=255*r();return new et(t,e,n)}if("lab"===t){const t=100*r(),e=256*r()-128,n=256*r()-128;return new et(t,e,n,"lab")}if("grey"===t){const t=255*r();return new et(t,t,t)}throw new Error("Unsupported random color mode")}static test(t){return"string"==typeof t&&(G.test(t)||H.test(t))}cmyk(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=Math.min(1-n,1-i,1-s);return 1===o?new et(0,0,0,1,"cmyk"):new et((1-n-o)/(1-o),(1-i-o)/(1-o),(1-s-o)/(1-o),o,"cmyk")}hsl(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=Math.max(n,i,s),a=Math.min(n,i,s),h=(o+a)/2,u=o===a,c=o-a;return new et(360*(u?0:o===n?((i-s)/c+(i<s?6:0))/6:o===i?((s-n)/c+2)/6:o===s?((n-i)/c+4)/6:0),100*(u?0:h>.5?c/(2-o-a):c/(o+a)),100*h,"hsl")}init(t=0,e=0,r=0,n=0,i="rgb"){if(t=t||0,this.space)for(const t in this.space)delete this[this.space[t]];if("number"==typeof t)i="string"==typeof n?n:i,n="string"==typeof n?0:n,Object.assign(this,{_a:t,_b:e,_c:r,_d:n,space:i});else if(t instanceof Array)this.space=e||("string"==typeof t[3]?t[3]:t[4])||"rgb",Object.assign(this,{_a:t[0],_b:t[1],_c:t[2],_d:t[3]||0});else if(t instanceof Object){const r=function(t,e){const r=K(t,"rgb")?{_a:t.r,_b:t.g,_c:t.b,_d:0,space:"rgb"}:K(t,"xyz")?{_a:t.x,_b:t.y,_c:t.z,_d:0,space:"xyz"}:K(t,"hsl")?{_a:t.h,_b:t.s,_c:t.l,_d:0,space:"hsl"}:K(t,"lab")?{_a:t.l,_b:t.a,_c:t.b,_d:0,space:"lab"}:K(t,"lch")?{_a:t.l,_b:t.c,_c:t.h,_d:0,space:"lch"}:K(t,"cmyk")?{_a:t.c,_b:t.m,_c:t.y,_d:t.k,space:"cmyk"}:{_a:0,_b:0,_c:0,space:"rgb"};return r.space=e||r.space,r}(t,e);Object.assign(this,r)}else if("string"==typeof t)if(H.test(t)){const e=t.replace(Y,""),[r,n,i]=z.exec(e).slice(1,4).map((t=>parseInt(t)));Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}else{if(!G.test(t))throw Error("Unsupported string format, can't construct Color");{const e=t=>parseInt(t,16),[,r,n,i]=R.exec(function(t){return 4===t.length?["#",t.substring(1,2),t.substring(1,2),t.substring(2,3),t.substring(2,3),t.substring(3,4),t.substring(3,4)].join(""):t}(t)).map(e);Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}}const{_a:s,_b:o,_c:a,_d:h}=this,u="rgb"===this.space?{r:s,g:o,b:a}:"xyz"===this.space?{x:s,y:o,z:a}:"hsl"===this.space?{h:s,s:o,l:a}:"lab"===this.space?{l:s,a:o,b:a}:"lch"===this.space?{l:s,c:o,h:a}:"cmyk"===this.space?{c:s,m:o,y:a,k:h}:{};Object.assign(this,u)}lab(){const{x:t,y:e,z:r}=this.xyz();return new et(116*e-16,500*(t-e),200*(e-r),"lab")}lch(){const{l:t,a:e,b:r}=this.lab(),n=Math.sqrt(e**2+r**2);let i=180*Math.atan2(r,e)/Math.PI;return i<0&&(i*=-1,i=360-i),new et(t,n,i,"lch")}rgb(){if("rgb"===this.space)return this;if("lab"===(t=this.space)||"xyz"===t||"lch"===t){let{x:t,y:e,z:r}=this;if("lab"===this.space||"lch"===this.space){let{l:n,a:i,b:s}=this;if("lch"===this.space){const{c:t,h:e}=this,r=Math.PI/180;i=t*Math.cos(r*e),s=t*Math.sin(r*e)}const o=(n+16)/116,a=i/500+o,h=o-s/200,u=16/116,c=.008856,l=7.787;t=.95047*(a**3>c?a**3:(a-u)/l),e=1*(o**3>c?o**3:(o-u)/l),r=1.08883*(h**3>c?h**3:(h-u)/l)}const n=3.2406*t+-1.5372*e+-.4986*r,i=-.9689*t+1.8758*e+.0415*r,s=.0557*t+-.204*e+1.057*r,o=Math.pow,a=.0031308,h=n>a?1.055*o(n,1/2.4)-.055:12.92*n,u=i>a?1.055*o(i,1/2.4)-.055:12.92*i,c=s>a?1.055*o(s,1/2.4)-.055:12.92*s;return new et(255*h,255*u,255*c)}if("hsl"===this.space){let{h:t,s:e,l:r}=this;if(t/=360,e/=100,r/=100,0===e)return r*=255,new et(r,r,r);const n=r<.5?r*(1+e):r+e-r*e,i=2*r-n,s=255*tt(i,n,t+1/3),o=255*tt(i,n,t),a=255*tt(i,n,t-1/3);return new et(s,o,a)}if("cmyk"===this.space){const{c:t,m:e,y:r,k:n}=this,i=255*(1-Math.min(1,t*(1-n)+n)),s=255*(1-Math.min(1,e*(1-n)+n)),o=255*(1-Math.min(1,r*(1-n)+n));return new et(i,s,o)}return this;var t}toArray(){const{_a:t,_b:e,_c:r,_d:n,space:i}=this;return[t,e,r,n,i]}toHex(){const[t,e,r]=this._clamped().map(Z);return`#${t}${e}${r}`}toRgb(){const[t,e,r]=this._clamped();return`rgb(${t},${e},${r})`}toString(){return this.toHex()}xyz(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92,a=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92,h=s>.04045?Math.pow((s+.055)/1.055,2.4):s/12.92,u=(.4124*o+.3576*a+.1805*h)/.95047,c=(.2126*o+.7152*a+.0722*h)/1,l=(.0193*o+.1192*a+.9505*h)/1.08883,d=u>.008856?Math.pow(u,1/3):7.787*u+16/116,f=c>.008856?Math.pow(c,1/3):7.787*c+16/116,p=l>.008856?Math.pow(l,1/3):7.787*l+16/116;return new et(d,f,p,"xyz")}_clamped(){const{_a:t,_b:e,_c:r}=this.rgb(),{max:n,min:i,round:s}=Math;return[t,e,r].map((t=>n(0,i(s(t),255))))}}class rt{constructor(...t){this.init(...t)}clone(){return new rt(this)}init(t,e){const r=Array.isArray(t)?{x:t[0],y:t[1]}:"object"==typeof t?{x:t.x,y:t.y}:{x:t,y:e};return this.x=null==r.x?0:r.x,this.y=null==r.y?0:r.y,this}toArray(){return[this.x,this.y]}transform(t){return this.clone().transformO(t)}transformO(t){it.isMatrixLike(t)||(t=new it(t));const{x:e,y:r}=this;return this.x=t.a*e+t.c*r+t.e,this.y=t.b*e+t.d*r+t.f,this}}function nt(t,e,r){return Math.abs(e-t)<(r||1e-6)}class it{constructor(...t){this.init(...t)}static formatTransforms(t){const e="both"===t.flip||!0===t.flip,r=t.flip&&(e||"x"===t.flip)?-1:1,n=t.flip&&(e||"y"===t.flip)?-1:1,i=t.skew&&t.skew.length?t.skew[0]:isFinite(t.skew)?t.skew:isFinite(t.skewX)?t.skewX:0,s=t.skew&&t.skew.length?t.skew[1]:isFinite(t.skew)?t.skew:isFinite(t.skewY)?t.skewY:0,o=t.scale&&t.scale.length?t.scale[0]*r:isFinite(t.scale)?t.scale*r:isFinite(t.scaleX)?t.scaleX*r:r,a=t.scale&&t.scale.length?t.scale[1]*n:isFinite(t.scale)?t.scale*n:isFinite(t.scaleY)?t.scaleY*n:n,h=t.shear||0,u=t.rotate||t.theta||0,c=new rt(t.origin||t.around||t.ox||t.originX,t.oy||t.originY),l=c.x,d=c.y,f=new rt(t.position||t.px||t.positionX||NaN,t.py||t.positionY||NaN),p=f.x,m=f.y,g=new rt(t.translate||t.tx||t.translateX,t.ty||t.translateY),y=g.x,w=g.y,b=new rt(t.relative||t.rx||t.relativeX,t.ry||t.relativeY);return{scaleX:o,scaleY:a,skewX:i,skewY:s,shear:h,theta:u,rx:b.x,ry:b.y,tx:y,ty:w,ox:l,oy:d,px:p,py:m}}static fromArray(t){return{a:t[0],b:t[1],c:t[2],d:t[3],e:t[4],f:t[5]}}static isMatrixLike(t){return null!=t.a||null!=t.b||null!=t.c||null!=t.d||null!=t.e||null!=t.f}static matrixMultiply(t,e,r){const n=t.a*e.a+t.c*e.b,i=t.b*e.a+t.d*e.b,s=t.a*e.c+t.c*e.d,o=t.b*e.c+t.d*e.d,a=t.e+t.a*e.e+t.c*e.f,h=t.f+t.b*e.e+t.d*e.f;return r.a=n,r.b=i,r.c=s,r.d=o,r.e=a,r.f=h,r}around(t,e,r){return this.clone().aroundO(t,e,r)}aroundO(t,e,r){const n=t||0,i=e||0;return this.translateO(-n,-i).lmultiplyO(r).translateO(n,i)}clone(){return new it(this)}decompose(t=0,e=0){const r=this.a,n=this.b,i=this.c,s=this.d,o=this.e,a=this.f,h=r*s-n*i,u=h>0?1:-1,c=u*Math.sqrt(r*r+n*n),l=Math.atan2(u*n,u*r),d=180/Math.PI*l,f=Math.cos(l),p=Math.sin(l),m=(r*i+n*s)/h,g=i*c/(m*r-n)||s*c/(m*n+r);return{scaleX:c,scaleY:g,shear:m,rotate:d,translateX:o-t+t*f*c+e*(m*f*c-p*g),translateY:a-e+t*p*c+e*(m*p*c+f*g),originX:t,originY:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}equals(t){if(t===this)return!0;const e=new it(t);return nt(this.a,e.a)&&nt(this.b,e.b)&&nt(this.c,e.c)&&nt(this.d,e.d)&&nt(this.e,e.e)&&nt(this.f,e.f)}flip(t,e){return this.clone().flipO(t,e)}flipO(t,e){return"x"===t?this.scaleO(-1,1,e,0):"y"===t?this.scaleO(1,-1,0,e):this.scaleO(-1,-1,t,e||t)}init(t){const e=it.fromArray([1,0,0,1,0,0]);return t=t instanceof Pt?t.matrixify():"string"==typeof t?it.fromArray(t.split(Q).map(parseFloat)):Array.isArray(t)?it.fromArray(t):"object"==typeof t&&it.isMatrixLike(t)?t:"object"==typeof t?(new it).transform(t):6===arguments.length?it.fromArray([].slice.call(arguments)):e,this.a=null!=t.a?t.a:e.a,this.b=null!=t.b?t.b:e.b,this.c=null!=t.c?t.c:e.c,this.d=null!=t.d?t.d:e.d,this.e=null!=t.e?t.e:e.e,this.f=null!=t.f?t.f:e.f,this}inverse(){return this.clone().inverseO()}inverseO(){const t=this.a,e=this.b,r=this.c,n=this.d,i=this.e,s=this.f,o=t*n-e*r;if(!o)throw new Error("Cannot invert "+this);const a=n/o,h=-e/o,u=-r/o,c=t/o,l=-(a*i+u*s),d=-(h*i+c*s);return this.a=a,this.b=h,this.c=u,this.d=c,this.e=l,this.f=d,this}lmultiply(t){return this.clone().lmultiplyO(t)}lmultiplyO(t){const e=t instanceof it?t:new it(t);return it.matrixMultiply(e,this,this)}multiply(t){return this.clone().multiplyO(t)}multiplyO(t){const e=t instanceof it?t:new it(t);return it.matrixMultiply(this,e,this)}rotate(t,e,r){return this.clone().rotateO(t,e,r)}rotateO(t,e=0,r=0){t=p(t);const n=Math.cos(t),i=Math.sin(t),{a:s,b:o,c:a,d:h,e:u,f:c}=this;return this.a=s*n-o*i,this.b=o*n+s*i,this.c=a*n-h*i,this.d=h*n+a*i,this.e=u*n-c*i+r*i-e*n+e,this.f=c*n+u*i-e*i-r*n+r,this}scale(){return this.clone().scaleO(...arguments)}scaleO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t);const{a:i,b:s,c:o,d:a,e:h,f:u}=this;return this.a=i*t,this.b=s*e,this.c=o*t,this.d=a*e,this.e=h*t-r*t+r,this.f=u*e-n*e+n,this}shear(t,e,r){return this.clone().shearO(t,e,r)}shearO(t,e=0,r=0){const{a:n,b:i,c:s,d:o,e:a,f:h}=this;return this.a=n+i*t,this.c=s+o*t,this.e=a+h*t-r*t,this}skew(){return this.clone().skewO(...arguments)}skewO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t),t=p(t),e=p(e);const i=Math.tan(t),s=Math.tan(e),{a:o,b:a,c:h,d:u,e:c,f:l}=this;return this.a=o+a*i,this.b=a+o*s,this.c=h+u*i,this.d=u+h*s,this.e=c+l*i-n*i,this.f=l+c*s-r*s,this}skewX(t,e,r){return this.skew(t,0,e,r)}skewY(t,e,r){return this.skew(0,t,e,r)}toArray(){return[this.a,this.b,this.c,this.d,this.e,this.f]}toString(){return"matrix("+this.a+","+this.b+","+this.c+","+this.d+","+this.e+","+this.f+")"}transform(t){if(it.isMatrixLike(t))return new it(t).multiplyO(this);const e=it.formatTransforms(t),{x:r,y:n}=new rt(e.ox,e.oy).transform(this),i=(new it).translateO(e.rx,e.ry).lmultiplyO(this).translateO(-r,-n).scaleO(e.scaleX,e.scaleY).skewO(e.skewX,e.skewY).shearO(e.shear).rotateO(e.theta).translateO(r,n);if(isFinite(e.px)||isFinite(e.py)){const t=new rt(r,n).transform(i),s=isFinite(e.px)?e.px-t.x:0,o=isFinite(e.py)?e.py-t.y:0;i.translateO(s,o)}return i.translateO(e.tx,e.ty),i}translate(t,e){return this.clone().translateO(t,e)}translateO(t,e){return this.e+=t||0,this.f+=e||0,this}valueOf(){return{a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}}function st(){if(!st.nodes){const t=A().size(2,0);t.node.style.cssText=["opacity: 0","position: absolute","left: -100%","top: -100%","overflow: hidden"].join(";"),t.attr("focusable","false"),t.attr("aria-hidden","true");const e=t.path().node;st.nodes={svg:t,path:e}}if(!st.nodes.svg.node.parentNode){const t=M.document.body||M.document.documentElement;st.nodes.svg.addTo(t)}return st.nodes}function ot(t){return!(t.width||t.height||t.x||t.y)}D(it,"Matrix");class at{constructor(...t){this.init(...t)}addOffset(){return this.x+=M.window.pageXOffset,this.y+=M.window.pageYOffset,new at(this)}init(t){return t="string"==typeof t?t.split(Q).map(parseFloat):Array.isArray(t)?t:"object"==typeof t?[null!=t.left?t.left:t.x,null!=t.top?t.top:t.y,t.width,t.height]:4===arguments.length?[].slice.call(arguments):[0,0,0,0],this.x=t[0]||0,this.y=t[1]||0,this.width=this.w=t[2]||0,this.height=this.h=t[3]||0,this.x2=this.x+this.w,this.y2=this.y+this.h,this.cx=this.x+this.w/2,this.cy=this.y+this.h/2,this}isNulled(){return ot(this)}merge(t){const e=Math.min(this.x,t.x),r=Math.min(this.y,t.y),n=Math.max(this.x+this.width,t.x+t.width)-e,i=Math.max(this.y+this.height,t.y+t.height)-r;return new at(e,r,n,i)}toArray(){return[this.x,this.y,this.width,this.height]}toString(){return this.x+" "+this.y+" "+this.width+" "+this.height}transform(t){t instanceof it||(t=new it(t));let e=1/0,r=-1/0,n=1/0,i=-1/0;return[new rt(this.x,this.y),new rt(this.x2,this.y),new rt(this.x,this.y2),new rt(this.x2,this.y2)].forEach((function(s){s=s.transform(t),e=Math.min(e,s.x),r=Math.max(r,s.x),n=Math.min(n,s.y),i=Math.max(i,s.y)})),new at(e,n,r-e,i-n)}}function ht(t,e,r){let n;try{if(n=e(t.node),ot(n)&&(i=t.node)!==M.document&&!(M.document.documentElement.contains||function(t){for(;t.parentNode;)t=t.parentNode;return t===M.document}).call(M.document.documentElement,i))throw new Error("Element not in the dom")}catch(e){n=r(t)}var i;return n}c({viewbox:{viewbox(t,e,r,n){return null==t?new at(this.attr("viewBox")):this.attr("viewBox",new at(t,e,r,n))},zoom(t,e){let{width:r,height:n}=this.attr(["width","height"]);if((r||n)&&"string"!=typeof r&&"string"!=typeof n||(r=this.node.clientWidth,n=this.node.clientHeight),!r||!n)throw new Error("Impossible to get absolute width and height. Please provide an absolute width and height attribute on the zooming element");const i=this.viewbox(),s=r/i.width,o=n/i.height,a=Math.min(s,o);if(null==t)return a;let h=a/t;h===1/0&&(h=Number.MAX_SAFE_INTEGER/100),e=e||new rt(r/2/s+i.x,n/2/o+i.y);const u=new at(i).transform(new it({scale:h,origin:e}));return this.viewbox(u)}}}),D(at,"Box");class ut extends Array{constructor(t=[],...e){if(super(t,...e),"number"==typeof t)return this;this.length=0,this.push(...t)}}const ct=ut;L([ut],{each(t,...e){return"function"==typeof t?this.map(((e,r,n)=>t.call(e,e,r,n))):this.map((r=>r[t](...e)))},toArray(){return Array.prototype.concat.apply([],this)}});const lt=["toArray","constructor","each"];function dt(t,e){return new ct(f((e||M.document).querySelectorAll(t),(function(t){return E(t)})))}ut.extend=function(t){t=t.reduce(((t,e)=>(lt.includes(e)||"_"===e[0]||(e in Array.prototype&&(t["$"+e]=Array.prototype[e]),t[e]=function(...t){return this.each(e,...t)}),t)),{}),L([ut],t)};let ft=0;const pt={};function mt(t){let e=t.getEventHolder();return e===M.window&&(e=pt),e.events||(e.events={}),e.events}function gt(t){return t.getEventTarget()}function yt(t,e,r,n,i){const s=r.bind(n||t),o=A(t),a=mt(o),h=gt(o);e=Array.isArray(e)?e:e.split(Q),r._svgjsListenerId||(r._svgjsListenerId=++ft),e.forEach((function(t){const e=t.split(".")[0],n=t.split(".")[1]||"*";a[e]=a[e]||{},a[e][n]=a[e][n]||{},a[e][n][r._svgjsListenerId]=s,h.addEventListener(e,s,i||!1)}))}function wt(t,e,r,n){const i=A(t),s=mt(i),o=gt(i);("function"!=typeof r||(r=r._svgjsListenerId))&&(e=Array.isArray(e)?e:(e||"").split(Q)).forEach((function(t){const e=t&&t.split(".")[0],a=t&&t.split(".")[1];let h,u;if(r)s[e]&&s[e][a||"*"]&&(o.removeEventListener(e,s[e][a||"*"][r],n||!1),delete s[e][a||"*"][r]);else if(e&&a){if(s[e]&&s[e][a]){for(u in s[e][a])wt(o,[e,a].join("."),u);delete s[e][a]}}else if(a)for(t in s)for(h in s[t])a===h&&wt(o,[t,a].join("."));else if(e){if(s[e]){for(h in s[e])wt(o,[e,h].join("."));delete s[e]}}else{for(t in s)wt(o,t);!function(t){let e=t.getEventHolder();e===M.window&&(e=pt),e.events&&(e.events={})}(i)}}))}class bt extends O{addEventListener(){}dispatch(t,e,r){return function(t,e,r,n){const i=gt(t);return e instanceof M.window.Event||(e=new M.window.CustomEvent(e,{detail:r,cancelable:!0,...n})),i.dispatchEvent(e),e}(this,t,e,r)}dispatchEvent(t){const e=this.getEventHolder().events;if(!e)return!0;const r=e[t.type];for(const e in r)for(const n in r[e])r[e][n](t);return!t.defaultPrevented}fire(t,e,r){return this.dispatch(t,e,r),this}getEventHolder(){return this}getEventTarget(){return this}off(t,e,r){return wt(this,t,e,r),this}on(t,e,r,n){return yt(this,t,e,r,n),this}removeEventListener(){}}function xt(){}D(bt,"EventTarget");const vt={"fill-opacity":1,"stroke-opacity":1,"stroke-width":0,"stroke-linejoin":"miter","stroke-linecap":"butt",fill:"#000000",stroke:"#000000",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,"stop-opacity":1,"stop-color":"#000000","text-anchor":"start"};class _t extends Array{constructor(...t){super(...t),this.init(...t)}clone(){return new this.constructor(this)}init(t){return"number"==typeof t||(this.length=0,this.push(...this.parse(t))),this}parse(t=[]){return t instanceof Array?t:t.trim().split(Q).map(parseFloat)}toArray(){return Array.prototype.concat.apply([],this)}toSet(){return new Set(this)}toString(){return this.join(" ")}valueOf(){const t=[];return t.push(...this),t}}class St{constructor(...t){this.init(...t)}convert(t){return new St(this.value,t)}divide(t){return t=new St(t),new St(this/t,this.unit||t.unit)}init(t,e){return e=Array.isArray(t)?t[1]:e,t=Array.isArray(t)?t[0]:t,this.value=0,this.unit=e||"","number"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:"string"==typeof t?(e=t.match(F))&&(this.value=parseFloat(e[1]),"%"===e[5]?this.value/=100:"s"===e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof St&&(this.value=t.valueOf(),this.unit=t.unit),this}minus(t){return t=new St(t),new St(this-t,this.unit||t.unit)}plus(t){return t=new St(t),new St(this+t,this.unit||t.unit)}times(t){return t=new St(t),new St(this*t,this.unit||t.unit)}toArray(){return[this.value,this.unit]}toJSON(){return this.toString()}toString(){return("%"===this.unit?~~(1e8*this.value)/1e6:"s"===this.unit?this.value/1e3:this.value)+this.unit}valueOf(){return this.value}}const Mt=new Set(["fill","stroke","color","bgcolor","stop-color","flood-color","lighting-color"]),Ot=[];class Nt extends bt{constructor(t,e){super(),this.node=t,this.type=t.nodeName,e&&t!==e&&this.attr(e)}add(t,e){return(t=A(t)).removeNamespace&&this.node instanceof M.window.SVGElement&&t.removeNamespace(),null==e?this.node.appendChild(t.node):t.node!==this.node.childNodes[e]&&this.node.insertBefore(t.node,this.node.childNodes[e]),this}addTo(t,e){return A(t).put(this,e)}children(){return new ct(f(this.node.children,(function(t){return E(t)})))}clear(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return this}clone(t=!0,e=!0){this.writeDataToDom();let r=this.node.cloneNode(t);return e&&(r=I(r)),new this.constructor(r)}each(t,e){const r=this.children();let n,i;for(n=0,i=r.length;n<i;n++)t.apply(r[n],[n,r]),e&&r[n].each(t,e);return this}element(t,e){return this.put(new Nt(C(t),e))}first(){return E(this.node.firstChild)}get(t){return E(this.node.childNodes[t])}getEventHolder(){return this.node}getEventTarget(){return this.node}has(t){return this.index(t)>=0}html(t,e){return this.xml(t,e,"http://www.w3.org/1999/xhtml")}id(t){return void 0!==t||this.node.id||(this.node.id=B(this.type)),this.attr("id",t)}index(t){return[].slice.call(this.node.childNodes).indexOf(t.node)}last(){return E(this.node.lastChild)}matches(t){const e=this.node,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector||null;return r&&r.call(e,t)}parent(t){let e=this;if(!e.node.parentNode)return null;if(e=E(e.node.parentNode),!t)return e;do{if("string"==typeof t?e.matches(t):e instanceof t)return e}while(e=E(e.node.parentNode));return e}put(t,e){return t=A(t),this.add(t,e),t}putIn(t,e){return A(t).add(this,e)}remove(){return this.parent()&&this.parent().removeElement(this),this}removeElement(t){return this.node.removeChild(t.node),this}replace(t){return t=A(t),this.node.parentNode&&this.node.parentNode.replaceChild(t.node,this.node),t}round(t=2,e=null){const r=10**t,n=this.attr(e);for(const t in n)"number"==typeof n[t]&&(n[t]=Math.round(n[t]*r)/r);return this.attr(n),this}svg(t,e){return this.xml(t,e,v)}toString(){return this.id()}words(t){return this.node.textContent=t,this}wrap(t){const e=this.parent();if(!e)return this.addTo(t);const r=e.index(this);return e.put(t,r).put(this)}writeDataToDom(){return this.each((function(){this.writeDataToDom()})),this}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){e=null==e||e,this.writeDataToDom();let r=this;if(null!=t){if(r=E(r.node.cloneNode(!0)),e){const e=t(r);if(r=e||r,!1===e)return""}r.each((function(){const e=t(this),r=e||this;!1===e?this.remove():e&&this!==r&&this.replace(r)}),!0)}return e?r.node.outerHTML:r.node.innerHTML}e=null!=e&&e;const n=C("wrapper",r),i=M.document.createDocumentFragment();n.innerHTML=t;for(let t=n.children.length;t--;)i.appendChild(n.firstElementChild);const s=this.parent();return e?this.replace(i)&&s:this.add(i)}}L(Nt,{attr:function(t,e,r){if(null==t){t={},e=this.node.attributes;for(const r of e)t[r.nodeName]=$.test(r.nodeValue)?parseFloat(r.nodeValue):r.nodeValue;return t}if(t instanceof Array)return t.reduce(((t,e)=>(t[e]=this.attr(e),t)),{});if("object"==typeof t&&t.constructor===Object)for(e in t)this.attr(e,t[e]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?vt[t]:$.test(e)?parseFloat(e):e;"number"==typeof(e=Ot.reduce(((e,r)=>r(t,e,this)),e))?e=new St(e):Mt.has(t)&&et.isColor(e)?e=new et(e):e.constructor===Array&&(e=new _t(e)),"leading"===t?this.leading&&this.leading(e):"string"==typeof r?this.node.setAttributeNS(r,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!==t&&"x"!==t||this.rebuild()}return this},find:function(t){return dt(t,this.node)},findOne:function(t){return E(this.node.querySelector(t))}}),D(Nt,"Dom");class Pt extends Nt{constructor(t,e){super(t,e),this.dom={},this.node.instance=this,(t.hasAttribute("data-svgjs")||t.hasAttribute("svgjs:data"))&&this.setData(JSON.parse(t.getAttribute("data-svgjs"))??JSON.parse(t.getAttribute("svgjs:data"))??{})}center(t,e){return this.cx(t).cy(e)}cx(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)}cy(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)}defs(){const t=this.root();return t&&t.defs()}dmove(t,e){return this.dx(t).dy(e)}dx(t=0){return this.x(new St(t).plus(this.x()))}dy(t=0){return this.y(new St(t).plus(this.y()))}getEventHolder(){return this}height(t){return this.attr("height",t)}move(t,e){return this.x(t).y(e)}parents(t=this.root()){const e="string"==typeof t;e||(t=A(t));const r=new ct;let n=this;for(;(n=n.parent())&&n.node!==M.document&&"#document-fragment"!==n.nodeName&&(r.push(n),e||n.node!==t.node)&&(!e||!n.matches(t));)if(n.node===this.root().node)return null;return r}reference(t){if(!(t=this.attr(t)))return null;const e=(t+"").match(q);return e?A(e[1]):null}root(){const t=this.parent(N[P]);return t&&t.root()}setData(t){return this.dom=t,this}size(t,e){const r=g(this,t,e);return this.width(new St(r.width)).height(new St(r.height))}width(t){return this.attr("width",t)}writeDataToDom(){return x(this,this.dom),super.writeDataToDom()}x(t){return this.attr("x",t)}y(t){return this.attr("y",t)}}L(Pt,{bbox:function(){const t=ht(this,(t=>t.getBBox()),(t=>{try{const e=t.clone().addTo(st().svg).show(),r=e.node.getBBox();return e.remove(),r}catch(e){throw new Error(`Getting bbox of element "${t.node.nodeName}" is not possible: ${e.toString()}`)}}));return new at(t)},rbox:function(t){const e=ht(this,(t=>t.getBoundingClientRect()),(t=>{throw new Error(`Getting rbox of element "${t.node.nodeName}" is not possible`)})),r=new at(e);return t?r.transform(t.screenCTM().inverseO()):r.addOffset()},inside:function(t,e){const r=this.bbox();return t>r.x&&e>r.y&&t<r.x+r.width&&e<r.y+r.height},point:function(t,e){return new rt(t,e).transformO(this.screenCTM().inverseO())},ctm:function(){return new it(this.node.getCTM())},screenCTM:function(){try{if("function"==typeof this.isRoot&&!this.isRoot()){const t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new it(e)}return new it(this.node.getScreenCTM())}catch(t){return console.warn(`Cannot get CTM from SVG node ${this.node.nodeName}. Is the element rendered?`),new it}}}),D(Pt,"Element");const Ct={stroke:["color","width","opacity","linecap","linejoin","miterlimit","dasharray","dashoffset"],fill:["color","opacity","rule"],prefix:function(t,e){return"color"===e?t:t+"-"+e}};["fill","stroke"].forEach((function(t){const e={};let r;e[t]=function(e){if(void 0===e)return this.attr(t);if("string"==typeof e||e instanceof et||et.isRgb(e)||e instanceof Pt)this.attr(t,e);else for(r=Ct[t].length-1;r>=0;r--)null!=e[Ct[t][r]]&&this.attr(Ct.prefix(t,Ct[t][r]),e[Ct[t][r]]);return this},c(["Element","Runner"],e)})),c(["Element","Runner"],{matrix:function(t,e,r,n,i,s){return null==t?new it(this):this.attr("transform",new it(t,e,r,n,i,s))},rotate:function(t,e,r){return this.transform({rotate:t,ox:e,oy:r},!0)},skew:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({skew:t,ox:e,oy:r},!0):this.transform({skew:[t,e],ox:r,oy:n},!0)},shear:function(t,e,r){return this.transform({shear:t,ox:e,oy:r},!0)},scale:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({scale:t,ox:e,oy:r},!0):this.transform({scale:[t,e],ox:r,oy:n},!0)},translate:function(t,e){return this.transform({translate:[t,e]},!0)},relative:function(t,e){return this.transform({relative:[t,e]},!0)},flip:function(t="both",e="center"){return-1==="xybothtrue".indexOf(t)&&(e=t,t="both"),this.transform({flip:t,origin:e},!0)},opacity:function(t){return this.attr("opacity",t)}}),c("radius",{radius:function(t,e=t){return"radialGradient"===(this._element||this).type?this.attr("r",new St(t)):this.rx(t).ry(e)}}),c("Path",{length:function(){return this.node.getTotalLength()},pointAt:function(t){return new rt(this.node.getPointAtLength(t))}}),c(["Element","Runner"],{font:function(t,e){if("object"==typeof t){for(e in t)this.font(e,t[e]);return this}return"leading"===t?this.leading(e):"anchor"===t?this.attr("text-anchor",e):"size"===t||"family"===t||"weight"===t||"stretch"===t||"variant"===t||"style"===t?this.attr("font-"+t,e):this.attr(t,e)}}),c("Element",["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","touchstart","touchmove","touchleave","touchend","touchcancel","contextmenu","wheel","pointerdown","pointermove","pointerup","pointerleave","pointercancel"].reduce((function(t,e){return t[e]=function(t){return null===t?this.off(e):this.on(e,t),this},t}),{})),c("Element",{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(X).slice(0,-1).map((function(t){const e=t.trim().split("(");return[e[0],e[1].split(Q).map((function(t){return parseFloat(t)}))]})).reverse().reduce((function(t,e){return"matrix"===e[0]?t.lmultiply(it.fromArray(e[1])):t[e[0]].apply(t,e[1])}),new it)},toParent:function(t,e){if(this===t)return this;if(b(this.node))return this.addTo(t,e);const r=this.screenCTM(),n=t.screenCTM().inverse();return this.addTo(t,e).untransform().transform(n.multiply(r)),this},toRoot:function(t){return this.toParent(this.root(),t)},transform:function(t,e){if(null==t||"string"==typeof t){const e=new it(this).decompose();return null==t?e:e[t]}it.isMatrixLike(t)||(t={...t,origin:y(t,this)});const r=new it(!0===e?this:e||!1).transform(t);return this.attr("transform",r)}});class At extends Pt{flatten(){return this.each((function(){if(this instanceof At)return this.flatten().ungroup()})),this}ungroup(t=this.parent(),e=t.index(this)){return e=-1===e?t.children().length:e,this.each((function(r,n){return n[n.length-r-1].toParent(t,e)})),this.remove()}}D(At,"Container");class Tt extends At{constructor(t,e=t){super(T("defs",t),e)}flatten(){return this}ungroup(){return this}}D(Tt,"Defs");class Et extends Pt{}function jt(t){return this.attr("rx",t)}function Dt(t){return this.attr("ry",t)}function kt(t){return null==t?this.cx()-this.rx():this.cx(t+this.rx())}function Bt(t){return null==t?this.cy()-this.ry():this.cy(t+this.ry())}function It(t){return this.attr("cx",t)}function Lt(t){return this.attr("cy",t)}function Vt(t){return null==t?2*this.rx():this.rx(new St(t).divide(2))}function Ft(t){return null==t?2*this.ry():this.ry(new St(t).divide(2))}D(Et,"Shape");class Rt extends Et{constructor(t,e=t){super(T("ellipse",t),e)}size(t,e){const r=g(this,t,e);return this.rx(new St(r.width).divide(2)).ry(new St(r.height).divide(2))}}L(Rt,t),c("Container",{ellipse:V((function(t=0,e=t){return this.put(new Rt).size(t,e).move(0,0)}))}),D(Rt,"Ellipse");class zt extends Nt{constructor(t=M.document.createDocumentFragment()){super(t)}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){const t=new Nt(C("wrapper",r));return t.add(this.node.cloneNode(!0)),t.xml(!1,r)}return super.xml(t,!1,r)}}D(zt,"Fragment");const qt=zt;function Xt(t,e){return"radialGradient"===(this._element||this).type?this.attr({fx:new St(t),fy:new St(e)}):this.attr({x1:new St(t),y1:new St(e)})}function Yt(t,e){return"radialGradient"===(this._element||this).type?this.attr({cx:new St(t),cy:new St(e)}):this.attr({x2:new St(t),y2:new St(e)})}class Gt extends At{constructor(t,e){super(T(t+"Gradient","string"==typeof t?null:t),e)}attr(t,e,r){return"transform"===t&&(t="gradientTransform"),super.attr(t,e,r)}bbox(){return new at}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}L(Gt,e),c({Container:{gradient(...t){return this.defs().gradient(...t)}},Defs:{gradient:V((function(t,e){return this.put(new Gt(t)).update(e)}))}}),D(Gt,"Gradient");class Ht extends At{constructor(t,e=t){super(T("pattern",t),e)}attr(t,e,r){return"transform"===t&&(t="patternTransform"),super.attr(t,e,r)}bbox(){return new at}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}c({Container:{pattern(...t){return this.defs().pattern(...t)}},Defs:{pattern:V((function(t,e,r){return this.put(new Ht).update(r).attr({x:0,y:0,width:t,height:e,patternUnits:"userSpaceOnUse"})}))}}),D(Ht,"Pattern");class Ut extends Et{constructor(t,e=t){super(T("image",t),e)}load(t,e){if(!t)return this;const r=new M.window.Image;return yt(r,"load",(function(t){const n=this.parent(Ht);0===this.width()&&0===this.height()&&this.size(r.width,r.height),n instanceof Ht&&0===n.width()&&0===n.height()&&n.size(this.width(),this.height()),"function"==typeof e&&e.call(this,t)}),this),yt(r,"load error",(function(){wt(r)})),this.attr("href",r.src=t,S)}}var $t;$t=function(t,e,r){return"fill"!==t&&"stroke"!==t||W.test(e)&&(e=r.root().defs().image(e)),e instanceof Ut&&(e=r.root().defs().pattern(0,0,(t=>{t.add(e)}))),e},Ot.push($t),c({Container:{image:V((function(t,e){return this.put(new Ut).size(0,0).load(t,e)}))}}),D(Ut,"Image");class Wt extends _t{bbox(){let t=-1/0,e=-1/0,r=1/0,n=1/0;return this.forEach((function(i){t=Math.max(i[0],t),e=Math.max(i[1],e),r=Math.min(i[0],r),n=Math.min(i[1],n)})),new at(r,n,t-r,e-n)}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r=this.length-1;r>=0;r--)this[r]=[this[r][0]+t,this[r][1]+e];return this}parse(t=[0,0]){const e=[];(t=t instanceof Array?Array.prototype.concat.apply([],t):t.trim().split(Q).map(parseFloat)).length%2!=0&&t.pop();for(let r=0,n=t.length;r<n;r+=2)e.push([t[r],t[r+1]]);return e}size(t,e){let r;const n=this.bbox();for(r=this.length-1;r>=0;r--)n.width&&(this[r][0]=(this[r][0]-n.x)*t/n.width+n.x),n.height&&(this[r][1]=(this[r][1]-n.y)*e/n.height+n.y);return this}toLine(){return{x1:this[0][0],y1:this[0][1],x2:this[1][0],y2:this[1][1]}}toString(){const t=[];for(let e=0,r=this.length;e<r;e++)t.push(this[e].join(","));return t.join(" ")}transform(t){return this.clone().transformO(t)}transformO(t){it.isMatrixLike(t)||(t=new it(t));for(let e=this.length;e--;){const[r,n]=this[e];this[e][0]=t.a*r+t.c*n+t.e,this[e][1]=t.b*r+t.d*n+t.f}return this}}const Qt=Wt;function Jt(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}function Zt(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}function Kt(t){const e=this.bbox();return null==t?e.width:this.size(t,e.height)}function te(t){const e=this.bbox();return null==t?e.height:this.size(e.width,t)}class ee extends Et{constructor(t,e=t){super(T("line",t),e)}array(){return new Wt([[this.attr("x1"),this.attr("y1")],[this.attr("x2"),this.attr("y2")]])}move(t,e){return this.attr(this.array().move(t,e).toLine())}plot(t,e,r,n){return null==t?this.array():(t=void 0!==e?{x1:t,y1:e,x2:r,y2:n}:new Wt(t).toLine(),this.attr(t))}size(t,e){const r=g(this,t,e);return this.attr(this.array().size(r.width,r.height).toLine())}}L(ee,i),c({Container:{line:V((function(...t){return ee.prototype.plot.apply(this.put(new ee),null!=t[0]?t:[0,0,0,0])}))}}),D(ee,"Line");class re extends At{constructor(t,e=t){super(T("marker",t),e)}height(t){return this.attr("markerHeight",t)}orient(t){return this.attr("orient",t)}ref(t,e){return this.attr("refX",t).attr("refY",e)}toString(){return"url(#"+this.id()+")"}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}width(t){return this.attr("markerWidth",t)}}function ne(t,e){return function(r){return null==r?this[t]:(this[t]=r,e&&e.call(this),this)}}c({Container:{marker(...t){return this.defs().marker(...t)}},Defs:{marker:V((function(t,e,r){return this.put(new re).size(t,e).ref(t/2,e/2).viewbox(0,0,t,e).attr("orient","auto").update(r)}))},marker:{marker(t,e,r,n){let i=["marker"];return"all"!==t&&i.push(t),i=i.join("-"),t=arguments[1]instanceof re?arguments[1]:this.defs().marker(e,r,n),this.attr(i,t)}}}),D(re,"Marker");const ie={"-":function(t){return t},"<>":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)},bezier:function(t,e,r,n){return function(i){return i<0?t>0?e/t*i:r>0?n/r*i:0:i>1?r<1?(1-n)/(1-r)*i+(n-r)/(1-r):t<1?(1-e)/(1-t)*i+(e-t)/(1-t):1:3*i*(1-i)**2*e+3*i**2*(1-i)*n+i**3}},steps:function(t,e="end"){e=e.split("-").reverse()[0];let r=t;return"none"===e?--r:"both"===e&&++r,(n,i=!1)=>{let s=Math.floor(n*t);const o=n*s%1==0;return"start"!==e&&"both"!==e||++s,i&&o&&--s,n>=0&&s<0&&(s=0),n<=1&&s>r&&(s=r),s/r}}};class se{done(){return!1}}class oe extends se{constructor(t=">"){super(),this.ease=ie[t]||t}step(t,e,r){return"number"!=typeof t?r<1?t:e:t+(e-t)*this.ease(r)}}class ae extends se{constructor(t){super(),this.stepper=t}done(t){return t.done}step(t,e,r,n){return this.stepper(t,e,r,n)}}function he(){const t=(this._duration||500)/1e3,e=this._overshoot||0,r=Math.PI,n=Math.log(e/100+1e-10),i=-n/Math.sqrt(r*r+n*n),s=3.9/(i*t);this.d=2*i*s,this.k=s*s}L(class extends ae{constructor(t=500,e=0){super(),this.duration(t).overshoot(e)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;r>100&&(r=16),r/=1e3;const i=n.velocity||0,s=-this.d*i-this.k*(t-e),o=t+i*r+s*r*r/2;return n.velocity=i+s*r,n.done=Math.abs(e-o)+Math.abs(i)<.002,n.done?e:o}},{duration:ne("_duration",he),overshoot:ne("_overshoot",he)}),L(class extends ae{constructor(t=.1,e=.01,r=0,n=1e3){super(),this.p(t).i(e).d(r).windup(n)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;const i=e-t;let s=(n.integral||0)+i*r;const o=(i-(n.error||0))/r,a=this._windup;return!1!==a&&(s=Math.max(-a,Math.min(s,a))),n.error=i,n.integral=s,n.done=Math.abs(i)<.001,n.done?e:t+(this.P*i+this.I*s+this.D*o)}},{windup:ne("_windup"),p:ne("P"),i:ne("I"),d:ne("D")});const ue={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0},ce={M:function(t,e,r){return e.x=r.x=t[0],e.y=r.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},S:function(t,e){return e.x=t[2],e.y=t[3],["S",t[0],t[1],t[2],t[3]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},T:function(t,e){return e.x=t[0],e.y=t[1],["T",t[0],t[1]]},Z:function(t,e,r){return e.x=r.x,e.y=r.y,["Z"]},A:function(t,e){return e.x=t[5],e.y=t[6],["A",t[0],t[1],t[2],t[3],t[4],t[5],t[6]]}},le="mlhvqtcsaz".split("");for(let t=0,e=le.length;t<e;++t)ce[le[t]]=function(t){return function(e,r,n){if("H"===t)e[0]=e[0]+r.x;else if("V"===t)e[0]=e[0]+r.y;else if("A"===t)e[5]=e[5]+r.x,e[6]=e[6]+r.y;else for(let t=0,n=e.length;t<n;++t)e[t]=e[t]+(t%2?r.y:r.x);return ce[t](e,r,n)}}(le[t].toUpperCase());function de(t){return t.segment.length&&t.segment.length-1===ue[t.segment[0].toUpperCase()]}function fe(t,e){t.inNumber&&pe(t,!1);const r=J.test(e);if(r)t.segment=[e];else{const e=t.lastCommand,r=e.toLowerCase(),n=e===r;t.segment=["m"===r?n?"l":"L":e]}return t.inSegment=!0,t.lastCommand=t.segment[0],r}function pe(t,e){if(!t.inNumber)throw new Error("Parser Error");t.number&&t.segment.push(parseFloat(t.number)),t.inNumber=e,t.number="",t.pointSeen=!1,t.hasExponent=!1,de(t)&&me(t)}function me(t){t.inSegment=!1,t.absolute&&(t.segment=function(t){const e=t.segment[0];return ce[e](t.segment.slice(1),t.p,t.p0)}(t)),t.segments.push(t.segment)}function ge(t){if(!t.segment.length)return!1;const e="A"===t.segment[0].toUpperCase(),r=t.segment.length;return e&&(4===r||5===r)}function ye(t){return"E"===t.lastToken.toUpperCase()}const we=new Set([" ",",","\t","\n","\r","\f"]);class be extends _t{bbox(){return st().path.setAttribute("d",this.toString()),new at(st.nodes.path.getBBox())}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r,n=this.length-1;n>=0;n--)r=this[n][0],"M"===r||"L"===r||"T"===r?(this[n][1]+=t,this[n][2]+=e):"H"===r?this[n][1]+=t:"V"===r?this[n][1]+=e:"C"===r||"S"===r||"Q"===r?(this[n][1]+=t,this[n][2]+=e,this[n][3]+=t,this[n][4]+=e,"C"===r&&(this[n][5]+=t,this[n][6]+=e)):"A"===r&&(this[n][6]+=t,this[n][7]+=e);return this}parse(t="M0 0"){return Array.isArray(t)&&(t=Array.prototype.concat.apply([],t).toString()),function(t,e=!0){let r=0,n="";const i={segment:[],inNumber:!1,number:"",lastToken:"",inSegment:!1,segments:[],pointSeen:!1,hasExponent:!1,absolute:e,p0:new rt,p:new rt};for(;i.lastToken=n,n=t.charAt(r++);)if(i.inSegment||!fe(i,n))if("."!==n)if(isNaN(parseInt(n)))if(we.has(n))i.inNumber&&pe(i,!1);else if("-"!==n&&"+"!==n)if("E"!==n.toUpperCase()){if(J.test(n)){if(i.inNumber)pe(i,!1);else{if(!de(i))throw new Error("parser Error");me(i)}--r}}else i.number+=n,i.hasExponent=!0;else{if(i.inNumber&&!ye(i)){pe(i,!1),--r;continue}i.number+=n,i.inNumber=!0}else{if("0"===i.number||ge(i)){i.inNumber=!0,i.number=n,pe(i,!0);continue}i.inNumber=!0,i.number+=n}else{if(i.pointSeen||i.hasExponent){pe(i,!1),--r;continue}i.inNumber=!0,i.pointSeen=!0,i.number+=n}return i.inNumber&&pe(i,!1),i.inSegment&&de(i)&&me(i),i.segments}(t)}size(t,e){const r=this.bbox();let n,i;for(r.width=0===r.width?1:r.width,r.height=0===r.height?1:r.height,n=this.length-1;n>=0;n--)i=this[n][0],"M"===i||"L"===i||"T"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y):"H"===i?this[n][1]=(this[n][1]-r.x)*t/r.width+r.x:"V"===i?this[n][1]=(this[n][1]-r.y)*e/r.height+r.y:"C"===i||"S"===i||"Q"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y,this[n][3]=(this[n][3]-r.x)*t/r.width+r.x,this[n][4]=(this[n][4]-r.y)*e/r.height+r.y,"C"===i&&(this[n][5]=(this[n][5]-r.x)*t/r.width+r.x,this[n][6]=(this[n][6]-r.y)*e/r.height+r.y)):"A"===i&&(this[n][1]=this[n][1]*t/r.width,this[n][2]=this[n][2]*e/r.height,this[n][6]=(this[n][6]-r.x)*t/r.width+r.x,this[n][7]=(this[n][7]-r.y)*e/r.height+r.y);return this}toString(){return function(t){let e="";for(let r=0,n=t.length;r<n;r++)e+=t[r][0],null!=t[r][1]&&(e+=t[r][1],null!=t[r][2]&&(e+=" ",e+=t[r][2],null!=t[r][3]&&(e+=" ",e+=t[r][3],e+=" ",e+=t[r][4],null!=t[r][5]&&(e+=" ",e+=t[r][5],e+=" ",e+=t[r][6],null!=t[r][7]&&(e+=" ",e+=t[r][7])))));return e+" "}(this)}}const xe=t=>{const e=typeof t;return"number"===e?St:"string"===e?et.isColor(t)?et:Q.test(t)?J.test(t)?be:_t:F.test(t)?St:_e:Ne.indexOf(t.constructor)>-1?t.constructor:Array.isArray(t)?_t:"object"===e?Oe:_e};class ve{constructor(t){this._stepper=t||new oe("-"),this._from=null,this._to=null,this._type=null,this._context=null,this._morphObj=null}at(t){return this._morphObj.morph(this._from,this._to,t,this._stepper,this._context)}done(){return this._context.map(this._stepper.done).reduce((function(t,e){return t&&e}),!0)}from(t){return null==t?this._from:(this._from=this._set(t),this)}stepper(t){return null==t?this._stepper:(this._stepper=t,this)}to(t){return null==t?this._to:(this._to=this._set(t),this)}type(t){return null==t?this._type:(this._type=t,this)}_set(t){this._type||this.type(xe(t));let e=new this._type(t);return this._type===et&&(e=this._to?e[this._to[4]]():this._from?e[this._from[4]]():e),this._type===Oe&&(e=this._to?e.align(this._to):this._from?e.align(this._from):e),e=e.toConsumable(),this._morphObj=this._morphObj||new this._type,this._context=this._context||Array.apply(null,Array(e.length)).map(Object).map((function(t){return t.done=!0,t})),e}}class _e{constructor(...t){this.init(...t)}init(t){return t=Array.isArray(t)?t[0]:t,this.value=t,this}toArray(){return[this.value]}valueOf(){return this.value}}class Se{constructor(...t){this.init(...t)}init(t){return Array.isArray(t)&&(t={scaleX:t[0],scaleY:t[1],shear:t[2],rotate:t[3],translateX:t[4],translateY:t[5],originX:t[6],originY:t[7]}),Object.assign(this,Se.defaults,t),this}toArray(){const t=this;return[t.scaleX,t.scaleY,t.shear,t.rotate,t.translateX,t.translateY,t.originX,t.originY]}}Se.defaults={scaleX:1,scaleY:1,shear:0,rotate:0,translateX:0,translateY:0,originX:0,originY:0};const Me=(t,e)=>t[0]<e[0]?-1:t[0]>e[0]?1:0;class Oe{constructor(...t){this.init(...t)}align(t){const e=this.values;for(let r=0,n=e.length;r<n;++r){if(e[r+1]===t[r+1]){if(e[r+1]===et&&t[r+7]!==e[r+7]){const e=t[r+7],n=new et(this.values.splice(r+3,5))[e]().toArray();this.values.splice(r+3,0,...n)}r+=e[r+2]+2;continue}if(!t[r+1])return this;const n=(new t[r+1]).toArray(),i=e[r+2]+3;e.splice(r,i,t[r],t[r+1],t[r+2],...n),r+=e[r+2]+2}return this}init(t){if(this.values=[],Array.isArray(t))return void(this.values=t.slice());t=t||{};const e=[];for(const r in t){const n=xe(t[r]),i=new n(t[r]).toArray();e.push([r,n,i.length,...i])}return e.sort(Me),this.values=e.reduce(((t,e)=>t.concat(e)),[]),this}toArray(){return this.values}valueOf(){const t={},e=this.values;for(;e.length;){const r=e.shift(),n=e.shift(),i=e.shift(),s=e.splice(0,i);t[r]=new n(s)}return t}}const Ne=[_e,Se,Oe];class Pe extends Et{constructor(t,e=t){super(T("path",t),e)}array(){return this._array||(this._array=new be(this.attr("d")))}clear(){return delete this._array,this}height(t){return null==t?this.bbox().height:this.size(this.bbox().width,t)}move(t,e){return this.attr("d",this.array().move(t,e))}plot(t){return null==t?this.array():this.clear().attr("d","string"==typeof t?t:this._array=new be(t))}size(t,e){const r=g(this,t,e);return this.attr("d",this.array().size(r.width,r.height))}width(t){return null==t?this.bbox().width:this.size(t,this.bbox().height)}x(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}y(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}}function Ce(){return this._array||(this._array=new Wt(this.attr("points")))}function Ae(){return delete this._array,this}function Te(t,e){return this.attr("points",this.array().move(t,e))}function Ee(t){return null==t?this.array():this.clear().attr("points","string"==typeof t?t:this._array=new Wt(t))}function je(t,e){const r=g(this,t,e);return this.attr("points",this.array().size(r.width,r.height))}Pe.prototype.MorphArray=be,c({Container:{path:V((function(t){return this.put(new Pe).plot(t||new be)}))}}),D(Pe,"Path");class De extends Et{constructor(t,e=t){super(T("polygon",t),e)}}c({Container:{polygon:V((function(t){return this.put(new De).plot(t||new Wt)}))}}),L(De,i),L(De,s),D(De,"Polygon");class ke extends Et{constructor(t,e=t){super(T("polyline",t),e)}}c({Container:{polyline:V((function(t){return this.put(new ke).plot(t||new Wt)}))}}),L(ke,i),L(ke,s),D(ke,"Polyline");class Be extends Et{constructor(t,e=t){super(T("rect",t),e)}}L(Be,{rx:jt,ry:Dt}),c({Container:{rect:V((function(t,e){return this.put(new Be).size(t,e)}))}}),D(Be,"Rect");class Ie{constructor(){this._first=null,this._last=null}first(){return this._first&&this._first.value}last(){return this._last&&this._last.value}push(t){const e=void 0!==t.next?t:{value:t,next:null,prev:null};return this._last?(e.prev=this._last,this._last.next=e,this._last=e):(this._last=e,this._first=e),e}remove(t){t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t===this._last&&(this._last=t.prev),t===this._first&&(this._first=t.next),t.prev=null,t.next=null}shift(){const t=this._first;return t?(this._first=t.next,this._first&&(this._first.prev=null),this._last=this._first?this._last:null,t.value):null}}const Le={nextDraw:null,frames:new Ie,timeouts:new Ie,immediates:new Ie,timer:()=>M.window.performance||M.window.Date,transforms:[],frame(t){const e=Le.frames.push({run:t});return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),e},timeout(t,e){e=e||0;const r=Le.timer().now()+e,n=Le.timeouts.push({run:t,time:r});return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),n},immediate(t){const e=Le.immediates.push(t);return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),e},cancelFrame(t){null!=t&&Le.frames.remove(t)},clearTimeout(t){null!=t&&Le.timeouts.remove(t)},cancelImmediate(t){null!=t&&Le.immediates.remove(t)},_draw(t){let e=null;const r=Le.timeouts.last();for(;(e=Le.timeouts.shift())&&(t>=e.time?e.run():Le.timeouts.push(e),e!==r););let n=null;const i=Le.frames.last();for(;n!==i&&(n=Le.frames.shift());)n.run(t);let s=null;for(;s=Le.immediates.shift();)s();Le.nextDraw=Le.timeouts.first()||Le.frames.first()?M.window.requestAnimationFrame(Le._draw):null}},Ve=Le,Fe=function(t){const e=t.start,r=t.runner.duration();return{start:e,duration:r,end:e+r,runner:t.runner}},Re=function(){const t=M.window;return(t.performance||t.Date).now()};class ze extends bt{constructor(t=Re){super(),this._timeSource=t,this.terminate()}active(){return!!this._nextFrame}finish(){return this.time(this.getEndTimeOfTimeline()+1),this.pause()}getEndTime(){const t=this.getLastRunnerInfo(),e=t?t.runner.duration():0;return(t?t.start:this._time)+e}getEndTimeOfTimeline(){const t=this._runners.map((t=>t.start+t.runner.duration()));return Math.max(0,...t)}getLastRunnerInfo(){return this.getRunnerInfoById(this._lastRunnerId)}getRunnerInfoById(t){return this._runners[this._runnerIds.indexOf(t)]||null}pause(){return this._paused=!0,this._continue()}persist(t){return null==t?this._persist:(this._persist=t,this)}play(){return this._paused=!1,this.updateTime()._continue()}reverse(t){const e=this.speed();if(null==t)return this.speed(-e);const r=Math.abs(e);return this.speed(t?-r:r)}schedule(t,e,r){if(null==t)return this._runners.map(Fe);let n=0;const i=this.getEndTime();if(e=e||0,null==r||"last"===r||"after"===r)n=i;else if("absolute"===r||"start"===r)n=e,e=0;else if("now"===r)n=this._time;else if("relative"===r){const r=this.getRunnerInfoById(t.id);r&&(n=r.start+e,e=0)}else{if("with-last"!==r)throw new Error('Invalid value for the "when" parameter');{const t=this.getLastRunnerInfo();n=t?t.start:this._time}}t.unschedule(),t.timeline(this);const s=t.persist(),o={persist:null===s?this._persist:s,start:n+e,runner:t};return this._lastRunnerId=t.id,this._runners.push(o),this._runners.sort(((t,e)=>t.start-e.start)),this._runnerIds=this._runners.map((t=>t.runner.id)),this.updateTime()._continue(),this}seek(t){return this.time(this._time+t)}source(t){return null==t?this._timeSource:(this._timeSource=t,this)}speed(t){return null==t?this._speed:(this._speed=t,this)}stop(){return this.time(0),this.pause()}time(t){return null==t?this._time:(this._time=t,this._continue(!0))}unschedule(t){const e=this._runnerIds.indexOf(t.id);return e<0||(this._runners.splice(e,1),this._runnerIds.splice(e,1),t.timeline(null)),this}updateTime(){return this.active()||(this._lastSourceTime=this._timeSource()),this}_continue(t=!1){return Ve.cancelFrame(this._nextFrame),this._nextFrame=null,t?this._stepImmediate():(this._paused||(this._nextFrame=Ve.frame(this._step)),this)}_stepFn(t=!1){const e=this._timeSource();let r=e-this._lastSourceTime;t&&(r=0);const n=this._speed*r+(this._time-this._lastStepTime);this._lastSourceTime=e,t||(this._time+=n,this._time=this._time<0?0:this._time),this._lastStepTime=this._time,this.fire("time",this._time);for(let t=this._runners.length;t--;){const e=this._runners[t],r=e.runner;this._time-e.start<=0&&r.reset()}let i=!1;for(let t=0,e=this._runners.length;t<e;t++){const r=this._runners[t],s=r.runner;let o=n;const a=this._time-r.start;a<=0?i=!0:(a<o&&(o=a),s.active()&&(s.step(o).done?!0!==r.persist&&s.duration()-s.time()+this._time+r.persist<this._time&&(s.unschedule(),--t,--e):i=!0))}return i&&!(this._speed<0&&0===this._time)||this._runnerIds.length&&this._speed<0&&this._time>0?this._continue():(this.pause(),this.fire("finished")),this}terminate(){this._startTime=0,this._speed=1,this._persist=0,this._nextFrame=null,this._paused=!0,this._runners=[],this._runnerIds=[],this._lastRunnerId=-1,this._time=0,this._lastSourceTime=0,this._lastStepTime=0,this._step=this._stepFn.bind(this,!1),this._stepImmediate=this._stepFn.bind(this,!0)}}c({Element:{timeline:function(t){return null==t?(this._timeline=this._timeline||new ze,this._timeline):(this._timeline=t,this)}}});class qe extends bt{constructor(t){super(),this.id=qe.id++,t="function"==typeof(t=null==t?400:t)?new ae(t):t,this._element=null,this._timeline=null,this.done=!1,this._queue=[],this._duration="number"==typeof t&&t,this._isDeclarative=t instanceof ae,this._stepper=this._isDeclarative?t:new oe,this._history={},this.enabled=!0,this._time=0,this._lastTime=0,this._reseted=!0,this.transforms=new it,this.transformId=1,this._haveReversed=!1,this._reverse=!1,this._loopsDone=0,this._swing=!1,this._wait=0,this._times=1,this._frameId=null,this._persist=!!this._isDeclarative||null}static sanitise(t,e,r){let n=1,i=!1,s=0;return e=e??0,r=r||"last","object"!=typeof(t=t??400)||t instanceof se||(e=t.delay??e,r=t.when??r,i=t.swing||i,n=t.times??n,s=t.wait??s,t=t.duration??400),{duration:t,delay:e,swing:i,times:n,wait:s,when:r}}active(t){return null==t?this.enabled:(this.enabled=t,this)}addTransform(t){return this.transforms.lmultiplyO(t),this}after(t){return this.on("finished",t)}animate(t,e,r){const n=qe.sanitise(t,e,r),i=new qe(n.duration);return this._timeline&&i.timeline(this._timeline),this._element&&i.element(this._element),i.loop(n).schedule(n.delay,n.when)}clearTransform(){return this.transforms=new it,this}clearTransformsFromQueue(){this.done&&this._timeline&&this._timeline._runnerIds.includes(this.id)||(this._queue=this._queue.filter((t=>!t.isTransform)))}delay(t){return this.animate(0,t)}duration(){return this._times*(this._wait+this._duration)-this._wait}during(t){return this.queue(null,t)}ease(t){return this._stepper=new oe(t),this}element(t){return null==t?this._element:(this._element=t,t._prepareRunner(),this)}finish(){return this.step(1/0)}loop(t,e,r){return"object"==typeof t&&(e=t.swing,r=t.wait,t=t.times),this._times=t||1/0,this._swing=e||!1,this._wait=r||0,!0===this._times&&(this._times=1/0),this}loops(t){const e=this._duration+this._wait;if(null==t){const t=Math.floor(this._time/e),r=(this._time-t*e)/this._duration;return Math.min(t+r,this._times)}const r=t%1,n=e*Math.floor(t)+this._duration*r;return this.time(n)}persist(t){return null==t?this._persist:(this._persist=t,this)}position(t){const e=this._time,r=this._duration,n=this._wait,i=this._times,s=this._swing,o=this._reverse;let a;if(null==t){const t=function(t){const e=s*Math.floor(t%(2*(n+r))/(n+r)),i=e&&!o||!e&&o,a=Math.pow(-1,i)*(t%(n+r))/r+i;return Math.max(Math.min(a,1),0)},h=i*(n+r)-n;return a=e<=0?Math.round(t(1e-5)):e<h?t(e):Math.round(t(h-1e-5)),a}const h=Math.floor(this.loops()),u=s&&h%2==0;return a=h+(u&&!o||o&&u?t:1-t),this.loops(a)}progress(t){return null==t?Math.min(1,this._time/this.duration()):this.time(t*this.duration())}queue(t,e,r,n){return this._queue.push({initialiser:t||xt,runner:e||xt,retarget:r,isTransform:n,initialised:!1,finished:!1}),this.timeline()&&this.timeline()._continue(),this}reset(){return this._reseted||(this.time(0),this._reseted=!0),this}reverse(t){return this._reverse=null==t?!this._reverse:t,this}schedule(t,e,r){if(t instanceof ze||(r=e,e=t,t=this.timeline()),!t)throw Error("Runner cannot be scheduled without timeline");return t.schedule(this,e,r),this}step(t){if(!this.enabled)return this;t=null==t?16:t,this._time+=t;const e=this.position(),r=this._lastPosition!==e&&this._time>=0;this._lastPosition=e;const n=this.duration(),i=this._lastTime<=0&&this._time>0,s=this._lastTime<n&&this._time>=n;this._lastTime=this._time,i&&this.fire("start",this);const o=this._isDeclarative;this.done=!o&&!s&&this._time>=n,this._reseted=!1;let a=!1;return(r||o)&&(this._initialise(r),this.transforms=new it,a=this._run(o?t:e),this.fire("step",this)),this.done=this.done||a&&o,s&&this.fire("finished",this),this}time(t){if(null==t)return this._time;const e=t-this._time;return this.step(e),this}timeline(t){return void 0===t?this._timeline:(this._timeline=t,this)}unschedule(){const t=this.timeline();return t&&t.unschedule(this),this}_initialise(t){if(t||this._isDeclarative)for(let e=0,r=this._queue.length;e<r;++e){const r=this._queue[e],n=this._isDeclarative||!r.initialised&&t;t=!r.finished,n&&t&&(r.initialiser.call(this),r.initialised=!0)}}_rememberMorpher(t,e){if(this._history[t]={morpher:e,caller:this._queue[this._queue.length-1]},this._isDeclarative){const t=this.timeline();t&&t.play()}}_run(t){let e=!0;for(let r=0,n=this._queue.length;r<n;++r){const n=this._queue[r],i=n.runner.call(this,t);n.finished=n.finished||!0===i,e=e&&n.finished}return e}_tryRetarget(t,e,r){if(this._history[t]){if(!this._history[t].caller.initialised){const e=this._queue.indexOf(this._history[t].caller);return this._queue.splice(e,1),!1}this._history[t].caller.retarget?this._history[t].caller.retarget.call(this,e,r):this._history[t].morpher.to(e),this._history[t].caller.finished=!1;const n=this.timeline();return n&&n.play(),!0}return!1}}qe.id=0;class Xe{constructor(t=new it,e=-1,r=!0){this.transforms=t,this.id=e,this.done=r}clearTransformsFromQueue(){}}L([qe,Xe],{mergeWith(t){return new Xe(t.transforms.lmultiply(this.transforms),t.id)}});const Ye=(t,e)=>t.lmultiplyO(e),Ge=t=>t.transforms;function He(){const t=this._transformationRunners.runners.map(Ge).reduce(Ye,new it);this.transform(t),this._transformationRunners.merge(),1===this._transformationRunners.length()&&(this._frameId=null)}class Ue{constructor(){this.runners=[],this.ids=[]}add(t){if(this.runners.includes(t))return;const e=t.id+1;return this.runners.push(t),this.ids.push(e),this}clearBefore(t){const e=this.ids.indexOf(t+1)||1;return this.ids.splice(0,e,0),this.runners.splice(0,e,new Xe).forEach((t=>t.clearTransformsFromQueue())),this}edit(t,e){const r=this.ids.indexOf(t+1);return this.ids.splice(r,1,t+1),this.runners.splice(r,1,e),this}getByID(t){return this.runners[this.ids.indexOf(t+1)]}length(){return this.ids.length}merge(){let t=null;for(let e=0;e<this.runners.length;++e){const r=this.runners[e];if(!(t&&r.done&&t.done)||r._timeline&&r._timeline._runnerIds.includes(r.id)||t._timeline&&t._timeline._runnerIds.includes(t.id))t=r;else{this.remove(r.id);const n=r.mergeWith(t);this.edit(t.id,n),t=n,--e}}return this}remove(t){const e=this.ids.indexOf(t+1);return this.ids.splice(e,1),this.runners.splice(e,1),this}}c({Element:{animate(t,e,r){const n=qe.sanitise(t,e,r),i=this.timeline();return new qe(n.duration).loop(n).element(this).timeline(i.play()).schedule(n.delay,n.when)},delay(t,e){return this.animate(0,t,e)},_clearTransformRunnersBefore(t){this._transformationRunners.clearBefore(t.id)},_currentTransform(t){return this._transformationRunners.runners.filter((e=>e.id<=t.id)).map(Ge).reduce(Ye,new it)},_addRunner(t){this._transformationRunners.add(t),Ve.cancelImmediate(this._frameId),this._frameId=Ve.immediate(He.bind(this))},_prepareRunner(){null==this._frameId&&(this._transformationRunners=(new Ue).add(new Xe(new it(this))))}}}),L(qe,{attr(t,e){return this.styleAttr("attr",t,e)},css(t,e){return this.styleAttr("css",t,e)},styleAttr(t,e,r){if("string"==typeof e)return this.styleAttr(t,{[e]:r});let n=e;if(this._tryRetarget(t,n))return this;let i=new ve(this._stepper).to(n),s=Object.keys(n);return this.queue((function(){i=i.from(this.element()[t](s))}),(function(e){return this.element()[t](i.at(e).valueOf()),i.done()}),(function(e){const r=Object.keys(e),o=(a=s,r.filter((t=>!a.includes(t))));var a;if(o.length){const e=this.element()[t](o),r=new Oe(i.from()).valueOf();Object.assign(r,e),i.from(r)}const h=new Oe(i.to()).valueOf();Object.assign(h,e),i.to(h),s=r,n=e})),this._rememberMorpher(t,i),this},zoom(t,e){if(this._tryRetarget("zoom",t,e))return this;let r=new ve(this._stepper).to(new St(t));return this.queue((function(){r=r.from(this.element().zoom())}),(function(t){return this.element().zoom(r.at(t),e),r.done()}),(function(t,n){e=n,r.to(t)})),this._rememberMorpher("zoom",r),this},transform(t,e,r){if(e=t.relative||e,this._isDeclarative&&!e&&this._tryRetarget("transform",t))return this;const n=it.isMatrixLike(t);r=null!=t.affine?t.affine:null!=r?r:!n;const i=new ve(this._stepper).type(r?Se:it);let s,o,a,h,u;return this.queue((function(){o=o||this.element(),s=s||y(t,o),u=new it(e?void 0:o),o._addRunner(this),e||o._clearTransformRunnersBefore(this)}),(function(c){e||this.clearTransform();const{x:l,y:d}=new rt(s).transform(o._currentTransform(this));let f=new it({...t,origin:[l,d]}),p=this._isDeclarative&&a?a:u;if(r){f=f.decompose(l,d),p=p.decompose(l,d);const t=f.rotate,e=p.rotate,r=[t-360,t,t+360],n=r.map((t=>Math.abs(t-e))),i=Math.min(...n),s=n.indexOf(i);f.rotate=r[s]}e&&(n||(f.rotate=t.rotate||0),this._isDeclarative&&h&&(p.rotate=h)),i.from(p),i.to(f);const m=i.at(c);return h=m.rotate,a=new it(m),this.addTransform(a),o._addRunner(this),i.done()}),(function(e){(e.origin||"center").toString()!==(t.origin||"center").toString()&&(s=y(e,o)),t={...e,origin:s}}),!0),this._isDeclarative&&this._rememberMorpher("transform",i),this},x(t){return this._queueNumber("x",t)},y(t){return this._queueNumber("y",t)},ax(t){return this._queueNumber("ax",t)},ay(t){return this._queueNumber("ay",t)},dx(t=0){return this._queueNumberDelta("x",t)},dy(t=0){return this._queueNumberDelta("y",t)},dmove(t,e){return this.dx(t).dy(e)},_queueNumberDelta(t,e){if(e=new St(e),this._tryRetarget(t,e))return this;const r=new ve(this._stepper).to(e);let n=null;return this.queue((function(){n=this.element()[t](),r.from(n),r.to(n+e)}),(function(e){return this.element()[t](r.at(e)),r.done()}),(function(t){r.to(n+new St(t))})),this._rememberMorpher(t,r),this},_queueObject(t,e){if(this._tryRetarget(t,e))return this;const r=new ve(this._stepper).to(e);return this.queue((function(){r.from(this.element()[t]())}),(function(e){return this.element()[t](r.at(e)),r.done()})),this._rememberMorpher(t,r),this},_queueNumber(t,e){return this._queueObject(t,new St(e))},cx(t){return this._queueNumber("cx",t)},cy(t){return this._queueNumber("cy",t)},move(t,e){return this.x(t).y(e)},amove(t,e){return this.ax(t).ay(e)},center(t,e){return this.cx(t).cy(e)},size(t,e){let r;return t&&e||(r=this._element.bbox()),t||(t=r.width/r.height*e),e||(e=r.height/r.width*t),this.width(t).height(e)},width(t){return this._queueNumber("width",t)},height(t){return this._queueNumber("height",t)},plot(t,e,r,n){if(4===arguments.length)return this.plot([t,e,r,n]);if(this._tryRetarget("plot",t))return this;const i=new ve(this._stepper).type(this._element.MorphArray).to(t);return this.queue((function(){i.from(this._element.array())}),(function(t){return this._element.plot(i.at(t)),i.done()})),this._rememberMorpher("plot",i),this},leading(t){return this._queueNumber("leading",t)},viewbox(t,e,r,n){return this._queueObject("viewbox",new at(t,e,r,n))},update(t){return"object"!=typeof t?this.update({offset:arguments[0],color:arguments[1],opacity:arguments[2]}):(null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",t.offset),this)}}),L(qe,{rx:jt,ry:Dt,from:Xt,to:Yt}),D(qe,"Runner");class $e extends At{constructor(t,e=t){super(T("svg",t),e),this.namespace()}defs(){return this.isRoot()?E(this.node.querySelector("defs"))||this.put(new Tt):this.root().defs()}isRoot(){return!this.node.parentNode||!(this.node.parentNode instanceof M.window.SVGElement)&&"#document-fragment"!==this.node.parentNode.nodeName}namespace(){return this.isRoot()?this.attr({xmlns:v,version:"1.1"}).attr("xmlns:xlink",S,_):this.root().namespace()}removeNamespace(){return this.attr({xmlns:null,version:null}).attr("xmlns:xlink",null,_).attr("xmlns:svgjs",null,_)}root(){return this.isRoot()?this:super.root()}}c({Container:{nested:V((function(){return this.put(new $e)}))}}),D($e,"Svg",!0);class We extends At{constructor(t,e=t){super(T("symbol",t),e)}}function Qe(t){return!1===this._build&&this.clear(),this.node.appendChild(M.document.createTextNode(t)),this}function Je(){return this.node.getComputedTextLength()}function Ze(t,e=this.bbox()){return null==t?e.x:this.attr("x",this.attr("x")+t-e.x)}function Ke(t,e=this.bbox()){return null==t?e.y:this.attr("y",this.attr("y")+t-e.y)}function tr(t,e,r=this.bbox()){return this.x(t,r).y(e,r)}function er(t,e=this.bbox()){return null==t?e.cx:this.attr("x",this.attr("x")+t-e.cx)}function rr(t,e=this.bbox()){return null==t?e.cy:this.attr("y",this.attr("y")+t-e.cy)}function nr(t,e,r=this.bbox()){return this.cx(t,r).cy(e,r)}function ir(t){return this.attr("x",t)}function sr(t){return this.attr("y",t)}function or(t,e){return this.ax(t).ay(e)}function ar(t){return this._build=!!t,this}c({Container:{symbol:V((function(){return this.put(new We)}))}}),D(We,"Symbol");class hr extends Et{constructor(t,e=t){super(T("text",t),e),this.dom.leading=this.dom.leading??new St(1.3),this._rebuild=!0,this._build=!1}leading(t){return null==t?this.dom.leading:(this.dom.leading=new St(t),this.rebuild())}rebuild(t){if("boolean"==typeof t&&(this._rebuild=t),this._rebuild){const t=this;let e=0;const r=this.dom.leading;this.each((function(n){if(b(this.node))return;const i=M.window.getComputedStyle(this.node).getPropertyValue("font-size"),s=r*new St(i);this.dom.newLined&&(this.attr("x",t.attr("x")),"\n"===this.text()?e+=s:(this.attr("dy",n?s+e:0),e=0))})),this.fire("rebuild")}return this}setData(t){return this.dom=t,this.dom.leading=new St(t.leading||1.3),this}writeDataToDom(){return x(this,this.dom,{leading:1.3}),this}text(t){if(void 0===t){const e=this.node.childNodes;let r=0;t="";for(let n=0,i=e.length;n<i;++n)"textPath"===e[n].nodeName||b(e[n])?0===n&&(r=n+1):(n!==r&&3!==e[n].nodeType&&!0===E(e[n]).dom.newLined&&(t+="\n"),t+=e[n].textContent);return t}if(this.clear().build(!0),"function"==typeof t)t.call(this,this);else for(let e=0,r=(t=(t+"").split("\n")).length;e<r;e++)this.newLine(t[e]);return this.build(!1).rebuild()}}L(hr,o),c({Container:{text:V((function(t=""){return this.put(new hr).text(t)})),plain:V((function(t=""){return this.put(new hr).plain(t)}))}}),D(hr,"Text");class ur extends Et{constructor(t,e=t){super(T("tspan",t),e),this._build=!1}dx(t){return this.attr("dx",t)}dy(t){return this.attr("dy",t)}newLine(){this.dom.newLined=!0;const t=this.parent();if(!(t instanceof hr))return this;const e=t.index(this),r=M.window.getComputedStyle(this.node).getPropertyValue("font-size"),n=t.dom.leading*new St(r);return this.dy(e?n:0).attr("x",t.x())}text(t){return null==t?this.node.textContent+(this.dom.newLined?"\n":""):("function"==typeof t?(this.clear().build(!0),t.call(this,this),this.build(!1)):this.plain(t),this)}}L(ur,o),c({Tspan:{tspan:V((function(t=""){const e=new ur;return this._build||this.clear(),this.put(e).text(t)}))},Text:{newLine:function(t=""){return this.tspan(t).newLine()}}}),D(ur,"Tspan");class cr extends Et{constructor(t,e=t){super(T("circle",t),e)}radius(t){return this.attr("r",t)}rx(t){return this.attr("r",t)}ry(t){return this.rx(t)}size(t){return this.radius(new St(t).divide(2))}}L(cr,{x:kt,y:Bt,cx:It,cy:Lt,width:Vt,height:Ft}),c({Container:{circle:V((function(t=0){return this.put(new cr).size(t).move(0,0)}))}}),D(cr,"Circle");class lr extends At{constructor(t,e=t){super(T("clipPath",t),e)}remove(){return this.targets().forEach((function(t){t.unclip()})),super.remove()}targets(){return dt("svg [clip-path*="+this.id()+"]")}}c({Container:{clip:V((function(){return this.defs().put(new lr)}))},Element:{clipper(){return this.reference("clip-path")},clipWith(t){const e=t instanceof lr?t:this.parent().clip().add(t);return this.attr("clip-path","url(#"+e.id()+")")},unclip(){return this.attr("clip-path",null)}}}),D(lr,"ClipPath");class dr extends Pt{constructor(t,e=t){super(T("foreignObject",t),e)}}function fr(t,e){return this.children().forEach((r=>{let n;try{n=r.node instanceof M.window.SVGSVGElement?new at(r.attr(["x","y","width","height"])):r.bbox()}catch(t){return}const i=new it(r),s=i.translate(t,e).transform(i.inverse()),o=new rt(n.x,n.y).transform(s);r.move(o.x,o.y)})),this}function pr(t){return this.dmove(t,0)}function mr(t){return this.dmove(0,t)}function gr(t,e=this.bbox()){return null==t?e.height:this.size(e.width,t,e)}function yr(t=0,e=0,r=this.bbox()){const n=t-r.x,i=e-r.y;return this.dmove(n,i)}function wr(t,e,r=this.bbox()){const n=g(this,t,e,r),i=n.width/r.width,s=n.height/r.height;return this.children().forEach((t=>{const e=new rt(r).transform(new it(t).inverse());t.scale(i,s,e.x,e.y)})),this}function br(t,e=this.bbox()){return null==t?e.width:this.size(t,e.height,e)}function xr(t,e=this.bbox()){return null==t?e.x:this.move(t,e.y,e)}function vr(t,e=this.bbox()){return null==t?e.y:this.move(e.x,t,e)}c({Container:{foreignObject:V((function(t,e){return this.put(new dr).size(t,e)}))}}),D(dr,"ForeignObject");class _r extends At{constructor(t,e=t){super(T("g",t),e)}}L(_r,a),c({Container:{group:V((function(){return this.put(new _r)}))}}),D(_r,"G");class Sr extends At{constructor(t,e=t){super(T("a",t),e)}target(t){return this.attr("target",t)}to(t){return this.attr("href",t,S)}}L(Sr,a),c({Container:{link:V((function(t){return this.put(new Sr).to(t)}))},Element:{unlink(){const t=this.linker();if(!t)return this;const e=t.parent();if(!e)return this.remove();const r=e.index(t);return e.add(this,r),t.remove(),this},linkTo(t){let e=this.linker();return e||(e=new Sr,this.wrap(e)),"function"==typeof t?t.call(e,e):e.to(t),this},linker(){const t=this.parent();return t&&"a"===t.node.nodeName.toLowerCase()?t:null}}}),D(Sr,"A");class Mr extends At{constructor(t,e=t){super(T("mask",t),e)}remove(){return this.targets().forEach((function(t){t.unmask()})),super.remove()}targets(){return dt("svg [mask*="+this.id()+"]")}}c({Container:{mask:V((function(){return this.defs().put(new Mr)}))},Element:{masker(){return this.reference("mask")},maskWith(t){const e=t instanceof Mr?t:this.parent().mask().add(t);return this.attr("mask","url(#"+e.id()+")")},unmask(){return this.attr("mask",null)}}}),D(Mr,"Mask");class Or extends Pt{constructor(t,e=t){super(T("stop",t),e)}update(t){return("number"==typeof t||t instanceof St)&&(t={offset:arguments[0],color:arguments[1],opacity:arguments[2]}),null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",new St(t.offset)),this}}c({Gradient:{stop:function(t,e,r){return this.put(new Or).update(t,e,r)}}}),D(Or,"Stop");class Nr extends Pt{constructor(t,e=t){super(T("style",t),e)}addText(t=""){return this.node.textContent+=t,this}font(t,e,r={}){return this.rule("@font-face",{fontFamily:t,src:e,...r})}rule(t,e){return this.addText(function(t,e){if(!t)return"";if(!e)return t;let r=t+"{";for(const t in e)r+=t.replace(/([A-Z])/g,(function(t,e){return"-"+e.toLowerCase()}))+":"+e[t]+";";return r+="}",r}(t,e))}}c("Dom",{style(t,e){return this.put(new Nr).rule(t,e)},fontface(t,e,r){return this.put(new Nr).font(t,e,r)}}),D(Nr,"Style");class Pr extends hr{constructor(t,e=t){super(T("textPath",t),e)}array(){const t=this.track();return t?t.array():null}plot(t){const e=this.track();let r=null;return e&&(r=e.plot(t)),null==t?r:this}track(){return this.reference("href")}}c({Container:{textPath:V((function(t,e){return t instanceof hr||(t=this.text(t)),t.path(e)}))},Text:{path:V((function(t,e=!0){const r=new Pr;let n;if(t instanceof Pe||(t=this.defs().path(t)),r.attr("href","#"+t,S),e)for(;n=this.node.firstChild;)r.node.appendChild(n);return this.put(r)})),textPath(){return this.findOne("textPath")}},Path:{text:V((function(t){return t instanceof hr||(t=(new hr).addTo(this.parent()).text(t)),t.path(this)})),targets(){return dt("svg textPath").filter((t=>(t.attr("href")||"").includes(this.id())))}}}),Pr.prototype.MorphArray=be,D(Pr,"TextPath");class Cr extends Et{constructor(t,e=t){super(T("use",t),e)}use(t,e){return this.attr("href",(e||"")+"#"+t,S)}}c({Container:{use:V((function(t,e){return this.put(new Cr).use(t,e)}))}}),D(Cr,"Use"),L([$e,We,Ut,Ht,re],l("viewbox")),L([ee,ke,De,Pe],l("marker")),L(hr,l("Text")),L(Pe,l("Path")),L(Tt,l("Defs")),L([hr,ur],l("Tspan")),L([Be,Rt,Gt,qe],l("radius")),L(bt,l("EventTarget")),L(Nt,l("Dom")),L(Pt,l("Element")),L(Et,l("Shape")),L([At,qt],l("Container")),L(Gt,l("Gradient")),L(qe,l("Runner")),ct.extend([...new Set(u)]),function(t=[]){Ne.push(...[].concat(t))}([St,et,at,it,_t,Wt,be,rt]),L(Ne,{to(t){return(new ve).type(this.constructor).from(this.toArray()).to(t)},fromArray(t){return this.init(t),this},toConsumable(){return this.toArray()},morph(t,e,r,n,i){return this.fromArray(t.map((function(t,s){return n.step(t,e[s],r,i[s],i)})))}});var Ar=r(726),Tr=r(731),Er=r(986);class jr{static create(t){let e=document.createElementNS("http://www.w3.org/2000/svg","text");e.textContent=t;let r=new jr(e);return r.assignUUID(),r.setAttributes(jr.defaultAttributes),r}constructor(t){this.textElement=t,this.centerPoint=new Tr.CenterPoint(t)}get domNode(){return this.textElement}appendTo(t){t.appendChild(this.domNode)}remove(){this.domNode.remove()}isIn(t){return t.contains(this.domNode)&&t!==this.domNode}hasParent(){return!!this.domNode.parentNode}bringToFront(){(0,Ar.bringToFront)(this.domNode)}sendToBack(){(0,Ar.sendToBack)(this.domNode)}getAttribute(t){return this.domNode.getAttribute(t)}setAttribute(t,e){this.domNode.setAttribute(t,e)}setAttributes(t){try{new hr(this.domNode).attr(t)}catch(t){}}get id(){return this.domNode.id}assignUUID(){(0,Ar.assignUUID)(this.domNode)}get textContent(){return this.domNode.textContent}set textContent(t){this.domNode.textContent=t}get bbox(){return this.domNode.getBBox()}getCenterPoint(){return this.centerPoint}setCenterPoint(t){this.centerPoint.x=t.x,this.centerPoint.y=t.y}maintainingCenterPoint(t){let{x:e,y:r}=this.centerPoint;t(),this.centerPoint.x=e,this.centerPoint.y=r}get boundingClientRect(){return this.domNode.getBoundingClientRect()}get centerClientPoint(){let t=this.domNode.getBoundingClientRect();return{x:(0,Er.mean)([t.left,t.right]),y:(0,Er.mean)([t.top,t.bottom])}}getCenterClientPoint(){return this.centerClientPoint}}jr.defaultAttributes={"font-family":"Arial","font-size":"9","font-weight":"700"},jr.defaultAttributeNames=["font-family","font-size","font-weight"];var Dr,kr=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class Br{constructor(t){Dr.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,Dr,t)}toJSONSerializable(){if(!kr(this,Dr,"f").id)throw new Error("Nucleobase has a falsy ID.");return{id:kr(this,Dr,"f").id}}}Dr=new WeakMap;var Ir,Lr,Vr,Fr,Rr,zr=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},qr=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class Xr{constructor(t,e){Ir.add(this),Lr.set(this,void 0),Vr.set(this,void 0),zr(this,Lr,t,"f"),zr(this,Vr,e,"f")}recreate(){return new jr(qr(this,Ir,"a",Rr))}}Lr=new WeakMap,Vr=new WeakMap,Ir=new WeakSet,Fr=function(){let t=qr(this,Lr,"f").id;if(t=null!=t?t:qr(this,Lr,"f").textId,!t)throw new Error("Unable to find nucleobase ID.");if("string"!=typeof t)throw new Error("Nucleobase ID is not a string.");return t},Rr=function(){let t=qr(this,Ir,"a",Fr),e=qr(this,Vr,"f").domNode.querySelector(`#${t}`);if(!e)throw new Error(`No DOM node in the drawing has the nucleobase ID "${t}".`);if(!(e instanceof SVGTextElement))throw new Error(`The DOM node with ID "${t}" is not an SVG text element.`);return e}})(),n})(),t.exports=e()},726:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{CoordinateSystem:()=>c,HorizontalClientScaling:()=>d,InnerXML:()=>w,OuterXML:()=>v,Scaling:()=>l,VerticalClientScaling:()=>f,assignUUID:()=>u,bringToFront:()=>p,sendToBack:()=>m});const r={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};var n,i=new Uint8Array(16);function s(){if(!n&&!(n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return n(i)}for(var o=[],a=0;a<256;++a)o.push((a+256).toString(16).slice(1));const h=function(t,e,n){if(r.randomUUID&&!e&&!t)return r.randomUUID();var i=(t=t||{}).random||(t.rng||s)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,e){n=n||0;for(var a=0;a<16;++a)e[n+a]=i[a];return e}return function(t,e=0){return(o[t[e+0]]+o[t[e+1]]+o[t[e+2]]+o[t[e+3]]+"-"+o[t[e+4]]+o[t[e+5]]+"-"+o[t[e+6]]+o[t[e+7]]+"-"+o[t[e+8]]+o[t[e+9]]+"-"+o[t[e+10]]+o[t[e+11]]+o[t[e+12]]+o[t[e+13]]+o[t[e+14]]+o[t[e+15]]).toLowerCase()}(i)};function u(t){t.id="uuid-"+h()}class c{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class l{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class d{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class f{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function p(t){let e=t.parentNode;e&&e.appendChild(t)}function m(t){let e=t.parentNode;e&&e.prepend(t)}var g,y=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class w{constructor(t){g.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,g,t)}toString(){return y(this,g,"f").innerHTML}set(t){y(this,g,"f").innerHTML=t}}g=new WeakMap;var b,x=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class v{constructor(t){b.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,b,t)}toString(){return x(this,b,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=x(this,b,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...x(this,b,"f").attributes].forEach((t=>x(this,b,"f").removeAttribute(t.name))),[...e.firstElementChild.attributes].forEach((t=>x(this,b,"f").setAttribute(t.name,t.value))),x(this,b,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}return b=new WeakMap,e})(),t.exports=e()},986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>p,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function p(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{BaseOutline:()=>Br.BaseOutline,DotBracketDrawer:()=>Jr,Drawing:()=>Ur,Nucleobase:()=>Tr.Nucleobase,SchemaDrawer:()=>nn,StraightBond:()=>zr.StraightBond});var t={};r.r(t),r.d(t,{cx:()=>It,cy:()=>Lt,height:()=>Ft,rx:()=>jt,ry:()=>Dt,width:()=>Vt,x:()=>kt,y:()=>Bt});var e={};r.r(e),r.d(e,{from:()=>Xt,to:()=>Yt});var i={};r.r(i),r.d(i,{MorphArray:()=>Qt,height:()=>te,width:()=>Kt,x:()=>Jt,y:()=>Zt});var s={};r.r(s),r.d(s,{array:()=>Ce,clear:()=>Ae,move:()=>Te,plot:()=>Ee,size:()=>je});var o={};r.r(o),r.d(o,{amove:()=>or,ax:()=>ir,ay:()=>sr,build:()=>ar,center:()=>nr,cx:()=>er,cy:()=>rr,length:()=>Je,move:()=>tr,plain:()=>Qe,x:()=>Ze,y:()=>Ke});var a={};r.r(a),r.d(a,{dmove:()=>fr,dx:()=>pr,dy:()=>mr,height:()=>gr,move:()=>yr,size:()=>wr,width:()=>br,x:()=>xr,y:()=>vr});const h={},u=[];function c(t,e){if(Array.isArray(t))for(const r of t)c(r,e);else if("object"!=typeof t)d(Object.getOwnPropertyNames(e)),h[t]=Object.assign(h[t]||{},e);else for(const e in t)c(e,t[e])}function l(t){return h[t]||{}}function d(t){u.push(...t)}function f(t,e){let r;const n=t.length,i=[];for(r=0;r<n;r++)i.push(e(t[r]));return i}function p(t){return t%360*Math.PI/180}function m(t){return t.charAt(0).toUpperCase()+t.slice(1)}function g(t,e,r,n){return null!=e&&null!=r||(n=n||t.bbox(),null==e?e=n.width/n.height*r:null==r&&(r=n.height/n.width*e)),{width:e,height:r}}function y(t,e){const r=t.origin;let n=null!=t.ox?t.ox:null!=t.originX?t.originX:"center",i=null!=t.oy?t.oy:null!=t.originY?t.originY:"center";null!=r&&([n,i]=Array.isArray(r)?r:"object"==typeof r?[r.x,r.y]:[r,r]);const s="string"==typeof n,o="string"==typeof i;if(s||o){const{height:t,width:r,x:a,y:h}=e.bbox();s&&(n=n.includes("left")?a:n.includes("right")?a+r:a+r/2),o&&(i=i.includes("top")?h:i.includes("bottom")?h+t:h+t/2)}return[n,i]}const w=new Set(["desc","metadata","title"]),b=t=>w.has(t.nodeName),x=(t,e,r={})=>{const n={...e};for(const t in n)n[t].valueOf()===r[t]&&delete n[t];Object.keys(n).length?t.node.setAttribute("data-svgjs",JSON.stringify(n)):(t.node.removeAttribute("data-svgjs"),t.node.removeAttribute("svgjs:data"))},v="http://www.w3.org/2000/svg",_="http://www.w3.org/2000/xmlns/",S="http://www.w3.org/1999/xlink",M={window:"undefined"==typeof window?null:window,document:"undefined"==typeof document?null:document};class O{}const N={},P="___SYMBOL___ROOT___";function C(t,e=v){return M.document.createElementNS(e,t)}function A(t,e=!1){if(t instanceof O)return t;if("object"==typeof t)return j(t);if(null==t)return new N[P];if("string"==typeof t&&"<"!==t.charAt(0))return j(M.document.querySelector(t));const r=e?M.document.createElement("div"):C("svg");return r.innerHTML=t,t=j(r.firstChild),r.removeChild(r.firstChild),t}function T(t,e){return e&&(e instanceof M.window.Node||e.ownerDocument&&e instanceof e.ownerDocument.defaultView.Node)?e:C(t)}function E(t){if(!t)return null;if(t.instance instanceof O)return t.instance;if("#document-fragment"===t.nodeName)return new N.Fragment(t);let e=m(t.nodeName||"Dom");return"LinearGradient"===e||"RadialGradient"===e?e="Gradient":N[e]||(e="Dom"),new N[e](t)}let j=E;function D(t,e=t.name,r=!1){return N[e]=t,r&&(N[P]=t),d(Object.getOwnPropertyNames(t.prototype)),t}let k=1e3;function B(t){return"Svgjs"+m(t)+k++}function I(t){for(let e=t.children.length-1;e>=0;e--)I(t.children[e]);return t.id?(t.id=B(t.nodeName),t):t}function L(t,e){let r,n;for(n=(t=Array.isArray(t)?t:[t]).length-1;n>=0;n--)for(r in e)t[n].prototype[r]=e[r]}function V(t){return function(...e){const r=e[e.length-1];return!r||r.constructor!==Object||r instanceof Array?t.apply(this,e):t.apply(this,e.slice(0,-1)).attr(r)}}c("Dom",{siblings:function(){return this.parent().children()},position:function(){return this.parent().index(this)},next:function(){return this.siblings()[this.position()+1]},prev:function(){return this.siblings()[this.position()-1]},forward:function(){const t=this.position();return this.parent().add(this.remove(),t+1),this},backward:function(){const t=this.position();return this.parent().add(this.remove(),t?t-1:0),this},front:function(){return this.parent().add(this.remove()),this},back:function(){return this.parent().add(this.remove(),0),this},before:function(t){(t=A(t)).remove();const e=this.position();return this.parent().add(t,e),this},after:function(t){(t=A(t)).remove();const e=this.position();return this.parent().add(t,e+1),this},insertBefore:function(t){return(t=A(t)).before(this),this},insertAfter:function(t){return(t=A(t)).after(this),this}});const F=/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,R=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,z=/rgb\((\d+),(\d+),(\d+)\)/,q=/(#[a-z_][a-z0-9\-_]*)/i,X=/\)\s*,?\s*/,Y=/\s/g,G=/^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i,H=/^rgb\(/,U=/^(\s+)?$/,$=/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,W=/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,Q=/[\s,]+/,J=/[MLHVCSQTAZ]/i;function Z(t){const e=Math.round(t),r=Math.max(0,Math.min(255,e)).toString(16);return 1===r.length?"0"+r:r}function K(t,e){for(let r=e.length;r--;)if(null==t[e[r]])return!1;return!0}function tt(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}c("Dom",{classes:function(){const t=this.attr("class");return null==t?[]:t.trim().split(Q)},hasClass:function(t){return-1!==this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){const e=this.classes();e.push(t),this.attr("class",e.join(" "))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr("class",this.classes().filter((function(e){return e!==t})).join(" ")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)}}),c("Dom",{css:function(t,e){const r={};if(0===arguments.length)return this.node.style.cssText.split(/\s*;\s*/).filter((function(t){return!!t.length})).forEach((function(t){const e=t.split(/\s*:\s*/);r[e[0]]=e[1]})),r;if(arguments.length<2){if(Array.isArray(t)){for(const e of t){const t=e;r[e]=this.node.style.getPropertyValue(t)}return r}if("string"==typeof t)return this.node.style.getPropertyValue(t);if("object"==typeof t)for(const e in t)this.node.style.setProperty(e,null==t[e]||U.test(t[e])?"":t[e])}return 2===arguments.length&&this.node.style.setProperty(t,null==e||U.test(e)?"":e),this},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},visible:function(){return"none"!==this.css("display")}}),c("Dom",{data:function(t,e,r){if(null==t)return this.data(f(function(t){let e;const r=t.length,n=[];for(e=0;e<r;e++)0===t[e].nodeName.indexOf("data-")&&n.push(t[e]);return n}(this.node.attributes),(t=>t.nodeName.slice(5))));if(t instanceof Array){const e={};for(const r of t)e[r]=this.data(r);return e}if("object"==typeof t)for(e in t)this.data(e,t[e]);else if(arguments.length<2)try{return JSON.parse(this.attr("data-"+t))}catch(e){return this.attr("data-"+t)}else this.attr("data-"+t,null===e?null:!0===r||"string"==typeof e||"number"==typeof e?e:JSON.stringify(e));return this}}),c("Dom",{remember:function(t,e){if("object"==typeof arguments[0])for(const e in t)this.remember(e,t[e]);else{if(1===arguments.length)return this.memory()[t];this.memory()[t]=e}return this},forget:function(){if(0===arguments.length)this._memory={};else for(let t=arguments.length-1;t>=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory=this._memory||{}}});class et{constructor(...t){this.init(...t)}static isColor(t){return t&&(t instanceof et||this.isRgb(t)||this.test(t))}static isRgb(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b}static random(t="vibrant",e){const{random:r,round:n,sin:i,PI:s}=Math;if("vibrant"===t){const t=24*r()+57,e=38*r()+45,n=360*r();return new et(t,e,n,"lch")}if("sine"===t){const t=n(80*i(2*s*(e=null==e?r():e)/.5+.01)+150),o=n(50*i(2*s*e/.5+4.6)+200),a=n(100*i(2*s*e/.5+2.3)+150);return new et(t,o,a)}if("pastel"===t){const t=8*r()+86,e=17*r()+9,n=360*r();return new et(t,e,n,"lch")}if("dark"===t){const t=10+10*r(),e=50*r()+86,n=360*r();return new et(t,e,n,"lch")}if("rgb"===t){const t=255*r(),e=255*r(),n=255*r();return new et(t,e,n)}if("lab"===t){const t=100*r(),e=256*r()-128,n=256*r()-128;return new et(t,e,n,"lab")}if("grey"===t){const t=255*r();return new et(t,t,t)}throw new Error("Unsupported random color mode")}static test(t){return"string"==typeof t&&(G.test(t)||H.test(t))}cmyk(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=Math.min(1-n,1-i,1-s);return 1===o?new et(0,0,0,1,"cmyk"):new et((1-n-o)/(1-o),(1-i-o)/(1-o),(1-s-o)/(1-o),o,"cmyk")}hsl(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=Math.max(n,i,s),a=Math.min(n,i,s),h=(o+a)/2,u=o===a,c=o-a;return new et(360*(u?0:o===n?((i-s)/c+(i<s?6:0))/6:o===i?((s-n)/c+2)/6:o===s?((n-i)/c+4)/6:0),100*(u?0:h>.5?c/(2-o-a):c/(o+a)),100*h,"hsl")}init(t=0,e=0,r=0,n=0,i="rgb"){if(t=t||0,this.space)for(const t in this.space)delete this[this.space[t]];if("number"==typeof t)i="string"==typeof n?n:i,n="string"==typeof n?0:n,Object.assign(this,{_a:t,_b:e,_c:r,_d:n,space:i});else if(t instanceof Array)this.space=e||("string"==typeof t[3]?t[3]:t[4])||"rgb",Object.assign(this,{_a:t[0],_b:t[1],_c:t[2],_d:t[3]||0});else if(t instanceof Object){const r=function(t,e){const r=K(t,"rgb")?{_a:t.r,_b:t.g,_c:t.b,_d:0,space:"rgb"}:K(t,"xyz")?{_a:t.x,_b:t.y,_c:t.z,_d:0,space:"xyz"}:K(t,"hsl")?{_a:t.h,_b:t.s,_c:t.l,_d:0,space:"hsl"}:K(t,"lab")?{_a:t.l,_b:t.a,_c:t.b,_d:0,space:"lab"}:K(t,"lch")?{_a:t.l,_b:t.c,_c:t.h,_d:0,space:"lch"}:K(t,"cmyk")?{_a:t.c,_b:t.m,_c:t.y,_d:t.k,space:"cmyk"}:{_a:0,_b:0,_c:0,space:"rgb"};return r.space=e||r.space,r}(t,e);Object.assign(this,r)}else if("string"==typeof t)if(H.test(t)){const e=t.replace(Y,""),[r,n,i]=z.exec(e).slice(1,4).map((t=>parseInt(t)));Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}else{if(!G.test(t))throw Error("Unsupported string format, can't construct Color");{const e=t=>parseInt(t,16),[,r,n,i]=R.exec(function(t){return 4===t.length?["#",t.substring(1,2),t.substring(1,2),t.substring(2,3),t.substring(2,3),t.substring(3,4),t.substring(3,4)].join(""):t}(t)).map(e);Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}}const{_a:s,_b:o,_c:a,_d:h}=this,u="rgb"===this.space?{r:s,g:o,b:a}:"xyz"===this.space?{x:s,y:o,z:a}:"hsl"===this.space?{h:s,s:o,l:a}:"lab"===this.space?{l:s,a:o,b:a}:"lch"===this.space?{l:s,c:o,h:a}:"cmyk"===this.space?{c:s,m:o,y:a,k:h}:{};Object.assign(this,u)}lab(){const{x:t,y:e,z:r}=this.xyz();return new et(116*e-16,500*(t-e),200*(e-r),"lab")}lch(){const{l:t,a:e,b:r}=this.lab(),n=Math.sqrt(e**2+r**2);let i=180*Math.atan2(r,e)/Math.PI;return i<0&&(i*=-1,i=360-i),new et(t,n,i,"lch")}rgb(){if("rgb"===this.space)return this;if("lab"===(t=this.space)||"xyz"===t||"lch"===t){let{x:t,y:e,z:r}=this;if("lab"===this.space||"lch"===this.space){let{l:n,a:i,b:s}=this;if("lch"===this.space){const{c:t,h:e}=this,r=Math.PI/180;i=t*Math.cos(r*e),s=t*Math.sin(r*e)}const o=(n+16)/116,a=i/500+o,h=o-s/200,u=16/116,c=.008856,l=7.787;t=.95047*(a**3>c?a**3:(a-u)/l),e=1*(o**3>c?o**3:(o-u)/l),r=1.08883*(h**3>c?h**3:(h-u)/l)}const n=3.2406*t+-1.5372*e+-.4986*r,i=-.9689*t+1.8758*e+.0415*r,s=.0557*t+-.204*e+1.057*r,o=Math.pow,a=.0031308,h=n>a?1.055*o(n,1/2.4)-.055:12.92*n,u=i>a?1.055*o(i,1/2.4)-.055:12.92*i,c=s>a?1.055*o(s,1/2.4)-.055:12.92*s;return new et(255*h,255*u,255*c)}if("hsl"===this.space){let{h:t,s:e,l:r}=this;if(t/=360,e/=100,r/=100,0===e)return r*=255,new et(r,r,r);const n=r<.5?r*(1+e):r+e-r*e,i=2*r-n,s=255*tt(i,n,t+1/3),o=255*tt(i,n,t),a=255*tt(i,n,t-1/3);return new et(s,o,a)}if("cmyk"===this.space){const{c:t,m:e,y:r,k:n}=this,i=255*(1-Math.min(1,t*(1-n)+n)),s=255*(1-Math.min(1,e*(1-n)+n)),o=255*(1-Math.min(1,r*(1-n)+n));return new et(i,s,o)}return this;var t}toArray(){const{_a:t,_b:e,_c:r,_d:n,space:i}=this;return[t,e,r,n,i]}toHex(){const[t,e,r]=this._clamped().map(Z);return`#${t}${e}${r}`}toRgb(){const[t,e,r]=this._clamped();return`rgb(${t},${e},${r})`}toString(){return this.toHex()}xyz(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92,a=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92,h=s>.04045?Math.pow((s+.055)/1.055,2.4):s/12.92,u=(.4124*o+.3576*a+.1805*h)/.95047,c=(.2126*o+.7152*a+.0722*h)/1,l=(.0193*o+.1192*a+.9505*h)/1.08883,d=u>.008856?Math.pow(u,1/3):7.787*u+16/116,f=c>.008856?Math.pow(c,1/3):7.787*c+16/116,p=l>.008856?Math.pow(l,1/3):7.787*l+16/116;return new et(d,f,p,"xyz")}_clamped(){const{_a:t,_b:e,_c:r}=this.rgb(),{max:n,min:i,round:s}=Math;return[t,e,r].map((t=>n(0,i(s(t),255))))}}class rt{constructor(...t){this.init(...t)}clone(){return new rt(this)}init(t,e){const r=Array.isArray(t)?{x:t[0],y:t[1]}:"object"==typeof t?{x:t.x,y:t.y}:{x:t,y:e};return this.x=null==r.x?0:r.x,this.y=null==r.y?0:r.y,this}toArray(){return[this.x,this.y]}transform(t){return this.clone().transformO(t)}transformO(t){it.isMatrixLike(t)||(t=new it(t));const{x:e,y:r}=this;return this.x=t.a*e+t.c*r+t.e,this.y=t.b*e+t.d*r+t.f,this}}function nt(t,e,r){return Math.abs(e-t)<(r||1e-6)}class it{constructor(...t){this.init(...t)}static formatTransforms(t){const e="both"===t.flip||!0===t.flip,r=t.flip&&(e||"x"===t.flip)?-1:1,n=t.flip&&(e||"y"===t.flip)?-1:1,i=t.skew&&t.skew.length?t.skew[0]:isFinite(t.skew)?t.skew:isFinite(t.skewX)?t.skewX:0,s=t.skew&&t.skew.length?t.skew[1]:isFinite(t.skew)?t.skew:isFinite(t.skewY)?t.skewY:0,o=t.scale&&t.scale.length?t.scale[0]*r:isFinite(t.scale)?t.scale*r:isFinite(t.scaleX)?t.scaleX*r:r,a=t.scale&&t.scale.length?t.scale[1]*n:isFinite(t.scale)?t.scale*n:isFinite(t.scaleY)?t.scaleY*n:n,h=t.shear||0,u=t.rotate||t.theta||0,c=new rt(t.origin||t.around||t.ox||t.originX,t.oy||t.originY),l=c.x,d=c.y,f=new rt(t.position||t.px||t.positionX||NaN,t.py||t.positionY||NaN),p=f.x,m=f.y,g=new rt(t.translate||t.tx||t.translateX,t.ty||t.translateY),y=g.x,w=g.y,b=new rt(t.relative||t.rx||t.relativeX,t.ry||t.relativeY);return{scaleX:o,scaleY:a,skewX:i,skewY:s,shear:h,theta:u,rx:b.x,ry:b.y,tx:y,ty:w,ox:l,oy:d,px:p,py:m}}static fromArray(t){return{a:t[0],b:t[1],c:t[2],d:t[3],e:t[4],f:t[5]}}static isMatrixLike(t){return null!=t.a||null!=t.b||null!=t.c||null!=t.d||null!=t.e||null!=t.f}static matrixMultiply(t,e,r){const n=t.a*e.a+t.c*e.b,i=t.b*e.a+t.d*e.b,s=t.a*e.c+t.c*e.d,o=t.b*e.c+t.d*e.d,a=t.e+t.a*e.e+t.c*e.f,h=t.f+t.b*e.e+t.d*e.f;return r.a=n,r.b=i,r.c=s,r.d=o,r.e=a,r.f=h,r}around(t,e,r){return this.clone().aroundO(t,e,r)}aroundO(t,e,r){const n=t||0,i=e||0;return this.translateO(-n,-i).lmultiplyO(r).translateO(n,i)}clone(){return new it(this)}decompose(t=0,e=0){const r=this.a,n=this.b,i=this.c,s=this.d,o=this.e,a=this.f,h=r*s-n*i,u=h>0?1:-1,c=u*Math.sqrt(r*r+n*n),l=Math.atan2(u*n,u*r),d=180/Math.PI*l,f=Math.cos(l),p=Math.sin(l),m=(r*i+n*s)/h,g=i*c/(m*r-n)||s*c/(m*n+r);return{scaleX:c,scaleY:g,shear:m,rotate:d,translateX:o-t+t*f*c+e*(m*f*c-p*g),translateY:a-e+t*p*c+e*(m*p*c+f*g),originX:t,originY:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}equals(t){if(t===this)return!0;const e=new it(t);return nt(this.a,e.a)&&nt(this.b,e.b)&&nt(this.c,e.c)&&nt(this.d,e.d)&&nt(this.e,e.e)&&nt(this.f,e.f)}flip(t,e){return this.clone().flipO(t,e)}flipO(t,e){return"x"===t?this.scaleO(-1,1,e,0):"y"===t?this.scaleO(1,-1,0,e):this.scaleO(-1,-1,t,e||t)}init(t){const e=it.fromArray([1,0,0,1,0,0]);return t=t instanceof Pt?t.matrixify():"string"==typeof t?it.fromArray(t.split(Q).map(parseFloat)):Array.isArray(t)?it.fromArray(t):"object"==typeof t&&it.isMatrixLike(t)?t:"object"==typeof t?(new it).transform(t):6===arguments.length?it.fromArray([].slice.call(arguments)):e,this.a=null!=t.a?t.a:e.a,this.b=null!=t.b?t.b:e.b,this.c=null!=t.c?t.c:e.c,this.d=null!=t.d?t.d:e.d,this.e=null!=t.e?t.e:e.e,this.f=null!=t.f?t.f:e.f,this}inverse(){return this.clone().inverseO()}inverseO(){const t=this.a,e=this.b,r=this.c,n=this.d,i=this.e,s=this.f,o=t*n-e*r;if(!o)throw new Error("Cannot invert "+this);const a=n/o,h=-e/o,u=-r/o,c=t/o,l=-(a*i+u*s),d=-(h*i+c*s);return this.a=a,this.b=h,this.c=u,this.d=c,this.e=l,this.f=d,this}lmultiply(t){return this.clone().lmultiplyO(t)}lmultiplyO(t){const e=t instanceof it?t:new it(t);return it.matrixMultiply(e,this,this)}multiply(t){return this.clone().multiplyO(t)}multiplyO(t){const e=t instanceof it?t:new it(t);return it.matrixMultiply(this,e,this)}rotate(t,e,r){return this.clone().rotateO(t,e,r)}rotateO(t,e=0,r=0){t=p(t);const n=Math.cos(t),i=Math.sin(t),{a:s,b:o,c:a,d:h,e:u,f:c}=this;return this.a=s*n-o*i,this.b=o*n+s*i,this.c=a*n-h*i,this.d=h*n+a*i,this.e=u*n-c*i+r*i-e*n+e,this.f=c*n+u*i-e*i-r*n+r,this}scale(){return this.clone().scaleO(...arguments)}scaleO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t);const{a:i,b:s,c:o,d:a,e:h,f:u}=this;return this.a=i*t,this.b=s*e,this.c=o*t,this.d=a*e,this.e=h*t-r*t+r,this.f=u*e-n*e+n,this}shear(t,e,r){return this.clone().shearO(t,e,r)}shearO(t,e=0,r=0){const{a:n,b:i,c:s,d:o,e:a,f:h}=this;return this.a=n+i*t,this.c=s+o*t,this.e=a+h*t-r*t,this}skew(){return this.clone().skewO(...arguments)}skewO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t),t=p(t),e=p(e);const i=Math.tan(t),s=Math.tan(e),{a:o,b:a,c:h,d:u,e:c,f:l}=this;return this.a=o+a*i,this.b=a+o*s,this.c=h+u*i,this.d=u+h*s,this.e=c+l*i-n*i,this.f=l+c*s-r*s,this}skewX(t,e,r){return this.skew(t,0,e,r)}skewY(t,e,r){return this.skew(0,t,e,r)}toArray(){return[this.a,this.b,this.c,this.d,this.e,this.f]}toString(){return"matrix("+this.a+","+this.b+","+this.c+","+this.d+","+this.e+","+this.f+")"}transform(t){if(it.isMatrixLike(t))return new it(t).multiplyO(this);const e=it.formatTransforms(t),{x:r,y:n}=new rt(e.ox,e.oy).transform(this),i=(new it).translateO(e.rx,e.ry).lmultiplyO(this).translateO(-r,-n).scaleO(e.scaleX,e.scaleY).skewO(e.skewX,e.skewY).shearO(e.shear).rotateO(e.theta).translateO(r,n);if(isFinite(e.px)||isFinite(e.py)){const t=new rt(r,n).transform(i),s=isFinite(e.px)?e.px-t.x:0,o=isFinite(e.py)?e.py-t.y:0;i.translateO(s,o)}return i.translateO(e.tx,e.ty),i}translate(t,e){return this.clone().translateO(t,e)}translateO(t,e){return this.e+=t||0,this.f+=e||0,this}valueOf(){return{a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}}function st(){if(!st.nodes){const t=A().size(2,0);t.node.style.cssText=["opacity: 0","position: absolute","left: -100%","top: -100%","overflow: hidden"].join(";"),t.attr("focusable","false"),t.attr("aria-hidden","true");const e=t.path().node;st.nodes={svg:t,path:e}}if(!st.nodes.svg.node.parentNode){const t=M.document.body||M.document.documentElement;st.nodes.svg.addTo(t)}return st.nodes}function ot(t){return!(t.width||t.height||t.x||t.y)}D(it,"Matrix");class at{constructor(...t){this.init(...t)}addOffset(){return this.x+=M.window.pageXOffset,this.y+=M.window.pageYOffset,new at(this)}init(t){return t="string"==typeof t?t.split(Q).map(parseFloat):Array.isArray(t)?t:"object"==typeof t?[null!=t.left?t.left:t.x,null!=t.top?t.top:t.y,t.width,t.height]:4===arguments.length?[].slice.call(arguments):[0,0,0,0],this.x=t[0]||0,this.y=t[1]||0,this.width=this.w=t[2]||0,this.height=this.h=t[3]||0,this.x2=this.x+this.w,this.y2=this.y+this.h,this.cx=this.x+this.w/2,this.cy=this.y+this.h/2,this}isNulled(){return ot(this)}merge(t){const e=Math.min(this.x,t.x),r=Math.min(this.y,t.y),n=Math.max(this.x+this.width,t.x+t.width)-e,i=Math.max(this.y+this.height,t.y+t.height)-r;return new at(e,r,n,i)}toArray(){return[this.x,this.y,this.width,this.height]}toString(){return this.x+" "+this.y+" "+this.width+" "+this.height}transform(t){t instanceof it||(t=new it(t));let e=1/0,r=-1/0,n=1/0,i=-1/0;return[new rt(this.x,this.y),new rt(this.x2,this.y),new rt(this.x,this.y2),new rt(this.x2,this.y2)].forEach((function(s){s=s.transform(t),e=Math.min(e,s.x),r=Math.max(r,s.x),n=Math.min(n,s.y),i=Math.max(i,s.y)})),new at(e,n,r-e,i-n)}}function ht(t,e,r){let n;try{if(n=e(t.node),ot(n)&&(i=t.node)!==M.document&&!(M.document.documentElement.contains||function(t){for(;t.parentNode;)t=t.parentNode;return t===M.document}).call(M.document.documentElement,i))throw new Error("Element not in the dom")}catch(e){n=r(t)}var i;return n}c({viewbox:{viewbox(t,e,r,n){return null==t?new at(this.attr("viewBox")):this.attr("viewBox",new at(t,e,r,n))},zoom(t,e){let{width:r,height:n}=this.attr(["width","height"]);if((r||n)&&"string"!=typeof r&&"string"!=typeof n||(r=this.node.clientWidth,n=this.node.clientHeight),!r||!n)throw new Error("Impossible to get absolute width and height. Please provide an absolute width and height attribute on the zooming element");const i=this.viewbox(),s=r/i.width,o=n/i.height,a=Math.min(s,o);if(null==t)return a;let h=a/t;h===1/0&&(h=Number.MAX_SAFE_INTEGER/100),e=e||new rt(r/2/s+i.x,n/2/o+i.y);const u=new at(i).transform(new it({scale:h,origin:e}));return this.viewbox(u)}}}),D(at,"Box");class ut extends Array{constructor(t=[],...e){if(super(t,...e),"number"==typeof t)return this;this.length=0,this.push(...t)}}const ct=ut;L([ut],{each(t,...e){return"function"==typeof t?this.map(((e,r,n)=>t.call(e,e,r,n))):this.map((r=>r[t](...e)))},toArray(){return Array.prototype.concat.apply([],this)}});const lt=["toArray","constructor","each"];function dt(t,e){return new ct(f((e||M.document).querySelectorAll(t),(function(t){return E(t)})))}ut.extend=function(t){t=t.reduce(((t,e)=>(lt.includes(e)||"_"===e[0]||(e in Array.prototype&&(t["$"+e]=Array.prototype[e]),t[e]=function(...t){return this.each(e,...t)}),t)),{}),L([ut],t)};let ft=0;const pt={};function mt(t){let e=t.getEventHolder();return e===M.window&&(e=pt),e.events||(e.events={}),e.events}function gt(t){return t.getEventTarget()}function yt(t,e,r,n,i){const s=r.bind(n||t),o=A(t),a=mt(o),h=gt(o);e=Array.isArray(e)?e:e.split(Q),r._svgjsListenerId||(r._svgjsListenerId=++ft),e.forEach((function(t){const e=t.split(".")[0],n=t.split(".")[1]||"*";a[e]=a[e]||{},a[e][n]=a[e][n]||{},a[e][n][r._svgjsListenerId]=s,h.addEventListener(e,s,i||!1)}))}function wt(t,e,r,n){const i=A(t),s=mt(i),o=gt(i);("function"!=typeof r||(r=r._svgjsListenerId))&&(e=Array.isArray(e)?e:(e||"").split(Q)).forEach((function(t){const e=t&&t.split(".")[0],a=t&&t.split(".")[1];let h,u;if(r)s[e]&&s[e][a||"*"]&&(o.removeEventListener(e,s[e][a||"*"][r],n||!1),delete s[e][a||"*"][r]);else if(e&&a){if(s[e]&&s[e][a]){for(u in s[e][a])wt(o,[e,a].join("."),u);delete s[e][a]}}else if(a)for(t in s)for(h in s[t])a===h&&wt(o,[t,a].join("."));else if(e){if(s[e]){for(h in s[e])wt(o,[e,h].join("."));delete s[e]}}else{for(t in s)wt(o,t);!function(t){let e=t.getEventHolder();e===M.window&&(e=pt),e.events&&(e.events={})}(i)}}))}class bt extends O{addEventListener(){}dispatch(t,e,r){return function(t,e,r,n){const i=gt(t);return e instanceof M.window.Event||(e=new M.window.CustomEvent(e,{detail:r,cancelable:!0,...n})),i.dispatchEvent(e),e}(this,t,e,r)}dispatchEvent(t){const e=this.getEventHolder().events;if(!e)return!0;const r=e[t.type];for(const e in r)for(const n in r[e])r[e][n](t);return!t.defaultPrevented}fire(t,e,r){return this.dispatch(t,e,r),this}getEventHolder(){return this}getEventTarget(){return this}off(t,e,r){return wt(this,t,e,r),this}on(t,e,r,n){return yt(this,t,e,r,n),this}removeEventListener(){}}function xt(){}D(bt,"EventTarget");const vt={"fill-opacity":1,"stroke-opacity":1,"stroke-width":0,"stroke-linejoin":"miter","stroke-linecap":"butt",fill:"#000000",stroke:"#000000",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,"stop-opacity":1,"stop-color":"#000000","text-anchor":"start"};class _t extends Array{constructor(...t){super(...t),this.init(...t)}clone(){return new this.constructor(this)}init(t){return"number"==typeof t||(this.length=0,this.push(...this.parse(t))),this}parse(t=[]){return t instanceof Array?t:t.trim().split(Q).map(parseFloat)}toArray(){return Array.prototype.concat.apply([],this)}toSet(){return new Set(this)}toString(){return this.join(" ")}valueOf(){const t=[];return t.push(...this),t}}class St{constructor(...t){this.init(...t)}convert(t){return new St(this.value,t)}divide(t){return t=new St(t),new St(this/t,this.unit||t.unit)}init(t,e){return e=Array.isArray(t)?t[1]:e,t=Array.isArray(t)?t[0]:t,this.value=0,this.unit=e||"","number"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:"string"==typeof t?(e=t.match(F))&&(this.value=parseFloat(e[1]),"%"===e[5]?this.value/=100:"s"===e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof St&&(this.value=t.valueOf(),this.unit=t.unit),this}minus(t){return t=new St(t),new St(this-t,this.unit||t.unit)}plus(t){return t=new St(t),new St(this+t,this.unit||t.unit)}times(t){return t=new St(t),new St(this*t,this.unit||t.unit)}toArray(){return[this.value,this.unit]}toJSON(){return this.toString()}toString(){return("%"===this.unit?~~(1e8*this.value)/1e6:"s"===this.unit?this.value/1e3:this.value)+this.unit}valueOf(){return this.value}}const Mt=new Set(["fill","stroke","color","bgcolor","stop-color","flood-color","lighting-color"]),Ot=[];class Nt extends bt{constructor(t,e){super(),this.node=t,this.type=t.nodeName,e&&t!==e&&this.attr(e)}add(t,e){return(t=A(t)).removeNamespace&&this.node instanceof M.window.SVGElement&&t.removeNamespace(),null==e?this.node.appendChild(t.node):t.node!==this.node.childNodes[e]&&this.node.insertBefore(t.node,this.node.childNodes[e]),this}addTo(t,e){return A(t).put(this,e)}children(){return new ct(f(this.node.children,(function(t){return E(t)})))}clear(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return this}clone(t=!0,e=!0){this.writeDataToDom();let r=this.node.cloneNode(t);return e&&(r=I(r)),new this.constructor(r)}each(t,e){const r=this.children();let n,i;for(n=0,i=r.length;n<i;n++)t.apply(r[n],[n,r]),e&&r[n].each(t,e);return this}element(t,e){return this.put(new Nt(C(t),e))}first(){return E(this.node.firstChild)}get(t){return E(this.node.childNodes[t])}getEventHolder(){return this.node}getEventTarget(){return this.node}has(t){return this.index(t)>=0}html(t,e){return this.xml(t,e,"http://www.w3.org/1999/xhtml")}id(t){return void 0!==t||this.node.id||(this.node.id=B(this.type)),this.attr("id",t)}index(t){return[].slice.call(this.node.childNodes).indexOf(t.node)}last(){return E(this.node.lastChild)}matches(t){const e=this.node,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector||null;return r&&r.call(e,t)}parent(t){let e=this;if(!e.node.parentNode)return null;if(e=E(e.node.parentNode),!t)return e;do{if("string"==typeof t?e.matches(t):e instanceof t)return e}while(e=E(e.node.parentNode));return e}put(t,e){return t=A(t),this.add(t,e),t}putIn(t,e){return A(t).add(this,e)}remove(){return this.parent()&&this.parent().removeElement(this),this}removeElement(t){return this.node.removeChild(t.node),this}replace(t){return t=A(t),this.node.parentNode&&this.node.parentNode.replaceChild(t.node,this.node),t}round(t=2,e=null){const r=10**t,n=this.attr(e);for(const t in n)"number"==typeof n[t]&&(n[t]=Math.round(n[t]*r)/r);return this.attr(n),this}svg(t,e){return this.xml(t,e,v)}toString(){return this.id()}words(t){return this.node.textContent=t,this}wrap(t){const e=this.parent();if(!e)return this.addTo(t);const r=e.index(this);return e.put(t,r).put(this)}writeDataToDom(){return this.each((function(){this.writeDataToDom()})),this}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){e=null==e||e,this.writeDataToDom();let r=this;if(null!=t){if(r=E(r.node.cloneNode(!0)),e){const e=t(r);if(r=e||r,!1===e)return""}r.each((function(){const e=t(this),r=e||this;!1===e?this.remove():e&&this!==r&&this.replace(r)}),!0)}return e?r.node.outerHTML:r.node.innerHTML}e=null!=e&&e;const n=C("wrapper",r),i=M.document.createDocumentFragment();n.innerHTML=t;for(let t=n.children.length;t--;)i.appendChild(n.firstElementChild);const s=this.parent();return e?this.replace(i)&&s:this.add(i)}}L(Nt,{attr:function(t,e,r){if(null==t){t={},e=this.node.attributes;for(const r of e)t[r.nodeName]=$.test(r.nodeValue)?parseFloat(r.nodeValue):r.nodeValue;return t}if(t instanceof Array)return t.reduce(((t,e)=>(t[e]=this.attr(e),t)),{});if("object"==typeof t&&t.constructor===Object)for(e in t)this.attr(e,t[e]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?vt[t]:$.test(e)?parseFloat(e):e;"number"==typeof(e=Ot.reduce(((e,r)=>r(t,e,this)),e))?e=new St(e):Mt.has(t)&&et.isColor(e)?e=new et(e):e.constructor===Array&&(e=new _t(e)),"leading"===t?this.leading&&this.leading(e):"string"==typeof r?this.node.setAttributeNS(r,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!==t&&"x"!==t||this.rebuild()}return this},find:function(t){return dt(t,this.node)},findOne:function(t){return E(this.node.querySelector(t))}}),D(Nt,"Dom");class Pt extends Nt{constructor(t,e){super(t,e),this.dom={},this.node.instance=this,(t.hasAttribute("data-svgjs")||t.hasAttribute("svgjs:data"))&&this.setData(JSON.parse(t.getAttribute("data-svgjs"))??JSON.parse(t.getAttribute("svgjs:data"))??{})}center(t,e){return this.cx(t).cy(e)}cx(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)}cy(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)}defs(){const t=this.root();return t&&t.defs()}dmove(t,e){return this.dx(t).dy(e)}dx(t=0){return this.x(new St(t).plus(this.x()))}dy(t=0){return this.y(new St(t).plus(this.y()))}getEventHolder(){return this}height(t){return this.attr("height",t)}move(t,e){return this.x(t).y(e)}parents(t=this.root()){const e="string"==typeof t;e||(t=A(t));const r=new ct;let n=this;for(;(n=n.parent())&&n.node!==M.document&&"#document-fragment"!==n.nodeName&&(r.push(n),e||n.node!==t.node)&&(!e||!n.matches(t));)if(n.node===this.root().node)return null;return r}reference(t){if(!(t=this.attr(t)))return null;const e=(t+"").match(q);return e?A(e[1]):null}root(){const t=this.parent(N[P]);return t&&t.root()}setData(t){return this.dom=t,this}size(t,e){const r=g(this,t,e);return this.width(new St(r.width)).height(new St(r.height))}width(t){return this.attr("width",t)}writeDataToDom(){return x(this,this.dom),super.writeDataToDom()}x(t){return this.attr("x",t)}y(t){return this.attr("y",t)}}L(Pt,{bbox:function(){const t=ht(this,(t=>t.getBBox()),(t=>{try{const e=t.clone().addTo(st().svg).show(),r=e.node.getBBox();return e.remove(),r}catch(e){throw new Error(`Getting bbox of element "${t.node.nodeName}" is not possible: ${e.toString()}`)}}));return new at(t)},rbox:function(t){const e=ht(this,(t=>t.getBoundingClientRect()),(t=>{throw new Error(`Getting rbox of element "${t.node.nodeName}" is not possible`)})),r=new at(e);return t?r.transform(t.screenCTM().inverseO()):r.addOffset()},inside:function(t,e){const r=this.bbox();return t>r.x&&e>r.y&&t<r.x+r.width&&e<r.y+r.height},point:function(t,e){return new rt(t,e).transformO(this.screenCTM().inverseO())},ctm:function(){return new it(this.node.getCTM())},screenCTM:function(){try{if("function"==typeof this.isRoot&&!this.isRoot()){const t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new it(e)}return new it(this.node.getScreenCTM())}catch(t){return console.warn(`Cannot get CTM from SVG node ${this.node.nodeName}. Is the element rendered?`),new it}}}),D(Pt,"Element");const Ct={stroke:["color","width","opacity","linecap","linejoin","miterlimit","dasharray","dashoffset"],fill:["color","opacity","rule"],prefix:function(t,e){return"color"===e?t:t+"-"+e}};["fill","stroke"].forEach((function(t){const e={};let r;e[t]=function(e){if(void 0===e)return this.attr(t);if("string"==typeof e||e instanceof et||et.isRgb(e)||e instanceof Pt)this.attr(t,e);else for(r=Ct[t].length-1;r>=0;r--)null!=e[Ct[t][r]]&&this.attr(Ct.prefix(t,Ct[t][r]),e[Ct[t][r]]);return this},c(["Element","Runner"],e)})),c(["Element","Runner"],{matrix:function(t,e,r,n,i,s){return null==t?new it(this):this.attr("transform",new it(t,e,r,n,i,s))},rotate:function(t,e,r){return this.transform({rotate:t,ox:e,oy:r},!0)},skew:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({skew:t,ox:e,oy:r},!0):this.transform({skew:[t,e],ox:r,oy:n},!0)},shear:function(t,e,r){return this.transform({shear:t,ox:e,oy:r},!0)},scale:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({scale:t,ox:e,oy:r},!0):this.transform({scale:[t,e],ox:r,oy:n},!0)},translate:function(t,e){return this.transform({translate:[t,e]},!0)},relative:function(t,e){return this.transform({relative:[t,e]},!0)},flip:function(t="both",e="center"){return-1==="xybothtrue".indexOf(t)&&(e=t,t="both"),this.transform({flip:t,origin:e},!0)},opacity:function(t){return this.attr("opacity",t)}}),c("radius",{radius:function(t,e=t){return"radialGradient"===(this._element||this).type?this.attr("r",new St(t)):this.rx(t).ry(e)}}),c("Path",{length:function(){return this.node.getTotalLength()},pointAt:function(t){return new rt(this.node.getPointAtLength(t))}}),c(["Element","Runner"],{font:function(t,e){if("object"==typeof t){for(e in t)this.font(e,t[e]);return this}return"leading"===t?this.leading(e):"anchor"===t?this.attr("text-anchor",e):"size"===t||"family"===t||"weight"===t||"stretch"===t||"variant"===t||"style"===t?this.attr("font-"+t,e):this.attr(t,e)}}),c("Element",["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","touchstart","touchmove","touchleave","touchend","touchcancel","contextmenu","wheel","pointerdown","pointermove","pointerup","pointerleave","pointercancel"].reduce((function(t,e){return t[e]=function(t){return null===t?this.off(e):this.on(e,t),this},t}),{})),c("Element",{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(X).slice(0,-1).map((function(t){const e=t.trim().split("(");return[e[0],e[1].split(Q).map((function(t){return parseFloat(t)}))]})).reverse().reduce((function(t,e){return"matrix"===e[0]?t.lmultiply(it.fromArray(e[1])):t[e[0]].apply(t,e[1])}),new it)},toParent:function(t,e){if(this===t)return this;if(b(this.node))return this.addTo(t,e);const r=this.screenCTM(),n=t.screenCTM().inverse();return this.addTo(t,e).untransform().transform(n.multiply(r)),this},toRoot:function(t){return this.toParent(this.root(),t)},transform:function(t,e){if(null==t||"string"==typeof t){const e=new it(this).decompose();return null==t?e:e[t]}it.isMatrixLike(t)||(t={...t,origin:y(t,this)});const r=new it(!0===e?this:e||!1).transform(t);return this.attr("transform",r)}});class At extends Pt{flatten(){return this.each((function(){if(this instanceof At)return this.flatten().ungroup()})),this}ungroup(t=this.parent(),e=t.index(this)){return e=-1===e?t.children().length:e,this.each((function(r,n){return n[n.length-r-1].toParent(t,e)})),this.remove()}}D(At,"Container");class Tt extends At{constructor(t,e=t){super(T("defs",t),e)}flatten(){return this}ungroup(){return this}}D(Tt,"Defs");class Et extends Pt{}function jt(t){return this.attr("rx",t)}function Dt(t){return this.attr("ry",t)}function kt(t){return null==t?this.cx()-this.rx():this.cx(t+this.rx())}function Bt(t){return null==t?this.cy()-this.ry():this.cy(t+this.ry())}function It(t){return this.attr("cx",t)}function Lt(t){return this.attr("cy",t)}function Vt(t){return null==t?2*this.rx():this.rx(new St(t).divide(2))}function Ft(t){return null==t?2*this.ry():this.ry(new St(t).divide(2))}D(Et,"Shape");class Rt extends Et{constructor(t,e=t){super(T("ellipse",t),e)}size(t,e){const r=g(this,t,e);return this.rx(new St(r.width).divide(2)).ry(new St(r.height).divide(2))}}L(Rt,t),c("Container",{ellipse:V((function(t=0,e=t){return this.put(new Rt).size(t,e).move(0,0)}))}),D(Rt,"Ellipse");class zt extends Nt{constructor(t=M.document.createDocumentFragment()){super(t)}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){const t=new Nt(C("wrapper",r));return t.add(this.node.cloneNode(!0)),t.xml(!1,r)}return super.xml(t,!1,r)}}D(zt,"Fragment");const qt=zt;function Xt(t,e){return"radialGradient"===(this._element||this).type?this.attr({fx:new St(t),fy:new St(e)}):this.attr({x1:new St(t),y1:new St(e)})}function Yt(t,e){return"radialGradient"===(this._element||this).type?this.attr({cx:new St(t),cy:new St(e)}):this.attr({x2:new St(t),y2:new St(e)})}class Gt extends At{constructor(t,e){super(T(t+"Gradient","string"==typeof t?null:t),e)}attr(t,e,r){return"transform"===t&&(t="gradientTransform"),super.attr(t,e,r)}bbox(){return new at}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}L(Gt,e),c({Container:{gradient(...t){return this.defs().gradient(...t)}},Defs:{gradient:V((function(t,e){return this.put(new Gt(t)).update(e)}))}}),D(Gt,"Gradient");class Ht extends At{constructor(t,e=t){super(T("pattern",t),e)}attr(t,e,r){return"transform"===t&&(t="patternTransform"),super.attr(t,e,r)}bbox(){return new at}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}c({Container:{pattern(...t){return this.defs().pattern(...t)}},Defs:{pattern:V((function(t,e,r){return this.put(new Ht).update(r).attr({x:0,y:0,width:t,height:e,patternUnits:"userSpaceOnUse"})}))}}),D(Ht,"Pattern");class Ut extends Et{constructor(t,e=t){super(T("image",t),e)}load(t,e){if(!t)return this;const r=new M.window.Image;return yt(r,"load",(function(t){const n=this.parent(Ht);0===this.width()&&0===this.height()&&this.size(r.width,r.height),n instanceof Ht&&0===n.width()&&0===n.height()&&n.size(this.width(),this.height()),"function"==typeof e&&e.call(this,t)}),this),yt(r,"load error",(function(){wt(r)})),this.attr("href",r.src=t,S)}}var $t;$t=function(t,e,r){return"fill"!==t&&"stroke"!==t||W.test(e)&&(e=r.root().defs().image(e)),e instanceof Ut&&(e=r.root().defs().pattern(0,0,(t=>{t.add(e)}))),e},Ot.push($t),c({Container:{image:V((function(t,e){return this.put(new Ut).size(0,0).load(t,e)}))}}),D(Ut,"Image");class Wt extends _t{bbox(){let t=-1/0,e=-1/0,r=1/0,n=1/0;return this.forEach((function(i){t=Math.max(i[0],t),e=Math.max(i[1],e),r=Math.min(i[0],r),n=Math.min(i[1],n)})),new at(r,n,t-r,e-n)}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r=this.length-1;r>=0;r--)this[r]=[this[r][0]+t,this[r][1]+e];return this}parse(t=[0,0]){const e=[];(t=t instanceof Array?Array.prototype.concat.apply([],t):t.trim().split(Q).map(parseFloat)).length%2!=0&&t.pop();for(let r=0,n=t.length;r<n;r+=2)e.push([t[r],t[r+1]]);return e}size(t,e){let r;const n=this.bbox();for(r=this.length-1;r>=0;r--)n.width&&(this[r][0]=(this[r][0]-n.x)*t/n.width+n.x),n.height&&(this[r][1]=(this[r][1]-n.y)*e/n.height+n.y);return this}toLine(){return{x1:this[0][0],y1:this[0][1],x2:this[1][0],y2:this[1][1]}}toString(){const t=[];for(let e=0,r=this.length;e<r;e++)t.push(this[e].join(","));return t.join(" ")}transform(t){return this.clone().transformO(t)}transformO(t){it.isMatrixLike(t)||(t=new it(t));for(let e=this.length;e--;){const[r,n]=this[e];this[e][0]=t.a*r+t.c*n+t.e,this[e][1]=t.b*r+t.d*n+t.f}return this}}const Qt=Wt;function Jt(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}function Zt(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}function Kt(t){const e=this.bbox();return null==t?e.width:this.size(t,e.height)}function te(t){const e=this.bbox();return null==t?e.height:this.size(e.width,t)}class ee extends Et{constructor(t,e=t){super(T("line",t),e)}array(){return new Wt([[this.attr("x1"),this.attr("y1")],[this.attr("x2"),this.attr("y2")]])}move(t,e){return this.attr(this.array().move(t,e).toLine())}plot(t,e,r,n){return null==t?this.array():(t=void 0!==e?{x1:t,y1:e,x2:r,y2:n}:new Wt(t).toLine(),this.attr(t))}size(t,e){const r=g(this,t,e);return this.attr(this.array().size(r.width,r.height).toLine())}}L(ee,i),c({Container:{line:V((function(...t){return ee.prototype.plot.apply(this.put(new ee),null!=t[0]?t:[0,0,0,0])}))}}),D(ee,"Line");class re extends At{constructor(t,e=t){super(T("marker",t),e)}height(t){return this.attr("markerHeight",t)}orient(t){return this.attr("orient",t)}ref(t,e){return this.attr("refX",t).attr("refY",e)}toString(){return"url(#"+this.id()+")"}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}width(t){return this.attr("markerWidth",t)}}function ne(t,e){return function(r){return null==r?this[t]:(this[t]=r,e&&e.call(this),this)}}c({Container:{marker(...t){return this.defs().marker(...t)}},Defs:{marker:V((function(t,e,r){return this.put(new re).size(t,e).ref(t/2,e/2).viewbox(0,0,t,e).attr("orient","auto").update(r)}))},marker:{marker(t,e,r,n){let i=["marker"];return"all"!==t&&i.push(t),i=i.join("-"),t=arguments[1]instanceof re?arguments[1]:this.defs().marker(e,r,n),this.attr(i,t)}}}),D(re,"Marker");const ie={"-":function(t){return t},"<>":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)},bezier:function(t,e,r,n){return function(i){return i<0?t>0?e/t*i:r>0?n/r*i:0:i>1?r<1?(1-n)/(1-r)*i+(n-r)/(1-r):t<1?(1-e)/(1-t)*i+(e-t)/(1-t):1:3*i*(1-i)**2*e+3*i**2*(1-i)*n+i**3}},steps:function(t,e="end"){e=e.split("-").reverse()[0];let r=t;return"none"===e?--r:"both"===e&&++r,(n,i=!1)=>{let s=Math.floor(n*t);const o=n*s%1==0;return"start"!==e&&"both"!==e||++s,i&&o&&--s,n>=0&&s<0&&(s=0),n<=1&&s>r&&(s=r),s/r}}};class se{done(){return!1}}class oe extends se{constructor(t=">"){super(),this.ease=ie[t]||t}step(t,e,r){return"number"!=typeof t?r<1?t:e:t+(e-t)*this.ease(r)}}class ae extends se{constructor(t){super(),this.stepper=t}done(t){return t.done}step(t,e,r,n){return this.stepper(t,e,r,n)}}function he(){const t=(this._duration||500)/1e3,e=this._overshoot||0,r=Math.PI,n=Math.log(e/100+1e-10),i=-n/Math.sqrt(r*r+n*n),s=3.9/(i*t);this.d=2*i*s,this.k=s*s}L(class extends ae{constructor(t=500,e=0){super(),this.duration(t).overshoot(e)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;r>100&&(r=16),r/=1e3;const i=n.velocity||0,s=-this.d*i-this.k*(t-e),o=t+i*r+s*r*r/2;return n.velocity=i+s*r,n.done=Math.abs(e-o)+Math.abs(i)<.002,n.done?e:o}},{duration:ne("_duration",he),overshoot:ne("_overshoot",he)}),L(class extends ae{constructor(t=.1,e=.01,r=0,n=1e3){super(),this.p(t).i(e).d(r).windup(n)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;const i=e-t;let s=(n.integral||0)+i*r;const o=(i-(n.error||0))/r,a=this._windup;return!1!==a&&(s=Math.max(-a,Math.min(s,a))),n.error=i,n.integral=s,n.done=Math.abs(i)<.001,n.done?e:t+(this.P*i+this.I*s+this.D*o)}},{windup:ne("_windup"),p:ne("P"),i:ne("I"),d:ne("D")});const ue={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0},ce={M:function(t,e,r){return e.x=r.x=t[0],e.y=r.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},S:function(t,e){return e.x=t[2],e.y=t[3],["S",t[0],t[1],t[2],t[3]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},T:function(t,e){return e.x=t[0],e.y=t[1],["T",t[0],t[1]]},Z:function(t,e,r){return e.x=r.x,e.y=r.y,["Z"]},A:function(t,e){return e.x=t[5],e.y=t[6],["A",t[0],t[1],t[2],t[3],t[4],t[5],t[6]]}},le="mlhvqtcsaz".split("");for(let t=0,e=le.length;t<e;++t)ce[le[t]]=function(t){return function(e,r,n){if("H"===t)e[0]=e[0]+r.x;else if("V"===t)e[0]=e[0]+r.y;else if("A"===t)e[5]=e[5]+r.x,e[6]=e[6]+r.y;else for(let t=0,n=e.length;t<n;++t)e[t]=e[t]+(t%2?r.y:r.x);return ce[t](e,r,n)}}(le[t].toUpperCase());function de(t){return t.segment.length&&t.segment.length-1===ue[t.segment[0].toUpperCase()]}function fe(t,e){t.inNumber&&pe(t,!1);const r=J.test(e);if(r)t.segment=[e];else{const e=t.lastCommand,r=e.toLowerCase(),n=e===r;t.segment=["m"===r?n?"l":"L":e]}return t.inSegment=!0,t.lastCommand=t.segment[0],r}function pe(t,e){if(!t.inNumber)throw new Error("Parser Error");t.number&&t.segment.push(parseFloat(t.number)),t.inNumber=e,t.number="",t.pointSeen=!1,t.hasExponent=!1,de(t)&&me(t)}function me(t){t.inSegment=!1,t.absolute&&(t.segment=function(t){const e=t.segment[0];return ce[e](t.segment.slice(1),t.p,t.p0)}(t)),t.segments.push(t.segment)}function ge(t){if(!t.segment.length)return!1;const e="A"===t.segment[0].toUpperCase(),r=t.segment.length;return e&&(4===r||5===r)}function ye(t){return"E"===t.lastToken.toUpperCase()}const we=new Set([" ",",","\t","\n","\r","\f"]);class be extends _t{bbox(){return st().path.setAttribute("d",this.toString()),new at(st.nodes.path.getBBox())}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r,n=this.length-1;n>=0;n--)r=this[n][0],"M"===r||"L"===r||"T"===r?(this[n][1]+=t,this[n][2]+=e):"H"===r?this[n][1]+=t:"V"===r?this[n][1]+=e:"C"===r||"S"===r||"Q"===r?(this[n][1]+=t,this[n][2]+=e,this[n][3]+=t,this[n][4]+=e,"C"===r&&(this[n][5]+=t,this[n][6]+=e)):"A"===r&&(this[n][6]+=t,this[n][7]+=e);return this}parse(t="M0 0"){return Array.isArray(t)&&(t=Array.prototype.concat.apply([],t).toString()),function(t,e=!0){let r=0,n="";const i={segment:[],inNumber:!1,number:"",lastToken:"",inSegment:!1,segments:[],pointSeen:!1,hasExponent:!1,absolute:e,p0:new rt,p:new rt};for(;i.lastToken=n,n=t.charAt(r++);)if(i.inSegment||!fe(i,n))if("."!==n)if(isNaN(parseInt(n)))if(we.has(n))i.inNumber&&pe(i,!1);else if("-"!==n&&"+"!==n)if("E"!==n.toUpperCase()){if(J.test(n)){if(i.inNumber)pe(i,!1);else{if(!de(i))throw new Error("parser Error");me(i)}--r}}else i.number+=n,i.hasExponent=!0;else{if(i.inNumber&&!ye(i)){pe(i,!1),--r;continue}i.number+=n,i.inNumber=!0}else{if("0"===i.number||ge(i)){i.inNumber=!0,i.number=n,pe(i,!0);continue}i.inNumber=!0,i.number+=n}else{if(i.pointSeen||i.hasExponent){pe(i,!1),--r;continue}i.inNumber=!0,i.pointSeen=!0,i.number+=n}return i.inNumber&&pe(i,!1),i.inSegment&&de(i)&&me(i),i.segments}(t)}size(t,e){const r=this.bbox();let n,i;for(r.width=0===r.width?1:r.width,r.height=0===r.height?1:r.height,n=this.length-1;n>=0;n--)i=this[n][0],"M"===i||"L"===i||"T"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y):"H"===i?this[n][1]=(this[n][1]-r.x)*t/r.width+r.x:"V"===i?this[n][1]=(this[n][1]-r.y)*e/r.height+r.y:"C"===i||"S"===i||"Q"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y,this[n][3]=(this[n][3]-r.x)*t/r.width+r.x,this[n][4]=(this[n][4]-r.y)*e/r.height+r.y,"C"===i&&(this[n][5]=(this[n][5]-r.x)*t/r.width+r.x,this[n][6]=(this[n][6]-r.y)*e/r.height+r.y)):"A"===i&&(this[n][1]=this[n][1]*t/r.width,this[n][2]=this[n][2]*e/r.height,this[n][6]=(this[n][6]-r.x)*t/r.width+r.x,this[n][7]=(this[n][7]-r.y)*e/r.height+r.y);return this}toString(){return function(t){let e="";for(let r=0,n=t.length;r<n;r++)e+=t[r][0],null!=t[r][1]&&(e+=t[r][1],null!=t[r][2]&&(e+=" ",e+=t[r][2],null!=t[r][3]&&(e+=" ",e+=t[r][3],e+=" ",e+=t[r][4],null!=t[r][5]&&(e+=" ",e+=t[r][5],e+=" ",e+=t[r][6],null!=t[r][7]&&(e+=" ",e+=t[r][7])))));return e+" "}(this)}}const xe=t=>{const e=typeof t;return"number"===e?St:"string"===e?et.isColor(t)?et:Q.test(t)?J.test(t)?be:_t:F.test(t)?St:_e:Ne.indexOf(t.constructor)>-1?t.constructor:Array.isArray(t)?_t:"object"===e?Oe:_e};class ve{constructor(t){this._stepper=t||new oe("-"),this._from=null,this._to=null,this._type=null,this._context=null,this._morphObj=null}at(t){return this._morphObj.morph(this._from,this._to,t,this._stepper,this._context)}done(){return this._context.map(this._stepper.done).reduce((function(t,e){return t&&e}),!0)}from(t){return null==t?this._from:(this._from=this._set(t),this)}stepper(t){return null==t?this._stepper:(this._stepper=t,this)}to(t){return null==t?this._to:(this._to=this._set(t),this)}type(t){return null==t?this._type:(this._type=t,this)}_set(t){this._type||this.type(xe(t));let e=new this._type(t);return this._type===et&&(e=this._to?e[this._to[4]]():this._from?e[this._from[4]]():e),this._type===Oe&&(e=this._to?e.align(this._to):this._from?e.align(this._from):e),e=e.toConsumable(),this._morphObj=this._morphObj||new this._type,this._context=this._context||Array.apply(null,Array(e.length)).map(Object).map((function(t){return t.done=!0,t})),e}}class _e{constructor(...t){this.init(...t)}init(t){return t=Array.isArray(t)?t[0]:t,this.value=t,this}toArray(){return[this.value]}valueOf(){return this.value}}class Se{constructor(...t){this.init(...t)}init(t){return Array.isArray(t)&&(t={scaleX:t[0],scaleY:t[1],shear:t[2],rotate:t[3],translateX:t[4],translateY:t[5],originX:t[6],originY:t[7]}),Object.assign(this,Se.defaults,t),this}toArray(){const t=this;return[t.scaleX,t.scaleY,t.shear,t.rotate,t.translateX,t.translateY,t.originX,t.originY]}}Se.defaults={scaleX:1,scaleY:1,shear:0,rotate:0,translateX:0,translateY:0,originX:0,originY:0};const Me=(t,e)=>t[0]<e[0]?-1:t[0]>e[0]?1:0;class Oe{constructor(...t){this.init(...t)}align(t){const e=this.values;for(let r=0,n=e.length;r<n;++r){if(e[r+1]===t[r+1]){if(e[r+1]===et&&t[r+7]!==e[r+7]){const e=t[r+7],n=new et(this.values.splice(r+3,5))[e]().toArray();this.values.splice(r+3,0,...n)}r+=e[r+2]+2;continue}if(!t[r+1])return this;const n=(new t[r+1]).toArray(),i=e[r+2]+3;e.splice(r,i,t[r],t[r+1],t[r+2],...n),r+=e[r+2]+2}return this}init(t){if(this.values=[],Array.isArray(t))return void(this.values=t.slice());t=t||{};const e=[];for(const r in t){const n=xe(t[r]),i=new n(t[r]).toArray();e.push([r,n,i.length,...i])}return e.sort(Me),this.values=e.reduce(((t,e)=>t.concat(e)),[]),this}toArray(){return this.values}valueOf(){const t={},e=this.values;for(;e.length;){const r=e.shift(),n=e.shift(),i=e.shift(),s=e.splice(0,i);t[r]=new n(s)}return t}}const Ne=[_e,Se,Oe];class Pe extends Et{constructor(t,e=t){super(T("path",t),e)}array(){return this._array||(this._array=new be(this.attr("d")))}clear(){return delete this._array,this}height(t){return null==t?this.bbox().height:this.size(this.bbox().width,t)}move(t,e){return this.attr("d",this.array().move(t,e))}plot(t){return null==t?this.array():this.clear().attr("d","string"==typeof t?t:this._array=new be(t))}size(t,e){const r=g(this,t,e);return this.attr("d",this.array().size(r.width,r.height))}width(t){return null==t?this.bbox().width:this.size(t,this.bbox().height)}x(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}y(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}}function Ce(){return this._array||(this._array=new Wt(this.attr("points")))}function Ae(){return delete this._array,this}function Te(t,e){return this.attr("points",this.array().move(t,e))}function Ee(t){return null==t?this.array():this.clear().attr("points","string"==typeof t?t:this._array=new Wt(t))}function je(t,e){const r=g(this,t,e);return this.attr("points",this.array().size(r.width,r.height))}Pe.prototype.MorphArray=be,c({Container:{path:V((function(t){return this.put(new Pe).plot(t||new be)}))}}),D(Pe,"Path");class De extends Et{constructor(t,e=t){super(T("polygon",t),e)}}c({Container:{polygon:V((function(t){return this.put(new De).plot(t||new Wt)}))}}),L(De,i),L(De,s),D(De,"Polygon");class ke extends Et{constructor(t,e=t){super(T("polyline",t),e)}}c({Container:{polyline:V((function(t){return this.put(new ke).plot(t||new Wt)}))}}),L(ke,i),L(ke,s),D(ke,"Polyline");class Be extends Et{constructor(t,e=t){super(T("rect",t),e)}}L(Be,{rx:jt,ry:Dt}),c({Container:{rect:V((function(t,e){return this.put(new Be).size(t,e)}))}}),D(Be,"Rect");class Ie{constructor(){this._first=null,this._last=null}first(){return this._first&&this._first.value}last(){return this._last&&this._last.value}push(t){const e=void 0!==t.next?t:{value:t,next:null,prev:null};return this._last?(e.prev=this._last,this._last.next=e,this._last=e):(this._last=e,this._first=e),e}remove(t){t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t===this._last&&(this._last=t.prev),t===this._first&&(this._first=t.next),t.prev=null,t.next=null}shift(){const t=this._first;return t?(this._first=t.next,this._first&&(this._first.prev=null),this._last=this._first?this._last:null,t.value):null}}const Le={nextDraw:null,frames:new Ie,timeouts:new Ie,immediates:new Ie,timer:()=>M.window.performance||M.window.Date,transforms:[],frame(t){const e=Le.frames.push({run:t});return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),e},timeout(t,e){e=e||0;const r=Le.timer().now()+e,n=Le.timeouts.push({run:t,time:r});return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),n},immediate(t){const e=Le.immediates.push(t);return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),e},cancelFrame(t){null!=t&&Le.frames.remove(t)},clearTimeout(t){null!=t&&Le.timeouts.remove(t)},cancelImmediate(t){null!=t&&Le.immediates.remove(t)},_draw(t){let e=null;const r=Le.timeouts.last();for(;(e=Le.timeouts.shift())&&(t>=e.time?e.run():Le.timeouts.push(e),e!==r););let n=null;const i=Le.frames.last();for(;n!==i&&(n=Le.frames.shift());)n.run(t);let s=null;for(;s=Le.immediates.shift();)s();Le.nextDraw=Le.timeouts.first()||Le.frames.first()?M.window.requestAnimationFrame(Le._draw):null}},Ve=Le,Fe=function(t){const e=t.start,r=t.runner.duration();return{start:e,duration:r,end:e+r,runner:t.runner}},Re=function(){const t=M.window;return(t.performance||t.Date).now()};class ze extends bt{constructor(t=Re){super(),this._timeSource=t,this.terminate()}active(){return!!this._nextFrame}finish(){return this.time(this.getEndTimeOfTimeline()+1),this.pause()}getEndTime(){const t=this.getLastRunnerInfo(),e=t?t.runner.duration():0;return(t?t.start:this._time)+e}getEndTimeOfTimeline(){const t=this._runners.map((t=>t.start+t.runner.duration()));return Math.max(0,...t)}getLastRunnerInfo(){return this.getRunnerInfoById(this._lastRunnerId)}getRunnerInfoById(t){return this._runners[this._runnerIds.indexOf(t)]||null}pause(){return this._paused=!0,this._continue()}persist(t){return null==t?this._persist:(this._persist=t,this)}play(){return this._paused=!1,this.updateTime()._continue()}reverse(t){const e=this.speed();if(null==t)return this.speed(-e);const r=Math.abs(e);return this.speed(t?-r:r)}schedule(t,e,r){if(null==t)return this._runners.map(Fe);let n=0;const i=this.getEndTime();if(e=e||0,null==r||"last"===r||"after"===r)n=i;else if("absolute"===r||"start"===r)n=e,e=0;else if("now"===r)n=this._time;else if("relative"===r){const r=this.getRunnerInfoById(t.id);r&&(n=r.start+e,e=0)}else{if("with-last"!==r)throw new Error('Invalid value for the "when" parameter');{const t=this.getLastRunnerInfo();n=t?t.start:this._time}}t.unschedule(),t.timeline(this);const s=t.persist(),o={persist:null===s?this._persist:s,start:n+e,runner:t};return this._lastRunnerId=t.id,this._runners.push(o),this._runners.sort(((t,e)=>t.start-e.start)),this._runnerIds=this._runners.map((t=>t.runner.id)),this.updateTime()._continue(),this}seek(t){return this.time(this._time+t)}source(t){return null==t?this._timeSource:(this._timeSource=t,this)}speed(t){return null==t?this._speed:(this._speed=t,this)}stop(){return this.time(0),this.pause()}time(t){return null==t?this._time:(this._time=t,this._continue(!0))}unschedule(t){const e=this._runnerIds.indexOf(t.id);return e<0||(this._runners.splice(e,1),this._runnerIds.splice(e,1),t.timeline(null)),this}updateTime(){return this.active()||(this._lastSourceTime=this._timeSource()),this}_continue(t=!1){return Ve.cancelFrame(this._nextFrame),this._nextFrame=null,t?this._stepImmediate():(this._paused||(this._nextFrame=Ve.frame(this._step)),this)}_stepFn(t=!1){const e=this._timeSource();let r=e-this._lastSourceTime;t&&(r=0);const n=this._speed*r+(this._time-this._lastStepTime);this._lastSourceTime=e,t||(this._time+=n,this._time=this._time<0?0:this._time),this._lastStepTime=this._time,this.fire("time",this._time);for(let t=this._runners.length;t--;){const e=this._runners[t],r=e.runner;this._time-e.start<=0&&r.reset()}let i=!1;for(let t=0,e=this._runners.length;t<e;t++){const r=this._runners[t],s=r.runner;let o=n;const a=this._time-r.start;a<=0?i=!0:(a<o&&(o=a),s.active()&&(s.step(o).done?!0!==r.persist&&s.duration()-s.time()+this._time+r.persist<this._time&&(s.unschedule(),--t,--e):i=!0))}return i&&!(this._speed<0&&0===this._time)||this._runnerIds.length&&this._speed<0&&this._time>0?this._continue():(this.pause(),this.fire("finished")),this}terminate(){this._startTime=0,this._speed=1,this._persist=0,this._nextFrame=null,this._paused=!0,this._runners=[],this._runnerIds=[],this._lastRunnerId=-1,this._time=0,this._lastSourceTime=0,this._lastStepTime=0,this._step=this._stepFn.bind(this,!1),this._stepImmediate=this._stepFn.bind(this,!0)}}c({Element:{timeline:function(t){return null==t?(this._timeline=this._timeline||new ze,this._timeline):(this._timeline=t,this)}}});class qe extends bt{constructor(t){super(),this.id=qe.id++,t="function"==typeof(t=null==t?400:t)?new ae(t):t,this._element=null,this._timeline=null,this.done=!1,this._queue=[],this._duration="number"==typeof t&&t,this._isDeclarative=t instanceof ae,this._stepper=this._isDeclarative?t:new oe,this._history={},this.enabled=!0,this._time=0,this._lastTime=0,this._reseted=!0,this.transforms=new it,this.transformId=1,this._haveReversed=!1,this._reverse=!1,this._loopsDone=0,this._swing=!1,this._wait=0,this._times=1,this._frameId=null,this._persist=!!this._isDeclarative||null}static sanitise(t,e,r){let n=1,i=!1,s=0;return e=e??0,r=r||"last","object"!=typeof(t=t??400)||t instanceof se||(e=t.delay??e,r=t.when??r,i=t.swing||i,n=t.times??n,s=t.wait??s,t=t.duration??400),{duration:t,delay:e,swing:i,times:n,wait:s,when:r}}active(t){return null==t?this.enabled:(this.enabled=t,this)}addTransform(t){return this.transforms.lmultiplyO(t),this}after(t){return this.on("finished",t)}animate(t,e,r){const n=qe.sanitise(t,e,r),i=new qe(n.duration);return this._timeline&&i.timeline(this._timeline),this._element&&i.element(this._element),i.loop(n).schedule(n.delay,n.when)}clearTransform(){return this.transforms=new it,this}clearTransformsFromQueue(){this.done&&this._timeline&&this._timeline._runnerIds.includes(this.id)||(this._queue=this._queue.filter((t=>!t.isTransform)))}delay(t){return this.animate(0,t)}duration(){return this._times*(this._wait+this._duration)-this._wait}during(t){return this.queue(null,t)}ease(t){return this._stepper=new oe(t),this}element(t){return null==t?this._element:(this._element=t,t._prepareRunner(),this)}finish(){return this.step(1/0)}loop(t,e,r){return"object"==typeof t&&(e=t.swing,r=t.wait,t=t.times),this._times=t||1/0,this._swing=e||!1,this._wait=r||0,!0===this._times&&(this._times=1/0),this}loops(t){const e=this._duration+this._wait;if(null==t){const t=Math.floor(this._time/e),r=(this._time-t*e)/this._duration;return Math.min(t+r,this._times)}const r=t%1,n=e*Math.floor(t)+this._duration*r;return this.time(n)}persist(t){return null==t?this._persist:(this._persist=t,this)}position(t){const e=this._time,r=this._duration,n=this._wait,i=this._times,s=this._swing,o=this._reverse;let a;if(null==t){const t=function(t){const e=s*Math.floor(t%(2*(n+r))/(n+r)),i=e&&!o||!e&&o,a=Math.pow(-1,i)*(t%(n+r))/r+i;return Math.max(Math.min(a,1),0)},h=i*(n+r)-n;return a=e<=0?Math.round(t(1e-5)):e<h?t(e):Math.round(t(h-1e-5)),a}const h=Math.floor(this.loops()),u=s&&h%2==0;return a=h+(u&&!o||o&&u?t:1-t),this.loops(a)}progress(t){return null==t?Math.min(1,this._time/this.duration()):this.time(t*this.duration())}queue(t,e,r,n){return this._queue.push({initialiser:t||xt,runner:e||xt,retarget:r,isTransform:n,initialised:!1,finished:!1}),this.timeline()&&this.timeline()._continue(),this}reset(){return this._reseted||(this.time(0),this._reseted=!0),this}reverse(t){return this._reverse=null==t?!this._reverse:t,this}schedule(t,e,r){if(t instanceof ze||(r=e,e=t,t=this.timeline()),!t)throw Error("Runner cannot be scheduled without timeline");return t.schedule(this,e,r),this}step(t){if(!this.enabled)return this;t=null==t?16:t,this._time+=t;const e=this.position(),r=this._lastPosition!==e&&this._time>=0;this._lastPosition=e;const n=this.duration(),i=this._lastTime<=0&&this._time>0,s=this._lastTime<n&&this._time>=n;this._lastTime=this._time,i&&this.fire("start",this);const o=this._isDeclarative;this.done=!o&&!s&&this._time>=n,this._reseted=!1;let a=!1;return(r||o)&&(this._initialise(r),this.transforms=new it,a=this._run(o?t:e),this.fire("step",this)),this.done=this.done||a&&o,s&&this.fire("finished",this),this}time(t){if(null==t)return this._time;const e=t-this._time;return this.step(e),this}timeline(t){return void 0===t?this._timeline:(this._timeline=t,this)}unschedule(){const t=this.timeline();return t&&t.unschedule(this),this}_initialise(t){if(t||this._isDeclarative)for(let e=0,r=this._queue.length;e<r;++e){const r=this._queue[e],n=this._isDeclarative||!r.initialised&&t;t=!r.finished,n&&t&&(r.initialiser.call(this),r.initialised=!0)}}_rememberMorpher(t,e){if(this._history[t]={morpher:e,caller:this._queue[this._queue.length-1]},this._isDeclarative){const t=this.timeline();t&&t.play()}}_run(t){let e=!0;for(let r=0,n=this._queue.length;r<n;++r){const n=this._queue[r],i=n.runner.call(this,t);n.finished=n.finished||!0===i,e=e&&n.finished}return e}_tryRetarget(t,e,r){if(this._history[t]){if(!this._history[t].caller.initialised){const e=this._queue.indexOf(this._history[t].caller);return this._queue.splice(e,1),!1}this._history[t].caller.retarget?this._history[t].caller.retarget.call(this,e,r):this._history[t].morpher.to(e),this._history[t].caller.finished=!1;const n=this.timeline();return n&&n.play(),!0}return!1}}qe.id=0;class Xe{constructor(t=new it,e=-1,r=!0){this.transforms=t,this.id=e,this.done=r}clearTransformsFromQueue(){}}L([qe,Xe],{mergeWith(t){return new Xe(t.transforms.lmultiply(this.transforms),t.id)}});const Ye=(t,e)=>t.lmultiplyO(e),Ge=t=>t.transforms;function He(){const t=this._transformationRunners.runners.map(Ge).reduce(Ye,new it);this.transform(t),this._transformationRunners.merge(),1===this._transformationRunners.length()&&(this._frameId=null)}class Ue{constructor(){this.runners=[],this.ids=[]}add(t){if(this.runners.includes(t))return;const e=t.id+1;return this.runners.push(t),this.ids.push(e),this}clearBefore(t){const e=this.ids.indexOf(t+1)||1;return this.ids.splice(0,e,0),this.runners.splice(0,e,new Xe).forEach((t=>t.clearTransformsFromQueue())),this}edit(t,e){const r=this.ids.indexOf(t+1);return this.ids.splice(r,1,t+1),this.runners.splice(r,1,e),this}getByID(t){return this.runners[this.ids.indexOf(t+1)]}length(){return this.ids.length}merge(){let t=null;for(let e=0;e<this.runners.length;++e){const r=this.runners[e];if(!(t&&r.done&&t.done)||r._timeline&&r._timeline._runnerIds.includes(r.id)||t._timeline&&t._timeline._runnerIds.includes(t.id))t=r;else{this.remove(r.id);const n=r.mergeWith(t);this.edit(t.id,n),t=n,--e}}return this}remove(t){const e=this.ids.indexOf(t+1);return this.ids.splice(e,1),this.runners.splice(e,1),this}}c({Element:{animate(t,e,r){const n=qe.sanitise(t,e,r),i=this.timeline();return new qe(n.duration).loop(n).element(this).timeline(i.play()).schedule(n.delay,n.when)},delay(t,e){return this.animate(0,t,e)},_clearTransformRunnersBefore(t){this._transformationRunners.clearBefore(t.id)},_currentTransform(t){return this._transformationRunners.runners.filter((e=>e.id<=t.id)).map(Ge).reduce(Ye,new it)},_addRunner(t){this._transformationRunners.add(t),Ve.cancelImmediate(this._frameId),this._frameId=Ve.immediate(He.bind(this))},_prepareRunner(){null==this._frameId&&(this._transformationRunners=(new Ue).add(new Xe(new it(this))))}}}),L(qe,{attr(t,e){return this.styleAttr("attr",t,e)},css(t,e){return this.styleAttr("css",t,e)},styleAttr(t,e,r){if("string"==typeof e)return this.styleAttr(t,{[e]:r});let n=e;if(this._tryRetarget(t,n))return this;let i=new ve(this._stepper).to(n),s=Object.keys(n);return this.queue((function(){i=i.from(this.element()[t](s))}),(function(e){return this.element()[t](i.at(e).valueOf()),i.done()}),(function(e){const r=Object.keys(e),o=(a=s,r.filter((t=>!a.includes(t))));var a;if(o.length){const e=this.element()[t](o),r=new Oe(i.from()).valueOf();Object.assign(r,e),i.from(r)}const h=new Oe(i.to()).valueOf();Object.assign(h,e),i.to(h),s=r,n=e})),this._rememberMorpher(t,i),this},zoom(t,e){if(this._tryRetarget("zoom",t,e))return this;let r=new ve(this._stepper).to(new St(t));return this.queue((function(){r=r.from(this.element().zoom())}),(function(t){return this.element().zoom(r.at(t),e),r.done()}),(function(t,n){e=n,r.to(t)})),this._rememberMorpher("zoom",r),this},transform(t,e,r){if(e=t.relative||e,this._isDeclarative&&!e&&this._tryRetarget("transform",t))return this;const n=it.isMatrixLike(t);r=null!=t.affine?t.affine:null!=r?r:!n;const i=new ve(this._stepper).type(r?Se:it);let s,o,a,h,u;return this.queue((function(){o=o||this.element(),s=s||y(t,o),u=new it(e?void 0:o),o._addRunner(this),e||o._clearTransformRunnersBefore(this)}),(function(c){e||this.clearTransform();const{x:l,y:d}=new rt(s).transform(o._currentTransform(this));let f=new it({...t,origin:[l,d]}),p=this._isDeclarative&&a?a:u;if(r){f=f.decompose(l,d),p=p.decompose(l,d);const t=f.rotate,e=p.rotate,r=[t-360,t,t+360],n=r.map((t=>Math.abs(t-e))),i=Math.min(...n),s=n.indexOf(i);f.rotate=r[s]}e&&(n||(f.rotate=t.rotate||0),this._isDeclarative&&h&&(p.rotate=h)),i.from(p),i.to(f);const m=i.at(c);return h=m.rotate,a=new it(m),this.addTransform(a),o._addRunner(this),i.done()}),(function(e){(e.origin||"center").toString()!==(t.origin||"center").toString()&&(s=y(e,o)),t={...e,origin:s}}),!0),this._isDeclarative&&this._rememberMorpher("transform",i),this},x(t){return this._queueNumber("x",t)},y(t){return this._queueNumber("y",t)},ax(t){return this._queueNumber("ax",t)},ay(t){return this._queueNumber("ay",t)},dx(t=0){return this._queueNumberDelta("x",t)},dy(t=0){return this._queueNumberDelta("y",t)},dmove(t,e){return this.dx(t).dy(e)},_queueNumberDelta(t,e){if(e=new St(e),this._tryRetarget(t,e))return this;const r=new ve(this._stepper).to(e);let n=null;return this.queue((function(){n=this.element()[t](),r.from(n),r.to(n+e)}),(function(e){return this.element()[t](r.at(e)),r.done()}),(function(t){r.to(n+new St(t))})),this._rememberMorpher(t,r),this},_queueObject(t,e){if(this._tryRetarget(t,e))return this;const r=new ve(this._stepper).to(e);return this.queue((function(){r.from(this.element()[t]())}),(function(e){return this.element()[t](r.at(e)),r.done()})),this._rememberMorpher(t,r),this},_queueNumber(t,e){return this._queueObject(t,new St(e))},cx(t){return this._queueNumber("cx",t)},cy(t){return this._queueNumber("cy",t)},move(t,e){return this.x(t).y(e)},amove(t,e){return this.ax(t).ay(e)},center(t,e){return this.cx(t).cy(e)},size(t,e){let r;return t&&e||(r=this._element.bbox()),t||(t=r.width/r.height*e),e||(e=r.height/r.width*t),this.width(t).height(e)},width(t){return this._queueNumber("width",t)},height(t){return this._queueNumber("height",t)},plot(t,e,r,n){if(4===arguments.length)return this.plot([t,e,r,n]);if(this._tryRetarget("plot",t))return this;const i=new ve(this._stepper).type(this._element.MorphArray).to(t);return this.queue((function(){i.from(this._element.array())}),(function(t){return this._element.plot(i.at(t)),i.done()})),this._rememberMorpher("plot",i),this},leading(t){return this._queueNumber("leading",t)},viewbox(t,e,r,n){return this._queueObject("viewbox",new at(t,e,r,n))},update(t){return"object"!=typeof t?this.update({offset:arguments[0],color:arguments[1],opacity:arguments[2]}):(null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",t.offset),this)}}),L(qe,{rx:jt,ry:Dt,from:Xt,to:Yt}),D(qe,"Runner");class $e extends At{constructor(t,e=t){super(T("svg",t),e),this.namespace()}defs(){return this.isRoot()?E(this.node.querySelector("defs"))||this.put(new Tt):this.root().defs()}isRoot(){return!this.node.parentNode||!(this.node.parentNode instanceof M.window.SVGElement)&&"#document-fragment"!==this.node.parentNode.nodeName}namespace(){return this.isRoot()?this.attr({xmlns:v,version:"1.1"}).attr("xmlns:xlink",S,_):this.root().namespace()}removeNamespace(){return this.attr({xmlns:null,version:null}).attr("xmlns:xlink",null,_).attr("xmlns:svgjs",null,_)}root(){return this.isRoot()?this:super.root()}}c({Container:{nested:V((function(){return this.put(new $e)}))}}),D($e,"Svg",!0);class We extends At{constructor(t,e=t){super(T("symbol",t),e)}}function Qe(t){return!1===this._build&&this.clear(),this.node.appendChild(M.document.createTextNode(t)),this}function Je(){return this.node.getComputedTextLength()}function Ze(t,e=this.bbox()){return null==t?e.x:this.attr("x",this.attr("x")+t-e.x)}function Ke(t,e=this.bbox()){return null==t?e.y:this.attr("y",this.attr("y")+t-e.y)}function tr(t,e,r=this.bbox()){return this.x(t,r).y(e,r)}function er(t,e=this.bbox()){return null==t?e.cx:this.attr("x",this.attr("x")+t-e.cx)}function rr(t,e=this.bbox()){return null==t?e.cy:this.attr("y",this.attr("y")+t-e.cy)}function nr(t,e,r=this.bbox()){return this.cx(t,r).cy(e,r)}function ir(t){return this.attr("x",t)}function sr(t){return this.attr("y",t)}function or(t,e){return this.ax(t).ay(e)}function ar(t){return this._build=!!t,this}c({Container:{symbol:V((function(){return this.put(new We)}))}}),D(We,"Symbol");class hr extends Et{constructor(t,e=t){super(T("text",t),e),this.dom.leading=this.dom.leading??new St(1.3),this._rebuild=!0,this._build=!1}leading(t){return null==t?this.dom.leading:(this.dom.leading=new St(t),this.rebuild())}rebuild(t){if("boolean"==typeof t&&(this._rebuild=t),this._rebuild){const t=this;let e=0;const r=this.dom.leading;this.each((function(n){if(b(this.node))return;const i=M.window.getComputedStyle(this.node).getPropertyValue("font-size"),s=r*new St(i);this.dom.newLined&&(this.attr("x",t.attr("x")),"\n"===this.text()?e+=s:(this.attr("dy",n?s+e:0),e=0))})),this.fire("rebuild")}return this}setData(t){return this.dom=t,this.dom.leading=new St(t.leading||1.3),this}writeDataToDom(){return x(this,this.dom,{leading:1.3}),this}text(t){if(void 0===t){const e=this.node.childNodes;let r=0;t="";for(let n=0,i=e.length;n<i;++n)"textPath"===e[n].nodeName||b(e[n])?0===n&&(r=n+1):(n!==r&&3!==e[n].nodeType&&!0===E(e[n]).dom.newLined&&(t+="\n"),t+=e[n].textContent);return t}if(this.clear().build(!0),"function"==typeof t)t.call(this,this);else for(let e=0,r=(t=(t+"").split("\n")).length;e<r;e++)this.newLine(t[e]);return this.build(!1).rebuild()}}L(hr,o),c({Container:{text:V((function(t=""){return this.put(new hr).text(t)})),plain:V((function(t=""){return this.put(new hr).plain(t)}))}}),D(hr,"Text");class ur extends Et{constructor(t,e=t){super(T("tspan",t),e),this._build=!1}dx(t){return this.attr("dx",t)}dy(t){return this.attr("dy",t)}newLine(){this.dom.newLined=!0;const t=this.parent();if(!(t instanceof hr))return this;const e=t.index(this),r=M.window.getComputedStyle(this.node).getPropertyValue("font-size"),n=t.dom.leading*new St(r);return this.dy(e?n:0).attr("x",t.x())}text(t){return null==t?this.node.textContent+(this.dom.newLined?"\n":""):("function"==typeof t?(this.clear().build(!0),t.call(this,this),this.build(!1)):this.plain(t),this)}}L(ur,o),c({Tspan:{tspan:V((function(t=""){const e=new ur;return this._build||this.clear(),this.put(e).text(t)}))},Text:{newLine:function(t=""){return this.tspan(t).newLine()}}}),D(ur,"Tspan");class cr extends Et{constructor(t,e=t){super(T("circle",t),e)}radius(t){return this.attr("r",t)}rx(t){return this.attr("r",t)}ry(t){return this.rx(t)}size(t){return this.radius(new St(t).divide(2))}}L(cr,{x:kt,y:Bt,cx:It,cy:Lt,width:Vt,height:Ft}),c({Container:{circle:V((function(t=0){return this.put(new cr).size(t).move(0,0)}))}}),D(cr,"Circle");class lr extends At{constructor(t,e=t){super(T("clipPath",t),e)}remove(){return this.targets().forEach((function(t){t.unclip()})),super.remove()}targets(){return dt("svg [clip-path*="+this.id()+"]")}}c({Container:{clip:V((function(){return this.defs().put(new lr)}))},Element:{clipper(){return this.reference("clip-path")},clipWith(t){const e=t instanceof lr?t:this.parent().clip().add(t);return this.attr("clip-path","url(#"+e.id()+")")},unclip(){return this.attr("clip-path",null)}}}),D(lr,"ClipPath");class dr extends Pt{constructor(t,e=t){super(T("foreignObject",t),e)}}function fr(t,e){return this.children().forEach((r=>{let n;try{n=r.node instanceof M.window.SVGSVGElement?new at(r.attr(["x","y","width","height"])):r.bbox()}catch(t){return}const i=new it(r),s=i.translate(t,e).transform(i.inverse()),o=new rt(n.x,n.y).transform(s);r.move(o.x,o.y)})),this}function pr(t){return this.dmove(t,0)}function mr(t){return this.dmove(0,t)}function gr(t,e=this.bbox()){return null==t?e.height:this.size(e.width,t,e)}function yr(t=0,e=0,r=this.bbox()){const n=t-r.x,i=e-r.y;return this.dmove(n,i)}function wr(t,e,r=this.bbox()){const n=g(this,t,e,r),i=n.width/r.width,s=n.height/r.height;return this.children().forEach((t=>{const e=new rt(r).transform(new it(t).inverse());t.scale(i,s,e.x,e.y)})),this}function br(t,e=this.bbox()){return null==t?e.width:this.size(t,e.height,e)}function xr(t,e=this.bbox()){return null==t?e.x:this.move(t,e.y,e)}function vr(t,e=this.bbox()){return null==t?e.y:this.move(e.x,t,e)}c({Container:{foreignObject:V((function(t,e){return this.put(new dr).size(t,e)}))}}),D(dr,"ForeignObject");class _r extends At{constructor(t,e=t){super(T("g",t),e)}}L(_r,a),c({Container:{group:V((function(){return this.put(new _r)}))}}),D(_r,"G");class Sr extends At{constructor(t,e=t){super(T("a",t),e)}target(t){return this.attr("target",t)}to(t){return this.attr("href",t,S)}}L(Sr,a),c({Container:{link:V((function(t){return this.put(new Sr).to(t)}))},Element:{unlink(){const t=this.linker();if(!t)return this;const e=t.parent();if(!e)return this.remove();const r=e.index(t);return e.add(this,r),t.remove(),this},linkTo(t){let e=this.linker();return e||(e=new Sr,this.wrap(e)),"function"==typeof t?t.call(e,e):e.to(t),this},linker(){const t=this.parent();return t&&"a"===t.node.nodeName.toLowerCase()?t:null}}}),D(Sr,"A");class Mr extends At{constructor(t,e=t){super(T("mask",t),e)}remove(){return this.targets().forEach((function(t){t.unmask()})),super.remove()}targets(){return dt("svg [mask*="+this.id()+"]")}}c({Container:{mask:V((function(){return this.defs().put(new Mr)}))},Element:{masker(){return this.reference("mask")},maskWith(t){const e=t instanceof Mr?t:this.parent().mask().add(t);return this.attr("mask","url(#"+e.id()+")")},unmask(){return this.attr("mask",null)}}}),D(Mr,"Mask");class Or extends Pt{constructor(t,e=t){super(T("stop",t),e)}update(t){return("number"==typeof t||t instanceof St)&&(t={offset:arguments[0],color:arguments[1],opacity:arguments[2]}),null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",new St(t.offset)),this}}c({Gradient:{stop:function(t,e,r){return this.put(new Or).update(t,e,r)}}}),D(Or,"Stop");class Nr extends Pt{constructor(t,e=t){super(T("style",t),e)}addText(t=""){return this.node.textContent+=t,this}font(t,e,r={}){return this.rule("@font-face",{fontFamily:t,src:e,...r})}rule(t,e){return this.addText(function(t,e){if(!t)return"";if(!e)return t;let r=t+"{";for(const t in e)r+=t.replace(/([A-Z])/g,(function(t,e){return"-"+e.toLowerCase()}))+":"+e[t]+";";return r+="}",r}(t,e))}}c("Dom",{style(t,e){return this.put(new Nr).rule(t,e)},fontface(t,e,r){return this.put(new Nr).font(t,e,r)}}),D(Nr,"Style");class Pr extends hr{constructor(t,e=t){super(T("textPath",t),e)}array(){const t=this.track();return t?t.array():null}plot(t){const e=this.track();let r=null;return e&&(r=e.plot(t)),null==t?r:this}track(){return this.reference("href")}}c({Container:{textPath:V((function(t,e){return t instanceof hr||(t=this.text(t)),t.path(e)}))},Text:{path:V((function(t,e=!0){const r=new Pr;let n;if(t instanceof Pe||(t=this.defs().path(t)),r.attr("href","#"+t,S),e)for(;n=this.node.firstChild;)r.node.appendChild(n);return this.put(r)})),textPath(){return this.findOne("textPath")}},Path:{text:V((function(t){return t instanceof hr||(t=(new hr).addTo(this.parent()).text(t)),t.path(this)})),targets(){return dt("svg textPath").filter((t=>(t.attr("href")||"").includes(this.id())))}}}),Pr.prototype.MorphArray=be,D(Pr,"TextPath");class Cr extends Et{constructor(t,e=t){super(T("use",t),e)}use(t,e){return this.attr("href",(e||"")+"#"+t,S)}}c({Container:{use:V((function(t,e){return this.put(new Cr).use(t,e)}))}}),D(Cr,"Use"),L([$e,We,Ut,Ht,re],l("viewbox")),L([ee,ke,De,Pe],l("marker")),L(hr,l("Text")),L(Pe,l("Path")),L(Tt,l("Defs")),L([hr,ur],l("Tspan")),L([Be,Rt,Gt,qe],l("radius")),L(bt,l("EventTarget")),L(Nt,l("Dom")),L(Pt,l("Element")),L(Et,l("Shape")),L([At,qt],l("Container")),L(Gt,l("Gradient")),L(qe,l("Runner")),ct.extend([...new Set(u)]),function(t=[]){Ne.push(...[].concat(t))}([St,et,at,it,_t,Wt,be,rt]),L(Ne,{to(t){return(new ve).type(this.constructor).from(this.toArray()).to(t)},fromArray(t){return this.init(t),this},toConsumable(){return this.toArray()},morph(t,e,r,n,i){return this.fromArray(t.map((function(t,s){return n.step(t,e[s],r,i[s],i)})))}});var Ar=r(726),Tr=r(358);class Er{constructor(t,e){this.svgDoc=t,this.elements=e,new MutationObserver((t=>{t.some((t=>t.removedNodes.length>0))&&(this.elements=this.elements.filter((t=>this.svgDoc.contains(t.domNode))))})).observe(t,{childList:!0,subtree:!0})}}class jr{constructor(t,e){this.svgDoc=t,this.elementsDrawing=new Er(t,e)}get bases(){return this.elementsDrawing.elements}append(t){t.appendTo(this.svgDoc),this.bases.push(t)}add(t){let e=Tr.Nucleobase.create(t);return this.append(e),e}}var Dr,kr,Br=r(775),Ir=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},Lr=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class Vr{constructor(t){this.domNode=t,Dr.set(this,void 0),kr.set(this,void 0),Ir(this,Dr,new Er(t,[]),"f"),Ir(this,kr,new MutationObserver((()=>{this.elements.forEach((t=>{this.domNode.contains(t.owner.domNode)||t.domNode.remove()}))})),"f"),Lr(this,kr,"f").observe(t,{childList:!0,subtree:!0})}get elements(){return Lr(this,Dr,"f").elements}}Dr=new WeakMap,kr=new WeakMap;var Fr;class Rr{constructor(t){this.domNode=t,Fr.set(this,void 0),function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,Fr,new Vr(t),"f")}get baseOutlines(){return function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)}(this,Fr,"f").elements}append(t){this.domNode.append(t.domNode),this.baseOutlines.push(t)}outline(t){let e=document.createElementNS("http://www.w3.org/2000/svg","circle"),r=new Br.BaseOutline(e,t);return t.domNode.insertAdjacentElement("beforebegin",r.domNode),this.baseOutlines.push(r),r}}Fr=new WeakMap;var zr=r(282);class qr{constructor(t,e){this.svgDoc=t,this.elementsDrawing=new Er(t,e),new MutationObserver((()=>{this.bonds.forEach((t=>{this.svgDoc.contains(t.base1.domNode)&&this.svgDoc.contains(t.base2.domNode)||t.remove()}))})).observe(t,{childList:!0,subtree:!0})}get bonds(){return this.elementsDrawing.elements}set bonds(t){this.elementsDrawing.elements=t}}class Xr{constructor(t,e){this.svgDoc=t,this.primaryBondDefaultValues={attributes:{stroke:"#808080","stroke-width":"1"},basePadding1:6,basePadding2:6},this.bondsDrawing=new qr(t,e)}get primaryBonds(){return this.bondsDrawing.bonds}set primaryBonds(t){this.bondsDrawing.bonds=t}append(t){t.appendTo(this.svgDoc),this.primaryBonds.push(t)}add(t,e){let r=zr.StraightBond.between(t,e);return r.set(this.primaryBondDefaultValues),this.append(r),r}}class Yr{constructor(t,e){this.svgDoc=t,this.secondaryBondDefaultValues={attributes:{stroke:"#000000","stroke-width":"2"},basePadding1:6,basePadding2:6},this.bondsDrawing=new qr(t,e)}get secondaryBonds(){return this.bondsDrawing.bonds}set secondaryBonds(t){this.bondsDrawing.bonds=t}append(t){t.appendTo(this.svgDoc),this.secondaryBonds.push(t)}add(t,e){let r=zr.StraightBond.between(t,e);return r.set(this.secondaryBondDefaultValues),this.append(r),r}}var Gr,Hr=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class Ur{constructor(){Gr.set(this,void 0),this.domNode=(new $e).node,this.domNode.setAttribute("viewBox","0 0 250 250"),this.domNode.setAttribute("width","250"),this.domNode.setAttribute("height","250"),this.basesDrawing=new jr(this.domNode,[]),function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,Gr,new Rr(this.domNode),"f"),this.primaryBondsDrawing=new Xr(this.domNode,[]),this.secondaryBondsDrawing=new Yr(this.domNode,[])}get outerXML(){return this.domNode.outerHTML}get innerXML(){return this.domNode.innerHTML}appendTo(t){t.appendChild(this.domNode)}remove(){this.domNode.remove()}get minX(){return this.domNode.viewBox.baseVal.x}set minX(t){let e=this.maxX-t,r=this.horizontalScaling;this.domNode.setAttribute("viewBox",`${t} ${this.minY} ${e} ${this.height}`),this.domNode.setAttribute("width",(r*e).toString())}get maxX(){return this.minX+this.width}set maxX(t){let e=t-this.minX,r=this.horizontalScaling;this.domNode.setAttribute("viewBox",`${this.minX} ${this.minY} ${e} ${this.height}`),this.domNode.setAttribute("width",(r*e).toString())}get minY(){return this.domNode.viewBox.baseVal.y}set minY(t){let e=this.maxY-t,r=this.verticalScaling;this.domNode.setAttribute("viewBox",`${this.minX} ${t} ${this.width} ${e}`),this.domNode.setAttribute("height",(r*e).toString())}get maxY(){return this.minY+this.height}set maxY(t){let e=t-this.minY,r=this.verticalScaling;this.domNode.setAttribute("viewBox",`${this.minX} ${this.minY} ${this.width} ${e}`),this.domNode.setAttribute("height",(r*e).toString())}setBoundaries({minX:t,maxX:e,minY:r,maxY:n}){this.minX=t,this.maxX=e,this.minY=r,this.maxY=n}get width(){return this.domNode.viewBox.baseVal.width}set width(t){this.maxX=this.minX+t}get height(){return this.domNode.viewBox.baseVal.height}set height(t){this.maxY=this.minY+t}get horizontalScaling(){let t=this.width;return this.domNode.width.baseVal.value/t}set horizontalScaling(t){let e=this.width;this.domNode.setAttribute("width",(t*e).toString())}get verticalScaling(){let t=this.height;return this.domNode.height.baseVal.value/t}set verticalScaling(t){let e=this.height;this.domNode.setAttribute("height",(t*e).toString())}setScaling(t){this.horizontalScaling=t,this.verticalScaling=t}get horizontalClientScaling(){return new Ar.HorizontalClientScaling(this.domNode).get()}get verticalClientScaling(){return new Ar.VerticalClientScaling(this.domNode).get()}get bases(){return this.basesDrawing.bases}appendBase(t){this.basesDrawing.append(t)}addBase(t){return this.basesDrawing.add(t)}get baseOutlines(){return Hr(this,Gr,"f").baseOutlines}outlineBase(t){return Hr(this,Gr,"f").outline(t)}appendBaseOutline(t){Hr(this,Gr,"f").append(t)}get primaryBondDefaultValues(){return this.primaryBondsDrawing.primaryBondDefaultValues}set primaryBondDefaultValues(t){this.primaryBondsDrawing.primaryBondDefaultValues=t}get primaryBonds(){return this.primaryBondsDrawing.primaryBonds}set primaryBonds(t){this.primaryBondsDrawing.primaryBonds=[...t]}appendPrimaryBond(t){this.primaryBondsDrawing.append(t)}addPrimaryBond(t,e){return this.primaryBondsDrawing.add(t,e)}get secondaryBondDefaultValues(){return this.secondaryBondsDrawing.secondaryBondDefaultValues}set secondaryBondDefaultValues(t){this.secondaryBondsDrawing.secondaryBondDefaultValues=t}get secondaryBonds(){return this.secondaryBondsDrawing.secondaryBonds}set secondaryBonds(t){this.secondaryBondsDrawing.secondaryBonds=[...t]}appendSecondaryBond(t){this.secondaryBondsDrawing.append(t)}addSecondaryBond(t,e){return this.secondaryBondsDrawing.add(t,e)}get contentBBox(){return this.domNode.getBBox()}setPadding(t){let e=this.contentBBox;this.setBoundaries({minX:e.x-t,maxX:e.x+e.width+t,minY:e.y-t,maxY:e.y+e.height+t})}}Gr=new WeakMap;var $r=r(127),Wr=r(661),Qr=r(986);class Jr{constructor(t){this.targetDrawing=t}draw(t,e){let r=[...t].map((t=>this.targetDrawing.addBase(t)));(0,$r.consecutivePairs)(r).forEach((t=>this.targetDrawing.addPrimaryBond(...t)));let n=[...(0,$r.parseDotBracket)(r,e)];n.forEach((t=>this.targetDrawing.addSecondaryBond(...t))),r.forEach((t=>t.bringToFront()));let i=1.87*(0,Qr.mean)(r.map((t=>t.bbox.height)));(0,Wr.radialize)(r,n,{spacing:i,basePairSpacing:i/2,hairpinLoopSpacing:i/2})}}var Zr,Kr,tn,en,rn=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class nn{constructor(t){Zr.add(this),Kr.set(this,void 0),function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,Kr,t,"f")}draw(t){t.rnaComplexes.forEach((e=>{e.rnaMolecules.forEach((e=>{let r=e.sequence.map((e=>rn(this,Zr,"m",tn).call(this,e,t))),n=(0,Qr.mean)(r.map((t=>t.bbox.height)));rn(this,Kr,"f").primaryBondDefaultValues.attributes["stroke-width"]=""+.125*n,rn(this,Kr,"f").primaryBondDefaultValues.basePadding1=.6*n,rn(this,Kr,"f").primaryBondDefaultValues.basePadding2=.6*n,(0,$r.consecutivePairs)(r).forEach((t=>rn(this,Kr,"f").addPrimaryBond(...t))),rn(this,Kr,"f").secondaryBondDefaultValues.attributes["stroke-width"]=""+.15*n,rn(this,Kr,"f").secondaryBondDefaultValues.basePadding1=.5*n,rn(this,Kr,"f").secondaryBondDefaultValues.basePadding2=.5*n,new Set(e.basePairs.map((t=>JSON.stringify(t)))).forEach((e=>rn(this,Zr,"m",en).call(this,JSON.parse(e),r,t)))}))}))}}Kr=new WeakMap,Zr=new WeakSet,tn=function(t,e){let r=rn(this,Kr,"f").addBase(t.residueName);return t.classes.forEach((t=>{e.classes.filter((e=>e.name==t)).forEach((t=>r.setAttributes(Object.assign(Object.assign({},t),{name:void 0}))))})),r.centerPoint.x=t.x,r.centerPoint.y=t.y,r},en=function(t,e,r){let n=e[t.residueIndex1],i=e[t.residueIndex2],s=rn(this,Kr,"f").addSecondaryBond(n,i);return t.classes.forEach((t=>{r.classes.filter((e=>e.name==t)).forEach((t=>s.setAttributes(Object.assign(Object.assign({},t),{name:void 0}))))})),s}})(),n})()));