@apollo-annotation/jbrowse-plugin-apollo 0.1.19 → 0.1.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.esm.js +154 -78
- package/dist/index.esm.js.map +1 -1
- package/dist/jbrowse-plugin-apollo.cjs.development.js +154 -78
- package/dist/jbrowse-plugin-apollo.cjs.development.js.map +1 -1
- package/dist/jbrowse-plugin-apollo.cjs.production.min.js +1 -1
- package/dist/jbrowse-plugin-apollo.cjs.production.min.js.map +1 -1
- package/dist/jbrowse-plugin-apollo.umd.development.js +1060 -682
- package/dist/jbrowse-plugin-apollo.umd.development.js.map +1 -1
- package/dist/jbrowse-plugin-apollo.umd.production.min.js +1 -1
- package/dist/jbrowse-plugin-apollo.umd.production.min.js.map +1 -1
- package/package.json +31 -31
- package/src/LinearApolloDisplay/components/LinearApolloDisplay.tsx +0 -4
- package/src/LinearApolloDisplay/configSchema.ts +5 -14
- package/src/LinearApolloDisplay/index.ts +1 -1
- package/src/LinearApolloDisplay/stateModel/base.ts +99 -14
- package/src/OntologyManager/OntologyStore/fulltext.ts +0 -1
- package/src/components/AddAssembly.tsx +1 -1
- package/src/components/ManageUsers.tsx +20 -1
- package/src/index.ts +2 -2
- package/src/makeDisplayComponent.tsx +49 -25
- package/src/session/session.ts +11 -3
- package/src/LinearApolloDisplay/stateModel/trackHeightMixin.ts +0 -43
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@jbrowse/core/Plugin"),require("@jbrowse/core/util"),require("@jbrowse/core/configuration"),require("@jbrowse/core/pluggableElementTypes"),require("@mui/material/utils"),require("react/jsx-runtime"),require("mobx"),require("mobx-state-tree"),require("@mui/material"),require("@mui/material/InputAdornment"),require("@mui/material/LinearProgress"),require("react"),require("@jbrowse/core/ui"),require("mobx-react"),require("tss-react/mui"),require("@jbrowse/core/util/types/mst"),require("@jbrowse/core/util/io"),require("@mui/material/Checkbox"),require("@mui/material/FormControlLabel"),require("@mui/x-data-grid"),require("@jbrowse/core/pluggableElementTypes/AdapterType"),require("@jbrowse/core/data_adapters/BaseAdapter"),require("@jbrowse/core/util/rxjs"),require("@jbrowse/core/util/tracks")):"function"==typeof define&&define.amd?define(["exports","@jbrowse/core/Plugin","@jbrowse/core/util","@jbrowse/core/configuration","@jbrowse/core/pluggableElementTypes","@mui/material/utils","react/jsx-runtime","mobx","mobx-state-tree","@mui/material","@mui/material/InputAdornment","@mui/material/LinearProgress","react","@jbrowse/core/ui","mobx-react","tss-react/mui","@jbrowse/core/util/types/mst","@jbrowse/core/util/io","@mui/material/Checkbox","@mui/material/FormControlLabel","@mui/x-data-grid","@jbrowse/core/pluggableElementTypes/AdapterType","@jbrowse/core/data_adapters/BaseAdapter","@jbrowse/core/util/rxjs","@jbrowse/core/util/tracks"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).JBrowsePluginApollo={},e.JBrowseExports["@jbrowse/core/Plugin"],e.JBrowseExports["@jbrowse/core/util"],e.JBrowseExports["@jbrowse/core/configuration"],e.JBrowseExports["@jbrowse/core/pluggableElementTypes"],e.JBrowseExports["@mui/material/utils"],e.JBrowseExports["react/jsx-runtime"],e.JBrowseExports.mobx,e.JBrowseExports["mobx-state-tree"],e.JBrowseExports["@mui/material"],e.JBrowseExports["@mui/material/InputAdornment"],e.JBrowseExports["@mui/material/LinearProgress"],e.JBrowseExports.react,e.JBrowseExports["@jbrowse/core/ui"],e.JBrowseExports["mobx-react"],e.JBrowseExports["tss-react/mui"],e.JBrowseExports["@jbrowse/core/util/types/mst"],e.JBrowseExports["@jbrowse/core/util/io"],e.JBrowseExports["@mui/material/Checkbox"],e.JBrowseExports["@mui/material/FormControlLabel"],e.JBrowseExports["@mui/x-data-grid"],e.JBrowseExports["@jbrowse/core/pluggableElementTypes/AdapterType"],e.JBrowseExports["@jbrowse/core/data_adapters/BaseAdapter"],e.JBrowseExports["@jbrowse/core/util/rxjs"],e.JBrowseExports["@jbrowse/core/util/tracks"])}(this,(function(e,t,n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b,w,x,S,k){"use strict";function E(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function A(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,t}var C=E(t),R=E(n),N=E(i),I=E(o),T=E(l),O=E(u),F=E(d),L=E(f),D=A(f),M=E(y),P=E(v),q=E(w),j="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function B(e){if(e.__esModule)return e;var t=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(e).forEach((function(n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})})),t}function U(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var z={};function G(e){var t,n;function r(t,n){try{var i=e[t](n),o=i.value,s=o instanceof H;Promise.resolve(s?o.v:o).then((function(n){if(s){var l="return"===t?"return":"next";if(!o.k||n.done)return r(l,n);n=e[l](n).value}a(i.done?"return":"normal",n)}),(function(e){r("throw",e)}))}catch(e){a("throw",e)}}function a(e,a){switch(e){case"return":t.resolve({value:a,done:!0});break;case"throw":t.reject(a);break;default:t.resolve({value:a,done:!1})}(t=t.next)?r(t.key,t.arg):n=null}this._invoke=function(e,a){return new Promise((function(i,o){var s={key:e,arg:a,resolve:i,reject:o,next:null};n?n=n.next=s:(t=n=s,r(e,a))}))},"function"!=typeof e.return&&(this.return=void 0)}function H(e,t){this.v=e,this.k=t}function $(e){var t,n,r,a=2;for("undefined"!=typeof Symbol&&(n=Symbol.asyncIterator,r=Symbol.iterator);a--;){if(n&&null!=(t=e[n]))return t.call(e);if(r&&null!=(t=e[r]))return new J(t.call(e));n="@@asyncIterator",r="@@iterator"}throw new TypeError("Object is not async iterable")}function J(e){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var t=e.done;return Promise.resolve(e.value).then((function(e){return{value:e,done:t}}))}return J=function(e){this.s=e,this.n=e.next},J.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var n=this.s.return;return void 0===n?Promise.resolve({value:e,done:!0}):t(n.apply(this.s,arguments))},throw:function(e){var n=this.s.return;return void 0===n?Promise.reject(e):t(n.apply(this.s,arguments))}},new J(e)}function V(e){return new H(e,0)}function W(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function K(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?W(Object(n),!0).forEach((function(t){re(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):W(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Y(){Y=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var i=Object.create((t&&t.prototype instanceof _?t:_).prototype),o=new I(r||[]);return a(i,"_invoke",{value:A(e,n,o)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=u;var f="suspendedStart",h="suspendedYield",p="executing",m="completed",g={};function _(){}function y(){}function v(){}var b={};c(b,o,(function(){return this}));var w=Object.getPrototypeOf,x=w&&w(w(T([])));x&&x!==n&&r.call(x,o)&&(b=x);var S=v.prototype=_.prototype=Object.create(b);function k(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function E(e,t){function n(a,i,o,s){var l=d(e[a],e,i);if("throw"!==l.type){var c=l.arg,u=c.value;return u&&"object"==typeof u&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,o,s)}),(function(e){n("throw",e,o,s)})):t.resolve(u).then((function(e){c.value=e,o(c)}),(function(e){return n("throw",e,o,s)}))}s(l.arg)}var i;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return i=i?i.then(a,a):a()}})}function A(t,n,r){var a=f;return function(i,o){if(a===p)throw new Error("Generator is already running");if(a===m){if("throw"===i)throw o;return{value:e,done:!0}}for(r.method=i,r.arg=o;;){var s=r.delegate;if(s){var l=C(s,r);if(l){if(l===g)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===f)throw a=m,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=p;var c=d(t,n,r);if("normal"===c.type){if(a=r.done?m:h,c.arg===g)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(a=m,r.method="throw",r.arg=c.arg)}}}function C(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),g;var i=d(a,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,g;var o=i.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,g):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,g)}function R(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function N(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function I(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(R,this),this.reset(!0)}function T(t){if(t||""===t){var n=t[o];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,i=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return i.next=i}}throw new TypeError(typeof t+" is not iterable")}return y.prototype=v,a(S,"constructor",{value:v,configurable:!0}),a(v,"constructor",{value:y,configurable:!0}),y.displayName=c(v,l,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===y||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,v):(e.__proto__=v,c(e,l,"GeneratorFunction")),e.prototype=Object.create(S),e},t.awrap=function(e){return{__await:e}},k(E.prototype),c(E.prototype,s,(function(){return this})),t.AsyncIterator=E,t.async=function(e,n,r,a,i){void 0===i&&(i=Promise);var o=new E(u(e,n,r,a),i);return t.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},k(S),c(S,l,"Generator"),c(S,o,(function(){return this})),c(S,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=T,I.prototype={constructor:I,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(N),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return s.type="throw",s.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],s=o.completion;if("root"===o.tryLoc)return a("end");if(o.tryLoc<=this.prev){var l=r.call(o,"catchLoc"),c=r.call(o,"finallyLoc");if(l&&c){if(this.prev<o.catchLoc)return a(o.catchLoc,!0);if(this.prev<o.finallyLoc)return a(o.finallyLoc)}else if(l){if(this.prev<o.catchLoc)return a(o.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return a(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var i=a;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var o=i?i.completion:{};return o.type=e,o.arg=t,i?(this.method="next",this.next=i.finallyLoc,g):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),g},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),N(n),g}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;N(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:T(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),g}},t}function Z(e){return Z="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Z(e)}function X(e,t,n,r,a,i,o){try{var s=e[i](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function Q(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var i=e.apply(t,n);function o(e){X(i,r,a,o,s,"next",e)}function s(e){X(i,r,a,o,s,"throw",e)}o(void 0)}))}}function ee(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function te(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,xe(r.key),r)}}function ne(e,t,n){return t&&te(e.prototype,t),n&&te(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function re(e,t,n){return(t=xe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ae(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&oe(e,t)}function ie(e){return ie=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},ie(e)}function oe(e,t){return oe=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},oe(e,t)}function se(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function le(e,t,n){return le=se()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var a=new(Function.bind.apply(e,r));return n&&oe(a,n.prototype),a},le.apply(null,arguments)}function ce(e){var t="function"==typeof Map?new Map:void 0;return ce=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return le(e,arguments,ie(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),oe(n,e)},ce(e)}function ue(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function de(e){var t=se();return function(){var n,r=ie(e);if(t){var a=ie(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return ue(e)}(this,n)}}function fe(){return fe="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=ie(e)););return e}(e,t);if(r){var a=Object.getOwnPropertyDescriptor(r,t);return a.get?a.get.call(arguments.length<3?e:n):a.value}},fe.apply(this,arguments)}function he(e,t){return ge(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,s=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){c=!0,a=e}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return s}}(e,t)||ye(e,t)||be()}function pe(e){return ge(e)||_e(e)||ye(e)||be()}function me(e){return function(e){if(Array.isArray(e))return ve(e)}(e)||_e(e)||ye(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ge(e){if(Array.isArray(e))return e}function _e(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function ye(e,t){if(e){if("string"==typeof e)return ve(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ve(e,t):void 0}}function ve(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function be(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function we(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=ye(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,i=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw i}}}}function xe(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}G.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},G.prototype.next=function(e){return this._invoke("next",e)},G.prototype.throw=function(e){return this._invoke("throw",e)},G.prototype.return=function(e){return this._invoke("return",e)};var Se=function(e,t){return Se=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},Se(e,t)};function ke(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}Se(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var Ee=function(){return Ee=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e},Ee.apply(this,arguments)};function Ae(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n}function Ce(e,t,n,r){var a,i=arguments.length,o=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":Z(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(a=e[s])&&(o=(i<3?a(o):i>3?a(t,n,o):a(t,n))||o);return i>3&&o&&Object.defineProperty(t,n,o),o}function Re(e,t){return function(n,r){t(n,r,e)}}function Ne(e,t){if("object"===("undefined"==typeof Reflect?"undefined":Z(Reflect))&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function Ie(e,t,n,r){return new(n||(n=Promise))((function(a,i){function o(e){try{l(r.next(e))}catch(e){i(e)}}function s(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){e.done?a(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(o,s)}l((r=r.apply(e,t||[])).next())}))}function Te(e,t){var n,r,a,i,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(s){return function(l){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(o=0)),o;)try{if(n=1,r&&(a=2&s[0]?r.return:s[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,s[1])).done)return a;switch(r=0,a&&(s=[2&s[0],a.value]),s[0]){case 0:case 1:a=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,r=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!((a=(a=o.trys).length>0&&a[a.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!a||s[1]>a[0]&&s[1]<a[3])){o.label=s[1];break}if(6===s[0]&&o.label<a[1]){o.label=a[1],a=s;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(s);break}a[2]&&o.ops.pop(),o.trys.pop();continue}s=t.call(e,o)}catch(e){s=[6,e],r=0}finally{n=a=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}}var Oe=Object.create?function(e,t,n,r){void 0===r&&(r=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,a)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]};function Fe(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||Oe(t,e,n)}function Le(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function De(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,i=n.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)o.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(a)throw a.error}}return o}function Me(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(De(arguments[t]));return e}function Pe(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),a=0;for(t=0;t<n;t++)for(var i=arguments[t],o=0,s=i.length;o<s;o++,a++)r[a]=i[o];return r}function qe(e,t,n){if(n||2===arguments.length)for(var r,a=0,i=t.length;a<i;a++)!r&&a in t||(r||(r=Array.prototype.slice.call(t,0,a)),r[a]=t[a]);return e.concat(r||Array.prototype.slice.call(t))}function je(e){return this instanceof je?(this.v=e,this):new je(e)}function Be(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,a=n.apply(e,t||[]),i=[];return r={},o("next"),o("throw"),o("return"),r[Symbol.asyncIterator]=function(){return this},r;function o(e){a[e]&&(r[e]=function(t){return new Promise((function(n,r){i.push([e,t,n,r])>1||s(e,t)}))})}function s(e,t){try{!function(e){e.value instanceof je?Promise.resolve(e.value.v).then(l,c):u(i[0][2],e)}(a[e](t))}catch(e){u(i[0][3],e)}}function l(e){s("next",e)}function c(e){s("throw",e)}function u(e,t){e(t),i.shift(),i.length&&s(i[0][0],i[0][1])}}function Ue(e){var t,n;return t={},r("next"),r("throw",(function(e){throw e})),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,a){t[r]=e[r]?function(t){return(n=!n)?{value:je(e[r](t)),done:!1}:a?a(t):t}:a}}function ze(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=Le(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,a){!function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)}(r,a,(t=e[n](t)).done,t.value)}))}}}function Ge(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var He=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function $e(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&Oe(t,e,n);return He(t,e),t}function Je(e){return e&&e.__esModule?e:{default:e}}function Ve(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)}function We(e,t,n,r,a){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!a)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?a.call(e,n):a?a.value=n:t.set(e,n),n}function Ke(e,t){if(null===t||"object"!==Z(t)&&"function"!=typeof t)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?t===e:e.has(t)}function Ye(e,t,n){if(null!=t){if("object"!==Z(t)&&"function"!=typeof t)throw new TypeError("Object expected.");var r;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");r=t[Symbol.asyncDispose]}if(void 0===r){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");r=t[Symbol.dispose]}if("function"!=typeof r)throw new TypeError("Object not disposable.");e.stack.push({value:t,dispose:r,async:n})}else n&&e.stack.push({async:!0});return t}var Ze="function"==typeof SuppressedError?SuppressedError:function(e,t,n){var r=new Error(n);return r.name="SuppressedError",r.error=e,r.suppressed=t,r};function Xe(e){function t(t){e.error=e.hasError?new Ze(t,e.error,"An error was suppressed during disposal."):t,e.hasError=!0}return function n(){for(;e.stack.length;){var r=e.stack.pop();try{var a=r.dispose&&r.dispose.call(r.value);if(r.async)return Promise.resolve(a).then(n,(function(e){return t(e),n()}))}catch(e){t(e)}}if(e.hasError)throw e.error}()}var Qe={__proto__:null,__extends:ke,get __assign(){return Ee},__rest:Ae,__decorate:Ce,__param:Re,__esDecorate:function(e,t,n,r,a,i){function o(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var s,l=r.kind,c="getter"===l?"get":"setter"===l?"set":"value",u=!t&&e?r.static?e:e.prototype:null,d=t||(u?Object.getOwnPropertyDescriptor(u,r.name):{}),f=!1,h=n.length-1;h>=0;h--){var p={};for(var m in r)p[m]="access"===m?{}:r[m];for(var m in r.access)p.access[m]=r.access[m];p.addInitializer=function(e){if(f)throw new TypeError("Cannot add initializers after decoration has completed");i.push(o(e||null))};var g=(0,n[h])("accessor"===l?{get:d.get,set:d.set}:d[c],p);if("accessor"===l){if(void 0===g)continue;if(null===g||"object"!==Z(g))throw new TypeError("Object expected");(s=o(g.get))&&(d.get=s),(s=o(g.set))&&(d.set=s),(s=o(g.init))&&a.unshift(s)}else(s=o(g))&&("field"===l?a.unshift(s):d[c]=s)}u&&Object.defineProperty(u,r.name,d),f=!0},__runInitializers:function(e,t,n){for(var r=arguments.length>2,a=0;a<t.length;a++)n=r?t[a].call(e,n):t[a].call(e);return r?n:void 0},__propKey:function(e){return"symbol"===Z(e)?e:"".concat(e)},__setFunctionName:function(e,t,n){return"symbol"===Z(t)&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:n?"".concat(n," ",t):t})},__metadata:Ne,__awaiter:Ie,__generator:Te,__createBinding:Oe,__exportStar:Fe,__values:Le,__read:De,__spread:Me,__spreadArrays:Pe,__spreadArray:qe,__await:je,__asyncGenerator:Be,__asyncDelegator:Ue,__asyncValues:ze,__makeTemplateObject:Ge,__importStar:$e,__importDefault:Je,__classPrivateFieldGet:Ve,__classPrivateFieldSet:We,__classPrivateFieldIn:Ke,__addDisposableResource:Ye,__disposeResources:Xe,default:{__extends:ke,__assign:Ee,__rest:Ae,__decorate:Ce,__param:Re,__metadata:Ne,__awaiter:Ie,__generator:Te,__createBinding:Oe,__exportStar:Fe,__values:Le,__read:De,__spread:Me,__spreadArrays:Pe,__spreadArray:qe,__await:je,__asyncGenerator:Be,__asyncDelegator:Ue,__asyncValues:ze,__makeTemplateObject:Ge,__importStar:$e,__importDefault:Je,__classPrivateFieldGet:Ve,__classPrivateFieldSet:We,__classPrivateFieldIn:Ke,__addDisposableResource:Ye,__disposeResources:Xe}},et=B(Qe),tt={};Object.defineProperty(tt,"__esModule",{value:!0}),tt.ApolloPlugin=void 0;var nt=function(e){ae(n,e);var t=de(n);function n(){return ee(this,n),t.apply(this,arguments)}return ne(n,[{key:"apolloInstall",value:function(e){}}]),n}(et.__importDefault(C.default).default);tt.ApolloPlugin=nt;var rt={},at={},it={};Object.defineProperty(it,"__esModule",{value:!0}),it.changeRegistry=void 0,it.changeRegistry=new(function(){function e(){ee(this,e),this.changes=new Map}return ne(e,[{key:"registerChange",value:function(e,t){if(this.changes.has(e))throw new Error('change type "'.concat(e,'" has already been registered'));this.changes.set(e,t)}},{key:"getChangeType",value:function(e){var t=this.changes.get(e);if(!t)throw new Error('No change constructor registered for "'.concat(e,'"'));return t}}]),e}());var ot={};Object.defineProperty(ot,"__esModule",{value:!0}),ot.Operation=void 0;var st=function(){function e(t,n){var r;ee(this,e),this.logger=null!==(r=null==n?void 0:n.logger)&&void 0!==r?r:console}var t;return ne(e,[{key:"execute",value:(t=Q(Y().mark((function e(t){var n,r;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("Server"!==(n=t.typeName)){e.next=4;break}return r=this.executeOnServer(t),e.abrupt("return",t.pluginsService.evaluateExtensionPoint("".concat(this.typeName,"-transformResults"),r,{operation:this,backend:t}));case 4:if("LocalGFF3"!==n){e.next=6;break}return e.abrupt("return",this.executeOnLocalGFF3(t));case 6:throw new Error("no operation implementation for backend type '".concat(n,"'"));case 7:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}]),e}();ot.Operation=st,Object.defineProperty(at,"__esModule",{value:!0}),at.Change=void 0,at.isChange=function(e){return void 0!==e.executeOnClient};var lt=it,ct=function(e){ae(r,e);var t,n=de(r);function r(){return ee(this,r),n.apply(this,arguments)}return ne(r,[{key:"notification",get:function(){return""}},{key:"execute",value:(t=Q(Y().mark((function e(t){var n;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("LocalGFF3"!==(n=t.typeName)&&"Server"!==n){e.next=3;break}return e.abrupt("return",fe(ie(r.prototype),"execute",this).call(this,t));case 3:if("Client"!==n){e.next=5;break}return e.abrupt("return",this.executeOnClient(t));case 5:throw new Error("no change implementation for backend type '".concat(n,"'"));case 6:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}],[{key:"fromJSON",value:function(e,t){return new(lt.changeRegistry.getChangeType(e.typeName))(e,(null==t?void 0:t.logger)&&{logger:t.logger})}}]),r}(ot.Operation);at.Change=ct,Object.defineProperty(rt,"__esModule",{value:!0}),rt.AssemblySpecificChange=void 0,rt.isAssemblySpecificChange=function(e){return(0,ut.isChange)(e)&&void 0!==e.assembly};var ut=at;rt.AssemblySpecificChange=function(e){ae(n,e);var t=de(n);function n(e,r){var a;return ee(this,n),(a=t.call(this,e,r)).assembly=e.assembly,a}return ne(n)}(ut.Change);var dt={};Object.defineProperty(dt,"__esModule",{value:!0}),dt.Check=void 0,dt.Check=ne((function e(){ee(this,e)}));var ft={};Object.defineProperty(ft,"__esModule",{value:!0}),ft.checkRegistry=void 0,ft.checkRegistry=new(function(){function e(){ee(this,e),this.checks=new Map}return ne(e,[{key:"registerCheck",value:function(e,t){if(this.checks.has(e))throw new Error('check "'.concat(e,'" has already been registered'));this.checks.set(e,t)}},{key:"getCheck",value:function(e){var t=this.checks.get(e);if(!t)throw new Error('No check constructor registered for "'.concat(e,'"'));return t}},{key:"getChecks",value:function(){return this.checks}}]),e}());var ht={},pt="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};function mt(){throw new Error("setTimeout has not been defined")}function gt(){throw new Error("clearTimeout has not been defined")}var _t=mt,yt=gt;function vt(e){if(_t===setTimeout)return setTimeout(e,0);if((_t===mt||!_t)&&setTimeout)return _t=setTimeout,setTimeout(e,0);try{return _t(e,0)}catch(t){try{return _t.call(null,e,0)}catch(t){return _t.call(this,e,0)}}}"function"==typeof pt.setTimeout&&(_t=setTimeout),"function"==typeof pt.clearTimeout&&(yt=clearTimeout);var bt,wt=[],xt=!1,St=-1;function kt(){xt&&bt&&(xt=!1,bt.length?wt=bt.concat(wt):St=-1,wt.length&&Et())}function Et(){if(!xt){var e=vt(kt);xt=!0;for(var t=wt.length;t;){for(bt=wt,wt=[];++St<t;)bt&&bt[St].run();St=-1,t=wt.length}bt=null,xt=!1,function(e){if(yt===clearTimeout)return clearTimeout(e);if((yt===gt||!yt)&&clearTimeout)return yt=clearTimeout,clearTimeout(e);try{return yt(e)}catch(t){try{return yt.call(null,e)}catch(t){return yt.call(this,e)}}}(e)}}function At(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];wt.push(new Ct(e,t)),1!==wt.length||xt||vt(Et)}function Ct(e,t){this.fun=e,this.array=t}function Rt(){}Ct.prototype.run=function(){this.fun.apply(null,this.array)};var Nt=Rt,It=Rt,Tt=Rt,Ot=Rt,Ft=Rt,Lt=Rt,Dt=Rt,Mt=pt.performance||{},Pt=Mt.now||Mt.mozNow||Mt.msNow||Mt.oNow||Mt.webkitNow||function(){return(new Date).getTime()},qt=new Date,jt={nextTick:At,title:"browser",browser:!0,env:{},argv:[],version:"",versions:{},on:Nt,addListener:It,once:Tt,off:Ot,removeListener:Ft,removeAllListeners:Lt,emit:Dt,binding:function(e){throw new Error("process.binding is not supported")},cwd:function(){return"/"},chdir:function(e){throw new Error("process.chdir is not supported")},umask:function(){return 0},hrtime:function(e){var t=.001*Pt.call(Mt),n=Math.floor(t),r=Math.floor(t%1*1e9);return e&&(n-=e[0],(r-=e[1])<0&&(n--,r+=1e9)),[n,r]},platform:"browser",release:{},config:{},uptime:function(){return(new Date-qt)/1e3}},Bt=[],Ut=[],zt="undefined"!=typeof Uint8Array?Uint8Array:Array,Gt=!1;function Ht(){Gt=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0;t<64;++t)Bt[t]=e[t],Ut[e.charCodeAt(t)]=t;Ut["-".charCodeAt(0)]=62,Ut["_".charCodeAt(0)]=63}function $t(e,t,n){for(var r,a=[],i=t;i<n;i+=3)a.push(Bt[(r=(e[i]<<16)+(e[i+1]<<8)+e[i+2])>>18&63]+Bt[r>>12&63]+Bt[r>>6&63]+Bt[63&r]);return a.join("")}function Jt(e,t,n,r,a){var i,o,s=8*a-r-1,l=(1<<s)-1,c=l>>1,u=-7,d=n?a-1:0,f=n?-1:1,h=e[t+d];for(d+=f,i=h&(1<<-u)-1,h>>=-u,u+=s;u>0;i=256*i+e[t+d],d+=f,u-=8);for(o=i&(1<<-u)-1,i>>=-u,u+=r;u>0;o=256*o+e[t+d],d+=f,u-=8);if(0===i)i=1-c;else{if(i===l)return o?NaN:Infinity*(h?-1:1);o+=Math.pow(2,r),i-=c}return(h?-1:1)*o*Math.pow(2,i-r)}function Vt(e,t,n,r,a,i){var o,s,l,c=8*i-a-1,u=(1<<c)-1,d=u>>1,f=23===a?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:i-1,p=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||Infinity===t?(s=isNaN(t)?1:0,o=u):(o=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-o))<1&&(o--,l*=2),(t+=o+d>=1?f/l:f*Math.pow(2,1-d))*l>=2&&(o++,l/=2),o+d>=u?(s=0,o=u):o+d>=1?(s=(t*l-1)*Math.pow(2,a),o+=d):(s=t*Math.pow(2,d-1)*Math.pow(2,a),o=0));a>=8;e[n+h]=255&s,h+=p,s/=256,a-=8);for(o=o<<a|s,c+=a;c>0;e[n+h]=255&o,h+=p,o/=256,c-=8);e[n+h-p]|=128*m}var Wt={}.toString,Kt=Array.isArray||function(e){return"[object Array]"==Wt.call(e)};function Yt(){return Xt.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function Zt(e,t){if(Yt()<t)throw new RangeError("Invalid typed array length");return Xt.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=Xt.prototype:(null===e&&(e=new Xt(t)),e.length=t),e}function Xt(e,t,n){if(!(Xt.TYPED_ARRAY_SUPPORT||this instanceof Xt))return new Xt(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return tn(this,e)}return Qt(this,e,t,n)}function Qt(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,n,r){if(n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");return t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r),Xt.TYPED_ARRAY_SUPPORT?(e=t).__proto__=Xt.prototype:e=nn(e,t),e}(e,t,n,r):"string"==typeof t?function(e,t,n){if("string"==typeof n&&""!==n||(n="utf8"),!Xt.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|on(t,n),a=(e=Zt(e,r)).write(t,n);return a!==r&&(e=e.slice(0,a)),e}(e,t,n):function(e,t){if(an(t)){var n=0|rn(t.length);return 0===(e=Zt(e,n)).length||t.copy(e,0,0,n),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(r=t.length)!=r?Zt(e,0):nn(e,t);if("Buffer"===t.type&&Kt(t.data))return nn(e,t.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function en(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function tn(e,t){if(en(t),e=Zt(e,t<0?0:0|rn(t)),!Xt.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function nn(e,t){var n=t.length<0?0:0|rn(t.length);e=Zt(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function rn(e){if(e>=Yt())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Yt().toString(16)+" bytes");return 0|e}function an(e){return!(null==e||!e._isBuffer)}function on(e,t){if(an(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return Fn(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return Ln(e).length;default:if(r)return Fn(e).length;t=(""+t).toLowerCase(),r=!0}}function sn(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return xn(this,t,n);case"utf8":case"utf-8":return yn(this,t,n);case"ascii":return bn(this,t,n);case"latin1":case"binary":return wn(this,t,n);case"base64":return _n(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Sn(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function ln(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function cn(e,t,n,r,a){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=a?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(a)return-1;n=e.length-1}else if(n<0){if(!a)return-1;n=0}if("string"==typeof t&&(t=Xt.from(t,r)),an(t))return 0===t.length?-1:un(e,t,n,r,a);if("number"==typeof t)return t&=255,Xt.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?a?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):un(e,[t],n,r,a);throw new TypeError("val must be string, number or Buffer")}function un(e,t,n,r,a){var i,o=1,s=e.length,l=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,s/=2,l/=2,n/=2}function c(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(a){var u=-1;for(i=n;i<s;i++)if(c(e,i)===c(t,-1===u?0:i-u)){if(-1===u&&(u=i),i-u+1===l)return u*o}else-1!==u&&(i-=i-u),u=-1}else for(n+l>s&&(n=s-l),i=n;i>=0;i--){for(var d=!0,f=0;f<l;f++)if(c(e,i+f)!==c(t,f)){d=!1;break}if(d)return i}return-1}function dn(e,t,n,r){n=Number(n)||0;var a=e.length-n;r?(r=Number(r))>a&&(r=a):r=a;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var o=0;o<r;++o){var s=parseInt(t.substr(2*o,2),16);if(isNaN(s))return o;e[n+o]=s}return o}function fn(e,t,n,r){return Dn(Fn(t,e.length-n),e,n,r)}function hn(e,t,n,r){return Dn(function(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function pn(e,t,n,r){return hn(e,t,n,r)}function mn(e,t,n,r){return Dn(Ln(t),e,n,r)}function gn(e,t,n,r){return Dn(function(e,t){for(var n,r,a=[],i=0;i<e.length&&!((t-=2)<0);++i)r=(n=e.charCodeAt(i))>>8,a.push(n%256),a.push(r);return a}(t,e.length-n),e,n,r)}function _n(e,t,n){return function(e){var t;Gt||Ht();for(var n=e.length,r=n%3,a="",i=[],o=16383,s=0,l=n-r;s<l;s+=o)i.push($t(e,s,s+o>l?l:s+o));return 1===r?(a+=Bt[(t=e[n-1])>>2],a+=Bt[t<<4&63],a+="=="):2===r&&(a+=Bt[(t=(e[n-2]<<8)+e[n-1])>>10],a+=Bt[t>>4&63],a+=Bt[t<<2&63],a+="="),i.push(a),i.join("")}(0===t&&n===e.length?e:e.slice(t,n))}function yn(e,t,n){n=Math.min(e.length,n);for(var r=[],a=t;a<n;){var i,o,s,l,c=e[a],u=null,d=c>239?4:c>223?3:c>191?2:1;if(a+d<=n)switch(d){case 1:c<128&&(u=c);break;case 2:128==(192&(i=e[a+1]))&&(l=(31&c)<<6|63&i)>127&&(u=l);break;case 3:o=e[a+2],128==(192&(i=e[a+1]))&&128==(192&o)&&(l=(15&c)<<12|(63&i)<<6|63&o)>2047&&(l<55296||l>57343)&&(u=l);break;case 4:o=e[a+2],s=e[a+3],128==(192&(i=e[a+1]))&&128==(192&o)&&128==(192&s)&&(l=(15&c)<<18|(63&i)<<12|(63&o)<<6|63&s)>65535&&l<1114112&&(u=l)}null===u?(u=65533,d=1):u>65535&&(r.push((u-=65536)>>>10&1023|55296),u=56320|1023&u),r.push(u),a+=d}return function(e){var t=e.length;if(t<=vn)return String.fromCharCode.apply(String,e);for(var n="",r=0;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=vn));return n}(r)}Xt.TYPED_ARRAY_SUPPORT=void 0===pt.TYPED_ARRAY_SUPPORT||pt.TYPED_ARRAY_SUPPORT,Xt.poolSize=8192,Xt._augment=function(e){return e.__proto__=Xt.prototype,e},Xt.from=function(e,t,n){return Qt(null,e,t,n)},Xt.TYPED_ARRAY_SUPPORT&&(Xt.prototype.__proto__=Uint8Array.prototype,Xt.__proto__=Uint8Array),Xt.alloc=function(e,t,n){return function(e,t,n,r){return en(t),t<=0?Zt(e,t):void 0!==n?"string"==typeof r?Zt(e,t).fill(n,r):Zt(e,t).fill(n):Zt(e,t)}(null,e,t,n)},Xt.allocUnsafe=function(e){return tn(null,e)},Xt.allocUnsafeSlow=function(e){return tn(null,e)},Xt.isBuffer=Mn,Xt.compare=function(e,t){if(!an(e)||!an(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,a=0,i=Math.min(n,r);a<i;++a)if(e[a]!==t[a]){n=e[a],r=t[a];break}return n<r?-1:r<n?1:0},Xt.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},Xt.concat=function(e,t){if(!Kt(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return Xt.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=Xt.allocUnsafe(t),a=0;for(n=0;n<e.length;++n){var i=e[n];if(!an(i))throw new TypeError('"list" argument must be an Array of Buffers');i.copy(r,a),a+=i.length}return r},Xt.byteLength=on,Xt.prototype._isBuffer=!0,Xt.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)ln(this,t,t+1);return this},Xt.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)ln(this,t,t+3),ln(this,t+1,t+2);return this},Xt.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)ln(this,t,t+7),ln(this,t+1,t+6),ln(this,t+2,t+5),ln(this,t+3,t+4);return this},Xt.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?yn(this,0,e):sn.apply(this,arguments)},Xt.prototype.equals=function(e){if(!an(e))throw new TypeError("Argument must be a Buffer");return this===e||0===Xt.compare(this,e)},Xt.prototype.inspect=function(){var e="";return this.length>0&&(e=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(e+=" ... ")),"<Buffer "+e+">"},Xt.prototype.compare=function(e,t,n,r,a){if(!an(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===a&&(a=this.length),t<0||n>e.length||r<0||a>this.length)throw new RangeError("out of range index");if(r>=a&&t>=n)return 0;if(r>=a)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(a>>>=0)-(r>>>=0),o=(n>>>=0)-(t>>>=0),s=Math.min(i,o),l=this.slice(r,a),c=e.slice(t,n),u=0;u<s;++u)if(l[u]!==c[u]){i=l[u],o=c[u];break}return i<o?-1:o<i?1:0},Xt.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},Xt.prototype.indexOf=function(e,t,n){return cn(this,e,t,n,!0)},Xt.prototype.lastIndexOf=function(e,t,n){return cn(this,e,t,n,!1)},Xt.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var a=this.length-t;if((void 0===n||n>a)&&(n=a),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return dn(this,e,t,n);case"utf8":case"utf-8":return fn(this,e,t,n);case"ascii":return hn(this,e,t,n);case"latin1":case"binary":return pn(this,e,t,n);case"base64":return mn(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return gn(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},Xt.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var vn=4096;function bn(e,t,n){var r="";n=Math.min(e.length,n);for(var a=t;a<n;++a)r+=String.fromCharCode(127&e[a]);return r}function wn(e,t,n){var r="";n=Math.min(e.length,n);for(var a=t;a<n;++a)r+=String.fromCharCode(e[a]);return r}function xn(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var a="",i=t;i<n;++i)a+=On(e[i]);return a}function Sn(e,t,n){for(var r=e.slice(t,n),a="",i=0;i<r.length;i+=2)a+=String.fromCharCode(r[i]+256*r[i+1]);return a}function kn(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function En(e,t,n,r,a,i){if(!an(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>a||t<i)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function An(e,t,n,r){t<0&&(t=65535+t+1);for(var a=0,i=Math.min(e.length-n,2);a<i;++a)e[n+a]=(t&255<<8*(r?a:1-a))>>>8*(r?a:1-a)}function Cn(e,t,n,r){t<0&&(t=4294967295+t+1);for(var a=0,i=Math.min(e.length-n,4);a<i;++a)e[n+a]=t>>>8*(r?a:3-a)&255}function Rn(e,t,n,r,a,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function Nn(e,t,n,r,a){return a||Rn(e,0,n,4),Vt(e,t,n,r,23,4),n+4}function In(e,t,n,r,a){return a||Rn(e,0,n,8),Vt(e,t,n,r,52,8),n+8}Xt.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e),Xt.TYPED_ARRAY_SUPPORT)(n=this.subarray(e,t)).__proto__=Xt.prototype;else{var a=t-e;n=new Xt(a,void 0);for(var i=0;i<a;++i)n[i]=this[i+e]}return n},Xt.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||kn(e,t,this.length);for(var r=this[e],a=1,i=0;++i<t&&(a*=256);)r+=this[e+i]*a;return r},Xt.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||kn(e,t,this.length);for(var r=this[e+--t],a=1;t>0&&(a*=256);)r+=this[e+--t]*a;return r},Xt.prototype.readUInt8=function(e,t){return t||kn(e,1,this.length),this[e]},Xt.prototype.readUInt16LE=function(e,t){return t||kn(e,2,this.length),this[e]|this[e+1]<<8},Xt.prototype.readUInt16BE=function(e,t){return t||kn(e,2,this.length),this[e]<<8|this[e+1]},Xt.prototype.readUInt32LE=function(e,t){return t||kn(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},Xt.prototype.readUInt32BE=function(e,t){return t||kn(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},Xt.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||kn(e,t,this.length);for(var r=this[e],a=1,i=0;++i<t&&(a*=256);)r+=this[e+i]*a;return r>=(a*=128)&&(r-=Math.pow(2,8*t)),r},Xt.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||kn(e,t,this.length);for(var r=t,a=1,i=this[e+--r];r>0&&(a*=256);)i+=this[e+--r]*a;return i>=(a*=128)&&(i-=Math.pow(2,8*t)),i},Xt.prototype.readInt8=function(e,t){return t||kn(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},Xt.prototype.readInt16LE=function(e,t){t||kn(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},Xt.prototype.readInt16BE=function(e,t){t||kn(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},Xt.prototype.readInt32LE=function(e,t){return t||kn(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},Xt.prototype.readInt32BE=function(e,t){return t||kn(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},Xt.prototype.readFloatLE=function(e,t){return t||kn(e,4,this.length),Jt(this,e,!0,23,4)},Xt.prototype.readFloatBE=function(e,t){return t||kn(e,4,this.length),Jt(this,e,!1,23,4)},Xt.prototype.readDoubleLE=function(e,t){return t||kn(e,8,this.length),Jt(this,e,!0,52,8)},Xt.prototype.readDoubleBE=function(e,t){return t||kn(e,8,this.length),Jt(this,e,!1,52,8)},Xt.prototype.writeUIntLE=function(e,t,n,r){e=+e,t|=0,n|=0,r||En(this,e,t,n,Math.pow(2,8*n)-1,0);var a=1,i=0;for(this[t]=255&e;++i<n&&(a*=256);)this[t+i]=e/a&255;return t+n},Xt.prototype.writeUIntBE=function(e,t,n,r){e=+e,t|=0,n|=0,r||En(this,e,t,n,Math.pow(2,8*n)-1,0);var a=n-1,i=1;for(this[t+a]=255&e;--a>=0&&(i*=256);)this[t+a]=e/i&255;return t+n},Xt.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||En(this,e,t,1,255,0),Xt.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},Xt.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||En(this,e,t,2,65535,0),Xt.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):An(this,e,t,!0),t+2},Xt.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||En(this,e,t,2,65535,0),Xt.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):An(this,e,t,!1),t+2},Xt.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||En(this,e,t,4,4294967295,0),Xt.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):Cn(this,e,t,!0),t+4},Xt.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||En(this,e,t,4,4294967295,0),Xt.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):Cn(this,e,t,!1),t+4},Xt.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var a=Math.pow(2,8*n-1);En(this,e,t,n,a-1,-a)}var i=0,o=1,s=0;for(this[t]=255&e;++i<n&&(o*=256);)e<0&&0===s&&0!==this[t+i-1]&&(s=1),this[t+i]=(e/o>>0)-s&255;return t+n},Xt.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var a=Math.pow(2,8*n-1);En(this,e,t,n,a-1,-a)}var i=n-1,o=1,s=0;for(this[t+i]=255&e;--i>=0&&(o*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/o>>0)-s&255;return t+n},Xt.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||En(this,e,t,1,127,-128),Xt.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},Xt.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||En(this,e,t,2,32767,-32768),Xt.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):An(this,e,t,!0),t+2},Xt.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||En(this,e,t,2,32767,-32768),Xt.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):An(this,e,t,!1),t+2},Xt.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||En(this,e,t,4,2147483647,-2147483648),Xt.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):Cn(this,e,t,!0),t+4},Xt.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||En(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),Xt.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):Cn(this,e,t,!1),t+4},Xt.prototype.writeFloatLE=function(e,t,n){return Nn(this,e,t,!0,n)},Xt.prototype.writeFloatBE=function(e,t,n){return Nn(this,e,t,!1,n)},Xt.prototype.writeDoubleLE=function(e,t,n){return In(this,e,t,!0,n)},Xt.prototype.writeDoubleBE=function(e,t,n){return In(this,e,t,!1,n)},Xt.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var a,i=r-n;if(this===e&&n<t&&t<r)for(a=i-1;a>=0;--a)e[a+t]=this[a+n];else if(i<1e3||!Xt.TYPED_ARRAY_SUPPORT)for(a=0;a<i;++a)e[a+t]=this[a+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+i),t);return i},Xt.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var a=e.charCodeAt(0);a<256&&(e=a)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!Xt.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;var i;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i<n;++i)this[i]=e;else{var o=an(e)?e:Fn(new Xt(e,r).toString()),s=o.length;for(i=0;i<n-t;++i)this[i+t]=o[i%s]}return this};var Tn=/[^+\/0-9A-Za-z-_]/g;function On(e){return e<16?"0"+e.toString(16):e.toString(16)}function Fn(e,t){var n;t=t||Infinity;for(var r=e.length,a=null,i=[],o=0;o<r;++o){if((n=e.charCodeAt(o))>55295&&n<57344){if(!a){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&i.push(239,191,189);continue}a=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),a=n;continue}n=65536+(a-55296<<10|n-56320)}else a&&(t-=3)>-1&&i.push(239,191,189);if(a=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function Ln(e){return function(e){var t,n,r,a,i,o;Gt||Ht();var s=e.length;if(s%4>0)throw new Error("Invalid string. Length must be a multiple of 4");o=new zt(3*s/4-(i="="===e[s-2]?2:"="===e[s-1]?1:0)),r=i>0?s-4:s;var l=0;for(t=0,n=0;t<r;t+=4,n+=3)a=Ut[e.charCodeAt(t)]<<18|Ut[e.charCodeAt(t+1)]<<12|Ut[e.charCodeAt(t+2)]<<6|Ut[e.charCodeAt(t+3)],o[l++]=a>>16&255,o[l++]=a>>8&255,o[l++]=255&a;return 2===i?(a=Ut[e.charCodeAt(t)]<<2|Ut[e.charCodeAt(t+1)]>>4,o[l++]=255&a):1===i&&(a=Ut[e.charCodeAt(t)]<<10|Ut[e.charCodeAt(t+1)]<<4|Ut[e.charCodeAt(t+2)]>>2,o[l++]=a>>8&255,o[l++]=255&a),o}(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(Tn,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function Dn(e,t,n,r){for(var a=0;a<r&&!(a+n>=t.length||a>=e.length);++a)t[a+n]=e[a];return a}function Mn(e){return null!=e&&(!!e._isBuffer||Pn(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&Pn(e.slice(0,0))}(e))}function Pn(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}for(var qn=Math.floor(16777215*Math.random()),jn=Vn.index=parseInt(16777215*Math.random(),10),Bn=(void 0===jt||"number"!=typeof jt.pid?Math.floor(1e5*Math.random()):jt.pid)%65535,Un=function(){try{return _Buffer}catch(e){try{return Xt}catch(e){return null}}}(),zn=function(e){return!(null==e||!e.constructor||"function"!=typeof e.constructor.isBuffer||!e.constructor.isBuffer(e))},Gn=[],Hn=0;Hn<256;Hn++)Gn[Hn]=(Hn<=15?"0":"")+Hn.toString(16);var $n=new RegExp("^[0-9a-fA-F]{24}$"),Jn=[];for(Hn=0;Hn<10;)Jn[48+Hn]=Hn++;for(;Hn<16;)Jn[55+Hn]=Jn[87+Hn]=Hn++;function Vn(e){if(!(this instanceof Vn))return new Vn(e);if(e&&(e instanceof Vn||"ObjectID"===e._bsontype))return e;if(this._bsontype="ObjectID",null!=e&&"number"!=typeof e){var t=Vn.isValid(e);if(!t&&null!=e)throw new Error("Argument passed in must be a single String of 12 bytes or a string of 24 hex characters");if(t&&"string"==typeof e&&24===e.length)return Vn.createFromHexString(e);if(null==e||12!==e.length){if(null!=e&&"function"==typeof e.toHexString)return e;throw new Error("Argument passed in must be a single String of 12 bytes or a string of 24 hex characters")}this.id=e}else this.id=this.generate(e)}var Wn=Vn;Vn.default=Vn,Vn.createFromTime=function(e){return new Vn(function(e,t){return 8===(t=t.toString(16)).length?t:"00000000".substring(t.length,8)+t}(0,e=parseInt(e,10)%4294967295)+"0000000000000000")},Vn.createFromHexString=function(e){if(void 0===e||null!=e&&24!==e.length)throw new Error("Argument passed in must be a single String of 12 bytes or a string of 24 hex characters");for(var t="",n=0;n<24;)t+=String.fromCharCode(Jn[e.charCodeAt(n++)]<<4|Jn[e.charCodeAt(n++)]);return new Vn(t)},Vn.isValid=function(e){return null!=e&&("number"==typeof e||("string"==typeof e?12===e.length||24===e.length&&$n.test(e):e instanceof Vn||(zn(e)?Vn.isValid(e.toString("hex")):!("function"!=typeof e.toHexString||!Un||!(e.id instanceof Un||"string"==typeof e.id))&&(12===e.id.length||24===e.id.length&&$n.test(e.id)))))},Vn.prototype={constructor:Vn,toHexString:function(){if(!this.id||!this.id.length)throw new Error("invalid ObjectId, ObjectId.id must be either a string or a Buffer, but is ["+JSON.stringify(this.id)+"]");if(24===this.id.length)return this.id;if(zn(this.id))return this.id.toString("hex");for(var e="",t=0;t<this.id.length;t++)e+=Gn[this.id.charCodeAt(t)];return e},equals:function(e){return e instanceof Vn?this.toString()===e.toString():"string"==typeof e&&Vn.isValid(e)&&12===e.length&&zn(this.id)?e===this.id.toString("binary"):"string"==typeof e&&Vn.isValid(e)&&24===e.length?e.toLowerCase()===this.toHexString():"string"==typeof e&&Vn.isValid(e)&&12===e.length?e===this.id:!(null==e||!(e instanceof Vn||e.toHexString))&&e.toHexString()===this.toHexString()},getTimestamp:function(){var e,t=new Date;return e=zn(this.id)?this.id[3]|this.id[2]<<8|this.id[1]<<16|this.id[0]<<24:this.id.charCodeAt(3)|this.id.charCodeAt(2)<<8|this.id.charCodeAt(1)<<16|this.id.charCodeAt(0)<<24,t.setTime(1e3*Math.floor(e)),t},generate:function(e){"number"!=typeof e&&(e=~~(Date.now()/1e3)),e=parseInt(e,10)%4294967295;var t=jn=(jn+1)%16777215;return String.fromCharCode(e>>24&255,e>>16&255,e>>8&255,255&e,qn>>16&255,qn>>8&255,255&qn,Bn>>8&255,255&Bn,t>>16&255,t>>8&255,255&t)}};var Kn=Symbol&&Symbol.for&&Symbol.for("nodejs.util.inspect.custom")||"inspect";Vn.prototype[Kn]=function(){return"ObjectID("+this+")"},Vn.prototype.toJSON=Vn.prototype.toHexString,Vn.prototype.toString=Vn.prototype.toHexString,Object.defineProperty(ht,"__esModule",{value:!0}),ht.FeatureChange=void 0,ht.isFeatureChange=function(e){return(0,Zn.isAssemblySpecificChange)(e)&&void 0!==e.changedIds};var Yn=et.__importDefault(Wn),Zn=rt,Xn=function(e){ae(n,e);var t=de(n);function n(e,r){var a;return ee(this,n),(a=t.call(this,e,r)).changedIds=e.changedIds,a}return ne(n,[{key:"getFeatureFromId",value:function(e,t){var n,r,a,i,o=this.logger;if(null===(n=o.verbose)||void 0===n||n.call(o,"Entry=".concat(JSON.stringify(e))),e._id.equals(t))return null===(r=o.debug)||void 0===r||r.call(o,"Top level featureId matches in the object ".concat(JSON.stringify(e))),e;null===(a=o.debug)||void 0===a||a.call(o,"FeatureId was not found on top level so lets make recursive call...");var s,l=we(null!==(i=e.children)&&void 0!==i?i:new Map);try{for(l.s();!(s=l.n()).done;){var c=he(s.value,2),u=this.getFeatureFromId(c[1],t);if(u)return u}}catch(e){l.e(e)}finally{l.f()}return null}},{key:"getChildFeatureIds",value:function(e){if(!e.children)return[];var t,n=[],r=we((e.children instanceof Map?e.children:new Map(Object.entries(e.children)))||new Map);try{for(r.s();!(t=r.n()).done;){var a=he(t.value,2);n.push.apply(n,[a[0]].concat(me(this.getChildFeatureIds(a[1]))))}}catch(e){r.e(e)}finally{r.f()}return n}},{key:"generateNewIds",value:function(e,t){var n=(new Yn.default).toHexString();t.push(n);var r={};if(e.children)for(var a=0,i=Object.values(e.children);a<i.length;a++){var o=this.generateNewIds(i[a],t);r[o._id]=o}var s="string"==typeof e.refSeq?e.refSeq:e.refSeq.toHexString();return K(K({},e),{},{refSeq:s,children:e.children&&r,_id:n})}}]),n}(Zn.AssemblySpecificChange);ht.FeatureChange=Xn;var Qn={};Object.defineProperty(Qn,"__esModule",{value:!0}),Qn.operationRegistry=void 0,Qn.operationRegistry=new(function(){function e(){ee(this,e),this.operations=new Map}return ne(e,[{key:"registerOperation",value:function(e,t){if(this.operations.has(e))throw new Error('operation type "'.concat(e,'" has already been registered'));this.operations.set(e,t)}},{key:"getOperationType",value:function(e){var t=this.operations.get(e);if(!t)throw new Error('No operation constructor registered for "'.concat(e,'"'));return t}}]),e}());var er={};Object.defineProperty(er,"__esModule",{value:!0}),er.Validation=void 0,er.isContext=function(e){return"context"in e&&"reflector"in e};var tr=function(){function e(){ee(this,e)}var t,n,r,a,i;return ne(e,[{key:"frontendPreValidate",value:(i=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"frontendPostValidate",value:(a=Q(Y().mark((function e(t,n){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e,t){return a.apply(this,arguments)})},{key:"backendPreValidate",value:(r=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"backendPostValidate",value:(n=Q(Y().mark((function e(t,n){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"possibleValues",value:(t=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",void 0);case 1:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})}]),e}();er.Validation=tr,function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=et;t.__exportStar(tt,e),t.__exportStar(rt,e),t.__exportStar(at,e),t.__exportStar(it,e),t.__exportStar(dt,e),t.__exportStar(ft,e),t.__exportStar(ht,e),t.__exportStar(ot,e),t.__exportStar(Qn,e),t.__exportStar(er,e)}(z);var nr={},rr={},ar={},ir={},or={},sr={};Object.defineProperty(sr,"__esModule",{value:!0}),sr.ApolloPlugin=void 0;var lr=function(e){ae(n,e);var t=de(n);function n(){return ee(this,n),t.apply(this,arguments)}return ne(n,[{key:"apolloInstall",value:function(e){}}]),n}(et.__importDefault(C.default).default);sr.ApolloPlugin=lr;var cr={},ur={},dr={};Object.defineProperty(dr,"__esModule",{value:!0}),dr.changeRegistry=void 0,dr.changeRegistry=new(function(){function e(){ee(this,e),this.changes=new Map}return ne(e,[{key:"registerChange",value:function(e,t){if(this.changes.has(e))throw new Error('change type "'.concat(e,'" has already been registered'));this.changes.set(e,t)}},{key:"getChangeType",value:function(e){var t=this.changes.get(e);if(!t)throw new Error('No change constructor registered for "'.concat(e,'"'));return t}}]),e}());var fr={};Object.defineProperty(fr,"__esModule",{value:!0}),fr.Operation=void 0;var hr=function(){function e(t,n){var r;ee(this,e),this.logger=null!==(r=null==n?void 0:n.logger)&&void 0!==r?r:console}var t;return ne(e,[{key:"execute",value:(t=Q(Y().mark((function e(t){var n,r;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("Server"!==(n=t.typeName)){e.next=4;break}return r=this.executeOnServer(t),e.abrupt("return",t.pluginsService.evaluateExtensionPoint("".concat(this.typeName,"-transformResults"),r,{operation:this,backend:t}));case 4:if("LocalGFF3"!==n){e.next=6;break}return e.abrupt("return",this.executeOnLocalGFF3(t));case 6:throw new Error("no operation implementation for backend type '".concat(n,"'"));case 7:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}]),e}();fr.Operation=hr,Object.defineProperty(ur,"__esModule",{value:!0}),ur.Change=void 0,ur.isChange=function(e){return void 0!==e.executeOnClient};var pr=dr,mr=function(e){ae(r,e);var t,n=de(r);function r(){return ee(this,r),n.apply(this,arguments)}return ne(r,[{key:"notification",get:function(){return""}},{key:"execute",value:(t=Q(Y().mark((function e(t){var n;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("LocalGFF3"!==(n=t.typeName)&&"Server"!==n){e.next=3;break}return e.abrupt("return",fe(ie(r.prototype),"execute",this).call(this,t));case 3:if("Client"!==n){e.next=5;break}return e.abrupt("return",this.executeOnClient(t));case 5:throw new Error("no change implementation for backend type '".concat(n,"'"));case 6:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}],[{key:"fromJSON",value:function(e,t){return new(pr.changeRegistry.getChangeType(e.typeName))(e,(null==t?void 0:t.logger)&&{logger:t.logger})}}]),r}(fr.Operation);ur.Change=mr,Object.defineProperty(cr,"__esModule",{value:!0}),cr.AssemblySpecificChange=void 0,cr.isAssemblySpecificChange=function(e){return(0,gr.isChange)(e)&&void 0!==e.assembly};var gr=ur;cr.AssemblySpecificChange=function(e){ae(n,e);var t=de(n);function n(e,r){var a;return ee(this,n),(a=t.call(this,e,r)).assembly=e.assembly,a}return ne(n)}(gr.Change);var _r={};Object.defineProperty(_r,"__esModule",{value:!0}),_r.Check=void 0,_r.Check=ne((function e(){ee(this,e)}));var yr={};Object.defineProperty(yr,"__esModule",{value:!0}),yr.checkRegistry=void 0,yr.checkRegistry=new(function(){function e(){ee(this,e),this.checks=new Map}return ne(e,[{key:"registerCheck",value:function(e,t){if(this.checks.has(e))throw new Error('check "'.concat(e,'" has already been registered'));this.checks.set(e,t)}},{key:"getCheck",value:function(e){var t=this.checks.get(e);if(!t)throw new Error('No check constructor registered for "'.concat(e,'"'));return t}},{key:"getChecks",value:function(){return this.checks}}]),e}());var vr={};Object.defineProperty(vr,"__esModule",{value:!0}),vr.FeatureChange=void 0,vr.isFeatureChange=function(e){return(0,wr.isAssemblySpecificChange)(e)&&void 0!==e.changedIds};var br=et.__importDefault(Wn),wr=cr,xr=function(e){ae(n,e);var t=de(n);function n(e,r){var a;return ee(this,n),(a=t.call(this,e,r)).changedIds=e.changedIds,a}return ne(n,[{key:"getFeatureFromId",value:function(e,t){var n,r,a,i,o=this.logger;if(null===(n=o.verbose)||void 0===n||n.call(o,"Entry=".concat(JSON.stringify(e))),e._id.equals(t))return null===(r=o.debug)||void 0===r||r.call(o,"Top level featureId matches in the object ".concat(JSON.stringify(e))),e;null===(a=o.debug)||void 0===a||a.call(o,"FeatureId was not found on top level so lets make recursive call...");var s,l=we(null!==(i=e.children)&&void 0!==i?i:new Map);try{for(l.s();!(s=l.n()).done;){var c=he(s.value,2),u=this.getFeatureFromId(c[1],t);if(u)return u}}catch(e){l.e(e)}finally{l.f()}return null}},{key:"getChildFeatureIds",value:function(e){if(!e.children)return[];var t,n=[],r=we((e.children instanceof Map?e.children:new Map(Object.entries(e.children)))||new Map);try{for(r.s();!(t=r.n()).done;){var a=he(t.value,2);n.push.apply(n,[a[0]].concat(me(this.getChildFeatureIds(a[1]))))}}catch(e){r.e(e)}finally{r.f()}return n}},{key:"generateNewIds",value:function(e,t){var n=(new br.default).toHexString();t.push(n);var r={};if(e.children)for(var a=0,i=Object.values(e.children);a<i.length;a++){var o=this.generateNewIds(i[a],t);r[o._id]=o}var s="string"==typeof e.refSeq?e.refSeq:e.refSeq.toHexString();return K(K({},e),{},{refSeq:s,children:e.children&&r,_id:n})}}]),n}(wr.AssemblySpecificChange);vr.FeatureChange=xr;var Sr={};Object.defineProperty(Sr,"__esModule",{value:!0}),Sr.operationRegistry=void 0,Sr.operationRegistry=new(function(){function e(){ee(this,e),this.operations=new Map}return ne(e,[{key:"registerOperation",value:function(e,t){if(this.operations.has(e))throw new Error('operation type "'.concat(e,'" has already been registered'));this.operations.set(e,t)}},{key:"getOperationType",value:function(e){var t=this.operations.get(e);if(!t)throw new Error('No operation constructor registered for "'.concat(e,'"'));return t}}]),e}());var kr={};Object.defineProperty(kr,"__esModule",{value:!0}),kr.Validation=void 0,kr.isContext=function(e){return"context"in e&&"reflector"in e};var Er=function(){function e(){ee(this,e)}var t,n,r,a,i;return ne(e,[{key:"frontendPreValidate",value:(i=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"frontendPostValidate",value:(a=Q(Y().mark((function e(t,n){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e,t){return a.apply(this,arguments)})},{key:"backendPreValidate",value:(r=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"backendPostValidate",value:(n=Q(Y().mark((function e(t,n){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"possibleValues",value:(t=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",void 0);case 1:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})}]),e}();kr.Validation=Er,function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=et;t.__exportStar(sr,e),t.__exportStar(cr,e),t.__exportStar(ur,e),t.__exportStar(dr,e),t.__exportStar(_r,e),t.__exportStar(yr,e),t.__exportStar(vr,e),t.__exportStar(fr,e),t.__exportStar(Sr,e),t.__exportStar(kr,e)}(or);var Ar={},Cr={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.internalToGFF=e.gffToInternal=void 0,e.isGFFReservedAttribute=function(t){return t in e.gffToInternal},e.gffToInternal={ID:"gff_id",Name:"gff_name",Alias:"gff_alias",Parent:"gff_parent",Target:"gff_target",Gap:"gff_gap",Derives_from:"gff_derives_from",Note:"gff_note",Dbxref:"gff_dbxref",Ontology_term:"gff_ontology_term",Is_circular:"gff_is_circular"},e.internalToGFF={gff_id:"ID",gff_name:"Name",gff_alias:"Alias",gff_parent:"Parent",gff_target:"Target",gff_gap:"Gap",gff_derives_from:"Derives_from",gff_note:"Note",gff_dbxref:"Dbxref",gff_ontology_term:"Ontology_term",gff_is_circular:"Is_circular"}}(Cr);var Rr={};Object.defineProperty(Rr,"__esModule",{value:!0}),Rr.gff3ToAnnotationFeature=function e(t,n,r){var a=he(t,1)[0],i=a.end,o=a.seq_id,s=a.start,l=a.strand,c=a.type;if(!o)throw new Error("feature does not have seq_id: ".concat(JSON.stringify(a)));if(!c)throw new Error("feature does not have type: ".concat(JSON.stringify(a)));if(null===s)throw new Error("feature does not have start: ".concat(JSON.stringify(a)));if(null===i)throw new Error("feature does not have end: ".concat(JSON.stringify(a)));var u=he(function(e){if(e.length>1&&!e.every((function(e){return"CDS"===e.type})))throw new Error("GFF3 features has multiple locations but is not a CDS");var t=e.map((function(e){return e.start})).filter((function(e){return null!==e})),n=e.map((function(e){return e.end})).filter((function(e){return null!==e}));return[Math.min.apply(Math,me(t))-1,Math.max.apply(Math,me(n))]}(t),2),d=u[0],f=u[1],h=function(t,n,r){var a={},i=t.filter((function(e){return e.child_features.length>0}));if(i.length>1)throw new Error("Features with multiple locations may not have children");if(0!==i.length){var o,s=[],l=we(he(i,1)[0].child_features);try{for(l.s();!(o=l.n()).done;){var c=o.value,u=he(c,1)[0];if("three_prime_UTR"!==u.type&&"five_prime_UTR"!==u.type)if("CDS"===u.type)s.push(c);else{var d=e(c,n,r);a[d._id]=d}}}catch(e){l.e(e)}finally{l.f()}var f,h=s.length>0?function(t,n,r){var a=t.map((function(e){return e.length}));if(a.some((function(e){return e>1})))return t.map((function(t){return e(t,n,r)}));var i=t.map((function(e){return e[0]})).filter((function(e){return null!==e.start&&null!==e.end})).sort((function(e,t){return e.start-t.start}));if(!i.some((function(e,t){var n=i.at(t+1);return!!n&&(0,Nr.doesIntersect2)(e.start,e.end,n.start,n.end)})))return[e(i,n,r)];var o,s=t.map((function(e){return e[0]})),l=[],c=we(s);try{for(c.s();!(o=c.n()).done;){var u=o.value,d=l.at(-1);if(d){var f=d.at(-1);if(!f)throw new Error("Got group with no locations");(0,Nr.doesIntersect2)(f.start,f.end,u.start,u.end)?l.push([u]):d.push(u)}else l.push([u])}}catch(e){c.e(e)}finally{c.f()}return l.map((function(t){return e(t,n,r)}))}(s,n,r):[],p=we(h);try{for(p.s();!(f=p.n()).done;){var m=f.value;a[m._id]=m}}catch(e){p.e(e)}finally{p.f()}return Object.keys(a).length>0?a:void 0}}(t,n,r),p=function(e){var t={},n=e.map((function(e){return e.score})).filter((function(e){return null!==e})),r=e.map((function(e){return e.source})).filter((function(e){return null!==e})),a=e.map((function(e){return e.attributes})).filter((function(e){return null!==e}));if(n.length>0){var i=he(n,1)[0];n.length>1&&(i=n.reduce((function(e,t){return e+t}),0)/n.length),t.gff_score=[String(i)]}if(r.length>0){var o=he(r,1)[0];if(r.length>1){var s=le(Set,me(r));o=me(s).join(",")}t.gff_source=[o]}if(a.length>0){var l,c={},u=we(a);try{for(u.s();!(l=u.n()).done;)for(var d=0,f=Object.entries(l.value);d<f.length;d++){var h=he(f[d],2),p=h[0],m=h[1];if(m&&"Parent"!==p){var g=(0,Tr.isGFFReservedAttribute)(p)?Tr.gffToInternal[p]:p,_=c[g];if(_){var y=le(Set,me(_).concat(me(m)));t[g]=me(y)}else t[g]=m}}}catch(e){u.e(e)}finally{u.f()}}if(Object.keys(t).length>0)return t}(t),m={_id:(new Ir.default).toHexString(),refSeq:null!=n?n:o,type:c,min:d,max:f};if(l)if("+"===l)m.strand=1;else{if("-"!==l)throw new Error('Unknown strand: "'.concat(l,'"'));m.strand=-1}return h&&(m.children=h),p&&(m.attributes=p),r&&r.push(m._id),m};var Nr=R.default,Ir=et.__importDefault(Wn),Tr=Cr;!function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=et;t.__exportStar(Cr,e),t.__exportStar(Rr,e)}(Ar),Object.defineProperty(ir,"__esModule",{value:!0}),ir.FromFileBaseChange=void 0;var Or=Ar,Fr=function(e){ae(i,e);var t,n,r,a=de(i);function i(){var e;ee(this,i);for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return re(ue(e=a.call.apply(a,[this].concat(n))),"refSeqCache",new Map),e}return ne(i,[{key:"addRefSeqIntoDb",value:(r=Q(Y().mark((function e(t,n,r){var a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b,w,x,S,k,E,A,C,R,N,I,T,O,F,L,D,M,P,q,j,B,U,z,G,H,J,V,W,Z,X;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:i=this.logger,o=r.filesService,s=r.refSeqChunkModel,l=r.refSeqModel,c=r.user,d=(u=jt.env.CHUNK_SIZE)&&Number(u),f=0,h=0,m="text/x-gff3"!==t.type,g=o.getFileStream(t),_="",y="",v=!0,b=!1,null===(a=i.debug)||void 0===a||a.call(i,"starting sequence stream"),w=0,x=!1,S=!1,e.prev=16,E=$(g);case 18:return e.next=20,E.next();case 20:if(!(x=!(A=e.sent).done)){e.next=102;break}C=A.value.toString(),v=!C.endsWith("\n"),R=C.split(/\r?\n/),y&&(R[0]="".concat(y).concat(R[0]),y=""),v&&(y=R.pop()||""),N=!1,I=!1,e.prev=29,O=$(R);case 31:return e.next=33,O.next();case 33:if(!(N=!(F=e.sent).done)){e.next=83;break}if(L=F.value,++w%1e6==0&&(null===(D=i.debug)||void 0===D||D.call(i,"Processed ".concat(w," lines"))),m){e.next=40;break}return"##FASTA"===L.trim()&&(m=!0),e.abrupt("continue",80);case 40:if(!(M=/^>\s*(\S+)\s*(.*)/.exec(L))){e.next=66;break}if(b=!0,null===(P=i.debug)||void 0===P||P.call(i,'Reference sequence information line "'.concat(M[0],'"')),""===_){e.next=51;break}if(p){e.next=47;break}throw new Error("No refSeq document found");case 47:return h+=_.length,e.next=50,s.create([{refSeq:p._id,n:f,sequence:_,user:c,status:-1}]);case 50:_="";case 51:return e.next=53,null===(q=p)||void 0===q?void 0:q.updateOne({length:h});case 53:return h=0,f=0,B=M[1].trim(),U=M[2]?M[2].trim():"",e.next=59,l.create([K(K({name:B,description:U,assembly:n,length:0},d?{chunkSize:d}:null),{},{user:c,status:-1})]);case 59:z=he(e.sent,1),G=z[0],null===(j=i.debug)||void 0===j||j.call(i,'Added new refSeq "'.concat(B,'", desc "').concat(U,'", docId "').concat(G._id,'"')),p=G,e.next=80;break;case 66:if(!/\S/.test(L)){e.next=80;break}if(p){e.next=69;break}throw new Error("No refSeq document found");case 69:J=(H=p)._id,V=H.chunkSize,_+=L.replaceAll(/\s/g,"");case 71:if(!(_.length>=V)){e.next=80;break}return W=_.slice(0,V),h+=W.length,e.next=76,s.create([{refSeq:J,n:f,sequence:W,user:c,status:-1}]);case 76:f++,_=_.slice(V),e.next=71;break;case 80:N=!1,e.next=31;break;case 83:e.next=89;break;case 85:e.prev=85,e.t0=e.catch(29),I=!0,T=e.t0;case 89:if(e.prev=89,e.prev=90,!N||null==O.return){e.next=94;break}return e.next=94,O.return();case 94:if(e.prev=94,!I){e.next=97;break}throw T;case 97:return e.finish(94);case 98:return e.finish(89);case 99:x=!1,e.next=18;break;case 102:e.next=108;break;case 104:e.prev=104,e.t1=e.catch(16),S=!0,k=e.t1;case 108:if(e.prev=108,e.prev=109,!x||null==E.return){e.next=113;break}return e.next=113,E.return();case 113:if(e.prev=113,!S){e.next=116;break}throw k;case 116:return e.finish(113);case 117:return e.finish(108);case 118:if(b){e.next=120;break}throw new Error("No reference sequences found in file");case 120:if(!_&&!v){e.next=131;break}if(p){e.next=123;break}throw new Error("No refSeq document found");case 123:return v&&(_+=y),h+=_.length,null===(Z=i.verbose)||void 0===Z||Z.call(i,'*** Add the very last chunk to ref seq ("'.concat(p._id,'", index ').concat(f," and total length for ref seq is ").concat(h,'): "').concat(_,'"')),null===(X=i.debug)||void 0===X||X.call(i,"Creating refSeq chunk number ".concat(f,' of "').concat(p._id,'"')),e.next=129,s.create([{refSeq:p._id,n:f,sequence:_,user:c,status:-1}]);case 129:return e.next=131,p.updateOne({length:h});case 131:case"end":return e.stop()}}),e,this,[[16,104,108,118],[29,85,89,99],[90,,94,98],[109,,113,117]])}))),function(e,t,n){return r.apply(this,arguments)})},{key:"removeExistingFeatures",value:(n=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.featureModel,a=t.refSeqModel,i=this.assembly,null===(n=(o=this.logger).debug)||void 0===n||n.call(o,"Removing existing features for assembly = ".concat(i)),e.next=5,a.find({assembly:i}).exec();case 5:s=we(e.sent),e.prev=7,s.s();case 9:if((l=s.n()).done){e.next=15;break}return c=l.value,e.next=13,r.deleteMany({refSeq:c._id});case 13:e.next=9;break;case 15:e.next=20;break;case 17:e.prev=17,e.t0=e.catch(7),s.e(e.t0);case 20:return e.prev=20,s.f(),e.finish(20);case 23:case"end":return e.stop()}}),e,this,[[7,17,20,23]])}))),function(e){return n.apply(this,arguments)})},{key:"addFeatureIntoDb",value:(t=Q(Y().mark((function e(t,n){var r,a,i,o,s,l,c,u,d,f,h;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n.featureModel,a=n.refSeqModel,i=n.user,o=this.assembly,s=this.refSeqCache,l=he(t,1),c=l[0].seq_id){e.next=5;break}throw new Error("Valid seq_id not found in feature ".concat(JSON.stringify(t)));case 5:if(u=s.get(c)){e.next=20;break}return e.next=9,a.findOne({assembly:o,name:c}).exec();case 9:if(e.t1=d=e.sent,e.t0=null!==e.t1,!e.t0){e.next=13;break}e.t0=void 0!==d;case 13:if(!e.t0){e.next=17;break}e.t2=d,e.next=18;break;case 17:e.t2=void 0;case 18:(u=e.t2)&&s.set(c,u);case 20:if(u){e.next=22;break}throw new Error('RefSeq was not found by assembly "'.concat(o,'" and seq_id "').concat(c,'" not found'));case 22:return h=(0,Or.gff3ToAnnotationFeature)(t,u._id,f=[]),e.next=26,r.create([K(K({allIds:f},h),{},{user:i,status:-1})]);case 26:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)})}]),i}(or.AssemblySpecificChange);ir.FromFileBaseChange=Fr,Object.defineProperty(ar,"__esModule",{value:!0}),ar.AddAssemblyAndFeaturesFromFileChange=void 0;var Lr=function(e){ae(i,e);var t,n,r,a=de(i);function i(e,t){var n;return ee(this,i),re(ue(n=a.call(this,e,t)),"typeName","AddAssemblyAndFeaturesFromFileChange"),re(ue(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return ne(i,[{key:"notification",get:function(){return'Assembly "'.concat(this.changes[0].assemblyName,'" added successfully. To use it, please refresh the page.')}},{key:"toJSON",value:function(){var e=this.assembly,t=this.changes,n=this.typeName;if(1===t.length){var r=he(t,1)[0];return{typeName:n,assembly:e,assemblyName:r.assemblyName,fileId:r.fileId}}return{typeName:n,assembly:e,changes:t}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b,w,x,S,k,E,A,C;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.assemblyModel,r=t.fileModel,a=t.filesService,i=t.user,o=this.assembly,s=this.logger,l=we(this.changes),e.prev=3,l.s();case 5:if((c=l.n()).done){e.next=66;break}if(m=(p=c.value).assemblyName,g=p.fileId,jt.env.FILE_UPLOAD_FOLDER){e.next=11;break}throw new Error("No FILE_UPLOAD_FOLDER found in .env file");case 11:return e.next=13,r.findById(g).exec();case 13:if(_=e.sent){e.next=16;break}throw new Error('File "'.concat(g,'" not found in Mongo'));case 16:return null===(u=s.debug)||void 0===u||u.call(s,'FileId "'.concat(g,'", checksum "').concat(_.checksum,'"')),e.next=19,n.findOne({name:m}).exec();case 19:if(!e.sent){e.next=22;break}throw new Error('Assembly "'.concat(m,'" already exists'));case 22:return e.next=24,n.create([{_id:o,name:m,user:i,status:-1}]);case 24:return y=he(e.sent,1),v=y[0],null===(d=s.debug)||void 0===d||d.call(s,'Added new assembly "'.concat(m,'", docId "').concat(v._id.toHexString(),'"')),null===(f=s.debug)||void 0===f||f.call(s,'File type: "'.concat(_.type,'"')),e.next=31,this.addRefSeqIntoDb(_,v._id.toString(),t);case 31:null===(h=s.debug)||void 0===h||h.call(s,'**************** LOOPATAAN KAIKKI FEATURET SEURAAVAKSI File type: "'.concat(_.type,'"')),b=a.parseGFF3(a.getFileStream(_)),w=!1,x=!1,e.prev=35,k=$(b);case 37:return e.next=39,k.next();case 39:if(!(w=!(E=e.sent).done)){e.next=48;break}return C=E.value,null===(A=s.verbose)||void 0===A||A.call(s,"ENTRY=".concat(JSON.stringify(C))),e.next=45,this.addFeatureIntoDb(C,t);case 45:w=!1,e.next=37;break;case 48:e.next=54;break;case 50:e.prev=50,e.t0=e.catch(35),x=!0,S=e.t0;case 54:if(e.prev=54,e.prev=55,!w||null==k.return){e.next=59;break}return e.next=59,k.return();case 59:if(e.prev=59,!x){e.next=62;break}throw S;case 62:return e.finish(59);case 63:return e.finish(54);case 64:e.next=5;break;case 66:e.next=71;break;case 68:e.prev=68,e.t1=e.catch(3),l.e(e.t1);case 71:return e.prev=71,l.f(),e.finish(71);case 74:case"end":return e.stop()}}),e,this,[[3,68,71,74],[35,50,54,64],[55,,59,63]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){return new i({typeName:this.typeName,changes:this.changes,assembly:this.assembly},{logger:this.logger})}}]),i}(ir.FromFileBaseChange);ar.AddAssemblyAndFeaturesFromFileChange=Lr;var Dr={},Mr={},Pr=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};ee(this,e),this.baseOverrides={},this.url=t;var r=n.fetch||globalThis.fetch.bind(globalThis);if(!r)throw new TypeError("no fetch function supplied, and none found in global environment");n.overrides&&(this.baseOverrides=n.overrides),this.fetchImplementation=r}var t,n,r,a,i,o;return ne(e,[{key:"getBufferFromResponse",value:(o=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("function"!=typeof t.buffer){e.next=4;break}return e.abrupt("return",t.buffer());case 4:if("function"!=typeof t.arrayBuffer){e.next=11;break}return e.next=7,t.arrayBuffer();case 7:return e.abrupt("return",Xt.from(e.sent));case 11:throw new TypeError("invalid HTTP response object, has no buffer method, and no arrayBuffer method");case 12:case"end":return e.stop()}}),e)}))),function(e){return o.apply(this,arguments)})},{key:"fetch",value:(i=Q(Y().mark((function e(t,n){var r;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this.fetchImplementation(t,n);case 3:case 12:r=e.sent,e.next=16;break;case 6:if(e.prev=6,e.t0=e.catch(0),!"".concat(e.t0).includes("Failed to fetch")){e.next=15;break}return console.warn("generic-filehandle: refetching ".concat(t," to attempt to work around chrome CORS header caching bug")),e.next=12,this.fetchImplementation(t,K(K({},n),{},{cache:"reload"}));case 15:throw e.t0;case 16:return e.abrupt("return",r);case 17:case"end":return e.stop()}}),e,this,[[0,6]])}))),function(e,t){return i.apply(this,arguments)})},{key:"read",value:(a=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_=arguments;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=_.length>1&&void 0!==_[1]?_[1]:0,a=_.length>3&&void 0!==_[3]?_[3]:0,s=void 0===(o=(i=_.length>4&&void 0!==_[4]?_[4]:{}).headers)?{}:o,l=i.signal,u=void 0===(c=i.overrides)?{}:c,(r=_.length>2?_[2]:void 0)<Infinity?s.range="bytes=".concat(a,"-").concat(a+r):Infinity===r&&0!==a&&(s.range="bytes=".concat(a,"-")),d=K(K(K({},this.baseOverrides),u),{},{headers:K(K(K({},s),u.headers),this.baseOverrides.headers),method:"GET",redirect:"follow",mode:"cors",signal:l}),e.next=9,this.fetch(this.url,d);case 9:if((f=e.sent).ok){e.next=12;break}throw new Error("HTTP ".concat(f.status," ").concat(f.statusText," ").concat(this.url));case 12:if((200!==f.status||0!==a)&&206!==f.status){e.next=21;break}return e.next=15,this.getBufferFromResponse(f);case 15:return p=(h=e.sent).copy(t,n,0,Math.min(r,h.length)),m=f.headers.get("content-range"),(g=/\/(\d+)$/.exec(m||""))&&g[1]&&(this._stat={size:parseInt(g[1],10)}),e.abrupt("return",{bytesRead:p,buffer:t});case 21:if(200!==f.status){e.next=23;break}throw new Error("${this.url} fetch returned status 200, expected 206");case 23:throw new Error("HTTP ".concat(f.status," fetching ").concat(this.url));case 24:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"readFile",value:(r=Q(Y().mark((function e(){var t,n,r,a,i,o,s,l,c,u=arguments;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return"string"==typeof(t=u.length>0&&void 0!==u[0]?u[0]:{})?(n=t,r={}):(n=t.encoding,delete(r=t).encoding),s=void 0===(o=(a=r).overrides)?{}:o,l=K(K({headers:void 0===(i=a.headers)?{}:i,method:"GET",redirect:"follow",mode:"cors",signal:a.signal},this.baseOverrides),s),e.next=6,this.fetch(this.url,l);case 6:if(c=e.sent){e.next=9;break}throw new Error("generic-filehandle failed to fetch");case 9:if(200===c.status){e.next=11;break}throw Object.assign(new Error("HTTP ".concat(c.status," fetching ").concat(this.url)),{status:c.status});case 11:if("utf8"!==n){e.next=13;break}return e.abrupt("return",c.text());case 13:if(!n){e.next=15;break}throw new Error("unsupported encoding: ".concat(n));case 15:return e.abrupt("return",this.getBufferFromResponse(c));case 16:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"stat",value:(n=Q(Y().mark((function e(){var t;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._stat){e.next=6;break}return t=Xt.allocUnsafe(10),e.next=4,this.read(t,0,10,0);case 4:if(this._stat){e.next=6;break}throw new Error("unable to determine size of file at ".concat(this.url));case 6:return e.abrupt("return",this._stat);case 7:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"close",value:(t=Q(Y().mark((function e(){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return");case 1:case"end":return e.stop()}}),e)}))),function(){return t.apply(this,arguments)})}]),e}();function qr(e){var t=new FileReader;return new Promise((function(n,r){t.onerror=function(){t.abort(),r(new Error("problem reading blob"))},t.onabort=function(){r(new Error("blob reading was aborted"))},t.onload=function(){t.result&&"string"!=typeof t.result?n(t.result):r(new Error("unknown error reading blob"))},t.readAsArrayBuffer(e)}))}function jr(e){var t=new FileReader;return new Promise((function(n,r){t.onerror=function(){t.abort(),r(new Error("problem reading blob"))},t.onabort=function(){r(new Error("blob reading was aborted"))},t.onload=function(){t.result&&"string"==typeof t.result?n(t.result):r(new Error("unknown error reading blob"))},t.readAsText(e)}))}var Br=function(){function e(t){ee(this,e),this.blob=t,this.size=t.size}var t,n,r,a;return ne(e,[{key:"read",value:(a=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c=arguments;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=c.length>1&&void 0!==c[1]?c[1]:0,a=c.length>3&&void 0!==c[3]?c[3]:0,r=c.length>2?c[2]:void 0){e.next=5;break}return e.abrupt("return",{bytesRead:0,buffer:t});case 5:return o=(i=a)+r,e.next=9,qr(this.blob.slice(i,o));case 9:return s=Xt.from(e.sent),l=s.copy(t,n),e.abrupt("return",{bytesRead:l,buffer:s});case 13:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"readFile",value:(r=Q(Y().mark((function e(t){var n;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("utf8"!==(n="string"==typeof t?t:t&&t.encoding)){e.next=3;break}return e.abrupt("return",jr(this.blob));case 3:if(!n){e.next=5;break}throw new Error("unsupported encoding: ".concat(n));case 5:return e.next=7,qr(this.blob);case 7:return e.abrupt("return",Xt.from(e.sent));case 9:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"stat",value:(n=Q(Y().mark((function e(){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{size:this.size});case 1:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"close",value:(t=Q(Y().mark((function e(){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return");case 1:case"end":return e.stop()}}),e)}))),function(){return t.apply(this,arguments)})}]),e}();function Ur(e){return new Pr(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{})}var zr={__proto__:null,open:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(void 0!==n)return n;if(void 0!==e)return Ur(e,r);if(void 0!==t)return new Mr(t,r);throw new Error("no url, path, or filehandle provided, cannot open")},fromUrl:Ur,RemoteFile:Pr,LocalFile:Mr,BlobFile:Br},Gr={};!function(e){var t="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var r=t.shift();if(r){if("object"!==Z(r))throw new TypeError(r+"must be non-object");for(var a in r)n(r,a)&&(e[a]=r[a])}}return e},e.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var r={arraySet:function(e,t,n,r,a){if(t.subarray&&e.subarray)e.set(t.subarray(n,n+r),a);else for(var i=0;i<r;i++)e[a+i]=t[n+i]},flattenChunks:function(e){var t,n,r,a,i,o;for(r=0,t=0,n=e.length;t<n;t++)r+=e[t].length;for(o=new Uint8Array(r),a=0,t=0,n=e.length;t<n;t++)o.set(i=e[t],a),a+=i.length;return o}},a={arraySet:function(e,t,n,r,a){for(var i=0;i<r;i++)e[a+i]=t[n+i]},flattenChunks:function(e){return[].concat.apply([],e)}};e.setTyped=function(t){t?(e.Buf8=Uint8Array,e.Buf16=Uint16Array,e.Buf32=Int32Array,e.assign(e,r)):(e.Buf8=Array,e.Buf16=Array,e.Buf32=Array,e.assign(e,a))},e.setTyped(t)}(Gr);var Hr={},$r={},Jr={},Vr=Gr;function Wr(e){for(var t=e.length;--t>=0;)e[t]=0}var Kr=15,Yr=16,Zr=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Xr=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Qr=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],ea=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],ta=new Array(576);Wr(ta);var na=new Array(60);Wr(na);var ra=new Array(512);Wr(ra);var aa=new Array(256);Wr(aa);var ia=new Array(29);Wr(ia);var oa,sa,la,ca=new Array(30);function ua(e,t,n,r,a){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=a,this.has_stree=e&&e.length}function da(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function fa(e){return e<256?ra[e]:ra[256+(e>>>7)]}function ha(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function pa(e,t,n){e.bi_valid>Yr-n?(e.bi_buf|=t<<e.bi_valid&65535,ha(e,e.bi_buf),e.bi_buf=t>>Yr-e.bi_valid,e.bi_valid+=n-Yr):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function ma(e,t,n){pa(e,n[2*t],n[2*t+1])}function ga(e,t){var n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1}function _a(e,t,n){var r,a,i=new Array(Kr+1),o=0;for(r=1;r<=Kr;r++)i[r]=o=o+n[r-1]<<1;for(a=0;a<=t;a++){var s=e[2*a+1];0!==s&&(e[2*a]=ga(i[s]++,s))}}function ya(e){var t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function va(e){e.bi_valid>8?ha(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function ba(e,t,n,r){var a=2*t,i=2*n;return e[a]<e[i]||e[a]===e[i]&&r[t]<=r[n]}function wa(e,t,n){for(var r=e.heap[n],a=n<<1;a<=e.heap_len&&(a<e.heap_len&&ba(t,e.heap[a+1],e.heap[a],e.depth)&&a++,!ba(t,r,e.heap[a],e.depth));)e.heap[n]=e.heap[a],n=a,a<<=1;e.heap[n]=r}function xa(e,t,n){var r,a,i,o,s=0;if(0!==e.last_lit)do{r=e.pending_buf[e.d_buf+2*s]<<8|e.pending_buf[e.d_buf+2*s+1],a=e.pending_buf[e.l_buf+s],s++,0===r?ma(e,a,t):(ma(e,(i=aa[a])+256+1,t),0!==(o=Zr[i])&&pa(e,a-=ia[i],o),ma(e,i=fa(--r),n),0!==(o=Xr[i])&&pa(e,r-=ca[i],o))}while(s<e.last_lit);ma(e,256,t)}function Sa(e,t){var n,r,a,i=t.dyn_tree,o=t.stat_desc.static_tree,s=t.stat_desc.has_stree,l=t.stat_desc.elems,c=-1;for(e.heap_len=0,e.heap_max=573,n=0;n<l;n++)0!==i[2*n]?(e.heap[++e.heap_len]=c=n,e.depth[n]=0):i[2*n+1]=0;for(;e.heap_len<2;)i[2*(a=e.heap[++e.heap_len]=c<2?++c:0)]=1,e.depth[a]=0,e.opt_len--,s&&(e.static_len-=o[2*a+1]);for(t.max_code=c,n=e.heap_len>>1;n>=1;n--)wa(e,i,n);a=l;do{n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],wa(e,i,1),r=e.heap[1],e.heap[--e.heap_max]=n,e.heap[--e.heap_max]=r,i[2*a]=i[2*n]+i[2*r],e.depth[a]=(e.depth[n]>=e.depth[r]?e.depth[n]:e.depth[r])+1,i[2*n+1]=i[2*r+1]=a,e.heap[1]=a++,wa(e,i,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],function(e,t){var n,r,a,i,o,s,l=t.dyn_tree,c=t.max_code,u=t.stat_desc.static_tree,d=t.stat_desc.has_stree,f=t.stat_desc.extra_bits,h=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(i=0;i<=Kr;i++)e.bl_count[i]=0;for(l[2*e.heap[e.heap_max]+1]=0,n=e.heap_max+1;n<573;n++)(i=l[2*l[2*(r=e.heap[n])+1]+1]+1)>p&&(i=p,m++),l[2*r+1]=i,r>c||(e.bl_count[i]++,o=0,r>=h&&(o=f[r-h]),e.opt_len+=(s=l[2*r])*(i+o),d&&(e.static_len+=s*(u[2*r+1]+o)));if(0!==m){do{for(i=p-1;0===e.bl_count[i];)i--;e.bl_count[i]--,e.bl_count[i+1]+=2,e.bl_count[p]--,m-=2}while(m>0);for(i=p;0!==i;i--)for(r=e.bl_count[i];0!==r;)(a=e.heap[--n])>c||(l[2*a+1]!==i&&(e.opt_len+=(i-l[2*a+1])*l[2*a],l[2*a+1]=i),r--)}}(e,t),_a(i,c,e.bl_count)}function ka(e,t,n){var r,a,i=-1,o=t[1],s=0,l=7,c=4;for(0===o&&(l=138,c=3),t[2*(n+1)+1]=65535,r=0;r<=n;r++)a=o,o=t[2*(r+1)+1],++s<l&&a===o||(s<c?e.bl_tree[2*a]+=s:0!==a?(a!==i&&e.bl_tree[2*a]++,e.bl_tree[32]++):s<=10?e.bl_tree[34]++:e.bl_tree[36]++,s=0,i=a,0===o?(l=138,c=3):a===o?(l=6,c=3):(l=7,c=4))}function Ea(e,t,n){var r,a,i=-1,o=t[1],s=0,l=7,c=4;for(0===o&&(l=138,c=3),r=0;r<=n;r++)if(a=o,o=t[2*(r+1)+1],!(++s<l&&a===o)){if(s<c)do{ma(e,a,e.bl_tree)}while(0!=--s);else 0!==a?(a!==i&&(ma(e,a,e.bl_tree),s--),ma(e,16,e.bl_tree),pa(e,s-3,2)):s<=10?(ma(e,17,e.bl_tree),pa(e,s-3,3)):(ma(e,18,e.bl_tree),pa(e,s-11,7));s=0,i=a,0===o?(l=138,c=3):a===o?(l=6,c=3):(l=7,c=4)}}Wr(ca);var Aa=!1;function Ca(e,t,n,r){pa(e,0+(r?1:0),3),function(e,t,n,r){va(e),ha(e,n),ha(e,~n),Vr.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}(e,t,n)}Jr._tr_init=function(e){Aa||(function(){var e,t,n,r,a,i=new Array(Kr+1);for(n=0,r=0;r<28;r++)for(ia[r]=n,e=0;e<1<<Zr[r];e++)aa[n++]=r;for(aa[n-1]=r,a=0,r=0;r<16;r++)for(ca[r]=a,e=0;e<1<<Xr[r];e++)ra[a++]=r;for(a>>=7;r<30;r++)for(ca[r]=a<<7,e=0;e<1<<Xr[r]-7;e++)ra[256+a++]=r;for(t=0;t<=Kr;t++)i[t]=0;for(e=0;e<=143;)ta[2*e+1]=8,e++,i[8]++;for(;e<=255;)ta[2*e+1]=9,e++,i[9]++;for(;e<=279;)ta[2*e+1]=7,e++,i[7]++;for(;e<=287;)ta[2*e+1]=8,e++,i[8]++;for(_a(ta,287,i),e=0;e<30;e++)na[2*e+1]=5,na[2*e]=ga(e,5);oa=new ua(ta,Zr,257,286,Kr),sa=new ua(na,Xr,0,30,Kr),la=new ua(new Array(0),Qr,0,19,7)}(),Aa=!0),e.l_desc=new da(e.dyn_ltree,oa),e.d_desc=new da(e.dyn_dtree,sa),e.bl_desc=new da(e.bl_tree,la),e.bi_buf=0,e.bi_valid=0,ya(e)},Jr._tr_stored_block=Ca,Jr._tr_flush_block=function(e,t,n,r){var a,i,o=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,n=4093624447;for(t=0;t<=31;t++,n>>>=1)if(1&n&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0}(e)),Sa(e,e.l_desc),Sa(e,e.d_desc),o=function(e){var t;for(ka(e,e.dyn_ltree,e.l_desc.max_code),ka(e,e.dyn_dtree,e.d_desc.max_code),Sa(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*ea[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),(i=e.static_len+3+7>>>3)<=(a=e.opt_len+3+7>>>3)&&(a=i)):a=i=n+5,n+4<=a&&-1!==t?Ca(e,t,n,r):4===e.strategy||i===a?(pa(e,2+(r?1:0),3),xa(e,ta,na)):(pa(e,4+(r?1:0),3),function(e,t,n,r){var a;for(pa(e,t-257,5),pa(e,n-1,5),pa(e,r-4,4),a=0;a<r;a++)pa(e,e.bl_tree[2*ea[a]+1],3);Ea(e,e.dyn_ltree,t-1),Ea(e,e.dyn_dtree,n-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),xa(e,e.dyn_ltree,e.dyn_dtree)),ya(e),r&&va(e)},Jr._tr_tally=function(e,t,n){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&n,e.last_lit++,0===t?e.dyn_ltree[2*n]++:(e.matches++,t--,e.dyn_ltree[2*(aa[n]+256+1)]++,e.dyn_dtree[2*fa(t)]++),e.last_lit===e.lit_bufsize-1},Jr._tr_align=function(e){pa(e,2,3),ma(e,256,ta),function(e){16===e.bi_valid?(ha(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)};var Ra=function(e,t,n,r){for(var a=65535&e|0,i=e>>>16&65535|0,o=0;0!==n;){n-=o=n>2e3?2e3:n;do{i=i+(a=a+t[r++]|0)|0}while(--o);a%=65521,i%=65521}return a|i<<16|0};function Na(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t}var Ia,Ta=Na(),Oa=function(e,t,n,r){var a=Ta,i=r+n;e^=-1;for(var o=r;o<i;o++)e=e>>>8^a[255&(e^t[o])];return-1^e},Fa={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},La=Gr,Da=Jr,Ma=Ra,Pa=Oa,qa=Fa,ja=0,Ba=0,Ua=-2,za=2,Ga=8,Ha=286,$a=30,Ja=19,Va=2*Ha+1,Wa=15,Ka=3,Ya=258,Za=Ya+Ka+1,Xa=42,Qa=103,ei=113,ti=666;function ni(e,t){return e.msg=qa[t],t}function ri(e){return(e<<1)-(e>4?9:0)}function ai(e){for(var t=e.length;--t>=0;)e[t]=0}function ii(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),0!==n&&(La.arraySet(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,0===t.pending&&(t.pending_out=0))}function oi(e,t){Da._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,ii(e.strm)}function si(e,t){e.pending_buf[e.pending++]=t}function li(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function ci(e,t){var n,r,a=e.max_chain_length,i=e.strstart,o=e.prev_length,s=e.nice_match,l=e.strstart>e.w_size-Za?e.strstart-(e.w_size-Za):0,c=e.window,u=e.w_mask,d=e.prev,f=e.strstart+Ya,h=c[i+o-1],p=c[i+o];e.prev_length>=e.good_match&&(a>>=2),s>e.lookahead&&(s=e.lookahead);do{if(c[(n=t)+o]===p&&c[n+o-1]===h&&c[n]===c[i]&&c[++n]===c[i+1]){i+=2,n++;do{}while(c[++i]===c[++n]&&c[++i]===c[++n]&&c[++i]===c[++n]&&c[++i]===c[++n]&&c[++i]===c[++n]&&c[++i]===c[++n]&&c[++i]===c[++n]&&c[++i]===c[++n]&&i<f);if(r=Ya-(f-i),i=f-Ya,r>o){if(e.match_start=t,o=r,r>=s)break;h=c[i+o-1],p=c[i+o]}}}while((t=d[t&u])>l&&0!=--a);return o<=e.lookahead?o:e.lookahead}function ui(e){var t,n,r,a,i,o,s,l,c,u,d=e.w_size;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=d+(d-Za)){La.arraySet(e.window,e.window,d,d,0),e.match_start-=d,e.strstart-=d,e.block_start-=d,t=n=e.hash_size;do{r=e.head[--t],e.head[t]=r>=d?r-d:0}while(--n);t=n=d;do{r=e.prev[--t],e.prev[t]=r>=d?r-d:0}while(--n);a+=d}if(0===e.strm.avail_in)break;if(s=e.window,l=e.strstart+e.lookahead,u=void 0,(u=(o=e.strm).avail_in)>(c=a)&&(u=c),n=0===u?0:(o.avail_in-=u,La.arraySet(s,o.input,o.next_in,u,l),1===o.state.wrap?o.adler=Ma(o.adler,s,u,l):2===o.state.wrap&&(o.adler=Pa(o.adler,s,u,l)),o.next_in+=u,o.total_in+=u,u),e.lookahead+=n,e.lookahead+e.insert>=Ka)for(e.ins_h=e.window[i=e.strstart-e.insert],e.ins_h=(e.ins_h<<e.hash_shift^e.window[i+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[i+Ka-1])&e.hash_mask,e.prev[i&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=i,i++,e.insert--,!(e.lookahead+e.insert<Ka)););}while(e.lookahead<Za&&0!==e.strm.avail_in)}function di(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(ui(e),0===e.lookahead&&t===ja)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((0===e.strstart||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,oi(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-Za&&(oi(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(oi(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&oi(e,!1),1)}function fi(e,t){for(var n,r;;){if(e.lookahead<Za){if(ui(e),e.lookahead<Za&&t===ja)return 1;if(0===e.lookahead)break}if(n=0,e.lookahead>=Ka&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+Ka-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==n&&e.strstart-n<=e.w_size-Za&&(e.match_length=ci(e,n)),e.match_length>=Ka)if(r=Da._tr_tally(e,e.strstart-e.match_start,e.match_length-Ka),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=Ka){e.match_length--;do{e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+Ka-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else r=Da._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(oi(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<Ka-1?e.strstart:Ka-1,4===t?(oi(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(oi(e,!1),0===e.strm.avail_out)?1:2}function hi(e,t){for(var n,r,a;;){if(e.lookahead<Za){if(ui(e),e.lookahead<Za&&t===ja)return 1;if(0===e.lookahead)break}if(n=0,e.lookahead>=Ka&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+Ka-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=Ka-1,0!==n&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-Za&&(e.match_length=ci(e,n),e.match_length<=5&&(1===e.strategy||e.match_length===Ka&&e.strstart-e.match_start>4096)&&(e.match_length=Ka-1)),e.prev_length>=Ka&&e.match_length<=e.prev_length){a=e.strstart+e.lookahead-Ka,r=Da._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-Ka),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=a&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+Ka-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=Ka-1,e.strstart++,r&&(oi(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if((r=Da._tr_tally(e,0,e.window[e.strstart-1]))&&oi(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=Da._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<Ka-1?e.strstart:Ka-1,4===t?(oi(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(oi(e,!1),0===e.strm.avail_out)?1:2}function pi(e,t,n,r,a){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=a}function mi(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Ga,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new La.Buf16(2*Va),this.dyn_dtree=new La.Buf16(2*(2*$a+1)),this.bl_tree=new La.Buf16(2*(2*Ja+1)),ai(this.dyn_ltree),ai(this.dyn_dtree),ai(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new La.Buf16(Wa+1),this.heap=new La.Buf16(2*Ha+1),ai(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new La.Buf16(2*Ha+1),ai(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function gi(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=za,(t=e.state).pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?Xa:ei,e.adler=2===t.wrap?0:1,t.last_flush=ja,Da._tr_init(t),Ba):ni(e,Ua)}function _i(e){var t,n=gi(e);return n===Ba&&((t=e.state).window_size=2*t.w_size,ai(t.head),t.max_lazy_match=Ia[t.level].max_lazy,t.good_match=Ia[t.level].good_length,t.nice_match=Ia[t.level].nice_length,t.max_chain_length=Ia[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=Ka-1,t.match_available=0,t.ins_h=0),n}function yi(e,t,n,r,a,i){if(!e)return Ua;var o=1;if(-1===t&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),a<1||a>9||n!==Ga||r<8||r>15||t<0||t>9||i<0||i>4)return ni(e,Ua);8===r&&(r=9);var s=new mi;return e.state=s,s.strm=e,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=a+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+Ka-1)/Ka),s.window=new La.Buf8(2*s.w_size),s.head=new La.Buf16(s.hash_size),s.prev=new La.Buf16(s.w_size),s.lit_bufsize=1<<a+6,s.pending_buf_size=4*s.lit_bufsize,s.pending_buf=new La.Buf8(s.pending_buf_size),s.d_buf=1*s.lit_bufsize,s.l_buf=3*s.lit_bufsize,s.level=t,s.strategy=i,s.method=n,_i(e)}Ia=[new pi(0,0,0,0,di),new pi(4,4,8,4,fi),new pi(4,5,16,8,fi),new pi(4,6,32,32,fi),new pi(4,4,16,16,hi),new pi(8,16,32,32,hi),new pi(8,16,128,128,hi),new pi(8,32,128,256,hi),new pi(32,128,258,1024,hi),new pi(32,258,258,4096,hi)],$r.deflateInit=function(e,t){return yi(e,t,Ga,15,8,0)},$r.deflateInit2=yi,$r.deflateReset=_i,$r.deflateResetKeep=gi,$r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?Ua:(e.state.gzhead=t,Ba):Ua},$r.deflate=function(e,t){var n,r,a,i;if(!e||!e.state||t>5||t<0)return e?ni(e,Ua):Ua;if(r=e.state,!e.output||!e.input&&0!==e.avail_in||r.status===ti&&4!==t)return ni(e,0===e.avail_out?-5:Ua);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===Xa)if(2===r.wrap)e.adler=0,si(r,31),si(r,139),si(r,8),r.gzhead?(si(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),si(r,255&r.gzhead.time),si(r,r.gzhead.time>>8&255),si(r,r.gzhead.time>>16&255),si(r,r.gzhead.time>>24&255),si(r,9===r.level?2:r.strategy>=2||r.level<2?4:0),si(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(si(r,255&r.gzhead.extra.length),si(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=Pa(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=69):(si(r,0),si(r,0),si(r,0),si(r,0),si(r,0),si(r,9===r.level?2:r.strategy>=2||r.level<2?4:0),si(r,3),r.status=ei);else{var o=Ga+(r.w_bits-8<<4)<<8;o|=(r.strategy>=2||r.level<2?0:r.level<6?1:6===r.level?2:3)<<6,0!==r.strstart&&(o|=32),o+=31-o%31,r.status=ei,li(r,o),0!==r.strstart&&(li(r,e.adler>>>16),li(r,65535&e.adler)),e.adler=1}if(69===r.status)if(r.gzhead.extra){for(a=r.pending;r.gzindex<(65535&r.gzhead.extra.length)&&(r.pending!==r.pending_buf_size||(r.gzhead.hcrc&&r.pending>a&&(e.adler=Pa(e.adler,r.pending_buf,r.pending-a,a)),ii(e),a=r.pending,r.pending!==r.pending_buf_size));)si(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++;r.gzhead.hcrc&&r.pending>a&&(e.adler=Pa(e.adler,r.pending_buf,r.pending-a,a)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=73)}else r.status=73;if(73===r.status)if(r.gzhead.name){a=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>a&&(e.adler=Pa(e.adler,r.pending_buf,r.pending-a,a)),ii(e),a=r.pending,r.pending===r.pending_buf_size)){i=1;break}i=r.gzindex<r.gzhead.name.length?255&r.gzhead.name.charCodeAt(r.gzindex++):0,si(r,i)}while(0!==i);r.gzhead.hcrc&&r.pending>a&&(e.adler=Pa(e.adler,r.pending_buf,r.pending-a,a)),0===i&&(r.gzindex=0,r.status=91)}else r.status=91;if(91===r.status)if(r.gzhead.comment){a=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>a&&(e.adler=Pa(e.adler,r.pending_buf,r.pending-a,a)),ii(e),a=r.pending,r.pending===r.pending_buf_size)){i=1;break}i=r.gzindex<r.gzhead.comment.length?255&r.gzhead.comment.charCodeAt(r.gzindex++):0,si(r,i)}while(0!==i);r.gzhead.hcrc&&r.pending>a&&(e.adler=Pa(e.adler,r.pending_buf,r.pending-a,a)),0===i&&(r.status=Qa)}else r.status=Qa;if(r.status===Qa&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&ii(e),r.pending+2<=r.pending_buf_size&&(si(r,255&e.adler),si(r,e.adler>>8&255),e.adler=0,r.status=ei)):r.status=ei),0!==r.pending){if(ii(e),0===e.avail_out)return r.last_flush=-1,Ba}else if(0===e.avail_in&&ri(t)<=ri(n)&&4!==t)return ni(e,-5);if(r.status===ti&&0!==e.avail_in)return ni(e,-5);if(0!==e.avail_in||0!==r.lookahead||t!==ja&&r.status!==ti){var s=2===r.strategy?function(e,t){for(var n;;){if(0===e.lookahead&&(ui(e),0===e.lookahead)){if(t===ja)return 1;break}if(e.match_length=0,n=Da._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(oi(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(oi(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(oi(e,!1),0===e.strm.avail_out)?1:2}(r,t):3===r.strategy?function(e,t){for(var n,r,a,i,o=e.window;;){if(e.lookahead<=Ya){if(ui(e),e.lookahead<=Ya&&t===ja)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=Ka&&e.strstart>0&&(r=o[a=e.strstart-1])===o[++a]&&r===o[++a]&&r===o[++a]){i=e.strstart+Ya;do{}while(r===o[++a]&&r===o[++a]&&r===o[++a]&&r===o[++a]&&r===o[++a]&&r===o[++a]&&r===o[++a]&&r===o[++a]&&a<i);e.match_length=Ya-(i-a),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=Ka?(n=Da._tr_tally(e,1,e.match_length-Ka),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=Da._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(oi(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(oi(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(oi(e,!1),0===e.strm.avail_out)?1:2}(r,t):Ia[r.level].func(r,t);if(3!==s&&4!==s||(r.status=ti),1===s||3===s)return 0===e.avail_out&&(r.last_flush=-1),Ba;if(2===s&&(1===t?Da._tr_align(r):5!==t&&(Da._tr_stored_block(r,0,0,!1),3===t&&(ai(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),ii(e),0===e.avail_out))return r.last_flush=-1,Ba}return 4!==t?Ba:r.wrap<=0?1:(2===r.wrap?(si(r,255&e.adler),si(r,e.adler>>8&255),si(r,e.adler>>16&255),si(r,e.adler>>24&255),si(r,255&e.total_in),si(r,e.total_in>>8&255),si(r,e.total_in>>16&255),si(r,e.total_in>>24&255)):(li(r,e.adler>>>16),li(r,65535&e.adler)),ii(e),r.wrap>0&&(r.wrap=-r.wrap),0!==r.pending?Ba:1)},$r.deflateEnd=function(e){var t;return e&&e.state?(t=e.state.status)!==Xa&&69!==t&&73!==t&&91!==t&&t!==Qa&&t!==ei&&t!==ti?ni(e,Ua):(e.state=null,t===ei?ni(e,-3):Ba):Ua},$r.deflateSetDictionary=function(e,t){var n,r,a,i,o,s,l,c,u=t.length;if(!e||!e.state)return Ua;if(2===(i=(n=e.state).wrap)||1===i&&n.status!==Xa||n.lookahead)return Ua;for(1===i&&(e.adler=Ma(e.adler,t,u,0)),n.wrap=0,u>=n.w_size&&(0===i&&(ai(n.head),n.strstart=0,n.block_start=0,n.insert=0),c=new La.Buf8(n.w_size),La.arraySet(c,t,u-n.w_size,n.w_size,0),t=c,u=n.w_size),o=e.avail_in,s=e.next_in,l=e.input,e.avail_in=u,e.next_in=0,e.input=t,ui(n);n.lookahead>=Ka;){r=n.strstart,a=n.lookahead-(Ka-1);do{n.ins_h=(n.ins_h<<n.hash_shift^n.window[r+Ka-1])&n.hash_mask,n.prev[r&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=r,r++}while(--a);n.strstart=r,n.lookahead=Ka-1,ui(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=Ka-1,n.match_available=0,e.next_in=s,e.input=l,e.avail_in=o,n.wrap=i,Ba},$r.deflateInfo="pako deflate (from Nodeca project)";var vi={},bi=Gr,wi=!0,xi=!0;try{String.fromCharCode.apply(null,[0])}catch(e){wi=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){xi=!1}for(var Si=new bi.Buf8(256),ki=0;ki<256;ki++)Si[ki]=ki>=252?6:ki>=248?5:ki>=240?4:ki>=224?3:ki>=192?2:1;function Ei(e,t){if(t<65534&&(e.subarray&&xi||!e.subarray&&wi))return String.fromCharCode.apply(null,bi.shrinkBuf(e,t));for(var n="",r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n}Si[254]=Si[254]=1,vi.string2buf=function(e){var t,n,r,a,i,o=e.length,s=0;for(a=0;a<o;a++)55296==(64512&(n=e.charCodeAt(a)))&&a+1<o&&56320==(64512&(r=e.charCodeAt(a+1)))&&(n=65536+(n-55296<<10)+(r-56320),a++),s+=n<128?1:n<2048?2:n<65536?3:4;for(t=new bi.Buf8(s),i=0,a=0;i<s;a++)55296==(64512&(n=e.charCodeAt(a)))&&a+1<o&&56320==(64512&(r=e.charCodeAt(a+1)))&&(n=65536+(n-55296<<10)+(r-56320),a++),n<128?t[i++]=n:n<2048?(t[i++]=192|n>>>6,t[i++]=128|63&n):n<65536?(t[i++]=224|n>>>12,t[i++]=128|n>>>6&63,t[i++]=128|63&n):(t[i++]=240|n>>>18,t[i++]=128|n>>>12&63,t[i++]=128|n>>>6&63,t[i++]=128|63&n);return t},vi.buf2binstring=function(e){return Ei(e,e.length)},vi.binstring2buf=function(e){for(var t=new bi.Buf8(e.length),n=0,r=t.length;n<r;n++)t[n]=e.charCodeAt(n);return t},vi.buf2string=function(e,t){var n,r,a,i,o=t||e.length,s=new Array(2*o);for(r=0,n=0;n<o;)if((a=e[n++])<128)s[r++]=a;else if((i=Si[a])>4)s[r++]=65533,n+=i-1;else{for(a&=2===i?31:3===i?15:7;i>1&&n<o;)a=a<<6|63&e[n++],i--;i>1?s[r++]=65533:a<65536?s[r++]=a:(s[r++]=55296|(a-=65536)>>10&1023,s[r++]=56320|1023&a)}return Ei(s,r)},vi.utf8border=function(e,t){var n;for((t=t||e.length)>e.length&&(t=e.length),n=t-1;n>=0&&128==(192&e[n]);)n--;return n<0||0===n?t:n+Si[e[n]]>t?n:t};var Ai=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},Ci=$r,Ri=Gr,Ni=vi,Ii=Fa,Ti=Ai,Oi=Object.prototype.toString,Fi=0,Li=-1,Di=0,Mi=8;function Pi(e){if(!(this instanceof Pi))return new Pi(e);this.options=Ri.assign({level:Li,method:Mi,chunkSize:16384,windowBits:15,memLevel:8,strategy:Di,to:""},e||{});var t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ti,this.strm.avail_out=0;var n=Ci.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==Fi)throw new Error(Ii[n]);if(t.header&&Ci.deflateSetHeader(this.strm,t.header),t.dictionary){var r;if(r="string"==typeof t.dictionary?Ni.string2buf(t.dictionary):"[object ArrayBuffer]"===Oi.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,(n=Ci.deflateSetDictionary(this.strm,r))!==Fi)throw new Error(Ii[n]);this._dict_set=!0}}function qi(e,t){var n=new Pi(t);if(n.push(e,!0),n.err)throw n.msg||Ii[n.err];return n.result}Pi.prototype.push=function(e,t){var n,r,a=this.strm,i=this.options.chunkSize;if(this.ended)return!1;r=t===~~t?t:!0===t?4:0,a.input="string"==typeof e?Ni.string2buf(e):"[object ArrayBuffer]"===Oi.call(e)?new Uint8Array(e):e,a.next_in=0,a.avail_in=a.input.length;do{if(0===a.avail_out&&(a.output=new Ri.Buf8(i),a.next_out=0,a.avail_out=i),1!==(n=Ci.deflate(a,r))&&n!==Fi)return this.onEnd(n),this.ended=!0,!1;0!==a.avail_out&&(0!==a.avail_in||4!==r&&2!==r)||this.onData("string"===this.options.to?Ni.buf2binstring(Ri.shrinkBuf(a.output,a.next_out)):Ri.shrinkBuf(a.output,a.next_out))}while((a.avail_in>0||0===a.avail_out)&&1!==n);return 4===r?(n=Ci.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===Fi):2!==r||(this.onEnd(Fi),a.avail_out=0,!0)},Pi.prototype.onData=function(e){this.chunks.push(e)},Pi.prototype.onEnd=function(e){e===Fi&&(this.result="string"===this.options.to?this.chunks.join(""):Ri.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},Hr.Deflate=Pi,Hr.deflate=qi,Hr.deflateRaw=function(e,t){return(t=t||{}).raw=!0,qi(e,t)},Hr.gzip=function(e,t){return(t=t||{}).gzip=!0,qi(e,t)};var ji={},Bi={},Ui=Gr,zi=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],Gi=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],Hi=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],$i=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64],Ji=Gr,Vi=Ra,Wi=Oa,Ki=function(e,t){var n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b,w,x,S,k,E,A;E=e.input,a=(r=e.next_in)+(e.avail_in-5),A=e.output,o=(i=e.next_out)-(t-e.avail_out),s=i+(e.avail_out-257),l=(n=e.state).dmax,c=n.wsize,u=n.whave,d=n.wnext,f=n.window,h=n.hold,p=n.bits,m=n.lencode,g=n.distcode,_=(1<<n.lenbits)-1,y=(1<<n.distbits)-1;e:do{p<15&&(h+=E[r++]<<p,h+=E[r++]<<(p+=8),p+=8),v=m[h&_];t:for(;;){if(h>>>=b=v>>>24,p-=b,0==(b=v>>>16&255))A[i++]=65535&v;else{if(!(16&b)){if(0==(64&b)){v=m[(65535&v)+(h&(1<<b)-1)];continue t}if(32&b){n.mode=12;break e}e.msg="invalid literal/length code",n.mode=30;break e}w=65535&v,(b&=15)&&(p<b&&(h+=E[r++]<<p,p+=8),w+=h&(1<<b)-1,h>>>=b,p-=b),p<15&&(h+=E[r++]<<p,h+=E[r++]<<(p+=8),p+=8),v=g[h&y];n:for(;;){if(h>>>=b=v>>>24,p-=b,!(16&(b=v>>>16&255))){if(0==(64&b)){v=g[(65535&v)+(h&(1<<b)-1)];continue n}e.msg="invalid distance code",n.mode=30;break e}if(x=65535&v,p<(b&=15)&&(h+=E[r++]<<p,(p+=8)<b&&(h+=E[r++]<<p,p+=8)),(x+=h&(1<<b)-1)>l){e.msg="invalid distance too far back",n.mode=30;break e}if(h>>>=b,p-=b,x>(b=i-o)){if((b=x-b)>u&&n.sane){e.msg="invalid distance too far back",n.mode=30;break e}if(S=0,k=f,0===d){if(S+=c-b,b<w){w-=b;do{A[i++]=f[S++]}while(--b);S=i-x,k=A}}else if(d<b){if(S+=c+d-b,(b-=d)<w){w-=b;do{A[i++]=f[S++]}while(--b);if(S=0,d<w){w-=b=d;do{A[i++]=f[S++]}while(--b);S=i-x,k=A}}}else if(S+=d-b,b<w){w-=b;do{A[i++]=f[S++]}while(--b);S=i-x,k=A}for(;w>2;)A[i++]=k[S++],A[i++]=k[S++],A[i++]=k[S++],w-=3;w&&(A[i++]=k[S++],w>1&&(A[i++]=k[S++]))}else{S=i-x;do{A[i++]=A[S++],A[i++]=A[S++],A[i++]=A[S++],w-=3}while(w>2);w&&(A[i++]=A[S++],w>1&&(A[i++]=A[S++]))}break}}break}}while(r<a&&i<s);h&=(1<<(p-=(w=p>>3)<<3))-1,e.next_in=r-=w,e.next_out=i,e.avail_in=r<a?a-r+5:5-(r-a),e.avail_out=i<s?s-i+257:257-(i-s),n.hold=h,n.bits=p},Yi=function(e,t,n,r,a,i,o,s){var l,c,u,d,f,h,p,m,g,_=s.bits,y=0,v=0,b=0,w=0,x=0,S=0,k=0,E=0,A=0,C=0,R=null,N=0,I=new Ui.Buf16(16),T=new Ui.Buf16(16),O=null,F=0;for(y=0;y<=15;y++)I[y]=0;for(v=0;v<r;v++)I[t[n+v]]++;for(x=_,w=15;w>=1&&0===I[w];w--);if(x>w&&(x=w),0===w)return a[i++]=20971520,a[i++]=20971520,s.bits=1,0;for(b=1;b<w&&0===I[b];b++);for(x<b&&(x=b),E=1,y=1;y<=15;y++)if(E<<=1,(E-=I[y])<0)return-1;if(E>0&&(0===e||1!==w))return-1;for(T[1]=0,y=1;y<15;y++)T[y+1]=T[y]+I[y];for(v=0;v<r;v++)0!==t[n+v]&&(o[T[t[n+v]]++]=v);if(0===e?(R=O=o,h=19):1===e?(R=zi,N-=257,O=Gi,F-=257,h=256):(R=Hi,O=$i,h=-1),C=0,v=0,y=b,f=i,S=x,k=0,u=-1,d=(A=1<<x)-1,1===e&&A>852||2===e&&A>592)return 1;for(;;){p=y-k,o[v]<h?(m=0,g=o[v]):o[v]>h?(m=O[F+o[v]],g=R[N+o[v]]):(m=96,g=0),l=1<<y-k,b=c=1<<S;do{a[f+(C>>k)+(c-=l)]=p<<24|m<<16|g|0}while(0!==c);for(l=1<<y-1;C&l;)l>>=1;if(0!==l?(C&=l-1,C+=l):C=0,v++,0==--I[y]){if(y===w)break;y=t[n+o[v]]}if(y>x&&(C&d)!==u){for(0===k&&(k=x),f+=b,E=1<<(S=y-k);S+k<w&&!((E-=I[S+k])<=0);)S++,E<<=1;if(A+=1<<S,1===e&&A>852||2===e&&A>592)return 1;a[u=C&d]=x<<24|S<<16|f-i|0}}return 0!==C&&(a[f+C]=y-k<<24|64<<16|0),s.bits=x,0},Zi=0,Xi=-2,Qi=1,eo=12,to=30,no=852,ro=592;function ao(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function io(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Ji.Buf16(320),this.work=new Ji.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function oo(e){var t;return e&&e.state?(e.total_in=e.total_out=(t=e.state).total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=Qi,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Ji.Buf32(no),t.distcode=t.distdyn=new Ji.Buf32(ro),t.sane=1,t.back=-1,Zi):Xi}function so(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,oo(e)):Xi}function lo(e,t){var n,r;return e&&e.state?(t<0?(n=0,t=-t):(n=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?Xi:(null!==(r=e.state).window&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,so(e))):Xi}function co(e,t){var n,r;return e?(r=new io,e.state=r,r.window=null,(n=lo(e,t))!==Zi&&(e.state=null),n):Xi}var uo,fo,ho=!0;function po(e){if(ho){var t;for(uo=new Ji.Buf32(512),fo=new Ji.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Yi(1,e.lens,0,288,uo,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Yi(2,e.lens,0,32,fo,0,e.work,{bits:5}),ho=!1}e.lencode=uo,e.lenbits=9,e.distcode=fo,e.distbits=5}function mo(e,t,n,r){var a,i=e.state;return null===i.window&&(i.wsize=1<<i.wbits,i.wnext=0,i.whave=0,i.window=new Ji.Buf8(i.wsize)),r>=i.wsize?(Ji.arraySet(i.window,t,n-i.wsize,i.wsize,0),i.wnext=0,i.whave=i.wsize):((a=i.wsize-i.wnext)>r&&(a=r),Ji.arraySet(i.window,t,n-r,a,i.wnext),(r-=a)?(Ji.arraySet(i.window,t,n-r,r,0),i.wnext=r,i.whave=i.wsize):(i.wnext+=a,i.wnext===i.wsize&&(i.wnext=0),i.whave<i.wsize&&(i.whave+=a))),0}Bi.inflateReset=so,Bi.inflateReset2=lo,Bi.inflateResetKeep=oo,Bi.inflateInit=function(e){return co(e,15)},Bi.inflateInit2=co,Bi.inflate=function(e,t){var n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b,w,x,S,k,E,A=0,C=new Ji.Buf8(4),R=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return Xi;(n=e.state).mode===eo&&(n.mode=13),o=e.next_out,a=e.output,i=e.next_in,r=e.input,c=n.hold,u=n.bits,d=s=e.avail_in,f=l=e.avail_out,S=Zi;e:for(;;)switch(n.mode){case Qi:if(0===n.wrap){n.mode=13;break}for(;u<16;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}if(2&n.wrap&&35615===c){n.check=0,C[0]=255&c,C[1]=c>>>8&255,n.check=Wi(n.check,C,2,0),c=0,u=0,n.mode=2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&c)<<8)+(c>>8))%31){e.msg="incorrect header check",n.mode=to;break}if(8!=(15&c)){e.msg="unknown compression method",n.mode=to;break}if(u-=4,x=8+(15&(c>>>=4)),0===n.wbits)n.wbits=x;else if(x>n.wbits){e.msg="invalid window size",n.mode=to;break}n.dmax=1<<x,e.adler=n.check=1,n.mode=512&c?10:eo,c=0,u=0;break;case 2:for(;u<16;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}if(n.flags=c,8!=(255&n.flags)){e.msg="unknown compression method",n.mode=to;break}if(57344&n.flags){e.msg="unknown header flags set",n.mode=to;break}n.head&&(n.head.text=c>>8&1),512&n.flags&&(C[0]=255&c,C[1]=c>>>8&255,n.check=Wi(n.check,C,2,0)),c=0,u=0,n.mode=3;case 3:for(;u<32;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}n.head&&(n.head.time=c),512&n.flags&&(C[0]=255&c,C[1]=c>>>8&255,C[2]=c>>>16&255,C[3]=c>>>24&255,n.check=Wi(n.check,C,4,0)),c=0,u=0,n.mode=4;case 4:for(;u<16;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}n.head&&(n.head.xflags=255&c,n.head.os=c>>8),512&n.flags&&(C[0]=255&c,C[1]=c>>>8&255,n.check=Wi(n.check,C,2,0)),c=0,u=0,n.mode=5;case 5:if(1024&n.flags){for(;u<16;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}n.length=c,n.head&&(n.head.extra_len=c),512&n.flags&&(C[0]=255&c,C[1]=c>>>8&255,n.check=Wi(n.check,C,2,0)),c=0,u=0}else n.head&&(n.head.extra=null);n.mode=6;case 6:if(1024&n.flags&&((h=n.length)>s&&(h=s),h&&(n.head&&(x=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),Ji.arraySet(n.head.extra,r,i,h,x)),512&n.flags&&(n.check=Wi(n.check,r,h,i)),s-=h,i+=h,n.length-=h),n.length))break e;n.length=0,n.mode=7;case 7:if(2048&n.flags){if(0===s)break e;h=0;do{x=r[i+h++],n.head&&x&&n.length<65536&&(n.head.name+=String.fromCharCode(x))}while(x&&h<s);if(512&n.flags&&(n.check=Wi(n.check,r,h,i)),s-=h,i+=h,x)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=8;case 8:if(4096&n.flags){if(0===s)break e;h=0;do{x=r[i+h++],n.head&&x&&n.length<65536&&(n.head.comment+=String.fromCharCode(x))}while(x&&h<s);if(512&n.flags&&(n.check=Wi(n.check,r,h,i)),s-=h,i+=h,x)break e}else n.head&&(n.head.comment=null);n.mode=9;case 9:if(512&n.flags){for(;u<16;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}if(c!==(65535&n.check)){e.msg="header crc mismatch",n.mode=to;break}c=0,u=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=eo;break;case 10:for(;u<32;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}e.adler=n.check=ao(c),c=0,u=0,n.mode=11;case 11:if(0===n.havedict)return e.next_out=o,e.avail_out=l,e.next_in=i,e.avail_in=s,n.hold=c,n.bits=u,2;e.adler=n.check=1,n.mode=eo;case eo:if(5===t||6===t)break e;case 13:if(n.last){c>>>=7&u,u-=7&u,n.mode=27;break}for(;u<3;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}switch(n.last=1&c,u-=1,3&(c>>>=1)){case 0:n.mode=14;break;case 1:if(po(n),n.mode=20,6===t){c>>>=2,u-=2;break e}break;case 2:n.mode=17;break;case 3:e.msg="invalid block type",n.mode=to}c>>>=2,u-=2;break;case 14:for(c>>>=7&u,u-=7&u;u<32;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}if((65535&c)!=(c>>>16^65535)){e.msg="invalid stored block lengths",n.mode=to;break}if(n.length=65535&c,c=0,u=0,n.mode=15,6===t)break e;case 15:n.mode=16;case 16:if(h=n.length){if(h>s&&(h=s),h>l&&(h=l),0===h)break e;Ji.arraySet(a,r,i,h,o),s-=h,i+=h,l-=h,o+=h,n.length-=h;break}n.mode=eo;break;case 17:for(;u<14;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}if(n.nlen=257+(31&c),u-=5,n.ndist=1+(31&(c>>>=5)),u-=5,n.ncode=4+(15&(c>>>=5)),c>>>=4,u-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=to;break}n.have=0,n.mode=18;case 18:for(;n.have<n.ncode;){for(;u<3;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}n.lens[R[n.have++]]=7&c,c>>>=3,u-=3}for(;n.have<19;)n.lens[R[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,S=Yi(0,n.lens,0,19,n.lencode,0,n.work,k={bits:n.lenbits}),n.lenbits=k.bits,S){e.msg="invalid code lengths set",n.mode=to;break}n.have=0,n.mode=19;case 19:for(;n.have<n.nlen+n.ndist;){for(;_=(A=n.lencode[c&(1<<n.lenbits)-1])>>>16&255,y=65535&A,!((g=A>>>24)<=u);){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}if(y<16)c>>>=g,u-=g,n.lens[n.have++]=y;else{if(16===y){for(E=g+2;u<E;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}if(c>>>=g,u-=g,0===n.have){e.msg="invalid bit length repeat",n.mode=to;break}x=n.lens[n.have-1],h=3+(3&c),c>>>=2,u-=2}else if(17===y){for(E=g+3;u<E;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}u-=g,x=0,h=3+(7&(c>>>=g)),c>>>=3,u-=3}else{for(E=g+7;u<E;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}u-=g,x=0,h=11+(127&(c>>>=g)),c>>>=7,u-=7}if(n.have+h>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=to;break}for(;h--;)n.lens[n.have++]=x}}if(n.mode===to)break;if(0===n.lens[256]){e.msg="invalid code -- missing end-of-block",n.mode=to;break}if(n.lenbits=9,S=Yi(1,n.lens,0,n.nlen,n.lencode,0,n.work,k={bits:n.lenbits}),n.lenbits=k.bits,S){e.msg="invalid literal/lengths set",n.mode=to;break}if(n.distbits=6,n.distcode=n.distdyn,S=Yi(2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,k={bits:n.distbits}),n.distbits=k.bits,S){e.msg="invalid distances set",n.mode=to;break}if(n.mode=20,6===t)break e;case 20:n.mode=21;case 21:if(s>=6&&l>=258){e.next_out=o,e.avail_out=l,e.next_in=i,e.avail_in=s,n.hold=c,n.bits=u,Ki(e,f),o=e.next_out,a=e.output,l=e.avail_out,i=e.next_in,r=e.input,s=e.avail_in,c=n.hold,u=n.bits,n.mode===eo&&(n.back=-1);break}for(n.back=0;_=(A=n.lencode[c&(1<<n.lenbits)-1])>>>16&255,y=65535&A,!((g=A>>>24)<=u);){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}if(_&&0==(240&_)){for(v=g,b=_,w=y;_=(A=n.lencode[w+((c&(1<<v+b)-1)>>v)])>>>16&255,y=65535&A,!(v+(g=A>>>24)<=u);){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}c>>>=v,u-=v,n.back+=v}if(c>>>=g,u-=g,n.back+=g,n.length=y,0===_){n.mode=26;break}if(32&_){n.back=-1,n.mode=eo;break}if(64&_){e.msg="invalid literal/length code",n.mode=to;break}n.extra=15&_,n.mode=22;case 22:if(n.extra){for(E=n.extra;u<E;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}n.length+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;_=(A=n.distcode[c&(1<<n.distbits)-1])>>>16&255,y=65535&A,!((g=A>>>24)<=u);){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}if(0==(240&_)){for(v=g,b=_,w=y;_=(A=n.distcode[w+((c&(1<<v+b)-1)>>v)])>>>16&255,y=65535&A,!(v+(g=A>>>24)<=u);){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}c>>>=v,u-=v,n.back+=v}if(c>>>=g,u-=g,n.back+=g,64&_){e.msg="invalid distance code",n.mode=to;break}n.offset=y,n.extra=15&_,n.mode=24;case 24:if(n.extra){for(E=n.extra;u<E;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}n.offset+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=to;break}n.mode=25;case 25:if(0===l)break e;if(n.offset>(h=f-l)){if((h=n.offset-h)>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=to;break}p=h>n.wnext?n.wsize-(h-=n.wnext):n.wnext-h,h>n.length&&(h=n.length),m=n.window}else m=a,p=o-n.offset,h=n.length;h>l&&(h=l),l-=h,n.length-=h;do{a[o++]=m[p++]}while(--h);0===n.length&&(n.mode=21);break;case 26:if(0===l)break e;a[o++]=n.length,l--,n.mode=21;break;case 27:if(n.wrap){for(;u<32;){if(0===s)break e;s--,c|=r[i++]<<u,u+=8}if(e.total_out+=f-=l,n.total+=f,f&&(e.adler=n.check=n.flags?Wi(n.check,a,f,o-f):Vi(n.check,a,f,o-f)),f=l,(n.flags?c:ao(c))!==n.check){e.msg="incorrect data check",n.mode=to;break}c=0,u=0}n.mode=28;case 28:if(n.wrap&&n.flags){for(;u<32;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}if(c!==(4294967295&n.total)){e.msg="incorrect length check",n.mode=to;break}c=0,u=0}n.mode=29;case 29:S=1;break e;case to:S=-3;break e;case 31:return-4;default:return Xi}return e.next_out=o,e.avail_out=l,e.next_in=i,e.avail_in=s,n.hold=c,n.bits=u,(n.wsize||f!==e.avail_out&&n.mode<to&&(n.mode<27||4!==t))&&mo(e,e.output,e.next_out,f-e.avail_out),f-=e.avail_out,e.total_in+=d-=e.avail_in,e.total_out+=f,n.total+=f,n.wrap&&f&&(e.adler=n.check=n.flags?Wi(n.check,a,f,e.next_out-f):Vi(n.check,a,f,e.next_out-f)),e.data_type=n.bits+(n.last?64:0)+(n.mode===eo?128:0)+(20===n.mode||15===n.mode?256:0),(0===d&&0===f||4===t)&&S===Zi&&(S=-5),S},Bi.inflateEnd=function(e){if(!e||!e.state)return Xi;var t=e.state;return t.window&&(t.window=null),e.state=null,Zi},Bi.inflateGetHeader=function(e,t){var n;return e&&e.state?0==(2&(n=e.state).wrap)?Xi:(n.head=t,t.done=!1,Zi):Xi},Bi.inflateSetDictionary=function(e,t){var n,r=t.length;return e&&e.state?0!==(n=e.state).wrap&&11!==n.mode?Xi:11===n.mode&&Vi(1,t,r,0)!==n.check?-3:mo(e,t,r,r)?(n.mode=31,-4):(n.havedict=1,Zi):Xi},Bi.inflateInfo="pako inflate (from Nodeca project)";var go={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},_o=Bi,yo=Gr,vo=vi,bo=go,wo=Fa,xo=Ai,So=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1},ko=Object.prototype.toString;function Eo(e){if(!(this instanceof Eo))return new Eo(e);this.options=yo.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new xo,this.strm.avail_out=0;var n=_o.inflateInit2(this.strm,t.windowBits);if(n!==bo.Z_OK)throw new Error(wo[n]);if(this.header=new So,_o.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=vo.string2buf(t.dictionary):"[object ArrayBuffer]"===ko.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=_o.inflateSetDictionary(this.strm,t.dictionary))!==bo.Z_OK))throw new Error(wo[n])}function Ao(e,t){var n=new Eo(t);if(n.push(e,!0),n.err)throw n.msg||wo[n.err];return n.result}Eo.prototype.push=function(e,t){var n,r,a,i,o,s=this.strm,l=this.options.chunkSize,c=this.options.dictionary,u=!1;if(this.ended)return!1;r=t===~~t?t:!0===t?bo.Z_FINISH:bo.Z_NO_FLUSH,s.input="string"==typeof e?vo.binstring2buf(e):"[object ArrayBuffer]"===ko.call(e)?new Uint8Array(e):e,s.next_in=0,s.avail_in=s.input.length;do{if(0===s.avail_out&&(s.output=new yo.Buf8(l),s.next_out=0,s.avail_out=l),(n=_o.inflate(s,bo.Z_NO_FLUSH))===bo.Z_NEED_DICT&&c&&(n=_o.inflateSetDictionary(this.strm,c)),n===bo.Z_BUF_ERROR&&!0===u&&(n=bo.Z_OK,u=!1),n!==bo.Z_STREAM_END&&n!==bo.Z_OK)return this.onEnd(n),this.ended=!0,!1;s.next_out&&(0!==s.avail_out&&n!==bo.Z_STREAM_END&&(0!==s.avail_in||r!==bo.Z_FINISH&&r!==bo.Z_SYNC_FLUSH)||("string"===this.options.to?(a=vo.utf8border(s.output,s.next_out),i=s.next_out-a,o=vo.buf2string(s.output,a),s.next_out=i,s.avail_out=l-i,i&&yo.arraySet(s.output,s.output,a,i,0),this.onData(o)):this.onData(yo.shrinkBuf(s.output,s.next_out)))),0===s.avail_in&&0===s.avail_out&&(u=!0)}while((s.avail_in>0||0===s.avail_out)&&n!==bo.Z_STREAM_END);return n===bo.Z_STREAM_END&&(r=bo.Z_FINISH),r===bo.Z_FINISH?(n=_o.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===bo.Z_OK):r!==bo.Z_SYNC_FLUSH||(this.onEnd(bo.Z_OK),s.avail_out=0,!0)},Eo.prototype.onData=function(e){this.chunks.push(e)},Eo.prototype.onEnd=function(e){e===bo.Z_OK&&(this.result="string"===this.options.to?this.chunks.join(""):yo.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},ji.Inflate=Eo,ji.inflate=Ao,ji.inflateRaw=function(e,t){return(t=t||{}).raw=!0,Ao(e,t)},ji.ungzip=Ao;var Co={};(0,Gr.assign)(Co,Hr,ji,go);var Ro=Co;function No(e){return Io.apply(this,arguments)}function Io(){return Io=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.prev=0,r=0,a=0,i=[],o=0;case 5:if(l=t.subarray(r),s=new Ro.Inflate,n=s.strm,s.push(l,Ro.Z_SYNC_FLUSH),!s.err){e.next=12;break}throw new Error(s.msg);case 12:r+=n.next_in,i[a]=s.result,o+=i[a].length,a+=1;case 16:if(n.avail_in){e.next=5;break}case 17:for(c=new Uint8Array(o),u=0,d=0;u<i.length;u++)c.set(i[u],d),d+=i[u].length;return e.abrupt("return",Xt.from(c));case 22:if(e.prev=22,e.t0=e.catch(0),!"".concat(e.t0).match(/incorrect header check/)){e.next=26;break}throw new Error("problem decompressing block: incorrect gzip header check");case 26:throw e.t0;case 27:case"end":return e.stop()}}),e,null,[[0,22]])}))),Io.apply(this,arguments)}var To=null;try{To=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(_l){}function Oo(e,t,n){this.low=0|e,this.high=0|t,this.unsigned=!!n}function Fo(e){return!0===(e&&e.__isLong__)}function Lo(e){var t=Math.clz32(e&-e);return e?31-t:t}Object.defineProperty(Oo.prototype,"__isLong__",{value:!0}),Oo.isLong=Fo;var Do={},Mo={};function Po(e,t){var n,r,a;return t?(a=0<=(e>>>=0)&&e<256)&&(r=Mo[e])?r:(n=jo(e,0,!0),a&&(Mo[e]=n),n):(a=-128<=(e|=0)&&e<128)&&(r=Do[e])?r:(n=jo(e,e<0?-1:0,!1),a&&(Do[e]=n),n)}function qo(e,t){if(isNaN(e))return t?Wo:Vo;if(t){if(e<0)return Wo;if(e>=Ho)return Qo}else{if(e<=-$o)return es;if(e+1>=$o)return Xo}return e<0?qo(-e,t).neg():jo(e%Go|0,e/Go|0,t)}function jo(e,t,n){return new Oo(e,t,n)}Oo.fromInt=Po,Oo.fromNumber=qo,Oo.fromBits=jo;var Bo=Math.pow;function Uo(e,t,n){if(0===e.length)throw Error("empty string");if("number"==typeof t?(n=t,t=!1):t=!!t,"NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return t?Wo:Vo;if((n=n||10)<2||36<n)throw RangeError("radix");var r;if((r=e.indexOf("-"))>0)throw Error("interior hyphen");if(0===r)return Uo(e.substring(1),t,n).neg();for(var a=qo(Bo(n,8)),i=Vo,o=0;o<e.length;o+=8){var s=Math.min(8,e.length-o),l=parseInt(e.substring(o,o+s),n);if(s<8){var c=qo(Bo(n,s));i=i.mul(c).add(qo(l))}else i=(i=i.mul(a)).add(qo(l))}return i.unsigned=t,i}function zo(e,t){return"number"==typeof e?qo(e,t):"string"==typeof e?Uo(e,t):jo(e.low,e.high,"boolean"==typeof t?t:e.unsigned)}Oo.fromString=Uo,Oo.fromValue=zo;var Go=4294967296,Ho=Go*Go,$o=Ho/2,Jo=Po(16777216),Vo=Po(0);Oo.ZERO=Vo;var Wo=Po(0,!0);Oo.UZERO=Wo;var Ko=Po(1);Oo.ONE=Ko;var Yo=Po(1,!0);Oo.UONE=Yo;var Zo=Po(-1);Oo.NEG_ONE=Zo;var Xo=jo(-1,2147483647,!1);Oo.MAX_VALUE=Xo;var Qo=jo(-1,-1,!0);Oo.MAX_UNSIGNED_VALUE=Qo;var es=jo(0,-2147483648,!1);Oo.MIN_VALUE=es;var ts=Oo.prototype;ts.toInt=function(){return this.unsigned?this.low>>>0:this.low},ts.toNumber=function(){return this.unsigned?(this.high>>>0)*Go+(this.low>>>0):this.high*Go+(this.low>>>0)},ts.toString=function(e){if((e=e||10)<2||36<e)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative()){if(this.eq(es)){var t=qo(e),n=this.div(t),r=n.mul(t).sub(this);return n.toString(e)+r.toInt().toString(e)}return"-"+this.neg().toString(e)}for(var a=qo(Bo(e,6),this.unsigned),i=this,o="";;){var s=i.div(a),l=(i.sub(s.mul(a)).toInt()>>>0).toString(e);if((i=s).isZero())return l+o;for(;l.length<6;)l="0"+l;o=""+l+o}},ts.getHighBits=function(){return this.high},ts.getHighBitsUnsigned=function(){return this.high>>>0},ts.getLowBits=function(){return this.low},ts.getLowBitsUnsigned=function(){return this.low>>>0},ts.getNumBitsAbs=function(){if(this.isNegative())return this.eq(es)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;t>0&&0==(e&1<<t);t--);return 0!=this.high?t+33:t+1},ts.isZero=function(){return 0===this.high&&0===this.low},ts.eqz=ts.isZero,ts.isNegative=function(){return!this.unsigned&&this.high<0},ts.isPositive=function(){return this.unsigned||this.high>=0},ts.isOdd=function(){return 1==(1&this.low)},ts.isEven=function(){return 0==(1&this.low)},ts.equals=function(e){return Fo(e)||(e=zo(e)),(this.unsigned===e.unsigned||this.high>>>31!=1||e.high>>>31!=1)&&this.high===e.high&&this.low===e.low},ts.eq=ts.equals,ts.notEquals=function(e){return!this.eq(e)},ts.neq=ts.notEquals,ts.ne=ts.notEquals,ts.lessThan=function(e){return this.comp(e)<0},ts.lt=ts.lessThan,ts.lessThanOrEqual=function(e){return this.comp(e)<=0},ts.lte=ts.lessThanOrEqual,ts.le=ts.lessThanOrEqual,ts.greaterThan=function(e){return this.comp(e)>0},ts.gt=ts.greaterThan,ts.greaterThanOrEqual=function(e){return this.comp(e)>=0},ts.gte=ts.greaterThanOrEqual,ts.ge=ts.greaterThanOrEqual,ts.compare=function(e){if(Fo(e)||(e=zo(e)),this.eq(e))return 0;var t=this.isNegative(),n=e.isNegative();return t&&!n?-1:!t&&n?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},ts.comp=ts.compare,ts.negate=function(){return!this.unsigned&&this.eq(es)?es:this.not().add(Ko)},ts.neg=ts.negate,ts.add=function(e){Fo(e)||(e=zo(e));var t=0,n=0,r=0,a=0;return r+=(a+=(65535&this.low)+(65535&e.low))>>>16,n+=(r+=(this.low>>>16)+(e.low>>>16))>>>16,t+=(n+=(65535&this.high)+(65535&e.high))>>>16,t+=(this.high>>>16)+(e.high>>>16),jo((r&=65535)<<16|(a&=65535),(t&=65535)<<16|(n&=65535),this.unsigned)},ts.subtract=function(e){return Fo(e)||(e=zo(e)),this.add(e.neg())},ts.sub=ts.subtract,ts.multiply=function(e){if(this.isZero())return this;if(Fo(e)||(e=zo(e)),To)return jo(To.mul(this.low,this.high,e.low,e.high),To.get_high(),this.unsigned);if(e.isZero())return this.unsigned?Wo:Vo;if(this.eq(es))return e.isOdd()?es:Vo;if(e.eq(es))return this.isOdd()?es:Vo;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(Jo)&&e.lt(Jo))return qo(this.toNumber()*e.toNumber(),this.unsigned);var t=65535&this.high,n=this.low>>>16,r=65535&this.low,a=65535&e.high,i=e.low>>>16,o=65535&e.low,s=0,l=0,c=0,u=0;return c+=(u+=r*o)>>>16,l+=(c+=n*o)>>>16,c&=65535,l+=(c+=r*i)>>>16,s+=(l+=t*o)>>>16,l&=65535,s+=(l+=n*i)>>>16,l&=65535,s+=(l+=r*a)>>>16,s+=(this.high>>>16)*o+t*i+n*a+r*(e.high>>>16),jo((c&=65535)<<16|(u&=65535),(s&=65535)<<16|(l&=65535),this.unsigned)},ts.mul=ts.multiply,ts.divide=function(e){if(Fo(e)||(e=zo(e)),e.isZero())throw Error("division by zero");var t,n,r;if(To)return this.unsigned||-2147483648!==this.high||-1!==e.low||-1!==e.high?jo((this.unsigned?To.div_u:To.div_s)(this.low,this.high,e.low,e.high),To.get_high(),this.unsigned):this;if(this.isZero())return this.unsigned?Wo:Vo;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return Wo;if(e.gt(this.shru(1)))return Yo;r=Wo}else{if(this.eq(es))return e.eq(Ko)||e.eq(Zo)?es:e.eq(es)?Ko:(t=this.shr(1).div(e).shl(1)).eq(Vo)?e.isNegative()?Ko:Zo:(n=this.sub(e.mul(t)),r=t.add(n.div(e)));if(e.eq(es))return this.unsigned?Wo:Vo;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();r=Vo}for(n=this;n.gte(e);){t=Math.max(1,Math.floor(n.toNumber()/e.toNumber()));for(var a=Math.ceil(Math.log(t)/Math.LN2),i=a<=48?1:Bo(2,a-48),o=qo(t),s=o.mul(e);s.isNegative()||s.gt(n);)s=(o=qo(t-=i,this.unsigned)).mul(e);o.isZero()&&(o=Ko),r=r.add(o),n=n.sub(s)}return r},ts.div=ts.divide,ts.modulo=function(e){return Fo(e)||(e=zo(e)),To?jo((this.unsigned?To.rem_u:To.rem_s)(this.low,this.high,e.low,e.high),To.get_high(),this.unsigned):this.sub(this.div(e).mul(e))},ts.mod=ts.modulo,ts.rem=ts.modulo,ts.not=function(){return jo(~this.low,~this.high,this.unsigned)},ts.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32},ts.clz=ts.countLeadingZeros,ts.countTrailingZeros=function(){return this.low?Lo(this.low):Lo(this.high)+32},ts.ctz=ts.countTrailingZeros,ts.and=function(e){return Fo(e)||(e=zo(e)),jo(this.low&e.low,this.high&e.high,this.unsigned)},ts.or=function(e){return Fo(e)||(e=zo(e)),jo(this.low|e.low,this.high|e.high,this.unsigned)},ts.xor=function(e){return Fo(e)||(e=zo(e)),jo(this.low^e.low,this.high^e.high,this.unsigned)},ts.shiftLeft=function(e){return Fo(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?jo(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):jo(0,this.low<<e-32,this.unsigned)},ts.shl=ts.shiftLeft,ts.shiftRight=function(e){return Fo(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?jo(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):jo(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},ts.shr=ts.shiftRight,ts.shiftRightUnsigned=function(e){return Fo(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?jo(this.low>>>e|this.high<<32-e,this.high>>>e,this.unsigned):jo(32===e?this.high:this.high>>>e-32,0,this.unsigned)},ts.shru=ts.shiftRightUnsigned,ts.shr_u=ts.shiftRightUnsigned,ts.rotateLeft=function(e){var t;return Fo(e)&&(e=e.toInt()),0==(e&=63)?this:32===e?jo(this.high,this.low,this.unsigned):e<32?jo(this.low<<e|this.high>>>(t=32-e),this.high<<e|this.low>>>t,this.unsigned):jo(this.high<<(e-=32)|this.low>>>(t=32-e),this.low<<e|this.high>>>t,this.unsigned)},ts.rotl=ts.rotateLeft,ts.rotateRight=function(e){var t;return Fo(e)&&(e=e.toInt()),0==(e&=63)?this:32===e?jo(this.high,this.low,this.unsigned):e<32?jo(this.high<<(t=32-e)|this.low>>>e,this.low<<t|this.high>>>e,this.unsigned):jo(this.low<<(t=32-(e-=32))|this.high>>>e,this.high<<t|this.low>>>e,this.unsigned)},ts.rotr=ts.rotateRight,ts.toSigned=function(){return this.unsigned?jo(this.low,this.high,!1):this},ts.toUnsigned=function(){return this.unsigned?this:jo(this.low,this.high,!0)},ts.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},ts.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24,255&e,e>>>8&255,e>>>16&255,e>>>24]},ts.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24,e>>>16&255,e>>>8&255,255&e,t>>>24,t>>>16&255,t>>>8&255,255&t]},Oo.fromBytes=function(e,t,n){return n?Oo.fromBytesLE(e,t):Oo.fromBytesBE(e,t)},Oo.fromBytesLE=function(e,t){return new Oo(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,t)},Oo.fromBytesBE=function(e,t){return new Oo(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],t)};var ns=function(){function e(t){var n=t.filehandle,r=t.path;if(ee(this,e),n)this.filehandle=n;else{if(!r)throw new TypeError("either filehandle or path must be defined");this.filehandle=new Mr(r)}}var t,n,r;return ne(e,[{key:"_readLongWithOverflow",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=Oo.fromBytesLE(e.slice(t,t+8),n);if(r.greaterThan(Number.MAX_SAFE_INTEGER)||r.lessThan(Number.MIN_SAFE_INTEGER))throw new TypeError("integer overflow");return r.toNumber()}},{key:"_getIndex",value:function(){return this.index||(this.index=this._readIndex()),this.index}},{key:"_readIndex",value:(r=Q(Y().mark((function e(){var t,n,r,a,i,o,s;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=Xt.allocUnsafe(8),e.next=3,this.filehandle.read(t,0,8,0);case 3:if(n=this._readLongWithOverflow(t,0,!0)){e.next=6;break}return e.abrupt("return",[[0,0]]);case 6:if((r=new Array(n+1))[0]=[0,0],!((a=16*n)>Number.MAX_SAFE_INTEGER)){e.next=11;break}throw new TypeError("integer overflow");case 11:return t=Xt.allocUnsafe(a),e.next=14,this.filehandle.read(t,0,a,8);case 14:for(i=0;i<n;i+=1)o=this._readLongWithOverflow(t,16*i),s=this._readLongWithOverflow(t,16*i+8),r[i+1]=[o,s];return e.abrupt("return",r);case 16:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"getLastBlock",value:(n=Q(Y().mark((function e(){var t;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._getIndex();case 2:if((t=e.sent).length){e.next=5;break}return e.abrupt("return",void 0);case 5:return e.abrupt("return",t[t.length-1]);case 6:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"getRelevantBlocksForRead",value:(t=Q(Y().mark((function e(t,n){var r,a,i,o,s,l,c,u,d;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n+t,0!==t){e.next=3;break}return e.abrupt("return",[]);case 3:return e.next=5,this._getIndex();case 5:for(i=[],o=function(e,t){var r=e[1];return r<=n&&(t?t[1]:Infinity)>n?0:r<n?-1:1},s=0,l=(a=e.sent).length-1,c=Math.floor(a.length/2),u=o(a[c],a[c+1]);0!==u;)u>0?l=c-1:u<0&&(s=c+1),c=Math.ceil((l-s)/2)+s,u=o(a[c],a[c+1]);i.push(a[c]),d=c+1;case 15:if(!(d<a.length)){e.next=22;break}if(i.push(a[d]),!(a[d][1]>=r)){e.next=19;break}return e.abrupt("break",22);case 19:d+=1,e.next=15;break;case 22:return i[i.length-1][1]<r&&i.push([]),e.abrupt("return",i);case 24:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)})}]),e}(),rs=function(){function e(t){var n=t.filehandle,r=t.path,a=t.gziFilehandle,i=t.gziPath;if(ee(this,e),n)this.filehandle=n;else{if(!r)throw new TypeError("either filehandle or path must be defined");this.filehandle=new Mr(r)}if(!a&&!i&&!r)throw new TypeError("either gziFilehandle or gziPath must be defined");this.gzi=new ns({filehandle:a,path:a||i||!r?"".concat(r,".gzi"):i})}var t,n,r,a;return ne(e,[{key:"stat",value:(a=Q(Y().mark((function e(){var t;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.filehandle.stat();case 2:return t=e.sent,e.t0=Object,e.t1=t,e.next=7,this.getUncompressedFileSize();case 7:return e.t2=e.sent,e.t3=void 0,e.t4=void 0,e.t5={size:e.t2,blocks:e.t3,blksize:e.t4},e.abrupt("return",e.t0.assign.call(e.t0,e.t1,e.t5));case 12:case"end":return e.stop()}}),e,this)}))),function(){return a.apply(this,arguments)})},{key:"getUncompressedFileSize",value:(r=Q(Y().mark((function e(){var t,n,r,a,i;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.gzi.getLastBlock();case 2:return t=he(e.sent,2),n=t[1],e.next=7,this.filehandle.stat();case 7:return r=e.sent.size,a=Xt.allocUnsafe(4),e.next=12,this.filehandle.read(a,0,4,r-28-4);case 12:if(4===e.sent.bytesRead){e.next=16;break}throw new Error("read error");case 16:return i=a.readUInt32LE(0),e.abrupt("return",n+i);case 18:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"_readAndUncompressBlock",value:(n=Q(Y().mark((function e(t,n,r){var a,i,o;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=he(n,1)[0],i=he(r,1)[0]){e.next=7;break}return e.next=6,this.filehandle.stat();case 6:i=e.sent.size;case 7:return o=i-a,e.next=10,this.filehandle.read(t,0,o,a);case 10:return e.next=12,No(t.slice(0,o));case 12:return e.abrupt("return",e.sent);case 14:case"end":return e.stop()}}),e,this)}))),function(e,t,r){return n.apply(this,arguments)})},{key:"read",value:(t=Q(Y().mark((function e(t,n,r,a){var i,o,s,l,c,u,d,f,h,p;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.gzi.getRelevantBlocksForRead(r,a);case 2:i=e.sent,o=Xt.allocUnsafe(65536),s=n,l=0,c=0;case 7:if(!(c<i.length-1)){e.next=18;break}return e.next=10,this._readAndUncompressBlock(o,i[c],i[c+1]);case 10:u=e.sent,d=he(i[c],2),h=(f=d[1])>=a?0:a-f,p=Math.min(a+r,f+u.length)-f,h>=0&&h<u.length&&(u.copy(t,s,h,p),s+=p-h,l+=p-h);case 15:c+=1,e.next=7;break;case 18:return e.abrupt("return",{bytesRead:l,buffer:t});case 19:case"end":return e.stop()}}),e,this)}))),function(e,n,r,a){return t.apply(this,arguments)})}]),e}();function as(e,t){return e.offset+e.lineBytes*Math.floor(t/e.lineLength)+t%e.lineLength}function is(e,t){return os.apply(this,arguments)}function os(){return(os=Q(Y().mark((function e(t,n){var r,a,i,o;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.readFile(n);case 2:if((r=e.sent)&&r.length){e.next=5;break}throw new Error("No data read from FASTA index (FAI) file");case 5:return a=0,o=r.toString("utf8").split(/\r?\n/).filter((function(e){return/\S/.test(e)})).map((function(e){return e.split("\t")})).filter((function(e){return""!==e[0]})).map((function(e){return i&&i.name===e[0]||(i={name:e[0],id:a},a+=1),{id:i.id,name:e[0],length:+e[1],start:0,end:+e[1],offset:+e[2],lineLength:+e[3],lineBytes:+e[4]}})),e.abrupt("return",{name:Object.fromEntries(o.map((function(e){return[e.name,e]}))),id:Object.fromEntries(o.map((function(e){return[e.id,e]})))});case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var ss=function(){function e(t){var n=t.fasta,r=t.fai,a=t.path,i=t.faiPath;if(ee(this,e),n)this.fasta=n;else{if(!a)throw new Error("Need to pass filehandle for fasta or path to localfile");this.fasta=new Mr(a)}if(r)this.fai=r;else if(i)this.fai=new Mr(i);else{if(!a)throw new Error("Need to pass filehandle for or path to localfile");this.fai=new Mr("".concat(a,".fai"))}}var t,n,r,a,i,o,s,l,c;return ne(e,[{key:"_getIndexes",value:(c=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.indexes||(this.indexes=is(this.fai,t)),e.abrupt("return",this.indexes);case 2:case"end":return e.stop()}}),e,this)}))),function(e){return c.apply(this,arguments)})},{key:"getSequenceNames",value:(l=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=Object,e.next=3,this._getIndexes(t);case 3:return e.t1=e.sent.name,e.abrupt("return",e.t0.keys.call(e.t0,e.t1));case 5:case"end":return e.stop()}}),e,this)}))),function(e){return l.apply(this,arguments)})},{key:"getSequenceSizes",value:(s=Q(Y().mark((function e(t){var n,r,a;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n={},e.next=3,this._getIndexes(t);case 3:for(r=Object.values(e.sent.id),a=0;a<r.length;a+=1)n[r[a].name]=r[a].length;return e.abrupt("return",n);case 7:case"end":return e.stop()}}),e,this)}))),function(e){return s.apply(this,arguments)})},{key:"getSequenceSize",value:(o=Q(Y().mark((function e(t,n){var r;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._getIndexes(n);case 2:return e.abrupt("return",null===(r=e.sent.name[t])||void 0===r?void 0:r.length);case 4:case"end":return e.stop()}}),e,this)}))),function(e,t){return o.apply(this,arguments)})},{key:"hasReferenceSequence",value:(i=Q(Y().mark((function e(t,n){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._getIndexes(n);case 2:return e.t0=t,e.abrupt("return",!!e.sent.name[e.t0]);case 4:case"end":return e.stop()}}),e,this)}))),function(e,t){return i.apply(this,arguments)})},{key:"getResiduesById",value:(a=Q(Y().mark((function e(t,n,r,a){var i;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._getIndexes(a);case 2:if(e.t0=t,i=e.sent.id[e.t0]){e.next=6;break}return e.abrupt("return",void 0);case 6:return e.abrupt("return",this._fetchFromIndexEntry(i,n,r,a));case 7:case"end":return e.stop()}}),e,this)}))),function(e,t,n,r){return a.apply(this,arguments)})},{key:"getResiduesByName",value:(r=Q(Y().mark((function e(t,n,r,a){var i;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._getIndexes(a);case 2:if(e.t0=t,i=e.sent.name[e.t0]){e.next=6;break}return e.abrupt("return",void 0);case 6:return e.abrupt("return",this._fetchFromIndexEntry(i,n,r,a));case 7:case"end":return e.stop()}}),e,this)}))),function(e,t,n,a){return r.apply(this,arguments)})},{key:"getSequence",value:(n=Q(Y().mark((function e(t,n,r,a){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.getResiduesByName(t,n,r,a));case 1:case"end":return e.stop()}}),e,this)}))),function(e,t,r,a){return n.apply(this,arguments)})},{key:"_fetchFromIndexEntry",value:(t=Q(Y().mark((function e(t){var n,r,a,i,o,s,l=arguments;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=l.length>3?l[3]:void 0,a=l.length>2?l[2]:void 0,!((n=l.length>1&&void 0!==l[1]?l[1]:0)<0)){e.next=6;break}throw new TypeError("regionStart cannot be less than 0");case 6:if((void 0===a||a>t.length)&&(a=t.length),!(n>=a)){e.next=9;break}return e.abrupt("return","");case 9:return i=as(t,n),o=as(t,a)-i,s=Xt.allocUnsafe(o),e.next=14,this.fasta.read(s,0,o,i,r);case 14:return e.abrupt("return",s.toString("utf8").replace(/\s+/g,""));case 15:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}]),e}(),ls=function(e){ae(n,e);var t=de(n);function n(e){var r,a=e.fasta,i=e.path,o=e.fai,s=e.faiPath,l=e.gzi,c=e.gziPath;return ee(this,n),r=t.call(this,{fasta:a,path:i,fai:o,faiPath:s}),a&&l?r.fasta=new rs({filehandle:a,gziFilehandle:l}):i&&c&&(r.fasta=new rs({path:i,gziPath:c})),r}return ne(n)}(ss);function cs(e){return e.split(">").filter((function(e){return/\S/.test(e)})).map((function(e){var t=pe(e.split("\n")),n=t[0],r=t.slice(1),a=pe(n.split(" ")),i=a[0],o=a.slice(1),s=r.join("").replace(/\s/g,"");return{id:i,description:o.join(" "),sequence:s}}))}var us=function(){function e(t){var n=t.fasta,r=t.path;if(ee(this,e),n)this.fasta=n;else{if(!r)throw new Error("Need to pass fasta or path");this.fasta=new Mr(r)}this.data=this.fasta.readFile().then((function(e){return cs(e.toString("utf8"))}))}var t,n;return ne(e,[{key:"fetch",value:(n=Q(Y().mark((function e(t,n,r){var a,i;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.data;case 2:if(a=e.sent.find((function(e){return e.id===t})),i=r-n,a){e.next=7;break}throw new Error("no sequence with id ".concat(t," exists"));case 7:return e.abrupt("return",a.sequence.substr(n,i));case 8:case"end":return e.stop()}}),e,this)}))),function(e,t,r){return n.apply(this,arguments)})},{key:"getSequenceNames",value:(t=Q(Y().mark((function e(){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.data;case 2:return e.abrupt("return",e.sent.map((function(e){return e.id})));case 4:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})}]),e}(),ds=B({__proto__:null,parseSmallFasta:cs,FetchableSmallFasta:us,IndexedFasta:ss,BgzipIndexedFasta:ls}),fs=B(zr);Object.defineProperty(Dr,"__esModule",{value:!0}),Dr.AddAssemblyFromExternalChange=void 0;var hs=ds,ps=fs,ms=function(e){ae(i,e);var t,n,r,a=de(i);function i(e,t){var n;return ee(this,i),re(ue(n=a.call(this,e,t)),"typeName","AddAssemblyFromExternalChange"),re(ue(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return ne(i,[{key:"notification",get:function(){return'Assembly "'.concat(this.changes[0].assemblyName,'" added successfully. To use it, please refresh the page.')}},{key:"toJSON",value:function(){var e=this.assembly,t=this.changes,n=this.typeName;if(1===t.length){var r=he(t,1)[0];return{typeName:n,assembly:e,assemblyName:r.assemblyName,externalLocation:r.externalLocation}}return{typeName:n,assembly:e,changes:t}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b,w,x,S,k,E,A;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.assemblyModel,r=t.refSeqModel,a=t.user,i=this.assembly,o=this.changes,s=this.logger,c=(l=jt.env.CHUNK_SIZE)&&Number(l),u=we(o),e.prev=5,u.s();case 7:if((d=u.n()).done){e.next=41;break}return p=(h=d.value).assemblyName,g=(m=h.externalLocation).fa,_=m.fai,v=(y=m.gzi)?new hs.BgzipIndexedFasta({fasta:new ps.RemoteFile(g,{fetch:fetch}),fai:new ps.RemoteFile(_,{fetch:fetch}),gzi:new ps.RemoteFile(y,{fetch:fetch})}):new hs.IndexedFasta({fasta:new ps.RemoteFile(g,{fetch:fetch}),fai:new ps.RemoteFile(_,{fetch:fetch})}),e.next=14,v.getSequenceSizes();case 14:if(b=e.sent){e.next=17;break}throw new Error("No data read from indexed fasta getSequenceSizes");case 17:return e.next=19,n.findOne({name:p}).exec();case 19:if(!e.sent){e.next=22;break}throw new Error('Assembly "'.concat(p,'" already exists'));case 22:return e.next=24,n.create([{_id:i,name:p,user:a,status:-1,externalLocation:m}]);case 24:w=he(e.sent,1),x=w[0],null===(f=s.debug)||void 0===f||f.call(s,'Added new assembly "'.concat(p,'", docId "').concat(x._id,'"')),e.t0=Y().keys(b);case 29:if((e.t1=e.t0()).done){e.next=39;break}return S=e.t1.value,e.next=33,r.create([K(K({name:S,assembly:x._id,length:b[S]},c?{chunkSize:c}:null),{},{user:a,status:-1})]);case 33:E=he(e.sent,1),A=E[0],null===(k=s.debug)||void 0===k||k.call(s,'Added new refSeq "'.concat(S,'", docId "').concat(A._id,'"')),e.next=29;break;case 39:e.next=7;break;case 41:e.next=46;break;case 43:e.prev=43,e.t2=e.catch(5),u.e(e.t2);case 46:return e.prev=46,u.f(),e.finish(46);case 49:case"end":return e.stop()}}),e,this,[[5,43,46,49]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){return new i({typeName:this.typeName,changes:this.changes,assembly:this.assembly},{logger:this.logger})}}]),i}(or.AssemblySpecificChange);Dr.AddAssemblyFromExternalChange=ms;var gs={};Object.defineProperty(gs,"__esModule",{value:!0}),gs.AddAssemblyFromFileChange=void 0;var _s=function(e){ae(i,e);var t,n,r,a=de(i);function i(e,t){var n;return ee(this,i),re(ue(n=a.call(this,e,t)),"typeName","AddAssemblyFromFileChange"),re(ue(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return ne(i,[{key:"notification",get:function(){return'Assembly "'.concat(this.changes[0].assemblyName,'" added successfully. To use it, please refresh the page.')}},{key:"toJSON",value:function(){var e=this.assembly,t=this.changes,n=this.typeName;if(1===t.length){var r=he(t,1)[0];return{typeName:n,assembly:e,assemblyName:r.assemblyName,fileId:r.fileId}}return{typeName:n,assembly:e,changes:t}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.assemblyModel,r=t.fileModel,a=t.user,i=this.assembly,o=this.logger,s=we(this.changes),e.prev=3,s.s();case 5:if((l=s.n()).done){e.next=33;break}if(h=(f=l.value).assemblyName,p=f.fileId,jt.env.FILE_UPLOAD_FOLDER){e.next=11;break}throw new Error("No FILE_UPLOAD_FOLDER found in .env file");case 11:return e.next=13,r.findById(p).exec();case 13:if(m=e.sent){e.next=16;break}throw new Error('File "'.concat(p,'" not found in Mongo'));case 16:return null===(c=o.debug)||void 0===c||c.call(o,'FileId "'.concat(p,'", checksum "').concat(m.checksum,'"')),e.next=19,n.findOne({name:h}).exec();case 19:if(!e.sent){e.next=22;break}throw new Error('Assembly "'.concat(h,'" already exists'));case 22:return e.next=24,n.create([{_id:i,name:h,user:a,status:-1}]);case 24:return g=he(e.sent,1),_=g[0],null===(u=o.debug)||void 0===u||u.call(o,'Added new assembly "'.concat(h,'", docId "').concat(_._id,'"')),null===(d=o.debug)||void 0===d||d.call(o,'File type: "'.concat(m.type,'", assemblyId: "').concat(_._id,'"')),e.next=31,this.addRefSeqIntoDb(m,_._id.toString(),t);case 31:e.next=5;break;case 33:e.next=38;break;case 35:e.prev=35,e.t0=e.catch(3),s.e(e.t0);case 38:return e.prev=38,s.f(),e.finish(38);case 41:case"end":return e.stop()}}),e,this,[[3,35,38,41]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){return new i({typeName:this.typeName,changes:this.changes,assembly:this.assembly},{logger:this.logger})}}]),i}(ir.FromFileBaseChange);gs.AddAssemblyFromFileChange=_s;var ys={},vs={};Object.defineProperty(vs,"__esModule",{value:!0}),vs.DeleteFeatureChange=void 0,vs.isDeleteFeatureChange=function(e){return"DeleteFeatureChange"===e.typeName};var bs=ys,ws=function(e){ae(i,e);var t,n,r,a=de(i);function i(e,t){var n;return ee(this,i),re(ue(n=a.call(this,e,t)),"typeName","DeleteFeatureChange"),re(ue(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return ne(i,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var a=he(n,1)[0];return{typeName:r,changedIds:t,assembly:e,deletedFeature:a.deletedFeature,parentFeatureId:a.parentFeatureId}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o,s,l=this;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.featureModel,r=t.session,a=this.logger,i=we(this.changes),e.prev=3,s=Y().mark((function e(){var t,i,s,c,u,d,f,h,p;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=(i=o.value).deletedFeature,c=i.parentFeatureId,e.next=4,n.findOne({allIds:s._id}).session(r).exec();case 4:if(u=e.sent){e.next=9;break}throw d="*** ERROR: The following featureId was not found in database ='".concat(s._id,"'"),a.error(d),new Error(d);case 9:if(!u._id.equals(s._id)){e.next=16;break}if(!c){e.next=12;break}throw new Error('Feature "'.concat(s._id,'" is top-level, but received a parent feature ID'));case 12:return e.next=14,n.findByIdAndDelete(u._id);case 14:return null===(f=a.debug)||void 0===f||f.call(a,'Feature "'.concat(s._id,'" deleted from document "').concat(u._id,'". Whole document deleted.')),e.abrupt("return",1);case 16:return(h=l.findAndDeleteChildFeature(u,s._id)).push(s._id),u.allIds=u.allIds.filter((function(e){return!h.includes(e)})),u.markModified("children"),e.prev=20,e.next=23,u.save();case 23:e.next=29;break;case 25:throw e.prev=25,e.t0=e.catch(20),null===(p=a.debug)||void 0===p||p.call(a,"*** FAILED: ".concat(e.t0)),e.t0;case 29:null===(t=a.debug)||void 0===t||t.call(a,'Feature "'.concat(s._id,'" deleted from document "').concat(u._id,'"'));case 30:case"end":return e.stop()}}),e,null,[[20,25]])})),i.s();case 6:if((o=i.n()).done){e.next=12;break}return e.delegateYield(s(),"t0",8);case 8:if(!e.t0){e.next=10;break}return e.abrupt("continue",10);case 10:e.next=6;break;case 12:e.next=17;break;case 14:e.prev=14,e.t1=e.catch(3),i.e(e.t1);case 17:return e.prev=17,i.f(),e.finish(17);case 20:case"end":return e.stop()}}),e,this,[[3,14,17,20]])}))),function(e){return r.apply(this,arguments)})},{key:"findAndDeleteChildFeature",value:function(e,t){if(!e.children)throw new Error("Feature ".concat(e._id," has no children"));var n=e._id,r=e.children,a=r.get(t);if(a){var i=this.getChildFeatureIds(a);return r.delete(t),i}var o,s=we(r);try{for(s.s();!(o=s.n()).done;){var l=he(o.value,2)[1];try{return this.findAndDeleteChildFeature(l,t)}catch(e){}}}catch(e){s.e(e)}finally{s.f()}throw new Error('Feature "'.concat(t,'" not found in ').concat(n))}},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){var n,r,a,i,o,s;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No data store");case 2:n=we(this.changes),e.prev=3,n.s();case 5:if((r=n.n()).done){e.next=18;break}if(i=(a=r.value).deletedFeature,!(o=a.parentFeatureId)){e.next=15;break}if(s=t.getFeature(o)){e.next=12;break}throw new Error('Could not find parent feature "'.concat(o,'"'));case 12:s.deleteChild(i._id),e.next=16;break;case 15:t.getFeature(i._id)&&t.deleteFeature(i._id);case 16:e.next=5;break;case 18:e.next=23;break;case 20:e.prev=20,e.t0=e.catch(3),n.e(e.t0);case 23:return e.prev=23,n.f(),e.finish(23);case 26:case"end":return e.stop()}}),e,this,[[3,20,23,26]])}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){var e,t=this.assembly,n=this.changes,r=this.logger,a=me(this.changedIds).reverse(),i=me(n).reverse().map((function(e){return{addedFeature:e.deletedFeature,parentFeatureId:e.parentFeatureId}}));return null===(e=r.debug)||void 0===e||e.call(r,"INVERSE CHANGE '".concat(JSON.stringify(i),"'")),new bs.AddFeatureChange({changedIds:a,typeName:"AddFeatureChange",changes:i,assembly:t},{logger:r})}}]),i}(or.FeatureChange);vs.DeleteFeatureChange=ws,Object.defineProperty(ys,"__esModule",{value:!0}),ys.AddFeatureChange=void 0,ys.isAddFeatureChange=function(e){return"AddFeatureChange"===e.typeName};var xs=vs,Ss=function(e){ae(i,e);var t,n,r,a=de(i);function i(e,t){var n;return ee(this,i),re(ue(n=a.call(this,e,t)),"typeName","AddFeatureChange"),re(ue(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return ne(i,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var a=he(n,1)[0];return{typeName:r,changedIds:t,assembly:e,addedFeature:a.addedFeature,parentFeatureId:a.parentFeatureId,copyFeature:a.copyFeature,allIds:a.allIds}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b,w,x,S,k,E,A,C,R,N,I,T,O,F,L,D,M,P;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=t.assemblyModel,i=t.featureModel,o=t.refSeqModel,s=t.session,l=t.user,c=this.assembly,u=this.changes,d=this.logger,e.next=4,a.findById(c).session(s).exec();case 4:if(e.sent){e.next=9;break}throw f='*** ERROR: Assembly with id "'.concat(c,'" not found'),d.error(f),new Error(f);case 9:h=0,null===(n=d.debug)||void 0===n||n.call(d,"changes: ".concat(JSON.stringify(u))),p=we(u),e.prev=12,p.s();case 14:if((m=p.n()).done){e.next=64;break}return _=m.value,null===(g=d.debug)||void 0===g||g.call(d,"change: ".concat(JSON.stringify(_))),v=_.allIds,b=_.copyFeature,w=_.parentFeatureId,x=(y=_.addedFeature)._id,S=y.refSeq,e.next=21,o.findById(S).session(s).exec();case 21:if(e.sent){e.next=24;break}throw new Error('RefSeq was not found by assembly "'.concat(c,'" and seq_id "').concat(S,'" not found'));case 24:if(!b){e.next=34;break}return e.next=27,i.create([K(K({},y),{},{allIds:v,status:-1,user:l})],{session:s});case 27:E=he(e.sent,1),A=E[0],null===(k=d.debug)||void 0===k||k.call(d,'Copied feature, docId "'.concat(A._id,'" to assembly "').concat(c,'"')),h++,e.next=61;break;case 34:if(!w){e.next=53;break}return e.next=37,i.findOne({allIds:w}).session(s).exec();case 37:if(N=e.sent){e.next=40;break}throw new Error('Could not find feature with ID "'.concat(w,'"'));case 40:if(I=this.getFeatureFromId(N,w)){e.next=43;break}throw new Error('Could not find feature with ID "'.concat(w,'" in feature "').concat(N._id,'"'));case 43:return I.children||(I.children=new Map),null!==(C=I.attributes)&&void 0!==C&&C._id||((T=I.attributes)||(T={}),T=K({_id:[I._id.toString()]},JSON.parse(JSON.stringify(T))),I.attributes=T),I.children.set(x,K(K({allIds:[]},y),{},{_id:x})),I.children=new Map(me(I.children.entries()).sort((function(e,t){return e[1].min-t[1].min}))),O=this.getChildFeatureIds(y),(R=N.allIds).push.apply(R,[x].concat(me(O))),e.next=51,N.save();case 51:e.next=61;break;case 53:return L=this.getChildFeatureIds(y),D=[x].concat(me(L)),e.next=57,i.create([K({allIds:D,status:0},y)],{session:s});case 57:M=he(e.sent,1),P=M[0],null===(F=d.verbose)||void 0===F||F.call(d,'Added docId "'.concat(P._id,'"'));case 61:h++;case 62:e.next=14;break;case 64:e.next=69;break;case 66:e.prev=66,e.t0=e.catch(12),p.e(e.t0);case 69:return e.prev=69,p.f(),e.finish(69);case 72:null===(r=d.debug)||void 0===r||r.call(d,"Added ".concat(h," new feature(s) into database."));case 73:case"end":return e.stop()}}),e,this,[[12,66,69,72]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){var n,r,a,i,o,s,l;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No data store");case 2:n=this.assembly,r=we(this.changes),e.prev=4,r.s();case 6:if((a=r.n()).done){e.next=20;break}if(o=(i=a.value).addedFeature,!(s=i.parentFeatureId)){e.next=17;break}if(l=t.getFeature(s)){e.next=13;break}throw new Error('Could not find parent feature "'.concat(s,'"'));case 13:l.attributes.get("_id")||l.setAttribute("_id",[l._id]),l.addChild(o),e.next=18;break;case 17:t.addFeature(n,o);case 18:e.next=6;break;case 20:e.next=25;break;case 22:e.prev=22,e.t0=e.catch(4),r.e(e.t0);case 25:return e.prev=25,r.f(),e.finish(25);case 28:case"end":return e.stop()}}),e,this,[[4,22,25,28]])}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,t=this.changes,n=this.logger,r=me(this.changedIds).reverse(),a=me(t).reverse().map((function(e){return{deletedFeature:e.addedFeature,parentFeatureId:e.parentFeatureId}}));return new xs.DeleteFeatureChange({changedIds:r,typeName:"DeleteFeatureChange",changes:a,assembly:e},{logger:n})}}]),i}(or.FeatureChange);ys.AddFeatureChange=Ss;var ks={};Object.defineProperty(ks,"__esModule",{value:!0}),ks.AddFeaturesFromFileChange=void 0;var Es=function(e){ae(i,e);var t,n,r,a=de(i);function i(e,t){var n,r;return ee(this,i),re(ue(r=a.call(this,e,t)),"typeName","AddFeaturesFromFileChange"),re(ue(r),"changes",void 0),re(ue(r),"deleteExistingFeatures",!1),r.deleteExistingFeatures=null!==(n=e.deleteExistingFeatures)&&void 0!==n&&n,r.changes="changes"in e?e.changes:[e],r}return ne(i,[{key:"notification",get:function(){return"Features have been added. To see them, please refresh the page."}},{key:"toJSON",value:function(){var e=this.assembly,t=this.changes,n=this.deleteExistingFeatures,r=this.typeName;return 1===t.length?{typeName:r,assembly:e,fileId:he(t,1)[0].fileId,deleteExistingFeatures:n}:{typeName:r,assembly:e,changes:t,deleteExistingFeatures:n}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.fileModel,a=t.filesService,i=this.changes,o=this.logger,!this.deleteExistingFeatures){e.next=5;break}return e.next=5,this.removeExistingFeatures(t);case 5:s=we(i),e.prev=6,s.s();case 8:if((l=s.n()).done){e.next=56;break}if(u=l.value.fileId,jt.env.FILE_UPLOAD_FOLDER){e.next=14;break}throw new Error("No FILE_UPLOAD_FOLDER found in .env file");case 14:return e.next=16,r.findById(u).exec();case 16:if(d=e.sent){e.next=19;break}throw new Error('File "'.concat(u,'" not found in Mongo'));case 19:null===(c=o.debug)||void 0===c||c.call(o,'FileId "'.concat(u,'", checksum "').concat(d.checksum,'"')),f=a.parseGFF3(a.getFileStream(d)),h=0,p=!1,m=!1,e.prev=24,_=$(f);case 26:return e.next=28,_.next();case 28:if(!(p=!(y=e.sent).done)){e.next=38;break}return v=y.value,e.next=33,this.addFeatureIntoDb(v,t);case 33:++h%1e3==0&&(null===(b=o.debug)||void 0===b||b.call(o,"Processed ".concat(h," features")));case 35:p=!1,e.next=26;break;case 38:e.next=44;break;case 40:e.prev=40,e.t0=e.catch(24),m=!0,g=e.t0;case 44:if(e.prev=44,e.prev=45,!p||null==_.return){e.next=49;break}return e.next=49,_.return();case 49:if(e.prev=49,!m){e.next=52;break}throw g;case 52:return e.finish(49);case 53:return e.finish(44);case 54:e.next=8;break;case 56:e.next=61;break;case 58:e.prev=58,e.t1=e.catch(6),s.e(e.t1);case 61:return e.prev=61,s.f(),e.finish(61);case 64:null===(n=o.debug)||void 0===n||n.call(o,"New features added into database!");case 65:case"end":return e.stop()}}),e,this,[[6,58,61,64],[24,40,44,54],[45,,49,53]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){return new i({typeName:this.typeName,changes:this.changes,assembly:this.assembly},{logger:this.logger})}}]),i}(ir.FromFileBaseChange);ks.AddFeaturesFromFileChange=Es;var As={};Object.defineProperty(As,"__esModule",{value:!0}),As.AddRefSeqAliasesChange=void 0;var Cs=R.default,Rs=function(e){ae(r,e);var t,n=de(r);function r(e,t){var a;return ee(this,r),re(ue(a=n.call(this,e,t)),"typeName","AddRefSeqAliasesChange"),re(ue(a),"refSeqAliases",void 0),a.refSeqAliases=e.refSeqAliases,a}return ne(r,[{key:"executeOnClient",value:function(e){var t=(0,Cs.getSession)(e).assemblyManager.get(this.assembly);if(!t)throw new Error("assembly ".concat(this.assembly," not found"));var n=t.refNameAliases,r=t.lowerCaseRefNameAliases;if(!n||!r)throw new Error("Session refNameAliases not found in assembly");var a,i=we(this.refSeqAliases);try{for(i.s();!(a=i.n()).done;){var o,s=a.value,l=s.refName,c=we(s.aliases);try{for(c.s();!(o=c.n()).done;){var u=o.value;n[u]=l,r[u.toLowerCase()]=l}}catch(e){c.e(e)}finally{c.f()}}}catch(e){i.e(e)}finally{i.f()}return t.setRefNameAliases(n,r),Promise.resolve()}},{key:"getInverse",value:function(){throw new Error("Method not implemented.")}},{key:"toJSON",value:function(){return{assembly:this.assembly,typeName:this.typeName,refSeqAliases:this.refSeqAliases}}},{key:"executeOnServer",value:(t=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.refSeqModel,r=t.session,a=this.assembly,i=this.logger,o=we(this.refSeqAliases),e.prev=3,o.s();case 5:if((s=o.n()).done){e.next=13;break}return c=s.value,null===(l=i.debug)||void 0===l||l.call(i,"Updating Refname alias for assembly: ".concat(a,", refSeqAlias: ").concat(JSON.stringify(c))),u=c.aliases,d=c.refName,e.next=11,n.updateOne({assembly:a,name:d},{$set:{aliases:u}}).session(r);case 11:e.next=5;break;case 13:e.next=18;break;case 15:e.prev=15,e.t0=e.catch(3),o.e(e.t0);case 18:return e.prev=18,o.f(),e.finish(18);case 21:case"end":return e.stop()}}),e,this,[[3,15,18,21]])}))),function(e){return t.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:function(e){throw new Error("Method not implemented.")}},{key:"notification",get:function(){return"RefSeq aliases have been added."}}]),r}(or.AssemblySpecificChange);As.AddRefSeqAliasesChange=Rs;var Ns={};Object.defineProperty(Ns,"__esModule",{value:!0}),Ns.DeleteAssemblyChange=void 0;var Is=R.default,Ts=function(e){ae(i,e);var t,n,r,a=de(i);function i(){var e;ee(this,i);for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return re(ue(e=a.call.apply(a,[this].concat(n))),"typeName","DeleteAssemblyChange"),e}return ne(i,[{key:"notification",get:function(){return'Assembly "'.concat(this.assembly,'" deleted successfully.')}},{key:"toJSON",value:function(){return{typeName:this.typeName,assembly:this.assembly}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.assemblyModel,a=t.featureModel,i=t.refSeqChunkModel,o=t.refSeqModel,s=t.session,l=this.assembly,c=this.logger,e.next=4,r.findById(l).session(s).exec();case 4:if(e.sent){e.next=9;break}throw u='*** ERROR: Assembly with id "'.concat(l,'" not found'),c.error(u),new Error(u);case 9:return e.next=11,o.find({assembly:l}).exec();case 11:return d=e.sent.map((function(e){return e._id})),e.next=15,i.deleteMany({refSeq:d}).exec();case 15:return e.next=17,a.deleteMany({refSeq:d}).exec();case 17:return e.next=19,o.deleteMany({assembly:l}).exec();case 19:return e.next=21,r.findByIdAndDelete(l).exec();case 21:null===(n=c.debug)||void 0===n||n.call(c,'Assembly "'.concat(l,'" deleted from database.'));case 22:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){var n,r,a,i;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=this.assembly,t){e.next=3;break}throw new Error("No data store");case 3:return i=(0,Is.getSession)(t),t.assemblies.has(a)&&t.deleteAssembly(a),e.next=7,null===(n=i.removeAssembly)||void 0===n?void 0:n.call(i,a);case 7:return e.next=9,null===(r=i.removeSessionAssembly)||void 0===r?void 0:r.call(i,a);case 9:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){return new i({typeName:"DeleteAssemblyChange",assembly:this.assembly},{logger:this.logger})}}]),i}(or.AssemblySpecificChange);Ns.DeleteAssemblyChange=Ts;var Os={};Object.defineProperty(Os,"__esModule",{value:!0}),Os.DeleteUserChange=void 0;var Fs=function(e){ae(i,e);var t,n,r,a=de(i);function i(e,t){var n;return ee(this,i),re(ue(n=a.call(this,e,t)),"typeName","DeleteUserChange"),re(ue(n),"changes",void 0),re(ue(n),"userId",void 0),n.changes="changes"in e?e.changes:[e],n.userId=e.userId,n}return ne(i,[{key:"toJSON",value:function(){return{typeName:this.typeName,userId:this.userId}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.session,r=t.userModel,a=this.logger,i=this.userId,e.next=4,r.findOneAndDelete({_id:i}).session(n).exec();case 4:if(e.sent){e.next=9;break}throw o='*** ERROR: User with id "'.concat(i,'" not found'),a.error(o),new Error(o);case 9:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){return new i({typeName:this.typeName,userId:this.userId},{logger:this.logger})}}]),i}(or.Change);Os.DeleteUserChange=Fs;var Ls={};Object.defineProperty(Ls,"__esModule",{value:!0}),Ls.FeatureAttributeChange=void 0,Ls.isFeatureAttributeChange=function(e){return"FeatureAttributeChange"===e.typeName};var Ds=function(e){ae(i,e);var t,n,r,a=de(i);function i(e,t){var n;return ee(this,i),re(ue(n=a.call(this,e,t)),"typeName","FeatureAttributeChange"),re(ue(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return ne(i,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var a=he(n,1)[0];return{typeName:r,changedIds:t,assembly:e,featureId:a.featureId,attributes:a.attributes}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b,w,x;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.featureModel,r=t.session,i=this.logger,o=[],s=we(a=this.changes),e.prev=4,s.s();case 6:if((l=s.n()).done){e.next=26;break}return d=l.value.featureId,e.next=11,n.findOne({allIds:d}).session(r).exec();case 11:if(f=e.sent){e.next=16;break}throw h="*** ERROR: The following featureId was not found in database ='".concat(d,"'"),i.error(h),new Error(h);case 16:if(null===(c=i.debug)||void 0===c||c.call(i,"*** Feature found: ".concat(JSON.stringify(f))),p=this.getFeatureFromId(f,d)){e.next=22;break}throw i.error("ERROR when searching feature by featureId"),new Error("ERROR when searching feature by featureId");case 22:null===(u=i.debug)||void 0===u||u.call(i,"*** Found feature: ".concat(JSON.stringify(p))),o.push({feature:p,topLevelFeature:f});case 24:e.next=6;break;case 26:e.next=31;break;case 28:e.prev=28,e.t0=e.catch(4),s.e(e.t0);case 31:return e.prev=31,s.f(),e.finish(31);case 34:m=we(a.entries()),e.prev=35,m.s();case 37:if((g=m.n()).done){e.next=55;break}return y=he(g.value,2),w=(v=o[y[0]]).topLevelFeature,(b=v.feature).attributes=y[1].attributes,w._id.equals(b._id)?w.markModified("attributes"):w.markModified("children"),e.prev=43,e.next=46,w.save();case 46:e.next=52;break;case 48:throw e.prev=48,e.t1=e.catch(43),null===(x=i.debug)||void 0===x||x.call(i,"*** FAILED: ".concat(e.t1)),e.t1;case 52:null===(_=i.debug)||void 0===_||_.call(i,"*** Feature attributes modified (added, edited or deleted), docId: ".concat(JSON.stringify(w)));case 53:e.next=37;break;case 55:e.next=60;break;case 57:e.prev=57,e.t2=e.catch(35),m.e(e.t2);case 60:return e.prev=60,m.f(),e.finish(60);case 63:case"end":return e.stop()}}),e,this,[[4,28,31,34],[35,57,60,63],[43,48]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("applyToLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){var n,r,a,i,o,s;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No data store");case 2:n=we(this.changedIds.entries()),e.prev=3,n.s();case 5:if((r=n.n()).done){e.next=13;break}if(a=he(r.value,2),i=a[0],s=t.getFeature(o=a[1])){e.next=10;break}throw new Error('Could not find feature with identifier "'.concat(o,'"'));case 10:s.setAttributes(new Map(Object.entries(this.changes[i].attributes)));case 11:e.next=5;break;case 13:e.next=18;break;case 15:e.prev=15,e.t0=e.catch(3),n.e(e.t0);case 18:return e.prev=18,n.f(),e.finish(18);case 21:case"end":return e.stop()}}),e,this,[[3,15,18,21]])}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,t=this.changes,n=this.logger;return new i({changedIds:me(this.changedIds).reverse(),typeName:"FeatureAttributeChange",changes:me(t).reverse().map((function(e){return{featureId:e.featureId,attributes:e.attributes}})),assembly:e},{logger:n})}}]),i}(or.FeatureChange);Ls.FeatureAttributeChange=Ds;var Ms={},Ps=["assemblies","internetAccounts","plugins","tracks"];function qs(e){var t=e.assemblies,n=e.internetAccounts,r=e.plugins,a=e.tracks,i=function(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)t.indexOf(n=i[r])>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t.indexOf(n=i[r])>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,Ps),o=null==t?void 0:t.filter((function(e){return"ApolloSequenceAdapter"!==e.sequence.adapter.type})),s=null==a?void 0:a.filter((function(e){return"ApolloTrack"!==e.type})),l=null==r?void 0:r.filter((function(e){return"Apollo"!==e.name})),c=null==n?void 0:n.filter((function(e){return"ApolloInternetAccount"!==e.type})),u=i;return o&&(u.assemblies=o),s&&(u.tracks=s),l&&(u.plugins=l),c&&(u.internetAccounts=c),u}Object.defineProperty(Ms,"__esModule",{value:!0}),Ms.ImportJBrowseConfigChange=void 0,Ms.filterJBrowseConfig=qs;var js=function(e){ae(i,e);var t,n,r,a=de(i);function i(e,t){var n;return ee(this,i),re(ue(n=a.call(this,e,t)),"typeName","ImportJBrowseConfigChange"),re(ue(n),"oldJBrowseConfig",void 0),re(ue(n),"newJBrowseConfig",void 0),n.oldJBrowseConfig=e.oldJBrowseConfig,n.newJBrowseConfig=e.newJBrowseConfig,n}return ne(i,[{key:"toJSON",value:function(){return{typeName:this.typeName,oldJBrowseConfig:this.oldJBrowseConfig,newJBrowseConfig:this.newJBrowseConfig}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.jbrowseConfigModel,a=this.logger,i=this.newJBrowseConfig,e.next=4,r.deleteMany();case 4:if(i){e.next=6;break}return e.abrupt("return");case 6:return o=qs(i),e.next=9,r.create(o);case 9:null===(n=a.debug)||void 0===n||n.call(a,"Stored new JBrowse Config");case 10:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){return new i({typeName:"ImportJBrowseConfigChange",oldJBrowseConfig:this.newJBrowseConfig,newJBrowseConfig:this.oldJBrowseConfig},{logger:this.logger})}}]),i}(or.Change);Ms.ImportJBrowseConfigChange=js;var Bs={};Object.defineProperty(Bs,"__esModule",{value:!0}),Bs.LocationEndChange=void 0,Bs.isLocationEndChange=function(e){return"LocationEndChange"===e.typeName};var Us=function(e){ae(i,e);var t,n,r,a=de(i);function i(e,t){var n;return ee(this,i),re(ue(n=a.call(this,e,t)),"typeName","LocationEndChange"),re(ue(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return ne(i,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var a=he(n,1)[0];return{typeName:r,changedIds:t,assembly:e,featureId:a.featureId,oldEnd:a.oldEnd,newEnd:a.newEnd}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b,w,x,S,k,E,A,C,R,N;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.featureModel,r=t.session,i=this.logger,o=[],s=we(a=this.changes),e.prev=4,s.s();case 6:if((l=s.n()).done){e.next=49;break}return f=(d=l.value).featureId,h=d.oldEnd,e.next=11,n.findOne({allIds:f}).session(r).exec();case 11:if(p=e.sent){e.next=16;break}throw m="*** ERROR: The following featureId was not found in database ='".concat(f,"'"),i.error(m),new Error(m);case 16:if(null===(c=i.debug)||void 0===c||c.call(i,"*** TOP level feature found: ".concat(JSON.stringify(p))),g=this.getFeatureFromId(p,f)){e.next=22;break}throw i.error("ERROR when searching feature by featureId"),new Error("ERROR when searching feature by featureId");case 22:if(null===(u=i.debug)||void 0===u||u.call(i,"*** Found feature: ".concat(JSON.stringify(g))),g.max!==h){e.next=27;break}o.push({feature:g,topLevelFeature:p}),e.next=47;break;case 27:if(!g.children){e.next=47;break}_=we(g.children),e.prev=29,_.s();case 31:if((y=_.n()).done){e.next=39;break}if(v=he(y.value,2),(b=v[1]).max!==h){e.next=37;break}return null===(w=i.debug)||void 0===w||w.call(i,"*************** UPDATE CHILD FEATURE ID= ".concat(f,", CHILD: ").concat(JSON.stringify(b))),o.push({feature:b,topLevelFeature:p}),e.abrupt("break",39);case 37:e.next=31;break;case 39:e.next=44;break;case 41:e.prev=41,e.t0=e.catch(29),_.e(e.t0);case 44:return e.prev=44,_.f(),e.finish(44);case 47:e.next=6;break;case 49:e.next=54;break;case 51:e.prev=51,e.t1=e.catch(4),s.e(e.t1);case 54:return e.prev=54,s.f(),e.finish(54);case 57:x=we(a.entries()),e.prev=58,x.s();case 60:if((S=x.n()).done){e.next=78;break}return E=he(S.value,2),R=(A=o[E[0]]).topLevelFeature,(C=A.feature).max=E[1].newEnd,R._id.equals(C._id)?R.markModified("end"):R.markModified("children"),e.prev=66,e.next=69,R.save();case 69:e.next=75;break;case 71:throw e.prev=71,e.t2=e.catch(66),null===(N=i.debug)||void 0===N||N.call(i,"*** FAILED: ".concat(e.t2)),e.t2;case 75:null===(k=i.debug)||void 0===k||k.call(i,"*** Object updated in Mongo. New object: ".concat(JSON.stringify(R)));case 76:e.next=60;break;case 78:e.next=83;break;case 80:e.prev=80,e.t3=e.catch(58),x.e(e.t3);case 83:return e.prev=83,x.f(),e.finish(83);case 86:case"end":return e.stop()}}),e,this,[[4,51,54,57],[29,41,44,47],[58,80,83,86],[66,71]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){var n,r,a,i,o,s;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No data store");case 2:n=we(this.changedIds.entries()),e.prev=3,n.s();case 5:if((r=n.n()).done){e.next=13;break}if(a=he(r.value,2),i=a[0],s=t.getFeature(o=a[1])){e.next=10;break}throw new Error('Could not find feature with identifier "'.concat(o,'"'));case 10:s.setMax(this.changes[i].newEnd);case 11:e.next=5;break;case 13:e.next=18;break;case 15:e.prev=15,e.t0=e.catch(3),n.e(e.t0);case 18:return e.prev=18,n.f(),e.finish(18);case 21:case"end":return e.stop()}}),e,this,[[3,15,18,21]])}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,t=this.changes,n=this.logger,r=this.typeName;return new i({changedIds:me(this.changedIds).reverse(),typeName:r,changes:me(t).reverse().map((function(e){return{featureId:e.featureId,oldEnd:e.newEnd,newEnd:e.oldEnd}})),assembly:e},{logger:n})}}]),i}(or.FeatureChange);Bs.LocationEndChange=Us;var zs={};Object.defineProperty(zs,"__esModule",{value:!0}),zs.LocationStartChange=void 0,zs.isLocationStartChange=function(e){return"LocationStartChange"===e.typeName};var Gs=function(e){ae(i,e);var t,n,r,a=de(i);function i(e,t){var n;return ee(this,i),re(ue(n=a.call(this,e,t)),"typeName","LocationStartChange"),re(ue(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return ne(i,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var a=he(n,1)[0];return{typeName:r,changedIds:t,assembly:e,featureId:a.featureId,oldStart:a.oldStart,newStart:a.newStart}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b,w,x,S,k,E,A,C,R,N;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.featureModel,r=t.session,i=this.logger,o=[],s=we(a=this.changes),e.prev=4,s.s();case 6:if((l=s.n()).done){e.next=49;break}return f=(d=l.value).featureId,h=d.oldStart,e.next=11,n.findOne({allIds:f}).session(r).exec();case 11:if(p=e.sent){e.next=16;break}throw m="*** ERROR: The following featureId was not found in database ='".concat(f,"'"),i.error(m),new Error(m);case 16:if(null===(c=i.debug)||void 0===c||c.call(i,"*** TOP level feature found: ".concat(JSON.stringify(p))),g=this.getFeatureFromId(p,f)){e.next=22;break}throw i.error("ERROR when searching feature by featureId"),new Error("ERROR when searching feature by featureId");case 22:if(null===(u=i.debug)||void 0===u||u.call(i,"*** Found feature: ".concat(JSON.stringify(g))),g.min!==h){e.next=27;break}o.push({feature:g,topLevelFeature:p}),e.next=47;break;case 27:if(!g.children){e.next=47;break}_=we(g.children),e.prev=29,_.s();case 31:if((y=_.n()).done){e.next=39;break}if(v=he(y.value,2),(b=v[1]).min!==h){e.next=37;break}return null===(w=i.debug)||void 0===w||w.call(i,"*** UPDATE CHILD FEATURE ID= ".concat(f,", CHILD: ").concat(JSON.stringify(b))),o.push({feature:b,topLevelFeature:p}),e.abrupt("break",39);case 37:e.next=31;break;case 39:e.next=44;break;case 41:e.prev=41,e.t0=e.catch(29),_.e(e.t0);case 44:return e.prev=44,_.f(),e.finish(44);case 47:e.next=6;break;case 49:e.next=54;break;case 51:e.prev=51,e.t1=e.catch(4),s.e(e.t1);case 54:return e.prev=54,s.f(),e.finish(54);case 57:x=we(a.entries()),e.prev=58,x.s();case 60:if((S=x.n()).done){e.next=78;break}return E=he(S.value,2),R=(A=o[E[0]]).topLevelFeature,(C=A.feature).min=E[1].newStart,R._id.equals(C._id)?R.markModified("start"):R.markModified("children"),e.prev=66,e.next=69,R.save();case 69:e.next=75;break;case 71:throw e.prev=71,e.t2=e.catch(66),null===(N=i.debug)||void 0===N||N.call(i,"*** FAILED: ".concat(e.t2)),e.t2;case 75:null===(k=i.debug)||void 0===k||k.call(i,"*** Object updated in Mongo. New object: ".concat(JSON.stringify(R)));case 76:e.next=60;break;case 78:e.next=83;break;case 80:e.prev=80,e.t3=e.catch(58),x.e(e.t3);case 83:return e.prev=83,x.f(),e.finish(83);case 86:case"end":return e.stop()}}),e,this,[[4,51,54,57],[29,41,44,47],[58,80,83,86],[66,71]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){var n,r,a,i,o,s;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No data store");case 2:n=we(this.changedIds.entries()),e.prev=3,n.s();case 5:if((r=n.n()).done){e.next=13;break}if(a=he(r.value,2),i=a[0],s=t.getFeature(o=a[1])){e.next=10;break}throw new Error('Could not find feature with identifier "'.concat(o,'"'));case 10:s.setMin(this.changes[i].newStart);case 11:e.next=5;break;case 13:e.next=18;break;case 15:e.prev=15,e.t0=e.catch(3),n.e(e.t0);case 18:return e.prev=18,n.f(),e.finish(18);case 21:case"end":return e.stop()}}),e,this,[[3,15,18,21]])}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,t=this.changes,n=this.logger,r=this.typeName;return new i({changedIds:me(this.changedIds).reverse(),typeName:r,changes:me(t).reverse().map((function(e){return{featureId:e.featureId,oldStart:e.newStart,newStart:e.oldStart}})),assembly:e},{logger:n})}}]),i}(or.FeatureChange);zs.LocationStartChange=Gs;var Hs={};Object.defineProperty(Hs,"__esModule",{value:!0}),Hs.StrandChange=void 0;var $s=function(e){ae(i,e);var t,n,r,a=de(i);function i(e,t){var n;return ee(this,i),re(ue(n=a.call(this,e,t)),"typeName","StrandChange"),re(ue(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return ne(i,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var a=he(n,1)[0];return{typeName:r,changedIds:t,assembly:e,featureId:a.featureId,oldStrand:a.oldStrand,newStrand:a.newStrand}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b,w,x,S,k,E;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.featureModel,r=t.session,i=this.logger,o=[],s=we(a=this.changes),e.prev=4,s.s();case 6:if((l=s.n()).done){e.next=30;break}return f=(d=l.value).featureId,h=d.oldStrand,e.next=11,n.findOne({allIds:f}).session(r).exec();case 11:if(p=e.sent){e.next=16;break}throw m="*** ERROR: The following featureId was not found in database ='".concat(f,"'"),i.error(m),new Error(m);case 16:if(null===(c=i.debug)||void 0===c||c.call(i,"*** Feature found: ".concat(JSON.stringify(p))),g=this.getFeatureFromId(p,f)){e.next=22;break}throw i.error("ERROR when searching feature by featureId"),new Error("ERROR when searching feature by featureId");case 22:if(null===(u=i.debug)||void 0===u||u.call(i,"*** Found feature: ".concat(JSON.stringify(g))),g.strand===h){e.next=27;break}throw _="*** ERROR: Feature's current strand \"".concat(p.strand,'" doesn\'t match with expected value "').concat(h,'"'),i.error(_),new Error(_);case 27:o.push({feature:g,topLevelFeature:p});case 28:e.next=6;break;case 30:e.next=35;break;case 32:e.prev=32,e.t0=e.catch(4),s.e(e.t0);case 35:return e.prev=35,s.f(),e.finish(35);case 38:y=we(a.entries()),e.prev=39,y.s();case 41:if((v=y.n()).done){e.next=59;break}return w=he(v.value,2),k=(x=o[w[0]]).topLevelFeature,(S=x.feature).strand=w[1].newStrand,k._id.equals(S._id)?k.markModified("strand"):k.markModified("children"),e.prev=47,e.next=50,k.save();case 50:e.next=56;break;case 52:throw e.prev=52,e.t1=e.catch(47),null===(E=i.debug)||void 0===E||E.call(i,"*** FAILED: ".concat(e.t1)),e.t1;case 56:null===(b=i.debug)||void 0===b||b.call(i,"*** Object updated in Mongo. New object: ".concat(JSON.stringify(k)));case 57:e.next=41;break;case 59:e.next=64;break;case 61:e.prev=61,e.t2=e.catch(39),y.e(e.t2);case 64:return e.prev=64,y.f(),e.finish(64);case 67:case"end":return e.stop()}}),e,this,[[4,32,35,38],[39,61,64,67],[47,52]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){var n,r,a,i,o,s;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No data store");case 2:n=we(this.changedIds.entries()),e.prev=3,n.s();case 5:if((r=n.n()).done){e.next=13;break}if(a=he(r.value,2),i=a[0],s=t.getFeature(o=a[1])){e.next=10;break}throw new Error('Could not find feature with identifier "'.concat(o,'"'));case 10:s.setStrand(this.changes[i].newStrand);case 11:e.next=5;break;case 13:e.next=18;break;case 15:e.prev=15,e.t0=e.catch(3),n.e(e.t0);case 18:return e.prev=18,n.f(),e.finish(18);case 21:case"end":return e.stop()}}),e,this,[[3,15,18,21]])}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,t=this.changes,n=this.logger,r=this.typeName;return new i({changedIds:me(this.changedIds).reverse(),typeName:r,changes:me(t).reverse().map((function(e){return{featureId:e.featureId,oldStrand:e.newStrand,newStrand:e.oldStrand}})),assembly:e},{logger:n})}}]),i}(or.FeatureChange);Hs.StrandChange=$s;var Js={};Object.defineProperty(Js,"__esModule",{value:!0}),Js.TypeChange=void 0;var Vs=function(e){ae(i,e);var t,n,r,a=de(i);function i(e,t){var n;return ee(this,i),re(ue(n=a.call(this,e,t)),"typeName","TypeChange"),re(ue(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return ne(i,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var a=he(n,1)[0];return{typeName:r,changedIds:t,assembly:e,featureId:a.featureId,oldType:a.oldType,newType:a.newType}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b,w,x,S,k,E;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.featureModel,r=t.session,i=this.logger,o=[],s=we(a=this.changes),e.prev=4,s.s();case 6:if((l=s.n()).done){e.next=30;break}return f=(d=l.value).featureId,h=d.oldType,e.next=11,n.findOne({allIds:f}).session(r).exec();case 11:if(p=e.sent){e.next=16;break}throw m="*** ERROR: The following featureId was not found in database ='".concat(f,"'"),i.error(m),new Error(m);case 16:if(null===(c=i.debug)||void 0===c||c.call(i,"*** Feature found: ".concat(JSON.stringify(p))),g=this.getFeatureFromId(p,f)){e.next=22;break}throw i.error("ERROR when searching feature by featureId"),new Error("ERROR when searching feature by featureId");case 22:if(null===(u=i.debug)||void 0===u||u.call(i,"*** Found feature: ".concat(JSON.stringify(g))),g.type===h){e.next=27;break}throw _="*** ERROR: Feature's current type \"".concat(p.type,'" doesn\'t match with expected value "').concat(h,'"'),i.error(_),new Error(_);case 27:o.push({feature:g,topLevelFeature:p});case 28:e.next=6;break;case 30:e.next=35;break;case 32:e.prev=32,e.t0=e.catch(4),s.e(e.t0);case 35:return e.prev=35,s.f(),e.finish(35);case 38:y=we(a.entries()),e.prev=39,y.s();case 41:if((v=y.n()).done){e.next=59;break}return w=he(v.value,2),k=(x=o[w[0]]).topLevelFeature,(S=x.feature).type=w[1].newType,k._id.equals(S._id)?k.markModified("type"):k.markModified("children"),e.prev=47,e.next=50,k.save();case 50:e.next=56;break;case 52:throw e.prev=52,e.t1=e.catch(47),null===(E=i.debug)||void 0===E||E.call(i,"*** FAILED: ".concat(e.t1)),e.t1;case 56:null===(b=i.debug)||void 0===b||b.call(i,"*** Object updated in Mongo. New object: ".concat(JSON.stringify(k)));case 57:e.next=41;break;case 59:e.next=64;break;case 61:e.prev=61,e.t2=e.catch(39),y.e(e.t2);case 64:return e.prev=64,y.f(),e.finish(64);case 67:case"end":return e.stop()}}),e,this,[[4,32,35,38],[39,61,64,67],[47,52]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){var n,r,a,i,o,s;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No data store");case 2:n=we(this.changedIds.entries()),e.prev=3,n.s();case 5:if((r=n.n()).done){e.next=13;break}if(a=he(r.value,2),i=a[0],s=t.getFeature(o=a[1])){e.next=10;break}throw new Error('Could not find feature with identifier "'.concat(o,'"'));case 10:s.setType(this.changes[i].newType);case 11:e.next=5;break;case 13:e.next=18;break;case 15:e.prev=15,e.t0=e.catch(3),n.e(e.t0);case 18:return e.prev=18,n.f(),e.finish(18);case 21:case"end":return e.stop()}}),e,this,[[3,15,18,21]])}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,t=this.changes,n=this.logger,r=this.typeName;return new i({changedIds:me(this.changedIds).reverse(),typeName:r,changes:me(t).reverse().map((function(e){return{featureId:e.featureId,oldType:e.newType,newType:e.oldType}})),assembly:e},{logger:n})}}]),i}(or.FeatureChange);Js.TypeChange=Vs;var Ws={};Object.defineProperty(Ws,"__esModule",{value:!0}),Ws.UserChange=void 0;var Ks=function(e){ae(i,e);var t,n,r,a=de(i);function i(e,t){var n;return ee(this,i),re(ue(n=a.call(this,e,t)),"typeName","UserChange"),re(ue(n),"changes",void 0),re(ue(n),"userId",void 0),n.changes="changes"in e?e.changes:[e],n.userId=e.userId,n}return ne(i,[{key:"toJSON",value:function(){var e=this.changes,t=this.typeName,n=this.userId;return 1===e.length?{typeName:t,userId:n,role:he(e,1)[0].role}:{typeName:t,userId:n,changes:e}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d,f;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.session,r=t.userModel,i=this.logger,o=this.userId,s=we(a=this.changes),e.prev=3,s.s();case 5:if((l=s.n()).done){e.next=18;break}return u=l.value,null===(c=i.debug)||void 0===c||c.call(i,"change: ".concat(JSON.stringify(a))),d=u.role,e.next=11,r.findByIdAndUpdate(o,{role:d}).session(n).exec();case 11:if(e.sent){e.next=16;break}throw f='*** ERROR: User with id "'.concat(o,'" not found'),i.error(f),new Error(f);case 16:e.next=5;break;case 18:e.next=23;break;case 20:e.prev=20,e.t0=e.catch(3),s.e(e.t0);case 23:return e.prev=23,s.f(),e.finish(23);case 26:case"end":return e.stop()}}),e,this,[[3,20,23,26]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){return new i({typeName:this.typeName,changes:this.changes,userId:this.userId},{logger:this.logger})}}]),i}(or.Change);Ws.UserChange=Ks,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.changes=void 0;var t=et;e.changes={AddAssemblyAndFeaturesFromFileChange:ar.AddAssemblyAndFeaturesFromFileChange,AddAssemblyFromFileChange:gs.AddAssemblyFromFileChange,AddAssemblyFromExternalChange:Dr.AddAssemblyFromExternalChange,AddFeatureChange:ys.AddFeatureChange,AddFeaturesFromFileChange:ks.AddFeaturesFromFileChange,DeleteAssemblyChange:Ns.DeleteAssemblyChange,DeleteFeatureChange:vs.DeleteFeatureChange,DeleteUserChange:Os.DeleteUserChange,FeatureAttributeChange:Ls.FeatureAttributeChange,ImportJBrowseConfigChange:Ms.ImportJBrowseConfigChange,LocationEndChange:Bs.LocationEndChange,LocationStartChange:zs.LocationStartChange,StrandChange:Hs.StrandChange,TypeChange:Js.TypeChange,UserChange:Ws.UserChange,AddRefSeqAliasesChange:As.AddRefSeqAliasesChange},t.__exportStar(ar,e),t.__exportStar(gs,e),t.__exportStar(Dr,e),t.__exportStar(ys,e),t.__exportStar(ks,e),t.__exportStar(Ns,e),t.__exportStar(vs,e),t.__exportStar(Os,e),t.__exportStar(Ls,e),t.__exportStar(Ms,e),t.__exportStar(Bs,e),t.__exportStar(zs,e),t.__exportStar(Hs,e),t.__exportStar(Js,e),t.__exportStar(Ws,e),t.__exportStar(As,e)}(rr);var Ys={},Zs={};Object.defineProperty(Zs,"__esModule",{value:!0}),Zs.GetAssembliesOperation=void 0;var Xs=function(e){ae(r,e);var t,n=de(r);function r(){var e;ee(this,r);for(var t=arguments.length,a=new Array(t),i=0;i<t;i++)a[i]=arguments[i];return re(ue(e=n.call.apply(n,[this].concat(a))),"typeName","GetAssembliesOperation"),e}return ne(r,[{key:"toJSON",value:function(){return{typeName:this.typeName}}},{key:"executeOnServer",value:function(e){return e.assemblyModel.find({status:0}).exec()}},{key:"executeOnLocalGFF3",value:(t=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})}]),r}(or.Operation);Zs.GetAssembliesOperation=Xs;var Qs={};Object.defineProperty(Qs,"__esModule",{value:!0}),Qs.GetFeaturesOperation=void 0;var el=function(e){ae(r,e);var t,n=de(r);function r(e,t){var a;return ee(this,r),re(ue(a=n.call(this,e,t)),"typeName","GetFeaturesOperation"),re(ue(a),"refSeq",void 0),re(ue(a),"start",void 0),re(ue(a),"end",void 0),a.refSeq=e.refSeq,a.start=e.start,a.end=e.end,a}return ne(r,[{key:"toJSON",value:function(){return{typeName:this.typeName,refSeq:this.refSeq,start:this.start,end:this.end}}},{key:"executeOnServer",value:function(e){return e.featureModel.find({refSeq:this.refSeq,min:{$lte:this.end},max:{$gte:this.start},status:0}).exec()}},{key:"executeOnLocalGFF3",value:(t=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})}]),r}(or.Operation);Qs.GetFeaturesOperation=el,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.operations=void 0;var t=et;e.operations={GetAssembliesOperation:Zs.GetAssembliesOperation,GetFeaturesOperation:Qs.GetFeaturesOperation},t.__exportStar(Zs,e),t.__exportStar(Qs,e)}(Ys);var tl={},nl={};Object.defineProperty(nl,"__esModule",{value:!0}),nl.Validation=void 0,nl.isContext=function(e){return void 0!==e.context&&void 0!==e.reflector};var rl=function(){function e(){ee(this,e)}var t,n,r,a,i;return ne(e,[{key:"frontendPreValidate",value:(i=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"frontendPostValidate",value:(a=Q(Y().mark((function e(t,n){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e,t){return a.apply(this,arguments)})},{key:"backendPreValidate",value:(r=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"backendPostValidate",value:(n=Q(Y().mark((function e(t,n){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"possibleValues",value:(t=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",void 0);case 1:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})}]),e}();nl.Validation=rl;var al={};Object.defineProperty(al,"__esModule",{value:!0}),al.validationRegistry=al.ValidationSet=al.ValidationResultSet=void 0;var il=function(){function e(){ee(this,e),re(this,"results",[]),re(this,"ok",!0)}return ne(e,[{key:"resultsMessages",get:function(){return this.results.map((function(e){var t;return null===(t=e.error)||void 0===t?void 0:t.message})).filter(Boolean).join(", ")}},{key:"add",value:function(e){this.results.push(e),e.error&&(this.ok=!1)}}]),e}();al.ValidationResultSet=il;var ol=function(){function e(){ee(this,e),re(this,"validations",new Set)}var t,n,r,a,i;return ne(e,[{key:"registerValidation",value:function(e){this.validations.add(e)}},{key:"frontendPreValidate",value:(i=Q(Y().mark((function e(t){var n,r,a,i,o;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=new il,r=we(this.validations),e.prev=2,r.s();case 4:if((a=r.n()).done){e.next=14;break}return i=a.value,e.next=8,i.frontendPreValidate(t);case 8:if(n.add(o=e.sent),!o.error){e.next=12;break}return e.abrupt("break",14);case 12:e.next=4;break;case 14:e.next=19;break;case 16:e.prev=16,e.t0=e.catch(2),r.e(e.t0);case 19:return e.prev=19,r.f(),e.finish(19);case 22:return e.abrupt("return",n);case 23:case"end":return e.stop()}}),e,this,[[2,16,19,22]])}))),function(e){return i.apply(this,arguments)})},{key:"frontendPostValidate",value:(a=Q(Y().mark((function e(t,n){var r,a,i,o,s;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=new il,a=we(this.validations),e.prev=2,a.s();case 4:if((i=a.n()).done){e.next=14;break}return o=i.value,e.next=8,o.frontendPostValidate(t,n);case 8:if(r.add(s=e.sent),!s.error){e.next=12;break}return e.abrupt("break",14);case 12:e.next=4;break;case 14:e.next=19;break;case 16:e.prev=16,e.t0=e.catch(2),a.e(e.t0);case 19:return e.prev=19,a.f(),e.finish(19);case 22:return e.abrupt("return",r);case 23:case"end":return e.stop()}}),e,this,[[2,16,19,22]])}))),function(e,t){return a.apply(this,arguments)})},{key:"backendPreValidate",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=new il,r=we(this.validations),e.prev=2,r.s();case 4:if((a=r.n()).done){e.next=14;break}return i=a.value,e.next=8,i.backendPreValidate(t);case 8:if(n.add(o=e.sent),!o.error){e.next=12;break}return e.abrupt("break",14);case 12:e.next=4;break;case 14:e.next=19;break;case 16:e.prev=16,e.t0=e.catch(2),r.e(e.t0);case 19:return e.prev=19,r.f(),e.finish(19);case 22:return e.abrupt("return",n);case 23:case"end":return e.stop()}}),e,this,[[2,16,19,22]])}))),function(e){return r.apply(this,arguments)})},{key:"backendPostValidate",value:(n=Q(Y().mark((function e(t,n){var r,a,i,o,s,l,c;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=n.featureModel,a=n.session,i=new il,o=we(this.validations),e.prev=3,o.s();case 5:if((s=o.n()).done){e.next=15;break}return l=s.value,e.next=9,l.backendPostValidate(t,{featureModel:r,session:a});case 9:if(i.add(c=e.sent),!c.error){e.next=13;break}return e.abrupt("break",15);case 13:e.next=5;break;case 15:e.next=20;break;case 17:e.prev=17,e.t0=e.catch(3),o.e(e.t0);case 20:return e.prev=20,o.f(),e.finish(20);case 23:return e.abrupt("return",i);case 24:case"end":return e.stop()}}),e,this,[[3,17,20,23]])}))),function(e,t){return n.apply(this,arguments)})},{key:"possibleValues",value:(t=Q(Y().mark((function e(t){var n,r,a,i;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=we(this.validations),e.prev=1,n.s();case 3:if((r=n.n()).done){e.next=12;break}return a=r.value,e.next=7,a.possibleValues(t);case 7:if(!(i=e.sent)){e.next=10;break}return e.abrupt("return",i);case 10:e.next=3;break;case 12:e.next=17;break;case 14:e.prev=14,e.t0=e.catch(1),n.e(e.t0);case 17:return e.prev=17,n.f(),e.finish(17);case 20:return e.abrupt("return");case 21:case"end":return e.stop()}}),e,this,[[1,14,17,20]])}))),function(e){return t.apply(this,arguments)})}]),e}();al.ValidationSet=ol,al.validationRegistry=new ol;var sl={},ll={};Object.defineProperty(ll,"__esModule",{value:!0}),ll.default=["2A_self_cleaving_peptide_region","4_methylcytosine","5S_SINE_retrotransposon","5_carboxylcytosine","5_formylcytosine","5_hydroxymethylcytosine","5_methylcytosine","7SL_SINE_retrotransposon","8_oxoadenine","8_oxoguanine","AACCCT_box","AFLP_fragment","AP_1_binding_site","ARIA","ARRET","ARS","ARS_consensus_sequence","ASPE_primer","AUG_initiated_uORF","AU_rich_element","A_box","A_box_type_1","A_box_type_2","A_minor_RNA_motif","A_to_C_transversion","A_to_G_transition","A_to_T_transversion","Ace2_UAS","Alu_deletion","Alu_insertion","BAC","BAC_cloned_genomic_insert","BAC_end","BAC_read_contig","BREd_motif","BREu_motif","B_box","Bel_Pao_LTR_retrotransposon","Bruno_response_element","C-D_H_ACA_box_scaRNA","C-D_H_ACA_box_scaRNA_gene","CAAT_signal","CAAX_box","CACTA_TIR_transposon","CAGE_cluster","CAGE_tag","CArG_box","CCAAT_motif","CCA_tail","CDRE_motif","CDS","CDS_extension","CDS_five_prime_extension","CDS_fragment","CDS_independently_known","CDS_predicted","CDS_region","CDS_supported_by_EST_or_cDNA_data","CDS_supported_by_domain_match_data","CDS_supported_by_peptide_spectrum_match","CDS_supported_by_sequence_similarity_data","CDS_three_prime_extension","CRE","CRISPR","CSL_response_element","CTCF_binding_site","CTG_start_codon","C_D_box_scaRNA","C_D_box_scaRNA_gene","C_D_box_snoRNA","C_D_box_snoRNA_gene","C_D_box_snoRNA_primary_transcript","C_box","C_cluster","C_gene_segment","C_region","C_to_A_transversion","C_to_G_transversion","C_to_T_transition","C_to_T_transition_at_pCpG_site","ChIP_seq_region","Copia_LTR_retrotransposon","CpG_island","Crick_strand","Crypton_YR_transposon","CsrB_RsmB_RNA","CuRE","DArT_marker","DCE","DCE_SI","DCE_SII","DCE_SIII","DDB_box","DHU_loop","DIRS_YR_retrotransposon","DJ_C_cluster","DJ_J_C_cluster","DJ_J_cluster","DJ_gene_segment","DMv1_motif","DMv2_motif","DMv3_motif","DMv4_motif","DMv5_motif","DNA_aptamer","DNA_binding_site","DNA_chromosome","DNA_constraint_sequence","DNA_loop","DNA_loop_anchor","DNA_motif","DNA_sequence_secondary_structure","DNA_transposon","DNAzyme","DNaseI_hypersensitive_site","DPE1_motif","DPE_motif","DRE","DRE_motif","DSR_motif","D_DJ_C_cluster","D_DJ_J_C_cluster","D_DJ_J_cluster","D_DJ_cluster","D_J_C_cluster","D_J_cluster","D_cluster","D_gene_recombination_feature","D_gene_segment","D_loop","DsrA_RNA","ER_retention_signal","EST","EST_match","E_box_motif","Endogenous_Retrovirus_LTR_retrotransposon","FLEX_element","FRE","FRT_site","GAGA_motif","GATA_box","GC_rich_promoter_region","GNA_oligo","GTT_trinucleotide_repeat","GT_dinucleotide_repeat","G_box","G_quartet","G_to_A_transition","G_to_C_transversion","G_to_T_transversion","GcvB_RNA","Gypsy_LTR_retrotransposon","H2AK5_acetylation_site","H2AK9_acetylation_site","H2AZK11_acetylation_site","H2AZK13_acetylation_site","H2AZK15_acetylation_site","H2AZK4_acetylation_site","H2AZK7_acetylation_site","H2BK120_acetylation_site","H2BK12_acetylation_site","H2BK15_acetylation_site","H2BK20_acetylation_site","H2BK5_acetylation_site","H2BK5_monomethylation_site","H2B_ubiquitination_site","H3K14_acetylation_site","H3K18_acetylation_site","H3K20_trimethylation_site","H3K23_acetylation_site","H3K23_dimethylation_site","H3K27_acetylation_site","H3K27_dimethylation_site","H3K27_methylation_site","H3K27_monomethylation_site","H3K27_trimethylation_site","H3K36_acetylation_site","H3K36_dimethylation_site","H3K36_methylation_site","H3K36_monomethylation_site","H3K36_trimethylation_site","H3K4_acetylation_site","H3K4_dimethylation_site","H3K4_methylation_site","H3K4_monomethylation_site","H3K4_trimethylation","H3K56_acetylation_site","H3K79_dimethylation_site","H3K79_methylation_site","H3K79_monomethylation_site","H3K79_trimethylation_site","H3K9_acetylation_site","H3K9_dimethylation_site","H3K9_methylation_site","H3K9_monomethylation_site","H3K9_trimethylation_site","H3R2_dimethylation_site","H3R2_monomethylation_site","H4K12_acetylation_site","H4K16_acetylation_site","H4K20_monomethylation_site","H4K4_trimethylation_site","H4K5_acetylation_site","H4K8_acetylation_site","H4K91_acetylation_site","H4K_acylation_region","H4R3_dimethylation_site","HERV_deletion","HERV_insertion","HSE","H_ACA_box_scaRNA","H_ACA_box_scaRNA_gene","H_ACA_box_snoRNA","H_ACA_box_snoRNA_gene","H_ACA_box_snoRNA_primary_transcript","H_pseudoknot","Hoogsteen_base_pair","I-box","IG_C_gene","IG_C_pseudogene","IG_D_gene","IG_J_gene","IG_J_pseudogene","IG_V_gene","IG_V_pseudogene","INR1_motif","INR_motif","IRLinv_site","IRRinv_site","ISRE","I_LINE_retrotransposon","J_C_cluster","J_cluster","J_gene_recombination_feature","J_gene_segment","J_heptamer","J_nonamer","J_spacer","Jockey_LINE_retrotransposon","KEN_box","K_turn_RNA_motif","L1_LINE_retrotransposon","LARD","LINE1_deletion","LINE1_insertion","LINE_element","LNA_oligo","LOZ1_response_element","LTR_component","LTR_retrotransposon","L_box","MCB","MITE","MNP","MNV","MNV_artifact","MTE","Mat2P","Mat3M","Merlin_TIR_transposon","MicF_RNA","Mutator_TIR_transposon","N2_2_prime_O_dimethylguanosine","N2_7_2prirme_O_trimethylguanosine","N2_7_dimethylguanosine","N2_N2_2_prime_O_trimethylguanosine","N2_N2_7_trimethylguanosine","N2_N2_dimethylguanosine","N2_methylguanosine","N4_2_prime_O_dimethylcytidine","N4_N4_2_prime_O_trimethylcytidine","N4_acetyl_2_prime_O_methylcytidine","N4_acetylcytidine","N4_methylcytidine","N6_2_prime_O_dimethyladenosine","N6_N6_2_prime_O_trimethyladenosine","N6_N6_dimethyladenosine","N6_acetyladenosine","N6_cis_hydroxyisopentenyl_adenosine","N6_glycinylcarbamoyladenosine","N6_hydroxynorvalylcarbamoyladenosine","N6_isopentenyladenosine","N6_methyl_N6_threonylcarbamoyladenosine","N6_methyladenine","N6_methyladenosine","N6_threonylcarbamoyladenosine","NDM2_motif","NDM3_motif","NMD_polymorphic_pseudogene_transcript","NMD_transcript","NSD_transcript","N_region","Ngaro_YR_retrotransposon","ORF","Okazaki_fragment","OxyS_RNA","PAC","PAC_end","PCB","PCR_product","PIF_Harbinger_TIR_transposon","PIP_box","PNA_oligo","PSE_motif","P_TIR_transposon","Penelope_retrotransposon","Phage_RNA_Polymerase_Promoter","Pho7_binding_site","QTL","R2_LINE_retrotransposon","RAPD","RFLP_fragment","RH_map","RNA_6S","RNA_7SK","RNA_7SK_gene","RNA_aptamer","RNA_chromosome","RNA_hook_turn","RNA_internal_loop","RNA_junction_loop","RNA_motif","RNA_polymerase_III_TATA_box","RNA_polymerase_II_TATA_box","RNA_sequence_secondary_structure","RNA_stability_element","RNA_thermometer","RNAi_reagent","RNApol_III_promoter","RNApol_III_promoter_type_1","RNApol_III_promoter_type_2","RNApol_III_promoter_type_3","RNApol_II_core_promoter","RNApol_II_promoter","RNApol_I_promoter","RNase_MRP_RNA","RNase_MRP_RNA_gene","RNase_P_RNA","RNase_P_RNA_gene","RRE_RNA","RR_tract","RST","RST_match","RTE_LINE_retrotransposon","R_GNA_oligo","R_LTR_region","R_five_prime_LTR_region","R_three_prime_LTR_region","Retrovirus_LTR_retrotransposon","Robertsonian_fusion","RprA_RNA","SAGE_tag","SECIS_element","SHP_box","SINE_element","SL10_acceptor_site","SL11_acceptor_site","SL12_acceptor_site","SL1_acceptor_site","SL2_acceptor_site","SL3_acceptor_site","SL4_acceptor_site","SL5_acceptor_site","SL6_acceptor_site","SL7_acceptor_site","SL8_acceptor_site","SL9_acceptor_site","SNP","SNV","SNV_artifact","SP6_RNA_Polymerase_Promoter","SRP_RNA","SRP_RNA_gene","SRP_RNA_primary_transcript","STREP_motif","STS","STS_map","SUMO_interaction_motif","SVA_deletion","SVA_insertion","S_GNA_oligo","S_region","Sap1_recognition_motif","Shine_Dalgarno_sequence","T3_RNA_Polymerase_Promoter","T7_RNA_Polymerase_Promoter","TATA_box","TCS_element","TCT_motif","TERRA","TFRS_collection","TFRS_module","TF_binding_site","TNA_oligo","TRIM","TR_C_Gene","TR_D_Gene","TR_J_Gene","TR_J_pseudogene","TR_V_Gene","TR_V_pseudogene","TR_box","TSS","T_cell_receptor_gene","T_cell_receptor_pseudogene","T_loop","T_to_A_transversion","T_to_C_transition","T_to_G_transversion","Tc1_Mariner_TIR_transposon","Transib_TIR_transposon","U11_snRNA","U12_intron","U12_snRNA","U14_snoRNA","U14_snoRNA_gene","U14_snoRNA_primary_transcript","U1_snRNA","U2_intron","U2_snRNA","U3_LTR_region","U3_five_prime_LTR_region","U3_snoRNA","U3_snoRNA_gene","U3_three_prime_LTR_region","U4_snRNA","U4atac_snRNA","U5_LTR_region","U5_five_prime_LTR_region","U5_snRNA","U5_three_prime_LTR_region","U6_snRNA","U6atac_snRNA","U7_snRNA","UAA_stop_codon_signal","UAG_stop_codon_signal","UGA_stop_codon_signal","UNAAAC_motif","UPD","UST","UST_match","UTR","UTR_intron","UTR_region","U_box","VDJ_C_cluster","VDJ_J_C_cluster","VDJ_J_cluster","VDJ_gene_segment","VD_gene_segment","VJ_C_cluster","VJ_J_C_cluster","VJ_J_cluster","VJ_gene_segment","V_DJ_C_cluster","V_DJ_J_C_cluster","V_DJ_J_cluster","V_DJ_cluster","V_D_DJ_C_cluster","V_D_DJ_J_C_cluster","V_D_DJ_J_cluster","V_D_DJ_cluster","V_D_J_C_cluster","V_D_J_cluster","V_J_C_cluster","V_J_cluster","V_VDJ_C_cluster","V_VDJ_J_C_cluster","V_VDJ_J_cluster","V_VDJ_cluster","V_VJ_C_cluster","V_VJ_J_C_cluster","V_VJ_J_cluster","V_VJ_cluster","V_cluster","V_gene_recombination_feature","V_gene_segment","V_heptamer","V_nonamer","V_region","V_spacer","Viper_YR_retrotransposon","WC_base_pair","W_region","Watson_strand","X_element","X_element_combinatorial_repeat","X_region","YAC","YAC_end","YR_retrotransposon","Y_RNA","Y_RNA_gene","Y_RNA_primary_transcript","Y_prime_element","Y_region","Z1_region","Z2_region","Zas1_recognition_motif","aberrant_processed_transcript","accessible_DNA_region","active_peptide","adaptive_island","alanine","alanine_tRNA_primary_transcript","alanyl_tRNA","allelic_pseudogene","allelic_pseudogenic_rRNA","allelic_pseudogenic_tRNA","allelically_excluded_gene","alpha_beta_motif","alpha_helix","alternate_sequence_site","alternatively_spliced_transcript","amber_stop_codon","ambisense_ssRNA_viral_sequence","amino_acid","amplification_origin","anchor_binding_site","anchor_region","androgen_response_element","anti_ARRET","anticodon","anticodon_loop","antiparallel_beta_strand","antisense_RNA","antisense_lncRNA","antisense_lncRNA_gene","antisense_primary_transcript","apicoplast_chromosome","apicoplast_gene","aptamer","archaeal_intron","archaeosine","arginine","arginine_tRNA_primary_transcript","arginyl_tRNA","asparagine","asparagine_tRNA_primary_transcript","asparaginyl_tRNA","aspartic_acid","aspartic_acid_tRNA_primary_transcript","aspartyl_tRNA","assembly","assembly_component","assembly_error_correction","asx_motif","asx_turn","asx_turn_left_handed_type_one","asx_turn_left_handed_type_two","asx_turn_right_handed_type_one","asx_turn_right_handed_type_two","asymmetric_RNA_internal_loop","attB_site","attC_site","attCtn_site","attI_site","attL_site","attP_site","attR_site","attenuator","autocatalytically_spliced_intron","bacterial_RNApol_promoter","bacterial_RNApol_promoter_sigma54_element","bacterial_RNApol_promoter_sigma_70_element","bacterial_RNApol_promoter_sigma_ecf_element","bacterial_terminator","base","base_call_error_correction","base_pair","beta_bulge","beta_bulge_loop","beta_bulge_loop_five","beta_bulge_loop_six","beta_strand","beta_turn","beta_turn_left_handed_type_one","beta_turn_left_handed_type_two","beta_turn_right_handed_type_one","beta_turn_right_handed_type_two","beta_turn_type_eight","beta_turn_type_six","beta_turn_type_six_a","beta_turn_type_six_a_one","beta_turn_type_six_a_two","beta_turn_type_six_b","bidirectional_promoter","bidirectional_promoter_lncRNA","binding_site","biochemical_region_of_peptide","biological_region","biomaterial_region","biosynthetic_gene_cluster","blocked_reading_frame","blunt_end_restriction_enzyme_cleavage_junction","blunt_end_restriction_enzyme_cleavage_site","boundary_element","branch_site","cDNA_clone","cDNA_match","c_terminal_region","candidate_gene","canonical_five_prime_splice_site","canonical_three_prime_splice_site","cap","capped_mRNA","capped_primary_transcript","cassette_pseudogene","catalytic_residue","catmat_left_handed_four","catmat_left_handed_three","catmat_right_handed_four","catmat_right_handed_three","central_hydrophobic_region_of_signal_peptide","centromere","centromere_DNA_Element_I","centromere_DNA_Element_II","centromere_DNA_Element_III","centromeric_repeat","chimeric_cDNA_clone","chloroplast_DNA_read","chloroplast_chromosome","chromatin_regulatory_region","chromoplast_chromosome","chromoplast_gene","chromosomal_regulatory_element","chromosomal_structural_element","chromosomal_translocation","chromosome","chromosome_arm","chromosome_band","chromosome_breakage_sequence","chromosome_breakpoint","chromosome_part","circular_double_stranded_DNA_chromosome","circular_double_stranded_RNA_chromosome","circular_mRNA","circular_ncRNA","circular_plasmid","circular_single_stranded_DNA_chromosome","circular_single_stranded_RNA_chromosome","cis_acting_homologous_chromosome_pairing_region","cis_regulatory_frameshift_element","cis_regulatory_module","cis_splice_site","class_II_RNA","class_I_RNA","cleaved_for_gpi_anchor_region","cleaved_initiator_methionine","cleaved_peptide_region","clip","clone","clone_end","clone_insert","clone_insert_end","clone_insert_start","cloned_cDNA_insert","cloned_genomic_insert","cloned_region","coding_conserved_region","coding_end","coding_exon","coding_region_of_exon","coding_start","coding_transcript_with_retained_intron","codon","coiled_coil","cointegrated_plasmid","common_fragile_site","complex_chromosomal_rearrangement","complex_operon","complex_regulon","complex_structural_alteration","complex_substitution","compositionally_biased_region_of_peptide","conformational_switch","conjugative_transposon","consensus_AFLP_fragment","consensus_gDNA","consensus_mRNA","consensus_region","conserved_region","constitutive_promoter","contig","contig_collection","contig_read","copy_number_gain","copy_number_loss","copy_number_variation","core_eukaryotic_promoter_element","core_prokaryotic_promoter_element","core_promoter_element","core_viral_promoter_element","cosmid","cross_genome_match","cryptic_gene","cryptic_promoter","cryptic_prophage","cryptic_splice_site","cryptogene","ct_gene","cyanelle_chromosome","cyanelle_gene","cyclic_translocation","cysteine","cysteine_tRNA_primary_transcript","cysteinyl_tRNA","cytoplasmic_polypeptide_region","cytosolic_16S_rRNA","cytosolic_18S_rRNA","cytosolic_23S_rRNA","cytosolic_25S_rRNA","cytosolic_28S_rRNA","cytosolic_2S_rRNA","cytosolic_5S_rRNA","cytosolic_5_8S_rRNA","cytosolic_LSU_rRNA","cytosolic_LSU_rRNA_gene","cytosolic_SSU_rRNA","cytosolic_SSU_rRNA_gene","cytosolic_rRNA","cytosolic_rRNA_16S_gene","cytosolic_rRNA_18S_gene","cytosolic_rRNA_23S_gene","cytosolic_rRNA_25S_gene","cytosolic_rRNA_28S_gene","cytosolic_rRNA_2S_gene","cytosolic_rRNA_5S_gene","cytosolic_rRNA_5_8S_gene","cytosolic_rRNA_gene","dCAPS_primer","databank_entry","decayed_exon","defective_conjugative_transposon","deficient_translocation","deletion","deletion_artifact","deletion_breakpoint","deletion_junction","delins","destruction_box","dg_repeat","dh_repeat","dicistronic_mRNA","dicistronic_primary_transcript","dicistronic_transcript","dif_site","dihydrouridine","dinucleotide_repeat_microsatellite_feature","direct_repeat","direct_tandem_duplication","disabled_reading_frame","dispersed_repeat","distal_duplication","distal_promoter_element","distant_three_prime_recoding_signal","double_stranded_DNA_chromosome","double_stranded_RNA_chromosome","ds_DNA_viral_sequence","ds_RNA_viral_sequence","ds_oligo","duplicated_pseudogene","duplication","duplication_artifact","dye_terminator_read","early_origin_of_replication","edited_CDS","edited_mRNA","edited_transcript","edited_transcript_by_A_to_I_substitution","edited_transcript_feature","editing_block","editing_domain","endogenous_retroviral_gene","endonuclease_spliced_intron","endosomal_localization_signal","engineered_episome","engineered_foreign_gene","engineered_foreign_region","engineered_foreign_repetitive_element","engineered_foreign_transposable_element","engineered_foreign_transposable_element_gene","engineered_fusion_gene","engineered_gene","engineered_insert","engineered_plasmid","engineered_region","engineered_rescue_region","engineered_tag","engineered_transposable_element","enhancer","enhancerRNA","enhancer_binding_site","enhancer_blocking_element","enhancer_bound_by_factor","enhancer_trap_construct","enzymatic_RNA","enzymatic_RNA_gene","epigenetically_modified_gene","epigenetically_modified_region","epigenomically_modified_region","episome","epitope","epoxyqueuosine","eukaryotic_promoter","eukaryotic_terminator","exemplar_mRNA","exon","exon_junction","exon_of_single_exon_gene","exon_region","exonic_splice_enhancer","exonic_splicing_silencer","experimental_feature","experimental_result_region","experimentally_defined_binding_region","expressed_sequence_assembly","expressed_sequence_match","extended_cis_splice_site","extended_intronic_splice_region","external_transcribed_spacer_region","extrachromosomal_mobile_genetic_element","extramembrane_polypeptide_region","fingerprint_map","five_aminomethyl_two_thiouridine","five_carbamoylmethyl_two_prime_O_methyluridine","five_carbamoylmethyluridine","five_carboxyhydroxymethyl_uridine","five_carboxyhydroxymethyl_uridine_methyl_ester","five_carboxymethylaminomethyl_two_prime_O_methyluridine","five_carboxymethylaminomethyl_two_thiouridine","five_carboxymethylaminomethyluridine","five_carboxymethyluridine","five_formyl_two_prime_O_methylcytidine","five_formylcytidine","five_hydroxymethylcytidine","five_hydroxyuridine","five_isopentenylaminomethyl_two_prime_O_methyluridine","five_isopentenylaminomethyl_two_thiouridine","five_isopentenylaminomethyl_uridine","five_methoxycarbonylmethyl_two_prime_O_methyluridine","five_methoxycarbonylmethyl_two_thiouridine","five_methoxycarbonylmethyluridine","five_methoxyuridine","five_methyl_2_thiouridine","five_methylaminomethyl_two_selenouridine","five_methylaminomethyl_two_thiouridine","five_methylaminomethyluridine","five_methylcytidine","five_methyldihydrouridine","five_methyluridine","five_prime_D_heptamer","five_prime_D_nonamer","five_prime_D_recombination_signal_sequence","five_prime_D_spacer","five_prime_EST","five_prime_LTR","five_prime_LTR_component","five_prime_RST","five_prime_UST","five_prime_UTR","five_prime_UTR_intron","five_prime_cis_splice_site","five_prime_clip","five_prime_coding_exon","five_prime_coding_exon_coding_region","five_prime_coding_exon_noncoding_region","five_prime_flanking_region","five_prime_intron","five_prime_noncoding_exon","five_prime_open_reading_frame","five_prime_recoding_site","five_prime_restriction_enzyme_junction","five_prime_sticky_end_restriction_enzyme_cleavage_site","five_prime_terminal_inverted_repeat","five_taurinomethyl_two_thiouridine","five_taurinomethyluridine","five_two_prime_O_dimethylcytidine","five_two_prime_O_dimethyluridine","flanking_region","flanking_repeat","flanking_three_prime_quadruplet_recoding_signal","floxed_gene","foldback_element","foreign_gene","foreign_transposable_element","forkhead_motif","forward_primer","fosmid","four_bp_start_codon","four_demethylwyosine","four_thiouridine","fragile_site","fragment_assembly","functional_candidate_gene","functional_gene_region","fusion_gene","gRNA_gene","galactosyl_queuosine","gamma_turn","gamma_turn_classic","gamma_turn_inverse","gap","gene","gene_array","gene_cassette","gene_cassette_array","gene_component_region","gene_fragment","gene_group","gene_member_region","gene_rearranged_at_DNA_level","gene_segment","gene_silenced_by_DNA_methylation","gene_silenced_by_DNA_modification","gene_silenced_by_RNA_interference","gene_silenced_by_histone_deacetylation","gene_silenced_by_histone_methylation","gene_silenced_by_histone_modification","gene_subarray","gene_trap_construct","gene_with_dicistronic_mRNA","gene_with_dicistronic_primary_transcript","gene_with_dicistronic_transcript","gene_with_edited_transcript","gene_with_mRNA_recoded_by_translational_bypass","gene_with_mRNA_with_frameshift","gene_with_non_canonical_start_codon","gene_with_polyadenylated_mRNA","gene_with_polycistronic_transcript","gene_with_recoded_mRNA","gene_with_start_codon_CUG","gene_with_stop_codon_read_through","gene_with_stop_codon_redefined_as_pyrrolysine","gene_with_stop_codon_redefined_as_selenocysteine","gene_with_trans_spliced_transcript","gene_with_transcript_with_translational_frameshift","genetic_marker","genomic_DNA_contig","genomic_DNA_read","genomic_clone","genomic_island","genomically_contaminated_cDNA_clone","glutamic_acid","glutamic_acid_tRNA_primary_transcript","glutamine","glutamine_tRNA_primary_transcript","glutaminyl_tRNA","glutamyl_tRNA","glycine","glycine_tRNA_primary_transcript","glycyl_tRNA","golden_path","golden_path_fragment","group_1_intron_homing_endonuclease_target_region","group_IIA_intron","group_IIB_intron","group_IIC_intron","group_III_intron","group_II_intron","group_I_intron","guide_RNA","guide_RNA_region","hAT_TIR_transposon","hammerhead_ribozyme","haplotype_block","helitron","helix_turn_helix","heptamer_of_recombination_feature_of_vertebrate_immune_system_gene","heritable_phenotypic_marker","high_identity_region","histidine","histidine_tRNA_primary_transcript","histidyl_tRNA","histone_2AZ_acetylation_site","histone_2A_acetylation_site","histone_2B_acetylation_site","histone_3_acetylation_site","histone_4_acetylation_site","histone_acetylation_site","histone_acylation_region","histone_binding_site","histone_methylation_site","histone_modification","histone_ubiqitination_site","homing_endonuclease_binding_site","homol_D_box","homol_E_box","homologous_chromosome_recognition_and_pairing_locus","homologous_region","hpRNA","hpRNA_gene","hydrophobic_region_of_peptide","hydroxywybutosine","iDNA","i_motif","immature_peptide_region","immunoglobulin_gene","immunoglobulin_pseudogene","immunoglobulin_region","imprinting_control_region","indel_artifact","inducible_promoter","inert_DNA_spacer","inosine","insertion","insertion_artifact","insertion_breakpoint","insertion_sequence","insertion_site","insulator","insulator_binding_site","integrated_mobile_genetic_element","integrated_plasmid","integration_excision_site","integron","intein","intein_encoding_region","interband","interchromosomal_breakpoint","interchromosomal_translocation","intergenic_region","interior_coding_exon","interior_exon","interior_intron","intermediate_element","internal_Shine_Dalgarno_sequence","internal_UTR","internal_eliminated_sequence","internal_guide_sequence","internal_ribosome_entry_site","internal_transcribed_spacer_region","intrachromosomal_breakpoint","intrachromosomal_translocation","intramembrane_polypeptide_region","intrinsically_unstructured_polypeptide_region","introgressed_chromosome_region","intron","intron_base_5","intron_domain","intronic_regulatory_region","intronic_splice_enhancer","intronic_splicing_silencer","invalidated_cDNA_clone","inversion","inversion_breakpoint","inversion_cum_translocation","inversion_site","inversion_site_part","inverted_intrachromosomal_transposition","inverted_repeat","inverted_tandem_duplication","iron_repressed_GATA_element","iron_responsive_element","isoleucine","isoleucine_tRNA_primary_transcript","isoleucyl_tRNA","isomiR","isowyosine","junction","kinetoplast_gene","knob","kozak_sequence","lambda_vector","lariat_intron","late_origin_of_replication","left_handed_peptide_helix","leucine","leucine_tRNA_primary_transcript","leucoplast_chromosome","leucoplast_gene","leucyl_tRNA","ligand_binding_site","ligation_based_read","lincRNA","lincRNA_gene","linear_double_stranded_DNA_chromosome","linear_double_stranded_RNA_chromosome","linear_plasmid","linear_single_stranded_DNA_chromosome","linear_single_stranded_RNA_chromosome","linkage_group","lipoprotein_signal_peptide","lncRNA","lncRNA_gene","lncRNA_primary_transcript","lncRNA_with_retained_intron","loR","locus_control_region","long_terminal_repeat","long_terminal_repeat_transcript","loop","low_complexity_region","loxP_site","lysidine","lysine","lysine_tRNA_primary_transcript","lysosomal_localization_signal","lysyl_tRNA","mRNA","mRNA_contig","mRNA_read","mRNA_recoded_by_codon_redefinition","mRNA_recoded_by_translational_bypass","mRNA_region","mRNA_with_frameshift","mRNA_with_minus_1_frameshift","mRNA_with_minus_2_frameshift","mRNA_with_plus_1_frameshift","mRNA_with_plus_2_frameshift","macronuclear_chromosome","macronucleus_destined_segment","major_TSS","mannosyl_queuosine","match","match_part","maternal_uniparental_disomy","maternally_imprinted_gene","mathematically_defined_repeat","mating_type_M_box","mating_type_region","mating_type_region_motif","mating_type_region_replication_fork_barrier","matrix_attachment_site","mature_protein_region","mature_protein_region_of_CDS","mature_transcript","mature_transcript_region","maxicircle","maxicircle_gene","meiotic_recombination_region","membrane_peptide_loop","membrane_structure","metabolic_island","metal_binding_site","methionine","methionine_tRNA_primary_transcript","methionyl_tRNA","methylated_DNA_base_feature","methylated_adenine","methylated_cytosine","methylation_guide_snoRNA","methylation_guide_snoRNA_gene","methylation_guide_snoRNA_primary_transcript","methylinosine","methylwyosine","miRNA","miRNA_antiguide","miRNA_gene","miRNA_loop","miRNA_primary_transcript","miRNA_primary_transcript_region","miRNA_stem","miRNA_target_site","miR_encoding_Y_RNA_primary_transcript","miR_encoding_lncRNA_primary_transcript","miR_encoding_shRNA_primary_transcript","miR_encoding_snoRNA_primary_transcript","miR_encoding_tRNA_primary_transcript","miR_encoding_vaultRNA_primary_transcript","miRtron","microarray_oligo","micronuclear_chromosome","microsatellite","mini_exon_donor_RNA","mini_gene","minicircle","minicircle_gene","minisatellite","minor_TSS","minus_10_signal","minus_12_signal","minus_1_translational_frameshift","minus_24_signal","minus_2_translational_frameshift","minus_35_signal","mitochondrial_DNA_read","mitochondrial_D_loop","mitochondrial_chromosome","mitochondrial_contig","mitochondrial_control_region","mitochondrial_supercontig","mitochondrial_targeting_signal","mitotic_recombination_region","moR","mobile_element_deletion","mobile_element_insertion","mobile_genetic_element","mobile_intron","modified_DNA_base","modified_L_alanine","modified_L_arginine","modified_L_asparagine","modified_L_aspartic_acid","modified_L_cysteine","modified_L_glutamic_acid","modified_L_glutamine","modified_L_histidine","modified_L_isoleucine","modified_L_leucine","modified_L_lysine","modified_L_methionine","modified_L_phenylalanine","modified_L_proline","modified_L_selenocysteine","modified_L_serine","modified_L_threonine","modified_L_tryptophan","modified_L_tyrosine","modified_L_valine","modified_RNA_base_feature","modified_adenine","modified_adenosine","modified_amino_acid_feature","modified_cytidine","modified_cytosine","modified_glycine","modified_guanine","modified_guanosine","modified_inosine","modified_uridine","molecular_contact_region","monocistronic_mRNA","monocistronic_primary_transcript","monocistronic_transcript","monomeric_repeat","morpholino_oligo","mt_LSU_rRNA","mt_LSU_rRNA_gene","mt_SSU_rRNA","mt_SSU_rRNA_gene","mt_gene","mt_rRNA","mt_rRNA_gene","mt_tRNA","multiplexing_sequence_identifier","mutated_variant_site","mutational_hotspot","n_terminal_region","natural_plasmid","natural_transposable_element","natural_variant_site","ncRNA","ncRNA_gene","nc_conserved_region","nc_primary_transcript","negative_sense_ssRNA_viral_sequence","negatively_autoregulated_gene","nested_repeat","nested_tandem_repeat","nested_transposon","no_output","no_sequence_alteration","non_AUG_initiated_uORF","non_LTR_retrotransposon","non_LTR_retrotransposon_polymeric_tract","non_adjacent_residues","non_allelic_homologous_recombination_region","non_canonical_five_prime_splice_site","non_canonical_start_codon","non_canonical_three_prime_splice_site","non_complimentary_stem","non_cytoplasmic_polypeptide_region","non_processed_pseudogene","non_terminal_residue","non_transcribed_region","nonamer_of_recombination_feature_of_vertebrate_immune_system_gene","noncoding_exon","noncoding_region_of_exon","novel_sequence_insertion","nuclear_chromosome","nuclear_export_signal","nuclear_gene","nuclear_localization_signal","nuclear_mt_pseudogene","nuclear_rim_localization_signal","nuclease_binding_site","nuclease_hypersensitive_site","nuclease_sensitive_site","nucleomorph_gene","nucleomorphic_chromosome","nucleotide_binding_site","nucleotide_cleavage_site","nucleotide_match","nucleotide_motif","nucleotide_to_protein_binding_site","ochre_stop_codon","octamer_motif","oligo","oligo_U_tail","one_methyl_three_three_amino_three_carboxypropyl_pseudouridine","one_methyladenosine","one_methylguanosine","one_methylinosine","one_methylpseudouridine","one_two_prime_O_dimethyladenosine","one_two_prime_O_dimethylguanosine","one_two_prime_O_dimethylinosine","opal_stop_codon","open_chromatin_region","operator","operon","oriC","oriT","oriV","origin_of_replication","orphan_CDS","orthologous_region","outron","overlapping_EST_set","overlapping_feature_set","paired_end_fragment","parallel_beta_strand","paralogous_region","partial_genomic_sequence_assembly","partially_processed_cDNA_clone","paternal_uniparental_disomy","paternally_imprinted_gene","pathogenic_island","peptide_coil","peptide_helix","peptide_localization_signal","peroxywybutosine","phage_sequence","phagemid","phenylalanine","phenylalanine_tRNA_primary_transcript","phenylalanyl_tRNA","pheromone_response_element","phosphorylation_site","piRNA","piRNA_gene","pi_helix","piggyBac_TIR_transposon","plasmid","plasmid_gene","plasmid_vector","plastid_LSU_rRNA","plastid_LSU_rRNA_gene","plastid_SSU_rRNA","plastid_SSU_rRNA_gene","plastid_gene","plastid_rRNA","plastid_rRNA_gene","plus_1_translational_frameshift","plus_2_translational_frameshift","point_centromere","point_mutation","polinton","polyA_primed_cDNA_clone","polyA_sequence","polyA_signal_sequence","polyA_site","polyA_site_cluster","polyadenylated_mRNA","polycistronic_mRNA","polycistronic_primary_transcript","polycistronic_transcript","polymerase_synthesis_read","polymorphic_pseudogene","polymorphic_pseudogene_processed_transcript","polymorphic_pseudogene_with_retained_intron","polypeptide","polypeptide_DNA_contact","polypeptide_binding_motif","polypeptide_calcium_ion_contact_site","polypeptide_catalytic_motif","polypeptide_cobalt_ion_contact_site","polypeptide_conserved_motif","polypeptide_conserved_region","polypeptide_copper_ion_contact_site","polypeptide_domain","polypeptide_iron_ion_contact_site","polypeptide_ligand_contact","polypeptide_magnesium_ion_contact_site","polypeptide_manganese_ion_contact_site","polypeptide_metal_contact","polypeptide_molybdenum_ion_contact_site","polypeptide_motif","polypeptide_nest_left_right_motif","polypeptide_nest_motif","polypeptide_nest_right_left_motif","polypeptide_nickel_ion_contact_site","polypeptide_region","polypeptide_repeat","polypeptide_secondary_structure","polypeptide_sequencing_information","polypeptide_structural_motif","polypeptide_structural_region","polypeptide_tungsten_ion_contact_site","polypeptide_turn_motif","polypeptide_variation_site","polypeptide_zinc_ion_contact_site","polypyrimidine_tract","positional_candidate_gene","positive_sense_ssRNA_viral_sequence","positively_autoregulated_gene","possible_assembly_error","possible_base_call_error","post_translationally_modified_region","post_translationally_regulated_gene","pre_edited_mRNA","pre_edited_region","pre_miRNA","predicted_gene","predicted_transcript","presence_absence_variation","priRNA","primary_transcript","primary_transcript_region","primer","primer_binding_site","primer_match","probe","processed_pseudogene","processed_pseudogenic_rRNA","processed_pseudogenic_tRNA","processed_transcript","prokaryotic_promoter","proline","proline_tRNA_primary_transcript","prolyl_tRNA","promoter","promoter_element","promoter_flanking_region","promoter_targeting_sequence","promoter_trap_construct","propeptide","propeptide_cleavage_site","propeptide_region_of_CDS","prophage","proplastid_gene","protease_site","protein_binding_site","protein_coding_gene","protein_coding_primary_transcript","protein_hmm_match","protein_match","protein_protein_contact","protein_stability_element","proviral_gene","proviral_region","proximal_promoter_element","pseudogene","pseudogene_by_unequal_crossing_over","pseudogene_processed_transcript","pseudogenic_CDS","pseudogenic_exon","pseudogenic_gene_segment","pseudogenic_rRNA","pseudogenic_region","pseudogenic_tRNA","pseudogenic_transcript","pseudogenic_transcript_with_retained_intron","pseudoknot","pseudouridine","pseudouridylation_guide_snoRNA","pseudouridylation_guide_snoRNA_gene","pumilio_response_element","purine_to_pyrimidine_transversion","purine_transition","pyrimidine_to_purine_transversion","pyrimidine_transition","pyrosequenced_read","pyrrolysine","pyrrolysine_tRNA_primary_transcript","pyrrolysyl_tRNA","queuosine","rDNA_intergenic_spacer_element","rDNA_replication_fork_barrier","rRNA","rRNA_21S_gene","rRNA_cleavage_RNA","rRNA_cleavage_snoRNA_primary_transcript","rRNA_gene","rRNA_large_subunit_primary_transcript","rRNA_primary_transcript","rRNA_primary_transcript_region","rRNA_small_subunit_primary_transcript","rare_fragile_site","rasiRNA","read","read_pair","reading_frame","reagent","rearrangement_region","reciprocal_chromosomal_translocation","recoded_codon","recoded_mRNA","recoding_pseudoknot","recoding_stimulatory_region","recombination_enhancer","recombination_feature","recombination_feature_of_rearranged_gene","recombination_hotspot","recombination_regulatory_region","recombination_signal_sequence","recombinationally_inverted_gene","recombinationally_rearranged_gene","recombinationally_rearranged_vertebrate_immune_system_gene","recursive_splice_site","ref_miRNA","region","regional_centromere","regional_centromere_central_core","regional_centromere_inner_repeat_region","regional_centromere_outer_repeat_region","regional_centromere_outer_repeat_transcript","regulatory_promoter_element","regulatory_region","regulon","remark","repeat_component","repeat_fragment","repeat_instability_region","repeat_region","repeat_unit","replication_regulatory_region","replication_start_site","replicon","rescue_gene","rescue_mini_gene","rescue_region","resolution_site","response_element","restriction_enzyme_assembly_scar","restriction_enzyme_binding_site","restriction_enzyme_cleavage_junction","restriction_enzyme_five_prime_single_strand_overhang","restriction_enzyme_recognition_site","restriction_enzyme_region","restriction_enzyme_single_strand_overhang","restriction_enzyme_three_prime_single_strand_overhang","restriction_fragment","retinoic_acid_responsive_element","retrogene","retron","retrotransposon","reverse_Hoogsteen_base_pair","reverse_primer","rho_dependent_bacterial_terminator","rho_independent_bacterial_terminator","ribonuclease_site","ribosome_entry_site","riboswitch","ribothymidine","ribozyme","ribozyme_gene","right_handed_peptide_helix","sORF","sarcin_like_RNA_motif","satellite_DNA","sbRNA","sbRNA_gene","scRNA","scRNA_gene","scRNA_primary_transcript","scaRNA","scaRNA_gene","schellmann_loop","schellmann_loop_seven","schellmann_loop_six","selection_marker","selenocysteine","selenocysteine_tRNA_primary_transcript","selenocysteinyl_tRNA","self_cleaving_ribozyme","sense_intronic_ncRNA","sense_intronic_ncRNA_gene","sense_overlap_ncRNA","sense_overlap_ncRNA_gene","sequence_alteration","sequence_alteration_artifact","sequence_assembly","sequence_comparison","sequence_conflict","sequence_difference","sequence_feature","sequence_length_alteration","sequence_motif","sequence_rearrangement_feature","sequence_secondary_structure","sequence_uncertainty","sequencing_primer","serine","serine_tRNA_primary_transcript","serine_threonine_motif","serine_threonine_staple_motif","serine_threonine_turn","seryl_tRNA","seven_aminomethyl_seven_deazaguanosine","seven_cyano_seven_deazaguanosine","seven_deazaguanosine","seven_methylguanine","seven_methylguanosine","sgRNA","shRNA","shRNA_primary_transcript","shadow_enhancer","short_tandem_repeat_variation","siRNA","signal_anchor","signal_peptide","signal_peptide_region_of_CDS","signature","silenced_gene","silencer","silent_mating_type_cassette_array","simple_operon","simple_regulon","simple_sequence_length_variation","single_strand_restriction_enzyme_cleavage_site","single_stranded_DNA_chromosome","single_stranded_RNA_chromosome","sisRNA","site_specific_recombination_target_region","smFISH_probe","small_regulatory_ncRNA","snRNA","snRNA_gene","snRNA_primary_transcript","sncRNA","sncRNA_gene","snoRNA","snoRNA_gene","snoRNA_primary_transcript","solo_LTR","sonicate_fragment","specific_recombination_site","splice_enhancer","splice_junction","splice_region","splice_site","spliced_leader_RNA","spliceosomal_intron","spliceosomal_intron_region","splicing_regulatory_region","spot_42_RNA","spurious_protein","ss_RNA_viral_sequence","ss_oligo","st_turn_left_handed_type_one","st_turn_left_handed_type_two","st_turn_right_handed_type_one","st_turn_right_handed_type_two","start_codon","stem","stem_loop","stem_loop_region","sterol_regulatory_element","sticky_end_restriction_enzyme_cleavage_site","stop_codon","stop_codon_read_through","stop_codon_redefined_as_pyrrolysine","stop_codon_redefined_as_selenocysteine","stop_codon_signal","structural_alteration","substitution","substitution_artifact","subtelomere","sugar_edge_base_pair","supercontig","symbiosis_island","symmetric_RNA_internal_loop","syntenic_region","synthetic_oligo","tRNA","tRNA_SINE_retrotransposon","tRNA_gene","tRNA_intron","tRNA_primary_transcript","tRNA_region","tag","tandem_duplication","tandem_repeat","target_site_duplication","targeting_vector","tasiRNA","tasiRNA_primary_transcript","teb1_recognition_motif","telomerase_RNA","telomerase_RNA_gene","telomere","telomeric_D_loop","telomeric_repeat","telomeric_transcript","template_region","terminal_inverted_repeat","terminal_inverted_repeat_element","terminal_repeat","terminator","terminator_of_type_2_RNApol_III_promoter","tetraloop","tetranucleotide_repeat_microsatellite_feature","three_methylcytidine","three_methylpseudouridine","three_methyluridine","three_prime_D_heptamer","three_prime_D_nonamer","three_prime_D_recombination_signal_sequence","three_prime_D_spacer","three_prime_EST","three_prime_LTR","three_prime_LTR_component","three_prime_RACE_clone","three_prime_RST","three_prime_UST","three_prime_UTR","three_prime_UTR_intron","three_prime_cis_splice_site","three_prime_clip","three_prime_coding_exon","three_prime_coding_exon_coding_region","three_prime_coding_exon_noncoding_region","three_prime_flanking_region","three_prime_intron","three_prime_noncoding_exon","three_prime_overlapping_ncrna","three_prime_recoding_site","three_prime_repeat_recoding_signal","three_prime_restriction_enzyme_junction","three_prime_stem_loop_structure","three_prime_sticky_end_restriction_enzyme_cleavage_site","three_prime_terminal_inverted_repeat","three_ten_helix","three_three_amino_three_carboxypropyl_uridine","three_two_prime_O_dimethyluridine","threonine","threonine_tRNA_primary_transcript","threonyl_tRNA","tiling_path","tiling_path_clone","tiling_path_fragment","tmRNA","tmRNA_acceptor_piece","tmRNA_coding_piece","tmRNA_gene","tmRNA_primary_transcript","tmRNA_region","tnaORF","topologically_associated_domain","topologically_associated_domain_boundary","topologically_defined_region","trans_splice_acceptor_site","trans_splice_donor_site","trans_splice_junction","trans_splice_site","trans_spliced_mRNA","trans_spliced_transcript","transcribed_cluster","transcribed_fragment","transcribed_processed_pseudogene","transcribed_spacer_region","transcribed_unitary_pseudogene","transcribed_unprocessed_pseudogene","transcript","transcript_bound_by_nucleic_acid","transcript_bound_by_protein","transcript_region","transcript_with_translational_frameshift","transcription_end_site","transcription_factor_regulatory_site","transcription_pause_site","transcription_start_cluster","transcription_termination_signal","transcription_unit","transcriptional_cis_regulatory_region","transgene","transgenic_insertion","transgenic_transposable_element","transit_peptide","transit_peptide_region_of_CDS","transition","translated_nucleotide_match","translated_processed_pseudogene","translated_unprocessed_pseudogene","translation_regulatory_region","translational_frameshift","translationally_regulated_gene","translocation","translocation_breakpoint","translocation_element","transmembrane_helix","transmembrane_polypeptide_region","transposable_element","transposable_element_CDS","transposable_element_flanking_region","transposable_element_gene","transposable_element_insertion_site","transposable_element_pseudogene","transposon_fragment","transversion","trinucleotide_repeat_microsatellite_feature","tryptophan","tryptophan_tRNA_primary_transcript","tryptophanyl_tRNA","twintron","two_methyladenosine","two_methylthio_N6_cis_hydroxyisopentenyl_adenosine","two_methylthio_N6_hydroxynorvalyl_carbamoyladenosine","two_methylthio_N6_isopentenyladenosine","two_methylthio_N6_methyladenosine","two_methylthio_N6_threonyl_carbamoyladenosine","two_prime_O_methyladenosine","two_prime_O_methylcytidine","two_prime_O_methylguanosine","two_prime_O_methylinosine","two_prime_O_methylpseudouridine","two_prime_O_methyluridine","two_prime_O_ribosyladenosine_phosphate","two_prime_O_ribosylguanosine_phosphate","two_thio_two_prime_O_methyluridine","two_thiocytidine","two_thiouridine","tyrosine","tyrosine_tRNA_primary_transcript","tyrosyl_tRNA","uORF","ultracontig","unassigned_supercontig","unconfirmed_transcript","undermodified_hydroxywybutosine","unedited_region","unigene_cluster","unit_of_gene_expression","unitary_pseudogene","unitary_pseudogenic_rRNA","unitary_pseudogenic_tRNA","unprocessed_pseudogenic_rRNA","unprocessed_pseudogenic_tRNA","unspecified_indel","untranslated_region_polycistronic_mRNA","upstream_AUG_codon","uridine_five_oxyacetic_acid","uridine_five_oxyacetic_acid_methyl_ester","vacuolar_sorting_signal","validated_cDNA_clone","valine","valine_tRNA_primary_transcript","valyl_tRNA","vaultRNA_primary_transcript","vault_RNA","vault_RNA_gene","vector_replicon","vertebrate_immune_system_gene","vertebrate_immune_system_gene_recombination_feature","vertebrate_immune_system_gene_recombination_signal_feature","vertebrate_immune_system_gene_recombination_spacer","vertebrate_immune_system_pseudogene","vertebrate_immunoglobulin_T_cell_receptor_gene_cluster","vertebrate_immunoglobulin_T_cell_receptor_rearranged_gene_cluster","vertebrate_immunoglobulin_T_cell_receptor_rearranged_segment","vertebrate_immunoglobulin_T_cell_receptor_segment","viral_promoter","viral_sequence","virtual_sequence","wild_type_rescue_gene","wobble_base_pair","wybutosine","wyosine","zinc_finger_binding_site","zinc_repressed_element"],Object.defineProperty(sl,"__esModule",{value:!0}),sl.CoreValidation=void 0,sl.isTypeChange=ul;var cl=et.__importDefault(ll);function ul(e){return"oldType"in e&&"newType"in e}var dl=function(e){ae(a,e);var t,n,r=de(a);function a(){var e;ee(this,a);for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return re(ue(e=r.call.apply(r,[this].concat(n))),"name","Core"),e}return ne(a,[{key:"frontendPreValidate",value:(n=Q(Y().mark((function e(t){var n,r,a;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!ul(t)){e.next=18;break}n=we(t.changes),e.prev=2,n.s();case 4:if((r=n.n()).done){e.next=10;break}if(cl.default.includes((a=r.value).newType)){e.next=8;break}return e.abrupt("return",{validationName:this.name,error:{message:'"'.concat(a.newType,'" is not a valid SO sequence_feature term')}});case 8:e.next=4;break;case 10:e.next=15;break;case 12:e.prev=12,e.t0=e.catch(2),n.e(e.t0);case 15:return e.prev=15,n.f(),e.finish(15);case 18:return e.abrupt("return",{validationName:this.name});case 19:case"end":return e.stop()}}),e,this,[[2,12,15,18]])}))),function(e){return n.apply(this,arguments)})},{key:"possibleValues",value:(t=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("type"!==t){e.next=2;break}return e.abrupt("return",cl.default);case 2:return e.abrupt("return");case 3:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})}]),a}(nl.Validation);sl.CoreValidation=dl;var fl={};Object.defineProperty(fl,"__esModule",{value:!0}),fl.ParentChildValidation=void 0;var hl=rr,pl=function(e){ae(a,e);var t,n,r=de(a);function a(){var e;ee(this,a);for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return re(ue(e=r.call.apply(r,[this].concat(n))),"name","ParentChildValidation"),e}return ne(a,[{key:"backendPostValidate",value:(n=Q(Y().mark((function e(t,n){var r,a;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n.featureModel,a=n.session,!(0,hl.isLocationEndChange)(t)&&!(0,hl.isLocationStartChange)(t)){e.next=3;break}return e.abrupt("return",this.validateParentChildRelationships(t,{session:a,featureModel:r}));case 3:return e.abrupt("return",{validationName:this.name});case 4:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"validateParentChildRelationships",value:(t=Q(Y().mark((function e(t,n){var r,a,i,o,s,l,c,u,d;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=n.featureModel,a=n.session,i=[],o=we(t.changes),e.prev=3,l=Y().mark((function e(){var t,n,o;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=s.value.featureId,e.next=4,r.findOne({allIds:t}).session(a).exec();case 4:if(n=e.sent){e.next=8;break}throw o="ERROR: The following featureId was not found in database ='".concat(t,"'"),new Error(o);case 8:i.some((function(e){return e._id===n._id}))||i.push(n);case 9:case"end":return e.stop()}}),e)})),o.s();case 6:if((s=o.n()).done){e.next=10;break}return e.delegateYield(l(),"t0",8);case 8:e.next=6;break;case 10:e.next=15;break;case 12:e.prev=12,e.t1=e.catch(3),o.e(e.t1);case 15:return e.prev=15,o.f(),e.finish(15);case 18:c=0,u=i;case 19:if(!(c<u.length)){e.next=31;break}d=u[c],e.prev=21,this.checkChildFeatureBoundaries(d),e.next=28;break;case 25:return e.prev=25,e.t2=e.catch(21),e.abrupt("return",{validationName:this.name,error:{message:String(e.t2)}});case 28:c++,e.next=19;break;case 31:return e.abrupt("return",{validationName:this.name});case 32:case"end":return e.stop()}}),e,this,[[3,12,15,18],[21,25]])}))),function(e,n){return t.apply(this,arguments)})},{key:"checkChildFeatureBoundaries",value:function(e){if(e.children){var t,n=we(e.children||new Map);try{for(n.s();!(t=n.n()).done;){var r=he(t.value,2)[1];if(null!==e.min&&null!==e.max&&null!==r.min&&null!==r.max&&(r.max>e.max||r.min<e.min))throw new Error('Feature "'.concat(r._id,'" exceeds the bounds of its parent, "').concat(e._id,'"'));this.checkChildFeatureBoundaries(r)}}catch(e){n.e(e)}finally{n.f()}}}}]),a}(nl.Validation);fl.ParentChildValidation=pl,function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=et;t.__exportStar(nl,e),t.__exportStar(al,e),t.__exportStar(sl,e),t.__exportStar(fl,e)}(tl);var ml={},gl={};function _l(e){this.message=e}(_l.prototype=new Error).name="InvalidCharacterError";var yl="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(e){var t=String(e).replace(/=+$/,"");if(t.length%4==1)throw new _l("'atob' failed: The string to be decoded is not correctly encoded.");for(var n,r,a=0,i=0,o="";r=t.charAt(i++);~r&&(n=a%4?64*n+r:r,a++%4)?o+=String.fromCharCode(255&n>>(-2*a&6)):0)r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r);return o};function vl(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(yl(e).replace(/(.)/g,(function(e,t){var n=t.charCodeAt(0).toString(16).toUpperCase();return n.length<2&&(n="0"+n),"%"+n})))}(t)}catch(e){return yl(t)}}function bl(e){this.message=e}(bl.prototype=new Error).name="InvalidTokenError";var wl={__proto__:null,default:function(e,t){if("string"!=typeof e)throw new bl("Invalid token specified");var n=!0===(t=t||{}).header?0:1;try{return JSON.parse(vl(e.split(".")[n]))}catch(e){throw new bl("Invalid token specified: "+e.message)}},InvalidTokenError:bl},xl=B(wl);Object.defineProperty(gl,"__esModule",{value:!0}),gl.makeUserSessionId=function(e){var t="string"==typeof e?(0,Sl.default)(e):e;return"".concat(t.id,"-").concat(t.iat)},gl.getDecodedToken=function(e){return(0,Sl.default)(e)};var Sl=et.__importDefault(xl);!function(e){Object.defineProperty(e,"__esModule",{value:!0}),et.__exportStar(gl,e)}(ml);var kl={},El={};Object.defineProperty(El,"__esModule",{value:!0}),El.CDSCheck=void 0;var Al=function(e){ae(r,e);var t,n=de(r);function r(){var e;ee(this,r);for(var t=arguments.length,a=new Array(t),i=0;i<t;i++)a[i]=arguments[i];return re(ue(e=n.call.apply(n,[this].concat(a))),"name","CDSCheck"),re(ue(e),"version",1),re(ue(e),"default",!0),e}return ne(r,[{key:"checkFeature",value:(t=Q(Y().mark((function e(t,n){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Promise.resolve();case 2:return e.abrupt("return",[]);case 3:case"end":return e.stop()}}),e)}))),function(e,n){return t.apply(this,arguments)})}]),r}(or.Check);El.CDSCheck=Al,function(e){Object.defineProperty(e,"__esModule",{value:!0}),et.__exportStar(El,e)}(kl);var Cl={};Object.defineProperty(Cl,"__esModule",{value:!0}),Cl.makeGFF3Feature=function e(t,n,r){var a,i,o=[{start:t.min,end:t.max}],s=JSON.parse(JSON.stringify(t.attributes)),l=[],c=null!==(a=null===(i=t.attributes)||void 0===i||null===(i=i.source)||void 0===i?void 0:i[0])&&void 0!==a?a:null;return delete s.source,n&&(s.Parent=[n]),s._id&&(s.ID=s._id,delete s._id),s.gff_name&&(s.Name=s.gff_name,delete s.gff_name),s.gff_alias&&(s.Alias=s.gff_alias,delete s.gff_alias),s.gff_target&&(s.Target=s.gff_target,delete s.gff_target),s.gff_gap&&(s.Gap=s.gff_gap,delete s.gff_gap),s.gff_derives_from&&(s.Derives_from=s.gff_derives_from,delete s.gff_derives_from),s.gff_note&&(s.Note=s.gff_note,delete s.gff_note),s.gff_dbxref&&(s.Dbxref=s.gff_dbxref,delete s.gff_dbxref),s.gff_is_circular&&(s.Is_circular=s.gff_is_circular,delete s.gff_is_circular),s.gff_ontology_term&&(l.push.apply(l,me(s.gff_ontology_term)),delete s.gff_ontology_term),s["Gene Ontology"]&&(l.push.apply(l,me(s["Gene Ontology"])),delete s["Gene Ontology"]),s["Sequence Ontology"]&&(l.push.apply(l,me(s["Sequence Ontology"])),delete s["Sequence Ontology"]),l.length>0&&(s.Ontology_term=l),o.map((function(n){var a;return{start:n.start+1,end:n.end,seq_id:r?null!==(a=r[t.refSeq])&&void 0!==a?a:null:t.refSeq,source:c,type:t.type,score:null,strand:t.strand?1===t.strand?"+":"-":null,phase:null,attributes:Object.keys(s).length>0?s:null,derived_features:[],child_features:t.children?Object.values(t.children).map((function(t){var n;return e(t,null===(n=s.ID)||void 0===n?void 0:n[0],r)})):[]}}))},Cl.splitStringIntoChunks=function(e,t){for(var n=[],r=0;r<e.length;r+=t){var a=e.slice(r,r+t);n.push(a)}return n};var Rl={};Object.defineProperty(Rl,"__esModule",{value:!0}),function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=et;t.__exportStar(rr,e),t.__exportStar(Ys,e),t.__exportStar(tl,e),t.__exportStar(ml,e),t.__exportStar(kl,e),t.__exportStar(Cl,e),t.__exportStar(Rl,e),t.__exportStar(Ar,e)}(nr);var Nl={},Il={exports:{}};!function(e){e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.__esModule=!0,e.exports.default=e.exports}(Il);var Tl={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.createSvgIcon}});var t=N.default}(Tl);var Ol=Il.exports;Object.defineProperty(Nl,"__esModule",{value:!0});var Fl=Nl.default=void 0;Fl=Nl.default=(0,Ol(Tl).default)((0,I.default.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");const Ll=r.ConfigurationSchema("ApolloInternetAccount",{baseURL:{description:"Location of Apollo server",type:"string",defaultValue:""},tokenType:{description:"A custom name for a token to include in the header",type:"string",defaultValue:"Bearer"}},{baseConfiguration:a.BaseInternetAccountConfig,explicitlyTyped:!0});var Dl=Object.create(null);Dl.open="0",Dl.close="1",Dl.ping="2",Dl.pong="3",Dl.message="4",Dl.upgrade="5",Dl.noop="6";var Ml=Object.create(null);Object.keys(Dl).forEach((function(e){Ml[Dl[e]]=e}));var Pl,ql={type:"error",data:"parser error"},jl="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===Object.prototype.toString.call(Blob),Bl="function"==typeof ArrayBuffer,Ul=function(e){return"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer},zl=function(e,t,n){var r=e.type,a=e.data;return jl&&a instanceof Blob?t?n(a):Gl(a,n):Bl&&(a instanceof ArrayBuffer||Ul(a))?t?n(a):Gl(new Blob([a]),n):n(Dl[r]+(a||""))},Gl=function(e,t){var n=new FileReader;return n.onload=function(){var e=n.result.split(",")[1];t("b"+(e||""))},n.readAsDataURL(e)};function Hl(e){return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}for(var $l="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Jl=0;Jl<64;Jl++)$l["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(Jl)]=Jl;var Vl,Wl="function"==typeof ArrayBuffer,Kl=function(e,t){if("string"!=typeof e)return{type:"message",data:Zl(e,t)};var n=e.charAt(0);return"b"===n?{type:"message",data:Yl(e.substring(1),t)}:Ml[n]?e.length>1?{type:Ml[n],data:e.substring(1)}:{type:Ml[n]}:ql},Yl=function(e,t){if(Wl){var n=function(e){var t,n,r,a,i,o=.75*e.length,s=e.length,l=0;"="===e[e.length-1]&&(o--,"="===e[e.length-2]&&o--);var c=new ArrayBuffer(o),u=new Uint8Array(c);for(t=0;t<s;t+=4)n=$l[e.charCodeAt(t)],r=$l[e.charCodeAt(t+1)],a=$l[e.charCodeAt(t+2)],i=$l[e.charCodeAt(t+3)],u[l++]=n<<2|r>>4,u[l++]=(15&r)<<4|a>>2,u[l++]=(3&a)<<6|63&i;return c}(e);return Zl(n,t)}return{base64:!0,data:e}},Zl=function(e,t){return"blob"===t?e instanceof Blob?e:new Blob([e]):e instanceof ArrayBuffer?e:e.buffer},Xl=String.fromCharCode(30);function Ql(e){return e.reduce((function(e,t){return e+t.length}),0)}function ec(e,t){if(e[0].length===t)return e.shift();for(var n=new Uint8Array(t),r=0,a=0;a<t;a++)n[a]=e[0][r++],r===e[0].length&&(e.shift(),r=0);return e.length&&r<e[0].length&&(e[0]=e[0].slice(r)),n}function tc(e){if(e)return function(e){for(var t in tc.prototype)e[t]=tc.prototype[t];return e}(e)}tc.prototype.on=tc.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this},tc.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this},tc.prototype.off=tc.prototype.removeListener=tc.prototype.removeAllListeners=tc.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n,r=this._callbacks["$"+e];if(!r)return this;if(1==arguments.length)return delete this._callbacks["$"+e],this;for(var a=0;a<r.length;a++)if((n=r[a])===t||n.fn===t){r.splice(a,1);break}return 0===r.length&&delete this._callbacks["$"+e],this},tc.prototype.emit=function(e){this._callbacks=this._callbacks||{};for(var t=new Array(arguments.length-1),n=this._callbacks["$"+e],r=1;r<arguments.length;r++)t[r-1]=arguments[r];if(n){r=0;for(var a=(n=n.slice(0)).length;r<a;++r)n[r].apply(this,t)}return this},tc.prototype.emitReserved=tc.prototype.emit,tc.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks["$"+e]||[]},tc.prototype.hasListeners=function(e){return!!this.listeners(e).length};var nc=function(){return"undefined"!=typeof self?self:"undefined"!=typeof window?window:Function("return this")()}();function rc(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return n.reduce((function(t,n){return e.hasOwnProperty(n)&&(t[n]=e[n]),t}),{})}var ac=nc.setTimeout,ic=nc.clearTimeout;function oc(e,t){t.useNativeTimers?(e.setTimeoutFn=ac.bind(nc),e.clearTimeoutFn=ic.bind(nc)):(e.setTimeoutFn=nc.setTimeout.bind(nc),e.clearTimeoutFn=nc.clearTimeout.bind(nc))}var sc,lc=function(e){ae(n,e);var t=de(n);function n(e,r,a){var i;return ee(this,n),(i=t.call(this,e)).description=r,i.context=a,i.type="TransportError",i}return ne(n)}(ce(Error)),cc=function(e){ae(n,e);var t=de(n);function n(e){var r;return ee(this,n),(r=t.call(this)).writable=!1,oc(ue(r),e),r.opts=e,r.query=e.query,r.socket=e.socket,r}return ne(n,[{key:"onError",value:function(e,t,r){return fe(ie(n.prototype),"emitReserved",this).call(this,"error",new lc(e,t,r)),this}},{key:"open",value:function(){return this.readyState="opening",this.doOpen(),this}},{key:"close",value:function(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this}},{key:"send",value:function(e){"open"===this.readyState&&this.write(e)}},{key:"onOpen",value:function(){this.readyState="open",this.writable=!0,fe(ie(n.prototype),"emitReserved",this).call(this,"open")}},{key:"onData",value:function(e){var t=Kl(e,this.socket.binaryType);this.onPacket(t)}},{key:"onPacket",value:function(e){fe(ie(n.prototype),"emitReserved",this).call(this,"packet",e)}},{key:"onClose",value:function(e){this.readyState="closed",fe(ie(n.prototype),"emitReserved",this).call(this,"close",e)}},{key:"pause",value:function(e){}},{key:"createUri",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e+"://"+this._hostname()+this._port()+this.opts.path+this._query(t)}},{key:"_hostname",value:function(){var e=this.opts.hostname;return-1===e.indexOf(":")?e:"["+e+"]"}},{key:"_port",value:function(){return this.opts.port&&(this.opts.secure&&Number(443!==this.opts.port)||!this.opts.secure&&80!==Number(this.opts.port))?":"+this.opts.port:""}},{key:"_query",value:function(e){var t=function(e){var t="";for(var n in e)e.hasOwnProperty(n)&&(t.length&&(t+="&"),t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t}(e);return t.length?"?"+t:""}}]),n}(tc),uc="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),dc=64,fc=0;function hc(e){var t="";do{t=uc[e%dc]+t,e=Math.floor(e/dc)}while(e>0);return t}function pc(){var e=hc(+new Date);return e!==sc?(fc=0,sc=e):e+"."+hc(fc++)}var mc=!1;try{mc="undefined"!=typeof XMLHttpRequest&&"withCredentials"in new XMLHttpRequest}catch(ni){}var gc=mc;function _c(e){var t=e.xdomain;try{if("undefined"!=typeof XMLHttpRequest&&(!t||gc))return new XMLHttpRequest}catch(e){}if(!t)try{return new(nc[["Active"].concat("Object").join("X")])("Microsoft.XMLHTTP")}catch(e){}}function yc(){}var vc=function(){return null!=new _c({xdomain:!1}).responseType}(),bc=function(e){ae(n,e);var t=de(n);function n(e){var r;if(ee(this,n),(r=t.call(this,e)).polling=!1,"undefined"!=typeof location){var a="https:"===location.protocol,i=location.port;i||(i=a?"443":"80"),r.xd="undefined"!=typeof location&&e.hostname!==location.hostname||i!==e.port}return r.supportsBinary=vc&&!(e&&e.forceBase64),r.opts.withCredentials&&(r.cookieJar=void 0),r}return ne(n,[{key:"name",get:function(){return"polling"}},{key:"doOpen",value:function(){this.poll()}},{key:"pause",value:function(e){var t=this;this.readyState="pausing";var n=function(){t.readyState="paused",e()};if(this.polling||!this.writable){var r=0;this.polling&&(r++,this.once("pollComplete",(function(){--r||n()}))),this.writable||(r++,this.once("drain",(function(){--r||n()})))}else n()}},{key:"poll",value:function(){this.polling=!0,this.doPoll(),this.emitReserved("poll")}},{key:"onData",value:function(e){var t=this;(function(e,t){for(var n=e.split(Xl),r=[],a=0;a<n.length;a++){var i=Kl(n[a],t);if(r.push(i),"error"===i.type)break}return r})(e,this.socket.binaryType).forEach((function(e){if("opening"===t.readyState&&"open"===e.type&&t.onOpen(),"close"===e.type)return t.onClose({description:"transport closed by the server"}),!1;t.onPacket(e)})),"closed"!==this.readyState&&(this.polling=!1,this.emitReserved("pollComplete"),"open"===this.readyState&&this.poll())}},{key:"doClose",value:function(){var e=this,t=function(){e.write([{type:"close"}])};"open"===this.readyState?t():this.once("open",t)}},{key:"write",value:function(e){var t=this;this.writable=!1,function(e,n){var r=e.length,a=new Array(r),i=0;e.forEach((function(e,n){zl(e,!1,(function(e){var o;a[n]=e,++i===r&&(o=a.join(Xl),t.doWrite(o,(function(){t.writable=!0,t.emitReserved("drain")})))}))}))}(e)}},{key:"uri",value:function(){var e=this.opts.secure?"https":"http",t=this.query||{};return!1!==this.opts.timestampRequests&&(t[this.opts.timestampParam]=pc()),this.supportsBinary||t.sid||(t.b64=1),this.createUri(e,t)}},{key:"request",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object.assign(e,{xd:this.xd,cookieJar:this.cookieJar},this.opts),new wc(this.uri(),e)}},{key:"doWrite",value:function(e,t){var n=this,r=this.request({method:"POST",data:e});r.on("success",t),r.on("error",(function(e,t){n.onError("xhr post error",e,t)}))}},{key:"doPoll",value:function(){var e=this,t=this.request();t.on("data",this.onData.bind(this)),t.on("error",(function(t,n){e.onError("xhr poll error",t,n)})),this.pollXhr=t}}]),n}(cc),wc=function(e){ae(n,e);var t=de(n);function n(e,r){var a;return ee(this,n),oc(ue(a=t.call(this)),r),a.opts=r,a.method=r.method||"GET",a.uri=e,a.data=void 0!==r.data?r.data:null,a.create(),a}return ne(n,[{key:"create",value:function(){var e,t=this,r=rc(this.opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");r.xdomain=!!this.opts.xd;var a=this.xhr=new _c(r);try{a.open(this.method,this.uri,!0);try{if(this.opts.extraHeaders)for(var i in a.setDisableHeaderCheck&&a.setDisableHeaderCheck(!0),this.opts.extraHeaders)this.opts.extraHeaders.hasOwnProperty(i)&&a.setRequestHeader(i,this.opts.extraHeaders[i])}catch(e){}if("POST"===this.method)try{a.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(e){}try{a.setRequestHeader("Accept","*/*")}catch(e){}null===(e=this.opts.cookieJar)||void 0===e||e.addCookies(a),"withCredentials"in a&&(a.withCredentials=this.opts.withCredentials),this.opts.requestTimeout&&(a.timeout=this.opts.requestTimeout),a.onreadystatechange=function(){var e;3===a.readyState&&(null===(e=t.opts.cookieJar)||void 0===e||e.parseCookies(a)),4===a.readyState&&(200===a.status||1223===a.status?t.onLoad():t.setTimeoutFn((function(){t.onError("number"==typeof a.status?a.status:0)}),0))},a.send(this.data)}catch(e){return void this.setTimeoutFn((function(){t.onError(e)}),0)}"undefined"!=typeof document&&(this.index=n.requestsCount++,n.requests[this.index]=this)}},{key:"onError",value:function(e){this.emitReserved("error",e,this.xhr),this.cleanup(!0)}},{key:"cleanup",value:function(e){if(null!=this.xhr){if(this.xhr.onreadystatechange=yc,e)try{this.xhr.abort()}catch(e){}"undefined"!=typeof document&&delete n.requests[this.index],this.xhr=null}}},{key:"onLoad",value:function(){var e=this.xhr.responseText;null!==e&&(this.emitReserved("data",e),this.emitReserved("success"),this.cleanup())}},{key:"abort",value:function(){this.cleanup()}}]),n}(tc);function xc(){for(var e in wc.requests)wc.requests.hasOwnProperty(e)&&wc.requests[e].abort()}wc.requestsCount=0,wc.requests={},"undefined"!=typeof document&&("function"==typeof attachEvent?attachEvent("onunload",xc):"function"==typeof addEventListener&&addEventListener("onpagehide"in nc?"pagehide":"unload",xc,!1));var Sc=function(){return"function"==typeof Promise&&"function"==typeof Promise.resolve?function(e){return Promise.resolve().then(e)}:function(e,t){return t(e,0)}}(),kc=nc.WebSocket||nc.MozWebSocket,Ec="undefined"!=typeof navigator&&"string"==typeof navigator.product&&"reactnative"===navigator.product.toLowerCase(),Ac=function(e){ae(n,e);var t=de(n);function n(e){var r;return ee(this,n),(r=t.call(this,e)).supportsBinary=!e.forceBase64,r}return ne(n,[{key:"name",get:function(){return"websocket"}},{key:"doOpen",value:function(){if(this.check()){var e=this.uri(),t=this.opts.protocols,n=Ec?{}:rc(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(n.headers=this.opts.extraHeaders);try{this.ws=Ec?new kc(e,t,n):t?new kc(e,t):new kc(e)}catch(e){return this.emitReserved("error",e)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}}},{key:"addEventListeners",value:function(){var e=this;this.ws.onopen=function(){e.opts.autoUnref&&e.ws._socket.unref(),e.onOpen()},this.ws.onclose=function(t){return e.onClose({description:"websocket connection closed",context:t})},this.ws.onmessage=function(t){return e.onData(t.data)},this.ws.onerror=function(t){return e.onError("websocket error",t)}}},{key:"write",value:function(e){var t=this;this.writable=!1;for(var n=function(){var n=r===e.length-1;zl(e[r],t.supportsBinary,(function(e){try{t.ws.send(e)}catch(e){}n&&Sc((function(){t.writable=!0,t.emitReserved("drain")}),t.setTimeoutFn)}))},r=0;r<e.length;r++)n()}},{key:"doClose",value:function(){void 0!==this.ws&&(this.ws.close(),this.ws=null)}},{key:"uri",value:function(){var e=this.opts.secure?"wss":"ws",t=this.query||{};return this.opts.timestampRequests&&(t[this.opts.timestampParam]=pc()),this.supportsBinary||(t.b64=1),this.createUri(e,t)}},{key:"check",value:function(){return!!kc}}]),n}(cc),Cc=function(e){ae(n,e);var t=de(n);function n(){return ee(this,n),t.apply(this,arguments)}return ne(n,[{key:"name",get:function(){return"webtransport"}},{key:"doOpen",value:function(){var e=this;"function"==typeof WebTransport&&(this.transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name]),this.transport.closed.then((function(){e.onClose()})).catch((function(t){e.onError("webtransport error",t)})),this.transport.ready.then((function(){e.transport.createBidirectionalStream().then((function(t){var n=function(e,t){Vl||(Vl=new TextDecoder);var n=[],r=0,a=-1,i=!1;return new TransformStream({transform:function(o,s){for(n.push(o);;){if(0===r){if(Ql(n)<1)break;var l=ec(n,1);i=128==(128&l[0]),r=(a=127&l[0])<126?3:126===a?1:2}else if(1===r){if(Ql(n)<2)break;var c=ec(n,2);a=new DataView(c.buffer,c.byteOffset,c.length).getUint16(0),r=3}else if(2===r){if(Ql(n)<8)break;var u=ec(n,8),d=new DataView(u.buffer,u.byteOffset,u.length),f=d.getUint32(0);if(f>Math.pow(2,21)-1){s.enqueue(ql);break}a=f*Math.pow(2,32)+d.getUint32(4),r=3}else{if(Ql(n)<a)break;var h=ec(n,a);s.enqueue(Kl(i?h:Vl.decode(h),t)),r=0}if(0===a||a>e){s.enqueue(ql);break}}}})}(Number.MAX_SAFE_INTEGER,e.socket.binaryType),r=t.readable.pipeThrough(n).getReader(),a=new TransformStream({transform:function(e,t){!function(e,t){jl&&e.data instanceof Blob?e.data.arrayBuffer().then(Hl).then(t):Bl&&(e.data instanceof ArrayBuffer||Ul(e.data))?t(Hl(e.data)):zl(e,!1,(function(e){Pl||(Pl=new TextEncoder),t(Pl.encode(e))}))}(e,(function(n){var r,a=n.length;if(a<126)r=new Uint8Array(1),new DataView(r.buffer).setUint8(0,a);else if(a<65536){r=new Uint8Array(3);var i=new DataView(r.buffer);i.setUint8(0,126),i.setUint16(1,a)}else{r=new Uint8Array(9);var o=new DataView(r.buffer);o.setUint8(0,127),o.setBigUint64(1,BigInt(a))}e.data&&"string"!=typeof e.data&&(r[0]|=128),t.enqueue(r),t.enqueue(n)}))}});a.readable.pipeTo(t.writable),e.writer=a.writable.getWriter(),function t(){r.read().then((function(n){n.done||(e.onPacket(n.value),t())})).catch((function(e){}))}();var i={type:"open"};e.query.sid&&(i.data='{"sid":"'.concat(e.query.sid,'"}')),e.writer.write(i).then((function(){return e.onOpen()}))}))})))}},{key:"write",value:function(e){var t=this;this.writable=!1;for(var n=function(){var n=r===e.length-1;t.writer.write(e[r]).then((function(){n&&Sc((function(){t.writable=!0,t.emitReserved("drain")}),t.setTimeoutFn)}))},r=0;r<e.length;r++)n()}},{key:"doClose",value:function(){var e;null===(e=this.transport)||void 0===e||e.close()}}]),n}(cc),Rc={websocket:Ac,webtransport:Cc,polling:bc},Nc=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,Ic=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function Tc(e){var t,n,r=e,a=e.indexOf("["),i=e.indexOf("]");-1!=a&&-1!=i&&(e=e.substring(0,a)+e.substring(a,i).replace(/:/g,";")+e.substring(i,e.length));for(var o,s=Nc.exec(e||""),l={},c=14;c--;)l[Ic[c]]=s[c]||"";return-1!=a&&-1!=i&&(l.source=r,l.host=l.host.substring(1,l.host.length-1).replace(/;/g,":"),l.authority=l.authority.replace("[","").replace("]","").replace(/;/g,":"),l.ipv6uri=!0),l.pathNames=(n=(t=l.path).replace(/\/{2,9}/g,"/").split("/"),"/"!=t.slice(0,1)&&0!==t.length||n.splice(0,1),"/"==t.slice(-1)&&n.splice(n.length-1,1),n),l.queryKey=(o={},l.query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,(function(e,t,n){t&&(o[t]=n)})),o),l}var Oc=function(e){ae(n,e);var t=de(n);function n(e){var r,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return ee(this,n),(r=t.call(this)).binaryType="arraybuffer",r.writeBuffer=[],e&&"object"===Z(e)&&(a=e,e=null),e?(e=Tc(e),a.hostname=e.host,a.secure="https"===e.protocol||"wss"===e.protocol,a.port=e.port,e.query&&(a.query=e.query)):a.host&&(a.hostname=Tc(a.host).host),oc(ue(r),a),r.secure=null!=a.secure?a.secure:"undefined"!=typeof location&&"https:"===location.protocol,a.hostname&&!a.port&&(a.port=r.secure?"443":"80"),r.hostname=a.hostname||("undefined"!=typeof location?location.hostname:"localhost"),r.port=a.port||("undefined"!=typeof location&&location.port?location.port:r.secure?"443":"80"),r.transports=a.transports||["polling","websocket","webtransport"],r.writeBuffer=[],r.prevBufferLen=0,r.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},a),r.opts.path=r.opts.path.replace(/\/$/,"")+(r.opts.addTrailingSlash?"/":""),"string"==typeof r.opts.query&&(r.opts.query=function(e){for(var t={},n=e.split("&"),r=0,a=n.length;r<a;r++){var i=n[r].split("=");t[decodeURIComponent(i[0])]=decodeURIComponent(i[1])}return t}(r.opts.query)),r.id=null,r.upgrades=null,r.pingInterval=null,r.pingTimeout=null,r.pingTimeoutTimer=null,"function"==typeof addEventListener&&(r.opts.closeOnBeforeunload&&(r.beforeunloadEventListener=function(){r.transport&&(r.transport.removeAllListeners(),r.transport.close())},addEventListener("beforeunload",r.beforeunloadEventListener,!1)),"localhost"!==r.hostname&&(r.offlineEventListener=function(){r.onClose("transport close",{description:"network connection lost"})},addEventListener("offline",r.offlineEventListener,!1))),r.open(),r}return ne(n,[{key:"createTransport",value:function(e){var t=Object.assign({},this.opts.query);t.EIO=4,t.transport=e,this.id&&(t.sid=this.id);var n=Object.assign({},this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return new Rc[e](n)}},{key:"open",value:function(){var e,t=this;if(this.opts.rememberUpgrade&&n.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket"))e="websocket";else{if(0===this.transports.length)return void this.setTimeoutFn((function(){t.emitReserved("error","No transports available")}),0);e=this.transports[0]}this.readyState="opening";try{e=this.createTransport(e)}catch(e){return this.transports.shift(),void this.open()}e.open(),this.setTransport(e)}},{key:"setTransport",value:function(e){var t=this;this.transport&&this.transport.removeAllListeners(),this.transport=e,e.on("drain",this.onDrain.bind(this)).on("packet",this.onPacket.bind(this)).on("error",this.onError.bind(this)).on("close",(function(e){return t.onClose("transport close",e)}))}},{key:"probe",value:function(e){var t=this,r=this.createTransport(e),a=!1;n.priorWebsocketSuccess=!1;var i=function(){a||(r.send([{type:"ping",data:"probe"}]),r.once("packet",(function(e){if(!a)if("pong"===e.type&&"probe"===e.data){if(t.upgrading=!0,t.emitReserved("upgrading",r),!r)return;n.priorWebsocketSuccess="websocket"===r.name,t.transport.pause((function(){a||"closed"!==t.readyState&&(d(),t.setTransport(r),r.send([{type:"upgrade"}]),t.emitReserved("upgrade",r),r=null,t.upgrading=!1,t.flush())}))}else{var i=new Error("probe error");i.transport=r.name,t.emitReserved("upgradeError",i)}})))};function o(){a||(a=!0,d(),r.close(),r=null)}var s=function(e){var n=new Error("probe error: "+e);n.transport=r.name,o(),t.emitReserved("upgradeError",n)};function l(){s("transport closed")}function c(){s("socket closed")}function u(e){r&&e.name!==r.name&&o()}var d=function(){r.removeListener("open",i),r.removeListener("error",s),r.removeListener("close",l),t.off("close",c),t.off("upgrading",u)};r.once("open",i),r.once("error",s),r.once("close",l),this.once("close",c),this.once("upgrading",u),-1!==this.upgrades.indexOf("webtransport")&&"webtransport"!==e?this.setTimeoutFn((function(){a||r.open()}),200):r.open()}},{key:"onOpen",value:function(){if(this.readyState="open",n.priorWebsocketSuccess="websocket"===this.transport.name,this.emitReserved("open"),this.flush(),"open"===this.readyState&&this.opts.upgrade)for(var e=0,t=this.upgrades.length;e<t;e++)this.probe(this.upgrades[e])}},{key:"onPacket",value:function(e){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState)switch(this.emitReserved("packet",e),this.emitReserved("heartbeat"),this.resetPingTimeout(),e.type){case"open":this.onHandshake(JSON.parse(e.data));break;case"ping":this.sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong");break;case"error":var t=new Error("server error");t.code=e.data,this.onError(t);break;case"message":this.emitReserved("data",e.data),this.emitReserved("message",e.data)}}},{key:"onHandshake",value:function(e){this.emitReserved("handshake",e),this.id=e.sid,this.transport.query.sid=e.sid,this.upgrades=this.filterUpgrades(e.upgrades),this.pingInterval=e.pingInterval,this.pingTimeout=e.pingTimeout,this.maxPayload=e.maxPayload,this.onOpen(),"closed"!==this.readyState&&this.resetPingTimeout()}},{key:"resetPingTimeout",value:function(){var e=this;this.clearTimeoutFn(this.pingTimeoutTimer),this.pingTimeoutTimer=this.setTimeoutFn((function(){e.onClose("ping timeout")}),this.pingInterval+this.pingTimeout),this.opts.autoUnref&&this.pingTimeoutTimer.unref()}},{key:"onDrain",value:function(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,0===this.writeBuffer.length?this.emitReserved("drain"):this.flush()}},{key:"flush",value:function(){if("closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){var e=this.getWritablePackets();this.transport.send(e),this.prevBufferLen=e.length,this.emitReserved("flush")}}},{key:"getWritablePackets",value:function(){if(!(this.maxPayload&&"polling"===this.transport.name&&this.writeBuffer.length>1))return this.writeBuffer;for(var e,t=1,n=0;n<this.writeBuffer.length;n++){var r=this.writeBuffer[n].data;if(r&&(t+="string"==typeof(e=r)?function(e){for(var t=0,n=0,r=0,a=e.length;r<a;r++)(t=e.charCodeAt(r))<128?n+=1:t<2048?n+=2:t<55296||t>=57344?n+=3:(r++,n+=4);return n}(e):Math.ceil(1.33*(e.byteLength||e.size))),n>0&&t>this.maxPayload)return this.writeBuffer.slice(0,n);t+=2}return this.writeBuffer}},{key:"write",value:function(e,t,n){return this.sendPacket("message",e,t,n),this}},{key:"send",value:function(e,t,n){return this.sendPacket("message",e,t,n),this}},{key:"sendPacket",value:function(e,t,n,r){if("function"==typeof t&&(r=t,t=void 0),"function"==typeof n&&(r=n,n=null),"closing"!==this.readyState&&"closed"!==this.readyState){(n=n||{}).compress=!1!==n.compress;var a={type:e,data:t,options:n};this.emitReserved("packetCreate",a),this.writeBuffer.push(a),r&&this.once("flush",r),this.flush()}}},{key:"close",value:function(){var e=this,t=function(){e.onClose("forced close"),e.transport.close()},n=function n(){e.off("upgrade",n),e.off("upgradeError",n),t()},r=function(){e.once("upgrade",n),e.once("upgradeError",n)};return"opening"!==this.readyState&&"open"!==this.readyState||(this.readyState="closing",this.writeBuffer.length?this.once("drain",(function(){e.upgrading?r():t()})):this.upgrading?r():t()),this}},{key:"onError",value:function(e){n.priorWebsocketSuccess=!1,this.emitReserved("error",e),this.onClose("transport error",e)}},{key:"onClose",value:function(e,t){"opening"!==this.readyState&&"open"!==this.readyState&&"closing"!==this.readyState||(this.clearTimeoutFn(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),"function"==typeof removeEventListener&&(removeEventListener("beforeunload",this.beforeunloadEventListener,!1),removeEventListener("offline",this.offlineEventListener,!1)),this.readyState="closed",this.id=null,this.emitReserved("close",e,t),this.writeBuffer=[],this.prevBufferLen=0)}},{key:"filterUpgrades",value:function(e){for(var t=[],n=0,r=e.length;n<r;n++)~this.transports.indexOf(e[n])&&t.push(e[n]);return t}}]),n}(tc);Oc.protocol=4;var Fc="function"==typeof ArrayBuffer,Lc=function(e){return"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer},Dc=Object.prototype.toString,Mc="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===Dc.call(Blob),Pc="function"==typeof File||"undefined"!=typeof File&&"[object FileConstructor]"===Dc.call(File);function qc(e){return Fc&&(e instanceof ArrayBuffer||Lc(e))||Mc&&e instanceof Blob||Pc&&e instanceof File}function jc(e,t){if(!e||"object"!==Z(e))return!1;if(Array.isArray(e)){for(var n=0,r=e.length;n<r;n++)if(jc(e[n]))return!0;return!1}if(qc(e))return!0;if(e.toJSON&&"function"==typeof e.toJSON&&1===arguments.length)return jc(e.toJSON(),!0);for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)&&jc(e[a]))return!0;return!1}function Bc(e){var t=[],n=e;return n.data=Uc(e.data,t),n.attachments=t.length,{packet:n,buffers:t}}function Uc(e,t){if(!e)return e;if(qc(e)){var n={_placeholder:!0,num:t.length};return t.push(e),n}if(Array.isArray(e)){for(var r=new Array(e.length),a=0;a<e.length;a++)r[a]=Uc(e[a],t);return r}if("object"===Z(e)&&!(e instanceof Date)){var i={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(i[o]=Uc(e[o],t));return i}return e}function zc(e,t){return e.data=Gc(e.data,t),delete e.attachments,e}function Gc(e,t){if(!e)return e;if(e&&!0===e._placeholder){if("number"==typeof e.num&&e.num>=0&&e.num<t.length)return t[e.num];throw new Error("illegal attachments")}if(Array.isArray(e))for(var n=0;n<e.length;n++)e[n]=Gc(e[n],t);else if("object"===Z(e))for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(e[r]=Gc(e[r],t));return e}var Hc,$c=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"];!function(e){e[e.CONNECT=0]="CONNECT",e[e.DISCONNECT=1]="DISCONNECT",e[e.EVENT=2]="EVENT",e[e.ACK=3]="ACK",e[e.CONNECT_ERROR=4]="CONNECT_ERROR",e[e.BINARY_EVENT=5]="BINARY_EVENT",e[e.BINARY_ACK=6]="BINARY_ACK"}(Hc||(Hc={}));var Jc=function(){function e(t){ee(this,e),this.replacer=t}return ne(e,[{key:"encode",value:function(e){return e.type!==Hc.EVENT&&e.type!==Hc.ACK||!jc(e)?[this.encodeAsString(e)]:this.encodeAsBinary({type:e.type===Hc.EVENT?Hc.BINARY_EVENT:Hc.BINARY_ACK,nsp:e.nsp,data:e.data,id:e.id})}},{key:"encodeAsString",value:function(e){var t=""+e.type;return e.type!==Hc.BINARY_EVENT&&e.type!==Hc.BINARY_ACK||(t+=e.attachments+"-"),e.nsp&&"/"!==e.nsp&&(t+=e.nsp+","),null!=e.id&&(t+=e.id),null!=e.data&&(t+=JSON.stringify(e.data,this.replacer)),t}},{key:"encodeAsBinary",value:function(e){var t=Bc(e),n=this.encodeAsString(t.packet),r=t.buffers;return r.unshift(n),r}}]),e}();function Vc(e){return"[object Object]"===Object.prototype.toString.call(e)}var Wc=function(e){ae(n,e);var t=de(n);function n(e){var r;return ee(this,n),(r=t.call(this)).reviver=e,r}return ne(n,[{key:"add",value:function(e){var t;if("string"==typeof e){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");var r=(t=this.decodeString(e)).type===Hc.BINARY_EVENT;r||t.type===Hc.BINARY_ACK?(t.type=r?Hc.EVENT:Hc.ACK,this.reconstructor=new Kc(t),0===t.attachments&&fe(ie(n.prototype),"emitReserved",this).call(this,"decoded",t)):fe(ie(n.prototype),"emitReserved",this).call(this,"decoded",t)}else{if(!qc(e)&&!e.base64)throw new Error("Unknown type: "+e);if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");(t=this.reconstructor.takeBinaryData(e))&&(this.reconstructor=null,fe(ie(n.prototype),"emitReserved",this).call(this,"decoded",t))}}},{key:"decodeString",value:function(e){var t=0,r={type:Number(e.charAt(0))};if(void 0===Hc[r.type])throw new Error("unknown packet type "+r.type);if(r.type===Hc.BINARY_EVENT||r.type===Hc.BINARY_ACK){for(var a=t+1;"-"!==e.charAt(++t)&&t!=e.length;);var i=e.substring(a,t);if(i!=Number(i)||"-"!==e.charAt(t))throw new Error("Illegal attachments");r.attachments=Number(i)}if("/"===e.charAt(t+1)){for(var o=t+1;++t&&","!==e.charAt(t)&&t!==e.length;);r.nsp=e.substring(o,t)}else r.nsp="/";var s=e.charAt(t+1);if(""!==s&&Number(s)==s){for(var l=t+1;++t;){var c=e.charAt(t);if(null==c||Number(c)!=c){--t;break}if(t===e.length)break}r.id=Number(e.substring(l,t+1))}if(e.charAt(++t)){var u=this.tryParse(e.substr(t));if(!n.isPayloadValid(r.type,u))throw new Error("invalid payload");r.data=u}return r}},{key:"tryParse",value:function(e){try{return JSON.parse(e,this.reviver)}catch(e){return!1}}},{key:"destroy",value:function(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}],[{key:"isPayloadValid",value:function(e,t){switch(e){case Hc.CONNECT:return Vc(t);case Hc.DISCONNECT:return void 0===t;case Hc.CONNECT_ERROR:return"string"==typeof t||Vc(t);case Hc.EVENT:case Hc.BINARY_EVENT:return Array.isArray(t)&&("number"==typeof t[0]||"string"==typeof t[0]&&-1===$c.indexOf(t[0]));case Hc.ACK:case Hc.BINARY_ACK:return Array.isArray(t)}}}]),n}(tc),Kc=function(){function e(t){ee(this,e),this.packet=t,this.buffers=[],this.reconPack=t}return ne(e,[{key:"takeBinaryData",value:function(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){var t=zc(this.reconPack,this.buffers);return this.finishedReconstruction(),t}return null}},{key:"finishedReconstruction",value:function(){this.reconPack=null,this.buffers=[]}}]),e}(),Yc={__proto__:null,protocol:5,get PacketType(){return Hc},Encoder:Jc,Decoder:Wc};function Zc(e,t,n){return e.on(t,n),function(){e.off(t,n)}}var Xc=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1}),Qc=function(e){ae(n,e);var t=de(n);function n(e,r,a){var i;return ee(this,n),(i=t.call(this)).connected=!1,i.recovered=!1,i.receiveBuffer=[],i.sendBuffer=[],i._queue=[],i._queueSeq=0,i.ids=0,i.acks={},i.flags={},i.io=e,i.nsp=r,a&&a.auth&&(i.auth=a.auth),i._opts=Object.assign({},a),i.io._autoConnect&&i.open(),i}return ne(n,[{key:"disconnected",get:function(){return!this.connected}},{key:"subEvents",value:function(){if(!this.subs){var e=this.io;this.subs=[Zc(e,"open",this.onopen.bind(this)),Zc(e,"packet",this.onpacket.bind(this)),Zc(e,"error",this.onerror.bind(this)),Zc(e,"close",this.onclose.bind(this))]}}},{key:"active",get:function(){return!!this.subs}},{key:"connect",value:function(){return this.connected||(this.subEvents(),this.io._reconnecting||this.io.open(),"open"===this.io._readyState&&this.onopen()),this}},{key:"open",value:function(){return this.connect()}},{key:"send",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.unshift("message"),this.emit.apply(this,t),this}},{key:"emit",value:function(e){if(Xc.hasOwnProperty(e))throw new Error('"'+e.toString()+'" is a reserved event name');for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];if(n.unshift(e),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(n),this;var a={type:Hc.EVENT,data:n,options:{}};if(a.options.compress=!1!==this.flags.compress,"function"==typeof n[n.length-1]){var i=this.ids++,o=n.pop();this._registerAckCallback(i,o),a.id=i}return this.flags.volatile&&(!(this.io.engine&&this.io.engine.transport&&this.io.engine.transport.writable)||!this.connected)||(this.connected?(this.notifyOutgoingListeners(a),this.packet(a)):this.sendBuffer.push(a)),this.flags={},this}},{key:"_registerAckCallback",value:function(e,t){var n,r=this,a=null!==(n=this.flags.timeout)&&void 0!==n?n:this._opts.ackTimeout;if(void 0!==a){var i=this.io.setTimeoutFn((function(){delete r.acks[e];for(var n=0;n<r.sendBuffer.length;n++)r.sendBuffer[n].id===e&&r.sendBuffer.splice(n,1);t.call(r,new Error("operation has timed out"))}),a);this.acks[e]=function(){r.io.clearTimeoutFn(i);for(var e=arguments.length,n=new Array(e),a=0;a<e;a++)n[a]=arguments[a];t.apply(r,[null].concat(n))}}else this.acks[e]=t}},{key:"emitWithAck",value:function(e){for(var t=this,n=arguments.length,r=new Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];var i=void 0!==this.flags.timeout||void 0!==this._opts.ackTimeout;return new Promise((function(n,a){r.push((function(e,t){return i?e?a(e):n(t):n(e)})),t.emit.apply(t,[e].concat(r))}))}},{key:"_addToQueue",value:function(e){var t,n=this;"function"==typeof e[e.length-1]&&(t=e.pop());var r={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push((function(e){if(r===n._queue[0]){if(null!==e)r.tryCount>n._opts.retries&&(n._queue.shift(),t&&t(e));else if(n._queue.shift(),t){for(var a=arguments.length,i=new Array(a>1?a-1:0),o=1;o<a;o++)i[o-1]=arguments[o];t.apply(void 0,[null].concat(i))}return r.pending=!1,n._drainQueue()}})),this._queue.push(r),this._drainQueue()}},{key:"_drainQueue",value:function(){if(this.connected&&0!==this._queue.length){var e=this._queue[0];e.pending&&!(arguments.length>0&&void 0!==arguments[0]&&arguments[0])||(e.pending=!0,e.tryCount++,this.flags=e.flags,this.emit.apply(this,e.args))}}},{key:"packet",value:function(e){e.nsp=this.nsp,this.io._packet(e)}},{key:"onopen",value:function(){var e=this;"function"==typeof this.auth?this.auth((function(t){e._sendConnectPacket(t)})):this._sendConnectPacket(this.auth)}},{key:"_sendConnectPacket",value:function(e){this.packet({type:Hc.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}},{key:"onerror",value:function(e){this.connected||this.emitReserved("connect_error",e)}},{key:"onclose",value:function(e,t){this.connected=!1,delete this.id,this.emitReserved("disconnect",e,t)}},{key:"onpacket",value:function(e){if(e.nsp===this.nsp)switch(e.type){case Hc.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case Hc.EVENT:case Hc.BINARY_EVENT:this.onevent(e);break;case Hc.ACK:case Hc.BINARY_ACK:this.onack(e);break;case Hc.DISCONNECT:this.ondisconnect();break;case Hc.CONNECT_ERROR:this.destroy();var t=new Error(e.data.message);t.data=e.data.data,this.emitReserved("connect_error",t)}}},{key:"onevent",value:function(e){var t=e.data||[];null!=e.id&&t.push(this.ack(e.id)),this.connected?this.emitEvent(t):this.receiveBuffer.push(Object.freeze(t))}},{key:"emitEvent",value:function(e){if(this._anyListeners&&this._anyListeners.length){var t,r=we(this._anyListeners.slice());try{for(r.s();!(t=r.n()).done;)t.value.apply(this,e)}catch(e){r.e(e)}finally{r.f()}}fe(ie(n.prototype),"emit",this).apply(this,e),this._pid&&e.length&&"string"==typeof e[e.length-1]&&(this._lastOffset=e[e.length-1])}},{key:"ack",value:function(e){var t=this,n=!1;return function(){if(!n){n=!0;for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];t.packet({type:Hc.ACK,id:e,data:a})}}}},{key:"onack",value:function(e){var t=this.acks[e.id];"function"==typeof t&&(t.apply(this,e.data),delete this.acks[e.id])}},{key:"onconnect",value:function(e,t){this.id=e,this.recovered=t&&this._pid===t,this._pid=t,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}},{key:"emitBuffered",value:function(){var e=this;this.receiveBuffer.forEach((function(t){return e.emitEvent(t)})),this.receiveBuffer=[],this.sendBuffer.forEach((function(t){e.notifyOutgoingListeners(t),e.packet(t)})),this.sendBuffer=[]}},{key:"ondisconnect",value:function(){this.destroy(),this.onclose("io server disconnect")}},{key:"destroy",value:function(){this.subs&&(this.subs.forEach((function(e){return e()})),this.subs=void 0),this.io._destroy(this)}},{key:"disconnect",value:function(){return this.connected&&this.packet({type:Hc.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}},{key:"close",value:function(){return this.disconnect()}},{key:"compress",value:function(e){return this.flags.compress=e,this}},{key:"volatile",get:function(){return this.flags.volatile=!0,this}},{key:"timeout",value:function(e){return this.flags.timeout=e,this}},{key:"onAny",value:function(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}},{key:"prependAny",value:function(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}},{key:"offAny",value:function(e){if(!this._anyListeners)return this;if(e){for(var t=this._anyListeners,n=0;n<t.length;n++)if(e===t[n])return t.splice(n,1),this}else this._anyListeners=[];return this}},{key:"listenersAny",value:function(){return this._anyListeners||[]}},{key:"onAnyOutgoing",value:function(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(e),this}},{key:"prependAnyOutgoing",value:function(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(e),this}},{key:"offAnyOutgoing",value:function(e){if(!this._anyOutgoingListeners)return this;if(e){for(var t=this._anyOutgoingListeners,n=0;n<t.length;n++)if(e===t[n])return t.splice(n,1),this}else this._anyOutgoingListeners=[];return this}},{key:"listenersAnyOutgoing",value:function(){return this._anyOutgoingListeners||[]}},{key:"notifyOutgoingListeners",value:function(e){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){var t,n=we(this._anyOutgoingListeners.slice());try{for(n.s();!(t=n.n()).done;)t.value.apply(this,e.data)}catch(e){n.e(e)}finally{n.f()}}}}]),n}(tc);function eu(e){this.ms=(e=e||{}).min||100,this.max=e.max||1e4,this.factor=e.factor||2,this.jitter=e.jitter>0&&e.jitter<=1?e.jitter:0,this.attempts=0}eu.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),n=Math.floor(t*this.jitter*e);e=0==(1&Math.floor(10*t))?e-n:e+n}return 0|Math.min(e,this.max)},eu.prototype.reset=function(){this.attempts=0},eu.prototype.setMin=function(e){this.ms=e},eu.prototype.setMax=function(e){this.max=e},eu.prototype.setJitter=function(e){this.jitter=e};var tu=function(e){ae(n,e);var t=de(n);function n(e,r){var a,i;ee(this,n),(a=t.call(this)).nsps={},a.subs=[],e&&"object"===Z(e)&&(r=e,e=void 0),(r=r||{}).path=r.path||"/socket.io",a.opts=r,oc(ue(a),r),a.reconnection(!1!==r.reconnection),a.reconnectionAttempts(r.reconnectionAttempts||Infinity),a.reconnectionDelay(r.reconnectionDelay||1e3),a.reconnectionDelayMax(r.reconnectionDelayMax||5e3),a.randomizationFactor(null!==(i=r.randomizationFactor)&&void 0!==i?i:.5),a.backoff=new eu({min:a.reconnectionDelay(),max:a.reconnectionDelayMax(),jitter:a.randomizationFactor()}),a.timeout(null==r.timeout?2e4:r.timeout),a._readyState="closed",a.uri=e;var o=r.parser||Yc;return a.encoder=new o.Encoder,a.decoder=new o.Decoder,a._autoConnect=!1!==r.autoConnect,a._autoConnect&&a.open(),a}return ne(n,[{key:"reconnection",value:function(e){return arguments.length?(this._reconnection=!!e,this):this._reconnection}},{key:"reconnectionAttempts",value:function(e){return void 0===e?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}},{key:"reconnectionDelay",value:function(e){var t;return void 0===e?this._reconnectionDelay:(this._reconnectionDelay=e,null===(t=this.backoff)||void 0===t||t.setMin(e),this)}},{key:"randomizationFactor",value:function(e){var t;return void 0===e?this._randomizationFactor:(this._randomizationFactor=e,null===(t=this.backoff)||void 0===t||t.setJitter(e),this)}},{key:"reconnectionDelayMax",value:function(e){var t;return void 0===e?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,null===(t=this.backoff)||void 0===t||t.setMax(e),this)}},{key:"timeout",value:function(e){return arguments.length?(this._timeout=e,this):this._timeout}},{key:"maybeReconnectOnOpen",value:function(){!this._reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()}},{key:"open",value:function(e){var t=this;if(~this._readyState.indexOf("open"))return this;this.engine=new Oc(this.uri,this.opts);var n=this.engine,r=this;this._readyState="opening",this.skipReconnect=!1;var a=Zc(n,"open",(function(){r.onopen(),e&&e()})),i=function(n){t.cleanup(),t._readyState="closed",t.emitReserved("error",n),e?e(n):t.maybeReconnectOnOpen()},o=Zc(n,"error",i);if(!1!==this._timeout){var s=this.setTimeoutFn((function(){a(),i(new Error("timeout")),n.close()}),this._timeout);this.opts.autoUnref&&s.unref(),this.subs.push((function(){t.clearTimeoutFn(s)}))}return this.subs.push(a),this.subs.push(o),this}},{key:"connect",value:function(e){return this.open(e)}},{key:"onopen",value:function(){this.cleanup(),this._readyState="open",this.emitReserved("open");var e=this.engine;this.subs.push(Zc(e,"ping",this.onping.bind(this)),Zc(e,"data",this.ondata.bind(this)),Zc(e,"error",this.onerror.bind(this)),Zc(e,"close",this.onclose.bind(this)),Zc(this.decoder,"decoded",this.ondecoded.bind(this)))}},{key:"onping",value:function(){this.emitReserved("ping")}},{key:"ondata",value:function(e){try{this.decoder.add(e)}catch(e){this.onclose("parse error",e)}}},{key:"ondecoded",value:function(e){var t=this;Sc((function(){t.emitReserved("packet",e)}),this.setTimeoutFn)}},{key:"onerror",value:function(e){this.emitReserved("error",e)}},{key:"socket",value:function(e,t){var n=this.nsps[e];return n?this._autoConnect&&!n.active&&n.connect():(n=new Qc(this,e,t),this.nsps[e]=n),n}},{key:"_destroy",value:function(e){for(var t=0,n=Object.keys(this.nsps);t<n.length;t++)if(this.nsps[n[t]].active)return;this._close()}},{key:"_packet",value:function(e){for(var t=this.encoder.encode(e),n=0;n<t.length;n++)this.engine.write(t[n],e.options)}},{key:"cleanup",value:function(){this.subs.forEach((function(e){return e()})),this.subs.length=0,this.decoder.destroy()}},{key:"_close",value:function(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close"),this.engine&&this.engine.close()}},{key:"disconnect",value:function(){return this._close()}},{key:"onclose",value:function(e,t){this.cleanup(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",e,t),this._reconnection&&!this.skipReconnect&&this.reconnect()}},{key:"reconnect",value:function(){var e=this;if(this._reconnecting||this.skipReconnect)return this;var t=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{var n=this.backoff.duration();this._reconnecting=!0;var r=this.setTimeoutFn((function(){t.skipReconnect||(e.emitReserved("reconnect_attempt",t.backoff.attempts),t.skipReconnect||t.open((function(n){n?(t._reconnecting=!1,t.reconnect(),e.emitReserved("reconnect_error",n)):t.onreconnect()})))}),n);this.opts.autoUnref&&r.unref(),this.subs.push((function(){e.clearTimeoutFn(r)}))}}},{key:"onreconnect",value:function(){var e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",e)}}]),n}(tc),nu={};function ru(e,t){"object"===Z(e)&&(t=e,e=void 0);var n,r=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2?arguments[2]:void 0,r=e;n=n||"undefined"!=typeof location&&location,null==e&&(e=n.protocol+"//"+n.host),"string"==typeof e&&("/"===e.charAt(0)&&(e="/"===e.charAt(1)?n.protocol+e:n.host+e),/^(https?|wss?):\/\//.test(e)||(e=void 0!==n?n.protocol+"//"+e:"https://"+e),r=Tc(e)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port="80":/^(http|ws)s$/.test(r.protocol)&&(r.port="443")),r.path=r.path||"/";var a=-1!==r.host.indexOf(":")?"["+r.host+"]":r.host;return r.id=r.protocol+"://"+a+":"+r.port+t,r.href=r.protocol+"://"+a+(n&&n.port===r.port?"":":"+r.port),r}(e,(t=t||{}).path||"/socket.io"),a=r.source,i=r.id;return t.forceNew||t["force new connection"]||!1===t.multiplex||nu[i]&&r.path in nu[i].nsps?n=new tu(a,t):(nu[i]||(nu[i]=new tu(a,t)),n=nu[i]),r.query&&!t.query&&(t.query=r.queryKey),n.socket(r.path,t)}function au(){}function iu(){iu.init.call(this)}function ou(e){return void 0===e._maxListeners?iu.defaultMaxListeners:e._maxListeners}function su(e,t,n,r){var a,i,o;if("function"!=typeof n)throw new TypeError('"listener" argument must be a function');if((i=e._events)?(i.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),i=e._events),o=i[t]):(i=e._events=new au,e._eventsCount=0),o){if("function"==typeof o?o=i[t]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),!o.warned&&(a=ou(e))&&a>0&&o.length>a){o.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=o.length,function(e){"function"==typeof console.warn?console.warn(e):console.log(e)}(s)}}else o=i[t]=n,++e._eventsCount;return e}function lu(e,t,n){var r=!1;function a(){e.removeListener(t,a),r||(r=!0,n.apply(e,arguments))}return a.listener=n,a}function cu(e){var t=this._events;if(t){var n=t[e];if("function"==typeof n)return 1;if(n)return n.length}return 0}function uu(e,t){for(var n=new Array(t);t--;)n[t]=e[t];return n}Object.assign(ru,{Manager:tu,Socket:Qc,io:ru,connect:ru}),au.prototype=Object.create(null),iu.EventEmitter=iu,iu.usingDomains=!1,iu.prototype.domain=void 0,iu.prototype._events=void 0,iu.prototype._maxListeners=void 0,iu.defaultMaxListeners=10,iu.init=function(){this.domain=null,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new au,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},iu.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=e,this},iu.prototype.getMaxListeners=function(){return ou(this)},iu.prototype.emit=function(e){var t,n,r,a,i,o,s,l="error"===e;if(o=this._events)l=l&&null==o.error;else if(!l)return!1;if(s=this.domain,l){if(t=arguments[1],!s){if(t instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=s,t.domainThrown=!1,s.emit("error",t),!1}if(!(n=o[e]))return!1;var u="function"==typeof n;switch(r=arguments.length){case 1:!function(e,t,n){if(t)e.call(n);else for(var r=e.length,a=uu(e,r),i=0;i<r;++i)a[i].call(n)}(n,u,this);break;case 2:!function(e,t,n,r){if(t)e.call(n,r);else for(var a=e.length,i=uu(e,a),o=0;o<a;++o)i[o].call(n,r)}(n,u,this,arguments[1]);break;case 3:!function(e,t,n,r,a){if(t)e.call(n,r,a);else for(var i=e.length,o=uu(e,i),s=0;s<i;++s)o[s].call(n,r,a)}(n,u,this,arguments[1],arguments[2]);break;case 4:!function(e,t,n,r,a,i){if(t)e.call(n,r,a,i);else for(var o=e.length,s=uu(e,o),l=0;l<o;++l)s[l].call(n,r,a,i)}(n,u,this,arguments[1],arguments[2],arguments[3]);break;default:for(a=new Array(r-1),i=1;i<r;i++)a[i-1]=arguments[i];!function(e,t,n,r){if(t)e.apply(n,r);else for(var a=e.length,i=uu(e,a),o=0;o<a;++o)i[o].apply(n,r)}(n,u,this,a)}return!0},iu.prototype.on=iu.prototype.addListener=function(e,t){return su(this,e,t,!1)},iu.prototype.prependListener=function(e,t){return su(this,e,t,!0)},iu.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.on(e,lu(this,e,t)),this},iu.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.prependListener(e,lu(this,e,t)),this},iu.prototype.removeListener=function(e,t){var n,r,a,i,o;if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');if(!(r=this._events))return this;if(!(n=r[e]))return this;if(n===t||n.listener&&n.listener===t)0==--this._eventsCount?this._events=new au:(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(a=-1,i=n.length;i-- >0;)if(n[i]===t||n[i].listener&&n[i].listener===t){o=n[i].listener,a=i;break}if(a<0)return this;if(1===n.length){if(n[0]=void 0,0==--this._eventsCount)return this._events=new au,this;delete r[e]}else!function(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}(n,a);r.removeListener&&this.emit("removeListener",e,o||t)}return this},iu.prototype.removeAllListeners=function(e){var t,n;if(!(n=this._events))return this;if(!n.removeListener)return 0===arguments.length?(this._events=new au,this._eventsCount=0):n[e]&&(0==--this._eventsCount?this._events=new au:delete n[e]),this;if(0===arguments.length){for(var r,a=Object.keys(n),i=0;i<a.length;++i)"removeListener"!==(r=a[i])&&this.removeAllListeners(r);return this.removeAllListeners("removeListener"),this._events=new au,this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(t)do{this.removeListener(e,t[t.length-1])}while(t[0]);return this},iu.prototype.listeners=function(e){var t,n,r=this._events;return n=r&&(t=r[e])?"function"==typeof t?[t.listener||t]:function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(t):[],n},iu.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):cu.call(e,t)},iu.prototype.listenerCount=cu,iu.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};var du="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e},fu=/%[sdj%]/g;function hu(e){if(!Au(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(yu(arguments[n]));return t.join(" ")}n=1;for(var r=arguments,a=r.length,i=String(e).replace(fu,(function(e){if("%%"===e)return"%";if(n>=a)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),o=r[n];n<a;o=r[++n])Eu(o)||!Nu(o)?i+=" "+o:i+=" "+yu(o);return i}function pu(e,t){if(Cu(pt.process))return function(){return pu(e,t).apply(this,arguments)};if(!0===jt.noDeprecation)return e;var n=!1;return function(){if(!n){if(jt.throwDeprecation)throw new Error(t);jt.traceDeprecation?console.trace(t):console.error(t),n=!0}return e.apply(this,arguments)}}var mu,gu={};function _u(e){return Cu(mu)&&(mu=jt.env.NODE_DEBUG||""),e=e.toUpperCase(),gu[e]||(gu[e]=new RegExp("\\b"+e+"\\b","i").test(mu)?function(){var t=hu.apply(null,arguments);console.error("%s %d: %s",e,0,t)}:function(){}),gu[e]}function yu(e,t){var n={seen:[],stylize:bu};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),ku(t)?n.showHidden=t:t&&function(e,t){if(!t||!Nu(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]]}(n,t),Cu(n.showHidden)&&(n.showHidden=!1),Cu(n.depth)&&(n.depth=2),Cu(n.colors)&&(n.colors=!1),Cu(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=vu),wu(n,e,n.depth)}function vu(e,t){var n=yu.styles[t];return n?"["+yu.colors[n][0]+"m"+e+"["+yu.colors[n][1]+"m":e}function bu(e,t){return e}function wu(e,t,n){if(e.customInspect&&t&&Ou(t.inspect)&&t.inspect!==yu&&(!t.constructor||t.constructor.prototype!==t)){var r=t.inspect(n,e);return Au(r)||(r=wu(e,r,n)),r}var a=function(e,t){if(Cu(t))return e.stylize("undefined","undefined");if(Au(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return"number"==typeof t?e.stylize(""+t,"number"):ku(t)?e.stylize(""+t,"boolean"):Eu(t)?e.stylize("null","null"):void 0}(e,t);if(a)return a;var i=Object.keys(t),o=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(i);if(e.showHidden&&(i=Object.getOwnPropertyNames(t)),Tu(t)&&(i.indexOf("message")>=0||i.indexOf("description")>=0))return xu(t);if(0===i.length){if(Ou(t))return e.stylize("[Function"+(t.name?": "+t.name:"")+"]","special");if(Ru(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(Iu(t))return e.stylize(Date.prototype.toString.call(t),"date");if(Tu(t))return xu(t)}var s,l="",c=!1,u=["{","}"];return Array.isArray(t)&&(c=!0,u=["[","]"]),Ou(t)&&(l=" [Function"+(t.name?": "+t.name:"")+"]"),Ru(t)&&(l=" "+RegExp.prototype.toString.call(t)),Iu(t)&&(l=" "+Date.prototype.toUTCString.call(t)),Tu(t)&&(l=" "+xu(t)),0!==i.length||c&&0!=t.length?n<0?Ru(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),s=c?function(e,t,n,r,a){for(var i=[],o=0,s=t.length;o<s;++o)Lu(t,String(o))?i.push(Su(e,t,n,r,String(o),!0)):i.push("");return a.forEach((function(a){a.match(/^\d+$/)||i.push(Su(e,t,n,r,a,!0))})),i}(e,t,n,o,i):i.map((function(r){return Su(e,t,n,o,r,c)})),e.seen.pop(),function(e,t,n){var r=e.reduce((function(e,t){return t.indexOf("\n"),e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0);return r>60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}(s,l,u)):u[0]+l+u[1]}function xu(e){return"["+Error.prototype.toString.call(e)+"]"}function Su(e,t,n,r,a,i){var o,s,l;if((l=Object.getOwnPropertyDescriptor(t,a)||{value:t[a]}).get?s=e.stylize(l.set?"[Getter/Setter]":"[Getter]","special"):l.set&&(s=e.stylize("[Setter]","special")),Lu(r,a)||(o="["+a+"]"),s||(e.seen.indexOf(l.value)<0?(s=Eu(n)?wu(e,l.value,null):wu(e,l.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),Cu(o)){if(i&&a.match(/^\d+$/))return s;(o=JSON.stringify(""+a)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+s}function ku(e){return"boolean"==typeof e}function Eu(e){return null===e}function Au(e){return"string"==typeof e}function Cu(e){return void 0===e}function Ru(e){return Nu(e)&&"[object RegExp]"===Fu(e)}function Nu(e){return"object"===Z(e)&&null!==e}function Iu(e){return Nu(e)&&"[object Date]"===Fu(e)}function Tu(e){return Nu(e)&&("[object Error]"===Fu(e)||e instanceof Error)}function Ou(e){return"function"==typeof e}function Fu(e){return Object.prototype.toString.call(e)}function Lu(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Du(){this.head=null,this.tail=null,this.length=0}yu.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},yu.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},Du.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},Du.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},Du.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return this.head=1===this.length?this.tail=null:this.head.next,--this.length,e}},Du.prototype.clear=function(){this.head=this.tail=null,this.length=0},Du.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n},Du.prototype.concat=function(e){if(0===this.length)return Xt.alloc(0);if(1===this.length)return this.head.data;for(var t=Xt.allocUnsafe(e>>>0),n=this.head,r=0;n;)n.data.copy(t,r),r+=n.data.length,n=n.next;return t};var Mu=Xt.isEncoding||function(e){switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function Pu(e){switch(this.encoding=(e||"utf8").toLowerCase().replace(/[-_]/,""),function(e){if(e&&!Mu(e))throw new Error("Unknown encoding: "+e)}(e),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=ju;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=Bu;break;default:return void(this.write=qu)}this.charBuffer=new Xt(6),this.charReceived=0,this.charLength=0}function qu(e){return e.toString(this.encoding)}function ju(e){this.charReceived=e.length%2,this.charLength=this.charReceived?2:0}function Bu(e){this.charReceived=e.length%3,this.charLength=this.charReceived?3:0}Pu.prototype.write=function(e){for(var t="";this.charLength;){var n=e.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:e.length;if(e.copy(this.charBuffer,this.charReceived,0,n),this.charReceived+=n,this.charReceived<this.charLength)return"";if(e=e.slice(n,e.length),!((r=(t=this.charBuffer.slice(0,this.charLength).toString(this.encoding)).charCodeAt(t.length-1))>=55296&&r<=56319)){if(this.charReceived=this.charLength=0,0===e.length)return t;break}this.charLength+=this.surrogateSize,t=""}this.detectIncompleteChar(e);var r,a=e.length;if(this.charLength&&(e.copy(this.charBuffer,0,e.length-this.charReceived,a),a-=this.charReceived),(r=(t+=e.toString(this.encoding,0,a)).charCodeAt(a=t.length-1))>=55296&&r<=56319){var i=this.surrogateSize;return this.charLength+=i,this.charReceived+=i,this.charBuffer.copy(this.charBuffer,i,0,i),e.copy(this.charBuffer,0,0,i),t.substring(0,a)}return t},Pu.prototype.detectIncompleteChar=function(e){for(var t=e.length>=3?3:e.length;t>0;t--){var n=e[e.length-t];if(1==t&&n>>5==6){this.charLength=2;break}if(t<=2&&n>>4==14){this.charLength=3;break}if(t<=3&&n>>3==30){this.charLength=4;break}}this.charReceived=t},Pu.prototype.end=function(e){var t="";if(e&&e.length&&(t=this.write(e)),this.charReceived){var n=this.encoding;t+=this.charBuffer.slice(0,this.charReceived).toString(n)}return t},Gu.ReadableState=zu;var Uu=_u("stream");function zu(e,t){this.objectMode=!!(e=e||{}).objectMode,t instanceof _d&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var n=e.highWaterMark;this.highWaterMark=n||0===n?n:this.objectMode?16:16384,this.highWaterMark=~~this.highWaterMark,this.buffer=new Du,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(this.decoder=new Pu(e.encoding),this.encoding=e.encoding)}function Gu(e){if(!(this instanceof Gu))return new Gu(e);this._readableState=new zu(e,this),this.readable=!0,e&&"function"==typeof e.read&&(this._read=e.read),iu.call(this)}function Hu(e,t,n,r,a){var i=function(e,t){var n=null;return Mn(t)||"string"==typeof t||null==t||e.objectMode||(n=new TypeError("Invalid non-string/buffer chunk")),n}(t,n);if(i)e.emit("error",i);else if(null===n)t.reading=!1,function(e,t){if(!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,Vu(e)}}(e,t);else if(t.objectMode||n&&n.length>0)if(t.ended&&!a){var o=new Error("stream.push() after EOF");e.emit("error",o)}else if(t.endEmitted&&a){var s=new Error("stream.unshift() after end event");e.emit("error",s)}else{var l;!t.decoder||a||r||(n=t.decoder.write(n),l=!t.objectMode&&0===n.length),a||(t.reading=!1),l||(t.flowing&&0===t.length&&!t.sync?(e.emit("data",n),e.read(0)):(t.length+=t.objectMode?1:n.length,a?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&Vu(e))),function(e,t){t.readingMore||(t.readingMore=!0,At(Ku,e,t))}(e,t)}else a||(t.reading=!1);return function(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||0===e.length)}(t)}du(Gu,iu),Gu.prototype.push=function(e,t){var n=this._readableState;return n.objectMode||"string"!=typeof e||(t=t||n.defaultEncoding)!==n.encoding&&(e=Xt.from(e,t),t=""),Hu(this,n,e,t,!1)},Gu.prototype.unshift=function(e){return Hu(this,this._readableState,e,"",!0)},Gu.prototype.isPaused=function(){return!1===this._readableState.flowing},Gu.prototype.setEncoding=function(e){return this._readableState.decoder=new Pu(e),this._readableState.encoding=e,this};var $u=8388608;function Ju(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!=e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=function(e){return e>=$u?e=$u:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function Vu(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(Uu("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?At(Wu,e):Wu(e))}function Wu(e){Uu("emit readable"),e.emit("readable"),Xu(e)}function Ku(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(Uu("maybeReadMore read 0"),e.read(0),n!==t.length);)n=t.length;t.readingMore=!1}function Yu(e){Uu("readable nexttick read 0"),e.read(0)}function Zu(e,t){t.reading||(Uu("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),Xu(e),t.flowing&&!t.reading&&e.read(0)}function Xu(e){var t=e._readableState;for(Uu("flow",t.flowing);t.flowing&&null!==e.read(););}function Qu(e,t){return 0===t.length?null:(t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;return e<t.head.data.length?(r=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):r=e===t.head.data.length?t.shift():n?function(e,t){var n=t.head,r=1,a=n.data;for(e-=a.length;n=n.next;){var i=n.data,o=e>i.length?i.length:e;if(a+=o===i.length?i:i.slice(0,e),0==(e-=o)){o===i.length?(++r,t.head=n.next?n.next:t.tail=null):(t.head=n,n.data=i.slice(o));break}++r}return t.length-=r,a}(e,t):function(e,t){var n=Xt.allocUnsafe(e),r=t.head,a=1;for(r.data.copy(n),e-=r.data.length;r=r.next;){var i=r.data,o=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,o),0==(e-=o)){o===i.length?(++a,t.head=r.next?r.next:t.tail=null):(t.head=r,r.data=i.slice(o));break}++a}return t.length-=a,n}(e,t),r}(e,t.buffer,t.decoder),n);var n}function ed(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,At(td,t,e))}function td(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function nd(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}function rd(){}function ad(e,t,n){this.chunk=e,this.encoding=t,this.callback=n,this.next=null}function id(e,t){Object.defineProperty(this,"buffer",{get:pu((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.")}),this.objectMode=!!(e=e||{}).objectMode,t instanceof _d&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var n=e.highWaterMark;this.highWaterMark=n||0===n?n:this.objectMode?16:16384,this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.decodeStrings=!(!1===e.decodeStrings),this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,a=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,a){--t.pendingcb,n?At(a,r):a(r),e._writableState.errorEmitted=!0,e.emit("error",r)}(e,n,r,t,a);else{var i=ud(n);i||n.corked||n.bufferProcessing||!n.bufferedRequest||cd(e,n),r?At(ld,e,n,i,a):ld(e,n,i,a)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new hd(this)}function od(e){if(!(this instanceof od||this instanceof _d))return new od(e);this._writableState=new id(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev)),iu.call(this)}function sd(e,t,n,r,a,i,o){t.writelen=r,t.writecb=o,t.writing=!0,t.sync=!0,n?e._writev(a,t.onwrite):e._write(a,i,t.onwrite),t.sync=!1}function ld(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),fd(e,t)}function cd(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=new Array(t.bufferedRequestCount),a=t.corkedRequestsFree;a.entry=n;for(var i=0;n;)r[i]=n,n=n.next,i+=1;sd(e,t,!0,t.length,r,"",a.finish),t.pendingcb++,t.lastBufferedRequest=null,a.next?(t.corkedRequestsFree=a.next,a.next=null):t.corkedRequestsFree=new hd(t)}else{for(;n;){var o=n.chunk;if(sd(e,t,!1,t.objectMode?1:o.length,o,n.encoding,n.callback),n=n.next,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequestCount=0,t.bufferedRequest=n,t.bufferProcessing=!1}function ud(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function dd(e,t){t.prefinished||(t.prefinished=!0,e.emit("prefinish"))}function fd(e,t){var n=ud(t);return n&&(0===t.pendingcb?(dd(e,t),t.finished=!0,e.emit("finish")):dd(e,t)),n}function hd(e){var t=this;this.next=null,this.entry=null,this.finish=function(n){var r=t.entry;for(t.entry=null;r;){var a=r.callback;e.pendingcb--,a(n),r=r.next}e.corkedRequestsFree?e.corkedRequestsFree.next=t:e.corkedRequestsFree=t}}Gu.prototype.read=function(e){Uu("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return Uu("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?ed(this):Vu(this),null;if(0===(e=Ju(e,t))&&t.ended)return 0===t.length&&ed(this),null;var r,a=t.needReadable;return Uu("need readable",a),(0===t.length||t.length-e<t.highWaterMark)&&Uu("length less than watermark",a=!0),t.ended||t.reading?Uu("reading or ended",a=!1):a&&(Uu("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=Ju(n,t))),null===(r=e>0?Qu(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&ed(this)),null!==r&&this.emit("data",r),r},Gu.prototype._read=function(e){this.emit("error",new Error("not implemented"))},Gu.prototype.pipe=function(e,t){var n=this,r=this._readableState;switch(r.pipesCount){case 0:r.pipes=e;break;case 1:r.pipes=[r.pipes,e];break;default:r.pipes.push(e)}r.pipesCount+=1,Uu("pipe count=%d opts=%j",r.pipesCount,t);var a=t&&!1===t.end?c:o;function i(e){Uu("onunpipe"),e===n&&c()}function o(){Uu("onend"),e.end()}r.endEmitted?At(a):n.once("end",a),e.on("unpipe",i);var s=function(e){return function(){var t=e._readableState;Uu("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&e.listeners("data").length&&(t.flowing=!0,Xu(e))}}(n);e.on("drain",s);var l=!1;function c(){Uu("cleanup"),e.removeListener("close",h),e.removeListener("finish",p),e.removeListener("drain",s),e.removeListener("error",f),e.removeListener("unpipe",i),n.removeListener("end",o),n.removeListener("end",c),n.removeListener("data",d),l=!0,!r.awaitDrain||e._writableState&&!e._writableState.needDrain||s()}var u=!1;function d(t){Uu("ondata"),u=!1,!1!==e.write(t)||u||((1===r.pipesCount&&r.pipes===e||r.pipesCount>1&&-1!==nd(r.pipes,e))&&!l&&(Uu("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,u=!0),n.pause())}function f(t){Uu("onerror",t),m(),e.removeListener("error",f),0===e.listeners("error").length&&e.emit("error",t)}function h(){e.removeListener("finish",p),m()}function p(){Uu("onfinish"),e.removeListener("close",h),m()}function m(){Uu("unpipe"),n.unpipe(e)}return n.on("data",d),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",f),e.once("close",h),e.once("finish",p),e.emit("pipe",n),r.flowing||(Uu("pipe resume"),n.resume()),e},Gu.prototype.unpipe=function(e){var t=this._readableState;if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this)),this;if(!e){var n=t.pipes,r=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a<r;a++)n[a].emit("unpipe",this);return this}var i=nd(t.pipes,e);return-1===i||(t.pipes.splice(i,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this)),this},Gu.prototype.addListener=Gu.prototype.on=function(e,t){var n=iu.prototype.on.call(this,e,t);if("data"===e)!1!==this._readableState.flowing&&this.resume();else if("readable"===e){var r=this._readableState;r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.emittedReadable=!1,r.reading?r.length&&Vu(this):At(Yu,this))}return n},Gu.prototype.resume=function(){var e=this._readableState;return e.flowing||(Uu("resume"),e.flowing=!0,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,At(Zu,e,t))}(this,e)),this},Gu.prototype.pause=function(){return Uu("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(Uu("pause"),this._readableState.flowing=!1,this.emit("pause")),this},Gu.prototype.wrap=function(e){var t=this._readableState,n=!1,r=this;for(var a in e.on("end",(function(){if(Uu("wrapped end"),t.decoder&&!t.ended){var e=t.decoder.end();e&&e.length&&r.push(e)}r.push(null)})),e.on("data",(function(a){Uu("wrapped data"),t.decoder&&(a=t.decoder.write(a)),t.objectMode&&null==a||(t.objectMode||a&&a.length)&&(r.push(a)||(n=!0,e.pause()))})),e)void 0===this[a]&&"function"==typeof e[a]&&(this[a]=function(t){return function(){return e[t].apply(e,arguments)}}(a));return function(t,n){for(var a=0,i=t.length;a<i;a++)e.on(o=t[a],r.emit.bind(r,o));var o}(["error","close","destroy","pause","resume"]),r._read=function(t){Uu("wrapped _read",t),n&&(n=!1,e.resume())},r},Gu._fromList=Qu,od.WritableState=id,du(od,iu),id.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},od.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},od.prototype.write=function(e,t,n){var r=this._writableState,a=!1;return"function"==typeof t&&(n=t,t=null),Xt.isBuffer(e)?t="buffer":t||(t=r.defaultEncoding),"function"!=typeof n&&(n=rd),r.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),At(t,n)}(this,n):function(e,t,n,r){var a=!0,i=!1;return null===n?i=new TypeError("May not write null values to stream"):Xt.isBuffer(n)||"string"==typeof n||void 0===n||t.objectMode||(i=new TypeError("Invalid non-string/buffer chunk")),i&&(e.emit("error",i),At(r,i),a=!1),a}(this,r,e,n)&&(r.pendingcb++,a=function(e,t,n,r,a){n=function(e,t,n){return e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=Xt.from(t,n)),t}(t,n,r),Xt.isBuffer(n)&&(r="buffer");var i=t.objectMode?1:n.length;t.length+=i;var o=t.length<t.highWaterMark;if(o||(t.needDrain=!0),t.writing||t.corked){var s=t.lastBufferedRequest;t.lastBufferedRequest=new ad(n,r,a),s?s.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else sd(e,t,!1,i,n,r,a);return o}(this,r,e,t,n)),a},od.prototype.cork=function(){this._writableState.corked++},od.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||cd(this,e))},od.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},od.prototype._write=function(e,t,n){n(new Error("not implemented"))},od.prototype._writev=null,od.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,fd(e,t),n&&(t.finished?At(n):e.once("finish",n)),t.ended=!0,e.writable=!1}(this,r,n)},du(_d,Gu);for(var pd=Object.keys(od.prototype),md=0;md<pd.length;md++){var gd=pd[md];_d.prototype[gd]||(_d.prototype[gd]=od.prototype[gd])}function _d(e){if(!(this instanceof _d))return new _d(e);Gu.call(this,e),od.call(this,e),e&&!1===e.readable&&(this.readable=!1),e&&!1===e.writable&&(this.writable=!1),this.allowHalfOpen=!0,e&&!1===e.allowHalfOpen&&(this.allowHalfOpen=!1),this.once("end",yd)}function yd(){this.allowHalfOpen||this._writableState.ended||At(vd,this)}function vd(e){e.end()}function bd(e){this.afterTransform=function(t,n){return function(e,t,n){var r=e._transformState;r.transforming=!1;var a=r.writecb;if(!a)return e.emit("error",new Error("no writecb in Transform class"));r.writechunk=null,r.writecb=null,null!=n&&e.push(n),a(t);var i=e._readableState;i.reading=!1,(i.needReadable||i.length<i.highWaterMark)&&e._read(i.highWaterMark)}(e,t,n)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null,this.writeencoding=null}function wd(e){if(!(this instanceof wd))return new wd(e);_d.call(this,e),this._transformState=new bd(this);var t=this;this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.once("prefinish",(function(){"function"==typeof this._flush?this._flush((function(e){xd(t,e)})):xd(t)}))}function xd(e,t){if(t)return e.emit("error",t);var n=e._transformState;if(e._writableState.length)throw new Error("Calling transform done when ws.length != 0");if(n.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}function Sd(e){if(!(this instanceof Sd))return new Sd(e);wd.call(this,e)}function kd(){iu.call(this)}function Ed(e){return e.replace(/%([0-9A-Fa-f]{2})/g,(function(e,t){return String.fromCharCode(parseInt(t,16))}))}function Ad(e,t){return String(t).replace(e,(function(e){var t=e.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0");return"%".concat(t)}))}function Cd(e){return Ad(/[\n;\r\t=%&,\x00-\x1f\x7f-\xff]/g,e)}function Rd(e){return Ad(/[\n\r\t%\x00-\x1f\x7f-\xff]/g,e)}function Nd(e){if(!e||!e.length||"."===e)return{};var t={};return e.replace(/\r?\n$/,"").split(";").forEach((function(e){var n,r=e.split("=",2);if(r[1]&&r[1].length){r[0]=r[0].trim();var a=t[r[0].trim()];a||(t[r[0]]=a=[]),(n=a).push.apply(n,me(r[1].split(",").map((function(e){return e.trim()})).map(Ed)))}})),t}function Id(e){var t=e.split("\t").map((function(e){return"."===e||""===e?null:e}));return{seq_id:t[0]&&Ed(t[0]),source:t[1]&&Ed(t[1]),type:t[2]&&Ed(t[2]),start:null===t[3]?null:parseInt(t[3],10),end:null===t[4]?null:parseInt(t[4],10),score:null===t[5]?null:parseFloat(t[5]),strand:t[6],phase:t[7],attributes:null===t[8]?null:Nd(t[8])}}function Td(e){var t=/^\s*##\s*(\S+)\s*(.*)/.exec(e);if(!t)return null;var n=he(t,2)[1],r=he(t,3)[2],a={directive:n};if(r.length&&(r=r.replace(/\r?\n$/,""),a.value=r),"sequence-region"===n){var i=r.split(/\s+/,3);return K(K({},a),{},{seq_id:i[0],start:i[1]&&i[1].replace(/\D/g,""),end:i[2]&&i[2].replace(/\D/g,"")})}if("genome-build"===n){var o=he(r.split(/\s+/,2),2),s=o[0],l=o[1];return K(K({},a),{},{source:s,buildName:l})}return a}function Od(e){var t=[];return Object.entries(e).forEach((function(e){var n,r=he(e,2),a=r[0],i=r[1];i&&(n=i.hasOwnProperty("toString")?Cd(i.toString()):Array.isArray(i)?i.map(Cd).join(","):Cd(i),t.push("".concat(Cd(a),"=").concat(n)))})),t.length?t.join(";"):"."}function Fd(e,t){var n=null==e.attributes?".":Od(e.attributes),r=[null===e.seq_id?".":Rd(e.seq_id),null===e.source?".":Rd(e.source),null===e.type?".":Rd(e.type),null===e.start?".":Rd(e.start),null===e.end?".":Rd(e.end),null===e.score?".":Rd(e.score),null===e.strand?".":Rd(e.strand),null===e.phase?".":Rd(e.phase),n],a="".concat(r.join("\t"),"\n");return t[a]?"":(t[a]=!0,a)}function Ld(e,t){if(Array.isArray(e))return e.map((function(e){return Ld(e,t)})).join("");var n,r=[Fd(e,t)];return void 0!==(n=e).child_features&&void 0!==n.derived_features&&r.push.apply(r,me(e.child_features.map((function(e){return Ld(e,t)}))).concat(me(e.derived_features.map((function(e){return Ld(e,t)}))))),r.join("")}function Dd(e){return Ld(e,{})}function Md(e){var t="##".concat(e.directive);return e.value&&(t+=" ".concat(e.value)),t+"\n"}function Pd(e){return"# ".concat(e.comment,"\n")}function qd(e){return">".concat(e.id).concat(e.description?" ".concat(e.description):"","\n").concat(e.sequence,"\n")}function jd(e){function t(e){return"attributes"in e?Dd(e):"directive"in e?Md(e):"sequence"in e?qd(e):"comment"in e?Pd(e):"# (invalid item found during format)\n"}return Array.isArray(e)?e.map(t):t(e)}du(wd,_d),wd.prototype.push=function(e,t){return this._transformState.needTransform=!1,_d.prototype.push.call(this,e,t)},wd.prototype._transform=function(e,t,n){throw new Error("Not implemented")},wd.prototype._write=function(e,t,n){var r=this._transformState;if(r.writecb=n,r.writechunk=e,r.writeencoding=t,!r.transforming){var a=this._readableState;(r.needTransform||a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}},wd.prototype._read=function(e){var t=this._transformState;null!==t.writechunk&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0},du(Sd,wd),Sd.prototype._transform=function(e,t,n){n(null,e)},du(kd,iu),kd.Readable=Gu,kd.Writable=od,kd.Duplex=_d,kd.Transform=wd,kd.PassThrough=Sd,kd.Stream=kd,kd.prototype.pipe=function(e,t){var n=this;function r(t){e.writable&&!1===e.write(t)&&n.pause&&n.pause()}function a(){n.readable&&n.resume&&n.resume()}n.on("data",r),e.on("drain",a),e._isStdio||t&&!1===t.end||(n.on("end",o),n.on("close",s));var i=!1;function o(){i||(i=!0,e.end())}function s(){i||(i=!0,"function"==typeof e.destroy&&e.destroy())}function l(e){if(c(),0===iu.listenerCount(this,"error"))throw e}function c(){n.removeListener("data",r),e.removeListener("drain",a),n.removeListener("end",o),n.removeListener("close",s),n.removeListener("error",l),e.removeListener("error",l),n.removeListener("end",c),n.removeListener("close",c),e.removeListener("close",c)}return n.on("error",l),e.on("error",l),n.on("end",c),n.on("close",c),e.on("close",c),e.emit("pipe",n),e};var Bd={__proto__:null,unescape:Ed,escape:Cd,escapeColumn:Rd,parseAttributes:Nd,parseFeature:Id,parseDirective:Td,formatAttributes:Od,formatFeature:Dd,formatDirective:Md,formatComment:Pd,formatSequence:qd,formatItem:jd},Ud=function(){function e(t){ee(this,e),this.seqCallback=t,this.currentSequence=void 0}return ne(e,[{key:"addLine",value:function(e){var t=/^>\s*(\S+)\s*(.*)/.exec(e);t?(this._flush(),this.currentSequence={id:t[1],sequence:""},t[2]&&(this.currentSequence.description=t[2].trim())):this.currentSequence&&/\S/.test(e)&&(this.currentSequence.sequence+=e.replace(/\s/g,""))}},{key:"_flush",value:function(){this.currentSequence&&this.seqCallback(this.currentSequence)}},{key:"finish",value:function(){this._flush()}}]),e}(),zd=function(){function e(t){ee(this,e),this.fastaParser=void 0,this.eof=!1,this.lineNumber=0,this._underConstructionTopLevel=[],this._underConstructionById={},this._completedReferences={},this._underConstructionOrphans={};var n=function(){};this.featureCallback=t.featureCallback||n,this.endCallback=t.endCallback||n,this.commentCallback=t.commentCallback||n,this.errorCallback=t.errorCallback||n,this.directiveCallback=t.directiveCallback||n,this.sequenceCallback=t.sequenceCallback||n,this.bufferSize=void 0===t.bufferSize?1e3:t.bufferSize}return ne(e,[{key:"addLine",value:function(e){if(this.fastaParser)this.fastaParser.addLine(e);else if(!this.eof)if(this.lineNumber+=1,/^\s*[^#\s>]/.test(e))this._bufferLine(e);else{var t=/^\s*(#+)(.*)/.exec(e);if(t){var n=he(t,2)[1],r=he(t,3)[2];if(3===n.length)this._emitAllUnderConstructionFeatures();else if(2===n.length){var a=Td(e);a&&("FASTA"===a.directive?(this._emitAllUnderConstructionFeatures(),this.eof=!0,this.fastaParser=new Ud(this.sequenceCallback)):this._emitItem(a))}else r=r.replace(/\s*/,""),this._emitItem({comment:r})}else if(/^\s*$/.test(e));else{if(!/^\s*>/.test(e)){var i=e.replace(/\r?\n?$/g,"");throw new Error("GFF3 parse error. Cannot parse '".concat(i,"'."))}this._emitAllUnderConstructionFeatures(),this.eof=!0,this.fastaParser=new Ud(this.sequenceCallback),this.fastaParser.addLine(e)}}}},{key:"finish",value:function(){this._emitAllUnderConstructionFeatures(),this.fastaParser&&this.fastaParser.finish(),this.endCallback()}},{key:"_emitItem",value:function(e){Array.isArray(e)?this.featureCallback(e):"directive"in e?this.directiveCallback(e):"comment"in e&&this.commentCallback(e)}},{key:"_enforceBufferSizeLimit",value:function(){for(var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=function t(n){n&&Array.isArray(n)&&n[0].attributes&&n[0].attributes.ID&&n[0].attributes.ID[0]&&(n[0].attributes.ID.forEach((function(t){delete e._underConstructionById[t],delete e._completedReferences[t]})),n.forEach((function(e){e.child_features&&e.child_features.forEach((function(e){return t(e)})),e.derived_features&&e.derived_features.forEach((function(e){return t(e)}))})))};this._underConstructionTopLevel.length+t>this.bufferSize;){var r=this._underConstructionTopLevel.shift();r&&(this._emitItem(r),n(r))}}},{key:"_emitAllUnderConstructionFeatures",value:function(){if(this._underConstructionTopLevel.forEach(this._emitItem.bind(this)),this._underConstructionTopLevel=[],this._underConstructionById={},this._completedReferences={},Array.from(Object.values(this._underConstructionOrphans)).length)throw new Error("some features reference other features that do not exist in the file (or in the same '###' scope). ".concat(JSON.stringify(this._underConstructionOrphans)))}},{key:"_bufferLine",value:function(e){var t,n,r,a=this,i=K(K({},Id(e)),{},{child_features:[],derived_features:[]}),o=(null===(t=i.attributes)||void 0===t?void 0:t.ID)||[],s=(null===(n=i.attributes)||void 0===n?void 0:n.Parent)||[],l=(null===(r=i.attributes)||void 0===r?void 0:r.Derives_from)||[];if(o.length||s.length||l.length){var c=void 0;o.forEach((function(e){var t=a._underConstructionById[e];t?(t[t.length-1].type!==i.type&&a._parseError('multi-line feature "'.concat(e,'" has inconsistent types: "').concat(i.type,'", "').concat(t[t.length-1].type,'"')),t.push(i),c=t):(c=[i],a._enforceBufferSizeLimit(1),s.length||l.length||a._underConstructionTopLevel.push(c),a._underConstructionById[e]=c,a._resolveReferencesTo(c,e))})),this._resolveReferencesFrom(c||[i],{Parent:s,Derives_from:l},o)}else this._emitItem([i])}},{key:"_resolveReferencesTo",value:function(e,t){var n=this._underConstructionOrphans[t];n&&(e.forEach((function(e){var t;(t=e.child_features).push.apply(t,me(n.Parent))})),e.forEach((function(e){var t;(t=e.derived_features).push.apply(t,me(n.Derives_from))})),delete this._underConstructionOrphans[t])}},{key:"_parseError",value:function(e){this.eof=!0,this.errorCallback("".concat(this.lineNumber,": ").concat(e))}},{key:"_resolveReferencesFrom",value:function(e,t,n){var r=this;function a(e,t,n){var r=e[t];r||(e[t]=r={});var a=r[n]||!1;return r[n]=!0,a}t.Parent.forEach((function(t){var i=r._underConstructionById[t];if(i)n.filter((function(e){return a(r._completedReferences,e,"Parent,".concat(t))})).length||i.forEach((function(t){t.child_features.push(e)}));else{var o=r._underConstructionOrphans[t];o||(r._underConstructionOrphans[t]=o={Parent:[],Derives_from:[]}),o.Parent.push(e)}})),t.Derives_from.forEach((function(t){var i=r._underConstructionById[t];if(i)n.filter((function(e){return a(r._completedReferences,e,"Derives_from,".concat(t))})).length||i.forEach((function(t){t.derived_features.push(e)}));else{var o=r._underConstructionOrphans[t];o||(r._underConstructionOrphans[t]=o={Parent:[],Derives_from:[]}),o.Derives_from.push(e)}}))}}]),e}();function Gd(e){jt&&At?At(e):e()}function Hd(e){var t=K({encoding:"utf8",parseFeatures:!0,parseDirectives:!1,parseSequences:!0,parseComments:!1,bufferSize:1e3},e);return e.parseAll&&(t.parseFeatures=!0,t.parseDirectives=!0,t.parseComments=!0,t.parseSequences=!0),t}var $d=function(e){ae(n,e);var t=de(n);function n(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};ee(this,n),(e=t.call(this,{objectMode:!0})).textBuffer="";var a=Hd(r);e.encoding=r.encoding||"utf8",e.decoder=new Pu;var i=e.push.bind(ue(e));return e.parser=new zd({featureCallback:a.parseFeatures?i:void 0,directiveCallback:a.parseDirectives?i:void 0,commentCallback:a.parseComments?i:void 0,sequenceCallback:a.parseSequences?i:void 0,errorCallback:function(t){return e.emit("error",t)},bufferSize:a.bufferSize}),e}return ne(n,[{key:"_addLine",value:function(e){e&&this.parser.addLine(e)}},{key:"_nextText",value:function(e){var t=this,n=(this.textBuffer+e).split(/\r?\n/);this.textBuffer=n.pop()||"",n.forEach((function(e){return t._addLine(e)}))}},{key:"_transform",value:function(e,t,n){this._nextText(this.decoder.write(e)),Gd(n)}},{key:"_flush",value:function(e){this.decoder.end&&this._nextText(this.decoder.end()),null!=this.textBuffer&&this._addLine(this.textBuffer),this.parser.finish(),Gd(e)}}]),n}(wd),Jd=function(e){ae(n,e);var t=de(n);function n(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return ee(this,n),(e=t.call(this,Object.assign(r,{objectMode:!0}))).linesSinceLastSyncMark=0,e.haveWeEmittedData=!1,e.fastaMode=!1,e.minLinesBetweenSyncMarks=r.minSyncLines||100,e.insertVersionDirective=r.insertVersionDirective||!1,e}return ne(n,[{key:"_transform",value:function(e,t,n){var r;if(!this.haveWeEmittedData&&this.insertVersionDirective){var a=Array.isArray(e)?e[0]:e;"directive"in a&&"gff-version"!==a.directive&&this.push("##gff-version 3\n")}if("sequence"in e&&!this.fastaMode&&(this.push("##FASTA\n"),this.fastaMode=!0),r=Array.isArray(e)?e.map(jd).join(""):jd(e),this.push(r),this.linesSinceLastSyncMark>=this.minLinesBetweenSyncMarks)this.push("###\n"),this.linesSinceLastSyncMark=0;else{for(var i=0,o=0;o<r.length;o+=1)"\n"===r[o]&&(i+=1);this.linesSinceLastSyncMark+=i}this.haveWeEmittedData=!0,Gd(n)}}]),n}(wd),Vd={parseStream:function(){return new $d(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{})},parseStringSync:function(e){if(!e)return[];var t=Hd(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}),n=[],r=n.push.bind(n),a=new zd({featureCallback:t.parseFeatures?r:void 0,directiveCallback:t.parseDirectives?r:void 0,commentCallback:t.parseComments?r:void 0,sequenceCallback:t.parseSequences?r:void 0,bufferSize:Infinity,errorCallback:function(e){throw e}});return e.split(/\r?\n/).forEach(a.addLine.bind(a)),a.finish(),n},formatSync:function(e){var t=[],n=[];e.forEach((function(e){"sequence"in e?n.push(e):t.push(e)}));var r=t.map(jd).join("");return n.length&&(r+="##FASTA\n",r+=n.map(qd).join("")),r},formatStream:function(){return new Jd(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{})},formatFile:function(e,t){var n=K({insertVersionDirective:!0},arguments.length>2&&void 0!==arguments[2]?arguments[2]:{});return new Promise((function(r,a){e.pipe(new Jd(n)).on("end",(function(){return r(null)})).on("error",a).pipe(t)}))},util:Bd};async function Wd(e,t,n){const r=Vd.parseStringSync(t,{parseSequences:!0,parseComments:!0,parseDirectives:!1,parseFeatures:!0});if(0===r.length)throw new Error("No features found in GFF3 file");let a=0,i=n.assemblies.get(e);i||(i=n.addAssembly(e,"InMemoryFileDriver"));for(const e of r)if(Array.isArray(e)){const t=nr.gff3ToAnnotationFeature(e),n=i.refSeqs.get(t.refSeq)??i.addRefSeq(t.refSeq,t.refSeq);n.features.has(t._id)||n.addFeature(t)}else if("comment"in e)i.addComment(e.comment);else{a++;let t=i.refSeqs.get(e.id);t||(t=i.addRefSeq(e.id,e.id,e.description)),e.description&&!t.description&&t.setDescription(e.description),t.addSequence({start:0,stop:e.sequence.length,sequence:e.sequence})}if(0===a)throw new Error("No embedded FASTA section found in GFF3");const o=await Kd(i);return n.addCheckResults(o),i}async function Kd(e){const t=[];for(const n of e.refSeqs.values())for(const e of n.features.values())for(const r of z.checkRegistry.getChecks().values()){const a=await r.checkFeature(l.getSnapshot(e),((e,t)=>Promise.resolve(n.getSequence(e,t))));t.push(...a)}return t}async function Yd(e,t){let n;try{n=await e.text()}catch{n=""}return`${t?`${t} — `:""}${e.status} ${e.statusText}${n?` (${n})`:""}`}var Zd={},Xd=Il.exports;Object.defineProperty(Zd,"__esModule",{value:!0});var Qd=Zd.default=void 0;Qd=Zd.default=(0,Xd(Tl).default)((0,I.default.jsx)("path",{d:"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"}),"Link");var ef={},tf=Il.exports;Object.defineProperty(ef,"__esModule",{value:!0});var nf=ef.default=void 0;nf=ef.default=(0,tf(Tl).default)((0,I.default.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");const rf=m.makeStyles()((e=>({dialogTitle:{background:e.palette.primary.main,color:e.palette.primary.contrastText,padding:e.spacing(2)},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1.5),color:e.palette.primary.contrastText}}))),af=p.observer((function(e){const{classes:t}=rf(),{handleClose:n,title:r,...a}=e;return L.default.createElement(h.Dialog,{...a,header:L.default.createElement(L.default.Fragment,null,L.default.createElement(c.DialogTitle,{className:t.dialogTitle},r),L.default.createElement(c.IconButton,{"aria-label":"close",onClick:n,className:t.closeButton},L.default.createElement(nf,null)))})}));var of;function sf({changeManager:e,handleClose:t,session:n}){const{internetAccounts:a}=l.getRoot(n),{notify:i}=n,o=a.filter((e=>"ApolloInternetAccount"===e.type));if(0===o.length)throw new Error("No Apollo internet account found");const[s,u]=f.useState(""),[d,h]=f.useState(""),[p,m]=f.useState(!1),[g,_]=f.useState(null),[y,v]=f.useState(of.GFF3),[b,w]=f.useState(!0),[x,S]=f.useState(!1),[k,E]=f.useState(o[0]),[A,C]=f.useState(""),[R,N]=f.useState(""),[I,T]=f.useState(""),[D,M]=f.useState(!1);let P=!1;try{const e=new URL(A);"http:"!==e.protocol&&"https:"!==e.protocol||(P=!0)}catch{}let q=!1;try{const e=new URL(R);"http:"!==e.protocol&&"https:"!==e.protocol||(q=!0)}catch{}let j=!1;try{const e=new URL(I);"http:"!==e.protocol&&"https:"!==e.protocol||(j=!0)}catch{}return L.default.createElement(af,{open:!0,maxWidth:!1,"data-testid":"add-assembly-dialog",title:"Add new assembly",handleClose:t},D?L.default.createElement(F.default,null):null,L.default.createElement("form",{onSubmit:async function(r){r.preventDefault(),h(""),S(!0),M(!0),i(`Assembly "${s}" is being added`,"info"),t(),r.preventDefault();const{jobsManager:a}=n,o=new AbortController,l={name:`UploadAssemblyFile for ${s}`,statusMessage:"Pre-validating",progressPct:0,cancelCallback:()=>{o.abort(),a.abortJob(l.name)}};a.runJob(l);let c="";const{baseURL:u,getFetcher:d,internetAccountId:f}=k;if(y!==of.EXTERNAL&&g){const e=new URL("files",u);e.searchParams.set("type",y);const t=e.href,n=new FormData;n.append("file",g),n.append("fileName",g.name),n.append("type",y);const r=d({locationType:"UriLocation",uri:t});if(r){a.update(l.name,"Uploading file, this may take awhile");const{signal:e}=o,i=await r(t,{method:"POST",body:n,signal:e});if(!i.ok){const e=await Yd(i,"Error when inserting new assembly (while uploading file)");return a.abortJob(l.name,e),void h(e)}c=(await i.json())._id}}let p;if(y===of.EXTERNAL)p=new nr.AddAssemblyFromExternalChange({typeName:"AddAssemblyFromExternalChange",assembly:(new Wn).toHexString(),assemblyName:s,externalLocation:{fa:A,fai:R,...I?{gzi:I}:{}}});else{const e={assembly:(new Wn).toHexString(),assemblyName:s,fileId:c};p=y===of.GFF3&&b?new nr.AddAssemblyAndFeaturesFromFileChange({typeName:"AddAssemblyAndFeaturesFromFileChange",...e}):new nr.AddAssemblyFromFileChange({typeName:"AddAssemblyFromFileChange",...e})}a.done(l),await e.submit(p,{internetAccountId:f,updateJobsManager:!0}),S(!1),M(!1)}},L.default.createElement(c.DialogContent,{style:{display:"flex",flexDirection:"column"}},o.length>1?L.default.createElement(L.default.Fragment,null,L.default.createElement(c.DialogContentText,null,"Select account"),L.default.createElement(c.Select,{value:k.internetAccountId,onChange:function(e){S(!1);const t=o.find((t=>t.internetAccountId===e.target.value));if(!t)throw new Error(`Could not find internetAccount with ID "${e.target.value}"`);E(t)},disabled:x&&!d},a.map((e=>L.default.createElement(c.MenuItem,{key:e.id,value:e.internetAccountId},e.name))))):null,L.default.createElement(c.TextField,{margin:"dense",id:"name",label:"Assembly name",type:"TextField",fullWidth:!0,variant:"outlined",onChange:e=>{S(!1),u(e.target.value),function(e){const{assemblies:t}=n;t.find((t=>r.readConfObject(t,"displayName")===e))?(m(!1),h(`Assembly ${e} already exists.`)):(m(!0),h(""))}(e.target.value)},disabled:x&&!d}),L.default.createElement(c.FormControl,{style:{marginTop:20}},L.default.createElement(c.FormLabel,null,"Select GFF3, FASTA or EXTERNAL option"),L.default.createElement(c.RadioGroup,{"aria-labelledby":"demo-radio-buttons-group-label",defaultValue:of.GFF3,name:"radio-buttons-group",onChange:function(e){v(e.target.value),w(e.target.value===of.GFF3),C(""),N(""),_(null)},value:y},L.default.createElement(c.FormControlLabel,{value:of.GFF3,control:L.default.createElement(c.Radio,null),label:"GFF3",disabled:x&&!d}),L.default.createElement(c.FormControlLabel,{value:of.FASTA,control:L.default.createElement(c.Radio,null),label:"FASTA",disabled:x&&!d}),L.default.createElement(c.FormControlLabel,{value:of.EXTERNAL,control:L.default.createElement(c.Radio,null),label:"External",disabled:x&&!d}))),y===of.EXTERNAL?L.default.createElement(c.Box,{style:{marginTop:20}},L.default.createElement(c.Typography,{variant:"caption"},"Enter FASTA and FASTA index(es) URL"),L.default.createElement(c.TextField,{margin:"dense",helperText:"Can be bgz-compressed",id:"fasta",label:"FASTA",type:"TextField",fullWidth:!0,variant:"outlined",error:!P,onChange:e=>{C(e.target.value)},disabled:x&&!d,InputProps:{startAdornment:L.default.createElement(O.default,{position:"start"},L.default.createElement(Qd,null))}}),L.default.createElement(c.TextField,{margin:"dense",id:"fasta-index",label:"FASTA Index",helperText:".fai or .gz.fai",type:"TextField",fullWidth:!0,variant:"outlined",error:!q,onChange:e=>{N(e.target.value)},disabled:x&&!d,InputProps:{startAdornment:L.default.createElement(O.default,{position:"start"},L.default.createElement(Qd,null))}}),L.default.createElement(c.TextField,{margin:"dense",id:"fasta-gzi-index",label:"FASTA GZI Index",helperText:"Only for bgz-compressed FASTA, .gz.gzi",type:"TextField",fullWidth:!0,variant:"outlined",error:Boolean(I)&&!j,onChange:e=>{T(e.target.value)},disabled:x&&!d,InputProps:{startAdornment:L.default.createElement(O.default,{position:"start"},L.default.createElement(Qd,null))}})):L.default.createElement(c.Box,{style:{marginTop:20}},L.default.createElement("input",{type:"file",onChange:function(e){if(!e.target.files)return;const t=e.target.files.item(0);if(_(t),!t)return;const n=t.name.toLowerCase();n.endsWith(".fasta")||n.endsWith(".fna")||n.endsWith(".fa")?v(of.FASTA):(n.endsWith(".gff3")||n.endsWith(".gff"))&&v(of.GFF3)},disabled:x&&!d}),L.default.createElement(c.FormGroup,null,L.default.createElement(c.FormControlLabel,{control:L.default.createElement(c.Checkbox,{checked:y===of.GFF3&&b,onChange:()=>{w(!b)},disabled:y!==of.GFF3||x&&!d}),label:"Also load features from GFF3 file"})))),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{disabled:!p||!((s&&g)??(s&&A&&R&&P&&q))||x,variant:"contained",type:"submit"},x?"Submitting...":"Submit"),L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:t},"Cancel"))),d?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},d)):null)}!function(e){e.GFF3="text/x-gff3",e.FASTA="text/x-fasta",e.EXTERNAL="text/x-external"}(of||(of={}));var lf={exports:{}};!function(e,t){var n;n=function(){return function e(t,n,r){function a(o,s){if(!n[o]){if(!t[o]){if(!s&&U)return U(o);if(i)return i(o,!0);var l=new Error("Cannot find module '"+o+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[o]={exports:{}};t[o][0].call(c.exports,(function(e){return a(t[o][1][e]||e)}),c,c.exports,e,t,n,r)}return n[o].exports}for(var i=U,o=0;o<r.length;o++)a(r[o]);return a}({"./aesprim":[function(e,t,n){var r;r=function(e){var t,n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_,y;function v(e,t){if(!e)throw new Error("ASSERT: "+t)}function b(e){return e>=48&&e<=57}function w(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function x(e){return"01234567".indexOf(e)>=0}function S(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0}function k(e){return 10===e||13===e||8232===e||8233===e}function E(e){return 64==e||36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&s.NonAsciiIdentifierStart.test(String.fromCharCode(e))}function A(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&s.NonAsciiIdentifierPart.test(String.fromCharCode(e))}function C(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}}function R(e){return"eval"===e||"arguments"===e}function N(e,t,n,r,a){var i;v("number"==typeof n,"Comment must have valid position"),_.lastCommentStart>=n||(_.lastCommentStart=n,i={type:e,value:t},y.range&&(i.range=[n,r]),y.loc&&(i.loc=a),y.comments.push(i),y.attachComment&&(y.leadingComments.push(i),y.trailingComments.push(i)))}function I(e){var t,n,r,a;for(t=d-e,n={start:{line:f,column:d-h-e}};d<p;)if(r=c.charCodeAt(d),++d,k(r))return y.comments&&(a=c.slice(t+e,d-1),n.end={line:f,column:d-h-1},N("Line",a,t,d-1,n)),13===r&&10===c.charCodeAt(d)&&++d,++f,void(h=d);y.comments&&(a=c.slice(t+e,d),n.end={line:f,column:d-h},N("Line",a,t,d,n))}function T(){var e,t,n,r;for(y.comments&&(e=d-2,t={start:{line:f,column:d-h-2}});d<p;)if(k(n=c.charCodeAt(d)))13===n&&10===c.charCodeAt(d+1)&&++d,++f,++d,h=d,d>=p&&J({},o.UnexpectedToken,"ILLEGAL");else if(42===n){if(47===c.charCodeAt(d+1))return++d,++d,void(y.comments&&(r=c.slice(e+2,d-2),t.end={line:f,column:d-h},N("Block",r,e,d,t)));++d}else++d;J({},o.UnexpectedToken,"ILLEGAL")}function O(){var e,t;for(t=0===d;d<p;)if(S(e=c.charCodeAt(d)))++d;else if(k(e))++d,13===e&&10===c.charCodeAt(d)&&++d,++f,h=d,t=!0;else if(47===e)if(47===(e=c.charCodeAt(d+1)))++d,++d,I(2),t=!0;else{if(42!==e)break;++d,++d,T()}else if(t&&45===e){if(45!==c.charCodeAt(d+1)||62!==c.charCodeAt(d+2))break;d+=3,I(3)}else{if(60!==e)break;if("!--"!==c.slice(d+1,d+4))break;++d,++d,++d,++d,I(4)}}function F(e){var t,n,r,a=0;for(n="u"===e?4:2,t=0;t<n;++t){if(!(d<p&&w(c[d])))return"";r=c[d++],a=16*a+"0123456789abcdef".indexOf(r.toLowerCase())}return String.fromCharCode(a)}function L(){var e,t;for(e=c.charCodeAt(d++),t=String.fromCharCode(e),92===e&&(117!==c.charCodeAt(d)&&J({},o.UnexpectedToken,"ILLEGAL"),++d,(e=F("u"))&&"\\"!==e&&E(e.charCodeAt(0))||J({},o.UnexpectedToken,"ILLEGAL"),t=e);d<p&&A(e=c.charCodeAt(d));)++d,t+=String.fromCharCode(e),92===e&&(t=t.substr(0,t.length-1),117!==c.charCodeAt(d)&&J({},o.UnexpectedToken,"ILLEGAL"),++d,(e=F("u"))&&"\\"!==e&&A(e.charCodeAt(0))||J({},o.UnexpectedToken,"ILLEGAL"),t+=e);return t}function D(){var e,n,r,a,i=d,s=c.charCodeAt(d),l=c[d];switch(s){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++d,y.tokenize&&(40===s?y.openParenToken=y.tokens.length:123===s&&(y.openCurlyToken=y.tokens.length)),{type:t.Punctuator,value:String.fromCharCode(s),lineNumber:f,lineStart:h,start:i,end:d};default:if(61===(e=c.charCodeAt(d+1)))switch(s){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return d+=2,{type:t.Punctuator,value:String.fromCharCode(s)+String.fromCharCode(e),lineNumber:f,lineStart:h,start:i,end:d};case 33:case 61:return 61===c.charCodeAt(d+=2)&&++d,{type:t.Punctuator,value:c.slice(i,d),lineNumber:f,lineStart:h,start:i,end:d}}}return">>>="===(a=c.substr(d,4))?{type:t.Punctuator,value:a,lineNumber:f,lineStart:h,start:i,end:d+=4}:">>>"===(r=a.substr(0,3))||"<<="===r||">>="===r?{type:t.Punctuator,value:r,lineNumber:f,lineStart:h,start:i,end:d+=3}:l===(n=r.substr(0,2))[1]&&"+-<>&|".indexOf(l)>=0||"=>"===n?{type:t.Punctuator,value:n,lineNumber:f,lineStart:h,start:i,end:d+=2}:"<>=!+-*%&|^/".indexOf(l)>=0?(++d,{type:t.Punctuator,value:l,lineNumber:f,lineStart:h,start:i,end:d}):void J({},o.UnexpectedToken,"ILLEGAL")}function M(){var e,n,r;if(v(b((r=c[d]).charCodeAt(0))||"."===r,"Numeric literal must start with a decimal digit or a decimal point"),n=d,e="","."!==r){if(e=c[d++],r=c[d],"0"===e){if("x"===r||"X"===r)return++d,function(e){for(var n="";d<p&&w(c[d]);)n+=c[d++];return 0===n.length&&J({},o.UnexpectedToken,"ILLEGAL"),E(c.charCodeAt(d))&&J({},o.UnexpectedToken,"ILLEGAL"),{type:t.NumericLiteral,value:parseInt("0x"+n,16),lineNumber:f,lineStart:h,start:e,end:d}}(n);if(x(r))return function(e){for(var n="0"+c[d++];d<p&&x(c[d]);)n+=c[d++];return(E(c.charCodeAt(d))||b(c.charCodeAt(d)))&&J({},o.UnexpectedToken,"ILLEGAL"),{type:t.NumericLiteral,value:parseInt(n,8),octal:!0,lineNumber:f,lineStart:h,start:e,end:d}}(n);r&&b(r.charCodeAt(0))&&J({},o.UnexpectedToken,"ILLEGAL")}for(;b(c.charCodeAt(d));)e+=c[d++];r=c[d]}if("."===r){for(e+=c[d++];b(c.charCodeAt(d));)e+=c[d++];r=c[d]}if("e"===r||"E"===r)if(e+=c[d++],"+"!==(r=c[d])&&"-"!==r||(e+=c[d++]),b(c.charCodeAt(d)))for(;b(c.charCodeAt(d));)e+=c[d++];else J({},o.UnexpectedToken,"ILLEGAL");return E(c.charCodeAt(d))&&J({},o.UnexpectedToken,"ILLEGAL"),{type:t.NumericLiteral,value:parseFloat(e),lineNumber:f,lineStart:h,start:n,end:d}}function P(){var e,n,r,a;return g=null,O(),e=d,n=function(){var e,t,n,r;for(v("/"===(e=c[d]),"Regular expression literal must start with a slash"),t=c[d++],n=!1,r=!1;d<p;)if(t+=e=c[d++],"\\"===e)k((e=c[d++]).charCodeAt(0))&&J({},o.UnterminatedRegExp),t+=e;else if(k(e.charCodeAt(0)))J({},o.UnterminatedRegExp);else if(n)"]"===e&&(n=!1);else{if("/"===e){r=!0;break}"["===e&&(n=!0)}return r||J({},o.UnterminatedRegExp),{value:t.substr(1,t.length-2),literal:t}}(),r=function(){var e,t,n,r;for(t="",n="";d<p&&A((e=c[d]).charCodeAt(0));)if(++d,"\\"===e&&d<p)if("u"===(e=c[d])){if(r=++d,e=F("u"))for(n+=e,t+="\\u";r<d;++r)t+=c[r];else d=r,n+="u",t+="\\u";V({},o.UnexpectedToken,"ILLEGAL")}else t+="\\",V({},o.UnexpectedToken,"ILLEGAL");else n+=e,t+=e;return{value:n,literal:t}}(),a=function(e,t){var n;try{n=new RegExp(e,t)}catch(e){J({},o.InvalidRegExp)}return n}(n.value,r.value),y.tokenize?{type:t.RegularExpression,value:a,lineNumber:f,lineStart:h,start:e,end:d}:{literal:n.literal+r.literal,value:a,start:e,end:d}}function q(){var e,t,n,r;return O(),e=d,t={start:{line:f,column:d-h}},n=P(),t.end={line:f,column:d-h},y.tokenize||(y.tokens.length>0&&(r=y.tokens[y.tokens.length-1]).range[0]===e&&"Punctuator"===r.type&&("/"!==r.value&&"/="!==r.value||y.tokens.pop()),y.tokens.push({type:"RegularExpression",value:n.literal,range:[e,d],loc:t})),n}function j(){var e,n,a;return O(),d>=p?{type:t.EOF,lineNumber:f,lineStart:h,start:d,end:d}:E(e=c.charCodeAt(d))?(n=d,a=92===c.charCodeAt(d)?L():function(){var e,t;for(e=d++;d<p;){if(92===(t=c.charCodeAt(d)))return d=e,L();if(!A(t))break;++d}return c.slice(e,d)}(),{type:1===a.length?t.Identifier:function(e){if(u&&C(e))return!0;switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}}(a)?t.Keyword:"null"===a?t.NullLiteral:"true"===a||"false"===a?t.BooleanLiteral:t.Identifier,value:a,lineNumber:f,lineStart:h,start:n,end:d}):40===e||41===e||59===e?D():39===e||34===e?function(){var e,n,r,a,i,s,l,u,m="",g=!1;for(l=f,u=h,v("'"===(e=c[d])||'"'===e,"String literal must starts with a quote"),n=d,++d;d<p;){if((r=c[d++])===e){e="";break}if("\\"===r)if((r=c[d++])&&k(r.charCodeAt(0)))++f,"\r"===r&&"\n"===c[d]&&++d,h=d;else switch(r){case"u":case"x":s=d,(i=F(r))?m+=i:(d=s,m+=r);break;case"n":m+="\n";break;case"r":m+="\r";break;case"t":m+="\t";break;case"b":m+="\b";break;case"f":m+="\f";break;case"v":m+="\v";break;default:x(r)?(0!==(a="01234567".indexOf(r))&&(g=!0),d<p&&x(c[d])&&(g=!0,a=8*a+"01234567".indexOf(c[d++]),"0123".indexOf(r)>=0&&d<p&&x(c[d])&&(a=8*a+"01234567".indexOf(c[d++]))),m+=String.fromCharCode(a)):m+=r}else{if(k(r.charCodeAt(0)))break;m+=r}}return""!==e&&J({},o.UnexpectedToken,"ILLEGAL"),{type:t.StringLiteral,value:m,octal:g,startLineNumber:l,startLineStart:u,lineNumber:f,lineStart:h,start:n,end:d}}():46===e?b(c.charCodeAt(d+1))?M():D():b(e)?M():y.tokenize&&47===e?function(){var e,t;if(!(e=y.tokens[y.tokens.length-1]))return q();if("Punctuator"===e.type){if("]"===e.value)return D();if(")"===e.value)return!(t=y.tokens[y.openParenToken-1])||"Keyword"!==t.type||"if"!==t.value&&"while"!==t.value&&"for"!==t.value&&"with"!==t.value?D():q();if("}"===e.value){if(y.tokens[y.openCurlyToken-3]&&"Keyword"===y.tokens[y.openCurlyToken-3].type){if(!(t=y.tokens[y.openCurlyToken-4]))return D()}else{if(!y.tokens[y.openCurlyToken-4]||"Keyword"!==y.tokens[y.openCurlyToken-4].type)return D();if(!(t=y.tokens[y.openCurlyToken-5]))return q()}return r.indexOf(t.value)>=0?D():q()}return q()}return"Keyword"===e.type?q():D()}():D()}function B(){var e,r,a;return O(),e={start:{line:f,column:d-h}},r=j(),e.end={line:f,column:d-h},r.type!==t.EOF&&(a=c.slice(r.start,r.end),y.tokens.push({type:n[r.type],value:a,range:[r.start,r.end],loc:e})),r}function U(){var e;return d=(e=g).end,f=e.lineNumber,h=e.lineStart,g=void 0!==y.tokens?B():j(),d=e.end,f=e.lineNumber,h=e.lineStart,e}function z(){var e,t,n;e=d,t=f,n=h,g=void 0!==y.tokens?B():j(),d=e,f=t,h=n}function G(e,t){this.line=e,this.column=t}function H(e,t,n,r){this.start=new G(e,t),this.end=new G(n,r)}function $(){var e,t,n,r;return e=d,t=f,n=h,O(),r=f!==t,d=e,f=t,h=n,r}function J(e,t){var n,r=Array.prototype.slice.call(arguments,2),a=t.replace(/%(\d)/g,(function(e,t){return v(t<r.length,"Message reference must be in range"),r[t]}));throw"number"==typeof e.lineNumber?((n=new Error("Line "+e.lineNumber+": "+a)).index=e.start,n.lineNumber=e.lineNumber,n.column=e.start-h+1):((n=new Error("Line "+f+": "+a)).index=d,n.lineNumber=f,n.column=d-h+1),n.description=a,n}function V(){try{J.apply(null,arguments)}catch(e){if(!y.errors)throw e;y.errors.push(e)}}function W(e){if(e.type===t.EOF&&J(e,o.UnexpectedEOS),e.type===t.NumericLiteral&&J(e,o.UnexpectedNumber),e.type===t.StringLiteral&&J(e,o.UnexpectedString),e.type===t.Identifier&&J(e,o.UnexpectedIdentifier),e.type===t.Keyword){if(function(e){switch(e){case"class":case"enum":case"export":case"extends":case"import":case"super":return!0;default:return!1}}(e.value))J(e,o.UnexpectedReserved);else if(u&&C(e.value))return void V(e,o.StrictReservedWord);J(e,o.UnexpectedToken,e.value)}J(e,o.UnexpectedToken,e.value)}function K(e){var n=U();n.type===t.Punctuator&&n.value===e||W(n)}function Y(e){var n=U();n.type===t.Keyword&&n.value===e||W(n)}function Z(e){return g.type===t.Punctuator&&g.value===e}function X(e){return g.type===t.Keyword&&g.value===e}function Q(){var e;59===c.charCodeAt(d)||Z(";")?U():(e=f,O(),f===e&&(g.type===t.EOF||Z("}")||W(g)))}function ee(e){return e.type===a.Identifier||e.type===a.MemberExpression}function te(e,t){var n,r,a;return n=u,a=g,r=be(),t&&u&&R(e[0].name)&&V(t,o.StrictParamName),u=n,m.markEnd(m.createFunctionExpression(null,e,[],r),a)}function ne(){var e,n;return n=g,(e=U()).type===t.StringLiteral||e.type===t.NumericLiteral?(u&&e.octal&&V(e,o.StrictOctalLiteral),m.markEnd(m.createLiteral(e),n)):m.markEnd(m.createIdentifier(e.value),n)}function re(){var e,n,r,a,i,s;return s=g,(e=g).type===t.Identifier?(r=ne(),"get"!==e.value||Z(":")?"set"!==e.value||Z(":")?(K(":"),a=fe(),m.markEnd(m.createProperty("init",r,a),s)):(n=ne(),K("("),(e=g).type!==t.Identifier?(K(")"),V(e,o.UnexpectedToken,e.value),a=te([])):(i=[me()],K(")"),a=te(i,e)),m.markEnd(m.createProperty("set",n,a),s)):(n=ne(),K("("),K(")"),a=te([]),m.markEnd(m.createProperty("get",n,a),s))):e.type!==t.EOF&&e.type!==t.Punctuator?(n=ne(),K(":"),a=fe(),m.markEnd(m.createProperty("init",n,a),s)):void W(e)}function ae(){var e,n,r,s;if(Z("("))return function(){var e;return K("("),e=he(),K(")"),e}();if(Z("["))return function(){var e,t=[];for(e=g,K("[");!Z("]");)Z(",")?(U(),t.push(null)):(t.push(fe()),Z("]")||K(","));return U(),m.markEnd(m.createArrayExpression(t),e)}();if(Z("{"))return function(){var e,t,n,r,s,l=[],c={},d=String;for(s=g,K("{");!Z("}");)t=(e=re()).key.type===a.Identifier?e.key.name:d(e.key.value),r="init"===e.kind?i.Data:"get"===e.kind?i.Get:i.Set,n="$"+t,Object.prototype.hasOwnProperty.call(c,n)?(c[n]===i.Data?u&&r===i.Data?V({},o.StrictDuplicateProperty):r!==i.Data&&V({},o.AccessorDataProperty):r===i.Data?V({},o.AccessorDataProperty):c[n]&r&&V({},o.AccessorGetSet),c[n]|=r):c[n]=r,l.push(e),Z("}")||K(",");return K("}"),m.markEnd(m.createObjectExpression(l),s)}();if(s=g,(e=g.type)===t.Identifier)r=m.createIdentifier(U().value);else if(e===t.StringLiteral||e===t.NumericLiteral)u&&g.octal&&V(g,o.StrictOctalLiteral),r=m.createLiteral(U());else if(e===t.Keyword){if(X("function"))return function(){var e,t,n,r,a,i,s,l,c,d=null;return l=g,Y("function"),Z("(")||(e=g,d=me(),u?R(e.value)&&V(e,o.StrictFunctionName):R(e.value)?(n=e,r=o.StrictFunctionName):C(e.value)&&(n=e,r=o.StrictReservedWord)),c=(a=we(n)).params,t=a.stricted,n=a.firstRestricted,a.message&&(r=a.message),s=u,i=be(),u&&n&&J(n,r),u&&t&&V(t,r),u=s,m.markEnd(m.createFunctionExpression(d,c,[],i),l)}();X("this")?(U(),r=m.createThisExpression()):W(U())}else e===t.BooleanLiteral?((n=U()).value="true"===n.value,r=m.createLiteral(n)):e===t.NullLiteral?((n=U()).value=null,r=m.createLiteral(n)):Z("/")||Z("/=")?(r=m.createLiteral(void 0!==y.tokens?q():P()),z()):W(U());return m.markEnd(r,s)}function ie(){var e=[];if(K("("),!Z(")"))for(;d<p&&(e.push(fe()),!Z(")"));)K(",");return K(")"),e}function oe(){return K("."),n=g,function(e){return e.type===t.Identifier||e.type===t.Keyword||e.type===t.BooleanLiteral||e.type===t.NullLiteral}(e=U())||W(e),m.markEnd(m.createIdentifier(e.value),n);var e,n}function se(){var e;return K("["),e=he(),K("]"),e}function le(){var e,t,n;return n=g,Y("new"),e=function(){var e,t,n,r;for(r=g,e=_.allowIn,t=X("new")?le():ae(),_.allowIn=e;Z(".")||Z("[");)Z("[")?(n=se(),t=m.createMemberExpression("[",t,n)):(n=oe(),t=m.createMemberExpression(".",t,n)),m.markEnd(t,r);return t}(),t=Z("(")?ie():[],m.markEnd(m.createNewExpression(e,t),n)}function ce(){var e,n,r=g;return e=function(){var e,t,n,r,a;for(a=g,e=_.allowIn,_.allowIn=!0,t=X("new")?le():ae(),_.allowIn=e;;){if(Z("."))r=oe(),t=m.createMemberExpression(".",t,r);else if(Z("("))n=ie(),t=m.createCallExpression(t,n);else{if(!Z("["))break;r=se(),t=m.createMemberExpression("[",t,r)}m.markEnd(t,a)}return t}(),g.type===t.Punctuator&&(!Z("++")&&!Z("--")||$()||(u&&e.type===a.Identifier&&R(e.name)&&V({},o.StrictLHSPostfix),ee(e)||V({},o.InvalidLHSInAssignment),n=U(),e=m.markEnd(m.createPostfixExpression(n.value,e),r))),e}function ue(){var e,n,r;return g.type!==t.Punctuator&&g.type!==t.Keyword?n=ce():Z("++")||Z("--")?(r=g,e=U(),n=ue(),u&&n.type===a.Identifier&&R(n.name)&&V({},o.StrictLHSPrefix),ee(n)||V({},o.InvalidLHSInAssignment),n=m.createUnaryExpression(e.value,n),n=m.markEnd(n,r)):Z("+")||Z("-")||Z("~")||Z("!")?(r=g,e=U(),n=ue(),n=m.createUnaryExpression(e.value,n),n=m.markEnd(n,r)):X("delete")||X("void")||X("typeof")?(r=g,e=U(),n=ue(),n=m.createUnaryExpression(e.value,n),n=m.markEnd(n,r),u&&"delete"===n.operator&&n.argument.type===a.Identifier&&V({},o.StrictDelete)):n=ce(),n}function de(e,n){var r=0;if(e.type!==t.Punctuator&&e.type!==t.Keyword)return 0;switch(e.value){case"||":r=1;break;case"&&":r=2;break;case"|":r=3;break;case"^":r=4;break;case"&":r=5;break;case"==":case"!=":case"===":case"!==":r=6;break;case"<":case">":case"<=":case">=":case"instanceof":r=7;break;case"in":r=n?7:0;break;case"<<":case">>":case">>>":r=8;break;case"+":case"-":r=9;break;case"*":case"/":case"%":r=11}return r}function fe(){var e,n,r,i,s,l;return e=g,s=g,i=n=function(){var e,t,n,r,a;return a=g,e=function(){var e,t,n,r,a,i,o,s,l,c;if(e=g,l=ue(),0===(a=de(r=g,_.allowIn)))return l;for(r.prec=a,U(),t=[e,g],i=[l,r,o=ue()];(a=de(g,_.allowIn))>0;){for(;i.length>2&&a<=i[i.length-2].prec;)o=i.pop(),s=i.pop().value,l=i.pop(),n=m.createBinaryExpression(s,l,o),t.pop(),m.markEnd(n,e=t[t.length-1]),i.push(n);(r=U()).prec=a,i.push(r),t.push(g),n=ue(),i.push(n)}for(n=i[c=i.length-1],t.pop();c>1;)n=m.createBinaryExpression(i[c-1].value,i[c-2],n),c-=2,e=t.pop(),m.markEnd(n,e);return n}(),Z("?")&&(U(),t=_.allowIn,_.allowIn=!0,n=fe(),_.allowIn=t,K(":"),r=fe(),e=m.createConditionalExpression(e,n,r),m.markEnd(e,a)),e}(),g.type!==t.Punctuator||"="!==(l=g.value)&&"*="!==l&&"/="!==l&&"%="!==l&&"+="!==l&&"-="!==l&&"<<="!==l&&">>="!==l&&">>>="!==l&&"&="!==l&&"^="!==l&&"|="!==l||(ee(n)||V({},o.InvalidLHSInAssignment),u&&n.type===a.Identifier&&R(n.name)&&V(e,o.StrictLHSAssignment),e=U(),r=fe(),i=m.markEnd(m.createAssignmentExpression(e.value,n,r),s)),i}function he(){var e,t=g;if(e=fe(),Z(",")){for(e=m.createSequenceExpression([e]);d<p&&Z(",");)U(),e.expressions.push(fe());m.markEnd(e,t)}return e}function pe(){var e,t;return t=g,K("{"),e=function(){for(var e,t=[];d<p&&!Z("}")&&void 0!==(e=Se());)t.push(e);return t}(),K("}"),m.markEnd(m.createBlockStatement(e),t)}function me(){var e,n;return n=g,(e=U()).type!==t.Identifier&&W(e),m.markEnd(m.createIdentifier(e.value),n)}function ge(e){var t,n,r=null;return n=g,t=me(),u&&R(t.name)&&V({},o.StrictVarName),"const"===e?(K("="),r=fe()):Z("=")&&(U(),r=fe()),m.markEnd(m.createVariableDeclarator(t,r),n)}function _e(e){var t=[];do{if(t.push(ge(e)),!Z(","))break;U()}while(d<p);return t}function ye(){var e,t,n,r=[];for(n=g,X("default")?(U(),e=null):(Y("case"),e=he()),K(":");d<p&&!(Z("}")||X("default")||X("case"));)t=ve(),r.push(t);return m.markEnd(m.createSwitchCase(e,r),n)}function ve(){var e,n,r,i,s,l,f,h,y,v,b=g.type;if(b===t.EOF&&W(g),b===t.Punctuator&&"{"===g.value)return pe();if(i=g,b===t.Punctuator)switch(g.value){case";":return m.markEnd((K(";"),m.createEmptyStatement()),i);case"(":return m.markEnd(function(){var e=he();return Q(),m.createExpressionStatement(e)}(),i)}if(b===t.Keyword)switch(g.value){case"break":return m.markEnd((v=null,Y("break"),59===c.charCodeAt(d)?(U(),_.inIteration||_.inSwitch||J({},o.IllegalBreak),m.createBreakStatement(null)):$()?(_.inIteration||_.inSwitch||J({},o.IllegalBreak),m.createBreakStatement(null)):(g.type===t.Identifier&&(v=me(),Object.prototype.hasOwnProperty.call(_.labelSet,"$"+v.name)||J({},o.UnknownLabel,v.name)),Q(),null!==v||_.inIteration||_.inSwitch||J({},o.IllegalBreak),m.createBreakStatement(v))),i);case"continue":return m.markEnd(function(){var e=null;return Y("continue"),59===c.charCodeAt(d)?(U(),_.inIteration||J({},o.IllegalContinue),m.createContinueStatement(null)):$()?(_.inIteration||J({},o.IllegalContinue),m.createContinueStatement(null)):(g.type===t.Identifier&&(e=me(),Object.prototype.hasOwnProperty.call(_.labelSet,"$"+e.name)||J({},o.UnknownLabel,e.name)),Q(),null!==e||_.inIteration||J({},o.IllegalContinue),m.createContinueStatement(e))}(),i);case"debugger":return m.markEnd((Y("debugger"),Q(),m.createDebuggerStatement()),i);case"do":return m.markEnd((Y("do"),y=_.inIteration,_.inIteration=!0,f=ve(),_.inIteration=y,Y("while"),K("("),h=he(),K(")"),Z(";")&&U(),m.createDoWhileStatement(f,h)),i);case"for":return m.markEnd(function(){var e,t,n,r,a,i,s,l,c,u;return e=t=n=null,Y("for"),K("("),Z(";")?U():(X("var")||X("let")?(_.allowIn=!1,u=g,l=U(),c=_e(),e=m.markEnd(m.createVariableDeclaration(c,l.value),u),_.allowIn=!0,1===e.declarations.length&&X("in")&&(U(),r=e,a=he(),e=null)):(_.allowIn=!1,e=he(),_.allowIn=!0,X("in")&&(ee(e)||V({},o.InvalidLHSInForIn),U(),r=e,a=he(),e=null)),void 0===r&&K(";")),void 0===r&&(Z(";")||(t=he()),K(";"),Z(")")||(n=he())),K(")"),s=_.inIteration,_.inIteration=!0,i=ve(),_.inIteration=s,void 0===r?m.createForStatement(e,t,n,i):m.createForInStatement(r,a,i)}(),i);case"function":return m.markEnd(xe(),i);case"if":return m.markEnd(function(){var e,t,n;return Y("if"),K("("),e=he(),K(")"),t=ve(),X("else")?(U(),n=ve()):n=null,m.createIfStatement(e,t,n)}(),i);case"return":return m.markEnd((l=null,Y("return"),_.inFunctionBody||V({},o.IllegalReturn),32===c.charCodeAt(d)&&E(c.charCodeAt(d+1))?(l=he(),Q(),m.createReturnStatement(l)):$()?m.createReturnStatement(null):(Z(";")||Z("}")||g.type===t.EOF||(l=he()),Q(),m.createReturnStatement(l))),i);case"switch":return m.markEnd(function(){var e,t,n,r,a;if(Y("switch"),K("("),e=he(),K(")"),K("{"),t=[],Z("}"))return U(),m.createSwitchStatement(e,t);for(r=_.inSwitch,_.inSwitch=!0,a=!1;d<p&&!Z("}");)null===(n=ye()).test&&(a&&J({},o.MultipleDefaultsInSwitch),a=!0),t.push(n);return _.inSwitch=r,K("}"),m.createSwitchStatement(e,t)}(),i);case"throw":return m.markEnd(function(){var e;return Y("throw"),$()&&J({},o.NewlineAfterThrow),e=he(),Q(),m.createThrowStatement(e)}(),i);case"try":return m.markEnd(function(){var e,t,n,r,a=[],i=null;return Y("try"),e=pe(),X("catch")&&a.push((r=g,Y("catch"),K("("),Z(")")&&W(g),t=me(),u&&R(t.name)&&V({},o.StrictCatchVariable),K(")"),n=pe(),m.markEnd(m.createCatchClause(t,n),r))),X("finally")&&(U(),i=pe()),0!==a.length||i||J({},o.NoCatchOrFinally),m.createTryStatement(e,[],a,i)}(),i);case"var":return m.markEnd((Y("var"),s=_e(),Q(),m.createVariableDeclaration(s,"var")),i);case"while":return m.markEnd(function(){var e,t,n;return Y("while"),K("("),e=he(),K(")"),n=_.inIteration,_.inIteration=!0,t=ve(),_.inIteration=n,m.createWhileStatement(e,t)}(),i);case"with":return m.markEnd(function(){var e,t;return u&&(O(),V({},o.StrictModeWith)),Y("with"),K("("),e=he(),K(")"),t=ve(),m.createWithStatement(e,t)}(),i)}return(e=he()).type===a.Identifier&&Z(":")?(U(),r="$"+e.name,Object.prototype.hasOwnProperty.call(_.labelSet,r)&&J({},o.Redeclaration,"Label",e.name),_.labelSet[r]=!0,n=ve(),delete _.labelSet[r],m.markEnd(m.createLabeledStatement(e,n),i)):(Q(),m.markEnd(m.createExpressionStatement(e),i))}function be(){var e,n,r,i,s,l,f,h,y=[];for(h=g,K("{");d<p&&g.type===t.StringLiteral&&(n=g,e=Se(),y.push(e),e.expression.type===a.Literal);)"use strict"===c.slice(n.start+1,n.end-1)?(u=!0,r&&V(r,o.StrictOctalLiteral)):!r&&n.octal&&(r=n);for(i=_.labelSet,s=_.inIteration,l=_.inSwitch,f=_.inFunctionBody,_.labelSet={},_.inIteration=!1,_.inSwitch=!1,_.inFunctionBody=!0;d<p&&!Z("}")&&void 0!==(e=Se());)y.push(e);return K("}"),_.labelSet=i,_.inIteration=s,_.inSwitch=l,_.inFunctionBody=f,m.markEnd(m.createBlockStatement(y),h)}function we(e){var t,n,r,a,i,s,l=[];if(K("("),!Z(")"))for(a={};d<p&&(n=g,t=me(),i="$"+n.value,u?(R(n.value)&&(r=n,s=o.StrictParamName),Object.prototype.hasOwnProperty.call(a,i)&&(r=n,s=o.StrictParamDupe)):e||(R(n.value)?(e=n,s=o.StrictParamName):C(n.value)?(e=n,s=o.StrictReservedWord):Object.prototype.hasOwnProperty.call(a,i)&&(e=n,s=o.StrictParamDupe)),l.push(t),a[i]=!0,!Z(")"));)K(",");return K(")"),{params:l,stricted:r,firstRestricted:e,message:s}}function xe(){var e,t,n,r,a,i,s,l,c,d;return d=g,Y("function"),r=g,e=me(),u?R(r.value)&&V(r,o.StrictFunctionName):R(r.value)?(s=r,l=o.StrictFunctionName):C(r.value)&&(s=r,l=o.StrictReservedWord),t=(i=we(s)).params,a=i.stricted,s=i.firstRestricted,i.message&&(l=i.message),c=u,n=be(),u&&s&&J(s,l),u&&a&&V(a,l),u=c,m.markEnd(m.createFunctionDeclaration(e,t,[],n),d)}function Se(){if(g.type===t.Keyword)switch(g.value){case"const":case"let":return r=g,Y(e=g.value),n=_e(e),Q(),m.markEnd(m.createVariableDeclaration(n,e),r);case"function":return xe();default:return ve()}var e,n,r;if(g.type!==t.EOF)return ve()}function ke(){var e,t,n,r=[];for(e=0;e<y.tokens.length;++e)n={type:(t=y.tokens[e]).type,value:t.value},y.range&&(n.range=t.range),y.loc&&(n.loc=t.loc),r.push(n);y.tokens=r}(n={})[(t={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8,RegularExpression:9}).BooleanLiteral]="Boolean",n[t.EOF]="<end>",n[t.Identifier]="Identifier",n[t.Keyword]="Keyword",n[t.NullLiteral]="Null",n[t.NumericLiteral]="Numeric",n[t.Punctuator]="Punctuator",n[t.StringLiteral]="String",n[t.RegularExpression]="RegularExpression",r=["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="],a={AssignmentExpression:"AssignmentExpression",ArrayExpression:"ArrayExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",Program:"Program",Property:"Property",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement"},i={Data:1,Get:2,Set:4},o={UnexpectedToken:"Unexpected token %0",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictDuplicateProperty:"Duplicate data property in object literal not allowed in strict mode",AccessorDataProperty:"Object literal may not have data and accessor property with the same name",AccessorGetSet:"Object literal may not have multiple get/set accessors with the same name",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode"},s={NonAsciiIdentifierStart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԧԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠࢢ-ࢬऄ-हऽॐक़-ॡॱ-ॷॹ-ॿঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-ళవ-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤜᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚗꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꪀ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]"),NonAsciiIdentifierPart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԧԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠࢢ-ࢬࣤ-ࣾऀ-ॣ०-९ॱ-ॷॹ-ॿঁ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఁ-ఃఅ-ఌఎ-ఐఒ-నప-ళవ-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಂಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲംഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤜᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶᴀ-ᷦ᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚗꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺꩻꪀ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︦︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]")},l={name:"SyntaxTree",processComment:function(e){var t,n;if(!(e.type===a.Program&&e.body.length>0)){for(y.trailingComments.length>0?y.trailingComments[0].range[0]>=e.range[1]?(n=y.trailingComments,y.trailingComments=[]):y.trailingComments.length=0:y.bottomRightStack.length>0&&y.bottomRightStack[y.bottomRightStack.length-1].trailingComments&&y.bottomRightStack[y.bottomRightStack.length-1].trailingComments[0].range[0]>=e.range[1]&&(n=y.bottomRightStack[y.bottomRightStack.length-1].trailingComments,delete y.bottomRightStack[y.bottomRightStack.length-1].trailingComments);y.bottomRightStack.length>0&&y.bottomRightStack[y.bottomRightStack.length-1].range[0]>=e.range[0];)t=y.bottomRightStack.pop();t?t.leadingComments&&t.leadingComments[t.leadingComments.length-1].range[1]<=e.range[0]&&(e.leadingComments=t.leadingComments,delete t.leadingComments):y.leadingComments.length>0&&y.leadingComments[y.leadingComments.length-1].range[1]<=e.range[0]&&(e.leadingComments=y.leadingComments,y.leadingComments=[]),n&&(e.trailingComments=n),y.bottomRightStack.push(e)}},markEnd:function(e,t){return y.range&&(e.range=[t.start,d]),y.loc&&(e.loc=new H(void 0===t.startLineNumber?t.lineNumber:t.startLineNumber,t.start-(void 0===t.startLineStart?t.lineStart:t.startLineStart),f,d-h),this.postProcess(e)),y.attachComment&&this.processComment(e),e},postProcess:function(e){return y.source&&(e.loc.source=y.source),e},createArrayExpression:function(e){return{type:a.ArrayExpression,elements:e}},createAssignmentExpression:function(e,t,n){return{type:a.AssignmentExpression,operator:e,left:t,right:n}},createBinaryExpression:function(e,t,n){return{type:"||"===e||"&&"===e?a.LogicalExpression:a.BinaryExpression,operator:e,left:t,right:n}},createBlockStatement:function(e){return{type:a.BlockStatement,body:e}},createBreakStatement:function(e){return{type:a.BreakStatement,label:e}},createCallExpression:function(e,t){return{type:a.CallExpression,callee:e,arguments:t}},createCatchClause:function(e,t){return{type:a.CatchClause,param:e,body:t}},createConditionalExpression:function(e,t,n){return{type:a.ConditionalExpression,test:e,consequent:t,alternate:n}},createContinueStatement:function(e){return{type:a.ContinueStatement,label:e}},createDebuggerStatement:function(){return{type:a.DebuggerStatement}},createDoWhileStatement:function(e,t){return{type:a.DoWhileStatement,body:e,test:t}},createEmptyStatement:function(){return{type:a.EmptyStatement}},createExpressionStatement:function(e){return{type:a.ExpressionStatement,expression:e}},createForStatement:function(e,t,n,r){return{type:a.ForStatement,init:e,test:t,update:n,body:r}},createForInStatement:function(e,t,n){return{type:a.ForInStatement,left:e,right:t,body:n,each:!1}},createFunctionDeclaration:function(e,t,n,r){return{type:a.FunctionDeclaration,id:e,params:t,defaults:n,body:r,rest:null,generator:!1,expression:!1}},createFunctionExpression:function(e,t,n,r){return{type:a.FunctionExpression,id:e,params:t,defaults:n,body:r,rest:null,generator:!1,expression:!1}},createIdentifier:function(e){return{type:a.Identifier,name:e}},createIfStatement:function(e,t,n){return{type:a.IfStatement,test:e,consequent:t,alternate:n}},createLabeledStatement:function(e,t){return{type:a.LabeledStatement,label:e,body:t}},createLiteral:function(e){return{type:a.Literal,value:e.value,raw:c.slice(e.start,e.end)}},createMemberExpression:function(e,t,n){return{type:a.MemberExpression,computed:"["===e,object:t,property:n}},createNewExpression:function(e,t){return{type:a.NewExpression,callee:e,arguments:t}},createObjectExpression:function(e){return{type:a.ObjectExpression,properties:e}},createPostfixExpression:function(e,t){return{type:a.UpdateExpression,operator:e,argument:t,prefix:!1}},createProgram:function(e){return{type:a.Program,body:e}},createProperty:function(e,t,n){return{type:a.Property,key:t,value:n,kind:e}},createReturnStatement:function(e){return{type:a.ReturnStatement,argument:e}},createSequenceExpression:function(e){return{type:a.SequenceExpression,expressions:e}},createSwitchCase:function(e,t){return{type:a.SwitchCase,test:e,consequent:t}},createSwitchStatement:function(e,t){return{type:a.SwitchStatement,discriminant:e,cases:t}},createThisExpression:function(){return{type:a.ThisExpression}},createThrowStatement:function(e){return{type:a.ThrowStatement,argument:e}},createTryStatement:function(e,t,n,r){return{type:a.TryStatement,block:e,guardedHandlers:t,handlers:n,finalizer:r}},createUnaryExpression:function(e,t){return"++"===e||"--"===e?{type:a.UpdateExpression,operator:e,argument:t,prefix:!0}:{type:a.UnaryExpression,operator:e,argument:t,prefix:!0}},createVariableDeclaration:function(e,t){return{type:a.VariableDeclaration,declarations:e,kind:t}},createVariableDeclarator:function(e,t){return{type:a.VariableDeclarator,id:e,init:t}},createWhileStatement:function(e,t){return{type:a.WhileStatement,test:e,body:t}},createWithStatement:function(e,t){return{type:a.WithStatement,object:e,body:t}}},e.version="1.2.2",e.tokenize=function(e,n){var r;"string"==typeof e||e instanceof String||(e=String(e)),m=l,d=0,f=(c=e).length>0?1:0,h=0,p=c.length,g=null,_={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1},y={},(n=n||{}).tokens=!0,y.tokens=[],y.tokenize=!0,y.openParenToken=-1,y.openCurlyToken=-1,y.range="boolean"==typeof n.range&&n.range,y.loc="boolean"==typeof n.loc&&n.loc,"boolean"==typeof n.comment&&n.comment&&(y.comments=[]),"boolean"==typeof n.tolerant&&n.tolerant&&(y.errors=[]);try{if(z(),g.type===t.EOF)return y.tokens;for(U();g.type!==t.EOF;)try{U()}catch(e){if(y.errors){y.errors.push(e);break}throw e}ke(),r=y.tokens,void 0!==y.comments&&(r.comments=y.comments),void 0!==y.errors&&(r.errors=y.errors)}catch(e){throw e}finally{y={}}return r},e.parse=function(e,n){var r,i,s,v;i=String,"string"==typeof e||e instanceof String||(e=i(e)),m=l,d=0,f=(c=e).length>0?1:0,h=0,p=c.length,g=null,_={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1},y={},void 0!==n&&(y.range="boolean"==typeof n.range&&n.range,y.loc="boolean"==typeof n.loc&&n.loc,y.attachComment="boolean"==typeof n.attachComment&&n.attachComment,y.loc&&null!=n.source&&(y.source=i(n.source)),"boolean"==typeof n.tokens&&n.tokens&&(y.tokens=[]),"boolean"==typeof n.comment&&n.comment&&(y.comments=[]),"boolean"==typeof n.tolerant&&n.tolerant&&(y.errors=[]),y.attachComment&&(y.range=!0,y.comments=[],y.bottomRightStack=[],y.trailingComments=[],y.leadingComments=[]));try{O(),z(),v=g,u=!1,s=function(){for(var e,n,r,i=[];d<p&&(n=g).type===t.StringLiteral&&(e=Se(),i.push(e),e.expression.type===a.Literal);)"use strict"===c.slice(n.start+1,n.end-1)?(u=!0,r&&V(r,o.StrictOctalLiteral)):!r&&n.octal&&(r=n);for(;d<p&&void 0!==(e=Se());)i.push(e);return i}(),r=m.markEnd(m.createProgram(s),v),void 0!==y.comments&&(r.comments=y.comments),void 0!==y.tokens&&(ke(),r.tokens=y.tokens),void 0!==y.errors&&(r.errors=y.errors)}catch(e){throw e}finally{y={}}return r},e.Syntax=function(){var e,t={};for(e in"function"==typeof Object.create&&(t=Object.create(null)),a)a.hasOwnProperty(e)&&(t[e]=a[e]);return"function"==typeof Object.freeze&&Object.freeze(t),t}()},r(void 0!==n?n:this.esprima={})},{}],1:[function(e,t,n){(function(r){var a=function(){var e={trace:function(){},yy:{},symbols_:{error:2,JSON_PATH:3,DOLLAR:4,PATH_COMPONENTS:5,LEADING_CHILD_MEMBER_EXPRESSION:6,PATH_COMPONENT:7,MEMBER_COMPONENT:8,SUBSCRIPT_COMPONENT:9,CHILD_MEMBER_COMPONENT:10,DESCENDANT_MEMBER_COMPONENT:11,DOT:12,MEMBER_EXPRESSION:13,DOT_DOT:14,STAR:15,IDENTIFIER:16,SCRIPT_EXPRESSION:17,INTEGER:18,END:19,CHILD_SUBSCRIPT_COMPONENT:20,DESCENDANT_SUBSCRIPT_COMPONENT:21,"[":22,SUBSCRIPT:23,"]":24,SUBSCRIPT_EXPRESSION:25,SUBSCRIPT_EXPRESSION_LIST:26,SUBSCRIPT_EXPRESSION_LISTABLE:27,",":28,STRING_LITERAL:29,ARRAY_SLICE:30,FILTER_EXPRESSION:31,QQ_STRING:32,Q_STRING:33,$accept:0,$end:1},terminals_:{2:"error",4:"DOLLAR",12:"DOT",14:"DOT_DOT",15:"STAR",16:"IDENTIFIER",17:"SCRIPT_EXPRESSION",18:"INTEGER",19:"END",22:"[",24:"]",28:",",30:"ARRAY_SLICE",31:"FILTER_EXPRESSION",32:"QQ_STRING",33:"Q_STRING"},productions_:[0,[3,1],[3,2],[3,1],[3,2],[5,1],[5,2],[7,1],[7,1],[8,1],[8,1],[10,2],[6,1],[11,2],[13,1],[13,1],[13,1],[13,1],[13,1],[9,1],[9,1],[20,3],[21,4],[23,1],[23,1],[26,1],[26,3],[27,1],[27,1],[27,1],[25,1],[25,1],[25,1],[29,1],[29,1]],performAction:function(e,n,r,a,i,o,s){a.ast||(a.ast=t,t.initialize());var l=o.length-1;switch(i){case 1:return a.ast.set({expression:{type:"root",value:o[l]}}),a.ast.unshift(),a.ast.yield();case 2:return a.ast.set({expression:{type:"root",value:o[l-1]}}),a.ast.unshift(),a.ast.yield();case 3:return a.ast.unshift(),a.ast.yield();case 4:return a.ast.set({operation:"member",scope:"child",expression:{type:"identifier",value:o[l-1]}}),a.ast.unshift(),a.ast.yield();case 5:case 6:case 11:case 13:case 18:case 21:case 22:case 23:break;case 7:a.ast.set({operation:"member"}),a.ast.push();break;case 8:a.ast.set({operation:"subscript"}),a.ast.push();break;case 9:case 19:a.ast.set({scope:"child"});break;case 10:case 20:a.ast.set({scope:"descendant"});break;case 12:a.ast.set({scope:"child",operation:"member"});break;case 14:a.ast.set({expression:{type:"wildcard",value:o[l]}});break;case 15:a.ast.set({expression:{type:"identifier",value:o[l]}});break;case 16:a.ast.set({expression:{type:"script_expression",value:o[l]}});break;case 17:a.ast.set({expression:{type:"numeric_literal",value:parseInt(o[l])}});break;case 24:o[l].length>1?a.ast.set({expression:{type:"union",value:o[l]}}):this.$=o[l];break;case 25:this.$=[o[l]];break;case 26:this.$=o[l-2].concat(o[l]);break;case 27:this.$={expression:{type:"numeric_literal",value:parseInt(o[l])}},a.ast.set(this.$);break;case 28:this.$={expression:{type:"string_literal",value:o[l]}},a.ast.set(this.$);break;case 29:this.$={expression:{type:"slice",value:o[l]}},a.ast.set(this.$);break;case 30:this.$={expression:{type:"wildcard",value:o[l]}},a.ast.set(this.$);break;case 31:this.$={expression:{type:"script_expression",value:o[l]}},a.ast.set(this.$);break;case 32:this.$={expression:{type:"filter_expression",value:o[l]}},a.ast.set(this.$);break;case 33:case 34:this.$=o[l]}},table:[{3:1,4:[1,2],6:3,13:4,15:[1,5],16:[1,6],17:[1,7],18:[1,8],19:[1,9]},{1:[3]},{1:[2,1],5:10,7:11,8:12,9:13,10:14,11:15,12:[1,18],14:[1,19],20:16,21:17,22:[1,20]},{1:[2,3],5:21,7:11,8:12,9:13,10:14,11:15,12:[1,18],14:[1,19],20:16,21:17,22:[1,20]},{1:[2,12],12:[2,12],14:[2,12],22:[2,12]},{1:[2,14],12:[2,14],14:[2,14],22:[2,14]},{1:[2,15],12:[2,15],14:[2,15],22:[2,15]},{1:[2,16],12:[2,16],14:[2,16],22:[2,16]},{1:[2,17],12:[2,17],14:[2,17],22:[2,17]},{1:[2,18],12:[2,18],14:[2,18],22:[2,18]},{1:[2,2],7:22,8:12,9:13,10:14,11:15,12:[1,18],14:[1,19],20:16,21:17,22:[1,20]},{1:[2,5],12:[2,5],14:[2,5],22:[2,5]},{1:[2,7],12:[2,7],14:[2,7],22:[2,7]},{1:[2,8],12:[2,8],14:[2,8],22:[2,8]},{1:[2,9],12:[2,9],14:[2,9],22:[2,9]},{1:[2,10],12:[2,10],14:[2,10],22:[2,10]},{1:[2,19],12:[2,19],14:[2,19],22:[2,19]},{1:[2,20],12:[2,20],14:[2,20],22:[2,20]},{13:23,15:[1,5],16:[1,6],17:[1,7],18:[1,8],19:[1,9]},{13:24,15:[1,5],16:[1,6],17:[1,7],18:[1,8],19:[1,9],22:[1,25]},{15:[1,29],17:[1,30],18:[1,33],23:26,25:27,26:28,27:32,29:34,30:[1,35],31:[1,31],32:[1,36],33:[1,37]},{1:[2,4],7:22,8:12,9:13,10:14,11:15,12:[1,18],14:[1,19],20:16,21:17,22:[1,20]},{1:[2,6],12:[2,6],14:[2,6],22:[2,6]},{1:[2,11],12:[2,11],14:[2,11],22:[2,11]},{1:[2,13],12:[2,13],14:[2,13],22:[2,13]},{15:[1,29],17:[1,30],18:[1,33],23:38,25:27,26:28,27:32,29:34,30:[1,35],31:[1,31],32:[1,36],33:[1,37]},{24:[1,39]},{24:[2,23]},{24:[2,24],28:[1,40]},{24:[2,30]},{24:[2,31]},{24:[2,32]},{24:[2,25],28:[2,25]},{24:[2,27],28:[2,27]},{24:[2,28],28:[2,28]},{24:[2,29],28:[2,29]},{24:[2,33],28:[2,33]},{24:[2,34],28:[2,34]},{24:[1,41]},{1:[2,21],12:[2,21],14:[2,21],22:[2,21]},{18:[1,33],27:42,29:34,30:[1,35],32:[1,36],33:[1,37]},{1:[2,22],12:[2,22],14:[2,22],22:[2,22]},{24:[2,26],28:[2,26]}],defaultActions:{27:[2,23],29:[2,30],30:[2,31],31:[2,32]},parseError:function(e,t){if(!t.recoverable)throw new Error(e);this.trace(e)},parse:function(e){var t=[0],n=[null],r=[],a=this.table,i="",o=0,s=0,l=r.slice.call(arguments,1);this.lexer.setInput(e),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,void 0===this.lexer.yylloc&&(this.lexer.yylloc={});var c=this.lexer.yylloc;r.push(c);var u=this.lexer.options&&this.lexer.options.ranges;this.parseError="function"==typeof this.yy.parseError?this.yy.parseError:Object.getPrototypeOf(this).parseError;for(var d,f,h,p,m,g,_,y,v={};;){if(this.defaultActions[f=t[t.length-1]]?h=this.defaultActions[f]:(null==d&&(y=void 0,"number"!=typeof(y=this.lexer.lex()||1)&&(y=this.symbols_[y]||y),d=y),h=a[f]&&a[f][d]),void 0===h||!h.length||!h[0]){var b;for(m in _=[],a[f])this.terminals_[m]&&m>2&&_.push("'"+this.terminals_[m]+"'");b=this.lexer.showPosition?"Parse error on line "+(o+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+_.join(", ")+", got '"+(this.terminals_[d]||d)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==d?"end of input":"'"+(this.terminals_[d]||d)+"'"),this.parseError(b,{text:this.lexer.match,token:this.terminals_[d]||d,line:this.lexer.yylineno,loc:c,expected:_})}if(h[0]instanceof Array&&h.length>1)throw new Error("Parse Error: multiple actions possible at state: "+f+", token: "+d);switch(h[0]){case 1:t.push(d),n.push(this.lexer.yytext),r.push(this.lexer.yylloc),t.push(h[1]),d=null,s=this.lexer.yyleng,i=this.lexer.yytext,o=this.lexer.yylineno,c=this.lexer.yylloc;break;case 2:if(v.$=n[n.length-(g=this.productions_[h[1]][1])],v._$={first_line:r[r.length-(g||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(g||1)].first_column,last_column:r[r.length-1].last_column},u&&(v._$.range=[r[r.length-(g||1)].range[0],r[r.length-1].range[1]]),void 0!==(p=this.performAction.apply(v,[i,s,o,this.yy,h[1],n,r].concat(l))))return p;g&&(t=t.slice(0,-1*g*2),n=n.slice(0,-1*g),r=r.slice(0,-1*g)),t.push(this.productions_[h[1]][0]),n.push(v.$),r.push(v._$),t.push(a[t[t.length-2]][t[t.length-1]]);break;case 3:return!0}}return!0}},t={initialize:function(){this._nodes=[],this._node={},this._stash=[]},set:function(e){for(var t in e)this._node[t]=e[t];return this._node},node:function(e){return arguments.length&&(this._node=e),this._node},push:function(){this._nodes.push(this._node),this._node={}},unshift:function(){this._nodes.unshift(this._node),this._node={}},yield:function(){var e=this._nodes;return this.initialize(),e}},n=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t-1),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var n,r,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(r=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var i in a)this[i]=a[i];return!1}return!1},next:function(){if(this.done)return this.EOF;var e,t,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),i=0;i<a.length;i++)if((n=this._input.match(this.rules[a[i]]))&&(!t||n[0].length>t[0].length)){if(t=n,r=i,this.options.backtrack_lexer){if(!1!==(e=this.test_match(n,a[i])))return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,a[r]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return(e=this.conditionStack.length-1-Math.abs(e||0))>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(e,t,n,r){switch(n){case 0:return 4;case 1:return 14;case 2:return 12;case 3:return 15;case 4:return 16;case 5:return 22;case 6:return 24;case 7:return 28;case 8:return 30;case 9:return 18;case 10:return t.yytext=t.yytext.substr(1,t.yyleng-2),32;case 11:return t.yytext=t.yytext.substr(1,t.yyleng-2),33;case 12:return 17;case 13:return 31}},rules:[/^(?:\$)/,/^(?:\.\.)/,/^(?:\.)/,/^(?:\*)/,/^(?:[a-zA-Z_]+[a-zA-Z0-9_]*)/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?:((-?(?:0|[1-9][0-9]*)))?\:((-?(?:0|[1-9][0-9]*)))?(\:((-?(?:0|[1-9][0-9]*)))?)?)/,/^(?:(-?(?:0|[1-9][0-9]*)))/,/^(?:"(?:\\["bfnrt/\\]|\\u[a-fA-F0-9]{4}|[^"\\])*")/,/^(?:'(?:\\['bfnrt/\\]|\\u[a-fA-F0-9]{4}|[^'\\])*')/,/^(?:\(.+?\)(?=\]))/,/^(?:\?\(.+?\)(?=\]))/],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}}};return e}();function r(){this.yy={}}return e.lexer=n,r.prototype=e,e.Parser=r,new r}();void 0!==e&&void 0!==n&&(n.parser=a,n.Parser=a.Parser,n.parse=function(){return a.parse.apply(a,arguments)},n.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),r.exit(1));var a=e("fs").readFileSync(e("path").normalize(t[1]),"utf8");return n.parser.parse(a)},void 0!==t&&e.main===t&&n.main(r.argv.slice(1)))}).call(this,e("_process"))},{_process:14,fs:12,path:13}],2:[function(e,t,n){t.exports={identifier:"[a-zA-Z_]+[a-zA-Z0-9_]*",integer:"-?(?:0|[1-9][0-9]*)",qq_string:'"(?:\\\\["bfnrt/\\\\]|\\\\u[a-fA-F0-9]{4}|[^"\\\\])*"',q_string:"'(?:\\\\['bfnrt/\\\\]|\\\\u[a-fA-F0-9]{4}|[^'\\\\])*'"}},{}],3:[function(e,t,n){var r=e("./dict"),a=e("fs"),i={lex:{macros:{esc:"\\\\",int:r.integer},rules:[["\\$","return 'DOLLAR'"],["\\.\\.","return 'DOT_DOT'"],["\\.","return 'DOT'"],["\\*","return 'STAR'"],[r.identifier,"return 'IDENTIFIER'"],["\\[","return '['"],["\\]","return ']'"],[",","return ','"],["({int})?\\:({int})?(\\:({int})?)?","return 'ARRAY_SLICE'"],["{int}","return 'INTEGER'"],[r.qq_string,"yytext = yytext.substr(1,yyleng-2); return 'QQ_STRING';"],[r.q_string,"yytext = yytext.substr(1,yyleng-2); return 'Q_STRING';"],["\\(.+?\\)(?=\\])","return 'SCRIPT_EXPRESSION'"],["\\?\\(.+?\\)(?=\\])","return 'FILTER_EXPRESSION'"]]},start:"JSON_PATH",bnf:{JSON_PATH:[["DOLLAR",'yy.ast.set({ expression: { type: "root", value: $1 } }); yy.ast.unshift(); return yy.ast.yield()'],["DOLLAR PATH_COMPONENTS",'yy.ast.set({ expression: { type: "root", value: $1 } }); yy.ast.unshift(); return yy.ast.yield()'],["LEADING_CHILD_MEMBER_EXPRESSION","yy.ast.unshift(); return yy.ast.yield()"],["LEADING_CHILD_MEMBER_EXPRESSION PATH_COMPONENTS",'yy.ast.set({ operation: "member", scope: "child", expression: { type: "identifier", value: $1 }}); yy.ast.unshift(); return yy.ast.yield()']],PATH_COMPONENTS:[["PATH_COMPONENT",""],["PATH_COMPONENTS PATH_COMPONENT",""]],PATH_COMPONENT:[["MEMBER_COMPONENT",'yy.ast.set({ operation: "member" }); yy.ast.push()'],["SUBSCRIPT_COMPONENT",'yy.ast.set({ operation: "subscript" }); yy.ast.push() ']],MEMBER_COMPONENT:[["CHILD_MEMBER_COMPONENT",'yy.ast.set({ scope: "child" })'],["DESCENDANT_MEMBER_COMPONENT",'yy.ast.set({ scope: "descendant" })']],CHILD_MEMBER_COMPONENT:[["DOT MEMBER_EXPRESSION",""]],LEADING_CHILD_MEMBER_EXPRESSION:[["MEMBER_EXPRESSION",'yy.ast.set({ scope: "child", operation: "member" })']],DESCENDANT_MEMBER_COMPONENT:[["DOT_DOT MEMBER_EXPRESSION",""]],MEMBER_EXPRESSION:[["STAR",'yy.ast.set({ expression: { type: "wildcard", value: $1 } })'],["IDENTIFIER",'yy.ast.set({ expression: { type: "identifier", value: $1 } })'],["SCRIPT_EXPRESSION",'yy.ast.set({ expression: { type: "script_expression", value: $1 } })'],["INTEGER",'yy.ast.set({ expression: { type: "numeric_literal", value: parseInt($1) } })'],["END",""]],SUBSCRIPT_COMPONENT:[["CHILD_SUBSCRIPT_COMPONENT",'yy.ast.set({ scope: "child" })'],["DESCENDANT_SUBSCRIPT_COMPONENT",'yy.ast.set({ scope: "descendant" })']],CHILD_SUBSCRIPT_COMPONENT:[["[ SUBSCRIPT ]",""]],DESCENDANT_SUBSCRIPT_COMPONENT:[["DOT_DOT [ SUBSCRIPT ]",""]],SUBSCRIPT:[["SUBSCRIPT_EXPRESSION",""],["SUBSCRIPT_EXPRESSION_LIST",'$1.length > 1? yy.ast.set({ expression: { type: "union", value: $1 } }) : $$ = $1']],SUBSCRIPT_EXPRESSION_LIST:[["SUBSCRIPT_EXPRESSION_LISTABLE","$$ = [$1]"],["SUBSCRIPT_EXPRESSION_LIST , SUBSCRIPT_EXPRESSION_LISTABLE","$$ = $1.concat($3)"]],SUBSCRIPT_EXPRESSION_LISTABLE:[["INTEGER",'$$ = { expression: { type: "numeric_literal", value: parseInt($1) } }; yy.ast.set($$)'],["STRING_LITERAL",'$$ = { expression: { type: "string_literal", value: $1 } }; yy.ast.set($$)'],["ARRAY_SLICE",'$$ = { expression: { type: "slice", value: $1 } }; yy.ast.set($$)']],SUBSCRIPT_EXPRESSION:[["STAR",'$$ = { expression: { type: "wildcard", value: $1 } }; yy.ast.set($$)'],["SCRIPT_EXPRESSION",'$$ = { expression: { type: "script_expression", value: $1 } }; yy.ast.set($$)'],["FILTER_EXPRESSION",'$$ = { expression: { type: "filter_expression", value: $1 } }; yy.ast.set($$)']],STRING_LITERAL:[["QQ_STRING","$$ = $1"],["Q_STRING","$$ = $1"]]}};a.readFileSync&&(i.moduleInclude=a.readFileSync(e.resolve("../include/module.js")),i.actionInclude=a.readFileSync(e.resolve("../include/action.js"))),t.exports=i},{"./dict":2,fs:12}],4:[function(e,t,n){var r=e("./aesprim"),a=e("./slice"),i=e("static-eval"),o=e("underscore").uniq,s=function(){return this.initialize.apply(this,arguments)};function l(t,n,a){var i=e("./index"),o=h(r.parse(n).body[0].expression,{"@":t.value}),s=a.replace(/\{\{\s*value\s*\}\}/g,o),l=i.nodes(t.value,s);return l.forEach((function(e){e.path=t.path.concat(e.path.slice(1))})),l}function c(e){return Array.isArray(e)}function u(e){return function(t,n,r,a){var i=t.value,o=t.path,s=[],l=function(t,i){var o;c(t)?(t.forEach((function(e,t){s.length>=a||r(t,e,n)&&s.push({path:i.concat(t),value:e})})),t.forEach((function(t,n){s.length>=a||e&&l(t,i.concat(n))}))):(o=t)&&!(o instanceof Array)&&o instanceof Object&&(this.keys(t).forEach((function(e){s.length>=a||r(e,t[e],n)&&s.push({path:i.concat(e),value:t[e]})})),this.keys(t).forEach((function(n){s.length>=a||e&&l(t[n],i.concat(n))})))}.bind(this);return l(i,o),s}}function d(e){return function(t,n,r){return this.descend(n,t.expression.value,e,r)}}function f(e){return function(t,n,r){return this.traverse(n,t.expression.value,e,r)}}function h(){try{return i.apply(this,arguments)}catch(e){}}function p(e){return e=e.filter((function(e){return e})),o(e,(function(e){return e.path.map((function(e){return String(e).replace("-","--")})).join("-")}))}function m(e){var t=String(e);return t.match(/^-?[0-9]+$/)?parseInt(t):null}s.prototype.initialize=function(){this.traverse=u(!0),this.descend=u()},s.prototype.keys=Object.keys,s.prototype.resolve=function(e){var t=[e.operation,e.scope,e.expression.type].join("-"),n=this._fns[t];if(!n)throw new Error("couldn't resolve key: "+t);return n.bind(this)},s.prototype.register=function(e,t){if(!t instanceof Function)throw new Error("handler must be a function");this._fns[e]=t},s.prototype._fns={"member-child-identifier":function(e,t){var n=e.expression.value,r=t.value;if(r instanceof Object&&n in r)return[{value:r[n],path:t.path.concat(n)}]},"member-descendant-identifier":f((function(e,t,n){return e==n})),"subscript-child-numeric_literal":d((function(e,t,n){return e===n})),"member-child-numeric_literal":d((function(e,t,n){return String(e)===String(n)})),"subscript-descendant-numeric_literal":f((function(e,t,n){return e===n})),"member-child-wildcard":d((function(){return!0})),"member-descendant-wildcard":f((function(){return!0})),"subscript-descendant-wildcard":f((function(){return!0})),"subscript-child-wildcard":d((function(){return!0})),"subscript-child-slice":function(e,t){if(c(t.value)){var n=e.expression.value.split(":").map(m),r=t.value.map((function(e,n){return{value:e,path:t.path.concat(n)}}));return a.apply(null,[r].concat(n))}},"subscript-child-union":function(e,t){var n=[];return e.expression.value.forEach((function(e){var r={operation:"subscript",scope:"child",expression:e.expression},a=this.resolve(r)(r,t);a&&(n=n.concat(a))}),this),p(n)},"subscript-descendant-union":function(t,n,r){var a=e(".."),i=this,o=[];return a.nodes(n,"$..*").slice(1).forEach((function(e){o.length>=r||t.expression.value.forEach((function(t){var n={operation:"subscript",scope:"child",expression:t.expression},r=i.resolve(n)(n,e);o=o.concat(r)}))})),p(o)},"subscript-child-filter_expression":function(e,t,n){var a=e.expression.value.slice(2,-1),i=r.parse(a).body[0].expression;return this.descend(t,null,(function(e,t){return h(i,{"@":t})}),n)},"subscript-descendant-filter_expression":function(e,t,n){var a=e.expression.value.slice(2,-1),i=r.parse(a).body[0].expression;return this.traverse(t,null,(function(e,t){return h(i,{"@":t})}),n)},"subscript-child-script_expression":function(e,t){return l(t,e.expression.value.slice(1,-1),"$[{{value}}]")},"member-child-script_expression":function(e,t){return l(t,e.expression.value.slice(1,-1),"$.{{value}}")},"member-descendant-script_expression":function(e,t){return l(t,e.expression.value.slice(1,-1),"$..value")}},s.prototype._fns["subscript-child-string_literal"]=s.prototype._fns["member-child-identifier"],s.prototype._fns["member-descendant-numeric_literal"]=s.prototype._fns["subscript-descendant-string_literal"]=s.prototype._fns["member-descendant-identifier"],t.exports=s},{"..":"jsonpath","./aesprim":"./aesprim","./index":5,"./slice":7,"static-eval":15,underscore:12}],5:[function(e,t,n){var r=e("assert"),a=e("./dict"),i=e("./parser"),o=e("./handlers"),s=function(){this.initialize.apply(this,arguments)};function l(e){return"[object String]"==Object.prototype.toString.call(e)}s.prototype.initialize=function(){this.parser=new i,this.handlers=new o},s.prototype.parse=function(e){return r.ok(l(e),"we need a path"),this.parser.parse(e)},s.prototype.parent=function(e,t){r.ok(e instanceof Object,"obj needs to be an object"),r.ok(t,"we need a path");var n=this.nodes(e,t)[0];return n.path.pop(),this.value(e,n.path)},s.prototype.apply=function(e,t,n){r.ok(e instanceof Object,"obj needs to be an object"),r.ok(t,"we need a path"),r.equal(Z(n),"function","fn needs to be function");var a=this.nodes(e,t).sort((function(e,t){return t.path.length-e.path.length}));return a.forEach((function(t){var r=t.path.pop(),a=this.value(e,this.stringify(t.path)),i=t.value=n.call(e,a[r]);a[r]=i}),this),a},s.prototype.value=function(e,t,n){if(r.ok(e instanceof Object,"obj needs to be an object"),r.ok(t,"we need a path"),arguments.length>=3){var a=this.nodes(e,t).shift();if(!a)return this._vivify(e,t,n);var i=a.path.slice(-1).shift();this.parent(e,this.stringify(a.path))[i]=n}return this.query(e,this.stringify(t),1).shift()},s.prototype._vivify=function(e,t,n){var a=this;return r.ok(e instanceof Object,"obj needs to be an object"),r.ok(t,"we need a path"),function t(n,r){var i=n.pop(),o=a.value(e,n);o||(t(n.concat(),"string"==typeof i?{}:[]),o=a.value(e,n)),o[i]=r}(this.parser.parse(t).map((function(e){return e.expression.value})),n),this.query(e,t)[0]},s.prototype.query=function(e,t,n){r.ok(e instanceof Object,"obj needs to be an object"),r.ok(l(t),"we need a path");var a=this.nodes(e,t,n).map((function(e){return e.value}));return a},s.prototype.paths=function(e,t,n){r.ok(e instanceof Object,"obj needs to be an object"),r.ok(t,"we need a path");var a=this.nodes(e,t,n).map((function(e){return e.path}));return a},s.prototype.nodes=function(e,t,n){if(r.ok(e instanceof Object,"obj needs to be an object"),r.ok(t,"we need a path"),0===n)return[];var a=this.parser.parse(t),i=this.handlers,o=[{path:["$"],value:e}],s=[];return a.length&&"root"==a[0].expression.type&&a.shift(),a.length?(a.forEach((function(e,t){if(!(s.length>=n)){var r=i.resolve(e),l=[];o.forEach((function(i){if(!(s.length>=n)){var o=r(e,i,n);t==a.length-1?s=s.concat(o||[]):l=l.concat(o||[])}})),o=l}})),n?s.slice(0,n):s):o},s.prototype.stringify=function(e){r.ok(e,"we need a path");var t="$",n={"descendant-member":"..{{value}}","child-member":".{{value}}","descendant-subscript":"..[{{value}}]","child-subscript":"[{{value}}]"};return(e=this._normalize(e)).forEach((function(e){if("root"!=e.expression.type){var r,a=[e.scope,e.operation].join("-"),i=n[a];if(r="string_literal"==e.expression.type?JSON.stringify(e.expression.value):e.expression.value,!i)throw new Error("couldn't find template "+a);t+=i.replace(/{{value}}/,r)}})),t},s.prototype._normalize=function(e){if(r.ok(e,"we need a path"),"string"==typeof e)return this.parser.parse(e);if(Array.isArray(e)&&"string"==typeof e[0]){var t=[{expression:{type:"root",value:"$"}}];return e.forEach((function(e,n){"$"==e&&0===n||("string"==typeof e&&e.match("^"+a.identifier+"$")?t.push({operation:"member",scope:"child",expression:{value:e,type:"identifier"}}):t.push({operation:"subscript",scope:"child",expression:{value:e,type:"number"==typeof e?"numeric_literal":"string_literal"}}))})),t}if(Array.isArray(e)&&"object"==Z(e[0]))return e;throw new Error("couldn't understand path "+e)},s.Handlers=o,s.Parser=i;var c=new s;c.JSONPath=s,t.exports=c},{"./dict":2,"./handlers":4,"./parser":6,assert:8}],6:[function(e,t,n){var r=e("./grammar"),a=e("../generated/parser"),i=function(){var e=new a.Parser,t=e.parseError;return e.yy.parseError=function(){e.yy.ast&&e.yy.ast.initialize(),t.apply(e,arguments)},e};i.grammar=r,t.exports=i},{"../generated/parser":1,"./grammar":3}],7:[function(e,t,n){function r(e){return String(e).match(/^[0-9]+$/)?parseInt(e):Number.isFinite(e)?parseInt(e,10):0}t.exports=function(e,t,n,a){if("string"==typeof t)throw new Error("start cannot be a string");if("string"==typeof n)throw new Error("end cannot be a string");if("string"==typeof a)throw new Error("step cannot be a string");var i=e.length;if(0===a)throw new Error("step cannot be zero");if(a=a?r(a):1,n=n<0?i+n:n,t=r(0===(t=t<0?i+t:t)?0:t||(a>0?0:i-1)),n=r(0===n?0:n||(a>0?i:-1)),t=a>0?Math.max(0,t):Math.min(i,t),n=a>0?Math.min(n,i):Math.max(-1,n),a>0&&n<=t)return[];if(a<0&&t<=n)return[];for(var o=[],s=t;s!=n&&!(a<0&&s<=n||a>0&&s>=n);s+=a)o.push(e[s]);return o}},{}],8:[function(e,t,n){var r=e("util/"),a=Array.prototype.slice,i=Object.prototype.hasOwnProperty,o=t.exports=u;function s(e,t){return r.isUndefined(t)?""+t:r.isNumber(t)&&!isFinite(t)||r.isFunction(t)||r.isRegExp(t)?t.toString():t}function l(e,t){return r.isString(e)?e.length<t?e:e.slice(0,t):e}function c(e,t,n,r,a){throw new o.AssertionError({message:n,actual:e,expected:t,operator:r,stackStartFunction:a})}function u(e,t){e||c(e,!0,t,"==",o.ok)}function d(e,t){if(e===t)return!0;if(r.isBuffer(e)&&r.isBuffer(t)){if(e.length!=t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}return r.isDate(e)&&r.isDate(t)?e.getTime()===t.getTime():r.isRegExp(e)&&r.isRegExp(t)?e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.lastIndex===t.lastIndex&&e.ignoreCase===t.ignoreCase:r.isObject(e)||r.isObject(t)?function(e,t){if(r.isNullOrUndefined(e)||r.isNullOrUndefined(t))return!1;if(e.prototype!==t.prototype)return!1;if(r.isPrimitive(e)||r.isPrimitive(t))return e===t;var n=f(e),i=f(t);if(n&&!i||!n&&i)return!1;if(n)return d(e=a.call(e),t=a.call(t));var o,s,l=m(e),c=m(t);if(l.length!=c.length)return!1;for(l.sort(),c.sort(),s=l.length-1;s>=0;s--)if(l[s]!=c[s])return!1;for(s=l.length-1;s>=0;s--)if(!d(e[o=l[s]],t[o]))return!1;return!0}(e,t):e==t}function f(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function h(e,t){return!(!e||!t)&&("[object RegExp]"==Object.prototype.toString.call(t)?t.test(e):e instanceof t||!0===t.call({},e))}function p(e,t,n,a){var i;r.isString(n)&&(a=n,n=null);try{t()}catch(e){i=e}if(a=(n&&n.name?" ("+n.name+").":".")+(a?" "+a:"."),e&&!i&&c(i,n,"Missing expected exception"+a),!e&&h(i,n)&&c(i,n,"Got unwanted exception"+a),e&&i&&n&&!h(i,n)||!e&&i)throw i}o.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return l(JSON.stringify(e.actual,s),128)+" "+e.operator+" "+l(JSON.stringify(e.expected,s),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||c;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var n=new Error;if(n.stack){var r=n.stack,a=r.indexOf("\n"+t.name);if(a>=0){var i=r.indexOf("\n",a+1);r=r.substring(i+1)}this.stack=r}}},r.inherits(o.AssertionError,Error),o.fail=c,o.ok=u,o.equal=function(e,t,n){e!=t&&c(e,t,n,"==",o.equal)},o.notEqual=function(e,t,n){e==t&&c(e,t,n,"!=",o.notEqual)},o.deepEqual=function(e,t,n){d(e,t)||c(e,t,n,"deepEqual",o.deepEqual)},o.notDeepEqual=function(e,t,n){d(e,t)&&c(e,t,n,"notDeepEqual",o.notDeepEqual)},o.strictEqual=function(e,t,n){e!==t&&c(e,t,n,"===",o.strictEqual)},o.notStrictEqual=function(e,t,n){e===t&&c(e,t,n,"!==",o.notStrictEqual)},o.throws=function(e,t,n){p.apply(this,[!0].concat(a.call(arguments)))},o.doesNotThrow=function(e,t){p.apply(this,[!1].concat(a.call(arguments)))},o.ifError=function(e){if(e)throw e};var m=Object.keys||function(e){var t=[];for(var n in e)i.call(e,n)&&t.push(n);return t}},{"util/":11}],9:[function(e,t,n){t.exports="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},{}],10:[function(e,t,n){t.exports=function(e){return e&&"object"===Z(e)&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},{}],11:[function(e,t,n){(function(t,r){var a=/%[sdj%]/g;n.format=function(e){if(!_(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(s(arguments[n]));return t.join(" ")}n=1;for(var r=arguments,i=r.length,o=String(e).replace(a,(function(e){if("%%"===e)return"%";if(n>=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),l=r[n];n<i;l=r[++n])m(l)||!b(l)?o+=" "+l:o+=" "+s(l);return o},n.deprecate=function(e,a){if(y(r.process))return function(){return n.deprecate(e,a).apply(this,arguments)};if(!0===t.noDeprecation)return e;var i=!1;return function(){if(!i){if(t.throwDeprecation)throw new Error(a);t.traceDeprecation?console.trace(a):console.error(a),i=!0}return e.apply(this,arguments)}};var i,o={};function s(e,t){var r={seen:[],stylize:c};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),p(t)?r.showHidden=t:t&&n._extend(r,t),y(r.showHidden)&&(r.showHidden=!1),y(r.depth)&&(r.depth=2),y(r.colors)&&(r.colors=!1),y(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=l),u(r,e,r.depth)}function l(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function c(e,t){return e}function u(e,t,r){if(e.customInspect&&t&&S(t.inspect)&&t.inspect!==n.inspect&&(!t.constructor||t.constructor.prototype!==t)){var a=t.inspect(r,e);return _(a)||(a=u(e,a,r)),a}var i=function(e,t){if(y(t))return e.stylize("undefined","undefined");if(_(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return g(t)?e.stylize(""+t,"number"):p(t)?e.stylize(""+t,"boolean"):m(t)?e.stylize("null","null"):void 0}(e,t);if(i)return i;var o=Object.keys(t),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(t)),x(t)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return d(t);if(0===o.length){if(S(t))return e.stylize("[Function"+(t.name?": "+t.name:"")+"]","special");if(v(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(w(t))return e.stylize(Date.prototype.toString.call(t),"date");if(x(t))return d(t)}var l,c="",b=!1,k=["{","}"];return h(t)&&(b=!0,k=["[","]"]),S(t)&&(c=" [Function"+(t.name?": "+t.name:"")+"]"),v(t)&&(c=" "+RegExp.prototype.toString.call(t)),w(t)&&(c=" "+Date.prototype.toUTCString.call(t)),x(t)&&(c=" "+d(t)),0!==o.length||b&&0!=t.length?r<0?v(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),l=b?function(e,t,n,r,a){for(var i=[],o=0,s=t.length;o<s;++o)C(t,String(o))?i.push(f(e,t,n,r,String(o),!0)):i.push("");return a.forEach((function(a){a.match(/^\d+$/)||i.push(f(e,t,n,r,a,!0))})),i}(e,t,r,s,o):o.map((function(n){return f(e,t,r,s,n,b)})),e.seen.pop(),function(e,t,n){var r=e.reduce((function(e,t){return t.indexOf("\n"),e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0);return r>60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}(l,c,k)):k[0]+c+k[1]}function d(e){return"["+Error.prototype.toString.call(e)+"]"}function f(e,t,n,r,a,i){var o,s,l;if((l=Object.getOwnPropertyDescriptor(t,a)||{value:t[a]}).get?s=e.stylize(l.set?"[Getter/Setter]":"[Getter]","special"):l.set&&(s=e.stylize("[Setter]","special")),C(r,a)||(o="["+a+"]"),s||(e.seen.indexOf(l.value)<0?(s=m(n)?u(e,l.value,null):u(e,l.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),y(o)){if(i&&a.match(/^\d+$/))return s;(o=JSON.stringify(""+a)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+s}function h(e){return Array.isArray(e)}function p(e){return"boolean"==typeof e}function m(e){return null===e}function g(e){return"number"==typeof e}function _(e){return"string"==typeof e}function y(e){return void 0===e}function v(e){return b(e)&&"[object RegExp]"===k(e)}function b(e){return"object"===Z(e)&&null!==e}function w(e){return b(e)&&"[object Date]"===k(e)}function x(e){return b(e)&&("[object Error]"===k(e)||e instanceof Error)}function S(e){return"function"==typeof e}function k(e){return Object.prototype.toString.call(e)}function E(e){return e<10?"0"+e.toString(10):e.toString(10)}n.debuglog=function(e){if(y(i)&&(i=t.env.NODE_DEBUG||""),e=e.toUpperCase(),!o[e])if(new RegExp("\\b"+e+"\\b","i").test(i)){var r=t.pid;o[e]=function(){var t=n.format.apply(n,arguments);console.error("%s %d: %s",e,r,t)}}else o[e]=function(){};return o[e]},n.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},n.isArray=h,n.isBoolean=p,n.isNull=m,n.isNullOrUndefined=function(e){return null==e},n.isNumber=g,n.isString=_,n.isSymbol=function(e){return"symbol"===Z(e)},n.isUndefined=y,n.isRegExp=v,n.isObject=b,n.isDate=w,n.isError=x,n.isFunction=S,n.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"===Z(e)||void 0===e},n.isBuffer=e("./support/isBuffer");var A=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function C(e,t){return Object.prototype.hasOwnProperty.call(e,t)}n.log=function(){var e,t;console.log("%s - %s",(t=[E((e=new Date).getHours()),E(e.getMinutes()),E(e.getSeconds())].join(":"),[e.getDate(),A[e.getMonth()],t].join(" ")),n.format.apply(n,arguments))},n.inherits=e("inherits"),n._extend=function(e,t){if(!t||!b(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e}}).call(this,e("_process"),void 0!==j?j:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":10,_process:14,inherits:9}],12:[function(e,t,n){},{}],13:[function(e,t,n){(function(e){function t(e,t){for(var n=0,r=e.length-1;r>=0;r--){var a=e[r];"."===a?e.splice(r,1):".."===a?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function r(e,t){if(e.filter)return e.filter(t);for(var n=[],r=0;r<e.length;r++)t(e[r],r,e)&&n.push(e[r]);return n}n.resolve=function(){for(var n="",a=!1,i=arguments.length-1;i>=-1&&!a;i--){var o=i>=0?arguments[i]:e.cwd();if("string"!=typeof o)throw new TypeError("Arguments to path.resolve must be strings");o&&(n=o+"/"+n,a="/"===o.charAt(0))}return(a?"/":"")+(n=t(r(n.split("/"),(function(e){return!!e})),!a).join("/"))||"."},n.normalize=function(e){var i=n.isAbsolute(e),o="/"===a(e,-1);return(e=t(r(e.split("/"),(function(e){return!!e})),!i).join("/"))||i||(e="."),e&&o&&(e+="/"),(i?"/":"")+e},n.isAbsolute=function(e){return"/"===e.charAt(0)},n.join=function(){var e=Array.prototype.slice.call(arguments,0);return n.normalize(r(e,(function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e})).join("/"))},n.relative=function(e,t){function r(e){for(var t=0;t<e.length&&""===e[t];t++);for(var n=e.length-1;n>=0&&""===e[n];n--);return t>n?[]:e.slice(t,n-t+1)}e=n.resolve(e).substr(1),t=n.resolve(t).substr(1);for(var a=r(e.split("/")),i=r(t.split("/")),o=Math.min(a.length,i.length),s=o,l=0;l<o;l++)if(a[l]!==i[l]){s=l;break}var c=[];for(l=s;l<a.length;l++)c.push("..");return(c=c.concat(i.slice(s))).join("/")},n.sep="/",n.delimiter=":",n.dirname=function(e){if("string"!=typeof e&&(e+=""),0===e.length)return".";for(var t=e.charCodeAt(0),n=47===t,r=-1,a=!0,i=e.length-1;i>=1;--i)if(47===(t=e.charCodeAt(i))){if(!a){r=i;break}}else a=!1;return-1===r?n?"/":".":n&&1===r?"/":e.slice(0,r)},n.basename=function(e,t){var n=function(e){"string"!=typeof e&&(e+="");var t,n=0,r=-1,a=!0;for(t=e.length-1;t>=0;--t)if(47===e.charCodeAt(t)){if(!a){n=t+1;break}}else-1===r&&(a=!1,r=t+1);return-1===r?"":e.slice(n,r)}(e);return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},n.extname=function(e){"string"!=typeof e&&(e+="");for(var t=-1,n=0,r=-1,a=!0,i=0,o=e.length-1;o>=0;--o){var s=e.charCodeAt(o);if(47!==s)-1===r&&(a=!1,r=o+1),46===s?-1===t?t=o:1!==i&&(i=1):-1!==t&&(i=-1);else if(!a){n=o+1;break}}return-1===t||-1===r||0===i||1===i&&t===r-1&&t===n+1?"":e.slice(t,r)};var a="b"==="ab".substr(-1)?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return t<0&&(t=e.length+t),e.substr(t,n)}}).call(this,e("_process"))},{_process:14}],14:[function(e,t,n){var r,a,i=t.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function l(e){if(r===setTimeout)return setTimeout(e,0);if((r===o||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:o}catch(e){r=o}try{a="function"==typeof clearTimeout?clearTimeout:s}catch(e){a=s}}();var c,u=[],d=!1,f=-1;function h(){d&&c&&(d=!1,c.length?u=c.concat(u):f=-1,u.length&&p())}function p(){if(!d){var e=l(h);d=!0;for(var t=u.length;t;){for(c=u,u=[];++f<t;)c&&c[f].run();f=-1,t=u.length}c=null,d=!1,function(e){if(a===clearTimeout)return clearTimeout(e);if((a===s||!a)&&clearTimeout)return a=clearTimeout,clearTimeout(e);try{return a(e)}catch(t){try{return a.call(null,e)}catch(t){return a.call(this,e)}}}(e)}}function m(e,t){this.fun=e,this.array=t}function g(){}i.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];u.push(new m(e,t)),1!==u.length||d||l(p)},m.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=g,i.addListener=g,i.once=g,i.off=g,i.removeListener=g,i.removeAllListeners=g,i.emit=g,i.prependListener=g,i.prependOnceListener=g,i.listeners=function(e){return[]},i.binding=function(e){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(e){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},{}],15:[function(e,t,n){var r=e("escodegen").generate;t.exports=function(e,t){t||(t={});var n={},a=function e(a,i){if("Literal"===a.type)return a.value;if("UnaryExpression"===a.type){var o=e(a.argument);return"+"===a.operator?+o:"-"===a.operator?-o:"~"===a.operator?~o:"!"===a.operator?!o:n}if("ArrayExpression"===a.type){for(var s=[],l=0,c=a.elements.length;l<c;l++){if((_=e(a.elements[l]))===n)return n;s.push(_)}return s}if("ObjectExpression"===a.type){var u={};for(l=0;l<a.properties.length;l++){var d=null===(y=a.properties[l]).value?y.value:e(y.value);if(d===n)return n;u[y.key.value||y.key.name]=d}return u}if("BinaryExpression"===a.type||"LogicalExpression"===a.type){if((c=e(a.left))===n)return n;var f=e(a.right);if(f===n)return n;var h=a.operator;return"=="===h?c==f:"==="===h?c===f:"!="===h?c!=f:"!=="===h?c!==f:"+"===h?c+f:"-"===h?c-f:"*"===h?c*f:"/"===h?c/f:"%"===h?c%f:"<"===h?c<f:"<="===h?c<=f:">"===h?c>f:">="===h?c>=f:"|"===h?c|f:"&"===h?c&f:"^"===h?c^f:"&&"===h?c&&f:"||"===h?c||f:n}if("Identifier"===a.type)return{}.hasOwnProperty.call(t,a.name)?t[a.name]:n;if("ThisExpression"===a.type)return{}.hasOwnProperty.call(t,"this")?t.this:n;if("CallExpression"===a.type){var p=e(a.callee);if(p===n)return n;if("function"!=typeof p)return n;var m=a.callee.object?e(a.callee.object):n;m===n&&(m=null);var g=[];for(l=0,c=a.arguments.length;l<c;l++){var _;if((_=e(a.arguments[l]))===n)return n;g.push(_)}return p.apply(m,g)}var y;if("MemberExpression"===a.type)return(u=e(a.object))===n||"function"==typeof u?n:"Identifier"===a.property.type?u[a.property.name]:(y=e(a.property))===n?n:u[y];if("ConditionalExpression"===a.type)return(o=e(a.test))===n?n:e(o?a.consequent:a.alternate);if("ExpressionStatement"===a.type)return(o=e(a.expression))===n?n:o;if("ReturnStatement"===a.type)return e(a.argument);if("FunctionExpression"===a.type){var v=a.body.body,b={};for(Object.keys(t).forEach((function(e){b[e]=t[e]})),l=0;l<a.params.length;l++){var w=a.params[l];if("Identifier"!=w.type)return n;t[w.name]=null}for(var l in v)if(e(v[l])===n)return n;t=b;var x=Object.keys(t),S=x.map((function(e){return t[e]}));return Function(x.join(", "),"return "+r(a)).apply(null,S)}if("TemplateLiteral"===a.type){var k="";for(l=0;l<a.expressions.length;l++)k+=e(a.quasis[l]),k+=e(a.expressions[l]);return k+e(a.quasis[l])}if("TaggedTemplateExpression"===a.type){var E=e(a.tag),A=a.quasi,C=A.quasis.map(e),R=A.expressions.map(e);return E.apply(null,[C].concat(R))}return"TemplateElement"===a.type?a.value.cooked:n}(e);return a===n?void 0:a}},{escodegen:12}],jsonpath:[function(e,t,n){t.exports=e("./lib/index")},{"./lib/index":5}]},{},["jsonpath"])("jsonpath")},e.exports=n()}(lf);var cf=lf.exports;const uf=new Set(["i","me","my","myself","we","our","ours","ourselves","you","your","yours","yourself","yourselves","he","him","his","himself","she","her","hers","herself","it","its","itself","they","them","their","theirs","themselves","what","which","who","whom","this","that","these","those","am","is","are","was","were","be","been","being","have","has","had","having","do","does","did","doing","a","an","the","and","but","if","or","because","as","until","while","of","at","by","for","with","about","against","between","into","through","during","before","after","above","below","to","from","up","down","in","out","on","off","over","under","again","further","then","once","here","there","when","where","why","how","all","any","both","each","few","more","most","other","some","such","no","nor","not","only","own","same","so","than","too","very","s","t","can","will","just","don","should","now",..."1234567890"]);function df(e,t){for(const[n,r]of t.entries())if(e.startsWith(r))return e.replace(r,n);return e}const ff="$PREFIXED_ID";function hf(e,t,n){return t===ff?[df(e.id,n)]:cf.query(e,t)}function pf(e){return e.toLowerCase().split(/[^\d:A-Za-z]+/).filter((e=>e&&!uf.has(e)))}function*mf(e){for(const t of e)yield*pf(t)}function*gf(e){for(const t of e)if("string"==typeof t)yield t;else if("object"==typeof t){const e=cf.query(t,"$..*");yield*gf(e)}}function*_f(e,t,n){for(const r of t){const t=hf(e,r,n);if(t.length>0)for(const e of mf(gf(t)))yield[r,e]}}async function yf(e,t,r){const a=await this.db,i=t??a.transaction(["nodes"]);n.checkAbortSignal(r);const o=[...pf(e)],s=[],l=new Map;s.push(...o.map((async(e,t)=>{n.checkAbortSignal(r);const a=i.objectStore("nodes").index("full-text-words");for await(const i of a.iterate(IDBKeyRange.bound(e,`${e}`,!1,!1))){n.checkAbortSignal(r);const e=i.value,a=l.get(e.id)??[e,new Set];a[1].add(t),l.set(e.id,a)}}))),await Promise.all(s),n.checkAbortSignal(r);const c=[];for(const[,[e,t]]of l)n.checkAbortSignal(r),c.push(...vf(this.textIndexFields,e,t,o,this.prefixes));return c.sort(((e,t)=>t.score-e.score)),c.slice(0,this.options.maxSearchResults??this.DEFAULT_MAX_SEARCH_RESULTS)}function vf(e,t,n,r,a){const i=[...n].sort().map((e=>r[e])),o=i.map((e=>{const t=e.replaceAll(/[$()*+./?[\\\]^{|}-]/g,"\\$&");return new RegExp(`\\b${t}`,"gi")}));let s=[],l=0;for(const[n,i]of e.entries()){const c=new Set,u=e.length-n-1,d=[...gf(hf(t,i.jsonPath,a))];for(const e of d){let n=0;const a=[];for(const[t,i]of o.entries())for(const o of e.matchAll(i)){n+=1+1*u,c.add(t);const i=o.index,s=r[t];void 0!==i&&(n+=.01*s.length,n+=s.length/e.length*100*.05,a.push({wordIndex:t,position:i}))}n+=100*c.size,l<n&&(l=n),a.sort(((e,t)=>e.position-t.position)),a.length>0&&s.push({term:t,field:i,str:e,score:n,wordMatches:a})}}s=s.filter((e=>e.score===l));for(const e of s){const{wordMatches:t}=e;for(let n=0;n<t.length-1;n++){const r=t[n],a=t[n+1],o=a.wordIndex-r.wordIndex;if(1===o||-1===o){e.score+=1,1===o&&(e.score+=1);const t=Math.abs(a.position-(r.position+i[r.wordIndex].length))-1;e.score-=.05*t}}}return s}function bf(e){return"string"==typeof e.id}function wf(e){return"string"==typeof e.sub&&"string"==typeof e.pred&&"string"==typeof e.obj}function xf(e){return Boolean(e.meta?.deprecated)}var Sf,kf,Ef=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==Z(t)&&"object"==Z(n)){if(t.constructor!==n.constructor)return!1;var r,a,i;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(a=r;0!=a--;)if(!e(t[a],n[a]))return!1;return!0}if(t instanceof Map&&n instanceof Map){if(t.size!==n.size)return!1;var o,s=we(t.entries());try{for(s.s();!(o=s.n()).done;)if(!n.has((a=o.value)[0]))return!1}catch(e){s.e(e)}finally{s.f()}var l,c=we(t.entries());try{for(c.s();!(l=c.n()).done;)if(!e((a=l.value)[1],n.get(a[0])))return!1}catch(e){c.e(e)}finally{c.f()}return!0}if(t instanceof Set&&n instanceof Set){if(t.size!==n.size)return!1;var u,d=we(t.entries());try{for(d.s();!(u=d.n()).done;)if(!n.has((a=u.value)[0]))return!1}catch(e){d.e(e)}finally{d.f()}return!0}if(ArrayBuffer.isView(t)&&ArrayBuffer.isView(n)){if((r=t.length)!=n.length)return!1;for(a=r;0!=a--;)if(t[a]!==n[a])return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(i=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(a=r;0!=a--;)if(!Object.prototype.hasOwnProperty.call(n,i[a]))return!1;for(a=r;0!=a--;){var f=i[a];if(!e(t[f],n[f]))return!1}return!0}return t!=t&&n!=n},Af=function(e,t){return t.some((function(t){return e instanceof t}))},Cf=new WeakMap,Rf=new WeakMap,Nf=new WeakMap,If=new WeakMap,Tf=new WeakMap,Of={get:function(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return Rf.get(e);if("objectStoreNames"===t)return e.objectStoreNames||Nf.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return Lf(e[t])},set:function(e,t,n){return e[t]=n,!0},has:function(e,t){return e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}};function Ff(e){Of=e(Of)}function Lf(e){if(e instanceof IDBRequest)return t=e,(n=new Promise((function(e,n){var r=function(){t.removeEventListener("success",a),t.removeEventListener("error",i)},a=function(){e(Lf(t.result)),r()},i=function(){n(t.error),r()};t.addEventListener("success",a),t.addEventListener("error",i)}))).then((function(e){e instanceof IDBCursor&&Cf.set(e,t)})).catch((function(){})),Tf.set(n,t),n;var t,n;if(If.has(e))return If.get(e);var r=function(e){return"function"==typeof e?(t=e)!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(kf||(kf=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return t.apply(Df(this),n),Lf(Cf.get(this))}:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return Lf(t.apply(Df(this),n))}:function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];var i=t.call.apply(t,[Df(this),e].concat(r));return Nf.set(i,e.sort?e.sort():[e]),Lf(i)}:(e instanceof IDBTransaction&&function(e){if(!Rf.has(e)){var t=new Promise((function(t,n){var r=function(){e.removeEventListener("complete",a),e.removeEventListener("error",i),e.removeEventListener("abort",i)},a=function(){t(),r()},i=function(){n(e.error||new DOMException("AbortError","AbortError")),r()};e.addEventListener("complete",a),e.addEventListener("error",i),e.addEventListener("abort",i)}));Rf.set(e,t)}}(e),Af(e,Sf||(Sf=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(e,Of):e);var t}(e);return r!==e&&(If.set(e,r),Tf.set(r,e)),r}var Df=function(e){return Tf.get(e)},Mf=["get","getKey","getAll","getAllKeys","count"],Pf=["put","add","delete","clear"],qf=new Map;function jf(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(qf.get(t))return qf.get(t);var n=t.replace(/FromIndex$/,""),r=t!==n,a=Pf.includes(n);if(n in(r?IDBIndex:IDBObjectStore).prototype&&(a||Mf.includes(n))){var i=function(){var e=Q(Y().mark((function e(t){var i,o,s,l,c,u,d=arguments;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(o=this.transaction(t,a?"readwrite":"readonly"),s=o.store,l=d.length,c=new Array(l>1?l-1:0),u=1;u<l;u++)c[u-1]=d[u];return r&&(s=s.index(c.shift())),e.next=6,Promise.all([(i=s)[n].apply(i,c),a&&o.done]);case 6:return e.abrupt("return",e.sent[0]);case 7:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}();return qf.set(t,i),i}}}Ff((function(e){return K(K({},e),{},{get:function(t,n,r){return jf(t,n)||e.get(t,n,r)},has:function(t,n){return!!jf(t,n)||e.has(t,n)}})}));var Bf=["continue","continuePrimaryKey","advance"],Uf={},zf=new WeakMap,Gf=new WeakMap,Hf={get:function(e,t){if(!Bf.includes(t))return e[t];var n=Uf[t];return n||(n=Uf[t]=function(){var e;zf.set(this,(e=Gf.get(this))[t].apply(e,arguments))}),n}};function $f(){return Jf.apply(this,arguments)}function Jf(){var e;return e=Y().mark((function e(){var t,n,r,a=arguments;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((t=this)instanceof IDBCursor){e.next=5;break}return e.next=4,V((n=t).openCursor.apply(n,a));case 4:t=e.sent;case 5:if(t){e.next=7;break}return e.abrupt("return");case 7:r=new Proxy(t,Hf),Gf.set(r,t),Tf.set(r,Df(t));case 11:if(!t){e.next=20;break}return e.next=14,r;case 14:return e.next=16,V(zf.get(r)||t.continue());case 16:t=e.sent,zf.delete(r),e.next=11;break;case 20:case"end":return e.stop()}}),e,this)})),Jf=function(){return new G(e.apply(this,arguments))},Jf.apply(this,arguments)}function Vf(e,t){return t===Symbol.asyncIterator&&Af(e,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===t&&Af(e,[IDBIndex,IDBObjectStore])}async function Wf(e){return function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.blocked,a=n.upgrade,i=n.blocking,o=n.terminated,s=indexedDB.open(e,t),l=Lf(s);return a&&s.addEventListener("upgradeneeded",(function(e){a(Lf(s.result),e.oldVersion,e.newVersion,Lf(s.transaction),e)})),r&&s.addEventListener("blocked",(function(e){return r(e.oldVersion,e.newVersion,e)})),l.then((function(e){o&&e.addEventListener("close",(function(){return o()})),i&&e.addEventListener("versionchange",(function(e){return i(e.oldVersion,e.newVersion,e)}))})).catch((function(){})),l}(e,2,{upgrade(e,t,n,r,a){if(t<2&&(e.objectStoreNames.contains("meta")&&e.deleteObjectStore("meta"),e.objectStoreNames.contains("nodes")&&e.deleteObjectStore("nodes"),e.objectStoreNames.contains("edges")&&e.deleteObjectStore("edges")),e.objectStoreNames.contains("meta")||e.createObjectStore("meta"),!e.objectStoreNames.contains("nodes")){e.createObjectStore("nodes",{keyPath:"id"});const t=r.objectStore("nodes");t.createIndex("by-label","lbl"),t.createIndex("by-type","type"),t.createIndex("by-synonym",["meta","synonyms","val"]),t.createIndex("full-text-words","fullTextWords",{multiEntry:!0})}if(!e.objectStoreNames.contains("edges")){e.createObjectStore("edges",{autoIncrement:!0});const t=r.objectStore("edges");t.createIndex("by-subject","sub"),t.createIndex("by-object","obj"),t.createIndex("by-predicate","pred")}}})}function Kf(e){const t=new Set;for(const[,n]of e)t.add(n);return[...t]}async function Yf(e){const t=Date.now(),n=JSON.parse(await _.openLocation(this.sourceLocation).readFile("utf8")),r=Date.now(),[a,...i]=n.graphs??[];if(a){if(i.length>0)throw new Error("multiple graphs not supported");try{const n=e.transaction(["meta","nodes","edges"],"readwrite");await n.objectStore("meta").clear(),await n.objectStore("nodes").clear(),await n.objectStore("edges").clear();const i=n.objectStore("nodes"),o=Zf.call(this).map((e=>e.jsonPath));for(const e of a.nodes??[])bf(e)&&await i.add({...e,fullTextWords:Kf(_f(e,o,this.prefixes))});const s=n.objectStore("edges");for(const e of a.edges??[])wf(e)&&await s.add(e);await n.done;const l=e.transaction("meta","readwrite");await l.objectStore("meta").add({ontologyRecord:{name:this.ontologyName,version:this.ontologyVersion,sourceLocation:this.sourceLocation},storeOptions:this.options,graphMeta:a.meta,timestamp:String(new Date),schemaVersion:2,timings:{overall:Date.now()-t,load:Date.now()-r}},"meta"),await l.done}catch(t){throw await e.transaction("meta","readwrite").objectStore("meta").clear(),t}}}function Zf(){return[{displayName:"ID",jsonPath:ff},...this.options.textIndexing?.indexFields??nh]}async function Xf(e){const[t]=await e.transaction("meta").objectStore("meta").getAll();return!!t&&Ef(this.options.prefixes,t.storeOptions.prefixes)&&Ef(this.options.textIndexing,t.storeOptions.textIndexing)}Ff((function(e){return K(K({},e),{},{get:function(t,n,r){return Vf(t,n)?$f:e.get(t,n,r)},has:function(t,n){return Vf(t,n)||e.has(t,n)}})}));class Qf{ontologyName;ontologyVersion;sourceLocation;db;options;loadOboGraphJson=Yf;getTermsByFulltext=yf;openDatabase=Wf;isDatabaseCurrent=Xf;get textIndexFields(){return Zf.call(this)}get prefixes(){return this.options.prefixes??new Map}DEFAULT_MAX_SEARCH_RESULTS=100;constructor(e,t,n,r){this.ontologyName=e,this.ontologyVersion=t,this.sourceLocation=n,this.db=this.prepareDatabase(),this.options=r??{}}validate(){const e=[],{sourceLocation:t,sourceType:n}=this;return n?"obo-graph-json"!==n&&e.push(new Error(`ontology source file ${JSON.stringify(t)} has type ${n}, which is not yet supported`)):e.push(new Error(`unable to determine format of ontology source file ${JSON.stringify(t)}, file name must end with ".json", ".obo", or ".owl"`)),e}get sourceType(){if(n.isUriLocation(this.sourceLocation)){if(this.sourceLocation.uri.endsWith(".json"))return"obo-graph-json"}else if(function(e){return"object"==typeof e&&null!==e&&"localPath"in e}(this.sourceLocation)&&this.sourceLocation.localPath.endsWith(".json"))return"obo-graph-json"}get dbName(){return`Apollo Ontology "${this.ontologyName}" "${this.ontologyVersion}"`}async prepareDatabase(){const e=this.validate();if(e.length>0)throw e;const t=await this.openDatabase(this.dbName);if(await this.isDatabaseCurrent(t))return t;const{sourceLocation:n,sourceType:r}=this;if("obo-graph-json"!==r)throw new Error(`ontology source file ${JSON.stringify(n)} has type ${r}, which is not yet supported`);return await this.loadOboGraphJson(t),t}async termCount(e){const t=await this.db;return(e??t.transaction("nodes")).objectStore("nodes").count()}unique(e){const t=new Map,n=[];for(const r of e)t.has(r.id)||(t.set(r.id,!0),n.push(r));return n}async getTermsWithLabelOrSynonym(e,t,n){const r=t?.includeSubclasses??!0,a=await this.db,i=n??a.transaction(["nodes","edges"]),o=i.objectStore("nodes"),s=[...await o.index("by-label").getAll(e),...await o.index("by-synonym").getAll(e)];if(r){const e=await this.recurseEdges("by-object",s.map((e=>e.id)),(e=>"is_a"===e.pred),"sub",i);for(const t of e){const e=await o.get(t);e&&s.push(e)}}return s}async getPropertiesByLabel(e,t,n){const r=t?.includeSubProperties??!0,a=await this.db,i=n??a.transaction(["nodes","edges"]),o=(await this.getTermsWithLabelOrSynonym(e,{includeSubclasses:!1},i)).filter((e=>ih(e)));if(r){const e=await this.recurseEdges("by-object",o.map((e=>e.id)),(e=>"subPropertyOf"===e.pred),"sub",i),t=i.objectStore("nodes");for(const n of e){const e=await t.get(n);e&&ih(e)&&o.push(e)}}return o}async recurseEdges(e,t,n,r,a){const i=new Set;return await async function t(o){await Promise.all([...o].map((async o=>{const s=(await a.objectStore("edges").index(e).getAll(o)).filter((e=>n(e))).map((e=>e[r]));if(s.length>0){for(const e of s)i.add(e);await t(s)}})))}(t),i.values()}async*expandNodeSet(e,t="is_a",n,r){const a=await this.db,i=r??a.transaction(["edges"]),o=[...e],s=await this.recurseEdges("subclasses"===n?"by-object":"by-subject",o,(e=>e.pred===t),"subclasses"===n?"sub":"obj",i);for(const e of o)yield e;for(const e of s)yield e}expandSubclasses(e,t="is_a",n){return this.expandNodeSet(e,t,"subclasses",n)}expandSuperclasses(e,t="is_a",n){return this.expandNodeSet(e,t,"superclasses",n)}async getClassesThat(e,t,n){const r=await this.db,a=n??r.transaction(["nodes","edges"]),i=await this.getPropertiesByLabel(e,{includeSubProperties:!0},a),o=new Set(i.map((e=>e.id))),s=await async function(e){const t=[];for await(const n of e)t.push(n);return t}(this.expandSuperclasses(t.map((e=>e.id)),"is_a",a)),l=await this.recurseEdges("by-object",s,(e=>o.has(e.pred)),"sub",a),c=this.expandSubclasses(l,"is_a",a),u=[];for await(const e of c){const t=await a.objectStore("nodes").get(e);t&&ah(t)&&!xf(t)&&u.push(t)}return u}async getClassesWithoutPropertyLabeled(e,t,n){const r=await this.db,a=n??r.transaction(["nodes","edges"]),i=a.objectStore("nodes"),o=a.objectStore("edges"),s=(await this.getPropertiesByLabel(e,t,a)).map((e=>e.id)),l=await(async()=>{const e=new Set;for(const t of s)for await(const n of o.index("by-predicate").iterate(t))e.add(n.value.sub);const t=new Set;for await(const n of this.expandSubclasses(e,"is_a",a))t.add(n);return t})(),c=[];for await(const e of i){const t=e.value;ah(t)&&!l.has(t.id)&&c.push(t.id)}const u=[];for await(const e of c){const t=await a.objectStore("nodes").get(e);t&&ah(t)&&!xf(t)&&u.push(t)}return u}async getAllClasses(e){const t=await this.db,n=e??t.transaction(["nodes"]);return(await n.objectStore("nodes").index("by-type").getAll("CLASS")).filter((e=>!xf(e)))}async getAllTerms(e){const t=await this.db,n=e??t.transaction(["nodes"]);return(await n.objectStore("nodes").getAll()).filter((e=>!xf(e)))}}const eh=l.types.model("OntologyRecord",{name:l.types.string,version:"unversioned",source:l.types.union(g.LocalPathLocation,g.UriLocation,g.BlobLocation),options:l.types.frozen()}).volatile((e=>({dataStore:void 0}))).actions((e=>({ping(){},initDataStore(){e.dataStore=new Qf(e.name,e.version,l.getSnapshot(e.source),e.options)},afterCreate(){l.addDisposer(e,s.autorun((()=>{this.initDataStore()})))}}))),th=l.types.model("OntologyManager",{ontologies:l.types.array(eh),prefixes:l.types.optional(l.types.map(l.types.string),{"GO:":"http://purl.obolibrary.org/obo/GO_","SO:":"http://purl.obolibrary.org/obo/SO_"})}).views((e=>({get featureTypeOntology(){return this.findOntology("Sequence Ontology")},findOntology:(t,n)=>e.ontologies.find((e=>e.name===t&&(void 0===n||e.version===n))),openOntology(e,t){return this.findOntology(e,t)?.dataStore},applyPrefixes:t=>df(t,e.prefixes),expandPrefixes:t=>function(e,t){for(const[n,r]of t.entries())if(e.startsWith(n))return e.replace(n,r);return e}(t,e.prefixes)}))).actions((e=>({addOntology(t,n,r,a){const i=e.ontologies.push({name:t,version:n,source:r,options:{prefixes:new Map(e.prefixes.entries()),...a}});e.ontologies[i-1].ping()}}))),nh=[{displayName:"Label",jsonPath:"$.lbl"},{displayName:"Synonym",jsonPath:"$.meta.synonyms[*].val"},{displayName:"Definition",jsonPath:"$.meta.definition.val"}],rh=r.ConfigurationSchema("OntologyRecord",{name:{type:"string",description:'the full name of the ontology, e.g. "Gene Ontology"',defaultValue:"My Ontology"},version:{type:"string",description:"the ontology's version string",defaultValue:"unversioned"},source:{type:"fileLocation",description:"the download location for the ontology's source file",defaultValue:{locationType:"UriLocation",uri:"http://example.com/myontology.json"}},textIndexFields:{type:"frozen",description:"JSON paths for text fields that will be indexed for text searching",defaultValue:nh}});function ah(e){return"CLASS"===e.type}function ih(e){return"PROPERTY"===e.type}async function oh(e,t,n){if(!e)return;const r=await t.getTermsWithLabelOrSynonym(e.type,{includeSubclasses:!1}),a=r.filter(ah);if(0===r.length)return;const i=await t.getClassesThat("part_of",a);return 0!==i.length?i:void 0}function sh({fetchValidTerms:e,filterTerms:t,includeDeprecated:r,onChange:a,ontologyName:i,ontologyVersion:o,renderInput:s,session:l,style:u,value:d}){const[h,p]=f.useState(!1),[m,g]=f.useState(),[_,y]=f.useState(""),[v,b]=f.useState(),{ontologyManager:w}=l.apolloDataStore,x=w.findOntology(i,o)?.dataStore,S=x&&h&&!m,k=x&&!v,E=f.useCallback((e=>(r||!xf(e))&&(!t||t(e))),[t,r]);f.useEffect((()=>{h||g(void 0)}),[h]),f.useEffect((()=>{const e=new AbortController,{signal:t}=e;return k&&(y(""),async function(e,t,n,r){if(!t)return;const a=(await e.getTermsWithLabelOrSynonym(t,{includeSubclasses:!1})).find(n??(()=>!0));if(!a)throw new Error(`not a valid ${e.ontologyName} term`);return a}(x,d,E).then((e=>{t.aborted||b(e)}),(e=>{t.aborted||n.isAbortException(e)||y(String(e))}))),()=>{e.abort()}}),[l,d,E,x,k]),f.useEffect((()=>{const t=new AbortController,{signal:r}=t;return S&&async function(e,t,n,r){let a;if(t){const n=await t(e,r);n&&(a=n)}return a||(a=await e.getAllTerms()),n?a.filter((e=>n(e))):a}(x,e,E,r).then((e=>{e&&!r.aborted&&g(e)}),(e=>{r.aborted||n.isAbortException(e)||l.notify(e.message,"error")})),()=>{t.abort()}}),[S,E,x,l,e]);const A={};return _&&(A.error=!0,A.helperText=_),L.default.createElement(c.Autocomplete,{style:u,autoComplete:!0,filterSelectedOptions:!0,disableClearable:!0,selectOnFocus:!0,clearOnBlur:!0,handleHomeEndKeys:!0,freeSolo:!0,value:d,options:m??[],onOpen:()=>{p(!0)},onClose:()=>{p(!1)},loading:S,renderInput:s??(e=>L.default.createElement(c.TextField,{...e,...A})),getOptionLabel:e=>"string"==typeof e?e:e.lbl??"",isOptionEqualToValue:(e,t)=>e.lbl===t.lbl,onChange:(e,t)=>{t&&("string"==typeof t?(b(void 0),a(d,t)):t.lbl!==d&&(y(""),b(t),a(d,t.lbl)))}})}function lh({changeManager:e,handleClose:t,session:n,sourceAssemblyId:r,sourceFeature:a}){const{notify:i}=n,[o,s]=f.useState(String(a.max)),[l,u]=f.useState(String(a.min+1)),[d,h]=f.useState(""),[p,m]=f.useState(""),[g,_]=f.useState(""),y=Number(o)<=Number(l);return L.default.createElement(af,{open:!0,title:"Add new child feature",handleClose:t,maxWidth:!1,"data-testid":"add-feature-dialog"},L.default.createElement("form",{onSubmit:async function(n){n.preventDefault(),m("");const s=new nr.AddFeatureChange({changedIds:[a._id],typeName:"AddFeatureChange",assembly:r,addedFeature:{_id:(new Wn).toHexString(),refSeq:a.refSeq,min:Number(l)-1,max:Number(o),type:d},parentFeatureId:a._id});await e.submit(s),i("Feature added successfully","success"),t(),n.preventDefault()}},L.default.createElement(c.DialogContent,{style:{display:"flex",flexDirection:"column"}},L.default.createElement(c.TextField,{margin:"dense",id:"start",label:"Start",type:"number",fullWidth:!0,variant:"outlined",value:l,onChange:e=>{u(e.target.value)}}),L.default.createElement(c.TextField,{margin:"dense",id:"end",label:"End",type:"number",fullWidth:!0,variant:"outlined",value:o,onChange:e=>{s(e.target.value)},error:y,helperText:y?'"End" must be greater than "Start"':null}),L.default.createElement(sh,{session:n,ontologyName:"Sequence Ontology",style:{width:170},value:d,filterTerms:ah,fetchValidTerms:async function(e,t,n){const r=await oh(e,t);if(r)return r;_(`Type "${e?.type}" does not have any children in the ontology`)}.bind(null,a),renderInput:e=>L.default.createElement(c.TextField,{...e,label:"Type",variant:"outlined",fullWidth:!0,error:Boolean(g),helperText:g}),onChange:(e,t)=>{var n;t&&(n=t,m(""),h(n))}})),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{variant:"contained",type:"submit",disabled:y||!(l&&o&&d)},"Submit"),L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:t},"Cancel"))),p?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},p)):null)}function ch({changeManager:e,handleClose:t,region:n,session:r}){const{notify:a}=r,[i,o]=f.useState(String(n.end)),[s,l]=f.useState(String(n.start+1)),[u,d]=f.useState(""),[h,p]=f.useState(),[m,g]=f.useState(""),_=Number(i)<=Number(s);return L.default.createElement(af,{open:!0,title:"Add new feature",handleClose:t,maxWidth:!1,"data-testid":"add-feature-dialog"},L.default.createElement("form",{onSubmit:async function(o){let l;o.preventDefault(),g("");for(const[,e]of r.apolloDataStore.assemblies??new Map)if(e._id===n.assemblyName)for(const[,t]of e.refSeqs??new Map)t.name===n.refName&&(l=t._id);if(!l)return void g("Invalid refseq id");const c=(new Wn).toHexString(),d=new nr.AddFeatureChange({changedIds:[c],typeName:"AddFeatureChange",assembly:n.assemblyName,addedFeature:{_id:c,refSeq:l,min:Number(s)-1,max:Number(i),type:u,strand:h}});await e.submit(d),a("Feature added successfully","success"),t(),o.preventDefault()}},L.default.createElement(c.DialogContent,{style:{display:"flex",flexDirection:"column"}},L.default.createElement(c.TextField,{margin:"dense",id:"start",label:"Start",type:"number",fullWidth:!0,variant:"outlined",value:Number(s),onChange:e=>{l(e.target.value)}}),L.default.createElement(c.TextField,{margin:"dense",id:"end",label:"End",type:"number",fullWidth:!0,variant:"outlined",value:i,onChange:e=>{o(e.target.value)},error:_,helperText:_?'"End" must be greater than "Start"':null}),L.default.createElement(sh,{session:r,ontologyName:"Sequence Ontology",style:{width:170},value:u,filterTerms:ah,renderInput:e=>L.default.createElement(c.TextField,{...e,label:"Type",variant:"outlined",fullWidth:!0}),onChange:(e,t)=>{var n;t&&(n=t,g(""),d(n))}}),L.default.createElement(c.FormControl,null,L.default.createElement(c.InputLabel,{id:"demo-simple-select-label"},"Strand"),L.default.createElement(c.Select,{labelId:"demo-simple-select-label",id:"demo-simple-select",label:"Strand",value:h?.toString(),onChange:function(e){switch(g(""),Number(e.target.value)){case 1:p(1);break;case-1:p(-1);break;default:p(void 0)}}},L.default.createElement(c.MenuItem,{value:void 0}),L.default.createElement(c.MenuItem,{value:1},"+"),L.default.createElement(c.MenuItem,{value:-1},"-")))),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{variant:"contained",type:"submit",disabled:_||!(s&&i&&u)},"Submit"),L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:t},"Cancel"))),m?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},m)):null)}function uh(e,t){const n=(new Wn).toHexString();t.push(n);const r={};if(e.children)for(const n of Object.values(e.children)){const e=uh(n,t);r[e._id]=e}const a="string"==typeof e.refSeq?e.refSeq:e.refSeq.toHexString();return{...e,refSeq:a,children:e.children&&r,_id:n}}function dh({changeManager:e,handleClose:t,session:n,sourceAssemblyId:a,sourceFeature:i}){const{assemblyManager:o,notify:s}=n,u=o.assemblyList,[d,h]=f.useState(u.find((e=>e.name!==a))?.name),[p,m]=f.useState([]),[g,_]=f.useState(""),[y,v]=f.useState(i.min),[b,w]=f.useState("");function x(e,t){const n={};if(e.children)for(const r of Object.values(e.children)){const e=x(r,t);e.refSeq=g,e.min=e.min+t,e.max=e.max+t,n[e._id]=e}const r="string"==typeof e.refSeq?e.refSeq:e.refSeq.toHexString(),a="string"==typeof e._id?e._id:e._id.toHexString();return{...e,refSeq:r,children:e.children&&n,_id:a}}return f.useEffect((()=>{_(""),async function(){if(!d)return void w("No assemblies to copy to");const e=await o.waitForAssembly(d);if(!e)return;const{refNameAliases:t}=e;if(!t)return;const n=[...Object.entries(t)].filter((([e,t])=>e!==t)).map((([e,t])=>({_id:e,name:t??""})));m(n),_(n[0]?._id||"")}().catch((e=>{w(String(e))}))}),[d,o]),L.default.createElement(af,{open:!0,title:"Copy features and annotations",handleClose:t,maxWidth:!1,"data-testid":"copy-feature"},L.default.createElement("form",{onSubmit:async function(n){if(!d)return;n.preventDefault(),w("");const r=i.length,a=await o.waitForAssembly(d);if(!a)return void w(`Assembly not found: ${d}.`);const c=a.getCanonicalRefName(g),u=a.regions?.find((e=>e.refName===c));if(!u)return void w(`RefSeq not found: ${g}.`);const f=y+r;if(f>u.end)return void w(`Feature would extend beyond the bounds of the selected reference sequence. (Feature would end at ${f}, but reference sequence ends at ${u.end})`);if(y<u.start)return void w(`Reference sequence starts at ${u.start}, feature cannot start before that.`);const h=[],p=uh(l.getSnapshot(i),h),m={...p.attributes};"Parent"in m&&delete m.Parent,p.refSeq=g;const _=y-p.min;p.min=y,p.max=y+r;const v=x(p,_),b=new nr.AddFeatureChange({changedIds:[p._id],typeName:"AddFeatureChange",assembly:d,addedFeature:{_id:p._id,refSeq:p.refSeq,min:p.min,max:p.max,type:p.type,children:v.children,attributes:m,strand:p.strand},copyFeature:!0,allIds:h});await e.submit(b),s("Feature copied successfully","success"),t(),n.preventDefault()}},L.default.createElement(c.DialogContent,{style:{display:"flex",flexDirection:"column"}},L.default.createElement(c.DialogContentText,null,"Target assembly"),L.default.createElement(c.Select,{labelId:"label",value:d,onChange:function(e){h(e.target.value)}},u.filter((e=>e.name!==a)).map((e=>L.default.createElement(c.MenuItem,{key:e.name,value:e.name},r.readConfObject(e,"displayName"))))),L.default.createElement(c.DialogContentText,null,"Target reference sequence"),L.default.createElement(c.Select,{labelId:"label",value:g,onChange:function(e){_(e.target.value)}},p.map((e=>L.default.createElement(c.MenuItem,{key:e._id,value:e._id},e.name)))),L.default.createElement(c.DialogContentText,null,"Start position in target reference sequence"),L.default.createElement(c.TextField,{margin:"dense",type:"number",fullWidth:!0,variant:"outlined",value:y,onChange:e=>{v(Number(e.target.value))}})),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{disabled:!d||!g||!y,variant:"contained",type:"submit"},"Submit"),L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:t},"Cancel"))),b?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},b)):null)}function fh({changeManager:e,handleClose:t,session:n}){const{internetAccounts:r}=l.getRoot(n),[a,i]=f.useState(),[o,s]=f.useState(""),[u,d]=f.useState(!1),[h,p]=f.useState(!1),m=r.filter((e=>"ApolloInternetAccount"===e.type));if(0===m.length)throw new Error("No Apollo internet account found");const[g,_]=f.useState(m[0]),{collaborationServerDriver:y}=n.apolloDataStore,v=y.getAssemblies();return f.useEffect((()=>{v.length>0&&void 0===a&&i(v[0])}),[v,a]),L.default.createElement(af,{open:!0,title:"Delete Assembly",handleClose:t,maxWidth:!1,"data-testid":"delete-assembly"},L.default.createElement("form",{onSubmit:async function(n){if(n.preventDefault(),p(!0),s(""),!a)return void s("Must select assembly!");const r=new nr.DeleteAssemblyChange({typeName:"DeleteAssemblyChange",assembly:a.name});await e.submit(r,{internetAccountId:g.internetAccountId}),t(),n.preventDefault()}},L.default.createElement(c.DialogContent,{style:{display:"flex",flexDirection:"column"}},m.length>1?L.default.createElement(L.default.Fragment,null,L.default.createElement(c.DialogContentText,null,"Select account"),L.default.createElement(c.Select,{value:g.internetAccountId,onChange:function(e){p(!1);const t=m.find((t=>t.internetAccountId===e.target.value));if(!t)throw new Error(`Could not find internetAccount with ID "${e.target.value}"`);_(t)},disabled:h&&!o},r.map((e=>L.default.createElement(c.MenuItem,{key:e.id,value:e.internetAccountId},e.name))))):null,L.default.createElement(c.DialogContentText,null,"Select assembly"),L.default.createElement(c.Select,{labelId:"label",value:a?.name??"",onChange:function(e){const t=v.find((t=>t.name===e.target.value));i(t)},disabled:0===v.length},v.map((e=>L.default.createElement(c.MenuItem,{key:e.name,value:e.name},e.displayName??e.name)))),L.default.createElement(c.DialogContentText,null,L.default.createElement("strong",{style:{color:"red"}},"NOTE: All assembly data will be deleted and this operation cannot be undone!")),L.default.createElement(c.FormGroup,null,L.default.createElement(c.FormControlLabel,{control:L.default.createElement(c.Checkbox,{checked:u,onChange:()=>{d(!u)}}),label:"I understand that all assembly data will be deleted"}))),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{disabled:!a||!u,variant:"contained",type:"submit"},"Delete"),L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:t},"Cancel"))),o?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},o)):null)}function hh({changeManager:e,handleClose:t,selectedFeature:n,session:r,setSelectedFeature:a,sourceAssemblyId:i,sourceFeature:o}){const{notify:s}=r,[u,d]=f.useState("");return L.default.createElement(af,{open:!0,title:"Delete feature",handleClose:t,maxWidth:!1,"data-testid":"delete-feature"},L.default.createElement("form",{onSubmit:async function(r){r.preventDefault(),d(""),n?._id===o._id&&a();const c=new nr.DeleteFeatureChange({changedIds:[o._id],typeName:"DeleteFeatureChange",assembly:i,deletedFeature:l.getSnapshot(o),parentFeatureId:o.parent?._id});await e.submit(c),s("Feature deleted successfully","success"),t(),r.preventDefault()}},L.default.createElement(c.DialogContent,{style:{display:"flex",flexDirection:"column"}},L.default.createElement(c.DialogContentText,null,"Are you sure you want to delete the selected feature?")),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{variant:"contained",type:"submit"},"Yes"),L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:t},"Cancel"))),u?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},u)):null)}var ph={exports:{}};function mh({handleClose:e,session:t}){const[n,a]=f.useState(),[i,o]=f.useState(""),{collaborationServerDriver:s,getInternetAccount:u,inMemoryFileDriver:d}=t.apolloDataStore,h=[...s.getAssemblies(),...d.getAssemblies()];return L.default.createElement(af,{open:!0,title:"Export GFF3",handleClose:e,maxWidth:!1,"data-testid":"download-gff3"},L.default.createElement("form",{onSubmit:async function(a){if(a.preventDefault(),o(""),!n)return void o("Must select assembly to download");const{internetAccountConfigId:i}=r.getConf(n,["sequence","metadata"]);i?await async function(e){if(!n)return void o("Must select assembly to download");const t=u(n.configuration.name,e),r=new URL("export/getID",t.baseURL),a=new URLSearchParams({assembly:n.name});r.search=a.toString();const i=r.toString(),s=t.getFetcher({locationType:"UriLocation",uri:i}),l=await s(i,{method:"GET"});if(!l.ok){const e=await Yd(l,"Error when exporting ID");return void o(e)}const{exportID:c}=await l.json(),d=new URL("export",t.baseURL),f=new URLSearchParams({exportID:c});d.search=f.toString();const h=d.toString();window.open(h,"_blank")}(i):function(e){if(!n)return void o("Must select assembly to download");const{assemblies:t}=e.apolloDataStore,a=t.get(n.name),i=a?.refSeqs;if(!i)return void o(`No refSeqs found for assembly "${n.name}"`);const s=[{directive:"gff-version",value:"3"}],c=r.getConf(n,["sequence","adapter","features"]);for(const e of c){const{end:t,refName:n,start:r}=e;s.push({directive:"sequence-region",value:`${n} ${r+1} ${t}`})}for(const[,e]of i){const{features:t}=e;if(t)for(const[,e]of t)s.push(nr.makeGFF3Feature(l.getSnapshot(e)))}for(const e of c){const{refName:t,seq:n}=e;s.push({id:t,description:"",sequence:n})}const u=Vd.formatSync(s),d=new Blob([u],{type:"text/plain;charset=utf-8"});ph.exports.saveAs(d,`${n.displayName??n.name}.gff3`)}(t),e()}},L.default.createElement(c.DialogContent,{style:{display:"flex",flexDirection:"column"}},L.default.createElement(c.DialogContentText,null,"Select assembly"),L.default.createElement(c.Select,{labelId:"label",value:n?.name??"",onChange:function(e){const t=h.find((t=>t.name===e.target.value));a(t)},disabled:0===h.length},h.map((e=>L.default.createElement(c.MenuItem,{key:e.name,value:e.name},e.displayName??e.name)))),L.default.createElement(c.DialogContentText,null,"Select assembly to export to GFF3")),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{disabled:!n,variant:"contained",type:"submit"},"Download"),L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:e},"Cancel"))),i?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},i)):null)}function gh({changeManager:e,handleClose:t,session:n}){const{apolloDataStore:a}=n,[i,o]=f.useState(),[s,l]=f.useState(),[u,d]=f.useState(""),[h,p]=f.useState(!1),[m,g]=f.useState(),[_,y]=f.useState(!1),[v,b]=f.useState(!1),{collaborationServerDriver:w,getInternetAccount:x}=a,S=w.getAssemblies();return f.useEffect((()=>{s&&(async()=>{const{internetAccountConfigId:e}=r.getConf(s,["sequence","metadata"]),t=x(s.name,e);if(!t)throw new Error("No Apollo internet account found");const{baseURL:n}=t,a=new URL("features/count",n),i=new URLSearchParams({assemblyId:s.name});a.search=i.toString();const o=t.getFetcher({locationType:"UriLocation",uri:a.toString()});b(!0);const l=await o(a.toString(),{method:"GET"});if(!l.ok)throw new Error(await Yd(l));{const e=await l.json();g(e.count)}b(!1)})().catch((e=>{console.error(e),d(e.message??e)}))}),[x,n,s]),L.default.createElement(af,{open:!0,title:"Import Features from GFF3 file",handleClose:t,maxWidth:!1,"data-testid":"import-features-dialog"},v?L.default.createElement(F.default,null):null,L.default.createElement("form",{onSubmit:async function(a){a.preventDefault(),d(""),b(!0),p(!0);let o="";if(!i)return void d("must select a file");if(!s)return void d("Must select assembly to download");const{internetAccountConfigId:l}=r.getConf(s,["sequence","metadata"]),c=x(s.name,l),{baseURL:u}=c,f=new URL("files",u);f.searchParams.set("type","text/x-gff3");const h=f.href,m=new FormData;m.append("file",i),m.append("fileName",i.name),m.append("type","text/x-gff3");const g=c.getFetcher({locationType:"UriLocation",uri:h});t();const{jobsManager:y}=n,v=new AbortController,w={name:`Importing features for ${s.displayName}`,statusMessage:"Uploading file, this may take awhile",progressPct:0,cancelCallback:()=>{v.abort(),y.abortJob(w.name)}};if(y.runJob(w),g){const{signal:e}=v,t=await g(h,{method:"POST",body:m,signal:e});if(!t.ok){const e=await Yd(t,"Error when inserting new features (while uploading file)");return y.abortJob(w.name,e),void d(e)}o=(await t.json())._id}const S=new nr.AddFeaturesFromFileChange({typeName:"AddFeaturesFromFileChange",assembly:s.name,fileId:o,deleteExistingFeatures:_});y.done(w),await e.submit(S,{updateJobsManager:!0})}},L.default.createElement(c.DialogContent,{style:{display:"flex",flexDirection:"column"}},L.default.createElement(c.DialogContentText,null,"Select assembly"),L.default.createElement(c.Select,{labelId:"label",value:s?.name??"",onChange:function(e){const t=S.find((t=>t.name===e.target.value));l(t),p(!1)},disabled:h&&!u},S.map((e=>L.default.createElement(c.MenuItem,{key:e.name,value:e.name},e.displayName??e.name))))),L.default.createElement(c.DialogContent,{style:{display:"flex",flexDirection:"column"}},L.default.createElement(c.DialogContentText,null,"Upload GFF3 to load features"),L.default.createElement("input",{type:"file",onChange:function(e){p(!1),e.target.files&&o(e.target.files[0])},disabled:h&&!u})),m&&m>0?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,null,"This assembly already has ",m," features, would you like to delete the existing features before importing new ones?"),L.default.createElement(P.default,{label:"Yes, delete existing features",disabled:h&&!u,control:L.default.createElement(M.default,{checked:_,onChange:function(e){y(e.target.checked)},inputProps:{"aria-label":"controlled"},color:"warning"})})):null,L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{disabled:!(s&&i&&void 0!==m)||h,variant:"contained",type:"submit"},h?"Submitting...":"Submit"),L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:t},"Close"))),u?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},u)):null)}function _h({handleClose:e,session:t}){const{internetAccounts:n}=l.getRoot(t),[r,a]=f.useState(""),i=n.filter((e=>"ApolloInternetAccount"===e.type));if(0===i.length)throw new Error("No Apollo internet account found");const[o,s]=f.useState(i[0]);return L.default.createElement(af,{open:!0,title:"Log out",handleClose:e,maxWidth:!1,"data-testid":"log-out"},L.default.createElement("form",{onSubmit:function(e){e.preventDefault(),a(""),o.removeToken(),window.location.reload()}},L.default.createElement(c.DialogContent,{style:{display:"flex",flexDirection:"column"}},i.length>1?L.default.createElement(L.default.Fragment,null,L.default.createElement(c.DialogContentText,null,"Select account"),L.default.createElement(c.Select,{value:o.internetAccountId,onChange:function(e){const t=i.find((t=>t.internetAccountId===e.target.value));if(!t)throw new Error(`Could not find internetAccount with ID "${e.target.value}"`);s(t)}},n.map((e=>L.default.createElement(c.MenuItem,{key:e.id,value:e.internetAccountId},e.name))))):null,L.default.createElement(c.DialogContentText,null,"Are you sure you want to log out?")),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{disabled:!o,variant:"contained",type:"submit"},"Log Out"),L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:e},"Cancel"))),r?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},r)):null)}function yh({handleClose:e,session:t}){const{internetAccounts:n}=l.getRoot(t),[r,a]=f.useState(),[i,o]=f.useState(""),[s,u]=f.useState(!1),d=n.filter((e=>"ApolloInternetAccount"===e.type));if(0===d.length)throw new Error("No Apollo internet account found");const[h,p]=f.useState(d[0]),[m,g]=f.useState([]),[_,y]=f.useState([]),{collaborationServerDriver:v}=t.apolloDataStore,b=v.getAssemblies();function w(e,t){const n=[..._],r=e.target.value;if(t)n.includes(r)||(n.push(r),y(n));else{const e=n.indexOf(r,0);e>-1&&n.splice(e,1),y(n)}}return f.useEffect((()=>{(async function(){const{baseURL:e,getFetcher:t}=h,n=new URL("checks/types",e).href,r=t({locationType:"UriLocation",uri:n}),a=await r(n,{method:"GET"});if(!a.ok){const e=await Yd(a,"Error when retrieving checks from server");return void o(e)}const i=await a.json();g(i)})().catch((e=>{o(String(e))}))}),[h]),f.useEffect((()=>{b.length>0&&void 0===r&&a(b[0])}),[b,r]),f.useEffect((()=>{(async function(){if(!r)return;const{baseURL:e,getFetcher:t}=h,n=new URL(`/assemblies/${r.name}`,e).href,a=t({locationType:"UriLocation",uri:n}),i=await a(n,{method:"GET"});if(!i.ok){const e=await Yd(i,"Error when retrieving assembly from server");return void o(e)}const s=await i.json();y(s.checks)})().catch((e=>{o(String(e))}))}),[r,h]),L.default.createElement(af,{open:!0,title:"Manage Checks",handleClose:e,"data-testid":"manage-checks"},L.default.createElement("form",{onSubmit:async function(n){if(n.preventDefault(),!r)return void o("Must select assembly!");const{notify:a}=t,{baseURL:i,getFetcher:s}=h,l=new URL("assemblies/checks",i).href,c=s({locationType:"UriLocation",uri:l}),u=await c(l,{method:"POST",body:JSON.stringify({_id:r.name,checks:_,name:""}),headers:{"Content-Type":"application/json"}});if(u.ok)a("Assembly checks updated successfully","success"),e();else{const e=await Yd(u,"Error when updating assembly checks");o(e)}}},L.default.createElement(c.DialogContent,null,d.length>1?L.default.createElement(L.default.Fragment,null,L.default.createElement(c.DialogContentText,null,"Select account"),L.default.createElement(c.Select,{value:h.internetAccountId,onChange:function(e){u(!1);const t=d.find((t=>t.internetAccountId===e.target.value));if(!t)throw new Error(`Could not find internetAccount with ID "${e.target.value}"`);p(t)},disabled:s&&!i},n.map((e=>L.default.createElement(c.MenuItem,{key:e.id,value:e.internetAccountId},e.name))))):null,L.default.createElement(c.DialogContentText,null,"Select assembly"),L.default.createElement(c.Select,{style:{width:300},labelId:"label",value:r?.name??"",onChange:function(e){const t=b.find((t=>t.name===e.target.value));a(t)},disabled:0===b.length},b.map((e=>L.default.createElement(c.MenuItem,{key:e.name,value:e.name},e.displayName??e.name)))),L.default.createElement("br",null),L.default.createElement("br",null),L.default.createElement(c.TableContainer,{component:c.Paper},L.default.createElement(c.Table,null,L.default.createElement(c.TableHead,null,L.default.createElement(c.TableRow,null,L.default.createElement(c.TableCell,null,"Check name"),L.default.createElement(c.TableCell,null,"Use check"))),L.default.createElement(c.TableBody,null,m.map((e=>L.default.createElement(c.TableRow,{key:e._id},L.default.createElement(c.TableCell,null,e.name),L.default.createElement(c.TableCell,null,L.default.createElement(c.Checkbox,{value:e._id,checked:_.includes(e._id),onChange:w}))))))))),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{variant:"contained",type:"submit"},"Submit"),L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:e},"Cancel"))),i?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},i)):null)}!function(e,t){!function(){function t(e,t,n){var r=new XMLHttpRequest;r.open("GET",e),r.responseType="blob",r.onload=function(){o(r.response,t,n)},r.onerror=function(){console.error("could not download file")},r.send()}function n(e){var t=new XMLHttpRequest;t.open("HEAD",e,!1);try{t.send()}catch(e){}return 200<=t.status&&299>=t.status}function r(e){try{e.dispatchEvent(new MouseEvent("click"))}catch(n){var t=document.createEvent("MouseEvents");t.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}var a="object"==("undefined"==typeof window?"undefined":Z(window))&&window.window===window?window:"object"==("undefined"==typeof self?"undefined":Z(self))&&self.self===self?self:"object"==Z(j)&&j.global===j?j:void 0,i=a.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),o=a.saveAs||("object"!=("undefined"==typeof window?"undefined":Z(window))||window!==a?function(){}:"download"in HTMLAnchorElement.prototype&&!i?function(e,i,o){var s=a.URL||a.webkitURL,l=document.createElement("a");l.download=i=i||e.name||"download",l.rel="noopener","string"==typeof e?(l.href=e,l.origin===location.origin?r(l):n(l.href)?t(e,i,o):r(l,l.target="_blank")):(l.href=s.createObjectURL(e),setTimeout((function(){s.revokeObjectURL(l.href)}),4e4),setTimeout((function(){r(l)}),0))}:"msSaveOrOpenBlob"in navigator?function(e,a,i){if(a=a||e.name||"download","string"!=typeof e)navigator.msSaveOrOpenBlob(function(e,t){return void 0===t?t={autoBom:!1}:"object"!=Z(t)&&(console.warn("Deprecated: Expected third argument to be a object"),t={autoBom:!t}),t.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\ufeff",e],{type:e.type}):e}(e,i),a);else if(n(e))t(e,a,i);else{var o=document.createElement("a");o.href=e,o.target="_blank",setTimeout((function(){r(o)}))}}:function(e,n,r,o){if((o=o||open("","_blank"))&&(o.document.title=o.document.body.innerText="downloading..."),"string"==typeof e)return t(e,n,r);var s="application/octet-stream"===e.type,l=/constructor/i.test(a.HTMLElement)||a.safari,c=/CriOS\/[\d]+/.test(navigator.userAgent);if((c||s&&l||i)&&"undefined"!=typeof FileReader){var u=new FileReader;u.onloadend=function(){var e=u.result;e=c?e:e.replace(/^data:[^;]*;/,"data:attachment/file;"),o?o.location.href=e:location=e,o=null},u.readAsDataURL(e)}else{var d=a.URL||a.webkitURL,f=d.createObjectURL(e);o?o.location=f:location.href=f,o=null,setTimeout((function(){d.revokeObjectURL(f)}),4e4)}});a.saveAs=o.saveAs=o,e.exports=o}()}(ph);var vh={},bh=Il.exports;Object.defineProperty(vh,"__esModule",{value:!0});var wh=vh.default=void 0;function xh({changeManager:e,handleClose:t,session:n}){const{internetAccounts:r}=l.getRoot(n),a=r.filter((e=>"ApolloInternetAccount"===e.type&&e.role?.includes("admin")));if(0===a.length)throw new Error("No Apollo internet account found");const[i,o]=f.useState(""),[s,u]=f.useState(a[0]),[d,h]=f.useState([]),p=f.useCallback((async()=>{const{baseURL:e}=s,t=new URL("users",e).href,n=s.getFetcher({locationType:"UriLocation",uri:t});if(n){const e=await n(t,{method:"GET"});if(!e.ok){const t=await Yd(e,"Error when getting user data from db");return void o(t)}const r=await e.json();h(r.map((e=>void 0===e.role?{...e,role:""}:e)))}}),[s]);function m(e){return e===s.getUserId()}f.useEffect((()=>{p().catch((e=>{o(String(e))}))}),[p]);const g=[{field:"username",headerName:"User",width:140},{field:"email",headerName:"Email",width:160},{field:"role",headerName:"Role",width:140,type:"singleSelect",valueOptions:["","readOnly","user","admin"],editable:!0},{field:"actions",type:"actions",getActions:t=>[L.default.createElement(b.GridActionsCellItem,{key:`delete-${t.id}`,icon:L.default.createElement(wh,null),onClick:async()=>{window.confirm("Delete this user?")&&await async function(t){const n=new nr.DeleteUserChange({typeName:"DeleteUserChange",userId:t});await e.submit(n,{internetAccountId:s.internetAccountId}),h((e=>e.filter((e=>e._id!==t))))}(t.id)},disabled:m(t.id),label:"Delete"})]}];return L.default.createElement(af,{open:!0,fullScreen:!0,title:"Manage users",handleClose:t,"data-testid":"manage-users"},L.default.createElement(c.DialogContent,null,a.length>1?L.default.createElement(L.default.Fragment,null,L.default.createElement(c.DialogContentText,null,"Select account"),L.default.createElement(c.Select,{value:s.internetAccountId,onChange:function(e){const t=a.find((t=>t.internetAccountId===e.target.value));if(!t)throw new Error(`Could not find internetAccount with ID "${e.target.value}"`);u(t)},disabled:!i},r.map((e=>L.default.createElement(c.MenuItem,{key:e.id,value:e.internetAccountId},e.name))))):null,L.default.createElement("div",{style:{height:"100%",width:"100%"}},L.default.createElement(b.DataGrid,{pagination:!0,rows:d,columns:g,getRowId:e=>e._id,slots:{toolbar:b.GridToolbar},getRowHeight:()=>"auto",isCellEditable:e=>!m(e.id),processRowUpdate:async function(t){const n=new nr.UserChange({typeName:"UserChange",role:t.role,userId:t._id});return await e.submit(n,{internetAccountId:s.internetAccountId}),t},onProcessRowUpdateError:e=>{o(String(e))}}))),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:t},"Close")),i?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},i)):null)}wh=vh.default=(0,bh(Tl).default)((0,I.default.jsx)("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"}),"Delete");var Sh={exports:{}};!function(e,t){!function(t,n){e.exports=n()}(0,(function(){return e={772:function(e,t,n){var r=n(826).remove,a=/[.*+?^${}()|[\]\\]/g,i=/[a-z0-9_]/i,o=/\s+/;e.exports=function(e,t,n){var s,l;l={insideWords:!1,findAllOccurrences:!1,requireMatchAll:!1},s=(s=n)||{},Object.keys(s).forEach((function(e){l[e]=!!s[e]})),n=l;var c=Array.from(e).map((function(e){return r(e)})),u=c.join("");return(t=r(t)).trim().split(o).filter((function(e){return e.length>0})).reduce((function(e,t){var r,o,s=t.length,l=!n.insideWords&&i.test(t[0])?"\\b":"",d=new RegExp(l+t.replace(a,"\\$&"),"i");if(r=d.exec(u),n.requireMatchAll&&null===r)return u="",[];for(;r;){var f=s-c.slice(o=r.index,o+s).join("").length,h=o-c.slice(0,o).join("").length,p=[o+h,o+s+h+f];if(p[0]!==p[1]&&e.push(p),u=u.slice(0,o)+new Array(s+1).join(" ")+u.slice(o+s),!n.findAllOccurrences)break;r=d.exec(u)}return e}),[]).sort((function(e,t){return e[0]-t[0]}))}},826:function(e){var t={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","Ấ":"A","Ắ":"A","Ẳ":"A","Ẵ":"A","Ặ":"A","Æ":"AE","Ầ":"A","Ằ":"A","Ȃ":"A","Ç":"C","Ḉ":"C","È":"E","É":"E","Ê":"E","Ë":"E","Ế":"E","Ḗ":"E","Ề":"E","Ḕ":"E","Ḝ":"E","Ȇ":"E","Ì":"I","Í":"I","Î":"I","Ï":"I","Ḯ":"I","Ȋ":"I","Ð":"D","Ñ":"N","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","Ố":"O","Ṍ":"O","Ṓ":"O","Ȏ":"O","Ù":"U","Ú":"U","Û":"U","Ü":"U","Ý":"Y","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","ấ":"a","ắ":"a","ẳ":"a","ẵ":"a","ặ":"a","æ":"ae","ầ":"a","ằ":"a","ȃ":"a","ç":"c","ḉ":"c","è":"e","é":"e","ê":"e","ë":"e","ế":"e","ḗ":"e","ề":"e","ḕ":"e","ḝ":"e","ȇ":"e","ì":"i","í":"i","î":"i","ï":"i","ḯ":"i","ȋ":"i","ð":"d","ñ":"n","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","ố":"o","ṍ":"o","ṓ":"o","ȏ":"o","ù":"u","ú":"u","û":"u","ü":"u","ý":"y","ÿ":"y","Ā":"A","ā":"a","Ă":"A","ă":"a","Ą":"A","ą":"a","Ć":"C","ć":"c","Ĉ":"C","ĉ":"c","Ċ":"C","ċ":"c","Č":"C","č":"c","C̆":"C","c̆":"c","Ď":"D","ď":"d","Đ":"D","đ":"d","Ē":"E","ē":"e","Ĕ":"E","ĕ":"e","Ė":"E","ė":"e","Ę":"E","ę":"e","Ě":"E","ě":"e","Ĝ":"G","Ǵ":"G","ĝ":"g","ǵ":"g","Ğ":"G","ğ":"g","Ġ":"G","ġ":"g","Ģ":"G","ģ":"g","Ĥ":"H","ĥ":"h","Ħ":"H","ħ":"h","Ḫ":"H","ḫ":"h","Ĩ":"I","ĩ":"i","Ī":"I","ī":"i","Ĭ":"I","ĭ":"i","Į":"I","į":"i","İ":"I","ı":"i","IJ":"IJ","ij":"ij","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","Ḱ":"K","ḱ":"k","K̆":"K","k̆":"k","Ĺ":"L","ĺ":"l","Ļ":"L","ļ":"l","Ľ":"L","ľ":"l","Ŀ":"L","ŀ":"l","Ł":"l","ł":"l","Ḿ":"M","ḿ":"m","M̆":"M","m̆":"m","Ń":"N","ń":"n","Ņ":"N","ņ":"n","Ň":"N","ň":"n","ʼn":"n","N̆":"N","n̆":"n","Ō":"O","ō":"o","Ŏ":"O","ŏ":"o","Ő":"O","ő":"o","Œ":"OE","œ":"oe","P̆":"P","p̆":"p","Ŕ":"R","ŕ":"r","Ŗ":"R","ŗ":"r","Ř":"R","ř":"r","R̆":"R","r̆":"r","Ȓ":"R","ȓ":"r","Ś":"S","ś":"s","Ŝ":"S","ŝ":"s","Ş":"S","Ș":"S","ș":"s","ş":"s","Š":"S","š":"s","Ţ":"T","ţ":"t","ț":"t","Ț":"T","Ť":"T","ť":"t","Ŧ":"T","ŧ":"t","T̆":"T","t̆":"t","Ũ":"U","ũ":"u","Ū":"U","ū":"u","Ŭ":"U","ŭ":"u","Ů":"U","ů":"u","Ű":"U","ű":"u","Ų":"U","ų":"u","Ȗ":"U","ȗ":"u","V̆":"V","v̆":"v","Ŵ":"W","ŵ":"w","Ẃ":"W","ẃ":"w","X̆":"X","x̆":"x","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Y̆":"Y","y̆":"y","Ź":"Z","ź":"z","Ż":"Z","ż":"z","Ž":"Z","ž":"z","ſ":"s","ƒ":"f","Ơ":"O","ơ":"o","Ư":"U","ư":"u","Ǎ":"A","ǎ":"a","Ǐ":"I","ǐ":"i","Ǒ":"O","ǒ":"o","Ǔ":"U","ǔ":"u","Ǖ":"U","ǖ":"u","Ǘ":"U","ǘ":"u","Ǚ":"U","ǚ":"u","Ǜ":"U","ǜ":"u","Ứ":"U","ứ":"u","Ṹ":"U","ṹ":"u","Ǻ":"A","ǻ":"a","Ǽ":"AE","ǽ":"ae","Ǿ":"O","ǿ":"o","Þ":"TH","þ":"th","Ṕ":"P","ṕ":"p","Ṥ":"S","ṥ":"s","X́":"X","x́":"x","Ѓ":"Г","ѓ":"г","Ќ":"К","ќ":"к","A̋":"A","a̋":"a","E̋":"E","e̋":"e","I̋":"I","i̋":"i","Ǹ":"N","ǹ":"n","Ồ":"O","ồ":"o","Ṑ":"O","ṑ":"o","Ừ":"U","ừ":"u","Ẁ":"W","ẁ":"w","Ỳ":"Y","ỳ":"y","Ȁ":"A","ȁ":"a","Ȅ":"E","ȅ":"e","Ȉ":"I","ȉ":"i","Ȍ":"O","ȍ":"o","Ȑ":"R","ȑ":"r","Ȕ":"U","ȕ":"u","B̌":"B","b̌":"b","Č̣":"C","č̣":"c","Ê̌":"E","ê̌":"e","F̌":"F","f̌":"f","Ǧ":"G","ǧ":"g","Ȟ":"H","ȟ":"h","J̌":"J","ǰ":"j","Ǩ":"K","ǩ":"k","M̌":"M","m̌":"m","P̌":"P","p̌":"p","Q̌":"Q","q̌":"q","Ř̩":"R","ř̩":"r","Ṧ":"S","ṧ":"s","V̌":"V","v̌":"v","W̌":"W","w̌":"w","X̌":"X","x̌":"x","Y̌":"Y","y̌":"y","A̧":"A","a̧":"a","B̧":"B","b̧":"b","Ḑ":"D","ḑ":"d","Ȩ":"E","ȩ":"e","Ɛ̧":"E","ɛ̧":"e","Ḩ":"H","ḩ":"h","I̧":"I","i̧":"i","Ɨ̧":"I","ɨ̧":"i","M̧":"M","m̧":"m","O̧":"O","o̧":"o","Q̧":"Q","q̧":"q","U̧":"U","u̧":"u","X̧":"X","x̧":"x","Z̧":"Z","z̧":"z"},n=Object.keys(t).join("|"),r=new RegExp(n,"g"),a=new RegExp(n,""),i=function(e){return e.replace(r,(function(e){return t[e]}))};e.exports=i,e.exports.has=function(e){return!!e.match(a)},e.exports.remove=i}},t={},function n(r){var a=t[r];if(void 0!==a)return a.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}(772);var e,t}))}(Sh);var kh=Sh.exports,Eh={exports:{}};!function(e,t){!function(t,n){e.exports=n()}(0,(function(){return e={705:function(e){e.exports=function(e,t){var n=[];return 0===t.length?n.push({text:e,highlight:!1}):t[0][0]>0&&n.push({text:e.slice(0,t[0][0]),highlight:!1}),t.forEach((function(r,a){var i=r[1];n.push({text:e.slice(r[0],i),highlight:!0}),a===t.length-1?i<e.length&&n.push({text:e.slice(i,e.length),highlight:!1}):i<t[a+1][0]&&n.push({text:e.slice(i,t[a+1][0]),highlight:!1})})),n}}},t={},function n(r){var a=t[r];if(void 0!==a)return a.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}(705);var e,t}))}(Eh);var Ah=Eh.exports;function Ch({getTagProps:e,index:t,ontology:n,termId:r}){const a=l.getParent(n,2),[i,o]=D.useState(""),[s,u]=D.useState("");return D.useEffect((()=>{const e=new AbortController,{signal:t}=e;return async function(){const e=a.expandPrefixes(r),i=await(n.dataStore?.db);if(!i||t.aborted)return;const s=await i.transaction("nodes").objectStore("nodes").get(e);s&&s.lbl&&!t.aborted&&o(s.lbl||"no label")}().catch((e=>{t.aborted||u(String(e))})),()=>{e.abort()}}),[r,n,a]),D.createElement(c.Tooltip,{title:i},D.createElement("div",null,D.createElement(c.Chip,{label:s||a.applyPrefixes(r),color:s?"error":"default",size:"small",...e({index:t})})))}function Rh({includeDeprecated:e,onChange:t,ontologyName:r,ontologyVersion:a,session:o,value:s}){const{ontologyManager:l}=o.apolloDataStore,u=l.findOntology(r,a),[d,f]=D.useState(s.map((e=>({term:{id:e,type:"CLASS"}})))),[h,p]=D.useState(""),[m,g]=D.useState([]),[_,y]=D.useState(!1),[v,b]=D.useState(""),w=D.useMemo((()=>i.debounce((async(t,r)=>{if(!u)return;const{dataStore:a}=u;if(!a)return;const{input:i,signal:o}=t;try{const t=await a.getTermsByFulltext(i,void 0,o),n=new Map,s=[];for(const r of t){if(!ah(r.term)||!e&&xf(r.term))continue;let t=n.get(r.term.id);t||(t={term:r.term,matches:[]},n.set(r.term.id,t),s.push(t)),t.matches.push(r)}r(s)}catch(e){n.isAbortException(e)||b(String(e))}}),400)),[e,u]);if(D.useEffect((()=>{const e=new AbortController,{signal:t}=e;if(""!==h)return y(!0),w({input:h,signal:t},(e=>{let t=[];d.length>0&&(t=d),e&&(t=[...t,...e]),g(t),y(!1)})),()=>{e.abort()};g([])}),[w,u,e,h,d]),!u)return null;const x={};return v&&(x.error=!0,x.helperText=v),D.createElement(c.Autocomplete,{getOptionLabel:e=>l.applyPrefixes(e.term.id),filterOptions:e=>e.filter((e=>ah(e.term))),options:m,autoComplete:!0,includeInputInList:!0,filterSelectedOptions:!0,value:d,loading:_,isOptionEqualToValue:(e,t)=>l.applyPrefixes(e.term.id)===l.applyPrefixes(t.term.id),noOptionsText:h?"No matches":"Start typing to search",onChange:(e,n)=>{g(n?[...n,...m]:m),t(n.map((e=>l.applyPrefixes(e.term.id)))),f(n)},onInputChange:(e,t)=>{t&&y(!0),g([]),p(t)},multiple:!0,renderInput:e=>D.createElement(c.TextField,{...e,...x,variant:"outlined",fullWidth:!0}),renderOption:(e,t)=>D.createElement(Ih,{...e,ontologyManager:l,option:t,inputValue:h}),renderTags:(e,t)=>e.map(((e,n)=>D.createElement(Ch,{termId:e.term.id,index:n,ontology:u,getTagProps:t,key:e.term.id})))})}function Nh(e){const{search:t,str:n}=e,r=kh(n,t,{insideWords:!0,findAllOccurrences:!0}),a=Ah(n,r);return D.createElement(D.Fragment,null,a.map(((e,t)=>D.createElement(c.Typography,{key:t,component:"span",sx:{fontWeight:e.highlight?"bold":"regular"},variant:"body2",color:"text.secondary"},e.text))))}function Ih(e){const{inputValue:t,ontologyManager:n,option:r,...a}=e,i=(r.matches??[]).filter((e=>"$.lbl"!==e.field.jsonPath)).map((e=>D.createElement(D.Fragment,{key:`option-${e.term.id}-${e.str}`},D.createElement(c.Typography,{component:"dt",variant:"body2",color:"text.secondary"},e.field.displayName),D.createElement("dd",null,D.createElement(Nh,{str:e.str,search:t})))));return D.createElement("li",{...a},D.createElement(c.Grid,{container:!0},D.createElement(c.Grid,{item:!0},D.createElement(c.Typography,{component:"span"},n.applyPrefixes(r.term.id))," ",D.createElement(Nh,{str:r.term.lbl??"(no label)",search:t})," ",D.createElement("dl",null,i))))}const Th=new Map([["Gene Ontology",e=>L.default.createElement(Rh,{...e,ontologyName:"Gene Ontology"})],["Sequence Ontology",e=>L.default.createElement(Rh,{...e,ontologyName:"Sequence Ontology"})]]),Oh=m.makeStyles()((e=>({attributeInput:{maxWidth:600},newAttributePaper:{padding:e.spacing(2)},attributeName:{background:e.palette.secondary.main,color:e.palette.secondary.contrastText,padding:e.spacing(1)}}))),Fh=["ID","Name","Alias","Target","Gap","Derives_from","Note","Dbxref","Ontology","Is_Circular"];function Lh(e){const{onChange:t,value:n}=e;return L.default.createElement(c.TextField,{type:"text",value:n,onChange:e=>{t(e.target.value.split(","))},variant:"outlined",fullWidth:!0,helperText:"Separate multiple values for the attribute with commas"})}function Dh({changeManager:e,handleClose:t,session:n,sourceAssemblyId:r,sourceFeature:a}){const{notify:i}=n,{internetAccounts:o}=l.getRoot(n),s=f.useMemo((()=>o.find((e=>"ApolloInternetAccount"===e.type))),[o]),u=["admin","user"].includes((s?s.role:"admin")??""),[d,h]=f.useState(""),[p,m]=f.useState(Object.fromEntries([...a.attributes.entries()].map((([e,t])=>{if(e.startsWith("gff_")){const n=e.slice(4);return[n.charAt(0).toUpperCase()+n.slice(1),l.getSnapshot(t)]}return"_id"===e?["ID",l.getSnapshot(t)]:[e,l.getSnapshot(t)]})))),[g,_]=f.useState(!1),[y,v]=f.useState(""),{classes:b}=Oh(),w=Object.values(p).some((e=>0===e.length||e.includes("")));return L.default.createElement(af,{open:!0,title:"Feature attributes",handleClose:t,maxWidth:!1,"data-testid":"modify-feature-attribute"},L.default.createElement("form",{onSubmit:async function(n){n.preventDefault(),h("");const o={};if(p)for(const[e,t]of Object.entries(p))if(t&&"parent"!==e.toLowerCase())if([...Th.keys()].includes(e))o[e]=t;else switch(e){case"ID":o._id=t;break;case"Name":o.gff_name=t;break;case"Alias":o.gff_alias=t;break;case"Target":o.gff_target=t;break;case"Gap":o.gff_gap=t;break;case"Derives_from":o.gff_derives_from=t;break;case"Note":o.gff_note=t;break;case"Dbxref":o.gff_dbxref=t;break;case"Ontology_term":o.gff_ontology_term=t;break;case"Is_circular":o.gff_is_circular=t;break;default:o[e.toLowerCase()]=t}const s=new nr.FeatureAttributeChange({changedIds:[a._id],typeName:"FeatureAttributeChange",assembly:r,featureId:a._id,attributes:o});await e.submit(s),i("Feature attributes modified successfully","success"),t(),n.preventDefault()}},L.default.createElement(c.DialogContent,null,L.default.createElement(c.Grid,{container:!0,direction:"column",spacing:1},Object.entries(p).map((([e,t])=>{const r=Th.get(e)??Lh;return L.default.createElement(c.Grid,{container:!0,item:!0,spacing:3,alignItems:"center",key:e},L.default.createElement(c.Grid,{item:!0,xs:"auto"},L.default.createElement(c.Paper,{variant:"outlined",className:b.attributeName},L.default.createElement(c.Typography,null,e))),L.default.createElement(c.Grid,{item:!0,flexGrow:1},L.default.createElement(r,{session:n,value:t,onChange:(a=e,e=>{m({...p,[a]:e})})})),L.default.createElement(c.Grid,{item:!0,xs:1},L.default.createElement(c.IconButton,{"aria-label":"delete",size:"medium",disabled:!u,onClick:()=>{!function(e){h("");const{[e]:t,...n}=p;m(n)}(e)}},L.default.createElement(wh,{fontSize:"medium",key:e}))));var a})),L.default.createElement(c.Grid,{item:!0},L.default.createElement(c.Button,{color:"primary",variant:"contained",disabled:g||!u,onClick:()=>{_(!0)}},"Add new")),g?L.default.createElement(c.Grid,{item:!0},L.default.createElement(c.Paper,{elevation:8,className:b.newAttributePaper},L.default.createElement(c.Grid,{container:!0,direction:"column"},L.default.createElement(c.Grid,{item:!0},L.default.createElement(c.FormControl,null,L.default.createElement(c.FormLabel,{id:"attribute-radio-button-group"},"Select attribute type"),L.default.createElement(c.RadioGroup,{"aria-labelledby":"demo-radio-buttons-group-label",defaultValue:"custom",name:"radio-buttons-group",onChange:function(e,t){"custom"===t?v(""):Th.has(t)?v(t):h("Unknown attribute type")}},L.default.createElement(c.FormControlLabel,{value:"custom",control:L.default.createElement(c.Radio,null),disableTypography:!0,label:L.default.createElement(c.Grid,{container:!0,spacing:1,alignItems:"center"},L.default.createElement(c.Grid,{item:!0},L.default.createElement(c.Typography,null,"Custom")),L.default.createElement(c.Grid,{item:!0},L.default.createElement(c.TextField,{label:"Custom attribute key",variant:"outlined",value:Th.has(y)?"":y,disabled:Th.has(y),onChange:e=>{v(e.target.value)}})))}),[...Th.keys()].map((e=>L.default.createElement(c.FormControlLabel,{key:e,value:e,control:L.default.createElement(c.Radio,null),label:e})))))),L.default.createElement(c.Grid,{item:!0},L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{key:"addButton",color:"primary",variant:"contained",style:{margin:2},onClick:function(){h(""),0!==y.trim().length?"Parent"!==y?y in p?h(`Attribute "${y}" already exists`):!/^[A-Z]/.test(y)||Fh.includes(y)||[...Th.keys()].includes(y)?(m({...p,[y]:[]}),_(!1),v("")):h(`Key cannot starts with uppercase letter unless key is one of these: ${Fh.join(", ")}`):h('"Parent" -key is handled internally and it cannot be modified manually'):h("Attribute key is mandatory")},disabled:!y},"Add"),L.default.createElement(c.Button,{key:"cancelAddButton",variant:"outlined",type:"submit",onClick:()=>{_(!1),v(""),h("")}},"Cancel")))))):null),d?L.default.createElement(c.DialogContentText,{color:"error"},d):null),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{variant:"contained",type:"submit",disabled:g||w||!u},"Submit changes"),L.default.createElement(c.Button,{variant:"outlined",type:"submit",disabled:g,onClick:t},"Cancel"))))}var Mh=function(){return crypto.getRandomValues(new Uint8Array(arguments.length>0&&void 0!==arguments[0]?arguments[0]:21)).reduce((function(e,t){return e+((t&=63)<36?t.toString(36):t<62?(t-26).toString(36).toUpperCase():t>62?"-":"_")}),"")};function Ph({handleClose:e,session:t}){const{apolloDataStore:r}=t,{addAssembly:a,addSessionAssembly:i,assemblyManager:o,notify:s}=t,[l,u]=f.useState(null),[d,h]=f.useState(""),[p,m]=f.useState(""),[g,_]=f.useState(!1),y=c.useTheme();return L.default.createElement(af,{open:!0,title:"Open local GFF3 file",handleClose:e,maxWidth:!1,"data-testid":"open-local-file"},L.default.createElement("form",{onSubmit:async function(c){if(c.preventDefault(),m(""),_(!0),!l)throw new Error("No file selected");const u=await new Response(l).text(),f=`${d}-${l.name}-${Mh(8)}`;try{await Wd(f,u,r)}catch(t){return console.error(t),s(`Error loading GFF3 ${l.name}, ${String(t)}`,"error"),void e()}const h={name:f,aliases:[d],displayName:d,sequence:{trackId:`sequenceConfigId-${d}`,type:"ReferenceSequenceTrack",adapter:{type:"ApolloSequenceAdapter",assemblyId:f},metadata:{apollo:!0,...n.isElectron?{file:l.path}:{}}}};await(i||a)(h);const p=await o.waitForAssembly(h.name);p?(t.addApolloTrackConfig(p),s(`Loaded GFF3 ${l.name}`,"success")):s(`Error loading GFF3 ${l.name}`,"error"),e()}},L.default.createElement(c.DialogContent,{style:{display:"flex",flexDirection:"column"}},L.default.createElement(c.FormControl,null,L.default.createElement("div",{style:{flexDirection:"row"}},L.default.createElement(c.Button,{variant:"contained",component:"label",style:{marginRight:y.spacing()}},"Choose File",L.default.createElement("input",{type:"file",required:!0,hidden:!0,onChange:function(e){const t=e.target.files?.item(0);if(t&&(m(""),u(t),!d)){const e=t.name,n=e.lastIndexOf(".");h(-1===n?e:e.slice(0,n))}}})),l?l.name:"No file chosen"),L.default.createElement(c.FormHelperText,null,"Make sure your GFF3 has an embedded FASTA section")),L.default.createElement(c.TextField,{required:!0,label:"Assembly name",value:d,onChange:function(e){h(e.target.value)}})),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{disabled:!1,variant:"contained",type:"submit"},g?"Submitting...":"Submit"),L.default.createElement(c.Button,{disabled:g,variant:"outlined",type:"submit",onClick:e},"Cancel"))),p?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},p)):null)}const qh=m.makeStyles()((e=>({changeTextarea:{fontFamily:"monospace",width:600,resize:"none",border:`1px solid ${e.palette.divider}`,borderRadius:e.shape.borderRadius}})));function jh({handleClose:e,session:t}){const{internetAccounts:n}=l.getRoot(t),r=n.find((e=>"ApolloInternetAccount"===e.type));if(!r)throw new Error("No Apollo internet account found");const{baseURL:a}=r,{classes:i}=qh(),[o,s]=f.useState(),[u,d]=f.useState([]),[h,p]=f.useState(""),[m,g]=f.useState([]),_=[{field:"sequence"},{field:"typeName",headerName:"Change type",width:200,type:"singleSelect",valueOptions:[...z.changeRegistry.changes.keys()]},{field:"changes",headerName:"Change JSON",width:600,renderCell:({value:e})=>L.default.createElement("textarea",{className:i.changeTextarea,value:JSON.stringify(e),readOnly:!0}),valueFormatter:({value:e})=>JSON.stringify(e)},{field:"user",headerName:"User",width:140},{field:"createdAt",headerName:"Time",width:160,type:"dateTime",valueGetter:e=>e&&new Date(e)}];return f.useEffect((()=>{(async function(){const e=new URL("assemblies",a).href,t=r?.getFetcher({locationType:"UriLocation",uri:e});if(t){const n=await t(e,{method:"GET"});if(!n.ok){const e=await Yd(n,"Error when retrieving assemblies from server");return void s(e)}const r=await n.json();d(r)}})().catch((e=>{s(String(e))}))}),[r,a]),f.useEffect((()=>{!h&&u.length>0&&p(u[0]._id)}),[h,u]),f.useEffect((()=>{(async function(){if(!h)return;const e=new URL("changes",a),t=new URLSearchParams({assembly:h});e.search=t.toString();const n=e.toString(),i=r?.getFetcher({locationType:"UriLocation",uri:n});if(i){const e=await i(n,{headers:new Headers({"Content-Type":"application/json"})});if(!e.ok){const t=await Yd(e,"Error when retrieving changes");return void s(t)}const t=await e.json();g(t)}})().catch((e=>{s(String(e))}))}),[h,r,a]),L.default.createElement(af,{open:!0,fullScreen:!0,title:"View change log",handleClose:e,"data-testid":"view-changelog"},L.default.createElement(c.Select,{style:{width:200,marginLeft:40},value:h,onChange:function(e){p(e.target.value)}},u.map((e=>L.default.createElement(c.MenuItem,{key:e._id,value:e._id},e.name)))),L.default.createElement(c.DialogContent,null,L.default.createElement(b.DataGrid,{pagination:!0,rows:m,columns:_,getRowId:e=>e._id,slots:{toolbar:b.GridToolbar},initialState:{sorting:{sortModel:[{field:"sequence",sort:"desc"}]},columns:{columnVisibilityModel:{sequence:!1}}}})),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:e},"Close")),o?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},o)):null)}const Bh=[{field:"refName",headerName:"Ref Name"},{field:"aliases",headerName:"Aliases",editable:!0}],Uh=e=>/^[\da-f]{24}$/i.test(e);function zh({changeManager:e,handleClose:t,session:n}){const r=f.useRef(null),[a,i]=f.useState(""),[o,s]=f.useState(!1),[l,u]=f.useState(),[d,h]=f.useState([]),[p,m]=f.useState(new Map),{apolloDataStore:g}=n,{collaborationServerDriver:_}=g,y=_.getAssemblies();f.useEffect((()=>{let e=0;const t=()=>{if(!l)return;const n=new Map;if(e<2&&!l.refNames&&(e++,setTimeout(t,50)),!l.refNames)return;const r=l.refNameAliases;for(const e in r){const t=r[e];if(t&&!Uh(e))if(n.has(t)){const r=n.get(t)??[];n.set(t,[...r,e])}else n.set(t,[e])}m(n)};t()}),[l]);const v=()=>[...p].map(((e,t)=>({id:t,refName:e[0],aliases:e[1].filter((t=>t!==e[0])).join(", ")})));return L.default.createElement(af,{open:!0,title:"Add reference sequence aliases",handleClose:t,maxWidth:"sm","data-testid":"add-refseq-alias",fullWidth:!0},L.default.createElement(c.DialogContent,{style:{display:"flex",flexDirection:"column"}},L.default.createElement(c.Grid,{container:!0,spacing:2},L.default.createElement(c.Grid,{item:!0,xs:4},L.default.createElement(c.FormControl,{disabled:o&&!a,fullWidth:!0},L.default.createElement(c.InputLabel,{id:"demo-simple-select-label"},"Assembly"),L.default.createElement(c.Select,{labelId:"demo-simple-select-label",id:"demo-simple-select",label:"Assembly",value:l?.name??"",onChange:e=>{const t=y.find((t=>t.name===e.target.value));u(t),s(!1),i(""),r.current&&(r.current.value="")}},y.map((e=>L.default.createElement(c.MenuItem,{key:e.name,value:e.name},e.displayName??e.name)))))),L.default.createElement(c.Grid,{item:!0,xs:1}),L.default.createElement(c.Grid,{item:!0,xs:7},L.default.createElement(c.InputLabel,null,"Load RefName alias"),L.default.createElement("input",{type:"file",onChange:e=>{(async e=>{if(!e.target.files)return;const t=e.target.files[0],n=(await t.text()).split("\n"),r=new Map(p);i("");for(const e of n){const t=e.split("\t");for(const e of t)r.has(e)&&r.set(e,[...r.get(e)??[],...t])}m(r)})(e).catch((()=>{i("Error reading file")}))},ref:r,disabled:o&&!a||!l}))),l&&p.size>0?L.default.createElement("div",{style:{height:200,width:"100%",marginTop:20}},L.default.createElement(c.InputLabel,null,"Refname aliases found for selected assembly."),L.default.createElement(b.DataGrid,{rows:v(),columns:Bh,initialState:{pagination:{paginationModel:{page:0,pageSize:5}}},pageSizeOptions:[5,10],onRowSelectionModelChange:e=>{(e=>{if(e.length>0){s(!0);const t=e.flatMap((e=>v().filter((t=>t.id===e))));h(t)}else s(!1),h([])})(e)},processRowUpdate:(e,t)=>{const n=new Map(p);return n.set(e.refName,e.aliases.split(",")),m(n),e},checkboxSelection:!0})):null),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{variant:"contained",type:"submit",disabled:!o,onClick:()=>{const n=[];for(const e of d){const{refName:t}=e,r=e.aliases.split(",").map((e=>e.trim())).filter((e=>e.length>0));n.push({refName:t,aliases:r})}if(i(""),!l)return void i("No assembly selected");const r=new nr.AddRefSeqAliasesChange({typeName:"AddRefSeqAliasesChange",assembly:l.name,refSeqAliases:n});e.submit(r).catch((()=>{i("Error submitting change")})),t()}},"Submit"),L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:t},"Close")),a?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},a)):null)}function Gh({handleClose:e,session:t}){const{internetAccounts:n}=l.getRoot(t),{collaborationServerDriver:r}=t.apolloDataStore,a=n.find((e=>"ApolloInternetAccount"===e.type));if(!a)throw new Error("No Apollo internet account found");const{baseURL:i}=a,[o,s]=f.useState(),[u,d]=f.useState(),[h,p]=f.useState([]),m=r.getAssemblies();return f.useEffect((()=>{!u&&m.length>0&&d(m[0])}),[m,u]),f.useEffect((()=>{(async function(){const e=u?.name;if(!e)return;const t=new URL("checks",i),n=new URLSearchParams({assembly:e});t.search=n.toString();const r=t.toString(),o=a?.getFetcher({locationType:"UriLocation",uri:r});if(o){const e=await o(r,{headers:new Headers({"Content-Type":"application/json"})});if(!e.ok){const t=await Yd(e,"Error when retrieving checks");return void s(t)}const t=await e.json();p(t)}})().catch((e=>{s(String(e))}))}),[u,a,i]),L.default.createElement(af,{open:!0,fullScreen:!0,title:"View check results",handleClose:e,"data-testid":"view-check-results"},L.default.createElement(c.Select,{style:{width:200,marginLeft:40},value:u?.name??"",onChange:function(e){const t=m.find((t=>t.name===e.target.value));d(t)},disabled:0===m.length},m.map((e=>L.default.createElement(c.MenuItem,{key:e.name,value:e.name},e.displayName??e.name)))),L.default.createElement(c.DialogContent,null,L.default.createElement(b.DataGrid,{pagination:!0,rows:h,columns:[{field:"_id",headerName:"id",width:50},{field:"name",headerName:"Check name",width:200},{field:"refSeq",headerName:"Reference sequence ID",width:200},{field:"ids",headerName:"Feature IDs",width:200},{field:"message",headerName:"Message",flex:1}],getRowId:e=>e._id,slots:{toolbar:b.GridToolbar},initialState:{sorting:{sortModel:[{field:"name",sort:"asc"}]},columns:{columnVisibilityModel:{name:!0}}}})),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:e},"Close")),o?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},o)):null)}var Hh={},$h=Il.exports;Object.defineProperty(Hh,"__esModule",{value:!0});var Jh=Hh.default=void 0;function Vh(e){const{color:t}=e;return L.default.createElement(c.SvgIcon,{viewBox:"0 0 18 18",style:{fontSize:18,marginRight:4},...e},"disabled"===t?L.default.createElement("path",{d:"M9.001,10.71 l0,-3.348 l8.424,0 c0.126,0.567,0.225,1.098,0.225,1.845 c0,5.139,-3.447,8.793,-8.64,8.793 c-4.968,0,-9,-4.032,-9,-9 c0,-4.968,4.032,-9,9,-9 c2.43,0,4.464,0.891,6.021,2.349 l-2.556,2.484 c-0.648,-0.612,-1.782,-1.332,-3.465,-1.332 c-2.979,0,-5.409,2.475,-5.409,5.508 c0,3.033,2.43,5.508,5.409,5.508 c3.447,0,4.716,-2.385,4.95,-3.798 l-4.959,0 l0,-0.009 z"}):L.default.createElement(L.default.Fragment,null,L.default.createElement("path",{d:"M17.64,9.20454545 c0,-0.638,-0.057,-1.252,-0.164,-1.841 l-8.476,0 l0,3.481 l4.844,0 c-0.209,1.125,-0.843,2.079,-1.796,2.717 l0,2.258 l2.908,0 c1.702,-1.567,2.684,-3.874,2.684,-6.615 l0,0 z",fill:"#4285F4"}),L.default.createElement("path",{d:"M9,18 c2.43,0,4.467,-0.806,5.956,-2.18 l-2.908,-2.259 c-0.806,0.54,-1.837,0.859,-3.048,0.859 c-2.344,0,-4.328,-1.583,-5.036,-3.71 l-3.007,0 l0,2.332 c1.481,2.941,4.525,4.958,8.043,4.958 l0,0 z",fill:"#34A853"}),L.default.createElement("path",{d:"M3.96409091,10.71 c-0.18,-0.54,-0.282,-1.117,-0.282,-1.71 c0,-0.593,0.102,-1.17,0.282,-1.71 l0,-2.332 l-3.007,0 c-0.609,1.215,-0.957,2.59,-0.957,4.042 c0,1.452,0.348,2.827,0.957,4.042 l3.007,-2.332 l0,0 z",fill:"#FBBC05"}),L.default.createElement("path",{d:"M9,3.57954545 c1.321,0,2.508,0.454,3.44,1.346 l2.582,-2.581 c-1.559,-1.453,-3.596,-2.345,-6.022,-2.345 c-3.518,0,-6.562,2.017,-8.043,4.959 l3.007,2.331 c0.708,-2.127,2.692,-3.71,5.036,-3.71 l0,0 z",fill:"#EA4335"})))}function Wh(e){const{color:t}=e;return L.default.createElement(c.SvgIcon,{viewBox:"0 0 21 21",style:{fontSize:21},...e},L.default.createElement("rect",{x:"1",y:"1",width:"9",height:"9",fill:"disabled"===t?"#7B7B7B":"#F25022"}),L.default.createElement("rect",{x:"1",y:"11",width:"9",height:"9",fill:"disabled"===t?"#7B7B7B":"#00A4EF"}),L.default.createElement("rect",{x:"11",y:"1",width:"9",height:"9",fill:"disabled"===t?"#939393":"#7FBA00"}),L.default.createElement("rect",{x:"11",y:"11",width:"9",height:"9",fill:"disabled"===t?"#B9B9B9":"#FFB900"}))}Jh=Hh.default=(0,$h(Tl).default)((0,I.default.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 4c1.93 0 3.5 1.57 3.5 3.5S13.93 13 12 13s-3.5-1.57-3.5-3.5S10.07 6 12 6zm0 14c-2.03 0-4.43-.82-6.14-2.88C7.55 15.8 9.68 15 12 15s4.45.8 6.14 2.12C16.43 19.18 14.03 20 12 20z"}),"AccountCircle");const Kh=m.makeStyles()((e=>({loginButton:{marginBottom:e.spacing(1),width:"220px",height:"40px",fontSize:"16px",textTransform:"none",justifyContent:"left",padding:"3px 12px"}})));function Yh(e){const{classes:t}=Kh(),{disabled:n}=e;return L.default.createElement(c.Button,{className:t.loginButton,variant:"outlined",startIcon:L.default.createElement(Vh,{color:n?"disabled":void 0}),...e},"Sign in with Google")}function Zh(e){const{classes:t}=Kh(),{disabled:n}=e;return L.default.createElement(c.Button,{className:t.loginButton,variant:"outlined",startIcon:L.default.createElement(Wh,{color:n?"disabled":void 0}),...e},"Sign in with Microsoft")}function Xh(e){const{classes:t}=Kh();return L.default.createElement(c.Button,{className:t.loginButton,variant:"outlined",startIcon:L.default.createElement(Jh,{fontSize:"small"}),...e},"Continue as Guest")}const Qh=m.makeStyles()((e=>({divider:{marginTop:e.spacing(4),marginBottom:e.spacing(5)}}))),ep=({baseURL:e,handleClose:t,name:r})=>{const{classes:a}=Qh(),[i,o]=f.useState(""),[s,l]=f.useState([]);function u(e){t("google"===e?"google":"microsoft"===e?"microsoft":"guest")}f.useEffect((()=>{const t=new AbortController,{signal:r}=t;return async function(){const t=new URL("auth/types",e).href,n=await fetch(t,{method:"GET",signal:r});if(!n.ok){const e=await Yd(n,"Error when retrieving auth types from server");return void o(e)}const a=await n.json();l(a)}().catch((e=>{!n.isAbortException(e)&&o(String(e))})),()=>{t.abort()}}),[e]);const d=s.includes("google"),h=s.includes("microsoft"),p=s.includes("guest");return L.default.createElement(af,{open:!0,title:`Log in to ${r}`,handleClose:t,maxWidth:!1,"data-testid":"login-apollo"},L.default.createElement(c.DialogContent,{style:{display:"flex",flexDirection:"column",paddingTop:8}},d?L.default.createElement(Yh,{disabled:!d,onClick:()=>{u("google")}}):null,h?L.default.createElement(Zh,{disabled:!h,onClick:()=>{u("microsoft")}}):null,p?L.default.createElement(L.default.Fragment,null,L.default.createElement(c.Divider,{className:a.divider}),L.default.createElement(Xh,{onClick:()=>{u("guest")}})):null),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:()=>{t()}},"Cancel")),i?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},i)):null)},tp="undefined"==typeof sessionStorage,np=e=>a.InternetAccount.named("ApolloInternetAccount").props({type:l.types.literal("ApolloInternetAccount"),configuration:r.ConfigurationReference(e)}).views((e=>({get baseURL(){return r.getConf(e,"baseURL")},getUserId(){const t=e.retrieveToken();if(t)return nr.getDecodedToken(t).id}}))).volatile((()=>({role:void 0}))).actions((e=>{let t=!1;return{setRole(){const n=e.retrieveToken();if(!n)return void(e.role=void 0);const r=nr.getDecodedToken(n),{role:a}=r;if(!a&&!t){const{session:n}=l.getRoot(e);n.notify("You have registered as a user but have not been given access. Ask your administrator to enable access for your account.","warning"),t=!0}e.role!==a&&(e.role=a)}}})).actions((e=>{let t;return{addMessageChannel(e,n){t=t=>{this.finishOAuthWindow(t,e,n)},window.addEventListener("message",t)},deleteMessageChannel(){window.removeEventListener("message",t)},finishOAuthWindow(t,n,r){if(t.data.name!==`JBrowseAuthWindow-${e.internetAccountId}`)return void this.deleteMessageChannel();const a=t.data.redirectUri.replace("#","?"),i=new URL(a),o=new URLSearchParams(i.search).get("access_token");this.deleteMessageChannel(),o?(e.storeToken(o),e.setRole(),n(o)):r(new Error("Error with token endpoint"))},async openAuthWindow(t,r,a){const i=n.isElectron?"http://localhost/auth":window.location.origin+window.location.pathname,o=new URL("auth/login",e.baseURL),s=new URLSearchParams({type:t,redirect_uri:i});o.search=s.toString();const l=`JBrowseAuthWindow-${e.internetAccountId}`;if(n.isElectron){const{ipcRenderer:t}=window.require("electron"),n=await t.invoke("openAuthWindow",{internetAccountId:e.internetAccountId,data:{redirect_uri:i},url:o.toString()}),s=new MessageEvent("message",{data:{name:l,redirectUri:n}});this.finishOAuthWindow(s,r,a)}else this.addMessageChannel(r,a),window.open(o,l,"width=500,height=600")}}})).actions((e=>({async getTokenFromUser(t,n){const{baseURL:r}=e,a=await new Promise(((t,n)=>{const{session:r}=l.getRoot(e),{baseURL:a,name:i}=e;r.queueDialog((e=>[ep,{name:i,handleClose:r=>{r?r instanceof Error?n(r):t(r):n(new Error("user cancelled entry")),e()},baseURL:a}]))}));if("guest"!==a)return void e.openAuthWindow(a,t,n);const i=new URL("auth/login",r),o=new URLSearchParams({type:a});i.search=o.toString();const s=i.toString(),c=await fetch(s);if(!c.ok){const e=await Yd(c,"Error when logging in");return void n(new Error(e))}const{token:u}=await c.json();t(u)}}))).volatile((()=>({lastChangeSequenceNumber:void 0}))).actions((e=>({setLastChangeSequenceNumber(t){e.lastChangeSequenceNumber=t}}))).actions((e=>({updateLastChangeSequenceNumber:l.flow((function*(){const{baseURL:t}=e,n=new URL("changes",t),r=new URLSearchParams({limit:"1"});n.search=r.toString();const a=n.toString(),i=e.getFetcher({locationType:"UriLocation",uri:a}),o=yield i(a,{method:"GET"});if(!o.ok){const e=yield Yd(o,"Error when fetching server LastChangeSequence");throw new Error(e)}const s=yield o.json();e.setLastChangeSequenceNumber(s.length>0?s[0].sequence:0)})),getMissingChanges:l.flow((function*(){const{session:t}=l.getRoot(e),{changeManager:n}=t.apolloDataStore;if(!e.lastChangeSequenceNumber)throw new Error("No LastChangeSequence stored in session. Please, refresh you browser to get last updates from server");const{baseURL:r,lastChangeSequenceNumber:a}=e,i=new URL("changes",r),o=new URLSearchParams({since:String(a),sort:"1"});i.search=o.toString();const s=i.toString(),c=e.getFetcher({locationType:"UriLocation",uri:s}),u=yield c(s,{method:"GET"});if(!u.ok)return void console.error(`Error when fetching the last updates to recover socket connection — ${u.status}`);const d=yield u.json();for(const e of d){const t=z.Change.fromJSON(e);n.submit(t,{submitToBackend:!1})}}))}))).volatile((e=>{const{origin:t,pathname:n}=new URL("socket.io/",e.baseURL);return{socket:ru(t,{path:n})}})).actions((e=>({addSocketListeners(){const{session:t}=l.getRoot(e),{notify:n}=t,r=e.retrieveToken();if(!r)throw new Error("No Token found");const{socket:a}=e,{addCheckResult:i,changeManager:o,deleteCheckResult:s}=t.apolloDataStore;a.on("connect",(async()=>{await e.getMissingChanges()})),a.on("connect_error",(e=>{console.error(e),n("Could not connect to the Apollo server.","error")})),a.on("COMMON",(e=>{if("checkResult"in e)return void(e.deleted?s(e.checkResult._id.toString()):i(e.checkResult));if(sessionStorage.setItem("LastChangeSequence",String(e.changeSequence)),e.userSessionId===r)return;const t=z.Change.fromJSON(e.changeInfo);o.submit(t,{submitToBackend:!1})})),a.on("USER_LOCATION",(e=>{const{channel:n,locations:a,userName:i,userSessionId:o}=e,s=nr.getDecodedToken(r),l=nr.makeUserSessionId(s);"USER_LOCATION"===n&&o!==l&&t.addOrUpdateCollaborator({name:i,id:o,locations:a})})),a.on("REQUEST_INFORMATION",(e=>{const{channel:n,reqType:a,userSessionId:i}=e;"REQUEST_INFORMATION"===n&&i!==r&&"CURRENT_LOCATION"===a&&t.broadcastLocations()}))}}))).actions((e=>({postUserLocation:(t=>{let n;return t=>{clearTimeout(n),n=setTimeout((()=>{!async function(t){const{baseURL:n}=e,r=new URL("users/userLocation",n).href,a=new URLSearchParams(JSON.stringify(t)),i=e.getFetcher({locationType:"UriLocation",uri:r});try{if(!(await i(r,{method:"POST",body:a})).ok)throw new Error("ignore")}catch{console.error("Broadcasting user location failed")}}(t)}),300)}})()}))).actions((e=>({initialize:l.flow((function*(t){if("admin"===t){const t=l.getRoot(e);n.isAbstractMenuManager(t)&&function(e){e.appendToMenu("Apollo",{label:"Add Assembly",onClick:e=>{e.queueDialog((t=>[sf,{session:e,handleClose:()=>{t()},changeManager:e.apolloDataStore.changeManager}]))}}),e.appendToMenu("Apollo",{label:"Delete Assembly",onClick:e=>{e.queueDialog((t=>[fh,{session:e,handleClose:()=>{t()},changeManager:e.apolloDataStore.changeManager}]))}}),e.appendToMenu("Apollo",{label:"Import Features",onClick:e=>{e.queueDialog((t=>[gh,{session:e,handleClose:()=>{t()},changeManager:e.apolloDataStore.changeManager}]))}}),e.appendToMenu("Apollo",{label:"Add reference sequence aliases",onClick:e=>{e.queueDialog((t=>[zh,{session:e,handleClose:()=>{t()},changeManager:e.apolloDataStore.changeManager}]))}}),e.appendToMenu("Apollo",{label:"Manage Users",onClick:e=>{e.queueDialog((t=>[xh,{session:e,handleClose:()=>{t()},changeManager:e.apolloDataStore.changeManager}]))}}),e.appendToMenu("Apollo",{label:"Undo",onClick:e=>{const{apolloDataStore:t}=e,{notify:n}=e;t.changeManager.recentChanges.length>0?t.changeManager.revertLastChange():n("No changes to undo","info")}})}(t)}yield e.updateLastChangeSequenceNumber(),e.addSocketListeners();const{baseURL:r}=e,a=new URL("users/locations",r).href,i=e.getFetcher({locationType:"UriLocation",uri:a});yield i(a,{method:"GET"}),window.addEventListener("beforeunload",(()=>{e.postUserLocation([])})),document.addEventListener("visibilitychange",(()=>{if("hidden"===document.visibilityState&&e.postUserLocation([]),"visible"===document.visibilityState){const{session:t}=l.getRoot(e);t.broadcastLocations()}}))}))}))).actions((e=>({afterAttach(){e.setRole(),s.autorun((async t=>{if(tp)return;const{session:n}=l.getRoot(e);n&&e.role&&(await e.initialize(e.role),t.dispose())}),{name:"ApolloInternetAccount"})}})));var rp={};function ap(e){return"uniqueId"in e&&"object"!==Z(e.data)}Object.defineProperty(rp,"__esModule",{value:!0}),rp.isFeature=function(e){return"object"===Z(e)&&null!==e&&"function"==typeof e.get&&"function"==typeof e.id};var ip=function(){function e(t){var n,r=this;ee(this,e),ap(t)?this.data=t:(this.data=t.data||{},this.parentHandle=t.parent);var a=ap(t)?t.uniqueId:t.id;if(null==a)throw new Error("SimpleFeature requires a unique `id` or `data.uniqueId` attribute");if(this.uniqueId=String(a),!(this.data.aliases||this.data.end-this.data.start>=0))throw new Error("invalid feature data, end less than start. end: ".concat(this.data.end," start: ").concat(this.data.start));this.data.subfeatures&&(this.subfeatures=null===(n=this.data.subfeatures)||void 0===n?void 0:n.map((function(t,n){return"function"!=typeof t.get?new e({id:t.uniqueId||"".concat(a,"-").concat(n),data:K({strand:r.data.strand},t),parent:r}):t})))}return ne(e,[{key:"get",value:function(e){return"subfeatures"===e?this.subfeatures:"parent"===e?this.parent():this.data[e]}},{key:"set",value:function(e,t){this.data[e]=t}},{key:"tags",value:function(){return Object.keys(this.data)}},{key:"id",value:function(){return this.uniqueId}},{key:"parent",value:function(){return this.parentHandle}},{key:"children",value:function(){return this.get("subfeatures")}},{key:"toJSON",value:function(){var e=K(K({},this.data),{},{uniqueId:this.id()}),t=this.parent();t&&(e.parentId=t.id());var n=this.children();return n&&(e.subfeatures=n.map((function(e){return e.toJSON()}))),e}}],[{key:"fromJSON",value:function(t){return new e(K({},t))}}]),e}(),op=rp.default=ip;function sp(e){return"object"==typeof e&&null!==e&&"apollo"in e&&!0===e.apollo}const lp="undefined"==typeof sessionStorage;class cp extends x.BaseSequenceAdapter{regions;async getRefNames(e){return(await this.getRegions(e)).map((e=>e.refName))}async getRegions(e){if(this.regions)return this.regions;const t=r.readConfObject(this.config,"assemblyId");if(!lp){const e=this.pluginManager?.rootModel?.session?.apolloDataStore;if(!e)throw new Error("No Apollo data store found");const n=e.getBackendDriver(t),r=await n.getRegions(t);return this.regions=r,r}const n=await new Promise(((n,r)=>{const a=setTimeout((()=>{r("timeout")}),2e4),i=Mh(),o=e=>{const{data:t}=e;sp(t)&&t.messageId===i&&(clearTimeout(a),removeEventListener("message",o),n(t.regions))};addEventListener("message",o,e),globalThis.rpcServer.emit("apollo",{apollo:!0,method:"getRegions",assembly:t,messageId:i})}));return this.regions=n,n}getFeatures(e,t){const{end:n,refName:a,start:i}=e,o=r.readConfObject(this.config,"assemblyId"),s={...e,assemblyName:o};return S.ObservableCreate((async e=>{if(!lp){const t=this.pluginManager?.rootModel?.session?.apolloDataStore;if(!t)return void e.error("No Apollo data store found");const r=t.getBackendDriver(o),{seq:l}=await r.getSequence(s);return e.next(new op({id:`${a} ${i}-${n}`,data:{refName:a,start:i,end:n,seq:l}})),void e.complete()}const r=await new Promise(((e,n)=>{const r=setTimeout((()=>{n("timeout")}),2e4),a=Mh(),i=t=>{const{data:n}=t;sp(n)&&n.messageId===a&&(clearTimeout(r),removeEventListener("message",i),e(n.sequence))};addEventListener("message",i,t),globalThis.rpcServer.emit("apollo",{apollo:!0,method:"getSequence",region:s,messageId:a})}));e.next(new op({id:`${a} ${i}-${n}`,data:{refName:a,start:i,end:n,seq:r}})),e.complete()}))}freeResources(){}}var up=r.ConfigurationSchema("ApolloSequenceAdapter",{assemblyId:{type:"string",defaultValue:""}},{explicitlyTyped:!0});function dp(e,t,n,r,a,i){const o=r/a;e.fillStyle="black",e.fillRect(t,n,o,i),o>2&&(e.clearRect(t+1,n+1,o-2,i-2),e.fillStyle="rgba(255,255,255,0.75)",e.fillRect(t+1,n+1,o-2,i-2))}var fp=p.observer((function(e){const[t,a]=f.useState(),[i,o]=f.useState(),u=f.useRef(null),d=f.useRef(null),h=f.useRef(null),[p,m]=f.useState(!1),[g,_]=f.useState(!0),[y,v]=f.useState(),[b,w]=f.useState(!1),[x,S]=f.useState([]),{bpPerPx:k,displayModel:E,regions:A}=e,{session:C}=E,{collaborators:R}=C;f.useEffect((()=>s.autorun((()=>{S(s.toJS(R))}))),[]);const[N]=A,I=(N.end-N.start)/k,{apolloFeatureUnderMouse:T,apolloRowHeight:O,apolloRowUnderMouse:F,changeManager:D,codonLayout:M,featureLayout:P,features:q,featuresHeight:j,getAssemblyId:B,selectedFeature:U,setApolloFeatureUnderMouse:z,setApolloRowUnderMouse:G,setSelectedFeature:H,showIntronLines:$,showStartCodons:J,showStopCodons:V}=E,W=[...q.values()].map((e=>[...e.values()].map((e=>l.getSnapshot(e))))),K=f.useMemo((()=>{const{internetAccounts:e}=l.getRoot(C),{assemblyName:t}=N,{assemblyManager:a}=n.getSession(E),i=a.get(t);if(!i)throw new Error(`No assembly found with name ${t}`);const{internetAccountConfigId:o}=r.getConf(i,["sequence","metadata"]),s=e.find((e=>r.getConf(e,"internetAccountId")===o));if(!s)throw new Error(`No InternetAccount found with config id ${o}`);return s}),[E,N,C]),{role:Y}=K;return f.useEffect((()=>{Y?.includes("admin")&&m(!0),(Y?.includes("admin")??Y?.includes("user"))&&_(!1)}),[Y]),f.useEffect((()=>{const e=u.current;if(!e)return;const t=e.getContext("2d");if(!t)return;const n={};t.clearRect(0,0,I,j);for(const[e,r]of P)for(const[a,i]of r){const r=N.reversed?N.end-i.max:i.min-N.start-1,o=i.max-N.start-1,s=r/k,l=o/k;dp(t,s,e*O,o-r,k,O);const c=e*O+O/2;n[a]||(n[a]=[]),n[a].some((e=>e[0]===s&&e[1]===c))||n[a].push([s,c]),n[a].some((e=>e[0]===l&&e[1]===c))||n[a].push([l,c])}if($){let e=-Math.floor(Object.keys(n).length/2);for(const r in n){t.strokeStyle=`hsl(${e*(180*(3-Math.sqrt(5)))+60},100%,50%)`;const a=n[r].sort(((e,t)=>e[0]-t[0]));let[i]=a;for(const[n,r]of a.entries())if(0!==n){if(n%2==0){const n=[(r[0]-i[0])/2+i[0],Math.max(1,Math.min(i[1],r[1])-O/2+2*e)];t.beginPath(),t.moveTo(i[0],i[1]+2*e),t.lineTo(...n),t.stroke(),t.moveTo(...n),t.lineTo(r[0],r[1]+2*e),t.stroke()}i=r}e+=1}}}),[$,N,k,N.start,N.end,N.reversed,I,P,j,q,O,W]),f.useEffect((()=>{const e=h.current;if(!e)return;const t=e.getContext("2d");if(t){t.clearRect(0,0,I,j);for(const[e,{starts:n,stops:r}]of M){const a=k;for(const r of n){const n=r/a;N.start/a<=n&&n<=N.end/a&&(t.fillStyle="rgba(255,0,255,1)",J?t.fillRect(Math.round(n-.5-N.start/a),e*O,1,O):t.clearRect(Math.round(n-.5-N.start/a),e*O,1,O))}for(const n of r){const r=n/a;N.start/a<=r&&r<=N.end/a&&(t.fillStyle="black",V?t.fillRect(Math.round(r-.5-N.start/a),e*O,1,O):t.clearRect(Math.round(r-.5-N.start/a),e*O,1,O))}}}}),[J,V,M,I,j,k,O,N,N.start,N.end]),f.useEffect((()=>{const e=d.current;if(!e)return;const t=e.getContext("2d");if(t){t.clearRect(0,0,I,j);for(const e of x){const{locations:n}=e;if(0===n.length)return;for(const r of n){const{end:n,start:a}=r,i=(N.reversed?N.end-a:a-N.start)/k,o=(n-a)/k;t.fillStyle="rgba(0,255,0,.2)",t.fillRect(i,1,o,100),t.fillStyle="black",t.fillText(e.name,i+1,11,o-2)}}}}),[T,F,k,j,I,N,N.start,N.end,N.reversed,y,O,x]),L.default.createElement("div",{style:{position:"relative",width:I,height:j}},L.default.createElement(c.Menu,{open:Boolean(i),anchorReference:"anchorPosition",anchorPosition:t?{left:t[0],top:t[1]}:void 0,"data-testid":"base_linear_display_context_menu",onClose:()=>{o(void 0)}},L.default.createElement(c.MenuItem,{disabled:g,key:1,value:1,onClick:()=>{if(!i)return;const e=B(N.assemblyName);C.queueDialog((t=>[lh,{session:C,handleClose:()=>{t(),o(void 0)},changeManager:D,sourceFeature:i,sourceAssemblyId:e,internetAccount:K}]))}},"Add child feature"),L.default.createElement(c.MenuItem,{disabled:g,key:2,value:2,onClick:()=>{if(!i)return;const e=B(N.assemblyName);C.queueDialog((t=>[dh,{session:C,handleClose:()=>{t(),o(void 0)},changeManager:D,sourceFeature:i,sourceAssemblyId:e}]))}},"Copy features and annotations"),L.default.createElement(c.MenuItem,{disabled:!p,key:3,value:3,onClick:()=>{if(!i)return;const e=B(N.assemblyName);C.queueDialog((t=>[hh,{session:C,handleClose:()=>{t(),o(void 0)},changeManager:D,sourceFeature:i,sourceAssemblyId:e,selectedFeature:U,setSelectedFeature:H}]))}},"Delete feature")),L.default.createElement("canvas",{ref:u,width:I,height:j,style:{position:"absolute",left:0,top:0}}),L.default.createElement("canvas",{ref:d,width:I,height:j,onMouseLeave:function(){z(),G()},onMouseUp:async function(){if(b){if(y){const e=B(N.assemblyName),{bp:t,edge:n,feature:r}=y;let a;if("end"===n){const n=r._id,i=r.max,o=Math.round(t);a=new nr.LocationEndChange({typeName:"LocationEndChange",changedIds:[n],featureId:n,oldEnd:i,newEnd:o,assembly:e})}else{const n=r._id,i=r.min,o=Math.round(t);a=new nr.LocationStartChange({typeName:"LocationStartChange",changedIds:[n],featureId:n,oldStart:i,newStart:o,assembly:e})}await D.submit(a)}}else T&&H(T);v(void 0),w(!1)},onContextMenu:function(e){e.preventDefault(),o(T),a([e.pageX,e.pageY])},style:{position:"absolute",left:0,top:0}}),L.default.createElement("canvas",{ref:h,width:I,height:6*O,style:{position:"absolute",left:0,top:0}}))})),hp=r.ConfigurationSchema("ApolloSixFrameRenderer",{},{explicitlyTyped:!0});class pp extends a.RendererType{async renderInClient(e,t){return this.render(t)}async freeResourcesInClient(e,t){return 0}}var mp={};Object.defineProperty(mp,"__esModule",{value:!0}),mp.RefSequenceResult=void 0;var gp=function(){function e(t){ee(this,e),this.label=t.label,this.locString=t.locString,this.renderingComponent=t.renderingComponent,this.displayString=t.displayString,this.matchedAttribute=t.matchedAttribute,this.matchedObject=t.matchedObject,this.textSearchAdapter=t.textSearchAdapter,this.relevance=t.relevance,this.trackId=t.trackId,this.score=t.score||1,this.results=t.results||[]}return ne(e,[{key:"getLabel",value:function(){return this.label}},{key:"getDisplayString",value:function(){return this.displayString||this.label}},{key:"getRenderingComponent",value:function(){return this.renderingComponent}},{key:"getTrackId",value:function(){return this.trackId}},{key:"getScore",value:function(){return this.score}},{key:"updateScore",value:function(e){return this.score=e,this.score}},{key:"getId",value:function(){return"".concat(this.getLabel(),"-").concat(this.getLocation(),"-").concat(this.getTrackId())}},{key:"hasLocation",value:function(){return!!this.locString}},{key:"getLocation",value:function(){return this.locString}},{key:"getComboResults",value:function(){return this.results}}]),e}(),_p=mp.default=gp;mp.RefSequenceResult=function(e){ae(n,e);var t=de(n);function n(e){var r,a;return ee(this,n),(r=t.call(this,e)).refName=null!==(a=e.refName)&&void 0!==a?a:"",r}return ne(n,[{key:"getLocation",value:function(){return this.refName}}]),n}(gp);class yp extends x.BaseAdapter{get baseURL(){return r.readConfObject(this.config,"baseURL").uri}get trackId(){return r.readConfObject(this.config,"trackId")}get assemblyNames(){return r.readConfObject(this.config,"assemblyNames")}mapBaseResult(e,t,n){return e.map((e=>{const r=t.getCanonicalRefName(e.refSeq);return new _p({label:n,trackId:this.trackId,locString:`${r}:${e.min+1}..${e.max}`})}))}async searchIndex(e){const t=e.queryString,n=[],r=this.pluginManager?.rootModel?.session;if(!r)return n;const{apolloDataStore:a}=r,{assemblyManager:i}=r;for(const r of this.assemblyNames){const o=a.getBackendDriver(r),s=i.get(r);if(!o||!s)continue;const l=await o.searchFeatures(e.queryString,[r]);n.push(...this.mapBaseResult(l,s,t))}return n}freeResources(){}}var vp=r.ConfigurationSchema("ApolloTextSearchAdapter",{assemblyNames:{type:"stringArray",defaultValue:[],description:"List of assemblies covered by text search adapter"},trackId:{type:"string",defaultValue:""},baseURL:{type:"fileLocation",defaultValue:{uri:"",locationType:"UriLocation"}}},{explicitlyTyped:!0,explicitIdentifier:"textSearchAdapterId"});const bp=r.ConfigurationSchema("ApolloPlugin",{ontologies:l.types.array(rh)});function wp(e){if("LinearPileupDisplay"!==e.name)return e;const{stateModel:t}=e,r=t.views((e=>({getFirstRegion:()=>n.getContainingView(e).dynamicBlocks.contentBlocks[0],getAssembly(){const t=e.getFirstRegion(),r=n.getSession(e),{assemblyManager:a}=r,{assemblyName:i}=t,o=a.get(i);if(!o)throw new Error(`Could not find assembly named ${i}`);return o},getRefSeqId(t){const n=e.getFirstRegion(),{refName:r}=n,{refNameAliases:a}=t;if(!a)throw new Error(`Could not find aliases for ${t.name}`);const i=[...Object.entries(a)].filter((([e,t])=>e!==t)).map((([e,t])=>({_id:e,name:t??""}))),o=i.find((e=>e.name===r))?._id;if(!o)throw new Error(`Could not find refSeqId named ${r}`);return o},createFeature(){const t=e.contextMenuFeature,n=e.getAssembly(),r=e.getRefSeqId(n),a=(t.get("CIGAR").toUpperCase().match(/\d+\D/g)??[]).map((e=>[(e.match(/\D/)??[])[0],Number.parseInt(e,10)]));let i=0;const o=t.get("start");let s;const l=[];for(const[e,t]of a)"M"===e||"="===e?void 0===s&&(s=i+o):"N"===e&&void 0!==s&&(l.push({start:s,end:i+s}),s=void 0),"I"!==e&&(i+=t);void 0!==s&&l.push({start:s,end:i+o});const c={_id:Wn().toHexString(),refSeq:r,min:t.get("start"),max:t.get("end"),type:"mRNA",strand:t.get("strand")};if(0===l.length)return c;c.children={};const[u]=l,d={_id:Wn().toHexString(),refSeq:r,min:u.start,max:u.end,type:"CDS",strand:t.get("strand")};if(c.children[d._id]=d,1===l.length){const e={_id:Wn().toHexString(),refSeq:r,min:u.start,max:u.end,type:"exon",strand:t.get("strand")};return c.children[e._id]=e,c}for(const e of l){d.min=Math.min(d.min,e.start),d.max=Math.max(d.max,e.end);const{end:n,start:a}=e,i={_id:Wn().toHexString(),refSeq:r,min:a,max:n,type:"exon",strand:t.get("strand")};c.children[i._id]=i}return c},async onPileupFeatureContext(){const t=e.createFeature(),r=e.getAssembly(),a=new nr.AddFeatureChange({changedIds:[t._id],typeName:"AddFeatureChange",assembly:r.name,addedFeature:t}),i=n.getSession(e);await i.apolloDataStore.changeManager.submit(a),i.notify("Annotation added successfully","success")}}))).views((e=>{const t=e.contextMenuItems;return{contextMenuItems:()=>e.contextMenuFeature?[...t(),{label:"Create Apollo annotation",icon:Fl,onClick:e.onPileupFeatureContext}]:t()}}));return e.stateModel=r,e}const xp=p.observer((function({onChangeCommitted:e,value:t,...n}){const[r,a]=f.useState(String(t)),[i,o]=f.useState(!1),[s,l]=f.useState(null);return f.useEffect((()=>{a(String(t))}),[t]),f.useEffect((()=>{i&&(s?.blur(),o(!1))}),[i,s]),L.default.createElement(c.TextField,{...n,type:"text",onChange:function(e){a(e.target.value)},value:r,onKeyDown:e=>{"Enter"===e.key?s?.blur():"Escape"===e.key&&(a(String(t)),o(!0))},onBlur:()=>{r!==String(t)&&e(r)},inputRef:e=>{l(e)}})})),Sp=new Map([["Gene Ontology",e=>L.default.createElement(Rh,{...e,ontologyName:"Gene Ontology"})],["Sequence Ontology",e=>L.default.createElement(Rh,{...e,ontologyName:"Sequence Ontology"})]]),kp=["ID","Name","Alias","Target","Gap","Derives_from","Note","Dbxref","Ontology","Is_Circular"],Ep=m.makeStyles()((e=>({newAttributePaper:{padding:e.spacing(2)},attributeName:{background:e.palette.secondary.main,color:e.palette.secondary.contrastText,padding:e.spacing(1)}})));function Ap(e){const{onChange:t,value:n}=e;return L.default.createElement(xp,{value:n,onChangeCommitted:e=>{t(e.split(","))},variant:"outlined",fullWidth:!0,helperText:"Separate multiple values for the attribute with commas"})}const Cp=p.observer((function({assembly:e,editable:t,feature:n,session:r}){const[a,i]=f.useState(""),[o,s]=f.useState(!1),{classes:u}=Ep(),[d,h]=f.useState(""),p=Object.fromEntries([...n.attributes.entries()].map((([e,t])=>{if(e.startsWith("gff_")){const n=e.slice(4);return[n.charAt(0).toUpperCase()+n.slice(1),l.getSnapshot(t)]}return"_id"===e?["ID",l.getSnapshot(t)]:[e,l.getSnapshot(t)]}))),{notify:m}=r,{changeManager:g}=r.apolloDataStore;async function _(t,r){i("");const a={};if(p){const e=Object.entries({...p,[t]:r});for(const[t,n]of e)if(n&&"parent"!==t.toLowerCase())if([...Sp.keys()].includes(t))a[t]=n;else switch(t){case"ID":a._id=n;break;case"Name":a.gff_name=n;break;case"Alias":a.gff_alias=n;break;case"Target":a.gff_target=n;break;case"Gap":a.gff_gap=n;break;case"Derives_from":a.gff_derives_from=n;break;case"Note":a.gff_note=n;break;case"Dbxref":a.gff_dbxref=n;break;case"Ontology_term":a.gff_ontology_term=n;break;case"Is_circular":a.gff_is_circular=n;break;default:a[t.toLowerCase()]=n}}const o=new nr.FeatureAttributeChange({changedIds:[n._id],typeName:"FeatureAttributeChange",assembly:e,featureId:n._id,attributes:a});await g.submit(o),m("Feature attributes modified successfully","success")}return L.default.createElement(L.default.Fragment,null,L.default.createElement(c.Typography,{style:{display:"inline",marginLeft:"15px"},variant:"h5"},"Attributes"),L.default.createElement(c.Grid,{container:!0,direction:"column",spacing:1},Object.entries(p).map((([e,n])=>{if(""===e)return null;const a=Sp.get(e)??Ap;return L.default.createElement(c.Grid,{container:!0,item:!0,spacing:3,alignItems:"center",key:e},L.default.createElement(c.Grid,{item:!0,xs:"auto"},L.default.createElement(c.Paper,{variant:"outlined",className:u.attributeName},L.default.createElement(c.Typography,null,e))),L.default.createElement(c.Grid,{item:!0,flexGrow:1},L.default.createElement(a,{session:r,value:n,onChange:t=>_(e,t)})),L.default.createElement(c.Grid,{item:!0,xs:1},L.default.createElement(c.IconButton,{"aria-label":"delete",size:"medium",disabled:!t,onClick:()=>_(e)},L.default.createElement(wh,{fontSize:"medium",key:e}))))})),L.default.createElement(c.Grid,{item:!0},L.default.createElement(c.Button,{color:"primary",variant:"contained",disabled:o||!t,onClick:()=>{s(!0)}},"Add new")),o?L.default.createElement(c.Grid,{item:!0},L.default.createElement(c.Paper,{elevation:8,className:u.newAttributePaper},L.default.createElement(c.Grid,{container:!0,direction:"column"},L.default.createElement(c.Grid,{item:!0},L.default.createElement(c.FormControl,null,L.default.createElement(c.FormLabel,{id:"attribute-radio-button-group"},"Select attribute type"),L.default.createElement(c.RadioGroup,{"aria-labelledby":"demo-radio-buttons-group-label",defaultValue:"custom",name:"radio-buttons-group",onChange:function(e,t){"custom"===t?h(""):Sp.has(t)?h(t):i("Unknown attribute type")}},L.default.createElement(c.FormControlLabel,{value:"custom",control:L.default.createElement(c.Radio,null),disableTypography:!0,label:L.default.createElement(c.Grid,{container:!0,spacing:1,alignItems:"center"},L.default.createElement(c.Grid,{item:!0},L.default.createElement(c.Typography,null,"Custom")),L.default.createElement(c.Grid,{item:!0},L.default.createElement(c.TextField,{label:"Custom attribute key",variant:"outlined",value:Sp.has(d)?"":d,disabled:Sp.has(d),onChange:e=>{h(e.target.value)}})))}),[...Sp.keys()].map((e=>L.default.createElement(c.FormControlLabel,{key:e,value:e,control:L.default.createElement(c.Radio,null),label:e})))))),L.default.createElement(c.Grid,{item:!0},L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{key:"addButton",color:"primary",variant:"contained",onClick:function(){i(""),0!==d.trim().length?"Parent"!==d?d in p?i(`Attribute "${d}" already exists`):!/^[A-Z]/.test(d)||kp.includes(d)||[...Sp.keys()].includes(d)?_(d,[]):i(`Key cannot starts with uppercase letter unless key is one of these: ${kp.join(", ")}`):i('"Parent" -key is handled internally and it cannot be modified manually'):i("Attribute key is mandatory")},disabled:!d},"Add"),L.default.createElement(c.Button,{key:"cancelAddButton",variant:"outlined",type:"submit",onClick:()=>{s(!1),h(""),i("")}},"Cancel")))))):null),a?L.default.createElement(c.Typography,{color:"error"},a):null)})),Rp=p.observer((function({onChangeCommitted:e,value:t,...n}){const[r,a]=f.useState(String(t)),[i,o]=f.useState(!1),[s,l]=f.useState(null);f.useEffect((()=>{a(String(t))}),[t]),f.useEffect((()=>{i&&(s?.blur(),o(!1))}),[i,s]);const u=Number.isNaN(Number(r));return L.default.createElement(c.TextField,{...n,type:"text",onChange:function(e){a(e.target.value)},value:r,onKeyDown:e=>{"Enter"===e.key?s?.blur():"Escape"===e.key&&(a(String(t)),o(!0))},onBlur:()=>{const n=Number(r);r!==String(t)&&(Number.isNaN(n)?a(String(t)):e(n))},inputRef:e=>{l(e)},error:u,helperText:u?"Not a valid number":void 0})})),Np=p.observer((function({assembly:e,feature:t,session:n}){const[r,a]=f.useState(""),[i,o]=f.useState(""),{_id:s,assemblyId:l,max:u,min:d,strand:h,type:p}=t,m=e=>{n.notify(e.message,"error")},{changeManager:g}=n.apolloDataStore;function _(t){const{value:n}=t.target,r=n?Number(n):void 0,a=new nr.StrandChange({typeName:"StrandChange",changedIds:[s],featureId:s,oldStrand:h,newStrand:r,assembly:e});return g.submit(a)}return L.default.createElement(L.default.Fragment,null,L.default.createElement(c.Typography,{variant:"h5"},"Basic information"),L.default.createElement(Rp,{margin:"dense",id:"start",label:"Start",fullWidth:!0,variant:"outlined",value:d+1,onChangeCommitted:function(t){t--;const n=new nr.LocationStartChange({typeName:"LocationStartChange",changedIds:[s],featureId:s,oldStart:d,newStart:t,assembly:e});return g.submit(n)}}),L.default.createElement(Rp,{margin:"dense",id:"end",label:"End",fullWidth:!0,variant:"outlined",value:u,onChangeCommitted:function(t){const n=new nr.LocationEndChange({typeName:"LocationEndChange",changedIds:[s],featureId:s,oldEnd:u,newEnd:t,assembly:e});return g.submit(n)}}),L.default.createElement(sh,{session:n,ontologyName:"Sequence Ontology",value:p,filterTerms:ah,fetchValidTerms:async function(e,t,n){const r=await oh(e,t);if(r)return r;o(`Type "${e?.type}" does not have any children in the ontology`)}.bind(null,t),renderInput:e=>L.default.createElement(c.TextField,{...e,label:"Type",variant:"outlined",fullWidth:!0,error:Boolean(i),helperText:i}),onChange:(e,t)=>{t&&function(e){a("");const t=new nr.TypeChange({typeName:"TypeChange",changedIds:[s],featureId:s,oldType:p,newType:e,assembly:l});return g.submit(t)}(t).catch(m)}}),L.default.createElement("label",null,L.default.createElement("input",{type:"radio",value:"1",checked:1===h,onChange:_}),"Positive Strand (+)"),L.default.createElement("label",null,L.default.createElement("input",{type:"radio",value:"-1",checked:-1===h,onChange:_}),"Negative Strand (-)"),L.default.createElement("label",null,L.default.createElement("input",{type:"radio",value:"",checked:void 0===h,onChange:_}),"No Strand Information"),r?L.default.createElement(c.Typography,{color:"error"},r):null)})),Ip=m.makeStyles()({sequence:{width:"100%",resize:"vertical"}}),Tp=p.observer((function({assembly:e,feature:t,refName:n,session:r}){const a=r.apolloDataStore.assemblies.get(e),[i,o]=f.useState(!1),{classes:s}=Ip();if(!t||!a)return null;const l=a.getByRefName(n);if(!l)return null;const{max:u,min:d}=t;let h="";return i&&(h=l.getSequence(d,u),h?h=function(e,t,n,r,a){return`>${t}:${n+1}–${r}\n${e}`}(h,n,d,u):r.apolloDataStore.loadRefSeq([{assemblyName:e,refName:n,start:d,end:u}])),L.default.createElement(L.default.Fragment,null,L.default.createElement(c.Typography,{variant:"h5"},"Sequence"),L.default.createElement(c.Button,{variant:"contained",onClick:()=>{o(!i)}},i?"Hide sequence":"Show sequence"),L.default.createElement("div",null,i&&L.default.createElement("textarea",{readOnly:!0,rows:20,className:s.sequence,value:h})))})),Op=m.makeStyles()((e=>({root:{padding:e.spacing(2)}}))),Fp=p.observer((function(e){const{model:t}=e,{assembly:r,feature:a,refName:i}=t,o=n.getSession(t),s=o.apolloDataStore.assemblies.get(r),{classes:l}=Op();if(!a||!s)return null;const c=s.getByRefName(i);if(!c)return null;const{max:u,min:d}=a;return c.getSequence(d,u)||o.apolloDataStore.loadRefSeq([{assemblyName:r,refName:i,start:d,end:u}]),L.default.createElement("div",{className:l.root},L.default.createElement(Np,{feature:a,session:o,assembly:s._id}),L.default.createElement("hr",null),L.default.createElement(Cp,{feature:a,session:o,assembly:s._id,editable:!0}),L.default.createElement("hr",null),L.default.createElement(Tp,{feature:a,session:o,assembly:s._id,refName:i}))}));var Lp={},Dp={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.AnnotationFeatureModel=void 0;var t=R.default,n=T.default,r=Lp,a=n.types.late((function(){return e.AnnotationFeatureModel}));e.AnnotationFeatureModel=n.types.model("AnnotationFeatureModel",{_id:n.types.identifier,refSeq:n.types.string,type:n.types.string,min:n.types.number,max:n.types.number,strand:n.types.maybe(n.types.union(n.types.literal(1),n.types.literal(-1))),children:n.types.maybe(n.types.map(a)),attributes:n.types.map(n.types.array(n.types.string))}).views((function(e){return{get length(){return e.max-e.min},get featureId(){return e.attributes.get("id")},get minWithChildren(){var t=e.min,n=e.children;if(!n)return t;var r,a=we(n);try{for(a.s();!(r=a.n()).done;){var i=he(r.value,2);t=Math.min(t,i[1].min)}}catch(e){a.e(e)}finally{a.f()}return t},get maxWithChildren(){var t=e.max,n=e.children;if(!n)return t;var r,a=we(n);try{for(a.s();!(r=a.n()).done;){var i=he(r.value,2);t=Math.max(t,i[1].max)}}catch(e){a.e(e)}finally{a.f()}return t},hasDescendant:function(t){var n=e.children;if(!n)return!1;var r,a=we(n);try{for(a.s();!(r=a.n()).done;){var i=he(r.value,2);if(i[0]===t)return!0;if(i[1].hasDescendant(t))return!0}}catch(e){a.e(e)}finally{a.f()}return!1},get cdsLocations(){if("mRNA"!==e.type)throw new Error('Only features of type "mRNA" or equivalent can calculate CDS locations');var n=e.children;if(!n)throw new Error("no CDS or exons in mRNA");var r=me(n.values()).filter((function(e){return"CDS"===e.type}));if(0===r.length)throw new Error("no CDS in mRNA");var a,i=[],o=we(r);try{var s=function(){var r,o=a.value,s=o.max,l=o.min,c=[],u=we(n);try{for(u.s();!(r=u.n()).done;){var d=he(r.value,2)[1];if("exon"===d.type){var f=he((0,t.intersection2)(l,s,d.min,d.max),2),h=f[0],p=f[1];void 0!==h&&void 0!==p&&c.push({min:h,max:p})}}}catch(e){u.e(e)}finally{u.f()}c.sort((function(e,t){return e.min-t.min})),-1===e.strand&&c.reverse();var m=0,g=c.map((function(e){var t=m;return m=(3-(e.max-e.min-t+3)%3)%3,K(K({},e),{},{phase:t})}));i.push(g)};for(o.s();!(a=o.n()).done;)s()}catch(e){o.e(e)}finally{o.f()}return i}}})).actions((function(e){return{setAttributes:function(t){e.attributes.clear();var n,r=we(t.entries());try{for(r.s();!(n=r.n()).done;){var a=he(n.value,2);e.attributes.set(a[0],a[1])}}catch(e){r.e(e)}finally{r.f()}},setAttribute:function(t,n){e.attributes.merge(re({},t,n))},setType:function(t){e.type=t},setRefSeq:function(t){e.refSeq=t},setMin:function(t){if(t>e.max)throw new Error('Min "'.concat(t,'" is greater than max "').concat(e.max,'"'));e.min!==t&&(e.min=t)},setMax:function(t){if(t<e.min)throw new Error('Max "'.concat(t,'" is less than Min "').concat(e.min,'"'));e.max!==t&&(e.max=t)},setStrand:function(t){e.strand=t},addChild:function(t){if(e.children&&e.children.size>0){var r=(0,n.getSnapshot)(e.children);e.children.clear();var a,i=we(Object.entries(K(K({},r),{},re({},t._id,t))).sort((function(e,t){var n=he(e,2)[1],r=he(t,2);return n.min-r[1].min})));try{for(i.s();!(a=i.n()).done;){var o=he(a.value,2);e.children.put(o[1])}}catch(e){i.e(e)}finally{i.f()}}else{var s;e.children=(0,n.cast)({}),null===(s=e.children)||void 0===s||s.put(t)}},deleteChild:function(t){var n;null===(n=e.children)||void 0===n||n.delete(t)}}})).actions((function(e){return{update:function(t){var r=t.children,a=t.max,i=t.min,o=t.strand;e.setRefSeq(t.refSeq),e.setMin(i),e.setMax(a),e.setStrand(o),r&&(e.children=(0,n.cast)(r))}}})).views((function(t){return{get parent(){var r;try{r=(0,n.getParentOfType)(t,e.AnnotationFeatureModel)}catch(e){}return r},get topLevelFeature(){var r,a=t;do{try{a=r=(0,n.getParentOfType)(a,e.AnnotationFeatureModel)}catch(e){r=void 0}}while(r);return a},get assemblyId(){return(0,n.getParentOfType)(t,r.ApolloAssembly)._id}}}))}(Dp);var Mp={},Pp={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ApolloRefSeq=e.Sequence=void 0;var t=R.default,n=T.default,r=Dp;e.Sequence=n.types.model({start:n.types.number,stop:n.types.number,sequence:n.types.string}),e.ApolloRefSeq=n.types.model("ApolloRefSeq",{_id:n.types.identifier,name:n.types.string,description:"",features:n.types.map(r.AnnotationFeatureModel),sequence:n.types.array(e.Sequence)}).actions((function(e){return{addFeature:function(t){e.features.put(t)},deleteFeature:function(t){return e.features.delete(t)},setDescription:function(t){e.description=t},addSequence:function(t){var n;if(t.sequence.length!==t.stop-t.start)throw new Error("sequence does not match declared length");if(0!==e.sequence.length){var r=e.sequence.map((function(e){return{start:e.start,stop:e.stop,sequence:e.sequence}}));r.push({start:t.start,stop:t.stop,sequence:t.sequence}),r.sort((function(e,t){return e.start-t.start}));var a=r.reduce((function(e,t){var n=e.at(-1);return void 0===n?[t]:(n.stop>=t.start?t.stop>n.stop&&(n.stop=t.stop,n.sequence+=t.sequence.slice(t.stop-n.stop)):e.push(t),e)}),[]);e.sequence.length===a.length&&e.sequence.every((function(e,t){return e.start===a[t].start&&e.stop===a[t].stop}))||(e.sequence.clear(),(n=e.sequence).push.apply(n,me(a)))}else e.sequence.push(t)}}})).views((function(e){return{getSequence:function(n,r){var a,i=we(e.sequence);try{for(i.s();!(a=i.n()).done;){var o=a.value,s=o.sequence,l=o.start;if((0,t.isContainedWithin)(n,r,l,o.stop))return s.slice(n-l,r-l)}}catch(e){i.e(e)}finally{i.f()}return""}}}))}(Pp),Object.defineProperty(Mp,"__esModule",{value:!0}),Mp.ApolloAssembly=void 0;var qp=T.default;Mp.ApolloAssembly=qp.types.model("ApolloAssembly",{_id:qp.types.identifier,refSeqs:qp.types.map(Pp.ApolloRefSeq),comments:qp.types.array(qp.types.string),backendDriverType:qp.types.optional(qp.types.enumeration("backendDriverType",["CollaborationServerDriver","InMemoryFileDriver","DesktopFileDriver"]),"CollaborationServerDriver")}).views((function(e){return{getByRefName:function(t){return me(e.refSeqs.values()).find((function(e){return e.name===t}))}}})).actions((function(e){return{addRefSeq:function(t,n,r){return e.refSeqs.put({_id:t,name:n,description:r})},addComment:function(t){return e.comments.push(t)}}}));var jp={};Object.defineProperty(jp,"__esModule",{value:!0}),jp.CheckResult=void 0;var Bp=T.default;jp.CheckResult=Bp.types.model("CheckResult",{_id:Bp.types.identifier,name:Bp.types.string,ids:Bp.types.array(Bp.types.safeReference(Dp.AnnotationFeatureModel)),refSeq:Bp.types.string,start:Bp.types.number,end:Bp.types.number,ignored:!1,message:Bp.types.string}),function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=et;t.__exportStar(Dp,e),t.__exportStar(Mp,e),t.__exportStar(Pp,e),t.__exportStar(jp,e)}(Lp);const Up=l.types.model("ApolloFeatureDetailsWidget",{id:g.ElementId,type:l.types.literal("ApolloFeatureDetailsWidget"),feature:l.types.maybe(l.types.reference(Lp.AnnotationFeatureModel,{onInvalidated(e){e.parent.setTryReload(e.invalidId),e.removeRef()}})),assembly:l.types.string,refName:l.types.string}).volatile((()=>({tryReload:void 0}))).actions((e=>({setFeature(t){e.feature=t},setTryReload(t){e.tryReload=t}}))).actions((e=>({afterAttach(){l.addDisposer(e,s.autorun((t=>{if(!e.tryReload)return;const r=n.getSession(e),{apolloDataStore:a}=r;if(!a)return;const i=a.getFeature(e.tryReload);i&&(e.setFeature(i),e.setTryReload(),t.dispose())})))}}))),zp=l.types.model("ApolloTranscriptDetails",{id:g.ElementId,type:l.types.literal("ApolloTranscriptDetails"),feature:l.types.maybe(l.types.reference(Lp.AnnotationFeatureModel,{onInvalidated(e){e.parent.setTryReload(e.invalidId),e.removeRef()}})),assembly:l.types.string,refName:l.types.string,changeManager:l.types.frozen()}).volatile((()=>({tryReload:void 0}))).actions((e=>({setFeature(t){e.feature=t},setTryReload(t){e.tryReload=t}}))).actions((e=>({afterAttach(){l.addDisposer(e,s.autorun((t=>{if(!e.tryReload)return;const r=n.getSession(e),{apolloDataStore:a}=r;if(!a)return;const i=a.getFeature(e.tryReload);i&&(e.setFeature(i),e.setTryReload(),t.dispose())})))}})));function Gp(e,t){if(e._id===t)return e;if(e.children)for(const[,n]of e.children){const e=Gp(n,t);if(e)return e}}function Hp(e,t,n){for(const r of e)if(Number(r.min)<=t&&Number(r.max)>=n)return r;return null}function $p(e,t,n){return e.filter((e=>!(e.min===t&&e.max===n)))}const Jp=p.observer((function({assembly:e,feature:t,refName:r,session:a}){const{notify:i}=a,o=a.apolloDataStore.assemblies.get(e),s=o?.getByRefName(r),{changeManager:l}=a.apolloDataStore,u=t;let d=[];const f=e=>{if("exon"===e.type&&d.push({min:e.min+1,max:e.max}),e.children)for(const t of e.children)f(t[1])};f(u);const h=[],p=u.cdsLocations;if(s)for(const e of p)for(const r of e){let e=s.getSequence(Number(r.min)-2,Number(r.min)),a=s.getSequence(Number(r.max),Number(r.max)+2);-1===u.strand&&e&&a&&(e=n.revcom(e),a=n.revcom(a));const i={id:u._id,type:"CDS",strand:Number(u.strand),min:r.min+1,max:r.max,oldMin:r.min+1,oldMax:r.max,startSeq:e,endSeq:a};h.some((e=>e.min===i.min&&e.max===i.max&&e.type===i.type))||h.push(i);const o=Hp(d,r.min+1,r.max);if(o&&Number(o.min)<r.min){if(1===t.strand){const e={id:t._id,type:"five_prime_UTR",strand:Number(t.strand),min:o.min,max:r.min,oldMin:o.min,oldMax:r.min,startSeq:"",endSeq:""};h.push(e)}else{const e={id:t._id,type:"three_prime_UTR",strand:Number(t.strand),min:r.min+1,max:o.min+1,oldMin:r.min+1,oldMax:o.min+1,startSeq:"",endSeq:""};h.push(e)}d=$p(d,o.min,o.max)}if(o&&Number(o.max)>r.max){if(1===t.strand){const e={id:t._id,type:"three_prime_UTR",strand:Number(t.strand),min:r.max+1,max:o.max,oldMin:r.max+1,oldMax:o.max,startSeq:"",endSeq:""};h.push(e)}else{const e={id:t._id,type:"five_prime_UTR",strand:Number(t.strand),min:r.min+1,max:o.max,oldMin:r.min+1,oldMax:o.max,startSeq:"",endSeq:""};h.push(e)}d=$p(d,o.min,o.max)}r.min+1===o?.min&&r.max===o.max&&(d=$p(d,o.min,o.max))}if(d.length>0&&d.forEach((e=>{if(1===u.strand){const t={id:u._id,type:"five_prime_UTR",strand:Number(u.strand),min:e.min+1,max:e.max,oldMin:e.min+1,oldMax:e.max,startSeq:"",endSeq:""};h.push(t)}else{const t={id:u._id,type:"three_prime_UTR",strand:Number(u.strand),min:e.min+1,max:e.max+1,oldMin:e.min+1,oldMax:e.max+1,startSeq:"",endSeq:""};h.push(t)}d=$p(d,e.min,e.max)})),h.sort(((e,t)=>{const n=Number(e.min)-Number(t.min);return 0!==n?n:Number(e.max)-Number(t.max)})),h.length>0){h[0].startSeq="",h[h.length-1].endSeq="";for(let e=0;e<h.length;e++)e>0&&h[e].min===h[e-1].max&&(h[e].startSeq=""),e<h.length-1&&h[e].max===h[e+1].min&&(h[e].endSeq="")}const m=h;return L.default.createElement(L.default.Fragment,null,L.default.createElement(c.Typography,{variant:"h5",style:{marginLeft:"15px",marginBottom:"0"}},"CDS and UTRs"),L.default.createElement("div",null,m.map(((n,r)=>L.default.createElement("div",{key:r,style:{display:"flex",alignItems:"center"}},L.default.createElement("span",{style:{marginLeft:"20px",width:"50px"}},"three_prime_UTR"===n.type?"3 UTR":"five_prime_UTR"===n.type?"5 UTR":"CDS"),L.default.createElement("span",{style:{fontWeight:"bold",width:"30px"}},n.startSeq),L.default.createElement(Rp,{margin:"dense",id:n.id,disabled:"CDS"!==n.type,style:{width:"150px",marginLeft:"8px",backgroundColor:""===n.startSeq.trim()&&0!==r?"lightblue":"inherit"},variant:"outlined",value:n.min,onChangeCommitted:r=>{!function(n,r,a){if(a--,--n<t.min)return void i("Feature start cannot be less than parent starts","error");const o=Gp(t,r);if(o?.children)for(const t of o.children)if(("CDS"===t[1].type||"exon"===t[1].type)&&t[1].min===a){const o=new nr.LocationStartChange({typeName:"LocationStartChange",changedIds:[t[1]._id],featureId:r,oldStart:a,newStart:n,assembly:e});l.submit(o).catch((()=>{i("Error updating feature start position","error")}))}}(r,n.id,Number(n.oldMin))}}),L.default.createElement("span",{style:{margin:"0 10px"}},-1===n.strand?"-":1===n.strand?"+":""),L.default.createElement(Rp,{margin:"dense",id:n.id,disabled:"CDS"!==n.type,style:{width:"150px",backgroundColor:""===n.endSeq.trim()&&r+1!==m.length?"lightblue":"inherit"},variant:"outlined",value:n.max,onChangeCommitted:r=>{!function(n,r,a){const o=Gp(t,r);if(n>t.max)i("Feature start cannot be greater than parent end","error");else if(o?.children)for(const t of o.children)if(("CDS"===t[1].type||"exon"===t[1].type)&&t[1].max===a){const o=new nr.LocationEndChange({typeName:"LocationEndChange",changedIds:[t[1]._id],featureId:r,oldEnd:a,newEnd:n,assembly:e});l.submit(o).catch((()=>{i("Error updating feature end position","error")}))}}(r,n.id,Number(n.oldMax))}}),L.default.createElement("span",{style:{marginLeft:"8px",fontWeight:"bold"}},n.endSeq))))))})),Vp="rgb(20,200,200)",Wp="rgb(240,200,20)";let Kp=[{text:"",color:""}];const Yp=p.observer((function({assembly:e,feature:t,refName:r,session:a}){const i=a.apolloDataStore.assemblies.get(e),o=i?.getByRefName(r),[s,l]=f.useState(!1),[u,d]=f.useState("Select");if(!i||!o)return null;const h=i.getByRefName(r);if(!h)return null;const p=((e,t)=>{const r=[],a=(i,o)=>{if(o&&("CDS"===i.type||"three_prime_UTR"===i.type||"five_prime_UTR"===i.type)){let e=t.getSequence(Number(i.min)-2,Number(i.min)),a=t.getSequence(Number(i.max),Number(i.max)+2);-1===i.strand&&e&&a&&(e=n.revcom(e),a=n.revcom(a));const o={id:i._id,type:i.type,strand:Number(i.strand),min:i.min+1,max:i.max+1,oldMin:i.min+1,oldMax:i.max+1,startSeq:e||"",endSeq:a||""};r.push(o)}if(i.children)for(const t of i.children)a(t[1],"mRNA"===e.type)};if(a(e,"mRNA"===e.type),r.sort(((e,t)=>Number(e.min)-Number(t.min))),r.length>0){r[0].startSeq="",r[r.length-1].endSeq="";for(let e=0;e<r.length;e++)e>0&&r[e].min===r[e-1].max&&(r[e].startSeq=""),e<r.length-1&&r[e].max===r[e+1].min&&(r[e].endSeq="")}return r})(t,o),{max:m,min:g}=t;let _="";var y,v;function b(e){let t="";if(Kp=[],o)switch(e){case"CDS":Kp.push({text:`>${r} : CDS\n`,color:"black"});for(const e of p)if("CDS"===e.type){const r=o.getSequence(Number(e.min+1),Number(e.max));t+=-1===e.strand&&r?n.revcom(r):r,Kp.push({text:t,color:Wp})}break;case"cDNA":Kp.push({text:`>${r} : cDNA\n`,color:"black"});for(const e of p)if("CDS"===e.type||"three_prime_UTR"===e.type||"five_prime_UTR"===e.type){const r=o.getSequence(Number(e.min+1),Number(e.max));t+=-1===e.strand&&r?n.revcom(r):r,Kp.push("CDS"===e.type?{text:t,color:Wp}:{text:t,color:Vp})}break;case"Full":{Kp.push({text:`>${r} : Full genomic\n`,color:"black"});let e=0,a=0;for(const r of p){if(a++,0!=e&&e!=Number(r.min)&&a!=p.length){const a=o.getSequence(e+1,Number(r.min)-1);t+=-1===r.strand&&a?n.revcom(a):a,Kp.push({text:t,color:"black"})}if("CDS"===r.type||"three_prime_UTR"===r.type||"five_prime_UTR"===r.type){const e=o.getSequence(Number(r.min+1),Number(r.max));switch(t+=-1===r.strand&&e?n.revcom(e):e,r.type){case"CDS":Kp.push({text:t,color:Wp});break;case"three_prime_UTR":case"five_prime_UTR":Kp.push({text:t,color:Vp});break;default:Kp.push({text:t,color:"black"})}}e=Number(r.max)}break}}}return s&&(y=g,v=m,_=h?.getSequence(y,v)??"",""===_?a.apolloDataStore.loadRefSeq([{assemblyName:e,refName:r,start:y,end:v}]):_=function(e,t,n,r,a){return`>${t}:${n+1}–${r}\n${e}`}(_,r,y,v),b(u)),L.default.createElement(L.default.Fragment,null,L.default.createElement(c.Typography,{style:{display:"inline",marginLeft:"15px"},variant:"h5"},"Sequence"),L.default.createElement("div",null,L.default.createElement(c.Button,{variant:"contained",style:{marginLeft:"15px"},onClick:()=>{l(!s)}},s?"Hide sequence":"Show sequence")),L.default.createElement("div",null,s&&L.default.createElement(c.Select,{value:u,onChange:function(e){const t=e.target.value;d(t),b(t)},style:{width:"150px",marginLeft:"15px",height:"25px"}},L.default.createElement(c.MenuItem,{value:"Select"},"Select"),L.default.createElement(c.MenuItem,{value:"CDS"},"CDS"),L.default.createElement(c.MenuItem,{value:"cDNA"},"cDNA"),L.default.createElement(c.MenuItem,{value:"Full"},"Full genomics"))),L.default.createElement("div",{style:{width:"500px",marginLeft:"15px",height:"300px",overflowY:"auto",border:"1px solid #ccc"}},s&&L.default.createElement((({textSegments:e})=>L.default.createElement("div",null,e.map(((e,t)=>L.default.createElement("span",{key:t,style:{color:e.color}},nr.splitStringIntoChunks(e.text,150).join("\n")))))),{textSegments:Kp})),s&&L.default.createElement(c.Button,{variant:"contained",style:{marginLeft:"15px"},onClick:()=>{const e=Kp.map((e=>e.text)).join("");e&&navigator.clipboard.writeText(e).then((()=>{})).catch((e=>{console.error("Failed to copy text to clipboard",e)}))}},"Copy sequence"))})),Zp=m.makeStyles()((e=>({root:{padding:e.spacing(2)}}))),Xp=p.observer((function(e){const{classes:t}=Zp(),{model:r}=e,{assembly:a,feature:i,refName:o}=r,s=n.getSession(r),c=n.getSession(r),u=c.apolloDataStore.assemblies.get(a),{internetAccounts:d}=l.getRoot(s),f=d.find((e=>"ApolloInternetAccount"===e.type)),h=["admin","user"].includes((f?f.role:"admin")??"");if(!i||!u)return null;const p=u.getByRefName(o);if(!p)return null;const{max:m,min:g}=i;return p.getSequence(g,m)||c.apolloDataStore.loadRefSeq([{assemblyName:a,refName:o,start:g,end:m}]),L.default.createElement("div",{className:t.root},L.default.createElement(Jp,{feature:i,session:c,assembly:u._id||"",refName:o}),L.default.createElement("hr",null),L.default.createElement(Cp,{feature:i,session:c,assembly:u._id||"",editable:h}),L.default.createElement("hr",null),L.default.createElement(Yp,{feature:i,session:c,assembly:u._id||"",refName:o}))})),Qp=m.makeStyles()({highlighted:{background:"orange"}}),em=({highlight:e,text:t})=>{const{classes:n}=Qp();if(!e)return L.default.createElement(L.default.Fragment,null,t);const r=t.split(e);if(1===r.length)return L.default.createElement(L.default.Fragment,null,t);const a=[];for(let t=0;t<r.length-1;t++)a.push(r[t],L.default.createElement("span",{className:n.highlighted},e));return L.default.createElement(L.default.Fragment,null,a,r.at(-1))},tm=p.observer((function({feature:e,filterText:t}){const n=[...e.attributes.entries()].map((([e,t])=>{if(e.startsWith("gff_")){const n=e.slice(4);return[n.charAt(0).toUpperCase()+n.slice(1),l.getSnapshot(t)]}return"_id"===e?["ID",l.getSnapshot(t)]:[e,l.getSnapshot(t)]})).filter((([e])=>e)).map((([e,t])=>`${e}=${Array.isArray(t)?t.join(", "):t}`)).join(", ");return L.default.createElement(em,{text:n,highlight:t})})),nm=m.makeStyles()((e=>({inputWrapper:{position:"relative"},hiddenWidthSpan:{padding:e.spacing(.5),color:"transparent"},numberTextInput:{border:"none",background:"inherit",font:"inherit",position:"absolute",width:"100%",left:0}}))),rm=p.observer((function({initialValue:e,notifyError:t,onChangeCommitted:n}){const[r,a]=f.useState(e),[i,o]=f.useState(!1),[s,l]=f.useState(null),{classes:c}=nm();return f.useEffect((()=>{i&&(s?.blur(),o(!1))}),[i,s]),L.default.createElement("span",{className:c.inputWrapper},L.default.createElement("span",{className:c.hiddenWidthSpan,"aria-hidden":!0},r),L.default.createElement("input",{type:"text",value:r,className:c.numberTextInput,onChange:function(e){const t=Number(e.target.value);Number.isNaN(t)||a(t)},onKeyDown:t=>{"Enter"===t.key?s?.blur():"Escape"===t.key&&(a(e),o(!0))},onBlur:()=>{r!==e&&n(r).catch(t)},ref:e=>{l(e)}}))})),am=l.types.model({heightPreConfig:l.types.maybe(l.types.refinement("displayHeight",l.types.number,(e=>e>=20)))}).volatile((()=>({scrollTop:0}))).views((e=>({get height(){return e.heightPreConfig??r.getConf(e,"height")}}))).actions((e=>({setScrollTop(t){e.scrollTop=t},setHeight:t=>(e.heightPreConfig=Math.max(t,20),e.height),resizeHeight(t){const n=e.height;return this.setHeight(e.height+t)-n}})));function im(e,t){return t?.palette.bases[e.toUpperCase()].main.toString()??"lightgray"}function om(e,t,n,r,a){const i=Math.min(n,10);e.fillStyle="#000",e.font=`${i}px`;const o=e.measureText(r).width;e.fillText(r,t+(n-o)/2,a+10)}function sm(e,t,r,a,i,o,s,l,c){let u=s.slice(l,l+3).toUpperCase();c&&(u=function(e){return[...e].map((e=>n.revcom(e))).reverse().join("")}(u));const d=n.defaultCodonTable[u];if(!d)return;const f={M:"#33ee33","*":"#f44336"}[d.toUpperCase()];f&&(e.fillStyle=f,e.fillRect(r,a,i,o)),t<=.1&&(e.rect(r,a,i,o),e.stroke(),om(e,r,i,d,a))}function lm(e){return"featureAndGlyphUnderMouse"in e}function cm(e,t){const n=t<=1?2:0;switch(e){case 3:return 0;case 2:return 1;case 1:return 2;case-1:return 3+n;case-2:return 4+n;case-3:return 5+n}}function um(e,t){if(!(t>1||void 0===e))return 1===e?3:4}function dm(e,t,n,r,a,i){void 0!==a&&(e.fillStyle=t?.palette.action.focus??"rgba(0,0,0,0.04)",e.fillRect(n,r*a,i,r))}function fm(e,t){return Boolean(t&&e._id===t._id)}function hm(e,t){return t?e?.palette.text.primary??"black":e?.palette.background.default??"white"}function pm(e,t,n,r,a,i){e.fillStyle=i,e.fillRect(t,n,r,a)}function mm(e,t,n){const{refName:r,regionNumber:a,x:i}=e,{lgv:o}=n,{offsetPx:s}=o,l=o.bpToPx({refName:r,coord:t.min,regionNumber:a}),c=o.bpToPx({refName:r,coord:t.max,regionNumber:a});if(void 0!==l&&void 0!==c){const e=l.offsetPx-s,t=c.offsetPx-s;if(Math.abs(t-e)<8)return;if(Math.abs(e-i)<4)return"min";if(Math.abs(t-i)<4)return"max"}}const gm={draw:function(e,t,n,r,a){const{apolloRowHeight:i,lgv:o,session:s,theme:l}=r,{bpPerPx:c,displayedRegions:u,offsetPx:d}=o,f=u[a],h=(o.bpToPx({refName:f.refName,coord:t.min,regionNumber:a})?.offsetPx??0)-d,{reversed:p}=f,{apolloSelectedFeature:m}=s,g=t.length/c,_=p?h-g:h,y=n*i,v=fm(t,m),b=hm(l,v),w=function(e,t){return t?e?.palette.getContrastText(hm(e,t))??"white":e?.palette.text.primary??"black"}(l,v);!function(e,t,n,r,a,i){pm(e,t,n,r,a,i),r<=2||e.clearRect(t+1,n+1,r-2,a-2)}(e,_,y,g,i,w),g<=2||(function(e,t,n,r,a,i){pm(e,t+1,n+1,r-2,a-2,i)}(e,_,y,g,i,b),function(e,t,n,r,a,i){e.fillStyle=a;const o=Math.max(t+1,0);e.fillText(i,o,n+11,t-1+r-o)}(e,_,y,g,w,t.type))},drawDragPreview:function(e,t){const{apolloDragging:n,apolloRowHeight:r,lgv:a,theme:i}=e,{bpPerPx:o,displayedRegions:s,offsetPx:l}=a;if(!n)return;const{current:u,edge:d,feature:f,start:h}=n,p=Math.floor(h.y/r),m=s[h.regionNumber],g=(m.reversed?m.end-f[d]:f[d]-m.start)/o-l,_=Math.min(u.x,g),y=p*r,v=Math.abs(u.x-g),b=1*r;t.strokeStyle=i?.palette.info.main??"rgb(255,0,0)",t.setLineDash([6]),t.strokeRect(_,y,v,b),t.fillStyle=c.alpha(i?.palette.info.main??"rgb(255,0,0)",.2),t.fillRect(_,y,v,b)},drawHover:function(e,t){const{apolloHover:n,apolloRowHeight:r,lgv:a,theme:i}=e;if(!n)return;const{feature:o}=n,s=e.getFeatureLayoutPosition(o);if(!s)return;const{bpPerPx:l,displayedRegions:c,offsetPx:u}=a,{layoutIndex:d,layoutRow:f}=s,h=c[d],{refName:p,reversed:m}=h,{length:g,max:_,min:y}=o,v=(a.bpToPx({refName:p,coord:m?_:y,regionNumber:d})?.offsetPx??0)-u,b=f*r,w=g/l;t.fillStyle=i?.palette.action.focus??"rgba(0,0,0,0.04)",t.fillRect(v,b,w,r)},drawTooltip:function(e,t){const{apolloHover:n,apolloRowHeight:r,lgv:a,theme:i}=e;if(!n)return;const{feature:o}=n,s=e.getFeatureLayoutPosition(o);if(!s)return;const{layoutIndex:l,layoutRow:u}=s,{bpPerPx:d,displayedRegions:f,offsetPx:h}=a,p=f[l],{refName:m,reversed:g}=p;let _="Loc: ";const{length:y,max:v,min:b}=o;_+=`${b+1}–${v}`;let w=(a.bpToPx({refName:m,coord:g?v:b,regionNumber:l})?.offsetPx??0)-h;const x=u*r,S=y/d,k=`Type: ${o.type}`,{attributes:E}=o,A=E.get("gff_name")?.find((e=>""!==e)),C=[t.measureText(k).width,t.measureText(_).width];A&&C.push(t.measureText(`Name: ${A}`).width);const R=Math.max(...C);w=w+S+5,t.fillStyle=c.alpha(i?.palette.text.primary??"rgb(1, 1, 1)",.7),t.fillRect(w,x,R+4,3===C.length?45:35),t.beginPath(),t.moveTo(w,x),t.lineTo(w-5,x+5),t.lineTo(w,x+10),t.fill(),t.fillStyle=i?.palette.background.default??"rgba(255, 255, 255)";let N=x+12;t.fillText(k,w+2,N),A&&(N+=12,t.fillText(`Name: ${A}`,w+2,N)),N+=12,t.fillText(_,w+2,N)},getContextMenuItems:function(e){const{apolloHover:t,apolloInternetAccount:n,changeManager:r,regions:a,selectedFeature:i,session:o}=e,s=[];if(!t)return s;const{feature:l}=t,c=n?n.role:"admin",u="admin"===c,d=!(c&&["admin","user"].includes(c)),[f]=a,h=e.getAssemblyId(f.assemblyName),p=e.getAssemblyId(f.assemblyName);return s.push({label:"Add child feature",disabled:d,onClick:()=>{o.queueDialog((e=>[lh,{session:o,handleClose:()=>{e()},changeManager:r,sourceFeature:l,sourceAssemblyId:h,internetAccount:n}]))}},{label:"Copy features and annotations",disabled:d,onClick:()=>{o.queueDialog((e=>[dh,{session:o,handleClose:()=>{e()},changeManager:r,sourceFeature:l,sourceAssemblyId:p}]))}},{label:"Delete feature",disabled:!u,onClick:()=>{o.queueDialog((t=>[hh,{session:o,handleClose:()=>{t()},changeManager:r,sourceFeature:l,sourceAssemblyId:p,selectedFeature:i,setSelectedFeature:t=>{e.setSelectedFeature(t)}}]))}},{label:"Modify feature attribute",disabled:d,onClick:()=>{o.queueDialog((e=>[Dh,{session:o,handleClose:()=>{e()},changeManager:r,sourceFeature:l,sourceAssemblyId:p}]))}},{label:"Edit feature details",onClick:()=>{const e=o.addWidget("ApolloFeatureDetailsWidget","apolloFeatureDetailsWidget",{feature:l,assembly:p,refName:f.refName});o.showWidget(e)}}),s},getFeatureFromLayout:function(e,t,n){return e},getRowCount:function(e){return 1},getRowForFeature:function(e,t){return 0},onMouseDown:function(e,t,n){const{featureAndGlyphUnderMouse:r}=t,{feature:a}=r,i=mm(t,a,e);i&&(n.stopPropagation(),e.startDrag(t,a,i))},onMouseLeave:function(){},onMouseMove:function(e,t){if(lm(t)){const{featureAndGlyphUnderMouse:n}=t;e.setApolloHover(n);const{feature:r}=n;if(mm(t,r,e))return void e.setCursor("col-resize")}e.setCursor()},onMouseUp:function(e,t){if(e.apolloDragging)return;const{featureAndGlyphUnderMouse:n}=t;n?.feature&&e.setSelectedFeature(n.feature)}};let _m=null,ym=null;if("document"in window)for(const e of["forward","backward"]){const t=document.createElement("canvas"),n=10;t.width=t.height=n;const r=t.getContext("2d");if(r){const a="rgba(0,0,0,0)",i="rgba(255,255,255,0.25)",o="forward"===e?r.createLinearGradient(0,n,n,0):r.createLinearGradient(0,0,n,n);o.addColorStop(0,a),o.addColorStop(.25,a),o.addColorStop(.25,i),o.addColorStop(.5,i),o.addColorStop(.5,a),o.addColorStop(.75,a),o.addColorStop(.75,i),o.addColorStop(1,i),r.fillStyle=o,r.fillRect(0,0,10,10),"forward"===e?_m=r.createPattern(t,"repeat"):ym=r.createPattern(t,"repeat")}}function vm(e,t){const{children:n,type:r}=e;if(!n)return 1;let a=0;if("mRNA"===r){for(const[,e]of n)"CDS"===e.type&&(a+=1);return a}for(const[,e]of n)a+=vm(e);return a}function bm(e){if("gene"!==e.type)throw new Error('Top level feature for GeneGlyph must have type "gene"');const{children:t}=e;if(!t)return[[e]];const n=[];for(const[,r]of t){if("mRNA"!==r.type){n.push([r,e]);continue}if(!r.children)continue;const t=[],a=[];for(const[,e]of r.children)"CDS"===e.type?t.push(e):"exon"===e.type&&a.push(e);for(const i of t)n.push([i,...a,r,e])}return n}function wm(e,t,r){if("gene"===t.type||"mRNA"===t.type)return;const{bp:a,refName:i,regionNumber:o,x:s}=e,{lgv:l}=r,{offsetPx:c}=l,u=l.bpToPx({refName:i,coord:t.min,regionNumber:o}),d=l.bpToPx({refName:i,coord:t.max,regionNumber:o});if(void 0===u||void 0===d)return;const f=u.offsetPx-c,h=d.offsetPx-c;if(!(Math.abs(h-f)<8)){if(Math.abs(f-s)<4)return{feature:t,edge:"min"};if(Math.abs(h-s)<4)return{feature:t,edge:"max"};if("CDS"===t.type){const e=t.parent;if(!e?.children)return;const r=[...e.children.values()].filter((e=>"exon"===e.type)).find((e=>{const[t,r]=n.intersection2(a,a+1,e.min,e.max);return void 0!==t&&void 0!==r}));if(!r)return;const u=l.bpToPx({refName:i,coord:r.min,regionNumber:o}),d=l.bpToPx({refName:i,coord:r.max,regionNumber:o});if(void 0===u||void 0===d)return;const f=u.offsetPx-c,h=d.offsetPx-c;if(Math.abs(h-f)<8)return;if(Math.abs(f-s)<4)return{feature:r,edge:"min"};if(Math.abs(h-s)<4)return{feature:r,edge:"max"}}}}const{drawTooltip:xm,getContextMenuItems:Sm,onMouseLeave:km}=gm,Em={draw:function(e,t,r,a,i){const{apolloRowHeight:o,lgv:s,session:l,theme:c}=a,{bpPerPx:u,displayedRegions:d,offsetPx:f}=s,h=d[i],{refName:p,reversed:m}=h,g=o,_=Math.round(.6*g),y=Math.round(.9*g),{strand:v}=t,{children:b}=t;if(!b)return;const{apolloSelectedFeature:w}=l;let x=0;for(const[,t]of b){if("mRNA"!==t.type){x+=1;continue}const{children:n,min:a}=t;if(n)for(const[,o]of n){if("CDS"!==o.type)continue;const n=(s.bpToPx({refName:p,coord:a,regionNumber:i})?.offsetPx??0)-f,l=t.length/u,d=m?n-l:n,h=Math.round((x+.5)*g)+r*g;e.strokeStyle=c?.palette.text.primary??"black",e.beginPath(),e.moveTo(d,h),e.lineTo(d+l,h),e.stroke(),x+=1}}x=0;for(const[,t]of b)if("mRNA"===t.type)for(const a of t.cdsLocations){const{_id:o,children:l}=t;if(l){for(const[,t]of l){if("exon"!==t.type)continue;const n=(s.bpToPx({refName:p,coord:t.min,regionNumber:i})?.offsetPx??0)-f,a=t.length/u,o=m?n-a:n,l=(r+x)*g+(g-_)/2;if(e.fillStyle=c?.palette.text.primary??"black",e.fillRect(o,l,a,_),a>2&&(e.clearRect(o+1,l+1,a-2,_-2),e.fillStyle=w&&t._id===w._id?"rgb(0,0,0)":"rgb(211,211,211)",e.fillRect(o+1,l+1,a-2,_-2),_m&&ym&&v)){const t=m?-1:1,[n,r]=v*t==1?[_m,ym]:[ym,_m];e.fillStyle=n,e.fillRect(o+1,l+1,a-2,(_-2)/2),e.fillStyle=r,e.fillRect(o+1,l+1+(_-2)/2,a-2,(_-2)/2)}}for(const l of a){const a=(l.max-l.min)/u,d=(s.bpToPx({refName:p,coord:l.min,regionNumber:i})?.offsetPx??0)-f,h=m?d-a:d;e.fillStyle=c?.palette.text.primary??"black";const _=(r+x)*g+(g-y)/2;if(e.fillRect(h,_,a,y),a>2){e.clearRect(h+1,_+1,a-2,y-2);const r=n.getFrame(l.min,l.max,t.strand??1,l.phase),i=c?.palette.framesCDS.at(r)?.main,s=i??"rgb(171,71,188)";if(e.fillStyle=w&&o===w._id?"rgb(0,0,0)":s,e.fillStyle=s,e.fillRect(h+1,_+1,a-2,y-2),_m&&ym&&v){const t=m?-1:1,[n,r]=v*t==1?[_m,ym]:[ym,_m];e.fillStyle=n,e.fillRect(h+1,_+1,a-2,(y-2)/2),e.fillStyle=r,e.fillRect(h+1,_+(y-2)/2,a-2,(y-2)/2)}}}x+=1}}else gm.draw(e,t,r,a,i),x+=1},drawDragPreview:function(e,t){const{apolloDragging:n,apolloRowHeight:r,lgv:a,theme:i}=e,{bpPerPx:o,displayedRegions:s,offsetPx:l}=a;if(!n)return;const{current:u,edge:d,feature:f,start:h}=n,p=Math.floor(h.y/r),m=s[h.regionNumber],g=(m.reversed?m.end-f[d]:f[d]-m.start)/o-l,_=Math.min(u.x,g),y=p*r,v=Math.abs(u.x-g),b=1*r;t.strokeStyle=i?.palette.info.main??"rgb(255,0,0)",t.setLineDash([6]),t.strokeRect(_,y,v,b),t.fillStyle=c.alpha(i?.palette.info.main??"rgb(255,0,0)",.2),t.fillRect(_,y,v,b)},drawHover:function(e,t){const{apolloHover:n,apolloRowHeight:r,lgv:a,theme:i}=e;if(!n)return;const{feature:o}=n,s=e.getFeatureLayoutPosition(o);if(!s)return;const{bpPerPx:l,displayedRegions:c,offsetPx:u}=a,{featureRow:d,layoutIndex:f,layoutRow:h}=s,p=c[f],{refName:m,reversed:g}=p,{length:_,max:y,min:v}=o,b=(a.bpToPx({refName:m,coord:g?y:v,regionNumber:f})?.offsetPx??0)-u,w=(h+d)*r,x=_/l;t.fillStyle=i?.palette.action.selected??"rgba(0,0,0,04)",t.fillRect(b,w,x,r*vm(o))},drawTooltip:xm,getContextMenuItems:Sm,getFeatureFromLayout:function(e,t,n){const r=bm(e)[n];for(const e of r)if(t>=e.min&&t<=e.max&&e.parent)return e;return e},getRowCount:vm,getRowForFeature:function(e,t){const n=bm(e);for(const[e,r]of n.entries())if(r.some((e=>e._id===t._id)))return e},onMouseDown:function(e,t,n){const{featureAndGlyphUnderMouse:r}=t,{feature:a}=r,i=wm(t,a,e);i&&(n.stopPropagation(),e.startDrag(t,i.feature,i.edge))},onMouseLeave:km,onMouseMove:function(e,t){if(lm(t)){const{featureAndGlyphUnderMouse:n}=t;e.setApolloHover(n);const{feature:r}=n;if(wm(t,r,e))return void e.setCursor("col-resize")}e.setCursor()},onMouseUp:function(e,t){if(e.apolloDragging)return;const{featureAndGlyphUnderMouse:n}=t;n?.feature&&e.setSelectedFeature(n.feature)}};function Am(e){const t=[[e]];if(e.children)for(const[,n]of e.children)t.push(...Am(n));return t}function Cm(e){return Am(e).length}function Rm(e,t,n,r,a,i){const o=Am(t)[n-r];for(const t of o)Nm(e,t,n,a,i)}function Nm(e,t,n,r,a){const{apolloRowHeight:i,lgv:o,session:s}=r,{bpPerPx:l,displayedRegions:c,offsetPx:u}=o,d=c[a],f=(o.bpToPx({refName:d.refName,coord:t.min,regionNumber:a})?.offsetPx??0)-u,{reversed:h}=d,{apolloSelectedFeature:p}=s,m=t.length/l,g=h?f-m:f,_=n*i,y=Cm(t),v=fm(t,p);y>1&&pm(e,g,_,m,y*i,v?"rgba(130,0,0,0.45)":"rgba(255,0,0,0.25)"),gm.draw(e,t,n,r,a)}const{drawDragPreview:Im,drawTooltip:Tm,getContextMenuItems:Om,onMouseDown:Fm,onMouseLeave:Lm,onMouseMove:Dm,onMouseUp:Mm}=gm,Pm={draw:function(e,t,n,r,a){for(let i=0;i<Cm(t);i++)Rm(e,t,n+i,n,r,a)},drawDragPreview:Im,drawHover:function(e,t){const{apolloHover:n,apolloRowHeight:r,lgv:a}=e;if(!n)return;const{feature:i}=n,o=e.getFeatureLayoutPosition(i);if(!o)return;const{featureRow:s,layoutIndex:l,layoutRow:c}=o,{bpPerPx:u,displayedRegions:d,offsetPx:f}=a,h=d[l],{refName:p,reversed:m}=h,{length:g,max:_,min:y}=i,v=(a.bpToPx({refName:p,coord:m?_:y,regionNumber:l})?.offsetPx??0)-f,b=(c+s)*r,w=g/u;t.fillStyle="rgba(0,0,0,0.2)",t.fillRect(v,b,w,r*Cm(i))},drawTooltip:Tm,getContextMenuItems:Om,getFeatureFromLayout:function(e,t,n){return Am(e)[n].find((e=>t>=e.min&&t<=e.max))},getRowCount:Cm,getRowForFeature:function(e,t){const n=Am(e);for(const[e,r]of n.entries())if(r.some((e=>e._id===t._id)))return e},onMouseDown:Fm,onMouseLeave:Lm,onMouseMove:Dm,onMouseUp:Mm};function qm(e){return function(e){const{children:t}=e;if(!t?.size)return!1;for(const[,e]of t)if("mRNA"===e.type){const{children:t}=e;if(!t?.size)return!1;const n=[...t.values()].some((e=>"CDS"===e.type)),r=[...t.values()].some((e=>"exon"===e.type));if(n&&r)return!0}return!1}(e)?Em:e.children?.size?Pm:gm}const jm=m.makeStyles()((e=>({typeContent:{display:"inline-block",width:"174px",height:"100%",cursor:"text"},feature:{td:{position:"relative",verticalAlign:"top",paddingLeft:"0.5em"}},arrow:{display:"inline-block",width:"1.6em",textAlign:"center",cursor:"pointer"},arrowExpanded:{transform:"rotate(90deg)"},hoveredFeature:{backgroundColor:e.palette.action.hover},typeInputElement:{border:"none",background:"none"},typeErrorMessage:{color:"red"}})));function Bm(e,t){const{changeManager:r,getAssemblyId:a,regions:i,selectedFeature:o,session:s,setSelectedFeature:c}=e;return function(e,t,r,a,i,o,s){const c=function(e){const{internetAccounts:t}=l.getParent(e);return t.find((e=>"ApolloInternetAccount"===e.type))}(o),u=c?c.role:"admin",d="admin"===u,f=!(u&&["admin","user"].includes(u)),h=[];if(e){const l=r(t.assemblyName),u=r(t.assemblyName);h.push({label:"Edit feature details",onClick:()=>{const n=o.addWidget("ApolloFeatureDetailsWidget","apolloFeatureDetailsWidget",{feature:e,assembly:u,refName:t.refName});o.showWidget(n)}},{label:"Add child feature",disabled:f,onClick:()=>{o.queueDialog((t=>[lh,{session:o,handleClose:()=>{t()},changeManager:s,sourceFeature:e,sourceAssemblyId:l,internetAccount:c}]))}},{label:"Copy features and annotations",disabled:f,onClick:()=>{o.queueDialog((t=>[dh,{session:o,handleClose:()=>{t()},changeManager:s,sourceFeature:e,sourceAssemblyId:u}]))}},{label:"Delete feature",disabled:!d,onClick:()=>{o.queueDialog((t=>[hh,{session:o,handleClose:()=>{t()},changeManager:s,sourceFeature:e,sourceAssemblyId:u,selectedFeature:a,setSelectedFeature:i}]))}},{label:"Edit attributes",disabled:f,onClick:()=>{o.queueDialog((t=>[Dh,{session:o,handleClose:()=>{t()},changeManager:s,sourceFeature:e,sourceAssemblyId:u}]))}}),"mRNA"===e.type&&n.isSessionModelWithWidgets(o)&&h.push({label:"Edit transcript details",onClick:()=>{const n=o.addWidget("ApolloTranscriptDetails","apolloTranscriptDetails",{feature:e,assembly:u,changeManager:s,refName:t.refName});o.showWidget(n)}})}return h}(t,i[0],a,o,c,s,r)}function Um(e){let t=e;for(;t.parent;)t=t.parent;return t}const zm=p.observer((function e({depth:t,feature:n,isHovered:r,isSelected:a,model:i,selectedFeatureClass:o,setContextMenu:s}){const{classes:l}=jm(),{apolloHover:c,changeManager:u,selectedFeature:d,session:f,tabularEditor:h}=i,{featureCollapsed:p,filterText:m}=h,{_id:g,children:_,max:y,min:v,strand:b,type:w}=n,x=!p.get(g),S=e=>{f.notify(e.message,"error")};return L.default.createElement(L.default.Fragment,null,L.default.createElement("tr",{onMouseEnter:e=>{i.setApolloHover({feature:n,topLevelFeature:Um(n),glyph:qm(Um(n))})},className:l.feature+(a?` ${o}`:r?` ${l.hoveredFeature}`:""),onClick:e=>{e.stopPropagation(),i.setSelectedFeature(n)},onContextMenu:e=>(e.preventDefault(),s({position:{left:e.clientX+2,top:e.clientY-6},items:Bm(i,n)}),!1)},L.default.createElement("td",{style:{whiteSpace:"nowrap",borderLeft:2*t+"em solid transparent"}},_?.size?L.default.createElement("div",{onClick:e=>{e.stopPropagation(),h.setFeatureCollapsed(g,x)},className:l.arrow+(x?` ${l.arrowExpanded}`:"")},"❯"):null,L.default.createElement("div",{className:l.typeContent},L.default.createElement(sh,{session:f,ontologyName:"Sequence Ontology",style:{width:170},value:w,filterTerms:ah,fetchValidTerms:Gm.bind(null,n),renderInput:e=>L.default.createElement("div",{ref:e.InputProps.ref},L.default.createElement("input",{type:"text",...e.inputProps,className:l.typeInputElement,style:{width:170}}),e.error?L.default.createElement("div",{className:l.typeErrorMessage},e.errorMessage??"unknown error"):null),onChange:(e,t)=>{t&&function(e,t,n,r){const a=t._id,i=new nr.TypeChange({typeName:"TypeChange",changedIds:[a],featureId:a,oldType:String(n),newType:String(r),assembly:t.assemblyId});return e.submit(i)}(u,n,e,t).catch(S)}}))),L.default.createElement("td",null,L.default.createElement(rm,{initialValue:v+1,notifyError:S,onChangeCommitted:e=>function(e,t,n,r){const a=t._id,i=new nr.LocationStartChange({typeName:"LocationStartChange",changedIds:[a],featureId:a,oldStart:n,newStart:r,assembly:t.assemblyId});return e.submit(i)}(u,n,v,e-1)})),L.default.createElement("td",null,L.default.createElement(rm,{initialValue:y,notifyError:S,onChangeCommitted:e=>function(e,t,n,r){const a=t._id,i=new nr.LocationEndChange({typeName:"LocationEndChange",changedIds:[a],featureId:a,oldEnd:n,newEnd:r,assembly:t.assemblyId});return e.submit(i)}(u,n,y,e)})),L.default.createElement("td",null,1===b?"+":-1===b?"-":void 0),L.default.createElement("td",null,L.default.createElement(tm,{filterText:m,feature:n}))),x&&_?[..._.entries()].filter((e=>{if(!m)return!0;const[,t]=e;return JSON.stringify(t).includes(m)})).map((([n,r])=>L.default.createElement(e,{isHovered:c?.feature._id===r._id,isSelected:d?._id===r._id,selectedFeatureClass:o,key:n,depth:(t||0)+1,feature:r,model:i,setContextMenu:s}))):null)}));async function Gm(e,t,n){const{parent:r}=e;if(r){const e=(await t.getTermsWithLabelOrSynonym(r.type,{includeSubclasses:!1})).filter(ah);if(e.length>0)return await t.getClassesThat("part_of",e)}}const Hm=m.makeStyles()((e=>({scrollableTable:{width:"100%",height:"100%",th:{position:"sticky",top:0,zIndex:2,textAlign:"left",background:e.palette.background.paper,paddingTop:"3.2em"},td:{whiteSpace:"normal"}},selectedFeature:{backgroundColor:e.palette.action.selected}}))),$m=p.observer((function({model:e}){const{apolloHover:t,seenFeatures:n,selectedFeature:r,tabularEditor:a}=e,i=c.useTheme(),{classes:o}=Hm(),s=f.useRef(null),[l,u]=f.useState(null),{filterText:d}=a;return f.useEffect((()=>{const e=s.current;if(e&&r){const t=e.querySelector(`.${o.selectedFeature}`);if(t){const n=e.scrollTop,r=t.offsetTop-25;r>n&&r<n+e.offsetHeight||e.scroll({top:r-40,behavior:"smooth"})}}}),[r,n,o.selectedFeature]),L.default.createElement("div",{ref:s,style:{width:"100%",overflowY:"auto",height:"100%"}},L.default.createElement("table",{className:o.scrollableTable},L.default.createElement("thead",null,L.default.createElement("tr",null,L.default.createElement("th",null,"Type"),L.default.createElement("th",null,"Start"),L.default.createElement("th",null,"End"),L.default.createElement("th",null,"Strand"),L.default.createElement("th",null,"Attributes"))),L.default.createElement("tbody",null,[...n.entries()].filter((e=>{if(!d)return!0;const[,t]=e;return JSON.stringify(t).includes(d)})).sort(((e,t)=>e[1].min-t[1].min)).map((([n,a])=>L.default.createElement(zm,{key:n,isSelected:r?._id===n,isHovered:t?.feature._id===n,selectedFeatureClass:o.selectedFeature,feature:a,model:e,depth:0,setContextMenu:u}))))),L.default.createElement(h.Menu,{open:Boolean(l),onMenuItemClick:(e,t)=>{t(),u(null)},onClose:()=>{u(null)},TransitionProps:{onExit:()=>{u(null)}},style:{zIndex:i.zIndex.tooltip},menuItems:l?.items??[],anchorReference:"anchorPosition",anchorPosition:l?.position}))}));var Jm={},Vm=Il.exports;Object.defineProperty(Jm,"__esModule",{value:!0});var Wm=Jm.default=void 0;Wm=Jm.default=(0,Vm(Tl).default)((0,I.default.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Clear");var Km={},Ym=Il.exports;Object.defineProperty(Km,"__esModule",{value:!0});var Zm=Km.default=void 0;Zm=Km.default=(0,Ym(Tl).default)((0,I.default.jsx)("path",{d:"M7.41 18.59 8.83 20 12 16.83 15.17 20l1.41-1.41L12 14l-4.59 4.59zm9.18-13.18L15.17 4 12 7.17 8.83 4 7.41 5.41 12 10l4.59-4.59z"}),"UnfoldLess");const Xm=m.makeStyles()({toolbar:{width:"100%",display:"flex",paddingRight:"2em",flexDirection:"row",justifyContent:"space-between",position:"absolute",zIndex:4},filterText:{}}),Qm=p.observer((function({model:e}){const t=e.tabularEditor,{classes:n}=Xm();return L.default.createElement("div",{className:n.toolbar},L.default.createElement(c.Tooltip,{title:"Collapse all"},L.default.createElement(c.IconButton,{"aria-label":"collapse",sx:{marginTop:0},onClick:t.collapseAllFeatures},L.default.createElement(Zm,null))),L.default.createElement(c.TextField,{className:n.filterText,label:"Filter features",value:t.filterText,sx:{marginTop:0},variant:"outlined",onChange:e=>{t.setFilterText(e.target.value)},InputProps:{endAdornment:L.default.createElement(c.InputAdornment,{position:"end"},L.default.createElement(c.IconButton,{onClick:()=>{t.clearFilterText()}},L.default.createElement(Wm,null)))}}))}));function eg(e){e.stopPropagation()}const tg=p.observer((function({model:e}){return e.tabularEditor.isShown?L.default.createElement("div",{onMouseDown:eg,onClick:eg,style:{width:"100%",height:"100%",position:"relative"}},L.default.createElement(Qm,{model:e}),L.default.createElement($m,{model:e})):null})),ng=l.types.model("TabularEditor",{isShown:!0,featureCollapsed:l.types.map(l.types.boolean),filterText:""}).actions((e=>({setFeatureCollapsed(t,n){e.featureCollapsed.set(t,n)},setFilterText(t){e.filterText=t},clearFilterText(){e.filterText=""},collapseAllFeatures(){const t=l.getParent(e);for(const[n]of t.seenFeatures.entries())e.featureCollapsed.set(n,!0)},togglePane(){e.isShown=!e.isShown},hidePane(){e.isShown=!1},showPane(){e.isShown=!0}})));function rg(e,t){return function(e,t){const i=function(e,t){return function(e,t){const i=function(e,t){return function(e,t){const i=function(e,t){return function(e,t){const i=function(e,t){return l.types.compose(a.BaseDisplay,am).named("BaseLinearApolloDisplay").props({type:l.types.literal("LinearApolloDisplay"),configuration:r.ConfigurationReference(t)}).volatile((e=>({lgv:n.getContainingView(e)}))).views((e=>{const{configuration:t,renderProps:n}=e;return{renderProps:()=>({...n(),...k.getParentRenderProps(e),config:t.renderer})}})).views((e=>({get rendererTypeName(){return e.configuration.renderer.type},get session(){return n.getSession(e)},get regions(){return e.lgv.dynamicBlocks.contentBlocks.map((({assemblyName:e,end:t,refName:n,start:r})=>({assemblyName:e,refName:n,start:Math.round(r),end:Math.round(t)})))},regionCannotBeRendered(){if(e.lgv&&e.lgv.bpPerPx>=200)return"Zoom in to see annotations"}}))).views((e=>({get apolloInternetAccount(){const[t]=e.regions,{internetAccounts:n}=l.getRoot(e),{assemblyName:a}=t,{assemblyManager:i}=e.session,o=i.get(a);if(!o)throw new Error(`No assembly found with name ${a}`);const{internetAccountConfigId:s}=r.getConf(o,["sequence","metadata"]);return n.find((e=>r.getConf(e,"internetAccountId")===s))},get changeManager(){return e.session.apolloDataStore.changeManager},getAssemblyId(t){const{assemblyManager:n}=e.session,r=n.get(t);if(!r)throw new Error(`Could not find assembly named ${t}`);return r.name},get selectedFeature(){return e.session.apolloSelectedFeature}}))).actions((e=>({setSelectedFeature(t){e.session.apolloSetSelectedFeature(t)},afterAttach(){l.addDisposer(e,s.autorun((()=>{e.lgv.initialized&&!e.regionCannotBeRendered()&&(e.session.apolloDataStore.loadFeatures(e.regions),e.session.apolloDataStore.loadRefSeq(e.regions))}),{name:"LinearApolloDisplayLoadFeatures",delay:1e3}))}})))}(0,t);return i.named("LinearApolloDisplayLayouts").props({featuresMinMaxLimit:5e5}).volatile((()=>({seenFeatures:s.observable.map()}))).views((e=>({get featuresMinMax(){const{assemblyManager:t}=e.session;return e.lgv.displayedRegions.map((r=>{const a=t.get(r.assemblyName);let i,o;const{end:s,refName:l,start:c}=r;for(const[,t]of e.seenFeatures)l!==a?.getCanonicalRefName(t.refSeq)||!n.doesIntersect2(c,s,t.min,t.max)||t.length>e.featuresMinMaxLimit||(void 0===i&&({min:i}=t),void 0===o&&({max:o}=t),t.minWithChildren<i&&({min:i}=t),t.maxWithChildren>o&&({max:o}=t));if(void 0!==i&&void 0!==o)return[i,o]}))}}))).actions((e=>({addSeenFeature(t){e.seenFeatures.set(t._id,t)},deleteSeenFeature(t){e.seenFeatures.delete(t)}}))).views((e=>({get featureLayouts(){const{assemblyManager:t}=e.session;return e.lgv.displayedRegions.map(((r,a)=>{const i=t.get(r.assemblyName),o=new Map,s=e.featuresMinMax[a];if(!s)return o;const[c,u]=s,d=[],{end:f,refName:h,start:p}=r;for(const[t,r]of e.seenFeatures.entries()){if(!l.isAlive(r)){e.deleteSeenFeature(t);continue}if(h!==i?.getCanonicalRefName(r.refSeq)||!n.doesIntersect2(p,f,r.min,r.max))continue;const a=qm(r).getRowCount(r,e.lgv.bpPerPx);let s=0,m=!1;for(;!m;){let e=d.slice(s,s+a);if(e.length<a){for(let t=0;t<a-e.length;t++){const e=d.length;d[e]=Array.from({length:u-c}),o.set(e,[])}e=d.slice(s,s+a)}if(e.map((e=>{const t=r.max-r.min==0?r.min+1:r.max;let n=r.min-c,a=t-c;return r.min-c<0&&(n=0,a=t-r.min),e.slice(n,a).some(Boolean)})).some(Boolean))s+=1;else{for(let e=s;e<s+a;e++){let t=r.min-c,n=r.max-c;r.min-c<0&&(t=0,n=r.max-r.min),d[e].fill(!0,t,n);const a=o.get(e);a?.push([e-s,r])}m=!0}}}return o}))},getFeatureLayoutPosition(e){const{featureLayouts:t}=this;for(const[n,r]of t.entries())for(const[t,a]of r)for(const[r,i]of a)if(0===r){if(e._id===i._id)return{layoutIndex:n,layoutRow:t,featureRow:r};if(i.hasDescendant(e._id)){const r=qm(i).getRowForFeature(i,e);if(void 0!==r)return{layoutIndex:n,layoutRow:t,featureRow:r}}}}}))).views((e=>({get highestRow(){return Math.max(0,...e.featureLayouts.map((e=>Math.max(...e.keys()))))}}))).actions((e=>({afterAttach(){l.addDisposer(e,s.autorun((()=>{if(e.lgv.initialized&&!e.regionCannotBeRendered())for(const t of e.regions){const r=e.session.apolloDataStore.assemblies.get(t.assemblyName),a=r?.getByRefName(t.refName),i=a?.features;if(i)for(const[,r]of i)n.doesIntersect2(t.start,t.end,r.min,r.max)&&!e.seenFeatures.has(r._id)&&e.addSeenFeature(r)}}),{name:"LinearApolloDisplaySetSeenFeatures",delay:1e3}))}})))}(0,t).named("LinearApolloDisplayRendering").props({sequenceRowHeight:15,apolloRowHeight:20,detailsMinHeight:200,detailsHeight:200,lastRowTooltipBufferHeight:40,isShown:!0}).volatile((()=>({canvas:null,overlayCanvas:null,collaboratorCanvas:null,seqTrackCanvas:null,seqTrackOverlayCanvas:null,theme:void 0}))).views((e=>({get featuresHeight(){return(e.highestRow+1)*e.apolloRowHeight+e.lastRowTooltipBufferHeight}}))).actions((e=>({toggleShown(){e.isShown=!e.isShown},setDetailsHeight(t){e.detailsHeight=e.isShown?Math.max(Math.min(t,e.height-100),Math.min(e.height,e.detailsMinHeight)):t},setCanvas(t){e.canvas=t},setOverlayCanvas(t){e.overlayCanvas=t},setCollaboratorCanvas(t){e.collaboratorCanvas=t},setSeqTrackCanvas(t){e.seqTrackCanvas=t},setSeqTrackOverlayCanvas(t){e.seqTrackOverlayCanvas=t},setTheme(t){e.theme=t},afterAttach(){l.addDisposer(e,s.autorun((()=>{if(!e.lgv.initialized||e.regionCannotBeRendered())return;const t=e.collaboratorCanvas?.getContext("2d");if(t){t.clearRect(0,0,e.lgv.dynamicBlocks.totalWidthPx,e.featuresHeight);for(const n of e.session.collaborators){const{locations:r}=n;if(0===r.length)continue;let a=0;for(const i of e.lgv.displayedRegions){for(const o of r){if(o.refSeq!==i.refName)continue;const{end:r,refSeq:s,start:l}=o,c=e.lgv.bpToPx({refName:s,coord:l,regionNumber:a});if(!c)continue;const u=c.offsetPx-e.lgv.offsetPx,d=(r-l)/e.lgv.bpPerPx;t.fillStyle="rgba(0,255,0,.2)",t.fillRect(u,1,d,100),t.fillStyle="black",t.fillText(n.name,u+1,11,d-2)}a++}}}}),{name:"LinearApolloDisplayRenderCollaborators"}))}})))}(0,t);return i.actions((e=>({afterAttach(){l.addDisposer(e,s.autorun((async()=>{if(!e.lgv.initialized||e.regionCannotBeRendered())return;if(e.lgv.bpPerPx>3)return;const t=e.seqTrackCanvas?.getContext("2d");if(!t)return;t.clearRect(0,0,e.lgv.dynamicBlocks.totalWidthPx,e.lgv.bpPerPx<=1?125:95);const r=e.lgv.bpPerPx<=1?[3,2,1,0,0,-1,-2,-3]:[3,2,1,-1,-2,-3];let a=0;for(const n of r){const r=e.theme?.palette.framesCDS.at(n)?.main;r&&(t.fillStyle=r,t.fillRect(0,a,e.lgv.dynamicBlocks.totalWidthPx,e.sequenceRowHeight)),a+=e.sequenceRowHeight}for(const[r,a]of e.regions.entries()){const i=e.session.apolloDataStore.getBackendDriver(a.assemblyName);if(!i)throw new Error("Failed to get the backend driver");const{seq:o}=await i.getSequence(a);if(!o)return;for(const[i,s]of[...o].entries()){const l=(e.lgv.bpToPx({refName:a.refName,coord:a.start+i,regionNumber:r})?.offsetPx??0)-e.lgv.offsetPx,c=3/e.lgv.bpPerPx,u=e.lgv.displayedRegions[r].reversed?l-c:l;for(let n=2;n>=0;n--)(a.start+i)%3===n&&sm(t,e.lgv.bpPerPx,u,e.sequenceRowHeight*(2-n),c,e.sequenceRowHeight,o,i,!1);if(e.lgv.bpPerPx<=1){const o=(e.lgv.bpToPx({refName:a.refName,coord:a.start+i,regionNumber:r})?.offsetPx??0)-e.lgv.offsetPx,l=1/e.lgv.bpPerPx,c=e.lgv.displayedRegions[r].reversed?o-l:o;t.beginPath(),t.fillStyle=im(s,e.theme),t.rect(c,3*e.sequenceRowHeight,l,e.sequenceRowHeight),t.fill(),e.lgv.bpPerPx<=.1&&(t.stroke(),om(t,c,l,s,3*e.sequenceRowHeight));const u=n.revcom(s);t.beginPath(),t.fillStyle=im(u,e.theme),t.rect(c,4*e.sequenceRowHeight,l,e.sequenceRowHeight),t.fill(),e.lgv.bpPerPx<=.1&&(t.stroke(),om(t,c,l,u,4*e.sequenceRowHeight))}for(let n=0;n<=2;n++)(a.start+i)%3===n&&sm(t,e.lgv.bpPerPx,u,e.sequenceRowHeight*((e.lgv.bpPerPx<=1?5:3)+n),c,e.sequenceRowHeight,o,i,!0)}}}),{name:"LinearApolloDisplayRenderSequence"}))}})))}(0,t).actions((e=>({afterAttach(){l.addDisposer(e,s.autorun((()=>{const{canvas:t,featureLayouts:r,featuresHeight:a,lgv:i}=e;if(!i.initialized||e.regionCannotBeRendered())return;const{displayedRegions:o,dynamicBlocks:s}=i,l=t?.getContext("2d");if(l){l.clearRect(0,0,s.totalWidthPx,a);for(const[t,a]of r.entries()){const r=o[t];for(const[i,o]of a.entries())for(const[a,s]of o)a>0||n.doesIntersect2(r.start,r.end,s.min,s.max)&&qm(s).draw(l,s,i,e,t)}}}),{name:"LinearApolloDisplayRenderFeatures"}))}})))}(0,t);return i.named("LinearApolloDisplayMouseEvents").volatile((()=>({apolloDragging:null,cursor:void 0,apolloHover:void 0}))).views((e=>({getMousePosition(t){const n=function(e,t){const n=e.currentTarget,{clientX:r,clientY:a}=e,{left:i,top:o}=n.getBoundingClientRect(),s=r-i,l=a-o,{coord:c,index:u,refName:d}=t.pxToBp(s);return{x:s,y:l,refName:d,bp:c,regionNumber:u}}(t,e.lgv),{bp:r,regionNumber:a,y:i}=n,o=Math.floor(i/e.apolloRowHeight),s=e.featureLayouts[a].get(o);if(!s)return n;const l=s.find((e=>r>=e[1].min&&r<=e[1].max));if(!l)return n;const[c,u]=l,d=qm(u),f=d.getFeatureFromLayout(u,r,c);return f?{...n,featureAndGlyphUnderMouse:{feature:f,topLevelFeature:u,glyph:d}}:n}}))).actions((e=>({continueDrag(t,n){if(!e.apolloDragging)throw new Error("continueDrag() called with no current drag in progress");n.stopPropagation(),e.apolloDragging={...e.apolloDragging,current:t}},setDragging(t){e.apolloDragging=t??null}}))).actions((e=>({setApolloHover(t){e.apolloHover=t},setCursor(t){e.cursor!==t&&(e.cursor=t)}}))).actions((()=>({onClick(){}})))}(0,t).actions((e=>({afterAttach(){l.addDisposer(e,s.autorun((()=>{if(!e.lgv.initialized||e.regionCannotBeRendered())return;const t=e.seqTrackOverlayCanvas?.getContext("2d");if(!t)return;t.clearRect(0,0,e.lgv.dynamicBlocks.totalWidthPx,e.lgv.bpPerPx<=1?125:95);const{apolloHover:r,lgv:a,regions:i,sequenceRowHeight:o,theme:s}=e;if(!r)return;const{feature:l}=r;for(const[e,r]of i.entries())if("CDS"===l.type){const i=l.parent;if(!i)continue;const c=i.cdsLocations.find((e=>l.min===e.at(0)?.min&&l.max===e.at(-1)?.max));if(!c)continue;for(const i of c){const c=cm(n.getFrame(i.min,i.max,l.strand??1,i.phase),a.bpPerPx),u=(a.bpToPx({refName:r.refName,coord:i.min,regionNumber:e})?.offsetPx??0)-a.offsetPx,d=(i.max-i.min)/a.bpPerPx;dm(t,s,a.displayedRegions[e].reversed?u-d:u,o,c,d)}}else{const n=um(l.strand,a.bpPerPx),i=(a.bpToPx({refName:r.refName,coord:l.min,regionNumber:e})?.offsetPx??0)-a.offsetPx,c=l.length/a.bpPerPx;dm(t,s,a.displayedRegions[e].reversed?i-c:i,o,n,c)}}),{name:"LinearApolloDisplayRenderSeqHighlight"}))}})))}(0,t);return i.views((e=>({contextMenuItems(t){const{apolloHover:n}=e;if(!n||!t)return[];const{topLevelFeature:r}=n;return qm(r).getContextMenuItems(e)}}))).actions((e=>({startDrag(t,n,r){e.apolloDragging={start:t,current:t,feature:n,edge:r}},endDrag(){if(!e.apolloDragging)throw new Error("endDrag() called with no current drag in progress");const{current:t,edge:n,feature:r,start:a}=e.apolloDragging;if(Math.abs(t.x-a.x)<=4)return e.setDragging(),void e.setCursor();const{displayedRegions:i}=e.lgv,o=e.getAssemblyId(i[a.regionNumber].assemblyName);let s;if("max"===n){const e=r._id;s=new nr.LocationEndChange({typeName:"LocationEndChange",changedIds:[e],featureId:e,oldEnd:r.max,newEnd:t.bp,assembly:o})}else{const e=r._id;s=new nr.LocationStartChange({typeName:"LocationStartChange",changedIds:[e],featureId:e,oldStart:r.min,newStart:t.bp,assembly:o})}e.changeManager.submit(s),e.setDragging(),e.setCursor()}}))).actions((e=>({onMouseDown(t){const n=e.getMousePosition(t);lm(n)&&n.featureAndGlyphUnderMouse.glyph.onMouseDown(e,n,t)},onMouseMove(t){const n=e.getMousePosition(t);if(e.apolloDragging)return e.setCursor("col-resize"),void e.continueDrag(n,t);lm(n)?n.featureAndGlyphUnderMouse.glyph.onMouseMove(e,n,t):(e.setApolloHover(),e.setCursor())},onMouseLeave(t){e.setDragging(),e.setApolloHover();const n=e.getMousePosition(t);lm(n)&&n.featureAndGlyphUnderMouse.glyph.onMouseLeave(e,n,t)},onMouseUp(t){const n=e.getMousePosition(t);lm(n)&&n.featureAndGlyphUnderMouse.glyph.onMouseUp(e,n,t),e.apolloDragging&&e.endDrag()}}))).actions((e=>({afterAttach(){l.addDisposer(e,s.autorun((()=>{if(!e.lgv.initialized||e.regionCannotBeRendered())return;const t=e.overlayCanvas?.getContext("2d");if(!t)return;t.clearRect(0,0,e.lgv.dynamicBlocks.totalWidthPx,e.featuresHeight);const{apolloDragging:n,apolloHover:r}=e;if(!r)return;const{glyph:a}=r;a.drawHover(e,t),a.drawTooltip(e,t),n&&qm(n.feature.topLevelFeature).drawDragPreview(e,t)}),{name:"LinearApolloDisplayRenderMouseoverAndDrag"}))}})))}(0,t).props({tabularEditor:l.types.optional(ng,{})}).named("LinearApolloDisplay")}var ag={},ig=Il.exports;Object.defineProperty(ag,"__esModule",{value:!0});var og=ag.default=void 0;og=ag.default=(0,ig(Tl).default)((0,I.default.jsx)("path",{d:"m12 8-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"}),"ExpandLess");var sg={},lg=Il.exports;Object.defineProperty(sg,"__esModule",{value:!0});var cg=sg.default=void 0;cg=sg.default=(0,lg(Tl).default)((0,I.default.jsx)("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}),"ExpandMore");var ug={},dg=Il.exports;Object.defineProperty(ug,"__esModule",{value:!0});var fg=ug.default=void 0;fg=ug.default=(0,dg(Tl).default)((0,I.default.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"}),"Error");const hg=m.makeStyles()((e=>({canvasContainer:{position:"relative",left:0},canvas:{position:"absolute",left:0},ellipses:{textOverflow:"ellipsis",overflow:"hidden"},avatar:{position:"absolute",color:e.palette.warning.light,backgroundColor:e.palette.warning.contrastText}}))),pg=p.observer((function(e){const t=c.useTheme(),{model:r}=e,{apolloRowHeight:a,contextMenuItems:i,cursor:o,featuresHeight:s,isShown:l,onMouseDown:u,onMouseLeave:d,onMouseMove:p,onMouseUp:m,regionCannotBeRendered:g,session:_,setCanvas:y,setCollaboratorCanvas:v,setOverlayCanvas:b,setSeqTrackCanvas:w,setSeqTrackOverlayCanvas:x,setTheme:S,tabularEditor:k}=r,{classes:E}=hg(),A=n.getContainingView(r);f.useEffect((()=>{S(t)}),[t,S]);const[C,R]=f.useState(),[N,I]=f.useState([]),T=g();if(!l)return null;const{assemblyManager:O}=_;return L.default.createElement(L.default.Fragment,null,A.bpPerPx<=3?L.default.createElement("div",{className:E.canvasContainer,style:{width:A.dynamicBlocks.totalWidthPx,height:A.bpPerPx<=1?125:95}},L.default.createElement("canvas",{ref:async e=>{await Promise.resolve(),w(e)},width:A.dynamicBlocks.totalWidthPx,height:A.bpPerPx<=1?125:95,className:E.canvas,"data-testid":"seqTrackCanvas"}),L.default.createElement("canvas",{ref:async e=>{await Promise.resolve(),x(e)},width:A.dynamicBlocks.totalWidthPx,height:A.bpPerPx<=1?125:95,className:E.canvas,"data-testid":"seqTrackOverlayCanvas"})):null,L.default.createElement("div",{className:E.canvasContainer,style:{width:A.dynamicBlocks.totalWidthPx,height:s},onContextMenu:e=>{if(e.preventDefault(),N.length>0)I([]);else{const t=[e.clientX,e.clientY];R(t),I(i(t))}}},T?L.default.createElement(c.Alert,{severity:"warning",classes:{message:E.ellipses}},L.default.createElement(c.Tooltip,{title:T},L.default.createElement("div",null,T))):L.default.createElement(L.default.Fragment,null,L.default.createElement("canvas",{ref:async e=>{await Promise.resolve(),v(e)},width:A.dynamicBlocks.totalWidthPx,height:s,className:E.canvas,"data-testid":"collaboratorCanvas"}),L.default.createElement("canvas",{ref:async e=>{await Promise.resolve(),y(e)},width:A.dynamicBlocks.totalWidthPx,height:s,className:E.canvas,"data-testid":"canvas"}),L.default.createElement("canvas",{ref:async e=>{await Promise.resolve(),b(e)},width:A.dynamicBlocks.totalWidthPx,height:s,onMouseMove:p,onMouseLeave:d,onMouseDown:u,onMouseUp:m,onClick:()=>{k.showPane()},className:E.canvas,style:{cursor:o??"default"},"data-testid":"overlayCanvas"}),A.displayedRegions.flatMap(((e,t)=>{const i=O.get(e.assemblyName);return[..._.apolloDataStore.checkResults.values()].filter((t=>i?.isValidRefName(t.refSeq)&&i.getCanonicalRefName(t.refSeq)===e.refName&&n.doesIntersect2(e.start,e.end,t.start,t.end))).map((n=>{const i=(A.bpToPx({refName:e.refName,coord:n.start,regionNumber:t})?.offsetPx??0)-A.offsetPx,[o]=n.ids;if(!o)return null;const{topLevelFeature:s}=o,l=parent?r.getFeatureLayoutPosition(s)?.layoutRow??0:0;return L.default.createElement(c.Tooltip,{key:n._id,title:n.message},L.default.createElement(c.Avatar,{className:E.avatar,style:{top:l*a,left:i,height:a,width:a}},L.default.createElement(fg,null)))}))})),L.default.createElement(h.Menu,{open:N.length>0,onMenuItemClick:(e,t)=>{t(),I([])},onClose:()=>{I([])},TransitionProps:{onExit:()=>{I([])}},anchorReference:"anchorPosition",anchorPosition:C?{top:C[1],left:C[0]}:void 0,style:{zIndex:t.zIndex.tooltip},menuItems:N}))))})),mg=p.observer((function({model:e}){const{height:t}=e;return L.default.createElement("div",{style:{position:"absolute",left:0,top:t/2,width:"100%"}},L.default.createElement("hr",{style:{margin:0,top:0,color:"black"}}))})),gg=m.makeStyles()((e=>({shading:{background:c.alpha(e.palette.primary.main,.2),overflowY:"scroll",overflowX:"hidden"},details:{background:e.palette.background.paper},accordionControl:{height:12,width:"100%","&:hover":{background:e.palette.action.hover},display:"flex",alignItems:"center",justifyContent:"center"},accordionRoot:{background:e.palette.divider},resizeHandle:{width:"100%",height:4,position:"absolute",cursor:"row-resize",zIndex:100},expandIcon:{},title:{userSelect:"none"}}))),_g=({onResize:e})=>{const{classes:t}=gg(),n=f.useCallback((t=>{t.stopPropagation(),t.preventDefault(),e(t.movementY)}),[e]),r=f.useCallback((e=>{e.stopPropagation(),e.preventDefault(),window.removeEventListener("mousemove",n),window.removeEventListener("mouseup",r),window.removeEventListener("mouseleave",r)}),[n]);return L.default.createElement("div",{onMouseDown:e=>{e.stopPropagation(),window.addEventListener("mousemove",n),window.addEventListener("mouseup",r),window.addEventListener("mouseleave",r)},onClick:e=>{e.stopPropagation(),e.preventDefault()},className:t.resizeHandle})},yg=p.observer((function({onClick:e,onResize:t,open:n,title:r}){const{classes:a}=gg();return L.default.createElement("div",{className:a.accordionRoot},n&&t?L.default.createElement(_g,{onResize:t}):null,L.default.createElement("div",{className:a.accordionControl,onClick:e},L.default.createElement(n?og:cg,{className:a.expandIcon}),r?L.default.createElement(c.Typography,{className:a.title,variant:"caption",component:"span"},r):null))})),vg=p.observer((function({model:e,...t}){const{classes:n}=gg(),{height:r,isShown:a,selectedFeature:i,tabularEditor:o,toggleShown:s}=e,l=o.isShown?e.detailsHeight:0,c=a?r-l-24:0,u=f.useRef(null);return f.useEffect((()=>{!function(e,t){const{apolloRowHeight:n,selectedFeature:r}=e;if(t.current&&r){const a=e.getFeatureLayoutPosition(r);a&&t.current.scroll({top:(a.layoutRow+a.featureRow)*n,behavior:"smooth"})}}(e,u)}),[e,i]),L.default.createElement("div",{className:n.details,style:{height:r}},L.default.createElement(yg,{open:a,title:"Graphical",onClick:s}),L.default.createElement("div",{className:n.shading,ref:u,style:{height:c}},L.default.createElement(pg,{model:e,...t})),L.default.createElement(yg,{title:"Table",open:o.isShown,onClick:o.togglePane,onResize:t=>{e.setDetailsHeight(e.detailsHeight-t)}}),L.default.createElement("div",{style:{height:l}},L.default.createElement(tg,{model:e})))}));var bg={},wg=Il.exports;Object.defineProperty(bg,"__esModule",{value:!0});var xg=bg.default=void 0;xg=bg.default=(0,wg(Tl).default)((0,I.default.jsx)("path",{d:"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z"}),"Save");const Sg=l.types.model("JobsManager",{}).views((e=>({get jobStatusWidget(){const{widgets:t}=n.getSession(e);let r=t.get("JobsList");return r||(r=n.getSession(e).addWidget("JobsListWidget","JobsList")),r}}))).actions((e=>({update(t,n,r){e.jobStatusWidget.updateJobStatusMessage(t,n),r&&e.jobStatusWidget.updateJobProgressPct(t,r)},abortJob(t,r){const a=n.getSession(e);if(n.isSessionModelWithWidgets(a)){a.showWidget(e.jobStatusWidget),e.jobStatusWidget.updateJobStatusMessage(t,r??"Aborted unexpectedly");const n=e.jobStatusWidget.jobs.findIndex((e=>e.name===t));e.jobStatusWidget.addAbortedJob({...e.jobStatusWidget.jobs[n]}),e.jobStatusWidget.removeJob(t),a.notify("Job aborted","info")}},runJob(t){const r=n.getSession(e);n.isSessionModelWithWidgets(r)&&(r.showWidget(e.jobStatusWidget),e.jobStatusWidget.addJob(t))},done(t){const r=n.getSession(e);n.isSessionModelWithWidgets(r)&&(r.showWidget(e.jobStatusWidget),e.jobStatusWidget.removeJob(t.name),e.jobStatusWidget.addFinishedJob({name:t.name,statusMessage:"All operations successful",progressPct:100,cancelCallback:t.cancelCallback}))}})));class kg{clientStore;constructor(e){this.clientStore=e}}class Eg{dataStore;constructor(e){this.dataStore=e}recentChanges=[];async submit(e,t={}){const{addToRecents:r=!0,submitToBackend:a=!0,updateJobsManager:i=!1}=t,o=n.getSession(this.dataStore),s=new AbortController,{jobsManager:l}=n.getSession(this.dataStore),c={name:e.typeName,statusMessage:"Pre-validating",progressPct:0,cancelCallback:()=>{s.abort()}};i&&l.runJob(c);const u=await nr.validationRegistry.frontendPreValidate(e);if(!u.ok){const e=`Pre-validation failed: "${u.resultsMessages}"`;return i&&l.abortJob(c.name,e),void o.notify(e,"error")}try{await e.execute(this.dataStore)}catch(e){return i&&l.abortJob(c.name,String(e)),console.error(e),void o.notify(String(e),"error")}if((await nr.validationRegistry.frontendPostValidate(e,this.dataStore)).ok||await this.revert(e),a){i&&l.update(c.name,"Submitting to driver");const{collaborationServerDriver:n,getBackendDriver:r}=this.dataStore,a=z.isAssemblySpecificChange(e)?r(e.assembly):n;let s;try{s=await a.submitChange(e,t)}catch(t){return i&&l.abortJob(c.name,String(t)),console.error(t),o.notify(String(t),"error"),void await this.revert(e,!1)}if(!s.ok){const t=`Post-validation failed: "${u.resultsMessages}"`;return i&&l.abortJob(c.name,t),o.notify(t,"error"),void await this.revert(e,!1)}e.notification&&o.notify(e.notification,"success")}r&&this.recentChanges.push(e),i&&l.done(c)}async revert(e,t=!0){const n=e.getInverse();return this.submit(n,{submitToBackend:t,addToRecents:!1})}async revertLastChange(){const e=this.recentChanges.pop();if(e)return this.revert(e);n.getSession(this.dataStore).notify("No changes to undo!","warning")}}class Ag extends kg{inFlight=new Map;async fetch(e,t,n){return e.getFetcher({locationType:"UriLocation",uri:t.toString()})(t,n)}async searchFeatures(e,t){const n=this.clientStore.getInternetAccount(t[0]),{baseURL:r}=n,a=new URL("features/searchFeatures",r),i=new URLSearchParams({assemblies:t.join(","),term:e});a.search=i.toString();const o=a.toString(),s=await this.fetch(n,o);if(!s.ok){const e=await Yd(s,"searchFeatures failed");throw new Error(e)}return s.json()}async getFeatures(e){const{assemblyName:t,end:a,refName:i,start:o}=e,{assemblyManager:s}=n.getSession(this.clientStore),l=s.get(t);if(!l)throw new Error(`Could not find assembly with name "${t}"`);const{ids:c}=r.getConf(l,["sequence","metadata"]),u=c[i];if(!u)throw new Error(`Could not find refSeq "${i}"`);const d=this.clientStore.getInternetAccount(t),{baseURL:f}=d,h=new URL("features/getFeatures",f),p=new URLSearchParams({refSeq:u,start:String(o),end:String(a)});h.search=p.toString();const m=h.toString(),g=await this.fetch(d,m);if(!g.ok){const e=await Yd(g,"getFeatures failed");throw new Error(e)}return this.checkSocket(t,i,d),g.json()}checkSocket(e,t,n){const{socket:r}=n,a=n.retrieveToken(),i=`${e}-${t}`,o=new Eg(this.clientStore);r.hasListeners(i)||r.on(i,(async e=>{if(n.setLastChangeSequenceNumber(Number(e.changeSequence)),e.userSessionId!==a&&e.channel===i){const t=z.Change.fromJSON(e.changeInfo);await o.submit(t,{submitToBackend:!1})}}))}async getSequence(e){const t=`${e.refName}:${e.start}-${e.end}`,a=this.inFlight.get(t),{assemblyName:i,end:o,refName:s,start:l}=e,{assemblyManager:c}=n.getSession(this.clientStore),u=c.get(i);if(!u)throw new Error(`Could not find assembly with name "${i}"`);const{ids:d}=r.getConf(u,["sequence","metadata"]),f=d[s];if(!f)throw new Error(`Could not find refSeq "${s}"`);if(a)return{seq:await a,refSeq:f};let h=this.clientStore.assemblies.get(i);h||(h=this.clientStore.addAssembly(i));let p=h.refSeqs.get(f);p||(p=h.addRefSeq(f,s));const m=p.getSequence(l,o);if(m.length===o-l)return{seq:m,refSeq:f};const g=this.clientStore.getInternetAccount(i),{baseURL:_}=g,y=new URL("sequence",_),v=new URLSearchParams({refSeq:f,start:String(l),end:String(o)});y.search=v.toString();const b=y.toString(),w=this.getSeqFromServer(g,b,p,l,o);this.inFlight.set(t,w);const x=await w;return this.checkSocket(i,s,g),this.inFlight.delete(t),{seq:x,refSeq:f}}async getSeqFromServer(e,t,n,r,a){const i=await this.fetch(e,t);if(!i.ok){let e;try{e=await i.text()}catch{e=""}throw new Error(`getSequence failed: ${i.status} (${i.statusText})${e?` (${e})`:""}`)}const o=await i.text();return n.addSequence({sequence:o,start:r,stop:a}),o}async getRefNameAliases(e){const{assemblyManager:t}=n.getSession(this.clientStore);if(!t.get(e))throw new Error(`Could not find assembly with name "${e}"`);const r=this.clientStore.getInternetAccount(e),{baseURL:a}=r,i=new URL("refSeqs",a),o=new URLSearchParams({assembly:e});i.search=o.toString();const s=i.toString(),l=await this.fetch(r,s);if(!l.ok){let e;try{e=await l.text()}catch{e=""}throw new Error(`getRefNameAliases failed: ${l.status} (${l.statusText})${e?` (${e})`:""}`)}return(await l.json()).map((e=>({refName:e.name,aliases:[e._id,...e.aliases],uniqueId:`alias-${e._id}`})))}async getRegions(e){const{assemblyManager:t}=n.getSession(this.clientStore);if(!t.get(e))throw new Error(`Could not find assembly with name "${e}"`);const r=this.clientStore.getInternetAccount(e),{baseURL:a}=r,i=new URL("refSeqs",a),o=new URLSearchParams({assembly:e});i.search=o.toString();const s=i.toString(),l=await this.fetch(r,s);if(!l.ok){let e;try{e=await l.text()}catch{e=""}throw new Error(`getRegions failed: ${l.status} (${l.statusText})${e?` (${e})`:""}`)}return(await l.json()).map((e=>({refName:e.name,start:0,end:e.length})))}getAssemblies(e){const{assemblyManager:t}=n.getSession(this.clientStore);return t.assemblies.filter((t=>{const n=r.getConf(t,["sequence","metadata"]);return!(!(n&&n.apollo&&n.internetAccountConfigId)||e&&n.internetAccountConfigId!==e)}))}async submitChange(e,t={}){const{internetAccountId:n}=t,r=this.clientStore.getInternetAccount("assembly"in e?e.assembly:void 0,n),{baseURL:a}=r,i=new URL("changes",a).href,o=await this.fetch(r,i,{method:"POST",body:JSON.stringify(e.toJSON()),headers:{"Content-Type":"application/json"}});if(!o.ok){const e=await Yd(o,"submitChange failed");throw new Error(e)}const s=new nr.ValidationResultSet;return o.ok||(s.ok=!1),s}}class Cg extends kg{async getFeatures(){return[[],[]]}async getSequence(e){const{assemblyName:t,end:n,refName:r,start:a}=e,i=this.clientStore.assemblies.get(t);if(!i)return{seq:"",refSeq:r};const o=i.refSeqs.get(r);return o?{seq:o.getSequence(a,n),refSeq:r}:{seq:"",refSeq:r}}async getRefNameAliases(e){const t=this.clientStore.assemblies.get(e),n=[];if(!t)return n;for(const[,e]of t.refSeqs)n.push({refName:e.name,aliases:[e._id],uniqueId:`alias-${e._id}`});return n}async getRegions(e){const t=this.clientStore.assemblies.get(e);if(!t)return[];const n=[];for(const[,r]of t.refSeqs)n.push({assemblyName:e,refName:r.name,start:r.sequence[0].start,end:r.sequence[0].stop});return n}getAssemblies(){const{assemblyManager:e}=n.getSession(this.clientStore);return e.assemblies.filter((e=>{const t=r.getConf(e,["sequence","metadata"]);return Boolean(t&&t.apollo&&!t.file&&!t.internetAccountConfigId)}))}async submitChange(e,t={}){return new nr.ValidationResultSet}async searchFeatures(e,t){return[]}}class Rg extends kg{async loadAssembly(e){const{assemblyManager:t}=n.getSession(this.clientStore),a=t.get(e);if(!a)throw new Error(`Assembly ${e} not found`);const{file:i}=r.getConf(a,["sequence","metadata"]),o=require("node:fs");return Wd(e,await o.promises.readFile(i,"utf8"),this.clientStore)}async getAssembly(e){let t=this.clientStore.assemblies.get(e);return t||(t=await this.loadAssembly(e)),t}async getRefNameAliases(e){const t=await this.getAssembly(e),n=[];for(const[,e]of t.refSeqs)n.push({refName:e.name,aliases:[e._id],uniqueId:`alias-${e._id}`});return n}async getFeatures(e){return await this.getAssembly(e.assemblyName),[[],[]]}async getSequence(e){const{assemblyName:t,end:n,refName:r,start:a}=e,i=(await this.getAssembly(t)).refSeqs.get(r);if(!i)throw new Error(`refSeq ${r} not found in client data store`);return{seq:i.getSequence(a,n),refSeq:r}}async getRegions(e){const t=await this.getAssembly(e),n=[];for(const[,r]of t.refSeqs)n.push({assemblyName:e,refName:r.name,start:r.sequence[0].start,end:r.sequence[0].stop});return n}getAssemblies(){const{assemblyManager:e}=n.getSession(this.clientStore);return e.assemblies.filter((e=>{const t=r.getConf(e,["sequence","metadata"]);return Boolean(t&&t.apollo&&!t.internetAccountConfigId&&t.file)}))}async submitChange(e){if(!z.isAssemblySpecificChange(e))throw new Error(`Cannot use this type of change with local file: "${e.typeName}"`);const{assemblyManager:t}=n.getSession(this.clientStore),a=t.get(e.assembly);if(!a)throw new Error(`Could not find assembly with name "${e.assembly}"`);const{file:i}=r.getConf(a,["sequence","metadata"]),o=this.clientStore.assemblies.get(e.assembly);if(!o)throw new Error(`Could not find assembly in client with name "${e.assembly}"`);const s=new Set(...o.refSeqs.keys()),{checkResults:c}=this.clientStore;for(const e of c.values())s.has(e.refSeq)&&c.delete(e._id);const u=await Kd(o);this.clientStore.addCheckResults(u);const d=[{directive:"gff-version",value:"3"}];for(const[,e]of o.refSeqs)d.push({directive:"sequence-region",value:`${e.name} 1 ${e.sequence[0].stop}`});for(const e of o.comments)d.push({comment:e});for(const[,e]of o.refSeqs){const{features:t}=e;for(const[,e]of t)d.push(nr.makeGFF3Feature(l.getSnapshot(e)))}for(const[,e]of o.refSeqs){const[t]=e.sequence,n=nr.splitStringIntoChunks(t.sequence,80).join("\n");d.push({id:e.name,description:e.description,sequence:n})}const f=Vd.formatSync(d),h=require("node:fs");return await h.promises.writeFile(i,f,"utf8"),new nr.ValidationResultSet}async searchFeatures(e,t){return[]}}function Ng(e,t){const a=new AbortController,{signal:i}=a,o=e.evaluateExtensionPoint("Apollo-extendAnnotationFeature",Lp.AnnotationFeatureModel),c=function(e){return l.types.model("ClientDataStore",{typeName:l.types.optional(l.types.literal("Client"),"Client"),assemblies:l.types.map(Lp.ApolloAssembly),checkResults:l.types.map(Lp.CheckResult)}).views((t=>({get internetAccounts(){return l.getRoot(t).internetAccounts},get pluginConfiguration(){return l.getRoot(t).jbrowse.configuration.ApolloPlugin},getFeature:n=>l.resolveIdentifier(e,t.assemblies,n)}))).actions((e=>({addAssembly(t,n){const r={_id:t,refSeqs:{}};return n&&(r.backendDriverType=n),e.assemblies.put(r)},addFeature(t,n){const r=e.assemblies.get(t);if(!r)throw new Error(`Could not find assembly "${t}" to add feature "${n._id}"`);const a=r.refSeqs.get(n.refSeq);if(!a)throw new Error(`Could not find refSeq "${n.refSeq}" to add feature "${n._id}"`);a.features.put(n)},deleteFeature(t){const n=e.getFeature(t);if(!n)throw new Error(`Could not find feature "${t}" to delete`);const{_id:r,parent:a}=n;a?a.deleteChild(t):l.getParentOfType(n,Lp.ApolloRefSeq).deleteFeature(r)},deleteAssembly(t){e.assemblies.delete(t)},addCheckResult(t){e.checkResults.put(t)},addCheckResults(t){for(const n of t)e.checkResults.has(n._id)||e.checkResults.put(n)},deleteCheckResult(t){e.checkResults.delete(t)}}))).volatile((e=>({changeManager:new Eg(e),collaborationServerDriver:new Ag(e),inMemoryFileDriver:new Cg(e),desktopFileDriver:n.isElectron?new Rg(e):void 0,ontologyManager:th.create()}))).actions((e=>({afterCreate(){l.addDisposer(e,s.autorun((()=>{const{ontologyManager:t,pluginConfiguration:n}=e,a=n.ontologies;for(const e of a||[]){const[n,a,i,o]=[r.readConfObject(e,"name"),r.readConfObject(e,"version"),r.readConfObject(e,"source"),r.readConfObject(e,"textIndexFields")];t.findOntology(n)||t.addOntology(n,a,i,{textIndexing:{indexFields:o}})}})))}}))).views((e=>({getBackendDriver(t){if(!t)return e.collaborationServerDriver;const a=n.getSession(e),{assemblyManager:i}=a,o=i.get(t);if(!o)return e.collaborationServerDriver;const{file:s,internetAccountConfigId:l}=r.getConf(o,["sequence","metadata"]);return n.isElectron&&s?e.desktopFileDriver:l?e.collaborationServerDriver:e.inMemoryFileDriver},getInternetAccount(t,a){if(!(t??a))throw new Error("Must provide either assemblyName or internetAccountId");let i=a;if(t&&!i){const{assemblyManager:a}=n.getSession(e),o=a.get(t);if(!o)throw new Error(`No assembly found with name ${t}`);({internetAccountConfigId:i}=r.getConf(o,["sequence","metadata"]))}const{internetAccounts:o}=e,s=o.find((e=>e.internetAccountId===i));if(!s)throw new Error(`No InternetAccount found with config id ${a}`);return s}}))).actions((e=>({loadFeatures:l.flow((function*(t){for(const n of t){const t=e.getBackendDriver(n.assemblyName);if(!t)return;const[r,a]=yield t.getFeatures(n);if(0===r.length)continue;const{assemblyName:i,refName:o}=n;let s=e.assemblies.get(i);s||(s=e.assemblies.put({_id:i,refSeqs:{}}));const[l]=r;let c=s.refSeqs.get(l.refSeq);c||(c=s.refSeqs.put({_id:l.refSeq,name:o,features:{}}));for(const e of r)c.features.has(e._id)||c.features.put(e);e.addCheckResults(a)}})),loadRefSeq:l.flow((function*(t){for(const n of t){const t=e.getBackendDriver(n.assemblyName);if(!t)return;const{refSeq:r,seq:a}=yield t.getSequence(n),{assemblyName:i,end:o,refName:s,start:l}=n;let c=e.assemblies.get(i);c||(c=e.assemblies.put({_id:i,refSeqs:{}}));let u=c.refSeqs.get(r);u||(u=c.refSeqs.put({_id:r,name:s,sequence:[]})),u.addSequence({start:l,stop:o,sequence:a})}}))})))}(o),u=t.props({apolloDataStore:l.types.optional(c,{typeName:"Client"}),apolloSelectedFeature:l.types.safeReference(o),jobsManager:l.types.optional(Sg,{})}).extend((()=>{const e=s.observable.array([]);return{views:{get collaborators(){return e}},actions:{addOrUpdateCollaborator(t){const n=e.find((e=>e.id===t.id));n?n.locations=t.locations:e.push(t)}}}})).actions((e=>({apolloSetSelectedFeature(t){e.apolloSelectedFeature=t},addApolloTrackConfig(t,n){const a=`apollo_track_${t.name}`;e.tracks.some((e=>e.trackId===a))||e.addTrackConf({type:"ApolloTrack",trackId:a,name:`Annotations (${r.getConf(t,"displayName")||t.name})`,assemblyNames:[t.name],textSearching:{textSearchAdapter:{type:"ApolloTextSearchAdapter",trackId:a,assemblyNames:[t.name],textSearchAdapterId:`apollo_search_${t.name}`,...n?{baseURL:{uri:n,locationType:"UriLocation"}}:{}}},displays:[{type:"LinearApolloDisplay",displayId:`${a}-LinearApolloDisplay`},{type:"SixFrameFeatureDisplay",displayId:`${a}-SixFrameFeatureDisplay`}]})},broadcastLocations(){const{internetAccounts:t}=l.getRoot(e),n=[];for(const t of e.views){if("LinearGenomeView"!==t.type)return;const e=t;if(e.initialized){const{dynamicBlocks:t}=e;t.forEach((e=>{if(void 0!==e.regionNumber){const{assemblyName:t,end:r,refName:a,start:i}=e;n.push({assemblyName:t,refName:a,start:i,end:r})}}))}}if(0===n.length){for(const e of t)"baseURL"in e&&e.postUserLocation([]);return}const r=[];for(const e of t)if("baseURL"in e){for(const e of n)r.push({assemblyId:e.assemblyName,refSeq:e.refName,start:e.start,end:e.end});e.postUserLocation(r)}}}))).actions((e=>({afterCreate:l.flow((function*(){const t=l.getSnapshot(e),{id:n,name:r}=t;l.applySnapshot(e,{name:r,id:n});const{internetAccounts:a,jbrowse:o}=l.getRoot(e);s.autorun((()=>{const t=[];for(const n of e.views){if("LinearGenomeView"!==n.type)return;const e=n;if(e.initialized){const{dynamicBlocks:n}=e;n.forEach((e=>{if(void 0!==e.regionNumber){const{assemblyName:n,end:r,refName:a,start:i}=e;t.push({assemblyName:n,refName:a,start:i,end:r})}}))}}if(0===t.length){for(const e of a)"baseURL"in e&&e.postUserLocation([]);return}const n=[];for(const e of a)if("baseURL"in e){for(const e of t)n.push({assemblyId:e.assemblyName,refSeq:e.refName,start:e.start,end:e.end});e.postUserLocation(n)}}),{name:"ApolloSession"});for(const n of a){if("ApolloInternetAccount"!==n.type)continue;const{baseURL:r}=n,a=new URL("jbrowse/config.json",r).href,s=n.getFetcher({locationType:"UriLocation",uri:a});let c,u;try{c=yield s(a,{signal:i})}catch(e){console.error(e);continue}if(c.ok){try{u=yield c.json()}catch(e){console.error(e);continue}l.applySnapshot(o,u),l.applySnapshot(e,t)}else{const e=yield Yd(c,"Failed to fetch assemblies");console.error(e)}}})),beforeDestroy(){a.abort("destroying session model")}}))).views((e=>{const t=e.getTrackActionMenuItems;return{getTrackActionMenuItems(n){if("ApolloTrack"===n.type||"ReferenceSequenceTrack"===n.type)return t?.(n);const a=r.readConfObject(n,"trackId");return a.endsWith("-sessionTrack")?[...t?.(n)??[],{label:"Save track to Apollo",onClick:async()=>{const{internetAccounts:t,jbrowse:r}=l.getRoot(e),i=l.getSnapshot(r);let o;o=nr.filterJBrowseConfig(i),0===Object.keys(o).length&&(o=void 0);let s=l.getSnapshot(n);const c=a.slice(0,a.length-13);s={...s,trackId:c};for(const n of t){if("ApolloInternetAccount"!==n.type)continue;const t=new nr.ImportJBrowseConfigChange({typeName:"ImportJBrowseConfigChange",oldJBrowseConfig:o,newJBrowseConfig:{...o,tracks:o?.tracks&&[...o.tracks,s]}}),{internetAccountId:r}=n;await e.apolloDataStore.changeManager.submit(t,{internetAccountId:r});const{notify:a}=e;a("Track added","success")}},icon:xg}]:[...t?.(n)??[],{label:"Remove track from Apollo",onClick:async()=>{const{internetAccounts:t,jbrowse:n}=l.getRoot(e),r=l.getSnapshot(n);let i;i=nr.filterJBrowseConfig(r),0===Object.keys(i).length&&(i=void 0);const o=i?.tracks?.filter((e=>e.trackId!==a));for(const n of t){if("ApolloInternetAccount"!==n.type)continue;const t=new nr.ImportJBrowseConfigChange({typeName:"ImportJBrowseConfigChange",oldJBrowseConfig:i,newJBrowseConfig:{...i,tracks:o}}),{internetAccountId:r}=n;await e.apolloDataStore.changeManager.submit(t,{internetAccountId:r});const{notify:a}=e;a("Track removed","success")}},icon:xg}]}}}));return l.types.snapshotProcessor(u,{postProcessor(e){e.apolloSelectedFeature=void 0;const t=Object.fromEntries(Object.entries(e.apolloDataStore.assemblies).filter((([,e])=>"InMemoryFileDriver"===e.backendDriverType)));return e.apolloDataStore={typeName:"Client",assemblies:t,checkResults:{}},e}})}const Ig={0:2,1:1,2:0},Tg={3:0,4:1,5:2};function Og(e,t){const a=e.getPlugin("LinearGenomeViewPlugin"),{BaseLinearDisplay:i}=a.exports;return i.named("SixFrameFeatureDisplay").props({type:l.types.literal("SixFrameFeatureDisplay"),configuration:r.ConfigurationReference(t),apolloRowHeight:20,detailsMinHeight:200,showStartCodons:!1,showStopCodons:!0,showIntronLines:!0}).volatile((()=>({apolloFeatureUnderMouse:void 0,apolloRowUnderMouse:void 0}))).views((e=>{const{configuration:t,renderProps:n}=e;return{renderProps:()=>({...n(),...k.getParentRenderProps(e),config:t.renderer})}})).views((e=>({get regions(){let t;try{({blockDefinitions:t}=e)}catch{return[]}return t.contentBlocks.map((({assemblyName:e,end:t,refName:n,start:r})=>({assemblyName:e,refName:n,start:r,end:t})))},regionCannotBeRendered(){const t=n.getContainingView(e);if(t&&t.bpPerPx>=200)return"Zoom in to see annotations"},get session(){return n.getSession(e)}}))).actions((e=>{let t=[];return{afterAttach(){l.addDisposer(e,s.autorun((()=>{const r=n.getSession(e);if(n.getContainingView(e).initialized){if(e.regionCannotBeRendered())return;const n=[],a=[];for(const r of e.blockDefinitions.contentBlocks)n.push(r.key),t.includes(r.key)||a.push(r);r.apolloDataStore.loadFeatures(a.map((({assemblyName:e,end:t,refName:n,start:r})=>({assemblyName:e,refName:n,start:r,end:t})))),r.apolloDataStore.loadRefSeq(a.map((({assemblyName:e,end:t,refName:n,start:r})=>({assemblyName:e,refName:n,start:r,end:t})))),t=n}}),{name:"SixFrameFeatureDisplay"}))}}})).views((e=>({get rendererTypeName(){return e.configuration.renderer.type},get changeManager(){return n.getSession(e).apolloDataStore.changeManager},get sequence(){const{regions:t}=e,r=n.getSession(e),a=new Map;for(const e of t){const t=r.apolloDataStore.assemblies.get(e.assemblyName),n=t?.getByRefName(e.refName),i=n?.getSequence(e.start,e.end);a.set(e.start,i??"")}return a},get features(){const{regions:t}=e,r=n.getSession(e),a=new Map;for(const e of t){const t=r.apolloDataStore.assemblies.get(e.assemblyName),n=t?.getByRefName(e.refName);let i=a.get(e.refName);i||(i=new Map,a.set(e.refName,i));for(const[t,r]of n?.features.entries()??new Map)e.start<r.end&&e.end>r.start&&i.set(t,r)}return a},get featuresMinMax(){const e={};for(const[t,n]of this.features||[]){let r,a;for(const[,e]of n)void 0===r&&({min:r}=e),void 0===a&&({max:a}=e),e.min<r&&({min:r}=e),e.max>a&&({max:a}=e);void 0!==r&&void 0!==a&&(e[t]=[r,a])}return e},get codonLayout(){const e=new Map;let t="",r=0;for(const[e,n]of this.sequence||[])n&&(t||(r=e),t+=n);for(let a=0;a<6;a++){const i=[],o=[],s=a in Tg;let l,c,u;s?(l=(t.length+r)%3,c=(Tg[a]+l+3)%3,u=n.reverse(t).slice(c)):(l=3-r%3,c=(Ig[a]+l+3)%3,u=t.slice(c));for(let e=0;e<u.length;e+=3){const t=u.slice(e,e+3),a=s?n.reverse(n.revcom(t)):t,l=s?r+u.length-(3+e):r+e+c;n.defaultStarts.includes(a.toUpperCase())?i.push(l):n.defaultStops.includes(a.toUpperCase())&&o.push(l)}e.set(a,{starts:i,stops:o})}return e},get featureLayout(){const e=new Map;for(const[t,n]of this.features||[]){if(!n)continue;const r=this.featuresMinMax[t];if(!r)continue;const[a,i]=r,o=[],s=6;for(let t=0;t<s;t++){const t=o.length;o[t]=Array.from({length:i-a}),e.set(t,[])}for(const t of[...n.values()].sort(((e,t)=>{const{max:n,min:r}=e,{max:a,min:i}=t;return r-i||n-a})))for(const[,n]of t.children??new Map)if("mRNA"===n.type)for(const[,r]of n.children||new Map){let a;if("CDS"===r.type){let i;r.discontinuousLocations.length>0?({discontinuousLocations:i}=r):i=[r];for(const r of i){const i=r.start+3,o=r.end-3;for(const[s,{stops:l}]of this.codonLayout)if(s<3&&1===t.strand||s>=3&&-1===t.strand){const t=l.filter((e=>e>=i&&e<=o));if(0===t.length){a=s;const t=e.get(a);t?.push([n.featureId,r]);break}}}}}}return e},getAssemblyId(t){const{assemblyManager:r}=n.getSession(e),a=r.get(t);if(!a)throw new Error(`Could not find assembly named ${t}`);return a.name},get selectedFeature(){return n.getSession(e).apolloSelectedFeature},get setSelectedFeature(){return n.getSession(e).apolloSetSelectedFeature}}))).actions((e=>({setSelectedFeature(t){n.getSession(e).apolloSetSelectedFeature(t)},setApolloFeatureUnderMouse(t){e.apolloFeatureUnderMouse=t},setApolloRowUnderMouse(t){e.apolloRowUnderMouse=t},toggleShowStartCodons(){e.showStartCodons=!e.showStartCodons},toggleShowStopCodons(){e.showStopCodons=!e.showStopCodons},toggleShowIntronLines(){e.showIntronLines=!e.showIntronLines}}))).views((e=>({get highestRow(){return 0===e.featureLayout.size?0:Math.max(...e.featureLayout.keys())},get featuresHeight(){return(this.highestRow+1)*e.apolloRowHeight},get detailsHeight(){return Math.max(e.detailsMinHeight,e.height-this.featuresHeight)},trackMenuItems:()=>[{label:"Show start codons",type:"checkbox",checked:e.showStartCodons,onClick:()=>{e.toggleShowStartCodons()}},{label:"Show stop codons",type:"checkbox",checked:e.showStopCodons,onClick:()=>{e.toggleShowStopCodons()}},{label:"Show intron lines",type:"checkbox",checked:e.showIntronLines,onClick:()=>{e.toggleShowIntronLines()}}]})))}var Fg=r.ConfigurationSchema("ApolloRefNameAliasAdapter",{assemblyId:{type:"string",defaultValue:""}},{explicitlyTyped:!0});const Lg="undefined"==typeof sessionStorage;class Dg extends x.BaseAdapter{refNameAliases;async getRefNameAliases(){const e=r.readConfObject(this.config,"assemblyId");if(!Lg){const t=this.pluginManager?.rootModel?.session?.apolloDataStore;if(!t)throw new Error("No Apollo data store found");const n=t.getBackendDriver(e);return await n.getRefNameAliases(e)}const t=await new Promise(((t,n)=>{const r=setTimeout((()=>{n(new Error("timeout"))}),2e4),a=Mh(),i=e=>{const n=e.data;(function(e){return"object"==typeof e&&null!==e&&"apollo"in e&&!0===e.apollo&&"refNameAliases"in e})(n)&&n.messageId===a&&(clearTimeout(r),removeEventListener("message",i),t(n.refNameAliases))};addEventListener("message",i),rpcServer.emit("apollo",{apollo:!0,method:"getRefNameAliases",assembly:e,messageId:a})}));return this.refNameAliases=t,t}async freeResources(){}}const Mg="WorkerGlobalScope"in globalThis;for(const[e,t]of Object.entries(nr.changes))z.changeRegistry.registerChange(e,t);const Pg=new nr.CDSCheck;z.checkRegistry.registerCheck(Pg.name,Pg),nr.validationRegistry.registerValidation(new nr.CoreValidation),nr.validationRegistry.registerValidation(new nr.ParentChildValidation),e.default=class extends C.default{name="ApolloPlugin";version="0.1.19";configurationSchema=bp;install(e){!function(e){e.addAdapterType((()=>new q.default({name:"ApolloSequenceAdapter",configSchema:up,adapterMetadata:{category:void 0,hiddenFromGUI:!0,description:void 0},AdapterClass:cp})))}(e),function(e){e.addAdapterType((()=>new q.default({name:"ApolloRefNameAliasAdapter",configSchema:Fg,adapterMetadata:{category:void 0,hiddenFromGUI:!0,description:void 0},AdapterClass:Dg})))}(e),function(e){e.addTextSearchAdapterType((()=>new a.TextSearchAdapterType({name:"ApolloTextSearchAdapter",displayName:"Apollo text search adapter",configSchema:vp,AdapterClass:yp,description:"Apollo Text Search adapter"})))}(e),e.addWidgetType((()=>{const e=r.ConfigurationSchema("ApolloFeatureDetailsWidget",{});return new a.WidgetType({name:"ApolloFeatureDetailsWidget",heading:"Apollo feature details",configSchema:e,stateModel:Up,ReactComponent:Fp})})),e.addWidgetType((()=>{const e=r.ConfigurationSchema("ApolloTranscriptDetails",{});return new a.WidgetType({name:"ApolloTranscriptDetails",heading:"Apollo transcript details",configSchema:e,stateModel:zp,ReactComponent:Xp})})),e.addTrackType((()=>{const t=r.ConfigurationSchema("ApolloTrack",{adapter:""},{baseConfiguration:a.createBaseTrackConfig(e),explicitIdentifier:"trackId"});return new a.TrackType({name:"ApolloTrack",configSchema:t,stateModel:a.createBaseTrackModel(e,"ApolloTrack",t)})})),e.addInternetAccountType((()=>new a.InternetAccountType({name:"ApolloInternetAccount",configSchema:Ll,stateModel:np(Ll)}))),e.addDisplayType((()=>{const t=function(e){const t=e.getPlugin("LinearGenomeViewPlugin"),{baseLinearDisplayConfigSchema:n}=t.exports;return r.ConfigurationSchema("LinearApolloDisplay",{height:{type:"number",defaultValue:500}},{baseConfiguration:n,explicitlyTyped:!0})}(e);return new a.DisplayType({name:"LinearApolloDisplay",configSchema:t,stateModel:rg(0,t),trackType:"ApolloTrack",viewType:"LinearGenomeView",ReactComponent:vg})})),e.addDisplayType((()=>{const t=function(e){const t=e.getPlugin("LinearGenomeViewPlugin"),{baseLinearDisplayConfigSchema:n}=t.exports;return r.ConfigurationSchema("SixFrameFeatureDisplay",{renderer:hp,height:{type:"number",defaultValue:120}},{baseConfiguration:n,explicitlyTyped:!0})}(e),n=function(e){const t=e.getPlugin("LinearGenomeViewPlugin");if(!t)throw new Error("LinearGenomeView plugin not found");const{BaseLinearDisplayComponent:n}=t.exports;return p.observer((function({model:e,...t}){const{classes:r}=gg(),{height:a,selectedFeature:i}=e;let{detailsHeight:o}=e;return i||(o=0),L.default.createElement("div",{style:{height:e.height}},L.default.createElement("div",{className:r.shading,style:{height:a-o}},L.default.createElement(n,{model:e,...t})),L.default.createElement("div",{className:"testTrackLines"},L.default.createElement(mg,{model:e})))}))}(e);return new a.DisplayType({name:"SixFrameFeatureDisplay",configSchema:t,stateModel:Og(e,t),trackType:"ApolloTrack",viewType:"LinearGenomeView",ReactComponent:n})})),e.addRendererType((()=>new pp({name:"ApolloSixFrameRenderer",ReactComponent:fp,configSchema:hp,pluginManager:e}))),e.addToExtensionPoint("Core-extendSession",Ng.bind(this,e)),e.addToExtensionPoint("Core-extendPluggableElement",(e=>{if("LinearGenomeView"===e.name){const{stateModel:t}=e,r=t.views((e=>{const t=e.rubberBandMenuItems;return{rubberBandMenuItems:()=>[...t(),{label:"Add new feature",icon:Fl,onClick:()=>{const t=n.getSession(e),{leftOffset:r,rightOffset:a}=e,i=e.getSelectedRegions(r,a);t.queueDialog((e=>[ch,{session:t,handleClose:()=>{e()},region:i[0],changeManager:t.apolloDataStore.changeManager}]))}}]}}));e.stateModel=r}return e})),e.addToExtensionPoint("Core-extendPluggableElement",wp),Mg||e.addToExtensionPoint("Core-extendWorker",(t=>"on"in t&&t.on?(t.on("apollo",(async n=>{if("object"!=typeof(r=n)||null===r||!("apollo"in r)||!0!==r.apollo)return;var r;const{apollo:a,messageId:i,method:o}=n;switch(o){case"getSequence":{const{region:r}=n,{assemblyName:o}=r,s=e.rootModel?.session?.apolloDataStore;if(!s)break;const l=s.getBackendDriver(o),{seq:c}=await l.getSequence(r);t.workers[0].postMessage({apollo:a,messageId:i,sequence:c});break}case"getRegions":{const{assembly:r}=n,o=e.rootModel?.session?.apolloDataStore;if(!o)break;const s=o.getBackendDriver(r),l=await s.getRegions(r);t.workers[0].postMessage({apollo:a,messageId:i,regions:l});break}case"getRefNameAliases":{const{assembly:r}=n,o=e.rootModel?.session?.apolloDataStore;if(!o)break;const s=o.getBackendDriver(r),l=await s.getRefNameAliases(r);t.workers[0].postMessage({apollo:a,messageId:i,refNameAliases:l});break}}})),t):t))}configure(e){n.isAbstractMenuManager(e.rootModel)&&(e.rootModel.appendToMenu("Apollo",{label:"Download GFF3",onClick:e=>{e.queueDialog((t=>[mh,{session:e,handleClose:()=>{t()}}]))}}),e.rootModel.appendToMenu("Apollo",{label:"Manage Checks",onClick:e=>{e.queueDialog((t=>[yh,{session:e,handleClose:()=>{t()}}]))}}),e.rootModel.appendToMenu("Apollo",{label:"View Change Log",onClick:e=>{e.queueDialog((t=>[jh,{session:e,handleClose:()=>{t()}}]))}}),e.rootModel.appendToMenu("Apollo",{label:"Open local GFF3 file",onClick:e=>{e.queueDialog((t=>[Ph,{session:e,handleClose:()=>{t()},inMemoryFileDriver:e.apolloDataStore.inMemoryFileDriver}]))}}),e.rootModel.appendToMenu("Apollo",{label:"View check results",onClick:e=>{e.queueDialog((t=>[Gh,{session:e,handleClose:()=>{t()}}]))}}),e.rootModel.appendToMenu("Apollo",{label:"Log out",onClick:e=>{e.queueDialog((t=>[_h,{session:e,handleClose:()=>{t()}}]))}}))}},Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@jbrowse/core/Plugin"),require("@jbrowse/core/util"),require("@jbrowse/core/configuration"),require("@jbrowse/core/pluggableElementTypes"),require("@mui/material/utils"),require("react/jsx-runtime"),require("mobx"),require("mobx-state-tree"),require("@mui/material"),require("@mui/material/InputAdornment"),require("@mui/material/LinearProgress"),require("react"),require("@jbrowse/core/ui"),require("mobx-react"),require("tss-react/mui"),require("@jbrowse/core/util/types/mst"),require("@jbrowse/core/util/io"),require("@mui/material/Checkbox"),require("@mui/material/FormControlLabel"),require("@mui/x-data-grid"),require("@jbrowse/core/pluggableElementTypes/AdapterType"),require("@jbrowse/core/data_adapters/BaseAdapter"),require("@jbrowse/core/util/rxjs"),require("@jbrowse/core/util/tracks")):"function"==typeof define&&define.amd?define(["exports","@jbrowse/core/Plugin","@jbrowse/core/util","@jbrowse/core/configuration","@jbrowse/core/pluggableElementTypes","@mui/material/utils","react/jsx-runtime","mobx","mobx-state-tree","@mui/material","@mui/material/InputAdornment","@mui/material/LinearProgress","react","@jbrowse/core/ui","mobx-react","tss-react/mui","@jbrowse/core/util/types/mst","@jbrowse/core/util/io","@mui/material/Checkbox","@mui/material/FormControlLabel","@mui/x-data-grid","@jbrowse/core/pluggableElementTypes/AdapterType","@jbrowse/core/data_adapters/BaseAdapter","@jbrowse/core/util/rxjs","@jbrowse/core/util/tracks"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).JBrowsePluginApollo={},e.JBrowseExports["@jbrowse/core/Plugin"],e.JBrowseExports["@jbrowse/core/util"],e.JBrowseExports["@jbrowse/core/configuration"],e.JBrowseExports["@jbrowse/core/pluggableElementTypes"],e.JBrowseExports["@mui/material/utils"],e.JBrowseExports["react/jsx-runtime"],e.JBrowseExports.mobx,e.JBrowseExports["mobx-state-tree"],e.JBrowseExports["@mui/material"],e.JBrowseExports["@mui/material/InputAdornment"],e.JBrowseExports["@mui/material/LinearProgress"],e.JBrowseExports.react,e.JBrowseExports["@jbrowse/core/ui"],e.JBrowseExports["mobx-react"],e.JBrowseExports["tss-react/mui"],e.JBrowseExports["@jbrowse/core/util/types/mst"],e.JBrowseExports["@jbrowse/core/util/io"],e.JBrowseExports["@mui/material/Checkbox"],e.JBrowseExports["@mui/material/FormControlLabel"],e.JBrowseExports["@mui/x-data-grid"],e.JBrowseExports["@jbrowse/core/pluggableElementTypes/AdapterType"],e.JBrowseExports["@jbrowse/core/data_adapters/BaseAdapter"],e.JBrowseExports["@jbrowse/core/util/rxjs"],e.JBrowseExports["@jbrowse/core/util/tracks"])}(this,(function(e,t,n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b,w,x,S,k){"use strict";function E(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function A(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,t}var C=E(t),R=E(n),N=E(i),I=E(o),T=E(l),O=E(u),F=E(d),L=E(f),D=A(f),M=E(y),P=E(v),q=E(w),j="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function B(e){if(e.__esModule)return e;var t=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(e).forEach((function(n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})})),t}function U(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var z={};function G(e){var t,n;function r(t,n){try{var i=e[t](n),o=i.value,s=o instanceof H;Promise.resolve(s?o.v:o).then((function(n){if(s){var l="return"===t?"return":"next";if(!o.k||n.done)return r(l,n);n=e[l](n).value}a(i.done?"return":"normal",n)}),(function(e){r("throw",e)}))}catch(e){a("throw",e)}}function a(e,a){switch(e){case"return":t.resolve({value:a,done:!0});break;case"throw":t.reject(a);break;default:t.resolve({value:a,done:!1})}(t=t.next)?r(t.key,t.arg):n=null}this._invoke=function(e,a){return new Promise((function(i,o){var s={key:e,arg:a,resolve:i,reject:o,next:null};n?n=n.next=s:(t=n=s,r(e,a))}))},"function"!=typeof e.return&&(this.return=void 0)}function H(e,t){this.v=e,this.k=t}function $(e){var t,n,r,a=2;for("undefined"!=typeof Symbol&&(n=Symbol.asyncIterator,r=Symbol.iterator);a--;){if(n&&null!=(t=e[n]))return t.call(e);if(r&&null!=(t=e[r]))return new J(t.call(e));n="@@asyncIterator",r="@@iterator"}throw new TypeError("Object is not async iterable")}function J(e){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var t=e.done;return Promise.resolve(e.value).then((function(e){return{value:e,done:t}}))}return J=function(e){this.s=e,this.n=e.next},J.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var n=this.s.return;return void 0===n?Promise.resolve({value:e,done:!0}):t(n.apply(this.s,arguments))},throw:function(e){var n=this.s.return;return void 0===n?Promise.reject(e):t(n.apply(this.s,arguments))}},new J(e)}function V(e){return new H(e,0)}function W(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function K(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?W(Object(n),!0).forEach((function(t){re(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):W(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Y(){Y=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var i=Object.create((t&&t.prototype instanceof _?t:_).prototype),o=new I(r||[]);return a(i,"_invoke",{value:A(e,n,o)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=u;var f="suspendedStart",h="suspendedYield",p="executing",m="completed",g={};function _(){}function y(){}function v(){}var b={};c(b,o,(function(){return this}));var w=Object.getPrototypeOf,x=w&&w(w(T([])));x&&x!==n&&r.call(x,o)&&(b=x);var S=v.prototype=_.prototype=Object.create(b);function k(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function E(e,t){function n(a,i,o,s){var l=d(e[a],e,i);if("throw"!==l.type){var c=l.arg,u=c.value;return u&&"object"==typeof u&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,o,s)}),(function(e){n("throw",e,o,s)})):t.resolve(u).then((function(e){c.value=e,o(c)}),(function(e){return n("throw",e,o,s)}))}s(l.arg)}var i;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return i=i?i.then(a,a):a()}})}function A(t,n,r){var a=f;return function(i,o){if(a===p)throw new Error("Generator is already running");if(a===m){if("throw"===i)throw o;return{value:e,done:!0}}for(r.method=i,r.arg=o;;){var s=r.delegate;if(s){var l=C(s,r);if(l){if(l===g)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===f)throw a=m,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=p;var c=d(t,n,r);if("normal"===c.type){if(a=r.done?m:h,c.arg===g)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(a=m,r.method="throw",r.arg=c.arg)}}}function C(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),g;var i=d(a,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,g;var o=i.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,g):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,g)}function R(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function N(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function I(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(R,this),this.reset(!0)}function T(t){if(t||""===t){var n=t[o];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,i=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return i.next=i}}throw new TypeError(typeof t+" is not iterable")}return y.prototype=v,a(S,"constructor",{value:v,configurable:!0}),a(v,"constructor",{value:y,configurable:!0}),y.displayName=c(v,l,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===y||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,v):(e.__proto__=v,c(e,l,"GeneratorFunction")),e.prototype=Object.create(S),e},t.awrap=function(e){return{__await:e}},k(E.prototype),c(E.prototype,s,(function(){return this})),t.AsyncIterator=E,t.async=function(e,n,r,a,i){void 0===i&&(i=Promise);var o=new E(u(e,n,r,a),i);return t.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},k(S),c(S,l,"Generator"),c(S,o,(function(){return this})),c(S,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=T,I.prototype={constructor:I,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(N),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return s.type="throw",s.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],s=o.completion;if("root"===o.tryLoc)return a("end");if(o.tryLoc<=this.prev){var l=r.call(o,"catchLoc"),c=r.call(o,"finallyLoc");if(l&&c){if(this.prev<o.catchLoc)return a(o.catchLoc,!0);if(this.prev<o.finallyLoc)return a(o.finallyLoc)}else if(l){if(this.prev<o.catchLoc)return a(o.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return a(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var i=a;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var o=i?i.completion:{};return o.type=e,o.arg=t,i?(this.method="next",this.next=i.finallyLoc,g):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),g},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),N(n),g}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;N(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:T(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),g}},t}function Z(e){return Z="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Z(e)}function X(e,t,n,r,a,i,o){try{var s=e[i](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function Q(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var i=e.apply(t,n);function o(e){X(i,r,a,o,s,"next",e)}function s(e){X(i,r,a,o,s,"throw",e)}o(void 0)}))}}function ee(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function te(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,xe(r.key),r)}}function ne(e,t,n){return t&&te(e.prototype,t),n&&te(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function re(e,t,n){return(t=xe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ae(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&oe(e,t)}function ie(e){return ie=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},ie(e)}function oe(e,t){return oe=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},oe(e,t)}function se(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function le(e,t,n){return le=se()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var a=new(Function.bind.apply(e,r));return n&&oe(a,n.prototype),a},le.apply(null,arguments)}function ce(e){var t="function"==typeof Map?new Map:void 0;return ce=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return le(e,arguments,ie(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),oe(n,e)},ce(e)}function ue(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function de(e){var t=se();return function(){var n,r=ie(e);if(t){var a=ie(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return ue(e)}(this,n)}}function fe(){return fe="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=ie(e)););return e}(e,t);if(r){var a=Object.getOwnPropertyDescriptor(r,t);return a.get?a.get.call(arguments.length<3?e:n):a.value}},fe.apply(this,arguments)}function he(e,t){return ge(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,s=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){c=!0,a=e}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return s}}(e,t)||ye(e,t)||be()}function pe(e){return ge(e)||_e(e)||ye(e)||be()}function me(e){return function(e){if(Array.isArray(e))return ve(e)}(e)||_e(e)||ye(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ge(e){if(Array.isArray(e))return e}function _e(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function ye(e,t){if(e){if("string"==typeof e)return ve(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ve(e,t):void 0}}function ve(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function be(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function we(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=ye(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,i=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw i}}}}function xe(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}G.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},G.prototype.next=function(e){return this._invoke("next",e)},G.prototype.throw=function(e){return this._invoke("throw",e)},G.prototype.return=function(e){return this._invoke("return",e)};var Se=function(e,t){return Se=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},Se(e,t)};function ke(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}Se(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var Ee=function(){return Ee=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e},Ee.apply(this,arguments)};function Ae(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n}function Ce(e,t,n,r){var a,i=arguments.length,o=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":Z(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(a=e[s])&&(o=(i<3?a(o):i>3?a(t,n,o):a(t,n))||o);return i>3&&o&&Object.defineProperty(t,n,o),o}function Re(e,t){return function(n,r){t(n,r,e)}}function Ne(e,t){if("object"===("undefined"==typeof Reflect?"undefined":Z(Reflect))&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function Ie(e,t,n,r){return new(n||(n=Promise))((function(a,i){function o(e){try{l(r.next(e))}catch(e){i(e)}}function s(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){e.done?a(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(o,s)}l((r=r.apply(e,t||[])).next())}))}function Te(e,t){var n,r,a,i,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(s){return function(l){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(o=0)),o;)try{if(n=1,r&&(a=2&s[0]?r.return:s[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,s[1])).done)return a;switch(r=0,a&&(s=[2&s[0],a.value]),s[0]){case 0:case 1:a=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,r=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!((a=(a=o.trys).length>0&&a[a.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!a||s[1]>a[0]&&s[1]<a[3])){o.label=s[1];break}if(6===s[0]&&o.label<a[1]){o.label=a[1],a=s;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(s);break}a[2]&&o.ops.pop(),o.trys.pop();continue}s=t.call(e,o)}catch(e){s=[6,e],r=0}finally{n=a=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}}var Oe=Object.create?function(e,t,n,r){void 0===r&&(r=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,a)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]};function Fe(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||Oe(t,e,n)}function Le(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function De(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,i=n.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)o.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(a)throw a.error}}return o}function Me(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(De(arguments[t]));return e}function Pe(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),a=0;for(t=0;t<n;t++)for(var i=arguments[t],o=0,s=i.length;o<s;o++,a++)r[a]=i[o];return r}function qe(e,t,n){if(n||2===arguments.length)for(var r,a=0,i=t.length;a<i;a++)!r&&a in t||(r||(r=Array.prototype.slice.call(t,0,a)),r[a]=t[a]);return e.concat(r||Array.prototype.slice.call(t))}function je(e){return this instanceof je?(this.v=e,this):new je(e)}function Be(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,a=n.apply(e,t||[]),i=[];return r={},o("next"),o("throw"),o("return"),r[Symbol.asyncIterator]=function(){return this},r;function o(e){a[e]&&(r[e]=function(t){return new Promise((function(n,r){i.push([e,t,n,r])>1||s(e,t)}))})}function s(e,t){try{!function(e){e.value instanceof je?Promise.resolve(e.value.v).then(l,c):u(i[0][2],e)}(a[e](t))}catch(e){u(i[0][3],e)}}function l(e){s("next",e)}function c(e){s("throw",e)}function u(e,t){e(t),i.shift(),i.length&&s(i[0][0],i[0][1])}}function Ue(e){var t,n;return t={},r("next"),r("throw",(function(e){throw e})),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,a){t[r]=e[r]?function(t){return(n=!n)?{value:je(e[r](t)),done:!1}:a?a(t):t}:a}}function ze(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=Le(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,a){!function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)}(r,a,(t=e[n](t)).done,t.value)}))}}}function Ge(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var He=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function $e(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&Oe(t,e,n);return He(t,e),t}function Je(e){return e&&e.__esModule?e:{default:e}}function Ve(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)}function We(e,t,n,r,a){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!a)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?a.call(e,n):a?a.value=n:t.set(e,n),n}function Ke(e,t){if(null===t||"object"!==Z(t)&&"function"!=typeof t)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?t===e:e.has(t)}function Ye(e,t,n){if(null!=t){if("object"!==Z(t)&&"function"!=typeof t)throw new TypeError("Object expected.");var r;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");r=t[Symbol.asyncDispose]}if(void 0===r){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");r=t[Symbol.dispose]}if("function"!=typeof r)throw new TypeError("Object not disposable.");e.stack.push({value:t,dispose:r,async:n})}else n&&e.stack.push({async:!0});return t}var Ze="function"==typeof SuppressedError?SuppressedError:function(e,t,n){var r=new Error(n);return r.name="SuppressedError",r.error=e,r.suppressed=t,r};function Xe(e){function t(t){e.error=e.hasError?new Ze(t,e.error,"An error was suppressed during disposal."):t,e.hasError=!0}return function n(){for(;e.stack.length;){var r=e.stack.pop();try{var a=r.dispose&&r.dispose.call(r.value);if(r.async)return Promise.resolve(a).then(n,(function(e){return t(e),n()}))}catch(e){t(e)}}if(e.hasError)throw e.error}()}var Qe={__proto__:null,__extends:ke,get __assign(){return Ee},__rest:Ae,__decorate:Ce,__param:Re,__esDecorate:function(e,t,n,r,a,i){function o(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var s,l=r.kind,c="getter"===l?"get":"setter"===l?"set":"value",u=!t&&e?r.static?e:e.prototype:null,d=t||(u?Object.getOwnPropertyDescriptor(u,r.name):{}),f=!1,h=n.length-1;h>=0;h--){var p={};for(var m in r)p[m]="access"===m?{}:r[m];for(var m in r.access)p.access[m]=r.access[m];p.addInitializer=function(e){if(f)throw new TypeError("Cannot add initializers after decoration has completed");i.push(o(e||null))};var g=(0,n[h])("accessor"===l?{get:d.get,set:d.set}:d[c],p);if("accessor"===l){if(void 0===g)continue;if(null===g||"object"!==Z(g))throw new TypeError("Object expected");(s=o(g.get))&&(d.get=s),(s=o(g.set))&&(d.set=s),(s=o(g.init))&&a.unshift(s)}else(s=o(g))&&("field"===l?a.unshift(s):d[c]=s)}u&&Object.defineProperty(u,r.name,d),f=!0},__runInitializers:function(e,t,n){for(var r=arguments.length>2,a=0;a<t.length;a++)n=r?t[a].call(e,n):t[a].call(e);return r?n:void 0},__propKey:function(e){return"symbol"===Z(e)?e:"".concat(e)},__setFunctionName:function(e,t,n){return"symbol"===Z(t)&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:n?"".concat(n," ",t):t})},__metadata:Ne,__awaiter:Ie,__generator:Te,__createBinding:Oe,__exportStar:Fe,__values:Le,__read:De,__spread:Me,__spreadArrays:Pe,__spreadArray:qe,__await:je,__asyncGenerator:Be,__asyncDelegator:Ue,__asyncValues:ze,__makeTemplateObject:Ge,__importStar:$e,__importDefault:Je,__classPrivateFieldGet:Ve,__classPrivateFieldSet:We,__classPrivateFieldIn:Ke,__addDisposableResource:Ye,__disposeResources:Xe,default:{__extends:ke,__assign:Ee,__rest:Ae,__decorate:Ce,__param:Re,__metadata:Ne,__awaiter:Ie,__generator:Te,__createBinding:Oe,__exportStar:Fe,__values:Le,__read:De,__spread:Me,__spreadArrays:Pe,__spreadArray:qe,__await:je,__asyncGenerator:Be,__asyncDelegator:Ue,__asyncValues:ze,__makeTemplateObject:Ge,__importStar:$e,__importDefault:Je,__classPrivateFieldGet:Ve,__classPrivateFieldSet:We,__classPrivateFieldIn:Ke,__addDisposableResource:Ye,__disposeResources:Xe}},et=B(Qe),tt={};Object.defineProperty(tt,"__esModule",{value:!0}),tt.ApolloPlugin=void 0;var nt=function(e){ae(n,e);var t=de(n);function n(){return ee(this,n),t.apply(this,arguments)}return ne(n,[{key:"apolloInstall",value:function(e){}}]),n}(et.__importDefault(C.default).default);tt.ApolloPlugin=nt;var rt={},at={},it={};Object.defineProperty(it,"__esModule",{value:!0}),it.changeRegistry=void 0,it.changeRegistry=new(function(){function e(){ee(this,e),this.changes=new Map}return ne(e,[{key:"registerChange",value:function(e,t){if(this.changes.has(e))throw new Error('change type "'.concat(e,'" has already been registered'));this.changes.set(e,t)}},{key:"getChangeType",value:function(e){var t=this.changes.get(e);if(!t)throw new Error('No change constructor registered for "'.concat(e,'"'));return t}}]),e}());var ot={};Object.defineProperty(ot,"__esModule",{value:!0}),ot.Operation=void 0;var st=function(){function e(t,n){var r;ee(this,e),this.logger=null!==(r=null==n?void 0:n.logger)&&void 0!==r?r:console}var t;return ne(e,[{key:"execute",value:(t=Q(Y().mark((function e(t){var n,r;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("Server"!==(n=t.typeName)){e.next=4;break}return r=this.executeOnServer(t),e.abrupt("return",t.pluginsService.evaluateExtensionPoint("".concat(this.typeName,"-transformResults"),r,{operation:this,backend:t}));case 4:if("LocalGFF3"!==n){e.next=6;break}return e.abrupt("return",this.executeOnLocalGFF3(t));case 6:throw new Error("no operation implementation for backend type '".concat(n,"'"));case 7:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}]),e}();ot.Operation=st,Object.defineProperty(at,"__esModule",{value:!0}),at.Change=void 0,at.isChange=function(e){return void 0!==e.executeOnClient};var lt=it,ct=function(e){ae(r,e);var t,n=de(r);function r(){return ee(this,r),n.apply(this,arguments)}return ne(r,[{key:"notification",get:function(){return""}},{key:"execute",value:(t=Q(Y().mark((function e(t){var n;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("LocalGFF3"!==(n=t.typeName)&&"Server"!==n){e.next=3;break}return e.abrupt("return",fe(ie(r.prototype),"execute",this).call(this,t));case 3:if("Client"!==n){e.next=5;break}return e.abrupt("return",this.executeOnClient(t));case 5:throw new Error("no change implementation for backend type '".concat(n,"'"));case 6:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}],[{key:"fromJSON",value:function(e,t){return new(lt.changeRegistry.getChangeType(e.typeName))(e,(null==t?void 0:t.logger)&&{logger:t.logger})}}]),r}(ot.Operation);at.Change=ct,Object.defineProperty(rt,"__esModule",{value:!0}),rt.AssemblySpecificChange=void 0,rt.isAssemblySpecificChange=function(e){return(0,ut.isChange)(e)&&void 0!==e.assembly};var ut=at;rt.AssemblySpecificChange=function(e){ae(n,e);var t=de(n);function n(e,r){var a;return ee(this,n),(a=t.call(this,e,r)).assembly=e.assembly,a}return ne(n)}(ut.Change);var dt={};Object.defineProperty(dt,"__esModule",{value:!0}),dt.Check=void 0,dt.Check=ne((function e(){ee(this,e)}));var ft={};Object.defineProperty(ft,"__esModule",{value:!0}),ft.checkRegistry=void 0,ft.checkRegistry=new(function(){function e(){ee(this,e),this.checks=new Map}return ne(e,[{key:"registerCheck",value:function(e,t){if(this.checks.has(e))throw new Error('check "'.concat(e,'" has already been registered'));this.checks.set(e,t)}},{key:"getCheck",value:function(e){var t=this.checks.get(e);if(!t)throw new Error('No check constructor registered for "'.concat(e,'"'));return t}},{key:"getChecks",value:function(){return this.checks}}]),e}());var ht={},pt="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};function mt(){throw new Error("setTimeout has not been defined")}function gt(){throw new Error("clearTimeout has not been defined")}var _t=mt,yt=gt;function vt(e){if(_t===setTimeout)return setTimeout(e,0);if((_t===mt||!_t)&&setTimeout)return _t=setTimeout,setTimeout(e,0);try{return _t(e,0)}catch(t){try{return _t.call(null,e,0)}catch(t){return _t.call(this,e,0)}}}"function"==typeof pt.setTimeout&&(_t=setTimeout),"function"==typeof pt.clearTimeout&&(yt=clearTimeout);var bt,wt=[],xt=!1,St=-1;function kt(){xt&&bt&&(xt=!1,bt.length?wt=bt.concat(wt):St=-1,wt.length&&Et())}function Et(){if(!xt){var e=vt(kt);xt=!0;for(var t=wt.length;t;){for(bt=wt,wt=[];++St<t;)bt&&bt[St].run();St=-1,t=wt.length}bt=null,xt=!1,function(e){if(yt===clearTimeout)return clearTimeout(e);if((yt===gt||!yt)&&clearTimeout)return yt=clearTimeout,clearTimeout(e);try{return yt(e)}catch(t){try{return yt.call(null,e)}catch(t){return yt.call(this,e)}}}(e)}}function At(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];wt.push(new Ct(e,t)),1!==wt.length||xt||vt(Et)}function Ct(e,t){this.fun=e,this.array=t}function Rt(){}Ct.prototype.run=function(){this.fun.apply(null,this.array)};var Nt=Rt,It=Rt,Tt=Rt,Ot=Rt,Ft=Rt,Lt=Rt,Dt=Rt,Mt=pt.performance||{},Pt=Mt.now||Mt.mozNow||Mt.msNow||Mt.oNow||Mt.webkitNow||function(){return(new Date).getTime()},qt=new Date,jt={nextTick:At,title:"browser",browser:!0,env:{},argv:[],version:"",versions:{},on:Nt,addListener:It,once:Tt,off:Ot,removeListener:Ft,removeAllListeners:Lt,emit:Dt,binding:function(e){throw new Error("process.binding is not supported")},cwd:function(){return"/"},chdir:function(e){throw new Error("process.chdir is not supported")},umask:function(){return 0},hrtime:function(e){var t=.001*Pt.call(Mt),n=Math.floor(t),r=Math.floor(t%1*1e9);return e&&(n-=e[0],(r-=e[1])<0&&(n--,r+=1e9)),[n,r]},platform:"browser",release:{},config:{},uptime:function(){return(new Date-qt)/1e3}},Bt=[],Ut=[],zt="undefined"!=typeof Uint8Array?Uint8Array:Array,Gt=!1;function Ht(){Gt=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0;t<64;++t)Bt[t]=e[t],Ut[e.charCodeAt(t)]=t;Ut["-".charCodeAt(0)]=62,Ut["_".charCodeAt(0)]=63}function $t(e,t,n){for(var r,a=[],i=t;i<n;i+=3)a.push(Bt[(r=(e[i]<<16)+(e[i+1]<<8)+e[i+2])>>18&63]+Bt[r>>12&63]+Bt[r>>6&63]+Bt[63&r]);return a.join("")}function Jt(e,t,n,r,a){var i,o,s=8*a-r-1,l=(1<<s)-1,c=l>>1,u=-7,d=n?a-1:0,f=n?-1:1,h=e[t+d];for(d+=f,i=h&(1<<-u)-1,h>>=-u,u+=s;u>0;i=256*i+e[t+d],d+=f,u-=8);for(o=i&(1<<-u)-1,i>>=-u,u+=r;u>0;o=256*o+e[t+d],d+=f,u-=8);if(0===i)i=1-c;else{if(i===l)return o?NaN:Infinity*(h?-1:1);o+=Math.pow(2,r),i-=c}return(h?-1:1)*o*Math.pow(2,i-r)}function Vt(e,t,n,r,a,i){var o,s,l,c=8*i-a-1,u=(1<<c)-1,d=u>>1,f=23===a?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:i-1,p=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||Infinity===t?(s=isNaN(t)?1:0,o=u):(o=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-o))<1&&(o--,l*=2),(t+=o+d>=1?f/l:f*Math.pow(2,1-d))*l>=2&&(o++,l/=2),o+d>=u?(s=0,o=u):o+d>=1?(s=(t*l-1)*Math.pow(2,a),o+=d):(s=t*Math.pow(2,d-1)*Math.pow(2,a),o=0));a>=8;e[n+h]=255&s,h+=p,s/=256,a-=8);for(o=o<<a|s,c+=a;c>0;e[n+h]=255&o,h+=p,o/=256,c-=8);e[n+h-p]|=128*m}var Wt={}.toString,Kt=Array.isArray||function(e){return"[object Array]"==Wt.call(e)};function Yt(){return Xt.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function Zt(e,t){if(Yt()<t)throw new RangeError("Invalid typed array length");return Xt.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=Xt.prototype:(null===e&&(e=new Xt(t)),e.length=t),e}function Xt(e,t,n){if(!(Xt.TYPED_ARRAY_SUPPORT||this instanceof Xt))return new Xt(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return tn(this,e)}return Qt(this,e,t,n)}function Qt(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,n,r){if(n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");return t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r),Xt.TYPED_ARRAY_SUPPORT?(e=t).__proto__=Xt.prototype:e=nn(e,t),e}(e,t,n,r):"string"==typeof t?function(e,t,n){if("string"==typeof n&&""!==n||(n="utf8"),!Xt.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|on(t,n),a=(e=Zt(e,r)).write(t,n);return a!==r&&(e=e.slice(0,a)),e}(e,t,n):function(e,t){if(an(t)){var n=0|rn(t.length);return 0===(e=Zt(e,n)).length||t.copy(e,0,0,n),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(r=t.length)!=r?Zt(e,0):nn(e,t);if("Buffer"===t.type&&Kt(t.data))return nn(e,t.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function en(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function tn(e,t){if(en(t),e=Zt(e,t<0?0:0|rn(t)),!Xt.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function nn(e,t){var n=t.length<0?0:0|rn(t.length);e=Zt(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function rn(e){if(e>=Yt())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Yt().toString(16)+" bytes");return 0|e}function an(e){return!(null==e||!e._isBuffer)}function on(e,t){if(an(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return Fn(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return Ln(e).length;default:if(r)return Fn(e).length;t=(""+t).toLowerCase(),r=!0}}function sn(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return xn(this,t,n);case"utf8":case"utf-8":return yn(this,t,n);case"ascii":return bn(this,t,n);case"latin1":case"binary":return wn(this,t,n);case"base64":return _n(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Sn(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function ln(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function cn(e,t,n,r,a){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=a?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(a)return-1;n=e.length-1}else if(n<0){if(!a)return-1;n=0}if("string"==typeof t&&(t=Xt.from(t,r)),an(t))return 0===t.length?-1:un(e,t,n,r,a);if("number"==typeof t)return t&=255,Xt.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?a?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):un(e,[t],n,r,a);throw new TypeError("val must be string, number or Buffer")}function un(e,t,n,r,a){var i,o=1,s=e.length,l=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,s/=2,l/=2,n/=2}function c(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(a){var u=-1;for(i=n;i<s;i++)if(c(e,i)===c(t,-1===u?0:i-u)){if(-1===u&&(u=i),i-u+1===l)return u*o}else-1!==u&&(i-=i-u),u=-1}else for(n+l>s&&(n=s-l),i=n;i>=0;i--){for(var d=!0,f=0;f<l;f++)if(c(e,i+f)!==c(t,f)){d=!1;break}if(d)return i}return-1}function dn(e,t,n,r){n=Number(n)||0;var a=e.length-n;r?(r=Number(r))>a&&(r=a):r=a;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var o=0;o<r;++o){var s=parseInt(t.substr(2*o,2),16);if(isNaN(s))return o;e[n+o]=s}return o}function fn(e,t,n,r){return Dn(Fn(t,e.length-n),e,n,r)}function hn(e,t,n,r){return Dn(function(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function pn(e,t,n,r){return hn(e,t,n,r)}function mn(e,t,n,r){return Dn(Ln(t),e,n,r)}function gn(e,t,n,r){return Dn(function(e,t){for(var n,r,a=[],i=0;i<e.length&&!((t-=2)<0);++i)r=(n=e.charCodeAt(i))>>8,a.push(n%256),a.push(r);return a}(t,e.length-n),e,n,r)}function _n(e,t,n){return function(e){var t;Gt||Ht();for(var n=e.length,r=n%3,a="",i=[],o=16383,s=0,l=n-r;s<l;s+=o)i.push($t(e,s,s+o>l?l:s+o));return 1===r?(a+=Bt[(t=e[n-1])>>2],a+=Bt[t<<4&63],a+="=="):2===r&&(a+=Bt[(t=(e[n-2]<<8)+e[n-1])>>10],a+=Bt[t>>4&63],a+=Bt[t<<2&63],a+="="),i.push(a),i.join("")}(0===t&&n===e.length?e:e.slice(t,n))}function yn(e,t,n){n=Math.min(e.length,n);for(var r=[],a=t;a<n;){var i,o,s,l,c=e[a],u=null,d=c>239?4:c>223?3:c>191?2:1;if(a+d<=n)switch(d){case 1:c<128&&(u=c);break;case 2:128==(192&(i=e[a+1]))&&(l=(31&c)<<6|63&i)>127&&(u=l);break;case 3:o=e[a+2],128==(192&(i=e[a+1]))&&128==(192&o)&&(l=(15&c)<<12|(63&i)<<6|63&o)>2047&&(l<55296||l>57343)&&(u=l);break;case 4:o=e[a+2],s=e[a+3],128==(192&(i=e[a+1]))&&128==(192&o)&&128==(192&s)&&(l=(15&c)<<18|(63&i)<<12|(63&o)<<6|63&s)>65535&&l<1114112&&(u=l)}null===u?(u=65533,d=1):u>65535&&(r.push((u-=65536)>>>10&1023|55296),u=56320|1023&u),r.push(u),a+=d}return function(e){var t=e.length;if(t<=vn)return String.fromCharCode.apply(String,e);for(var n="",r=0;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=vn));return n}(r)}Xt.TYPED_ARRAY_SUPPORT=void 0===pt.TYPED_ARRAY_SUPPORT||pt.TYPED_ARRAY_SUPPORT,Xt.poolSize=8192,Xt._augment=function(e){return e.__proto__=Xt.prototype,e},Xt.from=function(e,t,n){return Qt(null,e,t,n)},Xt.TYPED_ARRAY_SUPPORT&&(Xt.prototype.__proto__=Uint8Array.prototype,Xt.__proto__=Uint8Array),Xt.alloc=function(e,t,n){return function(e,t,n,r){return en(t),t<=0?Zt(e,t):void 0!==n?"string"==typeof r?Zt(e,t).fill(n,r):Zt(e,t).fill(n):Zt(e,t)}(null,e,t,n)},Xt.allocUnsafe=function(e){return tn(null,e)},Xt.allocUnsafeSlow=function(e){return tn(null,e)},Xt.isBuffer=Mn,Xt.compare=function(e,t){if(!an(e)||!an(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,a=0,i=Math.min(n,r);a<i;++a)if(e[a]!==t[a]){n=e[a],r=t[a];break}return n<r?-1:r<n?1:0},Xt.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},Xt.concat=function(e,t){if(!Kt(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return Xt.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=Xt.allocUnsafe(t),a=0;for(n=0;n<e.length;++n){var i=e[n];if(!an(i))throw new TypeError('"list" argument must be an Array of Buffers');i.copy(r,a),a+=i.length}return r},Xt.byteLength=on,Xt.prototype._isBuffer=!0,Xt.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)ln(this,t,t+1);return this},Xt.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)ln(this,t,t+3),ln(this,t+1,t+2);return this},Xt.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)ln(this,t,t+7),ln(this,t+1,t+6),ln(this,t+2,t+5),ln(this,t+3,t+4);return this},Xt.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?yn(this,0,e):sn.apply(this,arguments)},Xt.prototype.equals=function(e){if(!an(e))throw new TypeError("Argument must be a Buffer");return this===e||0===Xt.compare(this,e)},Xt.prototype.inspect=function(){var e="";return this.length>0&&(e=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(e+=" ... ")),"<Buffer "+e+">"},Xt.prototype.compare=function(e,t,n,r,a){if(!an(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===a&&(a=this.length),t<0||n>e.length||r<0||a>this.length)throw new RangeError("out of range index");if(r>=a&&t>=n)return 0;if(r>=a)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(a>>>=0)-(r>>>=0),o=(n>>>=0)-(t>>>=0),s=Math.min(i,o),l=this.slice(r,a),c=e.slice(t,n),u=0;u<s;++u)if(l[u]!==c[u]){i=l[u],o=c[u];break}return i<o?-1:o<i?1:0},Xt.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},Xt.prototype.indexOf=function(e,t,n){return cn(this,e,t,n,!0)},Xt.prototype.lastIndexOf=function(e,t,n){return cn(this,e,t,n,!1)},Xt.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var a=this.length-t;if((void 0===n||n>a)&&(n=a),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return dn(this,e,t,n);case"utf8":case"utf-8":return fn(this,e,t,n);case"ascii":return hn(this,e,t,n);case"latin1":case"binary":return pn(this,e,t,n);case"base64":return mn(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return gn(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},Xt.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var vn=4096;function bn(e,t,n){var r="";n=Math.min(e.length,n);for(var a=t;a<n;++a)r+=String.fromCharCode(127&e[a]);return r}function wn(e,t,n){var r="";n=Math.min(e.length,n);for(var a=t;a<n;++a)r+=String.fromCharCode(e[a]);return r}function xn(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var a="",i=t;i<n;++i)a+=On(e[i]);return a}function Sn(e,t,n){for(var r=e.slice(t,n),a="",i=0;i<r.length;i+=2)a+=String.fromCharCode(r[i]+256*r[i+1]);return a}function kn(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function En(e,t,n,r,a,i){if(!an(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>a||t<i)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function An(e,t,n,r){t<0&&(t=65535+t+1);for(var a=0,i=Math.min(e.length-n,2);a<i;++a)e[n+a]=(t&255<<8*(r?a:1-a))>>>8*(r?a:1-a)}function Cn(e,t,n,r){t<0&&(t=4294967295+t+1);for(var a=0,i=Math.min(e.length-n,4);a<i;++a)e[n+a]=t>>>8*(r?a:3-a)&255}function Rn(e,t,n,r,a,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function Nn(e,t,n,r,a){return a||Rn(e,0,n,4),Vt(e,t,n,r,23,4),n+4}function In(e,t,n,r,a){return a||Rn(e,0,n,8),Vt(e,t,n,r,52,8),n+8}Xt.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e),Xt.TYPED_ARRAY_SUPPORT)(n=this.subarray(e,t)).__proto__=Xt.prototype;else{var a=t-e;n=new Xt(a,void 0);for(var i=0;i<a;++i)n[i]=this[i+e]}return n},Xt.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||kn(e,t,this.length);for(var r=this[e],a=1,i=0;++i<t&&(a*=256);)r+=this[e+i]*a;return r},Xt.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||kn(e,t,this.length);for(var r=this[e+--t],a=1;t>0&&(a*=256);)r+=this[e+--t]*a;return r},Xt.prototype.readUInt8=function(e,t){return t||kn(e,1,this.length),this[e]},Xt.prototype.readUInt16LE=function(e,t){return t||kn(e,2,this.length),this[e]|this[e+1]<<8},Xt.prototype.readUInt16BE=function(e,t){return t||kn(e,2,this.length),this[e]<<8|this[e+1]},Xt.prototype.readUInt32LE=function(e,t){return t||kn(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},Xt.prototype.readUInt32BE=function(e,t){return t||kn(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},Xt.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||kn(e,t,this.length);for(var r=this[e],a=1,i=0;++i<t&&(a*=256);)r+=this[e+i]*a;return r>=(a*=128)&&(r-=Math.pow(2,8*t)),r},Xt.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||kn(e,t,this.length);for(var r=t,a=1,i=this[e+--r];r>0&&(a*=256);)i+=this[e+--r]*a;return i>=(a*=128)&&(i-=Math.pow(2,8*t)),i},Xt.prototype.readInt8=function(e,t){return t||kn(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},Xt.prototype.readInt16LE=function(e,t){t||kn(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},Xt.prototype.readInt16BE=function(e,t){t||kn(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},Xt.prototype.readInt32LE=function(e,t){return t||kn(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},Xt.prototype.readInt32BE=function(e,t){return t||kn(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},Xt.prototype.readFloatLE=function(e,t){return t||kn(e,4,this.length),Jt(this,e,!0,23,4)},Xt.prototype.readFloatBE=function(e,t){return t||kn(e,4,this.length),Jt(this,e,!1,23,4)},Xt.prototype.readDoubleLE=function(e,t){return t||kn(e,8,this.length),Jt(this,e,!0,52,8)},Xt.prototype.readDoubleBE=function(e,t){return t||kn(e,8,this.length),Jt(this,e,!1,52,8)},Xt.prototype.writeUIntLE=function(e,t,n,r){e=+e,t|=0,n|=0,r||En(this,e,t,n,Math.pow(2,8*n)-1,0);var a=1,i=0;for(this[t]=255&e;++i<n&&(a*=256);)this[t+i]=e/a&255;return t+n},Xt.prototype.writeUIntBE=function(e,t,n,r){e=+e,t|=0,n|=0,r||En(this,e,t,n,Math.pow(2,8*n)-1,0);var a=n-1,i=1;for(this[t+a]=255&e;--a>=0&&(i*=256);)this[t+a]=e/i&255;return t+n},Xt.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||En(this,e,t,1,255,0),Xt.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},Xt.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||En(this,e,t,2,65535,0),Xt.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):An(this,e,t,!0),t+2},Xt.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||En(this,e,t,2,65535,0),Xt.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):An(this,e,t,!1),t+2},Xt.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||En(this,e,t,4,4294967295,0),Xt.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):Cn(this,e,t,!0),t+4},Xt.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||En(this,e,t,4,4294967295,0),Xt.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):Cn(this,e,t,!1),t+4},Xt.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var a=Math.pow(2,8*n-1);En(this,e,t,n,a-1,-a)}var i=0,o=1,s=0;for(this[t]=255&e;++i<n&&(o*=256);)e<0&&0===s&&0!==this[t+i-1]&&(s=1),this[t+i]=(e/o>>0)-s&255;return t+n},Xt.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var a=Math.pow(2,8*n-1);En(this,e,t,n,a-1,-a)}var i=n-1,o=1,s=0;for(this[t+i]=255&e;--i>=0&&(o*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/o>>0)-s&255;return t+n},Xt.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||En(this,e,t,1,127,-128),Xt.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},Xt.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||En(this,e,t,2,32767,-32768),Xt.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):An(this,e,t,!0),t+2},Xt.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||En(this,e,t,2,32767,-32768),Xt.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):An(this,e,t,!1),t+2},Xt.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||En(this,e,t,4,2147483647,-2147483648),Xt.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):Cn(this,e,t,!0),t+4},Xt.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||En(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),Xt.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):Cn(this,e,t,!1),t+4},Xt.prototype.writeFloatLE=function(e,t,n){return Nn(this,e,t,!0,n)},Xt.prototype.writeFloatBE=function(e,t,n){return Nn(this,e,t,!1,n)},Xt.prototype.writeDoubleLE=function(e,t,n){return In(this,e,t,!0,n)},Xt.prototype.writeDoubleBE=function(e,t,n){return In(this,e,t,!1,n)},Xt.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var a,i=r-n;if(this===e&&n<t&&t<r)for(a=i-1;a>=0;--a)e[a+t]=this[a+n];else if(i<1e3||!Xt.TYPED_ARRAY_SUPPORT)for(a=0;a<i;++a)e[a+t]=this[a+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+i),t);return i},Xt.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var a=e.charCodeAt(0);a<256&&(e=a)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!Xt.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;var i;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i<n;++i)this[i]=e;else{var o=an(e)?e:Fn(new Xt(e,r).toString()),s=o.length;for(i=0;i<n-t;++i)this[i+t]=o[i%s]}return this};var Tn=/[^+\/0-9A-Za-z-_]/g;function On(e){return e<16?"0"+e.toString(16):e.toString(16)}function Fn(e,t){var n;t=t||Infinity;for(var r=e.length,a=null,i=[],o=0;o<r;++o){if((n=e.charCodeAt(o))>55295&&n<57344){if(!a){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&i.push(239,191,189);continue}a=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),a=n;continue}n=65536+(a-55296<<10|n-56320)}else a&&(t-=3)>-1&&i.push(239,191,189);if(a=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function Ln(e){return function(e){var t,n,r,a,i,o;Gt||Ht();var s=e.length;if(s%4>0)throw new Error("Invalid string. Length must be a multiple of 4");o=new zt(3*s/4-(i="="===e[s-2]?2:"="===e[s-1]?1:0)),r=i>0?s-4:s;var l=0;for(t=0,n=0;t<r;t+=4,n+=3)a=Ut[e.charCodeAt(t)]<<18|Ut[e.charCodeAt(t+1)]<<12|Ut[e.charCodeAt(t+2)]<<6|Ut[e.charCodeAt(t+3)],o[l++]=a>>16&255,o[l++]=a>>8&255,o[l++]=255&a;return 2===i?(a=Ut[e.charCodeAt(t)]<<2|Ut[e.charCodeAt(t+1)]>>4,o[l++]=255&a):1===i&&(a=Ut[e.charCodeAt(t)]<<10|Ut[e.charCodeAt(t+1)]<<4|Ut[e.charCodeAt(t+2)]>>2,o[l++]=a>>8&255,o[l++]=255&a),o}(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(Tn,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function Dn(e,t,n,r){for(var a=0;a<r&&!(a+n>=t.length||a>=e.length);++a)t[a+n]=e[a];return a}function Mn(e){return null!=e&&(!!e._isBuffer||Pn(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&Pn(e.slice(0,0))}(e))}function Pn(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}for(var qn=Math.floor(16777215*Math.random()),jn=Vn.index=parseInt(16777215*Math.random(),10),Bn=(void 0===jt||"number"!=typeof jt.pid?Math.floor(1e5*Math.random()):jt.pid)%65535,Un=function(){try{return _Buffer}catch(e){try{return Xt}catch(e){return null}}}(),zn=function(e){return!(null==e||!e.constructor||"function"!=typeof e.constructor.isBuffer||!e.constructor.isBuffer(e))},Gn=[],Hn=0;Hn<256;Hn++)Gn[Hn]=(Hn<=15?"0":"")+Hn.toString(16);var $n=new RegExp("^[0-9a-fA-F]{24}$"),Jn=[];for(Hn=0;Hn<10;)Jn[48+Hn]=Hn++;for(;Hn<16;)Jn[55+Hn]=Jn[87+Hn]=Hn++;function Vn(e){if(!(this instanceof Vn))return new Vn(e);if(e&&(e instanceof Vn||"ObjectID"===e._bsontype))return e;if(this._bsontype="ObjectID",null!=e&&"number"!=typeof e){var t=Vn.isValid(e);if(!t&&null!=e)throw new Error("Argument passed in must be a single String of 12 bytes or a string of 24 hex characters");if(t&&"string"==typeof e&&24===e.length)return Vn.createFromHexString(e);if(null==e||12!==e.length){if(null!=e&&"function"==typeof e.toHexString)return e;throw new Error("Argument passed in must be a single String of 12 bytes or a string of 24 hex characters")}this.id=e}else this.id=this.generate(e)}var Wn=Vn;Vn.default=Vn,Vn.createFromTime=function(e){return new Vn(function(e,t){return 8===(t=t.toString(16)).length?t:"00000000".substring(t.length,8)+t}(0,e=parseInt(e,10)%4294967295)+"0000000000000000")},Vn.createFromHexString=function(e){if(void 0===e||null!=e&&24!==e.length)throw new Error("Argument passed in must be a single String of 12 bytes or a string of 24 hex characters");for(var t="",n=0;n<24;)t+=String.fromCharCode(Jn[e.charCodeAt(n++)]<<4|Jn[e.charCodeAt(n++)]);return new Vn(t)},Vn.isValid=function(e){return null!=e&&("number"==typeof e||("string"==typeof e?12===e.length||24===e.length&&$n.test(e):e instanceof Vn||(zn(e)?Vn.isValid(e.toString("hex")):!("function"!=typeof e.toHexString||!Un||!(e.id instanceof Un||"string"==typeof e.id))&&(12===e.id.length||24===e.id.length&&$n.test(e.id)))))},Vn.prototype={constructor:Vn,toHexString:function(){if(!this.id||!this.id.length)throw new Error("invalid ObjectId, ObjectId.id must be either a string or a Buffer, but is ["+JSON.stringify(this.id)+"]");if(24===this.id.length)return this.id;if(zn(this.id))return this.id.toString("hex");for(var e="",t=0;t<this.id.length;t++)e+=Gn[this.id.charCodeAt(t)];return e},equals:function(e){return e instanceof Vn?this.toString()===e.toString():"string"==typeof e&&Vn.isValid(e)&&12===e.length&&zn(this.id)?e===this.id.toString("binary"):"string"==typeof e&&Vn.isValid(e)&&24===e.length?e.toLowerCase()===this.toHexString():"string"==typeof e&&Vn.isValid(e)&&12===e.length?e===this.id:!(null==e||!(e instanceof Vn||e.toHexString))&&e.toHexString()===this.toHexString()},getTimestamp:function(){var e,t=new Date;return e=zn(this.id)?this.id[3]|this.id[2]<<8|this.id[1]<<16|this.id[0]<<24:this.id.charCodeAt(3)|this.id.charCodeAt(2)<<8|this.id.charCodeAt(1)<<16|this.id.charCodeAt(0)<<24,t.setTime(1e3*Math.floor(e)),t},generate:function(e){"number"!=typeof e&&(e=~~(Date.now()/1e3)),e=parseInt(e,10)%4294967295;var t=jn=(jn+1)%16777215;return String.fromCharCode(e>>24&255,e>>16&255,e>>8&255,255&e,qn>>16&255,qn>>8&255,255&qn,Bn>>8&255,255&Bn,t>>16&255,t>>8&255,255&t)}};var Kn=Symbol&&Symbol.for&&Symbol.for("nodejs.util.inspect.custom")||"inspect";Vn.prototype[Kn]=function(){return"ObjectID("+this+")"},Vn.prototype.toJSON=Vn.prototype.toHexString,Vn.prototype.toString=Vn.prototype.toHexString,Object.defineProperty(ht,"__esModule",{value:!0}),ht.FeatureChange=void 0,ht.isFeatureChange=function(e){return(0,Zn.isAssemblySpecificChange)(e)&&void 0!==e.changedIds};var Yn=et.__importDefault(Wn),Zn=rt,Xn=function(e){ae(n,e);var t=de(n);function n(e,r){var a;return ee(this,n),(a=t.call(this,e,r)).changedIds=e.changedIds,a}return ne(n,[{key:"getFeatureFromId",value:function(e,t){var n,r,a,i,o=this.logger;if(null===(n=o.verbose)||void 0===n||n.call(o,"Entry=".concat(JSON.stringify(e))),e._id.equals(t))return null===(r=o.debug)||void 0===r||r.call(o,"Top level featureId matches in the object ".concat(JSON.stringify(e))),e;null===(a=o.debug)||void 0===a||a.call(o,"FeatureId was not found on top level so lets make recursive call...");var s,l=we(null!==(i=e.children)&&void 0!==i?i:new Map);try{for(l.s();!(s=l.n()).done;){var c=he(s.value,2),u=this.getFeatureFromId(c[1],t);if(u)return u}}catch(e){l.e(e)}finally{l.f()}return null}},{key:"getChildFeatureIds",value:function(e){if(!e.children)return[];var t,n=[],r=we((e.children instanceof Map?e.children:new Map(Object.entries(e.children)))||new Map);try{for(r.s();!(t=r.n()).done;){var a=he(t.value,2);n.push.apply(n,[a[0]].concat(me(this.getChildFeatureIds(a[1]))))}}catch(e){r.e(e)}finally{r.f()}return n}},{key:"generateNewIds",value:function(e,t){var n=(new Yn.default).toHexString();t.push(n);var r={};if(e.children)for(var a=0,i=Object.values(e.children);a<i.length;a++){var o=this.generateNewIds(i[a],t);r[o._id]=o}var s="string"==typeof e.refSeq?e.refSeq:e.refSeq.toHexString();return K(K({},e),{},{refSeq:s,children:e.children&&r,_id:n})}}]),n}(Zn.AssemblySpecificChange);ht.FeatureChange=Xn;var Qn={};Object.defineProperty(Qn,"__esModule",{value:!0}),Qn.operationRegistry=void 0,Qn.operationRegistry=new(function(){function e(){ee(this,e),this.operations=new Map}return ne(e,[{key:"registerOperation",value:function(e,t){if(this.operations.has(e))throw new Error('operation type "'.concat(e,'" has already been registered'));this.operations.set(e,t)}},{key:"getOperationType",value:function(e){var t=this.operations.get(e);if(!t)throw new Error('No operation constructor registered for "'.concat(e,'"'));return t}}]),e}());var er={};Object.defineProperty(er,"__esModule",{value:!0}),er.Validation=void 0,er.isContext=function(e){return"context"in e&&"reflector"in e};var tr=function(){function e(){ee(this,e)}var t,n,r,a,i;return ne(e,[{key:"frontendPreValidate",value:(i=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"frontendPostValidate",value:(a=Q(Y().mark((function e(t,n){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e,t){return a.apply(this,arguments)})},{key:"backendPreValidate",value:(r=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"backendPostValidate",value:(n=Q(Y().mark((function e(t,n){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"possibleValues",value:(t=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",void 0);case 1:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})}]),e}();er.Validation=tr,function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=et;t.__exportStar(tt,e),t.__exportStar(rt,e),t.__exportStar(at,e),t.__exportStar(it,e),t.__exportStar(dt,e),t.__exportStar(ft,e),t.__exportStar(ht,e),t.__exportStar(ot,e),t.__exportStar(Qn,e),t.__exportStar(er,e)}(z);var nr={},rr={},ar={},ir={},or={},sr={};Object.defineProperty(sr,"__esModule",{value:!0}),sr.ApolloPlugin=void 0;var lr=function(e){ae(n,e);var t=de(n);function n(){return ee(this,n),t.apply(this,arguments)}return ne(n,[{key:"apolloInstall",value:function(e){}}]),n}(et.__importDefault(C.default).default);sr.ApolloPlugin=lr;var cr={},ur={},dr={};Object.defineProperty(dr,"__esModule",{value:!0}),dr.changeRegistry=void 0,dr.changeRegistry=new(function(){function e(){ee(this,e),this.changes=new Map}return ne(e,[{key:"registerChange",value:function(e,t){if(this.changes.has(e))throw new Error('change type "'.concat(e,'" has already been registered'));this.changes.set(e,t)}},{key:"getChangeType",value:function(e){var t=this.changes.get(e);if(!t)throw new Error('No change constructor registered for "'.concat(e,'"'));return t}}]),e}());var fr={};Object.defineProperty(fr,"__esModule",{value:!0}),fr.Operation=void 0;var hr=function(){function e(t,n){var r;ee(this,e),this.logger=null!==(r=null==n?void 0:n.logger)&&void 0!==r?r:console}var t;return ne(e,[{key:"execute",value:(t=Q(Y().mark((function e(t){var n,r;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("Server"!==(n=t.typeName)){e.next=4;break}return r=this.executeOnServer(t),e.abrupt("return",t.pluginsService.evaluateExtensionPoint("".concat(this.typeName,"-transformResults"),r,{operation:this,backend:t}));case 4:if("LocalGFF3"!==n){e.next=6;break}return e.abrupt("return",this.executeOnLocalGFF3(t));case 6:throw new Error("no operation implementation for backend type '".concat(n,"'"));case 7:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}]),e}();fr.Operation=hr,Object.defineProperty(ur,"__esModule",{value:!0}),ur.Change=void 0,ur.isChange=function(e){return void 0!==e.executeOnClient};var pr=dr,mr=function(e){ae(r,e);var t,n=de(r);function r(){return ee(this,r),n.apply(this,arguments)}return ne(r,[{key:"notification",get:function(){return""}},{key:"execute",value:(t=Q(Y().mark((function e(t){var n;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("LocalGFF3"!==(n=t.typeName)&&"Server"!==n){e.next=3;break}return e.abrupt("return",fe(ie(r.prototype),"execute",this).call(this,t));case 3:if("Client"!==n){e.next=5;break}return e.abrupt("return",this.executeOnClient(t));case 5:throw new Error("no change implementation for backend type '".concat(n,"'"));case 6:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}],[{key:"fromJSON",value:function(e,t){return new(pr.changeRegistry.getChangeType(e.typeName))(e,(null==t?void 0:t.logger)&&{logger:t.logger})}}]),r}(fr.Operation);ur.Change=mr,Object.defineProperty(cr,"__esModule",{value:!0}),cr.AssemblySpecificChange=void 0,cr.isAssemblySpecificChange=function(e){return(0,gr.isChange)(e)&&void 0!==e.assembly};var gr=ur;cr.AssemblySpecificChange=function(e){ae(n,e);var t=de(n);function n(e,r){var a;return ee(this,n),(a=t.call(this,e,r)).assembly=e.assembly,a}return ne(n)}(gr.Change);var _r={};Object.defineProperty(_r,"__esModule",{value:!0}),_r.Check=void 0,_r.Check=ne((function e(){ee(this,e)}));var yr={};Object.defineProperty(yr,"__esModule",{value:!0}),yr.checkRegistry=void 0,yr.checkRegistry=new(function(){function e(){ee(this,e),this.checks=new Map}return ne(e,[{key:"registerCheck",value:function(e,t){if(this.checks.has(e))throw new Error('check "'.concat(e,'" has already been registered'));this.checks.set(e,t)}},{key:"getCheck",value:function(e){var t=this.checks.get(e);if(!t)throw new Error('No check constructor registered for "'.concat(e,'"'));return t}},{key:"getChecks",value:function(){return this.checks}}]),e}());var vr={};Object.defineProperty(vr,"__esModule",{value:!0}),vr.FeatureChange=void 0,vr.isFeatureChange=function(e){return(0,wr.isAssemblySpecificChange)(e)&&void 0!==e.changedIds};var br=et.__importDefault(Wn),wr=cr,xr=function(e){ae(n,e);var t=de(n);function n(e,r){var a;return ee(this,n),(a=t.call(this,e,r)).changedIds=e.changedIds,a}return ne(n,[{key:"getFeatureFromId",value:function(e,t){var n,r,a,i,o=this.logger;if(null===(n=o.verbose)||void 0===n||n.call(o,"Entry=".concat(JSON.stringify(e))),e._id.equals(t))return null===(r=o.debug)||void 0===r||r.call(o,"Top level featureId matches in the object ".concat(JSON.stringify(e))),e;null===(a=o.debug)||void 0===a||a.call(o,"FeatureId was not found on top level so lets make recursive call...");var s,l=we(null!==(i=e.children)&&void 0!==i?i:new Map);try{for(l.s();!(s=l.n()).done;){var c=he(s.value,2),u=this.getFeatureFromId(c[1],t);if(u)return u}}catch(e){l.e(e)}finally{l.f()}return null}},{key:"getChildFeatureIds",value:function(e){if(!e.children)return[];var t,n=[],r=we((e.children instanceof Map?e.children:new Map(Object.entries(e.children)))||new Map);try{for(r.s();!(t=r.n()).done;){var a=he(t.value,2);n.push.apply(n,[a[0]].concat(me(this.getChildFeatureIds(a[1]))))}}catch(e){r.e(e)}finally{r.f()}return n}},{key:"generateNewIds",value:function(e,t){var n=(new br.default).toHexString();t.push(n);var r={};if(e.children)for(var a=0,i=Object.values(e.children);a<i.length;a++){var o=this.generateNewIds(i[a],t);r[o._id]=o}var s="string"==typeof e.refSeq?e.refSeq:e.refSeq.toHexString();return K(K({},e),{},{refSeq:s,children:e.children&&r,_id:n})}}]),n}(wr.AssemblySpecificChange);vr.FeatureChange=xr;var Sr={};Object.defineProperty(Sr,"__esModule",{value:!0}),Sr.operationRegistry=void 0,Sr.operationRegistry=new(function(){function e(){ee(this,e),this.operations=new Map}return ne(e,[{key:"registerOperation",value:function(e,t){if(this.operations.has(e))throw new Error('operation type "'.concat(e,'" has already been registered'));this.operations.set(e,t)}},{key:"getOperationType",value:function(e){var t=this.operations.get(e);if(!t)throw new Error('No operation constructor registered for "'.concat(e,'"'));return t}}]),e}());var kr={};Object.defineProperty(kr,"__esModule",{value:!0}),kr.Validation=void 0,kr.isContext=function(e){return"context"in e&&"reflector"in e};var Er=function(){function e(){ee(this,e)}var t,n,r,a,i;return ne(e,[{key:"frontendPreValidate",value:(i=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"frontendPostValidate",value:(a=Q(Y().mark((function e(t,n){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e,t){return a.apply(this,arguments)})},{key:"backendPreValidate",value:(r=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"backendPostValidate",value:(n=Q(Y().mark((function e(t,n){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"possibleValues",value:(t=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",void 0);case 1:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})}]),e}();kr.Validation=Er,function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=et;t.__exportStar(sr,e),t.__exportStar(cr,e),t.__exportStar(ur,e),t.__exportStar(dr,e),t.__exportStar(_r,e),t.__exportStar(yr,e),t.__exportStar(vr,e),t.__exportStar(fr,e),t.__exportStar(Sr,e),t.__exportStar(kr,e)}(or);var Ar={},Cr={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.internalToGFF=e.gffToInternal=void 0,e.isGFFReservedAttribute=function(t){return t in e.gffToInternal},e.gffToInternal={ID:"gff_id",Name:"gff_name",Alias:"gff_alias",Parent:"gff_parent",Target:"gff_target",Gap:"gff_gap",Derives_from:"gff_derives_from",Note:"gff_note",Dbxref:"gff_dbxref",Ontology_term:"gff_ontology_term",Is_circular:"gff_is_circular"},e.internalToGFF={gff_id:"ID",gff_name:"Name",gff_alias:"Alias",gff_parent:"Parent",gff_target:"Target",gff_gap:"Gap",gff_derives_from:"Derives_from",gff_note:"Note",gff_dbxref:"Dbxref",gff_ontology_term:"Ontology_term",gff_is_circular:"Is_circular"}}(Cr);var Rr={};Object.defineProperty(Rr,"__esModule",{value:!0}),Rr.gff3ToAnnotationFeature=function e(t,n,r){var a=he(t,1)[0],i=a.end,o=a.seq_id,s=a.start,l=a.strand,c=a.type;if(!o)throw new Error("feature does not have seq_id: ".concat(JSON.stringify(a)));if(!c)throw new Error("feature does not have type: ".concat(JSON.stringify(a)));if(null===s)throw new Error("feature does not have start: ".concat(JSON.stringify(a)));if(null===i)throw new Error("feature does not have end: ".concat(JSON.stringify(a)));var u=he(function(e){if(e.length>1&&!e.every((function(e){return"CDS"===e.type})))throw new Error("GFF3 features has multiple locations but is not a CDS");var t=e.map((function(e){return e.start})).filter((function(e){return null!==e})),n=e.map((function(e){return e.end})).filter((function(e){return null!==e}));return[Math.min.apply(Math,me(t))-1,Math.max.apply(Math,me(n))]}(t),2),d=u[0],f=u[1],h=function(t,n,r){var a={},i=t.filter((function(e){return e.child_features.length>0}));if(i.length>1)throw new Error("Features with multiple locations may not have children");if(0!==i.length){var o,s=[],l=we(he(i,1)[0].child_features);try{for(l.s();!(o=l.n()).done;){var c=o.value,u=he(c,1)[0];if("three_prime_UTR"!==u.type&&"five_prime_UTR"!==u.type&&"intron"!==u.type&&"start_codon"!==u.type&&"stop_codon"!==u.type)if("CDS"===u.type)s.push(c);else{var d=e(c,n,r);a[d._id]=d}}}catch(e){l.e(e)}finally{l.f()}var f,h=s.length>0?function(t,n,r){var a=t.map((function(e){return e.length}));if(a.some((function(e){return e>1})))return t.map((function(t){return e(t,n,r)}));var i=t.map((function(e){return e[0]})).filter((function(e){return null!==e.start&&null!==e.end})).sort((function(e,t){return e.start-t.start}));if(!i.some((function(e,t){var n=i.at(t+1);return!!n&&(0,Nr.doesIntersect2)(e.start,e.end,n.start,n.end)})))return[e(i,n,r)];var o,s=t.map((function(e){return e[0]})),l=[],c=we(s);try{var u=function(){var e=o.value,t=l.at(-1);if(!t)return l.push([e]),1;t.some((function(t){return(0,Nr.doesIntersect2)(t.start,t.end,e.start,e.end)}))?l.push([e]):t.push(e)};for(c.s();!(o=c.n()).done;)u()}catch(e){c.e(e)}finally{c.f()}return l.map((function(t){return e(t,n,r)}))}(s,n,r):[],p=we(h);try{for(p.s();!(f=p.n()).done;){var m=f.value;a[m._id]=m}}catch(e){p.e(e)}finally{p.f()}return Object.keys(a).length>0?a:void 0}}(t,n,r),p=function(e){var t={},n=e.map((function(e){return e.score})).filter((function(e){return null!==e})),r=e.map((function(e){return e.source})).filter((function(e){return null!==e})),a=e.map((function(e){return e.attributes})).filter((function(e){return null!==e}));if(n.length>0){var i=he(n,1)[0];n.length>1&&(i=n.reduce((function(e,t){return e+t}),0)/n.length),t.gff_score=[String(i)]}if(r.length>0){var o=he(r,1)[0];r.length>1&&(o=me(new Set(r)).join(",")),t.gff_source=[o]}if(a.length>0){var s,l=we(a);try{for(l.s();!(s=l.n()).done;)for(var c=0,u=Object.entries(s.value);c<u.length;c++){var d=he(u[c],2),f=d[0],h=d[1];if(h&&"Parent"!==f){var p=(0,Tr.isGFFReservedAttribute)(f)?Tr.gffToInternal[f]:f,m=t[p];if(m){var g=new Set([].concat(me(m),me(h)));t[p]=me(g)}else t[p]=h}}}catch(e){l.e(e)}finally{l.f()}}if(Object.keys(t).length>0)return t}(t),m={_id:(new Ir.default).toHexString(),refSeq:null!=n?n:o,type:c,min:d,max:f};if(l)if("+"===l)m.strand=1;else{if("-"!==l)throw new Error('Unknown strand: "'.concat(l,'"'));m.strand=-1}return h&&(m.children=h),p&&(m.attributes=p),r&&r.push(m._id),m};var Nr=R.default,Ir=et.__importDefault(Wn),Tr=Cr;!function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=et;t.__exportStar(Cr,e),t.__exportStar(Rr,e)}(Ar),Object.defineProperty(ir,"__esModule",{value:!0}),ir.FromFileBaseChange=void 0;var Or=Ar,Fr=function(e){ae(i,e);var t,n,r,a=de(i);function i(){var e;ee(this,i);for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return re(ue(e=a.call.apply(a,[this].concat(n))),"refSeqCache",new Map),e}return ne(i,[{key:"addRefSeqIntoDb",value:(r=Q(Y().mark((function e(t,n,r){var a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b,w,x,S,k,E,A,C,R,N,I,T,O,F,L,D,M,P,q,j,B,U,z,G,H,J,V,W,Z,X;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:i=this.logger,o=r.filesService,s=r.refSeqChunkModel,l=r.refSeqModel,c=r.user,d=(u=jt.env.CHUNK_SIZE)&&Number(u),f=0,h=0,m="text/x-gff3"!==t.type,g=o.getFileStream(t),_="",y="",v=!0,b=!1,null===(a=i.debug)||void 0===a||a.call(i,"starting sequence stream"),w=0,x=!1,S=!1,e.prev=16,E=$(g);case 18:return e.next=20,E.next();case 20:if(!(x=!(A=e.sent).done)){e.next=102;break}C=A.value.toString(),v=!C.endsWith("\n"),R=C.split(/\r?\n/),y&&(R[0]="".concat(y).concat(R[0]),y=""),v&&(y=R.pop()||""),N=!1,I=!1,e.prev=29,O=$(R);case 31:return e.next=33,O.next();case 33:if(!(N=!(F=e.sent).done)){e.next=83;break}if(L=F.value,++w%1e6==0&&(null===(D=i.debug)||void 0===D||D.call(i,"Processed ".concat(w," lines"))),m){e.next=40;break}return"##FASTA"===L.trim()&&(m=!0),e.abrupt("continue",80);case 40:if(!(M=/^>\s*(\S+)\s*(.*)/.exec(L))){e.next=66;break}if(b=!0,null===(P=i.debug)||void 0===P||P.call(i,'Reference sequence information line "'.concat(M[0],'"')),""===_){e.next=51;break}if(p){e.next=47;break}throw new Error("No refSeq document found");case 47:return h+=_.length,e.next=50,s.create([{refSeq:p._id,n:f,sequence:_,user:c,status:-1}]);case 50:_="";case 51:return e.next=53,null===(q=p)||void 0===q?void 0:q.updateOne({length:h});case 53:return h=0,f=0,B=M[1].trim(),U=M[2]?M[2].trim():"",e.next=59,l.create([K(K({name:B,description:U,assembly:n,length:0},d?{chunkSize:d}:null),{},{user:c,status:-1})]);case 59:z=he(e.sent,1),G=z[0],null===(j=i.debug)||void 0===j||j.call(i,'Added new refSeq "'.concat(B,'", desc "').concat(U,'", docId "').concat(G._id,'"')),p=G,e.next=80;break;case 66:if(!/\S/.test(L)){e.next=80;break}if(p){e.next=69;break}throw new Error("No refSeq document found");case 69:J=(H=p)._id,V=H.chunkSize,_+=L.replaceAll(/\s/g,"");case 71:if(!(_.length>=V)){e.next=80;break}return W=_.slice(0,V),h+=W.length,e.next=76,s.create([{refSeq:J,n:f,sequence:W,user:c,status:-1}]);case 76:f++,_=_.slice(V),e.next=71;break;case 80:N=!1,e.next=31;break;case 83:e.next=89;break;case 85:e.prev=85,e.t0=e.catch(29),I=!0,T=e.t0;case 89:if(e.prev=89,e.prev=90,!N||null==O.return){e.next=94;break}return e.next=94,O.return();case 94:if(e.prev=94,!I){e.next=97;break}throw T;case 97:return e.finish(94);case 98:return e.finish(89);case 99:x=!1,e.next=18;break;case 102:e.next=108;break;case 104:e.prev=104,e.t1=e.catch(16),S=!0,k=e.t1;case 108:if(e.prev=108,e.prev=109,!x||null==E.return){e.next=113;break}return e.next=113,E.return();case 113:if(e.prev=113,!S){e.next=116;break}throw k;case 116:return e.finish(113);case 117:return e.finish(108);case 118:if(b){e.next=120;break}throw new Error("No reference sequences found in file");case 120:if(!_&&!v){e.next=131;break}if(p){e.next=123;break}throw new Error("No refSeq document found");case 123:return v&&(_+=y),h+=_.length,null===(Z=i.verbose)||void 0===Z||Z.call(i,'*** Add the very last chunk to ref seq ("'.concat(p._id,'", index ').concat(f," and total length for ref seq is ").concat(h,'): "').concat(_,'"')),null===(X=i.debug)||void 0===X||X.call(i,"Creating refSeq chunk number ".concat(f,' of "').concat(p._id,'"')),e.next=129,s.create([{refSeq:p._id,n:f,sequence:_,user:c,status:-1}]);case 129:return e.next=131,p.updateOne({length:h});case 131:case"end":return e.stop()}}),e,this,[[16,104,108,118],[29,85,89,99],[90,,94,98],[109,,113,117]])}))),function(e,t,n){return r.apply(this,arguments)})},{key:"removeExistingFeatures",value:(n=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.featureModel,a=t.refSeqModel,i=this.assembly,null===(n=(o=this.logger).debug)||void 0===n||n.call(o,"Removing existing features for assembly = ".concat(i)),e.next=5,a.find({assembly:i}).exec();case 5:s=we(e.sent),e.prev=7,s.s();case 9:if((l=s.n()).done){e.next=15;break}return c=l.value,e.next=13,r.deleteMany({refSeq:c._id});case 13:e.next=9;break;case 15:e.next=20;break;case 17:e.prev=17,e.t0=e.catch(7),s.e(e.t0);case 20:return e.prev=20,s.f(),e.finish(20);case 23:case"end":return e.stop()}}),e,this,[[7,17,20,23]])}))),function(e){return n.apply(this,arguments)})},{key:"addFeatureIntoDb",value:(t=Q(Y().mark((function e(t,n){var r,a,i,o,s,l,c,u,d,f,h;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n.featureModel,a=n.refSeqModel,i=n.user,o=this.assembly,s=this.refSeqCache,l=he(t,1),c=l[0].seq_id){e.next=5;break}throw new Error("Valid seq_id not found in feature ".concat(JSON.stringify(t)));case 5:if(u=s.get(c)){e.next=20;break}return e.next=9,a.findOne({assembly:o,name:c}).exec();case 9:if(e.t1=d=e.sent,e.t0=null!==e.t1,!e.t0){e.next=13;break}e.t0=void 0!==d;case 13:if(!e.t0){e.next=17;break}e.t2=d,e.next=18;break;case 17:e.t2=void 0;case 18:(u=e.t2)&&s.set(c,u);case 20:if(u){e.next=22;break}throw new Error('RefSeq was not found by assembly "'.concat(o,'" and seq_id "').concat(c,'" not found'));case 22:return h=(0,Or.gff3ToAnnotationFeature)(t,u._id,f=[]),e.next=26,r.create([K(K({allIds:f},h),{},{user:i,status:-1})]);case 26:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)})}]),i}(or.AssemblySpecificChange);ir.FromFileBaseChange=Fr,Object.defineProperty(ar,"__esModule",{value:!0}),ar.AddAssemblyAndFeaturesFromFileChange=void 0;var Lr=function(e){ae(i,e);var t,n,r,a=de(i);function i(e,t){var n;return ee(this,i),re(ue(n=a.call(this,e,t)),"typeName","AddAssemblyAndFeaturesFromFileChange"),re(ue(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return ne(i,[{key:"notification",get:function(){return'Assembly "'.concat(this.changes[0].assemblyName,'" added successfully. To use it, please refresh the page.')}},{key:"toJSON",value:function(){var e=this.assembly,t=this.changes,n=this.typeName;if(1===t.length){var r=he(t,1)[0];return{typeName:n,assembly:e,assemblyName:r.assemblyName,fileIds:r.fileIds}}return{typeName:n,assembly:e,changes:t}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b,w,x,S,k,E,A,C,R,N;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.assemblyModel,r=t.checkModel,a=t.fileModel,i=t.filesService,o=t.user,s=this.assembly,l=this.logger,c=we(this.changes),e.prev=3,c.s();case 5:if((u=c.n()).done){e.next=71;break}if(g=(m=u.value).assemblyName,_=m.fileIds.fa,jt.env.FILE_UPLOAD_FOLDER){e.next=12;break}throw new Error("No FILE_UPLOAD_FOLDER found in .env file");case 12:return e.next=14,a.findById(_).exec();case 14:if(y=e.sent){e.next=17;break}throw new Error('File "'.concat(_,'" not found in Mongo'));case 17:return null===(d=l.debug)||void 0===d||d.call(l,'FileId "'.concat(_,'", checksum "').concat(y.checksum,'"')),e.next=20,n.findOne({name:g}).exec();case 20:if(!e.sent){e.next=23;break}throw new Error('Assembly "'.concat(g,'" already exists'));case 23:return e.next=25,r.find({default:!0}).exec();case 25:return v=e.sent.map((function(e){return e._id.toHexString()})),e.next=29,n.create([{_id:s,name:g,user:o,status:-1,fileId:_,checks:v}]);case 29:return b=he(e.sent,1),w=b[0],null===(f=l.debug)||void 0===f||f.call(l,'Added new assembly "'.concat(g,'", docId "').concat(w._id.toHexString(),'"')),null===(h=l.debug)||void 0===h||h.call(l,'File type: "'.concat(y.type,'"')),e.next=36,this.addRefSeqIntoDb(y,w._id.toString(),t);case 36:null===(p=l.debug)||void 0===p||p.call(l,'**************** LOOPATAAN KAIKKI FEATURET SEURAAVAKSI File type: "'.concat(y.type,'"')),x=i.parseGFF3(i.getFileStream(y)),S=!1,k=!1,e.prev=40,A=$(x);case 42:return e.next=44,A.next();case 44:if(!(S=!(C=e.sent).done)){e.next=53;break}return N=C.value,null===(R=l.verbose)||void 0===R||R.call(l,"ENTRY=".concat(JSON.stringify(N))),e.next=50,this.addFeatureIntoDb(N,t);case 50:S=!1,e.next=42;break;case 53:e.next=59;break;case 55:e.prev=55,e.t0=e.catch(40),k=!0,E=e.t0;case 59:if(e.prev=59,e.prev=60,!S||null==A.return){e.next=64;break}return e.next=64,A.return();case 64:if(e.prev=64,!k){e.next=67;break}throw E;case 67:return e.finish(64);case 68:return e.finish(59);case 69:e.next=5;break;case 71:e.next=76;break;case 73:e.prev=73,e.t1=e.catch(3),c.e(e.t1);case 76:return e.prev=76,c.f(),e.finish(76);case 79:case"end":return e.stop()}}),e,this,[[3,73,76,79],[40,55,59,69],[60,,64,68]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){return new i({typeName:this.typeName,changes:this.changes,assembly:this.assembly},{logger:this.logger})}}]),i}(ir.FromFileBaseChange);ar.AddAssemblyAndFeaturesFromFileChange=Lr;var Dr={},Mr={},Pr=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};ee(this,e),this.baseOverrides={},this.url=t;var r=n.fetch||globalThis.fetch.bind(globalThis);if(!r)throw new TypeError("no fetch function supplied, and none found in global environment");n.overrides&&(this.baseOverrides=n.overrides),this.fetchImplementation=r}var t,n,r,a,i,o;return ne(e,[{key:"getBufferFromResponse",value:(o=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("function"!=typeof t.buffer){e.next=4;break}return e.abrupt("return",t.buffer());case 4:if("function"!=typeof t.arrayBuffer){e.next=11;break}return e.next=7,t.arrayBuffer();case 7:return e.abrupt("return",Xt.from(e.sent));case 11:throw new TypeError("invalid HTTP response object, has no buffer method, and no arrayBuffer method");case 12:case"end":return e.stop()}}),e)}))),function(e){return o.apply(this,arguments)})},{key:"fetch",value:(i=Q(Y().mark((function e(t,n){var r;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this.fetchImplementation(t,n);case 3:case 12:r=e.sent,e.next=16;break;case 6:if(e.prev=6,e.t0=e.catch(0),!"".concat(e.t0).includes("Failed to fetch")){e.next=15;break}return console.warn("generic-filehandle: refetching ".concat(t," to attempt to work around chrome CORS header caching bug")),e.next=12,this.fetchImplementation(t,K(K({},n),{},{cache:"reload"}));case 15:throw e.t0;case 16:return e.abrupt("return",r);case 17:case"end":return e.stop()}}),e,this,[[0,6]])}))),function(e,t){return i.apply(this,arguments)})},{key:"read",value:(a=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_=arguments;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=_.length>1&&void 0!==_[1]?_[1]:0,a=_.length>3&&void 0!==_[3]?_[3]:0,s=void 0===(o=(i=_.length>4&&void 0!==_[4]?_[4]:{}).headers)?{}:o,l=i.signal,u=void 0===(c=i.overrides)?{}:c,(r=_.length>2?_[2]:void 0)<Infinity?s.range="bytes=".concat(a,"-").concat(a+r):Infinity===r&&0!==a&&(s.range="bytes=".concat(a,"-")),d=K(K(K({},this.baseOverrides),u),{},{headers:K(K(K({},s),u.headers),this.baseOverrides.headers),method:"GET",redirect:"follow",mode:"cors",signal:l}),e.next=9,this.fetch(this.url,d);case 9:if((f=e.sent).ok){e.next=12;break}throw new Error("HTTP ".concat(f.status," ").concat(f.statusText," ").concat(this.url));case 12:if((200!==f.status||0!==a)&&206!==f.status){e.next=21;break}return e.next=15,this.getBufferFromResponse(f);case 15:return p=(h=e.sent).copy(t,n,0,Math.min(r,h.length)),m=f.headers.get("content-range"),(g=/\/(\d+)$/.exec(m||""))&&g[1]&&(this._stat={size:parseInt(g[1],10)}),e.abrupt("return",{bytesRead:p,buffer:t});case 21:if(200!==f.status){e.next=23;break}throw new Error("${this.url} fetch returned status 200, expected 206");case 23:throw new Error("HTTP ".concat(f.status," fetching ").concat(this.url));case 24:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"readFile",value:(r=Q(Y().mark((function e(){var t,n,r,a,i,o,s,l,c,u=arguments;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return"string"==typeof(t=u.length>0&&void 0!==u[0]?u[0]:{})?(n=t,r={}):(n=t.encoding,delete(r=t).encoding),s=void 0===(o=(a=r).overrides)?{}:o,l=K(K({headers:void 0===(i=a.headers)?{}:i,method:"GET",redirect:"follow",mode:"cors",signal:a.signal},this.baseOverrides),s),e.next=6,this.fetch(this.url,l);case 6:if(c=e.sent){e.next=9;break}throw new Error("generic-filehandle failed to fetch");case 9:if(200===c.status){e.next=11;break}throw Object.assign(new Error("HTTP ".concat(c.status," fetching ").concat(this.url)),{status:c.status});case 11:if("utf8"!==n){e.next=13;break}return e.abrupt("return",c.text());case 13:if(!n){e.next=15;break}throw new Error("unsupported encoding: ".concat(n));case 15:return e.abrupt("return",this.getBufferFromResponse(c));case 16:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"stat",value:(n=Q(Y().mark((function e(){var t;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._stat){e.next=6;break}return t=Xt.allocUnsafe(10),e.next=4,this.read(t,0,10,0);case 4:if(this._stat){e.next=6;break}throw new Error("unable to determine size of file at ".concat(this.url));case 6:return e.abrupt("return",this._stat);case 7:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"close",value:(t=Q(Y().mark((function e(){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return");case 1:case"end":return e.stop()}}),e)}))),function(){return t.apply(this,arguments)})}]),e}();function qr(e){var t=new FileReader;return new Promise((function(n,r){t.onerror=function(){t.abort(),r(new Error("problem reading blob"))},t.onabort=function(){r(new Error("blob reading was aborted"))},t.onload=function(){t.result&&"string"!=typeof t.result?n(t.result):r(new Error("unknown error reading blob"))},t.readAsArrayBuffer(e)}))}function jr(e){var t=new FileReader;return new Promise((function(n,r){t.onerror=function(){t.abort(),r(new Error("problem reading blob"))},t.onabort=function(){r(new Error("blob reading was aborted"))},t.onload=function(){t.result&&"string"==typeof t.result?n(t.result):r(new Error("unknown error reading blob"))},t.readAsText(e)}))}var Br=function(){function e(t){ee(this,e),this.blob=t,this.size=t.size}var t,n,r,a;return ne(e,[{key:"read",value:(a=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c=arguments;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=c.length>1&&void 0!==c[1]?c[1]:0,a=c.length>3&&void 0!==c[3]?c[3]:0,r=c.length>2?c[2]:void 0){e.next=5;break}return e.abrupt("return",{bytesRead:0,buffer:t});case 5:return o=(i=a)+r,e.next=9,qr(this.blob.slice(i,o));case 9:return s=Xt.from(e.sent),l=s.copy(t,n),e.abrupt("return",{bytesRead:l,buffer:s});case 13:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"readFile",value:(r=Q(Y().mark((function e(t){var n;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("utf8"!==(n="string"==typeof t?t:t&&t.encoding)){e.next=3;break}return e.abrupt("return",jr(this.blob));case 3:if(!n){e.next=5;break}throw new Error("unsupported encoding: ".concat(n));case 5:return e.next=7,qr(this.blob);case 7:return e.abrupt("return",Xt.from(e.sent));case 9:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"stat",value:(n=Q(Y().mark((function e(){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{size:this.size});case 1:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"close",value:(t=Q(Y().mark((function e(){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return");case 1:case"end":return e.stop()}}),e)}))),function(){return t.apply(this,arguments)})}]),e}();function Ur(e){return new Pr(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{})}var zr={__proto__:null,open:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(void 0!==n)return n;if(void 0!==e)return Ur(e,r);if(void 0!==t)return new Mr(t,r);throw new Error("no url, path, or filehandle provided, cannot open")},fromUrl:Ur,RemoteFile:Pr,LocalFile:Mr,BlobFile:Br},Gr={};!function(e){var t="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var r=t.shift();if(r){if("object"!==Z(r))throw new TypeError(r+"must be non-object");for(var a in r)n(r,a)&&(e[a]=r[a])}}return e},e.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var r={arraySet:function(e,t,n,r,a){if(t.subarray&&e.subarray)e.set(t.subarray(n,n+r),a);else for(var i=0;i<r;i++)e[a+i]=t[n+i]},flattenChunks:function(e){var t,n,r,a,i,o;for(r=0,t=0,n=e.length;t<n;t++)r+=e[t].length;for(o=new Uint8Array(r),a=0,t=0,n=e.length;t<n;t++)o.set(i=e[t],a),a+=i.length;return o}},a={arraySet:function(e,t,n,r,a){for(var i=0;i<r;i++)e[a+i]=t[n+i]},flattenChunks:function(e){return[].concat.apply([],e)}};e.setTyped=function(t){t?(e.Buf8=Uint8Array,e.Buf16=Uint16Array,e.Buf32=Int32Array,e.assign(e,r)):(e.Buf8=Array,e.Buf16=Array,e.Buf32=Array,e.assign(e,a))},e.setTyped(t)}(Gr);var Hr={},$r={},Jr={},Vr=Gr;function Wr(e){for(var t=e.length;--t>=0;)e[t]=0}var Kr=15,Yr=16,Zr=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Xr=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Qr=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],ea=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],ta=new Array(576);Wr(ta);var na=new Array(60);Wr(na);var ra=new Array(512);Wr(ra);var aa=new Array(256);Wr(aa);var ia=new Array(29);Wr(ia);var oa,sa,la,ca=new Array(30);function ua(e,t,n,r,a){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=a,this.has_stree=e&&e.length}function da(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function fa(e){return e<256?ra[e]:ra[256+(e>>>7)]}function ha(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function pa(e,t,n){e.bi_valid>Yr-n?(e.bi_buf|=t<<e.bi_valid&65535,ha(e,e.bi_buf),e.bi_buf=t>>Yr-e.bi_valid,e.bi_valid+=n-Yr):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function ma(e,t,n){pa(e,n[2*t],n[2*t+1])}function ga(e,t){var n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1}function _a(e,t,n){var r,a,i=new Array(Kr+1),o=0;for(r=1;r<=Kr;r++)i[r]=o=o+n[r-1]<<1;for(a=0;a<=t;a++){var s=e[2*a+1];0!==s&&(e[2*a]=ga(i[s]++,s))}}function ya(e){var t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function va(e){e.bi_valid>8?ha(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function ba(e,t,n,r){var a=2*t,i=2*n;return e[a]<e[i]||e[a]===e[i]&&r[t]<=r[n]}function wa(e,t,n){for(var r=e.heap[n],a=n<<1;a<=e.heap_len&&(a<e.heap_len&&ba(t,e.heap[a+1],e.heap[a],e.depth)&&a++,!ba(t,r,e.heap[a],e.depth));)e.heap[n]=e.heap[a],n=a,a<<=1;e.heap[n]=r}function xa(e,t,n){var r,a,i,o,s=0;if(0!==e.last_lit)do{r=e.pending_buf[e.d_buf+2*s]<<8|e.pending_buf[e.d_buf+2*s+1],a=e.pending_buf[e.l_buf+s],s++,0===r?ma(e,a,t):(ma(e,(i=aa[a])+256+1,t),0!==(o=Zr[i])&&pa(e,a-=ia[i],o),ma(e,i=fa(--r),n),0!==(o=Xr[i])&&pa(e,r-=ca[i],o))}while(s<e.last_lit);ma(e,256,t)}function Sa(e,t){var n,r,a,i=t.dyn_tree,o=t.stat_desc.static_tree,s=t.stat_desc.has_stree,l=t.stat_desc.elems,c=-1;for(e.heap_len=0,e.heap_max=573,n=0;n<l;n++)0!==i[2*n]?(e.heap[++e.heap_len]=c=n,e.depth[n]=0):i[2*n+1]=0;for(;e.heap_len<2;)i[2*(a=e.heap[++e.heap_len]=c<2?++c:0)]=1,e.depth[a]=0,e.opt_len--,s&&(e.static_len-=o[2*a+1]);for(t.max_code=c,n=e.heap_len>>1;n>=1;n--)wa(e,i,n);a=l;do{n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],wa(e,i,1),r=e.heap[1],e.heap[--e.heap_max]=n,e.heap[--e.heap_max]=r,i[2*a]=i[2*n]+i[2*r],e.depth[a]=(e.depth[n]>=e.depth[r]?e.depth[n]:e.depth[r])+1,i[2*n+1]=i[2*r+1]=a,e.heap[1]=a++,wa(e,i,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],function(e,t){var n,r,a,i,o,s,l=t.dyn_tree,c=t.max_code,u=t.stat_desc.static_tree,d=t.stat_desc.has_stree,f=t.stat_desc.extra_bits,h=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(i=0;i<=Kr;i++)e.bl_count[i]=0;for(l[2*e.heap[e.heap_max]+1]=0,n=e.heap_max+1;n<573;n++)(i=l[2*l[2*(r=e.heap[n])+1]+1]+1)>p&&(i=p,m++),l[2*r+1]=i,r>c||(e.bl_count[i]++,o=0,r>=h&&(o=f[r-h]),e.opt_len+=(s=l[2*r])*(i+o),d&&(e.static_len+=s*(u[2*r+1]+o)));if(0!==m){do{for(i=p-1;0===e.bl_count[i];)i--;e.bl_count[i]--,e.bl_count[i+1]+=2,e.bl_count[p]--,m-=2}while(m>0);for(i=p;0!==i;i--)for(r=e.bl_count[i];0!==r;)(a=e.heap[--n])>c||(l[2*a+1]!==i&&(e.opt_len+=(i-l[2*a+1])*l[2*a],l[2*a+1]=i),r--)}}(e,t),_a(i,c,e.bl_count)}function ka(e,t,n){var r,a,i=-1,o=t[1],s=0,l=7,c=4;for(0===o&&(l=138,c=3),t[2*(n+1)+1]=65535,r=0;r<=n;r++)a=o,o=t[2*(r+1)+1],++s<l&&a===o||(s<c?e.bl_tree[2*a]+=s:0!==a?(a!==i&&e.bl_tree[2*a]++,e.bl_tree[32]++):s<=10?e.bl_tree[34]++:e.bl_tree[36]++,s=0,i=a,0===o?(l=138,c=3):a===o?(l=6,c=3):(l=7,c=4))}function Ea(e,t,n){var r,a,i=-1,o=t[1],s=0,l=7,c=4;for(0===o&&(l=138,c=3),r=0;r<=n;r++)if(a=o,o=t[2*(r+1)+1],!(++s<l&&a===o)){if(s<c)do{ma(e,a,e.bl_tree)}while(0!=--s);else 0!==a?(a!==i&&(ma(e,a,e.bl_tree),s--),ma(e,16,e.bl_tree),pa(e,s-3,2)):s<=10?(ma(e,17,e.bl_tree),pa(e,s-3,3)):(ma(e,18,e.bl_tree),pa(e,s-11,7));s=0,i=a,0===o?(l=138,c=3):a===o?(l=6,c=3):(l=7,c=4)}}Wr(ca);var Aa=!1;function Ca(e,t,n,r){pa(e,0+(r?1:0),3),function(e,t,n,r){va(e),ha(e,n),ha(e,~n),Vr.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}(e,t,n)}Jr._tr_init=function(e){Aa||(function(){var e,t,n,r,a,i=new Array(Kr+1);for(n=0,r=0;r<28;r++)for(ia[r]=n,e=0;e<1<<Zr[r];e++)aa[n++]=r;for(aa[n-1]=r,a=0,r=0;r<16;r++)for(ca[r]=a,e=0;e<1<<Xr[r];e++)ra[a++]=r;for(a>>=7;r<30;r++)for(ca[r]=a<<7,e=0;e<1<<Xr[r]-7;e++)ra[256+a++]=r;for(t=0;t<=Kr;t++)i[t]=0;for(e=0;e<=143;)ta[2*e+1]=8,e++,i[8]++;for(;e<=255;)ta[2*e+1]=9,e++,i[9]++;for(;e<=279;)ta[2*e+1]=7,e++,i[7]++;for(;e<=287;)ta[2*e+1]=8,e++,i[8]++;for(_a(ta,287,i),e=0;e<30;e++)na[2*e+1]=5,na[2*e]=ga(e,5);oa=new ua(ta,Zr,257,286,Kr),sa=new ua(na,Xr,0,30,Kr),la=new ua(new Array(0),Qr,0,19,7)}(),Aa=!0),e.l_desc=new da(e.dyn_ltree,oa),e.d_desc=new da(e.dyn_dtree,sa),e.bl_desc=new da(e.bl_tree,la),e.bi_buf=0,e.bi_valid=0,ya(e)},Jr._tr_stored_block=Ca,Jr._tr_flush_block=function(e,t,n,r){var a,i,o=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,n=4093624447;for(t=0;t<=31;t++,n>>>=1)if(1&n&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0}(e)),Sa(e,e.l_desc),Sa(e,e.d_desc),o=function(e){var t;for(ka(e,e.dyn_ltree,e.l_desc.max_code),ka(e,e.dyn_dtree,e.d_desc.max_code),Sa(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*ea[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),(i=e.static_len+3+7>>>3)<=(a=e.opt_len+3+7>>>3)&&(a=i)):a=i=n+5,n+4<=a&&-1!==t?Ca(e,t,n,r):4===e.strategy||i===a?(pa(e,2+(r?1:0),3),xa(e,ta,na)):(pa(e,4+(r?1:0),3),function(e,t,n,r){var a;for(pa(e,t-257,5),pa(e,n-1,5),pa(e,r-4,4),a=0;a<r;a++)pa(e,e.bl_tree[2*ea[a]+1],3);Ea(e,e.dyn_ltree,t-1),Ea(e,e.dyn_dtree,n-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),xa(e,e.dyn_ltree,e.dyn_dtree)),ya(e),r&&va(e)},Jr._tr_tally=function(e,t,n){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&n,e.last_lit++,0===t?e.dyn_ltree[2*n]++:(e.matches++,t--,e.dyn_ltree[2*(aa[n]+256+1)]++,e.dyn_dtree[2*fa(t)]++),e.last_lit===e.lit_bufsize-1},Jr._tr_align=function(e){pa(e,2,3),ma(e,256,ta),function(e){16===e.bi_valid?(ha(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)};var Ra=function(e,t,n,r){for(var a=65535&e|0,i=e>>>16&65535|0,o=0;0!==n;){n-=o=n>2e3?2e3:n;do{i=i+(a=a+t[r++]|0)|0}while(--o);a%=65521,i%=65521}return a|i<<16|0};function Na(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t}var Ia,Ta=Na(),Oa=function(e,t,n,r){var a=Ta,i=r+n;e^=-1;for(var o=r;o<i;o++)e=e>>>8^a[255&(e^t[o])];return-1^e},Fa={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},La=Gr,Da=Jr,Ma=Ra,Pa=Oa,qa=Fa,ja=0,Ba=0,Ua=-2,za=2,Ga=8,Ha=286,$a=30,Ja=19,Va=2*Ha+1,Wa=15,Ka=3,Ya=258,Za=Ya+Ka+1,Xa=42,Qa=103,ei=113,ti=666;function ni(e,t){return e.msg=qa[t],t}function ri(e){return(e<<1)-(e>4?9:0)}function ai(e){for(var t=e.length;--t>=0;)e[t]=0}function ii(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),0!==n&&(La.arraySet(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,0===t.pending&&(t.pending_out=0))}function oi(e,t){Da._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,ii(e.strm)}function si(e,t){e.pending_buf[e.pending++]=t}function li(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function ci(e,t){var n,r,a=e.max_chain_length,i=e.strstart,o=e.prev_length,s=e.nice_match,l=e.strstart>e.w_size-Za?e.strstart-(e.w_size-Za):0,c=e.window,u=e.w_mask,d=e.prev,f=e.strstart+Ya,h=c[i+o-1],p=c[i+o];e.prev_length>=e.good_match&&(a>>=2),s>e.lookahead&&(s=e.lookahead);do{if(c[(n=t)+o]===p&&c[n+o-1]===h&&c[n]===c[i]&&c[++n]===c[i+1]){i+=2,n++;do{}while(c[++i]===c[++n]&&c[++i]===c[++n]&&c[++i]===c[++n]&&c[++i]===c[++n]&&c[++i]===c[++n]&&c[++i]===c[++n]&&c[++i]===c[++n]&&c[++i]===c[++n]&&i<f);if(r=Ya-(f-i),i=f-Ya,r>o){if(e.match_start=t,o=r,r>=s)break;h=c[i+o-1],p=c[i+o]}}}while((t=d[t&u])>l&&0!=--a);return o<=e.lookahead?o:e.lookahead}function ui(e){var t,n,r,a,i,o,s,l,c,u,d=e.w_size;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=d+(d-Za)){La.arraySet(e.window,e.window,d,d,0),e.match_start-=d,e.strstart-=d,e.block_start-=d,t=n=e.hash_size;do{r=e.head[--t],e.head[t]=r>=d?r-d:0}while(--n);t=n=d;do{r=e.prev[--t],e.prev[t]=r>=d?r-d:0}while(--n);a+=d}if(0===e.strm.avail_in)break;if(s=e.window,l=e.strstart+e.lookahead,u=void 0,(u=(o=e.strm).avail_in)>(c=a)&&(u=c),n=0===u?0:(o.avail_in-=u,La.arraySet(s,o.input,o.next_in,u,l),1===o.state.wrap?o.adler=Ma(o.adler,s,u,l):2===o.state.wrap&&(o.adler=Pa(o.adler,s,u,l)),o.next_in+=u,o.total_in+=u,u),e.lookahead+=n,e.lookahead+e.insert>=Ka)for(e.ins_h=e.window[i=e.strstart-e.insert],e.ins_h=(e.ins_h<<e.hash_shift^e.window[i+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[i+Ka-1])&e.hash_mask,e.prev[i&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=i,i++,e.insert--,!(e.lookahead+e.insert<Ka)););}while(e.lookahead<Za&&0!==e.strm.avail_in)}function di(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(ui(e),0===e.lookahead&&t===ja)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((0===e.strstart||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,oi(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-Za&&(oi(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(oi(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&oi(e,!1),1)}function fi(e,t){for(var n,r;;){if(e.lookahead<Za){if(ui(e),e.lookahead<Za&&t===ja)return 1;if(0===e.lookahead)break}if(n=0,e.lookahead>=Ka&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+Ka-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==n&&e.strstart-n<=e.w_size-Za&&(e.match_length=ci(e,n)),e.match_length>=Ka)if(r=Da._tr_tally(e,e.strstart-e.match_start,e.match_length-Ka),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=Ka){e.match_length--;do{e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+Ka-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else r=Da._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(oi(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<Ka-1?e.strstart:Ka-1,4===t?(oi(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(oi(e,!1),0===e.strm.avail_out)?1:2}function hi(e,t){for(var n,r,a;;){if(e.lookahead<Za){if(ui(e),e.lookahead<Za&&t===ja)return 1;if(0===e.lookahead)break}if(n=0,e.lookahead>=Ka&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+Ka-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=Ka-1,0!==n&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-Za&&(e.match_length=ci(e,n),e.match_length<=5&&(1===e.strategy||e.match_length===Ka&&e.strstart-e.match_start>4096)&&(e.match_length=Ka-1)),e.prev_length>=Ka&&e.match_length<=e.prev_length){a=e.strstart+e.lookahead-Ka,r=Da._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-Ka),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=a&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+Ka-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=Ka-1,e.strstart++,r&&(oi(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if((r=Da._tr_tally(e,0,e.window[e.strstart-1]))&&oi(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=Da._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<Ka-1?e.strstart:Ka-1,4===t?(oi(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(oi(e,!1),0===e.strm.avail_out)?1:2}function pi(e,t,n,r,a){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=a}function mi(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Ga,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new La.Buf16(2*Va),this.dyn_dtree=new La.Buf16(2*(2*$a+1)),this.bl_tree=new La.Buf16(2*(2*Ja+1)),ai(this.dyn_ltree),ai(this.dyn_dtree),ai(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new La.Buf16(Wa+1),this.heap=new La.Buf16(2*Ha+1),ai(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new La.Buf16(2*Ha+1),ai(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function gi(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=za,(t=e.state).pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?Xa:ei,e.adler=2===t.wrap?0:1,t.last_flush=ja,Da._tr_init(t),Ba):ni(e,Ua)}function _i(e){var t,n=gi(e);return n===Ba&&((t=e.state).window_size=2*t.w_size,ai(t.head),t.max_lazy_match=Ia[t.level].max_lazy,t.good_match=Ia[t.level].good_length,t.nice_match=Ia[t.level].nice_length,t.max_chain_length=Ia[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=Ka-1,t.match_available=0,t.ins_h=0),n}function yi(e,t,n,r,a,i){if(!e)return Ua;var o=1;if(-1===t&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),a<1||a>9||n!==Ga||r<8||r>15||t<0||t>9||i<0||i>4)return ni(e,Ua);8===r&&(r=9);var s=new mi;return e.state=s,s.strm=e,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=a+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+Ka-1)/Ka),s.window=new La.Buf8(2*s.w_size),s.head=new La.Buf16(s.hash_size),s.prev=new La.Buf16(s.w_size),s.lit_bufsize=1<<a+6,s.pending_buf_size=4*s.lit_bufsize,s.pending_buf=new La.Buf8(s.pending_buf_size),s.d_buf=1*s.lit_bufsize,s.l_buf=3*s.lit_bufsize,s.level=t,s.strategy=i,s.method=n,_i(e)}Ia=[new pi(0,0,0,0,di),new pi(4,4,8,4,fi),new pi(4,5,16,8,fi),new pi(4,6,32,32,fi),new pi(4,4,16,16,hi),new pi(8,16,32,32,hi),new pi(8,16,128,128,hi),new pi(8,32,128,256,hi),new pi(32,128,258,1024,hi),new pi(32,258,258,4096,hi)],$r.deflateInit=function(e,t){return yi(e,t,Ga,15,8,0)},$r.deflateInit2=yi,$r.deflateReset=_i,$r.deflateResetKeep=gi,$r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?Ua:(e.state.gzhead=t,Ba):Ua},$r.deflate=function(e,t){var n,r,a,i;if(!e||!e.state||t>5||t<0)return e?ni(e,Ua):Ua;if(r=e.state,!e.output||!e.input&&0!==e.avail_in||r.status===ti&&4!==t)return ni(e,0===e.avail_out?-5:Ua);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===Xa)if(2===r.wrap)e.adler=0,si(r,31),si(r,139),si(r,8),r.gzhead?(si(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),si(r,255&r.gzhead.time),si(r,r.gzhead.time>>8&255),si(r,r.gzhead.time>>16&255),si(r,r.gzhead.time>>24&255),si(r,9===r.level?2:r.strategy>=2||r.level<2?4:0),si(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(si(r,255&r.gzhead.extra.length),si(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=Pa(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=69):(si(r,0),si(r,0),si(r,0),si(r,0),si(r,0),si(r,9===r.level?2:r.strategy>=2||r.level<2?4:0),si(r,3),r.status=ei);else{var o=Ga+(r.w_bits-8<<4)<<8;o|=(r.strategy>=2||r.level<2?0:r.level<6?1:6===r.level?2:3)<<6,0!==r.strstart&&(o|=32),o+=31-o%31,r.status=ei,li(r,o),0!==r.strstart&&(li(r,e.adler>>>16),li(r,65535&e.adler)),e.adler=1}if(69===r.status)if(r.gzhead.extra){for(a=r.pending;r.gzindex<(65535&r.gzhead.extra.length)&&(r.pending!==r.pending_buf_size||(r.gzhead.hcrc&&r.pending>a&&(e.adler=Pa(e.adler,r.pending_buf,r.pending-a,a)),ii(e),a=r.pending,r.pending!==r.pending_buf_size));)si(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++;r.gzhead.hcrc&&r.pending>a&&(e.adler=Pa(e.adler,r.pending_buf,r.pending-a,a)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=73)}else r.status=73;if(73===r.status)if(r.gzhead.name){a=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>a&&(e.adler=Pa(e.adler,r.pending_buf,r.pending-a,a)),ii(e),a=r.pending,r.pending===r.pending_buf_size)){i=1;break}i=r.gzindex<r.gzhead.name.length?255&r.gzhead.name.charCodeAt(r.gzindex++):0,si(r,i)}while(0!==i);r.gzhead.hcrc&&r.pending>a&&(e.adler=Pa(e.adler,r.pending_buf,r.pending-a,a)),0===i&&(r.gzindex=0,r.status=91)}else r.status=91;if(91===r.status)if(r.gzhead.comment){a=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>a&&(e.adler=Pa(e.adler,r.pending_buf,r.pending-a,a)),ii(e),a=r.pending,r.pending===r.pending_buf_size)){i=1;break}i=r.gzindex<r.gzhead.comment.length?255&r.gzhead.comment.charCodeAt(r.gzindex++):0,si(r,i)}while(0!==i);r.gzhead.hcrc&&r.pending>a&&(e.adler=Pa(e.adler,r.pending_buf,r.pending-a,a)),0===i&&(r.status=Qa)}else r.status=Qa;if(r.status===Qa&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&ii(e),r.pending+2<=r.pending_buf_size&&(si(r,255&e.adler),si(r,e.adler>>8&255),e.adler=0,r.status=ei)):r.status=ei),0!==r.pending){if(ii(e),0===e.avail_out)return r.last_flush=-1,Ba}else if(0===e.avail_in&&ri(t)<=ri(n)&&4!==t)return ni(e,-5);if(r.status===ti&&0!==e.avail_in)return ni(e,-5);if(0!==e.avail_in||0!==r.lookahead||t!==ja&&r.status!==ti){var s=2===r.strategy?function(e,t){for(var n;;){if(0===e.lookahead&&(ui(e),0===e.lookahead)){if(t===ja)return 1;break}if(e.match_length=0,n=Da._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(oi(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(oi(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(oi(e,!1),0===e.strm.avail_out)?1:2}(r,t):3===r.strategy?function(e,t){for(var n,r,a,i,o=e.window;;){if(e.lookahead<=Ya){if(ui(e),e.lookahead<=Ya&&t===ja)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=Ka&&e.strstart>0&&(r=o[a=e.strstart-1])===o[++a]&&r===o[++a]&&r===o[++a]){i=e.strstart+Ya;do{}while(r===o[++a]&&r===o[++a]&&r===o[++a]&&r===o[++a]&&r===o[++a]&&r===o[++a]&&r===o[++a]&&r===o[++a]&&a<i);e.match_length=Ya-(i-a),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=Ka?(n=Da._tr_tally(e,1,e.match_length-Ka),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=Da._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(oi(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(oi(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(oi(e,!1),0===e.strm.avail_out)?1:2}(r,t):Ia[r.level].func(r,t);if(3!==s&&4!==s||(r.status=ti),1===s||3===s)return 0===e.avail_out&&(r.last_flush=-1),Ba;if(2===s&&(1===t?Da._tr_align(r):5!==t&&(Da._tr_stored_block(r,0,0,!1),3===t&&(ai(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),ii(e),0===e.avail_out))return r.last_flush=-1,Ba}return 4!==t?Ba:r.wrap<=0?1:(2===r.wrap?(si(r,255&e.adler),si(r,e.adler>>8&255),si(r,e.adler>>16&255),si(r,e.adler>>24&255),si(r,255&e.total_in),si(r,e.total_in>>8&255),si(r,e.total_in>>16&255),si(r,e.total_in>>24&255)):(li(r,e.adler>>>16),li(r,65535&e.adler)),ii(e),r.wrap>0&&(r.wrap=-r.wrap),0!==r.pending?Ba:1)},$r.deflateEnd=function(e){var t;return e&&e.state?(t=e.state.status)!==Xa&&69!==t&&73!==t&&91!==t&&t!==Qa&&t!==ei&&t!==ti?ni(e,Ua):(e.state=null,t===ei?ni(e,-3):Ba):Ua},$r.deflateSetDictionary=function(e,t){var n,r,a,i,o,s,l,c,u=t.length;if(!e||!e.state)return Ua;if(2===(i=(n=e.state).wrap)||1===i&&n.status!==Xa||n.lookahead)return Ua;for(1===i&&(e.adler=Ma(e.adler,t,u,0)),n.wrap=0,u>=n.w_size&&(0===i&&(ai(n.head),n.strstart=0,n.block_start=0,n.insert=0),c=new La.Buf8(n.w_size),La.arraySet(c,t,u-n.w_size,n.w_size,0),t=c,u=n.w_size),o=e.avail_in,s=e.next_in,l=e.input,e.avail_in=u,e.next_in=0,e.input=t,ui(n);n.lookahead>=Ka;){r=n.strstart,a=n.lookahead-(Ka-1);do{n.ins_h=(n.ins_h<<n.hash_shift^n.window[r+Ka-1])&n.hash_mask,n.prev[r&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=r,r++}while(--a);n.strstart=r,n.lookahead=Ka-1,ui(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=Ka-1,n.match_available=0,e.next_in=s,e.input=l,e.avail_in=o,n.wrap=i,Ba},$r.deflateInfo="pako deflate (from Nodeca project)";var vi={},bi=Gr,wi=!0,xi=!0;try{String.fromCharCode.apply(null,[0])}catch(e){wi=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){xi=!1}for(var Si=new bi.Buf8(256),ki=0;ki<256;ki++)Si[ki]=ki>=252?6:ki>=248?5:ki>=240?4:ki>=224?3:ki>=192?2:1;function Ei(e,t){if(t<65534&&(e.subarray&&xi||!e.subarray&&wi))return String.fromCharCode.apply(null,bi.shrinkBuf(e,t));for(var n="",r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n}Si[254]=Si[254]=1,vi.string2buf=function(e){var t,n,r,a,i,o=e.length,s=0;for(a=0;a<o;a++)55296==(64512&(n=e.charCodeAt(a)))&&a+1<o&&56320==(64512&(r=e.charCodeAt(a+1)))&&(n=65536+(n-55296<<10)+(r-56320),a++),s+=n<128?1:n<2048?2:n<65536?3:4;for(t=new bi.Buf8(s),i=0,a=0;i<s;a++)55296==(64512&(n=e.charCodeAt(a)))&&a+1<o&&56320==(64512&(r=e.charCodeAt(a+1)))&&(n=65536+(n-55296<<10)+(r-56320),a++),n<128?t[i++]=n:n<2048?(t[i++]=192|n>>>6,t[i++]=128|63&n):n<65536?(t[i++]=224|n>>>12,t[i++]=128|n>>>6&63,t[i++]=128|63&n):(t[i++]=240|n>>>18,t[i++]=128|n>>>12&63,t[i++]=128|n>>>6&63,t[i++]=128|63&n);return t},vi.buf2binstring=function(e){return Ei(e,e.length)},vi.binstring2buf=function(e){for(var t=new bi.Buf8(e.length),n=0,r=t.length;n<r;n++)t[n]=e.charCodeAt(n);return t},vi.buf2string=function(e,t){var n,r,a,i,o=t||e.length,s=new Array(2*o);for(r=0,n=0;n<o;)if((a=e[n++])<128)s[r++]=a;else if((i=Si[a])>4)s[r++]=65533,n+=i-1;else{for(a&=2===i?31:3===i?15:7;i>1&&n<o;)a=a<<6|63&e[n++],i--;i>1?s[r++]=65533:a<65536?s[r++]=a:(s[r++]=55296|(a-=65536)>>10&1023,s[r++]=56320|1023&a)}return Ei(s,r)},vi.utf8border=function(e,t){var n;for((t=t||e.length)>e.length&&(t=e.length),n=t-1;n>=0&&128==(192&e[n]);)n--;return n<0||0===n?t:n+Si[e[n]]>t?n:t};var Ai=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},Ci=$r,Ri=Gr,Ni=vi,Ii=Fa,Ti=Ai,Oi=Object.prototype.toString,Fi=0,Li=-1,Di=0,Mi=8;function Pi(e){if(!(this instanceof Pi))return new Pi(e);this.options=Ri.assign({level:Li,method:Mi,chunkSize:16384,windowBits:15,memLevel:8,strategy:Di,to:""},e||{});var t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ti,this.strm.avail_out=0;var n=Ci.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==Fi)throw new Error(Ii[n]);if(t.header&&Ci.deflateSetHeader(this.strm,t.header),t.dictionary){var r;if(r="string"==typeof t.dictionary?Ni.string2buf(t.dictionary):"[object ArrayBuffer]"===Oi.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,(n=Ci.deflateSetDictionary(this.strm,r))!==Fi)throw new Error(Ii[n]);this._dict_set=!0}}function qi(e,t){var n=new Pi(t);if(n.push(e,!0),n.err)throw n.msg||Ii[n.err];return n.result}Pi.prototype.push=function(e,t){var n,r,a=this.strm,i=this.options.chunkSize;if(this.ended)return!1;r=t===~~t?t:!0===t?4:0,a.input="string"==typeof e?Ni.string2buf(e):"[object ArrayBuffer]"===Oi.call(e)?new Uint8Array(e):e,a.next_in=0,a.avail_in=a.input.length;do{if(0===a.avail_out&&(a.output=new Ri.Buf8(i),a.next_out=0,a.avail_out=i),1!==(n=Ci.deflate(a,r))&&n!==Fi)return this.onEnd(n),this.ended=!0,!1;0!==a.avail_out&&(0!==a.avail_in||4!==r&&2!==r)||this.onData("string"===this.options.to?Ni.buf2binstring(Ri.shrinkBuf(a.output,a.next_out)):Ri.shrinkBuf(a.output,a.next_out))}while((a.avail_in>0||0===a.avail_out)&&1!==n);return 4===r?(n=Ci.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===Fi):2!==r||(this.onEnd(Fi),a.avail_out=0,!0)},Pi.prototype.onData=function(e){this.chunks.push(e)},Pi.prototype.onEnd=function(e){e===Fi&&(this.result="string"===this.options.to?this.chunks.join(""):Ri.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},Hr.Deflate=Pi,Hr.deflate=qi,Hr.deflateRaw=function(e,t){return(t=t||{}).raw=!0,qi(e,t)},Hr.gzip=function(e,t){return(t=t||{}).gzip=!0,qi(e,t)};var ji={},Bi={},Ui=Gr,zi=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],Gi=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],Hi=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],$i=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64],Ji=Gr,Vi=Ra,Wi=Oa,Ki=function(e,t){var n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b,w,x,S,k,E,A;E=e.input,a=(r=e.next_in)+(e.avail_in-5),A=e.output,o=(i=e.next_out)-(t-e.avail_out),s=i+(e.avail_out-257),l=(n=e.state).dmax,c=n.wsize,u=n.whave,d=n.wnext,f=n.window,h=n.hold,p=n.bits,m=n.lencode,g=n.distcode,_=(1<<n.lenbits)-1,y=(1<<n.distbits)-1;e:do{p<15&&(h+=E[r++]<<p,h+=E[r++]<<(p+=8),p+=8),v=m[h&_];t:for(;;){if(h>>>=b=v>>>24,p-=b,0==(b=v>>>16&255))A[i++]=65535&v;else{if(!(16&b)){if(0==(64&b)){v=m[(65535&v)+(h&(1<<b)-1)];continue t}if(32&b){n.mode=12;break e}e.msg="invalid literal/length code",n.mode=30;break e}w=65535&v,(b&=15)&&(p<b&&(h+=E[r++]<<p,p+=8),w+=h&(1<<b)-1,h>>>=b,p-=b),p<15&&(h+=E[r++]<<p,h+=E[r++]<<(p+=8),p+=8),v=g[h&y];n:for(;;){if(h>>>=b=v>>>24,p-=b,!(16&(b=v>>>16&255))){if(0==(64&b)){v=g[(65535&v)+(h&(1<<b)-1)];continue n}e.msg="invalid distance code",n.mode=30;break e}if(x=65535&v,p<(b&=15)&&(h+=E[r++]<<p,(p+=8)<b&&(h+=E[r++]<<p,p+=8)),(x+=h&(1<<b)-1)>l){e.msg="invalid distance too far back",n.mode=30;break e}if(h>>>=b,p-=b,x>(b=i-o)){if((b=x-b)>u&&n.sane){e.msg="invalid distance too far back",n.mode=30;break e}if(S=0,k=f,0===d){if(S+=c-b,b<w){w-=b;do{A[i++]=f[S++]}while(--b);S=i-x,k=A}}else if(d<b){if(S+=c+d-b,(b-=d)<w){w-=b;do{A[i++]=f[S++]}while(--b);if(S=0,d<w){w-=b=d;do{A[i++]=f[S++]}while(--b);S=i-x,k=A}}}else if(S+=d-b,b<w){w-=b;do{A[i++]=f[S++]}while(--b);S=i-x,k=A}for(;w>2;)A[i++]=k[S++],A[i++]=k[S++],A[i++]=k[S++],w-=3;w&&(A[i++]=k[S++],w>1&&(A[i++]=k[S++]))}else{S=i-x;do{A[i++]=A[S++],A[i++]=A[S++],A[i++]=A[S++],w-=3}while(w>2);w&&(A[i++]=A[S++],w>1&&(A[i++]=A[S++]))}break}}break}}while(r<a&&i<s);h&=(1<<(p-=(w=p>>3)<<3))-1,e.next_in=r-=w,e.next_out=i,e.avail_in=r<a?a-r+5:5-(r-a),e.avail_out=i<s?s-i+257:257-(i-s),n.hold=h,n.bits=p},Yi=function(e,t,n,r,a,i,o,s){var l,c,u,d,f,h,p,m,g,_=s.bits,y=0,v=0,b=0,w=0,x=0,S=0,k=0,E=0,A=0,C=0,R=null,N=0,I=new Ui.Buf16(16),T=new Ui.Buf16(16),O=null,F=0;for(y=0;y<=15;y++)I[y]=0;for(v=0;v<r;v++)I[t[n+v]]++;for(x=_,w=15;w>=1&&0===I[w];w--);if(x>w&&(x=w),0===w)return a[i++]=20971520,a[i++]=20971520,s.bits=1,0;for(b=1;b<w&&0===I[b];b++);for(x<b&&(x=b),E=1,y=1;y<=15;y++)if(E<<=1,(E-=I[y])<0)return-1;if(E>0&&(0===e||1!==w))return-1;for(T[1]=0,y=1;y<15;y++)T[y+1]=T[y]+I[y];for(v=0;v<r;v++)0!==t[n+v]&&(o[T[t[n+v]]++]=v);if(0===e?(R=O=o,h=19):1===e?(R=zi,N-=257,O=Gi,F-=257,h=256):(R=Hi,O=$i,h=-1),C=0,v=0,y=b,f=i,S=x,k=0,u=-1,d=(A=1<<x)-1,1===e&&A>852||2===e&&A>592)return 1;for(;;){p=y-k,o[v]<h?(m=0,g=o[v]):o[v]>h?(m=O[F+o[v]],g=R[N+o[v]]):(m=96,g=0),l=1<<y-k,b=c=1<<S;do{a[f+(C>>k)+(c-=l)]=p<<24|m<<16|g|0}while(0!==c);for(l=1<<y-1;C&l;)l>>=1;if(0!==l?(C&=l-1,C+=l):C=0,v++,0==--I[y]){if(y===w)break;y=t[n+o[v]]}if(y>x&&(C&d)!==u){for(0===k&&(k=x),f+=b,E=1<<(S=y-k);S+k<w&&!((E-=I[S+k])<=0);)S++,E<<=1;if(A+=1<<S,1===e&&A>852||2===e&&A>592)return 1;a[u=C&d]=x<<24|S<<16|f-i|0}}return 0!==C&&(a[f+C]=y-k<<24|64<<16|0),s.bits=x,0},Zi=0,Xi=-2,Qi=1,eo=12,to=30,no=852,ro=592;function ao(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function io(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Ji.Buf16(320),this.work=new Ji.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function oo(e){var t;return e&&e.state?(e.total_in=e.total_out=(t=e.state).total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=Qi,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Ji.Buf32(no),t.distcode=t.distdyn=new Ji.Buf32(ro),t.sane=1,t.back=-1,Zi):Xi}function so(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,oo(e)):Xi}function lo(e,t){var n,r;return e&&e.state?(t<0?(n=0,t=-t):(n=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?Xi:(null!==(r=e.state).window&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,so(e))):Xi}function co(e,t){var n,r;return e?(r=new io,e.state=r,r.window=null,(n=lo(e,t))!==Zi&&(e.state=null),n):Xi}var uo,fo,ho=!0;function po(e){if(ho){var t;for(uo=new Ji.Buf32(512),fo=new Ji.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Yi(1,e.lens,0,288,uo,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Yi(2,e.lens,0,32,fo,0,e.work,{bits:5}),ho=!1}e.lencode=uo,e.lenbits=9,e.distcode=fo,e.distbits=5}function mo(e,t,n,r){var a,i=e.state;return null===i.window&&(i.wsize=1<<i.wbits,i.wnext=0,i.whave=0,i.window=new Ji.Buf8(i.wsize)),r>=i.wsize?(Ji.arraySet(i.window,t,n-i.wsize,i.wsize,0),i.wnext=0,i.whave=i.wsize):((a=i.wsize-i.wnext)>r&&(a=r),Ji.arraySet(i.window,t,n-r,a,i.wnext),(r-=a)?(Ji.arraySet(i.window,t,n-r,r,0),i.wnext=r,i.whave=i.wsize):(i.wnext+=a,i.wnext===i.wsize&&(i.wnext=0),i.whave<i.wsize&&(i.whave+=a))),0}Bi.inflateReset=so,Bi.inflateReset2=lo,Bi.inflateResetKeep=oo,Bi.inflateInit=function(e){return co(e,15)},Bi.inflateInit2=co,Bi.inflate=function(e,t){var n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b,w,x,S,k,E,A=0,C=new Ji.Buf8(4),R=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return Xi;(n=e.state).mode===eo&&(n.mode=13),o=e.next_out,a=e.output,i=e.next_in,r=e.input,c=n.hold,u=n.bits,d=s=e.avail_in,f=l=e.avail_out,S=Zi;e:for(;;)switch(n.mode){case Qi:if(0===n.wrap){n.mode=13;break}for(;u<16;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}if(2&n.wrap&&35615===c){n.check=0,C[0]=255&c,C[1]=c>>>8&255,n.check=Wi(n.check,C,2,0),c=0,u=0,n.mode=2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&c)<<8)+(c>>8))%31){e.msg="incorrect header check",n.mode=to;break}if(8!=(15&c)){e.msg="unknown compression method",n.mode=to;break}if(u-=4,x=8+(15&(c>>>=4)),0===n.wbits)n.wbits=x;else if(x>n.wbits){e.msg="invalid window size",n.mode=to;break}n.dmax=1<<x,e.adler=n.check=1,n.mode=512&c?10:eo,c=0,u=0;break;case 2:for(;u<16;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}if(n.flags=c,8!=(255&n.flags)){e.msg="unknown compression method",n.mode=to;break}if(57344&n.flags){e.msg="unknown header flags set",n.mode=to;break}n.head&&(n.head.text=c>>8&1),512&n.flags&&(C[0]=255&c,C[1]=c>>>8&255,n.check=Wi(n.check,C,2,0)),c=0,u=0,n.mode=3;case 3:for(;u<32;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}n.head&&(n.head.time=c),512&n.flags&&(C[0]=255&c,C[1]=c>>>8&255,C[2]=c>>>16&255,C[3]=c>>>24&255,n.check=Wi(n.check,C,4,0)),c=0,u=0,n.mode=4;case 4:for(;u<16;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}n.head&&(n.head.xflags=255&c,n.head.os=c>>8),512&n.flags&&(C[0]=255&c,C[1]=c>>>8&255,n.check=Wi(n.check,C,2,0)),c=0,u=0,n.mode=5;case 5:if(1024&n.flags){for(;u<16;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}n.length=c,n.head&&(n.head.extra_len=c),512&n.flags&&(C[0]=255&c,C[1]=c>>>8&255,n.check=Wi(n.check,C,2,0)),c=0,u=0}else n.head&&(n.head.extra=null);n.mode=6;case 6:if(1024&n.flags&&((h=n.length)>s&&(h=s),h&&(n.head&&(x=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),Ji.arraySet(n.head.extra,r,i,h,x)),512&n.flags&&(n.check=Wi(n.check,r,h,i)),s-=h,i+=h,n.length-=h),n.length))break e;n.length=0,n.mode=7;case 7:if(2048&n.flags){if(0===s)break e;h=0;do{x=r[i+h++],n.head&&x&&n.length<65536&&(n.head.name+=String.fromCharCode(x))}while(x&&h<s);if(512&n.flags&&(n.check=Wi(n.check,r,h,i)),s-=h,i+=h,x)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=8;case 8:if(4096&n.flags){if(0===s)break e;h=0;do{x=r[i+h++],n.head&&x&&n.length<65536&&(n.head.comment+=String.fromCharCode(x))}while(x&&h<s);if(512&n.flags&&(n.check=Wi(n.check,r,h,i)),s-=h,i+=h,x)break e}else n.head&&(n.head.comment=null);n.mode=9;case 9:if(512&n.flags){for(;u<16;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}if(c!==(65535&n.check)){e.msg="header crc mismatch",n.mode=to;break}c=0,u=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=eo;break;case 10:for(;u<32;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}e.adler=n.check=ao(c),c=0,u=0,n.mode=11;case 11:if(0===n.havedict)return e.next_out=o,e.avail_out=l,e.next_in=i,e.avail_in=s,n.hold=c,n.bits=u,2;e.adler=n.check=1,n.mode=eo;case eo:if(5===t||6===t)break e;case 13:if(n.last){c>>>=7&u,u-=7&u,n.mode=27;break}for(;u<3;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}switch(n.last=1&c,u-=1,3&(c>>>=1)){case 0:n.mode=14;break;case 1:if(po(n),n.mode=20,6===t){c>>>=2,u-=2;break e}break;case 2:n.mode=17;break;case 3:e.msg="invalid block type",n.mode=to}c>>>=2,u-=2;break;case 14:for(c>>>=7&u,u-=7&u;u<32;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}if((65535&c)!=(c>>>16^65535)){e.msg="invalid stored block lengths",n.mode=to;break}if(n.length=65535&c,c=0,u=0,n.mode=15,6===t)break e;case 15:n.mode=16;case 16:if(h=n.length){if(h>s&&(h=s),h>l&&(h=l),0===h)break e;Ji.arraySet(a,r,i,h,o),s-=h,i+=h,l-=h,o+=h,n.length-=h;break}n.mode=eo;break;case 17:for(;u<14;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}if(n.nlen=257+(31&c),u-=5,n.ndist=1+(31&(c>>>=5)),u-=5,n.ncode=4+(15&(c>>>=5)),c>>>=4,u-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=to;break}n.have=0,n.mode=18;case 18:for(;n.have<n.ncode;){for(;u<3;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}n.lens[R[n.have++]]=7&c,c>>>=3,u-=3}for(;n.have<19;)n.lens[R[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,S=Yi(0,n.lens,0,19,n.lencode,0,n.work,k={bits:n.lenbits}),n.lenbits=k.bits,S){e.msg="invalid code lengths set",n.mode=to;break}n.have=0,n.mode=19;case 19:for(;n.have<n.nlen+n.ndist;){for(;_=(A=n.lencode[c&(1<<n.lenbits)-1])>>>16&255,y=65535&A,!((g=A>>>24)<=u);){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}if(y<16)c>>>=g,u-=g,n.lens[n.have++]=y;else{if(16===y){for(E=g+2;u<E;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}if(c>>>=g,u-=g,0===n.have){e.msg="invalid bit length repeat",n.mode=to;break}x=n.lens[n.have-1],h=3+(3&c),c>>>=2,u-=2}else if(17===y){for(E=g+3;u<E;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}u-=g,x=0,h=3+(7&(c>>>=g)),c>>>=3,u-=3}else{for(E=g+7;u<E;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}u-=g,x=0,h=11+(127&(c>>>=g)),c>>>=7,u-=7}if(n.have+h>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=to;break}for(;h--;)n.lens[n.have++]=x}}if(n.mode===to)break;if(0===n.lens[256]){e.msg="invalid code -- missing end-of-block",n.mode=to;break}if(n.lenbits=9,S=Yi(1,n.lens,0,n.nlen,n.lencode,0,n.work,k={bits:n.lenbits}),n.lenbits=k.bits,S){e.msg="invalid literal/lengths set",n.mode=to;break}if(n.distbits=6,n.distcode=n.distdyn,S=Yi(2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,k={bits:n.distbits}),n.distbits=k.bits,S){e.msg="invalid distances set",n.mode=to;break}if(n.mode=20,6===t)break e;case 20:n.mode=21;case 21:if(s>=6&&l>=258){e.next_out=o,e.avail_out=l,e.next_in=i,e.avail_in=s,n.hold=c,n.bits=u,Ki(e,f),o=e.next_out,a=e.output,l=e.avail_out,i=e.next_in,r=e.input,s=e.avail_in,c=n.hold,u=n.bits,n.mode===eo&&(n.back=-1);break}for(n.back=0;_=(A=n.lencode[c&(1<<n.lenbits)-1])>>>16&255,y=65535&A,!((g=A>>>24)<=u);){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}if(_&&0==(240&_)){for(v=g,b=_,w=y;_=(A=n.lencode[w+((c&(1<<v+b)-1)>>v)])>>>16&255,y=65535&A,!(v+(g=A>>>24)<=u);){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}c>>>=v,u-=v,n.back+=v}if(c>>>=g,u-=g,n.back+=g,n.length=y,0===_){n.mode=26;break}if(32&_){n.back=-1,n.mode=eo;break}if(64&_){e.msg="invalid literal/length code",n.mode=to;break}n.extra=15&_,n.mode=22;case 22:if(n.extra){for(E=n.extra;u<E;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}n.length+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;_=(A=n.distcode[c&(1<<n.distbits)-1])>>>16&255,y=65535&A,!((g=A>>>24)<=u);){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}if(0==(240&_)){for(v=g,b=_,w=y;_=(A=n.distcode[w+((c&(1<<v+b)-1)>>v)])>>>16&255,y=65535&A,!(v+(g=A>>>24)<=u);){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}c>>>=v,u-=v,n.back+=v}if(c>>>=g,u-=g,n.back+=g,64&_){e.msg="invalid distance code",n.mode=to;break}n.offset=y,n.extra=15&_,n.mode=24;case 24:if(n.extra){for(E=n.extra;u<E;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}n.offset+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=to;break}n.mode=25;case 25:if(0===l)break e;if(n.offset>(h=f-l)){if((h=n.offset-h)>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=to;break}p=h>n.wnext?n.wsize-(h-=n.wnext):n.wnext-h,h>n.length&&(h=n.length),m=n.window}else m=a,p=o-n.offset,h=n.length;h>l&&(h=l),l-=h,n.length-=h;do{a[o++]=m[p++]}while(--h);0===n.length&&(n.mode=21);break;case 26:if(0===l)break e;a[o++]=n.length,l--,n.mode=21;break;case 27:if(n.wrap){for(;u<32;){if(0===s)break e;s--,c|=r[i++]<<u,u+=8}if(e.total_out+=f-=l,n.total+=f,f&&(e.adler=n.check=n.flags?Wi(n.check,a,f,o-f):Vi(n.check,a,f,o-f)),f=l,(n.flags?c:ao(c))!==n.check){e.msg="incorrect data check",n.mode=to;break}c=0,u=0}n.mode=28;case 28:if(n.wrap&&n.flags){for(;u<32;){if(0===s)break e;s--,c+=r[i++]<<u,u+=8}if(c!==(4294967295&n.total)){e.msg="incorrect length check",n.mode=to;break}c=0,u=0}n.mode=29;case 29:S=1;break e;case to:S=-3;break e;case 31:return-4;default:return Xi}return e.next_out=o,e.avail_out=l,e.next_in=i,e.avail_in=s,n.hold=c,n.bits=u,(n.wsize||f!==e.avail_out&&n.mode<to&&(n.mode<27||4!==t))&&mo(e,e.output,e.next_out,f-e.avail_out),f-=e.avail_out,e.total_in+=d-=e.avail_in,e.total_out+=f,n.total+=f,n.wrap&&f&&(e.adler=n.check=n.flags?Wi(n.check,a,f,e.next_out-f):Vi(n.check,a,f,e.next_out-f)),e.data_type=n.bits+(n.last?64:0)+(n.mode===eo?128:0)+(20===n.mode||15===n.mode?256:0),(0===d&&0===f||4===t)&&S===Zi&&(S=-5),S},Bi.inflateEnd=function(e){if(!e||!e.state)return Xi;var t=e.state;return t.window&&(t.window=null),e.state=null,Zi},Bi.inflateGetHeader=function(e,t){var n;return e&&e.state?0==(2&(n=e.state).wrap)?Xi:(n.head=t,t.done=!1,Zi):Xi},Bi.inflateSetDictionary=function(e,t){var n,r=t.length;return e&&e.state?0!==(n=e.state).wrap&&11!==n.mode?Xi:11===n.mode&&Vi(1,t,r,0)!==n.check?-3:mo(e,t,r,r)?(n.mode=31,-4):(n.havedict=1,Zi):Xi},Bi.inflateInfo="pako inflate (from Nodeca project)";var go={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},_o=Bi,yo=Gr,vo=vi,bo=go,wo=Fa,xo=Ai,So=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1},ko=Object.prototype.toString;function Eo(e){if(!(this instanceof Eo))return new Eo(e);this.options=yo.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new xo,this.strm.avail_out=0;var n=_o.inflateInit2(this.strm,t.windowBits);if(n!==bo.Z_OK)throw new Error(wo[n]);if(this.header=new So,_o.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=vo.string2buf(t.dictionary):"[object ArrayBuffer]"===ko.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=_o.inflateSetDictionary(this.strm,t.dictionary))!==bo.Z_OK))throw new Error(wo[n])}function Ao(e,t){var n=new Eo(t);if(n.push(e,!0),n.err)throw n.msg||wo[n.err];return n.result}Eo.prototype.push=function(e,t){var n,r,a,i,o,s=this.strm,l=this.options.chunkSize,c=this.options.dictionary,u=!1;if(this.ended)return!1;r=t===~~t?t:!0===t?bo.Z_FINISH:bo.Z_NO_FLUSH,s.input="string"==typeof e?vo.binstring2buf(e):"[object ArrayBuffer]"===ko.call(e)?new Uint8Array(e):e,s.next_in=0,s.avail_in=s.input.length;do{if(0===s.avail_out&&(s.output=new yo.Buf8(l),s.next_out=0,s.avail_out=l),(n=_o.inflate(s,bo.Z_NO_FLUSH))===bo.Z_NEED_DICT&&c&&(n=_o.inflateSetDictionary(this.strm,c)),n===bo.Z_BUF_ERROR&&!0===u&&(n=bo.Z_OK,u=!1),n!==bo.Z_STREAM_END&&n!==bo.Z_OK)return this.onEnd(n),this.ended=!0,!1;s.next_out&&(0!==s.avail_out&&n!==bo.Z_STREAM_END&&(0!==s.avail_in||r!==bo.Z_FINISH&&r!==bo.Z_SYNC_FLUSH)||("string"===this.options.to?(a=vo.utf8border(s.output,s.next_out),i=s.next_out-a,o=vo.buf2string(s.output,a),s.next_out=i,s.avail_out=l-i,i&&yo.arraySet(s.output,s.output,a,i,0),this.onData(o)):this.onData(yo.shrinkBuf(s.output,s.next_out)))),0===s.avail_in&&0===s.avail_out&&(u=!0)}while((s.avail_in>0||0===s.avail_out)&&n!==bo.Z_STREAM_END);return n===bo.Z_STREAM_END&&(r=bo.Z_FINISH),r===bo.Z_FINISH?(n=_o.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===bo.Z_OK):r!==bo.Z_SYNC_FLUSH||(this.onEnd(bo.Z_OK),s.avail_out=0,!0)},Eo.prototype.onData=function(e){this.chunks.push(e)},Eo.prototype.onEnd=function(e){e===bo.Z_OK&&(this.result="string"===this.options.to?this.chunks.join(""):yo.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},ji.Inflate=Eo,ji.inflate=Ao,ji.inflateRaw=function(e,t){return(t=t||{}).raw=!0,Ao(e,t)},ji.ungzip=Ao;var Co={};(0,Gr.assign)(Co,Hr,ji,go);var Ro=Co;function No(e){return Io.apply(this,arguments)}function Io(){return Io=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.prev=0,r=0,a=0,i=[],o=0;case 5:if(l=t.subarray(r),s=new Ro.Inflate,n=s.strm,s.push(l,Ro.Z_SYNC_FLUSH),!s.err){e.next=12;break}throw new Error(s.msg);case 12:r+=n.next_in,i[a]=s.result,o+=i[a].length,a+=1;case 16:if(n.avail_in){e.next=5;break}case 17:for(c=new Uint8Array(o),u=0,d=0;u<i.length;u++)c.set(i[u],d),d+=i[u].length;return e.abrupt("return",Xt.from(c));case 22:if(e.prev=22,e.t0=e.catch(0),!"".concat(e.t0).match(/incorrect header check/)){e.next=26;break}throw new Error("problem decompressing block: incorrect gzip header check");case 26:throw e.t0;case 27:case"end":return e.stop()}}),e,null,[[0,22]])}))),Io.apply(this,arguments)}var To=null;try{To=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(yl){}function Oo(e,t,n){this.low=0|e,this.high=0|t,this.unsigned=!!n}function Fo(e){return!0===(e&&e.__isLong__)}function Lo(e){var t=Math.clz32(e&-e);return e?31-t:t}Object.defineProperty(Oo.prototype,"__isLong__",{value:!0}),Oo.isLong=Fo;var Do={},Mo={};function Po(e,t){var n,r,a;return t?(a=0<=(e>>>=0)&&e<256)&&(r=Mo[e])?r:(n=jo(e,0,!0),a&&(Mo[e]=n),n):(a=-128<=(e|=0)&&e<128)&&(r=Do[e])?r:(n=jo(e,e<0?-1:0,!1),a&&(Do[e]=n),n)}function qo(e,t){if(isNaN(e))return t?Wo:Vo;if(t){if(e<0)return Wo;if(e>=Ho)return Qo}else{if(e<=-$o)return es;if(e+1>=$o)return Xo}return e<0?qo(-e,t).neg():jo(e%Go|0,e/Go|0,t)}function jo(e,t,n){return new Oo(e,t,n)}Oo.fromInt=Po,Oo.fromNumber=qo,Oo.fromBits=jo;var Bo=Math.pow;function Uo(e,t,n){if(0===e.length)throw Error("empty string");if("number"==typeof t?(n=t,t=!1):t=!!t,"NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return t?Wo:Vo;if((n=n||10)<2||36<n)throw RangeError("radix");var r;if((r=e.indexOf("-"))>0)throw Error("interior hyphen");if(0===r)return Uo(e.substring(1),t,n).neg();for(var a=qo(Bo(n,8)),i=Vo,o=0;o<e.length;o+=8){var s=Math.min(8,e.length-o),l=parseInt(e.substring(o,o+s),n);if(s<8){var c=qo(Bo(n,s));i=i.mul(c).add(qo(l))}else i=(i=i.mul(a)).add(qo(l))}return i.unsigned=t,i}function zo(e,t){return"number"==typeof e?qo(e,t):"string"==typeof e?Uo(e,t):jo(e.low,e.high,"boolean"==typeof t?t:e.unsigned)}Oo.fromString=Uo,Oo.fromValue=zo;var Go=4294967296,Ho=Go*Go,$o=Ho/2,Jo=Po(16777216),Vo=Po(0);Oo.ZERO=Vo;var Wo=Po(0,!0);Oo.UZERO=Wo;var Ko=Po(1);Oo.ONE=Ko;var Yo=Po(1,!0);Oo.UONE=Yo;var Zo=Po(-1);Oo.NEG_ONE=Zo;var Xo=jo(-1,2147483647,!1);Oo.MAX_VALUE=Xo;var Qo=jo(-1,-1,!0);Oo.MAX_UNSIGNED_VALUE=Qo;var es=jo(0,-2147483648,!1);Oo.MIN_VALUE=es;var ts=Oo.prototype;ts.toInt=function(){return this.unsigned?this.low>>>0:this.low},ts.toNumber=function(){return this.unsigned?(this.high>>>0)*Go+(this.low>>>0):this.high*Go+(this.low>>>0)},ts.toString=function(e){if((e=e||10)<2||36<e)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative()){if(this.eq(es)){var t=qo(e),n=this.div(t),r=n.mul(t).sub(this);return n.toString(e)+r.toInt().toString(e)}return"-"+this.neg().toString(e)}for(var a=qo(Bo(e,6),this.unsigned),i=this,o="";;){var s=i.div(a),l=(i.sub(s.mul(a)).toInt()>>>0).toString(e);if((i=s).isZero())return l+o;for(;l.length<6;)l="0"+l;o=""+l+o}},ts.getHighBits=function(){return this.high},ts.getHighBitsUnsigned=function(){return this.high>>>0},ts.getLowBits=function(){return this.low},ts.getLowBitsUnsigned=function(){return this.low>>>0},ts.getNumBitsAbs=function(){if(this.isNegative())return this.eq(es)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;t>0&&0==(e&1<<t);t--);return 0!=this.high?t+33:t+1},ts.isZero=function(){return 0===this.high&&0===this.low},ts.eqz=ts.isZero,ts.isNegative=function(){return!this.unsigned&&this.high<0},ts.isPositive=function(){return this.unsigned||this.high>=0},ts.isOdd=function(){return 1==(1&this.low)},ts.isEven=function(){return 0==(1&this.low)},ts.equals=function(e){return Fo(e)||(e=zo(e)),(this.unsigned===e.unsigned||this.high>>>31!=1||e.high>>>31!=1)&&this.high===e.high&&this.low===e.low},ts.eq=ts.equals,ts.notEquals=function(e){return!this.eq(e)},ts.neq=ts.notEquals,ts.ne=ts.notEquals,ts.lessThan=function(e){return this.comp(e)<0},ts.lt=ts.lessThan,ts.lessThanOrEqual=function(e){return this.comp(e)<=0},ts.lte=ts.lessThanOrEqual,ts.le=ts.lessThanOrEqual,ts.greaterThan=function(e){return this.comp(e)>0},ts.gt=ts.greaterThan,ts.greaterThanOrEqual=function(e){return this.comp(e)>=0},ts.gte=ts.greaterThanOrEqual,ts.ge=ts.greaterThanOrEqual,ts.compare=function(e){if(Fo(e)||(e=zo(e)),this.eq(e))return 0;var t=this.isNegative(),n=e.isNegative();return t&&!n?-1:!t&&n?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},ts.comp=ts.compare,ts.negate=function(){return!this.unsigned&&this.eq(es)?es:this.not().add(Ko)},ts.neg=ts.negate,ts.add=function(e){Fo(e)||(e=zo(e));var t=0,n=0,r=0,a=0;return r+=(a+=(65535&this.low)+(65535&e.low))>>>16,n+=(r+=(this.low>>>16)+(e.low>>>16))>>>16,t+=(n+=(65535&this.high)+(65535&e.high))>>>16,t+=(this.high>>>16)+(e.high>>>16),jo((r&=65535)<<16|(a&=65535),(t&=65535)<<16|(n&=65535),this.unsigned)},ts.subtract=function(e){return Fo(e)||(e=zo(e)),this.add(e.neg())},ts.sub=ts.subtract,ts.multiply=function(e){if(this.isZero())return this;if(Fo(e)||(e=zo(e)),To)return jo(To.mul(this.low,this.high,e.low,e.high),To.get_high(),this.unsigned);if(e.isZero())return this.unsigned?Wo:Vo;if(this.eq(es))return e.isOdd()?es:Vo;if(e.eq(es))return this.isOdd()?es:Vo;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(Jo)&&e.lt(Jo))return qo(this.toNumber()*e.toNumber(),this.unsigned);var t=65535&this.high,n=this.low>>>16,r=65535&this.low,a=65535&e.high,i=e.low>>>16,o=65535&e.low,s=0,l=0,c=0,u=0;return c+=(u+=r*o)>>>16,l+=(c+=n*o)>>>16,c&=65535,l+=(c+=r*i)>>>16,s+=(l+=t*o)>>>16,l&=65535,s+=(l+=n*i)>>>16,l&=65535,s+=(l+=r*a)>>>16,s+=(this.high>>>16)*o+t*i+n*a+r*(e.high>>>16),jo((c&=65535)<<16|(u&=65535),(s&=65535)<<16|(l&=65535),this.unsigned)},ts.mul=ts.multiply,ts.divide=function(e){if(Fo(e)||(e=zo(e)),e.isZero())throw Error("division by zero");var t,n,r;if(To)return this.unsigned||-2147483648!==this.high||-1!==e.low||-1!==e.high?jo((this.unsigned?To.div_u:To.div_s)(this.low,this.high,e.low,e.high),To.get_high(),this.unsigned):this;if(this.isZero())return this.unsigned?Wo:Vo;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return Wo;if(e.gt(this.shru(1)))return Yo;r=Wo}else{if(this.eq(es))return e.eq(Ko)||e.eq(Zo)?es:e.eq(es)?Ko:(t=this.shr(1).div(e).shl(1)).eq(Vo)?e.isNegative()?Ko:Zo:(n=this.sub(e.mul(t)),r=t.add(n.div(e)));if(e.eq(es))return this.unsigned?Wo:Vo;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();r=Vo}for(n=this;n.gte(e);){t=Math.max(1,Math.floor(n.toNumber()/e.toNumber()));for(var a=Math.ceil(Math.log(t)/Math.LN2),i=a<=48?1:Bo(2,a-48),o=qo(t),s=o.mul(e);s.isNegative()||s.gt(n);)s=(o=qo(t-=i,this.unsigned)).mul(e);o.isZero()&&(o=Ko),r=r.add(o),n=n.sub(s)}return r},ts.div=ts.divide,ts.modulo=function(e){return Fo(e)||(e=zo(e)),To?jo((this.unsigned?To.rem_u:To.rem_s)(this.low,this.high,e.low,e.high),To.get_high(),this.unsigned):this.sub(this.div(e).mul(e))},ts.mod=ts.modulo,ts.rem=ts.modulo,ts.not=function(){return jo(~this.low,~this.high,this.unsigned)},ts.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32},ts.clz=ts.countLeadingZeros,ts.countTrailingZeros=function(){return this.low?Lo(this.low):Lo(this.high)+32},ts.ctz=ts.countTrailingZeros,ts.and=function(e){return Fo(e)||(e=zo(e)),jo(this.low&e.low,this.high&e.high,this.unsigned)},ts.or=function(e){return Fo(e)||(e=zo(e)),jo(this.low|e.low,this.high|e.high,this.unsigned)},ts.xor=function(e){return Fo(e)||(e=zo(e)),jo(this.low^e.low,this.high^e.high,this.unsigned)},ts.shiftLeft=function(e){return Fo(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?jo(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):jo(0,this.low<<e-32,this.unsigned)},ts.shl=ts.shiftLeft,ts.shiftRight=function(e){return Fo(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?jo(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):jo(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},ts.shr=ts.shiftRight,ts.shiftRightUnsigned=function(e){return Fo(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?jo(this.low>>>e|this.high<<32-e,this.high>>>e,this.unsigned):jo(32===e?this.high:this.high>>>e-32,0,this.unsigned)},ts.shru=ts.shiftRightUnsigned,ts.shr_u=ts.shiftRightUnsigned,ts.rotateLeft=function(e){var t;return Fo(e)&&(e=e.toInt()),0==(e&=63)?this:32===e?jo(this.high,this.low,this.unsigned):e<32?jo(this.low<<e|this.high>>>(t=32-e),this.high<<e|this.low>>>t,this.unsigned):jo(this.high<<(e-=32)|this.low>>>(t=32-e),this.low<<e|this.high>>>t,this.unsigned)},ts.rotl=ts.rotateLeft,ts.rotateRight=function(e){var t;return Fo(e)&&(e=e.toInt()),0==(e&=63)?this:32===e?jo(this.high,this.low,this.unsigned):e<32?jo(this.high<<(t=32-e)|this.low>>>e,this.low<<t|this.high>>>e,this.unsigned):jo(this.low<<(t=32-(e-=32))|this.high>>>e,this.high<<t|this.low>>>e,this.unsigned)},ts.rotr=ts.rotateRight,ts.toSigned=function(){return this.unsigned?jo(this.low,this.high,!1):this},ts.toUnsigned=function(){return this.unsigned?this:jo(this.low,this.high,!0)},ts.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},ts.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24,255&e,e>>>8&255,e>>>16&255,e>>>24]},ts.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24,e>>>16&255,e>>>8&255,255&e,t>>>24,t>>>16&255,t>>>8&255,255&t]},Oo.fromBytes=function(e,t,n){return n?Oo.fromBytesLE(e,t):Oo.fromBytesBE(e,t)},Oo.fromBytesLE=function(e,t){return new Oo(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,t)},Oo.fromBytesBE=function(e,t){return new Oo(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],t)};var ns=function(){function e(t){var n=t.filehandle,r=t.path;if(ee(this,e),n)this.filehandle=n;else{if(!r)throw new TypeError("either filehandle or path must be defined");this.filehandle=new Mr(r)}}var t,n,r;return ne(e,[{key:"_readLongWithOverflow",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=Oo.fromBytesLE(e.slice(t,t+8),n);if(r.greaterThan(Number.MAX_SAFE_INTEGER)||r.lessThan(Number.MIN_SAFE_INTEGER))throw new TypeError("integer overflow");return r.toNumber()}},{key:"_getIndex",value:function(){return this.index||(this.index=this._readIndex()),this.index}},{key:"_readIndex",value:(r=Q(Y().mark((function e(){var t,n,r,a,i,o,s;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=Xt.allocUnsafe(8),e.next=3,this.filehandle.read(t,0,8,0);case 3:if(n=this._readLongWithOverflow(t,0,!0)){e.next=6;break}return e.abrupt("return",[[0,0]]);case 6:if((r=new Array(n+1))[0]=[0,0],!((a=16*n)>Number.MAX_SAFE_INTEGER)){e.next=11;break}throw new TypeError("integer overflow");case 11:return t=Xt.allocUnsafe(a),e.next=14,this.filehandle.read(t,0,a,8);case 14:for(i=0;i<n;i+=1)o=this._readLongWithOverflow(t,16*i),s=this._readLongWithOverflow(t,16*i+8),r[i+1]=[o,s];return e.abrupt("return",r);case 16:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"getLastBlock",value:(n=Q(Y().mark((function e(){var t;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._getIndex();case 2:if((t=e.sent).length){e.next=5;break}return e.abrupt("return",void 0);case 5:return e.abrupt("return",t[t.length-1]);case 6:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"getRelevantBlocksForRead",value:(t=Q(Y().mark((function e(t,n){var r,a,i,o,s,l,c,u,d;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n+t,0!==t){e.next=3;break}return e.abrupt("return",[]);case 3:return e.next=5,this._getIndex();case 5:for(i=[],o=function(e,t){var r=e[1];return r<=n&&(t?t[1]:Infinity)>n?0:r<n?-1:1},s=0,l=(a=e.sent).length-1,c=Math.floor(a.length/2),u=o(a[c],a[c+1]);0!==u;)u>0?l=c-1:u<0&&(s=c+1),c=Math.ceil((l-s)/2)+s,u=o(a[c],a[c+1]);i.push(a[c]),d=c+1;case 15:if(!(d<a.length)){e.next=22;break}if(i.push(a[d]),!(a[d][1]>=r)){e.next=19;break}return e.abrupt("break",22);case 19:d+=1,e.next=15;break;case 22:return i[i.length-1][1]<r&&i.push([]),e.abrupt("return",i);case 24:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)})}]),e}(),rs=function(){function e(t){var n=t.filehandle,r=t.path,a=t.gziFilehandle,i=t.gziPath;if(ee(this,e),n)this.filehandle=n;else{if(!r)throw new TypeError("either filehandle or path must be defined");this.filehandle=new Mr(r)}if(!a&&!i&&!r)throw new TypeError("either gziFilehandle or gziPath must be defined");this.gzi=new ns({filehandle:a,path:a||i||!r?"".concat(r,".gzi"):i})}var t,n,r,a;return ne(e,[{key:"stat",value:(a=Q(Y().mark((function e(){var t;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.filehandle.stat();case 2:return t=e.sent,e.t0=Object,e.t1=t,e.next=7,this.getUncompressedFileSize();case 7:return e.t2=e.sent,e.t3=void 0,e.t4=void 0,e.t5={size:e.t2,blocks:e.t3,blksize:e.t4},e.abrupt("return",e.t0.assign.call(e.t0,e.t1,e.t5));case 12:case"end":return e.stop()}}),e,this)}))),function(){return a.apply(this,arguments)})},{key:"getUncompressedFileSize",value:(r=Q(Y().mark((function e(){var t,n,r,a,i;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.gzi.getLastBlock();case 2:return t=he(e.sent,2),n=t[1],e.next=7,this.filehandle.stat();case 7:return r=e.sent.size,a=Xt.allocUnsafe(4),e.next=12,this.filehandle.read(a,0,4,r-28-4);case 12:if(4===e.sent.bytesRead){e.next=16;break}throw new Error("read error");case 16:return i=a.readUInt32LE(0),e.abrupt("return",n+i);case 18:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"_readAndUncompressBlock",value:(n=Q(Y().mark((function e(t,n,r){var a,i,o;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=he(n,1)[0],i=he(r,1)[0]){e.next=7;break}return e.next=6,this.filehandle.stat();case 6:i=e.sent.size;case 7:return o=i-a,e.next=10,this.filehandle.read(t,0,o,a);case 10:return e.next=12,No(t.slice(0,o));case 12:return e.abrupt("return",e.sent);case 14:case"end":return e.stop()}}),e,this)}))),function(e,t,r){return n.apply(this,arguments)})},{key:"read",value:(t=Q(Y().mark((function e(t,n,r,a){var i,o,s,l,c,u,d,f,h,p;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.gzi.getRelevantBlocksForRead(r,a);case 2:i=e.sent,o=Xt.allocUnsafe(65536),s=n,l=0,c=0;case 7:if(!(c<i.length-1)){e.next=18;break}return e.next=10,this._readAndUncompressBlock(o,i[c],i[c+1]);case 10:u=e.sent,d=he(i[c],2),h=(f=d[1])>=a?0:a-f,p=Math.min(a+r,f+u.length)-f,h>=0&&h<u.length&&(u.copy(t,s,h,p),s+=p-h,l+=p-h);case 15:c+=1,e.next=7;break;case 18:return e.abrupt("return",{bytesRead:l,buffer:t});case 19:case"end":return e.stop()}}),e,this)}))),function(e,n,r,a){return t.apply(this,arguments)})}]),e}();function as(e,t){return e.offset+e.lineBytes*Math.floor(t/e.lineLength)+t%e.lineLength}function is(e,t){return os.apply(this,arguments)}function os(){return(os=Q(Y().mark((function e(t,n){var r,a,i,o;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.readFile(n);case 2:if((r=e.sent)&&r.length){e.next=5;break}throw new Error("No data read from FASTA index (FAI) file");case 5:return a=0,o=r.toString("utf8").split(/\r?\n/).filter((function(e){return/\S/.test(e)})).map((function(e){return e.split("\t")})).filter((function(e){return""!==e[0]})).map((function(e){return i&&i.name===e[0]||(i={name:e[0],id:a},a+=1),{id:i.id,name:e[0],length:+e[1],start:0,end:+e[1],offset:+e[2],lineLength:+e[3],lineBytes:+e[4]}})),e.abrupt("return",{name:Object.fromEntries(o.map((function(e){return[e.name,e]}))),id:Object.fromEntries(o.map((function(e){return[e.id,e]})))});case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var ss=function(){function e(t){var n=t.fasta,r=t.fai,a=t.path,i=t.faiPath;if(ee(this,e),n)this.fasta=n;else{if(!a)throw new Error("Need to pass filehandle for fasta or path to localfile");this.fasta=new Mr(a)}if(r)this.fai=r;else if(i)this.fai=new Mr(i);else{if(!a)throw new Error("Need to pass filehandle for or path to localfile");this.fai=new Mr("".concat(a,".fai"))}}var t,n,r,a,i,o,s,l,c;return ne(e,[{key:"_getIndexes",value:(c=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.indexes||(this.indexes=is(this.fai,t)),e.abrupt("return",this.indexes);case 2:case"end":return e.stop()}}),e,this)}))),function(e){return c.apply(this,arguments)})},{key:"getSequenceNames",value:(l=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=Object,e.next=3,this._getIndexes(t);case 3:return e.t1=e.sent.name,e.abrupt("return",e.t0.keys.call(e.t0,e.t1));case 5:case"end":return e.stop()}}),e,this)}))),function(e){return l.apply(this,arguments)})},{key:"getSequenceSizes",value:(s=Q(Y().mark((function e(t){var n,r,a;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n={},e.next=3,this._getIndexes(t);case 3:for(r=Object.values(e.sent.id),a=0;a<r.length;a+=1)n[r[a].name]=r[a].length;return e.abrupt("return",n);case 7:case"end":return e.stop()}}),e,this)}))),function(e){return s.apply(this,arguments)})},{key:"getSequenceSize",value:(o=Q(Y().mark((function e(t,n){var r;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._getIndexes(n);case 2:return e.abrupt("return",null===(r=e.sent.name[t])||void 0===r?void 0:r.length);case 4:case"end":return e.stop()}}),e,this)}))),function(e,t){return o.apply(this,arguments)})},{key:"hasReferenceSequence",value:(i=Q(Y().mark((function e(t,n){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._getIndexes(n);case 2:return e.t0=t,e.abrupt("return",!!e.sent.name[e.t0]);case 4:case"end":return e.stop()}}),e,this)}))),function(e,t){return i.apply(this,arguments)})},{key:"getResiduesById",value:(a=Q(Y().mark((function e(t,n,r,a){var i;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._getIndexes(a);case 2:if(e.t0=t,i=e.sent.id[e.t0]){e.next=6;break}return e.abrupt("return",void 0);case 6:return e.abrupt("return",this._fetchFromIndexEntry(i,n,r,a));case 7:case"end":return e.stop()}}),e,this)}))),function(e,t,n,r){return a.apply(this,arguments)})},{key:"getResiduesByName",value:(r=Q(Y().mark((function e(t,n,r,a){var i;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._getIndexes(a);case 2:if(e.t0=t,i=e.sent.name[e.t0]){e.next=6;break}return e.abrupt("return",void 0);case 6:return e.abrupt("return",this._fetchFromIndexEntry(i,n,r,a));case 7:case"end":return e.stop()}}),e,this)}))),function(e,t,n,a){return r.apply(this,arguments)})},{key:"getSequence",value:(n=Q(Y().mark((function e(t,n,r,a){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.getResiduesByName(t,n,r,a));case 1:case"end":return e.stop()}}),e,this)}))),function(e,t,r,a){return n.apply(this,arguments)})},{key:"_fetchFromIndexEntry",value:(t=Q(Y().mark((function e(t){var n,r,a,i,o,s,l=arguments;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=l.length>3?l[3]:void 0,a=l.length>2?l[2]:void 0,!((n=l.length>1&&void 0!==l[1]?l[1]:0)<0)){e.next=6;break}throw new TypeError("regionStart cannot be less than 0");case 6:if((void 0===a||a>t.length)&&(a=t.length),!(n>=a)){e.next=9;break}return e.abrupt("return","");case 9:return i=as(t,n),o=as(t,a)-i,s=Xt.allocUnsafe(o),e.next=14,this.fasta.read(s,0,o,i,r);case 14:return e.abrupt("return",s.toString("utf8").replace(/\s+/g,""));case 15:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}]),e}(),ls=function(e){ae(n,e);var t=de(n);function n(e){var r,a=e.fasta,i=e.path,o=e.fai,s=e.faiPath,l=e.gzi,c=e.gziPath;return ee(this,n),r=t.call(this,{fasta:a,path:i,fai:o,faiPath:s}),a&&l?r.fasta=new rs({filehandle:a,gziFilehandle:l}):i&&c&&(r.fasta=new rs({path:i,gziPath:c})),r}return ne(n)}(ss);function cs(e){return e.split(">").filter((function(e){return/\S/.test(e)})).map((function(e){var t=pe(e.split("\n")),n=t[0],r=t.slice(1),a=pe(n.split(" ")),i=a[0],o=a.slice(1),s=r.join("").replace(/\s/g,"");return{id:i,description:o.join(" "),sequence:s}}))}var us=function(){function e(t){var n=t.fasta,r=t.path;if(ee(this,e),n)this.fasta=n;else{if(!r)throw new Error("Need to pass fasta or path");this.fasta=new Mr(r)}this.data=this.fasta.readFile().then((function(e){return cs(e.toString("utf8"))}))}var t,n;return ne(e,[{key:"fetch",value:(n=Q(Y().mark((function e(t,n,r){var a,i;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.data;case 2:if(a=e.sent.find((function(e){return e.id===t})),i=r-n,a){e.next=7;break}throw new Error("no sequence with id ".concat(t," exists"));case 7:return e.abrupt("return",a.sequence.substr(n,i));case 8:case"end":return e.stop()}}),e,this)}))),function(e,t,r){return n.apply(this,arguments)})},{key:"getSequenceNames",value:(t=Q(Y().mark((function e(){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.data;case 2:return e.abrupt("return",e.sent.map((function(e){return e.id})));case 4:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})}]),e}(),ds=B({__proto__:null,parseSmallFasta:cs,FetchableSmallFasta:us,IndexedFasta:ss,BgzipIndexedFasta:ls}),fs=B(zr);Object.defineProperty(Dr,"__esModule",{value:!0}),Dr.AddAssemblyFromExternalChange=void 0;var hs=ds,ps=fs,ms=function(e){ae(i,e);var t,n,r,a=de(i);function i(e,t){var n;return ee(this,i),re(ue(n=a.call(this,e,t)),"typeName","AddAssemblyFromExternalChange"),re(ue(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return ne(i,[{key:"notification",get:function(){return'Assembly "'.concat(this.changes[0].assemblyName,'" added successfully. To use it, please refresh the page.')}},{key:"toJSON",value:function(){var e=this.assembly,t=this.changes,n=this.typeName;if(1===t.length){var r=he(t,1)[0];return{typeName:n,assembly:e,assemblyName:r.assemblyName,externalLocation:r.externalLocation}}return{typeName:n,assembly:e,changes:t}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b,w,x,S,k,E,A,C,R;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.assemblyModel,r=t.checkModel,a=t.refSeqModel,i=t.user,o=this.assembly,s=this.changes,l=this.logger,u=(c=jt.env.CHUNK_SIZE)&&Number(c),d=we(s),e.prev=5,d.s();case 7:if((f=d.n()).done){e.next=45;break}return m=(p=f.value).assemblyName,_=(g=p.externalLocation).fa,y=g.fai,b=(v=g.gzi)?new hs.BgzipIndexedFasta({fasta:new ps.RemoteFile(_,{fetch:fetch}),fai:new ps.RemoteFile(y,{fetch:fetch}),gzi:new ps.RemoteFile(v,{fetch:fetch})}):new hs.IndexedFasta({fasta:new ps.RemoteFile(_,{fetch:fetch}),fai:new ps.RemoteFile(y,{fetch:fetch})}),e.next=14,b.getSequenceSizes();case 14:if(w=e.sent){e.next=17;break}throw new Error("No data read from indexed fasta getSequenceSizes");case 17:return e.next=19,n.findOne({name:m}).exec();case 19:if(!e.sent){e.next=22;break}throw new Error('Assembly "'.concat(m,'" already exists'));case 22:return e.next=24,r.find({default:!0}).exec();case 24:return x=e.sent.map((function(e){return e._id.toHexString()})),e.next=28,n.create([{_id:o,name:m,user:i,status:-1,externalLocation:g,checks:x}]);case 28:S=he(e.sent,1),k=S[0],null===(h=l.debug)||void 0===h||h.call(l,'Added new assembly "'.concat(m,'", docId "').concat(k._id,'"')),e.t0=Y().keys(w);case 33:if((e.t1=e.t0()).done){e.next=43;break}return E=e.t1.value,e.next=37,a.create([K(K({name:E,assembly:k._id,length:w[E]},u?{chunkSize:u}:null),{},{user:i,status:-1})]);case 37:C=he(e.sent,1),R=C[0],null===(A=l.debug)||void 0===A||A.call(l,'Added new refSeq "'.concat(E,'", docId "').concat(R._id,'"')),e.next=33;break;case 43:e.next=7;break;case 45:e.next=50;break;case 47:e.prev=47,e.t2=e.catch(5),d.e(e.t2);case 50:return e.prev=50,d.f(),e.finish(50);case 53:case"end":return e.stop()}}),e,this,[[5,47,50,53]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){return new i({typeName:this.typeName,changes:this.changes,assembly:this.assembly},{logger:this.logger})}}]),i}(or.AssemblySpecificChange);Dr.AddAssemblyFromExternalChange=ms;var gs={};Object.defineProperty(gs,"__esModule",{value:!0}),gs.AddAssemblyFromFileChange=void 0;var _s=ds,ys=function(e){ae(s,e);var t,n,r,a,i,o=de(s);function s(e,t){var n;return ee(this,s),re(ue(n=o.call(this,e,t)),"typeName","AddAssemblyFromFileChange"),re(ue(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return ne(s,[{key:"notification",get:function(){return'Assembly "'.concat(this.changes[0].assemblyName,'" added successfully. To use it, please refresh the page.')}},{key:"toJSON",value:function(){var e=this.assembly,t=this.changes,n=this.typeName;if(1===t.length){var r=he(t,1)[0];return{typeName:n,assembly:e,assemblyName:r.assemblyName,fileIds:r.fileIds}}return{typeName:n,assembly:e,changes:t}}},{key:"executeOnServer",value:(i=Q(Y().mark((function e(t){var n,r,a,i,o;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=we(this.changes),e.prev=2,n.s();case 4:if((r=n.n()).done){e.next=11;break}return i=(a=r.value).assemblyName,o=a.fileIds,e.next=9,"gzi"in o?this.executeOnServerIndexed(t,i,o):this.executeOnServerFasta(t,i,o.fa);case 9:e.next=4;break;case 11:e.next=16;break;case 13:e.prev=13,e.t0=e.catch(2),n.e(e.t0);case 16:return e.prev=16,n.f(),e.finish(16);case 19:case"end":return e.stop()}}),e,this,[[2,13,16,19]])}))),function(e){return i.apply(this,arguments)})},{key:"executeOnServerIndexed",value:(a=Q(Y().mark((function e(t,n,r){var a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b,w,x,S,k,E,A,C,R,N;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(s=(o=jt.env.CHUNK_SIZE)&&Number(o),jt.env.FILE_UPLOAD_FOLDER){e.next=5;break}throw new Error("No FILE_UPLOAD_FOLDER found in .env file");case 5:return l=r.fa,c=r.fai,u=r.gzi,d=t.assemblyModel,f=t.checkModel,h=t.fileModel,p=t.filesService,m=t.refSeqModel,g=t.user,e.next=9,h.findById(l);case 9:if(null==(_=e.sent)?void 0:_.checksum){e.next=13;break}throw new Error("No checksum for file document ".concat(_));case 13:return e.next=15,h.findById(c);case 15:if(null==(y=e.sent)?void 0:y.checksum){e.next=19;break}throw new Error("No checksum for file document ".concat(y));case 19:return e.next=21,h.findById(u);case 21:if(null==(v=e.sent)?void 0:v.checksum){e.next=25;break}throw new Error("No checksum for file document ".concat(v));case 25:return b=new _s.BgzipIndexedFasta({fasta:p.getFileHandle(_),fai:p.getFileHandle(y),gzi:p.getFileHandle(v)}),e.next=28,b.getSequenceSizes();case 28:return w=e.sent,e.next=31,d.findOne({name:n}).exec();case 31:if(!e.sent){e.next=34;break}throw new Error('Assembly "'.concat(n,'" already exists'));case 34:return e.next=36,f.find({default:!0}).exec();case 36:return x=e.sent.map((function(e){return e._id.toHexString()})),e.next=40,d.create([{_id:this.assembly,name:n,user:g,status:-1,fileIds:r,checks:x}]);case 40:S=he(e.sent,1),k=S[0],null===(a=(i=this.logger).debug)||void 0===a||a.call(i,'Added new assembly "'.concat(n,'", docId "').concat(k._id,'"')),e.t0=Y().keys(w);case 45:if((e.t1=e.t0()).done){e.next=55;break}return E=e.t1.value,e.next=49,m.create([K(K({name:E,assembly:k._id,length:w[E]},s?{chunkSize:s}:null),{},{user:g,status:-1})]);case 49:R=he(e.sent,1),N=R[0],null===(A=(C=this.logger).debug)||void 0===A||A.call(C,'Added new refSeq "'.concat(E,'", docId "').concat(N._id,'"')),e.next=45;break;case 55:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return a.apply(this,arguments)})},{key:"executeOnServerFasta",value:(r=Q(Y().mark((function e(t,n,r){var a,i,o,s,l,c,u,d,f,h,p,m,g,_;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return u=t.assemblyModel,d=t.checkModel,f=t.fileModel,h=t.user,e.next=3,f.findById(r).exec();case 3:if(p=e.sent){e.next=6;break}throw new Error('File "'.concat(r,'" not found in Mongo'));case 6:return null===(a=(i=this.logger).debug)||void 0===a||a.call(i,'FileId "'.concat(r,'", checksum "').concat(p.checksum,'"')),e.next=9,u.findOne({name:n}).exec();case 9:if(!e.sent){e.next=12;break}throw new Error('Assembly "'.concat(n,'" already exists'));case 12:return e.next=14,d.find({default:!0}).exec();case 14:return m=e.sent.map((function(e){return e._id.toHexString()})),e.next=18,u.create([{_id:this.assembly,name:n,user:h,status:-1,fileIds:{fa:r},checks:m}]);case 18:return g=he(e.sent,1),_=g[0],null===(o=(s=this.logger).debug)||void 0===o||o.call(s,'Added new assembly "'.concat(n,'", docId "').concat(_._id,'"')),null===(l=(c=this.logger).debug)||void 0===l||l.call(c,'File type: "'.concat(p.type,'", assemblyId: "').concat(_._id,'"')),e.next=25,this.addRefSeqIntoDb(p,_._id.toString(),t);case 25:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){return new s({typeName:this.typeName,changes:this.changes,assembly:this.assembly},{logger:this.logger})}}]),s}(ir.FromFileBaseChange);gs.AddAssemblyFromFileChange=ys;var vs={},bs={};Object.defineProperty(bs,"__esModule",{value:!0}),bs.DeleteFeatureChange=void 0,bs.isDeleteFeatureChange=function(e){return"DeleteFeatureChange"===e.typeName};var ws=vs,xs=function(e){ae(i,e);var t,n,r,a=de(i);function i(e,t){var n;return ee(this,i),re(ue(n=a.call(this,e,t)),"typeName","DeleteFeatureChange"),re(ue(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return ne(i,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var a=he(n,1)[0];return{typeName:r,changedIds:t,assembly:e,deletedFeature:a.deletedFeature,parentFeatureId:a.parentFeatureId}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o,s,l=this;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.featureModel,r=t.session,a=this.logger,i=we(this.changes),e.prev=3,s=Y().mark((function e(){var t,i,s,c,u,d,f,h,p;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=(i=o.value).deletedFeature,c=i.parentFeatureId,e.next=4,n.findOne({allIds:s._id}).session(r).exec();case 4:if(u=e.sent){e.next=9;break}throw d="*** ERROR: The following featureId was not found in database ='".concat(s._id,"'"),a.error(d),new Error(d);case 9:if(!u._id.equals(s._id)){e.next=16;break}if(!c){e.next=12;break}throw new Error('Feature "'.concat(s._id,'" is top-level, but received a parent feature ID'));case 12:return e.next=14,n.findByIdAndDelete(u._id);case 14:return null===(f=a.debug)||void 0===f||f.call(a,'Feature "'.concat(s._id,'" deleted from document "').concat(u._id,'". Whole document deleted.')),e.abrupt("return",1);case 16:return(h=l.findAndDeleteChildFeature(u,s._id)).push(s._id),u.allIds=u.allIds.filter((function(e){return!h.includes(e)})),u.markModified("children"),e.prev=20,e.next=23,u.save();case 23:e.next=29;break;case 25:throw e.prev=25,e.t0=e.catch(20),null===(p=a.debug)||void 0===p||p.call(a,"*** FAILED: ".concat(e.t0)),e.t0;case 29:null===(t=a.debug)||void 0===t||t.call(a,'Feature "'.concat(s._id,'" deleted from document "').concat(u._id,'"'));case 30:case"end":return e.stop()}}),e,null,[[20,25]])})),i.s();case 6:if((o=i.n()).done){e.next=12;break}return e.delegateYield(s(),"t0",8);case 8:if(!e.t0){e.next=10;break}return e.abrupt("continue",10);case 10:e.next=6;break;case 12:e.next=17;break;case 14:e.prev=14,e.t1=e.catch(3),i.e(e.t1);case 17:return e.prev=17,i.f(),e.finish(17);case 20:case"end":return e.stop()}}),e,this,[[3,14,17,20]])}))),function(e){return r.apply(this,arguments)})},{key:"findAndDeleteChildFeature",value:function(e,t){if(!e.children)throw new Error("Feature ".concat(e._id," has no children"));var n=e._id,r=e.children,a=r.get(t);if(a){var i=this.getChildFeatureIds(a);return r.delete(t),i}var o,s=we(r);try{for(s.s();!(o=s.n()).done;){var l=he(o.value,2)[1];try{return this.findAndDeleteChildFeature(l,t)}catch(e){}}}catch(e){s.e(e)}finally{s.f()}throw new Error('Feature "'.concat(t,'" not found in ').concat(n))}},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){var n,r,a,i,o,s;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No data store");case 2:n=we(this.changes),e.prev=3,n.s();case 5:if((r=n.n()).done){e.next=18;break}if(i=(a=r.value).deletedFeature,!(o=a.parentFeatureId)){e.next=15;break}if(s=t.getFeature(o)){e.next=12;break}throw new Error('Could not find parent feature "'.concat(o,'"'));case 12:s.deleteChild(i._id),e.next=16;break;case 15:t.getFeature(i._id)&&t.deleteFeature(i._id);case 16:e.next=5;break;case 18:e.next=23;break;case 20:e.prev=20,e.t0=e.catch(3),n.e(e.t0);case 23:return e.prev=23,n.f(),e.finish(23);case 26:case"end":return e.stop()}}),e,this,[[3,20,23,26]])}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){var e,t=this.assembly,n=this.changes,r=this.logger,a=me(this.changedIds).reverse(),i=me(n).reverse().map((function(e){return{addedFeature:e.deletedFeature,parentFeatureId:e.parentFeatureId}}));return null===(e=r.debug)||void 0===e||e.call(r,"INVERSE CHANGE '".concat(JSON.stringify(i),"'")),new ws.AddFeatureChange({changedIds:a,typeName:"AddFeatureChange",changes:i,assembly:t},{logger:r})}}]),i}(or.FeatureChange);bs.DeleteFeatureChange=xs,Object.defineProperty(vs,"__esModule",{value:!0}),vs.AddFeatureChange=void 0,vs.isAddFeatureChange=function(e){return"AddFeatureChange"===e.typeName};var Ss=bs,ks=function(e){ae(i,e);var t,n,r,a=de(i);function i(e,t){var n;return ee(this,i),re(ue(n=a.call(this,e,t)),"typeName","AddFeatureChange"),re(ue(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return ne(i,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var a=he(n,1)[0];return{typeName:r,changedIds:t,assembly:e,addedFeature:a.addedFeature,parentFeatureId:a.parentFeatureId,copyFeature:a.copyFeature,allIds:a.allIds}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b,w,x,S,k,E,A,C,R,N,I,T,O,F,L,D,M,P;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=t.assemblyModel,i=t.featureModel,o=t.refSeqModel,s=t.session,l=t.user,c=this.assembly,u=this.changes,d=this.logger,e.next=4,a.findById(c).session(s).exec();case 4:if(e.sent){e.next=9;break}throw f='*** ERROR: Assembly with id "'.concat(c,'" not found'),d.error(f),new Error(f);case 9:h=0,null===(n=d.debug)||void 0===n||n.call(d,"changes: ".concat(JSON.stringify(u))),p=we(u),e.prev=12,p.s();case 14:if((m=p.n()).done){e.next=64;break}return _=m.value,null===(g=d.debug)||void 0===g||g.call(d,"change: ".concat(JSON.stringify(_))),v=_.allIds,b=_.copyFeature,w=_.parentFeatureId,x=(y=_.addedFeature)._id,S=y.refSeq,e.next=21,o.findById(S).session(s).exec();case 21:if(e.sent){e.next=24;break}throw new Error('RefSeq was not found by assembly "'.concat(c,'" and seq_id "').concat(S,'" not found'));case 24:if(!b){e.next=34;break}return e.next=27,i.create([K(K({},y),{},{allIds:v,status:-1,user:l})],{session:s});case 27:E=he(e.sent,1),A=E[0],null===(k=d.debug)||void 0===k||k.call(d,'Copied feature, docId "'.concat(A._id,'" to assembly "').concat(c,'"')),h++,e.next=61;break;case 34:if(!w){e.next=53;break}return e.next=37,i.findOne({allIds:w}).session(s).exec();case 37:if(N=e.sent){e.next=40;break}throw new Error('Could not find feature with ID "'.concat(w,'"'));case 40:if(I=this.getFeatureFromId(N,w)){e.next=43;break}throw new Error('Could not find feature with ID "'.concat(w,'" in feature "').concat(N._id,'"'));case 43:return I.children||(I.children=new Map),null!==(C=I.attributes)&&void 0!==C&&C._id||((T=I.attributes)||(T={}),T=K({_id:[I._id.toString()]},JSON.parse(JSON.stringify(T))),I.attributes=T),I.children.set(x,K(K({allIds:[]},y),{},{_id:x})),I.children=new Map(me(I.children.entries()).sort((function(e,t){return e[1].min-t[1].min}))),O=this.getChildFeatureIds(y),(R=N.allIds).push.apply(R,[x].concat(me(O))),e.next=51,N.save();case 51:e.next=61;break;case 53:return L=this.getChildFeatureIds(y),D=[x].concat(me(L)),e.next=57,i.create([K({allIds:D,status:0},y)],{session:s});case 57:M=he(e.sent,1),P=M[0],null===(F=d.verbose)||void 0===F||F.call(d,'Added docId "'.concat(P._id,'"'));case 61:h++;case 62:e.next=14;break;case 64:e.next=69;break;case 66:e.prev=66,e.t0=e.catch(12),p.e(e.t0);case 69:return e.prev=69,p.f(),e.finish(69);case 72:null===(r=d.debug)||void 0===r||r.call(d,"Added ".concat(h," new feature(s) into database."));case 73:case"end":return e.stop()}}),e,this,[[12,66,69,72]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){var n,r,a,i,o,s,l;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No data store");case 2:n=this.assembly,r=we(this.changes),e.prev=4,r.s();case 6:if((a=r.n()).done){e.next=20;break}if(o=(i=a.value).addedFeature,!(s=i.parentFeatureId)){e.next=17;break}if(l=t.getFeature(s)){e.next=13;break}throw new Error('Could not find parent feature "'.concat(s,'"'));case 13:l.attributes.get("_id")||l.setAttribute("_id",[l._id]),l.addChild(o),e.next=18;break;case 17:t.addFeature(n,o);case 18:e.next=6;break;case 20:e.next=25;break;case 22:e.prev=22,e.t0=e.catch(4),r.e(e.t0);case 25:return e.prev=25,r.f(),e.finish(25);case 28:case"end":return e.stop()}}),e,this,[[4,22,25,28]])}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,t=this.changes,n=this.logger,r=me(this.changedIds).reverse(),a=me(t).reverse().map((function(e){return{deletedFeature:e.addedFeature,parentFeatureId:e.parentFeatureId}}));return new Ss.DeleteFeatureChange({changedIds:r,typeName:"DeleteFeatureChange",changes:a,assembly:e},{logger:n})}}]),i}(or.FeatureChange);vs.AddFeatureChange=ks;var Es={};Object.defineProperty(Es,"__esModule",{value:!0}),Es.AddFeaturesFromFileChange=void 0;var As=function(e){ae(i,e);var t,n,r,a=de(i);function i(e,t){var n,r;return ee(this,i),re(ue(r=a.call(this,e,t)),"typeName","AddFeaturesFromFileChange"),re(ue(r),"changes",void 0),re(ue(r),"deleteExistingFeatures",!1),r.deleteExistingFeatures=null!==(n=e.deleteExistingFeatures)&&void 0!==n&&n,r.changes="changes"in e?e.changes:[e],r}return ne(i,[{key:"notification",get:function(){return"Features have been added. To see them, please refresh the page."}},{key:"toJSON",value:function(){var e=this.assembly,t=this.changes,n=this.deleteExistingFeatures,r=this.typeName;return 1===t.length?{typeName:r,assembly:e,fileId:he(t,1)[0].fileId,deleteExistingFeatures:n}:{typeName:r,assembly:e,changes:t,deleteExistingFeatures:n}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.fileModel,a=t.filesService,i=this.changes,o=this.logger,!this.deleteExistingFeatures){e.next=5;break}return e.next=5,this.removeExistingFeatures(t);case 5:s=we(i),e.prev=6,s.s();case 8:if((l=s.n()).done){e.next=56;break}if(u=l.value.fileId,jt.env.FILE_UPLOAD_FOLDER){e.next=14;break}throw new Error("No FILE_UPLOAD_FOLDER found in .env file");case 14:return e.next=16,r.findById(u).exec();case 16:if(d=e.sent){e.next=19;break}throw new Error('File "'.concat(u,'" not found in Mongo'));case 19:null===(c=o.debug)||void 0===c||c.call(o,'FileId "'.concat(u,'", checksum "').concat(d.checksum,'"')),f=a.parseGFF3(a.getFileStream(d)),h=0,p=!1,m=!1,e.prev=24,_=$(f);case 26:return e.next=28,_.next();case 28:if(!(p=!(y=e.sent).done)){e.next=38;break}return v=y.value,e.next=33,this.addFeatureIntoDb(v,t);case 33:++h%1e3==0&&(null===(b=o.debug)||void 0===b||b.call(o,"Processed ".concat(h," features")));case 35:p=!1,e.next=26;break;case 38:e.next=44;break;case 40:e.prev=40,e.t0=e.catch(24),m=!0,g=e.t0;case 44:if(e.prev=44,e.prev=45,!p||null==_.return){e.next=49;break}return e.next=49,_.return();case 49:if(e.prev=49,!m){e.next=52;break}throw g;case 52:return e.finish(49);case 53:return e.finish(44);case 54:e.next=8;break;case 56:e.next=61;break;case 58:e.prev=58,e.t1=e.catch(6),s.e(e.t1);case 61:return e.prev=61,s.f(),e.finish(61);case 64:null===(n=o.debug)||void 0===n||n.call(o,"New features added into database!");case 65:case"end":return e.stop()}}),e,this,[[6,58,61,64],[24,40,44,54],[45,,49,53]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){return new i({typeName:this.typeName,changes:this.changes,assembly:this.assembly},{logger:this.logger})}}]),i}(ir.FromFileBaseChange);Es.AddFeaturesFromFileChange=As;var Cs={};Object.defineProperty(Cs,"__esModule",{value:!0}),Cs.AddRefSeqAliasesChange=void 0;var Rs=R.default,Ns=function(e){ae(r,e);var t,n=de(r);function r(e,t){var a;return ee(this,r),re(ue(a=n.call(this,e,t)),"typeName","AddRefSeqAliasesChange"),re(ue(a),"refSeqAliases",void 0),a.refSeqAliases=e.refSeqAliases,a}return ne(r,[{key:"executeOnClient",value:function(e){var t=(0,Rs.getSession)(e).assemblyManager.get(this.assembly);if(!t)throw new Error("assembly ".concat(this.assembly," not found"));var n=t.refNameAliases,r=t.lowerCaseRefNameAliases;if(!n||!r)throw new Error("Session refNameAliases not found in assembly");var a,i=we(this.refSeqAliases);try{for(i.s();!(a=i.n()).done;){var o,s=a.value,l=s.refName,c=we(s.aliases);try{for(c.s();!(o=c.n()).done;){var u=o.value;n[u]=l,r[u.toLowerCase()]=l}}catch(e){c.e(e)}finally{c.f()}}}catch(e){i.e(e)}finally{i.f()}return t.setRefNameAliases(n,r),Promise.resolve()}},{key:"getInverse",value:function(){throw new Error("Method not implemented.")}},{key:"toJSON",value:function(){return{assembly:this.assembly,typeName:this.typeName,refSeqAliases:this.refSeqAliases}}},{key:"executeOnServer",value:(t=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.refSeqModel,r=t.session,a=this.assembly,i=this.logger,o=we(this.refSeqAliases),e.prev=3,o.s();case 5:if((s=o.n()).done){e.next=13;break}return c=s.value,null===(l=i.debug)||void 0===l||l.call(i,"Updating Refname alias for assembly: ".concat(a,", refSeqAlias: ").concat(JSON.stringify(c))),u=c.aliases,d=c.refName,e.next=11,n.updateOne({assembly:a,name:d},{$set:{aliases:u}}).session(r);case 11:e.next=5;break;case 13:e.next=18;break;case 15:e.prev=15,e.t0=e.catch(3),o.e(e.t0);case 18:return e.prev=18,o.f(),e.finish(18);case 21:case"end":return e.stop()}}),e,this,[[3,15,18,21]])}))),function(e){return t.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:function(e){throw new Error("Method not implemented.")}},{key:"notification",get:function(){return"RefSeq aliases have been added."}}]),r}(or.AssemblySpecificChange);Cs.AddRefSeqAliasesChange=Ns;var Is={};Object.defineProperty(Is,"__esModule",{value:!0}),Is.DeleteAssemblyChange=void 0;var Ts=R.default,Os=function(e){ae(i,e);var t,n,r,a=de(i);function i(){var e;ee(this,i);for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return re(ue(e=a.call.apply(a,[this].concat(n))),"typeName","DeleteAssemblyChange"),e}return ne(i,[{key:"notification",get:function(){return'Assembly "'.concat(this.assembly,'" deleted successfully.')}},{key:"toJSON",value:function(){return{typeName:this.typeName,assembly:this.assembly}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.assemblyModel,a=t.featureModel,i=t.refSeqChunkModel,o=t.refSeqModel,s=t.session,l=this.assembly,c=this.logger,e.next=4,r.findById(l).session(s).exec();case 4:if(e.sent){e.next=9;break}throw u='*** ERROR: Assembly with id "'.concat(l,'" not found'),c.error(u),new Error(u);case 9:return e.next=11,o.find({assembly:l}).exec();case 11:return d=e.sent.map((function(e){return e._id})),e.next=15,i.deleteMany({refSeq:d}).exec();case 15:return e.next=17,a.deleteMany({refSeq:d}).exec();case 17:return e.next=19,o.deleteMany({assembly:l}).exec();case 19:return e.next=21,r.findByIdAndDelete(l).exec();case 21:null===(n=c.debug)||void 0===n||n.call(c,'Assembly "'.concat(l,'" deleted from database.'));case 22:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){var n,r,a,i;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=this.assembly,t){e.next=3;break}throw new Error("No data store");case 3:return i=(0,Ts.getSession)(t),t.assemblies.has(a)&&t.deleteAssembly(a),e.next=7,null===(n=i.removeAssembly)||void 0===n?void 0:n.call(i,a);case 7:return e.next=9,null===(r=i.removeSessionAssembly)||void 0===r?void 0:r.call(i,a);case 9:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){return new i({typeName:"DeleteAssemblyChange",assembly:this.assembly},{logger:this.logger})}}]),i}(or.AssemblySpecificChange);Is.DeleteAssemblyChange=Os;var Fs={};Object.defineProperty(Fs,"__esModule",{value:!0}),Fs.DeleteUserChange=void 0;var Ls=function(e){ae(i,e);var t,n,r,a=de(i);function i(e,t){var n;return ee(this,i),re(ue(n=a.call(this,e,t)),"typeName","DeleteUserChange"),re(ue(n),"changes",void 0),re(ue(n),"userId",void 0),n.changes="changes"in e?e.changes:[e],n.userId=e.userId,n}return ne(i,[{key:"toJSON",value:function(){return{typeName:this.typeName,userId:this.userId}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.session,r=t.userModel,a=this.logger,i=this.userId,e.next=4,r.findOneAndDelete({_id:i}).session(n).exec();case 4:if(e.sent){e.next=9;break}throw o='*** ERROR: User with id "'.concat(i,'" not found'),a.error(o),new Error(o);case 9:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){return new i({typeName:this.typeName,userId:this.userId},{logger:this.logger})}}]),i}(or.Change);Fs.DeleteUserChange=Ls;var Ds={};Object.defineProperty(Ds,"__esModule",{value:!0}),Ds.FeatureAttributeChange=void 0,Ds.isFeatureAttributeChange=function(e){return"FeatureAttributeChange"===e.typeName};var Ms=function(e){ae(i,e);var t,n,r,a=de(i);function i(e,t){var n;return ee(this,i),re(ue(n=a.call(this,e,t)),"typeName","FeatureAttributeChange"),re(ue(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return ne(i,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var a=he(n,1)[0];return{typeName:r,changedIds:t,assembly:e,featureId:a.featureId,attributes:a.attributes}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b,w,x;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.featureModel,r=t.session,i=this.logger,o=[],s=we(a=this.changes),e.prev=4,s.s();case 6:if((l=s.n()).done){e.next=26;break}return d=l.value.featureId,e.next=11,n.findOne({allIds:d}).session(r).exec();case 11:if(f=e.sent){e.next=16;break}throw h="*** ERROR: The following featureId was not found in database ='".concat(d,"'"),i.error(h),new Error(h);case 16:if(null===(c=i.debug)||void 0===c||c.call(i,"*** Feature found: ".concat(JSON.stringify(f))),p=this.getFeatureFromId(f,d)){e.next=22;break}throw i.error("ERROR when searching feature by featureId"),new Error("ERROR when searching feature by featureId");case 22:null===(u=i.debug)||void 0===u||u.call(i,"*** Found feature: ".concat(JSON.stringify(p))),o.push({feature:p,topLevelFeature:f});case 24:e.next=6;break;case 26:e.next=31;break;case 28:e.prev=28,e.t0=e.catch(4),s.e(e.t0);case 31:return e.prev=31,s.f(),e.finish(31);case 34:m=we(a.entries()),e.prev=35,m.s();case 37:if((g=m.n()).done){e.next=55;break}return y=he(g.value,2),w=(v=o[y[0]]).topLevelFeature,(b=v.feature).attributes=y[1].attributes,w._id.equals(b._id)?w.markModified("attributes"):w.markModified("children"),e.prev=43,e.next=46,w.save();case 46:e.next=52;break;case 48:throw e.prev=48,e.t1=e.catch(43),null===(x=i.debug)||void 0===x||x.call(i,"*** FAILED: ".concat(e.t1)),e.t1;case 52:null===(_=i.debug)||void 0===_||_.call(i,"*** Feature attributes modified (added, edited or deleted), docId: ".concat(JSON.stringify(w)));case 53:e.next=37;break;case 55:e.next=60;break;case 57:e.prev=57,e.t2=e.catch(35),m.e(e.t2);case 60:return e.prev=60,m.f(),e.finish(60);case 63:case"end":return e.stop()}}),e,this,[[4,28,31,34],[35,57,60,63],[43,48]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("applyToLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){var n,r,a,i,o,s;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No data store");case 2:n=we(this.changedIds.entries()),e.prev=3,n.s();case 5:if((r=n.n()).done){e.next=13;break}if(a=he(r.value,2),i=a[0],s=t.getFeature(o=a[1])){e.next=10;break}throw new Error('Could not find feature with identifier "'.concat(o,'"'));case 10:s.setAttributes(new Map(Object.entries(this.changes[i].attributes)));case 11:e.next=5;break;case 13:e.next=18;break;case 15:e.prev=15,e.t0=e.catch(3),n.e(e.t0);case 18:return e.prev=18,n.f(),e.finish(18);case 21:case"end":return e.stop()}}),e,this,[[3,15,18,21]])}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,t=this.changes,n=this.logger;return new i({changedIds:me(this.changedIds).reverse(),typeName:"FeatureAttributeChange",changes:me(t).reverse().map((function(e){return{featureId:e.featureId,attributes:e.attributes}})),assembly:e},{logger:n})}}]),i}(or.FeatureChange);Ds.FeatureAttributeChange=Ms;var Ps={},qs=["__v","_id","assemblies","internetAccounts","plugins","tracks"];function js(e){var t=e.assemblies,n=e.internetAccounts,r=e.plugins,a=e.tracks,i=function(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)t.indexOf(n=i[r])>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t.indexOf(n=i[r])>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,qs),o=null==t?void 0:t.filter((function(e){return"ApolloSequenceAdapter"!==e.sequence.adapter.type})),s=null==a?void 0:a.filter((function(e){return"ApolloTrack"!==e.type})),l=null==r?void 0:r.filter((function(e){return"Apollo"!==e.name})),c=null==n?void 0:n.filter((function(e){return"ApolloInternetAccount"!==e.type})),u=i;return o&&(u.assemblies=o),s&&(u.tracks=s),l&&(u.plugins=l),c&&(u.internetAccounts=c),u}Object.defineProperty(Ps,"__esModule",{value:!0}),Ps.ImportJBrowseConfigChange=void 0,Ps.filterJBrowseConfig=js;var Bs=function(e){ae(i,e);var t,n,r,a=de(i);function i(e,t){var n;return ee(this,i),re(ue(n=a.call(this,e,t)),"typeName","ImportJBrowseConfigChange"),re(ue(n),"oldJBrowseConfig",void 0),re(ue(n),"newJBrowseConfig",void 0),n.oldJBrowseConfig=e.oldJBrowseConfig,n.newJBrowseConfig=e.newJBrowseConfig,n}return ne(i,[{key:"toJSON",value:function(){return{typeName:this.typeName,oldJBrowseConfig:this.oldJBrowseConfig,newJBrowseConfig:this.newJBrowseConfig}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.jbrowseConfigModel,a=this.logger,i=this.newJBrowseConfig,e.next=4,r.deleteMany();case 4:if(i){e.next=6;break}return e.abrupt("return");case 6:return o=js(i),e.next=9,r.create(o);case 9:null===(n=a.debug)||void 0===n||n.call(a,"Stored new JBrowse Config");case 10:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){return new i({typeName:"ImportJBrowseConfigChange",oldJBrowseConfig:this.newJBrowseConfig,newJBrowseConfig:this.oldJBrowseConfig},{logger:this.logger})}}]),i}(or.Change);Ps.ImportJBrowseConfigChange=Bs;var Us={};Object.defineProperty(Us,"__esModule",{value:!0}),Us.LocationEndChange=void 0,Us.isLocationEndChange=function(e){return"LocationEndChange"===e.typeName};var zs=function(e){ae(i,e);var t,n,r,a=de(i);function i(e,t){var n;return ee(this,i),re(ue(n=a.call(this,e,t)),"typeName","LocationEndChange"),re(ue(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return ne(i,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var a=he(n,1)[0];return{typeName:r,changedIds:t,assembly:e,featureId:a.featureId,oldEnd:a.oldEnd,newEnd:a.newEnd}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b,w,x,S,k,E,A,C,R,N;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.featureModel,r=t.session,i=this.logger,o=[],s=we(a=this.changes),e.prev=4,s.s();case 6:if((l=s.n()).done){e.next=49;break}return f=(d=l.value).featureId,h=d.oldEnd,e.next=11,n.findOne({allIds:f}).session(r).exec();case 11:if(p=e.sent){e.next=16;break}throw m="*** ERROR: The following featureId was not found in database ='".concat(f,"'"),i.error(m),new Error(m);case 16:if(null===(c=i.debug)||void 0===c||c.call(i,"*** TOP level feature found: ".concat(JSON.stringify(p))),g=this.getFeatureFromId(p,f)){e.next=22;break}throw i.error("ERROR when searching feature by featureId"),new Error("ERROR when searching feature by featureId");case 22:if(null===(u=i.debug)||void 0===u||u.call(i,"*** Found feature: ".concat(JSON.stringify(g))),g.max!==h){e.next=27;break}o.push({feature:g,topLevelFeature:p}),e.next=47;break;case 27:if(!g.children){e.next=47;break}_=we(g.children),e.prev=29,_.s();case 31:if((y=_.n()).done){e.next=39;break}if(v=he(y.value,2),(b=v[1]).max!==h){e.next=37;break}return null===(w=i.debug)||void 0===w||w.call(i,"*************** UPDATE CHILD FEATURE ID= ".concat(f,", CHILD: ").concat(JSON.stringify(b))),o.push({feature:b,topLevelFeature:p}),e.abrupt("break",39);case 37:e.next=31;break;case 39:e.next=44;break;case 41:e.prev=41,e.t0=e.catch(29),_.e(e.t0);case 44:return e.prev=44,_.f(),e.finish(44);case 47:e.next=6;break;case 49:e.next=54;break;case 51:e.prev=51,e.t1=e.catch(4),s.e(e.t1);case 54:return e.prev=54,s.f(),e.finish(54);case 57:x=we(a.entries()),e.prev=58,x.s();case 60:if((S=x.n()).done){e.next=78;break}return E=he(S.value,2),R=(A=o[E[0]]).topLevelFeature,(C=A.feature).max=E[1].newEnd,R._id.equals(C._id)?R.markModified("end"):R.markModified("children"),e.prev=66,e.next=69,R.save();case 69:e.next=75;break;case 71:throw e.prev=71,e.t2=e.catch(66),null===(N=i.debug)||void 0===N||N.call(i,"*** FAILED: ".concat(e.t2)),e.t2;case 75:null===(k=i.debug)||void 0===k||k.call(i,"*** Object updated in Mongo. New object: ".concat(JSON.stringify(R)));case 76:e.next=60;break;case 78:e.next=83;break;case 80:e.prev=80,e.t3=e.catch(58),x.e(e.t3);case 83:return e.prev=83,x.f(),e.finish(83);case 86:case"end":return e.stop()}}),e,this,[[4,51,54,57],[29,41,44,47],[58,80,83,86],[66,71]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){var n,r,a,i,o,s;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No data store");case 2:n=we(this.changedIds.entries()),e.prev=3,n.s();case 5:if((r=n.n()).done){e.next=13;break}if(a=he(r.value,2),i=a[0],s=t.getFeature(o=a[1])){e.next=10;break}throw new Error('Could not find feature with identifier "'.concat(o,'"'));case 10:s.setMax(this.changes[i].newEnd);case 11:e.next=5;break;case 13:e.next=18;break;case 15:e.prev=15,e.t0=e.catch(3),n.e(e.t0);case 18:return e.prev=18,n.f(),e.finish(18);case 21:case"end":return e.stop()}}),e,this,[[3,15,18,21]])}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,t=this.changes,n=this.logger,r=this.typeName;return new i({changedIds:me(this.changedIds).reverse(),typeName:r,changes:me(t).reverse().map((function(e){return{featureId:e.featureId,oldEnd:e.newEnd,newEnd:e.oldEnd}})),assembly:e},{logger:n})}}]),i}(or.FeatureChange);Us.LocationEndChange=zs;var Gs={};Object.defineProperty(Gs,"__esModule",{value:!0}),Gs.LocationStartChange=void 0,Gs.isLocationStartChange=function(e){return"LocationStartChange"===e.typeName};var Hs=function(e){ae(i,e);var t,n,r,a=de(i);function i(e,t){var n;return ee(this,i),re(ue(n=a.call(this,e,t)),"typeName","LocationStartChange"),re(ue(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return ne(i,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var a=he(n,1)[0];return{typeName:r,changedIds:t,assembly:e,featureId:a.featureId,oldStart:a.oldStart,newStart:a.newStart}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b,w,x,S,k,E,A,C,R,N;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.featureModel,r=t.session,i=this.logger,o=[],s=we(a=this.changes),e.prev=4,s.s();case 6:if((l=s.n()).done){e.next=49;break}return f=(d=l.value).featureId,h=d.oldStart,e.next=11,n.findOne({allIds:f}).session(r).exec();case 11:if(p=e.sent){e.next=16;break}throw m="*** ERROR: The following featureId was not found in database ='".concat(f,"'"),i.error(m),new Error(m);case 16:if(null===(c=i.debug)||void 0===c||c.call(i,"*** TOP level feature found: ".concat(JSON.stringify(p))),g=this.getFeatureFromId(p,f)){e.next=22;break}throw i.error("ERROR when searching feature by featureId"),new Error("ERROR when searching feature by featureId");case 22:if(null===(u=i.debug)||void 0===u||u.call(i,"*** Found feature: ".concat(JSON.stringify(g))),g.min!==h){e.next=27;break}o.push({feature:g,topLevelFeature:p}),e.next=47;break;case 27:if(!g.children){e.next=47;break}_=we(g.children),e.prev=29,_.s();case 31:if((y=_.n()).done){e.next=39;break}if(v=he(y.value,2),(b=v[1]).min!==h){e.next=37;break}return null===(w=i.debug)||void 0===w||w.call(i,"*** UPDATE CHILD FEATURE ID= ".concat(f,", CHILD: ").concat(JSON.stringify(b))),o.push({feature:b,topLevelFeature:p}),e.abrupt("break",39);case 37:e.next=31;break;case 39:e.next=44;break;case 41:e.prev=41,e.t0=e.catch(29),_.e(e.t0);case 44:return e.prev=44,_.f(),e.finish(44);case 47:e.next=6;break;case 49:e.next=54;break;case 51:e.prev=51,e.t1=e.catch(4),s.e(e.t1);case 54:return e.prev=54,s.f(),e.finish(54);case 57:x=we(a.entries()),e.prev=58,x.s();case 60:if((S=x.n()).done){e.next=78;break}return E=he(S.value,2),R=(A=o[E[0]]).topLevelFeature,(C=A.feature).min=E[1].newStart,R._id.equals(C._id)?R.markModified("start"):R.markModified("children"),e.prev=66,e.next=69,R.save();case 69:e.next=75;break;case 71:throw e.prev=71,e.t2=e.catch(66),null===(N=i.debug)||void 0===N||N.call(i,"*** FAILED: ".concat(e.t2)),e.t2;case 75:null===(k=i.debug)||void 0===k||k.call(i,"*** Object updated in Mongo. New object: ".concat(JSON.stringify(R)));case 76:e.next=60;break;case 78:e.next=83;break;case 80:e.prev=80,e.t3=e.catch(58),x.e(e.t3);case 83:return e.prev=83,x.f(),e.finish(83);case 86:case"end":return e.stop()}}),e,this,[[4,51,54,57],[29,41,44,47],[58,80,83,86],[66,71]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){var n,r,a,i,o,s;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No data store");case 2:n=we(this.changedIds.entries()),e.prev=3,n.s();case 5:if((r=n.n()).done){e.next=13;break}if(a=he(r.value,2),i=a[0],s=t.getFeature(o=a[1])){e.next=10;break}throw new Error('Could not find feature with identifier "'.concat(o,'"'));case 10:s.setMin(this.changes[i].newStart);case 11:e.next=5;break;case 13:e.next=18;break;case 15:e.prev=15,e.t0=e.catch(3),n.e(e.t0);case 18:return e.prev=18,n.f(),e.finish(18);case 21:case"end":return e.stop()}}),e,this,[[3,15,18,21]])}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,t=this.changes,n=this.logger,r=this.typeName;return new i({changedIds:me(this.changedIds).reverse(),typeName:r,changes:me(t).reverse().map((function(e){return{featureId:e.featureId,oldStart:e.newStart,newStart:e.oldStart}})),assembly:e},{logger:n})}}]),i}(or.FeatureChange);Gs.LocationStartChange=Hs;var $s={};Object.defineProperty($s,"__esModule",{value:!0}),$s.StrandChange=void 0;var Js=function(e){ae(i,e);var t,n,r,a=de(i);function i(e,t){var n;return ee(this,i),re(ue(n=a.call(this,e,t)),"typeName","StrandChange"),re(ue(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return ne(i,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var a=he(n,1)[0];return{typeName:r,changedIds:t,assembly:e,featureId:a.featureId,oldStrand:a.oldStrand,newStrand:a.newStrand}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b,w,x,S,k,E;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.featureModel,r=t.session,i=this.logger,o=[],s=we(a=this.changes),e.prev=4,s.s();case 6:if((l=s.n()).done){e.next=30;break}return f=(d=l.value).featureId,h=d.oldStrand,e.next=11,n.findOne({allIds:f}).session(r).exec();case 11:if(p=e.sent){e.next=16;break}throw m="*** ERROR: The following featureId was not found in database ='".concat(f,"'"),i.error(m),new Error(m);case 16:if(null===(c=i.debug)||void 0===c||c.call(i,"*** Feature found: ".concat(JSON.stringify(p))),g=this.getFeatureFromId(p,f)){e.next=22;break}throw i.error("ERROR when searching feature by featureId"),new Error("ERROR when searching feature by featureId");case 22:if(null===(u=i.debug)||void 0===u||u.call(i,"*** Found feature: ".concat(JSON.stringify(g))),g.strand===h){e.next=27;break}throw _="*** ERROR: Feature's current strand \"".concat(p.strand,'" doesn\'t match with expected value "').concat(h,'"'),i.error(_),new Error(_);case 27:o.push({feature:g,topLevelFeature:p});case 28:e.next=6;break;case 30:e.next=35;break;case 32:e.prev=32,e.t0=e.catch(4),s.e(e.t0);case 35:return e.prev=35,s.f(),e.finish(35);case 38:y=we(a.entries()),e.prev=39,y.s();case 41:if((v=y.n()).done){e.next=59;break}return w=he(v.value,2),k=(x=o[w[0]]).topLevelFeature,(S=x.feature).strand=w[1].newStrand,k._id.equals(S._id)?k.markModified("strand"):k.markModified("children"),e.prev=47,e.next=50,k.save();case 50:e.next=56;break;case 52:throw e.prev=52,e.t1=e.catch(47),null===(E=i.debug)||void 0===E||E.call(i,"*** FAILED: ".concat(e.t1)),e.t1;case 56:null===(b=i.debug)||void 0===b||b.call(i,"*** Object updated in Mongo. New object: ".concat(JSON.stringify(k)));case 57:e.next=41;break;case 59:e.next=64;break;case 61:e.prev=61,e.t2=e.catch(39),y.e(e.t2);case 64:return e.prev=64,y.f(),e.finish(64);case 67:case"end":return e.stop()}}),e,this,[[4,32,35,38],[39,61,64,67],[47,52]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){var n,r,a,i,o,s;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No data store");case 2:n=we(this.changedIds.entries()),e.prev=3,n.s();case 5:if((r=n.n()).done){e.next=13;break}if(a=he(r.value,2),i=a[0],s=t.getFeature(o=a[1])){e.next=10;break}throw new Error('Could not find feature with identifier "'.concat(o,'"'));case 10:s.setStrand(this.changes[i].newStrand);case 11:e.next=5;break;case 13:e.next=18;break;case 15:e.prev=15,e.t0=e.catch(3),n.e(e.t0);case 18:return e.prev=18,n.f(),e.finish(18);case 21:case"end":return e.stop()}}),e,this,[[3,15,18,21]])}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,t=this.changes,n=this.logger,r=this.typeName;return new i({changedIds:me(this.changedIds).reverse(),typeName:r,changes:me(t).reverse().map((function(e){return{featureId:e.featureId,oldStrand:e.newStrand,newStrand:e.oldStrand}})),assembly:e},{logger:n})}}]),i}(or.FeatureChange);$s.StrandChange=Js;var Vs={};Object.defineProperty(Vs,"__esModule",{value:!0}),Vs.TypeChange=void 0;var Ws=function(e){ae(i,e);var t,n,r,a=de(i);function i(e,t){var n;return ee(this,i),re(ue(n=a.call(this,e,t)),"typeName","TypeChange"),re(ue(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return ne(i,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var a=he(n,1)[0];return{typeName:r,changedIds:t,assembly:e,featureId:a.featureId,oldType:a.oldType,newType:a.newType}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b,w,x,S,k,E;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.featureModel,r=t.session,i=this.logger,o=[],s=we(a=this.changes),e.prev=4,s.s();case 6:if((l=s.n()).done){e.next=30;break}return f=(d=l.value).featureId,h=d.oldType,e.next=11,n.findOne({allIds:f}).session(r).exec();case 11:if(p=e.sent){e.next=16;break}throw m="*** ERROR: The following featureId was not found in database ='".concat(f,"'"),i.error(m),new Error(m);case 16:if(null===(c=i.debug)||void 0===c||c.call(i,"*** Feature found: ".concat(JSON.stringify(p))),g=this.getFeatureFromId(p,f)){e.next=22;break}throw i.error("ERROR when searching feature by featureId"),new Error("ERROR when searching feature by featureId");case 22:if(null===(u=i.debug)||void 0===u||u.call(i,"*** Found feature: ".concat(JSON.stringify(g))),g.type===h){e.next=27;break}throw _="*** ERROR: Feature's current type \"".concat(p.type,'" doesn\'t match with expected value "').concat(h,'"'),i.error(_),new Error(_);case 27:o.push({feature:g,topLevelFeature:p});case 28:e.next=6;break;case 30:e.next=35;break;case 32:e.prev=32,e.t0=e.catch(4),s.e(e.t0);case 35:return e.prev=35,s.f(),e.finish(35);case 38:y=we(a.entries()),e.prev=39,y.s();case 41:if((v=y.n()).done){e.next=59;break}return w=he(v.value,2),k=(x=o[w[0]]).topLevelFeature,(S=x.feature).type=w[1].newType,k._id.equals(S._id)?k.markModified("type"):k.markModified("children"),e.prev=47,e.next=50,k.save();case 50:e.next=56;break;case 52:throw e.prev=52,e.t1=e.catch(47),null===(E=i.debug)||void 0===E||E.call(i,"*** FAILED: ".concat(e.t1)),e.t1;case 56:null===(b=i.debug)||void 0===b||b.call(i,"*** Object updated in Mongo. New object: ".concat(JSON.stringify(k)));case 57:e.next=41;break;case 59:e.next=64;break;case 61:e.prev=61,e.t2=e.catch(39),y.e(e.t2);case 64:return e.prev=64,y.f(),e.finish(64);case 67:case"end":return e.stop()}}),e,this,[[4,32,35,38],[39,61,64,67],[47,52]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){var n,r,a,i,o,s;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No data store");case 2:n=we(this.changedIds.entries()),e.prev=3,n.s();case 5:if((r=n.n()).done){e.next=13;break}if(a=he(r.value,2),i=a[0],s=t.getFeature(o=a[1])){e.next=10;break}throw new Error('Could not find feature with identifier "'.concat(o,'"'));case 10:s.setType(this.changes[i].newType);case 11:e.next=5;break;case 13:e.next=18;break;case 15:e.prev=15,e.t0=e.catch(3),n.e(e.t0);case 18:return e.prev=18,n.f(),e.finish(18);case 21:case"end":return e.stop()}}),e,this,[[3,15,18,21]])}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,t=this.changes,n=this.logger,r=this.typeName;return new i({changedIds:me(this.changedIds).reverse(),typeName:r,changes:me(t).reverse().map((function(e){return{featureId:e.featureId,oldType:e.newType,newType:e.oldType}})),assembly:e},{logger:n})}}]),i}(or.FeatureChange);Vs.TypeChange=Ws;var Ks={};Object.defineProperty(Ks,"__esModule",{value:!0}),Ks.UserChange=void 0;var Ys=function(e){ae(i,e);var t,n,r,a=de(i);function i(e,t){var n;return ee(this,i),re(ue(n=a.call(this,e,t)),"typeName","UserChange"),re(ue(n),"changes",void 0),re(ue(n),"userId",void 0),n.changes="changes"in e?e.changes:[e],n.userId=e.userId,n}return ne(i,[{key:"toJSON",value:function(){var e=this.changes,t=this.typeName,n=this.userId;return 1===e.length?{typeName:t,userId:n,role:he(e,1)[0].role}:{typeName:t,userId:n,changes:e}}},{key:"executeOnServer",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o,s,l,c,u,d,f;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.session,r=t.userModel,i=this.logger,o=this.userId,s=we(a=this.changes),e.prev=3,s.s();case 5:if((l=s.n()).done){e.next=18;break}return u=l.value,null===(c=i.debug)||void 0===c||c.call(i,"change: ".concat(JSON.stringify(a))),d=u.role,e.next=11,r.findByIdAndUpdate(o,{role:d}).session(n).exec();case 11:if(e.sent){e.next=16;break}throw f='*** ERROR: User with id "'.concat(o,'" not found'),i.error(f),new Error(f);case 16:e.next=5;break;case 18:e.next=23;break;case 20:e.prev=20,e.t0=e.catch(3),s.e(e.t0);case 23:return e.prev=23,s.f(),e.finish(23);case 26:case"end":return e.stop()}}),e,this,[[3,20,23,26]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){return new i({typeName:this.typeName,changes:this.changes,userId:this.userId},{logger:this.logger})}}]),i}(or.Change);Ks.UserChange=Ys,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.changes=void 0;var t=et;e.changes={AddAssemblyAndFeaturesFromFileChange:ar.AddAssemblyAndFeaturesFromFileChange,AddAssemblyFromFileChange:gs.AddAssemblyFromFileChange,AddAssemblyFromExternalChange:Dr.AddAssemblyFromExternalChange,AddFeatureChange:vs.AddFeatureChange,AddFeaturesFromFileChange:Es.AddFeaturesFromFileChange,DeleteAssemblyChange:Is.DeleteAssemblyChange,DeleteFeatureChange:bs.DeleteFeatureChange,DeleteUserChange:Fs.DeleteUserChange,FeatureAttributeChange:Ds.FeatureAttributeChange,ImportJBrowseConfigChange:Ps.ImportJBrowseConfigChange,LocationEndChange:Us.LocationEndChange,LocationStartChange:Gs.LocationStartChange,StrandChange:$s.StrandChange,TypeChange:Vs.TypeChange,UserChange:Ks.UserChange,AddRefSeqAliasesChange:Cs.AddRefSeqAliasesChange},t.__exportStar(ar,e),t.__exportStar(gs,e),t.__exportStar(Dr,e),t.__exportStar(vs,e),t.__exportStar(Es,e),t.__exportStar(Is,e),t.__exportStar(bs,e),t.__exportStar(Fs,e),t.__exportStar(Ds,e),t.__exportStar(Ps,e),t.__exportStar(Us,e),t.__exportStar(Gs,e),t.__exportStar($s,e),t.__exportStar(Vs,e),t.__exportStar(Ks,e),t.__exportStar(Cs,e)}(rr);var Zs={},Xs={};Object.defineProperty(Xs,"__esModule",{value:!0}),Xs.GetAssembliesOperation=void 0;var Qs=function(e){ae(r,e);var t,n=de(r);function r(){var e;ee(this,r);for(var t=arguments.length,a=new Array(t),i=0;i<t;i++)a[i]=arguments[i];return re(ue(e=n.call.apply(n,[this].concat(a))),"typeName","GetAssembliesOperation"),e}return ne(r,[{key:"toJSON",value:function(){return{typeName:this.typeName}}},{key:"executeOnServer",value:function(e){return e.assemblyModel.find({status:0}).exec()}},{key:"executeOnLocalGFF3",value:(t=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})}]),r}(or.Operation);Xs.GetAssembliesOperation=Qs;var el={};Object.defineProperty(el,"__esModule",{value:!0}),el.GetFeaturesOperation=void 0;var tl=function(e){ae(r,e);var t,n=de(r);function r(e,t){var a;return ee(this,r),re(ue(a=n.call(this,e,t)),"typeName","GetFeaturesOperation"),re(ue(a),"refSeq",void 0),re(ue(a),"start",void 0),re(ue(a),"end",void 0),a.refSeq=e.refSeq,a.start=e.start,a.end=e.end,a}return ne(r,[{key:"toJSON",value:function(){return{typeName:this.typeName,refSeq:this.refSeq,start:this.start,end:this.end}}},{key:"executeOnServer",value:function(e){return e.featureModel.find({refSeq:this.refSeq,min:{$lte:this.end},max:{$gte:this.start},status:0}).exec()}},{key:"executeOnLocalGFF3",value:(t=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})}]),r}(or.Operation);el.GetFeaturesOperation=tl,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.operations=void 0;var t=et;e.operations={GetAssembliesOperation:Xs.GetAssembliesOperation,GetFeaturesOperation:el.GetFeaturesOperation},t.__exportStar(Xs,e),t.__exportStar(el,e)}(Zs);var nl={},rl={};Object.defineProperty(rl,"__esModule",{value:!0}),rl.Validation=void 0,rl.isContext=function(e){return void 0!==e.context&&void 0!==e.reflector};var al=function(){function e(){ee(this,e)}var t,n,r,a,i;return ne(e,[{key:"frontendPreValidate",value:(i=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"frontendPostValidate",value:(a=Q(Y().mark((function e(t,n){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e,t){return a.apply(this,arguments)})},{key:"backendPreValidate",value:(r=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"backendPostValidate",value:(n=Q(Y().mark((function e(t,n){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"possibleValues",value:(t=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",void 0);case 1:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})}]),e}();rl.Validation=al;var il={};Object.defineProperty(il,"__esModule",{value:!0}),il.validationRegistry=il.ValidationSet=il.ValidationResultSet=void 0;var ol=function(){function e(){ee(this,e),re(this,"results",[]),re(this,"ok",!0)}return ne(e,[{key:"resultsMessages",get:function(){return this.results.map((function(e){var t;return null===(t=e.error)||void 0===t?void 0:t.message})).filter(Boolean).join(", ")}},{key:"add",value:function(e){this.results.push(e),e.error&&(this.ok=!1)}}]),e}();il.ValidationResultSet=ol;var sl=function(){function e(){ee(this,e),re(this,"validations",new Set)}var t,n,r,a,i;return ne(e,[{key:"registerValidation",value:function(e){this.validations.add(e)}},{key:"frontendPreValidate",value:(i=Q(Y().mark((function e(t){var n,r,a,i,o;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=new ol,r=we(this.validations),e.prev=2,r.s();case 4:if((a=r.n()).done){e.next=14;break}return i=a.value,e.next=8,i.frontendPreValidate(t);case 8:if(n.add(o=e.sent),!o.error){e.next=12;break}return e.abrupt("break",14);case 12:e.next=4;break;case 14:e.next=19;break;case 16:e.prev=16,e.t0=e.catch(2),r.e(e.t0);case 19:return e.prev=19,r.f(),e.finish(19);case 22:return e.abrupt("return",n);case 23:case"end":return e.stop()}}),e,this,[[2,16,19,22]])}))),function(e){return i.apply(this,arguments)})},{key:"frontendPostValidate",value:(a=Q(Y().mark((function e(t,n){var r,a,i,o,s;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=new ol,a=we(this.validations),e.prev=2,a.s();case 4:if((i=a.n()).done){e.next=14;break}return o=i.value,e.next=8,o.frontendPostValidate(t,n);case 8:if(r.add(s=e.sent),!s.error){e.next=12;break}return e.abrupt("break",14);case 12:e.next=4;break;case 14:e.next=19;break;case 16:e.prev=16,e.t0=e.catch(2),a.e(e.t0);case 19:return e.prev=19,a.f(),e.finish(19);case 22:return e.abrupt("return",r);case 23:case"end":return e.stop()}}),e,this,[[2,16,19,22]])}))),function(e,t){return a.apply(this,arguments)})},{key:"backendPreValidate",value:(r=Q(Y().mark((function e(t){var n,r,a,i,o;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=new ol,r=we(this.validations),e.prev=2,r.s();case 4:if((a=r.n()).done){e.next=14;break}return i=a.value,e.next=8,i.backendPreValidate(t);case 8:if(n.add(o=e.sent),!o.error){e.next=12;break}return e.abrupt("break",14);case 12:e.next=4;break;case 14:e.next=19;break;case 16:e.prev=16,e.t0=e.catch(2),r.e(e.t0);case 19:return e.prev=19,r.f(),e.finish(19);case 22:return e.abrupt("return",n);case 23:case"end":return e.stop()}}),e,this,[[2,16,19,22]])}))),function(e){return r.apply(this,arguments)})},{key:"backendPostValidate",value:(n=Q(Y().mark((function e(t,n){var r,a,i,o,s,l,c;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=n.featureModel,a=n.session,i=new ol,o=we(this.validations),e.prev=3,o.s();case 5:if((s=o.n()).done){e.next=15;break}return l=s.value,e.next=9,l.backendPostValidate(t,{featureModel:r,session:a});case 9:if(i.add(c=e.sent),!c.error){e.next=13;break}return e.abrupt("break",15);case 13:e.next=5;break;case 15:e.next=20;break;case 17:e.prev=17,e.t0=e.catch(3),o.e(e.t0);case 20:return e.prev=20,o.f(),e.finish(20);case 23:return e.abrupt("return",i);case 24:case"end":return e.stop()}}),e,this,[[3,17,20,23]])}))),function(e,t){return n.apply(this,arguments)})},{key:"possibleValues",value:(t=Q(Y().mark((function e(t){var n,r,a,i;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=we(this.validations),e.prev=1,n.s();case 3:if((r=n.n()).done){e.next=12;break}return a=r.value,e.next=7,a.possibleValues(t);case 7:if(!(i=e.sent)){e.next=10;break}return e.abrupt("return",i);case 10:e.next=3;break;case 12:e.next=17;break;case 14:e.prev=14,e.t0=e.catch(1),n.e(e.t0);case 17:return e.prev=17,n.f(),e.finish(17);case 20:return e.abrupt("return");case 21:case"end":return e.stop()}}),e,this,[[1,14,17,20]])}))),function(e){return t.apply(this,arguments)})}]),e}();il.ValidationSet=sl,il.validationRegistry=new sl;var ll={},cl={};Object.defineProperty(cl,"__esModule",{value:!0}),cl.default=["2A_self_cleaving_peptide_region","4_methylcytosine","5S_SINE_retrotransposon","5_carboxylcytosine","5_formylcytosine","5_hydroxymethylcytosine","5_methylcytosine","7SL_SINE_retrotransposon","8_oxoadenine","8_oxoguanine","AACCCT_box","AFLP_fragment","AP_1_binding_site","ARIA","ARRET","ARS","ARS_consensus_sequence","ASPE_primer","AUG_initiated_uORF","AU_rich_element","A_box","A_box_type_1","A_box_type_2","A_minor_RNA_motif","A_to_C_transversion","A_to_G_transition","A_to_T_transversion","Ace2_UAS","Alu_deletion","Alu_insertion","BAC","BAC_cloned_genomic_insert","BAC_end","BAC_read_contig","BREd_motif","BREu_motif","B_box","Bel_Pao_LTR_retrotransposon","Bruno_response_element","C-D_H_ACA_box_scaRNA","C-D_H_ACA_box_scaRNA_gene","CAAT_signal","CAAX_box","CACTA_TIR_transposon","CAGE_cluster","CAGE_tag","CArG_box","CCAAT_motif","CCA_tail","CDRE_motif","CDS","CDS_extension","CDS_five_prime_extension","CDS_fragment","CDS_independently_known","CDS_predicted","CDS_region","CDS_supported_by_EST_or_cDNA_data","CDS_supported_by_domain_match_data","CDS_supported_by_peptide_spectrum_match","CDS_supported_by_sequence_similarity_data","CDS_three_prime_extension","CRE","CRISPR","CSL_response_element","CTCF_binding_site","CTG_start_codon","C_D_box_scaRNA","C_D_box_scaRNA_gene","C_D_box_snoRNA","C_D_box_snoRNA_gene","C_D_box_snoRNA_primary_transcript","C_box","C_cluster","C_gene_segment","C_region","C_to_A_transversion","C_to_G_transversion","C_to_T_transition","C_to_T_transition_at_pCpG_site","ChIP_seq_region","Copia_LTR_retrotransposon","CpG_island","Crick_strand","Crypton_YR_transposon","CsrB_RsmB_RNA","CuRE","DArT_marker","DCE","DCE_SI","DCE_SII","DCE_SIII","DDB_box","DHU_loop","DIRS_YR_retrotransposon","DJ_C_cluster","DJ_J_C_cluster","DJ_J_cluster","DJ_gene_segment","DMv1_motif","DMv2_motif","DMv3_motif","DMv4_motif","DMv5_motif","DNA_aptamer","DNA_binding_site","DNA_chromosome","DNA_constraint_sequence","DNA_loop","DNA_loop_anchor","DNA_motif","DNA_sequence_secondary_structure","DNA_transposon","DNAzyme","DNaseI_hypersensitive_site","DPE1_motif","DPE_motif","DRE","DRE_motif","DSR_motif","D_DJ_C_cluster","D_DJ_J_C_cluster","D_DJ_J_cluster","D_DJ_cluster","D_J_C_cluster","D_J_cluster","D_cluster","D_gene_recombination_feature","D_gene_segment","D_loop","DsrA_RNA","ER_retention_signal","EST","EST_match","E_box_motif","Endogenous_Retrovirus_LTR_retrotransposon","FLEX_element","FRE","FRT_site","GAGA_motif","GATA_box","GC_rich_promoter_region","GNA_oligo","GTT_trinucleotide_repeat","GT_dinucleotide_repeat","G_box","G_quartet","G_to_A_transition","G_to_C_transversion","G_to_T_transversion","GcvB_RNA","Gypsy_LTR_retrotransposon","H2AK5_acetylation_site","H2AK9_acetylation_site","H2AZK11_acetylation_site","H2AZK13_acetylation_site","H2AZK15_acetylation_site","H2AZK4_acetylation_site","H2AZK7_acetylation_site","H2BK120_acetylation_site","H2BK12_acetylation_site","H2BK15_acetylation_site","H2BK20_acetylation_site","H2BK5_acetylation_site","H2BK5_monomethylation_site","H2B_ubiquitination_site","H3K14_acetylation_site","H3K18_acetylation_site","H3K20_trimethylation_site","H3K23_acetylation_site","H3K23_dimethylation_site","H3K27_acetylation_site","H3K27_dimethylation_site","H3K27_methylation_site","H3K27_monomethylation_site","H3K27_trimethylation_site","H3K36_acetylation_site","H3K36_dimethylation_site","H3K36_methylation_site","H3K36_monomethylation_site","H3K36_trimethylation_site","H3K4_acetylation_site","H3K4_dimethylation_site","H3K4_methylation_site","H3K4_monomethylation_site","H3K4_trimethylation","H3K56_acetylation_site","H3K79_dimethylation_site","H3K79_methylation_site","H3K79_monomethylation_site","H3K79_trimethylation_site","H3K9_acetylation_site","H3K9_dimethylation_site","H3K9_methylation_site","H3K9_monomethylation_site","H3K9_trimethylation_site","H3R2_dimethylation_site","H3R2_monomethylation_site","H4K12_acetylation_site","H4K16_acetylation_site","H4K20_monomethylation_site","H4K4_trimethylation_site","H4K5_acetylation_site","H4K8_acetylation_site","H4K91_acetylation_site","H4K_acylation_region","H4R3_dimethylation_site","HERV_deletion","HERV_insertion","HSE","H_ACA_box_scaRNA","H_ACA_box_scaRNA_gene","H_ACA_box_snoRNA","H_ACA_box_snoRNA_gene","H_ACA_box_snoRNA_primary_transcript","H_pseudoknot","Hoogsteen_base_pair","I-box","IG_C_gene","IG_C_pseudogene","IG_D_gene","IG_J_gene","IG_J_pseudogene","IG_V_gene","IG_V_pseudogene","INR1_motif","INR_motif","IRLinv_site","IRRinv_site","ISRE","I_LINE_retrotransposon","J_C_cluster","J_cluster","J_gene_recombination_feature","J_gene_segment","J_heptamer","J_nonamer","J_spacer","Jockey_LINE_retrotransposon","KEN_box","K_turn_RNA_motif","L1_LINE_retrotransposon","LARD","LINE1_deletion","LINE1_insertion","LINE_element","LNA_oligo","LOZ1_response_element","LTR_component","LTR_retrotransposon","L_box","MCB","MITE","MNP","MNV","MNV_artifact","MTE","Mat2P","Mat3M","Merlin_TIR_transposon","MicF_RNA","Mutator_TIR_transposon","N2_2_prime_O_dimethylguanosine","N2_7_2prirme_O_trimethylguanosine","N2_7_dimethylguanosine","N2_N2_2_prime_O_trimethylguanosine","N2_N2_7_trimethylguanosine","N2_N2_dimethylguanosine","N2_methylguanosine","N4_2_prime_O_dimethylcytidine","N4_N4_2_prime_O_trimethylcytidine","N4_acetyl_2_prime_O_methylcytidine","N4_acetylcytidine","N4_methylcytidine","N6_2_prime_O_dimethyladenosine","N6_N6_2_prime_O_trimethyladenosine","N6_N6_dimethyladenosine","N6_acetyladenosine","N6_cis_hydroxyisopentenyl_adenosine","N6_glycinylcarbamoyladenosine","N6_hydroxynorvalylcarbamoyladenosine","N6_isopentenyladenosine","N6_methyl_N6_threonylcarbamoyladenosine","N6_methyladenine","N6_methyladenosine","N6_threonylcarbamoyladenosine","NDM2_motif","NDM3_motif","NMD_polymorphic_pseudogene_transcript","NMD_transcript","NSD_transcript","N_region","Ngaro_YR_retrotransposon","ORF","Okazaki_fragment","OxyS_RNA","PAC","PAC_end","PCB","PCR_product","PIF_Harbinger_TIR_transposon","PIP_box","PNA_oligo","PSE_motif","P_TIR_transposon","Penelope_retrotransposon","Phage_RNA_Polymerase_Promoter","Pho7_binding_site","QTL","R2_LINE_retrotransposon","RAPD","RFLP_fragment","RH_map","RNA_6S","RNA_7SK","RNA_7SK_gene","RNA_aptamer","RNA_chromosome","RNA_hook_turn","RNA_internal_loop","RNA_junction_loop","RNA_motif","RNA_polymerase_III_TATA_box","RNA_polymerase_II_TATA_box","RNA_sequence_secondary_structure","RNA_stability_element","RNA_thermometer","RNAi_reagent","RNApol_III_promoter","RNApol_III_promoter_type_1","RNApol_III_promoter_type_2","RNApol_III_promoter_type_3","RNApol_II_core_promoter","RNApol_II_promoter","RNApol_I_promoter","RNase_MRP_RNA","RNase_MRP_RNA_gene","RNase_P_RNA","RNase_P_RNA_gene","RRE_RNA","RR_tract","RST","RST_match","RTE_LINE_retrotransposon","R_GNA_oligo","R_LTR_region","R_five_prime_LTR_region","R_three_prime_LTR_region","Retrovirus_LTR_retrotransposon","Robertsonian_fusion","RprA_RNA","SAGE_tag","SECIS_element","SHP_box","SINE_element","SL10_acceptor_site","SL11_acceptor_site","SL12_acceptor_site","SL1_acceptor_site","SL2_acceptor_site","SL3_acceptor_site","SL4_acceptor_site","SL5_acceptor_site","SL6_acceptor_site","SL7_acceptor_site","SL8_acceptor_site","SL9_acceptor_site","SNP","SNV","SNV_artifact","SP6_RNA_Polymerase_Promoter","SRP_RNA","SRP_RNA_gene","SRP_RNA_primary_transcript","STREP_motif","STS","STS_map","SUMO_interaction_motif","SVA_deletion","SVA_insertion","S_GNA_oligo","S_region","Sap1_recognition_motif","Shine_Dalgarno_sequence","T3_RNA_Polymerase_Promoter","T7_RNA_Polymerase_Promoter","TATA_box","TCS_element","TCT_motif","TERRA","TFRS_collection","TFRS_module","TF_binding_site","TNA_oligo","TRIM","TR_C_Gene","TR_D_Gene","TR_J_Gene","TR_J_pseudogene","TR_V_Gene","TR_V_pseudogene","TR_box","TSS","T_cell_receptor_gene","T_cell_receptor_pseudogene","T_loop","T_to_A_transversion","T_to_C_transition","T_to_G_transversion","Tc1_Mariner_TIR_transposon","Transib_TIR_transposon","U11_snRNA","U12_intron","U12_snRNA","U14_snoRNA","U14_snoRNA_gene","U14_snoRNA_primary_transcript","U1_snRNA","U2_intron","U2_snRNA","U3_LTR_region","U3_five_prime_LTR_region","U3_snoRNA","U3_snoRNA_gene","U3_three_prime_LTR_region","U4_snRNA","U4atac_snRNA","U5_LTR_region","U5_five_prime_LTR_region","U5_snRNA","U5_three_prime_LTR_region","U6_snRNA","U6atac_snRNA","U7_snRNA","UAA_stop_codon_signal","UAG_stop_codon_signal","UGA_stop_codon_signal","UNAAAC_motif","UPD","UST","UST_match","UTR","UTR_intron","UTR_region","U_box","VDJ_C_cluster","VDJ_J_C_cluster","VDJ_J_cluster","VDJ_gene_segment","VD_gene_segment","VJ_C_cluster","VJ_J_C_cluster","VJ_J_cluster","VJ_gene_segment","V_DJ_C_cluster","V_DJ_J_C_cluster","V_DJ_J_cluster","V_DJ_cluster","V_D_DJ_C_cluster","V_D_DJ_J_C_cluster","V_D_DJ_J_cluster","V_D_DJ_cluster","V_D_J_C_cluster","V_D_J_cluster","V_J_C_cluster","V_J_cluster","V_VDJ_C_cluster","V_VDJ_J_C_cluster","V_VDJ_J_cluster","V_VDJ_cluster","V_VJ_C_cluster","V_VJ_J_C_cluster","V_VJ_J_cluster","V_VJ_cluster","V_cluster","V_gene_recombination_feature","V_gene_segment","V_heptamer","V_nonamer","V_region","V_spacer","Viper_YR_retrotransposon","WC_base_pair","W_region","Watson_strand","X_element","X_element_combinatorial_repeat","X_region","YAC","YAC_end","YR_retrotransposon","Y_RNA","Y_RNA_gene","Y_RNA_primary_transcript","Y_prime_element","Y_region","Z1_region","Z2_region","Zas1_recognition_motif","aberrant_processed_transcript","accessible_DNA_region","active_peptide","adaptive_island","alanine","alanine_tRNA_primary_transcript","alanyl_tRNA","allelic_pseudogene","allelic_pseudogenic_rRNA","allelic_pseudogenic_tRNA","allelically_excluded_gene","alpha_beta_motif","alpha_helix","alternate_sequence_site","alternatively_spliced_transcript","amber_stop_codon","ambisense_ssRNA_viral_sequence","amino_acid","amplification_origin","anchor_binding_site","anchor_region","androgen_response_element","anti_ARRET","anticodon","anticodon_loop","antiparallel_beta_strand","antisense_RNA","antisense_lncRNA","antisense_lncRNA_gene","antisense_primary_transcript","apicoplast_chromosome","apicoplast_gene","aptamer","archaeal_intron","archaeosine","arginine","arginine_tRNA_primary_transcript","arginyl_tRNA","asparagine","asparagine_tRNA_primary_transcript","asparaginyl_tRNA","aspartic_acid","aspartic_acid_tRNA_primary_transcript","aspartyl_tRNA","assembly","assembly_component","assembly_error_correction","asx_motif","asx_turn","asx_turn_left_handed_type_one","asx_turn_left_handed_type_two","asx_turn_right_handed_type_one","asx_turn_right_handed_type_two","asymmetric_RNA_internal_loop","attB_site","attC_site","attCtn_site","attI_site","attL_site","attP_site","attR_site","attenuator","autocatalytically_spliced_intron","bacterial_RNApol_promoter","bacterial_RNApol_promoter_sigma54_element","bacterial_RNApol_promoter_sigma_70_element","bacterial_RNApol_promoter_sigma_ecf_element","bacterial_terminator","base","base_call_error_correction","base_pair","beta_bulge","beta_bulge_loop","beta_bulge_loop_five","beta_bulge_loop_six","beta_strand","beta_turn","beta_turn_left_handed_type_one","beta_turn_left_handed_type_two","beta_turn_right_handed_type_one","beta_turn_right_handed_type_two","beta_turn_type_eight","beta_turn_type_six","beta_turn_type_six_a","beta_turn_type_six_a_one","beta_turn_type_six_a_two","beta_turn_type_six_b","bidirectional_promoter","bidirectional_promoter_lncRNA","binding_site","biochemical_region_of_peptide","biological_region","biomaterial_region","biosynthetic_gene_cluster","blocked_reading_frame","blunt_end_restriction_enzyme_cleavage_junction","blunt_end_restriction_enzyme_cleavage_site","boundary_element","branch_site","cDNA_clone","cDNA_match","c_terminal_region","candidate_gene","canonical_five_prime_splice_site","canonical_three_prime_splice_site","cap","capped_mRNA","capped_primary_transcript","cassette_pseudogene","catalytic_residue","catmat_left_handed_four","catmat_left_handed_three","catmat_right_handed_four","catmat_right_handed_three","central_hydrophobic_region_of_signal_peptide","centromere","centromere_DNA_Element_I","centromere_DNA_Element_II","centromere_DNA_Element_III","centromeric_repeat","chimeric_cDNA_clone","chloroplast_DNA_read","chloroplast_chromosome","chromatin_regulatory_region","chromoplast_chromosome","chromoplast_gene","chromosomal_regulatory_element","chromosomal_structural_element","chromosomal_translocation","chromosome","chromosome_arm","chromosome_band","chromosome_breakage_sequence","chromosome_breakpoint","chromosome_part","circular_double_stranded_DNA_chromosome","circular_double_stranded_RNA_chromosome","circular_mRNA","circular_ncRNA","circular_plasmid","circular_single_stranded_DNA_chromosome","circular_single_stranded_RNA_chromosome","cis_acting_homologous_chromosome_pairing_region","cis_regulatory_frameshift_element","cis_regulatory_module","cis_splice_site","class_II_RNA","class_I_RNA","cleaved_for_gpi_anchor_region","cleaved_initiator_methionine","cleaved_peptide_region","clip","clone","clone_end","clone_insert","clone_insert_end","clone_insert_start","cloned_cDNA_insert","cloned_genomic_insert","cloned_region","coding_conserved_region","coding_end","coding_exon","coding_region_of_exon","coding_start","coding_transcript_with_retained_intron","codon","coiled_coil","cointegrated_plasmid","common_fragile_site","complex_chromosomal_rearrangement","complex_operon","complex_regulon","complex_structural_alteration","complex_substitution","compositionally_biased_region_of_peptide","conformational_switch","conjugative_transposon","consensus_AFLP_fragment","consensus_gDNA","consensus_mRNA","consensus_region","conserved_region","constitutive_promoter","contig","contig_collection","contig_read","copy_number_gain","copy_number_loss","copy_number_variation","core_eukaryotic_promoter_element","core_prokaryotic_promoter_element","core_promoter_element","core_viral_promoter_element","cosmid","cross_genome_match","cryptic_gene","cryptic_promoter","cryptic_prophage","cryptic_splice_site","cryptogene","ct_gene","cyanelle_chromosome","cyanelle_gene","cyclic_translocation","cysteine","cysteine_tRNA_primary_transcript","cysteinyl_tRNA","cytoplasmic_polypeptide_region","cytosolic_16S_rRNA","cytosolic_18S_rRNA","cytosolic_23S_rRNA","cytosolic_25S_rRNA","cytosolic_28S_rRNA","cytosolic_2S_rRNA","cytosolic_5S_rRNA","cytosolic_5_8S_rRNA","cytosolic_LSU_rRNA","cytosolic_LSU_rRNA_gene","cytosolic_SSU_rRNA","cytosolic_SSU_rRNA_gene","cytosolic_rRNA","cytosolic_rRNA_16S_gene","cytosolic_rRNA_18S_gene","cytosolic_rRNA_23S_gene","cytosolic_rRNA_25S_gene","cytosolic_rRNA_28S_gene","cytosolic_rRNA_2S_gene","cytosolic_rRNA_5S_gene","cytosolic_rRNA_5_8S_gene","cytosolic_rRNA_gene","dCAPS_primer","databank_entry","decayed_exon","defective_conjugative_transposon","deficient_translocation","deletion","deletion_artifact","deletion_breakpoint","deletion_junction","delins","destruction_box","dg_repeat","dh_repeat","dicistronic_mRNA","dicistronic_primary_transcript","dicistronic_transcript","dif_site","dihydrouridine","dinucleotide_repeat_microsatellite_feature","direct_repeat","direct_tandem_duplication","disabled_reading_frame","dispersed_repeat","distal_duplication","distal_promoter_element","distant_three_prime_recoding_signal","double_stranded_DNA_chromosome","double_stranded_RNA_chromosome","ds_DNA_viral_sequence","ds_RNA_viral_sequence","ds_oligo","duplicated_pseudogene","duplication","duplication_artifact","dye_terminator_read","early_origin_of_replication","edited_CDS","edited_mRNA","edited_transcript","edited_transcript_by_A_to_I_substitution","edited_transcript_feature","editing_block","editing_domain","endogenous_retroviral_gene","endonuclease_spliced_intron","endosomal_localization_signal","engineered_episome","engineered_foreign_gene","engineered_foreign_region","engineered_foreign_repetitive_element","engineered_foreign_transposable_element","engineered_foreign_transposable_element_gene","engineered_fusion_gene","engineered_gene","engineered_insert","engineered_plasmid","engineered_region","engineered_rescue_region","engineered_tag","engineered_transposable_element","enhancer","enhancerRNA","enhancer_binding_site","enhancer_blocking_element","enhancer_bound_by_factor","enhancer_trap_construct","enzymatic_RNA","enzymatic_RNA_gene","epigenetically_modified_gene","epigenetically_modified_region","epigenomically_modified_region","episome","epitope","epoxyqueuosine","eukaryotic_promoter","eukaryotic_terminator","exemplar_mRNA","exon","exon_junction","exon_of_single_exon_gene","exon_region","exonic_splice_enhancer","exonic_splicing_silencer","experimental_feature","experimental_result_region","experimentally_defined_binding_region","expressed_sequence_assembly","expressed_sequence_match","extended_cis_splice_site","extended_intronic_splice_region","external_transcribed_spacer_region","extrachromosomal_mobile_genetic_element","extramembrane_polypeptide_region","fingerprint_map","five_aminomethyl_two_thiouridine","five_carbamoylmethyl_two_prime_O_methyluridine","five_carbamoylmethyluridine","five_carboxyhydroxymethyl_uridine","five_carboxyhydroxymethyl_uridine_methyl_ester","five_carboxymethylaminomethyl_two_prime_O_methyluridine","five_carboxymethylaminomethyl_two_thiouridine","five_carboxymethylaminomethyluridine","five_carboxymethyluridine","five_formyl_two_prime_O_methylcytidine","five_formylcytidine","five_hydroxymethylcytidine","five_hydroxyuridine","five_isopentenylaminomethyl_two_prime_O_methyluridine","five_isopentenylaminomethyl_two_thiouridine","five_isopentenylaminomethyl_uridine","five_methoxycarbonylmethyl_two_prime_O_methyluridine","five_methoxycarbonylmethyl_two_thiouridine","five_methoxycarbonylmethyluridine","five_methoxyuridine","five_methyl_2_thiouridine","five_methylaminomethyl_two_selenouridine","five_methylaminomethyl_two_thiouridine","five_methylaminomethyluridine","five_methylcytidine","five_methyldihydrouridine","five_methyluridine","five_prime_D_heptamer","five_prime_D_nonamer","five_prime_D_recombination_signal_sequence","five_prime_D_spacer","five_prime_EST","five_prime_LTR","five_prime_LTR_component","five_prime_RST","five_prime_UST","five_prime_UTR","five_prime_UTR_intron","five_prime_cis_splice_site","five_prime_clip","five_prime_coding_exon","five_prime_coding_exon_coding_region","five_prime_coding_exon_noncoding_region","five_prime_flanking_region","five_prime_intron","five_prime_noncoding_exon","five_prime_open_reading_frame","five_prime_recoding_site","five_prime_restriction_enzyme_junction","five_prime_sticky_end_restriction_enzyme_cleavage_site","five_prime_terminal_inverted_repeat","five_taurinomethyl_two_thiouridine","five_taurinomethyluridine","five_two_prime_O_dimethylcytidine","five_two_prime_O_dimethyluridine","flanking_region","flanking_repeat","flanking_three_prime_quadruplet_recoding_signal","floxed_gene","foldback_element","foreign_gene","foreign_transposable_element","forkhead_motif","forward_primer","fosmid","four_bp_start_codon","four_demethylwyosine","four_thiouridine","fragile_site","fragment_assembly","functional_candidate_gene","functional_gene_region","fusion_gene","gRNA_gene","galactosyl_queuosine","gamma_turn","gamma_turn_classic","gamma_turn_inverse","gap","gene","gene_array","gene_cassette","gene_cassette_array","gene_component_region","gene_fragment","gene_group","gene_member_region","gene_rearranged_at_DNA_level","gene_segment","gene_silenced_by_DNA_methylation","gene_silenced_by_DNA_modification","gene_silenced_by_RNA_interference","gene_silenced_by_histone_deacetylation","gene_silenced_by_histone_methylation","gene_silenced_by_histone_modification","gene_subarray","gene_trap_construct","gene_with_dicistronic_mRNA","gene_with_dicistronic_primary_transcript","gene_with_dicistronic_transcript","gene_with_edited_transcript","gene_with_mRNA_recoded_by_translational_bypass","gene_with_mRNA_with_frameshift","gene_with_non_canonical_start_codon","gene_with_polyadenylated_mRNA","gene_with_polycistronic_transcript","gene_with_recoded_mRNA","gene_with_start_codon_CUG","gene_with_stop_codon_read_through","gene_with_stop_codon_redefined_as_pyrrolysine","gene_with_stop_codon_redefined_as_selenocysteine","gene_with_trans_spliced_transcript","gene_with_transcript_with_translational_frameshift","genetic_marker","genomic_DNA_contig","genomic_DNA_read","genomic_clone","genomic_island","genomically_contaminated_cDNA_clone","glutamic_acid","glutamic_acid_tRNA_primary_transcript","glutamine","glutamine_tRNA_primary_transcript","glutaminyl_tRNA","glutamyl_tRNA","glycine","glycine_tRNA_primary_transcript","glycyl_tRNA","golden_path","golden_path_fragment","group_1_intron_homing_endonuclease_target_region","group_IIA_intron","group_IIB_intron","group_IIC_intron","group_III_intron","group_II_intron","group_I_intron","guide_RNA","guide_RNA_region","hAT_TIR_transposon","hammerhead_ribozyme","haplotype_block","helitron","helix_turn_helix","heptamer_of_recombination_feature_of_vertebrate_immune_system_gene","heritable_phenotypic_marker","high_identity_region","histidine","histidine_tRNA_primary_transcript","histidyl_tRNA","histone_2AZ_acetylation_site","histone_2A_acetylation_site","histone_2B_acetylation_site","histone_3_acetylation_site","histone_4_acetylation_site","histone_acetylation_site","histone_acylation_region","histone_binding_site","histone_methylation_site","histone_modification","histone_ubiqitination_site","homing_endonuclease_binding_site","homol_D_box","homol_E_box","homologous_chromosome_recognition_and_pairing_locus","homologous_region","hpRNA","hpRNA_gene","hydrophobic_region_of_peptide","hydroxywybutosine","iDNA","i_motif","immature_peptide_region","immunoglobulin_gene","immunoglobulin_pseudogene","immunoglobulin_region","imprinting_control_region","indel_artifact","inducible_promoter","inert_DNA_spacer","inosine","insertion","insertion_artifact","insertion_breakpoint","insertion_sequence","insertion_site","insulator","insulator_binding_site","integrated_mobile_genetic_element","integrated_plasmid","integration_excision_site","integron","intein","intein_encoding_region","interband","interchromosomal_breakpoint","interchromosomal_translocation","intergenic_region","interior_coding_exon","interior_exon","interior_intron","intermediate_element","internal_Shine_Dalgarno_sequence","internal_UTR","internal_eliminated_sequence","internal_guide_sequence","internal_ribosome_entry_site","internal_transcribed_spacer_region","intrachromosomal_breakpoint","intrachromosomal_translocation","intramembrane_polypeptide_region","intrinsically_unstructured_polypeptide_region","introgressed_chromosome_region","intron","intron_base_5","intron_domain","intronic_regulatory_region","intronic_splice_enhancer","intronic_splicing_silencer","invalidated_cDNA_clone","inversion","inversion_breakpoint","inversion_cum_translocation","inversion_site","inversion_site_part","inverted_intrachromosomal_transposition","inverted_repeat","inverted_tandem_duplication","iron_repressed_GATA_element","iron_responsive_element","isoleucine","isoleucine_tRNA_primary_transcript","isoleucyl_tRNA","isomiR","isowyosine","junction","kinetoplast_gene","knob","kozak_sequence","lambda_vector","lariat_intron","late_origin_of_replication","left_handed_peptide_helix","leucine","leucine_tRNA_primary_transcript","leucoplast_chromosome","leucoplast_gene","leucyl_tRNA","ligand_binding_site","ligation_based_read","lincRNA","lincRNA_gene","linear_double_stranded_DNA_chromosome","linear_double_stranded_RNA_chromosome","linear_plasmid","linear_single_stranded_DNA_chromosome","linear_single_stranded_RNA_chromosome","linkage_group","lipoprotein_signal_peptide","lncRNA","lncRNA_gene","lncRNA_primary_transcript","lncRNA_with_retained_intron","loR","locus_control_region","long_terminal_repeat","long_terminal_repeat_transcript","loop","low_complexity_region","loxP_site","lysidine","lysine","lysine_tRNA_primary_transcript","lysosomal_localization_signal","lysyl_tRNA","mRNA","mRNA_contig","mRNA_read","mRNA_recoded_by_codon_redefinition","mRNA_recoded_by_translational_bypass","mRNA_region","mRNA_with_frameshift","mRNA_with_minus_1_frameshift","mRNA_with_minus_2_frameshift","mRNA_with_plus_1_frameshift","mRNA_with_plus_2_frameshift","macronuclear_chromosome","macronucleus_destined_segment","major_TSS","mannosyl_queuosine","match","match_part","maternal_uniparental_disomy","maternally_imprinted_gene","mathematically_defined_repeat","mating_type_M_box","mating_type_region","mating_type_region_motif","mating_type_region_replication_fork_barrier","matrix_attachment_site","mature_protein_region","mature_protein_region_of_CDS","mature_transcript","mature_transcript_region","maxicircle","maxicircle_gene","meiotic_recombination_region","membrane_peptide_loop","membrane_structure","metabolic_island","metal_binding_site","methionine","methionine_tRNA_primary_transcript","methionyl_tRNA","methylated_DNA_base_feature","methylated_adenine","methylated_cytosine","methylation_guide_snoRNA","methylation_guide_snoRNA_gene","methylation_guide_snoRNA_primary_transcript","methylinosine","methylwyosine","miRNA","miRNA_antiguide","miRNA_gene","miRNA_loop","miRNA_primary_transcript","miRNA_primary_transcript_region","miRNA_stem","miRNA_target_site","miR_encoding_Y_RNA_primary_transcript","miR_encoding_lncRNA_primary_transcript","miR_encoding_shRNA_primary_transcript","miR_encoding_snoRNA_primary_transcript","miR_encoding_tRNA_primary_transcript","miR_encoding_vaultRNA_primary_transcript","miRtron","microarray_oligo","micronuclear_chromosome","microsatellite","mini_exon_donor_RNA","mini_gene","minicircle","minicircle_gene","minisatellite","minor_TSS","minus_10_signal","minus_12_signal","minus_1_translational_frameshift","minus_24_signal","minus_2_translational_frameshift","minus_35_signal","mitochondrial_DNA_read","mitochondrial_D_loop","mitochondrial_chromosome","mitochondrial_contig","mitochondrial_control_region","mitochondrial_supercontig","mitochondrial_targeting_signal","mitotic_recombination_region","moR","mobile_element_deletion","mobile_element_insertion","mobile_genetic_element","mobile_intron","modified_DNA_base","modified_L_alanine","modified_L_arginine","modified_L_asparagine","modified_L_aspartic_acid","modified_L_cysteine","modified_L_glutamic_acid","modified_L_glutamine","modified_L_histidine","modified_L_isoleucine","modified_L_leucine","modified_L_lysine","modified_L_methionine","modified_L_phenylalanine","modified_L_proline","modified_L_selenocysteine","modified_L_serine","modified_L_threonine","modified_L_tryptophan","modified_L_tyrosine","modified_L_valine","modified_RNA_base_feature","modified_adenine","modified_adenosine","modified_amino_acid_feature","modified_cytidine","modified_cytosine","modified_glycine","modified_guanine","modified_guanosine","modified_inosine","modified_uridine","molecular_contact_region","monocistronic_mRNA","monocistronic_primary_transcript","monocistronic_transcript","monomeric_repeat","morpholino_oligo","mt_LSU_rRNA","mt_LSU_rRNA_gene","mt_SSU_rRNA","mt_SSU_rRNA_gene","mt_gene","mt_rRNA","mt_rRNA_gene","mt_tRNA","multiplexing_sequence_identifier","mutated_variant_site","mutational_hotspot","n_terminal_region","natural_plasmid","natural_transposable_element","natural_variant_site","ncRNA","ncRNA_gene","nc_conserved_region","nc_primary_transcript","negative_sense_ssRNA_viral_sequence","negatively_autoregulated_gene","nested_repeat","nested_tandem_repeat","nested_transposon","no_output","no_sequence_alteration","non_AUG_initiated_uORF","non_LTR_retrotransposon","non_LTR_retrotransposon_polymeric_tract","non_adjacent_residues","non_allelic_homologous_recombination_region","non_canonical_five_prime_splice_site","non_canonical_start_codon","non_canonical_three_prime_splice_site","non_complimentary_stem","non_cytoplasmic_polypeptide_region","non_processed_pseudogene","non_terminal_residue","non_transcribed_region","nonamer_of_recombination_feature_of_vertebrate_immune_system_gene","noncoding_exon","noncoding_region_of_exon","novel_sequence_insertion","nuclear_chromosome","nuclear_export_signal","nuclear_gene","nuclear_localization_signal","nuclear_mt_pseudogene","nuclear_rim_localization_signal","nuclease_binding_site","nuclease_hypersensitive_site","nuclease_sensitive_site","nucleomorph_gene","nucleomorphic_chromosome","nucleotide_binding_site","nucleotide_cleavage_site","nucleotide_match","nucleotide_motif","nucleotide_to_protein_binding_site","ochre_stop_codon","octamer_motif","oligo","oligo_U_tail","one_methyl_three_three_amino_three_carboxypropyl_pseudouridine","one_methyladenosine","one_methylguanosine","one_methylinosine","one_methylpseudouridine","one_two_prime_O_dimethyladenosine","one_two_prime_O_dimethylguanosine","one_two_prime_O_dimethylinosine","opal_stop_codon","open_chromatin_region","operator","operon","oriC","oriT","oriV","origin_of_replication","orphan_CDS","orthologous_region","outron","overlapping_EST_set","overlapping_feature_set","paired_end_fragment","parallel_beta_strand","paralogous_region","partial_genomic_sequence_assembly","partially_processed_cDNA_clone","paternal_uniparental_disomy","paternally_imprinted_gene","pathogenic_island","peptide_coil","peptide_helix","peptide_localization_signal","peroxywybutosine","phage_sequence","phagemid","phenylalanine","phenylalanine_tRNA_primary_transcript","phenylalanyl_tRNA","pheromone_response_element","phosphorylation_site","piRNA","piRNA_gene","pi_helix","piggyBac_TIR_transposon","plasmid","plasmid_gene","plasmid_vector","plastid_LSU_rRNA","plastid_LSU_rRNA_gene","plastid_SSU_rRNA","plastid_SSU_rRNA_gene","plastid_gene","plastid_rRNA","plastid_rRNA_gene","plus_1_translational_frameshift","plus_2_translational_frameshift","point_centromere","point_mutation","polinton","polyA_primed_cDNA_clone","polyA_sequence","polyA_signal_sequence","polyA_site","polyA_site_cluster","polyadenylated_mRNA","polycistronic_mRNA","polycistronic_primary_transcript","polycistronic_transcript","polymerase_synthesis_read","polymorphic_pseudogene","polymorphic_pseudogene_processed_transcript","polymorphic_pseudogene_with_retained_intron","polypeptide","polypeptide_DNA_contact","polypeptide_binding_motif","polypeptide_calcium_ion_contact_site","polypeptide_catalytic_motif","polypeptide_cobalt_ion_contact_site","polypeptide_conserved_motif","polypeptide_conserved_region","polypeptide_copper_ion_contact_site","polypeptide_domain","polypeptide_iron_ion_contact_site","polypeptide_ligand_contact","polypeptide_magnesium_ion_contact_site","polypeptide_manganese_ion_contact_site","polypeptide_metal_contact","polypeptide_molybdenum_ion_contact_site","polypeptide_motif","polypeptide_nest_left_right_motif","polypeptide_nest_motif","polypeptide_nest_right_left_motif","polypeptide_nickel_ion_contact_site","polypeptide_region","polypeptide_repeat","polypeptide_secondary_structure","polypeptide_sequencing_information","polypeptide_structural_motif","polypeptide_structural_region","polypeptide_tungsten_ion_contact_site","polypeptide_turn_motif","polypeptide_variation_site","polypeptide_zinc_ion_contact_site","polypyrimidine_tract","positional_candidate_gene","positive_sense_ssRNA_viral_sequence","positively_autoregulated_gene","possible_assembly_error","possible_base_call_error","post_translationally_modified_region","post_translationally_regulated_gene","pre_edited_mRNA","pre_edited_region","pre_miRNA","predicted_gene","predicted_transcript","presence_absence_variation","priRNA","primary_transcript","primary_transcript_region","primer","primer_binding_site","primer_match","probe","processed_pseudogene","processed_pseudogenic_rRNA","processed_pseudogenic_tRNA","processed_transcript","prokaryotic_promoter","proline","proline_tRNA_primary_transcript","prolyl_tRNA","promoter","promoter_element","promoter_flanking_region","promoter_targeting_sequence","promoter_trap_construct","propeptide","propeptide_cleavage_site","propeptide_region_of_CDS","prophage","proplastid_gene","protease_site","protein_binding_site","protein_coding_gene","protein_coding_primary_transcript","protein_hmm_match","protein_match","protein_protein_contact","protein_stability_element","proviral_gene","proviral_region","proximal_promoter_element","pseudogene","pseudogene_by_unequal_crossing_over","pseudogene_processed_transcript","pseudogenic_CDS","pseudogenic_exon","pseudogenic_gene_segment","pseudogenic_rRNA","pseudogenic_region","pseudogenic_tRNA","pseudogenic_transcript","pseudogenic_transcript_with_retained_intron","pseudoknot","pseudouridine","pseudouridylation_guide_snoRNA","pseudouridylation_guide_snoRNA_gene","pumilio_response_element","purine_to_pyrimidine_transversion","purine_transition","pyrimidine_to_purine_transversion","pyrimidine_transition","pyrosequenced_read","pyrrolysine","pyrrolysine_tRNA_primary_transcript","pyrrolysyl_tRNA","queuosine","rDNA_intergenic_spacer_element","rDNA_replication_fork_barrier","rRNA","rRNA_21S_gene","rRNA_cleavage_RNA","rRNA_cleavage_snoRNA_primary_transcript","rRNA_gene","rRNA_large_subunit_primary_transcript","rRNA_primary_transcript","rRNA_primary_transcript_region","rRNA_small_subunit_primary_transcript","rare_fragile_site","rasiRNA","read","read_pair","reading_frame","reagent","rearrangement_region","reciprocal_chromosomal_translocation","recoded_codon","recoded_mRNA","recoding_pseudoknot","recoding_stimulatory_region","recombination_enhancer","recombination_feature","recombination_feature_of_rearranged_gene","recombination_hotspot","recombination_regulatory_region","recombination_signal_sequence","recombinationally_inverted_gene","recombinationally_rearranged_gene","recombinationally_rearranged_vertebrate_immune_system_gene","recursive_splice_site","ref_miRNA","region","regional_centromere","regional_centromere_central_core","regional_centromere_inner_repeat_region","regional_centromere_outer_repeat_region","regional_centromere_outer_repeat_transcript","regulatory_promoter_element","regulatory_region","regulon","remark","repeat_component","repeat_fragment","repeat_instability_region","repeat_region","repeat_unit","replication_regulatory_region","replication_start_site","replicon","rescue_gene","rescue_mini_gene","rescue_region","resolution_site","response_element","restriction_enzyme_assembly_scar","restriction_enzyme_binding_site","restriction_enzyme_cleavage_junction","restriction_enzyme_five_prime_single_strand_overhang","restriction_enzyme_recognition_site","restriction_enzyme_region","restriction_enzyme_single_strand_overhang","restriction_enzyme_three_prime_single_strand_overhang","restriction_fragment","retinoic_acid_responsive_element","retrogene","retron","retrotransposon","reverse_Hoogsteen_base_pair","reverse_primer","rho_dependent_bacterial_terminator","rho_independent_bacterial_terminator","ribonuclease_site","ribosome_entry_site","riboswitch","ribothymidine","ribozyme","ribozyme_gene","right_handed_peptide_helix","sORF","sarcin_like_RNA_motif","satellite_DNA","sbRNA","sbRNA_gene","scRNA","scRNA_gene","scRNA_primary_transcript","scaRNA","scaRNA_gene","schellmann_loop","schellmann_loop_seven","schellmann_loop_six","selection_marker","selenocysteine","selenocysteine_tRNA_primary_transcript","selenocysteinyl_tRNA","self_cleaving_ribozyme","sense_intronic_ncRNA","sense_intronic_ncRNA_gene","sense_overlap_ncRNA","sense_overlap_ncRNA_gene","sequence_alteration","sequence_alteration_artifact","sequence_assembly","sequence_comparison","sequence_conflict","sequence_difference","sequence_feature","sequence_length_alteration","sequence_motif","sequence_rearrangement_feature","sequence_secondary_structure","sequence_uncertainty","sequencing_primer","serine","serine_tRNA_primary_transcript","serine_threonine_motif","serine_threonine_staple_motif","serine_threonine_turn","seryl_tRNA","seven_aminomethyl_seven_deazaguanosine","seven_cyano_seven_deazaguanosine","seven_deazaguanosine","seven_methylguanine","seven_methylguanosine","sgRNA","shRNA","shRNA_primary_transcript","shadow_enhancer","short_tandem_repeat_variation","siRNA","signal_anchor","signal_peptide","signal_peptide_region_of_CDS","signature","silenced_gene","silencer","silent_mating_type_cassette_array","simple_operon","simple_regulon","simple_sequence_length_variation","single_strand_restriction_enzyme_cleavage_site","single_stranded_DNA_chromosome","single_stranded_RNA_chromosome","sisRNA","site_specific_recombination_target_region","smFISH_probe","small_regulatory_ncRNA","snRNA","snRNA_gene","snRNA_primary_transcript","sncRNA","sncRNA_gene","snoRNA","snoRNA_gene","snoRNA_primary_transcript","solo_LTR","sonicate_fragment","specific_recombination_site","splice_enhancer","splice_junction","splice_region","splice_site","spliced_leader_RNA","spliceosomal_intron","spliceosomal_intron_region","splicing_regulatory_region","spot_42_RNA","spurious_protein","ss_RNA_viral_sequence","ss_oligo","st_turn_left_handed_type_one","st_turn_left_handed_type_two","st_turn_right_handed_type_one","st_turn_right_handed_type_two","start_codon","stem","stem_loop","stem_loop_region","sterol_regulatory_element","sticky_end_restriction_enzyme_cleavage_site","stop_codon","stop_codon_read_through","stop_codon_redefined_as_pyrrolysine","stop_codon_redefined_as_selenocysteine","stop_codon_signal","structural_alteration","substitution","substitution_artifact","subtelomere","sugar_edge_base_pair","supercontig","symbiosis_island","symmetric_RNA_internal_loop","syntenic_region","synthetic_oligo","tRNA","tRNA_SINE_retrotransposon","tRNA_gene","tRNA_intron","tRNA_primary_transcript","tRNA_region","tag","tandem_duplication","tandem_repeat","target_site_duplication","targeting_vector","tasiRNA","tasiRNA_primary_transcript","teb1_recognition_motif","telomerase_RNA","telomerase_RNA_gene","telomere","telomeric_D_loop","telomeric_repeat","telomeric_transcript","template_region","terminal_inverted_repeat","terminal_inverted_repeat_element","terminal_repeat","terminator","terminator_of_type_2_RNApol_III_promoter","tetraloop","tetranucleotide_repeat_microsatellite_feature","three_methylcytidine","three_methylpseudouridine","three_methyluridine","three_prime_D_heptamer","three_prime_D_nonamer","three_prime_D_recombination_signal_sequence","three_prime_D_spacer","three_prime_EST","three_prime_LTR","three_prime_LTR_component","three_prime_RACE_clone","three_prime_RST","three_prime_UST","three_prime_UTR","three_prime_UTR_intron","three_prime_cis_splice_site","three_prime_clip","three_prime_coding_exon","three_prime_coding_exon_coding_region","three_prime_coding_exon_noncoding_region","three_prime_flanking_region","three_prime_intron","three_prime_noncoding_exon","three_prime_overlapping_ncrna","three_prime_recoding_site","three_prime_repeat_recoding_signal","three_prime_restriction_enzyme_junction","three_prime_stem_loop_structure","three_prime_sticky_end_restriction_enzyme_cleavage_site","three_prime_terminal_inverted_repeat","three_ten_helix","three_three_amino_three_carboxypropyl_uridine","three_two_prime_O_dimethyluridine","threonine","threonine_tRNA_primary_transcript","threonyl_tRNA","tiling_path","tiling_path_clone","tiling_path_fragment","tmRNA","tmRNA_acceptor_piece","tmRNA_coding_piece","tmRNA_gene","tmRNA_primary_transcript","tmRNA_region","tnaORF","topologically_associated_domain","topologically_associated_domain_boundary","topologically_defined_region","trans_splice_acceptor_site","trans_splice_donor_site","trans_splice_junction","trans_splice_site","trans_spliced_mRNA","trans_spliced_transcript","transcribed_cluster","transcribed_fragment","transcribed_processed_pseudogene","transcribed_spacer_region","transcribed_unitary_pseudogene","transcribed_unprocessed_pseudogene","transcript","transcript_bound_by_nucleic_acid","transcript_bound_by_protein","transcript_region","transcript_with_translational_frameshift","transcription_end_site","transcription_factor_regulatory_site","transcription_pause_site","transcription_start_cluster","transcription_termination_signal","transcription_unit","transcriptional_cis_regulatory_region","transgene","transgenic_insertion","transgenic_transposable_element","transit_peptide","transit_peptide_region_of_CDS","transition","translated_nucleotide_match","translated_processed_pseudogene","translated_unprocessed_pseudogene","translation_regulatory_region","translational_frameshift","translationally_regulated_gene","translocation","translocation_breakpoint","translocation_element","transmembrane_helix","transmembrane_polypeptide_region","transposable_element","transposable_element_CDS","transposable_element_flanking_region","transposable_element_gene","transposable_element_insertion_site","transposable_element_pseudogene","transposon_fragment","transversion","trinucleotide_repeat_microsatellite_feature","tryptophan","tryptophan_tRNA_primary_transcript","tryptophanyl_tRNA","twintron","two_methyladenosine","two_methylthio_N6_cis_hydroxyisopentenyl_adenosine","two_methylthio_N6_hydroxynorvalyl_carbamoyladenosine","two_methylthio_N6_isopentenyladenosine","two_methylthio_N6_methyladenosine","two_methylthio_N6_threonyl_carbamoyladenosine","two_prime_O_methyladenosine","two_prime_O_methylcytidine","two_prime_O_methylguanosine","two_prime_O_methylinosine","two_prime_O_methylpseudouridine","two_prime_O_methyluridine","two_prime_O_ribosyladenosine_phosphate","two_prime_O_ribosylguanosine_phosphate","two_thio_two_prime_O_methyluridine","two_thiocytidine","two_thiouridine","tyrosine","tyrosine_tRNA_primary_transcript","tyrosyl_tRNA","uORF","ultracontig","unassigned_supercontig","unconfirmed_transcript","undermodified_hydroxywybutosine","unedited_region","unigene_cluster","unit_of_gene_expression","unitary_pseudogene","unitary_pseudogenic_rRNA","unitary_pseudogenic_tRNA","unprocessed_pseudogenic_rRNA","unprocessed_pseudogenic_tRNA","unspecified_indel","untranslated_region_polycistronic_mRNA","upstream_AUG_codon","uridine_five_oxyacetic_acid","uridine_five_oxyacetic_acid_methyl_ester","vacuolar_sorting_signal","validated_cDNA_clone","valine","valine_tRNA_primary_transcript","valyl_tRNA","vaultRNA_primary_transcript","vault_RNA","vault_RNA_gene","vector_replicon","vertebrate_immune_system_gene","vertebrate_immune_system_gene_recombination_feature","vertebrate_immune_system_gene_recombination_signal_feature","vertebrate_immune_system_gene_recombination_spacer","vertebrate_immune_system_pseudogene","vertebrate_immunoglobulin_T_cell_receptor_gene_cluster","vertebrate_immunoglobulin_T_cell_receptor_rearranged_gene_cluster","vertebrate_immunoglobulin_T_cell_receptor_rearranged_segment","vertebrate_immunoglobulin_T_cell_receptor_segment","viral_promoter","viral_sequence","virtual_sequence","wild_type_rescue_gene","wobble_base_pair","wybutosine","wyosine","zinc_finger_binding_site","zinc_repressed_element"],Object.defineProperty(ll,"__esModule",{value:!0}),ll.CoreValidation=void 0,ll.isTypeChange=dl;var ul=et.__importDefault(cl);function dl(e){return"oldType"in e&&"newType"in e}var fl=function(e){ae(a,e);var t,n,r=de(a);function a(){var e;ee(this,a);for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return re(ue(e=r.call.apply(r,[this].concat(n))),"name","Core"),e}return ne(a,[{key:"frontendPreValidate",value:(n=Q(Y().mark((function e(t){var n,r,a;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!dl(t)){e.next=18;break}n=we(t.changes),e.prev=2,n.s();case 4:if((r=n.n()).done){e.next=10;break}if(ul.default.includes((a=r.value).newType)){e.next=8;break}return e.abrupt("return",{validationName:this.name,error:{message:'"'.concat(a.newType,'" is not a valid SO sequence_feature term')}});case 8:e.next=4;break;case 10:e.next=15;break;case 12:e.prev=12,e.t0=e.catch(2),n.e(e.t0);case 15:return e.prev=15,n.f(),e.finish(15);case 18:return e.abrupt("return",{validationName:this.name});case 19:case"end":return e.stop()}}),e,this,[[2,12,15,18]])}))),function(e){return n.apply(this,arguments)})},{key:"possibleValues",value:(t=Q(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("type"!==t){e.next=2;break}return e.abrupt("return",ul.default);case 2:return e.abrupt("return");case 3:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})}]),a}(rl.Validation);ll.CoreValidation=fl;var hl={};Object.defineProperty(hl,"__esModule",{value:!0}),hl.ParentChildValidation=void 0;var pl=rr,ml=function(e){ae(a,e);var t,n,r=de(a);function a(){var e;ee(this,a);for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return re(ue(e=r.call.apply(r,[this].concat(n))),"name","ParentChildValidation"),e}return ne(a,[{key:"backendPostValidate",value:(n=Q(Y().mark((function e(t,n){var r,a;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n.featureModel,a=n.session,!(0,pl.isLocationEndChange)(t)&&!(0,pl.isLocationStartChange)(t)){e.next=3;break}return e.abrupt("return",this.validateParentChildRelationships(t,{session:a,featureModel:r}));case 3:return e.abrupt("return",{validationName:this.name});case 4:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"validateParentChildRelationships",value:(t=Q(Y().mark((function e(t,n){var r,a,i,o,s,l,c,u,d;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=n.featureModel,a=n.session,i=[],o=we(t.changes),e.prev=3,l=Y().mark((function e(){var t,n,o;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=s.value.featureId,e.next=4,r.findOne({allIds:t}).session(a).exec();case 4:if(n=e.sent){e.next=8;break}throw o="ERROR: The following featureId was not found in database ='".concat(t,"'"),new Error(o);case 8:i.some((function(e){return e._id===n._id}))||i.push(n);case 9:case"end":return e.stop()}}),e)})),o.s();case 6:if((s=o.n()).done){e.next=10;break}return e.delegateYield(l(),"t0",8);case 8:e.next=6;break;case 10:e.next=15;break;case 12:e.prev=12,e.t1=e.catch(3),o.e(e.t1);case 15:return e.prev=15,o.f(),e.finish(15);case 18:c=0,u=i;case 19:if(!(c<u.length)){e.next=31;break}d=u[c],e.prev=21,this.checkChildFeatureBoundaries(d),e.next=28;break;case 25:return e.prev=25,e.t2=e.catch(21),e.abrupt("return",{validationName:this.name,error:{message:String(e.t2)}});case 28:c++,e.next=19;break;case 31:return e.abrupt("return",{validationName:this.name});case 32:case"end":return e.stop()}}),e,this,[[3,12,15,18],[21,25]])}))),function(e,n){return t.apply(this,arguments)})},{key:"checkChildFeatureBoundaries",value:function(e){if(e.children){var t,n=we(e.children||new Map);try{for(n.s();!(t=n.n()).done;){var r=he(t.value,2)[1];if(null!==e.min&&null!==e.max&&null!==r.min&&null!==r.max&&(r.max>e.max||r.min<e.min))throw new Error('Feature "'.concat(r._id,'" exceeds the bounds of its parent, "').concat(e._id,'"'));this.checkChildFeatureBoundaries(r)}}catch(e){n.e(e)}finally{n.f()}}}}]),a}(rl.Validation);hl.ParentChildValidation=ml,function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=et;t.__exportStar(rl,e),t.__exportStar(il,e),t.__exportStar(ll,e),t.__exportStar(hl,e)}(nl);var gl={},_l={};function yl(e){this.message=e}(yl.prototype=new Error).name="InvalidCharacterError";var vl="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(e){var t=String(e).replace(/=+$/,"");if(t.length%4==1)throw new yl("'atob' failed: The string to be decoded is not correctly encoded.");for(var n,r,a=0,i=0,o="";r=t.charAt(i++);~r&&(n=a%4?64*n+r:r,a++%4)?o+=String.fromCharCode(255&n>>(-2*a&6)):0)r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r);return o};function bl(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(vl(e).replace(/(.)/g,(function(e,t){var n=t.charCodeAt(0).toString(16).toUpperCase();return n.length<2&&(n="0"+n),"%"+n})))}(t)}catch(e){return vl(t)}}function wl(e){this.message=e}(wl.prototype=new Error).name="InvalidTokenError";var xl={__proto__:null,default:function(e,t){if("string"!=typeof e)throw new wl("Invalid token specified");var n=!0===(t=t||{}).header?0:1;try{return JSON.parse(bl(e.split(".")[n]))}catch(e){throw new wl("Invalid token specified: "+e.message)}},InvalidTokenError:wl},Sl=B(xl);Object.defineProperty(_l,"__esModule",{value:!0}),_l.makeUserSessionId=function(e){var t="string"==typeof e?(0,kl.default)(e):e;return"".concat(t.id,"-").concat(t.iat)},_l.getDecodedToken=function(e){return(0,kl.default)(e)};var kl=et.__importDefault(Sl);!function(e){Object.defineProperty(e,"__esModule",{value:!0}),et.__exportStar(_l,e)}(gl);var El={},Al={};Object.defineProperty(Al,"__esModule",{value:!0}),Al.CDSCheck=void 0;var Cl,Rl=or,Nl=R.default,Il=et.__importDefault(Wn);!function(e){e[e.TAG=0]="TAG",e[e.TAA=1]="TAA",e[e.TGA=2]="TGA"}(Cl||(Cl={}));var Tl={G:"C",A:"T",T:"A",C:"G",R:"Y",Y:"R",M:"K",K:"M",S:"S",W:"W",H:"D",B:"V",V:"B",D:"H",N:"N"};function Ol(e){var t,n=[],r=we(e);try{for(r.s();!(t=r.n()).done;){var a=t.value,i=Tl[a.toUpperCase()];if(void 0===i)throw new TypeError('Cannot complement nucleotide: "'.concat(a,'"'));a===a.toLowerCase()?n.push(i.toLowerCase()):n.push(i)}}catch(e){r.e(e)}finally{r.f()}return n.reverse().join("")}function Fl(e,t,n){return Ll.apply(this,arguments)}function Ll(){return(Ll=Q(Y().mark((function e(t,n,r){var a;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Promise.all(t.map((function(e){return r(e.min,e.max)})));case 2:if(a=e.sent,-1!==n){e.next=5;break}return e.abrupt("return",a.map((function(e){return Ol(e)})).join(""));case 5:return e.abrupt("return",a.join(""));case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Dl(e){for(var t=[],n=0;n<=e.length-3;n+=3)t.push(e.slice(n,n+3));return t}function Ml(e,t,n){var r,a=3*n,i=a+3,o=void 0,s=void 0,l=we(e);try{for(l.s();!(r=l.n()).done;){var c=r.value,u=c.max-c.min;if(void 0===o&&u>a?o=c.min+a:a-=u,void 0===s&&u>i?s=c.min+i:i-=u,void 0!==o&&void 0!==s)return[o,s]}}catch(e){l.e(e)}finally{l.f()}}function Pl(e,t){return ql.apply(this,arguments)}function ql(){return ql=Q(Y().mark((function e(t,n){var r,a,i,o,s,l,c,u,d,f,h,p,m,g,_,y,v,b,w,x,S,k;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=[],a=t._id,i=t.max,o=t.min,s=t.refSeq,l=t.strand,c=jl(t)){e.next=5;break}return e.abrupt("return",r);case 5:u=[a],d=we(c),e.prev=7,d.s();case 9:if((f=d.n()).done){e.next=20;break}return h=f.value,e.next=13,Fl(h,l,n);case 13:m=Dl(p=e.sent),p.length%3==0?(g=m.pop())&&!(g.toUpperCase()in Cl)&&r.push({_id:(new Il.default).toHexString(),name:"MissingStopCodonCheck",ids:u,refSeq:s.toString(),start:i,end:i,message:'Feature "'.concat(a,'" is missing a stop codon')}):r.push({_id:(new Il.default).toHexString(),name:"MultipleOfThreeCheck",ids:u,refSeq:s.toString(),start:o,end:i,message:'The coding sequence for feature "'.concat(a,'" is not a multiple of three')}),_=we(m.entries());try{for(_.s();!(y=_.n()).done;)v=he(y.value,2),b=v[1],(w=Ml(h,0,v[0]))&&b.toUpperCase()in Cl&&(x=he(w,2),S=x[0],k=x[1],r.push({_id:(new Il.default).toHexString(),name:"InternalStopCodonCheck",ids:u,refSeq:s.toString(),start:S,end:k,message:'The coding sequence for feature "'.concat(a,'" has an internal stop codon')}))}catch(e){_.e(e)}finally{_.f()}case 18:e.next=9;break;case 20:e.next=25;break;case 22:e.prev=22,e.t0=e.catch(7),d.e(e.t0);case 25:return e.prev=25,d.f(),e.finish(25);case 28:return e.abrupt("return",r);case 29:case"end":return e.stop()}}),e,null,[[7,22,25,28]])}))),ql.apply(this,arguments)}function jl(e){if("mRNA"===e.type){var t=e.children,n=e.strand;if(t){var r=Object.values(t).filter((function(e){return"CDS"===e.type}));if(0!==r.length){var a,i=[],o=we(r);try{var s=function(){for(var e=a.value,r=e.max,o=e.min,s=[],l=0,c=Object.values(t);l<c.length;l++){var u=c[l];if("exon"===u.type){var d=he((0,Nl.intersection2)(o,r,u.min,u.max),2),f=d[0],h=d[1];void 0!==f&&void 0!==h&&s.push({min:f,max:h})}}s.sort((function(e,t){return e.min-t.min})),-1===n&&s.reverse();var p=0,m=s.map((function(e){var t=p;return p=(3-(e.max-e.min-t+3)%3)%3,K(K({},e),{},{phase:t})}));i.push(m)};for(o.s();!(a=o.n()).done;)s()}catch(e){o.e(e)}finally{o.f()}return i}}}}var Bl=function(e){ae(r,e);var t,n=de(r);function r(){var e;ee(this,r);for(var t=arguments.length,a=new Array(t),i=0;i<t;i++)a[i]=arguments[i];return re(ue(e=n.call.apply(n,[this].concat(a))),"name","CDSCheck"),re(ue(e),"version",1),re(ue(e),"default",!0),e}return ne(r,[{key:"checkFeature",value:(t=Q(Y().mark((function e(t,n){var r,a,i,o;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("mRNA"!==t.type){e.next=2;break}return e.abrupt("return",Pl(t,n));case 2:if(t.children){e.next=4;break}return e.abrupt("return",[]);case 4:r=[],a=0,i=Object.values(t.children);case 6:if(!(a<i.length)){e.next=19;break}return o=i[a],e.t0=r.push,e.t1=r,e.t2=me,e.next=13,this.checkFeature(o,n);case 13:e.t3=e.sent,e.t4=(0,e.t2)(e.t3),e.t0.apply.call(e.t0,e.t1,e.t4);case 16:a++,e.next=6;break;case 19:return e.abrupt("return",r);case 20:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)})}]),r}(Rl.Check);Al.CDSCheck=Bl,function(e){Object.defineProperty(e,"__esModule",{value:!0}),et.__exportStar(Al,e)}(El);var Ul={};Object.defineProperty(Ul,"__esModule",{value:!0}),Ul.makeGFF3Feature=function e(t,n,r){var a,i,o=[{start:t.min,end:t.max}],s=JSON.parse(JSON.stringify(t.attributes)),l=[],c=null!==(a=null===(i=t.attributes)||void 0===i||null===(i=i.source)||void 0===i?void 0:i[0])&&void 0!==a?a:null;return delete s.source,n&&(s.Parent=[n]),s._id&&(s.ID=s._id,delete s._id),s.gff_name&&(s.Name=s.gff_name,delete s.gff_name),s.gff_alias&&(s.Alias=s.gff_alias,delete s.gff_alias),s.gff_target&&(s.Target=s.gff_target,delete s.gff_target),s.gff_gap&&(s.Gap=s.gff_gap,delete s.gff_gap),s.gff_derives_from&&(s.Derives_from=s.gff_derives_from,delete s.gff_derives_from),s.gff_note&&(s.Note=s.gff_note,delete s.gff_note),s.gff_dbxref&&(s.Dbxref=s.gff_dbxref,delete s.gff_dbxref),s.gff_is_circular&&(s.Is_circular=s.gff_is_circular,delete s.gff_is_circular),s.gff_ontology_term&&(l.push.apply(l,me(s.gff_ontology_term)),delete s.gff_ontology_term),s["Gene Ontology"]&&(l.push.apply(l,me(s["Gene Ontology"])),delete s["Gene Ontology"]),s["Sequence Ontology"]&&(l.push.apply(l,me(s["Sequence Ontology"])),delete s["Sequence Ontology"]),l.length>0&&(s.Ontology_term=l),o.map((function(n){var a;return{start:n.start+1,end:n.end,seq_id:r?null!==(a=r[t.refSeq])&&void 0!==a?a:null:t.refSeq,source:c,type:t.type,score:null,strand:t.strand?1===t.strand?"+":"-":null,phase:null,attributes:Object.keys(s).length>0?s:null,derived_features:[],child_features:t.children?Object.values(t.children).map((function(t){var n;return e(t,null===(n=s.ID)||void 0===n?void 0:n[0],r)})):[]}}))},Ul.splitStringIntoChunks=function(e,t){for(var n=[],r=0;r<e.length;r+=t){var a=e.slice(r,r+t);n.push(a)}return n};var zl={};Object.defineProperty(zl,"__esModule",{value:!0}),function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=et;t.__exportStar(rr,e),t.__exportStar(Zs,e),t.__exportStar(nl,e),t.__exportStar(gl,e),t.__exportStar(El,e),t.__exportStar(Ul,e),t.__exportStar(zl,e),t.__exportStar(Ar,e)}(nr);var Gl={},Hl={exports:{}};!function(e){e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.__esModule=!0,e.exports.default=e.exports}(Hl);var $l={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.createSvgIcon}});var t=N.default}($l);var Jl=Hl.exports;Object.defineProperty(Gl,"__esModule",{value:!0});var Vl=Gl.default=void 0;Vl=Gl.default=(0,Jl($l).default)((0,I.default.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");const Wl=r.ConfigurationSchema("ApolloInternetAccount",{baseURL:{description:"Location of Apollo server",type:"string",defaultValue:""},tokenType:{description:"A custom name for a token to include in the header",type:"string",defaultValue:"Bearer"}},{baseConfiguration:a.BaseInternetAccountConfig,explicitlyTyped:!0});var Kl=Object.create(null);Kl.open="0",Kl.close="1",Kl.ping="2",Kl.pong="3",Kl.message="4",Kl.upgrade="5",Kl.noop="6";var Yl=Object.create(null);Object.keys(Kl).forEach((function(e){Yl[Kl[e]]=e}));var Zl,Xl={type:"error",data:"parser error"},Ql="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===Object.prototype.toString.call(Blob),ec="function"==typeof ArrayBuffer,tc=function(e){return"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer},nc=function(e,t,n){var r=e.type,a=e.data;return Ql&&a instanceof Blob?t?n(a):rc(a,n):ec&&(a instanceof ArrayBuffer||tc(a))?t?n(a):rc(new Blob([a]),n):n(Kl[r]+(a||""))},rc=function(e,t){var n=new FileReader;return n.onload=function(){var e=n.result.split(",")[1];t("b"+(e||""))},n.readAsDataURL(e)};function ac(e){return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}for(var ic="undefined"==typeof Uint8Array?[]:new Uint8Array(256),oc=0;oc<64;oc++)ic["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(oc)]=oc;var sc,lc="function"==typeof ArrayBuffer,cc=function(e,t){if("string"!=typeof e)return{type:"message",data:dc(e,t)};var n=e.charAt(0);return"b"===n?{type:"message",data:uc(e.substring(1),t)}:Yl[n]?e.length>1?{type:Yl[n],data:e.substring(1)}:{type:Yl[n]}:Xl},uc=function(e,t){if(lc){var n=function(e){var t,n,r,a,i,o=.75*e.length,s=e.length,l=0;"="===e[e.length-1]&&(o--,"="===e[e.length-2]&&o--);var c=new ArrayBuffer(o),u=new Uint8Array(c);for(t=0;t<s;t+=4)n=ic[e.charCodeAt(t)],r=ic[e.charCodeAt(t+1)],a=ic[e.charCodeAt(t+2)],i=ic[e.charCodeAt(t+3)],u[l++]=n<<2|r>>4,u[l++]=(15&r)<<4|a>>2,u[l++]=(3&a)<<6|63&i;return c}(e);return dc(n,t)}return{base64:!0,data:e}},dc=function(e,t){return"blob"===t?e instanceof Blob?e:new Blob([e]):e instanceof ArrayBuffer?e:e.buffer},fc=String.fromCharCode(30);function hc(e){return e.reduce((function(e,t){return e+t.length}),0)}function pc(e,t){if(e[0].length===t)return e.shift();for(var n=new Uint8Array(t),r=0,a=0;a<t;a++)n[a]=e[0][r++],r===e[0].length&&(e.shift(),r=0);return e.length&&r<e[0].length&&(e[0]=e[0].slice(r)),n}function mc(e){if(e)return function(e){for(var t in mc.prototype)e[t]=mc.prototype[t];return e}(e)}mc.prototype.on=mc.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this},mc.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this},mc.prototype.off=mc.prototype.removeListener=mc.prototype.removeAllListeners=mc.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n,r=this._callbacks["$"+e];if(!r)return this;if(1==arguments.length)return delete this._callbacks["$"+e],this;for(var a=0;a<r.length;a++)if((n=r[a])===t||n.fn===t){r.splice(a,1);break}return 0===r.length&&delete this._callbacks["$"+e],this},mc.prototype.emit=function(e){this._callbacks=this._callbacks||{};for(var t=new Array(arguments.length-1),n=this._callbacks["$"+e],r=1;r<arguments.length;r++)t[r-1]=arguments[r];if(n){r=0;for(var a=(n=n.slice(0)).length;r<a;++r)n[r].apply(this,t)}return this},mc.prototype.emitReserved=mc.prototype.emit,mc.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks["$"+e]||[]},mc.prototype.hasListeners=function(e){return!!this.listeners(e).length};var gc=function(){return"undefined"!=typeof self?self:"undefined"!=typeof window?window:Function("return this")()}();function _c(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return n.reduce((function(t,n){return e.hasOwnProperty(n)&&(t[n]=e[n]),t}),{})}var yc=gc.setTimeout,vc=gc.clearTimeout;function bc(e,t){t.useNativeTimers?(e.setTimeoutFn=yc.bind(gc),e.clearTimeoutFn=vc.bind(gc)):(e.setTimeoutFn=gc.setTimeout.bind(gc),e.clearTimeoutFn=gc.clearTimeout.bind(gc))}var wc,xc=function(e){ae(n,e);var t=de(n);function n(e,r,a){var i;return ee(this,n),(i=t.call(this,e)).description=r,i.context=a,i.type="TransportError",i}return ne(n)}(ce(Error)),Sc=function(e){ae(n,e);var t=de(n);function n(e){var r;return ee(this,n),(r=t.call(this)).writable=!1,bc(ue(r),e),r.opts=e,r.query=e.query,r.socket=e.socket,r}return ne(n,[{key:"onError",value:function(e,t,r){return fe(ie(n.prototype),"emitReserved",this).call(this,"error",new xc(e,t,r)),this}},{key:"open",value:function(){return this.readyState="opening",this.doOpen(),this}},{key:"close",value:function(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this}},{key:"send",value:function(e){"open"===this.readyState&&this.write(e)}},{key:"onOpen",value:function(){this.readyState="open",this.writable=!0,fe(ie(n.prototype),"emitReserved",this).call(this,"open")}},{key:"onData",value:function(e){var t=cc(e,this.socket.binaryType);this.onPacket(t)}},{key:"onPacket",value:function(e){fe(ie(n.prototype),"emitReserved",this).call(this,"packet",e)}},{key:"onClose",value:function(e){this.readyState="closed",fe(ie(n.prototype),"emitReserved",this).call(this,"close",e)}},{key:"pause",value:function(e){}},{key:"createUri",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e+"://"+this._hostname()+this._port()+this.opts.path+this._query(t)}},{key:"_hostname",value:function(){var e=this.opts.hostname;return-1===e.indexOf(":")?e:"["+e+"]"}},{key:"_port",value:function(){return this.opts.port&&(this.opts.secure&&Number(443!==this.opts.port)||!this.opts.secure&&80!==Number(this.opts.port))?":"+this.opts.port:""}},{key:"_query",value:function(e){var t=function(e){var t="";for(var n in e)e.hasOwnProperty(n)&&(t.length&&(t+="&"),t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t}(e);return t.length?"?"+t:""}}]),n}(mc),kc="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),Ec=64,Ac=0;function Cc(e){var t="";do{t=kc[e%Ec]+t,e=Math.floor(e/Ec)}while(e>0);return t}function Rc(){var e=Cc(+new Date);return e!==wc?(Ac=0,wc=e):e+"."+Cc(Ac++)}var Nc=!1;try{Nc="undefined"!=typeof XMLHttpRequest&&"withCredentials"in new XMLHttpRequest}catch(ni){}var Ic=Nc;function Tc(e){var t=e.xdomain;try{if("undefined"!=typeof XMLHttpRequest&&(!t||Ic))return new XMLHttpRequest}catch(e){}if(!t)try{return new(gc[["Active"].concat("Object").join("X")])("Microsoft.XMLHTTP")}catch(e){}}function Oc(){}var Fc=function(){return null!=new Tc({xdomain:!1}).responseType}(),Lc=function(e){ae(n,e);var t=de(n);function n(e){var r;if(ee(this,n),(r=t.call(this,e)).polling=!1,"undefined"!=typeof location){var a="https:"===location.protocol,i=location.port;i||(i=a?"443":"80"),r.xd="undefined"!=typeof location&&e.hostname!==location.hostname||i!==e.port}return r.supportsBinary=Fc&&!(e&&e.forceBase64),r.opts.withCredentials&&(r.cookieJar=void 0),r}return ne(n,[{key:"name",get:function(){return"polling"}},{key:"doOpen",value:function(){this.poll()}},{key:"pause",value:function(e){var t=this;this.readyState="pausing";var n=function(){t.readyState="paused",e()};if(this.polling||!this.writable){var r=0;this.polling&&(r++,this.once("pollComplete",(function(){--r||n()}))),this.writable||(r++,this.once("drain",(function(){--r||n()})))}else n()}},{key:"poll",value:function(){this.polling=!0,this.doPoll(),this.emitReserved("poll")}},{key:"onData",value:function(e){var t=this;(function(e,t){for(var n=e.split(fc),r=[],a=0;a<n.length;a++){var i=cc(n[a],t);if(r.push(i),"error"===i.type)break}return r})(e,this.socket.binaryType).forEach((function(e){if("opening"===t.readyState&&"open"===e.type&&t.onOpen(),"close"===e.type)return t.onClose({description:"transport closed by the server"}),!1;t.onPacket(e)})),"closed"!==this.readyState&&(this.polling=!1,this.emitReserved("pollComplete"),"open"===this.readyState&&this.poll())}},{key:"doClose",value:function(){var e=this,t=function(){e.write([{type:"close"}])};"open"===this.readyState?t():this.once("open",t)}},{key:"write",value:function(e){var t=this;this.writable=!1,function(e,n){var r=e.length,a=new Array(r),i=0;e.forEach((function(e,n){nc(e,!1,(function(e){var o;a[n]=e,++i===r&&(o=a.join(fc),t.doWrite(o,(function(){t.writable=!0,t.emitReserved("drain")})))}))}))}(e)}},{key:"uri",value:function(){var e=this.opts.secure?"https":"http",t=this.query||{};return!1!==this.opts.timestampRequests&&(t[this.opts.timestampParam]=Rc()),this.supportsBinary||t.sid||(t.b64=1),this.createUri(e,t)}},{key:"request",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object.assign(e,{xd:this.xd,cookieJar:this.cookieJar},this.opts),new Dc(this.uri(),e)}},{key:"doWrite",value:function(e,t){var n=this,r=this.request({method:"POST",data:e});r.on("success",t),r.on("error",(function(e,t){n.onError("xhr post error",e,t)}))}},{key:"doPoll",value:function(){var e=this,t=this.request();t.on("data",this.onData.bind(this)),t.on("error",(function(t,n){e.onError("xhr poll error",t,n)})),this.pollXhr=t}}]),n}(Sc),Dc=function(e){ae(n,e);var t=de(n);function n(e,r){var a;return ee(this,n),bc(ue(a=t.call(this)),r),a.opts=r,a.method=r.method||"GET",a.uri=e,a.data=void 0!==r.data?r.data:null,a.create(),a}return ne(n,[{key:"create",value:function(){var e,t=this,r=_c(this.opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");r.xdomain=!!this.opts.xd;var a=this.xhr=new Tc(r);try{a.open(this.method,this.uri,!0);try{if(this.opts.extraHeaders)for(var i in a.setDisableHeaderCheck&&a.setDisableHeaderCheck(!0),this.opts.extraHeaders)this.opts.extraHeaders.hasOwnProperty(i)&&a.setRequestHeader(i,this.opts.extraHeaders[i])}catch(e){}if("POST"===this.method)try{a.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(e){}try{a.setRequestHeader("Accept","*/*")}catch(e){}null===(e=this.opts.cookieJar)||void 0===e||e.addCookies(a),"withCredentials"in a&&(a.withCredentials=this.opts.withCredentials),this.opts.requestTimeout&&(a.timeout=this.opts.requestTimeout),a.onreadystatechange=function(){var e;3===a.readyState&&(null===(e=t.opts.cookieJar)||void 0===e||e.parseCookies(a)),4===a.readyState&&(200===a.status||1223===a.status?t.onLoad():t.setTimeoutFn((function(){t.onError("number"==typeof a.status?a.status:0)}),0))},a.send(this.data)}catch(e){return void this.setTimeoutFn((function(){t.onError(e)}),0)}"undefined"!=typeof document&&(this.index=n.requestsCount++,n.requests[this.index]=this)}},{key:"onError",value:function(e){this.emitReserved("error",e,this.xhr),this.cleanup(!0)}},{key:"cleanup",value:function(e){if(null!=this.xhr){if(this.xhr.onreadystatechange=Oc,e)try{this.xhr.abort()}catch(e){}"undefined"!=typeof document&&delete n.requests[this.index],this.xhr=null}}},{key:"onLoad",value:function(){var e=this.xhr.responseText;null!==e&&(this.emitReserved("data",e),this.emitReserved("success"),this.cleanup())}},{key:"abort",value:function(){this.cleanup()}}]),n}(mc);function Mc(){for(var e in Dc.requests)Dc.requests.hasOwnProperty(e)&&Dc.requests[e].abort()}Dc.requestsCount=0,Dc.requests={},"undefined"!=typeof document&&("function"==typeof attachEvent?attachEvent("onunload",Mc):"function"==typeof addEventListener&&addEventListener("onpagehide"in gc?"pagehide":"unload",Mc,!1));var Pc=function(){return"function"==typeof Promise&&"function"==typeof Promise.resolve?function(e){return Promise.resolve().then(e)}:function(e,t){return t(e,0)}}(),qc=gc.WebSocket||gc.MozWebSocket,jc="undefined"!=typeof navigator&&"string"==typeof navigator.product&&"reactnative"===navigator.product.toLowerCase(),Bc=function(e){ae(n,e);var t=de(n);function n(e){var r;return ee(this,n),(r=t.call(this,e)).supportsBinary=!e.forceBase64,r}return ne(n,[{key:"name",get:function(){return"websocket"}},{key:"doOpen",value:function(){if(this.check()){var e=this.uri(),t=this.opts.protocols,n=jc?{}:_c(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(n.headers=this.opts.extraHeaders);try{this.ws=jc?new qc(e,t,n):t?new qc(e,t):new qc(e)}catch(e){return this.emitReserved("error",e)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}}},{key:"addEventListeners",value:function(){var e=this;this.ws.onopen=function(){e.opts.autoUnref&&e.ws._socket.unref(),e.onOpen()},this.ws.onclose=function(t){return e.onClose({description:"websocket connection closed",context:t})},this.ws.onmessage=function(t){return e.onData(t.data)},this.ws.onerror=function(t){return e.onError("websocket error",t)}}},{key:"write",value:function(e){var t=this;this.writable=!1;for(var n=function(){var n=r===e.length-1;nc(e[r],t.supportsBinary,(function(e){try{t.ws.send(e)}catch(e){}n&&Pc((function(){t.writable=!0,t.emitReserved("drain")}),t.setTimeoutFn)}))},r=0;r<e.length;r++)n()}},{key:"doClose",value:function(){void 0!==this.ws&&(this.ws.close(),this.ws=null)}},{key:"uri",value:function(){var e=this.opts.secure?"wss":"ws",t=this.query||{};return this.opts.timestampRequests&&(t[this.opts.timestampParam]=Rc()),this.supportsBinary||(t.b64=1),this.createUri(e,t)}},{key:"check",value:function(){return!!qc}}]),n}(Sc),Uc=function(e){ae(n,e);var t=de(n);function n(){return ee(this,n),t.apply(this,arguments)}return ne(n,[{key:"name",get:function(){return"webtransport"}},{key:"doOpen",value:function(){var e=this;"function"==typeof WebTransport&&(this.transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name]),this.transport.closed.then((function(){e.onClose()})).catch((function(t){e.onError("webtransport error",t)})),this.transport.ready.then((function(){e.transport.createBidirectionalStream().then((function(t){var n=function(e,t){sc||(sc=new TextDecoder);var n=[],r=0,a=-1,i=!1;return new TransformStream({transform:function(o,s){for(n.push(o);;){if(0===r){if(hc(n)<1)break;var l=pc(n,1);i=128==(128&l[0]),r=(a=127&l[0])<126?3:126===a?1:2}else if(1===r){if(hc(n)<2)break;var c=pc(n,2);a=new DataView(c.buffer,c.byteOffset,c.length).getUint16(0),r=3}else if(2===r){if(hc(n)<8)break;var u=pc(n,8),d=new DataView(u.buffer,u.byteOffset,u.length),f=d.getUint32(0);if(f>Math.pow(2,21)-1){s.enqueue(Xl);break}a=f*Math.pow(2,32)+d.getUint32(4),r=3}else{if(hc(n)<a)break;var h=pc(n,a);s.enqueue(cc(i?h:sc.decode(h),t)),r=0}if(0===a||a>e){s.enqueue(Xl);break}}}})}(Number.MAX_SAFE_INTEGER,e.socket.binaryType),r=t.readable.pipeThrough(n).getReader(),a=new TransformStream({transform:function(e,t){!function(e,t){Ql&&e.data instanceof Blob?e.data.arrayBuffer().then(ac).then(t):ec&&(e.data instanceof ArrayBuffer||tc(e.data))?t(ac(e.data)):nc(e,!1,(function(e){Zl||(Zl=new TextEncoder),t(Zl.encode(e))}))}(e,(function(n){var r,a=n.length;if(a<126)r=new Uint8Array(1),new DataView(r.buffer).setUint8(0,a);else if(a<65536){r=new Uint8Array(3);var i=new DataView(r.buffer);i.setUint8(0,126),i.setUint16(1,a)}else{r=new Uint8Array(9);var o=new DataView(r.buffer);o.setUint8(0,127),o.setBigUint64(1,BigInt(a))}e.data&&"string"!=typeof e.data&&(r[0]|=128),t.enqueue(r),t.enqueue(n)}))}});a.readable.pipeTo(t.writable),e.writer=a.writable.getWriter(),function t(){r.read().then((function(n){n.done||(e.onPacket(n.value),t())})).catch((function(e){}))}();var i={type:"open"};e.query.sid&&(i.data='{"sid":"'.concat(e.query.sid,'"}')),e.writer.write(i).then((function(){return e.onOpen()}))}))})))}},{key:"write",value:function(e){var t=this;this.writable=!1;for(var n=function(){var n=r===e.length-1;t.writer.write(e[r]).then((function(){n&&Pc((function(){t.writable=!0,t.emitReserved("drain")}),t.setTimeoutFn)}))},r=0;r<e.length;r++)n()}},{key:"doClose",value:function(){var e;null===(e=this.transport)||void 0===e||e.close()}}]),n}(Sc),zc={websocket:Bc,webtransport:Uc,polling:Lc},Gc=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,Hc=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function $c(e){var t,n,r=e,a=e.indexOf("["),i=e.indexOf("]");-1!=a&&-1!=i&&(e=e.substring(0,a)+e.substring(a,i).replace(/:/g,";")+e.substring(i,e.length));for(var o,s=Gc.exec(e||""),l={},c=14;c--;)l[Hc[c]]=s[c]||"";return-1!=a&&-1!=i&&(l.source=r,l.host=l.host.substring(1,l.host.length-1).replace(/;/g,":"),l.authority=l.authority.replace("[","").replace("]","").replace(/;/g,":"),l.ipv6uri=!0),l.pathNames=(n=(t=l.path).replace(/\/{2,9}/g,"/").split("/"),"/"!=t.slice(0,1)&&0!==t.length||n.splice(0,1),"/"==t.slice(-1)&&n.splice(n.length-1,1),n),l.queryKey=(o={},l.query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,(function(e,t,n){t&&(o[t]=n)})),o),l}var Jc=function(e){ae(n,e);var t=de(n);function n(e){var r,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return ee(this,n),(r=t.call(this)).binaryType="arraybuffer",r.writeBuffer=[],e&&"object"===Z(e)&&(a=e,e=null),e?(e=$c(e),a.hostname=e.host,a.secure="https"===e.protocol||"wss"===e.protocol,a.port=e.port,e.query&&(a.query=e.query)):a.host&&(a.hostname=$c(a.host).host),bc(ue(r),a),r.secure=null!=a.secure?a.secure:"undefined"!=typeof location&&"https:"===location.protocol,a.hostname&&!a.port&&(a.port=r.secure?"443":"80"),r.hostname=a.hostname||("undefined"!=typeof location?location.hostname:"localhost"),r.port=a.port||("undefined"!=typeof location&&location.port?location.port:r.secure?"443":"80"),r.transports=a.transports||["polling","websocket","webtransport"],r.writeBuffer=[],r.prevBufferLen=0,r.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},a),r.opts.path=r.opts.path.replace(/\/$/,"")+(r.opts.addTrailingSlash?"/":""),"string"==typeof r.opts.query&&(r.opts.query=function(e){for(var t={},n=e.split("&"),r=0,a=n.length;r<a;r++){var i=n[r].split("=");t[decodeURIComponent(i[0])]=decodeURIComponent(i[1])}return t}(r.opts.query)),r.id=null,r.upgrades=null,r.pingInterval=null,r.pingTimeout=null,r.pingTimeoutTimer=null,"function"==typeof addEventListener&&(r.opts.closeOnBeforeunload&&(r.beforeunloadEventListener=function(){r.transport&&(r.transport.removeAllListeners(),r.transport.close())},addEventListener("beforeunload",r.beforeunloadEventListener,!1)),"localhost"!==r.hostname&&(r.offlineEventListener=function(){r.onClose("transport close",{description:"network connection lost"})},addEventListener("offline",r.offlineEventListener,!1))),r.open(),r}return ne(n,[{key:"createTransport",value:function(e){var t=Object.assign({},this.opts.query);t.EIO=4,t.transport=e,this.id&&(t.sid=this.id);var n=Object.assign({},this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return new zc[e](n)}},{key:"open",value:function(){var e,t=this;if(this.opts.rememberUpgrade&&n.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket"))e="websocket";else{if(0===this.transports.length)return void this.setTimeoutFn((function(){t.emitReserved("error","No transports available")}),0);e=this.transports[0]}this.readyState="opening";try{e=this.createTransport(e)}catch(e){return this.transports.shift(),void this.open()}e.open(),this.setTransport(e)}},{key:"setTransport",value:function(e){var t=this;this.transport&&this.transport.removeAllListeners(),this.transport=e,e.on("drain",this.onDrain.bind(this)).on("packet",this.onPacket.bind(this)).on("error",this.onError.bind(this)).on("close",(function(e){return t.onClose("transport close",e)}))}},{key:"probe",value:function(e){var t=this,r=this.createTransport(e),a=!1;n.priorWebsocketSuccess=!1;var i=function(){a||(r.send([{type:"ping",data:"probe"}]),r.once("packet",(function(e){if(!a)if("pong"===e.type&&"probe"===e.data){if(t.upgrading=!0,t.emitReserved("upgrading",r),!r)return;n.priorWebsocketSuccess="websocket"===r.name,t.transport.pause((function(){a||"closed"!==t.readyState&&(d(),t.setTransport(r),r.send([{type:"upgrade"}]),t.emitReserved("upgrade",r),r=null,t.upgrading=!1,t.flush())}))}else{var i=new Error("probe error");i.transport=r.name,t.emitReserved("upgradeError",i)}})))};function o(){a||(a=!0,d(),r.close(),r=null)}var s=function(e){var n=new Error("probe error: "+e);n.transport=r.name,o(),t.emitReserved("upgradeError",n)};function l(){s("transport closed")}function c(){s("socket closed")}function u(e){r&&e.name!==r.name&&o()}var d=function(){r.removeListener("open",i),r.removeListener("error",s),r.removeListener("close",l),t.off("close",c),t.off("upgrading",u)};r.once("open",i),r.once("error",s),r.once("close",l),this.once("close",c),this.once("upgrading",u),-1!==this.upgrades.indexOf("webtransport")&&"webtransport"!==e?this.setTimeoutFn((function(){a||r.open()}),200):r.open()}},{key:"onOpen",value:function(){if(this.readyState="open",n.priorWebsocketSuccess="websocket"===this.transport.name,this.emitReserved("open"),this.flush(),"open"===this.readyState&&this.opts.upgrade)for(var e=0,t=this.upgrades.length;e<t;e++)this.probe(this.upgrades[e])}},{key:"onPacket",value:function(e){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState)switch(this.emitReserved("packet",e),this.emitReserved("heartbeat"),this.resetPingTimeout(),e.type){case"open":this.onHandshake(JSON.parse(e.data));break;case"ping":this.sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong");break;case"error":var t=new Error("server error");t.code=e.data,this.onError(t);break;case"message":this.emitReserved("data",e.data),this.emitReserved("message",e.data)}}},{key:"onHandshake",value:function(e){this.emitReserved("handshake",e),this.id=e.sid,this.transport.query.sid=e.sid,this.upgrades=this.filterUpgrades(e.upgrades),this.pingInterval=e.pingInterval,this.pingTimeout=e.pingTimeout,this.maxPayload=e.maxPayload,this.onOpen(),"closed"!==this.readyState&&this.resetPingTimeout()}},{key:"resetPingTimeout",value:function(){var e=this;this.clearTimeoutFn(this.pingTimeoutTimer),this.pingTimeoutTimer=this.setTimeoutFn((function(){e.onClose("ping timeout")}),this.pingInterval+this.pingTimeout),this.opts.autoUnref&&this.pingTimeoutTimer.unref()}},{key:"onDrain",value:function(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,0===this.writeBuffer.length?this.emitReserved("drain"):this.flush()}},{key:"flush",value:function(){if("closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){var e=this.getWritablePackets();this.transport.send(e),this.prevBufferLen=e.length,this.emitReserved("flush")}}},{key:"getWritablePackets",value:function(){if(!(this.maxPayload&&"polling"===this.transport.name&&this.writeBuffer.length>1))return this.writeBuffer;for(var e,t=1,n=0;n<this.writeBuffer.length;n++){var r=this.writeBuffer[n].data;if(r&&(t+="string"==typeof(e=r)?function(e){for(var t=0,n=0,r=0,a=e.length;r<a;r++)(t=e.charCodeAt(r))<128?n+=1:t<2048?n+=2:t<55296||t>=57344?n+=3:(r++,n+=4);return n}(e):Math.ceil(1.33*(e.byteLength||e.size))),n>0&&t>this.maxPayload)return this.writeBuffer.slice(0,n);t+=2}return this.writeBuffer}},{key:"write",value:function(e,t,n){return this.sendPacket("message",e,t,n),this}},{key:"send",value:function(e,t,n){return this.sendPacket("message",e,t,n),this}},{key:"sendPacket",value:function(e,t,n,r){if("function"==typeof t&&(r=t,t=void 0),"function"==typeof n&&(r=n,n=null),"closing"!==this.readyState&&"closed"!==this.readyState){(n=n||{}).compress=!1!==n.compress;var a={type:e,data:t,options:n};this.emitReserved("packetCreate",a),this.writeBuffer.push(a),r&&this.once("flush",r),this.flush()}}},{key:"close",value:function(){var e=this,t=function(){e.onClose("forced close"),e.transport.close()},n=function n(){e.off("upgrade",n),e.off("upgradeError",n),t()},r=function(){e.once("upgrade",n),e.once("upgradeError",n)};return"opening"!==this.readyState&&"open"!==this.readyState||(this.readyState="closing",this.writeBuffer.length?this.once("drain",(function(){e.upgrading?r():t()})):this.upgrading?r():t()),this}},{key:"onError",value:function(e){n.priorWebsocketSuccess=!1,this.emitReserved("error",e),this.onClose("transport error",e)}},{key:"onClose",value:function(e,t){"opening"!==this.readyState&&"open"!==this.readyState&&"closing"!==this.readyState||(this.clearTimeoutFn(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),"function"==typeof removeEventListener&&(removeEventListener("beforeunload",this.beforeunloadEventListener,!1),removeEventListener("offline",this.offlineEventListener,!1)),this.readyState="closed",this.id=null,this.emitReserved("close",e,t),this.writeBuffer=[],this.prevBufferLen=0)}},{key:"filterUpgrades",value:function(e){for(var t=[],n=0,r=e.length;n<r;n++)~this.transports.indexOf(e[n])&&t.push(e[n]);return t}}]),n}(mc);Jc.protocol=4;var Vc="function"==typeof ArrayBuffer,Wc=function(e){return"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer},Kc=Object.prototype.toString,Yc="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===Kc.call(Blob),Zc="function"==typeof File||"undefined"!=typeof File&&"[object FileConstructor]"===Kc.call(File);function Xc(e){return Vc&&(e instanceof ArrayBuffer||Wc(e))||Yc&&e instanceof Blob||Zc&&e instanceof File}function Qc(e,t){if(!e||"object"!==Z(e))return!1;if(Array.isArray(e)){for(var n=0,r=e.length;n<r;n++)if(Qc(e[n]))return!0;return!1}if(Xc(e))return!0;if(e.toJSON&&"function"==typeof e.toJSON&&1===arguments.length)return Qc(e.toJSON(),!0);for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)&&Qc(e[a]))return!0;return!1}function eu(e){var t=[],n=e;return n.data=tu(e.data,t),n.attachments=t.length,{packet:n,buffers:t}}function tu(e,t){if(!e)return e;if(Xc(e)){var n={_placeholder:!0,num:t.length};return t.push(e),n}if(Array.isArray(e)){for(var r=new Array(e.length),a=0;a<e.length;a++)r[a]=tu(e[a],t);return r}if("object"===Z(e)&&!(e instanceof Date)){var i={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(i[o]=tu(e[o],t));return i}return e}function nu(e,t){return e.data=ru(e.data,t),delete e.attachments,e}function ru(e,t){if(!e)return e;if(e&&!0===e._placeholder){if("number"==typeof e.num&&e.num>=0&&e.num<t.length)return t[e.num];throw new Error("illegal attachments")}if(Array.isArray(e))for(var n=0;n<e.length;n++)e[n]=ru(e[n],t);else if("object"===Z(e))for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(e[r]=ru(e[r],t));return e}var au,iu=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"];!function(e){e[e.CONNECT=0]="CONNECT",e[e.DISCONNECT=1]="DISCONNECT",e[e.EVENT=2]="EVENT",e[e.ACK=3]="ACK",e[e.CONNECT_ERROR=4]="CONNECT_ERROR",e[e.BINARY_EVENT=5]="BINARY_EVENT",e[e.BINARY_ACK=6]="BINARY_ACK"}(au||(au={}));var ou=function(){function e(t){ee(this,e),this.replacer=t}return ne(e,[{key:"encode",value:function(e){return e.type!==au.EVENT&&e.type!==au.ACK||!Qc(e)?[this.encodeAsString(e)]:this.encodeAsBinary({type:e.type===au.EVENT?au.BINARY_EVENT:au.BINARY_ACK,nsp:e.nsp,data:e.data,id:e.id})}},{key:"encodeAsString",value:function(e){var t=""+e.type;return e.type!==au.BINARY_EVENT&&e.type!==au.BINARY_ACK||(t+=e.attachments+"-"),e.nsp&&"/"!==e.nsp&&(t+=e.nsp+","),null!=e.id&&(t+=e.id),null!=e.data&&(t+=JSON.stringify(e.data,this.replacer)),t}},{key:"encodeAsBinary",value:function(e){var t=eu(e),n=this.encodeAsString(t.packet),r=t.buffers;return r.unshift(n),r}}]),e}();function su(e){return"[object Object]"===Object.prototype.toString.call(e)}var lu=function(e){ae(n,e);var t=de(n);function n(e){var r;return ee(this,n),(r=t.call(this)).reviver=e,r}return ne(n,[{key:"add",value:function(e){var t;if("string"==typeof e){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");var r=(t=this.decodeString(e)).type===au.BINARY_EVENT;r||t.type===au.BINARY_ACK?(t.type=r?au.EVENT:au.ACK,this.reconstructor=new cu(t),0===t.attachments&&fe(ie(n.prototype),"emitReserved",this).call(this,"decoded",t)):fe(ie(n.prototype),"emitReserved",this).call(this,"decoded",t)}else{if(!Xc(e)&&!e.base64)throw new Error("Unknown type: "+e);if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");(t=this.reconstructor.takeBinaryData(e))&&(this.reconstructor=null,fe(ie(n.prototype),"emitReserved",this).call(this,"decoded",t))}}},{key:"decodeString",value:function(e){var t=0,r={type:Number(e.charAt(0))};if(void 0===au[r.type])throw new Error("unknown packet type "+r.type);if(r.type===au.BINARY_EVENT||r.type===au.BINARY_ACK){for(var a=t+1;"-"!==e.charAt(++t)&&t!=e.length;);var i=e.substring(a,t);if(i!=Number(i)||"-"!==e.charAt(t))throw new Error("Illegal attachments");r.attachments=Number(i)}if("/"===e.charAt(t+1)){for(var o=t+1;++t&&","!==e.charAt(t)&&t!==e.length;);r.nsp=e.substring(o,t)}else r.nsp="/";var s=e.charAt(t+1);if(""!==s&&Number(s)==s){for(var l=t+1;++t;){var c=e.charAt(t);if(null==c||Number(c)!=c){--t;break}if(t===e.length)break}r.id=Number(e.substring(l,t+1))}if(e.charAt(++t)){var u=this.tryParse(e.substr(t));if(!n.isPayloadValid(r.type,u))throw new Error("invalid payload");r.data=u}return r}},{key:"tryParse",value:function(e){try{return JSON.parse(e,this.reviver)}catch(e){return!1}}},{key:"destroy",value:function(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}],[{key:"isPayloadValid",value:function(e,t){switch(e){case au.CONNECT:return su(t);case au.DISCONNECT:return void 0===t;case au.CONNECT_ERROR:return"string"==typeof t||su(t);case au.EVENT:case au.BINARY_EVENT:return Array.isArray(t)&&("number"==typeof t[0]||"string"==typeof t[0]&&-1===iu.indexOf(t[0]));case au.ACK:case au.BINARY_ACK:return Array.isArray(t)}}}]),n}(mc),cu=function(){function e(t){ee(this,e),this.packet=t,this.buffers=[],this.reconPack=t}return ne(e,[{key:"takeBinaryData",value:function(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){var t=nu(this.reconPack,this.buffers);return this.finishedReconstruction(),t}return null}},{key:"finishedReconstruction",value:function(){this.reconPack=null,this.buffers=[]}}]),e}(),uu={__proto__:null,protocol:5,get PacketType(){return au},Encoder:ou,Decoder:lu};function du(e,t,n){return e.on(t,n),function(){e.off(t,n)}}var fu=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1}),hu=function(e){ae(n,e);var t=de(n);function n(e,r,a){var i;return ee(this,n),(i=t.call(this)).connected=!1,i.recovered=!1,i.receiveBuffer=[],i.sendBuffer=[],i._queue=[],i._queueSeq=0,i.ids=0,i.acks={},i.flags={},i.io=e,i.nsp=r,a&&a.auth&&(i.auth=a.auth),i._opts=Object.assign({},a),i.io._autoConnect&&i.open(),i}return ne(n,[{key:"disconnected",get:function(){return!this.connected}},{key:"subEvents",value:function(){if(!this.subs){var e=this.io;this.subs=[du(e,"open",this.onopen.bind(this)),du(e,"packet",this.onpacket.bind(this)),du(e,"error",this.onerror.bind(this)),du(e,"close",this.onclose.bind(this))]}}},{key:"active",get:function(){return!!this.subs}},{key:"connect",value:function(){return this.connected||(this.subEvents(),this.io._reconnecting||this.io.open(),"open"===this.io._readyState&&this.onopen()),this}},{key:"open",value:function(){return this.connect()}},{key:"send",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.unshift("message"),this.emit.apply(this,t),this}},{key:"emit",value:function(e){if(fu.hasOwnProperty(e))throw new Error('"'+e.toString()+'" is a reserved event name');for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];if(n.unshift(e),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(n),this;var a={type:au.EVENT,data:n,options:{}};if(a.options.compress=!1!==this.flags.compress,"function"==typeof n[n.length-1]){var i=this.ids++,o=n.pop();this._registerAckCallback(i,o),a.id=i}return this.flags.volatile&&(!(this.io.engine&&this.io.engine.transport&&this.io.engine.transport.writable)||!this.connected)||(this.connected?(this.notifyOutgoingListeners(a),this.packet(a)):this.sendBuffer.push(a)),this.flags={},this}},{key:"_registerAckCallback",value:function(e,t){var n,r=this,a=null!==(n=this.flags.timeout)&&void 0!==n?n:this._opts.ackTimeout;if(void 0!==a){var i=this.io.setTimeoutFn((function(){delete r.acks[e];for(var n=0;n<r.sendBuffer.length;n++)r.sendBuffer[n].id===e&&r.sendBuffer.splice(n,1);t.call(r,new Error("operation has timed out"))}),a);this.acks[e]=function(){r.io.clearTimeoutFn(i);for(var e=arguments.length,n=new Array(e),a=0;a<e;a++)n[a]=arguments[a];t.apply(r,[null].concat(n))}}else this.acks[e]=t}},{key:"emitWithAck",value:function(e){for(var t=this,n=arguments.length,r=new Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];var i=void 0!==this.flags.timeout||void 0!==this._opts.ackTimeout;return new Promise((function(n,a){r.push((function(e,t){return i?e?a(e):n(t):n(e)})),t.emit.apply(t,[e].concat(r))}))}},{key:"_addToQueue",value:function(e){var t,n=this;"function"==typeof e[e.length-1]&&(t=e.pop());var r={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push((function(e){if(r===n._queue[0]){if(null!==e)r.tryCount>n._opts.retries&&(n._queue.shift(),t&&t(e));else if(n._queue.shift(),t){for(var a=arguments.length,i=new Array(a>1?a-1:0),o=1;o<a;o++)i[o-1]=arguments[o];t.apply(void 0,[null].concat(i))}return r.pending=!1,n._drainQueue()}})),this._queue.push(r),this._drainQueue()}},{key:"_drainQueue",value:function(){if(this.connected&&0!==this._queue.length){var e=this._queue[0];e.pending&&!(arguments.length>0&&void 0!==arguments[0]&&arguments[0])||(e.pending=!0,e.tryCount++,this.flags=e.flags,this.emit.apply(this,e.args))}}},{key:"packet",value:function(e){e.nsp=this.nsp,this.io._packet(e)}},{key:"onopen",value:function(){var e=this;"function"==typeof this.auth?this.auth((function(t){e._sendConnectPacket(t)})):this._sendConnectPacket(this.auth)}},{key:"_sendConnectPacket",value:function(e){this.packet({type:au.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}},{key:"onerror",value:function(e){this.connected||this.emitReserved("connect_error",e)}},{key:"onclose",value:function(e,t){this.connected=!1,delete this.id,this.emitReserved("disconnect",e,t)}},{key:"onpacket",value:function(e){if(e.nsp===this.nsp)switch(e.type){case au.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case au.EVENT:case au.BINARY_EVENT:this.onevent(e);break;case au.ACK:case au.BINARY_ACK:this.onack(e);break;case au.DISCONNECT:this.ondisconnect();break;case au.CONNECT_ERROR:this.destroy();var t=new Error(e.data.message);t.data=e.data.data,this.emitReserved("connect_error",t)}}},{key:"onevent",value:function(e){var t=e.data||[];null!=e.id&&t.push(this.ack(e.id)),this.connected?this.emitEvent(t):this.receiveBuffer.push(Object.freeze(t))}},{key:"emitEvent",value:function(e){if(this._anyListeners&&this._anyListeners.length){var t,r=we(this._anyListeners.slice());try{for(r.s();!(t=r.n()).done;)t.value.apply(this,e)}catch(e){r.e(e)}finally{r.f()}}fe(ie(n.prototype),"emit",this).apply(this,e),this._pid&&e.length&&"string"==typeof e[e.length-1]&&(this._lastOffset=e[e.length-1])}},{key:"ack",value:function(e){var t=this,n=!1;return function(){if(!n){n=!0;for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];t.packet({type:au.ACK,id:e,data:a})}}}},{key:"onack",value:function(e){var t=this.acks[e.id];"function"==typeof t&&(t.apply(this,e.data),delete this.acks[e.id])}},{key:"onconnect",value:function(e,t){this.id=e,this.recovered=t&&this._pid===t,this._pid=t,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}},{key:"emitBuffered",value:function(){var e=this;this.receiveBuffer.forEach((function(t){return e.emitEvent(t)})),this.receiveBuffer=[],this.sendBuffer.forEach((function(t){e.notifyOutgoingListeners(t),e.packet(t)})),this.sendBuffer=[]}},{key:"ondisconnect",value:function(){this.destroy(),this.onclose("io server disconnect")}},{key:"destroy",value:function(){this.subs&&(this.subs.forEach((function(e){return e()})),this.subs=void 0),this.io._destroy(this)}},{key:"disconnect",value:function(){return this.connected&&this.packet({type:au.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}},{key:"close",value:function(){return this.disconnect()}},{key:"compress",value:function(e){return this.flags.compress=e,this}},{key:"volatile",get:function(){return this.flags.volatile=!0,this}},{key:"timeout",value:function(e){return this.flags.timeout=e,this}},{key:"onAny",value:function(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}},{key:"prependAny",value:function(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}},{key:"offAny",value:function(e){if(!this._anyListeners)return this;if(e){for(var t=this._anyListeners,n=0;n<t.length;n++)if(e===t[n])return t.splice(n,1),this}else this._anyListeners=[];return this}},{key:"listenersAny",value:function(){return this._anyListeners||[]}},{key:"onAnyOutgoing",value:function(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(e),this}},{key:"prependAnyOutgoing",value:function(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(e),this}},{key:"offAnyOutgoing",value:function(e){if(!this._anyOutgoingListeners)return this;if(e){for(var t=this._anyOutgoingListeners,n=0;n<t.length;n++)if(e===t[n])return t.splice(n,1),this}else this._anyOutgoingListeners=[];return this}},{key:"listenersAnyOutgoing",value:function(){return this._anyOutgoingListeners||[]}},{key:"notifyOutgoingListeners",value:function(e){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){var t,n=we(this._anyOutgoingListeners.slice());try{for(n.s();!(t=n.n()).done;)t.value.apply(this,e.data)}catch(e){n.e(e)}finally{n.f()}}}}]),n}(mc);function pu(e){this.ms=(e=e||{}).min||100,this.max=e.max||1e4,this.factor=e.factor||2,this.jitter=e.jitter>0&&e.jitter<=1?e.jitter:0,this.attempts=0}pu.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),n=Math.floor(t*this.jitter*e);e=0==(1&Math.floor(10*t))?e-n:e+n}return 0|Math.min(e,this.max)},pu.prototype.reset=function(){this.attempts=0},pu.prototype.setMin=function(e){this.ms=e},pu.prototype.setMax=function(e){this.max=e},pu.prototype.setJitter=function(e){this.jitter=e};var mu=function(e){ae(n,e);var t=de(n);function n(e,r){var a,i;ee(this,n),(a=t.call(this)).nsps={},a.subs=[],e&&"object"===Z(e)&&(r=e,e=void 0),(r=r||{}).path=r.path||"/socket.io",a.opts=r,bc(ue(a),r),a.reconnection(!1!==r.reconnection),a.reconnectionAttempts(r.reconnectionAttempts||Infinity),a.reconnectionDelay(r.reconnectionDelay||1e3),a.reconnectionDelayMax(r.reconnectionDelayMax||5e3),a.randomizationFactor(null!==(i=r.randomizationFactor)&&void 0!==i?i:.5),a.backoff=new pu({min:a.reconnectionDelay(),max:a.reconnectionDelayMax(),jitter:a.randomizationFactor()}),a.timeout(null==r.timeout?2e4:r.timeout),a._readyState="closed",a.uri=e;var o=r.parser||uu;return a.encoder=new o.Encoder,a.decoder=new o.Decoder,a._autoConnect=!1!==r.autoConnect,a._autoConnect&&a.open(),a}return ne(n,[{key:"reconnection",value:function(e){return arguments.length?(this._reconnection=!!e,this):this._reconnection}},{key:"reconnectionAttempts",value:function(e){return void 0===e?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}},{key:"reconnectionDelay",value:function(e){var t;return void 0===e?this._reconnectionDelay:(this._reconnectionDelay=e,null===(t=this.backoff)||void 0===t||t.setMin(e),this)}},{key:"randomizationFactor",value:function(e){var t;return void 0===e?this._randomizationFactor:(this._randomizationFactor=e,null===(t=this.backoff)||void 0===t||t.setJitter(e),this)}},{key:"reconnectionDelayMax",value:function(e){var t;return void 0===e?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,null===(t=this.backoff)||void 0===t||t.setMax(e),this)}},{key:"timeout",value:function(e){return arguments.length?(this._timeout=e,this):this._timeout}},{key:"maybeReconnectOnOpen",value:function(){!this._reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()}},{key:"open",value:function(e){var t=this;if(~this._readyState.indexOf("open"))return this;this.engine=new Jc(this.uri,this.opts);var n=this.engine,r=this;this._readyState="opening",this.skipReconnect=!1;var a=du(n,"open",(function(){r.onopen(),e&&e()})),i=function(n){t.cleanup(),t._readyState="closed",t.emitReserved("error",n),e?e(n):t.maybeReconnectOnOpen()},o=du(n,"error",i);if(!1!==this._timeout){var s=this.setTimeoutFn((function(){a(),i(new Error("timeout")),n.close()}),this._timeout);this.opts.autoUnref&&s.unref(),this.subs.push((function(){t.clearTimeoutFn(s)}))}return this.subs.push(a),this.subs.push(o),this}},{key:"connect",value:function(e){return this.open(e)}},{key:"onopen",value:function(){this.cleanup(),this._readyState="open",this.emitReserved("open");var e=this.engine;this.subs.push(du(e,"ping",this.onping.bind(this)),du(e,"data",this.ondata.bind(this)),du(e,"error",this.onerror.bind(this)),du(e,"close",this.onclose.bind(this)),du(this.decoder,"decoded",this.ondecoded.bind(this)))}},{key:"onping",value:function(){this.emitReserved("ping")}},{key:"ondata",value:function(e){try{this.decoder.add(e)}catch(e){this.onclose("parse error",e)}}},{key:"ondecoded",value:function(e){var t=this;Pc((function(){t.emitReserved("packet",e)}),this.setTimeoutFn)}},{key:"onerror",value:function(e){this.emitReserved("error",e)}},{key:"socket",value:function(e,t){var n=this.nsps[e];return n?this._autoConnect&&!n.active&&n.connect():(n=new hu(this,e,t),this.nsps[e]=n),n}},{key:"_destroy",value:function(e){for(var t=0,n=Object.keys(this.nsps);t<n.length;t++)if(this.nsps[n[t]].active)return;this._close()}},{key:"_packet",value:function(e){for(var t=this.encoder.encode(e),n=0;n<t.length;n++)this.engine.write(t[n],e.options)}},{key:"cleanup",value:function(){this.subs.forEach((function(e){return e()})),this.subs.length=0,this.decoder.destroy()}},{key:"_close",value:function(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close"),this.engine&&this.engine.close()}},{key:"disconnect",value:function(){return this._close()}},{key:"onclose",value:function(e,t){this.cleanup(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",e,t),this._reconnection&&!this.skipReconnect&&this.reconnect()}},{key:"reconnect",value:function(){var e=this;if(this._reconnecting||this.skipReconnect)return this;var t=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{var n=this.backoff.duration();this._reconnecting=!0;var r=this.setTimeoutFn((function(){t.skipReconnect||(e.emitReserved("reconnect_attempt",t.backoff.attempts),t.skipReconnect||t.open((function(n){n?(t._reconnecting=!1,t.reconnect(),e.emitReserved("reconnect_error",n)):t.onreconnect()})))}),n);this.opts.autoUnref&&r.unref(),this.subs.push((function(){e.clearTimeoutFn(r)}))}}},{key:"onreconnect",value:function(){var e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",e)}}]),n}(mc),gu={};function _u(e,t){"object"===Z(e)&&(t=e,e=void 0);var n,r=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2?arguments[2]:void 0,r=e;n=n||"undefined"!=typeof location&&location,null==e&&(e=n.protocol+"//"+n.host),"string"==typeof e&&("/"===e.charAt(0)&&(e="/"===e.charAt(1)?n.protocol+e:n.host+e),/^(https?|wss?):\/\//.test(e)||(e=void 0!==n?n.protocol+"//"+e:"https://"+e),r=$c(e)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port="80":/^(http|ws)s$/.test(r.protocol)&&(r.port="443")),r.path=r.path||"/";var a=-1!==r.host.indexOf(":")?"["+r.host+"]":r.host;return r.id=r.protocol+"://"+a+":"+r.port+t,r.href=r.protocol+"://"+a+(n&&n.port===r.port?"":":"+r.port),r}(e,(t=t||{}).path||"/socket.io"),a=r.source,i=r.id;return t.forceNew||t["force new connection"]||!1===t.multiplex||gu[i]&&r.path in gu[i].nsps?n=new mu(a,t):(gu[i]||(gu[i]=new mu(a,t)),n=gu[i]),r.query&&!t.query&&(t.query=r.queryKey),n.socket(r.path,t)}function yu(){}function vu(){vu.init.call(this)}function bu(e){return void 0===e._maxListeners?vu.defaultMaxListeners:e._maxListeners}function wu(e,t,n,r){var a,i,o;if("function"!=typeof n)throw new TypeError('"listener" argument must be a function');if((i=e._events)?(i.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),i=e._events),o=i[t]):(i=e._events=new yu,e._eventsCount=0),o){if("function"==typeof o?o=i[t]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),!o.warned&&(a=bu(e))&&a>0&&o.length>a){o.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=o.length,function(e){"function"==typeof console.warn?console.warn(e):console.log(e)}(s)}}else o=i[t]=n,++e._eventsCount;return e}function xu(e,t,n){var r=!1;function a(){e.removeListener(t,a),r||(r=!0,n.apply(e,arguments))}return a.listener=n,a}function Su(e){var t=this._events;if(t){var n=t[e];if("function"==typeof n)return 1;if(n)return n.length}return 0}function ku(e,t){for(var n=new Array(t);t--;)n[t]=e[t];return n}Object.assign(_u,{Manager:mu,Socket:hu,io:_u,connect:_u}),yu.prototype=Object.create(null),vu.EventEmitter=vu,vu.usingDomains=!1,vu.prototype.domain=void 0,vu.prototype._events=void 0,vu.prototype._maxListeners=void 0,vu.defaultMaxListeners=10,vu.init=function(){this.domain=null,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new yu,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},vu.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=e,this},vu.prototype.getMaxListeners=function(){return bu(this)},vu.prototype.emit=function(e){var t,n,r,a,i,o,s,l="error"===e;if(o=this._events)l=l&&null==o.error;else if(!l)return!1;if(s=this.domain,l){if(t=arguments[1],!s){if(t instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=s,t.domainThrown=!1,s.emit("error",t),!1}if(!(n=o[e]))return!1;var u="function"==typeof n;switch(r=arguments.length){case 1:!function(e,t,n){if(t)e.call(n);else for(var r=e.length,a=ku(e,r),i=0;i<r;++i)a[i].call(n)}(n,u,this);break;case 2:!function(e,t,n,r){if(t)e.call(n,r);else for(var a=e.length,i=ku(e,a),o=0;o<a;++o)i[o].call(n,r)}(n,u,this,arguments[1]);break;case 3:!function(e,t,n,r,a){if(t)e.call(n,r,a);else for(var i=e.length,o=ku(e,i),s=0;s<i;++s)o[s].call(n,r,a)}(n,u,this,arguments[1],arguments[2]);break;case 4:!function(e,t,n,r,a,i){if(t)e.call(n,r,a,i);else for(var o=e.length,s=ku(e,o),l=0;l<o;++l)s[l].call(n,r,a,i)}(n,u,this,arguments[1],arguments[2],arguments[3]);break;default:for(a=new Array(r-1),i=1;i<r;i++)a[i-1]=arguments[i];!function(e,t,n,r){if(t)e.apply(n,r);else for(var a=e.length,i=ku(e,a),o=0;o<a;++o)i[o].apply(n,r)}(n,u,this,a)}return!0},vu.prototype.on=vu.prototype.addListener=function(e,t){return wu(this,e,t,!1)},vu.prototype.prependListener=function(e,t){return wu(this,e,t,!0)},vu.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.on(e,xu(this,e,t)),this},vu.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.prependListener(e,xu(this,e,t)),this},vu.prototype.removeListener=function(e,t){var n,r,a,i,o;if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');if(!(r=this._events))return this;if(!(n=r[e]))return this;if(n===t||n.listener&&n.listener===t)0==--this._eventsCount?this._events=new yu:(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(a=-1,i=n.length;i-- >0;)if(n[i]===t||n[i].listener&&n[i].listener===t){o=n[i].listener,a=i;break}if(a<0)return this;if(1===n.length){if(n[0]=void 0,0==--this._eventsCount)return this._events=new yu,this;delete r[e]}else!function(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}(n,a);r.removeListener&&this.emit("removeListener",e,o||t)}return this},vu.prototype.removeAllListeners=function(e){var t,n;if(!(n=this._events))return this;if(!n.removeListener)return 0===arguments.length?(this._events=new yu,this._eventsCount=0):n[e]&&(0==--this._eventsCount?this._events=new yu:delete n[e]),this;if(0===arguments.length){for(var r,a=Object.keys(n),i=0;i<a.length;++i)"removeListener"!==(r=a[i])&&this.removeAllListeners(r);return this.removeAllListeners("removeListener"),this._events=new yu,this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(t)do{this.removeListener(e,t[t.length-1])}while(t[0]);return this},vu.prototype.listeners=function(e){var t,n,r=this._events;return n=r&&(t=r[e])?"function"==typeof t?[t.listener||t]:function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(t):[],n},vu.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):Su.call(e,t)},vu.prototype.listenerCount=Su,vu.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};var Eu="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e},Au=/%[sdj%]/g;function Cu(e){if(!Bu(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(Ou(arguments[n]));return t.join(" ")}n=1;for(var r=arguments,a=r.length,i=String(e).replace(Au,(function(e){if("%%"===e)return"%";if(n>=a)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),o=r[n];n<a;o=r[++n])ju(o)||!Gu(o)?i+=" "+o:i+=" "+Ou(o);return i}function Ru(e,t){if(Uu(pt.process))return function(){return Ru(e,t).apply(this,arguments)};if(!0===jt.noDeprecation)return e;var n=!1;return function(){if(!n){if(jt.throwDeprecation)throw new Error(t);jt.traceDeprecation?console.trace(t):console.error(t),n=!0}return e.apply(this,arguments)}}var Nu,Iu={};function Tu(e){return Uu(Nu)&&(Nu=jt.env.NODE_DEBUG||""),e=e.toUpperCase(),Iu[e]||(Iu[e]=new RegExp("\\b"+e+"\\b","i").test(Nu)?function(){var t=Cu.apply(null,arguments);console.error("%s %d: %s",e,0,t)}:function(){}),Iu[e]}function Ou(e,t){var n={seen:[],stylize:Lu};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),qu(t)?n.showHidden=t:t&&function(e,t){if(!t||!Gu(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]]}(n,t),Uu(n.showHidden)&&(n.showHidden=!1),Uu(n.depth)&&(n.depth=2),Uu(n.colors)&&(n.colors=!1),Uu(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=Fu),Du(n,e,n.depth)}function Fu(e,t){var n=Ou.styles[t];return n?"["+Ou.colors[n][0]+"m"+e+"["+Ou.colors[n][1]+"m":e}function Lu(e,t){return e}function Du(e,t,n){if(e.customInspect&&t&&Ju(t.inspect)&&t.inspect!==Ou&&(!t.constructor||t.constructor.prototype!==t)){var r=t.inspect(n,e);return Bu(r)||(r=Du(e,r,n)),r}var a=function(e,t){if(Uu(t))return e.stylize("undefined","undefined");if(Bu(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return"number"==typeof t?e.stylize(""+t,"number"):qu(t)?e.stylize(""+t,"boolean"):ju(t)?e.stylize("null","null"):void 0}(e,t);if(a)return a;var i=Object.keys(t),o=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(i);if(e.showHidden&&(i=Object.getOwnPropertyNames(t)),$u(t)&&(i.indexOf("message")>=0||i.indexOf("description")>=0))return Mu(t);if(0===i.length){if(Ju(t))return e.stylize("[Function"+(t.name?": "+t.name:"")+"]","special");if(zu(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(Hu(t))return e.stylize(Date.prototype.toString.call(t),"date");if($u(t))return Mu(t)}var s,l="",c=!1,u=["{","}"];return Array.isArray(t)&&(c=!0,u=["[","]"]),Ju(t)&&(l=" [Function"+(t.name?": "+t.name:"")+"]"),zu(t)&&(l=" "+RegExp.prototype.toString.call(t)),Hu(t)&&(l=" "+Date.prototype.toUTCString.call(t)),$u(t)&&(l=" "+Mu(t)),0!==i.length||c&&0!=t.length?n<0?zu(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),s=c?function(e,t,n,r,a){for(var i=[],o=0,s=t.length;o<s;++o)Wu(t,String(o))?i.push(Pu(e,t,n,r,String(o),!0)):i.push("");return a.forEach((function(a){a.match(/^\d+$/)||i.push(Pu(e,t,n,r,a,!0))})),i}(e,t,n,o,i):i.map((function(r){return Pu(e,t,n,o,r,c)})),e.seen.pop(),function(e,t,n){var r=e.reduce((function(e,t){return t.indexOf("\n"),e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0);return r>60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}(s,l,u)):u[0]+l+u[1]}function Mu(e){return"["+Error.prototype.toString.call(e)+"]"}function Pu(e,t,n,r,a,i){var o,s,l;if((l=Object.getOwnPropertyDescriptor(t,a)||{value:t[a]}).get?s=e.stylize(l.set?"[Getter/Setter]":"[Getter]","special"):l.set&&(s=e.stylize("[Setter]","special")),Wu(r,a)||(o="["+a+"]"),s||(e.seen.indexOf(l.value)<0?(s=ju(n)?Du(e,l.value,null):Du(e,l.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),Uu(o)){if(i&&a.match(/^\d+$/))return s;(o=JSON.stringify(""+a)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+s}function qu(e){return"boolean"==typeof e}function ju(e){return null===e}function Bu(e){return"string"==typeof e}function Uu(e){return void 0===e}function zu(e){return Gu(e)&&"[object RegExp]"===Vu(e)}function Gu(e){return"object"===Z(e)&&null!==e}function Hu(e){return Gu(e)&&"[object Date]"===Vu(e)}function $u(e){return Gu(e)&&("[object Error]"===Vu(e)||e instanceof Error)}function Ju(e){return"function"==typeof e}function Vu(e){return Object.prototype.toString.call(e)}function Wu(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Ku(){this.head=null,this.tail=null,this.length=0}Ou.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},Ou.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},Ku.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},Ku.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},Ku.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return this.head=1===this.length?this.tail=null:this.head.next,--this.length,e}},Ku.prototype.clear=function(){this.head=this.tail=null,this.length=0},Ku.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n},Ku.prototype.concat=function(e){if(0===this.length)return Xt.alloc(0);if(1===this.length)return this.head.data;for(var t=Xt.allocUnsafe(e>>>0),n=this.head,r=0;n;)n.data.copy(t,r),r+=n.data.length,n=n.next;return t};var Yu=Xt.isEncoding||function(e){switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function Zu(e){switch(this.encoding=(e||"utf8").toLowerCase().replace(/[-_]/,""),function(e){if(e&&!Yu(e))throw new Error("Unknown encoding: "+e)}(e),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=Qu;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=ed;break;default:return void(this.write=Xu)}this.charBuffer=new Xt(6),this.charReceived=0,this.charLength=0}function Xu(e){return e.toString(this.encoding)}function Qu(e){this.charReceived=e.length%2,this.charLength=this.charReceived?2:0}function ed(e){this.charReceived=e.length%3,this.charLength=this.charReceived?3:0}Zu.prototype.write=function(e){for(var t="";this.charLength;){var n=e.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:e.length;if(e.copy(this.charBuffer,this.charReceived,0,n),this.charReceived+=n,this.charReceived<this.charLength)return"";if(e=e.slice(n,e.length),!((r=(t=this.charBuffer.slice(0,this.charLength).toString(this.encoding)).charCodeAt(t.length-1))>=55296&&r<=56319)){if(this.charReceived=this.charLength=0,0===e.length)return t;break}this.charLength+=this.surrogateSize,t=""}this.detectIncompleteChar(e);var r,a=e.length;if(this.charLength&&(e.copy(this.charBuffer,0,e.length-this.charReceived,a),a-=this.charReceived),(r=(t+=e.toString(this.encoding,0,a)).charCodeAt(a=t.length-1))>=55296&&r<=56319){var i=this.surrogateSize;return this.charLength+=i,this.charReceived+=i,this.charBuffer.copy(this.charBuffer,i,0,i),e.copy(this.charBuffer,0,0,i),t.substring(0,a)}return t},Zu.prototype.detectIncompleteChar=function(e){for(var t=e.length>=3?3:e.length;t>0;t--){var n=e[e.length-t];if(1==t&&n>>5==6){this.charLength=2;break}if(t<=2&&n>>4==14){this.charLength=3;break}if(t<=3&&n>>3==30){this.charLength=4;break}}this.charReceived=t},Zu.prototype.end=function(e){var t="";if(e&&e.length&&(t=this.write(e)),this.charReceived){var n=this.encoding;t+=this.charBuffer.slice(0,this.charReceived).toString(n)}return t},rd.ReadableState=nd;var td=Tu("stream");function nd(e,t){this.objectMode=!!(e=e||{}).objectMode,t instanceof Td&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var n=e.highWaterMark;this.highWaterMark=n||0===n?n:this.objectMode?16:16384,this.highWaterMark=~~this.highWaterMark,this.buffer=new Ku,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(this.decoder=new Zu(e.encoding),this.encoding=e.encoding)}function rd(e){if(!(this instanceof rd))return new rd(e);this._readableState=new nd(e,this),this.readable=!0,e&&"function"==typeof e.read&&(this._read=e.read),vu.call(this)}function ad(e,t,n,r,a){var i=function(e,t){var n=null;return Mn(t)||"string"==typeof t||null==t||e.objectMode||(n=new TypeError("Invalid non-string/buffer chunk")),n}(t,n);if(i)e.emit("error",i);else if(null===n)t.reading=!1,function(e,t){if(!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,sd(e)}}(e,t);else if(t.objectMode||n&&n.length>0)if(t.ended&&!a){var o=new Error("stream.push() after EOF");e.emit("error",o)}else if(t.endEmitted&&a){var s=new Error("stream.unshift() after end event");e.emit("error",s)}else{var l;!t.decoder||a||r||(n=t.decoder.write(n),l=!t.objectMode&&0===n.length),a||(t.reading=!1),l||(t.flowing&&0===t.length&&!t.sync?(e.emit("data",n),e.read(0)):(t.length+=t.objectMode?1:n.length,a?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&sd(e))),function(e,t){t.readingMore||(t.readingMore=!0,At(cd,e,t))}(e,t)}else a||(t.reading=!1);return function(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||0===e.length)}(t)}Eu(rd,vu),rd.prototype.push=function(e,t){var n=this._readableState;return n.objectMode||"string"!=typeof e||(t=t||n.defaultEncoding)!==n.encoding&&(e=Xt.from(e,t),t=""),ad(this,n,e,t,!1)},rd.prototype.unshift=function(e){return ad(this,this._readableState,e,"",!0)},rd.prototype.isPaused=function(){return!1===this._readableState.flowing},rd.prototype.setEncoding=function(e){return this._readableState.decoder=new Zu(e),this._readableState.encoding=e,this};var id=8388608;function od(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!=e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=function(e){return e>=id?e=id:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function sd(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(td("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?At(ld,e):ld(e))}function ld(e){td("emit readable"),e.emit("readable"),fd(e)}function cd(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(td("maybeReadMore read 0"),e.read(0),n!==t.length);)n=t.length;t.readingMore=!1}function ud(e){td("readable nexttick read 0"),e.read(0)}function dd(e,t){t.reading||(td("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),fd(e),t.flowing&&!t.reading&&e.read(0)}function fd(e){var t=e._readableState;for(td("flow",t.flowing);t.flowing&&null!==e.read(););}function hd(e,t){return 0===t.length?null:(t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;return e<t.head.data.length?(r=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):r=e===t.head.data.length?t.shift():n?function(e,t){var n=t.head,r=1,a=n.data;for(e-=a.length;n=n.next;){var i=n.data,o=e>i.length?i.length:e;if(a+=o===i.length?i:i.slice(0,e),0==(e-=o)){o===i.length?(++r,t.head=n.next?n.next:t.tail=null):(t.head=n,n.data=i.slice(o));break}++r}return t.length-=r,a}(e,t):function(e,t){var n=Xt.allocUnsafe(e),r=t.head,a=1;for(r.data.copy(n),e-=r.data.length;r=r.next;){var i=r.data,o=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,o),0==(e-=o)){o===i.length?(++a,t.head=r.next?r.next:t.tail=null):(t.head=r,r.data=i.slice(o));break}++a}return t.length-=a,n}(e,t),r}(e,t.buffer,t.decoder),n);var n}function pd(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,At(md,t,e))}function md(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function gd(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}function _d(){}function yd(e,t,n){this.chunk=e,this.encoding=t,this.callback=n,this.next=null}function vd(e,t){Object.defineProperty(this,"buffer",{get:Ru((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.")}),this.objectMode=!!(e=e||{}).objectMode,t instanceof Td&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var n=e.highWaterMark;this.highWaterMark=n||0===n?n:this.objectMode?16:16384,this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.decodeStrings=!(!1===e.decodeStrings),this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,a=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,a){--t.pendingcb,n?At(a,r):a(r),e._writableState.errorEmitted=!0,e.emit("error",r)}(e,n,r,t,a);else{var i=kd(n);i||n.corked||n.bufferProcessing||!n.bufferedRequest||Sd(e,n),r?At(xd,e,n,i,a):xd(e,n,i,a)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new Cd(this)}function bd(e){if(!(this instanceof bd||this instanceof Td))return new bd(e);this._writableState=new vd(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev)),vu.call(this)}function wd(e,t,n,r,a,i,o){t.writelen=r,t.writecb=o,t.writing=!0,t.sync=!0,n?e._writev(a,t.onwrite):e._write(a,i,t.onwrite),t.sync=!1}function xd(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),Ad(e,t)}function Sd(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=new Array(t.bufferedRequestCount),a=t.corkedRequestsFree;a.entry=n;for(var i=0;n;)r[i]=n,n=n.next,i+=1;wd(e,t,!0,t.length,r,"",a.finish),t.pendingcb++,t.lastBufferedRequest=null,a.next?(t.corkedRequestsFree=a.next,a.next=null):t.corkedRequestsFree=new Cd(t)}else{for(;n;){var o=n.chunk;if(wd(e,t,!1,t.objectMode?1:o.length,o,n.encoding,n.callback),n=n.next,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequestCount=0,t.bufferedRequest=n,t.bufferProcessing=!1}function kd(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function Ed(e,t){t.prefinished||(t.prefinished=!0,e.emit("prefinish"))}function Ad(e,t){var n=kd(t);return n&&(0===t.pendingcb?(Ed(e,t),t.finished=!0,e.emit("finish")):Ed(e,t)),n}function Cd(e){var t=this;this.next=null,this.entry=null,this.finish=function(n){var r=t.entry;for(t.entry=null;r;){var a=r.callback;e.pendingcb--,a(n),r=r.next}e.corkedRequestsFree?e.corkedRequestsFree.next=t:e.corkedRequestsFree=t}}rd.prototype.read=function(e){td("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return td("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?pd(this):sd(this),null;if(0===(e=od(e,t))&&t.ended)return 0===t.length&&pd(this),null;var r,a=t.needReadable;return td("need readable",a),(0===t.length||t.length-e<t.highWaterMark)&&td("length less than watermark",a=!0),t.ended||t.reading?td("reading or ended",a=!1):a&&(td("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=od(n,t))),null===(r=e>0?hd(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&pd(this)),null!==r&&this.emit("data",r),r},rd.prototype._read=function(e){this.emit("error",new Error("not implemented"))},rd.prototype.pipe=function(e,t){var n=this,r=this._readableState;switch(r.pipesCount){case 0:r.pipes=e;break;case 1:r.pipes=[r.pipes,e];break;default:r.pipes.push(e)}r.pipesCount+=1,td("pipe count=%d opts=%j",r.pipesCount,t);var a=t&&!1===t.end?c:o;function i(e){td("onunpipe"),e===n&&c()}function o(){td("onend"),e.end()}r.endEmitted?At(a):n.once("end",a),e.on("unpipe",i);var s=function(e){return function(){var t=e._readableState;td("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&e.listeners("data").length&&(t.flowing=!0,fd(e))}}(n);e.on("drain",s);var l=!1;function c(){td("cleanup"),e.removeListener("close",h),e.removeListener("finish",p),e.removeListener("drain",s),e.removeListener("error",f),e.removeListener("unpipe",i),n.removeListener("end",o),n.removeListener("end",c),n.removeListener("data",d),l=!0,!r.awaitDrain||e._writableState&&!e._writableState.needDrain||s()}var u=!1;function d(t){td("ondata"),u=!1,!1!==e.write(t)||u||((1===r.pipesCount&&r.pipes===e||r.pipesCount>1&&-1!==gd(r.pipes,e))&&!l&&(td("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,u=!0),n.pause())}function f(t){td("onerror",t),m(),e.removeListener("error",f),0===e.listeners("error").length&&e.emit("error",t)}function h(){e.removeListener("finish",p),m()}function p(){td("onfinish"),e.removeListener("close",h),m()}function m(){td("unpipe"),n.unpipe(e)}return n.on("data",d),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",f),e.once("close",h),e.once("finish",p),e.emit("pipe",n),r.flowing||(td("pipe resume"),n.resume()),e},rd.prototype.unpipe=function(e){var t=this._readableState;if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this)),this;if(!e){var n=t.pipes,r=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a<r;a++)n[a].emit("unpipe",this);return this}var i=gd(t.pipes,e);return-1===i||(t.pipes.splice(i,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this)),this},rd.prototype.addListener=rd.prototype.on=function(e,t){var n=vu.prototype.on.call(this,e,t);if("data"===e)!1!==this._readableState.flowing&&this.resume();else if("readable"===e){var r=this._readableState;r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.emittedReadable=!1,r.reading?r.length&&sd(this):At(ud,this))}return n},rd.prototype.resume=function(){var e=this._readableState;return e.flowing||(td("resume"),e.flowing=!0,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,At(dd,e,t))}(this,e)),this},rd.prototype.pause=function(){return td("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(td("pause"),this._readableState.flowing=!1,this.emit("pause")),this},rd.prototype.wrap=function(e){var t=this._readableState,n=!1,r=this;for(var a in e.on("end",(function(){if(td("wrapped end"),t.decoder&&!t.ended){var e=t.decoder.end();e&&e.length&&r.push(e)}r.push(null)})),e.on("data",(function(a){td("wrapped data"),t.decoder&&(a=t.decoder.write(a)),t.objectMode&&null==a||(t.objectMode||a&&a.length)&&(r.push(a)||(n=!0,e.pause()))})),e)void 0===this[a]&&"function"==typeof e[a]&&(this[a]=function(t){return function(){return e[t].apply(e,arguments)}}(a));return function(t,n){for(var a=0,i=t.length;a<i;a++)e.on(o=t[a],r.emit.bind(r,o));var o}(["error","close","destroy","pause","resume"]),r._read=function(t){td("wrapped _read",t),n&&(n=!1,e.resume())},r},rd._fromList=hd,bd.WritableState=vd,Eu(bd,vu),vd.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},bd.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},bd.prototype.write=function(e,t,n){var r=this._writableState,a=!1;return"function"==typeof t&&(n=t,t=null),Xt.isBuffer(e)?t="buffer":t||(t=r.defaultEncoding),"function"!=typeof n&&(n=_d),r.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),At(t,n)}(this,n):function(e,t,n,r){var a=!0,i=!1;return null===n?i=new TypeError("May not write null values to stream"):Xt.isBuffer(n)||"string"==typeof n||void 0===n||t.objectMode||(i=new TypeError("Invalid non-string/buffer chunk")),i&&(e.emit("error",i),At(r,i),a=!1),a}(this,r,e,n)&&(r.pendingcb++,a=function(e,t,n,r,a){n=function(e,t,n){return e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=Xt.from(t,n)),t}(t,n,r),Xt.isBuffer(n)&&(r="buffer");var i=t.objectMode?1:n.length;t.length+=i;var o=t.length<t.highWaterMark;if(o||(t.needDrain=!0),t.writing||t.corked){var s=t.lastBufferedRequest;t.lastBufferedRequest=new yd(n,r,a),s?s.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else wd(e,t,!1,i,n,r,a);return o}(this,r,e,t,n)),a},bd.prototype.cork=function(){this._writableState.corked++},bd.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||Sd(this,e))},bd.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},bd.prototype._write=function(e,t,n){n(new Error("not implemented"))},bd.prototype._writev=null,bd.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,Ad(e,t),n&&(t.finished?At(n):e.once("finish",n)),t.ended=!0,e.writable=!1}(this,r,n)},Eu(Td,rd);for(var Rd=Object.keys(bd.prototype),Nd=0;Nd<Rd.length;Nd++){var Id=Rd[Nd];Td.prototype[Id]||(Td.prototype[Id]=bd.prototype[Id])}function Td(e){if(!(this instanceof Td))return new Td(e);rd.call(this,e),bd.call(this,e),e&&!1===e.readable&&(this.readable=!1),e&&!1===e.writable&&(this.writable=!1),this.allowHalfOpen=!0,e&&!1===e.allowHalfOpen&&(this.allowHalfOpen=!1),this.once("end",Od)}function Od(){this.allowHalfOpen||this._writableState.ended||At(Fd,this)}function Fd(e){e.end()}function Ld(e){this.afterTransform=function(t,n){return function(e,t,n){var r=e._transformState;r.transforming=!1;var a=r.writecb;if(!a)return e.emit("error",new Error("no writecb in Transform class"));r.writechunk=null,r.writecb=null,null!=n&&e.push(n),a(t);var i=e._readableState;i.reading=!1,(i.needReadable||i.length<i.highWaterMark)&&e._read(i.highWaterMark)}(e,t,n)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null,this.writeencoding=null}function Dd(e){if(!(this instanceof Dd))return new Dd(e);Td.call(this,e),this._transformState=new Ld(this);var t=this;this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.once("prefinish",(function(){"function"==typeof this._flush?this._flush((function(e){Md(t,e)})):Md(t)}))}function Md(e,t){if(t)return e.emit("error",t);var n=e._transformState;if(e._writableState.length)throw new Error("Calling transform done when ws.length != 0");if(n.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}function Pd(e){if(!(this instanceof Pd))return new Pd(e);Dd.call(this,e)}function qd(){vu.call(this)}function jd(e){return e.replace(/%([0-9A-Fa-f]{2})/g,(function(e,t){return String.fromCharCode(parseInt(t,16))}))}function Bd(e,t){return String(t).replace(e,(function(e){var t=e.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0");return"%".concat(t)}))}function Ud(e){return Bd(/[\n;\r\t=%&,\x00-\x1f\x7f-\xff]/g,e)}function zd(e){return Bd(/[\n\r\t%\x00-\x1f\x7f-\xff]/g,e)}function Gd(e){if(!e||!e.length||"."===e)return{};var t={};return e.replace(/\r?\n$/,"").split(";").forEach((function(e){var n,r=e.split("=",2);if(r[1]&&r[1].length){r[0]=r[0].trim();var a=t[r[0].trim()];a||(t[r[0]]=a=[]),(n=a).push.apply(n,me(r[1].split(",").map((function(e){return e.trim()})).map(jd)))}})),t}function Hd(e){var t=e.split("\t").map((function(e){return"."===e||""===e?null:e}));return{seq_id:t[0]&&jd(t[0]),source:t[1]&&jd(t[1]),type:t[2]&&jd(t[2]),start:null===t[3]?null:parseInt(t[3],10),end:null===t[4]?null:parseInt(t[4],10),score:null===t[5]?null:parseFloat(t[5]),strand:t[6],phase:t[7],attributes:null===t[8]?null:Gd(t[8])}}function $d(e){var t=/^\s*##\s*(\S+)\s*(.*)/.exec(e);if(!t)return null;var n=he(t,2)[1],r=he(t,3)[2],a={directive:n};if(r.length&&(r=r.replace(/\r?\n$/,""),a.value=r),"sequence-region"===n){var i=r.split(/\s+/,3);return K(K({},a),{},{seq_id:i[0],start:i[1]&&i[1].replace(/\D/g,""),end:i[2]&&i[2].replace(/\D/g,"")})}if("genome-build"===n){var o=he(r.split(/\s+/,2),2),s=o[0],l=o[1];return K(K({},a),{},{source:s,buildName:l})}return a}function Jd(e){var t=[];return Object.entries(e).forEach((function(e){var n,r=he(e,2),a=r[0],i=r[1];i&&(n=i.hasOwnProperty("toString")?Ud(i.toString()):Array.isArray(i)?i.map(Ud).join(","):Ud(i),t.push("".concat(Ud(a),"=").concat(n)))})),t.length?t.join(";"):"."}function Vd(e,t){var n=null==e.attributes?".":Jd(e.attributes),r=[null===e.seq_id?".":zd(e.seq_id),null===e.source?".":zd(e.source),null===e.type?".":zd(e.type),null===e.start?".":zd(e.start),null===e.end?".":zd(e.end),null===e.score?".":zd(e.score),null===e.strand?".":zd(e.strand),null===e.phase?".":zd(e.phase),n],a="".concat(r.join("\t"),"\n");return t[a]?"":(t[a]=!0,a)}function Wd(e,t){if(Array.isArray(e))return e.map((function(e){return Wd(e,t)})).join("");var n,r=[Vd(e,t)];return void 0!==(n=e).child_features&&void 0!==n.derived_features&&r.push.apply(r,me(e.child_features.map((function(e){return Wd(e,t)}))).concat(me(e.derived_features.map((function(e){return Wd(e,t)}))))),r.join("")}function Kd(e){return Wd(e,{})}function Yd(e){var t="##".concat(e.directive);return e.value&&(t+=" ".concat(e.value)),t+"\n"}function Zd(e){return"# ".concat(e.comment,"\n")}function Xd(e){return">".concat(e.id).concat(e.description?" ".concat(e.description):"","\n").concat(e.sequence,"\n")}function Qd(e){function t(e){return"attributes"in e?Kd(e):"directive"in e?Yd(e):"sequence"in e?Xd(e):"comment"in e?Zd(e):"# (invalid item found during format)\n"}return Array.isArray(e)?e.map(t):t(e)}Eu(Dd,Td),Dd.prototype.push=function(e,t){return this._transformState.needTransform=!1,Td.prototype.push.call(this,e,t)},Dd.prototype._transform=function(e,t,n){throw new Error("Not implemented")},Dd.prototype._write=function(e,t,n){var r=this._transformState;if(r.writecb=n,r.writechunk=e,r.writeencoding=t,!r.transforming){var a=this._readableState;(r.needTransform||a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}},Dd.prototype._read=function(e){var t=this._transformState;null!==t.writechunk&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0},Eu(Pd,Dd),Pd.prototype._transform=function(e,t,n){n(null,e)},Eu(qd,vu),qd.Readable=rd,qd.Writable=bd,qd.Duplex=Td,qd.Transform=Dd,qd.PassThrough=Pd,qd.Stream=qd,qd.prototype.pipe=function(e,t){var n=this;function r(t){e.writable&&!1===e.write(t)&&n.pause&&n.pause()}function a(){n.readable&&n.resume&&n.resume()}n.on("data",r),e.on("drain",a),e._isStdio||t&&!1===t.end||(n.on("end",o),n.on("close",s));var i=!1;function o(){i||(i=!0,e.end())}function s(){i||(i=!0,"function"==typeof e.destroy&&e.destroy())}function l(e){if(c(),0===vu.listenerCount(this,"error"))throw e}function c(){n.removeListener("data",r),e.removeListener("drain",a),n.removeListener("end",o),n.removeListener("close",s),n.removeListener("error",l),e.removeListener("error",l),n.removeListener("end",c),n.removeListener("close",c),e.removeListener("close",c)}return n.on("error",l),e.on("error",l),n.on("end",c),n.on("close",c),e.on("close",c),e.emit("pipe",n),e};var ef={__proto__:null,unescape:jd,escape:Ud,escapeColumn:zd,parseAttributes:Gd,parseFeature:Hd,parseDirective:$d,formatAttributes:Jd,formatFeature:Kd,formatDirective:Yd,formatComment:Zd,formatSequence:Xd,formatItem:Qd},tf=function(){function e(t){ee(this,e),this.seqCallback=t,this.currentSequence=void 0}return ne(e,[{key:"addLine",value:function(e){var t=/^>\s*(\S+)\s*(.*)/.exec(e);t?(this._flush(),this.currentSequence={id:t[1],sequence:""},t[2]&&(this.currentSequence.description=t[2].trim())):this.currentSequence&&/\S/.test(e)&&(this.currentSequence.sequence+=e.replace(/\s/g,""))}},{key:"_flush",value:function(){this.currentSequence&&this.seqCallback(this.currentSequence)}},{key:"finish",value:function(){this._flush()}}]),e}(),nf=function(){function e(t){ee(this,e),this.fastaParser=void 0,this.eof=!1,this.lineNumber=0,this._underConstructionTopLevel=[],this._underConstructionById={},this._completedReferences={},this._underConstructionOrphans={};var n=function(){};this.featureCallback=t.featureCallback||n,this.endCallback=t.endCallback||n,this.commentCallback=t.commentCallback||n,this.errorCallback=t.errorCallback||n,this.directiveCallback=t.directiveCallback||n,this.sequenceCallback=t.sequenceCallback||n,this.bufferSize=void 0===t.bufferSize?1e3:t.bufferSize}return ne(e,[{key:"addLine",value:function(e){if(this.fastaParser)this.fastaParser.addLine(e);else if(!this.eof)if(this.lineNumber+=1,/^\s*[^#\s>]/.test(e))this._bufferLine(e);else{var t=/^\s*(#+)(.*)/.exec(e);if(t){var n=he(t,2)[1],r=he(t,3)[2];if(3===n.length)this._emitAllUnderConstructionFeatures();else if(2===n.length){var a=$d(e);a&&("FASTA"===a.directive?(this._emitAllUnderConstructionFeatures(),this.eof=!0,this.fastaParser=new tf(this.sequenceCallback)):this._emitItem(a))}else r=r.replace(/\s*/,""),this._emitItem({comment:r})}else if(/^\s*$/.test(e));else{if(!/^\s*>/.test(e)){var i=e.replace(/\r?\n?$/g,"");throw new Error("GFF3 parse error. Cannot parse '".concat(i,"'."))}this._emitAllUnderConstructionFeatures(),this.eof=!0,this.fastaParser=new tf(this.sequenceCallback),this.fastaParser.addLine(e)}}}},{key:"finish",value:function(){this._emitAllUnderConstructionFeatures(),this.fastaParser&&this.fastaParser.finish(),this.endCallback()}},{key:"_emitItem",value:function(e){Array.isArray(e)?this.featureCallback(e):"directive"in e?this.directiveCallback(e):"comment"in e&&this.commentCallback(e)}},{key:"_enforceBufferSizeLimit",value:function(){for(var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=function t(n){n&&Array.isArray(n)&&n[0].attributes&&n[0].attributes.ID&&n[0].attributes.ID[0]&&(n[0].attributes.ID.forEach((function(t){delete e._underConstructionById[t],delete e._completedReferences[t]})),n.forEach((function(e){e.child_features&&e.child_features.forEach((function(e){return t(e)})),e.derived_features&&e.derived_features.forEach((function(e){return t(e)}))})))};this._underConstructionTopLevel.length+t>this.bufferSize;){var r=this._underConstructionTopLevel.shift();r&&(this._emitItem(r),n(r))}}},{key:"_emitAllUnderConstructionFeatures",value:function(){if(this._underConstructionTopLevel.forEach(this._emitItem.bind(this)),this._underConstructionTopLevel=[],this._underConstructionById={},this._completedReferences={},Array.from(Object.values(this._underConstructionOrphans)).length)throw new Error("some features reference other features that do not exist in the file (or in the same '###' scope). ".concat(JSON.stringify(this._underConstructionOrphans)))}},{key:"_bufferLine",value:function(e){var t,n,r,a=this,i=K(K({},Hd(e)),{},{child_features:[],derived_features:[]}),o=(null===(t=i.attributes)||void 0===t?void 0:t.ID)||[],s=(null===(n=i.attributes)||void 0===n?void 0:n.Parent)||[],l=(null===(r=i.attributes)||void 0===r?void 0:r.Derives_from)||[];if(o.length||s.length||l.length){var c=void 0;o.forEach((function(e){var t=a._underConstructionById[e];t?(t[t.length-1].type!==i.type&&a._parseError('multi-line feature "'.concat(e,'" has inconsistent types: "').concat(i.type,'", "').concat(t[t.length-1].type,'"')),t.push(i),c=t):(c=[i],a._enforceBufferSizeLimit(1),s.length||l.length||a._underConstructionTopLevel.push(c),a._underConstructionById[e]=c,a._resolveReferencesTo(c,e))})),this._resolveReferencesFrom(c||[i],{Parent:s,Derives_from:l},o)}else this._emitItem([i])}},{key:"_resolveReferencesTo",value:function(e,t){var n=this._underConstructionOrphans[t];n&&(e.forEach((function(e){var t;(t=e.child_features).push.apply(t,me(n.Parent))})),e.forEach((function(e){var t;(t=e.derived_features).push.apply(t,me(n.Derives_from))})),delete this._underConstructionOrphans[t])}},{key:"_parseError",value:function(e){this.eof=!0,this.errorCallback("".concat(this.lineNumber,": ").concat(e))}},{key:"_resolveReferencesFrom",value:function(e,t,n){var r=this;function a(e,t,n){var r=e[t];r||(e[t]=r={});var a=r[n]||!1;return r[n]=!0,a}t.Parent.forEach((function(t){var i=r._underConstructionById[t];if(i)n.filter((function(e){return a(r._completedReferences,e,"Parent,".concat(t))})).length||i.forEach((function(t){t.child_features.push(e)}));else{var o=r._underConstructionOrphans[t];o||(r._underConstructionOrphans[t]=o={Parent:[],Derives_from:[]}),o.Parent.push(e)}})),t.Derives_from.forEach((function(t){var i=r._underConstructionById[t];if(i)n.filter((function(e){return a(r._completedReferences,e,"Derives_from,".concat(t))})).length||i.forEach((function(t){t.derived_features.push(e)}));else{var o=r._underConstructionOrphans[t];o||(r._underConstructionOrphans[t]=o={Parent:[],Derives_from:[]}),o.Derives_from.push(e)}}))}}]),e}();function rf(e){jt&&At?At(e):e()}function af(e){var t=K({encoding:"utf8",parseFeatures:!0,parseDirectives:!1,parseSequences:!0,parseComments:!1,bufferSize:1e3},e);return e.parseAll&&(t.parseFeatures=!0,t.parseDirectives=!0,t.parseComments=!0,t.parseSequences=!0),t}var of=function(e){ae(n,e);var t=de(n);function n(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};ee(this,n),(e=t.call(this,{objectMode:!0})).textBuffer="";var a=af(r);e.encoding=r.encoding||"utf8",e.decoder=new Zu;var i=e.push.bind(ue(e));return e.parser=new nf({featureCallback:a.parseFeatures?i:void 0,directiveCallback:a.parseDirectives?i:void 0,commentCallback:a.parseComments?i:void 0,sequenceCallback:a.parseSequences?i:void 0,errorCallback:function(t){return e.emit("error",t)},bufferSize:a.bufferSize}),e}return ne(n,[{key:"_addLine",value:function(e){e&&this.parser.addLine(e)}},{key:"_nextText",value:function(e){var t=this,n=(this.textBuffer+e).split(/\r?\n/);this.textBuffer=n.pop()||"",n.forEach((function(e){return t._addLine(e)}))}},{key:"_transform",value:function(e,t,n){this._nextText(this.decoder.write(e)),rf(n)}},{key:"_flush",value:function(e){this.decoder.end&&this._nextText(this.decoder.end()),null!=this.textBuffer&&this._addLine(this.textBuffer),this.parser.finish(),rf(e)}}]),n}(Dd),sf=function(e){ae(n,e);var t=de(n);function n(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return ee(this,n),(e=t.call(this,Object.assign(r,{objectMode:!0}))).linesSinceLastSyncMark=0,e.haveWeEmittedData=!1,e.fastaMode=!1,e.minLinesBetweenSyncMarks=r.minSyncLines||100,e.insertVersionDirective=r.insertVersionDirective||!1,e}return ne(n,[{key:"_transform",value:function(e,t,n){var r;if(!this.haveWeEmittedData&&this.insertVersionDirective){var a=Array.isArray(e)?e[0]:e;"directive"in a&&"gff-version"!==a.directive&&this.push("##gff-version 3\n")}if("sequence"in e&&!this.fastaMode&&(this.push("##FASTA\n"),this.fastaMode=!0),r=Array.isArray(e)?e.map(Qd).join(""):Qd(e),this.push(r),this.linesSinceLastSyncMark>=this.minLinesBetweenSyncMarks)this.push("###\n"),this.linesSinceLastSyncMark=0;else{for(var i=0,o=0;o<r.length;o+=1)"\n"===r[o]&&(i+=1);this.linesSinceLastSyncMark+=i}this.haveWeEmittedData=!0,rf(n)}}]),n}(Dd),lf={parseStream:function(){return new of(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{})},parseStringSync:function(e){if(!e)return[];var t=af(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}),n=[],r=n.push.bind(n),a=new nf({featureCallback:t.parseFeatures?r:void 0,directiveCallback:t.parseDirectives?r:void 0,commentCallback:t.parseComments?r:void 0,sequenceCallback:t.parseSequences?r:void 0,bufferSize:Infinity,errorCallback:function(e){throw e}});return e.split(/\r?\n/).forEach(a.addLine.bind(a)),a.finish(),n},formatSync:function(e){var t=[],n=[];e.forEach((function(e){"sequence"in e?n.push(e):t.push(e)}));var r=t.map(Qd).join("");return n.length&&(r+="##FASTA\n",r+=n.map(Xd).join("")),r},formatStream:function(){return new sf(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{})},formatFile:function(e,t){var n=K({insertVersionDirective:!0},arguments.length>2&&void 0!==arguments[2]?arguments[2]:{});return new Promise((function(r,a){e.pipe(new sf(n)).on("end",(function(){return r(null)})).on("error",a).pipe(t)}))},util:ef};async function cf(e,t,n){const r=lf.parseStringSync(t,{parseSequences:!0,parseComments:!0,parseDirectives:!1,parseFeatures:!0});if(0===r.length)throw new Error("No features found in GFF3 file");let a=0,i=n.assemblies.get(e);i||(i=n.addAssembly(e,"InMemoryFileDriver"));for(const e of r)if(Array.isArray(e)){const t=nr.gff3ToAnnotationFeature(e),n=i.refSeqs.get(t.refSeq)??i.addRefSeq(t.refSeq,t.refSeq);n.features.has(t._id)||n.addFeature(t)}else if("comment"in e)i.addComment(e.comment);else{a++;let t=i.refSeqs.get(e.id);t||(t=i.addRefSeq(e.id,e.id,e.description)),e.description&&!t.description&&t.setDescription(e.description),t.addSequence({start:0,stop:e.sequence.length,sequence:e.sequence})}if(0===a)throw new Error("No embedded FASTA section found in GFF3");const o=await uf(i);return n.addCheckResults(o),i}async function uf(e){const t=[];for(const n of e.refSeqs.values())for(const e of n.features.values())for(const r of z.checkRegistry.getChecks().values()){const a=await r.checkFeature(l.getSnapshot(e),((e,t)=>Promise.resolve(n.getSequence(e,t))));t.push(...a)}return t}async function df(e,t){let n;try{n=await e.text()}catch{n=""}return`${t?`${t} — `:""}${e.status} ${e.statusText}${n?` (${n})`:""}`}var ff={},hf=Hl.exports;Object.defineProperty(ff,"__esModule",{value:!0});var pf=ff.default=void 0;pf=ff.default=(0,hf($l).default)((0,I.default.jsx)("path",{d:"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"}),"Link");var mf={},gf=Hl.exports;Object.defineProperty(mf,"__esModule",{value:!0});var _f=mf.default=void 0;_f=mf.default=(0,gf($l).default)((0,I.default.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");const yf=m.makeStyles()((e=>({dialogTitle:{background:e.palette.primary.main,color:e.palette.primary.contrastText,padding:e.spacing(2)},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1.5),color:e.palette.primary.contrastText}}))),vf=p.observer((function(e){const{classes:t}=yf(),{handleClose:n,title:r,...a}=e;return L.default.createElement(h.Dialog,{...a,header:L.default.createElement(L.default.Fragment,null,L.default.createElement(c.DialogTitle,{className:t.dialogTitle},r),L.default.createElement(c.IconButton,{"aria-label":"close",onClick:n,className:t.closeButton},L.default.createElement(_f,null)))})}));var bf;function wf({changeManager:e,handleClose:t,session:n}){const{internetAccounts:a}=l.getRoot(n),{notify:i}=n,o=a.filter((e=>"ApolloInternetAccount"===e.type));if(0===o.length)throw new Error("No Apollo internet account found");const[s,u]=f.useState(""),[d,h]=f.useState(""),[p,m]=f.useState(!1),[g,_]=f.useState(null),[y,v]=f.useState(bf.GFF3),[b,w]=f.useState(!0),[x,S]=f.useState(!1),[k,E]=f.useState(o[0]),[A,C]=f.useState(""),[R,N]=f.useState(""),[I,T]=f.useState(""),[D,M]=f.useState(!1);let P=!1;try{const e=new URL(A);"http:"!==e.protocol&&"https:"!==e.protocol||(P=!0)}catch{}let q=!1;try{const e=new URL(R);"http:"!==e.protocol&&"https:"!==e.protocol||(q=!0)}catch{}let j=!1;try{const e=new URL(I);"http:"!==e.protocol&&"https:"!==e.protocol||(j=!0)}catch{}return L.default.createElement(vf,{open:!0,maxWidth:!1,"data-testid":"add-assembly-dialog",title:"Add new assembly",handleClose:t},D?L.default.createElement(F.default,null):null,L.default.createElement("form",{onSubmit:async function(r){r.preventDefault(),h(""),S(!0),M(!0),i(`Assembly "${s}" is being added`,"info"),t(),r.preventDefault();const{jobsManager:a}=n,o=new AbortController,l={name:`UploadAssemblyFile for ${s}`,statusMessage:"Pre-validating",progressPct:0,cancelCallback:()=>{o.abort(),a.abortJob(l.name)}};a.runJob(l);let c="";const{baseURL:u,getFetcher:d,internetAccountId:f}=k;if(y!==bf.EXTERNAL&&g){const e=new URL("files",u);e.searchParams.set("type",y);const t=e.href,n=new FormData;n.append("file",g),n.append("fileName",g.name),n.append("type",y);const r=d({locationType:"UriLocation",uri:t});if(r){a.update(l.name,"Uploading file, this may take awhile");const{signal:e}=o,i=await r(t,{method:"POST",body:n,signal:e});if(!i.ok){const e=await df(i,"Error when inserting new assembly (while uploading file)");return a.abortJob(l.name,e),void h(e)}c=(await i.json())._id}}let p;if(y===bf.EXTERNAL)p=new nr.AddAssemblyFromExternalChange({typeName:"AddAssemblyFromExternalChange",assembly:(new Wn).toHexString(),assemblyName:s,externalLocation:{fa:A,fai:R,...I?{gzi:I}:{}}});else{const e={assembly:(new Wn).toHexString(),assemblyName:s,fileIds:{fa:c}};p=y===bf.GFF3&&b?new nr.AddAssemblyAndFeaturesFromFileChange({typeName:"AddAssemblyAndFeaturesFromFileChange",...e}):new nr.AddAssemblyFromFileChange({typeName:"AddAssemblyFromFileChange",...e})}a.done(l),await e.submit(p,{internetAccountId:f,updateJobsManager:!0}),S(!1),M(!1)}},L.default.createElement(c.DialogContent,{style:{display:"flex",flexDirection:"column"}},o.length>1?L.default.createElement(L.default.Fragment,null,L.default.createElement(c.DialogContentText,null,"Select account"),L.default.createElement(c.Select,{value:k.internetAccountId,onChange:function(e){S(!1);const t=o.find((t=>t.internetAccountId===e.target.value));if(!t)throw new Error(`Could not find internetAccount with ID "${e.target.value}"`);E(t)},disabled:x&&!d},a.map((e=>L.default.createElement(c.MenuItem,{key:e.id,value:e.internetAccountId},e.name))))):null,L.default.createElement(c.TextField,{margin:"dense",id:"name",label:"Assembly name",type:"TextField",fullWidth:!0,variant:"outlined",onChange:e=>{S(!1),u(e.target.value),function(e){const{assemblies:t}=n;t.find((t=>r.readConfObject(t,"displayName")===e))?(m(!1),h(`Assembly ${e} already exists.`)):(m(!0),h(""))}(e.target.value)},disabled:x&&!d}),L.default.createElement(c.FormControl,{style:{marginTop:20}},L.default.createElement(c.FormLabel,null,"Select GFF3, FASTA or EXTERNAL option"),L.default.createElement(c.RadioGroup,{"aria-labelledby":"demo-radio-buttons-group-label",defaultValue:bf.GFF3,name:"radio-buttons-group",onChange:function(e){v(e.target.value),w(e.target.value===bf.GFF3),C(""),N(""),_(null)},value:y},L.default.createElement(c.FormControlLabel,{value:bf.GFF3,control:L.default.createElement(c.Radio,null),label:"GFF3",disabled:x&&!d}),L.default.createElement(c.FormControlLabel,{value:bf.FASTA,control:L.default.createElement(c.Radio,null),label:"FASTA",disabled:x&&!d}),L.default.createElement(c.FormControlLabel,{value:bf.EXTERNAL,control:L.default.createElement(c.Radio,null),label:"External",disabled:x&&!d}))),y===bf.EXTERNAL?L.default.createElement(c.Box,{style:{marginTop:20}},L.default.createElement(c.Typography,{variant:"caption"},"Enter FASTA and FASTA index(es) URL"),L.default.createElement(c.TextField,{margin:"dense",helperText:"Can be bgz-compressed",id:"fasta",label:"FASTA",type:"TextField",fullWidth:!0,variant:"outlined",error:!P,onChange:e=>{C(e.target.value)},disabled:x&&!d,InputProps:{startAdornment:L.default.createElement(O.default,{position:"start"},L.default.createElement(pf,null))}}),L.default.createElement(c.TextField,{margin:"dense",id:"fasta-index",label:"FASTA Index",helperText:".fai or .gz.fai",type:"TextField",fullWidth:!0,variant:"outlined",error:!q,onChange:e=>{N(e.target.value)},disabled:x&&!d,InputProps:{startAdornment:L.default.createElement(O.default,{position:"start"},L.default.createElement(pf,null))}}),L.default.createElement(c.TextField,{margin:"dense",id:"fasta-gzi-index",label:"FASTA GZI Index",helperText:"Only for bgz-compressed FASTA, .gz.gzi",type:"TextField",fullWidth:!0,variant:"outlined",error:Boolean(I)&&!j,onChange:e=>{T(e.target.value)},disabled:x&&!d,InputProps:{startAdornment:L.default.createElement(O.default,{position:"start"},L.default.createElement(pf,null))}})):L.default.createElement(c.Box,{style:{marginTop:20}},L.default.createElement("input",{type:"file",onChange:function(e){if(!e.target.files)return;const t=e.target.files.item(0);if(_(t),!t)return;const n=t.name.toLowerCase();n.endsWith(".fasta")||n.endsWith(".fna")||n.endsWith(".fa")?v(bf.FASTA):(n.endsWith(".gff3")||n.endsWith(".gff"))&&v(bf.GFF3)},disabled:x&&!d}),L.default.createElement(c.FormGroup,null,L.default.createElement(c.FormControlLabel,{control:L.default.createElement(c.Checkbox,{checked:y===bf.GFF3&&b,onChange:()=>{w(!b)},disabled:y!==bf.GFF3||x&&!d}),label:"Also load features from GFF3 file"})))),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{disabled:!p||!((s&&g)??(s&&A&&R&&P&&q))||x,variant:"contained",type:"submit"},x?"Submitting...":"Submit"),L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:t},"Cancel"))),d?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},d)):null)}!function(e){e.GFF3="text/x-gff3",e.FASTA="text/x-fasta",e.EXTERNAL="text/x-external"}(bf||(bf={}));var xf={exports:{}};!function(e,t){var n;n=function(){return function e(t,n,r){function a(o,s){if(!n[o]){if(!t[o]){if(!s&&U)return U(o);if(i)return i(o,!0);var l=new Error("Cannot find module '"+o+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[o]={exports:{}};t[o][0].call(c.exports,(function(e){return a(t[o][1][e]||e)}),c,c.exports,e,t,n,r)}return n[o].exports}for(var i=U,o=0;o<r.length;o++)a(r[o]);return a}({"./aesprim":[function(e,t,n){var r;r=function(e){var t,n,r,a,i,o,s,l,c,u,d,f,h,p,m,g,_,y;function v(e,t){if(!e)throw new Error("ASSERT: "+t)}function b(e){return e>=48&&e<=57}function w(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function x(e){return"01234567".indexOf(e)>=0}function S(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0}function k(e){return 10===e||13===e||8232===e||8233===e}function E(e){return 64==e||36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&s.NonAsciiIdentifierStart.test(String.fromCharCode(e))}function A(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&s.NonAsciiIdentifierPart.test(String.fromCharCode(e))}function C(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}}function R(e){return"eval"===e||"arguments"===e}function N(e,t,n,r,a){var i;v("number"==typeof n,"Comment must have valid position"),_.lastCommentStart>=n||(_.lastCommentStart=n,i={type:e,value:t},y.range&&(i.range=[n,r]),y.loc&&(i.loc=a),y.comments.push(i),y.attachComment&&(y.leadingComments.push(i),y.trailingComments.push(i)))}function I(e){var t,n,r,a;for(t=d-e,n={start:{line:f,column:d-h-e}};d<p;)if(r=c.charCodeAt(d),++d,k(r))return y.comments&&(a=c.slice(t+e,d-1),n.end={line:f,column:d-h-1},N("Line",a,t,d-1,n)),13===r&&10===c.charCodeAt(d)&&++d,++f,void(h=d);y.comments&&(a=c.slice(t+e,d),n.end={line:f,column:d-h},N("Line",a,t,d,n))}function T(){var e,t,n,r;for(y.comments&&(e=d-2,t={start:{line:f,column:d-h-2}});d<p;)if(k(n=c.charCodeAt(d)))13===n&&10===c.charCodeAt(d+1)&&++d,++f,++d,h=d,d>=p&&J({},o.UnexpectedToken,"ILLEGAL");else if(42===n){if(47===c.charCodeAt(d+1))return++d,++d,void(y.comments&&(r=c.slice(e+2,d-2),t.end={line:f,column:d-h},N("Block",r,e,d,t)));++d}else++d;J({},o.UnexpectedToken,"ILLEGAL")}function O(){var e,t;for(t=0===d;d<p;)if(S(e=c.charCodeAt(d)))++d;else if(k(e))++d,13===e&&10===c.charCodeAt(d)&&++d,++f,h=d,t=!0;else if(47===e)if(47===(e=c.charCodeAt(d+1)))++d,++d,I(2),t=!0;else{if(42!==e)break;++d,++d,T()}else if(t&&45===e){if(45!==c.charCodeAt(d+1)||62!==c.charCodeAt(d+2))break;d+=3,I(3)}else{if(60!==e)break;if("!--"!==c.slice(d+1,d+4))break;++d,++d,++d,++d,I(4)}}function F(e){var t,n,r,a=0;for(n="u"===e?4:2,t=0;t<n;++t){if(!(d<p&&w(c[d])))return"";r=c[d++],a=16*a+"0123456789abcdef".indexOf(r.toLowerCase())}return String.fromCharCode(a)}function L(){var e,t;for(e=c.charCodeAt(d++),t=String.fromCharCode(e),92===e&&(117!==c.charCodeAt(d)&&J({},o.UnexpectedToken,"ILLEGAL"),++d,(e=F("u"))&&"\\"!==e&&E(e.charCodeAt(0))||J({},o.UnexpectedToken,"ILLEGAL"),t=e);d<p&&A(e=c.charCodeAt(d));)++d,t+=String.fromCharCode(e),92===e&&(t=t.substr(0,t.length-1),117!==c.charCodeAt(d)&&J({},o.UnexpectedToken,"ILLEGAL"),++d,(e=F("u"))&&"\\"!==e&&A(e.charCodeAt(0))||J({},o.UnexpectedToken,"ILLEGAL"),t+=e);return t}function D(){var e,n,r,a,i=d,s=c.charCodeAt(d),l=c[d];switch(s){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++d,y.tokenize&&(40===s?y.openParenToken=y.tokens.length:123===s&&(y.openCurlyToken=y.tokens.length)),{type:t.Punctuator,value:String.fromCharCode(s),lineNumber:f,lineStart:h,start:i,end:d};default:if(61===(e=c.charCodeAt(d+1)))switch(s){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return d+=2,{type:t.Punctuator,value:String.fromCharCode(s)+String.fromCharCode(e),lineNumber:f,lineStart:h,start:i,end:d};case 33:case 61:return 61===c.charCodeAt(d+=2)&&++d,{type:t.Punctuator,value:c.slice(i,d),lineNumber:f,lineStart:h,start:i,end:d}}}return">>>="===(a=c.substr(d,4))?{type:t.Punctuator,value:a,lineNumber:f,lineStart:h,start:i,end:d+=4}:">>>"===(r=a.substr(0,3))||"<<="===r||">>="===r?{type:t.Punctuator,value:r,lineNumber:f,lineStart:h,start:i,end:d+=3}:l===(n=r.substr(0,2))[1]&&"+-<>&|".indexOf(l)>=0||"=>"===n?{type:t.Punctuator,value:n,lineNumber:f,lineStart:h,start:i,end:d+=2}:"<>=!+-*%&|^/".indexOf(l)>=0?(++d,{type:t.Punctuator,value:l,lineNumber:f,lineStart:h,start:i,end:d}):void J({},o.UnexpectedToken,"ILLEGAL")}function M(){var e,n,r;if(v(b((r=c[d]).charCodeAt(0))||"."===r,"Numeric literal must start with a decimal digit or a decimal point"),n=d,e="","."!==r){if(e=c[d++],r=c[d],"0"===e){if("x"===r||"X"===r)return++d,function(e){for(var n="";d<p&&w(c[d]);)n+=c[d++];return 0===n.length&&J({},o.UnexpectedToken,"ILLEGAL"),E(c.charCodeAt(d))&&J({},o.UnexpectedToken,"ILLEGAL"),{type:t.NumericLiteral,value:parseInt("0x"+n,16),lineNumber:f,lineStart:h,start:e,end:d}}(n);if(x(r))return function(e){for(var n="0"+c[d++];d<p&&x(c[d]);)n+=c[d++];return(E(c.charCodeAt(d))||b(c.charCodeAt(d)))&&J({},o.UnexpectedToken,"ILLEGAL"),{type:t.NumericLiteral,value:parseInt(n,8),octal:!0,lineNumber:f,lineStart:h,start:e,end:d}}(n);r&&b(r.charCodeAt(0))&&J({},o.UnexpectedToken,"ILLEGAL")}for(;b(c.charCodeAt(d));)e+=c[d++];r=c[d]}if("."===r){for(e+=c[d++];b(c.charCodeAt(d));)e+=c[d++];r=c[d]}if("e"===r||"E"===r)if(e+=c[d++],"+"!==(r=c[d])&&"-"!==r||(e+=c[d++]),b(c.charCodeAt(d)))for(;b(c.charCodeAt(d));)e+=c[d++];else J({},o.UnexpectedToken,"ILLEGAL");return E(c.charCodeAt(d))&&J({},o.UnexpectedToken,"ILLEGAL"),{type:t.NumericLiteral,value:parseFloat(e),lineNumber:f,lineStart:h,start:n,end:d}}function P(){var e,n,r,a;return g=null,O(),e=d,n=function(){var e,t,n,r;for(v("/"===(e=c[d]),"Regular expression literal must start with a slash"),t=c[d++],n=!1,r=!1;d<p;)if(t+=e=c[d++],"\\"===e)k((e=c[d++]).charCodeAt(0))&&J({},o.UnterminatedRegExp),t+=e;else if(k(e.charCodeAt(0)))J({},o.UnterminatedRegExp);else if(n)"]"===e&&(n=!1);else{if("/"===e){r=!0;break}"["===e&&(n=!0)}return r||J({},o.UnterminatedRegExp),{value:t.substr(1,t.length-2),literal:t}}(),r=function(){var e,t,n,r;for(t="",n="";d<p&&A((e=c[d]).charCodeAt(0));)if(++d,"\\"===e&&d<p)if("u"===(e=c[d])){if(r=++d,e=F("u"))for(n+=e,t+="\\u";r<d;++r)t+=c[r];else d=r,n+="u",t+="\\u";V({},o.UnexpectedToken,"ILLEGAL")}else t+="\\",V({},o.UnexpectedToken,"ILLEGAL");else n+=e,t+=e;return{value:n,literal:t}}(),a=function(e,t){var n;try{n=new RegExp(e,t)}catch(e){J({},o.InvalidRegExp)}return n}(n.value,r.value),y.tokenize?{type:t.RegularExpression,value:a,lineNumber:f,lineStart:h,start:e,end:d}:{literal:n.literal+r.literal,value:a,start:e,end:d}}function q(){var e,t,n,r;return O(),e=d,t={start:{line:f,column:d-h}},n=P(),t.end={line:f,column:d-h},y.tokenize||(y.tokens.length>0&&(r=y.tokens[y.tokens.length-1]).range[0]===e&&"Punctuator"===r.type&&("/"!==r.value&&"/="!==r.value||y.tokens.pop()),y.tokens.push({type:"RegularExpression",value:n.literal,range:[e,d],loc:t})),n}function j(){var e,n,a;return O(),d>=p?{type:t.EOF,lineNumber:f,lineStart:h,start:d,end:d}:E(e=c.charCodeAt(d))?(n=d,a=92===c.charCodeAt(d)?L():function(){var e,t;for(e=d++;d<p;){if(92===(t=c.charCodeAt(d)))return d=e,L();if(!A(t))break;++d}return c.slice(e,d)}(),{type:1===a.length?t.Identifier:function(e){if(u&&C(e))return!0;switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}}(a)?t.Keyword:"null"===a?t.NullLiteral:"true"===a||"false"===a?t.BooleanLiteral:t.Identifier,value:a,lineNumber:f,lineStart:h,start:n,end:d}):40===e||41===e||59===e?D():39===e||34===e?function(){var e,n,r,a,i,s,l,u,m="",g=!1;for(l=f,u=h,v("'"===(e=c[d])||'"'===e,"String literal must starts with a quote"),n=d,++d;d<p;){if((r=c[d++])===e){e="";break}if("\\"===r)if((r=c[d++])&&k(r.charCodeAt(0)))++f,"\r"===r&&"\n"===c[d]&&++d,h=d;else switch(r){case"u":case"x":s=d,(i=F(r))?m+=i:(d=s,m+=r);break;case"n":m+="\n";break;case"r":m+="\r";break;case"t":m+="\t";break;case"b":m+="\b";break;case"f":m+="\f";break;case"v":m+="\v";break;default:x(r)?(0!==(a="01234567".indexOf(r))&&(g=!0),d<p&&x(c[d])&&(g=!0,a=8*a+"01234567".indexOf(c[d++]),"0123".indexOf(r)>=0&&d<p&&x(c[d])&&(a=8*a+"01234567".indexOf(c[d++]))),m+=String.fromCharCode(a)):m+=r}else{if(k(r.charCodeAt(0)))break;m+=r}}return""!==e&&J({},o.UnexpectedToken,"ILLEGAL"),{type:t.StringLiteral,value:m,octal:g,startLineNumber:l,startLineStart:u,lineNumber:f,lineStart:h,start:n,end:d}}():46===e?b(c.charCodeAt(d+1))?M():D():b(e)?M():y.tokenize&&47===e?function(){var e,t;if(!(e=y.tokens[y.tokens.length-1]))return q();if("Punctuator"===e.type){if("]"===e.value)return D();if(")"===e.value)return!(t=y.tokens[y.openParenToken-1])||"Keyword"!==t.type||"if"!==t.value&&"while"!==t.value&&"for"!==t.value&&"with"!==t.value?D():q();if("}"===e.value){if(y.tokens[y.openCurlyToken-3]&&"Keyword"===y.tokens[y.openCurlyToken-3].type){if(!(t=y.tokens[y.openCurlyToken-4]))return D()}else{if(!y.tokens[y.openCurlyToken-4]||"Keyword"!==y.tokens[y.openCurlyToken-4].type)return D();if(!(t=y.tokens[y.openCurlyToken-5]))return q()}return r.indexOf(t.value)>=0?D():q()}return q()}return"Keyword"===e.type?q():D()}():D()}function B(){var e,r,a;return O(),e={start:{line:f,column:d-h}},r=j(),e.end={line:f,column:d-h},r.type!==t.EOF&&(a=c.slice(r.start,r.end),y.tokens.push({type:n[r.type],value:a,range:[r.start,r.end],loc:e})),r}function U(){var e;return d=(e=g).end,f=e.lineNumber,h=e.lineStart,g=void 0!==y.tokens?B():j(),d=e.end,f=e.lineNumber,h=e.lineStart,e}function z(){var e,t,n;e=d,t=f,n=h,g=void 0!==y.tokens?B():j(),d=e,f=t,h=n}function G(e,t){this.line=e,this.column=t}function H(e,t,n,r){this.start=new G(e,t),this.end=new G(n,r)}function $(){var e,t,n,r;return e=d,t=f,n=h,O(),r=f!==t,d=e,f=t,h=n,r}function J(e,t){var n,r=Array.prototype.slice.call(arguments,2),a=t.replace(/%(\d)/g,(function(e,t){return v(t<r.length,"Message reference must be in range"),r[t]}));throw"number"==typeof e.lineNumber?((n=new Error("Line "+e.lineNumber+": "+a)).index=e.start,n.lineNumber=e.lineNumber,n.column=e.start-h+1):((n=new Error("Line "+f+": "+a)).index=d,n.lineNumber=f,n.column=d-h+1),n.description=a,n}function V(){try{J.apply(null,arguments)}catch(e){if(!y.errors)throw e;y.errors.push(e)}}function W(e){if(e.type===t.EOF&&J(e,o.UnexpectedEOS),e.type===t.NumericLiteral&&J(e,o.UnexpectedNumber),e.type===t.StringLiteral&&J(e,o.UnexpectedString),e.type===t.Identifier&&J(e,o.UnexpectedIdentifier),e.type===t.Keyword){if(function(e){switch(e){case"class":case"enum":case"export":case"extends":case"import":case"super":return!0;default:return!1}}(e.value))J(e,o.UnexpectedReserved);else if(u&&C(e.value))return void V(e,o.StrictReservedWord);J(e,o.UnexpectedToken,e.value)}J(e,o.UnexpectedToken,e.value)}function K(e){var n=U();n.type===t.Punctuator&&n.value===e||W(n)}function Y(e){var n=U();n.type===t.Keyword&&n.value===e||W(n)}function Z(e){return g.type===t.Punctuator&&g.value===e}function X(e){return g.type===t.Keyword&&g.value===e}function Q(){var e;59===c.charCodeAt(d)||Z(";")?U():(e=f,O(),f===e&&(g.type===t.EOF||Z("}")||W(g)))}function ee(e){return e.type===a.Identifier||e.type===a.MemberExpression}function te(e,t){var n,r,a;return n=u,a=g,r=be(),t&&u&&R(e[0].name)&&V(t,o.StrictParamName),u=n,m.markEnd(m.createFunctionExpression(null,e,[],r),a)}function ne(){var e,n;return n=g,(e=U()).type===t.StringLiteral||e.type===t.NumericLiteral?(u&&e.octal&&V(e,o.StrictOctalLiteral),m.markEnd(m.createLiteral(e),n)):m.markEnd(m.createIdentifier(e.value),n)}function re(){var e,n,r,a,i,s;return s=g,(e=g).type===t.Identifier?(r=ne(),"get"!==e.value||Z(":")?"set"!==e.value||Z(":")?(K(":"),a=fe(),m.markEnd(m.createProperty("init",r,a),s)):(n=ne(),K("("),(e=g).type!==t.Identifier?(K(")"),V(e,o.UnexpectedToken,e.value),a=te([])):(i=[me()],K(")"),a=te(i,e)),m.markEnd(m.createProperty("set",n,a),s)):(n=ne(),K("("),K(")"),a=te([]),m.markEnd(m.createProperty("get",n,a),s))):e.type!==t.EOF&&e.type!==t.Punctuator?(n=ne(),K(":"),a=fe(),m.markEnd(m.createProperty("init",n,a),s)):void W(e)}function ae(){var e,n,r,s;if(Z("("))return function(){var e;return K("("),e=he(),K(")"),e}();if(Z("["))return function(){var e,t=[];for(e=g,K("[");!Z("]");)Z(",")?(U(),t.push(null)):(t.push(fe()),Z("]")||K(","));return U(),m.markEnd(m.createArrayExpression(t),e)}();if(Z("{"))return function(){var e,t,n,r,s,l=[],c={},d=String;for(s=g,K("{");!Z("}");)t=(e=re()).key.type===a.Identifier?e.key.name:d(e.key.value),r="init"===e.kind?i.Data:"get"===e.kind?i.Get:i.Set,n="$"+t,Object.prototype.hasOwnProperty.call(c,n)?(c[n]===i.Data?u&&r===i.Data?V({},o.StrictDuplicateProperty):r!==i.Data&&V({},o.AccessorDataProperty):r===i.Data?V({},o.AccessorDataProperty):c[n]&r&&V({},o.AccessorGetSet),c[n]|=r):c[n]=r,l.push(e),Z("}")||K(",");return K("}"),m.markEnd(m.createObjectExpression(l),s)}();if(s=g,(e=g.type)===t.Identifier)r=m.createIdentifier(U().value);else if(e===t.StringLiteral||e===t.NumericLiteral)u&&g.octal&&V(g,o.StrictOctalLiteral),r=m.createLiteral(U());else if(e===t.Keyword){if(X("function"))return function(){var e,t,n,r,a,i,s,l,c,d=null;return l=g,Y("function"),Z("(")||(e=g,d=me(),u?R(e.value)&&V(e,o.StrictFunctionName):R(e.value)?(n=e,r=o.StrictFunctionName):C(e.value)&&(n=e,r=o.StrictReservedWord)),c=(a=we(n)).params,t=a.stricted,n=a.firstRestricted,a.message&&(r=a.message),s=u,i=be(),u&&n&&J(n,r),u&&t&&V(t,r),u=s,m.markEnd(m.createFunctionExpression(d,c,[],i),l)}();X("this")?(U(),r=m.createThisExpression()):W(U())}else e===t.BooleanLiteral?((n=U()).value="true"===n.value,r=m.createLiteral(n)):e===t.NullLiteral?((n=U()).value=null,r=m.createLiteral(n)):Z("/")||Z("/=")?(r=m.createLiteral(void 0!==y.tokens?q():P()),z()):W(U());return m.markEnd(r,s)}function ie(){var e=[];if(K("("),!Z(")"))for(;d<p&&(e.push(fe()),!Z(")"));)K(",");return K(")"),e}function oe(){return K("."),n=g,function(e){return e.type===t.Identifier||e.type===t.Keyword||e.type===t.BooleanLiteral||e.type===t.NullLiteral}(e=U())||W(e),m.markEnd(m.createIdentifier(e.value),n);var e,n}function se(){var e;return K("["),e=he(),K("]"),e}function le(){var e,t,n;return n=g,Y("new"),e=function(){var e,t,n,r;for(r=g,e=_.allowIn,t=X("new")?le():ae(),_.allowIn=e;Z(".")||Z("[");)Z("[")?(n=se(),t=m.createMemberExpression("[",t,n)):(n=oe(),t=m.createMemberExpression(".",t,n)),m.markEnd(t,r);return t}(),t=Z("(")?ie():[],m.markEnd(m.createNewExpression(e,t),n)}function ce(){var e,n,r=g;return e=function(){var e,t,n,r,a;for(a=g,e=_.allowIn,_.allowIn=!0,t=X("new")?le():ae(),_.allowIn=e;;){if(Z("."))r=oe(),t=m.createMemberExpression(".",t,r);else if(Z("("))n=ie(),t=m.createCallExpression(t,n);else{if(!Z("["))break;r=se(),t=m.createMemberExpression("[",t,r)}m.markEnd(t,a)}return t}(),g.type===t.Punctuator&&(!Z("++")&&!Z("--")||$()||(u&&e.type===a.Identifier&&R(e.name)&&V({},o.StrictLHSPostfix),ee(e)||V({},o.InvalidLHSInAssignment),n=U(),e=m.markEnd(m.createPostfixExpression(n.value,e),r))),e}function ue(){var e,n,r;return g.type!==t.Punctuator&&g.type!==t.Keyword?n=ce():Z("++")||Z("--")?(r=g,e=U(),n=ue(),u&&n.type===a.Identifier&&R(n.name)&&V({},o.StrictLHSPrefix),ee(n)||V({},o.InvalidLHSInAssignment),n=m.createUnaryExpression(e.value,n),n=m.markEnd(n,r)):Z("+")||Z("-")||Z("~")||Z("!")?(r=g,e=U(),n=ue(),n=m.createUnaryExpression(e.value,n),n=m.markEnd(n,r)):X("delete")||X("void")||X("typeof")?(r=g,e=U(),n=ue(),n=m.createUnaryExpression(e.value,n),n=m.markEnd(n,r),u&&"delete"===n.operator&&n.argument.type===a.Identifier&&V({},o.StrictDelete)):n=ce(),n}function de(e,n){var r=0;if(e.type!==t.Punctuator&&e.type!==t.Keyword)return 0;switch(e.value){case"||":r=1;break;case"&&":r=2;break;case"|":r=3;break;case"^":r=4;break;case"&":r=5;break;case"==":case"!=":case"===":case"!==":r=6;break;case"<":case">":case"<=":case">=":case"instanceof":r=7;break;case"in":r=n?7:0;break;case"<<":case">>":case">>>":r=8;break;case"+":case"-":r=9;break;case"*":case"/":case"%":r=11}return r}function fe(){var e,n,r,i,s,l;return e=g,s=g,i=n=function(){var e,t,n,r,a;return a=g,e=function(){var e,t,n,r,a,i,o,s,l,c;if(e=g,l=ue(),0===(a=de(r=g,_.allowIn)))return l;for(r.prec=a,U(),t=[e,g],i=[l,r,o=ue()];(a=de(g,_.allowIn))>0;){for(;i.length>2&&a<=i[i.length-2].prec;)o=i.pop(),s=i.pop().value,l=i.pop(),n=m.createBinaryExpression(s,l,o),t.pop(),m.markEnd(n,e=t[t.length-1]),i.push(n);(r=U()).prec=a,i.push(r),t.push(g),n=ue(),i.push(n)}for(n=i[c=i.length-1],t.pop();c>1;)n=m.createBinaryExpression(i[c-1].value,i[c-2],n),c-=2,e=t.pop(),m.markEnd(n,e);return n}(),Z("?")&&(U(),t=_.allowIn,_.allowIn=!0,n=fe(),_.allowIn=t,K(":"),r=fe(),e=m.createConditionalExpression(e,n,r),m.markEnd(e,a)),e}(),g.type!==t.Punctuator||"="!==(l=g.value)&&"*="!==l&&"/="!==l&&"%="!==l&&"+="!==l&&"-="!==l&&"<<="!==l&&">>="!==l&&">>>="!==l&&"&="!==l&&"^="!==l&&"|="!==l||(ee(n)||V({},o.InvalidLHSInAssignment),u&&n.type===a.Identifier&&R(n.name)&&V(e,o.StrictLHSAssignment),e=U(),r=fe(),i=m.markEnd(m.createAssignmentExpression(e.value,n,r),s)),i}function he(){var e,t=g;if(e=fe(),Z(",")){for(e=m.createSequenceExpression([e]);d<p&&Z(",");)U(),e.expressions.push(fe());m.markEnd(e,t)}return e}function pe(){var e,t;return t=g,K("{"),e=function(){for(var e,t=[];d<p&&!Z("}")&&void 0!==(e=Se());)t.push(e);return t}(),K("}"),m.markEnd(m.createBlockStatement(e),t)}function me(){var e,n;return n=g,(e=U()).type!==t.Identifier&&W(e),m.markEnd(m.createIdentifier(e.value),n)}function ge(e){var t,n,r=null;return n=g,t=me(),u&&R(t.name)&&V({},o.StrictVarName),"const"===e?(K("="),r=fe()):Z("=")&&(U(),r=fe()),m.markEnd(m.createVariableDeclarator(t,r),n)}function _e(e){var t=[];do{if(t.push(ge(e)),!Z(","))break;U()}while(d<p);return t}function ye(){var e,t,n,r=[];for(n=g,X("default")?(U(),e=null):(Y("case"),e=he()),K(":");d<p&&!(Z("}")||X("default")||X("case"));)t=ve(),r.push(t);return m.markEnd(m.createSwitchCase(e,r),n)}function ve(){var e,n,r,i,s,l,f,h,y,v,b=g.type;if(b===t.EOF&&W(g),b===t.Punctuator&&"{"===g.value)return pe();if(i=g,b===t.Punctuator)switch(g.value){case";":return m.markEnd((K(";"),m.createEmptyStatement()),i);case"(":return m.markEnd(function(){var e=he();return Q(),m.createExpressionStatement(e)}(),i)}if(b===t.Keyword)switch(g.value){case"break":return m.markEnd((v=null,Y("break"),59===c.charCodeAt(d)?(U(),_.inIteration||_.inSwitch||J({},o.IllegalBreak),m.createBreakStatement(null)):$()?(_.inIteration||_.inSwitch||J({},o.IllegalBreak),m.createBreakStatement(null)):(g.type===t.Identifier&&(v=me(),Object.prototype.hasOwnProperty.call(_.labelSet,"$"+v.name)||J({},o.UnknownLabel,v.name)),Q(),null!==v||_.inIteration||_.inSwitch||J({},o.IllegalBreak),m.createBreakStatement(v))),i);case"continue":return m.markEnd(function(){var e=null;return Y("continue"),59===c.charCodeAt(d)?(U(),_.inIteration||J({},o.IllegalContinue),m.createContinueStatement(null)):$()?(_.inIteration||J({},o.IllegalContinue),m.createContinueStatement(null)):(g.type===t.Identifier&&(e=me(),Object.prototype.hasOwnProperty.call(_.labelSet,"$"+e.name)||J({},o.UnknownLabel,e.name)),Q(),null!==e||_.inIteration||J({},o.IllegalContinue),m.createContinueStatement(e))}(),i);case"debugger":return m.markEnd((Y("debugger"),Q(),m.createDebuggerStatement()),i);case"do":return m.markEnd((Y("do"),y=_.inIteration,_.inIteration=!0,f=ve(),_.inIteration=y,Y("while"),K("("),h=he(),K(")"),Z(";")&&U(),m.createDoWhileStatement(f,h)),i);case"for":return m.markEnd(function(){var e,t,n,r,a,i,s,l,c,u;return e=t=n=null,Y("for"),K("("),Z(";")?U():(X("var")||X("let")?(_.allowIn=!1,u=g,l=U(),c=_e(),e=m.markEnd(m.createVariableDeclaration(c,l.value),u),_.allowIn=!0,1===e.declarations.length&&X("in")&&(U(),r=e,a=he(),e=null)):(_.allowIn=!1,e=he(),_.allowIn=!0,X("in")&&(ee(e)||V({},o.InvalidLHSInForIn),U(),r=e,a=he(),e=null)),void 0===r&&K(";")),void 0===r&&(Z(";")||(t=he()),K(";"),Z(")")||(n=he())),K(")"),s=_.inIteration,_.inIteration=!0,i=ve(),_.inIteration=s,void 0===r?m.createForStatement(e,t,n,i):m.createForInStatement(r,a,i)}(),i);case"function":return m.markEnd(xe(),i);case"if":return m.markEnd(function(){var e,t,n;return Y("if"),K("("),e=he(),K(")"),t=ve(),X("else")?(U(),n=ve()):n=null,m.createIfStatement(e,t,n)}(),i);case"return":return m.markEnd((l=null,Y("return"),_.inFunctionBody||V({},o.IllegalReturn),32===c.charCodeAt(d)&&E(c.charCodeAt(d+1))?(l=he(),Q(),m.createReturnStatement(l)):$()?m.createReturnStatement(null):(Z(";")||Z("}")||g.type===t.EOF||(l=he()),Q(),m.createReturnStatement(l))),i);case"switch":return m.markEnd(function(){var e,t,n,r,a;if(Y("switch"),K("("),e=he(),K(")"),K("{"),t=[],Z("}"))return U(),m.createSwitchStatement(e,t);for(r=_.inSwitch,_.inSwitch=!0,a=!1;d<p&&!Z("}");)null===(n=ye()).test&&(a&&J({},o.MultipleDefaultsInSwitch),a=!0),t.push(n);return _.inSwitch=r,K("}"),m.createSwitchStatement(e,t)}(),i);case"throw":return m.markEnd(function(){var e;return Y("throw"),$()&&J({},o.NewlineAfterThrow),e=he(),Q(),m.createThrowStatement(e)}(),i);case"try":return m.markEnd(function(){var e,t,n,r,a=[],i=null;return Y("try"),e=pe(),X("catch")&&a.push((r=g,Y("catch"),K("("),Z(")")&&W(g),t=me(),u&&R(t.name)&&V({},o.StrictCatchVariable),K(")"),n=pe(),m.markEnd(m.createCatchClause(t,n),r))),X("finally")&&(U(),i=pe()),0!==a.length||i||J({},o.NoCatchOrFinally),m.createTryStatement(e,[],a,i)}(),i);case"var":return m.markEnd((Y("var"),s=_e(),Q(),m.createVariableDeclaration(s,"var")),i);case"while":return m.markEnd(function(){var e,t,n;return Y("while"),K("("),e=he(),K(")"),n=_.inIteration,_.inIteration=!0,t=ve(),_.inIteration=n,m.createWhileStatement(e,t)}(),i);case"with":return m.markEnd(function(){var e,t;return u&&(O(),V({},o.StrictModeWith)),Y("with"),K("("),e=he(),K(")"),t=ve(),m.createWithStatement(e,t)}(),i)}return(e=he()).type===a.Identifier&&Z(":")?(U(),r="$"+e.name,Object.prototype.hasOwnProperty.call(_.labelSet,r)&&J({},o.Redeclaration,"Label",e.name),_.labelSet[r]=!0,n=ve(),delete _.labelSet[r],m.markEnd(m.createLabeledStatement(e,n),i)):(Q(),m.markEnd(m.createExpressionStatement(e),i))}function be(){var e,n,r,i,s,l,f,h,y=[];for(h=g,K("{");d<p&&g.type===t.StringLiteral&&(n=g,e=Se(),y.push(e),e.expression.type===a.Literal);)"use strict"===c.slice(n.start+1,n.end-1)?(u=!0,r&&V(r,o.StrictOctalLiteral)):!r&&n.octal&&(r=n);for(i=_.labelSet,s=_.inIteration,l=_.inSwitch,f=_.inFunctionBody,_.labelSet={},_.inIteration=!1,_.inSwitch=!1,_.inFunctionBody=!0;d<p&&!Z("}")&&void 0!==(e=Se());)y.push(e);return K("}"),_.labelSet=i,_.inIteration=s,_.inSwitch=l,_.inFunctionBody=f,m.markEnd(m.createBlockStatement(y),h)}function we(e){var t,n,r,a,i,s,l=[];if(K("("),!Z(")"))for(a={};d<p&&(n=g,t=me(),i="$"+n.value,u?(R(n.value)&&(r=n,s=o.StrictParamName),Object.prototype.hasOwnProperty.call(a,i)&&(r=n,s=o.StrictParamDupe)):e||(R(n.value)?(e=n,s=o.StrictParamName):C(n.value)?(e=n,s=o.StrictReservedWord):Object.prototype.hasOwnProperty.call(a,i)&&(e=n,s=o.StrictParamDupe)),l.push(t),a[i]=!0,!Z(")"));)K(",");return K(")"),{params:l,stricted:r,firstRestricted:e,message:s}}function xe(){var e,t,n,r,a,i,s,l,c,d;return d=g,Y("function"),r=g,e=me(),u?R(r.value)&&V(r,o.StrictFunctionName):R(r.value)?(s=r,l=o.StrictFunctionName):C(r.value)&&(s=r,l=o.StrictReservedWord),t=(i=we(s)).params,a=i.stricted,s=i.firstRestricted,i.message&&(l=i.message),c=u,n=be(),u&&s&&J(s,l),u&&a&&V(a,l),u=c,m.markEnd(m.createFunctionDeclaration(e,t,[],n),d)}function Se(){if(g.type===t.Keyword)switch(g.value){case"const":case"let":return r=g,Y(e=g.value),n=_e(e),Q(),m.markEnd(m.createVariableDeclaration(n,e),r);case"function":return xe();default:return ve()}var e,n,r;if(g.type!==t.EOF)return ve()}function ke(){var e,t,n,r=[];for(e=0;e<y.tokens.length;++e)n={type:(t=y.tokens[e]).type,value:t.value},y.range&&(n.range=t.range),y.loc&&(n.loc=t.loc),r.push(n);y.tokens=r}(n={})[(t={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8,RegularExpression:9}).BooleanLiteral]="Boolean",n[t.EOF]="<end>",n[t.Identifier]="Identifier",n[t.Keyword]="Keyword",n[t.NullLiteral]="Null",n[t.NumericLiteral]="Numeric",n[t.Punctuator]="Punctuator",n[t.StringLiteral]="String",n[t.RegularExpression]="RegularExpression",r=["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="],a={AssignmentExpression:"AssignmentExpression",ArrayExpression:"ArrayExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",Program:"Program",Property:"Property",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement"},i={Data:1,Get:2,Set:4},o={UnexpectedToken:"Unexpected token %0",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictDuplicateProperty:"Duplicate data property in object literal not allowed in strict mode",AccessorDataProperty:"Object literal may not have data and accessor property with the same name",AccessorGetSet:"Object literal may not have multiple get/set accessors with the same name",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode"},s={NonAsciiIdentifierStart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԧԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠࢢ-ࢬऄ-हऽॐक़-ॡॱ-ॷॹ-ॿঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-ళవ-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤜᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚗꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꪀ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]"),NonAsciiIdentifierPart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԧԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠࢢ-ࢬࣤ-ࣾऀ-ॣ०-९ॱ-ॷॹ-ॿঁ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఁ-ఃఅ-ఌఎ-ఐఒ-నప-ళవ-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಂಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲംഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤜᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶᴀ-ᷦ᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚗꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺꩻꪀ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︦︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]")},l={name:"SyntaxTree",processComment:function(e){var t,n;if(!(e.type===a.Program&&e.body.length>0)){for(y.trailingComments.length>0?y.trailingComments[0].range[0]>=e.range[1]?(n=y.trailingComments,y.trailingComments=[]):y.trailingComments.length=0:y.bottomRightStack.length>0&&y.bottomRightStack[y.bottomRightStack.length-1].trailingComments&&y.bottomRightStack[y.bottomRightStack.length-1].trailingComments[0].range[0]>=e.range[1]&&(n=y.bottomRightStack[y.bottomRightStack.length-1].trailingComments,delete y.bottomRightStack[y.bottomRightStack.length-1].trailingComments);y.bottomRightStack.length>0&&y.bottomRightStack[y.bottomRightStack.length-1].range[0]>=e.range[0];)t=y.bottomRightStack.pop();t?t.leadingComments&&t.leadingComments[t.leadingComments.length-1].range[1]<=e.range[0]&&(e.leadingComments=t.leadingComments,delete t.leadingComments):y.leadingComments.length>0&&y.leadingComments[y.leadingComments.length-1].range[1]<=e.range[0]&&(e.leadingComments=y.leadingComments,y.leadingComments=[]),n&&(e.trailingComments=n),y.bottomRightStack.push(e)}},markEnd:function(e,t){return y.range&&(e.range=[t.start,d]),y.loc&&(e.loc=new H(void 0===t.startLineNumber?t.lineNumber:t.startLineNumber,t.start-(void 0===t.startLineStart?t.lineStart:t.startLineStart),f,d-h),this.postProcess(e)),y.attachComment&&this.processComment(e),e},postProcess:function(e){return y.source&&(e.loc.source=y.source),e},createArrayExpression:function(e){return{type:a.ArrayExpression,elements:e}},createAssignmentExpression:function(e,t,n){return{type:a.AssignmentExpression,operator:e,left:t,right:n}},createBinaryExpression:function(e,t,n){return{type:"||"===e||"&&"===e?a.LogicalExpression:a.BinaryExpression,operator:e,left:t,right:n}},createBlockStatement:function(e){return{type:a.BlockStatement,body:e}},createBreakStatement:function(e){return{type:a.BreakStatement,label:e}},createCallExpression:function(e,t){return{type:a.CallExpression,callee:e,arguments:t}},createCatchClause:function(e,t){return{type:a.CatchClause,param:e,body:t}},createConditionalExpression:function(e,t,n){return{type:a.ConditionalExpression,test:e,consequent:t,alternate:n}},createContinueStatement:function(e){return{type:a.ContinueStatement,label:e}},createDebuggerStatement:function(){return{type:a.DebuggerStatement}},createDoWhileStatement:function(e,t){return{type:a.DoWhileStatement,body:e,test:t}},createEmptyStatement:function(){return{type:a.EmptyStatement}},createExpressionStatement:function(e){return{type:a.ExpressionStatement,expression:e}},createForStatement:function(e,t,n,r){return{type:a.ForStatement,init:e,test:t,update:n,body:r}},createForInStatement:function(e,t,n){return{type:a.ForInStatement,left:e,right:t,body:n,each:!1}},createFunctionDeclaration:function(e,t,n,r){return{type:a.FunctionDeclaration,id:e,params:t,defaults:n,body:r,rest:null,generator:!1,expression:!1}},createFunctionExpression:function(e,t,n,r){return{type:a.FunctionExpression,id:e,params:t,defaults:n,body:r,rest:null,generator:!1,expression:!1}},createIdentifier:function(e){return{type:a.Identifier,name:e}},createIfStatement:function(e,t,n){return{type:a.IfStatement,test:e,consequent:t,alternate:n}},createLabeledStatement:function(e,t){return{type:a.LabeledStatement,label:e,body:t}},createLiteral:function(e){return{type:a.Literal,value:e.value,raw:c.slice(e.start,e.end)}},createMemberExpression:function(e,t,n){return{type:a.MemberExpression,computed:"["===e,object:t,property:n}},createNewExpression:function(e,t){return{type:a.NewExpression,callee:e,arguments:t}},createObjectExpression:function(e){return{type:a.ObjectExpression,properties:e}},createPostfixExpression:function(e,t){return{type:a.UpdateExpression,operator:e,argument:t,prefix:!1}},createProgram:function(e){return{type:a.Program,body:e}},createProperty:function(e,t,n){return{type:a.Property,key:t,value:n,kind:e}},createReturnStatement:function(e){return{type:a.ReturnStatement,argument:e}},createSequenceExpression:function(e){return{type:a.SequenceExpression,expressions:e}},createSwitchCase:function(e,t){return{type:a.SwitchCase,test:e,consequent:t}},createSwitchStatement:function(e,t){return{type:a.SwitchStatement,discriminant:e,cases:t}},createThisExpression:function(){return{type:a.ThisExpression}},createThrowStatement:function(e){return{type:a.ThrowStatement,argument:e}},createTryStatement:function(e,t,n,r){return{type:a.TryStatement,block:e,guardedHandlers:t,handlers:n,finalizer:r}},createUnaryExpression:function(e,t){return"++"===e||"--"===e?{type:a.UpdateExpression,operator:e,argument:t,prefix:!0}:{type:a.UnaryExpression,operator:e,argument:t,prefix:!0}},createVariableDeclaration:function(e,t){return{type:a.VariableDeclaration,declarations:e,kind:t}},createVariableDeclarator:function(e,t){return{type:a.VariableDeclarator,id:e,init:t}},createWhileStatement:function(e,t){return{type:a.WhileStatement,test:e,body:t}},createWithStatement:function(e,t){return{type:a.WithStatement,object:e,body:t}}},e.version="1.2.2",e.tokenize=function(e,n){var r;"string"==typeof e||e instanceof String||(e=String(e)),m=l,d=0,f=(c=e).length>0?1:0,h=0,p=c.length,g=null,_={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1},y={},(n=n||{}).tokens=!0,y.tokens=[],y.tokenize=!0,y.openParenToken=-1,y.openCurlyToken=-1,y.range="boolean"==typeof n.range&&n.range,y.loc="boolean"==typeof n.loc&&n.loc,"boolean"==typeof n.comment&&n.comment&&(y.comments=[]),"boolean"==typeof n.tolerant&&n.tolerant&&(y.errors=[]);try{if(z(),g.type===t.EOF)return y.tokens;for(U();g.type!==t.EOF;)try{U()}catch(e){if(y.errors){y.errors.push(e);break}throw e}ke(),r=y.tokens,void 0!==y.comments&&(r.comments=y.comments),void 0!==y.errors&&(r.errors=y.errors)}catch(e){throw e}finally{y={}}return r},e.parse=function(e,n){var r,i,s,v;i=String,"string"==typeof e||e instanceof String||(e=i(e)),m=l,d=0,f=(c=e).length>0?1:0,h=0,p=c.length,g=null,_={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1},y={},void 0!==n&&(y.range="boolean"==typeof n.range&&n.range,y.loc="boolean"==typeof n.loc&&n.loc,y.attachComment="boolean"==typeof n.attachComment&&n.attachComment,y.loc&&null!=n.source&&(y.source=i(n.source)),"boolean"==typeof n.tokens&&n.tokens&&(y.tokens=[]),"boolean"==typeof n.comment&&n.comment&&(y.comments=[]),"boolean"==typeof n.tolerant&&n.tolerant&&(y.errors=[]),y.attachComment&&(y.range=!0,y.comments=[],y.bottomRightStack=[],y.trailingComments=[],y.leadingComments=[]));try{O(),z(),v=g,u=!1,s=function(){for(var e,n,r,i=[];d<p&&(n=g).type===t.StringLiteral&&(e=Se(),i.push(e),e.expression.type===a.Literal);)"use strict"===c.slice(n.start+1,n.end-1)?(u=!0,r&&V(r,o.StrictOctalLiteral)):!r&&n.octal&&(r=n);for(;d<p&&void 0!==(e=Se());)i.push(e);return i}(),r=m.markEnd(m.createProgram(s),v),void 0!==y.comments&&(r.comments=y.comments),void 0!==y.tokens&&(ke(),r.tokens=y.tokens),void 0!==y.errors&&(r.errors=y.errors)}catch(e){throw e}finally{y={}}return r},e.Syntax=function(){var e,t={};for(e in"function"==typeof Object.create&&(t=Object.create(null)),a)a.hasOwnProperty(e)&&(t[e]=a[e]);return"function"==typeof Object.freeze&&Object.freeze(t),t}()},r(void 0!==n?n:this.esprima={})},{}],1:[function(e,t,n){(function(r){var a=function(){var e={trace:function(){},yy:{},symbols_:{error:2,JSON_PATH:3,DOLLAR:4,PATH_COMPONENTS:5,LEADING_CHILD_MEMBER_EXPRESSION:6,PATH_COMPONENT:7,MEMBER_COMPONENT:8,SUBSCRIPT_COMPONENT:9,CHILD_MEMBER_COMPONENT:10,DESCENDANT_MEMBER_COMPONENT:11,DOT:12,MEMBER_EXPRESSION:13,DOT_DOT:14,STAR:15,IDENTIFIER:16,SCRIPT_EXPRESSION:17,INTEGER:18,END:19,CHILD_SUBSCRIPT_COMPONENT:20,DESCENDANT_SUBSCRIPT_COMPONENT:21,"[":22,SUBSCRIPT:23,"]":24,SUBSCRIPT_EXPRESSION:25,SUBSCRIPT_EXPRESSION_LIST:26,SUBSCRIPT_EXPRESSION_LISTABLE:27,",":28,STRING_LITERAL:29,ARRAY_SLICE:30,FILTER_EXPRESSION:31,QQ_STRING:32,Q_STRING:33,$accept:0,$end:1},terminals_:{2:"error",4:"DOLLAR",12:"DOT",14:"DOT_DOT",15:"STAR",16:"IDENTIFIER",17:"SCRIPT_EXPRESSION",18:"INTEGER",19:"END",22:"[",24:"]",28:",",30:"ARRAY_SLICE",31:"FILTER_EXPRESSION",32:"QQ_STRING",33:"Q_STRING"},productions_:[0,[3,1],[3,2],[3,1],[3,2],[5,1],[5,2],[7,1],[7,1],[8,1],[8,1],[10,2],[6,1],[11,2],[13,1],[13,1],[13,1],[13,1],[13,1],[9,1],[9,1],[20,3],[21,4],[23,1],[23,1],[26,1],[26,3],[27,1],[27,1],[27,1],[25,1],[25,1],[25,1],[29,1],[29,1]],performAction:function(e,n,r,a,i,o,s){a.ast||(a.ast=t,t.initialize());var l=o.length-1;switch(i){case 1:return a.ast.set({expression:{type:"root",value:o[l]}}),a.ast.unshift(),a.ast.yield();case 2:return a.ast.set({expression:{type:"root",value:o[l-1]}}),a.ast.unshift(),a.ast.yield();case 3:return a.ast.unshift(),a.ast.yield();case 4:return a.ast.set({operation:"member",scope:"child",expression:{type:"identifier",value:o[l-1]}}),a.ast.unshift(),a.ast.yield();case 5:case 6:case 11:case 13:case 18:case 21:case 22:case 23:break;case 7:a.ast.set({operation:"member"}),a.ast.push();break;case 8:a.ast.set({operation:"subscript"}),a.ast.push();break;case 9:case 19:a.ast.set({scope:"child"});break;case 10:case 20:a.ast.set({scope:"descendant"});break;case 12:a.ast.set({scope:"child",operation:"member"});break;case 14:a.ast.set({expression:{type:"wildcard",value:o[l]}});break;case 15:a.ast.set({expression:{type:"identifier",value:o[l]}});break;case 16:a.ast.set({expression:{type:"script_expression",value:o[l]}});break;case 17:a.ast.set({expression:{type:"numeric_literal",value:parseInt(o[l])}});break;case 24:o[l].length>1?a.ast.set({expression:{type:"union",value:o[l]}}):this.$=o[l];break;case 25:this.$=[o[l]];break;case 26:this.$=o[l-2].concat(o[l]);break;case 27:this.$={expression:{type:"numeric_literal",value:parseInt(o[l])}},a.ast.set(this.$);break;case 28:this.$={expression:{type:"string_literal",value:o[l]}},a.ast.set(this.$);break;case 29:this.$={expression:{type:"slice",value:o[l]}},a.ast.set(this.$);break;case 30:this.$={expression:{type:"wildcard",value:o[l]}},a.ast.set(this.$);break;case 31:this.$={expression:{type:"script_expression",value:o[l]}},a.ast.set(this.$);break;case 32:this.$={expression:{type:"filter_expression",value:o[l]}},a.ast.set(this.$);break;case 33:case 34:this.$=o[l]}},table:[{3:1,4:[1,2],6:3,13:4,15:[1,5],16:[1,6],17:[1,7],18:[1,8],19:[1,9]},{1:[3]},{1:[2,1],5:10,7:11,8:12,9:13,10:14,11:15,12:[1,18],14:[1,19],20:16,21:17,22:[1,20]},{1:[2,3],5:21,7:11,8:12,9:13,10:14,11:15,12:[1,18],14:[1,19],20:16,21:17,22:[1,20]},{1:[2,12],12:[2,12],14:[2,12],22:[2,12]},{1:[2,14],12:[2,14],14:[2,14],22:[2,14]},{1:[2,15],12:[2,15],14:[2,15],22:[2,15]},{1:[2,16],12:[2,16],14:[2,16],22:[2,16]},{1:[2,17],12:[2,17],14:[2,17],22:[2,17]},{1:[2,18],12:[2,18],14:[2,18],22:[2,18]},{1:[2,2],7:22,8:12,9:13,10:14,11:15,12:[1,18],14:[1,19],20:16,21:17,22:[1,20]},{1:[2,5],12:[2,5],14:[2,5],22:[2,5]},{1:[2,7],12:[2,7],14:[2,7],22:[2,7]},{1:[2,8],12:[2,8],14:[2,8],22:[2,8]},{1:[2,9],12:[2,9],14:[2,9],22:[2,9]},{1:[2,10],12:[2,10],14:[2,10],22:[2,10]},{1:[2,19],12:[2,19],14:[2,19],22:[2,19]},{1:[2,20],12:[2,20],14:[2,20],22:[2,20]},{13:23,15:[1,5],16:[1,6],17:[1,7],18:[1,8],19:[1,9]},{13:24,15:[1,5],16:[1,6],17:[1,7],18:[1,8],19:[1,9],22:[1,25]},{15:[1,29],17:[1,30],18:[1,33],23:26,25:27,26:28,27:32,29:34,30:[1,35],31:[1,31],32:[1,36],33:[1,37]},{1:[2,4],7:22,8:12,9:13,10:14,11:15,12:[1,18],14:[1,19],20:16,21:17,22:[1,20]},{1:[2,6],12:[2,6],14:[2,6],22:[2,6]},{1:[2,11],12:[2,11],14:[2,11],22:[2,11]},{1:[2,13],12:[2,13],14:[2,13],22:[2,13]},{15:[1,29],17:[1,30],18:[1,33],23:38,25:27,26:28,27:32,29:34,30:[1,35],31:[1,31],32:[1,36],33:[1,37]},{24:[1,39]},{24:[2,23]},{24:[2,24],28:[1,40]},{24:[2,30]},{24:[2,31]},{24:[2,32]},{24:[2,25],28:[2,25]},{24:[2,27],28:[2,27]},{24:[2,28],28:[2,28]},{24:[2,29],28:[2,29]},{24:[2,33],28:[2,33]},{24:[2,34],28:[2,34]},{24:[1,41]},{1:[2,21],12:[2,21],14:[2,21],22:[2,21]},{18:[1,33],27:42,29:34,30:[1,35],32:[1,36],33:[1,37]},{1:[2,22],12:[2,22],14:[2,22],22:[2,22]},{24:[2,26],28:[2,26]}],defaultActions:{27:[2,23],29:[2,30],30:[2,31],31:[2,32]},parseError:function(e,t){if(!t.recoverable)throw new Error(e);this.trace(e)},parse:function(e){var t=[0],n=[null],r=[],a=this.table,i="",o=0,s=0,l=r.slice.call(arguments,1);this.lexer.setInput(e),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,void 0===this.lexer.yylloc&&(this.lexer.yylloc={});var c=this.lexer.yylloc;r.push(c);var u=this.lexer.options&&this.lexer.options.ranges;this.parseError="function"==typeof this.yy.parseError?this.yy.parseError:Object.getPrototypeOf(this).parseError;for(var d,f,h,p,m,g,_,y,v={};;){if(this.defaultActions[f=t[t.length-1]]?h=this.defaultActions[f]:(null==d&&(y=void 0,"number"!=typeof(y=this.lexer.lex()||1)&&(y=this.symbols_[y]||y),d=y),h=a[f]&&a[f][d]),void 0===h||!h.length||!h[0]){var b;for(m in _=[],a[f])this.terminals_[m]&&m>2&&_.push("'"+this.terminals_[m]+"'");b=this.lexer.showPosition?"Parse error on line "+(o+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+_.join(", ")+", got '"+(this.terminals_[d]||d)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==d?"end of input":"'"+(this.terminals_[d]||d)+"'"),this.parseError(b,{text:this.lexer.match,token:this.terminals_[d]||d,line:this.lexer.yylineno,loc:c,expected:_})}if(h[0]instanceof Array&&h.length>1)throw new Error("Parse Error: multiple actions possible at state: "+f+", token: "+d);switch(h[0]){case 1:t.push(d),n.push(this.lexer.yytext),r.push(this.lexer.yylloc),t.push(h[1]),d=null,s=this.lexer.yyleng,i=this.lexer.yytext,o=this.lexer.yylineno,c=this.lexer.yylloc;break;case 2:if(v.$=n[n.length-(g=this.productions_[h[1]][1])],v._$={first_line:r[r.length-(g||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(g||1)].first_column,last_column:r[r.length-1].last_column},u&&(v._$.range=[r[r.length-(g||1)].range[0],r[r.length-1].range[1]]),void 0!==(p=this.performAction.apply(v,[i,s,o,this.yy,h[1],n,r].concat(l))))return p;g&&(t=t.slice(0,-1*g*2),n=n.slice(0,-1*g),r=r.slice(0,-1*g)),t.push(this.productions_[h[1]][0]),n.push(v.$),r.push(v._$),t.push(a[t[t.length-2]][t[t.length-1]]);break;case 3:return!0}}return!0}},t={initialize:function(){this._nodes=[],this._node={},this._stash=[]},set:function(e){for(var t in e)this._node[t]=e[t];return this._node},node:function(e){return arguments.length&&(this._node=e),this._node},push:function(){this._nodes.push(this._node),this._node={}},unshift:function(){this._nodes.unshift(this._node),this._node={}},yield:function(){var e=this._nodes;return this.initialize(),e}},n=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t-1),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var n,r,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(r=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var i in a)this[i]=a[i];return!1}return!1},next:function(){if(this.done)return this.EOF;var e,t,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),i=0;i<a.length;i++)if((n=this._input.match(this.rules[a[i]]))&&(!t||n[0].length>t[0].length)){if(t=n,r=i,this.options.backtrack_lexer){if(!1!==(e=this.test_match(n,a[i])))return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,a[r]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return(e=this.conditionStack.length-1-Math.abs(e||0))>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(e,t,n,r){switch(n){case 0:return 4;case 1:return 14;case 2:return 12;case 3:return 15;case 4:return 16;case 5:return 22;case 6:return 24;case 7:return 28;case 8:return 30;case 9:return 18;case 10:return t.yytext=t.yytext.substr(1,t.yyleng-2),32;case 11:return t.yytext=t.yytext.substr(1,t.yyleng-2),33;case 12:return 17;case 13:return 31}},rules:[/^(?:\$)/,/^(?:\.\.)/,/^(?:\.)/,/^(?:\*)/,/^(?:[a-zA-Z_]+[a-zA-Z0-9_]*)/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?:((-?(?:0|[1-9][0-9]*)))?\:((-?(?:0|[1-9][0-9]*)))?(\:((-?(?:0|[1-9][0-9]*)))?)?)/,/^(?:(-?(?:0|[1-9][0-9]*)))/,/^(?:"(?:\\["bfnrt/\\]|\\u[a-fA-F0-9]{4}|[^"\\])*")/,/^(?:'(?:\\['bfnrt/\\]|\\u[a-fA-F0-9]{4}|[^'\\])*')/,/^(?:\(.+?\)(?=\]))/,/^(?:\?\(.+?\)(?=\]))/],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}}};return e}();function r(){this.yy={}}return e.lexer=n,r.prototype=e,e.Parser=r,new r}();void 0!==e&&void 0!==n&&(n.parser=a,n.Parser=a.Parser,n.parse=function(){return a.parse.apply(a,arguments)},n.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),r.exit(1));var a=e("fs").readFileSync(e("path").normalize(t[1]),"utf8");return n.parser.parse(a)},void 0!==t&&e.main===t&&n.main(r.argv.slice(1)))}).call(this,e("_process"))},{_process:14,fs:12,path:13}],2:[function(e,t,n){t.exports={identifier:"[a-zA-Z_]+[a-zA-Z0-9_]*",integer:"-?(?:0|[1-9][0-9]*)",qq_string:'"(?:\\\\["bfnrt/\\\\]|\\\\u[a-fA-F0-9]{4}|[^"\\\\])*"',q_string:"'(?:\\\\['bfnrt/\\\\]|\\\\u[a-fA-F0-9]{4}|[^'\\\\])*'"}},{}],3:[function(e,t,n){var r=e("./dict"),a=e("fs"),i={lex:{macros:{esc:"\\\\",int:r.integer},rules:[["\\$","return 'DOLLAR'"],["\\.\\.","return 'DOT_DOT'"],["\\.","return 'DOT'"],["\\*","return 'STAR'"],[r.identifier,"return 'IDENTIFIER'"],["\\[","return '['"],["\\]","return ']'"],[",","return ','"],["({int})?\\:({int})?(\\:({int})?)?","return 'ARRAY_SLICE'"],["{int}","return 'INTEGER'"],[r.qq_string,"yytext = yytext.substr(1,yyleng-2); return 'QQ_STRING';"],[r.q_string,"yytext = yytext.substr(1,yyleng-2); return 'Q_STRING';"],["\\(.+?\\)(?=\\])","return 'SCRIPT_EXPRESSION'"],["\\?\\(.+?\\)(?=\\])","return 'FILTER_EXPRESSION'"]]},start:"JSON_PATH",bnf:{JSON_PATH:[["DOLLAR",'yy.ast.set({ expression: { type: "root", value: $1 } }); yy.ast.unshift(); return yy.ast.yield()'],["DOLLAR PATH_COMPONENTS",'yy.ast.set({ expression: { type: "root", value: $1 } }); yy.ast.unshift(); return yy.ast.yield()'],["LEADING_CHILD_MEMBER_EXPRESSION","yy.ast.unshift(); return yy.ast.yield()"],["LEADING_CHILD_MEMBER_EXPRESSION PATH_COMPONENTS",'yy.ast.set({ operation: "member", scope: "child", expression: { type: "identifier", value: $1 }}); yy.ast.unshift(); return yy.ast.yield()']],PATH_COMPONENTS:[["PATH_COMPONENT",""],["PATH_COMPONENTS PATH_COMPONENT",""]],PATH_COMPONENT:[["MEMBER_COMPONENT",'yy.ast.set({ operation: "member" }); yy.ast.push()'],["SUBSCRIPT_COMPONENT",'yy.ast.set({ operation: "subscript" }); yy.ast.push() ']],MEMBER_COMPONENT:[["CHILD_MEMBER_COMPONENT",'yy.ast.set({ scope: "child" })'],["DESCENDANT_MEMBER_COMPONENT",'yy.ast.set({ scope: "descendant" })']],CHILD_MEMBER_COMPONENT:[["DOT MEMBER_EXPRESSION",""]],LEADING_CHILD_MEMBER_EXPRESSION:[["MEMBER_EXPRESSION",'yy.ast.set({ scope: "child", operation: "member" })']],DESCENDANT_MEMBER_COMPONENT:[["DOT_DOT MEMBER_EXPRESSION",""]],MEMBER_EXPRESSION:[["STAR",'yy.ast.set({ expression: { type: "wildcard", value: $1 } })'],["IDENTIFIER",'yy.ast.set({ expression: { type: "identifier", value: $1 } })'],["SCRIPT_EXPRESSION",'yy.ast.set({ expression: { type: "script_expression", value: $1 } })'],["INTEGER",'yy.ast.set({ expression: { type: "numeric_literal", value: parseInt($1) } })'],["END",""]],SUBSCRIPT_COMPONENT:[["CHILD_SUBSCRIPT_COMPONENT",'yy.ast.set({ scope: "child" })'],["DESCENDANT_SUBSCRIPT_COMPONENT",'yy.ast.set({ scope: "descendant" })']],CHILD_SUBSCRIPT_COMPONENT:[["[ SUBSCRIPT ]",""]],DESCENDANT_SUBSCRIPT_COMPONENT:[["DOT_DOT [ SUBSCRIPT ]",""]],SUBSCRIPT:[["SUBSCRIPT_EXPRESSION",""],["SUBSCRIPT_EXPRESSION_LIST",'$1.length > 1? yy.ast.set({ expression: { type: "union", value: $1 } }) : $$ = $1']],SUBSCRIPT_EXPRESSION_LIST:[["SUBSCRIPT_EXPRESSION_LISTABLE","$$ = [$1]"],["SUBSCRIPT_EXPRESSION_LIST , SUBSCRIPT_EXPRESSION_LISTABLE","$$ = $1.concat($3)"]],SUBSCRIPT_EXPRESSION_LISTABLE:[["INTEGER",'$$ = { expression: { type: "numeric_literal", value: parseInt($1) } }; yy.ast.set($$)'],["STRING_LITERAL",'$$ = { expression: { type: "string_literal", value: $1 } }; yy.ast.set($$)'],["ARRAY_SLICE",'$$ = { expression: { type: "slice", value: $1 } }; yy.ast.set($$)']],SUBSCRIPT_EXPRESSION:[["STAR",'$$ = { expression: { type: "wildcard", value: $1 } }; yy.ast.set($$)'],["SCRIPT_EXPRESSION",'$$ = { expression: { type: "script_expression", value: $1 } }; yy.ast.set($$)'],["FILTER_EXPRESSION",'$$ = { expression: { type: "filter_expression", value: $1 } }; yy.ast.set($$)']],STRING_LITERAL:[["QQ_STRING","$$ = $1"],["Q_STRING","$$ = $1"]]}};a.readFileSync&&(i.moduleInclude=a.readFileSync(e.resolve("../include/module.js")),i.actionInclude=a.readFileSync(e.resolve("../include/action.js"))),t.exports=i},{"./dict":2,fs:12}],4:[function(e,t,n){var r=e("./aesprim"),a=e("./slice"),i=e("static-eval"),o=e("underscore").uniq,s=function(){return this.initialize.apply(this,arguments)};function l(t,n,a){var i=e("./index"),o=h(r.parse(n).body[0].expression,{"@":t.value}),s=a.replace(/\{\{\s*value\s*\}\}/g,o),l=i.nodes(t.value,s);return l.forEach((function(e){e.path=t.path.concat(e.path.slice(1))})),l}function c(e){return Array.isArray(e)}function u(e){return function(t,n,r,a){var i=t.value,o=t.path,s=[],l=function(t,i){var o;c(t)?(t.forEach((function(e,t){s.length>=a||r(t,e,n)&&s.push({path:i.concat(t),value:e})})),t.forEach((function(t,n){s.length>=a||e&&l(t,i.concat(n))}))):(o=t)&&!(o instanceof Array)&&o instanceof Object&&(this.keys(t).forEach((function(e){s.length>=a||r(e,t[e],n)&&s.push({path:i.concat(e),value:t[e]})})),this.keys(t).forEach((function(n){s.length>=a||e&&l(t[n],i.concat(n))})))}.bind(this);return l(i,o),s}}function d(e){return function(t,n,r){return this.descend(n,t.expression.value,e,r)}}function f(e){return function(t,n,r){return this.traverse(n,t.expression.value,e,r)}}function h(){try{return i.apply(this,arguments)}catch(e){}}function p(e){return e=e.filter((function(e){return e})),o(e,(function(e){return e.path.map((function(e){return String(e).replace("-","--")})).join("-")}))}function m(e){var t=String(e);return t.match(/^-?[0-9]+$/)?parseInt(t):null}s.prototype.initialize=function(){this.traverse=u(!0),this.descend=u()},s.prototype.keys=Object.keys,s.prototype.resolve=function(e){var t=[e.operation,e.scope,e.expression.type].join("-"),n=this._fns[t];if(!n)throw new Error("couldn't resolve key: "+t);return n.bind(this)},s.prototype.register=function(e,t){if(!t instanceof Function)throw new Error("handler must be a function");this._fns[e]=t},s.prototype._fns={"member-child-identifier":function(e,t){var n=e.expression.value,r=t.value;if(r instanceof Object&&n in r)return[{value:r[n],path:t.path.concat(n)}]},"member-descendant-identifier":f((function(e,t,n){return e==n})),"subscript-child-numeric_literal":d((function(e,t,n){return e===n})),"member-child-numeric_literal":d((function(e,t,n){return String(e)===String(n)})),"subscript-descendant-numeric_literal":f((function(e,t,n){return e===n})),"member-child-wildcard":d((function(){return!0})),"member-descendant-wildcard":f((function(){return!0})),"subscript-descendant-wildcard":f((function(){return!0})),"subscript-child-wildcard":d((function(){return!0})),"subscript-child-slice":function(e,t){if(c(t.value)){var n=e.expression.value.split(":").map(m),r=t.value.map((function(e,n){return{value:e,path:t.path.concat(n)}}));return a.apply(null,[r].concat(n))}},"subscript-child-union":function(e,t){var n=[];return e.expression.value.forEach((function(e){var r={operation:"subscript",scope:"child",expression:e.expression},a=this.resolve(r)(r,t);a&&(n=n.concat(a))}),this),p(n)},"subscript-descendant-union":function(t,n,r){var a=e(".."),i=this,o=[];return a.nodes(n,"$..*").slice(1).forEach((function(e){o.length>=r||t.expression.value.forEach((function(t){var n={operation:"subscript",scope:"child",expression:t.expression},r=i.resolve(n)(n,e);o=o.concat(r)}))})),p(o)},"subscript-child-filter_expression":function(e,t,n){var a=e.expression.value.slice(2,-1),i=r.parse(a).body[0].expression;return this.descend(t,null,(function(e,t){return h(i,{"@":t})}),n)},"subscript-descendant-filter_expression":function(e,t,n){var a=e.expression.value.slice(2,-1),i=r.parse(a).body[0].expression;return this.traverse(t,null,(function(e,t){return h(i,{"@":t})}),n)},"subscript-child-script_expression":function(e,t){return l(t,e.expression.value.slice(1,-1),"$[{{value}}]")},"member-child-script_expression":function(e,t){return l(t,e.expression.value.slice(1,-1),"$.{{value}}")},"member-descendant-script_expression":function(e,t){return l(t,e.expression.value.slice(1,-1),"$..value")}},s.prototype._fns["subscript-child-string_literal"]=s.prototype._fns["member-child-identifier"],s.prototype._fns["member-descendant-numeric_literal"]=s.prototype._fns["subscript-descendant-string_literal"]=s.prototype._fns["member-descendant-identifier"],t.exports=s},{"..":"jsonpath","./aesprim":"./aesprim","./index":5,"./slice":7,"static-eval":15,underscore:12}],5:[function(e,t,n){var r=e("assert"),a=e("./dict"),i=e("./parser"),o=e("./handlers"),s=function(){this.initialize.apply(this,arguments)};function l(e){return"[object String]"==Object.prototype.toString.call(e)}s.prototype.initialize=function(){this.parser=new i,this.handlers=new o},s.prototype.parse=function(e){return r.ok(l(e),"we need a path"),this.parser.parse(e)},s.prototype.parent=function(e,t){r.ok(e instanceof Object,"obj needs to be an object"),r.ok(t,"we need a path");var n=this.nodes(e,t)[0];return n.path.pop(),this.value(e,n.path)},s.prototype.apply=function(e,t,n){r.ok(e instanceof Object,"obj needs to be an object"),r.ok(t,"we need a path"),r.equal(Z(n),"function","fn needs to be function");var a=this.nodes(e,t).sort((function(e,t){return t.path.length-e.path.length}));return a.forEach((function(t){var r=t.path.pop(),a=this.value(e,this.stringify(t.path)),i=t.value=n.call(e,a[r]);a[r]=i}),this),a},s.prototype.value=function(e,t,n){if(r.ok(e instanceof Object,"obj needs to be an object"),r.ok(t,"we need a path"),arguments.length>=3){var a=this.nodes(e,t).shift();if(!a)return this._vivify(e,t,n);var i=a.path.slice(-1).shift();this.parent(e,this.stringify(a.path))[i]=n}return this.query(e,this.stringify(t),1).shift()},s.prototype._vivify=function(e,t,n){var a=this;return r.ok(e instanceof Object,"obj needs to be an object"),r.ok(t,"we need a path"),function t(n,r){var i=n.pop(),o=a.value(e,n);o||(t(n.concat(),"string"==typeof i?{}:[]),o=a.value(e,n)),o[i]=r}(this.parser.parse(t).map((function(e){return e.expression.value})),n),this.query(e,t)[0]},s.prototype.query=function(e,t,n){r.ok(e instanceof Object,"obj needs to be an object"),r.ok(l(t),"we need a path");var a=this.nodes(e,t,n).map((function(e){return e.value}));return a},s.prototype.paths=function(e,t,n){r.ok(e instanceof Object,"obj needs to be an object"),r.ok(t,"we need a path");var a=this.nodes(e,t,n).map((function(e){return e.path}));return a},s.prototype.nodes=function(e,t,n){if(r.ok(e instanceof Object,"obj needs to be an object"),r.ok(t,"we need a path"),0===n)return[];var a=this.parser.parse(t),i=this.handlers,o=[{path:["$"],value:e}],s=[];return a.length&&"root"==a[0].expression.type&&a.shift(),a.length?(a.forEach((function(e,t){if(!(s.length>=n)){var r=i.resolve(e),l=[];o.forEach((function(i){if(!(s.length>=n)){var o=r(e,i,n);t==a.length-1?s=s.concat(o||[]):l=l.concat(o||[])}})),o=l}})),n?s.slice(0,n):s):o},s.prototype.stringify=function(e){r.ok(e,"we need a path");var t="$",n={"descendant-member":"..{{value}}","child-member":".{{value}}","descendant-subscript":"..[{{value}}]","child-subscript":"[{{value}}]"};return(e=this._normalize(e)).forEach((function(e){if("root"!=e.expression.type){var r,a=[e.scope,e.operation].join("-"),i=n[a];if(r="string_literal"==e.expression.type?JSON.stringify(e.expression.value):e.expression.value,!i)throw new Error("couldn't find template "+a);t+=i.replace(/{{value}}/,r)}})),t},s.prototype._normalize=function(e){if(r.ok(e,"we need a path"),"string"==typeof e)return this.parser.parse(e);if(Array.isArray(e)&&"string"==typeof e[0]){var t=[{expression:{type:"root",value:"$"}}];return e.forEach((function(e,n){"$"==e&&0===n||("string"==typeof e&&e.match("^"+a.identifier+"$")?t.push({operation:"member",scope:"child",expression:{value:e,type:"identifier"}}):t.push({operation:"subscript",scope:"child",expression:{value:e,type:"number"==typeof e?"numeric_literal":"string_literal"}}))})),t}if(Array.isArray(e)&&"object"==Z(e[0]))return e;throw new Error("couldn't understand path "+e)},s.Handlers=o,s.Parser=i;var c=new s;c.JSONPath=s,t.exports=c},{"./dict":2,"./handlers":4,"./parser":6,assert:8}],6:[function(e,t,n){var r=e("./grammar"),a=e("../generated/parser"),i=function(){var e=new a.Parser,t=e.parseError;return e.yy.parseError=function(){e.yy.ast&&e.yy.ast.initialize(),t.apply(e,arguments)},e};i.grammar=r,t.exports=i},{"../generated/parser":1,"./grammar":3}],7:[function(e,t,n){function r(e){return String(e).match(/^[0-9]+$/)?parseInt(e):Number.isFinite(e)?parseInt(e,10):0}t.exports=function(e,t,n,a){if("string"==typeof t)throw new Error("start cannot be a string");if("string"==typeof n)throw new Error("end cannot be a string");if("string"==typeof a)throw new Error("step cannot be a string");var i=e.length;if(0===a)throw new Error("step cannot be zero");if(a=a?r(a):1,n=n<0?i+n:n,t=r(0===(t=t<0?i+t:t)?0:t||(a>0?0:i-1)),n=r(0===n?0:n||(a>0?i:-1)),t=a>0?Math.max(0,t):Math.min(i,t),n=a>0?Math.min(n,i):Math.max(-1,n),a>0&&n<=t)return[];if(a<0&&t<=n)return[];for(var o=[],s=t;s!=n&&!(a<0&&s<=n||a>0&&s>=n);s+=a)o.push(e[s]);return o}},{}],8:[function(e,t,n){var r=e("util/"),a=Array.prototype.slice,i=Object.prototype.hasOwnProperty,o=t.exports=u;function s(e,t){return r.isUndefined(t)?""+t:r.isNumber(t)&&!isFinite(t)||r.isFunction(t)||r.isRegExp(t)?t.toString():t}function l(e,t){return r.isString(e)?e.length<t?e:e.slice(0,t):e}function c(e,t,n,r,a){throw new o.AssertionError({message:n,actual:e,expected:t,operator:r,stackStartFunction:a})}function u(e,t){e||c(e,!0,t,"==",o.ok)}function d(e,t){if(e===t)return!0;if(r.isBuffer(e)&&r.isBuffer(t)){if(e.length!=t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}return r.isDate(e)&&r.isDate(t)?e.getTime()===t.getTime():r.isRegExp(e)&&r.isRegExp(t)?e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.lastIndex===t.lastIndex&&e.ignoreCase===t.ignoreCase:r.isObject(e)||r.isObject(t)?function(e,t){if(r.isNullOrUndefined(e)||r.isNullOrUndefined(t))return!1;if(e.prototype!==t.prototype)return!1;if(r.isPrimitive(e)||r.isPrimitive(t))return e===t;var n=f(e),i=f(t);if(n&&!i||!n&&i)return!1;if(n)return d(e=a.call(e),t=a.call(t));var o,s,l=m(e),c=m(t);if(l.length!=c.length)return!1;for(l.sort(),c.sort(),s=l.length-1;s>=0;s--)if(l[s]!=c[s])return!1;for(s=l.length-1;s>=0;s--)if(!d(e[o=l[s]],t[o]))return!1;return!0}(e,t):e==t}function f(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function h(e,t){return!(!e||!t)&&("[object RegExp]"==Object.prototype.toString.call(t)?t.test(e):e instanceof t||!0===t.call({},e))}function p(e,t,n,a){var i;r.isString(n)&&(a=n,n=null);try{t()}catch(e){i=e}if(a=(n&&n.name?" ("+n.name+").":".")+(a?" "+a:"."),e&&!i&&c(i,n,"Missing expected exception"+a),!e&&h(i,n)&&c(i,n,"Got unwanted exception"+a),e&&i&&n&&!h(i,n)||!e&&i)throw i}o.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return l(JSON.stringify(e.actual,s),128)+" "+e.operator+" "+l(JSON.stringify(e.expected,s),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||c;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var n=new Error;if(n.stack){var r=n.stack,a=r.indexOf("\n"+t.name);if(a>=0){var i=r.indexOf("\n",a+1);r=r.substring(i+1)}this.stack=r}}},r.inherits(o.AssertionError,Error),o.fail=c,o.ok=u,o.equal=function(e,t,n){e!=t&&c(e,t,n,"==",o.equal)},o.notEqual=function(e,t,n){e==t&&c(e,t,n,"!=",o.notEqual)},o.deepEqual=function(e,t,n){d(e,t)||c(e,t,n,"deepEqual",o.deepEqual)},o.notDeepEqual=function(e,t,n){d(e,t)&&c(e,t,n,"notDeepEqual",o.notDeepEqual)},o.strictEqual=function(e,t,n){e!==t&&c(e,t,n,"===",o.strictEqual)},o.notStrictEqual=function(e,t,n){e===t&&c(e,t,n,"!==",o.notStrictEqual)},o.throws=function(e,t,n){p.apply(this,[!0].concat(a.call(arguments)))},o.doesNotThrow=function(e,t){p.apply(this,[!1].concat(a.call(arguments)))},o.ifError=function(e){if(e)throw e};var m=Object.keys||function(e){var t=[];for(var n in e)i.call(e,n)&&t.push(n);return t}},{"util/":11}],9:[function(e,t,n){t.exports="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},{}],10:[function(e,t,n){t.exports=function(e){return e&&"object"===Z(e)&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},{}],11:[function(e,t,n){(function(t,r){var a=/%[sdj%]/g;n.format=function(e){if(!_(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(s(arguments[n]));return t.join(" ")}n=1;for(var r=arguments,i=r.length,o=String(e).replace(a,(function(e){if("%%"===e)return"%";if(n>=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),l=r[n];n<i;l=r[++n])m(l)||!b(l)?o+=" "+l:o+=" "+s(l);return o},n.deprecate=function(e,a){if(y(r.process))return function(){return n.deprecate(e,a).apply(this,arguments)};if(!0===t.noDeprecation)return e;var i=!1;return function(){if(!i){if(t.throwDeprecation)throw new Error(a);t.traceDeprecation?console.trace(a):console.error(a),i=!0}return e.apply(this,arguments)}};var i,o={};function s(e,t){var r={seen:[],stylize:c};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),p(t)?r.showHidden=t:t&&n._extend(r,t),y(r.showHidden)&&(r.showHidden=!1),y(r.depth)&&(r.depth=2),y(r.colors)&&(r.colors=!1),y(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=l),u(r,e,r.depth)}function l(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function c(e,t){return e}function u(e,t,r){if(e.customInspect&&t&&S(t.inspect)&&t.inspect!==n.inspect&&(!t.constructor||t.constructor.prototype!==t)){var a=t.inspect(r,e);return _(a)||(a=u(e,a,r)),a}var i=function(e,t){if(y(t))return e.stylize("undefined","undefined");if(_(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return g(t)?e.stylize(""+t,"number"):p(t)?e.stylize(""+t,"boolean"):m(t)?e.stylize("null","null"):void 0}(e,t);if(i)return i;var o=Object.keys(t),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(t)),x(t)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return d(t);if(0===o.length){if(S(t))return e.stylize("[Function"+(t.name?": "+t.name:"")+"]","special");if(v(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(w(t))return e.stylize(Date.prototype.toString.call(t),"date");if(x(t))return d(t)}var l,c="",b=!1,k=["{","}"];return h(t)&&(b=!0,k=["[","]"]),S(t)&&(c=" [Function"+(t.name?": "+t.name:"")+"]"),v(t)&&(c=" "+RegExp.prototype.toString.call(t)),w(t)&&(c=" "+Date.prototype.toUTCString.call(t)),x(t)&&(c=" "+d(t)),0!==o.length||b&&0!=t.length?r<0?v(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),l=b?function(e,t,n,r,a){for(var i=[],o=0,s=t.length;o<s;++o)C(t,String(o))?i.push(f(e,t,n,r,String(o),!0)):i.push("");return a.forEach((function(a){a.match(/^\d+$/)||i.push(f(e,t,n,r,a,!0))})),i}(e,t,r,s,o):o.map((function(n){return f(e,t,r,s,n,b)})),e.seen.pop(),function(e,t,n){var r=e.reduce((function(e,t){return t.indexOf("\n"),e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0);return r>60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}(l,c,k)):k[0]+c+k[1]}function d(e){return"["+Error.prototype.toString.call(e)+"]"}function f(e,t,n,r,a,i){var o,s,l;if((l=Object.getOwnPropertyDescriptor(t,a)||{value:t[a]}).get?s=e.stylize(l.set?"[Getter/Setter]":"[Getter]","special"):l.set&&(s=e.stylize("[Setter]","special")),C(r,a)||(o="["+a+"]"),s||(e.seen.indexOf(l.value)<0?(s=m(n)?u(e,l.value,null):u(e,l.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),y(o)){if(i&&a.match(/^\d+$/))return s;(o=JSON.stringify(""+a)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+s}function h(e){return Array.isArray(e)}function p(e){return"boolean"==typeof e}function m(e){return null===e}function g(e){return"number"==typeof e}function _(e){return"string"==typeof e}function y(e){return void 0===e}function v(e){return b(e)&&"[object RegExp]"===k(e)}function b(e){return"object"===Z(e)&&null!==e}function w(e){return b(e)&&"[object Date]"===k(e)}function x(e){return b(e)&&("[object Error]"===k(e)||e instanceof Error)}function S(e){return"function"==typeof e}function k(e){return Object.prototype.toString.call(e)}function E(e){return e<10?"0"+e.toString(10):e.toString(10)}n.debuglog=function(e){if(y(i)&&(i=t.env.NODE_DEBUG||""),e=e.toUpperCase(),!o[e])if(new RegExp("\\b"+e+"\\b","i").test(i)){var r=t.pid;o[e]=function(){var t=n.format.apply(n,arguments);console.error("%s %d: %s",e,r,t)}}else o[e]=function(){};return o[e]},n.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},n.isArray=h,n.isBoolean=p,n.isNull=m,n.isNullOrUndefined=function(e){return null==e},n.isNumber=g,n.isString=_,n.isSymbol=function(e){return"symbol"===Z(e)},n.isUndefined=y,n.isRegExp=v,n.isObject=b,n.isDate=w,n.isError=x,n.isFunction=S,n.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"===Z(e)||void 0===e},n.isBuffer=e("./support/isBuffer");var A=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function C(e,t){return Object.prototype.hasOwnProperty.call(e,t)}n.log=function(){var e,t;console.log("%s - %s",(t=[E((e=new Date).getHours()),E(e.getMinutes()),E(e.getSeconds())].join(":"),[e.getDate(),A[e.getMonth()],t].join(" ")),n.format.apply(n,arguments))},n.inherits=e("inherits"),n._extend=function(e,t){if(!t||!b(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e}}).call(this,e("_process"),void 0!==j?j:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":10,_process:14,inherits:9}],12:[function(e,t,n){},{}],13:[function(e,t,n){(function(e){function t(e,t){for(var n=0,r=e.length-1;r>=0;r--){var a=e[r];"."===a?e.splice(r,1):".."===a?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function r(e,t){if(e.filter)return e.filter(t);for(var n=[],r=0;r<e.length;r++)t(e[r],r,e)&&n.push(e[r]);return n}n.resolve=function(){for(var n="",a=!1,i=arguments.length-1;i>=-1&&!a;i--){var o=i>=0?arguments[i]:e.cwd();if("string"!=typeof o)throw new TypeError("Arguments to path.resolve must be strings");o&&(n=o+"/"+n,a="/"===o.charAt(0))}return(a?"/":"")+(n=t(r(n.split("/"),(function(e){return!!e})),!a).join("/"))||"."},n.normalize=function(e){var i=n.isAbsolute(e),o="/"===a(e,-1);return(e=t(r(e.split("/"),(function(e){return!!e})),!i).join("/"))||i||(e="."),e&&o&&(e+="/"),(i?"/":"")+e},n.isAbsolute=function(e){return"/"===e.charAt(0)},n.join=function(){var e=Array.prototype.slice.call(arguments,0);return n.normalize(r(e,(function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e})).join("/"))},n.relative=function(e,t){function r(e){for(var t=0;t<e.length&&""===e[t];t++);for(var n=e.length-1;n>=0&&""===e[n];n--);return t>n?[]:e.slice(t,n-t+1)}e=n.resolve(e).substr(1),t=n.resolve(t).substr(1);for(var a=r(e.split("/")),i=r(t.split("/")),o=Math.min(a.length,i.length),s=o,l=0;l<o;l++)if(a[l]!==i[l]){s=l;break}var c=[];for(l=s;l<a.length;l++)c.push("..");return(c=c.concat(i.slice(s))).join("/")},n.sep="/",n.delimiter=":",n.dirname=function(e){if("string"!=typeof e&&(e+=""),0===e.length)return".";for(var t=e.charCodeAt(0),n=47===t,r=-1,a=!0,i=e.length-1;i>=1;--i)if(47===(t=e.charCodeAt(i))){if(!a){r=i;break}}else a=!1;return-1===r?n?"/":".":n&&1===r?"/":e.slice(0,r)},n.basename=function(e,t){var n=function(e){"string"!=typeof e&&(e+="");var t,n=0,r=-1,a=!0;for(t=e.length-1;t>=0;--t)if(47===e.charCodeAt(t)){if(!a){n=t+1;break}}else-1===r&&(a=!1,r=t+1);return-1===r?"":e.slice(n,r)}(e);return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},n.extname=function(e){"string"!=typeof e&&(e+="");for(var t=-1,n=0,r=-1,a=!0,i=0,o=e.length-1;o>=0;--o){var s=e.charCodeAt(o);if(47!==s)-1===r&&(a=!1,r=o+1),46===s?-1===t?t=o:1!==i&&(i=1):-1!==t&&(i=-1);else if(!a){n=o+1;break}}return-1===t||-1===r||0===i||1===i&&t===r-1&&t===n+1?"":e.slice(t,r)};var a="b"==="ab".substr(-1)?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return t<0&&(t=e.length+t),e.substr(t,n)}}).call(this,e("_process"))},{_process:14}],14:[function(e,t,n){var r,a,i=t.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function l(e){if(r===setTimeout)return setTimeout(e,0);if((r===o||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:o}catch(e){r=o}try{a="function"==typeof clearTimeout?clearTimeout:s}catch(e){a=s}}();var c,u=[],d=!1,f=-1;function h(){d&&c&&(d=!1,c.length?u=c.concat(u):f=-1,u.length&&p())}function p(){if(!d){var e=l(h);d=!0;for(var t=u.length;t;){for(c=u,u=[];++f<t;)c&&c[f].run();f=-1,t=u.length}c=null,d=!1,function(e){if(a===clearTimeout)return clearTimeout(e);if((a===s||!a)&&clearTimeout)return a=clearTimeout,clearTimeout(e);try{return a(e)}catch(t){try{return a.call(null,e)}catch(t){return a.call(this,e)}}}(e)}}function m(e,t){this.fun=e,this.array=t}function g(){}i.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];u.push(new m(e,t)),1!==u.length||d||l(p)},m.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=g,i.addListener=g,i.once=g,i.off=g,i.removeListener=g,i.removeAllListeners=g,i.emit=g,i.prependListener=g,i.prependOnceListener=g,i.listeners=function(e){return[]},i.binding=function(e){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(e){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},{}],15:[function(e,t,n){var r=e("escodegen").generate;t.exports=function(e,t){t||(t={});var n={},a=function e(a,i){if("Literal"===a.type)return a.value;if("UnaryExpression"===a.type){var o=e(a.argument);return"+"===a.operator?+o:"-"===a.operator?-o:"~"===a.operator?~o:"!"===a.operator?!o:n}if("ArrayExpression"===a.type){for(var s=[],l=0,c=a.elements.length;l<c;l++){if((_=e(a.elements[l]))===n)return n;s.push(_)}return s}if("ObjectExpression"===a.type){var u={};for(l=0;l<a.properties.length;l++){var d=null===(y=a.properties[l]).value?y.value:e(y.value);if(d===n)return n;u[y.key.value||y.key.name]=d}return u}if("BinaryExpression"===a.type||"LogicalExpression"===a.type){if((c=e(a.left))===n)return n;var f=e(a.right);if(f===n)return n;var h=a.operator;return"=="===h?c==f:"==="===h?c===f:"!="===h?c!=f:"!=="===h?c!==f:"+"===h?c+f:"-"===h?c-f:"*"===h?c*f:"/"===h?c/f:"%"===h?c%f:"<"===h?c<f:"<="===h?c<=f:">"===h?c>f:">="===h?c>=f:"|"===h?c|f:"&"===h?c&f:"^"===h?c^f:"&&"===h?c&&f:"||"===h?c||f:n}if("Identifier"===a.type)return{}.hasOwnProperty.call(t,a.name)?t[a.name]:n;if("ThisExpression"===a.type)return{}.hasOwnProperty.call(t,"this")?t.this:n;if("CallExpression"===a.type){var p=e(a.callee);if(p===n)return n;if("function"!=typeof p)return n;var m=a.callee.object?e(a.callee.object):n;m===n&&(m=null);var g=[];for(l=0,c=a.arguments.length;l<c;l++){var _;if((_=e(a.arguments[l]))===n)return n;g.push(_)}return p.apply(m,g)}var y;if("MemberExpression"===a.type)return(u=e(a.object))===n||"function"==typeof u?n:"Identifier"===a.property.type?u[a.property.name]:(y=e(a.property))===n?n:u[y];if("ConditionalExpression"===a.type)return(o=e(a.test))===n?n:e(o?a.consequent:a.alternate);if("ExpressionStatement"===a.type)return(o=e(a.expression))===n?n:o;if("ReturnStatement"===a.type)return e(a.argument);if("FunctionExpression"===a.type){var v=a.body.body,b={};for(Object.keys(t).forEach((function(e){b[e]=t[e]})),l=0;l<a.params.length;l++){var w=a.params[l];if("Identifier"!=w.type)return n;t[w.name]=null}for(var l in v)if(e(v[l])===n)return n;t=b;var x=Object.keys(t),S=x.map((function(e){return t[e]}));return Function(x.join(", "),"return "+r(a)).apply(null,S)}if("TemplateLiteral"===a.type){var k="";for(l=0;l<a.expressions.length;l++)k+=e(a.quasis[l]),k+=e(a.expressions[l]);return k+e(a.quasis[l])}if("TaggedTemplateExpression"===a.type){var E=e(a.tag),A=a.quasi,C=A.quasis.map(e),R=A.expressions.map(e);return E.apply(null,[C].concat(R))}return"TemplateElement"===a.type?a.value.cooked:n}(e);return a===n?void 0:a}},{escodegen:12}],jsonpath:[function(e,t,n){t.exports=e("./lib/index")},{"./lib/index":5}]},{},["jsonpath"])("jsonpath")},e.exports=n()}(xf);var Sf=xf.exports;const kf=new Set(["i","me","my","myself","we","our","ours","ourselves","you","your","yours","yourself","yourselves","he","him","his","himself","she","her","hers","herself","it","its","itself","they","them","their","theirs","themselves","what","which","who","whom","this","that","these","those","am","is","are","was","were","be","been","being","have","has","had","having","do","does","did","doing","a","an","the","and","but","if","or","because","as","until","while","of","at","by","for","with","about","against","between","into","through","during","before","after","above","below","to","from","up","down","in","out","on","off","over","under","again","further","then","once","here","there","when","where","why","how","all","any","both","each","few","more","most","other","some","such","no","nor","not","only","own","same","so","than","too","very","s","t","can","will","just","don","should","now",..."1234567890"]);function Ef(e,t){for(const[n,r]of t.entries())if(e.startsWith(r))return e.replace(r,n);return e}const Af="$PREFIXED_ID";function Cf(e,t,n){return t===Af?[Ef(e.id,n)]:Sf.query(e,t)}function Rf(e){return e.toLowerCase().split(/[^\d:A-Za-z]+/).filter((e=>e&&!kf.has(e)))}function*Nf(e){for(const t of e)yield*Rf(t)}function*If(e){for(const t of e)if("string"==typeof t)yield t;else if("object"==typeof t){const e=Sf.query(t,"$..*");yield*If(e)}}function*Tf(e,t,n){for(const r of t){const t=Cf(e,r,n);if(t.length>0)for(const e of Nf(If(t)))yield[r,e]}}async function Of(e,t,r){const a=await this.db,i=t??a.transaction(["nodes"]);n.checkAbortSignal(r);const o=[...Rf(e)],s=[],l=new Map;s.push(...o.map((async(e,t)=>{n.checkAbortSignal(r);const a=i.objectStore("nodes").index("full-text-words");for await(const i of a.iterate(IDBKeyRange.bound(e,`${e}`,!1,!1))){n.checkAbortSignal(r);const e=i.value,a=l.get(e.id)??[e,new Set];a[1].add(t),l.set(e.id,a)}}))),await Promise.all(s),n.checkAbortSignal(r);const c=[];for(const[,[e,t]]of l)n.checkAbortSignal(r),c.push(...Ff(this.textIndexFields,e,t,o,this.prefixes));return c.sort(((e,t)=>t.score-e.score)),c.slice(0,this.options.maxSearchResults??this.DEFAULT_MAX_SEARCH_RESULTS)}function Ff(e,t,n,r,a){const i=[...n].sort().map((e=>r[e])),o=i.map((e=>{const t=e.replaceAll(/[$()*+./?[\\\]^{|}-]/g,"\\$&");return new RegExp(`\\b${t}`,"gi")}));let s=[],l=0;for(const[n,i]of e.entries()){const c=new Set,u=e.length-n-1,d=[...If(Cf(t,i.jsonPath,a))];for(const e of d){let n=0;const a=[];for(const[t,i]of o.entries())for(const o of e.matchAll(i)){n+=1+1*u,c.add(t);const i=o.index,s=r[t];void 0!==i&&(n+=.01*s.length,n+=s.length/e.length*100*.05,a.push({wordIndex:t,position:i}))}n+=100*c.size,l<n&&(l=n),a.sort(((e,t)=>e.position-t.position)),a.length>0&&s.push({term:t,field:i,str:e,score:n,wordMatches:a})}}s=s.filter((e=>e.score===l));for(const e of s){const{wordMatches:t}=e;for(let n=0;n<t.length-1;n++){const r=t[n],a=t[n+1],o=a.wordIndex-r.wordIndex;if(1===o||-1===o){e.score+=1,1===o&&(e.score+=1);const t=Math.abs(a.position-(r.position+i[r.wordIndex].length))-1;e.score-=.05*t}}}return s}function Lf(e){return"string"==typeof e.id}function Df(e){return"string"==typeof e.sub&&"string"==typeof e.pred&&"string"==typeof e.obj}function Mf(e){return Boolean(e.meta?.deprecated)}var Pf,qf,jf=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==Z(t)&&"object"==Z(n)){if(t.constructor!==n.constructor)return!1;var r,a,i;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(a=r;0!=a--;)if(!e(t[a],n[a]))return!1;return!0}if(t instanceof Map&&n instanceof Map){if(t.size!==n.size)return!1;var o,s=we(t.entries());try{for(s.s();!(o=s.n()).done;)if(!n.has((a=o.value)[0]))return!1}catch(e){s.e(e)}finally{s.f()}var l,c=we(t.entries());try{for(c.s();!(l=c.n()).done;)if(!e((a=l.value)[1],n.get(a[0])))return!1}catch(e){c.e(e)}finally{c.f()}return!0}if(t instanceof Set&&n instanceof Set){if(t.size!==n.size)return!1;var u,d=we(t.entries());try{for(d.s();!(u=d.n()).done;)if(!n.has((a=u.value)[0]))return!1}catch(e){d.e(e)}finally{d.f()}return!0}if(ArrayBuffer.isView(t)&&ArrayBuffer.isView(n)){if((r=t.length)!=n.length)return!1;for(a=r;0!=a--;)if(t[a]!==n[a])return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(i=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(a=r;0!=a--;)if(!Object.prototype.hasOwnProperty.call(n,i[a]))return!1;for(a=r;0!=a--;){var f=i[a];if(!e(t[f],n[f]))return!1}return!0}return t!=t&&n!=n},Bf=function(e,t){return t.some((function(t){return e instanceof t}))},Uf=new WeakMap,zf=new WeakMap,Gf=new WeakMap,Hf=new WeakMap,$f=new WeakMap,Jf={get:function(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return zf.get(e);if("objectStoreNames"===t)return e.objectStoreNames||Gf.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return Wf(e[t])},set:function(e,t,n){return e[t]=n,!0},has:function(e,t){return e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}};function Vf(e){Jf=e(Jf)}function Wf(e){if(e instanceof IDBRequest)return t=e,(n=new Promise((function(e,n){var r=function(){t.removeEventListener("success",a),t.removeEventListener("error",i)},a=function(){e(Wf(t.result)),r()},i=function(){n(t.error),r()};t.addEventListener("success",a),t.addEventListener("error",i)}))).then((function(e){e instanceof IDBCursor&&Uf.set(e,t)})).catch((function(){})),$f.set(n,t),n;var t,n;if(Hf.has(e))return Hf.get(e);var r=function(e){return"function"==typeof e?(t=e)!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(qf||(qf=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return t.apply(Kf(this),n),Wf(Uf.get(this))}:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return Wf(t.apply(Kf(this),n))}:function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];var i=t.call.apply(t,[Kf(this),e].concat(r));return Gf.set(i,e.sort?e.sort():[e]),Wf(i)}:(e instanceof IDBTransaction&&function(e){if(!zf.has(e)){var t=new Promise((function(t,n){var r=function(){e.removeEventListener("complete",a),e.removeEventListener("error",i),e.removeEventListener("abort",i)},a=function(){t(),r()},i=function(){n(e.error||new DOMException("AbortError","AbortError")),r()};e.addEventListener("complete",a),e.addEventListener("error",i),e.addEventListener("abort",i)}));zf.set(e,t)}}(e),Bf(e,Pf||(Pf=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(e,Jf):e);var t}(e);return r!==e&&(Hf.set(e,r),$f.set(r,e)),r}var Kf=function(e){return $f.get(e)},Yf=["get","getKey","getAll","getAllKeys","count"],Zf=["put","add","delete","clear"],Xf=new Map;function Qf(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(Xf.get(t))return Xf.get(t);var n=t.replace(/FromIndex$/,""),r=t!==n,a=Zf.includes(n);if(n in(r?IDBIndex:IDBObjectStore).prototype&&(a||Yf.includes(n))){var i=function(){var e=Q(Y().mark((function e(t){var i,o,s,l,c,u,d=arguments;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(o=this.transaction(t,a?"readwrite":"readonly"),s=o.store,l=d.length,c=new Array(l>1?l-1:0),u=1;u<l;u++)c[u-1]=d[u];return r&&(s=s.index(c.shift())),e.next=6,Promise.all([(i=s)[n].apply(i,c),a&&o.done]);case 6:return e.abrupt("return",e.sent[0]);case 7:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}();return Xf.set(t,i),i}}}Vf((function(e){return K(K({},e),{},{get:function(t,n,r){return Qf(t,n)||e.get(t,n,r)},has:function(t,n){return!!Qf(t,n)||e.has(t,n)}})}));var eh=["continue","continuePrimaryKey","advance"],th={},nh=new WeakMap,rh=new WeakMap,ah={get:function(e,t){if(!eh.includes(t))return e[t];var n=th[t];return n||(n=th[t]=function(){var e;nh.set(this,(e=rh.get(this))[t].apply(e,arguments))}),n}};function ih(){return oh.apply(this,arguments)}function oh(){var e;return e=Y().mark((function e(){var t,n,r,a=arguments;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((t=this)instanceof IDBCursor){e.next=5;break}return e.next=4,V((n=t).openCursor.apply(n,a));case 4:t=e.sent;case 5:if(t){e.next=7;break}return e.abrupt("return");case 7:r=new Proxy(t,ah),rh.set(r,t),$f.set(r,Kf(t));case 11:if(!t){e.next=20;break}return e.next=14,r;case 14:return e.next=16,V(nh.get(r)||t.continue());case 16:t=e.sent,nh.delete(r),e.next=11;break;case 20:case"end":return e.stop()}}),e,this)})),oh=function(){return new G(e.apply(this,arguments))},oh.apply(this,arguments)}function sh(e,t){return t===Symbol.asyncIterator&&Bf(e,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===t&&Bf(e,[IDBIndex,IDBObjectStore])}async function lh(e){return function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.blocked,a=n.upgrade,i=n.blocking,o=n.terminated,s=indexedDB.open(e,t),l=Wf(s);return a&&s.addEventListener("upgradeneeded",(function(e){a(Wf(s.result),e.oldVersion,e.newVersion,Wf(s.transaction),e)})),r&&s.addEventListener("blocked",(function(e){return r(e.oldVersion,e.newVersion,e)})),l.then((function(e){o&&e.addEventListener("close",(function(){return o()})),i&&e.addEventListener("versionchange",(function(e){return i(e.oldVersion,e.newVersion,e)}))})).catch((function(){})),l}(e,2,{upgrade(e,t,n,r,a){if(t<2&&(e.objectStoreNames.contains("meta")&&e.deleteObjectStore("meta"),e.objectStoreNames.contains("nodes")&&e.deleteObjectStore("nodes"),e.objectStoreNames.contains("edges")&&e.deleteObjectStore("edges")),e.objectStoreNames.contains("meta")||e.createObjectStore("meta"),!e.objectStoreNames.contains("nodes")){e.createObjectStore("nodes",{keyPath:"id"});const t=r.objectStore("nodes");t.createIndex("by-label","lbl"),t.createIndex("by-type","type"),t.createIndex("by-synonym",["meta","synonyms","val"]),t.createIndex("full-text-words","fullTextWords",{multiEntry:!0})}if(!e.objectStoreNames.contains("edges")){e.createObjectStore("edges",{autoIncrement:!0});const t=r.objectStore("edges");t.createIndex("by-subject","sub"),t.createIndex("by-object","obj"),t.createIndex("by-predicate","pred")}}})}function ch(e){const t=new Set;for(const[,n]of e)t.add(n);return[...t]}async function uh(e){const t=Date.now(),n=JSON.parse(await _.openLocation(this.sourceLocation).readFile("utf8")),r=Date.now(),[a,...i]=n.graphs??[];if(a){if(i.length>0)throw new Error("multiple graphs not supported");try{const n=e.transaction(["meta","nodes","edges"],"readwrite");await n.objectStore("meta").clear(),await n.objectStore("nodes").clear(),await n.objectStore("edges").clear();const i=n.objectStore("nodes"),o=dh.call(this).map((e=>e.jsonPath));for(const e of a.nodes??[])Lf(e)&&await i.add({...e,fullTextWords:ch(Tf(e,o,this.prefixes))});const s=n.objectStore("edges");for(const e of a.edges??[])Df(e)&&await s.add(e);await n.done;const l=e.transaction("meta","readwrite");await l.objectStore("meta").add({ontologyRecord:{name:this.ontologyName,version:this.ontologyVersion,sourceLocation:this.sourceLocation},storeOptions:this.options,graphMeta:a.meta,timestamp:String(new Date),schemaVersion:2,timings:{overall:Date.now()-t,load:Date.now()-r}},"meta"),await l.done}catch(t){throw await e.transaction("meta","readwrite").objectStore("meta").clear(),t}}}function dh(){return[{displayName:"ID",jsonPath:Af},...this.options.textIndexing?.indexFields??gh]}async function fh(e){const[t]=await e.transaction("meta").objectStore("meta").getAll();return!!t&&jf(this.options.prefixes,t.storeOptions.prefixes)&&jf(this.options.textIndexing,t.storeOptions.textIndexing)}Vf((function(e){return K(K({},e),{},{get:function(t,n,r){return sh(t,n)?ih:e.get(t,n,r)},has:function(t,n){return sh(t,n)||e.has(t,n)}})}));class hh{ontologyName;ontologyVersion;sourceLocation;db;options;loadOboGraphJson=uh;getTermsByFulltext=Of;openDatabase=lh;isDatabaseCurrent=fh;get textIndexFields(){return dh.call(this)}get prefixes(){return this.options.prefixes??new Map}DEFAULT_MAX_SEARCH_RESULTS=100;constructor(e,t,n,r){this.ontologyName=e,this.ontologyVersion=t,this.sourceLocation=n,this.db=this.prepareDatabase(),this.options=r??{}}validate(){const e=[],{sourceLocation:t,sourceType:n}=this;return n?"obo-graph-json"!==n&&e.push(new Error(`ontology source file ${JSON.stringify(t)} has type ${n}, which is not yet supported`)):e.push(new Error(`unable to determine format of ontology source file ${JSON.stringify(t)}, file name must end with ".json", ".obo", or ".owl"`)),e}get sourceType(){if(n.isUriLocation(this.sourceLocation)){if(this.sourceLocation.uri.endsWith(".json"))return"obo-graph-json"}else if(function(e){return"object"==typeof e&&null!==e&&"localPath"in e}(this.sourceLocation)&&this.sourceLocation.localPath.endsWith(".json"))return"obo-graph-json"}get dbName(){return`Apollo Ontology "${this.ontologyName}" "${this.ontologyVersion}"`}async prepareDatabase(){const e=this.validate();if(e.length>0)throw e;const t=await this.openDatabase(this.dbName);if(await this.isDatabaseCurrent(t))return t;const{sourceLocation:n,sourceType:r}=this;if("obo-graph-json"!==r)throw new Error(`ontology source file ${JSON.stringify(n)} has type ${r}, which is not yet supported`);return await this.loadOboGraphJson(t),t}async termCount(e){const t=await this.db;return(e??t.transaction("nodes")).objectStore("nodes").count()}unique(e){const t=new Map,n=[];for(const r of e)t.has(r.id)||(t.set(r.id,!0),n.push(r));return n}async getTermsWithLabelOrSynonym(e,t,n){const r=t?.includeSubclasses??!0,a=await this.db,i=n??a.transaction(["nodes","edges"]),o=i.objectStore("nodes"),s=[...await o.index("by-label").getAll(e),...await o.index("by-synonym").getAll(e)];if(r){const e=await this.recurseEdges("by-object",s.map((e=>e.id)),(e=>"is_a"===e.pred),"sub",i);for(const t of e){const e=await o.get(t);e&&s.push(e)}}return s}async getPropertiesByLabel(e,t,n){const r=t?.includeSubProperties??!0,a=await this.db,i=n??a.transaction(["nodes","edges"]),o=(await this.getTermsWithLabelOrSynonym(e,{includeSubclasses:!1},i)).filter((e=>vh(e)));if(r){const e=await this.recurseEdges("by-object",o.map((e=>e.id)),(e=>"subPropertyOf"===e.pred),"sub",i),t=i.objectStore("nodes");for(const n of e){const e=await t.get(n);e&&vh(e)&&o.push(e)}}return o}async recurseEdges(e,t,n,r,a){const i=new Set;return await async function t(o){await Promise.all([...o].map((async o=>{const s=(await a.objectStore("edges").index(e).getAll(o)).filter((e=>n(e))).map((e=>e[r]));if(s.length>0){for(const e of s)i.add(e);await t(s)}})))}(t),i.values()}async*expandNodeSet(e,t="is_a",n,r){const a=await this.db,i=r??a.transaction(["edges"]),o=[...e],s=await this.recurseEdges("subclasses"===n?"by-object":"by-subject",o,(e=>e.pred===t),"subclasses"===n?"sub":"obj",i);for(const e of o)yield e;for(const e of s)yield e}expandSubclasses(e,t="is_a",n){return this.expandNodeSet(e,t,"subclasses",n)}expandSuperclasses(e,t="is_a",n){return this.expandNodeSet(e,t,"superclasses",n)}async getClassesThat(e,t,n){const r=await this.db,a=n??r.transaction(["nodes","edges"]),i=await this.getPropertiesByLabel(e,{includeSubProperties:!0},a),o=new Set(i.map((e=>e.id))),s=await async function(e){const t=[];for await(const n of e)t.push(n);return t}(this.expandSuperclasses(t.map((e=>e.id)),"is_a",a)),l=await this.recurseEdges("by-object",s,(e=>o.has(e.pred)),"sub",a),c=this.expandSubclasses(l,"is_a",a),u=[];for await(const e of c){const t=await a.objectStore("nodes").get(e);t&&yh(t)&&!Mf(t)&&u.push(t)}return u}async getClassesWithoutPropertyLabeled(e,t,n){const r=await this.db,a=n??r.transaction(["nodes","edges"]),i=a.objectStore("nodes"),o=a.objectStore("edges"),s=(await this.getPropertiesByLabel(e,t,a)).map((e=>e.id)),l=await(async()=>{const e=new Set;for(const t of s)for await(const n of o.index("by-predicate").iterate(t))e.add(n.value.sub);const t=new Set;for await(const n of this.expandSubclasses(e,"is_a",a))t.add(n);return t})(),c=[];for await(const e of i){const t=e.value;yh(t)&&!l.has(t.id)&&c.push(t.id)}const u=[];for await(const e of c){const t=await a.objectStore("nodes").get(e);t&&yh(t)&&!Mf(t)&&u.push(t)}return u}async getAllClasses(e){const t=await this.db,n=e??t.transaction(["nodes"]);return(await n.objectStore("nodes").index("by-type").getAll("CLASS")).filter((e=>!Mf(e)))}async getAllTerms(e){const t=await this.db,n=e??t.transaction(["nodes"]);return(await n.objectStore("nodes").getAll()).filter((e=>!Mf(e)))}}const ph=l.types.model("OntologyRecord",{name:l.types.string,version:"unversioned",source:l.types.union(g.LocalPathLocation,g.UriLocation,g.BlobLocation),options:l.types.frozen()}).volatile((e=>({dataStore:void 0}))).actions((e=>({ping(){},initDataStore(){e.dataStore=new hh(e.name,e.version,l.getSnapshot(e.source),e.options)},afterCreate(){l.addDisposer(e,s.autorun((()=>{this.initDataStore()})))}}))),mh=l.types.model("OntologyManager",{ontologies:l.types.array(ph),prefixes:l.types.optional(l.types.map(l.types.string),{"GO:":"http://purl.obolibrary.org/obo/GO_","SO:":"http://purl.obolibrary.org/obo/SO_"})}).views((e=>({get featureTypeOntology(){return this.findOntology("Sequence Ontology")},findOntology:(t,n)=>e.ontologies.find((e=>e.name===t&&(void 0===n||e.version===n))),openOntology(e,t){return this.findOntology(e,t)?.dataStore},applyPrefixes:t=>Ef(t,e.prefixes),expandPrefixes:t=>function(e,t){for(const[n,r]of t.entries())if(e.startsWith(n))return e.replace(n,r);return e}(t,e.prefixes)}))).actions((e=>({addOntology(t,n,r,a){const i=e.ontologies.push({name:t,version:n,source:r,options:{prefixes:new Map(e.prefixes.entries()),...a}});e.ontologies[i-1].ping()}}))),gh=[{displayName:"Label",jsonPath:"$.lbl"},{displayName:"Synonym",jsonPath:"$.meta.synonyms[*].val"},{displayName:"Definition",jsonPath:"$.meta.definition.val"}],_h=r.ConfigurationSchema("OntologyRecord",{name:{type:"string",description:'the full name of the ontology, e.g. "Gene Ontology"',defaultValue:"My Ontology"},version:{type:"string",description:"the ontology's version string",defaultValue:"unversioned"},source:{type:"fileLocation",description:"the download location for the ontology's source file",defaultValue:{locationType:"UriLocation",uri:"http://example.com/myontology.json"}},textIndexFields:{type:"frozen",description:"JSON paths for text fields that will be indexed for text searching",defaultValue:gh}});function yh(e){return"CLASS"===e.type}function vh(e){return"PROPERTY"===e.type}async function bh(e,t,n){if(!e)return;const r=await t.getTermsWithLabelOrSynonym(e.type,{includeSubclasses:!1}),a=r.filter(yh);if(0===r.length)return;const i=await t.getClassesThat("part_of",a);return 0!==i.length?i:void 0}function wh({fetchValidTerms:e,filterTerms:t,includeDeprecated:r,onChange:a,ontologyName:i,ontologyVersion:o,renderInput:s,session:l,style:u,value:d}){const[h,p]=f.useState(!1),[m,g]=f.useState(),[_,y]=f.useState(""),[v,b]=f.useState(),{ontologyManager:w}=l.apolloDataStore,x=w.findOntology(i,o)?.dataStore,S=x&&h&&!m,k=x&&!v,E=f.useCallback((e=>(r||!Mf(e))&&(!t||t(e))),[t,r]);f.useEffect((()=>{h||g(void 0)}),[h]),f.useEffect((()=>{const e=new AbortController,{signal:t}=e;return k&&(y(""),async function(e,t,n,r){if(!t)return;const a=(await e.getTermsWithLabelOrSynonym(t,{includeSubclasses:!1})).find(n??(()=>!0));if(!a)throw new Error(`not a valid ${e.ontologyName} term`);return a}(x,d,E).then((e=>{t.aborted||b(e)}),(e=>{t.aborted||n.isAbortException(e)||y(String(e))}))),()=>{e.abort()}}),[l,d,E,x,k]),f.useEffect((()=>{const t=new AbortController,{signal:r}=t;return S&&async function(e,t,n,r){let a;if(t){const n=await t(e,r);n&&(a=n)}return a||(a=await e.getAllTerms()),n?a.filter((e=>n(e))):a}(x,e,E,r).then((e=>{e&&!r.aborted&&g(e)}),(e=>{r.aborted||n.isAbortException(e)||l.notify(e.message,"error")})),()=>{t.abort()}}),[S,E,x,l,e]);const A={};return _&&(A.error=!0,A.helperText=_),L.default.createElement(c.Autocomplete,{style:u,autoComplete:!0,filterSelectedOptions:!0,disableClearable:!0,selectOnFocus:!0,clearOnBlur:!0,handleHomeEndKeys:!0,freeSolo:!0,value:d,options:m??[],onOpen:()=>{p(!0)},onClose:()=>{p(!1)},loading:S,renderInput:s??(e=>L.default.createElement(c.TextField,{...e,...A})),getOptionLabel:e=>"string"==typeof e?e:e.lbl??"",isOptionEqualToValue:(e,t)=>e.lbl===t.lbl,onChange:(e,t)=>{t&&("string"==typeof t?(b(void 0),a(d,t)):t.lbl!==d&&(y(""),b(t),a(d,t.lbl)))}})}function xh({changeManager:e,handleClose:t,session:n,sourceAssemblyId:r,sourceFeature:a}){const{notify:i}=n,[o,s]=f.useState(String(a.max)),[l,u]=f.useState(String(a.min+1)),[d,h]=f.useState(""),[p,m]=f.useState(""),[g,_]=f.useState(""),y=Number(o)<=Number(l);return L.default.createElement(vf,{open:!0,title:"Add new child feature",handleClose:t,maxWidth:!1,"data-testid":"add-feature-dialog"},L.default.createElement("form",{onSubmit:async function(n){n.preventDefault(),m("");const s=new nr.AddFeatureChange({changedIds:[a._id],typeName:"AddFeatureChange",assembly:r,addedFeature:{_id:(new Wn).toHexString(),refSeq:a.refSeq,min:Number(l)-1,max:Number(o),type:d},parentFeatureId:a._id});await e.submit(s),i("Feature added successfully","success"),t(),n.preventDefault()}},L.default.createElement(c.DialogContent,{style:{display:"flex",flexDirection:"column"}},L.default.createElement(c.TextField,{margin:"dense",id:"start",label:"Start",type:"number",fullWidth:!0,variant:"outlined",value:l,onChange:e=>{u(e.target.value)}}),L.default.createElement(c.TextField,{margin:"dense",id:"end",label:"End",type:"number",fullWidth:!0,variant:"outlined",value:o,onChange:e=>{s(e.target.value)},error:y,helperText:y?'"End" must be greater than "Start"':null}),L.default.createElement(wh,{session:n,ontologyName:"Sequence Ontology",style:{width:170},value:d,filterTerms:yh,fetchValidTerms:async function(e,t,n){const r=await bh(e,t);if(r)return r;_(`Type "${e?.type}" does not have any children in the ontology`)}.bind(null,a),renderInput:e=>L.default.createElement(c.TextField,{...e,label:"Type",variant:"outlined",fullWidth:!0,error:Boolean(g),helperText:g}),onChange:(e,t)=>{var n;t&&(n=t,m(""),h(n))}})),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{variant:"contained",type:"submit",disabled:y||!(l&&o&&d)},"Submit"),L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:t},"Cancel"))),p?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},p)):null)}function Sh({changeManager:e,handleClose:t,region:n,session:r}){const{notify:a}=r,[i,o]=f.useState(String(n.end)),[s,l]=f.useState(String(n.start+1)),[u,d]=f.useState(""),[h,p]=f.useState(),[m,g]=f.useState(""),_=Number(i)<=Number(s);return L.default.createElement(vf,{open:!0,title:"Add new feature",handleClose:t,maxWidth:!1,"data-testid":"add-feature-dialog"},L.default.createElement("form",{onSubmit:async function(o){let l;o.preventDefault(),g("");for(const[,e]of r.apolloDataStore.assemblies??new Map)if(e._id===n.assemblyName)for(const[,t]of e.refSeqs??new Map)t.name===n.refName&&(l=t._id);if(!l)return void g("Invalid refseq id");const c=(new Wn).toHexString(),d=new nr.AddFeatureChange({changedIds:[c],typeName:"AddFeatureChange",assembly:n.assemblyName,addedFeature:{_id:c,refSeq:l,min:Number(s)-1,max:Number(i),type:u,strand:h}});await e.submit(d),a("Feature added successfully","success"),t(),o.preventDefault()}},L.default.createElement(c.DialogContent,{style:{display:"flex",flexDirection:"column"}},L.default.createElement(c.TextField,{margin:"dense",id:"start",label:"Start",type:"number",fullWidth:!0,variant:"outlined",value:Number(s),onChange:e=>{l(e.target.value)}}),L.default.createElement(c.TextField,{margin:"dense",id:"end",label:"End",type:"number",fullWidth:!0,variant:"outlined",value:i,onChange:e=>{o(e.target.value)},error:_,helperText:_?'"End" must be greater than "Start"':null}),L.default.createElement(wh,{session:r,ontologyName:"Sequence Ontology",style:{width:170},value:u,filterTerms:yh,renderInput:e=>L.default.createElement(c.TextField,{...e,label:"Type",variant:"outlined",fullWidth:!0}),onChange:(e,t)=>{var n;t&&(n=t,g(""),d(n))}}),L.default.createElement(c.FormControl,null,L.default.createElement(c.InputLabel,{id:"demo-simple-select-label"},"Strand"),L.default.createElement(c.Select,{labelId:"demo-simple-select-label",id:"demo-simple-select",label:"Strand",value:h?.toString(),onChange:function(e){switch(g(""),Number(e.target.value)){case 1:p(1);break;case-1:p(-1);break;default:p(void 0)}}},L.default.createElement(c.MenuItem,{value:void 0}),L.default.createElement(c.MenuItem,{value:1},"+"),L.default.createElement(c.MenuItem,{value:-1},"-")))),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{variant:"contained",type:"submit",disabled:_||!(s&&i&&u)},"Submit"),L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:t},"Cancel"))),m?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},m)):null)}function kh(e,t){const n=(new Wn).toHexString();t.push(n);const r={};if(e.children)for(const n of Object.values(e.children)){const e=kh(n,t);r[e._id]=e}const a="string"==typeof e.refSeq?e.refSeq:e.refSeq.toHexString();return{...e,refSeq:a,children:e.children&&r,_id:n}}function Eh({changeManager:e,handleClose:t,session:n,sourceAssemblyId:a,sourceFeature:i}){const{assemblyManager:o,notify:s}=n,u=o.assemblyList,[d,h]=f.useState(u.find((e=>e.name!==a))?.name),[p,m]=f.useState([]),[g,_]=f.useState(""),[y,v]=f.useState(i.min),[b,w]=f.useState("");function x(e,t){const n={};if(e.children)for(const r of Object.values(e.children)){const e=x(r,t);e.refSeq=g,e.min=e.min+t,e.max=e.max+t,n[e._id]=e}const r="string"==typeof e.refSeq?e.refSeq:e.refSeq.toHexString(),a="string"==typeof e._id?e._id:e._id.toHexString();return{...e,refSeq:r,children:e.children&&n,_id:a}}return f.useEffect((()=>{_(""),async function(){if(!d)return void w("No assemblies to copy to");const e=await o.waitForAssembly(d);if(!e)return;const{refNameAliases:t}=e;if(!t)return;const n=[...Object.entries(t)].filter((([e,t])=>e!==t)).map((([e,t])=>({_id:e,name:t??""})));m(n),_(n[0]?._id||"")}().catch((e=>{w(String(e))}))}),[d,o]),L.default.createElement(vf,{open:!0,title:"Copy features and annotations",handleClose:t,maxWidth:!1,"data-testid":"copy-feature"},L.default.createElement("form",{onSubmit:async function(n){if(!d)return;n.preventDefault(),w("");const r=i.length,a=await o.waitForAssembly(d);if(!a)return void w(`Assembly not found: ${d}.`);const c=a.getCanonicalRefName(g),u=a.regions?.find((e=>e.refName===c));if(!u)return void w(`RefSeq not found: ${g}.`);const f=y+r;if(f>u.end)return void w(`Feature would extend beyond the bounds of the selected reference sequence. (Feature would end at ${f}, but reference sequence ends at ${u.end})`);if(y<u.start)return void w(`Reference sequence starts at ${u.start}, feature cannot start before that.`);const h=[],p=kh(l.getSnapshot(i),h),m={...p.attributes};"Parent"in m&&delete m.Parent,p.refSeq=g;const _=y-p.min;p.min=y,p.max=y+r;const v=x(p,_),b=new nr.AddFeatureChange({changedIds:[p._id],typeName:"AddFeatureChange",assembly:d,addedFeature:{_id:p._id,refSeq:p.refSeq,min:p.min,max:p.max,type:p.type,children:v.children,attributes:m,strand:p.strand},copyFeature:!0,allIds:h});await e.submit(b),s("Feature copied successfully","success"),t(),n.preventDefault()}},L.default.createElement(c.DialogContent,{style:{display:"flex",flexDirection:"column"}},L.default.createElement(c.DialogContentText,null,"Target assembly"),L.default.createElement(c.Select,{labelId:"label",value:d,onChange:function(e){h(e.target.value)}},u.filter((e=>e.name!==a)).map((e=>L.default.createElement(c.MenuItem,{key:e.name,value:e.name},r.readConfObject(e,"displayName"))))),L.default.createElement(c.DialogContentText,null,"Target reference sequence"),L.default.createElement(c.Select,{labelId:"label",value:g,onChange:function(e){_(e.target.value)}},p.map((e=>L.default.createElement(c.MenuItem,{key:e._id,value:e._id},e.name)))),L.default.createElement(c.DialogContentText,null,"Start position in target reference sequence"),L.default.createElement(c.TextField,{margin:"dense",type:"number",fullWidth:!0,variant:"outlined",value:y,onChange:e=>{v(Number(e.target.value))}})),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{disabled:!d||!g||!y,variant:"contained",type:"submit"},"Submit"),L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:t},"Cancel"))),b?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},b)):null)}function Ah({changeManager:e,handleClose:t,session:n}){const{internetAccounts:r}=l.getRoot(n),[a,i]=f.useState(),[o,s]=f.useState(""),[u,d]=f.useState(!1),[h,p]=f.useState(!1),m=r.filter((e=>"ApolloInternetAccount"===e.type));if(0===m.length)throw new Error("No Apollo internet account found");const[g,_]=f.useState(m[0]),{collaborationServerDriver:y}=n.apolloDataStore,v=y.getAssemblies();return f.useEffect((()=>{v.length>0&&void 0===a&&i(v[0])}),[v,a]),L.default.createElement(vf,{open:!0,title:"Delete Assembly",handleClose:t,maxWidth:!1,"data-testid":"delete-assembly"},L.default.createElement("form",{onSubmit:async function(n){if(n.preventDefault(),p(!0),s(""),!a)return void s("Must select assembly!");const r=new nr.DeleteAssemblyChange({typeName:"DeleteAssemblyChange",assembly:a.name});await e.submit(r,{internetAccountId:g.internetAccountId}),t(),n.preventDefault()}},L.default.createElement(c.DialogContent,{style:{display:"flex",flexDirection:"column"}},m.length>1?L.default.createElement(L.default.Fragment,null,L.default.createElement(c.DialogContentText,null,"Select account"),L.default.createElement(c.Select,{value:g.internetAccountId,onChange:function(e){p(!1);const t=m.find((t=>t.internetAccountId===e.target.value));if(!t)throw new Error(`Could not find internetAccount with ID "${e.target.value}"`);_(t)},disabled:h&&!o},r.map((e=>L.default.createElement(c.MenuItem,{key:e.id,value:e.internetAccountId},e.name))))):null,L.default.createElement(c.DialogContentText,null,"Select assembly"),L.default.createElement(c.Select,{labelId:"label",value:a?.name??"",onChange:function(e){const t=v.find((t=>t.name===e.target.value));i(t)},disabled:0===v.length},v.map((e=>L.default.createElement(c.MenuItem,{key:e.name,value:e.name},e.displayName??e.name)))),L.default.createElement(c.DialogContentText,null,L.default.createElement("strong",{style:{color:"red"}},"NOTE: All assembly data will be deleted and this operation cannot be undone!")),L.default.createElement(c.FormGroup,null,L.default.createElement(c.FormControlLabel,{control:L.default.createElement(c.Checkbox,{checked:u,onChange:()=>{d(!u)}}),label:"I understand that all assembly data will be deleted"}))),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{disabled:!a||!u,variant:"contained",type:"submit"},"Delete"),L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:t},"Cancel"))),o?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},o)):null)}function Ch({changeManager:e,handleClose:t,selectedFeature:n,session:r,setSelectedFeature:a,sourceAssemblyId:i,sourceFeature:o}){const{notify:s}=r,[u,d]=f.useState("");return L.default.createElement(vf,{open:!0,title:"Delete feature",handleClose:t,maxWidth:!1,"data-testid":"delete-feature"},L.default.createElement("form",{onSubmit:async function(r){r.preventDefault(),d(""),n?._id===o._id&&a();const c=new nr.DeleteFeatureChange({changedIds:[o._id],typeName:"DeleteFeatureChange",assembly:i,deletedFeature:l.getSnapshot(o),parentFeatureId:o.parent?._id});await e.submit(c),s("Feature deleted successfully","success"),t(),r.preventDefault()}},L.default.createElement(c.DialogContent,{style:{display:"flex",flexDirection:"column"}},L.default.createElement(c.DialogContentText,null,"Are you sure you want to delete the selected feature?")),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{variant:"contained",type:"submit"},"Yes"),L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:t},"Cancel"))),u?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},u)):null)}var Rh={exports:{}};function Nh({handleClose:e,session:t}){const[n,a]=f.useState(),[i,o]=f.useState(""),{collaborationServerDriver:s,getInternetAccount:u,inMemoryFileDriver:d}=t.apolloDataStore,h=[...s.getAssemblies(),...d.getAssemblies()];return L.default.createElement(vf,{open:!0,title:"Export GFF3",handleClose:e,maxWidth:!1,"data-testid":"download-gff3"},L.default.createElement("form",{onSubmit:async function(a){if(a.preventDefault(),o(""),!n)return void o("Must select assembly to download");const{internetAccountConfigId:i}=r.getConf(n,["sequence","metadata"]);i?await async function(e){if(!n)return void o("Must select assembly to download");const t=u(n.configuration.name,e),r=new URL("export/getID",t.baseURL),a=new URLSearchParams({assembly:n.name});r.search=a.toString();const i=r.toString(),s=t.getFetcher({locationType:"UriLocation",uri:i}),l=await s(i,{method:"GET"});if(!l.ok){const e=await df(l,"Error when exporting ID");return void o(e)}const{exportID:c}=await l.json(),d=new URL("export",t.baseURL),f=new URLSearchParams({exportID:c});d.search=f.toString();const h=d.toString();window.open(h,"_blank")}(i):function(e){if(!n)return void o("Must select assembly to download");const{assemblies:t}=e.apolloDataStore,a=t.get(n.name),i=a?.refSeqs;if(!i)return void o(`No refSeqs found for assembly "${n.name}"`);const s=[{directive:"gff-version",value:"3"}],c=r.getConf(n,["sequence","adapter","features"]);for(const e of c){const{end:t,refName:n,start:r}=e;s.push({directive:"sequence-region",value:`${n} ${r+1} ${t}`})}for(const[,e]of i){const{features:t}=e;if(t)for(const[,e]of t)s.push(nr.makeGFF3Feature(l.getSnapshot(e)))}for(const e of c){const{refName:t,seq:n}=e;s.push({id:t,description:"",sequence:n})}const u=lf.formatSync(s),d=new Blob([u],{type:"text/plain;charset=utf-8"});Rh.exports.saveAs(d,`${n.displayName??n.name}.gff3`)}(t),e()}},L.default.createElement(c.DialogContent,{style:{display:"flex",flexDirection:"column"}},L.default.createElement(c.DialogContentText,null,"Select assembly"),L.default.createElement(c.Select,{labelId:"label",value:n?.name??"",onChange:function(e){const t=h.find((t=>t.name===e.target.value));a(t)},disabled:0===h.length},h.map((e=>L.default.createElement(c.MenuItem,{key:e.name,value:e.name},e.displayName??e.name)))),L.default.createElement(c.DialogContentText,null,"Select assembly to export to GFF3")),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{disabled:!n,variant:"contained",type:"submit"},"Download"),L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:e},"Cancel"))),i?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},i)):null)}function Ih({changeManager:e,handleClose:t,session:n}){const{apolloDataStore:a}=n,[i,o]=f.useState(),[s,l]=f.useState(),[u,d]=f.useState(""),[h,p]=f.useState(!1),[m,g]=f.useState(),[_,y]=f.useState(!1),[v,b]=f.useState(!1),{collaborationServerDriver:w,getInternetAccount:x}=a,S=w.getAssemblies();return f.useEffect((()=>{s&&(async()=>{const{internetAccountConfigId:e}=r.getConf(s,["sequence","metadata"]),t=x(s.name,e);if(!t)throw new Error("No Apollo internet account found");const{baseURL:n}=t,a=new URL("features/count",n),i=new URLSearchParams({assemblyId:s.name});a.search=i.toString();const o=t.getFetcher({locationType:"UriLocation",uri:a.toString()});b(!0);const l=await o(a.toString(),{method:"GET"});if(!l.ok)throw new Error(await df(l));{const e=await l.json();g(e.count)}b(!1)})().catch((e=>{console.error(e),d(e.message??e)}))}),[x,n,s]),L.default.createElement(vf,{open:!0,title:"Import Features from GFF3 file",handleClose:t,maxWidth:!1,"data-testid":"import-features-dialog"},v?L.default.createElement(F.default,null):null,L.default.createElement("form",{onSubmit:async function(a){a.preventDefault(),d(""),b(!0),p(!0);let o="";if(!i)return void d("must select a file");if(!s)return void d("Must select assembly to download");const{internetAccountConfigId:l}=r.getConf(s,["sequence","metadata"]),c=x(s.name,l),{baseURL:u}=c,f=new URL("files",u);f.searchParams.set("type","text/x-gff3");const h=f.href,m=new FormData;m.append("file",i),m.append("fileName",i.name),m.append("type","text/x-gff3");const g=c.getFetcher({locationType:"UriLocation",uri:h});t();const{jobsManager:y}=n,v=new AbortController,w={name:`Importing features for ${s.displayName}`,statusMessage:"Uploading file, this may take awhile",progressPct:0,cancelCallback:()=>{v.abort(),y.abortJob(w.name)}};if(y.runJob(w),g){const{signal:e}=v,t=await g(h,{method:"POST",body:m,signal:e});if(!t.ok){const e=await df(t,"Error when inserting new features (while uploading file)");return y.abortJob(w.name,e),void d(e)}o=(await t.json())._id}const S=new nr.AddFeaturesFromFileChange({typeName:"AddFeaturesFromFileChange",assembly:s.name,fileId:o,deleteExistingFeatures:_});y.done(w),await e.submit(S,{updateJobsManager:!0})}},L.default.createElement(c.DialogContent,{style:{display:"flex",flexDirection:"column"}},L.default.createElement(c.DialogContentText,null,"Select assembly"),L.default.createElement(c.Select,{labelId:"label",value:s?.name??"",onChange:function(e){const t=S.find((t=>t.name===e.target.value));l(t),p(!1)},disabled:h&&!u},S.map((e=>L.default.createElement(c.MenuItem,{key:e.name,value:e.name},e.displayName??e.name))))),L.default.createElement(c.DialogContent,{style:{display:"flex",flexDirection:"column"}},L.default.createElement(c.DialogContentText,null,"Upload GFF3 to load features"),L.default.createElement("input",{type:"file",onChange:function(e){p(!1),e.target.files&&o(e.target.files[0])},disabled:h&&!u})),m&&m>0?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,null,"This assembly already has ",m," features, would you like to delete the existing features before importing new ones?"),L.default.createElement(P.default,{label:"Yes, delete existing features",disabled:h&&!u,control:L.default.createElement(M.default,{checked:_,onChange:function(e){y(e.target.checked)},inputProps:{"aria-label":"controlled"},color:"warning"})})):null,L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{disabled:!(s&&i&&void 0!==m)||h,variant:"contained",type:"submit"},h?"Submitting...":"Submit"),L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:t},"Close"))),u?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},u)):null)}function Th({handleClose:e,session:t}){const{internetAccounts:n}=l.getRoot(t),[r,a]=f.useState(""),i=n.filter((e=>"ApolloInternetAccount"===e.type));if(0===i.length)throw new Error("No Apollo internet account found");const[o,s]=f.useState(i[0]);return L.default.createElement(vf,{open:!0,title:"Log out",handleClose:e,maxWidth:!1,"data-testid":"log-out"},L.default.createElement("form",{onSubmit:function(e){e.preventDefault(),a(""),o.removeToken(),window.location.reload()}},L.default.createElement(c.DialogContent,{style:{display:"flex",flexDirection:"column"}},i.length>1?L.default.createElement(L.default.Fragment,null,L.default.createElement(c.DialogContentText,null,"Select account"),L.default.createElement(c.Select,{value:o.internetAccountId,onChange:function(e){const t=i.find((t=>t.internetAccountId===e.target.value));if(!t)throw new Error(`Could not find internetAccount with ID "${e.target.value}"`);s(t)}},n.map((e=>L.default.createElement(c.MenuItem,{key:e.id,value:e.internetAccountId},e.name))))):null,L.default.createElement(c.DialogContentText,null,"Are you sure you want to log out?")),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{disabled:!o,variant:"contained",type:"submit"},"Log Out"),L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:e},"Cancel"))),r?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},r)):null)}function Oh({handleClose:e,session:t}){const{internetAccounts:n}=l.getRoot(t),[r,a]=f.useState(),[i,o]=f.useState(""),[s,u]=f.useState(!1),d=n.filter((e=>"ApolloInternetAccount"===e.type));if(0===d.length)throw new Error("No Apollo internet account found");const[h,p]=f.useState(d[0]),[m,g]=f.useState([]),[_,y]=f.useState([]),{collaborationServerDriver:v}=t.apolloDataStore,b=v.getAssemblies();function w(e,t){const n=[..._],r=e.target.value;if(t)n.includes(r)||(n.push(r),y(n));else{const e=n.indexOf(r,0);e>-1&&n.splice(e,1),y(n)}}return f.useEffect((()=>{(async function(){const{baseURL:e,getFetcher:t}=h,n=new URL("checks/types",e).href,r=t({locationType:"UriLocation",uri:n}),a=await r(n,{method:"GET"});if(!a.ok){const e=await df(a,"Error when retrieving checks from server");return void o(e)}const i=await a.json();g(i)})().catch((e=>{o(String(e))}))}),[h]),f.useEffect((()=>{b.length>0&&void 0===r&&a(b[0])}),[b,r]),f.useEffect((()=>{(async function(){if(!r)return;const{baseURL:e,getFetcher:t}=h,n=new URL(`/assemblies/${r.name}`,e).href,a=t({locationType:"UriLocation",uri:n}),i=await a(n,{method:"GET"});if(!i.ok){const e=await df(i,"Error when retrieving assembly from server");return void o(e)}const s=await i.json();y(s.checks)})().catch((e=>{o(String(e))}))}),[r,h]),L.default.createElement(vf,{open:!0,title:"Manage Checks",handleClose:e,"data-testid":"manage-checks"},L.default.createElement("form",{onSubmit:async function(n){if(n.preventDefault(),!r)return void o("Must select assembly!");const{notify:a}=t,{baseURL:i,getFetcher:s}=h,l=new URL("assemblies/checks",i).href,c=s({locationType:"UriLocation",uri:l}),u=await c(l,{method:"POST",body:JSON.stringify({_id:r.name,checks:_,name:""}),headers:{"Content-Type":"application/json"}});if(u.ok)a("Assembly checks updated successfully","success"),e();else{const e=await df(u,"Error when updating assembly checks");o(e)}}},L.default.createElement(c.DialogContent,null,d.length>1?L.default.createElement(L.default.Fragment,null,L.default.createElement(c.DialogContentText,null,"Select account"),L.default.createElement(c.Select,{value:h.internetAccountId,onChange:function(e){u(!1);const t=d.find((t=>t.internetAccountId===e.target.value));if(!t)throw new Error(`Could not find internetAccount with ID "${e.target.value}"`);p(t)},disabled:s&&!i},n.map((e=>L.default.createElement(c.MenuItem,{key:e.id,value:e.internetAccountId},e.name))))):null,L.default.createElement(c.DialogContentText,null,"Select assembly"),L.default.createElement(c.Select,{style:{width:300},labelId:"label",value:r?.name??"",onChange:function(e){const t=b.find((t=>t.name===e.target.value));a(t)},disabled:0===b.length},b.map((e=>L.default.createElement(c.MenuItem,{key:e.name,value:e.name},e.displayName??e.name)))),L.default.createElement("br",null),L.default.createElement("br",null),L.default.createElement(c.TableContainer,{component:c.Paper},L.default.createElement(c.Table,null,L.default.createElement(c.TableHead,null,L.default.createElement(c.TableRow,null,L.default.createElement(c.TableCell,null,"Check name"),L.default.createElement(c.TableCell,null,"Use check"))),L.default.createElement(c.TableBody,null,m.map((e=>L.default.createElement(c.TableRow,{key:e._id},L.default.createElement(c.TableCell,null,e.name),L.default.createElement(c.TableCell,null,L.default.createElement(c.Checkbox,{value:e._id,checked:_.includes(e._id),onChange:w}))))))))),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{variant:"contained",type:"submit"},"Submit"),L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:e},"Cancel"))),i?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},i)):null)}!function(e,t){!function(){function t(e,t,n){var r=new XMLHttpRequest;r.open("GET",e),r.responseType="blob",r.onload=function(){o(r.response,t,n)},r.onerror=function(){console.error("could not download file")},r.send()}function n(e){var t=new XMLHttpRequest;t.open("HEAD",e,!1);try{t.send()}catch(e){}return 200<=t.status&&299>=t.status}function r(e){try{e.dispatchEvent(new MouseEvent("click"))}catch(n){var t=document.createEvent("MouseEvents");t.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}var a="object"==("undefined"==typeof window?"undefined":Z(window))&&window.window===window?window:"object"==("undefined"==typeof self?"undefined":Z(self))&&self.self===self?self:"object"==Z(j)&&j.global===j?j:void 0,i=a.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),o=a.saveAs||("object"!=("undefined"==typeof window?"undefined":Z(window))||window!==a?function(){}:"download"in HTMLAnchorElement.prototype&&!i?function(e,i,o){var s=a.URL||a.webkitURL,l=document.createElement("a");l.download=i=i||e.name||"download",l.rel="noopener","string"==typeof e?(l.href=e,l.origin===location.origin?r(l):n(l.href)?t(e,i,o):r(l,l.target="_blank")):(l.href=s.createObjectURL(e),setTimeout((function(){s.revokeObjectURL(l.href)}),4e4),setTimeout((function(){r(l)}),0))}:"msSaveOrOpenBlob"in navigator?function(e,a,i){if(a=a||e.name||"download","string"!=typeof e)navigator.msSaveOrOpenBlob(function(e,t){return void 0===t?t={autoBom:!1}:"object"!=Z(t)&&(console.warn("Deprecated: Expected third argument to be a object"),t={autoBom:!t}),t.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\ufeff",e],{type:e.type}):e}(e,i),a);else if(n(e))t(e,a,i);else{var o=document.createElement("a");o.href=e,o.target="_blank",setTimeout((function(){r(o)}))}}:function(e,n,r,o){if((o=o||open("","_blank"))&&(o.document.title=o.document.body.innerText="downloading..."),"string"==typeof e)return t(e,n,r);var s="application/octet-stream"===e.type,l=/constructor/i.test(a.HTMLElement)||a.safari,c=/CriOS\/[\d]+/.test(navigator.userAgent);if((c||s&&l||i)&&"undefined"!=typeof FileReader){var u=new FileReader;u.onloadend=function(){var e=u.result;e=c?e:e.replace(/^data:[^;]*;/,"data:attachment/file;"),o?o.location.href=e:location=e,o=null},u.readAsDataURL(e)}else{var d=a.URL||a.webkitURL,f=d.createObjectURL(e);o?o.location=f:location.href=f,o=null,setTimeout((function(){d.revokeObjectURL(f)}),4e4)}});a.saveAs=o.saveAs=o,e.exports=o}()}(Rh);var Fh={},Lh=Hl.exports;Object.defineProperty(Fh,"__esModule",{value:!0});var Dh=Fh.default=void 0;function Mh({changeManager:e,handleClose:t,session:n}){const{internetAccounts:r}=l.getRoot(n),a=r.filter((e=>"ApolloInternetAccount"===e.type&&e.role?.includes("admin")));if(0===a.length)throw new Error("No Apollo internet account found");const[i,o]=f.useState(""),[s,u]=f.useState(a[0]),[d,h]=f.useState([]),p=f.useCallback((async()=>{const{baseURL:e}=s,t=new URL("users",e).href,n=s.getFetcher({locationType:"UriLocation",uri:t});if(n){const e=await n(t,{method:"GET"});if(!e.ok){const t=await df(e,"Error when getting user data from db");return void o(t)}const r=await e.json();h(r.map((e=>void 0===e.role?{...e,role:""}:e)))}}),[s]);function m(e){return e===s.getUserId()}f.useEffect((()=>{p().catch((e=>{o(String(e))}))}),[p]);const g=[{field:"username",headerName:"User",width:140},{field:"email",headerName:"Email",width:160},{field:"role",headerName:"Role",width:140,type:"singleSelect",valueOptions:["readOnly","user","admin","none"],getOptionLabel(e){switch(e){case"readOnly":return"Read-only";case"user":return"User";case"admin":return"Admin";case"none":return"None";default:return"unknown"}},editable:!0},{field:"actions",type:"actions",getActions:t=>[L.default.createElement(b.GridActionsCellItem,{key:`delete-${t.id}`,icon:L.default.createElement(Dh,null),onClick:async()=>{window.confirm("Delete this user?")&&await async function(t){const n=new nr.DeleteUserChange({typeName:"DeleteUserChange",userId:t});await e.submit(n,{internetAccountId:s.internetAccountId}),h((e=>e.filter((e=>e._id!==t))))}(t.id)},disabled:m(t.id),label:"Delete"})]}];return L.default.createElement(vf,{open:!0,fullScreen:!0,title:"Manage users",handleClose:t,"data-testid":"manage-users"},L.default.createElement(c.DialogContent,null,a.length>1?L.default.createElement(L.default.Fragment,null,L.default.createElement(c.DialogContentText,null,"Select account"),L.default.createElement(c.Select,{value:s.internetAccountId,onChange:function(e){const t=a.find((t=>t.internetAccountId===e.target.value));if(!t)throw new Error(`Could not find internetAccount with ID "${e.target.value}"`);u(t)},disabled:!i},r.map((e=>L.default.createElement(c.MenuItem,{key:e.id,value:e.internetAccountId},e.name))))):null,L.default.createElement("div",{style:{height:"100%",width:"100%"}},L.default.createElement(b.DataGrid,{pagination:!0,rows:d,columns:g,getRowId:e=>e._id,slots:{toolbar:b.GridToolbar},getRowHeight:()=>"auto",isCellEditable:e=>!m(e.id),processRowUpdate:async function(t){const n=new nr.UserChange({typeName:"UserChange",role:t.role,userId:t._id});return await e.submit(n,{internetAccountId:s.internetAccountId}),t},onProcessRowUpdateError:e=>{o(String(e))}}))),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:t},"Close")),i?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},i)):null)}Dh=Fh.default=(0,Lh($l).default)((0,I.default.jsx)("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"}),"Delete");var Ph={exports:{}};!function(e,t){!function(t,n){e.exports=n()}(0,(function(){return e={772:function(e,t,n){var r=n(826).remove,a=/[.*+?^${}()|[\]\\]/g,i=/[a-z0-9_]/i,o=/\s+/;e.exports=function(e,t,n){var s,l;l={insideWords:!1,findAllOccurrences:!1,requireMatchAll:!1},s=(s=n)||{},Object.keys(s).forEach((function(e){l[e]=!!s[e]})),n=l;var c=Array.from(e).map((function(e){return r(e)})),u=c.join("");return(t=r(t)).trim().split(o).filter((function(e){return e.length>0})).reduce((function(e,t){var r,o,s=t.length,l=!n.insideWords&&i.test(t[0])?"\\b":"",d=new RegExp(l+t.replace(a,"\\$&"),"i");if(r=d.exec(u),n.requireMatchAll&&null===r)return u="",[];for(;r;){var f=s-c.slice(o=r.index,o+s).join("").length,h=o-c.slice(0,o).join("").length,p=[o+h,o+s+h+f];if(p[0]!==p[1]&&e.push(p),u=u.slice(0,o)+new Array(s+1).join(" ")+u.slice(o+s),!n.findAllOccurrences)break;r=d.exec(u)}return e}),[]).sort((function(e,t){return e[0]-t[0]}))}},826:function(e){var t={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","Ấ":"A","Ắ":"A","Ẳ":"A","Ẵ":"A","Ặ":"A","Æ":"AE","Ầ":"A","Ằ":"A","Ȃ":"A","Ç":"C","Ḉ":"C","È":"E","É":"E","Ê":"E","Ë":"E","Ế":"E","Ḗ":"E","Ề":"E","Ḕ":"E","Ḝ":"E","Ȇ":"E","Ì":"I","Í":"I","Î":"I","Ï":"I","Ḯ":"I","Ȋ":"I","Ð":"D","Ñ":"N","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","Ố":"O","Ṍ":"O","Ṓ":"O","Ȏ":"O","Ù":"U","Ú":"U","Û":"U","Ü":"U","Ý":"Y","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","ấ":"a","ắ":"a","ẳ":"a","ẵ":"a","ặ":"a","æ":"ae","ầ":"a","ằ":"a","ȃ":"a","ç":"c","ḉ":"c","è":"e","é":"e","ê":"e","ë":"e","ế":"e","ḗ":"e","ề":"e","ḕ":"e","ḝ":"e","ȇ":"e","ì":"i","í":"i","î":"i","ï":"i","ḯ":"i","ȋ":"i","ð":"d","ñ":"n","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","ố":"o","ṍ":"o","ṓ":"o","ȏ":"o","ù":"u","ú":"u","û":"u","ü":"u","ý":"y","ÿ":"y","Ā":"A","ā":"a","Ă":"A","ă":"a","Ą":"A","ą":"a","Ć":"C","ć":"c","Ĉ":"C","ĉ":"c","Ċ":"C","ċ":"c","Č":"C","č":"c","C̆":"C","c̆":"c","Ď":"D","ď":"d","Đ":"D","đ":"d","Ē":"E","ē":"e","Ĕ":"E","ĕ":"e","Ė":"E","ė":"e","Ę":"E","ę":"e","Ě":"E","ě":"e","Ĝ":"G","Ǵ":"G","ĝ":"g","ǵ":"g","Ğ":"G","ğ":"g","Ġ":"G","ġ":"g","Ģ":"G","ģ":"g","Ĥ":"H","ĥ":"h","Ħ":"H","ħ":"h","Ḫ":"H","ḫ":"h","Ĩ":"I","ĩ":"i","Ī":"I","ī":"i","Ĭ":"I","ĭ":"i","Į":"I","į":"i","İ":"I","ı":"i","IJ":"IJ","ij":"ij","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","Ḱ":"K","ḱ":"k","K̆":"K","k̆":"k","Ĺ":"L","ĺ":"l","Ļ":"L","ļ":"l","Ľ":"L","ľ":"l","Ŀ":"L","ŀ":"l","Ł":"l","ł":"l","Ḿ":"M","ḿ":"m","M̆":"M","m̆":"m","Ń":"N","ń":"n","Ņ":"N","ņ":"n","Ň":"N","ň":"n","ʼn":"n","N̆":"N","n̆":"n","Ō":"O","ō":"o","Ŏ":"O","ŏ":"o","Ő":"O","ő":"o","Œ":"OE","œ":"oe","P̆":"P","p̆":"p","Ŕ":"R","ŕ":"r","Ŗ":"R","ŗ":"r","Ř":"R","ř":"r","R̆":"R","r̆":"r","Ȓ":"R","ȓ":"r","Ś":"S","ś":"s","Ŝ":"S","ŝ":"s","Ş":"S","Ș":"S","ș":"s","ş":"s","Š":"S","š":"s","Ţ":"T","ţ":"t","ț":"t","Ț":"T","Ť":"T","ť":"t","Ŧ":"T","ŧ":"t","T̆":"T","t̆":"t","Ũ":"U","ũ":"u","Ū":"U","ū":"u","Ŭ":"U","ŭ":"u","Ů":"U","ů":"u","Ű":"U","ű":"u","Ų":"U","ų":"u","Ȗ":"U","ȗ":"u","V̆":"V","v̆":"v","Ŵ":"W","ŵ":"w","Ẃ":"W","ẃ":"w","X̆":"X","x̆":"x","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Y̆":"Y","y̆":"y","Ź":"Z","ź":"z","Ż":"Z","ż":"z","Ž":"Z","ž":"z","ſ":"s","ƒ":"f","Ơ":"O","ơ":"o","Ư":"U","ư":"u","Ǎ":"A","ǎ":"a","Ǐ":"I","ǐ":"i","Ǒ":"O","ǒ":"o","Ǔ":"U","ǔ":"u","Ǖ":"U","ǖ":"u","Ǘ":"U","ǘ":"u","Ǚ":"U","ǚ":"u","Ǜ":"U","ǜ":"u","Ứ":"U","ứ":"u","Ṹ":"U","ṹ":"u","Ǻ":"A","ǻ":"a","Ǽ":"AE","ǽ":"ae","Ǿ":"O","ǿ":"o","Þ":"TH","þ":"th","Ṕ":"P","ṕ":"p","Ṥ":"S","ṥ":"s","X́":"X","x́":"x","Ѓ":"Г","ѓ":"г","Ќ":"К","ќ":"к","A̋":"A","a̋":"a","E̋":"E","e̋":"e","I̋":"I","i̋":"i","Ǹ":"N","ǹ":"n","Ồ":"O","ồ":"o","Ṑ":"O","ṑ":"o","Ừ":"U","ừ":"u","Ẁ":"W","ẁ":"w","Ỳ":"Y","ỳ":"y","Ȁ":"A","ȁ":"a","Ȅ":"E","ȅ":"e","Ȉ":"I","ȉ":"i","Ȍ":"O","ȍ":"o","Ȑ":"R","ȑ":"r","Ȕ":"U","ȕ":"u","B̌":"B","b̌":"b","Č̣":"C","č̣":"c","Ê̌":"E","ê̌":"e","F̌":"F","f̌":"f","Ǧ":"G","ǧ":"g","Ȟ":"H","ȟ":"h","J̌":"J","ǰ":"j","Ǩ":"K","ǩ":"k","M̌":"M","m̌":"m","P̌":"P","p̌":"p","Q̌":"Q","q̌":"q","Ř̩":"R","ř̩":"r","Ṧ":"S","ṧ":"s","V̌":"V","v̌":"v","W̌":"W","w̌":"w","X̌":"X","x̌":"x","Y̌":"Y","y̌":"y","A̧":"A","a̧":"a","B̧":"B","b̧":"b","Ḑ":"D","ḑ":"d","Ȩ":"E","ȩ":"e","Ɛ̧":"E","ɛ̧":"e","Ḩ":"H","ḩ":"h","I̧":"I","i̧":"i","Ɨ̧":"I","ɨ̧":"i","M̧":"M","m̧":"m","O̧":"O","o̧":"o","Q̧":"Q","q̧":"q","U̧":"U","u̧":"u","X̧":"X","x̧":"x","Z̧":"Z","z̧":"z"},n=Object.keys(t).join("|"),r=new RegExp(n,"g"),a=new RegExp(n,""),i=function(e){return e.replace(r,(function(e){return t[e]}))};e.exports=i,e.exports.has=function(e){return!!e.match(a)},e.exports.remove=i}},t={},function n(r){var a=t[r];if(void 0!==a)return a.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}(772);var e,t}))}(Ph);var qh=Ph.exports,jh={exports:{}};!function(e,t){!function(t,n){e.exports=n()}(0,(function(){return e={705:function(e){e.exports=function(e,t){var n=[];return 0===t.length?n.push({text:e,highlight:!1}):t[0][0]>0&&n.push({text:e.slice(0,t[0][0]),highlight:!1}),t.forEach((function(r,a){var i=r[1];n.push({text:e.slice(r[0],i),highlight:!0}),a===t.length-1?i<e.length&&n.push({text:e.slice(i,e.length),highlight:!1}):i<t[a+1][0]&&n.push({text:e.slice(i,t[a+1][0]),highlight:!1})})),n}}},t={},function n(r){var a=t[r];if(void 0!==a)return a.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}(705);var e,t}))}(jh);var Bh=jh.exports;function Uh({getTagProps:e,index:t,ontology:n,termId:r}){const a=l.getParent(n,2),[i,o]=D.useState(""),[s,u]=D.useState("");return D.useEffect((()=>{const e=new AbortController,{signal:t}=e;return async function(){const e=a.expandPrefixes(r),i=await(n.dataStore?.db);if(!i||t.aborted)return;const s=await i.transaction("nodes").objectStore("nodes").get(e);s&&s.lbl&&!t.aborted&&o(s.lbl||"no label")}().catch((e=>{t.aborted||u(String(e))})),()=>{e.abort()}}),[r,n,a]),D.createElement(c.Tooltip,{title:i},D.createElement("div",null,D.createElement(c.Chip,{label:s||a.applyPrefixes(r),color:s?"error":"default",size:"small",...e({index:t})})))}function zh({includeDeprecated:e,onChange:t,ontologyName:r,ontologyVersion:a,session:o,value:s}){const{ontologyManager:l}=o.apolloDataStore,u=l.findOntology(r,a),[d,f]=D.useState(s.map((e=>({term:{id:e,type:"CLASS"}})))),[h,p]=D.useState(""),[m,g]=D.useState([]),[_,y]=D.useState(!1),[v,b]=D.useState(""),w=D.useMemo((()=>i.debounce((async(t,r)=>{if(!u)return;const{dataStore:a}=u;if(!a)return;const{input:i,signal:o}=t;try{const t=await a.getTermsByFulltext(i,void 0,o),n=new Map,s=[];for(const r of t){if(!yh(r.term)||!e&&Mf(r.term))continue;let t=n.get(r.term.id);t||(t={term:r.term,matches:[]},n.set(r.term.id,t),s.push(t)),t.matches.push(r)}r(s)}catch(e){n.isAbortException(e)||b(String(e))}}),400)),[e,u]);if(D.useEffect((()=>{const e=new AbortController,{signal:t}=e;if(""!==h)return y(!0),w({input:h,signal:t},(e=>{let t=[];d.length>0&&(t=d),e&&(t=[...t,...e]),g(t),y(!1)})),()=>{e.abort()};g([])}),[w,u,e,h,d]),!u)return null;const x={};return v&&(x.error=!0,x.helperText=v),D.createElement(c.Autocomplete,{getOptionLabel:e=>l.applyPrefixes(e.term.id),filterOptions:e=>e.filter((e=>yh(e.term))),options:m,autoComplete:!0,includeInputInList:!0,filterSelectedOptions:!0,value:d,loading:_,isOptionEqualToValue:(e,t)=>l.applyPrefixes(e.term.id)===l.applyPrefixes(t.term.id),noOptionsText:h?"No matches":"Start typing to search",onChange:(e,n)=>{g(n?[...n,...m]:m),t(n.map((e=>l.applyPrefixes(e.term.id)))),f(n)},onInputChange:(e,t)=>{t&&y(!0),g([]),p(t)},multiple:!0,renderInput:e=>D.createElement(c.TextField,{...e,...x,variant:"outlined",fullWidth:!0}),renderOption:(e,t)=>D.createElement(Hh,{...e,ontologyManager:l,option:t,inputValue:h}),renderTags:(e,t)=>e.map(((e,n)=>D.createElement(Uh,{termId:e.term.id,index:n,ontology:u,getTagProps:t,key:e.term.id})))})}function Gh(e){const{search:t,str:n}=e,r=qh(n,t,{insideWords:!0,findAllOccurrences:!0}),a=Bh(n,r);return D.createElement(D.Fragment,null,a.map(((e,t)=>D.createElement(c.Typography,{key:t,component:"span",sx:{fontWeight:e.highlight?"bold":"regular"},variant:"body2",color:"text.secondary"},e.text))))}function Hh(e){const{inputValue:t,ontologyManager:n,option:r,...a}=e,i=(r.matches??[]).filter((e=>"$.lbl"!==e.field.jsonPath)).map((e=>D.createElement(D.Fragment,{key:`option-${e.term.id}-${e.str}`},D.createElement(c.Typography,{component:"dt",variant:"body2",color:"text.secondary"},e.field.displayName),D.createElement("dd",null,D.createElement(Gh,{str:e.str,search:t})))));return D.createElement("li",{...a},D.createElement(c.Grid,{container:!0},D.createElement(c.Grid,{item:!0},D.createElement(c.Typography,{component:"span"},n.applyPrefixes(r.term.id))," ",D.createElement(Gh,{str:r.term.lbl??"(no label)",search:t})," ",D.createElement("dl",null,i))))}const $h=new Map([["Gene Ontology",e=>L.default.createElement(zh,{...e,ontologyName:"Gene Ontology"})],["Sequence Ontology",e=>L.default.createElement(zh,{...e,ontologyName:"Sequence Ontology"})]]),Jh=m.makeStyles()((e=>({attributeInput:{maxWidth:600},newAttributePaper:{padding:e.spacing(2)},attributeName:{background:e.palette.secondary.main,color:e.palette.secondary.contrastText,padding:e.spacing(1)}}))),Vh=["ID","Name","Alias","Target","Gap","Derives_from","Note","Dbxref","Ontology","Is_Circular"];function Wh(e){const{onChange:t,value:n}=e;return L.default.createElement(c.TextField,{type:"text",value:n,onChange:e=>{t(e.target.value.split(","))},variant:"outlined",fullWidth:!0,helperText:"Separate multiple values for the attribute with commas"})}function Kh({changeManager:e,handleClose:t,session:n,sourceAssemblyId:r,sourceFeature:a}){const{notify:i}=n,{internetAccounts:o}=l.getRoot(n),s=f.useMemo((()=>o.find((e=>"ApolloInternetAccount"===e.type))),[o]),u=["admin","user"].includes((s?s.role:"admin")??""),[d,h]=f.useState(""),[p,m]=f.useState(Object.fromEntries([...a.attributes.entries()].map((([e,t])=>{if(e.startsWith("gff_")){const n=e.slice(4);return[n.charAt(0).toUpperCase()+n.slice(1),l.getSnapshot(t)]}return"_id"===e?["ID",l.getSnapshot(t)]:[e,l.getSnapshot(t)]})))),[g,_]=f.useState(!1),[y,v]=f.useState(""),{classes:b}=Jh(),w=Object.values(p).some((e=>0===e.length||e.includes("")));return L.default.createElement(vf,{open:!0,title:"Feature attributes",handleClose:t,maxWidth:!1,"data-testid":"modify-feature-attribute"},L.default.createElement("form",{onSubmit:async function(n){n.preventDefault(),h("");const o={};if(p)for(const[e,t]of Object.entries(p))if(t&&"parent"!==e.toLowerCase())if([...$h.keys()].includes(e))o[e]=t;else switch(e){case"ID":o._id=t;break;case"Name":o.gff_name=t;break;case"Alias":o.gff_alias=t;break;case"Target":o.gff_target=t;break;case"Gap":o.gff_gap=t;break;case"Derives_from":o.gff_derives_from=t;break;case"Note":o.gff_note=t;break;case"Dbxref":o.gff_dbxref=t;break;case"Ontology_term":o.gff_ontology_term=t;break;case"Is_circular":o.gff_is_circular=t;break;default:o[e.toLowerCase()]=t}const s=new nr.FeatureAttributeChange({changedIds:[a._id],typeName:"FeatureAttributeChange",assembly:r,featureId:a._id,attributes:o});await e.submit(s),i("Feature attributes modified successfully","success"),t(),n.preventDefault()}},L.default.createElement(c.DialogContent,null,L.default.createElement(c.Grid,{container:!0,direction:"column",spacing:1},Object.entries(p).map((([e,t])=>{const r=$h.get(e)??Wh;return L.default.createElement(c.Grid,{container:!0,item:!0,spacing:3,alignItems:"center",key:e},L.default.createElement(c.Grid,{item:!0,xs:"auto"},L.default.createElement(c.Paper,{variant:"outlined",className:b.attributeName},L.default.createElement(c.Typography,null,e))),L.default.createElement(c.Grid,{item:!0,flexGrow:1},L.default.createElement(r,{session:n,value:t,onChange:(a=e,e=>{m({...p,[a]:e})})})),L.default.createElement(c.Grid,{item:!0,xs:1},L.default.createElement(c.IconButton,{"aria-label":"delete",size:"medium",disabled:!u,onClick:()=>{!function(e){h("");const{[e]:t,...n}=p;m(n)}(e)}},L.default.createElement(Dh,{fontSize:"medium",key:e}))));var a})),L.default.createElement(c.Grid,{item:!0},L.default.createElement(c.Button,{color:"primary",variant:"contained",disabled:g||!u,onClick:()=>{_(!0)}},"Add new")),g?L.default.createElement(c.Grid,{item:!0},L.default.createElement(c.Paper,{elevation:8,className:b.newAttributePaper},L.default.createElement(c.Grid,{container:!0,direction:"column"},L.default.createElement(c.Grid,{item:!0},L.default.createElement(c.FormControl,null,L.default.createElement(c.FormLabel,{id:"attribute-radio-button-group"},"Select attribute type"),L.default.createElement(c.RadioGroup,{"aria-labelledby":"demo-radio-buttons-group-label",defaultValue:"custom",name:"radio-buttons-group",onChange:function(e,t){"custom"===t?v(""):$h.has(t)?v(t):h("Unknown attribute type")}},L.default.createElement(c.FormControlLabel,{value:"custom",control:L.default.createElement(c.Radio,null),disableTypography:!0,label:L.default.createElement(c.Grid,{container:!0,spacing:1,alignItems:"center"},L.default.createElement(c.Grid,{item:!0},L.default.createElement(c.Typography,null,"Custom")),L.default.createElement(c.Grid,{item:!0},L.default.createElement(c.TextField,{label:"Custom attribute key",variant:"outlined",value:$h.has(y)?"":y,disabled:$h.has(y),onChange:e=>{v(e.target.value)}})))}),[...$h.keys()].map((e=>L.default.createElement(c.FormControlLabel,{key:e,value:e,control:L.default.createElement(c.Radio,null),label:e})))))),L.default.createElement(c.Grid,{item:!0},L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{key:"addButton",color:"primary",variant:"contained",style:{margin:2},onClick:function(){h(""),0!==y.trim().length?"Parent"!==y?y in p?h(`Attribute "${y}" already exists`):!/^[A-Z]/.test(y)||Vh.includes(y)||[...$h.keys()].includes(y)?(m({...p,[y]:[]}),_(!1),v("")):h(`Key cannot starts with uppercase letter unless key is one of these: ${Vh.join(", ")}`):h('"Parent" -key is handled internally and it cannot be modified manually'):h("Attribute key is mandatory")},disabled:!y},"Add"),L.default.createElement(c.Button,{key:"cancelAddButton",variant:"outlined",type:"submit",onClick:()=>{_(!1),v(""),h("")}},"Cancel")))))):null),d?L.default.createElement(c.DialogContentText,{color:"error"},d):null),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{variant:"contained",type:"submit",disabled:g||w||!u},"Submit changes"),L.default.createElement(c.Button,{variant:"outlined",type:"submit",disabled:g,onClick:t},"Cancel"))))}var Yh=function(){return crypto.getRandomValues(new Uint8Array(arguments.length>0&&void 0!==arguments[0]?arguments[0]:21)).reduce((function(e,t){return e+((t&=63)<36?t.toString(36):t<62?(t-26).toString(36).toUpperCase():t>62?"-":"_")}),"")};function Zh({handleClose:e,session:t}){const{apolloDataStore:r}=t,{addAssembly:a,addSessionAssembly:i,assemblyManager:o,notify:s}=t,[l,u]=f.useState(null),[d,h]=f.useState(""),[p,m]=f.useState(""),[g,_]=f.useState(!1),y=c.useTheme();return L.default.createElement(vf,{open:!0,title:"Open local GFF3 file",handleClose:e,maxWidth:!1,"data-testid":"open-local-file"},L.default.createElement("form",{onSubmit:async function(c){if(c.preventDefault(),m(""),_(!0),!l)throw new Error("No file selected");const u=await new Response(l).text(),f=`${d}-${l.name}-${Yh(8)}`;try{await cf(f,u,r)}catch(t){return console.error(t),s(`Error loading GFF3 ${l.name}, ${String(t)}`,"error"),void e()}const h={name:f,aliases:[d],displayName:d,sequence:{trackId:`sequenceConfigId-${d}`,type:"ReferenceSequenceTrack",adapter:{type:"ApolloSequenceAdapter",assemblyId:f},metadata:{apollo:!0,...n.isElectron?{file:l.path}:{}}}};await(i||a)(h);const p=await o.waitForAssembly(h.name);p?(t.addApolloTrackConfig(p),s(`Loaded GFF3 ${l.name}`,"success")):s(`Error loading GFF3 ${l.name}`,"error"),e()}},L.default.createElement(c.DialogContent,{style:{display:"flex",flexDirection:"column"}},L.default.createElement(c.FormControl,null,L.default.createElement("div",{style:{flexDirection:"row"}},L.default.createElement(c.Button,{variant:"contained",component:"label",style:{marginRight:y.spacing()}},"Choose File",L.default.createElement("input",{type:"file",required:!0,hidden:!0,onChange:function(e){const t=e.target.files?.item(0);if(t&&(m(""),u(t),!d)){const e=t.name,n=e.lastIndexOf(".");h(-1===n?e:e.slice(0,n))}}})),l?l.name:"No file chosen"),L.default.createElement(c.FormHelperText,null,"Make sure your GFF3 has an embedded FASTA section")),L.default.createElement(c.TextField,{required:!0,label:"Assembly name",value:d,onChange:function(e){h(e.target.value)}})),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{disabled:!1,variant:"contained",type:"submit"},g?"Submitting...":"Submit"),L.default.createElement(c.Button,{disabled:g,variant:"outlined",type:"submit",onClick:e},"Cancel"))),p?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},p)):null)}const Xh=m.makeStyles()((e=>({changeTextarea:{fontFamily:"monospace",width:600,resize:"none",border:`1px solid ${e.palette.divider}`,borderRadius:e.shape.borderRadius}})));function Qh({handleClose:e,session:t}){const{internetAccounts:n}=l.getRoot(t),r=n.find((e=>"ApolloInternetAccount"===e.type));if(!r)throw new Error("No Apollo internet account found");const{baseURL:a}=r,{classes:i}=Xh(),[o,s]=f.useState(),[u,d]=f.useState([]),[h,p]=f.useState(""),[m,g]=f.useState([]),_=[{field:"sequence"},{field:"typeName",headerName:"Change type",width:200,type:"singleSelect",valueOptions:[...z.changeRegistry.changes.keys()]},{field:"changes",headerName:"Change JSON",width:600,renderCell:({value:e})=>L.default.createElement("textarea",{className:i.changeTextarea,value:JSON.stringify(e),readOnly:!0}),valueFormatter:({value:e})=>JSON.stringify(e)},{field:"user",headerName:"User",width:140},{field:"createdAt",headerName:"Time",width:160,type:"dateTime",valueGetter:e=>e&&new Date(e)}];return f.useEffect((()=>{(async function(){const e=new URL("assemblies",a).href,t=r?.getFetcher({locationType:"UriLocation",uri:e});if(t){const n=await t(e,{method:"GET"});if(!n.ok){const e=await df(n,"Error when retrieving assemblies from server");return void s(e)}const r=await n.json();d(r)}})().catch((e=>{s(String(e))}))}),[r,a]),f.useEffect((()=>{!h&&u.length>0&&p(u[0]._id)}),[h,u]),f.useEffect((()=>{(async function(){if(!h)return;const e=new URL("changes",a),t=new URLSearchParams({assembly:h});e.search=t.toString();const n=e.toString(),i=r?.getFetcher({locationType:"UriLocation",uri:n});if(i){const e=await i(n,{headers:new Headers({"Content-Type":"application/json"})});if(!e.ok){const t=await df(e,"Error when retrieving changes");return void s(t)}const t=await e.json();g(t)}})().catch((e=>{s(String(e))}))}),[h,r,a]),L.default.createElement(vf,{open:!0,fullScreen:!0,title:"View change log",handleClose:e,"data-testid":"view-changelog"},L.default.createElement(c.Select,{style:{width:200,marginLeft:40},value:h,onChange:function(e){p(e.target.value)}},u.map((e=>L.default.createElement(c.MenuItem,{key:e._id,value:e._id},e.name)))),L.default.createElement(c.DialogContent,null,L.default.createElement(b.DataGrid,{pagination:!0,rows:m,columns:_,getRowId:e=>e._id,slots:{toolbar:b.GridToolbar},initialState:{sorting:{sortModel:[{field:"sequence",sort:"desc"}]},columns:{columnVisibilityModel:{sequence:!1}}}})),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:e},"Close")),o?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},o)):null)}const ep=[{field:"refName",headerName:"Ref Name"},{field:"aliases",headerName:"Aliases",editable:!0}],tp=e=>/^[\da-f]{24}$/i.test(e);function np({changeManager:e,handleClose:t,session:n}){const r=f.useRef(null),[a,i]=f.useState(""),[o,s]=f.useState(!1),[l,u]=f.useState(),[d,h]=f.useState([]),[p,m]=f.useState(new Map),{apolloDataStore:g}=n,{collaborationServerDriver:_}=g,y=_.getAssemblies();f.useEffect((()=>{let e=0;const t=()=>{if(!l)return;const n=new Map;if(e<2&&!l.refNames&&(e++,setTimeout(t,50)),!l.refNames)return;const r=l.refNameAliases;for(const e in r){const t=r[e];if(t&&!tp(e))if(n.has(t)){const r=n.get(t)??[];n.set(t,[...r,e])}else n.set(t,[e])}m(n)};t()}),[l]);const v=()=>[...p].map(((e,t)=>({id:t,refName:e[0],aliases:e[1].filter((t=>t!==e[0])).join(", ")})));return L.default.createElement(vf,{open:!0,title:"Add reference sequence aliases",handleClose:t,maxWidth:"sm","data-testid":"add-refseq-alias",fullWidth:!0},L.default.createElement(c.DialogContent,{style:{display:"flex",flexDirection:"column"}},L.default.createElement(c.Grid,{container:!0,spacing:2},L.default.createElement(c.Grid,{item:!0,xs:4},L.default.createElement(c.FormControl,{disabled:o&&!a,fullWidth:!0},L.default.createElement(c.InputLabel,{id:"demo-simple-select-label"},"Assembly"),L.default.createElement(c.Select,{labelId:"demo-simple-select-label",id:"demo-simple-select",label:"Assembly",value:l?.name??"",onChange:e=>{const t=y.find((t=>t.name===e.target.value));u(t),s(!1),i(""),r.current&&(r.current.value="")}},y.map((e=>L.default.createElement(c.MenuItem,{key:e.name,value:e.name},e.displayName??e.name)))))),L.default.createElement(c.Grid,{item:!0,xs:1}),L.default.createElement(c.Grid,{item:!0,xs:7},L.default.createElement(c.InputLabel,null,"Load RefName alias"),L.default.createElement("input",{type:"file",onChange:e=>{(async e=>{if(!e.target.files)return;const t=e.target.files[0],n=(await t.text()).split("\n"),r=new Map(p);i("");for(const e of n){const t=e.split("\t");for(const e of t)r.has(e)&&r.set(e,[...r.get(e)??[],...t])}m(r)})(e).catch((()=>{i("Error reading file")}))},ref:r,disabled:o&&!a||!l}))),l&&p.size>0?L.default.createElement("div",{style:{height:200,width:"100%",marginTop:20}},L.default.createElement(c.InputLabel,null,"Refname aliases found for selected assembly."),L.default.createElement(b.DataGrid,{rows:v(),columns:ep,initialState:{pagination:{paginationModel:{page:0,pageSize:5}}},pageSizeOptions:[5,10],onRowSelectionModelChange:e=>{(e=>{if(e.length>0){s(!0);const t=e.flatMap((e=>v().filter((t=>t.id===e))));h(t)}else s(!1),h([])})(e)},processRowUpdate:(e,t)=>{const n=new Map(p);return n.set(e.refName,e.aliases.split(",")),m(n),e},checkboxSelection:!0})):null),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{variant:"contained",type:"submit",disabled:!o,onClick:()=>{const n=[];for(const e of d){const{refName:t}=e,r=e.aliases.split(",").map((e=>e.trim())).filter((e=>e.length>0));n.push({refName:t,aliases:r})}if(i(""),!l)return void i("No assembly selected");const r=new nr.AddRefSeqAliasesChange({typeName:"AddRefSeqAliasesChange",assembly:l.name,refSeqAliases:n});e.submit(r).catch((()=>{i("Error submitting change")})),t()}},"Submit"),L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:t},"Close")),a?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},a)):null)}function rp({handleClose:e,session:t}){const{internetAccounts:n}=l.getRoot(t),{collaborationServerDriver:r}=t.apolloDataStore,a=n.find((e=>"ApolloInternetAccount"===e.type));if(!a)throw new Error("No Apollo internet account found");const{baseURL:i}=a,[o,s]=f.useState(),[u,d]=f.useState(),[h,p]=f.useState([]),m=r.getAssemblies();return f.useEffect((()=>{!u&&m.length>0&&d(m[0])}),[m,u]),f.useEffect((()=>{(async function(){const e=u?.name;if(!e)return;const t=new URL("checks",i),n=new URLSearchParams({assembly:e});t.search=n.toString();const r=t.toString(),o=a?.getFetcher({locationType:"UriLocation",uri:r});if(o){const e=await o(r,{headers:new Headers({"Content-Type":"application/json"})});if(!e.ok){const t=await df(e,"Error when retrieving checks");return void s(t)}const t=await e.json();p(t)}})().catch((e=>{s(String(e))}))}),[u,a,i]),L.default.createElement(vf,{open:!0,fullScreen:!0,title:"View check results",handleClose:e,"data-testid":"view-check-results"},L.default.createElement(c.Select,{style:{width:200,marginLeft:40},value:u?.name??"",onChange:function(e){const t=m.find((t=>t.name===e.target.value));d(t)},disabled:0===m.length},m.map((e=>L.default.createElement(c.MenuItem,{key:e.name,value:e.name},e.displayName??e.name)))),L.default.createElement(c.DialogContent,null,L.default.createElement(b.DataGrid,{pagination:!0,rows:h,columns:[{field:"_id",headerName:"id",width:50},{field:"name",headerName:"Check name",width:200},{field:"refSeq",headerName:"Reference sequence ID",width:200},{field:"ids",headerName:"Feature IDs",width:200},{field:"message",headerName:"Message",flex:1}],getRowId:e=>e._id,slots:{toolbar:b.GridToolbar},initialState:{sorting:{sortModel:[{field:"name",sort:"asc"}]},columns:{columnVisibilityModel:{name:!0}}}})),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:e},"Close")),o?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},o)):null)}var ap={},ip=Hl.exports;Object.defineProperty(ap,"__esModule",{value:!0});var op=ap.default=void 0;function sp(e){const{color:t}=e;return L.default.createElement(c.SvgIcon,{viewBox:"0 0 18 18",style:{fontSize:18,marginRight:4},...e},"disabled"===t?L.default.createElement("path",{d:"M9.001,10.71 l0,-3.348 l8.424,0 c0.126,0.567,0.225,1.098,0.225,1.845 c0,5.139,-3.447,8.793,-8.64,8.793 c-4.968,0,-9,-4.032,-9,-9 c0,-4.968,4.032,-9,9,-9 c2.43,0,4.464,0.891,6.021,2.349 l-2.556,2.484 c-0.648,-0.612,-1.782,-1.332,-3.465,-1.332 c-2.979,0,-5.409,2.475,-5.409,5.508 c0,3.033,2.43,5.508,5.409,5.508 c3.447,0,4.716,-2.385,4.95,-3.798 l-4.959,0 l0,-0.009 z"}):L.default.createElement(L.default.Fragment,null,L.default.createElement("path",{d:"M17.64,9.20454545 c0,-0.638,-0.057,-1.252,-0.164,-1.841 l-8.476,0 l0,3.481 l4.844,0 c-0.209,1.125,-0.843,2.079,-1.796,2.717 l0,2.258 l2.908,0 c1.702,-1.567,2.684,-3.874,2.684,-6.615 l0,0 z",fill:"#4285F4"}),L.default.createElement("path",{d:"M9,18 c2.43,0,4.467,-0.806,5.956,-2.18 l-2.908,-2.259 c-0.806,0.54,-1.837,0.859,-3.048,0.859 c-2.344,0,-4.328,-1.583,-5.036,-3.71 l-3.007,0 l0,2.332 c1.481,2.941,4.525,4.958,8.043,4.958 l0,0 z",fill:"#34A853"}),L.default.createElement("path",{d:"M3.96409091,10.71 c-0.18,-0.54,-0.282,-1.117,-0.282,-1.71 c0,-0.593,0.102,-1.17,0.282,-1.71 l0,-2.332 l-3.007,0 c-0.609,1.215,-0.957,2.59,-0.957,4.042 c0,1.452,0.348,2.827,0.957,4.042 l3.007,-2.332 l0,0 z",fill:"#FBBC05"}),L.default.createElement("path",{d:"M9,3.57954545 c1.321,0,2.508,0.454,3.44,1.346 l2.582,-2.581 c-1.559,-1.453,-3.596,-2.345,-6.022,-2.345 c-3.518,0,-6.562,2.017,-8.043,4.959 l3.007,2.331 c0.708,-2.127,2.692,-3.71,5.036,-3.71 l0,0 z",fill:"#EA4335"})))}function lp(e){const{color:t}=e;return L.default.createElement(c.SvgIcon,{viewBox:"0 0 21 21",style:{fontSize:21},...e},L.default.createElement("rect",{x:"1",y:"1",width:"9",height:"9",fill:"disabled"===t?"#7B7B7B":"#F25022"}),L.default.createElement("rect",{x:"1",y:"11",width:"9",height:"9",fill:"disabled"===t?"#7B7B7B":"#00A4EF"}),L.default.createElement("rect",{x:"11",y:"1",width:"9",height:"9",fill:"disabled"===t?"#939393":"#7FBA00"}),L.default.createElement("rect",{x:"11",y:"11",width:"9",height:"9",fill:"disabled"===t?"#B9B9B9":"#FFB900"}))}op=ap.default=(0,ip($l).default)((0,I.default.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 4c1.93 0 3.5 1.57 3.5 3.5S13.93 13 12 13s-3.5-1.57-3.5-3.5S10.07 6 12 6zm0 14c-2.03 0-4.43-.82-6.14-2.88C7.55 15.8 9.68 15 12 15s4.45.8 6.14 2.12C16.43 19.18 14.03 20 12 20z"}),"AccountCircle");const cp=m.makeStyles()((e=>({loginButton:{marginBottom:e.spacing(1),width:"220px",height:"40px",fontSize:"16px",textTransform:"none",justifyContent:"left",padding:"3px 12px"}})));function up(e){const{classes:t}=cp(),{disabled:n}=e;return L.default.createElement(c.Button,{className:t.loginButton,variant:"outlined",startIcon:L.default.createElement(sp,{color:n?"disabled":void 0}),...e},"Sign in with Google")}function dp(e){const{classes:t}=cp(),{disabled:n}=e;return L.default.createElement(c.Button,{className:t.loginButton,variant:"outlined",startIcon:L.default.createElement(lp,{color:n?"disabled":void 0}),...e},"Sign in with Microsoft")}function fp(e){const{classes:t}=cp();return L.default.createElement(c.Button,{className:t.loginButton,variant:"outlined",startIcon:L.default.createElement(op,{fontSize:"small"}),...e},"Continue as Guest")}const hp=m.makeStyles()((e=>({divider:{marginTop:e.spacing(4),marginBottom:e.spacing(5)}}))),pp=({baseURL:e,handleClose:t,name:r})=>{const{classes:a}=hp(),[i,o]=f.useState(""),[s,l]=f.useState([]);function u(e){t("google"===e?"google":"microsoft"===e?"microsoft":"guest")}f.useEffect((()=>{const t=new AbortController,{signal:r}=t;return async function(){const t=new URL("auth/types",e).href,n=await fetch(t,{method:"GET",signal:r});if(!n.ok){const e=await df(n,"Error when retrieving auth types from server");return void o(e)}const a=await n.json();l(a)}().catch((e=>{!n.isAbortException(e)&&o(String(e))})),()=>{t.abort()}}),[e]);const d=s.includes("google"),h=s.includes("microsoft"),p=s.includes("guest");return L.default.createElement(vf,{open:!0,title:`Log in to ${r}`,handleClose:t,maxWidth:!1,"data-testid":"login-apollo"},L.default.createElement(c.DialogContent,{style:{display:"flex",flexDirection:"column",paddingTop:8}},d?L.default.createElement(up,{disabled:!d,onClick:()=>{u("google")}}):null,h?L.default.createElement(dp,{disabled:!h,onClick:()=>{u("microsoft")}}):null,p?L.default.createElement(L.default.Fragment,null,L.default.createElement(c.Divider,{className:a.divider}),L.default.createElement(fp,{onClick:()=>{u("guest")}})):null),L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{variant:"outlined",type:"submit",onClick:()=>{t()}},"Cancel")),i?L.default.createElement(c.DialogContent,null,L.default.createElement(c.DialogContentText,{color:"error"},i)):null)},mp="undefined"==typeof sessionStorage,gp=e=>a.InternetAccount.named("ApolloInternetAccount").props({type:l.types.literal("ApolloInternetAccount"),configuration:r.ConfigurationReference(e)}).views((e=>({get baseURL(){return r.getConf(e,"baseURL")},getUserId(){const t=e.retrieveToken();if(t)return nr.getDecodedToken(t).id}}))).volatile((()=>({role:void 0}))).actions((e=>{let t=!1;return{setRole(){const n=e.retrieveToken();if(!n)return void(e.role=void 0);const r=nr.getDecodedToken(n),{role:a}=r;if(!a&&!t){const{session:n}=l.getRoot(e);n.notify("You have registered as a user but have not been given access. Ask your administrator to enable access for your account.","warning"),t=!0}e.role!==a&&(e.role=a)}}})).actions((e=>{let t;return{addMessageChannel(e,n){t=t=>{this.finishOAuthWindow(t,e,n)},window.addEventListener("message",t)},deleteMessageChannel(){window.removeEventListener("message",t)},finishOAuthWindow(t,n,r){if(t.data.name!==`JBrowseAuthWindow-${e.internetAccountId}`)return void this.deleteMessageChannel();const a=t.data.redirectUri.replace("#","?"),i=new URL(a),o=new URLSearchParams(i.search).get("access_token");this.deleteMessageChannel(),o?(e.storeToken(o),e.setRole(),n(o)):r(new Error("Error with token endpoint"))},async openAuthWindow(t,r,a){const i=n.isElectron?"http://localhost/auth":window.location.origin+window.location.pathname,o=new URL("auth/login",e.baseURL),s=new URLSearchParams({type:t,redirect_uri:i});o.search=s.toString();const l=`JBrowseAuthWindow-${e.internetAccountId}`;if(n.isElectron){const{ipcRenderer:t}=window.require("electron"),n=await t.invoke("openAuthWindow",{internetAccountId:e.internetAccountId,data:{redirect_uri:i},url:o.toString()}),s=new MessageEvent("message",{data:{name:l,redirectUri:n}});this.finishOAuthWindow(s,r,a)}else this.addMessageChannel(r,a),window.open(o,l,"width=500,height=600")}}})).actions((e=>({async getTokenFromUser(t,n){const{baseURL:r}=e,a=await new Promise(((t,n)=>{const{session:r}=l.getRoot(e),{baseURL:a,name:i}=e;r.queueDialog((e=>[pp,{name:i,handleClose:r=>{r?r instanceof Error?n(r):t(r):n(new Error("user cancelled entry")),e()},baseURL:a}]))}));if("guest"!==a)return void e.openAuthWindow(a,t,n);const i=new URL("auth/login",r),o=new URLSearchParams({type:a});i.search=o.toString();const s=i.toString(),c=await fetch(s);if(!c.ok){const e=await df(c,"Error when logging in");return void n(new Error(e))}const{token:u}=await c.json();t(u)}}))).volatile((()=>({lastChangeSequenceNumber:void 0}))).actions((e=>({setLastChangeSequenceNumber(t){e.lastChangeSequenceNumber=t}}))).actions((e=>({updateLastChangeSequenceNumber:l.flow((function*(){const{baseURL:t}=e,n=new URL("changes",t),r=new URLSearchParams({limit:"1"});n.search=r.toString();const a=n.toString(),i=e.getFetcher({locationType:"UriLocation",uri:a}),o=yield i(a,{method:"GET"});if(!o.ok){const e=yield df(o,"Error when fetching server LastChangeSequence");throw new Error(e)}const s=yield o.json();e.setLastChangeSequenceNumber(s.length>0?s[0].sequence:0)})),getMissingChanges:l.flow((function*(){const{session:t}=l.getRoot(e),{changeManager:n}=t.apolloDataStore;if(!e.lastChangeSequenceNumber)throw new Error("No LastChangeSequence stored in session. Please, refresh you browser to get last updates from server");const{baseURL:r,lastChangeSequenceNumber:a}=e,i=new URL("changes",r),o=new URLSearchParams({since:String(a),sort:"1"});i.search=o.toString();const s=i.toString(),c=e.getFetcher({locationType:"UriLocation",uri:s}),u=yield c(s,{method:"GET"});if(!u.ok)return void console.error(`Error when fetching the last updates to recover socket connection — ${u.status}`);const d=yield u.json();for(const e of d){const t=z.Change.fromJSON(e);n.submit(t,{submitToBackend:!1})}}))}))).volatile((e=>{const{origin:t,pathname:n}=new URL("socket.io/",e.baseURL);return{socket:_u(t,{path:n})}})).actions((e=>({addSocketListeners(){const{session:t}=l.getRoot(e),{notify:n}=t,r=e.retrieveToken();if(!r)throw new Error("No Token found");const{socket:a}=e,{addCheckResult:i,changeManager:o,deleteCheckResult:s}=t.apolloDataStore;a.on("connect",(async()=>{await e.getMissingChanges()})),a.on("connect_error",(e=>{console.error(e),n("Could not connect to the Apollo server.","error")})),a.on("COMMON",(e=>{if("checkResult"in e)return void(e.deleted?s(e.checkResult._id.toString()):i(e.checkResult));if(sessionStorage.setItem("LastChangeSequence",String(e.changeSequence)),e.userSessionId===r)return;const t=z.Change.fromJSON(e.changeInfo);o.submit(t,{submitToBackend:!1})})),a.on("USER_LOCATION",(e=>{const{channel:n,locations:a,userName:i,userSessionId:o}=e,s=nr.getDecodedToken(r),l=nr.makeUserSessionId(s);"USER_LOCATION"===n&&o!==l&&t.addOrUpdateCollaborator({name:i,id:o,locations:a})})),a.on("REQUEST_INFORMATION",(e=>{const{channel:n,reqType:a,userSessionId:i}=e;"REQUEST_INFORMATION"===n&&i!==r&&"CURRENT_LOCATION"===a&&t.broadcastLocations()}))}}))).actions((e=>({postUserLocation:(t=>{let n;return t=>{clearTimeout(n),n=setTimeout((()=>{!async function(t){const{baseURL:n}=e,r=new URL("users/userLocation",n).href,a=new URLSearchParams(JSON.stringify(t)),i=e.getFetcher({locationType:"UriLocation",uri:r});try{if(!(await i(r,{method:"POST",body:a})).ok)throw new Error("ignore")}catch{console.error("Broadcasting user location failed")}}(t)}),300)}})()}))).actions((e=>({initialize:l.flow((function*(t){if("admin"===t){const t=l.getRoot(e);n.isAbstractMenuManager(t)&&function(e){e.appendToMenu("Apollo",{label:"Add Assembly",onClick:e=>{e.queueDialog((t=>[wf,{session:e,handleClose:()=>{t()},changeManager:e.apolloDataStore.changeManager}]))}}),e.appendToMenu("Apollo",{label:"Delete Assembly",onClick:e=>{e.queueDialog((t=>[Ah,{session:e,handleClose:()=>{t()},changeManager:e.apolloDataStore.changeManager}]))}}),e.appendToMenu("Apollo",{label:"Import Features",onClick:e=>{e.queueDialog((t=>[Ih,{session:e,handleClose:()=>{t()},changeManager:e.apolloDataStore.changeManager}]))}}),e.appendToMenu("Apollo",{label:"Add reference sequence aliases",onClick:e=>{e.queueDialog((t=>[np,{session:e,handleClose:()=>{t()},changeManager:e.apolloDataStore.changeManager}]))}}),e.appendToMenu("Apollo",{label:"Manage Users",onClick:e=>{e.queueDialog((t=>[Mh,{session:e,handleClose:()=>{t()},changeManager:e.apolloDataStore.changeManager}]))}}),e.appendToMenu("Apollo",{label:"Undo",onClick:e=>{const{apolloDataStore:t}=e,{notify:n}=e;t.changeManager.recentChanges.length>0?t.changeManager.revertLastChange():n("No changes to undo","info")}})}(t)}yield e.updateLastChangeSequenceNumber(),e.addSocketListeners();const{baseURL:r}=e,a=new URL("users/locations",r).href,i=e.getFetcher({locationType:"UriLocation",uri:a});yield i(a,{method:"GET"}),window.addEventListener("beforeunload",(()=>{e.postUserLocation([])})),document.addEventListener("visibilitychange",(()=>{if("hidden"===document.visibilityState&&e.postUserLocation([]),"visible"===document.visibilityState){const{session:t}=l.getRoot(e);t.broadcastLocations()}}))}))}))).actions((e=>({afterAttach(){e.setRole(),s.autorun((async t=>{if(mp)return;const{session:n}=l.getRoot(e);n&&e.role&&(await e.initialize(e.role),t.dispose())}),{name:"ApolloInternetAccount"})}})));var _p={};function yp(e){return"uniqueId"in e&&"object"!==Z(e.data)}Object.defineProperty(_p,"__esModule",{value:!0}),_p.isFeature=function(e){return"object"===Z(e)&&null!==e&&"function"==typeof e.get&&"function"==typeof e.id};var vp=function(){function e(t){var n,r=this;ee(this,e),yp(t)?this.data=t:(this.data=t.data||{},this.parentHandle=t.parent);var a=yp(t)?t.uniqueId:t.id;if(null==a)throw new Error("SimpleFeature requires a unique `id` or `data.uniqueId` attribute");if(this.uniqueId=String(a),!(this.data.aliases||this.data.end-this.data.start>=0))throw new Error("invalid feature data, end less than start. end: ".concat(this.data.end," start: ").concat(this.data.start));this.data.subfeatures&&(this.subfeatures=null===(n=this.data.subfeatures)||void 0===n?void 0:n.map((function(t,n){return"function"!=typeof t.get?new e({id:t.uniqueId||"".concat(a,"-").concat(n),data:K({strand:r.data.strand},t),parent:r}):t})))}return ne(e,[{key:"get",value:function(e){return"subfeatures"===e?this.subfeatures:"parent"===e?this.parent():this.data[e]}},{key:"set",value:function(e,t){this.data[e]=t}},{key:"tags",value:function(){return Object.keys(this.data)}},{key:"id",value:function(){return this.uniqueId}},{key:"parent",value:function(){return this.parentHandle}},{key:"children",value:function(){return this.get("subfeatures")}},{key:"toJSON",value:function(){var e=K(K({},this.data),{},{uniqueId:this.id()}),t=this.parent();t&&(e.parentId=t.id());var n=this.children();return n&&(e.subfeatures=n.map((function(e){return e.toJSON()}))),e}}],[{key:"fromJSON",value:function(t){return new e(K({},t))}}]),e}(),bp=_p.default=vp;function wp(e){return"object"==typeof e&&null!==e&&"apollo"in e&&!0===e.apollo}const xp="undefined"==typeof sessionStorage;class Sp extends x.BaseSequenceAdapter{regions;async getRefNames(e){return(await this.getRegions(e)).map((e=>e.refName))}async getRegions(e){if(this.regions)return this.regions;const t=r.readConfObject(this.config,"assemblyId");if(!xp){const e=this.pluginManager?.rootModel?.session?.apolloDataStore;if(!e)throw new Error("No Apollo data store found");const n=e.getBackendDriver(t),r=await n.getRegions(t);return this.regions=r,r}const n=await new Promise(((n,r)=>{const a=setTimeout((()=>{r("timeout")}),2e4),i=Yh(),o=e=>{const{data:t}=e;wp(t)&&t.messageId===i&&(clearTimeout(a),removeEventListener("message",o),n(t.regions))};addEventListener("message",o,e),globalThis.rpcServer.emit("apollo",{apollo:!0,method:"getRegions",assembly:t,messageId:i})}));return this.regions=n,n}getFeatures(e,t){const{end:n,refName:a,start:i}=e,o=r.readConfObject(this.config,"assemblyId"),s={...e,assemblyName:o};return S.ObservableCreate((async e=>{if(!xp){const t=this.pluginManager?.rootModel?.session?.apolloDataStore;if(!t)return void e.error("No Apollo data store found");const r=t.getBackendDriver(o),{seq:l}=await r.getSequence(s);return e.next(new bp({id:`${a} ${i}-${n}`,data:{refName:a,start:i,end:n,seq:l}})),void e.complete()}const r=await new Promise(((e,n)=>{const r=setTimeout((()=>{n("timeout")}),2e4),a=Yh(),i=t=>{const{data:n}=t;wp(n)&&n.messageId===a&&(clearTimeout(r),removeEventListener("message",i),e(n.sequence))};addEventListener("message",i,t),globalThis.rpcServer.emit("apollo",{apollo:!0,method:"getSequence",region:s,messageId:a})}));e.next(new bp({id:`${a} ${i}-${n}`,data:{refName:a,start:i,end:n,seq:r}})),e.complete()}))}freeResources(){}}var kp=r.ConfigurationSchema("ApolloSequenceAdapter",{assemblyId:{type:"string",defaultValue:""}},{explicitlyTyped:!0});function Ep(e,t,n,r,a,i){const o=r/a;e.fillStyle="black",e.fillRect(t,n,o,i),o>2&&(e.clearRect(t+1,n+1,o-2,i-2),e.fillStyle="rgba(255,255,255,0.75)",e.fillRect(t+1,n+1,o-2,i-2))}var Ap=p.observer((function(e){const[t,a]=f.useState(),[i,o]=f.useState(),u=f.useRef(null),d=f.useRef(null),h=f.useRef(null),[p,m]=f.useState(!1),[g,_]=f.useState(!0),[y,v]=f.useState(),[b,w]=f.useState(!1),[x,S]=f.useState([]),{bpPerPx:k,displayModel:E,regions:A}=e,{session:C}=E,{collaborators:R}=C;f.useEffect((()=>s.autorun((()=>{S(s.toJS(R))}))),[]);const[N]=A,I=(N.end-N.start)/k,{apolloFeatureUnderMouse:T,apolloRowHeight:O,apolloRowUnderMouse:F,changeManager:D,codonLayout:M,featureLayout:P,features:q,featuresHeight:j,getAssemblyId:B,selectedFeature:U,setApolloFeatureUnderMouse:z,setApolloRowUnderMouse:G,setSelectedFeature:H,showIntronLines:$,showStartCodons:J,showStopCodons:V}=E,W=[...q.values()].map((e=>[...e.values()].map((e=>l.getSnapshot(e))))),K=f.useMemo((()=>{const{internetAccounts:e}=l.getRoot(C),{assemblyName:t}=N,{assemblyManager:a}=n.getSession(E),i=a.get(t);if(!i)throw new Error(`No assembly found with name ${t}`);const{internetAccountConfigId:o}=r.getConf(i,["sequence","metadata"]),s=e.find((e=>r.getConf(e,"internetAccountId")===o));if(!s)throw new Error(`No InternetAccount found with config id ${o}`);return s}),[E,N,C]),{role:Y}=K;return f.useEffect((()=>{Y?.includes("admin")&&m(!0),(Y?.includes("admin")??Y?.includes("user"))&&_(!1)}),[Y]),f.useEffect((()=>{const e=u.current;if(!e)return;const t=e.getContext("2d");if(!t)return;const n={};t.clearRect(0,0,I,j);for(const[e,r]of P)for(const[a,i]of r){const r=N.reversed?N.end-i.max:i.min-N.start-1,o=i.max-N.start-1,s=r/k,l=o/k;Ep(t,s,e*O,o-r,k,O);const c=e*O+O/2;n[a]||(n[a]=[]),n[a].some((e=>e[0]===s&&e[1]===c))||n[a].push([s,c]),n[a].some((e=>e[0]===l&&e[1]===c))||n[a].push([l,c])}if($){let e=-Math.floor(Object.keys(n).length/2);for(const r in n){t.strokeStyle=`hsl(${e*(180*(3-Math.sqrt(5)))+60},100%,50%)`;const a=n[r].sort(((e,t)=>e[0]-t[0]));let[i]=a;for(const[n,r]of a.entries())if(0!==n){if(n%2==0){const n=[(r[0]-i[0])/2+i[0],Math.max(1,Math.min(i[1],r[1])-O/2+2*e)];t.beginPath(),t.moveTo(i[0],i[1]+2*e),t.lineTo(...n),t.stroke(),t.moveTo(...n),t.lineTo(r[0],r[1]+2*e),t.stroke()}i=r}e+=1}}}),[$,N,k,N.start,N.end,N.reversed,I,P,j,q,O,W]),f.useEffect((()=>{const e=h.current;if(!e)return;const t=e.getContext("2d");if(t){t.clearRect(0,0,I,j);for(const[e,{starts:n,stops:r}]of M){const a=k;for(const r of n){const n=r/a;N.start/a<=n&&n<=N.end/a&&(t.fillStyle="rgba(255,0,255,1)",J?t.fillRect(Math.round(n-.5-N.start/a),e*O,1,O):t.clearRect(Math.round(n-.5-N.start/a),e*O,1,O))}for(const n of r){const r=n/a;N.start/a<=r&&r<=N.end/a&&(t.fillStyle="black",V?t.fillRect(Math.round(r-.5-N.start/a),e*O,1,O):t.clearRect(Math.round(r-.5-N.start/a),e*O,1,O))}}}}),[J,V,M,I,j,k,O,N,N.start,N.end]),f.useEffect((()=>{const e=d.current;if(!e)return;const t=e.getContext("2d");if(t){t.clearRect(0,0,I,j);for(const e of x){const{locations:n}=e;if(0===n.length)return;for(const r of n){const{end:n,start:a}=r,i=(N.reversed?N.end-a:a-N.start)/k,o=(n-a)/k;t.fillStyle="rgba(0,255,0,.2)",t.fillRect(i,1,o,100),t.fillStyle="black",t.fillText(e.name,i+1,11,o-2)}}}}),[T,F,k,j,I,N,N.start,N.end,N.reversed,y,O,x]),L.default.createElement("div",{style:{position:"relative",width:I,height:j}},L.default.createElement(c.Menu,{open:Boolean(i),anchorReference:"anchorPosition",anchorPosition:t?{left:t[0],top:t[1]}:void 0,"data-testid":"base_linear_display_context_menu",onClose:()=>{o(void 0)}},L.default.createElement(c.MenuItem,{disabled:g,key:1,value:1,onClick:()=>{if(!i)return;const e=B(N.assemblyName);C.queueDialog((t=>[xh,{session:C,handleClose:()=>{t(),o(void 0)},changeManager:D,sourceFeature:i,sourceAssemblyId:e,internetAccount:K}]))}},"Add child feature"),L.default.createElement(c.MenuItem,{disabled:g,key:2,value:2,onClick:()=>{if(!i)return;const e=B(N.assemblyName);C.queueDialog((t=>[Eh,{session:C,handleClose:()=>{t(),o(void 0)},changeManager:D,sourceFeature:i,sourceAssemblyId:e}]))}},"Copy features and annotations"),L.default.createElement(c.MenuItem,{disabled:!p,key:3,value:3,onClick:()=>{if(!i)return;const e=B(N.assemblyName);C.queueDialog((t=>[Ch,{session:C,handleClose:()=>{t(),o(void 0)},changeManager:D,sourceFeature:i,sourceAssemblyId:e,selectedFeature:U,setSelectedFeature:H}]))}},"Delete feature")),L.default.createElement("canvas",{ref:u,width:I,height:j,style:{position:"absolute",left:0,top:0}}),L.default.createElement("canvas",{ref:d,width:I,height:j,onMouseLeave:function(){z(),G()},onMouseUp:async function(){if(b){if(y){const e=B(N.assemblyName),{bp:t,edge:n,feature:r}=y;let a;if("end"===n){const n=r._id,i=r.max,o=Math.round(t);a=new nr.LocationEndChange({typeName:"LocationEndChange",changedIds:[n],featureId:n,oldEnd:i,newEnd:o,assembly:e})}else{const n=r._id,i=r.min,o=Math.round(t);a=new nr.LocationStartChange({typeName:"LocationStartChange",changedIds:[n],featureId:n,oldStart:i,newStart:o,assembly:e})}await D.submit(a)}}else T&&H(T);v(void 0),w(!1)},onContextMenu:function(e){e.preventDefault(),o(T),a([e.pageX,e.pageY])},style:{position:"absolute",left:0,top:0}}),L.default.createElement("canvas",{ref:h,width:I,height:6*O,style:{position:"absolute",left:0,top:0}}))})),Cp=r.ConfigurationSchema("ApolloSixFrameRenderer",{},{explicitlyTyped:!0});class Rp extends a.RendererType{async renderInClient(e,t){return this.render(t)}async freeResourcesInClient(e,t){return 0}}var Np={};Object.defineProperty(Np,"__esModule",{value:!0}),Np.RefSequenceResult=void 0;var Ip=function(){function e(t){ee(this,e),this.label=t.label,this.locString=t.locString,this.renderingComponent=t.renderingComponent,this.displayString=t.displayString,this.matchedAttribute=t.matchedAttribute,this.matchedObject=t.matchedObject,this.textSearchAdapter=t.textSearchAdapter,this.relevance=t.relevance,this.trackId=t.trackId,this.score=t.score||1,this.results=t.results||[]}return ne(e,[{key:"getLabel",value:function(){return this.label}},{key:"getDisplayString",value:function(){return this.displayString||this.label}},{key:"getRenderingComponent",value:function(){return this.renderingComponent}},{key:"getTrackId",value:function(){return this.trackId}},{key:"getScore",value:function(){return this.score}},{key:"updateScore",value:function(e){return this.score=e,this.score}},{key:"getId",value:function(){return"".concat(this.getLabel(),"-").concat(this.getLocation(),"-").concat(this.getTrackId())}},{key:"hasLocation",value:function(){return!!this.locString}},{key:"getLocation",value:function(){return this.locString}},{key:"getComboResults",value:function(){return this.results}}]),e}(),Tp=Np.default=Ip;Np.RefSequenceResult=function(e){ae(n,e);var t=de(n);function n(e){var r,a;return ee(this,n),(r=t.call(this,e)).refName=null!==(a=e.refName)&&void 0!==a?a:"",r}return ne(n,[{key:"getLocation",value:function(){return this.refName}}]),n}(Ip);class Op extends x.BaseAdapter{get baseURL(){return r.readConfObject(this.config,"baseURL").uri}get trackId(){return r.readConfObject(this.config,"trackId")}get assemblyNames(){return r.readConfObject(this.config,"assemblyNames")}mapBaseResult(e,t,n){return e.map((e=>{const r=t.getCanonicalRefName(e.refSeq);return new Tp({label:n,trackId:this.trackId,locString:`${r}:${e.min+1}..${e.max}`})}))}async searchIndex(e){const t=e.queryString,n=[],r=this.pluginManager?.rootModel?.session;if(!r)return n;const{apolloDataStore:a}=r,{assemblyManager:i}=r;for(const r of this.assemblyNames){const o=a.getBackendDriver(r),s=i.get(r);if(!o||!s)continue;const l=await o.searchFeatures(e.queryString,[r]);n.push(...this.mapBaseResult(l,s,t))}return n}freeResources(){}}var Fp=r.ConfigurationSchema("ApolloTextSearchAdapter",{assemblyNames:{type:"stringArray",defaultValue:[],description:"List of assemblies covered by text search adapter"},trackId:{type:"string",defaultValue:""},baseURL:{type:"fileLocation",defaultValue:{uri:"",locationType:"UriLocation"}}},{explicitlyTyped:!0,explicitIdentifier:"textSearchAdapterId"});const Lp=r.ConfigurationSchema("ApolloPlugin",{ontologies:l.types.array(_h)});function Dp(e){if("LinearPileupDisplay"!==e.name)return e;const{stateModel:t}=e,r=t.views((e=>({getFirstRegion:()=>n.getContainingView(e).dynamicBlocks.contentBlocks[0],getAssembly(){const t=e.getFirstRegion(),r=n.getSession(e),{assemblyManager:a}=r,{assemblyName:i}=t,o=a.get(i);if(!o)throw new Error(`Could not find assembly named ${i}`);return o},getRefSeqId(t){const n=e.getFirstRegion(),{refName:r}=n,{refNameAliases:a}=t;if(!a)throw new Error(`Could not find aliases for ${t.name}`);const i=[...Object.entries(a)].filter((([e,t])=>e!==t)).map((([e,t])=>({_id:e,name:t??""}))),o=i.find((e=>e.name===r))?._id;if(!o)throw new Error(`Could not find refSeqId named ${r}`);return o},createFeature(){const t=e.contextMenuFeature,n=e.getAssembly(),r=e.getRefSeqId(n),a=(t.get("CIGAR").toUpperCase().match(/\d+\D/g)??[]).map((e=>[(e.match(/\D/)??[])[0],Number.parseInt(e,10)]));let i=0;const o=t.get("start");let s;const l=[];for(const[e,t]of a)"M"===e||"="===e?void 0===s&&(s=i+o):"N"===e&&void 0!==s&&(l.push({start:s,end:i+s}),s=void 0),"I"!==e&&(i+=t);void 0!==s&&l.push({start:s,end:i+o});const c={_id:Wn().toHexString(),refSeq:r,min:t.get("start"),max:t.get("end"),type:"mRNA",strand:t.get("strand")};if(0===l.length)return c;c.children={};const[u]=l,d={_id:Wn().toHexString(),refSeq:r,min:u.start,max:u.end,type:"CDS",strand:t.get("strand")};if(c.children[d._id]=d,1===l.length){const e={_id:Wn().toHexString(),refSeq:r,min:u.start,max:u.end,type:"exon",strand:t.get("strand")};return c.children[e._id]=e,c}for(const e of l){d.min=Math.min(d.min,e.start),d.max=Math.max(d.max,e.end);const{end:n,start:a}=e,i={_id:Wn().toHexString(),refSeq:r,min:a,max:n,type:"exon",strand:t.get("strand")};c.children[i._id]=i}return c},async onPileupFeatureContext(){const t=e.createFeature(),r=e.getAssembly(),a=new nr.AddFeatureChange({changedIds:[t._id],typeName:"AddFeatureChange",assembly:r.name,addedFeature:t}),i=n.getSession(e);await i.apolloDataStore.changeManager.submit(a),i.notify("Annotation added successfully","success")}}))).views((e=>{const t=e.contextMenuItems;return{contextMenuItems:()=>e.contextMenuFeature?[...t(),{label:"Create Apollo annotation",icon:Vl,onClick:e.onPileupFeatureContext}]:t()}}));return e.stateModel=r,e}const Mp=p.observer((function({onChangeCommitted:e,value:t,...n}){const[r,a]=f.useState(String(t)),[i,o]=f.useState(!1),[s,l]=f.useState(null);return f.useEffect((()=>{a(String(t))}),[t]),f.useEffect((()=>{i&&(s?.blur(),o(!1))}),[i,s]),L.default.createElement(c.TextField,{...n,type:"text",onChange:function(e){a(e.target.value)},value:r,onKeyDown:e=>{"Enter"===e.key?s?.blur():"Escape"===e.key&&(a(String(t)),o(!0))},onBlur:()=>{r!==String(t)&&e(r)},inputRef:e=>{l(e)}})})),Pp=new Map([["Gene Ontology",e=>L.default.createElement(zh,{...e,ontologyName:"Gene Ontology"})],["Sequence Ontology",e=>L.default.createElement(zh,{...e,ontologyName:"Sequence Ontology"})]]),qp=["ID","Name","Alias","Target","Gap","Derives_from","Note","Dbxref","Ontology","Is_Circular"],jp=m.makeStyles()((e=>({newAttributePaper:{padding:e.spacing(2)},attributeName:{background:e.palette.secondary.main,color:e.palette.secondary.contrastText,padding:e.spacing(1)}})));function Bp(e){const{onChange:t,value:n}=e;return L.default.createElement(Mp,{value:n,onChangeCommitted:e=>{t(e.split(","))},variant:"outlined",fullWidth:!0,helperText:"Separate multiple values for the attribute with commas"})}const Up=p.observer((function({assembly:e,editable:t,feature:n,session:r}){const[a,i]=f.useState(""),[o,s]=f.useState(!1),{classes:u}=jp(),[d,h]=f.useState(""),p=Object.fromEntries([...n.attributes.entries()].map((([e,t])=>{if(e.startsWith("gff_")){const n=e.slice(4);return[n.charAt(0).toUpperCase()+n.slice(1),l.getSnapshot(t)]}return"_id"===e?["ID",l.getSnapshot(t)]:[e,l.getSnapshot(t)]}))),{notify:m}=r,{changeManager:g}=r.apolloDataStore;async function _(t,r){i("");const a={};if(p){const e=Object.entries({...p,[t]:r});for(const[t,n]of e)if(n&&"parent"!==t.toLowerCase())if([...Pp.keys()].includes(t))a[t]=n;else switch(t){case"ID":a._id=n;break;case"Name":a.gff_name=n;break;case"Alias":a.gff_alias=n;break;case"Target":a.gff_target=n;break;case"Gap":a.gff_gap=n;break;case"Derives_from":a.gff_derives_from=n;break;case"Note":a.gff_note=n;break;case"Dbxref":a.gff_dbxref=n;break;case"Ontology_term":a.gff_ontology_term=n;break;case"Is_circular":a.gff_is_circular=n;break;default:a[t.toLowerCase()]=n}}const o=new nr.FeatureAttributeChange({changedIds:[n._id],typeName:"FeatureAttributeChange",assembly:e,featureId:n._id,attributes:a});await g.submit(o),m("Feature attributes modified successfully","success")}return L.default.createElement(L.default.Fragment,null,L.default.createElement(c.Typography,{style:{display:"inline",marginLeft:"15px"},variant:"h5"},"Attributes"),L.default.createElement(c.Grid,{container:!0,direction:"column",spacing:1},Object.entries(p).map((([e,n])=>{if(""===e)return null;const a=Pp.get(e)??Bp;return L.default.createElement(c.Grid,{container:!0,item:!0,spacing:3,alignItems:"center",key:e},L.default.createElement(c.Grid,{item:!0,xs:"auto"},L.default.createElement(c.Paper,{variant:"outlined",className:u.attributeName},L.default.createElement(c.Typography,null,e))),L.default.createElement(c.Grid,{item:!0,flexGrow:1},L.default.createElement(a,{session:r,value:n,onChange:t=>_(e,t)})),L.default.createElement(c.Grid,{item:!0,xs:1},L.default.createElement(c.IconButton,{"aria-label":"delete",size:"medium",disabled:!t,onClick:()=>_(e)},L.default.createElement(Dh,{fontSize:"medium",key:e}))))})),L.default.createElement(c.Grid,{item:!0},L.default.createElement(c.Button,{color:"primary",variant:"contained",disabled:o||!t,onClick:()=>{s(!0)}},"Add new")),o?L.default.createElement(c.Grid,{item:!0},L.default.createElement(c.Paper,{elevation:8,className:u.newAttributePaper},L.default.createElement(c.Grid,{container:!0,direction:"column"},L.default.createElement(c.Grid,{item:!0},L.default.createElement(c.FormControl,null,L.default.createElement(c.FormLabel,{id:"attribute-radio-button-group"},"Select attribute type"),L.default.createElement(c.RadioGroup,{"aria-labelledby":"demo-radio-buttons-group-label",defaultValue:"custom",name:"radio-buttons-group",onChange:function(e,t){"custom"===t?h(""):Pp.has(t)?h(t):i("Unknown attribute type")}},L.default.createElement(c.FormControlLabel,{value:"custom",control:L.default.createElement(c.Radio,null),disableTypography:!0,label:L.default.createElement(c.Grid,{container:!0,spacing:1,alignItems:"center"},L.default.createElement(c.Grid,{item:!0},L.default.createElement(c.Typography,null,"Custom")),L.default.createElement(c.Grid,{item:!0},L.default.createElement(c.TextField,{label:"Custom attribute key",variant:"outlined",value:Pp.has(d)?"":d,disabled:Pp.has(d),onChange:e=>{h(e.target.value)}})))}),[...Pp.keys()].map((e=>L.default.createElement(c.FormControlLabel,{key:e,value:e,control:L.default.createElement(c.Radio,null),label:e})))))),L.default.createElement(c.Grid,{item:!0},L.default.createElement(c.DialogActions,null,L.default.createElement(c.Button,{key:"addButton",color:"primary",variant:"contained",onClick:function(){i(""),0!==d.trim().length?"Parent"!==d?d in p?i(`Attribute "${d}" already exists`):!/^[A-Z]/.test(d)||qp.includes(d)||[...Pp.keys()].includes(d)?_(d,[]):i(`Key cannot starts with uppercase letter unless key is one of these: ${qp.join(", ")}`):i('"Parent" -key is handled internally and it cannot be modified manually'):i("Attribute key is mandatory")},disabled:!d},"Add"),L.default.createElement(c.Button,{key:"cancelAddButton",variant:"outlined",type:"submit",onClick:()=>{s(!1),h(""),i("")}},"Cancel")))))):null),a?L.default.createElement(c.Typography,{color:"error"},a):null)})),zp=p.observer((function({onChangeCommitted:e,value:t,...n}){const[r,a]=f.useState(String(t)),[i,o]=f.useState(!1),[s,l]=f.useState(null);f.useEffect((()=>{a(String(t))}),[t]),f.useEffect((()=>{i&&(s?.blur(),o(!1))}),[i,s]);const u=Number.isNaN(Number(r));return L.default.createElement(c.TextField,{...n,type:"text",onChange:function(e){a(e.target.value)},value:r,onKeyDown:e=>{"Enter"===e.key?s?.blur():"Escape"===e.key&&(a(String(t)),o(!0))},onBlur:()=>{const n=Number(r);r!==String(t)&&(Number.isNaN(n)?a(String(t)):e(n))},inputRef:e=>{l(e)},error:u,helperText:u?"Not a valid number":void 0})})),Gp=p.observer((function({assembly:e,feature:t,session:n}){const[r,a]=f.useState(""),[i,o]=f.useState(""),{_id:s,assemblyId:l,max:u,min:d,strand:h,type:p}=t,m=e=>{n.notify(e.message,"error")},{changeManager:g}=n.apolloDataStore;function _(t){const{value:n}=t.target,r=n?Number(n):void 0,a=new nr.StrandChange({typeName:"StrandChange",changedIds:[s],featureId:s,oldStrand:h,newStrand:r,assembly:e});return g.submit(a)}return L.default.createElement(L.default.Fragment,null,L.default.createElement(c.Typography,{variant:"h5"},"Basic information"),L.default.createElement(zp,{margin:"dense",id:"start",label:"Start",fullWidth:!0,variant:"outlined",value:d+1,onChangeCommitted:function(t){t--;const n=new nr.LocationStartChange({typeName:"LocationStartChange",changedIds:[s],featureId:s,oldStart:d,newStart:t,assembly:e});return g.submit(n)}}),L.default.createElement(zp,{margin:"dense",id:"end",label:"End",fullWidth:!0,variant:"outlined",value:u,onChangeCommitted:function(t){const n=new nr.LocationEndChange({typeName:"LocationEndChange",changedIds:[s],featureId:s,oldEnd:u,newEnd:t,assembly:e});return g.submit(n)}}),L.default.createElement(wh,{session:n,ontologyName:"Sequence Ontology",value:p,filterTerms:yh,fetchValidTerms:async function(e,t,n){const r=await bh(e,t);if(r)return r;o(`Type "${e?.type}" does not have any children in the ontology`)}.bind(null,t),renderInput:e=>L.default.createElement(c.TextField,{...e,label:"Type",variant:"outlined",fullWidth:!0,error:Boolean(i),helperText:i}),onChange:(e,t)=>{t&&function(e){a("");const t=new nr.TypeChange({typeName:"TypeChange",changedIds:[s],featureId:s,oldType:p,newType:e,assembly:l});return g.submit(t)}(t).catch(m)}}),L.default.createElement("label",null,L.default.createElement("input",{type:"radio",value:"1",checked:1===h,onChange:_}),"Positive Strand (+)"),L.default.createElement("label",null,L.default.createElement("input",{type:"radio",value:"-1",checked:-1===h,onChange:_}),"Negative Strand (-)"),L.default.createElement("label",null,L.default.createElement("input",{type:"radio",value:"",checked:void 0===h,onChange:_}),"No Strand Information"),r?L.default.createElement(c.Typography,{color:"error"},r):null)})),Hp=m.makeStyles()({sequence:{width:"100%",resize:"vertical"}}),$p=p.observer((function({assembly:e,feature:t,refName:n,session:r}){const a=r.apolloDataStore.assemblies.get(e),[i,o]=f.useState(!1),{classes:s}=Hp();if(!t||!a)return null;const l=a.getByRefName(n);if(!l)return null;const{max:u,min:d}=t;let h="";return i&&(h=l.getSequence(d,u),h?h=function(e,t,n,r,a){return`>${t}:${n+1}–${r}\n${e}`}(h,n,d,u):r.apolloDataStore.loadRefSeq([{assemblyName:e,refName:n,start:d,end:u}])),L.default.createElement(L.default.Fragment,null,L.default.createElement(c.Typography,{variant:"h5"},"Sequence"),L.default.createElement(c.Button,{variant:"contained",onClick:()=>{o(!i)}},i?"Hide sequence":"Show sequence"),L.default.createElement("div",null,i&&L.default.createElement("textarea",{readOnly:!0,rows:20,className:s.sequence,value:h})))})),Jp=m.makeStyles()((e=>({root:{padding:e.spacing(2)}}))),Vp=p.observer((function(e){const{model:t}=e,{assembly:r,feature:a,refName:i}=t,o=n.getSession(t),s=o.apolloDataStore.assemblies.get(r),{classes:l}=Jp();if(!a||!s)return null;const c=s.getByRefName(i);if(!c)return null;const{max:u,min:d}=a;return c.getSequence(d,u)||o.apolloDataStore.loadRefSeq([{assemblyName:r,refName:i,start:d,end:u}]),L.default.createElement("div",{className:l.root},L.default.createElement(Gp,{feature:a,session:o,assembly:s._id}),L.default.createElement("hr",null),L.default.createElement(Up,{feature:a,session:o,assembly:s._id,editable:!0}),L.default.createElement("hr",null),L.default.createElement($p,{feature:a,session:o,assembly:s._id,refName:i}))}));var Wp={},Kp={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.AnnotationFeatureModel=void 0;var t=R.default,n=T.default,r=Wp,a=n.types.late((function(){return e.AnnotationFeatureModel}));e.AnnotationFeatureModel=n.types.model("AnnotationFeatureModel",{_id:n.types.identifier,refSeq:n.types.string,type:n.types.string,min:n.types.number,max:n.types.number,strand:n.types.maybe(n.types.union(n.types.literal(1),n.types.literal(-1))),children:n.types.maybe(n.types.map(a)),attributes:n.types.map(n.types.array(n.types.string))}).views((function(e){return{get length(){return e.max-e.min},get featureId(){return e.attributes.get("id")},get minWithChildren(){var t=e.min,n=e.children;if(!n)return t;var r,a=we(n);try{for(a.s();!(r=a.n()).done;){var i=he(r.value,2);t=Math.min(t,i[1].min)}}catch(e){a.e(e)}finally{a.f()}return t},get maxWithChildren(){var t=e.max,n=e.children;if(!n)return t;var r,a=we(n);try{for(a.s();!(r=a.n()).done;){var i=he(r.value,2);t=Math.max(t,i[1].max)}}catch(e){a.e(e)}finally{a.f()}return t},hasDescendant:function(t){var n=e.children;if(!n)return!1;var r,a=we(n);try{for(a.s();!(r=a.n()).done;){var i=he(r.value,2);if(i[0]===t)return!0;if(i[1].hasDescendant(t))return!0}}catch(e){a.e(e)}finally{a.f()}return!1},get cdsLocations(){if("mRNA"!==e.type)throw new Error('Only features of type "mRNA" or equivalent can calculate CDS locations');var n=e.children;if(!n)throw new Error("no CDS or exons in mRNA");var r=me(n.values()).filter((function(e){return"CDS"===e.type}));if(0===r.length)throw new Error("no CDS in mRNA");var a,i=[],o=we(r);try{var s=function(){var r,o=a.value,s=o.max,l=o.min,c=[],u=we(n);try{for(u.s();!(r=u.n()).done;){var d=he(r.value,2)[1];if("exon"===d.type){var f=he((0,t.intersection2)(l,s,d.min,d.max),2),h=f[0],p=f[1];void 0!==h&&void 0!==p&&c.push({min:h,max:p})}}}catch(e){u.e(e)}finally{u.f()}c.sort((function(e,t){return e.min-t.min})),-1===e.strand&&c.reverse();var m=0,g=c.map((function(e){var t=m;return m=(3-(e.max-e.min-t+3)%3)%3,K(K({},e),{},{phase:t})}));i.push(g)};for(o.s();!(a=o.n()).done;)s()}catch(e){o.e(e)}finally{o.f()}return i}}})).actions((function(e){return{setAttributes:function(t){e.attributes.clear();var n,r=we(t.entries());try{for(r.s();!(n=r.n()).done;){var a=he(n.value,2);e.attributes.set(a[0],a[1])}}catch(e){r.e(e)}finally{r.f()}},setAttribute:function(t,n){e.attributes.merge(re({},t,n))},setType:function(t){e.type=t},setRefSeq:function(t){e.refSeq=t},setMin:function(t){if(t>e.max)throw new Error('Min "'.concat(t,'" is greater than max "').concat(e.max,'"'));e.min!==t&&(e.min=t)},setMax:function(t){if(t<e.min)throw new Error('Max "'.concat(t,'" is less than Min "').concat(e.min,'"'));e.max!==t&&(e.max=t)},setStrand:function(t){e.strand=t},addChild:function(t){if(e.children&&e.children.size>0){var r=(0,n.getSnapshot)(e.children);e.children.clear();var a,i=we(Object.entries(K(K({},r),{},re({},t._id,t))).sort((function(e,t){var n=he(e,2)[1],r=he(t,2);return n.min-r[1].min})));try{for(i.s();!(a=i.n()).done;){var o=he(a.value,2);e.children.put(o[1])}}catch(e){i.e(e)}finally{i.f()}}else{var s;e.children=(0,n.cast)({}),null===(s=e.children)||void 0===s||s.put(t)}},deleteChild:function(t){var n;null===(n=e.children)||void 0===n||n.delete(t)}}})).actions((function(e){return{update:function(t){var r=t.children,a=t.max,i=t.min,o=t.strand;e.setRefSeq(t.refSeq),e.setMin(i),e.setMax(a),e.setStrand(o),r&&(e.children=(0,n.cast)(r))}}})).views((function(t){return{get parent(){var r;try{r=(0,n.getParentOfType)(t,e.AnnotationFeatureModel)}catch(e){}return r},get topLevelFeature(){var r,a=t;do{try{a=r=(0,n.getParentOfType)(a,e.AnnotationFeatureModel)}catch(e){r=void 0}}while(r);return a},get assemblyId(){return(0,n.getParentOfType)(t,r.ApolloAssembly)._id}}}))}(Kp);var Yp={},Zp={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ApolloRefSeq=e.Sequence=void 0;var t=R.default,n=T.default,r=Kp;e.Sequence=n.types.model({start:n.types.number,stop:n.types.number,sequence:n.types.string}),e.ApolloRefSeq=n.types.model("ApolloRefSeq",{_id:n.types.identifier,name:n.types.string,description:"",features:n.types.map(r.AnnotationFeatureModel),sequence:n.types.array(e.Sequence)}).actions((function(e){return{addFeature:function(t){e.features.put(t)},deleteFeature:function(t){return e.features.delete(t)},setDescription:function(t){e.description=t},addSequence:function(t){var n;if(t.sequence.length!==t.stop-t.start)throw new Error("sequence does not match declared length");if(0!==e.sequence.length){var r=e.sequence.map((function(e){return{start:e.start,stop:e.stop,sequence:e.sequence}}));r.push({start:t.start,stop:t.stop,sequence:t.sequence}),r.sort((function(e,t){return e.start-t.start}));var a=r.reduce((function(e,t){var n=e.at(-1);return void 0===n?[t]:(n.stop>=t.start?t.stop>n.stop&&(n.stop=t.stop,n.sequence+=t.sequence.slice(t.stop-n.stop)):e.push(t),e)}),[]);e.sequence.length===a.length&&e.sequence.every((function(e,t){return e.start===a[t].start&&e.stop===a[t].stop}))||(e.sequence.clear(),(n=e.sequence).push.apply(n,me(a)))}else e.sequence.push(t)}}})).views((function(e){return{getSequence:function(n,r){var a,i=we(e.sequence);try{for(i.s();!(a=i.n()).done;){var o=a.value,s=o.sequence,l=o.start;if((0,t.isContainedWithin)(n,r,l,o.stop))return s.slice(n-l,r-l)}}catch(e){i.e(e)}finally{i.f()}return""}}}))}(Zp),Object.defineProperty(Yp,"__esModule",{value:!0}),Yp.ApolloAssembly=void 0;var Xp=T.default;Yp.ApolloAssembly=Xp.types.model("ApolloAssembly",{_id:Xp.types.identifier,refSeqs:Xp.types.map(Zp.ApolloRefSeq),comments:Xp.types.array(Xp.types.string),backendDriverType:Xp.types.optional(Xp.types.enumeration("backendDriverType",["CollaborationServerDriver","InMemoryFileDriver","DesktopFileDriver"]),"CollaborationServerDriver")}).views((function(e){return{getByRefName:function(t){return me(e.refSeqs.values()).find((function(e){return e.name===t}))}}})).actions((function(e){return{addRefSeq:function(t,n,r){return e.refSeqs.put({_id:t,name:n,description:r})},addComment:function(t){return e.comments.push(t)}}}));var Qp={};Object.defineProperty(Qp,"__esModule",{value:!0}),Qp.CheckResult=void 0;var em=T.default;Qp.CheckResult=em.types.model("CheckResult",{_id:em.types.identifier,name:em.types.string,ids:em.types.array(em.types.safeReference(Kp.AnnotationFeatureModel)),refSeq:em.types.string,start:em.types.number,end:em.types.number,ignored:!1,message:em.types.string}),function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=et;t.__exportStar(Kp,e),t.__exportStar(Yp,e),t.__exportStar(Zp,e),t.__exportStar(Qp,e)}(Wp);const tm=l.types.model("ApolloFeatureDetailsWidget",{id:g.ElementId,type:l.types.literal("ApolloFeatureDetailsWidget"),feature:l.types.maybe(l.types.reference(Wp.AnnotationFeatureModel,{onInvalidated(e){e.parent.setTryReload(e.invalidId),e.removeRef()}})),assembly:l.types.string,refName:l.types.string}).volatile((()=>({tryReload:void 0}))).actions((e=>({setFeature(t){e.feature=t},setTryReload(t){e.tryReload=t}}))).actions((e=>({afterAttach(){l.addDisposer(e,s.autorun((t=>{if(!e.tryReload)return;const r=n.getSession(e),{apolloDataStore:a}=r;if(!a)return;const i=a.getFeature(e.tryReload);i&&(e.setFeature(i),e.setTryReload(),t.dispose())})))}}))),nm=l.types.model("ApolloTranscriptDetails",{id:g.ElementId,type:l.types.literal("ApolloTranscriptDetails"),feature:l.types.maybe(l.types.reference(Wp.AnnotationFeatureModel,{onInvalidated(e){e.parent.setTryReload(e.invalidId),e.removeRef()}})),assembly:l.types.string,refName:l.types.string,changeManager:l.types.frozen()}).volatile((()=>({tryReload:void 0}))).actions((e=>({setFeature(t){e.feature=t},setTryReload(t){e.tryReload=t}}))).actions((e=>({afterAttach(){l.addDisposer(e,s.autorun((t=>{if(!e.tryReload)return;const r=n.getSession(e),{apolloDataStore:a}=r;if(!a)return;const i=a.getFeature(e.tryReload);i&&(e.setFeature(i),e.setTryReload(),t.dispose())})))}})));function rm(e,t){if(e._id===t)return e;if(e.children)for(const[,n]of e.children){const e=rm(n,t);if(e)return e}}function am(e,t,n){for(const r of e)if(Number(r.min)<=t&&Number(r.max)>=n)return r;return null}function im(e,t,n){return e.filter((e=>!(e.min===t&&e.max===n)))}const om=p.observer((function({assembly:e,feature:t,refName:r,session:a}){const{notify:i}=a,o=a.apolloDataStore.assemblies.get(e),s=o?.getByRefName(r),{changeManager:l}=a.apolloDataStore,u=t;let d=[];const f=e=>{if("exon"===e.type&&d.push({min:e.min+1,max:e.max}),e.children)for(const t of e.children)f(t[1])};f(u);const h=[],p=u.cdsLocations;if(s)for(const e of p)for(const r of e){let e=s.getSequence(Number(r.min)-2,Number(r.min)),a=s.getSequence(Number(r.max),Number(r.max)+2);-1===u.strand&&e&&a&&(e=n.revcom(e),a=n.revcom(a));const i={id:u._id,type:"CDS",strand:Number(u.strand),min:r.min+1,max:r.max,oldMin:r.min+1,oldMax:r.max,startSeq:e,endSeq:a};h.some((e=>e.min===i.min&&e.max===i.max&&e.type===i.type))||h.push(i);const o=am(d,r.min+1,r.max);if(o&&Number(o.min)<r.min){if(1===t.strand){const e={id:t._id,type:"five_prime_UTR",strand:Number(t.strand),min:o.min,max:r.min,oldMin:o.min,oldMax:r.min,startSeq:"",endSeq:""};h.push(e)}else{const e={id:t._id,type:"three_prime_UTR",strand:Number(t.strand),min:r.min+1,max:o.min+1,oldMin:r.min+1,oldMax:o.min+1,startSeq:"",endSeq:""};h.push(e)}d=im(d,o.min,o.max)}if(o&&Number(o.max)>r.max){if(1===t.strand){const e={id:t._id,type:"three_prime_UTR",strand:Number(t.strand),min:r.max+1,max:o.max,oldMin:r.max+1,oldMax:o.max,startSeq:"",endSeq:""};h.push(e)}else{const e={id:t._id,type:"five_prime_UTR",strand:Number(t.strand),min:r.min+1,max:o.max,oldMin:r.min+1,oldMax:o.max,startSeq:"",endSeq:""};h.push(e)}d=im(d,o.min,o.max)}r.min+1===o?.min&&r.max===o.max&&(d=im(d,o.min,o.max))}if(d.length>0&&d.forEach((e=>{if(1===u.strand){const t={id:u._id,type:"five_prime_UTR",strand:Number(u.strand),min:e.min+1,max:e.max,oldMin:e.min+1,oldMax:e.max,startSeq:"",endSeq:""};h.push(t)}else{const t={id:u._id,type:"three_prime_UTR",strand:Number(u.strand),min:e.min+1,max:e.max+1,oldMin:e.min+1,oldMax:e.max+1,startSeq:"",endSeq:""};h.push(t)}d=im(d,e.min,e.max)})),h.sort(((e,t)=>{const n=Number(e.min)-Number(t.min);return 0!==n?n:Number(e.max)-Number(t.max)})),h.length>0){h[0].startSeq="",h[h.length-1].endSeq="";for(let e=0;e<h.length;e++)e>0&&h[e].min===h[e-1].max&&(h[e].startSeq=""),e<h.length-1&&h[e].max===h[e+1].min&&(h[e].endSeq="")}const m=h;return L.default.createElement(L.default.Fragment,null,L.default.createElement(c.Typography,{variant:"h5",style:{marginLeft:"15px",marginBottom:"0"}},"CDS and UTRs"),L.default.createElement("div",null,m.map(((n,r)=>L.default.createElement("div",{key:r,style:{display:"flex",alignItems:"center"}},L.default.createElement("span",{style:{marginLeft:"20px",width:"50px"}},"three_prime_UTR"===n.type?"3 UTR":"five_prime_UTR"===n.type?"5 UTR":"CDS"),L.default.createElement("span",{style:{fontWeight:"bold",width:"30px"}},n.startSeq),L.default.createElement(zp,{margin:"dense",id:n.id,disabled:"CDS"!==n.type,style:{width:"150px",marginLeft:"8px",backgroundColor:""===n.startSeq.trim()&&0!==r?"lightblue":"inherit"},variant:"outlined",value:n.min,onChangeCommitted:r=>{!function(n,r,a){if(a--,--n<t.min)return void i("Feature start cannot be less than parent starts","error");const o=rm(t,r);if(o?.children)for(const t of o.children)if(("CDS"===t[1].type||"exon"===t[1].type)&&t[1].min===a){const o=new nr.LocationStartChange({typeName:"LocationStartChange",changedIds:[t[1]._id],featureId:r,oldStart:a,newStart:n,assembly:e});l.submit(o).catch((()=>{i("Error updating feature start position","error")}))}}(r,n.id,Number(n.oldMin))}}),L.default.createElement("span",{style:{margin:"0 10px"}},-1===n.strand?"-":1===n.strand?"+":""),L.default.createElement(zp,{margin:"dense",id:n.id,disabled:"CDS"!==n.type,style:{width:"150px",backgroundColor:""===n.endSeq.trim()&&r+1!==m.length?"lightblue":"inherit"},variant:"outlined",value:n.max,onChangeCommitted:r=>{!function(n,r,a){const o=rm(t,r);if(n>t.max)i("Feature start cannot be greater than parent end","error");else if(o?.children)for(const t of o.children)if(("CDS"===t[1].type||"exon"===t[1].type)&&t[1].max===a){const o=new nr.LocationEndChange({typeName:"LocationEndChange",changedIds:[t[1]._id],featureId:r,oldEnd:a,newEnd:n,assembly:e});l.submit(o).catch((()=>{i("Error updating feature end position","error")}))}}(r,n.id,Number(n.oldMax))}}),L.default.createElement("span",{style:{marginLeft:"8px",fontWeight:"bold"}},n.endSeq))))))})),sm="rgb(20,200,200)",lm="rgb(240,200,20)";let cm=[{text:"",color:""}];const um=p.observer((function({assembly:e,feature:t,refName:r,session:a}){const i=a.apolloDataStore.assemblies.get(e),o=i?.getByRefName(r),[s,l]=f.useState(!1),[u,d]=f.useState("Select");if(!i||!o)return null;const h=i.getByRefName(r);if(!h)return null;const p=((e,t)=>{const r=[],a=(i,o)=>{if(o&&("CDS"===i.type||"three_prime_UTR"===i.type||"five_prime_UTR"===i.type)){let e=t.getSequence(Number(i.min)-2,Number(i.min)),a=t.getSequence(Number(i.max),Number(i.max)+2);-1===i.strand&&e&&a&&(e=n.revcom(e),a=n.revcom(a));const o={id:i._id,type:i.type,strand:Number(i.strand),min:i.min+1,max:i.max+1,oldMin:i.min+1,oldMax:i.max+1,startSeq:e||"",endSeq:a||""};r.push(o)}if(i.children)for(const t of i.children)a(t[1],"mRNA"===e.type)};if(a(e,"mRNA"===e.type),r.sort(((e,t)=>Number(e.min)-Number(t.min))),r.length>0){r[0].startSeq="",r[r.length-1].endSeq="";for(let e=0;e<r.length;e++)e>0&&r[e].min===r[e-1].max&&(r[e].startSeq=""),e<r.length-1&&r[e].max===r[e+1].min&&(r[e].endSeq="")}return r})(t,o),{max:m,min:g}=t;let _="";var y,v;function b(e){let t="";if(cm=[],o)switch(e){case"CDS":cm.push({text:`>${r} : CDS\n`,color:"black"});for(const e of p)if("CDS"===e.type){const r=o.getSequence(Number(e.min+1),Number(e.max));t+=-1===e.strand&&r?n.revcom(r):r,cm.push({text:t,color:lm})}break;case"cDNA":cm.push({text:`>${r} : cDNA\n`,color:"black"});for(const e of p)if("CDS"===e.type||"three_prime_UTR"===e.type||"five_prime_UTR"===e.type){const r=o.getSequence(Number(e.min+1),Number(e.max));t+=-1===e.strand&&r?n.revcom(r):r,cm.push("CDS"===e.type?{text:t,color:lm}:{text:t,color:sm})}break;case"Full":{cm.push({text:`>${r} : Full genomic\n`,color:"black"});let e=0,a=0;for(const r of p){if(a++,0!=e&&e!=Number(r.min)&&a!=p.length){const a=o.getSequence(e+1,Number(r.min)-1);t+=-1===r.strand&&a?n.revcom(a):a,cm.push({text:t,color:"black"})}if("CDS"===r.type||"three_prime_UTR"===r.type||"five_prime_UTR"===r.type){const e=o.getSequence(Number(r.min+1),Number(r.max));switch(t+=-1===r.strand&&e?n.revcom(e):e,r.type){case"CDS":cm.push({text:t,color:lm});break;case"three_prime_UTR":case"five_prime_UTR":cm.push({text:t,color:sm});break;default:cm.push({text:t,color:"black"})}}e=Number(r.max)}break}}}return s&&(y=g,v=m,_=h?.getSequence(y,v)??"",""===_?a.apolloDataStore.loadRefSeq([{assemblyName:e,refName:r,start:y,end:v}]):_=function(e,t,n,r,a){return`>${t}:${n+1}–${r}\n${e}`}(_,r,y,v),b(u)),L.default.createElement(L.default.Fragment,null,L.default.createElement(c.Typography,{style:{display:"inline",marginLeft:"15px"},variant:"h5"},"Sequence"),L.default.createElement("div",null,L.default.createElement(c.Button,{variant:"contained",style:{marginLeft:"15px"},onClick:()=>{l(!s)}},s?"Hide sequence":"Show sequence")),L.default.createElement("div",null,s&&L.default.createElement(c.Select,{value:u,onChange:function(e){const t=e.target.value;d(t),b(t)},style:{width:"150px",marginLeft:"15px",height:"25px"}},L.default.createElement(c.MenuItem,{value:"Select"},"Select"),L.default.createElement(c.MenuItem,{value:"CDS"},"CDS"),L.default.createElement(c.MenuItem,{value:"cDNA"},"cDNA"),L.default.createElement(c.MenuItem,{value:"Full"},"Full genomics"))),L.default.createElement("div",{style:{width:"500px",marginLeft:"15px",height:"300px",overflowY:"auto",border:"1px solid #ccc"}},s&&L.default.createElement((({textSegments:e})=>L.default.createElement("div",null,e.map(((e,t)=>L.default.createElement("span",{key:t,style:{color:e.color}},nr.splitStringIntoChunks(e.text,150).join("\n")))))),{textSegments:cm})),s&&L.default.createElement(c.Button,{variant:"contained",style:{marginLeft:"15px"},onClick:()=>{const e=cm.map((e=>e.text)).join("");e&&navigator.clipboard.writeText(e).then((()=>{})).catch((e=>{console.error("Failed to copy text to clipboard",e)}))}},"Copy sequence"))})),dm=m.makeStyles()((e=>({root:{padding:e.spacing(2)}}))),fm=p.observer((function(e){const{classes:t}=dm(),{model:r}=e,{assembly:a,feature:i,refName:o}=r,s=n.getSession(r),c=n.getSession(r),u=c.apolloDataStore.assemblies.get(a),{internetAccounts:d}=l.getRoot(s),f=d.find((e=>"ApolloInternetAccount"===e.type)),h=["admin","user"].includes((f?f.role:"admin")??"");if(!i||!u)return null;const p=u.getByRefName(o);if(!p)return null;const{max:m,min:g}=i;return p.getSequence(g,m)||c.apolloDataStore.loadRefSeq([{assemblyName:a,refName:o,start:g,end:m}]),L.default.createElement("div",{className:t.root},L.default.createElement(om,{feature:i,session:c,assembly:u._id||"",refName:o}),L.default.createElement("hr",null),L.default.createElement(Up,{feature:i,session:c,assembly:u._id||"",editable:h}),L.default.createElement("hr",null),L.default.createElement(um,{feature:i,session:c,assembly:u._id||"",refName:o}))})),hm=r.ConfigurationSchema("LinearApolloDisplay",{},{explicitIdentifier:"displayId",explicitlyTyped:!0}),pm=m.makeStyles()({highlighted:{background:"orange"}}),mm=({highlight:e,text:t})=>{const{classes:n}=pm();if(!e)return L.default.createElement(L.default.Fragment,null,t);const r=t.split(e);if(1===r.length)return L.default.createElement(L.default.Fragment,null,t);const a=[];for(let t=0;t<r.length-1;t++)a.push(r[t],L.default.createElement("span",{className:n.highlighted},e));return L.default.createElement(L.default.Fragment,null,a,r.at(-1))},gm=p.observer((function({feature:e,filterText:t}){const n=[...e.attributes.entries()].map((([e,t])=>{if(e.startsWith("gff_")){const n=e.slice(4);return[n.charAt(0).toUpperCase()+n.slice(1),l.getSnapshot(t)]}return"_id"===e?["ID",l.getSnapshot(t)]:[e,l.getSnapshot(t)]})).filter((([e])=>e)).map((([e,t])=>`${e}=${Array.isArray(t)?t.join(", "):t}`)).join(", ");return L.default.createElement(mm,{text:n,highlight:t})})),_m=m.makeStyles()((e=>({inputWrapper:{position:"relative"},hiddenWidthSpan:{padding:e.spacing(.5),color:"transparent"},numberTextInput:{border:"none",background:"inherit",font:"inherit",position:"absolute",width:"100%",left:0}}))),ym=p.observer((function({initialValue:e,notifyError:t,onChangeCommitted:n}){const[r,a]=f.useState(e),[i,o]=f.useState(!1),[s,l]=f.useState(null),{classes:c}=_m();return f.useEffect((()=>{i&&(s?.blur(),o(!1))}),[i,s]),L.default.createElement("span",{className:c.inputWrapper},L.default.createElement("span",{className:c.hiddenWidthSpan,"aria-hidden":!0},r),L.default.createElement("input",{type:"text",value:r,className:c.numberTextInput,onChange:function(e){const t=Number(e.target.value);Number.isNaN(t)||a(t)},onKeyDown:t=>{"Enter"===t.key?s?.blur():"Escape"===t.key&&(a(e),o(!0))},onBlur:()=>{r!==e&&n(r).catch(t)},ref:e=>{l(e)}}))}));function vm(e,t){return t?.palette.bases[e.toUpperCase()].main.toString()??"lightgray"}function bm(e,t,n,r,a){const i=Math.min(n,10);e.fillStyle="#000",e.font=`${i}px`;const o=e.measureText(r).width;e.fillText(r,t+(n-o)/2,a+10)}function wm(e,t,r,a,i,o,s,l,c){let u=s.slice(l,l+3).toUpperCase();c&&(u=function(e){return[...e].map((e=>n.revcom(e))).reverse().join("")}(u));const d=n.defaultCodonTable[u];if(!d)return;const f={M:"#33ee33","*":"#f44336"}[d.toUpperCase()];f&&(e.fillStyle=f,e.fillRect(r,a,i,o)),t<=.1&&(e.rect(r,a,i,o),e.stroke(),bm(e,r,i,d,a))}function xm(e){return"featureAndGlyphUnderMouse"in e}function Sm(e,t){const n=t<=1?2:0;switch(e){case 3:return 0;case 2:return 1;case 1:return 2;case-1:return 3+n;case-2:return 4+n;case-3:return 5+n}}function km(e,t){if(!(t>1||void 0===e))return 1===e?3:4}function Em(e,t,n,r,a,i){void 0!==a&&(e.fillStyle=t?.palette.action.focus??"rgba(0,0,0,0.04)",e.fillRect(n,r*a,i,r))}function Am(e,t){return Boolean(t&&e._id===t._id)}function Cm(e,t){return t?e?.palette.text.primary??"black":e?.palette.background.default??"white"}function Rm(e,t,n,r,a,i){e.fillStyle=i,e.fillRect(t,n,r,a)}function Nm(e,t,n){const{refName:r,regionNumber:a,x:i}=e,{lgv:o}=n,{offsetPx:s}=o,l=o.bpToPx({refName:r,coord:t.min,regionNumber:a}),c=o.bpToPx({refName:r,coord:t.max,regionNumber:a});if(void 0!==l&&void 0!==c){const e=l.offsetPx-s,t=c.offsetPx-s;if(Math.abs(t-e)<8)return;if(Math.abs(e-i)<4)return"min";if(Math.abs(t-i)<4)return"max"}}const Im={draw:function(e,t,n,r,a){const{apolloRowHeight:i,lgv:o,session:s,theme:l}=r,{bpPerPx:c,displayedRegions:u,offsetPx:d}=o,f=u[a],h=(o.bpToPx({refName:f.refName,coord:t.min,regionNumber:a})?.offsetPx??0)-d,{reversed:p}=f,{apolloSelectedFeature:m}=s,g=t.length/c,_=p?h-g:h,y=n*i,v=Am(t,m),b=Cm(l,v),w=function(e,t){return t?e?.palette.getContrastText(Cm(e,t))??"white":e?.palette.text.primary??"black"}(l,v);!function(e,t,n,r,a,i){Rm(e,t,n,r,a,i),r<=2||e.clearRect(t+1,n+1,r-2,a-2)}(e,_,y,g,i,w),g<=2||(function(e,t,n,r,a,i){Rm(e,t+1,n+1,r-2,a-2,i)}(e,_,y,g,i,b),function(e,t,n,r,a,i){e.fillStyle=a;const o=Math.max(t+1,0);e.fillText(i,o,n+11,t-1+r-o)}(e,_,y,g,w,t.type))},drawDragPreview:function(e,t){const{apolloDragging:n,apolloRowHeight:r,lgv:a,theme:i}=e,{bpPerPx:o,displayedRegions:s,offsetPx:l}=a;if(!n)return;const{current:u,edge:d,feature:f,start:h}=n,p=Math.floor(h.y/r),m=s[h.regionNumber],g=(m.reversed?m.end-f[d]:f[d]-m.start)/o-l,_=Math.min(u.x,g),y=p*r,v=Math.abs(u.x-g),b=1*r;t.strokeStyle=i?.palette.info.main??"rgb(255,0,0)",t.setLineDash([6]),t.strokeRect(_,y,v,b),t.fillStyle=c.alpha(i?.palette.info.main??"rgb(255,0,0)",.2),t.fillRect(_,y,v,b)},drawHover:function(e,t){const{apolloHover:n,apolloRowHeight:r,lgv:a,theme:i}=e;if(!n)return;const{feature:o}=n,s=e.getFeatureLayoutPosition(o);if(!s)return;const{bpPerPx:l,displayedRegions:c,offsetPx:u}=a,{layoutIndex:d,layoutRow:f}=s,h=c[d],{refName:p,reversed:m}=h,{length:g,max:_,min:y}=o,v=(a.bpToPx({refName:p,coord:m?_:y,regionNumber:d})?.offsetPx??0)-u,b=f*r,w=g/l;t.fillStyle=i?.palette.action.focus??"rgba(0,0,0,0.04)",t.fillRect(v,b,w,r)},drawTooltip:function(e,t){const{apolloHover:n,apolloRowHeight:r,lgv:a,theme:i}=e;if(!n)return;const{feature:o}=n,s=e.getFeatureLayoutPosition(o);if(!s)return;const{layoutIndex:l,layoutRow:u}=s,{bpPerPx:d,displayedRegions:f,offsetPx:h}=a,p=f[l],{refName:m,reversed:g}=p;let _="Loc: ";const{length:y,max:v,min:b}=o;_+=`${b+1}–${v}`;let w=(a.bpToPx({refName:m,coord:g?v:b,regionNumber:l})?.offsetPx??0)-h;const x=u*r,S=y/d,k=`Type: ${o.type}`,{attributes:E}=o,A=E.get("gff_name")?.find((e=>""!==e)),C=[t.measureText(k).width,t.measureText(_).width];A&&C.push(t.measureText(`Name: ${A}`).width);const R=Math.max(...C);w=w+S+5,t.fillStyle=c.alpha(i?.palette.text.primary??"rgb(1, 1, 1)",.7),t.fillRect(w,x,R+4,3===C.length?45:35),t.beginPath(),t.moveTo(w,x),t.lineTo(w-5,x+5),t.lineTo(w,x+10),t.fill(),t.fillStyle=i?.palette.background.default??"rgba(255, 255, 255)";let N=x+12;t.fillText(k,w+2,N),A&&(N+=12,t.fillText(`Name: ${A}`,w+2,N)),N+=12,t.fillText(_,w+2,N)},getContextMenuItems:function(e){const{apolloHover:t,apolloInternetAccount:n,changeManager:r,regions:a,selectedFeature:i,session:o}=e,s=[];if(!t)return s;const{feature:l}=t,c=n?n.role:"admin",u="admin"===c,d=!(c&&["admin","user"].includes(c)),[f]=a,h=e.getAssemblyId(f.assemblyName),p=e.getAssemblyId(f.assemblyName);return s.push({label:"Add child feature",disabled:d,onClick:()=>{o.queueDialog((e=>[xh,{session:o,handleClose:()=>{e()},changeManager:r,sourceFeature:l,sourceAssemblyId:h,internetAccount:n}]))}},{label:"Copy features and annotations",disabled:d,onClick:()=>{o.queueDialog((e=>[Eh,{session:o,handleClose:()=>{e()},changeManager:r,sourceFeature:l,sourceAssemblyId:p}]))}},{label:"Delete feature",disabled:!u,onClick:()=>{o.queueDialog((t=>[Ch,{session:o,handleClose:()=>{t()},changeManager:r,sourceFeature:l,sourceAssemblyId:p,selectedFeature:i,setSelectedFeature:t=>{e.setSelectedFeature(t)}}]))}},{label:"Modify feature attribute",disabled:d,onClick:()=>{o.queueDialog((e=>[Kh,{session:o,handleClose:()=>{e()},changeManager:r,sourceFeature:l,sourceAssemblyId:p}]))}},{label:"Edit feature details",onClick:()=>{const e=o.addWidget("ApolloFeatureDetailsWidget","apolloFeatureDetailsWidget",{feature:l,assembly:p,refName:f.refName});o.showWidget(e)}}),s},getFeatureFromLayout:function(e,t,n){return e},getRowCount:function(e){return 1},getRowForFeature:function(e,t){return 0},onMouseDown:function(e,t,n){const{featureAndGlyphUnderMouse:r}=t,{feature:a}=r,i=Nm(t,a,e);i&&(n.stopPropagation(),e.startDrag(t,a,i))},onMouseLeave:function(){},onMouseMove:function(e,t){if(xm(t)){const{featureAndGlyphUnderMouse:n}=t;e.setApolloHover(n);const{feature:r}=n;if(Nm(t,r,e))return void e.setCursor("col-resize")}e.setCursor()},onMouseUp:function(e,t){if(e.apolloDragging)return;const{featureAndGlyphUnderMouse:n}=t;n?.feature&&e.setSelectedFeature(n.feature)}};let Tm=null,Om=null;if("document"in window)for(const e of["forward","backward"]){const t=document.createElement("canvas"),n=10;t.width=t.height=n;const r=t.getContext("2d");if(r){const a="rgba(0,0,0,0)",i="rgba(255,255,255,0.25)",o="forward"===e?r.createLinearGradient(0,n,n,0):r.createLinearGradient(0,0,n,n);o.addColorStop(0,a),o.addColorStop(.25,a),o.addColorStop(.25,i),o.addColorStop(.5,i),o.addColorStop(.5,a),o.addColorStop(.75,a),o.addColorStop(.75,i),o.addColorStop(1,i),r.fillStyle=o,r.fillRect(0,0,10,10),"forward"===e?Tm=r.createPattern(t,"repeat"):Om=r.createPattern(t,"repeat")}}function Fm(e,t){const{children:n,type:r}=e;if(!n)return 1;let a=0;if("mRNA"===r){for(const[,e]of n)"CDS"===e.type&&(a+=1);return a}for(const[,e]of n)a+=Fm(e);return a}function Lm(e){if("gene"!==e.type)throw new Error('Top level feature for GeneGlyph must have type "gene"');const{children:t}=e;if(!t)return[[e]];const n=[];for(const[,r]of t){if("mRNA"!==r.type){n.push([r,e]);continue}if(!r.children)continue;const t=[],a=[];for(const[,e]of r.children)"CDS"===e.type?t.push(e):"exon"===e.type&&a.push(e);for(const i of t)n.push([i,...a,r,e])}return n}function Dm(e,t,r){if("gene"===t.type||"mRNA"===t.type)return;const{bp:a,refName:i,regionNumber:o,x:s}=e,{lgv:l}=r,{offsetPx:c}=l,u=l.bpToPx({refName:i,coord:t.min,regionNumber:o}),d=l.bpToPx({refName:i,coord:t.max,regionNumber:o});if(void 0===u||void 0===d)return;const f=u.offsetPx-c,h=d.offsetPx-c;if(!(Math.abs(h-f)<8)){if(Math.abs(f-s)<4)return{feature:t,edge:"min"};if(Math.abs(h-s)<4)return{feature:t,edge:"max"};if("CDS"===t.type){const e=t.parent;if(!e?.children)return;const r=[...e.children.values()].filter((e=>"exon"===e.type)).find((e=>{const[t,r]=n.intersection2(a,a+1,e.min,e.max);return void 0!==t&&void 0!==r}));if(!r)return;const u=l.bpToPx({refName:i,coord:r.min,regionNumber:o}),d=l.bpToPx({refName:i,coord:r.max,regionNumber:o});if(void 0===u||void 0===d)return;const f=u.offsetPx-c,h=d.offsetPx-c;if(Math.abs(h-f)<8)return;if(Math.abs(f-s)<4)return{feature:r,edge:"min"};if(Math.abs(h-s)<4)return{feature:r,edge:"max"}}}}const{drawTooltip:Mm,getContextMenuItems:Pm,onMouseLeave:qm}=Im,jm={draw:function(e,t,r,a,i){const{apolloRowHeight:o,lgv:s,session:l,theme:c}=a,{bpPerPx:u,displayedRegions:d,offsetPx:f}=s,h=d[i],{refName:p,reversed:m}=h,g=o,_=Math.round(.6*g),y=Math.round(.9*g),{strand:v}=t,{children:b}=t;if(!b)return;const{apolloSelectedFeature:w}=l;let x=0;for(const[,t]of b){if("mRNA"!==t.type){x+=1;continue}const{children:n,min:a}=t;if(n)for(const[,o]of n){if("CDS"!==o.type)continue;const n=(s.bpToPx({refName:p,coord:a,regionNumber:i})?.offsetPx??0)-f,l=t.length/u,d=m?n-l:n,h=Math.round((x+.5)*g)+r*g;e.strokeStyle=c?.palette.text.primary??"black",e.beginPath(),e.moveTo(d,h),e.lineTo(d+l,h),e.stroke(),x+=1}}x=0;for(const[,t]of b)if("mRNA"===t.type)for(const a of t.cdsLocations){const{_id:o,children:l}=t;if(l){for(const[,t]of l){if("exon"!==t.type)continue;const n=(s.bpToPx({refName:p,coord:t.min,regionNumber:i})?.offsetPx??0)-f,a=t.length/u,o=m?n-a:n,l=(r+x)*g+(g-_)/2;if(e.fillStyle=c?.palette.text.primary??"black",e.fillRect(o,l,a,_),a>2&&(e.clearRect(o+1,l+1,a-2,_-2),e.fillStyle=w&&t._id===w._id?"rgb(0,0,0)":"rgb(211,211,211)",e.fillRect(o+1,l+1,a-2,_-2),Tm&&Om&&v)){const t=m?-1:1,[n,r]=v*t==1?[Tm,Om]:[Om,Tm];e.fillStyle=n,e.fillRect(o+1,l+1,a-2,(_-2)/2),e.fillStyle=r,e.fillRect(o+1,l+1+(_-2)/2,a-2,(_-2)/2)}}for(const l of a){const a=(l.max-l.min)/u,d=(s.bpToPx({refName:p,coord:l.min,regionNumber:i})?.offsetPx??0)-f,h=m?d-a:d;e.fillStyle=c?.palette.text.primary??"black";const _=(r+x)*g+(g-y)/2;if(e.fillRect(h,_,a,y),a>2){e.clearRect(h+1,_+1,a-2,y-2);const r=n.getFrame(l.min,l.max,t.strand??1,l.phase),i=c?.palette.framesCDS.at(r)?.main,s=i??"rgb(171,71,188)";if(e.fillStyle=w&&o===w._id?"rgb(0,0,0)":s,e.fillStyle=s,e.fillRect(h+1,_+1,a-2,y-2),Tm&&Om&&v){const t=m?-1:1,[n,r]=v*t==1?[Tm,Om]:[Om,Tm];e.fillStyle=n,e.fillRect(h+1,_+1,a-2,(y-2)/2),e.fillStyle=r,e.fillRect(h+1,_+(y-2)/2,a-2,(y-2)/2)}}}x+=1}}else Im.draw(e,t,r,a,i),x+=1},drawDragPreview:function(e,t){const{apolloDragging:n,apolloRowHeight:r,lgv:a,theme:i}=e,{bpPerPx:o,displayedRegions:s,offsetPx:l}=a;if(!n)return;const{current:u,edge:d,feature:f,start:h}=n,p=Math.floor(h.y/r),m=s[h.regionNumber],g=(m.reversed?m.end-f[d]:f[d]-m.start)/o-l,_=Math.min(u.x,g),y=p*r,v=Math.abs(u.x-g),b=1*r;t.strokeStyle=i?.palette.info.main??"rgb(255,0,0)",t.setLineDash([6]),t.strokeRect(_,y,v,b),t.fillStyle=c.alpha(i?.palette.info.main??"rgb(255,0,0)",.2),t.fillRect(_,y,v,b)},drawHover:function(e,t){const{apolloHover:n,apolloRowHeight:r,lgv:a,theme:i}=e;if(!n)return;const{feature:o}=n,s=e.getFeatureLayoutPosition(o);if(!s)return;const{bpPerPx:l,displayedRegions:c,offsetPx:u}=a,{featureRow:d,layoutIndex:f,layoutRow:h}=s,p=c[f],{refName:m,reversed:g}=p,{length:_,max:y,min:v}=o,b=(a.bpToPx({refName:m,coord:g?y:v,regionNumber:f})?.offsetPx??0)-u,w=(h+d)*r,x=_/l;t.fillStyle=i?.palette.action.selected??"rgba(0,0,0,04)",t.fillRect(b,w,x,r*Fm(o))},drawTooltip:Mm,getContextMenuItems:Pm,getFeatureFromLayout:function(e,t,n){const r=Lm(e)[n];for(const e of r)if(t>=e.min&&t<=e.max&&e.parent)return e;return e},getRowCount:Fm,getRowForFeature:function(e,t){const n=Lm(e);for(const[e,r]of n.entries())if(r.some((e=>e._id===t._id)))return e},onMouseDown:function(e,t,n){const{featureAndGlyphUnderMouse:r}=t,{feature:a}=r,i=Dm(t,a,e);i&&(n.stopPropagation(),e.startDrag(t,i.feature,i.edge))},onMouseLeave:qm,onMouseMove:function(e,t){if(xm(t)){const{featureAndGlyphUnderMouse:n}=t;e.setApolloHover(n);const{feature:r}=n;if(Dm(t,r,e))return void e.setCursor("col-resize")}e.setCursor()},onMouseUp:function(e,t){if(e.apolloDragging)return;const{featureAndGlyphUnderMouse:n}=t;n?.feature&&e.setSelectedFeature(n.feature)}};function Bm(e){const t=[[e]];if(e.children)for(const[,n]of e.children)t.push(...Bm(n));return t}function Um(e){return Bm(e).length}function zm(e,t,n,r,a,i){const o=Bm(t)[n-r];for(const t of o)Gm(e,t,n,a,i)}function Gm(e,t,n,r,a){const{apolloRowHeight:i,lgv:o,session:s}=r,{bpPerPx:l,displayedRegions:c,offsetPx:u}=o,d=c[a],f=(o.bpToPx({refName:d.refName,coord:t.min,regionNumber:a})?.offsetPx??0)-u,{reversed:h}=d,{apolloSelectedFeature:p}=s,m=t.length/l,g=h?f-m:f,_=n*i,y=Um(t),v=Am(t,p);y>1&&Rm(e,g,_,m,y*i,v?"rgba(130,0,0,0.45)":"rgba(255,0,0,0.25)"),Im.draw(e,t,n,r,a)}const{drawDragPreview:Hm,drawTooltip:$m,getContextMenuItems:Jm,onMouseDown:Vm,onMouseLeave:Wm,onMouseMove:Km,onMouseUp:Ym}=Im,Zm={draw:function(e,t,n,r,a){for(let i=0;i<Um(t);i++)zm(e,t,n+i,n,r,a)},drawDragPreview:Hm,drawHover:function(e,t){const{apolloHover:n,apolloRowHeight:r,lgv:a}=e;if(!n)return;const{feature:i}=n,o=e.getFeatureLayoutPosition(i);if(!o)return;const{featureRow:s,layoutIndex:l,layoutRow:c}=o,{bpPerPx:u,displayedRegions:d,offsetPx:f}=a,h=d[l],{refName:p,reversed:m}=h,{length:g,max:_,min:y}=i,v=(a.bpToPx({refName:p,coord:m?_:y,regionNumber:l})?.offsetPx??0)-f,b=(c+s)*r,w=g/u;t.fillStyle="rgba(0,0,0,0.2)",t.fillRect(v,b,w,r*Um(i))},drawTooltip:$m,getContextMenuItems:Jm,getFeatureFromLayout:function(e,t,n){return Bm(e)[n].find((e=>t>=e.min&&t<=e.max))},getRowCount:Um,getRowForFeature:function(e,t){const n=Bm(e);for(const[e,r]of n.entries())if(r.some((e=>e._id===t._id)))return e},onMouseDown:Vm,onMouseLeave:Wm,onMouseMove:Km,onMouseUp:Ym};function Xm(e){return function(e){const{children:t}=e;if(!t?.size)return!1;for(const[,e]of t)if("mRNA"===e.type){const{children:t}=e;if(!t?.size)return!1;const n=[...t.values()].some((e=>"CDS"===e.type)),r=[...t.values()].some((e=>"exon"===e.type));if(n&&r)return!0}return!1}(e)?jm:e.children?.size?Zm:Im}const Qm=m.makeStyles()((e=>({typeContent:{display:"inline-block",width:"174px",height:"100%",cursor:"text"},feature:{td:{position:"relative",verticalAlign:"top",paddingLeft:"0.5em"}},arrow:{display:"inline-block",width:"1.6em",textAlign:"center",cursor:"pointer"},arrowExpanded:{transform:"rotate(90deg)"},hoveredFeature:{backgroundColor:e.palette.action.hover},typeInputElement:{border:"none",background:"none"},typeErrorMessage:{color:"red"}})));function eg(e,t){const{changeManager:r,getAssemblyId:a,regions:i,selectedFeature:o,session:s,setSelectedFeature:c}=e;return function(e,t,r,a,i,o,s){const c=function(e){const{internetAccounts:t}=l.getParent(e);return t.find((e=>"ApolloInternetAccount"===e.type))}(o),u=c?c.role:"admin",d="admin"===u,f=!(u&&["admin","user"].includes(u)),h=[];if(e){const l=r(t.assemblyName),u=r(t.assemblyName);h.push({label:"Edit feature details",onClick:()=>{const n=o.addWidget("ApolloFeatureDetailsWidget","apolloFeatureDetailsWidget",{feature:e,assembly:u,refName:t.refName});o.showWidget(n)}},{label:"Add child feature",disabled:f,onClick:()=>{o.queueDialog((t=>[xh,{session:o,handleClose:()=>{t()},changeManager:s,sourceFeature:e,sourceAssemblyId:l,internetAccount:c}]))}},{label:"Copy features and annotations",disabled:f,onClick:()=>{o.queueDialog((t=>[Eh,{session:o,handleClose:()=>{t()},changeManager:s,sourceFeature:e,sourceAssemblyId:u}]))}},{label:"Delete feature",disabled:!d,onClick:()=>{o.queueDialog((t=>[Ch,{session:o,handleClose:()=>{t()},changeManager:s,sourceFeature:e,sourceAssemblyId:u,selectedFeature:a,setSelectedFeature:i}]))}},{label:"Edit attributes",disabled:f,onClick:()=>{o.queueDialog((t=>[Kh,{session:o,handleClose:()=>{t()},changeManager:s,sourceFeature:e,sourceAssemblyId:u}]))}}),"mRNA"===e.type&&n.isSessionModelWithWidgets(o)&&h.push({label:"Edit transcript details",onClick:()=>{const n=o.addWidget("ApolloTranscriptDetails","apolloTranscriptDetails",{feature:e,assembly:u,changeManager:s,refName:t.refName});o.showWidget(n)}})}return h}(t,i[0],a,o,c,s,r)}function tg(e){let t=e;for(;t.parent;)t=t.parent;return t}const ng=p.observer((function e({depth:t,feature:n,isHovered:r,isSelected:a,model:i,selectedFeatureClass:o,setContextMenu:s}){const{classes:l}=Qm(),{apolloHover:c,changeManager:u,selectedFeature:d,session:f,tabularEditor:h}=i,{featureCollapsed:p,filterText:m}=h,{_id:g,children:_,max:y,min:v,strand:b,type:w}=n,x=!p.get(g),S=e=>{f.notify(e.message,"error")};return L.default.createElement(L.default.Fragment,null,L.default.createElement("tr",{onMouseEnter:e=>{i.setApolloHover({feature:n,topLevelFeature:tg(n),glyph:Xm(tg(n))})},className:l.feature+(a?` ${o}`:r?` ${l.hoveredFeature}`:""),onClick:e=>{e.stopPropagation(),i.setSelectedFeature(n)},onContextMenu:e=>(e.preventDefault(),s({position:{left:e.clientX+2,top:e.clientY-6},items:eg(i,n)}),!1)},L.default.createElement("td",{style:{whiteSpace:"nowrap",borderLeft:2*t+"em solid transparent"}},_?.size?L.default.createElement("div",{onClick:e=>{e.stopPropagation(),h.setFeatureCollapsed(g,x)},className:l.arrow+(x?` ${l.arrowExpanded}`:"")},"❯"):null,L.default.createElement("div",{className:l.typeContent},L.default.createElement(wh,{session:f,ontologyName:"Sequence Ontology",style:{width:170},value:w,filterTerms:yh,fetchValidTerms:rg.bind(null,n),renderInput:e=>L.default.createElement("div",{ref:e.InputProps.ref},L.default.createElement("input",{type:"text",...e.inputProps,className:l.typeInputElement,style:{width:170}}),e.error?L.default.createElement("div",{className:l.typeErrorMessage},e.errorMessage??"unknown error"):null),onChange:(e,t)=>{t&&function(e,t,n,r){const a=t._id,i=new nr.TypeChange({typeName:"TypeChange",changedIds:[a],featureId:a,oldType:String(n),newType:String(r),assembly:t.assemblyId});return e.submit(i)}(u,n,e,t).catch(S)}}))),L.default.createElement("td",null,L.default.createElement(ym,{initialValue:v+1,notifyError:S,onChangeCommitted:e=>function(e,t,n,r){const a=t._id,i=new nr.LocationStartChange({typeName:"LocationStartChange",changedIds:[a],featureId:a,oldStart:n,newStart:r,assembly:t.assemblyId});return e.submit(i)}(u,n,v,e-1)})),L.default.createElement("td",null,L.default.createElement(ym,{initialValue:y,notifyError:S,onChangeCommitted:e=>function(e,t,n,r){const a=t._id,i=new nr.LocationEndChange({typeName:"LocationEndChange",changedIds:[a],featureId:a,oldEnd:n,newEnd:r,assembly:t.assemblyId});return e.submit(i)}(u,n,y,e)})),L.default.createElement("td",null,1===b?"+":-1===b?"-":void 0),L.default.createElement("td",null,L.default.createElement(gm,{filterText:m,feature:n}))),x&&_?[..._.entries()].filter((e=>{if(!m)return!0;const[,t]=e;return JSON.stringify(t).includes(m)})).map((([n,r])=>L.default.createElement(e,{isHovered:c?.feature._id===r._id,isSelected:d?._id===r._id,selectedFeatureClass:o,key:n,depth:(t||0)+1,feature:r,model:i,setContextMenu:s}))):null)}));async function rg(e,t,n){const{parent:r}=e;if(r){const e=(await t.getTermsWithLabelOrSynonym(r.type,{includeSubclasses:!1})).filter(yh);if(e.length>0)return await t.getClassesThat("part_of",e)}}const ag=m.makeStyles()((e=>({scrollableTable:{width:"100%",height:"100%",th:{position:"sticky",top:0,zIndex:2,textAlign:"left",background:e.palette.background.paper,paddingTop:"3.2em"},td:{whiteSpace:"normal"}},selectedFeature:{backgroundColor:e.palette.action.selected}}))),ig=p.observer((function({model:e}){const{apolloHover:t,seenFeatures:n,selectedFeature:r,tabularEditor:a}=e,i=c.useTheme(),{classes:o}=ag(),s=f.useRef(null),[l,u]=f.useState(null),{filterText:d}=a;return f.useEffect((()=>{const e=s.current;if(e&&r){const t=e.querySelector(`.${o.selectedFeature}`);if(t){const n=e.scrollTop,r=t.offsetTop-25;r>n&&r<n+e.offsetHeight||e.scroll({top:r-40,behavior:"smooth"})}}}),[r,n,o.selectedFeature]),L.default.createElement("div",{ref:s,style:{width:"100%",overflowY:"auto",height:"100%"}},L.default.createElement("table",{className:o.scrollableTable},L.default.createElement("thead",null,L.default.createElement("tr",null,L.default.createElement("th",null,"Type"),L.default.createElement("th",null,"Start"),L.default.createElement("th",null,"End"),L.default.createElement("th",null,"Strand"),L.default.createElement("th",null,"Attributes"))),L.default.createElement("tbody",null,[...n.entries()].filter((e=>{if(!d)return!0;const[,t]=e;return JSON.stringify(t).includes(d)})).sort(((e,t)=>e[1].min-t[1].min)).map((([n,a])=>L.default.createElement(ng,{key:n,isSelected:r?._id===n,isHovered:t?.feature._id===n,selectedFeatureClass:o.selectedFeature,feature:a,model:e,depth:0,setContextMenu:u}))))),L.default.createElement(h.Menu,{open:Boolean(l),onMenuItemClick:(e,t)=>{t(),u(null)},onClose:()=>{u(null)},TransitionProps:{onExit:()=>{u(null)}},style:{zIndex:i.zIndex.tooltip},menuItems:l?.items??[],anchorReference:"anchorPosition",anchorPosition:l?.position}))}));var og={},sg=Hl.exports;Object.defineProperty(og,"__esModule",{value:!0});var lg=og.default=void 0;lg=og.default=(0,sg($l).default)((0,I.default.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Clear");var cg={},ug=Hl.exports;Object.defineProperty(cg,"__esModule",{value:!0});var dg=cg.default=void 0;dg=cg.default=(0,ug($l).default)((0,I.default.jsx)("path",{d:"M7.41 18.59 8.83 20 12 16.83 15.17 20l1.41-1.41L12 14l-4.59 4.59zm9.18-13.18L15.17 4 12 7.17 8.83 4 7.41 5.41 12 10l4.59-4.59z"}),"UnfoldLess");const fg=m.makeStyles()({toolbar:{width:"100%",display:"flex",paddingRight:"2em",flexDirection:"row",justifyContent:"space-between",position:"absolute",zIndex:4},filterText:{}}),hg=p.observer((function({model:e}){const t=e.tabularEditor,{classes:n}=fg();return L.default.createElement("div",{className:n.toolbar},L.default.createElement(c.Tooltip,{title:"Collapse all"},L.default.createElement(c.IconButton,{"aria-label":"collapse",sx:{marginTop:0},onClick:t.collapseAllFeatures},L.default.createElement(dg,null))),L.default.createElement(c.TextField,{className:n.filterText,label:"Filter features",value:t.filterText,sx:{marginTop:0},variant:"outlined",onChange:e=>{t.setFilterText(e.target.value)},InputProps:{endAdornment:L.default.createElement(c.InputAdornment,{position:"end"},L.default.createElement(c.IconButton,{onClick:()=>{t.clearFilterText()}},L.default.createElement(lg,null)))}}))}));function pg(e){e.stopPropagation()}const mg=p.observer((function({model:e}){return e.tabularEditor.isShown?L.default.createElement("div",{onMouseDown:pg,onClick:pg,style:{width:"100%",height:"100%",position:"relative"}},L.default.createElement(hg,{model:e}),L.default.createElement(ig,{model:e})):null})),gg=l.types.model("TabularEditor",{isShown:!0,featureCollapsed:l.types.map(l.types.boolean),filterText:""}).actions((e=>({setFeatureCollapsed(t,n){e.featureCollapsed.set(t,n)},setFilterText(t){e.filterText=t},clearFilterText(){e.filterText=""},collapseAllFeatures(){const t=l.getParent(e);for(const[n]of t.seenFeatures.entries())e.featureCollapsed.set(n,!0)},togglePane(){e.isShown=!e.isShown},hidePane(){e.isShown=!1},showPane(){e.isShown=!0}})));function _g(e,t){return function(e,t){const i=function(e,t){return function(e,t){const i=function(e,t){return function(e,t){const i=function(e,t){return function(e,t){const i=function(e,t){return a.BaseDisplay.named("BaseLinearApolloDisplay").props({type:l.types.literal("LinearApolloDisplay"),configuration:r.ConfigurationReference(t),graphical:!0,table:!1,heightPreConfig:l.types.maybe(l.types.refinement("displayHeight",l.types.number,(e=>e>=20)))}).views((e=>{const{configuration:t,renderProps:n}=e;return{renderProps:()=>({...n(),...k.getParentRenderProps(e),config:t.renderer})}})).volatile((()=>({scrollTop:0}))).views((e=>({get lgv(){return n.getContainingView(e)},get height(){return e.heightPreConfig?e.heightPreConfig:e.graphical&&e.table?500:e.graphical?200:300}}))).views((e=>({get rendererTypeName(){return e.configuration.renderer.type},get session(){return n.getSession(e)},get regions(){return e.lgv.dynamicBlocks.contentBlocks.map((({assemblyName:e,end:t,refName:n,start:r})=>({assemblyName:e,refName:n,start:Math.round(r),end:Math.round(t)})))},regionCannotBeRendered(){if(e.lgv&&e.lgv.bpPerPx>=200)return"Zoom in to see annotations"}}))).views((e=>({get apolloInternetAccount(){const[t]=e.regions,{internetAccounts:n}=l.getRoot(e),{assemblyName:a}=t,{assemblyManager:i}=e.session,o=i.get(a);if(!o)throw new Error(`No assembly found with name ${a}`);const{internetAccountConfigId:s}=r.getConf(o,["sequence","metadata"]);return n.find((e=>r.getConf(e,"internetAccountId")===s))},get changeManager(){return e.session.apolloDataStore.changeManager},getAssemblyId(t){const{assemblyManager:n}=e.session,r=n.get(t);if(!r)throw new Error(`Could not find assembly named ${t}`);return r.name},get selectedFeature(){return e.session.apolloSelectedFeature}}))).actions((e=>({setScrollTop(t){e.scrollTop=t},setHeight:t=>(e.heightPreConfig=Math.max(t,20),e.height),resizeHeight(t){const n=e.height;return this.setHeight(e.height+t)-n},showGraphicalOnly(){e.graphical=!0,e.table=!1},showTableOnly(){e.graphical=!1,e.table=!0},showGraphicalAndTable(){e.graphical=!0,e.table=!0}}))).views((e=>{const{trackMenuItems:t}=e;return{trackMenuItems(){const{graphical:n,table:r}=e;return[...t(),{type:"subMenu",label:"Appearance",subMenu:[{label:"Show graphical display",type:"radio",checked:n&&!r,onClick:()=>{e.showGraphicalOnly()}},{label:"Show table display",type:"radio",checked:r&&!n,onClick:()=>{e.showTableOnly()}},{label:"Show both graphical and table display",type:"radio",checked:r&&n,onClick:()=>{e.showGraphicalAndTable()}}]}]}}})).actions((e=>({setSelectedFeature(t){e.session.apolloSetSelectedFeature(t)},afterAttach(){l.addDisposer(e,s.autorun((()=>{e.lgv.initialized&&!e.regionCannotBeRendered()&&(e.session.apolloDataStore.loadFeatures(e.regions),e.session.apolloDataStore.loadRefSeq(e.regions))}),{name:"LinearApolloDisplayLoadFeatures",delay:1e3}))}})))}(0,t);return i.named("LinearApolloDisplayLayouts").props({featuresMinMaxLimit:5e5}).volatile((()=>({seenFeatures:s.observable.map()}))).views((e=>({get featuresMinMax(){const{assemblyManager:t}=e.session;return e.lgv.displayedRegions.map((r=>{const a=t.get(r.assemblyName);let i,o;const{end:s,refName:l,start:c}=r;for(const[,t]of e.seenFeatures)l!==a?.getCanonicalRefName(t.refSeq)||!n.doesIntersect2(c,s,t.min,t.max)||t.length>e.featuresMinMaxLimit||(void 0===i&&({min:i}=t),void 0===o&&({max:o}=t),t.minWithChildren<i&&({min:i}=t),t.maxWithChildren>o&&({max:o}=t));if(void 0!==i&&void 0!==o)return[i,o]}))}}))).actions((e=>({addSeenFeature(t){e.seenFeatures.set(t._id,t)},deleteSeenFeature(t){e.seenFeatures.delete(t)}}))).views((e=>({get featureLayouts(){const{assemblyManager:t}=e.session;return e.lgv.displayedRegions.map(((r,a)=>{const i=t.get(r.assemblyName),o=new Map,s=e.featuresMinMax[a];if(!s)return o;const[c,u]=s,d=[],{end:f,refName:h,start:p}=r;for(const[t,r]of e.seenFeatures.entries()){if(!l.isAlive(r)){e.deleteSeenFeature(t);continue}if(h!==i?.getCanonicalRefName(r.refSeq)||!n.doesIntersect2(p,f,r.min,r.max))continue;const a=Xm(r).getRowCount(r,e.lgv.bpPerPx);let s=0,m=!1;for(;!m;){let e=d.slice(s,s+a);if(e.length<a){for(let t=0;t<a-e.length;t++){const e=d.length;d[e]=Array.from({length:u-c}),o.set(e,[])}e=d.slice(s,s+a)}if(e.map((e=>{const t=r.max-r.min==0?r.min+1:r.max;let n=r.min-c,a=t-c;return r.min-c<0&&(n=0,a=t-r.min),e.slice(n,a).some(Boolean)})).some(Boolean))s+=1;else{for(let e=s;e<s+a;e++){let t=r.min-c,n=r.max-c;r.min-c<0&&(t=0,n=r.max-r.min),d[e].fill(!0,t,n);const a=o.get(e);a?.push([e-s,r])}m=!0}}}return o}))},getFeatureLayoutPosition(e){const{featureLayouts:t}=this;for(const[n,r]of t.entries())for(const[t,a]of r)for(const[r,i]of a)if(0===r){if(e._id===i._id)return{layoutIndex:n,layoutRow:t,featureRow:r};if(i.hasDescendant(e._id)){const r=Xm(i).getRowForFeature(i,e);if(void 0!==r)return{layoutIndex:n,layoutRow:t,featureRow:r}}}}}))).views((e=>({get highestRow(){return Math.max(0,...e.featureLayouts.map((e=>Math.max(...e.keys()))))}}))).actions((e=>({afterAttach(){l.addDisposer(e,s.autorun((()=>{if(e.lgv.initialized&&!e.regionCannotBeRendered())for(const t of e.regions){const r=e.session.apolloDataStore.assemblies.get(t.assemblyName),a=r?.getByRefName(t.refName),i=a?.features;if(i)for(const[,r]of i)n.doesIntersect2(t.start,t.end,r.min,r.max)&&!e.seenFeatures.has(r._id)&&e.addSeenFeature(r)}}),{name:"LinearApolloDisplaySetSeenFeatures",delay:1e3}))}})))}(0,t).named("LinearApolloDisplayRendering").props({sequenceRowHeight:15,apolloRowHeight:20,detailsMinHeight:200,detailsHeight:200,lastRowTooltipBufferHeight:40,isShown:!0}).volatile((()=>({canvas:null,overlayCanvas:null,collaboratorCanvas:null,seqTrackCanvas:null,seqTrackOverlayCanvas:null,theme:void 0}))).views((e=>({get featuresHeight(){return(e.highestRow+1)*e.apolloRowHeight+e.lastRowTooltipBufferHeight}}))).actions((e=>({toggleShown(){e.isShown=!e.isShown},setDetailsHeight(t){e.detailsHeight=e.isShown?Math.max(Math.min(t,e.height-100),Math.min(e.height,e.detailsMinHeight)):t},setCanvas(t){e.canvas=t},setOverlayCanvas(t){e.overlayCanvas=t},setCollaboratorCanvas(t){e.collaboratorCanvas=t},setSeqTrackCanvas(t){e.seqTrackCanvas=t},setSeqTrackOverlayCanvas(t){e.seqTrackOverlayCanvas=t},setTheme(t){e.theme=t},afterAttach(){l.addDisposer(e,s.autorun((()=>{if(!e.lgv.initialized||e.regionCannotBeRendered())return;const t=e.collaboratorCanvas?.getContext("2d");if(t){t.clearRect(0,0,e.lgv.dynamicBlocks.totalWidthPx,e.featuresHeight);for(const n of e.session.collaborators){const{locations:r}=n;if(0===r.length)continue;let a=0;for(const i of e.lgv.displayedRegions){for(const o of r){if(o.refSeq!==i.refName)continue;const{end:r,refSeq:s,start:l}=o,c=e.lgv.bpToPx({refName:s,coord:l,regionNumber:a});if(!c)continue;const u=c.offsetPx-e.lgv.offsetPx,d=(r-l)/e.lgv.bpPerPx;t.fillStyle="rgba(0,255,0,.2)",t.fillRect(u,1,d,100),t.fillStyle="black",t.fillText(n.name,u+1,11,d-2)}a++}}}}),{name:"LinearApolloDisplayRenderCollaborators"}))}})))}(0,t);return i.actions((e=>({afterAttach(){l.addDisposer(e,s.autorun((async()=>{if(!e.lgv.initialized||e.regionCannotBeRendered())return;if(e.lgv.bpPerPx>3)return;const t=e.seqTrackCanvas?.getContext("2d");if(!t)return;t.clearRect(0,0,e.lgv.dynamicBlocks.totalWidthPx,e.lgv.bpPerPx<=1?125:95);const r=e.lgv.bpPerPx<=1?[3,2,1,0,0,-1,-2,-3]:[3,2,1,-1,-2,-3];let a=0;for(const n of r){const r=e.theme?.palette.framesCDS.at(n)?.main;r&&(t.fillStyle=r,t.fillRect(0,a,e.lgv.dynamicBlocks.totalWidthPx,e.sequenceRowHeight)),a+=e.sequenceRowHeight}for(const[r,a]of e.regions.entries()){const i=e.session.apolloDataStore.getBackendDriver(a.assemblyName);if(!i)throw new Error("Failed to get the backend driver");const{seq:o}=await i.getSequence(a);if(!o)return;for(const[i,s]of[...o].entries()){const l=(e.lgv.bpToPx({refName:a.refName,coord:a.start+i,regionNumber:r})?.offsetPx??0)-e.lgv.offsetPx,c=3/e.lgv.bpPerPx,u=e.lgv.displayedRegions[r].reversed?l-c:l;for(let n=2;n>=0;n--)(a.start+i)%3===n&&wm(t,e.lgv.bpPerPx,u,e.sequenceRowHeight*(2-n),c,e.sequenceRowHeight,o,i,!1);if(e.lgv.bpPerPx<=1){const o=(e.lgv.bpToPx({refName:a.refName,coord:a.start+i,regionNumber:r})?.offsetPx??0)-e.lgv.offsetPx,l=1/e.lgv.bpPerPx,c=e.lgv.displayedRegions[r].reversed?o-l:o;t.beginPath(),t.fillStyle=vm(s,e.theme),t.rect(c,3*e.sequenceRowHeight,l,e.sequenceRowHeight),t.fill(),e.lgv.bpPerPx<=.1&&(t.stroke(),bm(t,c,l,s,3*e.sequenceRowHeight));const u=n.revcom(s);t.beginPath(),t.fillStyle=vm(u,e.theme),t.rect(c,4*e.sequenceRowHeight,l,e.sequenceRowHeight),t.fill(),e.lgv.bpPerPx<=.1&&(t.stroke(),bm(t,c,l,u,4*e.sequenceRowHeight))}for(let n=0;n<=2;n++)(a.start+i)%3===n&&wm(t,e.lgv.bpPerPx,u,e.sequenceRowHeight*((e.lgv.bpPerPx<=1?5:3)+n),c,e.sequenceRowHeight,o,i,!0)}}}),{name:"LinearApolloDisplayRenderSequence"}))}})))}(0,t).actions((e=>({afterAttach(){l.addDisposer(e,s.autorun((()=>{const{canvas:t,featureLayouts:r,featuresHeight:a,lgv:i}=e;if(!i.initialized||e.regionCannotBeRendered())return;const{displayedRegions:o,dynamicBlocks:s}=i,l=t?.getContext("2d");if(l){l.clearRect(0,0,s.totalWidthPx,a);for(const[t,a]of r.entries()){const r=o[t];for(const[i,o]of a.entries())for(const[a,s]of o)a>0||n.doesIntersect2(r.start,r.end,s.min,s.max)&&Xm(s).draw(l,s,i,e,t)}}}),{name:"LinearApolloDisplayRenderFeatures"}))}})))}(0,t);return i.named("LinearApolloDisplayMouseEvents").volatile((()=>({apolloDragging:null,cursor:void 0,apolloHover:void 0}))).views((e=>({getMousePosition(t){const n=function(e,t){const n=e.currentTarget,{clientX:r,clientY:a}=e,{left:i,top:o}=n.getBoundingClientRect(),s=r-i,l=a-o,{coord:c,index:u,refName:d}=t.pxToBp(s);return{x:s,y:l,refName:d,bp:c,regionNumber:u}}(t,e.lgv),{bp:r,regionNumber:a,y:i}=n,o=Math.floor(i/e.apolloRowHeight),s=e.featureLayouts[a].get(o);if(!s)return n;const l=s.find((e=>r>=e[1].min&&r<=e[1].max));if(!l)return n;const[c,u]=l,d=Xm(u),f=d.getFeatureFromLayout(u,r,c);return f?{...n,featureAndGlyphUnderMouse:{feature:f,topLevelFeature:u,glyph:d}}:n}}))).actions((e=>({continueDrag(t,n){if(!e.apolloDragging)throw new Error("continueDrag() called with no current drag in progress");n.stopPropagation(),e.apolloDragging={...e.apolloDragging,current:t}},setDragging(t){e.apolloDragging=t??null}}))).actions((e=>({setApolloHover(t){e.apolloHover=t},setCursor(t){e.cursor!==t&&(e.cursor=t)}}))).actions((()=>({onClick(){}})))}(0,t).actions((e=>({afterAttach(){l.addDisposer(e,s.autorun((()=>{if(!e.lgv.initialized||e.regionCannotBeRendered())return;const t=e.seqTrackOverlayCanvas?.getContext("2d");if(!t)return;t.clearRect(0,0,e.lgv.dynamicBlocks.totalWidthPx,e.lgv.bpPerPx<=1?125:95);const{apolloHover:r,lgv:a,regions:i,sequenceRowHeight:o,theme:s}=e;if(!r)return;const{feature:l}=r;for(const[e,r]of i.entries())if("CDS"===l.type){const i=l.parent;if(!i)continue;const c=i.cdsLocations.find((e=>l.min===e.at(0)?.min&&l.max===e.at(-1)?.max));if(!c)continue;for(const i of c){const c=Sm(n.getFrame(i.min,i.max,l.strand??1,i.phase),a.bpPerPx),u=(a.bpToPx({refName:r.refName,coord:i.min,regionNumber:e})?.offsetPx??0)-a.offsetPx,d=(i.max-i.min)/a.bpPerPx;Em(t,s,a.displayedRegions[e].reversed?u-d:u,o,c,d)}}else{const n=km(l.strand,a.bpPerPx),i=(a.bpToPx({refName:r.refName,coord:l.min,regionNumber:e})?.offsetPx??0)-a.offsetPx,c=l.length/a.bpPerPx;Em(t,s,a.displayedRegions[e].reversed?i-c:i,o,n,c)}}),{name:"LinearApolloDisplayRenderSeqHighlight"}))}})))}(0,t);return i.views((e=>({contextMenuItems(t){const{apolloHover:n}=e;if(!n||!t)return[];const{topLevelFeature:r}=n;return Xm(r).getContextMenuItems(e)}}))).actions((e=>({startDrag(t,n,r){e.apolloDragging={start:t,current:t,feature:n,edge:r}},endDrag(){if(!e.apolloDragging)throw new Error("endDrag() called with no current drag in progress");const{current:t,edge:n,feature:r,start:a}=e.apolloDragging;if(Math.abs(t.x-a.x)<=4)return e.setDragging(),void e.setCursor();const{displayedRegions:i}=e.lgv,o=e.getAssemblyId(i[a.regionNumber].assemblyName);let s;if("max"===n){const e=r._id;s=new nr.LocationEndChange({typeName:"LocationEndChange",changedIds:[e],featureId:e,oldEnd:r.max,newEnd:t.bp,assembly:o})}else{const e=r._id;s=new nr.LocationStartChange({typeName:"LocationStartChange",changedIds:[e],featureId:e,oldStart:r.min,newStart:t.bp,assembly:o})}e.changeManager.submit(s),e.setDragging(),e.setCursor()}}))).actions((e=>({onMouseDown(t){const n=e.getMousePosition(t);xm(n)&&n.featureAndGlyphUnderMouse.glyph.onMouseDown(e,n,t)},onMouseMove(t){const n=e.getMousePosition(t);if(e.apolloDragging)return e.setCursor("col-resize"),void e.continueDrag(n,t);xm(n)?n.featureAndGlyphUnderMouse.glyph.onMouseMove(e,n,t):(e.setApolloHover(),e.setCursor())},onMouseLeave(t){e.setDragging(),e.setApolloHover();const n=e.getMousePosition(t);xm(n)&&n.featureAndGlyphUnderMouse.glyph.onMouseLeave(e,n,t)},onMouseUp(t){const n=e.getMousePosition(t);xm(n)&&n.featureAndGlyphUnderMouse.glyph.onMouseUp(e,n,t),e.apolloDragging&&e.endDrag()}}))).actions((e=>({afterAttach(){l.addDisposer(e,s.autorun((()=>{if(!e.lgv.initialized||e.regionCannotBeRendered())return;const t=e.overlayCanvas?.getContext("2d");if(!t)return;t.clearRect(0,0,e.lgv.dynamicBlocks.totalWidthPx,e.featuresHeight);const{apolloDragging:n,apolloHover:r}=e;if(!r)return;const{glyph:a}=r;a.drawHover(e,t),a.drawTooltip(e,t),n&&Xm(n.feature.topLevelFeature).drawDragPreview(e,t)}),{name:"LinearApolloDisplayRenderMouseoverAndDrag"}))}})))}(0,t).props({tabularEditor:l.types.optional(gg,{})}).named("LinearApolloDisplay")}var yg={},vg=Hl.exports;Object.defineProperty(yg,"__esModule",{value:!0});var bg=yg.default=void 0;bg=yg.default=(0,vg($l).default)((0,I.default.jsx)("path",{d:"m12 8-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"}),"ExpandLess");var wg={},xg=Hl.exports;Object.defineProperty(wg,"__esModule",{value:!0});var Sg=wg.default=void 0;Sg=wg.default=(0,xg($l).default)((0,I.default.jsx)("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}),"ExpandMore");var kg={},Eg=Hl.exports;Object.defineProperty(kg,"__esModule",{value:!0});var Ag=kg.default=void 0;Ag=kg.default=(0,Eg($l).default)((0,I.default.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"}),"Error");const Cg=m.makeStyles()((e=>({canvasContainer:{position:"relative",left:0},canvas:{position:"absolute",left:0},ellipses:{textOverflow:"ellipsis",overflow:"hidden"},avatar:{position:"absolute",color:e.palette.warning.light,backgroundColor:e.palette.warning.contrastText}}))),Rg=p.observer((function(e){const t=c.useTheme(),{model:r}=e,{apolloRowHeight:a,contextMenuItems:i,cursor:o,featuresHeight:s,isShown:l,onMouseDown:u,onMouseLeave:d,onMouseMove:p,onMouseUp:m,regionCannotBeRendered:g,session:_,setCanvas:y,setCollaboratorCanvas:v,setOverlayCanvas:b,setSeqTrackCanvas:w,setSeqTrackOverlayCanvas:x,setTheme:S}=r,{classes:k}=Cg(),E=n.getContainingView(r);f.useEffect((()=>{S(t)}),[t,S]);const[A,C]=f.useState(),[R,N]=f.useState([]),I=g();if(!l)return null;const{assemblyManager:T}=_;return L.default.createElement(L.default.Fragment,null,E.bpPerPx<=3?L.default.createElement("div",{className:k.canvasContainer,style:{width:E.dynamicBlocks.totalWidthPx,height:E.bpPerPx<=1?125:95}},L.default.createElement("canvas",{ref:async e=>{await Promise.resolve(),w(e)},width:E.dynamicBlocks.totalWidthPx,height:E.bpPerPx<=1?125:95,className:k.canvas,"data-testid":"seqTrackCanvas"}),L.default.createElement("canvas",{ref:async e=>{await Promise.resolve(),x(e)},width:E.dynamicBlocks.totalWidthPx,height:E.bpPerPx<=1?125:95,className:k.canvas,"data-testid":"seqTrackOverlayCanvas"})):null,L.default.createElement("div",{className:k.canvasContainer,style:{width:E.dynamicBlocks.totalWidthPx,height:s},onContextMenu:e=>{if(e.preventDefault(),R.length>0)N([]);else{const t=[e.clientX,e.clientY];C(t),N(i(t))}}},I?L.default.createElement(c.Alert,{severity:"warning",classes:{message:k.ellipses}},L.default.createElement(c.Tooltip,{title:I},L.default.createElement("div",null,I))):L.default.createElement(L.default.Fragment,null,L.default.createElement("canvas",{ref:async e=>{await Promise.resolve(),v(e)},width:E.dynamicBlocks.totalWidthPx,height:s,className:k.canvas,"data-testid":"collaboratorCanvas"}),L.default.createElement("canvas",{ref:async e=>{await Promise.resolve(),y(e)},width:E.dynamicBlocks.totalWidthPx,height:s,className:k.canvas,"data-testid":"canvas"}),L.default.createElement("canvas",{ref:async e=>{await Promise.resolve(),b(e)},width:E.dynamicBlocks.totalWidthPx,height:s,onMouseMove:p,onMouseLeave:d,onMouseDown:u,onMouseUp:m,className:k.canvas,style:{cursor:o??"default"},"data-testid":"overlayCanvas"}),E.displayedRegions.flatMap(((e,t)=>{const i=T.get(e.assemblyName);return[..._.apolloDataStore.checkResults.values()].filter((t=>i?.isValidRefName(t.refSeq)&&i.getCanonicalRefName(t.refSeq)===e.refName&&n.doesIntersect2(e.start,e.end,t.start,t.end))).map((n=>{const i=(E.bpToPx({refName:e.refName,coord:n.start,regionNumber:t})?.offsetPx??0)-E.offsetPx,[o]=n.ids;if(!o)return null;const{topLevelFeature:s}=o,l=parent?r.getFeatureLayoutPosition(s)?.layoutRow??0:0;return L.default.createElement(c.Tooltip,{key:n._id,title:n.message},L.default.createElement(c.Avatar,{className:k.avatar,style:{top:l*a,left:i,height:a,width:a}},L.default.createElement(Ag,null)))}))})),L.default.createElement(h.Menu,{open:R.length>0,onMenuItemClick:(e,t)=>{t(),N([])},onClose:()=>{N([])},TransitionProps:{onExit:()=>{N([])}},anchorReference:"anchorPosition",anchorPosition:A?{top:A[1],left:A[0]}:void 0,style:{zIndex:t.zIndex.tooltip},menuItems:R}))))})),Ng=p.observer((function({model:e}){const{height:t}=e;return L.default.createElement("div",{style:{position:"absolute",left:0,top:t/2,width:"100%"}},L.default.createElement("hr",{style:{margin:0,top:0,color:"black"}}))})),Ig=m.makeStyles()((e=>({shading:{background:c.alpha(e.palette.primary.main,.2),overflowY:"scroll",overflowX:"hidden"},details:{background:e.palette.background.paper},accordionControl:{height:12,width:"100%","&:hover":{background:e.palette.action.hover},display:"flex",alignItems:"center",justifyContent:"center"},accordionRoot:{background:e.palette.divider},resizeHandle:{width:"100%",height:4,position:"absolute",cursor:"row-resize",zIndex:100},expandIcon:{},title:{userSelect:"none"}}))),Tg=({onResize:e})=>{const{classes:t}=Ig(),n=f.useCallback((t=>{t.stopPropagation(),t.preventDefault(),e(t.movementY)}),[e]),r=f.useCallback((e=>{e.stopPropagation(),e.preventDefault(),window.removeEventListener("mousemove",n),window.removeEventListener("mouseup",r),window.removeEventListener("mouseleave",r)}),[n]);return L.default.createElement("div",{onMouseDown:e=>{e.stopPropagation(),window.addEventListener("mousemove",n),window.addEventListener("mouseup",r),window.addEventListener("mouseleave",r)},onClick:e=>{e.stopPropagation(),e.preventDefault()},className:t.resizeHandle})},Og=p.observer((function({onClick:e,onResize:t,open:n,title:r}){const{classes:a}=Ig();return L.default.createElement("div",{className:a.accordionRoot},n&&t?L.default.createElement(Tg,{onResize:t}):null,L.default.createElement("div",{className:a.accordionControl,onClick:e},L.default.createElement(n?bg:Sg,{className:a.expandIcon}),r?L.default.createElement(c.Typography,{className:a.title,variant:"caption",component:"span"},r):null))})),Fg=p.observer((function({model:e,...t}){const{classes:n}=Ig(),{detailsHeight:r,graphical:a,height:i,isShown:o,selectedFeature:s,table:l,tabularEditor:c,toggleShown:u}=e,d=f.useRef(null);f.useEffect((()=>{!function(e,t){const{apolloRowHeight:n,selectedFeature:r}=e;if(t.current&&r){const a=e.getFeatureLayoutPosition(r);a&&t.current.scroll({top:(a.layoutRow+a.featureRow)*n,behavior:"smooth"})}}(e,d)}),[e,s]);const h=t=>{e.setDetailsHeight(r-t)};if(a&&l){const a=c.isShown?r:0,s=o?i-r-24:0;return L.default.createElement("div",{style:{height:i}},L.default.createElement(Og,{open:o,title:"Graphical",onClick:u}),L.default.createElement("div",{className:n.shading,ref:d,style:{height:s}},L.default.createElement(Rg,{model:e,...t})),L.default.createElement(Og,{title:"Table",open:c.isShown,onClick:c.togglePane,onResize:h}),L.default.createElement("div",{className:n.details,style:{height:a}},L.default.createElement(mg,{model:e})))}return a?L.default.createElement("div",{className:n.shading,ref:d,style:{height:i}},L.default.createElement(Rg,{model:e,...t})):L.default.createElement("div",{className:n.details,style:{height:i}},L.default.createElement(mg,{model:e}))}));var Lg={},Dg=Hl.exports;Object.defineProperty(Lg,"__esModule",{value:!0});var Mg=Lg.default=void 0;Mg=Lg.default=(0,Dg($l).default)((0,I.default.jsx)("path",{d:"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z"}),"Save");const Pg=l.types.model("JobsManager",{}).views((e=>({get jobStatusWidget(){const{widgets:t}=n.getSession(e);let r=t.get("JobsList");return r||(r=n.getSession(e).addWidget("JobsListWidget","JobsList")),r}}))).actions((e=>({update(t,n,r){e.jobStatusWidget.updateJobStatusMessage(t,n),r&&e.jobStatusWidget.updateJobProgressPct(t,r)},abortJob(t,r){const a=n.getSession(e);if(n.isSessionModelWithWidgets(a)){a.showWidget(e.jobStatusWidget),e.jobStatusWidget.updateJobStatusMessage(t,r??"Aborted unexpectedly");const n=e.jobStatusWidget.jobs.findIndex((e=>e.name===t));e.jobStatusWidget.addAbortedJob({...e.jobStatusWidget.jobs[n]}),e.jobStatusWidget.removeJob(t),a.notify("Job aborted","info")}},runJob(t){const r=n.getSession(e);n.isSessionModelWithWidgets(r)&&(r.showWidget(e.jobStatusWidget),e.jobStatusWidget.addJob(t))},done(t){const r=n.getSession(e);n.isSessionModelWithWidgets(r)&&(r.showWidget(e.jobStatusWidget),e.jobStatusWidget.removeJob(t.name),e.jobStatusWidget.addFinishedJob({name:t.name,statusMessage:"All operations successful",progressPct:100,cancelCallback:t.cancelCallback}))}})));class qg{clientStore;constructor(e){this.clientStore=e}}class jg{dataStore;constructor(e){this.dataStore=e}recentChanges=[];async submit(e,t={}){const{addToRecents:r=!0,submitToBackend:a=!0,updateJobsManager:i=!1}=t,o=n.getSession(this.dataStore),s=new AbortController,{jobsManager:l}=n.getSession(this.dataStore),c={name:e.typeName,statusMessage:"Pre-validating",progressPct:0,cancelCallback:()=>{s.abort()}};i&&l.runJob(c);const u=await nr.validationRegistry.frontendPreValidate(e);if(!u.ok){const e=`Pre-validation failed: "${u.resultsMessages}"`;return i&&l.abortJob(c.name,e),void o.notify(e,"error")}try{await e.execute(this.dataStore)}catch(e){return i&&l.abortJob(c.name,String(e)),console.error(e),void o.notify(String(e),"error")}if((await nr.validationRegistry.frontendPostValidate(e,this.dataStore)).ok||await this.revert(e),a){i&&l.update(c.name,"Submitting to driver");const{collaborationServerDriver:n,getBackendDriver:r}=this.dataStore,a=z.isAssemblySpecificChange(e)?r(e.assembly):n;let s;try{s=await a.submitChange(e,t)}catch(t){return i&&l.abortJob(c.name,String(t)),console.error(t),o.notify(String(t),"error"),void await this.revert(e,!1)}if(!s.ok){const t=`Post-validation failed: "${u.resultsMessages}"`;return i&&l.abortJob(c.name,t),o.notify(t,"error"),void await this.revert(e,!1)}e.notification&&o.notify(e.notification,"success")}r&&this.recentChanges.push(e),i&&l.done(c)}async revert(e,t=!0){const n=e.getInverse();return this.submit(n,{submitToBackend:t,addToRecents:!1})}async revertLastChange(){const e=this.recentChanges.pop();if(e)return this.revert(e);n.getSession(this.dataStore).notify("No changes to undo!","warning")}}class Bg extends qg{inFlight=new Map;async fetch(e,t,n){return e.getFetcher({locationType:"UriLocation",uri:t.toString()})(t,n)}async searchFeatures(e,t){const n=this.clientStore.getInternetAccount(t[0]),{baseURL:r}=n,a=new URL("features/searchFeatures",r),i=new URLSearchParams({assemblies:t.join(","),term:e});a.search=i.toString();const o=a.toString(),s=await this.fetch(n,o);if(!s.ok){const e=await df(s,"searchFeatures failed");throw new Error(e)}return s.json()}async getFeatures(e){const{assemblyName:t,end:a,refName:i,start:o}=e,{assemblyManager:s}=n.getSession(this.clientStore),l=s.get(t);if(!l)throw new Error(`Could not find assembly with name "${t}"`);const{ids:c}=r.getConf(l,["sequence","metadata"]),u=c[i];if(!u)throw new Error(`Could not find refSeq "${i}"`);const d=this.clientStore.getInternetAccount(t),{baseURL:f}=d,h=new URL("features/getFeatures",f),p=new URLSearchParams({refSeq:u,start:String(o),end:String(a)});h.search=p.toString();const m=h.toString(),g=await this.fetch(d,m);if(!g.ok){const e=await df(g,"getFeatures failed");throw new Error(e)}return this.checkSocket(t,i,d),g.json()}checkSocket(e,t,n){const{socket:r}=n,a=n.retrieveToken(),i=`${e}-${t}`,o=new jg(this.clientStore);r.hasListeners(i)||r.on(i,(async e=>{if(n.setLastChangeSequenceNumber(Number(e.changeSequence)),e.userSessionId!==a&&e.channel===i){const t=z.Change.fromJSON(e.changeInfo);await o.submit(t,{submitToBackend:!1})}}))}async getSequence(e){const t=`${e.refName}:${e.start}-${e.end}`,a=this.inFlight.get(t),{assemblyName:i,end:o,refName:s,start:l}=e,{assemblyManager:c}=n.getSession(this.clientStore),u=c.get(i);if(!u)throw new Error(`Could not find assembly with name "${i}"`);const{ids:d}=r.getConf(u,["sequence","metadata"]),f=d[s];if(!f)throw new Error(`Could not find refSeq "${s}"`);if(a)return{seq:await a,refSeq:f};let h=this.clientStore.assemblies.get(i);h||(h=this.clientStore.addAssembly(i));let p=h.refSeqs.get(f);p||(p=h.addRefSeq(f,s));const m=p.getSequence(l,o);if(m.length===o-l)return{seq:m,refSeq:f};const g=this.clientStore.getInternetAccount(i),{baseURL:_}=g,y=new URL("sequence",_),v=new URLSearchParams({refSeq:f,start:String(l),end:String(o)});y.search=v.toString();const b=y.toString(),w=this.getSeqFromServer(g,b,p,l,o);this.inFlight.set(t,w);const x=await w;return this.checkSocket(i,s,g),this.inFlight.delete(t),{seq:x,refSeq:f}}async getSeqFromServer(e,t,n,r,a){const i=await this.fetch(e,t);if(!i.ok){let e;try{e=await i.text()}catch{e=""}throw new Error(`getSequence failed: ${i.status} (${i.statusText})${e?` (${e})`:""}`)}const o=await i.text();return n.addSequence({sequence:o,start:r,stop:a}),o}async getRefNameAliases(e){const{assemblyManager:t}=n.getSession(this.clientStore);if(!t.get(e))throw new Error(`Could not find assembly with name "${e}"`);const r=this.clientStore.getInternetAccount(e),{baseURL:a}=r,i=new URL("refSeqs",a),o=new URLSearchParams({assembly:e});i.search=o.toString();const s=i.toString(),l=await this.fetch(r,s);if(!l.ok){let e;try{e=await l.text()}catch{e=""}throw new Error(`getRefNameAliases failed: ${l.status} (${l.statusText})${e?` (${e})`:""}`)}return(await l.json()).map((e=>({refName:e.name,aliases:[e._id,...e.aliases],uniqueId:`alias-${e._id}`})))}async getRegions(e){const{assemblyManager:t}=n.getSession(this.clientStore);if(!t.get(e))throw new Error(`Could not find assembly with name "${e}"`);const r=this.clientStore.getInternetAccount(e),{baseURL:a}=r,i=new URL("refSeqs",a),o=new URLSearchParams({assembly:e});i.search=o.toString();const s=i.toString(),l=await this.fetch(r,s);if(!l.ok){let e;try{e=await l.text()}catch{e=""}throw new Error(`getRegions failed: ${l.status} (${l.statusText})${e?` (${e})`:""}`)}return(await l.json()).map((e=>({refName:e.name,start:0,end:e.length})))}getAssemblies(e){const{assemblyManager:t}=n.getSession(this.clientStore);return t.assemblies.filter((t=>{const n=r.getConf(t,["sequence","metadata"]);return!(!(n&&n.apollo&&n.internetAccountConfigId)||e&&n.internetAccountConfigId!==e)}))}async submitChange(e,t={}){const{internetAccountId:n}=t,r=this.clientStore.getInternetAccount("assembly"in e?e.assembly:void 0,n),{baseURL:a}=r,i=new URL("changes",a).href,o=await this.fetch(r,i,{method:"POST",body:JSON.stringify(e.toJSON()),headers:{"Content-Type":"application/json"}});if(!o.ok){const e=await df(o,"submitChange failed");throw new Error(e)}const s=new nr.ValidationResultSet;return o.ok||(s.ok=!1),s}}class Ug extends qg{async getFeatures(){return[[],[]]}async getSequence(e){const{assemblyName:t,end:n,refName:r,start:a}=e,i=this.clientStore.assemblies.get(t);if(!i)return{seq:"",refSeq:r};const o=i.refSeqs.get(r);return o?{seq:o.getSequence(a,n),refSeq:r}:{seq:"",refSeq:r}}async getRefNameAliases(e){const t=this.clientStore.assemblies.get(e),n=[];if(!t)return n;for(const[,e]of t.refSeqs)n.push({refName:e.name,aliases:[e._id],uniqueId:`alias-${e._id}`});return n}async getRegions(e){const t=this.clientStore.assemblies.get(e);if(!t)return[];const n=[];for(const[,r]of t.refSeqs)n.push({assemblyName:e,refName:r.name,start:r.sequence[0].start,end:r.sequence[0].stop});return n}getAssemblies(){const{assemblyManager:e}=n.getSession(this.clientStore);return e.assemblies.filter((e=>{const t=r.getConf(e,["sequence","metadata"]);return Boolean(t&&t.apollo&&!t.file&&!t.internetAccountConfigId)}))}async submitChange(e,t={}){return new nr.ValidationResultSet}async searchFeatures(e,t){return[]}}class zg extends qg{async loadAssembly(e){const{assemblyManager:t}=n.getSession(this.clientStore),a=t.get(e);if(!a)throw new Error(`Assembly ${e} not found`);const{file:i}=r.getConf(a,["sequence","metadata"]),o=require("node:fs");return cf(e,await o.promises.readFile(i,"utf8"),this.clientStore)}async getAssembly(e){let t=this.clientStore.assemblies.get(e);return t||(t=await this.loadAssembly(e)),t}async getRefNameAliases(e){const t=await this.getAssembly(e),n=[];for(const[,e]of t.refSeqs)n.push({refName:e.name,aliases:[e._id],uniqueId:`alias-${e._id}`});return n}async getFeatures(e){return await this.getAssembly(e.assemblyName),[[],[]]}async getSequence(e){const{assemblyName:t,end:n,refName:r,start:a}=e,i=(await this.getAssembly(t)).refSeqs.get(r);if(!i)throw new Error(`refSeq ${r} not found in client data store`);return{seq:i.getSequence(a,n),refSeq:r}}async getRegions(e){const t=await this.getAssembly(e),n=[];for(const[,r]of t.refSeqs)n.push({assemblyName:e,refName:r.name,start:r.sequence[0].start,end:r.sequence[0].stop});return n}getAssemblies(){const{assemblyManager:e}=n.getSession(this.clientStore);return e.assemblies.filter((e=>{const t=r.getConf(e,["sequence","metadata"]);return Boolean(t&&t.apollo&&!t.internetAccountConfigId&&t.file)}))}async submitChange(e){if(!z.isAssemblySpecificChange(e))throw new Error(`Cannot use this type of change with local file: "${e.typeName}"`);const{assemblyManager:t}=n.getSession(this.clientStore),a=t.get(e.assembly);if(!a)throw new Error(`Could not find assembly with name "${e.assembly}"`);const{file:i}=r.getConf(a,["sequence","metadata"]),o=this.clientStore.assemblies.get(e.assembly);if(!o)throw new Error(`Could not find assembly in client with name "${e.assembly}"`);const s=new Set(...o.refSeqs.keys()),{checkResults:c}=this.clientStore;for(const e of c.values())s.has(e.refSeq)&&c.delete(e._id);const u=await uf(o);this.clientStore.addCheckResults(u);const d=[{directive:"gff-version",value:"3"}];for(const[,e]of o.refSeqs)d.push({directive:"sequence-region",value:`${e.name} 1 ${e.sequence[0].stop}`});for(const e of o.comments)d.push({comment:e});for(const[,e]of o.refSeqs){const{features:t}=e;for(const[,e]of t)d.push(nr.makeGFF3Feature(l.getSnapshot(e)))}for(const[,e]of o.refSeqs){const[t]=e.sequence,n=nr.splitStringIntoChunks(t.sequence,80).join("\n");d.push({id:e.name,description:e.description,sequence:n})}const f=lf.formatSync(d),h=require("node:fs");return await h.promises.writeFile(i,f,"utf8"),new nr.ValidationResultSet}async searchFeatures(e,t){return[]}}function Gg(e,t){const a=new AbortController,{signal:i}=a,o=e.evaluateExtensionPoint("Apollo-extendAnnotationFeature",Wp.AnnotationFeatureModel),c=function(e){return l.types.model("ClientDataStore",{typeName:l.types.optional(l.types.literal("Client"),"Client"),assemblies:l.types.map(Wp.ApolloAssembly),checkResults:l.types.map(Wp.CheckResult)}).views((t=>({get internetAccounts(){return l.getRoot(t).internetAccounts},get pluginConfiguration(){return l.getRoot(t).jbrowse.configuration.ApolloPlugin},getFeature:n=>l.resolveIdentifier(e,t.assemblies,n)}))).actions((e=>({addAssembly(t,n){const r={_id:t,refSeqs:{}};return n&&(r.backendDriverType=n),e.assemblies.put(r)},addFeature(t,n){const r=e.assemblies.get(t);if(!r)throw new Error(`Could not find assembly "${t}" to add feature "${n._id}"`);const a=r.refSeqs.get(n.refSeq);if(!a)throw new Error(`Could not find refSeq "${n.refSeq}" to add feature "${n._id}"`);a.features.put(n)},deleteFeature(t){const n=e.getFeature(t);if(!n)throw new Error(`Could not find feature "${t}" to delete`);const{_id:r,parent:a}=n;a?a.deleteChild(t):l.getParentOfType(n,Wp.ApolloRefSeq).deleteFeature(r)},deleteAssembly(t){e.assemblies.delete(t)},addCheckResult(t){e.checkResults.put(t)},addCheckResults(t){for(const n of t)e.checkResults.has(n._id)||e.checkResults.put(n)},deleteCheckResult(t){e.checkResults.delete(t)}}))).volatile((e=>({changeManager:new jg(e),collaborationServerDriver:new Bg(e),inMemoryFileDriver:new Ug(e),desktopFileDriver:n.isElectron?new zg(e):void 0,ontologyManager:mh.create()}))).actions((e=>({afterCreate(){l.addDisposer(e,s.autorun((()=>{const{ontologyManager:t,pluginConfiguration:n}=e,a=n.ontologies;for(const e of a||[]){const[n,a,i,o]=[r.readConfObject(e,"name"),r.readConfObject(e,"version"),r.readConfObject(e,"source"),r.readConfObject(e,"textIndexFields")];t.findOntology(n)||t.addOntology(n,a,i,{textIndexing:{indexFields:o}})}})))}}))).views((e=>({getBackendDriver(t){if(!t)return e.collaborationServerDriver;const a=n.getSession(e),{assemblyManager:i}=a,o=i.get(t);if(!o)return e.collaborationServerDriver;const{file:s,internetAccountConfigId:l}=r.getConf(o,["sequence","metadata"]);return n.isElectron&&s?e.desktopFileDriver:l?e.collaborationServerDriver:e.inMemoryFileDriver},getInternetAccount(t,a){if(!(t??a))throw new Error("Must provide either assemblyName or internetAccountId");let i=a;if(t&&!i){const{assemblyManager:a}=n.getSession(e),o=a.get(t);if(!o)throw new Error(`No assembly found with name ${t}`);({internetAccountConfigId:i}=r.getConf(o,["sequence","metadata"]))}const{internetAccounts:o}=e,s=o.find((e=>e.internetAccountId===i));if(!s)throw new Error(`No InternetAccount found with config id ${a}`);return s}}))).actions((e=>({loadFeatures:l.flow((function*(t){for(const n of t){const t=e.getBackendDriver(n.assemblyName);if(!t)return;const[r,a]=yield t.getFeatures(n);if(0===r.length)continue;const{assemblyName:i,refName:o}=n;let s=e.assemblies.get(i);s||(s=e.assemblies.put({_id:i,refSeqs:{}}));const[l]=r;let c=s.refSeqs.get(l.refSeq);c||(c=s.refSeqs.put({_id:l.refSeq,name:o,features:{}}));for(const e of r)c.features.has(e._id)||c.features.put(e);e.addCheckResults(a)}})),loadRefSeq:l.flow((function*(t){for(const n of t){const t=e.getBackendDriver(n.assemblyName);if(!t)return;const{refSeq:r,seq:a}=yield t.getSequence(n),{assemblyName:i,end:o,refName:s,start:l}=n;let c=e.assemblies.get(i);c||(c=e.assemblies.put({_id:i,refSeqs:{}}));let u=c.refSeqs.get(r);u||(u=c.refSeqs.put({_id:r,name:s,sequence:[]})),u.addSequence({start:l,stop:o,sequence:a})}}))})))}(o),u=t.props({apolloDataStore:l.types.optional(c,{typeName:"Client"}),apolloSelectedFeature:l.types.safeReference(o),jobsManager:l.types.optional(Pg,{})}).extend((()=>{const e=s.observable.array([]);return{views:{get collaborators(){return e}},actions:{addOrUpdateCollaborator(t){const n=e.find((e=>e.id===t.id));n?n.locations=t.locations:e.push(t)}}}})).actions((e=>({apolloSetSelectedFeature(t){e.apolloSelectedFeature=t},addApolloTrackConfig(t,n){const a=`apollo_track_${t.name}`;e.tracks.some((e=>e.trackId===a))||e.addTrackConf({type:"ApolloTrack",trackId:a,name:`Annotations (${r.getConf(t,"displayName")||t.name})`,assemblyNames:[t.name],textSearching:{textSearchAdapter:{type:"ApolloTextSearchAdapter",trackId:a,assemblyNames:[t.name],textSearchAdapterId:`apollo_search_${t.name}`,...n?{baseURL:{uri:n,locationType:"UriLocation"}}:{}}},displays:[{type:"LinearApolloDisplay",displayId:`${a}-LinearApolloDisplay`},{type:"SixFrameFeatureDisplay",displayId:`${a}-SixFrameFeatureDisplay`}]})},broadcastLocations(){const{internetAccounts:t}=l.getRoot(e),n=[];for(const t of e.views){if("LinearGenomeView"!==t.type)return;const e=t;if(e.initialized){const{dynamicBlocks:t}=e;t.forEach((e=>{if(void 0!==e.regionNumber){const{assemblyName:t,end:r,refName:a,start:i}=e;n.push({assemblyName:t,refName:a,start:i,end:r})}}))}}if(0===n.length){for(const e of t)"baseURL"in e&&e.postUserLocation([]);return}const r=[];for(const e of t)if("baseURL"in e){for(const e of n)r.push({assemblyId:e.assemblyName,refSeq:e.refName,start:e.start,end:e.end});e.postUserLocation(r)}}}))).actions((e=>({afterCreate:l.flow((function*(){const t=l.getSnapshot(e),{id:n,name:r}=t;l.applySnapshot(e,{name:r,id:n});const{internetAccounts:a,jbrowse:o}=l.getRoot(e);s.autorun((()=>{const t=[];for(const n of e.views){if("LinearGenomeView"!==n.type)return;const e=n;if(e.initialized){const{dynamicBlocks:n}=e;n.forEach((e=>{if(void 0!==e.regionNumber){const{assemblyName:n,end:r,refName:a,start:i}=e;t.push({assemblyName:n,refName:a,start:i,end:r})}}))}}if(0===t.length){for(const e of a)"baseURL"in e&&e.postUserLocation([]);return}const n=[];for(const e of a)if("baseURL"in e){for(const e of t)n.push({assemblyId:e.assemblyName,refSeq:e.refName,start:e.start,end:e.end});e.postUserLocation(n)}}),{name:"ApolloSession"});for(const n of a){if("ApolloInternetAccount"!==n.type)continue;const{baseURL:r}=n,a=new URL("jbrowse/config.json",r).href,s=n.getFetcher({locationType:"UriLocation",uri:a});let c,u;try{c=yield s(a,{signal:i})}catch(e){console.error(e);continue}if(c.ok){try{u=yield c.json()}catch(e){console.error(e);continue}l.applySnapshot(o,u),l.applySnapshot(e,t)}else{const e=yield df(c,"Failed to fetch assemblies");console.error(e)}}})),beforeDestroy(){a.abort("destroying session model")}}))).views((e=>{const t=e.getTrackActionMenuItems;return{getTrackActionMenuItems(n){if("ApolloTrack"===n.type||"ReferenceSequenceTrack"===n.type)return t?.(n);const a=r.readConfObject(n,"trackId");return a.endsWith("-sessionTrack")?[...t?.(n)??[],{label:"Save track to Apollo",onClick:async()=>{const{internetAccounts:t,jbrowse:r}=l.getRoot(e),i=l.getSnapshot(r);let o;o=nr.filterJBrowseConfig(i),0===Object.keys(o).length&&(o=void 0);const s={...l.getSnapshot(n),trackId:a.slice(0,a.length-13)};for(const n of t){if("ApolloInternetAccount"!==n.type)continue;const t=new nr.ImportJBrowseConfigChange({typeName:"ImportJBrowseConfigChange",oldJBrowseConfig:o,newJBrowseConfig:{...o,tracks:o?.tracks&&[...o.tracks,s]}}),{internetAccountId:r}=n;await e.apolloDataStore.changeManager.submit(t,{internetAccountId:r});const{notify:a}=e;a("Track added","success")}e.deleteTrackConf(n),r.addTrackConf(s)},icon:Mg}]:[...t?.(n)??[],{label:"Remove track from Apollo",onClick:async()=>{const{internetAccounts:t,jbrowse:r}=l.getRoot(e),i=l.getSnapshot(r);let o;o=nr.filterJBrowseConfig(i),0===Object.keys(o).length&&(o=void 0);const s=o?.tracks?.filter((e=>e.trackId!==a));for(const n of t){if("ApolloInternetAccount"!==n.type)continue;const t=new nr.ImportJBrowseConfigChange({typeName:"ImportJBrowseConfigChange",oldJBrowseConfig:o,newJBrowseConfig:{...o,tracks:s}}),{internetAccountId:r}=n;await e.apolloDataStore.changeManager.submit(t,{internetAccountId:r});const{notify:a}=e;a("Track removed","success")}e.deleteTrackConf(n),r.deleteTrackConf(n)},icon:Mg}]}}}));return l.types.snapshotProcessor(u,{postProcessor(e){e.apolloSelectedFeature=void 0;const t=Object.fromEntries(Object.entries(e.apolloDataStore.assemblies).filter((([,e])=>"InMemoryFileDriver"===e.backendDriverType)));return e.apolloDataStore={typeName:"Client",assemblies:t,checkResults:{}},e}})}const Hg={0:2,1:1,2:0},$g={3:0,4:1,5:2};function Jg(e,t){const a=e.getPlugin("LinearGenomeViewPlugin"),{BaseLinearDisplay:i}=a.exports;return i.named("SixFrameFeatureDisplay").props({type:l.types.literal("SixFrameFeatureDisplay"),configuration:r.ConfigurationReference(t),apolloRowHeight:20,detailsMinHeight:200,showStartCodons:!1,showStopCodons:!0,showIntronLines:!0}).volatile((()=>({apolloFeatureUnderMouse:void 0,apolloRowUnderMouse:void 0}))).views((e=>{const{configuration:t,renderProps:n}=e;return{renderProps:()=>({...n(),...k.getParentRenderProps(e),config:t.renderer})}})).views((e=>({get regions(){let t;try{({blockDefinitions:t}=e)}catch{return[]}return t.contentBlocks.map((({assemblyName:e,end:t,refName:n,start:r})=>({assemblyName:e,refName:n,start:r,end:t})))},regionCannotBeRendered(){const t=n.getContainingView(e);if(t&&t.bpPerPx>=200)return"Zoom in to see annotations"},get session(){return n.getSession(e)}}))).actions((e=>{let t=[];return{afterAttach(){l.addDisposer(e,s.autorun((()=>{const r=n.getSession(e);if(n.getContainingView(e).initialized){if(e.regionCannotBeRendered())return;const n=[],a=[];for(const r of e.blockDefinitions.contentBlocks)n.push(r.key),t.includes(r.key)||a.push(r);r.apolloDataStore.loadFeatures(a.map((({assemblyName:e,end:t,refName:n,start:r})=>({assemblyName:e,refName:n,start:r,end:t})))),r.apolloDataStore.loadRefSeq(a.map((({assemblyName:e,end:t,refName:n,start:r})=>({assemblyName:e,refName:n,start:r,end:t})))),t=n}}),{name:"SixFrameFeatureDisplay"}))}}})).views((e=>({get rendererTypeName(){return e.configuration.renderer.type},get changeManager(){return n.getSession(e).apolloDataStore.changeManager},get sequence(){const{regions:t}=e,r=n.getSession(e),a=new Map;for(const e of t){const t=r.apolloDataStore.assemblies.get(e.assemblyName),n=t?.getByRefName(e.refName),i=n?.getSequence(e.start,e.end);a.set(e.start,i??"")}return a},get features(){const{regions:t}=e,r=n.getSession(e),a=new Map;for(const e of t){const t=r.apolloDataStore.assemblies.get(e.assemblyName),n=t?.getByRefName(e.refName);let i=a.get(e.refName);i||(i=new Map,a.set(e.refName,i));for(const[t,r]of n?.features.entries()??new Map)e.start<r.end&&e.end>r.start&&i.set(t,r)}return a},get featuresMinMax(){const e={};for(const[t,n]of this.features||[]){let r,a;for(const[,e]of n)void 0===r&&({min:r}=e),void 0===a&&({max:a}=e),e.min<r&&({min:r}=e),e.max>a&&({max:a}=e);void 0!==r&&void 0!==a&&(e[t]=[r,a])}return e},get codonLayout(){const e=new Map;let t="",r=0;for(const[e,n]of this.sequence||[])n&&(t||(r=e),t+=n);for(let a=0;a<6;a++){const i=[],o=[],s=a in $g;let l,c,u;s?(l=(t.length+r)%3,c=($g[a]+l+3)%3,u=n.reverse(t).slice(c)):(l=3-r%3,c=(Hg[a]+l+3)%3,u=t.slice(c));for(let e=0;e<u.length;e+=3){const t=u.slice(e,e+3),a=s?n.reverse(n.revcom(t)):t,l=s?r+u.length-(3+e):r+e+c;n.defaultStarts.includes(a.toUpperCase())?i.push(l):n.defaultStops.includes(a.toUpperCase())&&o.push(l)}e.set(a,{starts:i,stops:o})}return e},get featureLayout(){const e=new Map;for(const[t,n]of this.features||[]){if(!n)continue;const r=this.featuresMinMax[t];if(!r)continue;const[a,i]=r,o=[],s=6;for(let t=0;t<s;t++){const t=o.length;o[t]=Array.from({length:i-a}),e.set(t,[])}for(const t of[...n.values()].sort(((e,t)=>{const{max:n,min:r}=e,{max:a,min:i}=t;return r-i||n-a})))for(const[,n]of t.children??new Map)if("mRNA"===n.type)for(const[,r]of n.children||new Map){let a;if("CDS"===r.type){let i;r.discontinuousLocations.length>0?({discontinuousLocations:i}=r):i=[r];for(const r of i){const i=r.start+3,o=r.end-3;for(const[s,{stops:l}]of this.codonLayout)if(s<3&&1===t.strand||s>=3&&-1===t.strand){const t=l.filter((e=>e>=i&&e<=o));if(0===t.length){a=s;const t=e.get(a);t?.push([n.featureId,r]);break}}}}}}return e},getAssemblyId(t){const{assemblyManager:r}=n.getSession(e),a=r.get(t);if(!a)throw new Error(`Could not find assembly named ${t}`);return a.name},get selectedFeature(){return n.getSession(e).apolloSelectedFeature},get setSelectedFeature(){return n.getSession(e).apolloSetSelectedFeature}}))).actions((e=>({setSelectedFeature(t){n.getSession(e).apolloSetSelectedFeature(t)},setApolloFeatureUnderMouse(t){e.apolloFeatureUnderMouse=t},setApolloRowUnderMouse(t){e.apolloRowUnderMouse=t},toggleShowStartCodons(){e.showStartCodons=!e.showStartCodons},toggleShowStopCodons(){e.showStopCodons=!e.showStopCodons},toggleShowIntronLines(){e.showIntronLines=!e.showIntronLines}}))).views((e=>({get highestRow(){return 0===e.featureLayout.size?0:Math.max(...e.featureLayout.keys())},get featuresHeight(){return(this.highestRow+1)*e.apolloRowHeight},get detailsHeight(){return Math.max(e.detailsMinHeight,e.height-this.featuresHeight)},trackMenuItems:()=>[{label:"Show start codons",type:"checkbox",checked:e.showStartCodons,onClick:()=>{e.toggleShowStartCodons()}},{label:"Show stop codons",type:"checkbox",checked:e.showStopCodons,onClick:()=>{e.toggleShowStopCodons()}},{label:"Show intron lines",type:"checkbox",checked:e.showIntronLines,onClick:()=>{e.toggleShowIntronLines()}}]})))}var Vg=r.ConfigurationSchema("ApolloRefNameAliasAdapter",{assemblyId:{type:"string",defaultValue:""}},{explicitlyTyped:!0});const Wg="undefined"==typeof sessionStorage;class Kg extends x.BaseAdapter{refNameAliases;async getRefNameAliases(){const e=r.readConfObject(this.config,"assemblyId");if(!Wg){const t=this.pluginManager?.rootModel?.session?.apolloDataStore;if(!t)throw new Error("No Apollo data store found");const n=t.getBackendDriver(e);return await n.getRefNameAliases(e)}const t=await new Promise(((t,n)=>{const r=setTimeout((()=>{n(new Error("timeout"))}),2e4),a=Yh(),i=e=>{const n=e.data;(function(e){return"object"==typeof e&&null!==e&&"apollo"in e&&!0===e.apollo&&"refNameAliases"in e})(n)&&n.messageId===a&&(clearTimeout(r),removeEventListener("message",i),t(n.refNameAliases))};addEventListener("message",i),rpcServer.emit("apollo",{apollo:!0,method:"getRefNameAliases",assembly:e,messageId:a})}));return this.refNameAliases=t,t}async freeResources(){}}const Yg="WorkerGlobalScope"in globalThis;for(const[e,t]of Object.entries(nr.changes))z.changeRegistry.registerChange(e,t);const Zg=new nr.CDSCheck;z.checkRegistry.registerCheck(Zg.name,Zg),nr.validationRegistry.registerValidation(new nr.CoreValidation),nr.validationRegistry.registerValidation(new nr.ParentChildValidation),e.default=class extends C.default{name="ApolloPlugin";version="0.1.21";configurationSchema=Lp;install(e){!function(e){e.addAdapterType((()=>new q.default({name:"ApolloSequenceAdapter",configSchema:kp,adapterMetadata:{category:void 0,hiddenFromGUI:!0,description:void 0},AdapterClass:Sp})))}(e),function(e){e.addAdapterType((()=>new q.default({name:"ApolloRefNameAliasAdapter",configSchema:Vg,adapterMetadata:{category:void 0,hiddenFromGUI:!0,description:void 0},AdapterClass:Kg})))}(e),function(e){e.addTextSearchAdapterType((()=>new a.TextSearchAdapterType({name:"ApolloTextSearchAdapter",displayName:"Apollo text search adapter",configSchema:Fp,AdapterClass:Op,description:"Apollo Text Search adapter"})))}(e),e.addWidgetType((()=>{const e=r.ConfigurationSchema("ApolloFeatureDetailsWidget",{});return new a.WidgetType({name:"ApolloFeatureDetailsWidget",heading:"Apollo feature details",configSchema:e,stateModel:tm,ReactComponent:Vp})})),e.addWidgetType((()=>{const e=r.ConfigurationSchema("ApolloTranscriptDetails",{});return new a.WidgetType({name:"ApolloTranscriptDetails",heading:"Apollo transcript details",configSchema:e,stateModel:nm,ReactComponent:fm})})),e.addTrackType((()=>{const t=r.ConfigurationSchema("ApolloTrack",{adapter:""},{baseConfiguration:a.createBaseTrackConfig(e),explicitIdentifier:"trackId"});return new a.TrackType({name:"ApolloTrack",configSchema:t,stateModel:a.createBaseTrackModel(e,"ApolloTrack",t)})})),e.addInternetAccountType((()=>new a.InternetAccountType({name:"ApolloInternetAccount",configSchema:Wl,stateModel:gp(Wl)}))),e.addDisplayType((()=>new a.DisplayType({name:"LinearApolloDisplay",configSchema:hm,stateModel:_g(0,hm),trackType:"ApolloTrack",viewType:"LinearGenomeView",ReactComponent:Fg}))),e.addDisplayType((()=>{const t=function(e){const t=e.getPlugin("LinearGenomeViewPlugin"),{baseLinearDisplayConfigSchema:n}=t.exports;return r.ConfigurationSchema("SixFrameFeatureDisplay",{renderer:Cp,height:{type:"number",defaultValue:120}},{baseConfiguration:n,explicitlyTyped:!0})}(e),n=function(e){const t=e.getPlugin("LinearGenomeViewPlugin");if(!t)throw new Error("LinearGenomeView plugin not found");const{BaseLinearDisplayComponent:n}=t.exports;return p.observer((function({model:e,...t}){const{classes:r}=Ig(),{height:a,selectedFeature:i}=e;let{detailsHeight:o}=e;return i||(o=0),L.default.createElement("div",{style:{height:e.height}},L.default.createElement("div",{className:r.shading,style:{height:a-o}},L.default.createElement(n,{model:e,...t})),L.default.createElement("div",{className:"testTrackLines"},L.default.createElement(Ng,{model:e})))}))}(e);return new a.DisplayType({name:"SixFrameFeatureDisplay",configSchema:t,stateModel:Jg(e,t),trackType:"ApolloTrack",viewType:"LinearGenomeView",ReactComponent:n})})),e.addRendererType((()=>new Rp({name:"ApolloSixFrameRenderer",ReactComponent:Ap,configSchema:Cp,pluginManager:e}))),e.addToExtensionPoint("Core-extendSession",Gg.bind(this,e)),e.addToExtensionPoint("Core-extendPluggableElement",(e=>{if("LinearGenomeView"===e.name){const{stateModel:t}=e,r=t.views((e=>{const t=e.rubberBandMenuItems;return{rubberBandMenuItems:()=>[...t(),{label:"Add new feature",icon:Vl,onClick:()=>{const t=n.getSession(e),{leftOffset:r,rightOffset:a}=e,i=e.getSelectedRegions(r,a);t.queueDialog((e=>[Sh,{session:t,handleClose:()=>{e()},region:i[0],changeManager:t.apolloDataStore.changeManager}]))}}]}}));e.stateModel=r}return e})),e.addToExtensionPoint("Core-extendPluggableElement",Dp),Yg||e.addToExtensionPoint("Core-extendWorker",(t=>"on"in t&&t.on?(t.on("apollo",(async n=>{if("object"!=typeof(r=n)||null===r||!("apollo"in r)||!0!==r.apollo)return;var r;const{apollo:a,messageId:i,method:o}=n;switch(o){case"getSequence":{const{region:r}=n,{assemblyName:o}=r,s=e.rootModel?.session?.apolloDataStore;if(!s)break;const l=s.getBackendDriver(o),{seq:c}=await l.getSequence(r);t.workers[0].postMessage({apollo:a,messageId:i,sequence:c});break}case"getRegions":{const{assembly:r}=n,o=e.rootModel?.session?.apolloDataStore;if(!o)break;const s=o.getBackendDriver(r),l=await s.getRegions(r);t.workers[0].postMessage({apollo:a,messageId:i,regions:l});break}case"getRefNameAliases":{const{assembly:r}=n,o=e.rootModel?.session?.apolloDataStore;if(!o)break;const s=o.getBackendDriver(r),l=await s.getRefNameAliases(r);t.workers[0].postMessage({apollo:a,messageId:i,refNameAliases:l});break}}})),t):t))}configure(e){n.isAbstractMenuManager(e.rootModel)&&(e.rootModel.appendToMenu("Apollo",{label:"Download GFF3",onClick:e=>{e.queueDialog((t=>[Nh,{session:e,handleClose:()=>{t()}}]))}}),e.rootModel.appendToMenu("Apollo",{label:"Manage Checks",onClick:e=>{e.queueDialog((t=>[Oh,{session:e,handleClose:()=>{t()}}]))}}),e.rootModel.appendToMenu("Apollo",{label:"View Change Log",onClick:e=>{e.queueDialog((t=>[Qh,{session:e,handleClose:()=>{t()}}]))}}),e.rootModel.appendToMenu("Apollo",{label:"Open local GFF3 file",onClick:e=>{e.queueDialog((t=>[Zh,{session:e,handleClose:()=>{t()},inMemoryFileDriver:e.apolloDataStore.inMemoryFileDriver}]))}}),e.rootModel.appendToMenu("Apollo",{label:"View check results",onClick:e=>{e.queueDialog((t=>[rp,{session:e,handleClose:()=>{t()}}]))}}),e.rootModel.appendToMenu("Apollo",{label:"Log out",onClick:e=>{e.queueDialog((t=>[Th,{session:e,handleClose:()=>{t()}}]))}}))}},Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
2
2
|
//# sourceMappingURL=jbrowse-plugin-apollo.umd.production.min.js.map
|