loom-browser 0.0.13 → 0.0.14

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/loom.min.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(A,g){"object"==typeof exports&&"undefined"!=typeof module?g(exports):"function"==typeof define&&define.amd?define(["exports"],g):g((A="undefined"!=typeof globalThis?globalThis:A||self).loom={})}(this,function(A){"use strict";async function g(A){return"string"==typeof A?A:A()}function I(A){return A.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&")}function t(A){return new RegExp("^"+A.split(/\*+/).map(I).join(".*")+"$")}function e(A,g){return t(A).test(g)}class C{constructor(A){var g;if(this.hostTokens=new Map,this.hostHeaders=new Map,(null==A?void 0:A.oauthToken)&&(null==A?void 0:A.basicAuth))throw new Error("CredentialStore: oauthToken and basicAuth are mutually exclusive. Use AuthProviderChain for mixed strategies.");this.globalToken=null==A?void 0:A.oauthToken,this.basicAuth=null==A?void 0:A.basicAuth,this.apiKey=null==A?void 0:A.apiKey,this.globalHeaders=(null==A?void 0:A.headers)?{...A.headers}:{},this.withCredentials=null!==(g=null==A?void 0:A.withCredentials)&&void 0!==g&&g}setOauthToken(A,g){g?this.hostTokens.set(g,A):this.globalToken=A}setBasicAuth(A){this.basicAuth=A}setApiKey(A){this.apiKey=A}setHeaders(A,g){var I;g?this.hostHeaders.set(g,{...null!==(I=this.hostHeaders.get(g))&&void 0!==I?I:{},...A}):Object.assign(this.globalHeaders,A)}async getCredentials(A){var I;const t=function(A){try{return new URL(A).host}catch(A){return}}(A),e={};let C=!1;const i=null!==(I=t?this.findMatchingValue(this.hostTokens,t):void 0)&&void 0!==I?I:this.globalToken;if(i?(e.Authorization=`Bearer ${await g(i)}`,e["Cache-Control"]="no-cache",C=!0):this.basicAuth&&(e.Authorization=`Basic ${btoa(`${this.basicAuth.username}:${this.basicAuth.password}`)}`,C=!0),Object.keys(this.globalHeaders).length>0&&(Object.assign(e,this.globalHeaders),C=!0),t){const A=this.findMatchingValue(this.hostHeaders,t);A&&(Object.assign(e,A),C=!0)}if(this.apiKey&&(e["X-API-Key"]=this.apiKey,C=!0),C)return{headers:e,withCredentials:this.withCredentials||void 0}}findMatchingValue(A,g){for(const[I,t]of A)if(!I.includes("*")&&I===g)return t;for(const[I,t]of A)if(I.includes("*")&&e(I,g))return t}}function i(A,g,I){const t=null==g?void 0:g.headers;let e;if(t instanceof Headers)e={...I.headers},t.forEach((A,g)=>{e[g]=A});else if(Array.isArray(t)){e={...I.headers};for(const[A,g]of t)e[A]=g}else e={...I.headers,...t};let C=A;return I.resolvedUrl&&(C="string"==typeof A?I.resolvedUrl:A instanceof URL?new URL(I.resolvedUrl):new Request(I.resolvedUrl,A)),{fetchTarget:C,fetchInit:{...g,headers:e,credentials:I.withCredentials?"include":null==g?void 0:g.credentials}}}function B(A,g){return async(I,t)=>{const e="string"==typeof I?I:I instanceof URL?I.toString():I.url,C=await A.getCredentials(e);if(!C)return globalThis.fetch(I,t);const{fetchTarget:B,fetchInit:Q}=i(I,t,C),o=await globalThis.fetch(B,Q);if((401===o.status||403===o.status)&&(null==g?void 0:g.onAuthChallenge)){if(await g.onAuthChallenge(e,o)){const g=await A.getCredentials(e);if(!g)return o;const{fetchTarget:C,fetchInit:B}=i(I,t,g);return globalThis.fetch(C,B)}}return o}}function Q(A){if(!A.oauthToken&&!A.headers&&!A.withCredentials)return;return B(new C({oauthToken:A.oauthToken,headers:A.headers,withCredentials:A.withCredentials}))}function o(A){return"match"in A&&"provider"in A}function s(A){return A.includes("googleapis")&&!A.includes("urlshortener")||E(A)||a(A)}function E(A){return A.startsWith("gs://")||A.startsWith("https://www.googleapis.com/storage")||A.startsWith("https://storage.cloud.google.com")||A.startsWith("https://storage.googleapis.com")}function a(A){return A.indexOf("drive.google.com")>=0||A.indexOf("www.googleapis.com/drive")>0}function r(A){return A.indexOf("X-Goog-Signature")>-1}function n(A){let{bucket:g,object:I}=h(A);I=l(I);const t=A.indexOf("?");return`https://storage.googleapis.com/storage/v1/b/${g}/o/${I}${t>0?A.substring(t)+"&alt=media":"?alt=media"}`}function h(A){let g,I;if(A.startsWith("gs://")){const t=A.indexOf("/",5);if(t>=0){g=A.substring(5,t);const e=A.indexOf("?");I=e<0?A.substring(t+1):A.substring(t+1,e)}}else if(A.startsWith("https://storage.googleapis.com")||A.startsWith("https://storage.cloud.google.com")){const t=A.indexOf("/v1/b/",8);if(t>0){const e=A.indexOf("/o/",t);if(e>0){const C=A.indexOf("?",e);g=A.substring(t+6,e),I=C>0?A.substring(e+3,C):A.substring(e+3)}}else{const t=A.indexOf("/",8),e=A.indexOf("/",t+1),C=A.indexOf("?",e);e>0&&(g=A.substring(t+1,e),I=C<0?A.substring(e+1):A.substring(e+1,C))}}else if(A.startsWith("https://www.googleapis.com/storage/v1/b")){const t=A.indexOf("/v1/b/",8),e=A.indexOf("/o/",t);if(e>0){const C=A.indexOf("?",e);g=A.substring(t+6,e),I=C>0?A.substring(e+3,C):A.substring(e+3)}}if(g&&I)return{bucket:g,object:I};throw new Error(`Unrecognized Google Storage URI: ${A}`)}const c=new Map([["!","%21"],["#","%23"],["$","%24"],["%","%25"],["&","%26"],["'","%27"],["(","%28"],[")","%29"],["*","%2A"],["+","%2B"],[",","%2C"],["/","%2F"],[":","%3A"],[";","%3B"],["=","%3D"],["?","%3F"],["@","%40"],["[","%5B"],["]","%5D"],[" ","%20"]]);function l(A){let g="";for(const I of A){const A=c.get(I);g+=null!=A?A:I}return g}function d(A){const g=D(A);return g?`https://www.googleapis.com/drive/v3/files/${g}?alt=media&supportsTeamDrives=true`:A}function D(A){if(A.includes("/open?id=")){const g=A.indexOf("/open?id=")+9,I=A.indexOf("&");if(g>0&&I>g)return A.substring(g,I);if(g>0)return A.substring(g)}else{if(A.includes("/file/d/")){const g=A.indexOf("/file/d/")+8,I=A.lastIndexOf("/");return A.substring(g,I)}if(A.startsWith("https://www.googleapis.com/drive")){let g=A.indexOf("/files/");const I=A.indexOf("?");if(g>0)return g+=7,I>0?A.substring(g,I):A.substring(g)}}throw new Error(`Unknown Google Drive URL format: ${A}`)}function u(A){return!E(A)||r(A)||A.includes("/storage/v1/b/")?A:n(A)}function w(A,g){if(A.includes("key="))return A;const I=A.includes("?")?"&":"?";return`${A}${I}key=${g}`}class y{constructor(){this._initialized=!1}init(A){var g,I,t;this._config=A;const e=null===(I=null===(g=globalThis.google)||void 0===g?void 0:g.accounts)||void 0===I?void 0:I.oauth2;if(!(null==e?void 0:e.initTokenClient))throw new Error("Google Identity Services library not loaded. Include the GIS script tag.");this._tokenClient=e.initTokenClient({client_id:A.clientId,scope:null!==(t=A.scope)&&void 0!==t?t:"https://www.googleapis.com/auth/userinfo.profile",hint:A.hint,hosted_domain:A.hostedDomain,callback:A=>{var g,I,t;if(A.error)null===(g=this._pendingReject)||void 0===g||g.call(this,new Error(`Google auth error: ${A.error}`));else{const g=null!==(I=A.expires_in)&&void 0!==I?I:3600;this._tokenResponse={access_token:A.access_token,expires_at:Date.now()+1e3*g},null===(t=this._pendingResolve)||void 0===t||t.call(this,A.access_token)}this._pendingResolve=void 0,this._pendingReject=void 0}}),this._initialized=!0}get config(){return this._config}isInitialized(){return this._initialized}getAccessToken(A){if(!this._tokenClient)throw new Error("GoogleAuthManager not initialized. Call init() first.");const g=this.getCurrentAccessToken();return g?Promise.resolve(g):new Promise((g,I)=>{this._pendingResolve=g,this._pendingReject=I,this._tokenClient.requestAccessToken(A?{scope:A}:void 0)})}getCurrentAccessToken(){if(this._tokenResponse){if(!(Date.now()>=this._tokenResponse.expires_at))return this._tokenResponse.access_token;this._tokenResponse=void 0}}signOut(){this._tokenResponse=void 0}}class f{createCanvas(A,g){const I=document.createElement("canvas");I.width=A,I.height=g;const t=I.getContext("2d");return{canvas:I,ctx:t}}get devicePixelRatio(){return"undefined"!=typeof window&&window.devicePixelRatio||1}}const S=new f;function k(A,g){return[{label:"Set track height",action:async()=>{const I=await g.promptInput("Track height (px)",A.height);if(null!==I){const t=parseInt(I,10);t>0&&!isNaN(t)&&g.setTrackHeight(A,t)}}},{label:"Remove track",action:()=>g.removeTrack(A)}]}function G(A,g){const I=[];return I.push({label:"Set data range",action:async()=>{const I=await g("Minimum",A.dataRange.min);if(null===I)return;const t=await g("Maximum",A.dataRange.max);if(null===t)return;const e=parseFloat(I),C=parseFloat(t);!isNaN(e)&&!isNaN(C)&&e<C&&A.setDataRange(e,C)}}),void 0!==A.logScale&&A.setLogScale&&I.push({label:"Log scale",type:"checkbox",checked:A.logScale,action:()=>A.setLogScale(!A.logScale)}),I.push({label:"Autoscale",type:"checkbox",checked:A.autoscale,action:()=>A.setAutoscale(!A.autoscale)}),I}function F(A,g){return[{label:"Edit name...",action:async()=>{var I;const t=await g.promptInput("ROI name",null!==(I=A.name)&&void 0!==I?I:"");null!==t&&g.updateROI(A.id,{name:t})}},{label:"Edit description...",action:async()=>{var I;const t=await g.promptInput("Description",null!==(I=A.description)&&void 0!==I?I:"");null!==t&&g.updateROI(A.id,{description:t})}},{label:"Set color...",action:async()=>{var I;const t=await g.promptInput("Color (CSS)",null!==(I=A.color)&&void 0!==I?I:"rgba(68, 134, 247, 0.15)");null!==t&&g.updateROI(A.id,{color:t})}},{label:"",type:"separator"},{label:"Go to region",action:()=>g.goToRegion({chr:A.chr,start:A.start,end:A.end})},{label:"Remove",action:()=>g.removeROI(A.id)}]}const N=BigInt(32);"getBigInt64"in DataView||(DataView.prototype.getBigInt64=function(A,g){return function(A,g,I){const t=Number(!!I),e=Number(!I);return BigInt(A.getInt32(g,I)*e+A.getInt32(g+4,I)*t)<<N|BigInt(A.getUint32(g,I)*t+A.getUint32(g+4,I)*e)}(this,A,g)}),"getBigUint64"in DataView||(DataView.prototype.getBigUint64=function(A,g){return function(A,g,I){const t=A.getUint32(g,I),e=A.getUint32(g+4,I),C=Number(!!I),i=Number(!I);return BigInt(t*i+e*C)<<N|BigInt(t*C+e*i)}(this,A,g)});class m{constructor(A,g={}){this.url=A,this.baseHeaders=g.headers??{},this.baseOverrides=g.overrides??{},this.fetchImplementation=g.fetch??((A,g)=>globalThis.fetch(A,g))}async fetch(A,g){const I=g=>new Error(`${function(A){return("object"==typeof A&&null!==A&&"message"in A&&"string"==typeof A.message?A.message:`${A}`).replace(/\.$/,"")}(g)} fetching ${A}`,{cause:g});let t;try{t=await this.fetchImplementation(A,g)}catch(e){if(!`${e}`.includes("Failed to fetch"))throw I(e);console.warn(`generic-filehandle: refetching ${A} to attempt to work around chrome CORS header caching bug`);try{t=await this.fetchImplementation(A,{...g,cache:"reload"})}catch(A){throw I(A)}}return t}async read(A,g,I={}){if(0===A)return new Uint8Array(0);if(Number.isNaN(A)||Number.isNaN(g))throw new TypeError(`read() called with NaN length or position (length=${A}, position=${g}). The index file may be corrupt.`);const{headers:t={},signal:e,overrides:C={}}=I;t.range=`bytes=${g}-${g+A-1}`;const i=await this.fetch(this.url,{...this.baseOverrides,...C,headers:{...this.baseHeaders,...t},method:"GET",redirect:"follow",mode:"cors",signal:e});if(!i.ok)throw new Error(`HTTP ${i.status} fetching ${this.url}`);if(200===i.status&&0===g||206===i.status){const g=i.headers.get("content-range"),I=/\/(\d+)$/.exec(g??"");I?.[1]&&(this._stat={size:parseInt(I[1],10)});const t=i.bytes?await i.bytes():new Uint8Array(await i.arrayBuffer());return t.byteLength<=A?t:t.subarray(0,A)}throw new Error(200===i.status?`${this.url} fetch returned status 200, expected 206`:`HTTP ${i.status} fetching ${this.url}`)}async readFile(A={}){const g="string"==typeof A?A:A.encoding,I="string"==typeof A?{}:A,{headers:t={},signal:e,overrides:C={}}=I,i=await this.fetch(this.url,{...this.baseOverrides,...C,headers:{...this.baseHeaders,...t},method:"GET",redirect:"follow",mode:"cors",signal:e});if(!i.ok)throw new Error(`HTTP ${i.status} fetching ${this.url}`);if("utf8"===g)return i.text();if(g)throw new Error(`unsupported encoding: ${g}`);return i.bytes?i.bytes():new Uint8Array(await i.arrayBuffer())}async stat(){if(!this._stat&&(await this.read(10,0),!this._stat))throw new Error(`unable to determine size of file at ${this.url}`);return this._stat}close(){return Promise.resolve()}}class p{readFile(){throw new Error("unimplemented")}read(){throw new Error("unimplemented")}close(){throw new Error("unimplemented")}}class R{}class U{constructor(){this.signals=new Set,this.abortController=new AbortController}addSignal(A=new R){if(this.signal.aborted)throw new Error("cannot add a signal, already aborted!");this.signals.add(A),A.aborted?this.handleAborted(A):"function"==typeof A.addEventListener&&A.addEventListener("abort",()=>{this.handleAborted(A)})}handleAborted(A){this.signals.delete(A),0===this.signals.size&&this.abortController.abort()}get signal(){return this.abortController.signal}abort(){this.abortController.abort()}}class M{constructor(){this.callbacks=new Set}addCallback(A=()=>{}){this.callbacks.add(A),this.currentMessage&&A(this.currentMessage)}callback(A){this.currentMessage=A;for(const g of this.callbacks)g(A)}}class L{constructor({fill:A,cache:g}){if("function"!=typeof A)throw new TypeError("must pass a fill function");if("object"!=typeof g)throw new TypeError("must pass a cache object");if("function"!=typeof g.get||"function"!=typeof g.set||"function"!=typeof g.delete)throw new TypeError("cache must implement get(key), set(key, val), and and delete(key)");this.cache=g,this.fillCallback=A}static isAbortException(A){return"AbortError"===A.name||"ERR_ABORTED"===A.code||"AbortError: aborted"===A.message||"Error: aborted"===A.message}evict(A,g){this.cache.get(A)===g&&this.cache.delete(A)}fill(A,g,I,t){const e=new U,C=new M;C.addCallback(t);const i={aborter:e,promise:this.fillCallback(g,e.signal,A=>{C.callback(A)}),settled:!1,statusReporter:C,get aborted(){return this.aborter.signal.aborted}};i.aborter.addSignal(I),i.aborter.signal.addEventListener("abort",()=>{i.settled||this.evict(A,i)}),i.promise.then(()=>{i.settled=!0},()=>{i.settled=!0,this.evict(A,i)}).catch(A=>{throw console.error(A),A}),this.cache.set(A,i)}static checkSinglePromise(A,g){function I(){if(g?.aborted)throw Object.assign(new Error("aborted"),{code:"ERR_ABORTED"})}return A.then(A=>(I(),A),A=>{throw I(),A})}has(A){return this.cache.has(A)}get(A,g,I,t){if(!I&&g instanceof AbortSignal)throw new TypeError("second get argument appears to be an AbortSignal, perhaps you meant to pass `null` for the fill data?");const e=this.cache.get(A);return e?e.aborted&&!e.settled?(this.evict(A,e),this.get(A,g,I,t)):e.settled?e.promise:(e.aborter.addSignal(I),e.statusReporter.addCallback(t),L.checkSinglePromise(e.promise,I)):(this.fill(A,g,I,t),L.checkSinglePromise(this.cache.get(A).promise,I))}delete(A){const g=this.cache.get(A);g&&(g.settled||g.aborter.abort(),this.cache.delete(A))}clear(){const A=this.cache.keys();let g=0;for(let I=A.next();!I.done;I=A.next())this.delete(I.value),g+=1;return g}}var J,K,b,v,Y,x,H,q,_,T,W,P,O,V,Z,z=function(A,g,I,t,e){if("m"===t)throw new TypeError("Private method is not writable");if("a"===t&&!e)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof g?A!==g||!e:!g.has(A))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===t?e.call(A,I):e?e.value=I:g.set(A,I),I},j=function(A,g,I,t){if("a"===I&&!t)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof g?A!==g||!t:!g.has(A))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===I?t:"a"===I?t.call(A):t?t.value:g.get(A)};class X extends Map{constructor(A={}){if(super(),J.add(this),K.set(this,0),b.set(this,new Map),v.set(this,new Map),Y.set(this,void 0),x.set(this,void 0),H.set(this,void 0),!(A.maxSize&&A.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof A.maxAge&&0===A.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");z(this,Y,A.maxSize,"f"),z(this,x,A.maxAge||Number.POSITIVE_INFINITY,"f"),z(this,H,A.onEviction,"f")}get __oldCache(){return j(this,v,"f")}get(A){if(j(this,b,"f").has(A)){const g=j(this,b,"f").get(A);return j(this,J,"m",W).call(this,A,g)}if(j(this,v,"f").has(A)){const g=j(this,v,"f").get(A);if(!j(this,J,"m",_).call(this,A,g))return j(this,J,"m",V).call(this,A,g),g.value}}set(A,g,{maxAge:I=j(this,x,"f")}={}){const t="number"==typeof I&&I!==Number.POSITIVE_INFINITY?Date.now()+I:void 0;return j(this,b,"f").has(A)?j(this,b,"f").set(A,{value:g,expiry:t}):j(this,J,"m",O).call(this,A,{value:g,expiry:t}),this}has(A){return j(this,b,"f").has(A)?!j(this,J,"m",_).call(this,A,j(this,b,"f").get(A)):!!j(this,v,"f").has(A)&&!j(this,J,"m",_).call(this,A,j(this,v,"f").get(A))}peek(A){return j(this,b,"f").has(A)?j(this,J,"m",P).call(this,A,j(this,b,"f")):j(this,v,"f").has(A)?j(this,J,"m",P).call(this,A,j(this,v,"f")):void 0}expiresIn(A){const g=j(this,b,"f").get(A)??j(this,v,"f").get(A);if(g)return g.expiry?g.expiry-Date.now():Number.POSITIVE_INFINITY}delete(A){var g;const I=j(this,b,"f").delete(A);return I&&z(this,K,(g=j(this,K,"f"),--g),"f"),j(this,v,"f").delete(A)||I}clear(){j(this,b,"f").clear(),j(this,v,"f").clear(),z(this,K,0,"f")}resize(A){if(!(A&&A>0))throw new TypeError("`maxSize` must be a number greater than 0");const g=[...j(this,J,"m",Z).call(this)],I=g.length-A;I<0?(z(this,b,new Map(g),"f"),z(this,v,new Map,"f"),z(this,K,g.length,"f")):(I>0&&j(this,J,"m",q).call(this,g.slice(0,I)),z(this,v,new Map(g.slice(I)),"f"),z(this,b,new Map,"f"),z(this,K,0,"f")),z(this,Y,A,"f")}evict(A=1){const g=A;if(!g||g<=0)return;const I=[...j(this,J,"m",Z).call(this)],t=Math.trunc(Math.min(g,Math.max(I.length-1,0)));t<=0||(j(this,J,"m",q).call(this,I.slice(0,t)),z(this,v,new Map(I.slice(t)),"f"),z(this,b,new Map,"f"),z(this,K,0,"f"))}*keys(){for(const[A]of this)yield A}*values(){for(const[,A]of this)yield A}*[(K=new WeakMap,b=new WeakMap,v=new WeakMap,Y=new WeakMap,x=new WeakMap,H=new WeakMap,J=new WeakSet,q=function(A){if("function"==typeof j(this,H,"f"))for(const[g,I]of A)j(this,H,"f").call(this,g,I.value)},_=function(A,g){return"number"==typeof g.expiry&&g.expiry<=Date.now()&&("function"==typeof j(this,H,"f")&&j(this,H,"f").call(this,A,g.value),this.delete(A))},T=function(A,g){if(!j(this,J,"m",_).call(this,A,g))return g.value},W=function(A,g){return g.expiry?j(this,J,"m",T).call(this,A,g):g.value},P=function(A,g){const I=g.get(A);return j(this,J,"m",W).call(this,A,I)},O=function(A,g){var I;j(this,b,"f").set(A,g),z(this,K,(I=j(this,K,"f"),++I),"f"),j(this,K,"f")>=j(this,Y,"f")&&(z(this,K,0,"f"),j(this,J,"m",q).call(this,j(this,v,"f")),z(this,v,j(this,b,"f"),"f"),z(this,b,new Map,"f"))},V=function(A,g){j(this,v,"f").delete(A),j(this,J,"m",O).call(this,A,g)},Z=function*(){for(const A of j(this,v,"f")){const[g,I]=A;if(!j(this,b,"f").has(g)){j(this,J,"m",_).call(this,g,I)||(yield A)}}for(const A of j(this,b,"f")){const[g,I]=A;j(this,J,"m",_).call(this,g,I)||(yield A)}},Symbol.iterator)](){for(const A of j(this,b,"f")){const[g,I]=A;j(this,J,"m",_).call(this,g,I)||(yield[g,I.value])}for(const A of j(this,v,"f")){const[g,I]=A;if(!j(this,b,"f").has(g)){j(this,J,"m",_).call(this,g,I)||(yield[g,I.value])}}}*entriesDescending(){let A=[...j(this,b,"f")];for(let g=A.length-1;g>=0;--g){const I=A[g],[t,e]=I;j(this,J,"m",_).call(this,t,e)||(yield[t,e.value])}A=[...j(this,v,"f")];for(let g=A.length-1;g>=0;--g){const I=A[g],[t,e]=I;if(!j(this,b,"f").has(t)){j(this,J,"m",_).call(this,t,e)||(yield[t,e.value])}}}*entriesAscending(){for(const[A,g]of j(this,J,"m",Z).call(this))yield[A,g.value]}get size(){if(!j(this,K,"f"))return j(this,v,"f").size;let A=0;for(const g of j(this,v,"f").keys())j(this,b,"f").has(g)||A++;return Math.min(j(this,K,"f")+A,j(this,Y,"f"))}get maxSize(){return j(this,Y,"f")}get maxAge(){return j(this,x,"f")}entries(){return this.entriesAscending()}forEach(A,g=this){for(const[I,t]of this.entriesAscending())A.call(g,t,I,this)}get[Symbol.toStringTag](){return"QuickLRU"}toString(){return`QuickLRU(${this.size}/${this.maxSize})`}[Symbol.for("nodejs.util.inspect.custom")](){return this.toString()}}function $(A){const g=[...A].sort((A,g)=>A.min!==g.min?A.min-g.min:A.max-g.max),I=[];let t=g[0];for(let A=1;A<g.length;A++){const e=g[A];e.min>t.max+1?(I.push(t),t=e):e.max>t.max&&(t={min:t.min,max:e.max})}return I.push(t),I}var AA={d:(A,g)=>{for(var I in g)AA.o(g,I)&&!AA.o(A,I)&&Object.defineProperty(A,I,{enumerable:!0,get:g[I]})},o:(A,g)=>Object.prototype.hasOwnProperty.call(A,g),r:A=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(A,"__esModule",{value:!0})}},gA={};AA.r(gA),AA.d(gA,{__wbg_Error_83742b46f01ce22d:()=>oA,__wbg_set_wasm:()=>GA,decompress_and_parse_bigwig:()=>IA,decompress_and_parse_summary:()=>tA,inflate_raw:()=>eA,inflate_raw_batch:()=>CA,inflate_raw_unknown_size:()=>iA,parse_bigwig_block:()=>BA,parse_summary_block:()=>QA});function IA(A,g,I,t,e,C){try{const s=SA.__wbindgen_add_to_stack_pointer(-16),E=DA(A,SA.__wbindgen_export),a=kA,r=dA(g,SA.__wbindgen_export),n=kA,h=dA(I,SA.__wbindgen_export),c=kA;SA.decompress_and_parse_bigwig(s,E,a,r,n,h,c,t,e,C);var i=aA().getInt32(s+0,!0),B=aA().getInt32(s+4,!0),Q=aA().getInt32(s+8,!0);if(aA().getInt32(s+12,!0))throw uA(Q);var o=sA(i,B).slice();return SA.__wbindgen_export2(i,1*B,1),o}finally{SA.__wbindgen_add_to_stack_pointer(16)}}function tA(A,g,I,t,e,C,i){try{const E=SA.__wbindgen_add_to_stack_pointer(-16),a=DA(A,SA.__wbindgen_export),r=kA,n=dA(g,SA.__wbindgen_export),h=kA,c=dA(I,SA.__wbindgen_export),l=kA;SA.decompress_and_parse_summary(E,a,r,n,h,c,l,t,e,C,i);var B=aA().getInt32(E+0,!0),Q=aA().getInt32(E+4,!0),o=aA().getInt32(E+8,!0);if(aA().getInt32(E+12,!0))throw uA(o);var s=sA(B,Q).slice();return SA.__wbindgen_export2(B,1*Q,1),s}finally{SA.__wbindgen_add_to_stack_pointer(16)}}function eA(A,g){try{const i=SA.__wbindgen_add_to_stack_pointer(-16),B=DA(A,SA.__wbindgen_export),Q=kA;SA.inflate_raw(i,B,Q,g);var I=aA().getInt32(i+0,!0),t=aA().getInt32(i+4,!0),e=aA().getInt32(i+8,!0);if(aA().getInt32(i+12,!0))throw uA(e);var C=sA(I,t).slice();return SA.__wbindgen_export2(I,1*t,1),C}finally{SA.__wbindgen_add_to_stack_pointer(16)}}function CA(A,g,I,t){try{const Q=SA.__wbindgen_add_to_stack_pointer(-16),o=DA(A,SA.__wbindgen_export),s=kA,E=dA(g,SA.__wbindgen_export),a=kA,r=dA(I,SA.__wbindgen_export),n=kA;SA.inflate_raw_batch(Q,o,s,E,a,r,n,t);var e=aA().getInt32(Q+0,!0),C=aA().getInt32(Q+4,!0),i=aA().getInt32(Q+8,!0);if(aA().getInt32(Q+12,!0))throw uA(i);var B=sA(e,C).slice();return SA.__wbindgen_export2(e,1*C,1),B}finally{SA.__wbindgen_add_to_stack_pointer(16)}}function iA(A){try{const C=SA.__wbindgen_add_to_stack_pointer(-16),i=DA(A,SA.__wbindgen_export),B=kA;SA.inflate_raw_unknown_size(C,i,B);var g=aA().getInt32(C+0,!0),I=aA().getInt32(C+4,!0),t=aA().getInt32(C+8,!0);if(aA().getInt32(C+12,!0))throw uA(t);var e=sA(g,I).slice();return SA.__wbindgen_export2(g,1*I,1),e}finally{SA.__wbindgen_add_to_stack_pointer(16)}}function BA(A,g,I){try{const i=SA.__wbindgen_add_to_stack_pointer(-16),B=DA(A,SA.__wbindgen_export),Q=kA;SA.parse_bigwig_block(i,B,Q,g,I);var t=aA().getInt32(i+0,!0),e=aA().getInt32(i+4,!0),C=sA(t,e).slice();return SA.__wbindgen_export2(t,1*e,1),C}finally{SA.__wbindgen_add_to_stack_pointer(16)}}function QA(A,g,I,t){try{const B=SA.__wbindgen_add_to_stack_pointer(-16),Q=DA(A,SA.__wbindgen_export),o=kA;SA.parse_summary_block(B,Q,o,g,I,t);var e=aA().getInt32(B+0,!0),C=aA().getInt32(B+4,!0),i=sA(e,C).slice();return SA.__wbindgen_export2(e,1*C,1),i}finally{SA.__wbindgen_add_to_stack_pointer(16)}}function oA(A,g){var I;return function(A){lA===cA.length&&cA.push(cA.length+1);const g=lA;return lA=cA[g],cA[g]=A,g}(Error((I=A,function(A,g){return fA+=g,fA>=yA&&(wA=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),wA.decode(),fA=g),wA.decode(hA().subarray(A,A+g))}(I>>>=0,g))))}function sA(A,g){return A>>>=0,hA().subarray(A/1,A/1+g)}let EA=null;function aA(){return(null===EA||!0===EA.buffer.detached||void 0===EA.buffer.detached&&EA.buffer!==SA.memory.buffer)&&(EA=new DataView(SA.memory.buffer)),EA}let rA=null;let nA=null;function hA(){return null!==nA&&0!==nA.byteLength||(nA=new Uint8Array(SA.memory.buffer)),nA}let cA=new Array(1024).fill(void 0);cA.push(void 0,null,!0,!1);let lA=cA.length;function dA(A,g){const I=g(4*A.length,4)>>>0;return(null!==rA&&0!==rA.byteLength||(rA=new Uint32Array(SA.memory.buffer)),rA).set(A,I/4),kA=A.length,I}function DA(A,g){const I=g(1*A.length,1)>>>0;return hA().set(A,I/1),kA=A.length,I}function uA(A){const g=function(A){return cA[A]}(A);return function(A){A<1028||(cA[A]=lA,lA=A)}(A),g}let wA=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});wA.decode();const yA=2146435072;let fA=0;let SA,kA=0;function GA(A){SA=A}let FA=null,NA=null;async function mA(){return FA||(NA||(NA=(async()=>{const A=await fetch("data:application/wasm;base64,AGFzbQEAAAABoAEUYAAAYAABf2ABfwBgAX8Bf2ACf38AYAJ/fwF/YAN/f38AYAN/f38Bf2ADf39/AX1gBH9/f38AYAR/f39/AX9gBX9/f39/AGAFf39/f38Bf2AGf39/f39/AGAGf39/f39/AX9gB39/f39/f38Bf2AIf39/f39/f38AYAh/f39/f39/fwF/YAp/f39/f39/f39/AGALf39/f39/f39/f38AAjUBFC4vaW5mbGF0ZV93YXNtX2JnLmpzHF9fd2JnX0Vycm9yXzgzNzQyYjQ2ZjAxY2UyMmQABQN1dAMPExIRCw0QBQoOAgcKBwQGBQQGBAkFBQkECQYLDQ0TEhAICwcHBgQGCQINAgYGCwMEDQYLBwUHAwUEBgUFDAICBgQCBQQFAwIBBQQCAgIEBAQGBg4CBwUKAgUEBQYEBwcAAwUFBAQEBQUFAgICAgQEBQAABAUBcAEgIAUDAQARBgkBfwFBgIDAAAsH+gELBm1lbW9yeQIAG2RlY29tcHJlc3NfYW5kX3BhcnNlX2JpZ3dpZwAhHGRlY29tcHJlc3NfYW5kX3BhcnNlX3N1bW1hcnkAIAtpbmZsYXRlX3JhdwAbEWluZmxhdGVfcmF3X2JhdGNoACIYaW5mbGF0ZV9yYXdfdW5rbm93bl9zaXplABwScGFyc2VfYmlnd2lnX2Jsb2NrADUTcGFyc2Vfc3VtbWFyeV9ibG9jawAzH19fd2JpbmRnZW5fYWRkX3RvX3N0YWNrX3BvaW50ZXIAYxFfX3diaW5kZ2VuX2V4cG9ydAA9El9fd2JpbmRnZW5fZXhwb3J0MgBUCSUBAEEBCx9HSE9wRTJGcU02F2BbO1xnRD4aKFBRTjgYYWk6alhdCraTAnTOJAIJfwF+IwBBEGsiASQAAkACQAJAAkACQAJAIABB9QFJDQACQCAAQcz/e00NAEEAIQAMBgsgAEELaiICQXhxIQNBACgCnJ9AIgRFDQRBHyEFAkAgAEH0//8HSw0AIANBJiACQQh2ZyIAa3ZBAXEgAEEBdGtBPmohBQtBACADayECAkAgBUECdEGAnMAAaigCACIGDQBBACEHQQAhAAwCC0EAIQcgA0EAQRkgBUEBdmsgBUEfRht0IQhBACEAA0ACQCAGIgYoAgRBeHEiCSADSQ0AIAkgA2siCSACTw0AIAYhByAJIQIgCQ0AQQAhAiAGIQAgBiEHDAQLIAYoAhQiCSAAIAkgBiAIQR12QQRxaigCECIGRxsgACAJGyEAIAhBAXQhCCAGRQ0CDAALCwJAAkACQAJAAkACQEEAKAKYn0AiBkEQIABBC2pB+ANxIABBC0kbIgNBA3YiAnYiAEEDcUUNACAAQX9zQQFxIAJqIghBA3QiA0GQncAAaiIAIANBmJ3AAGooAgAiAigCCCIHRg0BIAcgADYCDCAAIAc2AggMAgsgA0EAKAKgn0BNDQggAA0CQQAoApyfQCIARQ0IIABoQQJ0QYCcwABqKAIAIgYoAgRBeHEgA2shAiAGIQcDQAJAIAcoAhAiAA0AIAcoAhQiAA0AIAYoAhghBQJAAkACQCAGKAIMIgAgBkcNACAGQRRBECAGKAIUIgAbaigCACIHDQFBACEADAILIAYoAggiByAANgIMIAAgBzYCCAwBCyAGQRRqIAZBEGogABshCANAIAghCSAHIgBBFGogAEEQaiAAKAIUIgcbIQggAEEUQRAgBxtqKAIAIgcNAAsgCUEANgIACyAFRQ0GAkACQCAGIAYoAhxBAnRBgJzAAGoiBygCAEYNAAJAIAUoAhAgBkYNACAFIAA2AhQgAA0CDAkLIAUgADYCECAADQEMCAsgByAANgIAIABFDQYLIAAgBTYCGAJAIAYoAhAiB0UNACAAIAc2AhAgByAANgIYCyAGKAIUIgdFDQYgACAHNgIUIAcgADYCGAwGCyAAKAIEQXhxIANrIgcgAiAHIAJJIgcbIQIgACAGIAcbIQYgACEHDAALC0EAIAZBfiAId3E2ApifQAsgAkEIaiEAIAIgA0EDcjYCBCACIANqIgMgAygCBEEBcjYCBAwHCwJAAkAgACACdEECIAJ0IgBBACAAa3JxaCIJQQN0IgJBkJ3AAGoiByACQZidwABqKAIAIgAoAggiCEYNACAIIAc2AgwgByAINgIIDAELQQAgBkF+IAl3cTYCmJ9ACyAAIANBA3I2AgQgACADaiIGIAIgA2siB0EBcjYCBCAAIAJqIAc2AgACQEEAKAKgn0AiAkUNAEEAKAKon0AhAwJAAkBBACgCmJ9AIghBASACQQN2dCIJcQ0AQQAgCCAJcjYCmJ9AIAJBeHFBkJ3AAGoiAiEIDAELIAJBeHEiAkGQncAAaiEIIAJBmJ3AAGooAgAhAgsgCCADNgIIIAIgAzYCDCADIAg2AgwgAyACNgIICyAAQQhqIQBBACAGNgKon0BBACAHNgKgn0AMBgtBAEEAKAKcn0BBfiAGKAIcd3E2ApyfQAsCQAJAAkAgAkEQSQ0AIAYgA0EDcjYCBCAGIANqIgcgAkEBcjYCBCAHIAJqIAI2AgBBACgCoJ9AIghFDQFBACgCqJ9AIQACQAJAQQAoApifQCIJQQEgCEEDdnQiBXENAEEAIAkgBXI2ApifQCAIQXhxQZCdwABqIgghCQwBCyAIQXhxIghBkJ3AAGohCSAIQZidwABqKAIAIQgLIAkgADYCCCAIIAA2AgwgACAJNgIMIAAgCDYCCAwBCyAGIAIgA2oiAEEDcjYCBCAGIABqIgAgACgCBEEBcjYCBAwBC0EAIAc2AqifQEEAIAI2AqCfQAsgBkEIaiIARQ0DDAQLAkAgACAHcg0AQQAhB0ECIAV0IgBBACAAa3IgBHEiAEUNAyAAaEECdEGAnMAAaigCACEACyAARQ0BCwNAIAAoAgRBeHEiBiADayIIIAIgCCACSSIJGyEFIAYgA0khCCAAIAcgCRshCQJAIAAoAhAiBg0AIAAoAhQhBgsgAiAFIAgbIQIgByAJIAgbIQcgBiEAIAYNAAsLIAdFDQACQEEAKAKgn0AiACADSQ0AIAIgACADa08NAQsgBygCGCEFAkACQAJAIAcoAgwiACAHRw0AIAdBFEEQIAcoAhQiABtqKAIAIgYNAUEAIQAMAgsgBygCCCIGIAA2AgwgACAGNgIIDAELIAdBFGogB0EQaiAAGyEIA0AgCCEJIAYiAEEUaiAAQRBqIAAoAhQiBhshCCAAQRRBECAGG2ooAgAiBg0ACyAJQQA2AgALAkAgBUUNAAJAAkACQCAHIAcoAhxBAnRBgJzAAGoiBigCAEYNAAJAIAUoAhAgB0YNACAFIAA2AhQgAA0CDAQLIAUgADYCECAADQEMAwsgBiAANgIAIABFDQELIAAgBTYCGAJAIAcoAhAiBkUNACAAIAY2AhAgBiAANgIYCyAHKAIUIgZFDQEgACAGNgIUIAYgADYCGAwBC0EAQQAoApyfQEF+IAcoAhx3cTYCnJ9ACwJAAkAgAkEQSQ0AIAcgA0EDcjYCBCAHIANqIgAgAkEBcjYCBCAAIAJqIAI2AgACQCACQYACSQ0AIAAgAhAVDAILAkACQEEAKAKYn0AiBkEBIAJBA3Z0IghxDQBBACAGIAhyNgKYn0AgAkH4AXFBkJ3AAGoiAiEGDAELIAJB+AFxIgJBkJ3AAGohBiACQZidwABqKAIAIQILIAYgADYCCCACIAA2AgwgACAGNgIMIAAgAjYCCAwBCyAHIAIgA2oiAEEDcjYCBCAHIABqIgAgACgCBEEBcjYCBAsgB0EIaiIADQELAkACQAJAAkACQAJAQQAoAqCfQCIAIANPDQACQEEAKAKkn0AiACADSw0AIAFBBGpBxJ/AACADQa+ABGpBgIB8cRAuAkAgASgCBCIGDQBBACEADAgLIAEoAgwhBUEAQQAoArCfQCABKAIIIglqIgA2ArCfQEEAIABBACgCtJ9AIgIgACACSxs2ArSfQAJAAkACQEEAKAKsn0AiAkUNAEGAncAAIQADQCAGIAAoAgAiByAAKAIEIghqRg0CIAAoAggiAA0ADAMLCwJAAkBBACgCvJ9AIgBFDQAgBiAATw0BC0EAIAY2AryfQAtBAEH/HzYCwJ9AQQAgBTYCjJ1AQQAgCTYChJ1AQQAgBjYCgJ1AQQBBkJ3AADYCnJ1AQQBBmJ3AADYCpJ1AQQBBkJ3AADYCmJ1AQQBBoJ3AADYCrJ1AQQBBmJ3AADYCoJ1AQQBBqJ3AADYCtJ1AQQBBoJ3AADYCqJ1AQQBBsJ3AADYCvJ1AQQBBqJ3AADYCsJ1AQQBBuJ3AADYCxJ1AQQBBsJ3AADYCuJ1AQQBBwJ3AADYCzJ1AQQBBuJ3AADYCwJ1AQQBByJ3AADYC1J1AQQBBwJ3AADYCyJ1AQQBB0J3AADYC3J1AQQBByJ3AADYC0J1AQQBB0J3AADYC2J1AQQBB2J3AADYC5J1AQQBB2J3AADYC4J1AQQBB4J3AADYC7J1AQQBB4J3AADYC6J1AQQBB6J3AADYC9J1AQQBB6J3AADYC8J1AQQBB8J3AADYC/J1AQQBB8J3AADYC+J1AQQBB+J3AADYChJ5AQQBB+J3AADYCgJ5AQQBBgJ7AADYCjJ5AQQBBgJ7AADYCiJ5AQQBBiJ7AADYClJ5AQQBBiJ7AADYCkJ5AQQBBkJ7AADYCnJ5AQQBBmJ7AADYCpJ5AQQBBkJ7AADYCmJ5AQQBBoJ7AADYCrJ5AQQBBmJ7AADYCoJ5AQQBBqJ7AADYCtJ5AQQBBoJ7AADYCqJ5AQQBBsJ7AADYCvJ5AQQBBqJ7AADYCsJ5AQQBBuJ7AADYCxJ5AQQBBsJ7AADYCuJ5AQQBBwJ7AADYCzJ5AQQBBuJ7AADYCwJ5AQQBByJ7AADYC1J5AQQBBwJ7AADYCyJ5AQQBB0J7AADYC3J5AQQBByJ7AADYC0J5AQQBB2J7AADYC5J5AQQBB0J7AADYC2J5AQQBB4J7AADYC7J5AQQBB2J7AADYC4J5AQQBB6J7AADYC9J5AQQBB4J7AADYC6J5AQQBB8J7AADYC/J5AQQBB6J7AADYC8J5AQQBB+J7AADYChJ9AQQBB8J7AADYC+J5AQQBBgJ/AADYCjJ9AQQBB+J7AADYCgJ9AQQBBiJ/AADYClJ9AQQBBgJ/AADYCiJ9AQQAgBkEPakF4cSIAQXhqIgI2AqyfQEEAQYifwAA2ApCfQEEAIAYgAGsgCUFYaiIAakEIaiIHNgKkn0AgAiAHQQFyNgIEIAYgAGpBKDYCBEEAQYCAgAE2ArifQAwICyACIAZPDQAgByACSw0AIAAoAgwiB0EBcQ0AIAdBAXYgBUYNAwtBAEEAKAK8n0AiACAGIAAgBkkbNgK8n0AgBiAJaiEHQYCdwAAhAAJAAkACQANAIAAoAgAiCCAHRg0BIAAoAggiAA0ADAILCyAAKAIMIgdBAXENACAHQQF2IAVGDQELQYCdwAAhAAJAA0ACQCAAKAIAIgcgAksNACACIAcgACgCBGoiB0kNAgsgACgCCCEADAALC0EAIAZBD2pBeHEiAEF4aiIINgKsn0BBACAGIABrIAlBWGoiAGpBCGoiBDYCpJ9AIAggBEEBcjYCBCAGIABqQSg2AgRBAEGAgIABNgK4n0AgAiAHQWBqQXhxQXhqIgAgACACQRBqSRsiCEEbNgIEQQApAoCdQCEKIAhBEGpBACkCiJ1ANwIAIAhBCGoiACAKNwIAQQAgBTYCjJ1AQQAgCTYChJ1AQQAgBjYCgJ1AQQAgADYCiJ1AIAhBHGohAANAIABBBzYCACAAQQRqIgAgB0kNAAsgCCACRg0HIAggCCgCBEF+cTYCBCACIAggAmsiAEEBcjYCBCAIIAA2AgACQCAAQYACSQ0AIAIgABAVDAgLAkACQEEAKAKYn0AiB0EBIABBA3Z0IgZxDQBBACAHIAZyNgKYn0AgAEH4AXFBkJ3AAGoiACEHDAELIABB+AFxIgBBkJ3AAGohByAAQZidwABqKAIAIQALIAcgAjYCCCAAIAI2AgwgAiAHNgIMIAIgADYCCAwHCyAAIAY2AgAgACAAKAIEIAlqNgIEIAZBD2pBeHFBeGoiByADQQNyNgIEIAhBD2pBeHFBeGoiAiAHIANqIgBrIQMgAkEAKAKsn0BGDQMgAkEAKAKon0BGDQQCQCACKAIEIgZBA3FBAUcNACACIAZBeHEiBhATIAYgA2ohAyACIAZqIgIoAgQhBgsgAiAGQX5xNgIEIAAgA0EBcjYCBCAAIANqIAM2AgACQCADQYACSQ0AIAAgAxAVDAYLAkACQEEAKAKYn0AiAkEBIANBA3Z0IgZxDQBBACACIAZyNgKYn0AgA0H4AXFBkJ3AAGoiAyECDAELIANB+AFxIgNBkJ3AAGohAiADQZidwABqKAIAIQMLIAIgADYCCCADIAA2AgwgACACNgIMIAAgAzYCCAwFC0EAIAAgA2siAjYCpJ9AQQBBACgCrJ9AIgAgA2oiBzYCrJ9AIAcgAkEBcjYCBCAAIANBA3I2AgQgAEEIaiEADAYLQQAoAqifQCECAkACQCAAIANrIgdBD0sNAEEAQQA2AqifQEEAQQA2AqCfQCACIABBA3I2AgQgAiAAaiIAIAAoAgRBAXI2AgQMAQtBACAHNgKgn0BBACACIANqIgY2AqifQCAGIAdBAXI2AgQgAiAAaiAHNgIAIAIgA0EDcjYCBAsgAkEIaiEADAULIAAgCCAJajYCBEEAQQAoAqyfQCIAQQ9qQXhxIgJBeGoiBzYCrJ9AQQAgACACa0EAKAKkn0AgCWoiAmpBCGoiBjYCpJ9AIAcgBkEBcjYCBCAAIAJqQSg2AgRBAEGAgIABNgK4n0AMAwtBACAANgKsn0BBAEEAKAKkn0AgA2oiAzYCpJ9AIAAgA0EBcjYCBAwBC0EAIAA2AqifQEEAQQAoAqCfQCADaiIDNgKgn0AgACADQQFyNgIEIAAgA2ogAzYCAAsgB0EIaiEADAELQQAhAEEAKAKkn0AiAiADTQ0AQQAgAiADayICNgKkn0BBAEEAKAKsn0AiACADaiIHNgKsn0AgByACQQFyNgIEIAAgA0EDcjYCBCAAQQhqIQALIAFBEGokACAAC7wdARZ/IAEgAmoiByACQREgAkERSRtrIQggAyAEaiIJIARBlwIgBEGXAkkbayEKIABBpNoAaiELIABBmMkAaiEMIABB4NUAaiENIABBzANqIQ5BACEPQQAhEEEAIQIgASERIAMhBAJAAkADQAJAAkAgByARa0EDSw0AIAIhEiAQQf8BcSICQRdLDQEDQAJAAkAgESAHRg0AIBEtAAAgAnQgEnIhEiARQQFqIREMAQtBASETIA9BAWoiD0EESw0FCyAQQQhqIhBB/wFxIgJBGEkNAAwCCwsgESgAACAQQf8BcXQgAnIhEiARIBBBA3ZBB3FrQQNqIREgEEEYciEQC0EBIRMCQAJAAkACQAJAAkAgEkEBdkEDcQ4EBAEABwQLQQAhFCAAQQA6AKBaIBBBb2ohAiASQRF2IRUgEkENdiIWQQ9xIhdBBGohECASQQh2QR9xQQFqIRggEkEDdkEfcUGBAmohGQNAAkACQCACQf8BcSITQQJNDQAgAiEaDAELAkAgByARa0EDSw0AIAIhGgNAAkACQCARIAdGDQAgES0AACATdCAVciEVIBFBAWohEQwBC0EBIRMgD0EBaiIPQQRLDQsLIBpBCGoiGkH/AXEiE0EYSQ0ADAILCyACQRhyIRogESgAACATdCAVciEVIBEgAkEDdkEHcWtBA2ohEQsgACAUQZCLwABqLQAAaiAVQQdxOgAAIBpBfWohAiAVQQN2IRUgFEEBaiIUIBBHDQALAkAgF0EPRg0AAkAgFkEDcSIaQQNGDQBBBCEQA0AgACAXIBBqQZCLwABqLQAAakEAOgAAIBBBfWohFCAQQQFqIhMhECAaIBRzQQNHDQALIBcgE2ohEAsgF0F0akEDSQ0AA0AgACAQQZCLwABqLQAAakEAOgAAIAAgEEGRi8AAai0AAGpBADoAACAAIBBBkovAAGotAABqQQA6AAAgACAQQZOLwABqLQAAakEAOgAAIBBBBGoiEEETRw0ACwsCQCAOIABBE0Gwi8AAQQdBByANQQAQBQ0AQQEPCyAZIBhqIRdBACEQA0ACQAJAIAJB/wFxIhRBDU0NACACIRoMAQsCQCAHIBFrQQNLDQAgAiEaA0ACQAJAIBEgB0YNACARLQAAIBR0IBVyIRUgEUEBaiERDAELQQEhEyAPQQFqIg9BBEsNCwsgGkEIaiIaQf8BcSIUQRhJDQAMAgsLIAJBGHIhGiARKAAAIBR0IBVyIRUgESACQQN2QQdxa0EDaiERCyAOIBVB/wBxQQJ0aigCACIUQRB2IRMgGiAUayECIBUgFEH/AXF2IRUCQAJAIBRB//8/Sw0AIAAgEGogEzoAACAQQQFqIRAMAQsCQAJAAkACQCATQXBqDgIAAQILAkAgEA0AQQEPCyAAIBBqIhRBBWogFEF/ai0AACIaOgAAIBRBBGogGjoAACAUQQNqIBo6AAAgFEECaiAaOgAAIBRBAWogGjoAACAUIBo6AAAgAkF+aiECIBVBA3FBA2ohFCAVQQJ2IRUMAgsgACAQaiIUQgA3AAAgFEEIakEAOwAAIAJBfWohAiAVQQdxQQNqIRQgFUEDdiEVDAELAkAgFUH/AHFBC2oiFEUNACAAIBBqQQAgFPwLAAsgAkF5aiECIBVBB3YhFQsgFCAQaiEQCyAQIBdJDQALIBAgF0YNAUEBDwsgEEF9aiECIBJBA3YhFSAALQCgWg0BIABBAToAoFpBACEQA0AgACAQaiIUQoiQoMCAgYKECDcAACAUQQhqQQg6AAAgEEEJaiIQQZABRw0AC0GQfyEQA0AgACAQakGAAmpCiZKkyJChwoQJNwAAIBBBCGoiEA0ACyAAQoWKlKjQoMGCBTcAuAIgAEKFipSo0KDBggU3ALACIABChYqUqNCgwYIFNwCoAiAAQoWKlKjQoMGCBTcAoAIgAEKIkKDAgIGChAg3AJgCIABCh46cuPDgwYMHNwCQAiAAQoeOnLjw4MGDBzcAiAIgAEKHjpy48ODBgwc3AIACQSAhGEGgAiEZCwJAIAwgACAZaiAYQYCMwABBCEEPIA1BABAFDQBBAQ8LIAAgACAZQYCNwABBC0EPIA0gCxAFDQBBAQ8LQX8gCygCAHRBf3MhFwJAAkAgESAITw0AIAQgCk8NACACQRhyIRAgESACQQN2QQdxa0EDaiEUIAAgESgAACACQf8BcXQgFXIiFSAXcUECdGooAgAhGANAIBAgGGshECAVIBhB/wFxIhN2IQICQAJAAkACQCAYQQBIDQACQCAYQYCAAnENACACIREMAwsCQCAYQYDAAHFFDQAgFCERDAkLIBAgACACQX8gGEEIdnRBf3NxIBhBEHZqQQJ0aigCACIYayEQIAIgGEH/AXEiE3YhESAYQQBODQEgESECCyAEIBhBEHY6AAAgBEEBaiEEIBQoAAAgEEH/AXF0IAJyIRUgFCAQQQN2QQdxa0EDaiEUIAAgAiAXcUECdGooAgAhGAwCCyACIRUgGEGAwABxRQ0AIBEhAiAUIREMBgsgEEEYciEZIBQoAAAgEEH/AXF0IBFyIRogFCAQQQN2QQdxa0EDaiEUAkAgDCARQf8BcUECdGooAgAiEUGAgAJxRQ0AIBQoAAAgGUF4aiICQfcBcXQgGkEIdiIQciEaIAwgEEF/IBFBCHZBP3F0QX9zcSARQRB2akECdGooAgAhESACQRhyIRkgFCACQQN2QQZxa0EDaiEUCwJAIBpBfyARQf8BcSIWdEF/c3EgEUEIdkH/AXF2IhsgEUEQdiIcaiICIAQgA2tNDQBBAQ8LIBVBfyATdEF/c3EhEyAUKAAAIBkgEWsiEEH/AXF0IBogFnYiGXIhFSAEIAJrIRogBCAYQRB2aiATIBhBCHZB/wFxdmohESAUIBBBA3ZBB3FrQQNqIRQgACAZIBdxQQJ0aigCACEYAkACQCACQQRJDQAgBCAaKAAANgAAIAQgGigABDYABCAEIBooAAg2AAggBCAaKAAMNgAMIAQgGigAEDYAECAEQRRqIBFPDQFBACACayETA0AgBEEUaiIaIAQgE2oiAkEUaigAADYAACAEQRhqIAJBGGooAAA2AAAgBEEcaiACQRxqKAAANgAAIARBIGogAkEgaigAADYAACAEQSRqIAJBJGooAAA2AAAgBEEoaiECIBohBCACIBFJDQAMAgsLAkAgAkEBRw0AIAQgGi0AAEGBgoQIbCIaNgAMIAQgGjYACCAEIBo2AAQgBCAaNgAAIARBEGoiAiARTw0BA0AgAiAaNgAAIAJBDGogGjYAACACQQhqIBo2AAAgAkEEaiAaNgAAIAJBEGoiAiARSQ0ADAILCyAEIBooAAAiGjYAACAEIAJqIBo2AAAgG0EBdCAcQQF0aiEaIAJBA2whFgNAIAQgGmogBCACaiITKAAAIhk2AAAgBCAWaiAZNgAAIBMgAmoiBCAaaiARSQ0ACwsgESEECyAQQRhyIRAgFCAITw0CIAQgCkkNAAwCCwsgAiEQIBEhFAsDQAJAAkAgByAUa0EDSw0AIBBB/wFxIgJBF0sNAQNAAkACQCAUIAdGDQAgFC0AACACdCAVciEVIBRBAWohFAwBC0EBIRMgD0EBaiIPQQRLDQgLIBBBCGoiEEH/AXEiAkEYSQ0ADAILCyAUKAAAIBBB/wFxdCAVciEVIBQgEEEDdkEHcWtBA2ohFCAQQRhyIRALIBAgACAVIBdxQQJ0aigCACICayEQIBUgAkH/AXF2IRECQAJAIAJBgIABcQ0AIBUhGiARIRUMAQsgECAAIBFBfyACQQh2QT9xdEF/c3EgAkEQdmpBAnRqKAIAIgJrIRAgESACQf8BcXYhFSARIRoLIAJBEHYhEQJAIAJBf0oNAAJAIAQgCUcNAEEDDwsgBCAROgAAIARBAWohBAwBCwJAIAJBgMAAcUUNACAVIQIgFCERDAMLAkAgGkF/IAJB/wFxdEF/c3EgAkEIdkHfAXF2IBFqIhogCSAEa00NAEEDDwsCQAJAIAcgFGtBA0sNACAQQf8BcSICQRdLDQEDQAJAAkAgFCAHRg0AIBQtAAAgAnQgFXIhFSAUQQFqIRQMAQtBASETIA9BAWoiD0EESw0ICyAQQQhqIhBB/wFxIgJBGEkNAAwCCwsgFCgAACAQQf8BcXQgFXIhFSAUIBBBA3ZBB3FrQQNqIRQgEEEYciEQCwJAIAwgFUH/AXFBAnRqKAIAIgJBgIACcUUNACAMIBVBCHYiFUF/IAJBCHZBP3F0QX9zcSACQRB2akECdGooAgAhAiAQQXhqIRECQAJAIAcgFGtBA0sNACARQf8BcSITQRdNDQEgESEQDAILIBFBGHIhECAUKAAAIBFB/wFxdCAVciEVIBQgEUEDdkEHcWtBA2ohFAwBCwNAAkACQCAUIAdGDQAgFC0AACATdCAVciEVIBRBAWohFAwBC0EBIRMgD0EBaiIPQQRLDQcLIBBB/wFxIRMgEEEIaiIRIRAgE0EYSQ0ACyARQXhqIRALAkAgFUF/IAJB/wFxIhN0QX9zcSACQQh2Qf8BcXYgAkEQdmoiESAEIANrTQ0AQQEPCyAQIAJrIRAgFSATdiEVIAQgBCARayICLQAAOgAAIAQgAi0AAToAASAEQQJqIQIgBCAaaiEEQQAgEWshEQNAIAIgAiARai0AADoAACACQQFqIgIgBEkNAAwBCwsLAkAgDyAQQf0BakEDdkEfcSICTQ0AQQEPCwJAIAcgESAPIAJraiIRa0EETg0AQQEPCwJAIBEvAAIgES8AACICc0H//wNxQf//A0YNAEEBDwsCQCAJIARrIAJODQBBAw8LAkAgByARQQRqIhFrIAJODQBBAQ8LAkAgAkUNACAEIBEgAvwKAAALIAQgAmohBCARIAJqIRFBACEPQQAhEEEAIQILIBJBAXFFDQALQQEhEyAPIBBBA3ZBH3EiAksNAAJAIAVFDQAgBSARIA8gAmtqIAFrNgIACwJAIAZFDQAgBiAEIANrNgIADAILIAQgCUYNAUECIRMLIBMPC0EAC9UZAhx/AX0jAEHgAGsiCyQAIAsQSjYCAEEAIQwCQAJAAkACQAJAAkACQAJAIAdBAEgNAAJAAkAgBw0AQQEhDQwBCxBzQQEhDCAHQQEQZSINRQ0BCyAEQZADbCEMQQAhDgJAIARB5ABsIg9B/////wNLDQAgDEH8////B0sNAAJAAkACQAJAAkAgDEUNABBzQQQhDiAMQQQQZCIQRQ0FIAtBADYCDCALIBA2AgggCyAPNgIEEHMgDEEEEGQiDkUNBCALQQA2AhggCyAONgIUIAsgDzYCEBBzIAxBBBBkIg5FDQMgC0EANgIkIAsgDjYCICALIA82AhwQcyAMQQQQZCIORQ0CIAtBADYCMCALIA42AiwgCyAPNgIoEHMgDEEEEGQiEQ0BQQQgDBBSAAsgC0EANgIMIAtCgICAgMAANwIEIAtBADYCGCALQoCAgIDAADcCECALQQA2AiQgC0KAgICAwAA3AhwgC0EANgIwIAtCgICAgMAANwIoQQQhEQtBACEQIAtBADYCPCALIBE2AjggCyAPNgI0AkAgBA0AQQQhDEEAIQ8MBgsgCiAJciESQQAhEwNAAkACQAJAIBMgBkYNACAFIBNBAnQiDGooAgAiDiADIAxqKAIAIg9qIgwgD0ECaiIPSQ0BIAwgAksNASALQcAAaiALIAEgD2ogDkF+aiANIAcQLCALLQBARQ0CIAsgCy0AQToASyALQQGtQiCGIAtBywBqrYQ3A1ggC0HMAGpBz4HAACALQdgAahARIAsoAkwhDCALKAJQIg4gCygCVBBrIQ8CQCAMRQ0AIA4gDEEBEF4LIABBADYCACAAIA82AgQCQCALKAI0IgxFDQAgCygCOCAMQQJ0QQQQXgsCQCALKAIoIgxFDQAgCygCLCAMQQJ0QQQQXgsCQCALKAIcIgxFDQAgCygCICAMQQJ0QQQQXgsCQCALKAIQIgxFDQAgCygCFCAMQQJ0QQQQXgsCQCALKAIEIgxFDQAgCygCCCAMQQJ0QQQQXgsgBw0NDA4LIAYgBkHIiMAAEDQACyAPIAwgAkHoiMAAEBYACwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCALKAJEIg8gB0sNACAPQSBJDR0gD0EFdiEUQQAhDANAIAwgD08NAiAMQQFqIA9PDQMgDEECaiAPTw0EIAxBA2ogD08NBSAMQQRqIA9PDQYgDEEFaiAPTw0HIAxBBmogD08NCCAMQQdqIA9PDQkgDEEIaiAPTw0KIAxBCWogD08NCyAMQQpqIA9PDQwgDEELaiAPTw0NIAxBDGogD08NDiAMQQ1qIA9PDQ8gDEEOaiAPTw0QIAxBD2ogD08NESAMQRBqIA9PDRIgDEERaiAPTw0TIAxBEmogD08NFCAMQRNqIA9PDRUgDEEUaiAPTw0WIAxBFWogD08NFyAMQRZqIA9PDRggDEEXaiAPTw0ZIAxBGGogD08NGiAMQRlqIA9PDRsgDEEaaiAPTw0cIAxBG2ogD08NHSANIAxqIg5BBWotAABBCHQgDkEEai0AAHIgDkEGai0AAEEQdHIgDkEHai0AAEEYdHIhFSAOQQlqLQAAQQh0IA5BCGotAAByIA5BCmotAABBEHRyIA5BC2otAABBGHRyIRYgDkEMai0AACEXIA5BDWotAAAhGCAOQQ5qLQAAIRkgDkEPai0AACEaIA5BEGotAAAhGyAOQRFqLQAAIRwgDkESai0AACEdIA5BE2otAAAhHiAOQRRqLQAAIR8gDkEVai0AACEgIA5BFmotAAAhISAOQRdqLQAAISIgDkEYai0AACEjIA5BGWotAAAhJCAOQRpqLQAAISUgDkEbai0AACEmAkACQCASRQ0AIA5BAWotAABBCHQgDi0AAHIgDkECai0AAEEQdHIgDkEDai0AAEEYdHIgCEcNASAVIApODQEgFiAJTA0BCyAYQQh0IBdyIBlBEHRyIRcgGkEYdCEYICRBCHQgI3IgJUEQdHIhGSAmQRh0IRoCQCALKAIMIg4gCygCBEcNACALQQRqEC0LIBxBCHQhHCAZIBpyIRkgFyAYciEXIAsoAgggDkECdGogFTYCACALIA5BAWo2AgwCQCALKAIYIg4gCygCEEcNACALQRBqEC0LICBBCHQhFSAcIBtyIRggHUEQdCEaIBm+IScgCygCFCAOQQJ0aiAWNgIAIAsgDkEBajYCGAJAIBdFDQAgJyAXs5UhJwsgFSAfciEVICFBEHQhFiAYIBpyIRcgHkEYdCEYAkAgCygCJCIOIAsoAhxHDQAgC0EcahAtCyAVIBZyIRUgIkEYdCEWIBcgGHIhFyALKAIgIA5BAnRqICc4AgAgCyAOQQFqNgIkAkAgCygCMCIOIAsoAihHDQAgC0EoahAtCyAVIBZyIRUgCygCLCAOQQJ0aiAXNgIAIAsgDkEBajYCMAJAIBAgCygCNEcNACALQTRqEC0gCygCOCERCyARIBBBAnRqIBU2AgAgCyAQQQFqIhA2AjwLIAxBIGohDCAUQX9qIhRFDR4MAAsLQQAgDyAHQdiIwAAQFgALIAwgD0HIhsAAEDQACyAMQQFqIA9B2IbAABA0AAsgDEECaiAPQeiGwAAQNAALIAxBA2ogD0H4hsAAEDQACyAMQQRqIA9ByIbAABA0AAsgDEEFaiAPQdiGwAAQNAALIAxBBmogD0HohsAAEDQACyAMQQdqIA9B+IbAABA0AAsgDEEIaiAPQciGwAAQNAALIAxBCWogD0HYhsAAEDQACyAMQQpqIA9B6IbAABA0AAsgDEELaiAPQfiGwAAQNAALIAxBDGogD0HIhsAAEDQACyAMQQ1qIA9B2IbAABA0AAsgDEEOaiAPQeiGwAAQNAALIAxBD2ogD0H4hsAAEDQACyAMQRBqIA9ByIXAABA0AAsgDEERaiAPQdiFwAAQNAALIAxBEmogD0HohcAAEDQACyAMQRNqIA9B+IXAABA0AAsgDEEUaiAPQciFwAAQNAALIAxBFWogD0HYhcAAEDQACyAMQRZqIA9B6IXAABA0AAsgDEEXaiAPQfiFwAAQNAALIAxBGGogD0HIhcAAEDQACyAMQRlqIA9B2IXAABA0AAsgDEEaaiAPQeiFwAAQNAALIAxBG2ogD0H4hcAAEDQACyATQQFqIhMgBEcNAAtBACEOIAsoAgwiD0EUbEEEaiIMQQBIDQYgDA0FIAtBADYCVCALQoCAgIAQNwJMIAtBzABqQQBBBBAnIAsoAkwhDCALKAJQIRAgCygCVCEODAgLQQQgDBBSAAtBBCAMEFIAC0EEIAwQUgALIA4gDBBSAAsgDCAHEFIACxBzQQEhDiAMQQEQZCIQDQELIA4gDBBSAAsgCyAQNgJQIAsgDDYCTEEAIQ4LIBAgDmogDzYAACALIA5BBGoiDjYCVCALKAIIIRUCQCAPQQJ0Ig8gDCAOa00NACALQcwAaiAOIA8QJyALKAJQIRAgCygCVCEOCwJAIA9FDQAgECAOaiAVIA/8CgAACyALIA4gD2oiDDYCVCALKAIUIRYCQCALKAIYQQJ0Ig8gCygCTCIOIAxrTQ0AIAtBzABqIAwgDxAnIAsoAkwhDiALKAJUIQwLIAsoAlAhEAJAIA9FDQAgECAMaiAWIA/8CgAACyALIAwgD2oiDDYCVCALKAIgIRQCQCALKAIkQQJ0Ig8gDiAMa00NACALQcwAaiAMIA8QJyALKAJMIQ4gCygCUCEQIAsoAlQhDAsCQCAPRQ0AIBAgDGogFCAP/AoAAAsgCyAMIA9qIgw2AlQgCygCLCEXAkAgCygCMEECdCIPIA4gDGtNDQAgC0HMAGogDCAPECcgCygCUCEQIAsoAlQhDAsCQCAPRQ0AIBAgDGogFyAP/AoAAAsgCyAMIA9qIgw2AlQgCygCOCEYAkAgCygCPEECdCIPIAsoAkwiDiAMa00NACALQcwAaiAMIA8QJyALKAJMIQ4gCygCVCEMCyALKAJQIRACQCAPRQ0AIBAgDGogGCAP/AoAAAsgCyAMIA9qIgw2AlQCQAJAIA4gDEsNACAQIQ8MAQsCQCAMDQBBASEPIBAgDkEBEF4MAQsgECAOQQEgDBBZIg9FDQMLIAAgDDYCBCAAIA82AgACQCALKAI0IgxFDQAgGCAMQQJ0QQQQXgsCQCALKAIoIgxFDQAgFyAMQQJ0QQQQXgsCQCALKAIcIgxFDQAgFCAMQQJ0QQQQXgsCQCALKAIQIgxFDQAgFiAMQQJ0QQQQXgsCQCALKAIEIgxFDQAgFSAMQQJ0QQQQXgsgB0UNAQsgDSAHQQEQXgsgCxBsIAtB4ABqJAAPC0EBIAwQUgALghMCE38BfSMAQdAAayIKJAAgChBKNgIIQQAhCwJAAkACQAJAAkACQAJAAkACQCAHQQBIDQACQAJAIAcNAEEBIQwMAQsQc0EBIQsgB0EBEGUiDEUNAQsgBEGgH2whC0EAIQ0CQCAEQegHbCIOQf////8DSw0AIAtB/P///wdLDQACQAJAAkAgC0UNABBzQQQhDSALQQQQZCIPRQ0DIApBADYCFCAKIA82AhAgCiAONgIMEHMgC0EEEGQiDUUNAiAKQQA2AiAgCiANNgIcIAogDjYCGBBzIAtBBBBkIhANAUEEIAsQUgALIApBADYCFCAKQoCAgIDAADcCDCAKQQA2AiAgCkKAgICAwAA3AhhBBCEQC0EAIQsgCkEANgIsIAogEDYCKCAKIA42AiQCQCAEDQBBBCELQQAhDgwFCyAJIAhyIRFBACESA0ACQAJAAkAgEiAGRg0AIAUgEkECdCIOaigCACIPIAMgDmooAgAiDWoiDiANQQJqIg1JDQEgDiACSw0BIApBMGogCkEIaiABIA1qIA9BfmogDCAHECwgCi0AMEUNAiAKIAotADE6ADsgCkEBrUIghiAKQTtqrYQ3A0ggCkE8akHPgcAAIApByABqEBEgCigCPCELIAooAkAiDSAKKAJEEGshDgJAIAtFDQAgDSALQQEQXgsgAEEANgIAIAAgDjYCBAJAIAooAiQiC0UNACAKKAIoIAtBAnRBBBBeCwJAIAooAhgiC0UNACAKKAIcIAtBAnRBBBBeCwJAIAooAgwiC0UNACAKKAIQIAtBAnRBBBBeCyAHDQwMDQsgBiAGQZiIwAAQNAALIA0gDiACQbiIwAAQFgALAkACQAJAIAooAjQiDiAHSw0AIA5BGEkNAiAMLQASQRB0IRMgDC0AEUEIdCEUIAwtABAhFSAMLQATQRh0IRYgDC0AF0EIdCIPIAwtABYiF3IhDQJAAkAgDC0AFEF/ag4DAwEABAsgDUUNAyAMKAAMIRggDCgABCEZAkAgEUUNACAPIBdqIRcgGSAWIBNqIBRqIBVqaiEaQRghD0EAIQ0DQCAMIA4gDxAjIR0CQCAZIA1qIhMgCU4NACAaIA1qIhsgCEwNAAJAIAooAhQiHCAKKAIMRw0AIApBDGoQLQsgCigCECAcQQJ0aiATNgIAIAogHEEBajYCFAJAIAooAiAiEyAKKAIYRw0AIApBGGoQLQsgCigCHCATQQJ0aiAbNgIAIAogE0EBajYCIAJAIAsgCigCJEcNACAKQSRqEC0gCigCKCEQCyAQIAtBAnRqIB04AgAgCiALQQFqIgs2AiwLIA9BBGohDyANIBhqIQ0gF0F/aiIXDQAMBQsLIA8gF2ohHCAKKAIUIhdBAnQhGyALQQJ0IRogGSAWaiATaiAUaiAVaiEUQRghDUEAIQ8DQCAMIA4gDRAjIR0CQCAXIAooAgxHDQAgCkEMahAtCyAKKAIQIBtqIA1qQWhqIBkgD2o2AgAgCiAXQQFqIhc2AhQCQCAKKAIgIhMgCigCGEcNACAKQRhqEC0LIAooAhwgE0ECdGogFCAPajYCACAKIBNBAWo2AiACQCALIAooAiRHDQAgCkEkahAtIAooAighEAsgECAaaiANakFoaiAdOAIAIAogC0EBaiILNgIsIA1BBGohDSAPIBhqIQ8gHEF/aiIcDQAMBAsLIA1FDQIgFCAVciATciAWciEYIA8gF2ohE0EYIQ0DQCAMIA4gDRAlIg8gGGohFyAMIA4gDUEEaiIZECMhHQJAAkAgEUUNACAPIAlODQEgFyAITA0BCwJAIAooAhQiDSAKKAIMRw0AIApBDGoQLQsgCigCECANQQJ0aiAPNgIAIAogDUEBajYCFAJAIAooAiAiDSAKKAIYRw0AIApBGGoQLQsgCigCHCANQQJ0aiAXNgIAIAogDUEBajYCIAJAIAsgCigCJEcNACAKQSRqEC0gCigCKCEQCyAQIAtBAnRqIB04AgAgCiALQQFqIgs2AiwLIBlBBGohDSATQX9qIhMNAAwDCwtBACAOIAdBqIjAABAWAAsgDUUNACAPIBdqIRNBGCENA0AgDCAOIA0QJSEPIAwgDiANQQRqECUhFyAMIA4gDUEIaiIZECMhHQJAAkAgEUUNACAPIAlODQEgFyAITA0BCwJAIAooAhQiDSAKKAIMRw0AIApBDGoQLQsgCigCECANQQJ0aiAPNgIAIAogDUEBajYCFAJAIAooAiAiDSAKKAIYRw0AIApBGGoQLQsgCigCHCANQQJ0aiAXNgIAIAogDUEBajYCIAJAIAsgCigCJEcNACAKQSRqEC0gCigCKCEQCyAQIAtBAnRqIB04AgAgCiALQQFqIgs2AiwLIBlBBGohDSATQX9qIhMNAAsLIBJBAWoiEiAERg0EDAALC0EEIAsQUgALIA0gCxBSAAsgCyAHEFIAC0EAIQ0gCigCFCIOQQxsQQRqIgtBAEgNASALDQAgCkEANgJEIApCgICAgBA3AjwgCkE8akEAQQQQJyAKKAI8IQsgCigCQCEPIAooAkQhDQwDCxBzQQEhDSALQQEQZCIPDQELIA0gCxBSAAsgCiAPNgJAIAogCzYCPEEAIQ0LIA8gDWogDjYAACAKIA1BBGoiDTYCRCAKKAIQIRACQCAOQQJ0Ig4gCyANa00NACAKQTxqIA0gDhAnIAooAkAhDyAKKAJEIQ0LAkAgDkUNACAPIA1qIBAgDvwKAAALIAogDSAOaiILNgJEIAooAhwhFwJAIAooAiBBAnQiDSAKKAI8Ig4gC2tNDQAgCkE8aiALIA0QJyAKKAI8IQ4gCigCRCELCyAKKAJAIQ8CQCANRQ0AIA8gC2ogFyAN/AoAAAsgCiALIA1qIgs2AkQgCigCKCEJAkAgCigCLEECdCINIA4gC2tNDQAgCkE8aiALIA0QJyAKKAI8IQ4gCigCQCEPIAooAkQhCwsCQCANRQ0AIA8gC2ogCSAN/AoAAAsgCiALIA1qIgs2AkQCQAJAIA4gC0sNACAPIQ0MAQsCQCALDQBBASENIA8gDkEBEF4MAQsgDyAOQQEgCxBZIg1FDQMLIAAgCzYCBCAAIA02AgACQCAKKAIkIgtFDQAgCSALQQJ0QQQQXgsCQCAKKAIYIgtFDQAgFyALQQJ0QQQQXgsCQCAKKAIMIgtFDQAgECALQQJ0QQQQXgsgB0UNAQsgDCAHQQEQXgsgCkEIahBsIApB0ABqJAAPC0EBIAsQUgALlQ8BD38jAEGAAWshCCAFQQFqIglBB3EhCiAJQQJ0QWBxIQtBACEMA0AgCEHAAGogDGoiCUIANwMAIAlBGGpCADcDACAJQRBqQgA3AwAgCUEIakIANwMAIAsgDEEgaiIMRw0ACwJAIApFDQAgCEHAAGogDGohCQNAIAlBADYCACAJQQRqIQkgCkF/aiIKDQALCwJAIAJFDQAgAkEDcSEKQQAhDAJAIAJBBEkNACACQXxxIQ1BACEMA0AgCEHAAGogASAMaiIJLQAAQQJ0aiILIAsoAgBBAWo2AgAgCEHAAGogCUEBai0AAEECdGoiCyALKAIAQQFqNgIAIAhBwABqIAlBAmotAABBAnRqIgsgCygCAEEBajYCACAIQcAAaiAJQQNqLQAAQQJ0aiIJIAkoAgBBAWo2AgAgDSAMQQRqIgxHDQALCyAKRQ0AIAEgDGohCQNAIAhBwABqIAktAABBAnRqIgwgDCgCAEEBajYCACAJQQFqIQkgCkF/aiIKDQALCyAIQcAAaiAFQQJ0aiEJAkADQAJAIAkoAgBFDQAgBSEKDAILIAlBfGohCUEBIQogBUF/aiIFQQFLDQALCwJAIAdFDQAgByAEIAogBCAKSRsiBDYCAAtBACEOIAhBADYCACAIIAgoAkAiCzYCBEEBIQlBACEMAkAgCkECSQ0AQQEhCSAKQX9qIgxBAXEhDwJAAkAgCkECRw0AQQAhDAwBCyAMQX5xIRAgCEHAAGpBCHIhCSAIQQxyIQxBACEFQQAhDQNAIAxBfGogCUF8aigCACIHIAtqIgs2AgAgDCAJKAIAIhEgC2oiCzYCACARIAVBAnQgB0EBdGpqIQUgCUEIaiEJIAxBCGohDCAQIA1BAmoiDUcNAAsgDUEBaiEJIAVBAXQhDAsCQCAPRQ0AIAlBAnQiCSAIakEEaiAIQcAAaiAJaigCACIJIAtqNgIAIAkgDGohBQsgBUEBdCEMIAohCQsgCEHAAGogCUECdGooAgAgDGohEQJAIAJFDQAgAkEBcSEHQQAhCQJAIAJBAUYNACACQX5xIQ1BACEJA0AgBiAIIAEgCWoiDC0AAEECdGoiBSgCACILQQF0aiAJOwEAIAUgC0EBajYCACAIIAxBAWotAABBAnRqIgwgDCgCACIMQQFqNgIAIAYgDEEBdGogCUEBajsBACANIAlBAmoiCUcNAAsLAkAgB0UNACAIIAEgCWotAABBAnRqIgwgDCgCACIMQQFqNgIAIAYgDEEBdGogCTsBAAsgCCgCACEOCwJAAkAgEUEBIAp0IglNDQBBACEFDAELIAYgDkEBdGohBwJAAkACQCARIAlJDQAgCEHAAGpBBHIhCUEAIQ0DQCANQQFqIQ0gCSgCACEGIAlBBGohCSAGRQ0AC0EAIQ8gDSAETQ0BQQAhAQwCCwJAAkAgEQ0AQQAhCQwBC0EAIQUgEUEBIApBf2p0Rw0DIAgoAkRBAUcNAyAHLwEAIQkLIAMgCUECdGooAgBBgQJqIQxBASEFQQEhCQNAIAAgDDYCACAAQQRqIQAgCSAEdiEIIAlBAWohCSAIRQ0ADAMLC0EBIA10IQwgCEHAAGpBBHIhC0EAIQEDQCAMQX9qIQkgDUGBAmwhBQNAIAAgAUECdGogBSADIAcvAQBBAnRqKAIAajYCAAJAIAEgCUcNAEEBIQUgBCANTQ0EIA1BAWohCQJAIAQgDWtBAXFFDQACQCAMQQJ0IghFDQAgACAIaiAAIAj8CgAACyANQQFqIQ0gDEEBdCEMCyAEIAlGDQQgBCANayEIA0ACQCAMQQJ0IglFDQAgACAJaiAAIAn8CgAACwJAIAxBA3QiDEUNACAAIAxqIAAgDPwKAAALIAkhDCAIQX5qIghFDQUMAAsLQYCAgIB4IAEgCXNndiIKQX9qIAFxIApyIQEgB0ECaiEHIAZBf2oiBg0ACyALIA1BAnRqIQkDQAJAIA1BAWoiDSAESw0AAkAgDEECdCIKRQ0AIAAgCmogACAK/AoAAAsgDEEBdCEMCyAJKAIAIQYgCUEEaiEJIAZFDQALIA0gBE0NAAsLIARBgIADciESQQEgBHQiEEF/aiETIAhBwABqQQRyIRRBfyEJA0AgFCANQQJ0aiERQX8gDXRBf3MhDiANIARrIhVBgQJsIRZBASAVdCIKQQJ0IQsDQAJAAkAgASATcSICIAlHDQAgECEMIAkhAgwBCyAVIQggCiEFAkAgBiAKTw0AIBEhCSAVIQggBiEMA0AgCSgCACEFIAlBBGohCSAFIAxBAXRqIgxBASAIQQFqIgh0IgVJDQALCyAAIAJBAnRqIBBBEHQgCEEIdHIgEnI2AgAgBSAQaiEMIBAhDwsgACAPIAEgBHZqIghBAnRqIQkgFiADIAcvAQBBAnRqKAIAaiEFA0AgCSAFNgIAIAkgC2ohCSAIIApqIgggDEkNAAsCQCABIA5HDQBBAQ8LQYCAgIB4IAEgDnNndiIJQX9qIAFxIAlyIQEgB0ECaiEHIAwhECACIQkgBkF/aiIGDQALA0AgDUEBaiENIBEoAgAhBiARQQRqIREgBkUNAAsgDCEQIAIhCQwACwsgBQuJDwINfwF9IwBBMGsiBSQAAkACQAJAAkACQAJAAkACQAJAAkACQCACQRhJDQAgAS0AEiEGIAEtABEhByABLQAQIQggAS0AEyEJIAEtABQhCiABKAAMIQsgASgABCEMIAEvABYiDUUNAhBzIA1BAnQiDkEEEGQiDw0BQQQgDhBSAAsQc0EEIQJBBEEBEGUiBg0EQQFBBBBSAAsgBUEANgIIIAUgDzYCBCAFIA02AgAQcyAOQQQQZCIPRQ0CIAVBADYCFCAFIA82AhAgBSANNgIMEHMgDkEEEGQiDw0BQQQgDhBSAAsgBUEANgIIIAVCgICAgMAANwIAIAVBADYCFCAFQoCAgIDAADcCDEEEIQ8LIAZBEHQhECAHQQh0IQcgCUEYdCEJQQAhESAFQQA2AiAgBSAPNgIcIAUgDTYCGCAEIANyIQ5BACEGAkACQCAKQX9qDgMEAQAFC0EAIQYgDUUNBAJAIA5FDQAgDCAJIBBqIAdqIAhqaiEQQRghCUEAIQdBACEGA0AgASACIAkQIyESAkAgDCAHaiIOIARODQAgECAHaiIIIANMDQACQCAFKAIIIgogBSgCAEcNACAFEC0LIAUoAgQgCkECdGogDjYCACAFIApBAWo2AggCQCAFKAIUIg4gBSgCDEcNACAFQQxqEC0LIAUoAhAgDkECdGogCDYCACAFIA5BAWo2AhQCQCAGIAUoAhhHDQAgBUEYahAtIAUoAhwhDwsgDyAGQQJ0aiASOAIAIAUgBkEBaiIGNgIgCyAJQQRqIQkgByALaiEHIA1Bf2oiDQ0ADAYLCyAMIAlqIBBqIAdqIAhqIQ5BGCEHQQAhBEEAIQYDQCABIAIgBxAjIRICQCAFKAIIIgkgBSgCAEcNACAFEC0LIAUoAgQgCUECdGogDCAEajYCACAFIAlBAWo2AggCQCAFKAIUIgkgBSgCDEcNACAFQQxqEC0LIAUoAhAgCUECdGogDiAEajYCACAFIAlBAWo2AhQCQCAGIAUoAhhHDQAgBUEYahAtIAUoAhwhDwsgDyAHakFoaiASOAIAIAUgBkEBaiIGNgIgIAdBBGohByAEIAtqIQQgDSAGRw0ADAULC0EAIQYgDUUNAyAHIAhyIBByIAlyIQpBGCEHQQAhBgNAIAEgAiAHECUiCSAKaiEMIAEgAiAHQQRqIgsQIyESAkACQCAORQ0AIAkgBE4NASAMIANMDQELAkAgBSgCCCIHIAUoAgBHDQAgBRAtCyAFKAIEIAdBAnRqIAk2AgAgBSAHQQFqNgIIAkAgBSgCFCIHIAUoAgxHDQAgBUEMahAtCyAFKAIQIAdBAnRqIAw2AgAgBSAHQQFqNgIUAkAgBiAFKAIYRw0AIAVBGGoQLSAFKAIcIQ8LIA8gBkECdGogEjgCACAFIAZBAWoiBjYCIAsgC0EEaiEHIA1Bf2oiDUUNBAwACwtBBCAOEFIACyAGQQA2AAAMAgtBACEGIA1FDQBBGCEHQQAhBgNAIAEgAiAHECUhCSABIAIgB0EEahAlIQwgASACIAdBCGoiCxAjIRICQAJAIA5FDQAgCSAETg0BIAwgA0wNAQsCQCAFKAIIIgcgBSgCAEcNACAFEC0LIAUoAgQgB0ECdGogCTYCACAFIAdBAWo2AggCQCAFKAIUIgcgBSgCDEcNACAFQQxqEC0LIAUoAhAgB0ECdGogDDYCACAFIAdBAWo2AhQCQCAGIAUoAhhHDQAgBUEYahAtIAUoAhwhDwsgDyAGQQJ0aiASOAIAIAUgBkEBaiIGNgIgCyALQQRqIQcgDUF/aiINDQALCyAFKAIIIgJBDGxBBGoiAUEASA0CAkACQCABDQAgBUEANgIsIAVCgICAgBA3AiQgBUEkakEAQQQQJyAFKAIkIQEgBSgCKCEHIAUoAiwhDQwBCxBzQQEhESABQQEQZCIHRQ0DIAUgBzYCKCAFIAE2AiRBACENCyAHIA1qIAI2AAAgBSANQQRqIg02AiwgBSgCBCEPAkAgAkECdCICIAEgDWtNDQAgBUEkaiANIAIQJyAFKAIkIQEgBSgCKCEHIAUoAiwhDQsCQCACRQ0AIAcgDWogDyAC/AoAAAsgBSANIAJqIgI2AiwgBSgCECEEAkAgBSgCFEECdCINIAEgAmtNDQAgBUEkaiACIA0QJyAFKAIkIQEgBSgCLCECCyAFKAIoIQcCQCANRQ0AIAcgAmogBCAN/AoAAAsgBSACIA1qIgI2AiwgBSgCHCENAkAgBkECdCIGIAEgAmtNDQAgBUEkaiACIAYQJyAFKAIkIQEgBSgCKCEHIAUoAiwhAgsCQCAGRQ0AIAcgAmogDSAG/AoAAAsgBSACIAZqIgI2AiwCQAJAIAEgAksNACAHIQYMAQsCQCACDQBBASEGIAcgAUEBEF4MAQsgByABQQEgAhBZIgZFDQILAkAgBSgCGCIBRQ0AIA0gAUECdEEEEF4LAkAgBSgCDCIBRQ0AIAQgAUECdEEEEF4LIAUoAgAiAUUNACAPIAFBAnRBBBBeCyAAIAI2AgQgACAGNgIAIAVBMGokAA8LQQEgAhBSAAsgESABEFIAC98MAgt/A30jAEHQAGsiBiQAAkACQAJAAkACQAJAAkACQAJAAkAgAkEgSQ0AEHMgAkEFdiIHQQJ0IghBBBBkIglFDQMgBkEANgIQIAYgCTYCDCAGIAc2AggQcyAIQQQQZCIJRQ0EIAZBADYCHCAGIAk2AhggBiAHNgIUEHMgCEEEEGQiCUUNBSAGQQA2AiggBiAJNgIkIAYgBzYCIBBzIAhBBBBkIglFDQkgBkEANgI0IAYgCTYCMCAGIAc2AiwQcyAIQQQQZCIKRQ0GQQAhCCAGQQA2AkAgBiAKNgI8IAUgBHIhCyAGIAc2AjggB0EFdCEMQQAhBwNAIAEgAiAHECYhDSABIAIgB0EEahAmIQkgASACIAdBCGoQJiEOIAEgAiAHQQxqECYhDyABIAIgB0EQahAjIREgASACIAdBFGoQIyESIAEgAiAHQRhqIhAQIyETAkACQCALRQ0AIA0gA0cNASAJIAVODQEgDiAETA0BCwJAIAYoAhAiDSAGKAIIRw0AIAZBCGoQLQsgBigCDCANQQJ0aiAJNgIAIAYgDUEBajYCEAJAIAYoAhwiCSAGKAIURw0AIAZBFGoQLQsgBigCGCAJQQJ0aiAONgIAIAYgCUEBajYCHAJAIA9FDQAgEyAPs5UhEwsCQCAGKAIoIgkgBigCIEcNACAGQSBqEC0LIAYoAiQgCUECdGogEzgCACAGIAlBAWo2AigCQCAGKAI0IgkgBigCLEcNACAGQSxqEC0LIAYoAjAgCUECdGogETgCACAGIAlBAWo2AjQCQCAIIAYoAjhHDQAgBkE4ahAtIAYoAjwhCgsgCiAIQQJ0aiASOAIAIAYgCEEBaiIINgJACyAHQSBqIQkgEEEIaiEHIAwgCUcNAAtBACEOIAYoAhAiAUEUbEEEaiIHQQBIDQcgCEECdCECIAcNASAGQQA2AkwgBkKAgICAEDcCRCAGQcQAakEAQQQQJyAGKAJEIQcgBigCSCEJIAYoAkwhCAwCC0EAIQIgBkEANgIQIAZCgICAgMAANwIIIAZBADYCHCAGQoCAgIDAADcCFCAGQQA2AiggBkKAgICAwAA3AiAgBkEANgI0IAZCgICAgMAANwIsIAZBADYCQCAGQoCAgIDAADcCOEEEIQdBACEBCxBzQQEhDiAHQQEQZCIJRQ0FIAYgCTYCSCAGIAc2AkRBACEICyAJIAhqIAE2AAAgBiAIQQRqIgg2AkwgBigCDCEOAkAgAUECdCIBIAcgCGtNDQAgBkHEAGogCCABECcgBigCRCEHIAYoAkghCSAGKAJMIQgLAkAgAUUNACAJIAhqIA4gAfwKAAALIAYgCCABaiIBNgJMIAYoAhghDwJAIAYoAhxBAnQiCCAHIAFrTQ0AIAZBxABqIAEgCBAnIAYoAkQhByAGKAJMIQELIAYoAkghCQJAIAhFDQAgCSABaiAPIAj8CgAACyAGIAEgCGoiATYCTCAGKAIkIQ0CQCAGKAIoQQJ0IgggByABa00NACAGQcQAaiABIAgQJyAGKAJEIQcgBigCSCEJIAYoAkwhAQsCQCAIRQ0AIAkgAWogDSAI/AoAAAsgBiABIAhqIgE2AkwgBigCMCEQAkAgBigCNEECdCIIIAcgAWtNDQAgBkHEAGogASAIECcgBigCRCEHIAYoAkghCSAGKAJMIQELAkAgCEUNACAJIAFqIBAgCPwKAAALIAYgASAIaiIBNgJMIAYoAjwhCQJAIAIgByABa00NACAGQcQAaiABIAIQJyAGKAJEIQcgBigCTCEBCyAGKAJIIQgCQCACRQ0AIAggAWogCSAC/AoAAAsgBiABIAJqIgI2AkwCQAJAIAcgAksNACAIIQEMAQsCQCACDQBBASEBIAggB0EBEF4MAQsgCCAHQQEgAhBZIgFFDQYLAkAgBigCOCIHRQ0AIAkgB0ECdEEEEF4LAkAgBigCLCIHRQ0AIBAgB0ECdEEEEF4LAkAgBigCICIHRQ0AIA0gB0ECdEEEEF4LAkAgBigCFCIHRQ0AIA8gB0ECdEEEEF4LAkAgBigCCCIHRQ0AIA4gB0ECdEEEEF4LIAAgAjYCBCAAIAE2AgAgBkHQAGokAA8LQQQgCBBSAAtBBCAIEFIAC0EEIAgQUgALQQQgCBBSAAsgDiAHEFIAC0EBIAIQUgALQQQgCBBSAAvQCAELfyMAQTBrIggkACAIEEo2AgBBACEJQQAhCgJAIARFDQACQAJAIAYgBEF/ak0NACAEQQNxIQsCQCAEQQRPDQBBACEKQQAhDAwCCyAEQfz///8BcSENQQAhCiAFIQ5BACEMA0AgDkEMaigCACAOQQhqKAIAIA5BBGooAgAgDigCACAKampqaiEKIA5BEGohDiANIAxBBGoiDEcNAAwCCwsgBiAGQeiHwAAQNAALIAtFDQAgBSAMQQJ0aiEOA0AgDigCACAKaiEKIA5BBGohDiALQX9qIgsNAAsLAkACQAJAAkACQAJAAkAgCiAEakECdEEIaiIOQQBIDQAgBEECdCIPQQhqIRACQAJAAkAgDg0AIAhBADYCDCAIQoCAgIAQNwIEDAELEHNBASEJIA5BARBkIgpFDQJBACELIAhBADYCDCAIIAo2AgggCCAONgIEIBAgDk0NAQsgCEEEakEAIBAQJyAIKAIIIQogCCgCDCELCwJAIA9BB2oiDkUNACAKIAtqQQAgDvwLAAsgCiALIA5qIg5qQQA6AAAgCCAOQQFqIg42AgwgDkEDTQ0BIAogBDYAAEEAIQ4gB0EASA0CAkACQCAHDQBBASEJDAELEHNBASEOIAdBARBlIglFDQMLAkAgBA0AQQAhCyAIKAIMIQwMBQsgBEECdCERIAZBAnQhEkEAIQ5BACELA0ACQAJAAkAgEiAORg0AIAUgDmooAgAiDSADIA5qKAIAIgxqIgogDEECaiIMSQ0BIAogAksNASAOQQhqIAgoAgwiBE0NAiAOQQRqIA5BCGogBEHIh8AAEBYACyAGIAZBqIfAABA0AAsgDCAKIAJB2IfAABAWAAsgCCgCCCIKIA5qQQRqIAs2AAAgCEEQaiAIIAEgDGogDUF+aiAJIAcQLAJAIAgtABBBAUcNACAIIAgtABE6ABsgCEEBrUIghiAIQRtqrYQ3AyggCEEcakHPgcAAIAhBKGoQESAIKAIcIQ4gCCgCICIMIAgoAiQQayELAkAgDkUNACAMIA5BARBeCyAAQQA2AgAgACALNgIEAkAgB0UNACAJIAdBARBeCyAIKAIEIg5FDQcgCiAOQQEQXgwHCyAIKAIUIgogB0sNBAJAIAogCCgCBCAEa00NACAIQQRqIAQgChAnCyAIKAIMIQwCQCAKRQ0AIAgoAgggDGogCSAK/AoAAAsgCCAMIApqIgw2AgwgCiALaiELIBEgDkEEaiIORg0FDAALCyAJIA4QUgALQQBBBCAOQYiHwAAQFgALIA4gBxBSAAtBACAKIAdBuIfAABAWAAsgD0EEaiEKAkAgECAMTQ0AIAogECAMQZiHwAAQFgALIAgoAggiDiAKaiALNgAAAkAgCCgCBCIKIAxNDQAgDiAKQQEgDBBZIg5FDQILIAAgDDYCBCAAIA42AgAgB0UNACAJIAdBARBeCyAIEGwgCEEwaiQADwtBASAMEFIAC/QGAQh/AkACQCABIABBA2pBfHEiAiAAayIDSQ0AIAEgA2siBEEESQ0AIARBA3EhBUEAIQZBACEBAkAgAiAARg0AQQAhB0EAIQECQCAAIAJrIghBfEsNAEEAIQdBACEBA0AgASAAIAdqIgIsAABBv39KaiACQQFqLAAAQb9/SmogAkECaiwAAEG/f0pqIAJBA2osAABBv39KaiEBIAdBBGoiBw0ACwsgACAHaiECA0AgASACLAAAQb9/SmohASACQQFqIQIgCEEBaiIIDQALCyAAIANqIQgCQCAFRQ0AIAggBEH8////B3FqIgIsAABBv39KIQYgBUEBRg0AIAYgAiwAAUG/f0pqIQYgBUECRg0AIAYgAiwAAkG/f0pqIQYLIARBAnYhAyAGIAFqIQcDQCAIIQQgA0UNAiADQcABIANBwAFJGyIGQQNxIQUCQAJAIAZBAnQiCUHwB3EiAQ0AQQAhAgwBCyAEIAFqIQBBACECIAQhAQNAIAFBDGooAgAiCEF/c0EHdiAIQQZ2ckGBgoQIcSABQQhqKAIAIghBf3NBB3YgCEEGdnJBgYKECHEgAUEEaigCACIIQX9zQQd2IAhBBnZyQYGChAhxIAEoAgAiCEF/c0EHdiAIQQZ2ckGBgoQIcSACampqaiECIAFBEGoiASAARw0ACwsgAyAGayEDIAQgCWohCCACQQh2Qf+B/AdxIAJB/4H8B3FqQYGABGxBEHYgB2ohByAFRQ0ACyAEIAZB/AFxQQJ0aiICKAIAIgFBf3NBB3YgAUEGdnJBgYKECHEhAQJAIAVBAUYNACACKAIEIghBf3NBB3YgCEEGdnJBgYKECHEgAWohASAFQQJGDQAgAigCCCICQX9zQQd2IAJBBnZyQYGChAhxIAFqIQELIAFBCHZB/4EccSABQf+B/AdxakGBgARsQRB2IAdqIQcMAQsCQCABDQBBAA8LIAFBA3EhCAJAAkAgAUEETw0AQQAhAkEAIQcMAQsgAUF8cSEDQQAhAkEAIQcDQCAHIAAgAmoiASwAAEG/f0pqIAFBAWosAABBv39KaiABQQJqLAAAQb9/SmogAUEDaiwAAEG/f0pqIQcgAyACQQRqIgJHDQALCyAIRQ0AIAAgAmohAQNAIAcgASwAAEG/f0pqIQcgAUEBaiEBIAhBf2oiCA0ACwsgBwv1BgEGfwJAAkACQAJAAkACQAJAAkAgAEF8aiIEKAIAIgVBeHEiBkEEQQggBUEDcSIHGyABakkNACABQSdqIQgCQCAHRQ0AIAYgCEsNAgsCQAJAIAJBCUkNACACIAMQEiICDQFBAA8LQQAhAiADQcz/e0sNCEEQIANBC2pBeHEgA0ELSRshASAAQXhqIQgCQCAHDQAgAUGAAkkNByAIRQ0HIAYgAU0NByAGIAFrQYCACEsNByAADwsgCCAGaiEHAkACQCAGIAFPDQAgB0EAKAKsn0BGDQECQCAHQQAoAqifQEYNACAHKAIEIgVBAnENCSAFQXhxIgkgBmoiBSABSQ0JIAcgCRATAkAgBSABayIHQRBJDQAgBCABIAQoAgBBAXFyQQJyNgIAIAggAWoiASAHQQNyNgIEIAggBWoiBSAFKAIEQQFyNgIEIAEgBxAQDAkLIAQgBSAEKAIAQQFxckECcjYCACAIIAVqIgEgASgCBEEBcjYCBAwIC0EAKAKgn0AgBmoiByABSQ0IAkACQCAHIAFrIgZBD0sNACAEIAVBAXEgB3JBAnI2AgAgCCAHaiIBIAEoAgRBAXI2AgRBACEGQQAhAQwBCyAEIAEgBUEBcXJBAnI2AgAgCCABaiIBIAZBAXI2AgQgCCAHaiIHIAY2AgAgByAHKAIEQX5xNgIEC0EAIAE2AqifQEEAIAY2AqCfQAwHCyAGIAFrIgZBD00NBiAEIAEgBUEBcXJBAnI2AgAgCCABaiIBIAZBA3I2AgQgByAHKAIEQQFyNgIEIAEgBhAQDAYLQQAoAqSfQCAGaiIHIAFLDQQMBgsCQCADIAEgAyABSRsiA0UNACACIAAgA/wKAAALIAQoAgAiA0F4cSIHQQRBCCADQQNxIgMbIAFqSQ0CIANFDQYgByAITQ0GQdyXwABBLkGMmMAAEFMAC0Gcl8AAQS5BzJfAABBTAAtB3JfAAEEuQYyYwAAQUwALQZyXwABBLkHMl8AAEFMACyAEIAEgBUEBcXJBAnI2AgAgCCABaiIFIAcgAWsiAUEBcjYCBEEAIAE2AqSfQEEAIAU2AqyfQAsgCEUNACAADwsgAxABIgFFDQECQCADQXxBeCAEKAIAIgJBA3EbIAJBeHFqIgIgAyACSRsiA0UNACABIAAgA/wKAAALIAEhAgsgABAMCyACC/EFAgh/AX4CQAJAIAENACAFQQFqIQYgACgCCCEHQS0hCAwBC0ErQYCAxAAgACgCCCIHQYCAgAFxIgEbIQggAUEVdiAFaiEGCwJAAkAgB0GAgIAEcQ0AQQAhAgwBCwJAAkAgA0EQSQ0AIAIgAxAJIQEMAQsCQCADDQBBACEBDAELIANBA3EhCQJAAkAgA0EETw0AQQAhCkEAIQEMAQsgA0EMcSELQQAhCkEAIQEDQCABIAIgCmoiDCwAAEG/f0pqIAxBAWosAABBv39KaiAMQQJqLAAAQb9/SmogDEEDaiwAAEG/f0pqIQEgCyAKQQRqIgpHDQALCyAJRQ0AIAIgCmohDANAIAEgDCwAAEG/f0pqIQEgDEEBaiEMIAlBf2oiCQ0ACwsgASAGaiEGCwJAAkAgBiAALwEMIgtPDQACQAJAAkAgB0GAgIAIcQ0AIAsgBmshDUEAIQFBACELAkACQAJAIAdBHXZBA3EOBAIAAQACCyANIQsMAQsgDUH+/wNxQQF2IQsLIAdB////AHEhBiAAKAIEIQkgACgCACEKA0AgAUH//wNxIAtB//8DcU8NAkEBIQwgAUEBaiEBIAogBiAJKAIQEQUARQ0ADAULCyAAIAApAggiDqdBgICA/3lxQbCAgIACcjYCCEEBIQwgACgCACIKIAAoAgQiCSAIIAIgAxA/DQNBACEBIAsgBmtB//8DcSECA0AgAUH//wNxIAJPDQJBASEMIAFBAWohASAKQTAgCSgCEBEFAEUNAAwECwtBASEMIAogCSAIIAIgAxA/DQIgCiAEIAUgCSgCDBEHAA0CQQAhASANIAtrQf//A3EhAANAIAFB//8DcSICIABJIQwgAiAATw0DIAFBAWohASAKIAYgCSgCEBEFAEUNAAwDCwtBASEMIAogBCAFIAkoAgwRBwANASAAIA43AghBAA8LQQEhDCAAKAIAIgEgACgCBCIKIAggAiADED8NACABIAQgBSAKKAIMEQcAIQwLIAwLjgYBBX8gAEF4aiIBIABBfGooAgAiAkF4cSIAaiEDAkACQCACQQFxDQAgAkECcUUNASABKAIAIgIgAGohAAJAIAEgAmsiAUEAKAKon0BHDQAgAygCBEEDcUEDRw0BQQAgADYCoJ9AIAMgAygCBEF+cTYCBCABIABBAXI2AgQgAyAANgIADwsgASACEBMLAkACQAJAAkACQAJAIAMoAgQiAkECcQ0AIANBACgCrJ9ARg0CIANBACgCqJ9ARg0DIAMgAkF4cSICEBMgASACIABqIgBBAXI2AgQgASAAaiAANgIAIAFBACgCqJ9ARw0BQQAgADYCoJ9ADwsgAyACQX5xNgIEIAEgAEEBcjYCBCABIABqIAA2AgALIABBgAJJDQIgASAAEBVBACEBQQBBACgCwJ9AQX9qIgA2AsCfQCAADQQCQEEAKAKInUAiAEUNAEEAIQEDQCABQQFqIQEgACgCCCIADQALC0EAIAFB/x8gAUH/H0sbNgLAn0APC0EAIAE2AqyfQEEAQQAoAqSfQCAAaiIANgKkn0AgASAAQQFyNgIEAkAgAUEAKAKon0BHDQBBAEEANgKgn0BBAEEANgKon0ALIABBACgCuJ9AIgRNDQNBACgCrJ9AIgBFDQNBACECQQAoAqSfQCIFQSlJDQJBgJ3AACEBA0ACQCABKAIAIgMgAEsNACAAIAMgASgCBGpJDQQLIAEoAgghAQwACwtBACABNgKon0BBAEEAKAKgn0AgAGoiADYCoJ9AIAEgAEEBcjYCBCABIABqIAA2AgAPCwJAAkBBACgCmJ9AIgNBASAAQQN2dCICcQ0AQQAgAyACcjYCmJ9AIABB+AFxQZCdwABqIgAhAwwBCyAAQfgBcSIAQZCdwABqIQMgAEGYncAAaigCACEACyADIAE2AgggACABNgIMIAEgAzYCDCABIAA2AggPCwJAQQAoAoidQCIBRQ0AQQAhAgNAIAJBAWohAiABKAIIIgENAAsLQQAgAkH/HyACQf8fSxs2AsCfQCAFIARNDQBBAEF/NgK4n0ALC4oFAQd/AkACQCAAKAIIIgNBgICAwAFxRQ0AAkACQAJAAkACQCADQYCAgIABcUUNACAALwEOIgQNAUEAIQIMAgsCQCACQRBJDQAgASACEAkhBQwECwJAIAINAEEAIQUMBAsgAkEDcSEGAkACQCACQQRPDQBBACEHQQAhBQwBCyACQQxxIQRBACEHQQAhBQNAIAUgASAHaiIILAAAQb9/SmogCEEBaiwAAEG/f0pqIAhBAmosAABBv39KaiAIQQNqLAAAQb9/SmohBSAEIAdBBGoiB0cNAAsLIAZFDQMgASAHaiEIA0AgBSAILAAAQb9/SmohBSAIQQFqIQggBkF/aiIGDQAMBAsLIAEgAmohBkEAIQIgASEIIAQhBwNAIAgiBSAGRg0CAkACQCAFLAAAIghBf0wNACAFQQFqIQgMAQsCQCAIQWBPDQAgBUECaiEIDAELAkAgCEFwTw0AIAVBA2ohCAwBCyAFQQRqIQgLIAggBWsgAmohAiAHQX9qIgcNAAsLQQAhBwsgBCAHayEFCyAFIAAvAQwiCE8NACAIIAVrIQlBACEFQQAhBAJAAkACQCADQR12QQNxDgQCAAECAgsgCSEEDAELIAlB/v8DcUEBdiEECyADQf///wBxIQYgACgCBCEHIAAoAgAhAAJAA0AgBUH//wNxIARB//8DcU8NAUEBIQggBUEBaiEFIAAgBiAHKAIQEQUADQMMAAsLQQEhCCAAIAEgAiAHKAIMEQcADQFBACEFIAkgBGtB//8DcSECA0AgBUH//wNxIgQgAkkhCCAEIAJPDQIgBUEBaiEFIAAgBiAHKAIQEQUADQIMAAsLIAAoAgAgASACIAAoAgQoAgwRBwAhCAsgCAvABAEIfyMAQRBrIgQkAAJAAkACQCADQQFxDQAgAi0AACIFDQFBACEFDAILIAAgAiADQQF2IAEoAgwRBwAhBQwBCyABKAIMIQZBACEHA0AgAkEBaiEIAkACQAJAAkACQCAFwEF/Sg0AIAVB/wFxIglBgAFGDQEgCUHAAUcNAyAEIAE2AgQgBCAANgIAIARCoICAgAY3AgggAyAHQQN0aiIFKAIAIAQgBSgCBBEFAEUNAkEBIQUMBgsCQCAAIAggBUH/AXEiBSAGEQcADQAgCCAFaiECDAQLQQEhBQwFCwJAIAAgAkEDaiIFIAIvAAEiAiAGEQcADQAgBSACaiECDAMLQQEhBQwECyAHQQFqIQcgCCECDAELQaCAgIAGIQoCQCAFQQFxRQ0AIAJBBWohCCACKAABIQoLQQAhCQJAAkAgBUECcQ0AQQAhCyAIIQIMAQsgCEECaiECIAgvAAAhCwsCQAJAIAVBBHENACACIQgMAQsgAkECaiEIIAIvAAAhCQsCQAJAIAVBCHENACAIIQIMAQsgCEECaiECIAgvAAAhBwsCQCAFQRBxRQ0AIAMgC0H//wNxQQN0ai8BBCELCwJAIAVBIHFFDQAgAyAJQf//A3FBA3RqLwEEIQkLIAQgCTsBDiAEIAs7AQwgBCAKNgIIIAQgATYCBCAEIAA2AgACQCADIAdBA3RqIgUoAgAgBCAFKAIEEQUARQ0AQQEhBQwDCyAHQQFqIQcLIAItAAAiBQ0AC0EAIQULIARBEGokACAFC5MEAQl/IAAhAyACIQQCQCAAQegHSQ0AIAFBfGohBUEAIQYgACEHAkACQANAIAcgB0GQzgBuIgNBkM4AbGsiCEH//wNxQeQAbiEJAkACQCACIAZqIgRBfGogAk8NACAFIAJqIgogCUEBdCILLQDomUA6AAAgBEF9aiACSQ0BIARBfWogAkGwm8AAEDQACyAEQXxqIAJBsJvAABA0AAsgCkEBaiALQemZwABqLQAAOgAAAkAgBEF+aiACTw0AIApBAmogCCAJQeQAbGtBAXRB/v8HcSIJLQDomUA6AAAgBEF/aiACTw0CIApBA2ogCUHpmcAAai0AADoAACAFQXxqIQUgBkF8aiEGIAdB/6ziBEshBCADIQcgBEUNAwwBCwsgBEF+aiACQbCbwAAQNAALIARBf2ogAkGwm8AAEDQACyACIAZqIQQLAkACQCADQQlLDQAgAyEKIAQhBwwBCyADQf//A3FB5ABuIQoCQAJAIARBfmoiByACTw0AIAEgB2ogAyAKQeQAbGtB//8DcUEBdCIGLQDomUA6AAAgBEF/aiIEIAJPDQEgASAEaiAGQemZwABqLQAAOgAADAILIAcgAkGwm8AAEDQACyAEIAJBsJvAABA0AAsCQAJAIABFDQAgCkUNAQsCQCAHQX9qIgcgAkkNACAHIAJBsJvAABA0AAsgASAHaiAKQQF0LQDpmUA6AAALIAcLhQQBAn8gACABaiECAkACQCAAKAIEIgNBAXENACADQQJxRQ0BIAAoAgAiAyABaiEBAkAgACADayIAQQAoAqifQEcNACACKAIEQQNxQQNHDQFBACABNgKgn0AgAiACKAIEQX5xNgIEIAAgAUEBcjYCBCACIAE2AgAMAgsgACADEBMLAkACQAJAAkAgAigCBCIDQQJxDQAgAkEAKAKsn0BGDQIgAkEAKAKon0BGDQMgAiADQXhxIgMQEyAAIAMgAWoiAUEBcjYCBCAAIAFqIAE2AgAgAEEAKAKon0BHDQFBACABNgKgn0APCyACIANBfnE2AgQgACABQQFyNgIEIAAgAWogATYCAAsCQCABQYACSQ0AIAAgARAVDwsCQAJAQQAoApifQCICQQEgAUEDdnQiA3ENAEEAIAIgA3I2ApifQCABQfgBcUGQncAAaiIBIQIMAQsgAUH4AXEiAUGQncAAaiECIAFBmJ3AAGooAgAhAQsgAiAANgIIIAEgADYCDCAAIAI2AgwgACABNgIIDwtBACAANgKsn0BBAEEAKAKkn0AgAWoiATYCpJ9AIAAgAUEBcjYCBCAAQQAoAqifQEcNAUEAQQA2AqCfQEEAQQA2AqifQA8LQQAgADYCqJ9AQQBBACgCoJ9AIAFqIgE2AqCfQCAAIAFBAXI2AgQgACABaiABNgIADwsLlwMBBn8jAEEQayIDJAACQAJAAkACQAJAAkACQCACQQFxRQ0AIAJBAXYhBAwBCyABLQAAIgRFDQFBACEFIAEhBkEAIQcDQCAGQQFqIQYCQAJAIATAQX9KDQACQCAEQf8BcUGAAUcNACAHIAYvAAAiBGohByAGIARqQQJqIQYMAgsgBiAEQQNxQRh3IghBBXRBgICAgARxIAhBgICACHFBB3QgCEGAgICAAnFyckEddmogBEEBdkECcWogBEECdkECcWohBiAHRSAFciEFDAELIAYgBEH/AXEiBGohBiAHIARqIQcLIAYtAAAiBA0AC0EAIQQgBSAHQRBJcQ0AQQAhCCAHQQF0IgRBAEgNBAsgBA0BC0EBIQZBACEEDAELEHNBASEIIARBARBkIgZFDQELIANBADYCCCADIAY2AgQgAyAENgIAIANBtJjAACABIAIQDkUNAUHcmMAAQdYAIANBD2pBzJjAAEG0mcAAEDAACyAIIAQQUgALIAAgAykCADcCACAAQQhqIANBCGooAgA2AgAgA0EQaiQAC+8CAQV/QQAhAgJAIAFBzf97IABBECAAQRBLGyIAa08NACAAQRAgAUELakF4cSABQQtJGyIDakEMahABIgFFDQAgAUF4aiECAkACQCAAQX9qIgQgAXENACACIQAMAQsgAUF8aiIFKAIAIgZBeHEgBCABakEAIABrcUF4aiIBQQAgACABIAJrQRBLG2oiACACayIBayEEAkAgBkEDcUUNACAAIAQgACgCBEEBcXJBAnI2AgQgACAEaiIEIAQoAgRBAXI2AgQgBSABIAUoAgBBAXFyQQJyNgIAIAIgAWoiBCAEKAIEQQFyNgIEIAIgARAQDAELIAIoAgAhAiAAIAQ2AgQgACACIAFqNgIACwJAIAAoAgQiAUEDcUUNACABQXhxIgIgA0EQak0NACAAIAMgAUEBcXJBAnI2AgQgACADaiIBIAIgA2siA0EDcjYCBCAAIAJqIgIgAigCBEEBcjYCBCABIAMQEAsgAEEIaiECCyACC4kDAQR/IAAoAgwhAgJAAkACQAJAIAFBgAJJDQAgACgCGCEDAkACQAJAIAIgAEcNACAAQRRBECAAKAIUIgIbaigCACIBDQFBACECDAILIAAoAggiASACNgIMIAIgATYCCAwBCyAAQRRqIABBEGogAhshBANAIAQhBSABIgJBFGogAkEQaiACKAIUIgEbIQQgAkEUQRAgARtqKAIAIgENAAsgBUEANgIACyADRQ0CAkACQCAAIAAoAhxBAnRBgJzAAGoiASgCAEYNACADKAIQIABGDQEgAyACNgIUIAINAwwECyABIAI2AgAgAkUNBAwCCyADIAI2AhAgAg0BDAILAkAgAiAAKAIIIgRGDQAgBCACNgIMIAIgBDYCCA8LQQBBACgCmJ9AQX4gAUEDdndxNgKYn0APCyACIAM2AhgCQCAAKAIQIgFFDQAgAiABNgIQIAEgAjYCGAsgACgCFCIBRQ0AIAIgATYCFCABIAI2AhgPCw8LQQBBACgCnJ9AQX4gACgCHHdxNgKcn0AL6AIBBH8jAEEwayIDJAAgAxBKNgIMQQAhBAJAAkACQAJAIAJBAnQiBUEASA0AAkADQEEBIQYCQCAFRQ0AEHNBASEEIAVBARBlIgZFDQMLIANBEGogA0EMaiABIAIgBiAFECwCQCADLQAQQQFHDQAgAy0AEUUNAiAFQYCAgMAASw0EAkAgBUUNACAGIAVBARBeCyAFQQF0IQUMAQsLIAAgBjYCBCAAIAU2AgAgACADKAIUIgYgBSAGIAVJGzYCCAwECyADQQA6ABsgA0EBrUIghiADQRtqrYQ3AyggA0EcakHPgcAAIANBKGoQESADKAIcIQIgAygCICIEIAMoAiQQayEBIABBgICAgHg2AgAgACABNgIEAkAgAkUNACAEIAJBARBeCyAFRQ0DDAILIAQgBRBSAAtB+IfAAEEeEGshAiAAQYCAgIB4NgIAIAAgAjYCBAsgBiAFQQEQXgsgA0EMahBsIANBMGokAAvIAgEEf0EAIQICQCABQYACSQ0AQR8hAiABQf///wdLDQAgAUEmIAFBCHZnIgJrdkEBcSACQQF0a0E+aiECCyAAQgA3AhAgACACNgIcIAJBAnRBgJzAAGohAwJAQQAoApyfQEEBIAJ0IgRxDQAgAyAANgIAIAAgAzYCGCAAIAA2AgwgACAANgIIQQBBACgCnJ9AIARyNgKcn0APCwJAAkACQCADKAIAIgQoAgRBeHEgAUcNACAEIQIMAQsgAUEAQRkgAkEBdmsgAkEfRht0IQMDQCAEIANBHXZBBHFqIgUoAhAiAkUNAiADQQF0IQMgAiEEIAIoAgRBeHEgAUcNAAsLIAIoAggiAyAANgIMIAIgADYCCCAAQQA2AhggACACNgIMIAAgAzYCCA8LIAVBEGogADYCACAAIAQ2AhggACAANgIMIAAgADYCCAulAgIBfwF+IwBBIGsiBCQAAkACQAJAIAAgAksNACABIAJLDQFBHK1CIIYhBSAAIAFNDQIgBCAANgIIIAQgATYCDCAEIAUgBEEMaq2ENwMYIAQgBSAEQQhqrYQ3AxBBgIDAACAEQRBqIAMQPAALIAQgADYCCCAEIAI2AgwgBEEcrUIghiIFIARBDGqthDcDGCAEIAUgBEEIaq2ENwMQQd+AwAAgBEEQaiADEDwACyAEIAE2AgggBCACNgIMIARBHK1CIIYiBSAEQQxqrYQ3AxggBCAFIARBCGqthDcDEEGYgcAAIARBEGogAxA8AAsgBCABNgIIIAQgAjYCDCAEIAUgBEEMaq2ENwMYIAQgBSAEQQhqrYQ3AxBBmIHAACAEQRBqIAMQPAALpQIBBn8gACgCCCECAkACQCABQYABTw0AQQEhAwwBCwJAIAFBgBBPDQBBAiEDDAELQQNBBCABQYCABEkbIQMLIAIhBAJAIAMgACgCACACa00NACAAIAIgA0EBQQEQJCAAKAIIIQQLIAAoAgQgBGohBAJAAkAgAUGAAUkNACABQT9xQYB/ciEFIAFBBnYhBgJAIAFBgBBPDQAgBCAFOgABIAQgBkHAAXI6AAAMAgsgAUEMdiEHIAZBP3FBgH9yIQYCQCABQf//A0sNACAEIAU6AAIgBCAGOgABIAQgB0HgAXI6AAAMAgsgBCAFOgADIAQgBjoAAiAEIAdBP3FBgH9yOgABIAQgAUESdkFwcjoAAAwBCyAEIAE6AAALIAAgAyACajYCCEEAC6ECAQZ/IAAoAgghAgJAAkAgAUGAAU8NAEEBIQMMAQsCQCABQYAQTw0AQQIhAwwBC0EDQQQgAUGAgARJGyEDCyACIQQCQCADIAAoAgAgAmtNDQAgACACIAMQKSAAKAIIIQQLIAAoAgQgBGohBAJAAkAgAUGAAUkNACABQT9xQYB/ciEFIAFBBnYhBgJAIAFBgBBPDQAgBCAFOgABIAQgBkHAAXI6AAAMAgsgAUEMdiEHIAZBP3FBgH9yIQYCQCABQf//A0sNACAEIAU6AAIgBCAGOgABIAQgB0HgAXI6AAAMAgsgBCAFOgADIAQgBjoAAiAEIAdBP3FBgH9yOgABIAQgAUESdkFwcjoAAAwBCyAEIAE6AAALIAAgAyACajYCCEEAC4MCAQN/IwBBMGsiBCQAIAQQSjYCDEEAIQUCQCADQQBIDQBBASEGAkAgA0UNABBzQQEhBSADQQEQZSIGRQ0BCyAEQRBqIARBDGogASACIAYgAxAsAkACQCAELQAQQQFHDQAgBCAELQAROgAbIARBAa1CIIYgBEEbaq2ENwMoIARBHGpBz4HAACAEQShqEBEgBCgCHCEFIAQoAiAiASAEKAIkEGshAgJAIAVFDQAgASAFQQEQXgsgAEGAgICAeDYCACAAIAI2AgQgA0UNASAGIANBARBeDAELIAAgAzYCCCAAIAY2AgQgACADNgIACyAEQQxqEGwgBEEwaiQADwsgBSADEFIAC4gCAgN/AX4jAEEwayICJAACQCABKAIAQYCAgIB4Rw0AIAEoAgwhAyACQSRqQQhqIgRBADYCACACQoCAgIAQNwIkIAJBJGpBvJbAACADKAIAIgMoAgAgAygCBBAOGiACQRhqQQhqIAQoAgAiAzYCACACIAIpAiQiBTcDGCABQQhqIAM2AgAgASAFNwIACyABKQIAIQUgAUKAgICAEDcCACACQQhqQQhqIgMgAUEIaiIBKAIANgIAIAFBADYCACACIAU3AwgQcwJAQQxBBBBkIgENAEEEQQwQaAALIAEgAikDCDcCACABQQhqIAMoAgA2AgAgAEGcmMAANgIEIAAgATYCACACQTBqJAALzgEBAn8jAEEQayIEJAAgBEEEaiABIAIgAxAZAkAgAkUNACABIAJBARBeCwJAAkACQCAEKAIEIgNBgICAgHhHDQBBASEDQQAhASAEKAIIIQVBACECDAELIAQoAgghBQJAAkAgAyAEKAIMIgJLDQAgBSEBDAELAkAgAg0AQQEhASAFIANBARBeDAELIAUgA0EBIAIQWSIBRQ0CC0EAIQVBACEDCyAAIAM2AgwgACAFNgIIIAAgAjYCBCAAIAE2AgAgBEEQaiQADwtBASACEFIAC8wBAQN/IwBBEGsiAyQAIANBBGogASACEBQCQCACRQ0AIAEgAkEBEF4LAkACQAJAIAMoAgQiBEGAgICAeEcNAEEBIQRBACEBIAMoAgghBUEAIQIMAQsgAygCCCEFAkACQCAEIAMoAgwiAksNACAFIQEMAQsCQCACDQBBASEBIAUgBEEBEF4MAQsgBSAEQQEgAhBZIgFFDQILQQAhBUEAIQQLIAAgBDYCDCAAIAU2AgggACACNgIEIAAgATYCACADQRBqJAAPC0EBIAIQUgAL3AEBAn8jAEEgayIFJAACQAJAQQEQOUH/AXEiBkECRg0AIAZBAXFFDQEgBUEIaiAAIAEoAhgRBAAMAQtBACgC2J9AIgZBf0wNAEEAIAZBAWo2AtifQAJAAkBBACgC3J9ARQ0AIAUgACABKAIUEQQAIAUgBDoAHSAFIAM6ABwgBSACNgIYIAUgBSkDADcCEEEAKALcn0AgBUEQakEAKALgn0AoAhQRBAAMAQtBgICAgHggBRBMC0EAQQAoAtifQEF/ajYC2J9AQQBBADoA0J9AIANFDQAgACABEF8ACwALtgECAn8BfkEBIQZBBCEHAkACQCAEIAVqQX9qQQAgBGtxrSADrX4iCEIgiKdFDQBBACEDDAELAkAgCKciA0GAgICAeCAEa00NAEEAIQMMAQsCQAJAAkACQCABRQ0AIAIgBSABbCAEIAMQWSEHDAELAkAgAw0AIAQhBwwCCxBzIAMgBBBkIQcLIAcNACAAIAQ2AgQMAQsgACAHNgIEQQAhBgtBCCEHCyAAIAdqIAM2AgAgACAGNgIAC7YBAgJ/AX5BASEGQQQhBwJAAkAgBCAFakF/akEAIARrca0gA61+IghCIIinRQ0AQQAhAwwBCwJAIAinIgNBgICAgHggBGtNDQBBACEDDAELAkACQAJAAkAgAUUNACACIAUgAWwgBCADEFkhBwwBCwJAIAMNACAEIQcMAgsQcyADIAQQZCEHCyAHDQAgACAENgIEDAELIAAgBzYCBEEAIQYLQQghBwsgACAHaiADNgIAIAAgBjYCAAu0AQEBfyMAQRBrIgskACALQQhqIAEgAiADIAQgBSAGIAcgCCAJIAoQAwJAIAZFDQAgBSAGQQJ0QQQQXgsCQCAERQ0AIAMgBEECdEEEEF4LAkAgAkUNACABIAJBARBeCwJAAkAgCygCCCIGDQBBASEEQQAhBiALKAIMIQJBACEFDAELQQAhAiALKAIMIQVBACEECyAAIAQ2AgwgACACNgIIIAAgBTYCBCAAIAY2AgAgC0EQaiQAC7IBAQF/IwBBEGsiCiQAIApBCGogASACIAMgBCAFIAYgByAIIAkQBAJAIAZFDQAgBSAGQQJ0QQQQXgsCQCAERQ0AIAMgBEECdEEEEF4LAkAgAkUNACABIAJBARBeCwJAAkAgCigCCCIGDQBBASEEQQAhBiAKKAIMIQJBACEFDAELQQAhAiAKKAIMIQVBACEECyAAIAQ2AgwgACACNgIIIAAgBTYCBCAAIAY2AgAgCkEQaiQAC64BAQF/IwBBEGsiCCQAIAhBCGogASACIAMgBCAFIAYgBxAIAkAgBkUNACAFIAZBAnRBBBBeCwJAIARFDQAgAyAEQQJ0QQQQXgsCQCACRQ0AIAEgAkEBEF4LAkACQCAIKAIIIgYNAEEBIQRBACEGIAgoAgwhAkEAIQUMAQtBACECIAgoAgwhBUEAIQQLIAAgBDYCDCAAIAI2AgggACAFNgIEIAAgBjYCACAIQRBqJAALmAEBA38CQAJAAkACQCACIAFPDQAgAkEBaiIDIAFPDQEgAkECaiIEIAFPDQIgAkEDaiIFIAFJDQMgBSABQfiFwAAQNAALIAIgAUHIhcAAEDQACyADIAFB2IXAABA0AAsgBCABQeiFwAAQNAALIAAgA2otAABBCHQgACACai0AAHIgACAEai0AAEEQdHIgACAFai0AAEEYdHK+C5UBAQF/IwBBEGsiBSQAAkAgAiABaiIBIAJPDQBBAEEAEFIACyAFQQRqIAAoAgAiAiAAKAIEIAEgAkEBdCICIAEgAksbIgJBCEEEIARBAUYbIgEgAiABSxsiAiADIAQQHwJAIAUoAgRBAUcNACAFKAIIIAUoAgwQUgALIAUoAgghBCAAIAI2AgAgACAENgIEIAVBEGokAAuXAQEDfwJAAkACQAJAIAIgAU8NACACQQFqIgMgAU8NASACQQJqIgQgAU8NAiACQQNqIgUgAUkNAyAFIAFBuIbAABA0AAsgAiABQYiGwAAQNAALIAMgAUGYhsAAEDQACyAEIAFBqIbAABA0AAsgACADai0AAEEIdCAAIAJqLQAAciAAIARqLQAAQRB0ciAAIAVqLQAAQRh0cguXAQEDfwJAAkACQAJAIAIgAU8NACACQQFqIgMgAU8NASACQQJqIgQgAU8NAiACQQNqIgUgAUkNAyAFIAFB+IbAABA0AAsgAiABQciGwAAQNAALIAMgAUHYhsAAEDQACyAEIAFB6IbAABA0AAsgACADai0AAEEIdCAAIAJqLQAAciAAIARqLQAAQRB0ciAAIAVqLQAAQRh0cguLAQEBfyMAQRBrIgMkAAJAIAIgAWoiASACTw0AQQBBABBSAAsgA0EEaiAAKAIAIgIgACgCBCABIAJBAXQiAiABIAJLGyICQQggAkEISxsiAkEBQQEQHgJAIAMoAgRBAUcNACADKAIIIAMoAgwQUgALIAMoAgghASAAIAI2AgAgACABNgIEIANBEGokAAukAQIDfwF+IwBBIGsiAiQAAkAgASgCAEGAgICAeEcNACABKAIMIQMgAkEUakEIaiIEQQA2AgAgAkKAgICAEDcCFCACQRRqQbyWwAAgAygCACIDKAIAIAMoAgQQDhogAkEIakEIaiAEKAIAIgM2AgAgAiACKQIUIgU3AwggAUEIaiADNgIAIAEgBTcCAAsgAEGcmMAANgIEIAAgATYCACACQSBqJAALhwEBAX8jAEEQayIDJAACQCACIAFqIgEgAk8NAEEAQQAQUgALIANBBGogACgCACICIAAoAgQgASACQQF0IgIgASACSxsiAkEIIAJBCEsbIgIQKgJAIAMoAgRBAUcNACADKAIIIAMoAgwQUgALIAMoAgghASAAIAI2AgAgACABNgIEIANBEGokAAuEAQACQAJAIANBAE4NAEEBIQFBBCECQQAhAwwBCwJAAkACQAJAIAFFDQAgAiABQQEgAxBZIQEMAQsCQCADDQBBASEBDAILEHMgA0EBEGQhAQsgAQ0AQQEhASAAQQE2AgQMAQsgACABNgIEQQAhAQtBCCECCyAAIAJqIAM2AgAgACABNgIAC4gBAQN/IwBBEGsiASQAAkAgACgCACICKAIEIgNBAXFFDQAgAigCACECIAEgA0EBdjYCBCABIAI2AgAgAUHUlsAAIAAoAgQgACgCCCIALQAIIAAtAAkQHQALIAFBgICAgHg2AgAgASAANgIMIAFB8JbAACAAKAIEIAAoAggiAC0ACCAALQAJEB0AC4QBAQJ/IwBBEGsiBiQAQQAhByAGQQA2AgwCQAJAAkACQAJAIAEoAgAgAiADIAQgBSAGQQxqEFUOBAECAAMAC0GwicAAQewAQZyKwAAQQgALIAAgBigCDDYCBAwCCyAAQQA6AAFBASEHDAELQQEhByAAQQE6AAELIAAgBzoAACAGQRBqJAALawEDfyMAQRBrIgEkACABQQRqIAAoAgAiAiAAKAIEIAJBAXQiAkEEIAJBBEsbIgJBBEEEEB4CQCABKAIEQQFHDQAgASgCCCABKAIMEFIACyABKAIIIQMgACACNgIAIAAgAzYCBCABQRBqJAALYAECfwJAAkAgAkEQdiACQf//A3FBAEdqIgJAACIDQX9HDQBBACECQQAhBAwBCyACQRB0IgRBcGogBCADQRB0IgJBACAEa0YbIQQLIABBADYCCCAAIAQ2AgQgACACNgIAC2ABAn8CQAJAIABBfGooAgAiA0F4cSIEQQRBCCADQQNxIgMbIAFqSQ0AAkAgA0UNACAEIAFBJ2pLDQILIAAQDA8LQZyXwABBLkHMl8AAEFMAC0Hcl8AAQS5BjJjAABBTAAtZAQF/IwBBIGsiBSQAIAUgATYCBCAFIAA2AgAgBSADNgIMIAUgAjYCCCAFQR6tQiCGIAVBCGqthDcDGCAFQR+tQiCGIAWthDcDEEHogcAAIAVBEGogBBA8AAtoAQJ/QQAhAQJAIAAoAgBBDEcNAEEAIQFBrNoAIAAoAgQiAkEAKAL4m0AgAhsRAwAiAkUNAAJAQazaAEUNACACQQBBrNoA/AsACyACIAAoAggiAEEAKAL8m0AgABs2AqhaIAIhAQsgAQtZAQJ/IAEoAgAhAiABQQA2AgACQAJAIAJFDQAgASgCBCEDEHNBCEEEEGQiAUUNASABIAM2AgQgASACNgIAIABBjJfAADYCBCAAIAE2AgAPCwALQQRBCBBoAAtRAQF/IwBBEGsiBiQAIAZBCGogASACIAMgBCAFEAcgBigCDCEFIAYoAgghBAJAIAJFDQAgASACQQEQXgsgACAENgIAIAAgBTYCBCAGQRBqJAALTgIBfwF+IwBBIGsiAyQAIAMgATYCDCADIAA2AgggA0EcrUIghiIEIANBCGqthDcDGCADIAQgA0EMaq2ENwMQQaiAwAAgA0EQaiACEDwAC08BAX8jAEEQayIFJAAgBUEIaiABIAIgAyAEEAYgBSgCDCEEIAUoAgghAwJAIAJFDQAgASACQQEQXgsgACADNgIAIAAgBDYCBCAFQRBqJAALUAEBfwJAIAIgACgCACAAKAIIIgNrTQ0AIAAgAyACQQFBARAkIAAoAgghAwsCQCACRQ0AIAAoAgQgA2ogASAC/AoAAAsgACADIAJqNgIIQQALRQACQAJAIAFBCUkNACABIAAQEiEBDAELIAAQASEBCwJAIAFFDQAgAUF8ai0AAEEDcUUNACAARQ0AIAFBACAA/AsACyABC0wBAX8CQCACIAAoAgAgACgCCCIDa00NACAAIAMgAhApIAAoAgghAwsCQCACRQ0AIAAoAgQgA2ogASAC/AoAAAsgACADIAJqNgIIQQALUgECf0EAIQFBAEEAKALUn0AiAkEBajYC1J9AAkAgAkEASA0AQQEhAUEALQDQn0ANAEEAIAA6ANCfQEEAQQAoAsyfQEEBajYCzJ9AQQIhAQsgAQs9AQF/IwBBEGsiAiQAIAFBAUEBQQAgAkEGaiAAKAIAIAJBBmpBChAPIgBqQQogAGsQCyEAIAJBEGokACAAC0cBAn8gASgCBCECIAEoAgAhAxBzAkBBCEEEEGQiAQ0AQQRBCBBoAAsgASACNgIEIAEgAzYCACAAQYyXwAA2AgQgACABNgIACzsBAX8jAEEgayIDJAAgAyABNgIQIAMgADYCDCADQQE7ARwgAyACNgIYIAMgA0EMajYCFCADQRRqEEAACzQAAkAgAWlBAUcNACAAQYCAgIB4IAFrSw0AAkAgAEUNABBzIAAgARBkIgFFDQELIAEPCwALQAACQCAAKAIAQYCAgIB4Rg0AIAEgACgCBCAAKAIIEFcPCyABKAIAIAEoAgQgACgCDCgCACIAKAIAIAAoAgQQDgs5AAJAIAJBgIDEAEYNACAAIAIgASgCEBEFAEUNAEEBDwsCQCADDQBBAA8LIAAgAyAEIAEoAgwRBwALLAIBfwF+IwBBEGsiASQAIAApAgAhAiABIAA2AgwgASACNwIEIAFBBGoQbQALLQEBfyMAQRBrIgEkACABIAApAgA3AgggAUEIakGglsAAIAAoAghBAUEAEB0ACyoBAX8jAEEQayIDJAAgAyACNgIMIAMgATYCCCADIAA2AgQgA0EEahBvAAsjAQF/IwBBEGsiAiQAIAIgATYCDCACIAA2AgggAkEIahBuAAspAQF/AkAgACgCACIBQYCAgIB4ckGAgICAeEYNACAAKAIEIAFBARBeCwseAQF/AkAgACgCACICRQ0AIAEgAiAAKAIEEFcPCwALIAACQCABKAIARQ0AIABBjJfAADYCBCAAIAE2AgAPCwALHwAgAUH/iMAAQfiIwAAgAC0AACIAG0ERQQcgABsQVwsbAQF/EHMgAEEEakEEEGQiASAANgIAIAFBBGoLHgAgACgCACAAKAIEQQAoAsifQCIAQQQgABsRBAAACyMBAX8CQEH4isAAEDEiAA0AQayKwABBOkHoisAAEEIACyAACxcAAkAgAUEJSQ0AIAEgABASDwsgABABCx8AAkAgAEGAgICAeHJBgICAgHhGDQAgASAAQQEQXgsLHAEBfwJAIAAoAgAiAUUNACAAKAIEIAFBARBeCwscAQF/AkAgACgCACIBRQ0AIAAoAgQgAUEBEF4LCxUAIABBfGoiACAAKAIAQQRqQQQQXgsdACAAQQhqQQApAoiWQDcCACAAQQApAoCWQDcCAAsdACAAQQhqQQApApiWQDcCACAAQQApApCWQDcCAAsUAAJAIABFDQAgACABEGgACxBiAAsRACAAIAFBAXRBAXIgAhA8AAsSAAJAIAFFDQAgACABIAIQXgsLEgAgACABIAIgAyAEQQAgBRACCxUAAkAgAEUNACAAIAAoAqhaEQIACwsWACAAKAIAIAEgAiAAKAIEKAIMEQcACxQAIAAoAgAgASAAKAIEKAIMEQUACw0AIAAgASACIAMQCg8LFABBACAANgLgm0BBAEEBNgLcm0ALEAAgASAAKAIAIAAoAgQQVwsTACAAQYyXwAA2AgQgACABNgIACxAAIAEgACgCACAAKAIEEA0LCwAgACABIAIQLw8LCgAgACABEHIaAAsPACAAQbyWwAAgASACEA4LDwAgAEG0mMAAIAEgAhAOCxEAQcSZwABBI0HYmcAAEDwACwsAIAAjAGokACMACwkAIAAgARBLDwsJACAAIAEQNw8LCQAgASAAEEMACwwAIAAgASkCADcDAAsJACABIAAQZgALDQAgAUGsmMAAQQUQVwsNACABQcCbwABBGBANCwgAIAAgARAACwkAIAAoAgAQVgsHACAAECsACwcAIAAQSQALBwAgABBBAAsLAEEAQQE6AMSfQAsJACAAQQA2AgALBQAQdAALAwAPCwMAAAsL7hsCAEGAgMAAC9gbFnNsaWNlIGluZGV4IHN0YXJ0cyBhdCDADSBidXQgZW5kcyBhdCDAACBpbmRleCBvdXQgb2YgYm91bmRzOiB0aGUgbGVuIGlzIMASIGJ1dCB0aGUgaW5kZXggaXMgwAAScmFuZ2Ugc3RhcnQgaW5kZXggwCIgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggwAAQcmFuZ2UgZW5kIGluZGV4IMAiIG91dCBvZiByYW5nZSBmb3Igc2xpY2Ugb2YgbGVuZ3RoIMAAFmRlY29tcHJlc3Npb24gZmFpbGVkOiDAAMACOiDAAC9ydXN0Yy80YTRlZjQ5M2UzYTE0ODhjNmUzMjE1NzAyMzgwODRiMzg5NDhmNmRiL2xpYnJhcnkvYWxsb2Mvc3JjL2ZtdC5ycwAvcnVzdGMvNGE0ZWY0OTNlM2ExNDg4YzZlMzIxNTcwMjM4MDg0YjM4OTQ4ZjZkYi9saWJyYXJ5L2NvcmUvc3JjL2ZtdC9udW0ucnMAL2hvbWUvY2RpZXNoLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvd2FzbS1iaW5kZ2VuLTAuMi4xMTQvc3JjL2V4dGVybnJlZi5ycwAvcnVzdGMvNGE0ZWY0OTNlM2ExNDg4YzZlMzIxNTcwMjM4MDg0YjM4OTQ4ZjZkYi9saWJyYXJ5L2FsbG9jL3NyYy9yYXdfdmVjL21vZC5ycwAvcnVzdC9kZXBzL2RsbWFsbG9jLTAuMi4xMS9zcmMvZGxtYWxsb2MucnMAL2hvbWUvY2RpZXNoLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbGliZGVmbGF0ZXItMS4yNS4yL3NyYy9saWIucnMAALwCEAAKAAAAbAAAABkAAAC8AhAACgAAAGwAAAAnAAAAvAIQAAoAAABsAAAAOQAAALwCEAAKAAAAbAAAAEsAAAC8AhAACgAAAGAAAAAZAAAAvAIQAAoAAABgAAAAJwAAALwCEAAKAAAAYAAAADkAAAC8AhAACgAAAGAAAABLAAAAvAIQAAoAAABkAAAAGQAAALwCEAAKAAAAZAAAACcAAAC8AhAACgAAAGQAAAA5AAAAvAIQAAoAAABkAAAASwAAALwCEAAKAAAAQAAAAAsAAAC8AhAACgAAAFgAAAALAAAAvAIQAAoAAABJAAAAEwAAALwCEAAKAAAAUwAAACsAAAC8AhAACgAAAE0AAAAPAAAAvAIQAAoAAABKAAAAHAAAALwCEAAKAAAAOQAAAB0AAABkZWNvbXByZXNzaW9uIG91dHB1dCB0b28gbGFyZ2UAALwCEAAKAAAAJgEAABMAAAC8AhAACgAAAC0BAAAdAAAAvAIQAAoAAAAnAQAAHAAAALwCEAAKAAAAoAEAABMAAAC8AhAACgAAAKcBAAAdAAAAvAIQAAoAAAChAQAAHAAAAEJhZERhdGFJbnN1ZmZpY2llbnRTcGFjZYMBEABnAAAAfwAAABEAAACDARAAZwAAAIwAAAARAAAAbGliZGVmbGF0ZV9kZWZsYXRlX2RlY29tcHJlc3MgcmV0dXJuZWQgYW4gdW5rbm93biBlcnJvciB0eXBlOiB0aGlzIGlzIGFuIGludGVybmFsIGJ1ZyB0aGF0ICoqbXVzdCoqIGJlIGZpeGVkZwIQAF8AAAANAQAAFQAAAGxpYmRlZmxhdGVfYWxsb2NfZGVjb21wcmVzc29yIHJldHVybmVkIE5VTEw6IG91dCBvZiBtZW1vcnkAAGcCEABfAAAAnQAAABEAAAAMAAAAAgAAAAMAAAAAAAAAAAAAAAAAAAAQERIACAcJBgoFCwQMAw0CDgEPAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAAAAAAAABAAAAAgAAAAMAAAAEAAEABQABAAcAAgAJAAIADQADABEAAwAZAAQAIQAEADEABQBBAAUAYQAGAIEABgDBAAcAAQEHAIEBCAABAggAAQMJAAEECQABBgoAAQgKAAEMCwABEAsAARgMAAEgDAABMA0AAUANAAFgDQABYA0AAWAAAACAAAABgAAAAoAAAAOAAAAEgAAABYAAAAaAAAAHgAAACIAAAAmAAAAKgAAAC4AAAAyAAAANgAAADoAAAA+AAAAQgAAAEYAAABKAAAATgAAAFIAAABWAAAAWgAAAF4AAABiAAAAZgAAAGoAAABuAAAAcgAAAHYAAAB6AAAAfgAAAIIAAACGAAAAigAAAI4AAACSAAAAlgAAAJoAAACeAAAAogAAAKYAAACqAAAArgAAALIAAAC2AAAAugAAAL4AAADCAAAAxgAAAMoAAADOAAAA0gAAANYAAADaAAAA3gAAAOIAAADmAAAA6gAAAO4AAADyAAAA9gAAAPoAAAD+AAABAgAAAQYAAAEKAAABDgAAARIAAAEWAAABGgAAAR4AAAEiAAABJgAAASoAAAEuAAABMgAAATYAAAE6AAABPgAAAUIAAAFGAAABSgAAAU4AAAFSAAABVgAAAVoAAAFeAAABYgAAAWYAAAFqAAABbgAAAXIAAAF2AAABegAAAX4AAAGCAAABhgAAAYoAAAGOAAABkgAAAZYAAAGaAAABngAAAaIAAAGmAAABqgAAAa4AAAGyAAABtgAAAboAAAG+AAABwgAAAcYAAAHKAAABzgAAAdIAAAHWAAAB2gAAAd4AAAHiAAAB5gAAAeoAAAHuAAAB8gAAAfYAAAH6AAAB/gAAAgIAAAIGAAACCgAAAg4AAAISAAACFgAAAhoAAAIeAAACIgAAAiYAAAIqAAACLgAAAjIAAAI2AAACOgAAAj4AAAJCAAACRgAAAkoAAAJOAAACUgAAAlYAAAJaAAACXgAAAmIAAAJmAAACagAAAm4AAAJyAAACdgAAAnoAAAJ+AAACggAAAoYAAAKKAAACjgAAApIAAAKWAAACmgAAAp4AAAKiAAACpgAAAqoAAAKuAAACsgAAArYAAAK6AAACvgAAAsIAAALGAAACygAAAs4AAALSAAAC1gAAAtoAAALeAAAC4gAAAuYAAALqAAAC7gAAAvIAAAL2AAAC+gAAAv4AAAMCAAADBgAAAwoAAAMOAAADEgAAAxYAAAMaAAADHgAAAyIAAAMmAAADKgAAAy4AAAMyAAADNgAAAzoAAAM+AAADQgAAA0YAAANKAAADTgAAA1IAAANWAAADWgAAA14AAANiAAADZgAAA2oAAANuAAADcgAAA3YAAAN6AAADfgAAA4IAAAOGAAADigAAA44AAAOSAAADlgAAA5oAAAOeAAADogAAA6YAAAOqAAADrgAAA7IAAAO2AAADugAAA74AAAPCAAADxgAAA8oAAAPOAAAD0gAAA9YAAAPaAAAD3gAAA+IAAAPmAAAD6gAAA+4AAAPyAAAD9gAAA/oAAAP+AAKAAAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAQALAAEADQABAA8AAQARAAIAEwACABcAAgAbAAIAHwADACMAAwArAAMAMwADADsABABDAAQAUwAEAGMABABzAAUAgwAFAKMABQDDAAUA4wAAAAIBAAACAQAAAgFtXcvWLFDrY3hBpldxG4u5I8o7SqZ3fJNCY0mvl2+yhAAAAAAIAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAADAAAAAQAAAAKAAAACwAAAAwAAAAAAAAACAAAAAQAAAANAAAADgAAAA8AAAAQAAAAEQAAABAAAAAEAAAAEgAAABMAAAAUAAAACAAAAAAAAAAIAAAABAAAABUAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA+PSBzaXplICsgbWluX292ZXJoZWFkAAA8AhAAKgAAALEEAAAJAAAAYXNzZXJ0aW9uIGZhaWxlZDogcHNpemUgPD0gc2l6ZSArIG1heF9vdmVyaGVhZAAAPAIQACoAAAC3BAAADQAAAAkAAAAMAAAABAAAABYAAABFcnJvcgAAABcAAAAMAAAABAAAABgAAAAZAAAAGgAAAAAAAAAAAAAAAQAAABsAAABhIGZvcm1hdHRpbmcgdHJhaXQgaW1wbGVtZW50YXRpb24gcmV0dXJuZWQgYW4gZXJyb3Igd2hlbiB0aGUgdW5kZXJseWluZyBzdHJlYW0gZGlkIG5vdAAA7gAQAEgAAACKAgAADgAAAGNhcGFjaXR5IG92ZXJmbG93AAAA6wEQAFAAAAAcAAAABQAAADAwMDEwMjAzMDQwNTA2MDcwODA5MTAxMTEyMTMxNDE1MTYxNzE4MTkyMDIxMjIyMzI0MjUyNjI3MjgyOTMwMzEzMjMzMzQzNTM2MzczODM5NDA0MTQyNDM0NDQ1NDY0NzQ4NDk1MDUxNTI1MzU0NTU1NjU3NTg1OTYwNjE2MjYzNjQ2NTY2Njc2ODY5NzA3MTcyNzM3NDc1NzY3Nzc4Nzk4MDgxODI4Mzg0ODU4Njg3ODg4OTkwOTE5MjkzOTQ5NTk2OTc5ODk5NwEQAEsAAABXAgAABQAAAFJlZkNlbGwgYWxyZWFkeSBib3Jyb3dlZABB2JvAAAsEBAAAAAApBG5hbWUBIgFjH19fd2JpbmRnZW5fYWRkX3RvX3N0YWNrX3BvaW50ZXIAPAlwcm9kdWNlcnMBDHByb2Nlc3NlZC1ieQIGd2FscnVzBjAuMjUuMgx3YXNtLWJpbmRnZW4HMC4yLjExNA=="),g=await A.arrayBuffer(),{instance:I}=await WebAssembly.instantiate(g,{"./inflate_wasm_bg.js":gA});return FA=I.exports,GA(FA),FA})()),NA)}async function pA(A,g,I,t,e,C){await mA();return function(A){const g=new DataView(A.buffer,A.byteOffset,A.byteLength).getUint32(0,!0);if(0===g)return{starts:new Int32Array(0),ends:new Int32Array(0),scores:new Float32Array(0)};const I=4+4*g,t=I+4*g;return{starts:new Int32Array(A.buffer,A.byteOffset+4,g),ends:new Int32Array(A.buffer,A.byteOffset+I,g),scores:new Float32Array(A.buffer,A.byteOffset+t,g)}}(IA(A,g,I,t,e,C))}async function RA(A,g,I,t,e,C,i){await mA();return function(A){const g=new DataView(A.buffer,A.byteOffset,A.byteLength).getUint32(0,!0);if(0===g)return{starts:new Int32Array(0),ends:new Int32Array(0),scores:new Float32Array(0),minScores:new Float32Array(0),maxScores:new Float32Array(0)};const I=4+4*g,t=I+4*g,e=t+4*g,C=e+4*g;return{starts:new Int32Array(A.buffer,A.byteOffset+4,g),ends:new Int32Array(A.buffer,A.byteOffset+I,g),scores:new Float32Array(A.buffer,A.byteOffset+t,g),minScores:new Float32Array(A.buffer,A.byteOffset+e,g),maxScores:new Float32Array(A.buffer,A.byteOffset+C,g)}}(tA(A,g,I,t,e,C,i))}async function UA(A,g,I){const t=new Uint32Array(g.length),e=new Uint32Array(g.length);for(let A=0;A<g.length;A++){const I=g[A];t[A]=I.offset,e[A]=I.length}return async function(A,g,I,t){await mA();const e=CA(A,g,I,t),C=new DataView(e.buffer,e.byteOffset,e.byteLength),i=C.getUint32(0,!0),B=4+4*(i+1),Q=new Array(i+1);for(let A=0;A<=i;A++)Q[A]=C.getUint32(4+4*A,!0);return{data:e.subarray(B),offsets:Q}}(A,t,e,I)}async function MA(A,g,I,t,e){const C=new Uint32Array(g.length),i=new Uint32Array(g.length);for(let A=0;A<g.length;A++){const I=g[A];C[A]=I.offset,i[A]=I.length}return pA(A,C,i,I,t,e)}async function LA(A,g,I,t,e,C){const i=new Uint32Array(g.length),B=new Uint32Array(g.length);for(let A=0;A<g.length;A++){const I=g[A];i[A]=I.offset,B[A]=I.length}return RA(A,i,B,I,t,e,C)}function JA(A){A.sort((A,g)=>A.offset-g.offset);const g=[];let I,t;for(const e of A)I&&t&&e.offset-t<=2e3?(I.length=e.offset+e.length-I.offset,I.blocks.push(e),t=e.offset+e.length):(I={blocks:[e],length:e.length,offset:e.offset},g.push(I),t=e.offset+e.length);return g}const KA=new TextDecoder("utf8"),bA=610839776;function vA(A,g,I,t){return A<t&&g>=I}function YA(A,g,I){const t=[];let e=g;const C=new DataView(A.buffer,A.byteOffset,A.length);for(;e<A.byteLength;){const A=C.getUint32(e,!0);e+=4;const g=C.getUint32(e,!0);e+=4;const i=C.getUint32(e,!0);e+=4;const B=C.getUint32(e,!0);e+=4;const Q=C.getFloat32(e,!0);e+=4;const o=C.getFloat32(e,!0);e+=4;const s=C.getFloat32(e,!0);e+=8,(!I||A===I.chrId&&vA(g,i,I.start,I.end))&&t.push({start:g,end:i,maxScore:o,minScore:Q,summary:!0,score:s/(B||1)})}return t}function xA(A,g,I,t){const e=[];let C=g;const i=new DataView(A.buffer,A.byteOffset,A.length);for(;C<A.byteLength;){const g=C,B=i.getUint32(C,!0);C+=4;const Q=i.getInt32(C,!0);C+=4;const o=i.getInt32(C,!0);C+=4;let s=C;for(;s<A.length&&0!==A[s];s++);const E=A.subarray(C,s),a=KA.decode(E);C=s+1,(!t||B===t.chrId&&vA(Q,o,t.start,t.end))&&e.push({start:Q,end:o,rest:a,uniqueId:`bb-${I+g}`})}return e}function HA(A,g,I){const t=A.subarray(g),e=new DataView(t.buffer,t.byteOffset,t.length),C=e.getInt32(4,!0),i=e.getUint32(12,!0),B=e.getUint32(16,!0),Q=e.getUint8(20),o=e.getUint16(22,!0);let s=24;const E=[];switch(Q){case 1:for(let A=0;A<o;A++){const A=e.getInt32(s,!0);s+=4;const g=e.getInt32(s,!0);s+=4;const t=e.getFloat32(s,!0);s+=4,I&&!vA(A,g,I.start,I.end)||E.push({start:A,end:g,score:t})}break;case 2:for(let A=0;A<o;A++){const A=e.getInt32(s,!0);s+=4;const g=e.getFloat32(s,!0);s+=4;const t=A+B;I&&!vA(A,t,I.start,I.end)||E.push({score:g,start:A,end:t})}break;case 3:for(let A=0;A<o;A++){const g=e.getFloat32(s,!0);s+=4;const t=C+A*i,Q=t+B;I&&!vA(t,Q,I.start,I.end)||E.push({score:g,start:t,end:Q})}}return E}function qA(A,g,I){const t=new DataView(A.buffer,A.byteOffset+g,A.length-g),e=t.getInt32(4,!0),C=t.getUint32(12,!0),i=t.getUint32(16,!0),B=t.getUint8(20),Q=t.getUint16(22,!0),o=new Int32Array(Q),s=new Int32Array(Q),E=new Float32Array(Q);if(!I){switch(B){case 1:{let A=24;for(let g=0;g<Q;g++)o[g]=t.getInt32(A,!0),s[g]=t.getInt32(A+4,!0),E[g]=t.getFloat32(A+8,!0),A+=12;return{starts:o,ends:s,scores:E}}case 2:{let A=24;for(let g=0;g<Q;g++){const I=t.getInt32(A,!0);o[g]=I,s[g]=I+i,E[g]=t.getFloat32(A+4,!0),A+=8}return{starts:o,ends:s,scores:E}}case 3:{let A=24;for(let g=0;g<Q;g++){const I=e+g*C;o[g]=I,s[g]=I+i,E[g]=t.getFloat32(A,!0),A+=4}return{starts:o,ends:s,scores:E}}}return{starts:o,ends:s,scores:E}}const a=I.start,r=I.end;let n=0;switch(B){case 1:{let A=24;for(let g=0;g<Q;g++){const g=t.getInt32(A,!0),I=t.getInt32(A+4,!0);g<r&&I>=a&&(o[n]=g,s[n]=I,E[n]=t.getFloat32(A+8,!0),n++),A+=12}break}case 2:{let A=24;for(let g=0;g<Q;g++){const g=t.getInt32(A,!0),I=g+i;g<r&&I>=a&&(o[n]=g,s[n]=I,E[n]=t.getFloat32(A+4,!0),n++),A+=8}break}case 3:{let A=24;for(let g=0;g<Q;g++){const I=e+g*C,B=I+i;I<r&&B>=a&&(o[n]=I,s[n]=B,E[n]=t.getFloat32(A,!0),n++),A+=4}break}}return n<Q?{starts:o.subarray(0,n),ends:s.subarray(0,n),scores:E.subarray(0,n)}:{starts:o,ends:s,scores:E}}class _A{bbi;refsByName;rTreeOffset;uncompressBufSize;blockType;rTreePromise;featureCache=new L({cache:new X({maxSize:1e3}),fill:async({length:A,offset:g},I)=>this.bbi.read(A,g,{signal:I})});constructor(A,g,I,t,e){if(this.bbi=A,this.refsByName=g,this.rTreeOffset=I,this.uncompressBufSize=t,this.blockType=e,!(I>=0))throw new Error("invalid rTreeOffset!")}async _collectBlocks(A,g,I,t){const e=this.refsByName[A];if(void 0===e)return;this.rTreePromise||(this.rTreePromise=this.bbi.read(48,this.rTreeOffset,t));const C=await this.rTreePromise,i=new DataView(C.buffer,C.byteOffset,C.length),B=i.getUint32(0,!0);if(B!==bA)throw new Error(`invalid cirTree magic: 0x${B.toString(16)} (expected 0x${bA.toString(16)}) at offset ${this.rTreeOffset}, file may be corrupt or unsupported`);const Q=4+32*i.getUint32(4,!0),o=(A,t,C,i)=>(A<e||A===e&&t<=I)&&(C>e||C===e&&i>=g),s=[];let E=[this.rTreeOffset+48];for(;E.length>0;){const A=$(E.map(A=>({min:A,max:A+Q}))),g=[];for(const{min:I,max:e}of A){const A=e-I,C=I,i=await this.featureCache.get(`${A}_${C}`,{length:A,offset:C},t?.signal);for(const A of E)if(I<=A&&A<=e){const I=i.subarray(A-C),t=new DataView(I.buffer,I.byteOffset,I.length),e=t.getUint8(0),B=t.getUint16(2,!0);let Q=4;if(1===e)for(let A=0;A<B;A++){const A=t.getUint32(Q,!0),g=t.getUint32(Q+4,!0),I=t.getUint32(Q+8,!0),e=t.getUint32(Q+12,!0),C=Number(t.getBigUint64(Q+16,!0)),i=Number(t.getBigUint64(Q+24,!0));Q+=32,o(A,g,I,e)&&s.push({offset:C,length:i})}else if(0===e)for(let A=0;A<B;A++){const A=t.getUint32(Q,!0),I=t.getUint32(Q+4,!0),e=t.getUint32(Q+8,!0),C=t.getUint32(Q+12,!0),i=Number(t.getBigUint64(Q+16,!0));Q+=24,o(A,I,e,C)&&g.push(i)}}}E=g}return{blocks:s,chrId:e}}async readWigData(A,g,I,t){const e=await this._collectBlocks(A,g,I,t);if(!e)return[];const{blocks:C,chrId:i}=e;return this.readFeatures(C,{...t,request:{chrId:i,start:g,end:I}})}async readWigDataAsArrays(A,g,I,t){const e=await this._collectBlocks(A,g,I,t),C=e?.blocks??[],i=e?{chrId:e.chrId,start:g,end:I}:void 0,B={...t,request:i};return"summary"===this.blockType?this._readSummaryFeaturesAsArrays(C,B):this._readBigWigFeaturesAsArrays(C,B)}async readFeatures(A,g={}){const{blockType:I,uncompressBufSize:t}=this,{signal:e,request:C}=g,i=JA(A),B=[];for(const A of i){const g=await this.bbi.read(A.length,A.offset,{signal:e}),i=A.offset,Q=A.blocks;let o,s;if(t>0){const A=[];for(const g of Q)A.push({offset:g.offset-i,length:g.length});const I=await UA(g,A,t);o=I.data,s=I.offsets}else{o=g,s=[];for(const A of Q)s.push(A.offset-i);s.push(g.length)}for(let A=0;A<Q.length;A++){const g=s[A],t=s[A+1],e=o.subarray(g,t);let i;switch(I){case"summary":i=YA(e,0,C);break;case"bigwig":i=HA(e,0,C);break;case"bigbed":i=xA(e,0,256*Q[A].offset,C);break;default:i=[],console.warn(`Don't know what to do with ${I}`)}for(const A of i)B.push(A)}}return B}async _readBigWigFeaturesAsArrays(A,g={}){const{uncompressBufSize:I}=this,{signal:t,request:e}=g,C=JA(A),i=[],B=[],Q=[];let o=0;for(const A of C){const{length:g,offset:C}=A,s=await this.bbi.read(g,C,{signal:t}),E=A.blocks.map(g=>({offset:g.offset-A.offset,length:g.length}));if(I>0){const A=await MA(s,E,I,e?.start??0,e?.end??0);A.starts.length>0&&(i.push(A.starts),B.push(A.ends),Q.push(A.scores),o+=A.starts.length)}else for(const A of E){const g=qA(s.subarray(A.offset,A.offset+A.length),0,e);g.starts.length>0&&(i.push(g.starts),B.push(g.ends),Q.push(g.scores),o+=g.starts.length)}}if(0===i.length)return{starts:new Int32Array(0),ends:new Int32Array(0),scores:new Float32Array(0),isSummary:!1};if(1===i.length)return{starts:i[0],ends:B[0],scores:Q[0],isSummary:!1};const s=new Int32Array(o),E=new Int32Array(o),a=new Float32Array(o);let r=0;for(let A=0;A<i.length;A++)s.set(i[A],r),E.set(B[A],r),a.set(Q[A],r),r+=i[A].length;return{starts:s,ends:E,scores:a,isSummary:!1}}async _readSummaryFeaturesAsArrays(A,g={}){const{uncompressBufSize:I}=this,{signal:t,request:e}=g,C=JA(A),i=[],B=[],Q=[],o=[],s=[];let E=0;for(const A of C){const{length:g,offset:C}=A,a=await this.bbi.read(g,C,{signal:t}),r=A.blocks.map(g=>({offset:g.offset-A.offset,length:g.length}));if(I>0){const A=await LA(a,r,I,e?.chrId??0,e?.start??0,e?.end??0);A.starts.length>0&&(i.push(A.starts),B.push(A.ends),Q.push(A.scores),o.push(A.minScores),s.push(A.maxScores),E+=A.starts.length)}else for(const A of r){const g=YA(a.subarray(A.offset,A.offset+A.length),0,e);if(g.length>0){const A=new Int32Array(g.length),I=new Int32Array(g.length),t=new Float32Array(g.length),e=new Float32Array(g.length),C=new Float32Array(g.length);for(let i=0;i<g.length;i++){const B=g[i];A[i]=B.start,I[i]=B.end,t[i]=B.score??0,e[i]=B.minScore??0,C[i]=B.maxScore??0}i.push(A),B.push(I),Q.push(t),o.push(e),s.push(C),E+=g.length}}}if(0===i.length)return{starts:new Int32Array(0),ends:new Int32Array(0),scores:new Float32Array(0),minScores:new Float32Array(0),maxScores:new Float32Array(0),isSummary:!0};if(1===i.length)return{starts:i[0],ends:B[0],scores:Q[0],minScores:o[0],maxScores:s[0],isSummary:!0};const a=new Int32Array(E),r=new Int32Array(E),n=new Float32Array(E),h=new Float32Array(E),c=new Float32Array(E);let l=0;for(let A=0;A<i.length;A++)a.set(i[A],l),r.set(B[A],l),n.set(Q[A],l),h.set(o[A],l),c.set(s[A],l),l+=i[A].length;return{starts:a,ends:r,scores:n,minScores:h,maxScores:c,isSummary:!0}}}const TA=-2021002517,WA=new TextDecoder("utf8");function PA(A){return new DataView(A.buffer,A.byteOffset,A.length)}class OA{bbi;headerP;renameRefSeqs;getHeader(A){return this.headerP||(this.headerP=this._getHeader(A).catch(A=>{throw this.headerP=void 0,A})),this.headerP}constructor(A){const{filehandle:g,renameRefSeqs:I=A=>A,path:t,url:e}=A;if(this.renameRefSeqs=I,g)this.bbi=g;else if(e)this.bbi=new m(e);else{if(!t)throw new Error("no file given");this.bbi=new p(t)}}async _getHeader(A){const g=await this._getMainHeader(A),I=await this._readChromosomeTree(g,A);return{...g,...I}}async _getMainHeader(A,g=2e3){const I=await this.bbi.read(g,0,A),t=PA(I);let e=0;const C=t.getInt32(e,!0);if(e+=4,-2003829722!==C&&C!==TA)throw new Error("not a BigWig/BigBed file");const i=t.getUint16(e,!0);e+=2;const B=t.getUint16(e,!0);e+=2;const Q=Number(t.getBigUint64(e,!0));e+=8;const o=Number(t.getBigUint64(e,!0));e+=8;const s=Number(t.getBigUint64(e,!0));e+=8;const E=t.getUint16(e,!0);e+=2;const a=t.getUint16(e,!0);e+=2;const r=Number(t.getBigUint64(e,!0));e+=8;const n=Number(t.getBigUint64(e,!0));e+=8;const h=t.getUint32(e,!0);e+=4;const c=Number(t.getBigUint64(e,!0));e+=8;const l=[];for(let A=0;A<B;A++){const A=t.getUint32(e,!0);e+=4;const g=t.getUint32(e,!0);e+=4;const I=Number(t.getBigUint64(e,!0));e+=8;const C=Number(t.getBigUint64(e,!0));e+=8,l.push({reductionLevel:A,reserved:g,dataOffset:I,indexOffset:C})}const d=C===TA?"bigbed":"bigwig";if(r>g||n>g-40)return this._getMainHeader(A,2*g);let D;if(!n)throw new Error("no stats");{let A=0;const g=PA(I.subarray(n)),t=Number(g.getBigUint64(A,!0));A+=8;const e=g.getFloat64(A,!0);A+=8;const C=g.getFloat64(A,!0);A+=8;const i=g.getFloat64(A,!0);A+=8;D={scoreMin:e,scoreMax:C,scoreSum:i,scoreSumSquares:g.getFloat64(A,!0),basesCovered:t}}return{zoomLevels:l,magic:C,extHeaderOffset:c,numZoomLevels:B,fieldCount:E,totalSummary:D,definedFieldCount:a,uncompressBufSize:h,asOffset:r,chromosomeTreeOffset:Q,totalSummaryOffset:n,unzoomedDataOffset:o,unzoomedIndexOffset:s,fileType:d,version:i,autoSql:r?WA.decode(I.subarray(r,I.indexOf(0,r))):""}}async _readChromosomeTree(A,g){const I=[],t={},e=A.chromosomeTreeOffset,C=PA(await this.bbi.read(32,e,g)),i=C.getUint32(8,!0),B=C.getUint32(12,!0),Q=async A=>{const g=PA(await this.bbi.read(4,A)),e=g.getUint8(0),C=g.getUint16(2,!0);if(e){const g=await this.bbi.read(C*(i+B),A+4),e=PA(g);let Q=0;for(let A=0;A<C;A++){const A=g.indexOf(0,Q),C=-1!==A&&A<Q+i?A:Q+i,B=WA.decode(g.subarray(Q,C));Q+=i;const o=e.getUint32(Q,!0);Q+=4;const s=e.getUint32(Q,!0);Q+=4,t[this.renameRefSeqs(B)]=o,I[o]={name:B,id:o,length:s}}}else{const g=PA(await this.bbi.read(C*(i+8),A+4)),I=[];let t=0;for(let A=0;A<C;A++){t+=i;const A=Number(g.getBigUint64(t,!0));t+=8,I.push(Q(A))}await Promise.all(I)}};return await Q(e+32),{refsByName:t,refsByNumber:I}}viewCache=new Map;getOrCreateBlockView(A,g,I,t){const e=`${g}_${t}`;let C=this.viewCache.get(e);return C||(C=new _A(this.bbi,A,g,I,t),this.viewCache.set(e,C)),C}async getUnzoomedView(A){const{unzoomedIndexOffset:g,refsByName:I,uncompressBufSize:t,fileType:e}=await this.getHeader(A);return this.getOrCreateBlockView(I,g,t,e)}async _getView(A){const{basesPerSpan:g,scale:I}=A||{},t=g?1/g:I??1;return this.getView(t,A)}async getFeatures(A,g,I,t){return(await this._getView(t)).readWigData(this.renameRefSeqs(A),g,I,t)}async getFeaturesAsArrays(A,g,I,t){return(await this._getView(t)).readWigDataAsArrays(this.renameRefSeqs(A),g,I,t)}}class VA extends OA{async getView(A,g){const{zoomLevels:I,refsByName:t,uncompressBufSize:e}=await this.getHeader(g),C=1/A;for(let A=I.length-1;A>=0;A-=1){const g=I[A];if(g&&g.reductionLevel<=2*C)return this.getOrCreateBlockView(t,g.indexOffset,e,"summary")}return this.getUnzoomedView(g)}}const ZA=new TextDecoder("utf8");function zA(A,g,I){const t=A.indexOf(0,g),e=-1!==t&&t<g+I?t:g+I;return ZA.decode(A.subarray(g,e))}async function jA(A,g,I,t,e,C,i,B){const Q=4+I*(t+e),o=await A.read(Q,g,B),s=new DataView(o.buffer,o.byteOffset,o.length),E=s.getInt8(0),a=s.getInt16(2,!0);let r=4;if(0===E){const g=[];for(let A=0;A<a;A++){const A=zA(o,r,t);r+=t;const I=Number(s.getBigUint64(r,!0));r+=8,g.push({key:A,offset:I})}let Q=0,E=g.length-1,n=g.length-1;for(;Q<=E;){const A=Math.floor((Q+E)/2);C.localeCompare(g[A].key)<0?(n=A-1,E=A-1):Q=A+1}return jA(A,n>=0?g[n].offset:g[0].offset,I,t,e,C,i,B)}if(1===E){const A=[];for(let g=0;g<a;g++){const g=zA(o,r,t);r+=t;const I=Number(s.getBigUint64(r,!0));r+=8;const e=s.getUint32(r,!0);r+=4,r+=4,A.push({key:g,offset:I,length:e})}let g=0,I=A.length-1;for(;g<=I;){const t=Math.floor((g+I)/2),e=C.localeCompare(A[t].key);if(0===e)return{...A[t],field:i};e<0?I=t-1:g=t+1}return}}class XA extends OA{readIndicesCache=new L({cache:new X({maxSize:1}),fill:(A,g)=>this._readIndices({...A,signal:g})});readIndices(A={}){const{signal:g,...I}=A;return this.readIndicesCache.get(JSON.stringify(I),A,g)}async getView(A,g){return this.getUnzoomedView(g)}async _readIndices(A){const{extHeaderOffset:g}=await this.getHeader(A),I=await this.bbi.read(64,g),t=new DataView(I.buffer,I.byteOffset,I.length),e=t.getUint16(2,!0),C=Number(t.getBigUint64(4,!0));if(0===e)return[];const i=20*e,B=await this.bbi.read(i,C),Q=[];for(let A=0;A<e;A+=1){const g=B.subarray(20*A),I=new DataView(g.buffer,g.byteOffset,g.length),t=I.getInt16(0,!0),e=I.getInt16(2,!0),C=Number(I.getBigUint64(4,!0)),i=I.getInt16(16,!0);Q.push({type:t,fieldcount:e,offset:C,field:i})}return Q}async searchExtraIndexBlocks(A,g={}){const I=await this.readIndices(g);if(0===I.length)return[];const t=I.map(async I=>{const{offset:t,field:e}=I,C=await this.bbi.read(32,t,g),i=new DataView(C.buffer,C.byteOffset,C.length),B=i.getInt32(4,!0),Q=i.getInt32(8,!0),o=i.getInt32(12,!0);return jA(this.bbi,t+32,B,Q,o,A,e,g)});return(await Promise.all(t)).filter(A=>void 0!==A)}async searchExtraIndex(A,g={}){const I=await this.searchExtraIndexBlocks(A,g);if(0===I.length)return[];const t=await this.getUnzoomedView(g);return(await Promise.all(I.map(async A=>(await t.readFeatures([A],g)).map(g=>({...g,field:A.field}))))).flat().filter(g=>{if(!g.rest)return!1;const I=(g.field||0)-3;return function(A,g){if(g<0)return;let I=0;for(let t=0;t<g;t++){if(I=A.indexOf("\t",I),-1===I)return;I++}const t=A.indexOf("\t",I);return-1===t?A.slice(I):A.slice(I,t)}(g.rest,I)===A})}}class $A{constructor(A,g=!0){this.littleEndian=g,this.position=0,this.view=A,this.length=A.byteLength}setPosition(A){this.position=A}available(){return this.length-this.position}getByte(){const A=this.view.getUint8(this.position);return this.position++,A}getShort(){const A=this.view.getInt16(this.position,this.littleEndian);return this.position+=2,A}getUShort(){const A=this.view.getUint16(this.position,this.littleEndian);return this.position+=2,A}getInt(){const A=this.view.getInt32(this.position,this.littleEndian);return this.position+=4,A}getUInt(){const A=this.view.getUint32(this.position,this.littleEndian);return this.position+=4,A}getLong(){const A=[];for(let g=0;g<8;g++)A[g]=this.view.getUint8(this.position+g);let g=0;if(this.littleEndian)for(let I=7;I>=0;I--)g=256*g+A[I];else for(let I=0;I<8;I++)g=256*g+A[I];return this.position+=8,g}getString(A){let g,I="";for(;0!==(g=this.view.getUint8(this.position++))&&(I+=String.fromCharCode(g),!A||I.length!==A););return I}getFixedLengthString(A){let g="";for(let I=0;I<A;I++){const A=this.view.getUint8(this.position++);A>0&&(g+=String.fromCharCode(A))}return g}getFloat(){const A=this.view.getFloat32(this.position,this.littleEndian);return this.position+=4,A}getDouble(){const A=this.view.getFloat64(this.position,this.littleEndian);return this.position+=8,A}skip(A){return this.position+=A,this.position}}const Ag=new Map;function gg(A,g,I){var t,e,C,i,B,Q;if(void 0===A.score&&!A.summary)return;let o;if(A.summary)switch(I){case"min":o=null!==(e=null!==(t=A.minScore)&&void 0!==t?t:A.score)&&void 0!==e?e:0;break;case"max":o=null!==(i=null!==(C=A.maxScore)&&void 0!==C?C:A.score)&&void 0!==i?i:0;break;default:o=null!==(B=A.score)&&void 0!==B?B:0}else o=null!==(Q=A.score)&&void 0!==Q?Q:0;return{chr:g,start:A.start,end:A.end,value:o}}class Ig{constructor(A,g){this.bw=function(A,g){const I=u(A);let t=Ag.get(I);t||(t=new VA({filehandle:new m(I,g?{fetch:g}:void 0)}),Ag.set(I,t));return t}(A,g)}async loadHeader(A){const g=await this.bw.getHeader({signal:A});return{bwVersion:g.version,nZoomLevels:g.numZoomLevels,chromTreeOffset:g.chromosomeTreeOffset,fullDataOffset:g.unzoomedDataOffset,fullIndexOffset:g.unzoomedIndexOffset,fieldCount:g.fieldCount,definedFieldCount:g.definedFieldCount,autoSqlOffset:g.asOffset,totalSummaryOffset:g.totalSummaryOffset,uncompressBuffSize:g.uncompressBufSize,extensionOffset:g.extHeaderOffset}}async getTotalSummary(A){const g=(await this.bw.getHeader({signal:A})).totalSummary;if(!g)return;const I=g.basesCovered>0?g.scoreSum/g.basesCovered:0,t=g.basesCovered>0?g.scoreSumSquares/g.basesCovered-I*I:0;return{basesCovered:g.basesCovered,minVal:g.scoreMin,maxVal:g.scoreMax,sumData:g.scoreSum,sumSquares:g.scoreSumSquares,mean:I,stddev:Math.sqrt(Math.max(0,t))}}async readFeatures(A,g,I,t,e="mean",C){const i={signal:C};t&&"none"!==e&&(i.basesPerSpan=t);const B=await this.bw.getFeatures(A,g,I,i),Q=[];for(const g of B){const I=gg(g,A,e);I&&Q.push(I)}return Q}async readWGFeatures(A,g,I="mean",t){const e=[];for(const C of A)try{const A=await this.readFeatures(C,0,Number.MAX_SAFE_INTEGER,g,I,t);e.push(...A)}catch(A){}return e}}async function tg(A,g,I={}){var t,e;const C=new Ig(A,I.fetchImpl);try{return await C.readFeatures(g.chr,g.start,g.end,I.bpPerPixel,null!==(t=I.windowFunction)&&void 0!==t?t:"mean",I.signal)}catch(g){throw g instanceof Error&&("AbortError"===g.name||(null===(e=g.message)||void 0===e?void 0:e.includes("aborted")))&&Ag.delete(A),g}}async function eg(A,g,I,t={}){var e;return new Ig(A,t.fetchImpl).readWGFeatures(g,I,null!==(e=t.windowFunction)&&void 0!==e?e:"mean",t.signal)}class Cg{constructor(A,g){this.bin=A,this.sumData=g.value,this.count=1,this.min=g.value,this.max=g.value}add(A){this.sumData+=A.value,this.max=Math.max(A.value,this.max),this.min=Math.min(A.value,this.min),this.count++}}function ig(A,g,I,t="mean"){if(I<=1||!A||0===A.length||"none"===t)return A;const e=A[0].chr,C=I,i=[],B=A=>{const I=g+A.bin*C,B=I+C;let Q;switch(t){case"mean":Q=A.sumData/A.count;break;case"max":Q=A.max;break;case"min":Q=A.min;break;default:throw Error(`Unknown window function: ${t}`)}const o=`${t} of ${A.count} values`;i.push({chr:e,start:I,end:B,value:Q,description:o})};let Q;for(const I of A){let A=Math.floor((I.start-g)/C);const t=Math.max(A,Math.ceil((I.end-g)/C)-1);if(Q&&A===Q.bin&&(Q.add(I),A++),!Q||t>Q.bin){if(Q&&B(Q),t>A){const A=g+t*C;i.push({chr:e,start:I.start,end:A,value:I.value})}Q=new Cg(t,I)}}if(Q&&B(Q),0===i.length)return i;const o=[];let s=i[0];for(const A of i)s.value===A.value&&A.start<=s.end?s={...s,end:A.end}:(o.push(s),s=A);return o.push(s),o}function Bg(A){if(!A||0===A.length)return{min:0,max:100};let g=Number.MAX_VALUE,I=-Number.MAX_VALUE;for(const t of A)Number.isNaN(t.value)||(t.value<g&&(g=t.value),t.value>I&&(I=t.value));return g===Number.MAX_VALUE?{min:0,max:100}:(I>0&&(g=Math.min(0,g)),I<0&&(I=0),{min:g,max:I})}var Qg=Object.freeze({__proto__:null,summarizeWigData:ig,computeWigDataRange:Bg});function og(A){return"all"===A.chr.toLowerCase()}function sg(A,g){const I=A.trim();if("all"===I.toLowerCase()||"*"===I)return g?{chr:"all",start:0,end:g.totalLength}:null;const t=I.split("\t");if(t.length>=3){const A=t[0],g=parseInt(t[1].replace(/,/g,""),10),I=parseInt(t[2].replace(/,/g,""),10);if(!isNaN(g)&&!isNaN(I)&&I>g)return{chr:A,start:g,end:I}}if(!I.includes(":"))return null;const e=I.replace(/,/g,""),C=e.indexOf(":"),i=e.substring(0,C),B=e.substring(C+1),Q=B.match(/^(-?\d+)-(\d+)$/);if(Q){let A=parseInt(Q[1],10);const g=parseInt(Q[2],10);return isNaN(A)||isNaN(g)||g<=A?null:(A<0&&(A=0),{chr:i,start:A,end:g})}const o=B.match(/^(\d+)$/);if(o){const A=parseInt(o[1],10);return isNaN(A)?null:{chr:i,start:Math.max(0,A-20),end:A+20}}return null}function Eg(A){return og(A)?"All Chromosomes":`${A.chr}:${Math.round(A.start).toLocaleString()}-${Math.round(A.end).toLocaleString()}`}function ag(A){if((A=Math.abs(A))>=1e9){const g=A/1e9;return`${g%1==0?g.toFixed(0):g.toFixed(1)} Gb`}if(A>=1e6){const g=A/1e6;return`${g%1==0?g.toFixed(0):g.toFixed(1)} Mb`}if(A>=1e3){const g=A/1e3;return`${g%1==0?g.toFixed(0):g.toFixed(1)} kb`}return`${Math.round(A)} bp`}function rg(A,g,I){if(og(A)&&I)return{chr:"all",start:Math.max(0,A.start),end:Math.min(I.totalLength,A.end)};let{chr:t,start:e,end:C}=A;const i=null==g?void 0:g[t];if(null!=i&&C-e>i&&(e=0,C=i),e<0){const A=-e;e=0,C+=A}if(null!=i&&C>i){const A=C-i;C=i,e=Math.max(0,e-A)}return{chr:t,start:e,end:C}}async function ng(A,g,I){if(null==I?void 0:I.aborted)return[];const t=await Promise.allSettled(A.map(A=>g(A))),e=t.filter(A=>"fulfilled"===A.status);if(0===e.length&&t.length>0)throw t[0].reason;return e.flatMap(A=>A.value)}function hg(A,g){const I=[];for(const t of A){if(!t.chr)continue;const A=g.offsets[t.chr];void 0!==A&&I.push({...t,chr:"all",start:A+t.start,end:A+t.end})}return I.sort((A,g)=>A.start-g.start),I}class cg{constructor(A,g="mean",I){this.url=A,this._windowFunction=g,this.fetchImpl=I}get windowFunction(){return this._windowFunction}setWindowFunction(A){this._windowFunction=A}setCumulativeOffsets(A){this._cumulativeOffsets=A}setChromNameResolver(A){this._resolveChromName=A}async fetch(A,g,I){if(og(A)&&this._cumulativeOffsets)return this.fetchWG(g,I);const t=this._resolveChromName?{...A,chr:this._resolveChromName(A.chr)}:A,e=await tg(this.url,t,{bpPerPixel:g,windowFunction:this._windowFunction,signal:I,fetchImpl:this.fetchImpl});return g>1&&"none"!==this._windowFunction&&e.length>0?ig(e,A.start,g,this._windowFunction):e}async fetchWG(A,g){const I=this._cumulativeOffsets;if(!I)throw new Error("fetchWG called without cumulativeOffsets");const t=hg(await eg(this.url,I.chromosomeNames,A,{windowFunction:this._windowFunction,signal:g,fetchImpl:this.fetchImpl}),I);return A>1&&"none"!==this._windowFunction&&t.length>0?ig(t,0,A,this._windowFunction):t}}async function lg(A,g,I,t){const e=null!=t?t:globalThis.fetch,C=g.start+g.size-1,i={Range:`bytes=${g.start}-${C}`};let B=await e(A,{headers:i,signal:I});if(200===B.status&&B.redirected&&B.url&&B.url!==A&&(B=await e(B.url,{headers:i,signal:I})),416===B.status){const e=await dg(A,I,t),C=Math.min(g.size,e-g.start);if(C<=0)throw new Error(`HTTP range request failed: 416 Range Not Satisfiable (file size: ${e})`);return lg(A,{start:g.start,size:C},I,t)}if(!B.ok&&206!==B.status)throw new Error(`HTTP range request failed: ${B.status} ${B.statusText}`);if(200===B.status){return(await B.arrayBuffer()).slice(g.start,g.start+g.size)}return B.arrayBuffer()}async function dg(A,g,I){const t=null!=I?I:globalThis.fetch;let e=await t(A,{method:"HEAD",signal:g});if(e.redirected&&e.url&&e.url!==A){e.headers.get("Content-Length")||(e=await t(e.url,{method:"HEAD",signal:g}))}if(!e.ok)throw new Error(`HEAD request failed: ${e.status} ${e.statusText}`);const C=e.headers.get("Content-Length");if(!C)throw new Error("No Content-Length header in HEAD response");return parseInt(C,10)}let Dg,ug,wg,yg,fg;let Sg,kg=!1;function Gg(){const A=ug.buffer;wg=new Int8Array(A),yg=new Uint8Array(A)}let Fg=!1,Ng=!0;const mg={};let pg;function Rg(A,g){return Math.ceil(A/g)*g}const Ug={a:function(A){Ng||(Fg=!0)},b:function(){Ng=!1},c:function(){!function(A){const g="Aborted("+(null!=A?A:"")+")";throw Fg=!0,new WebAssembly.RuntimeError(g)}("")},d:function(A,g){if(mg[A]&&(clearTimeout(mg[A].id),delete mg[A]),!g)return 0;const I=setTimeout(()=>{delete mg[A],pg(A,performance.now())},g);return mg[A]={id:I,timeout_ms:g},0},e:function(A){const g=yg.length,I=2147483648;if((A>>>=0)>I)return!1;for(let t=1;t<=4;t*=2){let e=g*(1+.2/t);e=Math.min(e,A+100663296);const C=(Math.min(I,Rg(Math.max(A,e),65536))-ug.buffer.byteLength+65535)/65536|0;try{return ug.grow(C),Gg(),!0}catch(A){}}return!1}};async function Mg(){if(!kg)return Sg||(Sg=async function(){const A=function(){if(Dg)return Dg;const A=atob("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AWohACAGIAhqIQYMAQsACwALQQAhAgNAIAIgBUZFBEAgBCACIAlqLQAAQQF0aiIAIAAvAQAiAEEBajsBACAQIABBAXRqIAIgBWo7AQAgAkEBaiECDAELCyADQR9rIQQgA0EQdCAFayIFQYCABGohCUEAIQZBACEAQQAhAgNAIAIgCkYNAQJAAkACQAJAAkAgASACQQF0ai8BACIDDgIAAgELIA0gAkEDdGogCTYCBAwDCyADQf//A0cNAQsgDSACQQN0aiIDIABBAWs2AgAgAyAFNgIEIABBAWohAAwBCyANIAJBA3RqIgcgACADwSIDazYCACAHIAQgA0EBa2dqIgdBEHQgAyAHdGs2AgQgACADaiEACyACQQFqIQIMAAsACyAGCxcAIAAgASACIANCgIDs/Mub741PELIBCxcAIAAgASACIANCgIDs/Mub741PELMBCxcAIAAgASACIANCgIDs/Mub741PELQBCxcAIAAgASACIANCgICA2Mub741PELIBCxcAIAAgASACIANCgICA2Mub741PELMBCxcAIAAgASACIANCgICA2Mub741PELQBC6EKAhd/An4jAEGAAmsiEyQAIAEgACgCBCIOayIIQQEgACgCuAF0IgRrIAAoAhAiEiAIIBJrIARLGyERIAAoAhghFyAAKAIMIRQgACgCCCEWQQYgACgCxAEiBCAEQQZPGyEYIAApA1AhGyAAKAIkIQsgACgCKCEJIAAoAlwhDAJAIAAoAtwBRQRAIABBLGohEAJ/IAggACgCHCIEa0GAA00EQEEYIAtrIQ8gCSEGIAwhByAODAELIAQgBEHgAGoiBSAEIAVLGyEPQRggC2shCiAOQQhqIQ0DQCAEIA9GRQRAIBAgBEEHcUECdGoiBigCACEFIAYgACgCUCAEIA1qKAAAQbHz3fF5bHMgCnY2AgAgCSAFQQJ2QcD///8DcSIVaiIGQT9BACAGLQAAIgdBP3FBAUYbIAdBAWtBP3FqIgc6AAAgBiAHaiAFOgAAIAwgFUECdGogB0ECdGogBDYCACAEQQFqIQQMAQsLQQggAUEBaiIFIA4gCEEgayIEaiIGa0EBaiIHIAdBCE8bQQAgBSAGTxsgBGohCkEYIAAoAiRrIQ8gACgCKCEGIAAoAlwhByAEIQUDQCAFIApPRQRAIBAgBUEHcUECdGogACgCUCAF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IAQgGWooAABBsfPd8XlscyAPdjYCACAGIAVBBHZB8P///wBxIhpqIgpBD0EAIAotAAAiDUEPcUEBRhsgDUEBa0EPcWoiDToAACAKIA1qIAU6AAAgByAaQQJ0aiANQQJ0aiAENgIAIARBAWohBAwBCwsgACAJNgIcIBAgCUEHcUECdGoiBCgCACEHIAQgG6cgCSAOaigACEGx893xeWxzQRggC2t2NgIADAELIAEoAAAhBCAAIAk2AhwgG6cgBEGx893xeWxzQRggC2t2IQcLIBIgESAXGyEQIBQgFmohDyAOIBRqIRJBASAYdCEGIAAgACgCWCAHajYCWCAHQf8BcUGBgoQIbCEKIAggB0EEdkHw////AHEiDWoiCy0AACEIQgAhG0EQIQQDQCALIARBBGsiBWooAAAgCnMiEUGAgYKEeHJBgYKECGsgEXJBgIGChHhxQYGBgQFsQRx2rSAbQgSGhCEbIARBB0sgBSEEDQALQQAhBSAbp0F/cyIEQf//A3EgCEEPcXYgBEEAIAhrQQ9xdHKtQv//A4MhGyAMIA1BAnRqIQwDQAJAIAZFIBtQcg0AIBunaCAIakEPcSIEBEAgDCAEQQJ0aigCACIEIBBJDQEgEyAFQQJ0aiAENgIAIAZBAWshBiAFQQFqIQULIBtCAX0gG4MhGwwBCwtBACEEIAsgCEEBa0EPcUEPQQAgCEEPcUEBRhtqIgY6AAAgBiALaiAHOgAAIAAgACgCHCIAQQFqNgIcIAwgBkECdGogADYCAEEDIQYgCUEDaiEMIAFBBGohByABQQNrIQkDQAJAIAQgBUYEQCAGIQAMAQsCQCAGAn8gFCATIARBAnRqKAIAIghNBEAgCCAOaiIAIAZqQQNrKAAAIAYgCWooAABHDQIgASAAIAIQBgwBCyAIIBZqIgAoAAAgASgAAEcNASAHIABBBGogAiAPIBIQBUEEagsiAE8NACADIAwgCGs2AgAgACIGIAFqIAJGDQELIARBAWohBAwBCwsgE0GAAmokACAACxcAIAAgASACIANCgIDs/Mub741PELUBCxcAIAAgASACIANCgIDs/Mub741PELYBCxcAIAAgASACIANCgIDs/Mub741PELcBCxcAIAAgASACIANCgICA2Mub741PELUBCxcAIAAgASACIANCgICA2Mub741PELYBCxcAIAAgASAC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DCAJEJIBIAEoAgwhBAJAIB4gByANaiIPTwRAIA0pAAAhIiAEIA0pAAg3AAggBCAiNwAAIAdBEUkNASANKQAQISIgASgCDCIEIA0pABg3ABggBCAiNwAQIAdBIUgNASANQRBqIQYgBCAHaiENIARBIGohBANAIAYpABAhIiAEIAYpABg3AAggBCAiNwAAIAYpACAhIiAEIAYpACg3ABggBCAiNwAQIAZBIGohBiAEQSBqIgQgDUkNAAsMAQsgBCANIA8gHhAHCyABIAEoAgwgB2o2AgwgASgCBCEEIAdBgIAETwRAIAFBATYCJCABIAQgASgCAGtBA3U2AigLIAQgDDYCACAEIAc7AQQgCUEDayIHQYCABE8EQCABQQI2AiQgASAEIAEoAgBrQQN1NgIoCyAEIAc7AQYgASAEQQhqNgIEIAkgD2oiDQUgByANagshDyAFQQFqIQUMAQsLIBFBAhCQAQwACwALvQEBAX8CQCAAKAIMIgZFDQAgACgCBCAGTw0AIAAoAhgiBiADTQRAIAMgBksEQCAAIAMgBmsQUgsgACADIAQQXyAAKAIYIQYLIAMgACgCFEkgAyAGT3INACAGIANrIgQgBUkNACACKAIAIgMEQCADQf8fSw0BIAQgASADQQN0akEEaygCAE0NAQsgACgCHCEAIAEgA0EDdGogBDYCBCABIAIoAgBBA3RqIABBA2o2AgAgAiACKAIAQQFqNgIACwtMACAEQQNxBEBBfw8LIAVBgCBJBEBBvn8PCyABKAIAQf4BTQRAIAAgASACIANBASAEEKkBDwsgAUH/ATYCACAAIAEgAiADIAQgBRAiC40CAgN/AX4gACACaiEEAkACQCACQQhOBEAgACABayICQXlIDQELA0AgACAETw0CIAAgAS0AADoAACAAQQFqIQAgAUEBaiEBDAALAAsCQAJAIAJBb0sNACAAIARBIGsiAksNACABKQAAIQYgACABKQAINwAIIAAgBjcAACACIABrIgVBEU4EQCAAQRBqIQAgASEDA0AgAykAECEGIAAgAykAGDcACCAAIAY3AAAgAykAICEGIAAgAykAKDcAGCAAIAY3ABAgA0EgaiEDIABBIGoiACACSQ0ACwsgASAFaiEBDAELIAAhAgsDQCACIARPDQEgAiABLQAAOgAAIAJBAWohAiABQQFqIQEMAAsACwuR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AAJ/IAIgACgClOsBBH8gACgC0OkBBUGAgAgLIgIgA2pBQGtLBEAgACABIAJqQSBqIgE2AvzrAUEBIQIgASADagwBCyADQYCABE0EQCAAIABBiOwBaiIBNgL86wFBACECIAEgA2oMAQsgACABIARqIgEgA2siAkHg/wNqIgQgAiAFGzYC/OsBQQIhAiADIARqQYCABGsgASAFGwshAyAAIAI2AoTsASAAIAM2AoDsAQtSAQN/AkAgACgCmOsBIgFFDQAgASgCACABKAK01QEiAiABKAK41QEiAxAUIAIEQCADIAEgAhEJAAwBCyABEBgLIABBADYCqOsBIABCADcDmOsBCyYAIANBGHQgAUEQdGogACAAQQh0IAJyIANBAUYbcq1CgYCAgBB+C0UBAX8CQCAAKAIkRQRAIABBARDQAUGIf0sNAQsgACgCDCICIAFqIgEgACgCFEsEQCAAQQE6ABxBAA8LIAAgATYCDAsgAgtPAQF/IAFFIAAgAhDQAUGIf0tyRQRAIAAoAhQgAWsiAyAAKAIMSQRAIABBAToAHEEADwsgACgCECADSwRAIAAgAzYCEAsgACADNgIUCyADC00BAX8CQCAAKAIkRQRAIAAoAggiAiABQQNqQfz/AXFqIgEgACgCBE0NAQsgAEEBOgAcQQAPCyAAIAE2AhAgACABNgIMIAAgATYCCCACC7oBAQF/IwBBEGsiCiQAIAogAzYCDCAIIApBDGogASACIAggCRAiGkEAIQMCfwJAAkACQAJAIAAOAgACAQsgBiAHIAggCigCDBBqIQMMAQsgAEF+cUECRw0AIAQgCCAKKAIMEGsiA0GIf0sNAQsgASACaiEAA0AgACABTUUEQCABIQggBQRAIAUgAS0AAGohCAsgAUEBaiEBIAMgCC0AAGohAwwBCwsgA0EDdgwBCyACQQpsCyAKQRBqJAALXAEEfyAAKAIEIAAoAgAiA2tBA3UhBANAIAIgBEZFBEAgASADIAJBA3RqLwEEaiEBIAAoAiggAkYEQCABQYCABGogASAAKAIkQQFGGyEBCyACQQFqIQIMAQsLIAELrAMBDH8jAEEQayIFJAAgACABKALoECABKALsECABQcABaiABQawbaiABKALQEiABKALUEhCeASICQYh/TQRAIAEoAtQSIQYgASgC0BIhAiABKALsECEHIAAoAhQh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IAAgBmogACAFaiATEAYhDCAGIANrIQgCQCAGIBRNBEAgAykAACEhIAEoAgwiBSADKQAINwAIIAUgITcAACAIQRFJDQEgAykAECEhIAEoAgwiByADKQAYNwAYIAcgITcAECAIQSFIDQEgA0EQaiEFIAcgCGohAyAHQSBqIQcDQCAFKQAQISEgByAFKQAYNwAIIAcgITcAACAFKQAgISEgByAFKQAoNwAYIAcgITcAECAFQSBqIQUgB0EgaiIHIANJDQALDAELIAEoAgwgAyADIAhqIBQQBwsgASABKAIMIAhqNgIMIAEoAgQhAyAIQYCABE8EQCABQQE2AiQgASADIAEoAgBrQQN1NgIoCyADIAk2AgAgAyAIOwEEIAAgDGoiAEEDayIFQYCABE8EQCABQQI2AiQgASADIAEoAgBrQQN1NgIoCyADIAU7AQYgASADQQhqNgIEIAQhByAAIAZqIgUhAyAFIBFLDQAgCyAQIBlqKAAAQbHz3fF5bCAPdkECdGogEEECajYCACALIAVBAmsiACgAAEGx893xeWwgD3ZBAnRqIAAgCms2AgBBACEHIARFDQADQAJAIAQhByAFIBFLDQAgBSgAACIAIAUgBGsoAABHDQAgBUEEaiIDIAMgBGsgExAGIQQgCyAAQbHz3fF5bCAPdkECdGogBSAKazYCACABKAIMIQACQCAFIBRNBEAgBSkAACEhIAAgBSkACDcACCAAICE3AAAMAQsgACAFIAUgFBAHCyABKAIEIgBBATYCACAAQQA7AQQgBEEBaiIGQYCABE8EQCABQQI2AiQgASAAIAEoAgBrQQN1NgIoCyADIARqIQUgACAGOwEGIAEgAEEIajYCBCAOIQQgByEODAELCyAFIQMMAAsACyATQSBrIQ9BwAAgBGutISIDQCAFIBdqIg1BAWoiDCARTw0GQQAgDmshFSAFQYABaiEQIAVBAWohCCALIAUpAABCgMaV/cub741PfiAiiKciAEECdGooAgAhBCAFKQABISEgFyEJAkADQAJAIAwhEiANIgYgFWoiDSgAACEUIAsgAEECdGogBSAKayIMNgIAICFCgMaV/cub741PfiAiiKchAAJAAkAgDgRAIAYoAAAgFEYNAQsCQAJAAkAgBCAWSQ0AIAUoAAAgBCAKaigAAEcNACAIIQYgBSEIDAELIAsgAEECdGoi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DSAEayEFIAYgBGshCEEBIQkgByEEDAMLIAkgEmohDCALIABBAnRqKAIAIQQgEikAACEhIAYgCWoiDSAQTwRAIBBBgAFqIRAgCUEBaiEJCyASIQggBiEFIAwgEUkNAQwHCwsgDiEEIAchDgsgACAIaiAAIAVqIBMQBiENIAggA2shBgJAIAggD00EQCADKQAAISEgASgCDCIFIAMpAAg3AAggBSAhNwAAIAZBEUkNASADKQAQISEgASgCDCIHIAMpABg3ABggByAhNwAQIAZBIUgNASADQRBqIQUgBiAHaiEDIAdBIGohBwNAIAUpABAhISAHIAUpABg3AAggByAhNwAAIAUpACAhISAHIAUpACg3ABggByAhNwAQIAVBIGohBSAHQSBqIgcgA0kNAAsMAQsgASgCDCADIAMgBmogDxAHCyABIAEoAgwgBmo2AgwgASgCBCEDIAZBgIAETwRAIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAMgCTYCACADIAY7AQQgACANaiIAQQNrIgVBgIAETwRAIAFBAjYCJCABIAMgASgCAGtBA3U2AigLIAMgBTsBBiABIANBCGo2AgQgBCEHIAAgCGoiBSEDIAUgEUsNACALIAwgGWopAABCgICA2Mub741PfiAiiKdBAnRqIAxBAmo2AgAgCyAFQQJrIgApAABCgICA2Mub741PfiAiiKdBAnRqIAAgCms2AgBBACEHIARFDQADQAJAIAQhByAFIBFLDQAgBSgAACAFIARrKAAARw0AIAVBBGoiAyADIARrIBMQBiEEIAsgBSkAAEKAgIDYy5vvjU9+ICKIp0ECdGogBSAKazYCACABKAIMIQACQCAFIA9NBEAgBSkAACEhIAAgBSkACDcACCAAICE3AAAMAQsgACAFIAUgDxAHCyABKAIEIgBBATYCACAAQQA7AQQgBEEBaiIGQYCABE8EQCABQQI2AiQgASAAIAEoAgBrQQN1NgIoCyADIARqIQUgACAGOwEGIAEgAEEIajYCBCAOIQQgByEODAELCyAFIQMMAAsACyATQSBrIQ9BwAAgBGutISIDQCAFIBdqIg1BAWoiDCARTw0DQQAgDmshFSAFQYABaiEQIAVBAWohBiALIAUpAABCgMaV/cub741PfiAiiKciBEECdGooAgAhACAFKQABISEgFyEJAkADQAJAIAwhEiANIgggFWoiDSgAACEUIAsgBEECdGogBSAKayIMNgIAICFCgMaV/cub741PfiAiiKchBAJAAkAgDgRAIAgoAAAgFEYNAQsCQAJAIAUoAABB+jwgACAKaiAAIBZJIg0bKAAARyANckUEQCAGIQggBSEGDAELIAsgBEECdGoiBCgCACEAIAgpAAAgBCAGIAprIgw2AgBCgMaV/cub741PfiAiiKchBCAGKAAAQfo8IAAgCmogACAWSSIFGygAAEcgBXINAyAJQQVPDQELIAsgBEECdGogCCAKazYCAAsgBiAAIApqIgVrIghBA2ohCUEEIQADQCAFIBhNIAMgBk9yDQMgBkEBayIELQAAIAVBAWsiBy0AAEcNAyAAQQFqIQAgByEFIAQhBgwACwALIA1BAWstAAAhACAIQQFrLQAAIQUgCyAEQQJ0aiAGIAprNgIAQQVBBCAAIAVGIgQbIQAgDSAEayEFIAggBGshBkEBIQkgByEEDAMLIAkgEmohDCALIARBAnRqKAIAIQAgEikAACEhIAggCWoiDSAQTwRAIBBBgAFqIRAgCUEBaiEJCyASIQYgCCEFIAwgEUkNAQwGCwsgDiEEIAghDgsgACAGaiAAIAVqIBMQBiENIAYgA2shCAJAIAYgD00EQCADKQAAISEgASgCDCIFIAMpAAg3AAggBSAhNwAAIAhBEUkNASADKQAQISEgASgCDCIHIAMpABg3ABggByAhNwAQIAhBIUgNASADQRBqIQUgByAIaiEDIAdBIGohBwNAIAUpABAhISAHIAUpABg3AAggByAhNwAAIAUpACAhISAHIAUpACg3ABggByAhNwAQIAVBIGohBSAHQSBqIgcgA0kNAAsMAQsgASgCDCADIAMgCGogDxAHCyABIAEoAgwgCGo2AgwgASgCBCEDIAhBgIAETwRAIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAMgCTYCACADIAg7AQQgACANaiIAQQNrIgVBgIAETwRAIAFBAjYCJCABIAMgASgCAGtBA3U2AigLIAMgBTsBBiABIANBCGo2AgQgBCEHIAAgBmoiBSEDIAUgEUsNACALIAwgGWopAABCgMaV/cub741PfiAiiKdBAnRqIAxBAmo2AgAgCyAFQQJrIgApAABCgMaV/cub741PfiAiiKdBAnRqIAAgCms2AgBBACEHIARFDQADQAJAIAQhByAFIBFLDQAgBSgAACAFIARrKAAARw0AIAVBBGoiAyADIARrIBMQBiEEIAsgBSkAAEKAxpX9y5vvjU9+ICKIp0ECdGogBSAKazYCACABKAIMIQACQCAFIA9NBEAgBSkAACEhIAAgBSkACDcACCAAICE3AAAMAQsgACAFIAUgDxAHCyABKAIEIgBBATYCACAAQQA7AQQgBEEBaiIGQYCABE8EQCABQQI2AiQgASAAIAEoAgBrQQN1NgIoCyADIARqIQUgACAGOwEGIAEgAEEIajYCBCAOIQQgByEODAELCyAFIQMMAAsACyATQSBrIQ9BwAAgBGutISIDQCAFIBdqIg1BAWoiDCARTw0CQQAgDmshFSAFQYABaiEQIAVBAWohBiALIAUpAABCgIDs/Mub741PfiAiiKciBEECdGooAgAhACAFKQABISEgFyEJAkADQAJAIAwhEiANIgggFWoiDSgAACEUIAsgBEECdGogBSAKayIMNgIAICFCgIDs/Mub741PfiAiiKchBAJAAkAgDgRAIAgoAAAgFEYNAQsCQAJAIAUoAABB+jwgACAKaiAAIBZJIg0bKAAARyANckUEQCAGIQggBSEGDAELIAsgBEECdGoiBCgCACEAIAgpAAAgBCAGIAprIgw2AgBCgIDs/Mub741PfiAiiKchBCAGKAAAQfo8IAAgCmogACAWSSIFGygAAEcgBXINAyAJQQVPDQELIAsgBEECdGogCCAKazYCAAsgBiAAIApqIgVrIghBA2ohCUEEIQADQCAFIBhNIAMgBk9yDQMgBkEBayIELQAAIAVBAWsiBy0AAEcNAyAAQQFqIQAgByEFIAQhBgwACwALIA1BAWstAAAhACAIQQFrLQAAIQUgCyAEQQJ0aiAGIAprNgIAQQVBBCAAIAVGIgQbIQAgDSAEayEFIAggBGshBkEBIQkgByEEDAMLIAkgEmohDCALIARBAnRqKAIAIQAgEikAACEhIAggCWoiDSAQTwRAIBBBgAFqIRAgCUEBaiEJCyASIQYgCCEFIAwgEUkNAQwFCwsgDiEEIAghDgsgACAGaiAAIAVqIBMQBiENIAYgA2shCAJAIAYgD00EQCADKQAAISEgASgCDCIFIAMpAAg3AAggBSAhNwAAIAhBEUkNASADKQAQISEgASgCDCIHIAMpABg3ABggByAhNwAQIAhBIUgNASADQRBqIQUgByAIaiEDIAdBIGohBwNAIAUpABAhISAHIAUpABg3AAggByAhNwAAIAUpACAhISAHIAUpACg3ABggByAhNwAQIAVBIGohBSAHQSBqIgcgA0kNAAsMAQsgASgCDCADIAMgCGogDxAHCyABIAEoAgwgCGo2AgwgASgCBCEDIAhBgIAETwRAIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAMgCTYCACADIAg7AQQgACANaiIAQQNrIgVBgIAETwRAIAFBAjYCJCABIAMgASgCAGtBA3U2AigLIAMgBTsBBiABIANBCGo2AgQgBCEHIAAgBmoiBSEDIAUgEUsNACALIAwgGWopAABCgIDs/Mub741PfiAiiKdBAnRqIAxBAmo2AgAgCyAFQQJrIgApAABCgIDs/Mub741PfiAiiKdBAnRqIAAgCms2AgBBACEHIARFDQADQAJAIAQhByAFIBFLDQAgBSgAACAFIARrKAAARw0AIAVBBGoiAyADIARrIBMQBiEEIAsgBSkAAEKAgOz8y5vvjU9+ICKIp0ECdGogBSAKazYCACABKAIMIQACQCAFIA9NBEAgBSkAACEhIAAgBSkACDcACCAAICE3AAAMAQsgACAFIAUgDxAHCyABKAIEIgBBATYCACAAQQA7AQQgBEEBaiIGQYCABE8EQCABQQI2AiQgASAAIAEoAgBrQQN1NgIoCyADIARqIQUgACAGOwEGIAEgAEEIajYCBCAOIQQgByEODAELCyAFIQMMAAsACyATQSBrIQ9BwAAgBGutISIDQCAFIBdqIg1BAWoiDCARTw0BQQAgDmshFSAFQYABaiEQIAVBAWohBiALIAUpAABCgICA2Mub741PfiAiiKciBEECdGooAgAhACAFKQABISEgFyEJAkADQAJAIAwhEiANIgggFWoiDSgAACEUIAsgBEECdGogBSAKayIMNgIAICFCgICA2Mub741PfiAiiKchBAJAAkAgDgRAIAgoAAAgFEYNAQsCQAJAIAUoAABB+jwgACAKaiAAIBZJIg0bKAAARyANckUEQCAGIQggBSEGDAELIAsgBEECdGoiBCgCACEAIAgpAAAgBCAGIAprIgw2AgBCgICA2Mub741PfiAiiKchBCAGKAAAQfo8IAAgCmogACAWSSIFGygAAEcgBXINAyAJQQVPDQELIAsgBEECdGogCCAKazYCAAsgBiAAIApqIgVrIghBA2ohCUEEIQADQCAFIBhNIAMgBk9yDQMgBkEBayIELQAAIAVBAWsiBy0AAEcNAyAAQQFqIQAgByEFIAQhBgwACwALIA1BAWstAAAhACAIQQFrLQAAIQUgCyAEQQJ0aiAGIAprNgIAQQVBBCAAIAVGIgQbIQAgDSAEayEFIAggBGshBkEBIQkgByEEDAMLIAkgEmohDCALIARBAnRqKAIAIQAgEikAACEhIAggCWoiDSAQTwRAIBBBgAFqIRAgCUEBaiEJCyASIQYgCCEFIAwgEUkNAQwECwsgDiEEIAghDgsgACAGaiAAIAVqIBMQBiENIAYgA2shCAJAIAYgD00EQCADKQAAISEgASgCDCIFIAMpAAg3AAggBSAhNwAAIAhBEUkNASADKQAQISEgASgCDCIHIAMpABg3ABggByAhNwAQIAhBIUgNASADQRBqIQUgByAIaiEDIAdBIGohBwNAIAUpABAhISAHIAUpABg3AAggByAhNwAAIAUpACAhISAHIAUpACg3ABggByAhNwAQIAVBIGohBSAHQSBqIgcgA0kNAAsMAQsgASgCDCADIAMgCGogDxAHCyABIAEoAgwgCGo2AgwgASgCBCEDIAhBgIAETwRAIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAMgCTYCACADIAg7AQQgACANaiIAQQNrIgVBgIAETwRAIAFBAjYCJCABIAMgASgCAGtBA3U2AigLIAMgBTsBBiABIANBCGo2AgQgBCEHIAAgBmoiBSEDIAUgEUsNACALIAwgGWopAABCgICA2Mub741PfiAiiKdBAnRqIAxBAmo2AgAgCyAFQQJrIgApAABCgICA2Mub741PfiAiiKdBAnRqIAAgCms2AgBBACEHIARFDQADQAJAIAQhByAFIBFLDQAgBSgAACAFIARrKAAARw0AIAVBBGoiAyADIARrIBMQBiEEIAsgBSkAAEKAgIDYy5vvjU9+ICKIp0ECdGogBSAKazYCACABKAIMIQACQCAFIA9NBEAgBSkAACEhIAAgBSkACDcACCAAICE3AAAMAQsgACAFIAUgDxAHCyABKAIEIgBBATYCACAAQQA7AQQgBEEBaiIGQYCABE8EQCABQQI2AiQgASAAIAEo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EWoiBSgAACABKAAARw0BIAwgBUEEaiACIBIgExAFQQRqCyIFIABNDQAgAyALIAZrNgIAIAUiACABaiACRg0DCyAGIA9NDQAgB0EBayEHIAkgBiAUcUECdGohBQwBCwsgACEFCyAFC/sJAiN/AX4jAEEQayIUJAACQCADIAEoAgQiCyABKAIcIgJqSQ0AIAMgC2shCgNAIAIgCk9FBEAgASACIAtqIAQgCiAJQQAQECACaiECDAELCyABIAo2AhxBASABKAIQIgIgAyABKAIEIhVrIg1BASABKAK4AXQiCmsgAiANIAJrIApLGyABKAIYGyIWIBZBAU0bISIgDUF/IAEoArwBQQFrdEF/cyIbayICQQAgAiANTRshHCABKAJcIAMpAAAgCH4iLUHAACABKALAAWutiKdBAnRqIiMoAgAhDCABKAK0ASISKAIAIh0gEigCBCIeayIXQX8gEigCvAFBAWt0QX9zIh9rIBIoAhAiGCAXIBhrIB9LGyEkIB4gFiAXayIZayElIA0gGCAZamshJiAGIAZBA2oiAiACIAZJGyEnIAEoAmQiKCANIBtxQQN0aiITQQRqIQ9B/x8gASgCzAEiAiACQf8fTxshKSADQQRqIRogB0EBayEKIBUgASgCDCIgaiEhIA0gIGshKiANQQlqIRBBASABKALEAXQhESASKALAASErIAYhAgNAIAIgJ0cEQCANAn8gAkEDRgRAIAUoAgBBAWsMAQsgBSACQQJ0aigCAAsiC2shBwJAAn8gKiALQQFrIixLBEAgByAWSQ0CIAMoAAAgAyALaygAAEcNAiAaIBogC2sgBBAGDAELICYgLE0gByAga0F8S3INASADKAAAIAcgJWoiBygAAEcNASAaIAdBBGogBCAdICEQBQtBBGoiByAKTQ0AIAAgDkEDdGoiCiAHNgIEIAogAiAGa0EBajYCACAOQQFqIQ4gByApSw0DIAciCiADaiAERg0DCyACQQFqIQIMAQsLICMgDTYCACANQQNqIQZBACEHQQAhBQJAAkACQAJAAkADQCARRSAMICJJcg0CIAogAyAFIAcgBSAHSRsiAmogDCAVaiINIAJqIAQQBiACaiICSQRAIAAgDkEDdGoiCiACNgIEIAogBiAMazYCACACIAxqIBAgAiAQIAxrSxshECAOQQFqIQ4gAiADaiAERiACQYAgS3INBSACIQoLICggDCAbcUEDdGohCwJAAkACQCACIA1qLQAAIAIgA2otAABJBEAgEyAMNgIAIAwgHEsNASAUQQxqIRMMBQsgDyAMNgIAIAwgHE0NAiALIQ8gAiEHDAELIAIhBSALQQRqIhMhCwsgEUEBayERIAsoAgAhDAwBCwsgFEEMaiEPCyAPQQA2AgAgE0EANgIADAELIA9BADYCACATQQA2AgAgEUUNAgsgFSAZaiEPIBIoAlwgLUHAACAra62Ip0ECdGohAiASKAJkIQ1BACEMQQAhBwNAIBFFDQIgAigCACIFIBhNDQIgCiADIAcgDCAHIAxJGyICaiAFIB5qIgsgAmogBCAdICEQBSACaiICSQRAIAAgDkEDdGoiCiACNgIEIAogBiAFIBlqIgprNgIAIAIgCmogECACIBAgCmtLGyEQIA5BAWohDiACQYAgSw0DIAIhCiACIANqIARGDQMLIAUgJE0NAiARQQFrIREgAiAHIAsgBSAPaiACIAVqIBdJGyACai0AACACIANqLQAASSILGyEHIAwgAiALGyEMIA0gBSAfcUEDdGogC0ECdGohAgwACwALIA9BADYCACATQQA2AgALIAEgEEEIazYCHAsgFEEQaiQAIA4LsgcBG38jAEEQayIUJAACQCADIAEoAgQiDSABKAIcIgJqSQ0AIAMgDWshCwNAIAIgC09FBEAgASACIA1qIAQgCyAJQQEQECACaiECDAELCyABIAs2AhxBASABKAIQIgIgAyABKAIEIhBrIgxBASABKAK4AXQiC2sgAiAMIAJrIAtLGyABKAIYGyIVIBVBAU0bIR0gDEF/IAEoArwBQQFrdEF/cyIZayICQQAgAiAMTRshGiAMIBVrIR4gBiAGQQNqIgIgAiAGSRshHyABKAJkIiAgDCAZcUEDdGoiEUEEaiESIAEoAlwgAykAACAIfkHAACABKALAAWutiKdBAnRqIiEoAgAhCkH/HyABKALMASICIAJB/x9PGyEiIANBBGohFiAHQQFrIQsgECABKAIMIg9qIRsgASgCCCIXIA9qIRwgDCAPayEjIAxBCWohE0EBIAEoAsQBdCEYIAYhAgNAIAIgH0cEQCAMAn8gAkEDRgRAIAUoAgBBAWsMAQsgBSACQQJ0aigCAAsiDWshBwJAAn8gIyANQQFrIiRLBEAgByAVSQ0CIAMoAAAgAyANaygAAEcNAiAWIBYgDWsgBBAGDAELIB4gJE0gByAPa0F8S3INASADKAAAIAcgF2oiBygAAEcNASAWIAdBBGogBCAcIBsQBQtBBGoiByALTQ0AIAAgDkEDdGoiCyAHNgIEIAsgAiAGa0EBajYCACAOQQFqIQ4gByAiSw0DIAciCyADaiAERg0DCyACQQFqIQIMAQsLICEgDDYCACAMQQNqIQxBACEHQQAhBQJAA0AgGEUgCiAdSXINASADIAUgByAFIAdJGyICaiEGAn8gDyACIApqTQRAIAYgCiAQaiACaiAEEAYgAmohAiAQDAELIBcgECAGIAogF2ogAmogBCAcIBsQBSACaiICIApqIA9JGwshBiACIAtLBEAgACAOQQN0aiILIAI2AgQgCyAMIAprNgIAIAIgCmogEyACIBMgCmtLGyETIA5BAWohDiACQYAgSw0CIAIhCyACIANqIARGDQILICAgCiAZcUEDdGohDQJAAkACQCAGIApqIAJqLQAAIAIgA2otAABJBEAgESAKNgIAIAogGksNASAUQQxqIREMBQsgEiAKNgIAIAogGk0NAiANIRIgAiEHDAELIAIhBSANQQRqIhEhDQsgGEEBayEYIA0oAgAhCgwBCwsgFEEMaiESCyASQQA2AgAgEUEANgIAIAEgE0EIazYCHAsgFEEQaiQAIA4LmwYBFH8jAEEQayITJAACQCADIAEoAgQiCiABKAIcIgJqSQ0AIAMgCmshCwNAIAIgC09FBEAgASACIApqIAQgCyAJQQAQECACaiECDAELCyABIAs2AhxBASABKAIQIgIgAyABKAIEIhdrIgxBASABKAK4AXQiC2sgAiAMIAJrIAtLGyABKAIYGyIPIA9BAU0bIRggDEF/IAEoArwBQQFrdEF/cyIUayICQQAgAiAMTRshFSAGIAZBA2oiAiACIAZJGyEZIAEoAmQiGiAMIBRxQQN0aiIQQQRqIREgASgCXCADKQAAIAh+QcAAIAEoAsABa62Ip0ECdGoiGygCACENQf8fIAEoAswBIgIgAkH/H08bIRwgA0EEaiEWIAdBAWshCyAMIAEoAgxrIR0gDEEJaiESQQEgASgCxAF0IQcgBiECA0AgAiAZRwRAAkACfyACQQNGBEAgBSgCAEEBawwBCyAFIAJBAnRqKAIACyIKQQFrIB1P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ASAJIBgpAgA3A3ggDCAlIAlB+ABqIAlBzAJqICQgDyAnICEQGiEKDAELIAMgGmohCyADIAxqIQggGCgCCCENIBopAAAhSyAMIBopAAg3AAggDCBLNwAAAkAgA0ERSQ0AIB8pAAAhSyAMIB8pAAg3ABggDCBLNwAQIANBEGtBEUgNACAMQSBqIQMgHyETA0AgEykAECFLIAMgEykAGDcACCADIEs3AAAgEykAICFLIAMgEykAKDcAGCADIEs3ABAgE0EgaiETIANBIGoiAyAISQ0ACwsgCCANayEDIAkgCzYCzAIgCCAPayANSQRAIA0gCCAna0sNDyAhICEgAyAPayILaiIDIBVqTwRAIAggAyAVEAoaDAILIAsgFWohFSAIIANBACALaxAKIAtrIQggDyEDCyANQRBPBEAgAykAACFLIAggAykACDcACCAIIEs3AAAgFUERSA0BIAggFWohCyAIQRBqIQgDQCADKQAQIUsgCCADKQAYNwAIIAggSzcAACADKQAgIUsgCCADKQAoNwAYIAggSzcAECADQSBqIQMgCEEgaiIIIAtJDQALDAELAkAgDUEHTQRAIAggAy0AADoAACAIIAMtAAE6AAEgCCADLQACOgACIAggAy0AAzoAAyAIIAMgDUECdCILQeDPAGooAgBqIgMoAAA2AAQgAyALQYDQAGooAgBrIQMMAQsgCCADKQAANwAACyAVQQlJDQAgCCAVaiENIAhBCGoiCyADQQhqIgNrQQ9MBEADQCALIAMpAAA3AAAgA0EIaiEDIAtBCGoiCyANSQ0ADAILAAsgAykAACFLIAsgAykACDcACCALIEs3AAAgFUEZSA0AIAhBGGohCANAIAMpABAhSyAIIAMpABg3AAggCCBLNwAAIAMpACAhSyAIIAMpACg3ABggCCBLNwAQIANBIGohAyAIQSBqIgggDUkNAAsLIApBiH9LBEAgCiEEDA4LIBggEDYCCCAYIA42AgQgGCAUNgIAICQhFwwDCyANQSBrIQgCQAJAIA0gF0sNACAMIBgoAgQiFiADaiIKaiAISw0AIApBIGogJSAMa00NAQsgCSAYKAIINgKQASAJIBgpAgA3A4gBIAwgJSAIIAlBiAFqIAlBzAJqIBcgDyAnICEQciEKDAILIAMgDGohCCAYKAIIIRMgCykAACFLIAwgCykACDcACCAM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SyAMIBMpABg3ABggDCBLNwAQIAhBEGtBEUgNACATQRBqIQMgDEEgaiEIA0AgAykAECFLIAggAykAGDcACCAIIEs3AAAgAykAICFLIAggAykAKDcAGCAIIEs3ABAgA0EgaiEDIAhBIGoiCCAKSQ0ACwsgCiANayEDIAkgCzYCzAIgCiAPayANSQRAIA0gCiAna0sNDSAhICEgAyAPayIIaiIDIBVqTwRAIAogAyAVEAoaDAMLIAggFWohFSAKIANBACAIaxAKIAhrIQogDyEDCyANQRBPBEAgAykAACFLIAogAykACDcACCAKIEs3AAAgFUERSA0CIAogFWohCyAKQRBqIQgDQCADKQAQIUsgCCADKQAYNwAIIAggSzcAACADKQAgIUsgCCADKQAoNwAYIAggSzcAECADQSBqIQMgCEEgaiIIIAtJDQALDAILAkAgDUEHTQRAIAogAy0AADoAACAKIAMtAAE6AAEgCiADLQACOgACIAogAy0AAzoAAyAKIAMgDUECdCIIQeDPAGooAgBqIgMoAAA2AAQgAyAIQYDQAGooAgBrIQMMAQsgCiADKQAANwAACyAVQQlJDQEgCiAVaiELIApBCGoiCCADQQhqIgNrQQ9MBEADQCAIIAMpAAA3AAAgA0EIaiEDIAhBCGoiCCALSQ0ADAMLAAsgAykAACFLIAggAykACDcACCAIIEs3AAAgFUEZSA0BIApBGGohCANAIAMpABAhSyAIIAMpABg3AAggCCBLNwAAIAMpACAhSyAIIAMpACg3ABggCCBLNwAQIANBIGohAyAIQSBqIgggC0kNAAsMAQsCQAJAIAkoAswCIgogDSgCACIDaiILIBdLDQAgDCANKAIEIhAgA2oiDmogHUsNACAOQSBqICUgDGtNDQELIAkgDSgCCDYCcCAJIA0pAgA3A2ggDCAlIAlB6ABqIAlBzAJqIBcgDyAnICEQGiEODAELIAMgDGohCCANKAIIIQ0gCikAACFLIAwgCikACDcACCAMIEs3AAACQCADQRFJDQAgCikAECFLIAwgCikAGDcAGCAMIEs3ABAgA0EQa0ERSA0AIApBEGohAyAMQSBqIQoDQCADKQAQIUsgCiADKQAYNwAIIAogSzcAACADKQAgIUsgCiADKQAoNwAYIAogSzcAECADQSBqIQMgCkEgaiIKIAhJDQALCyAI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a0EPTARAA0AgCCADKQAANwAAIANBCGohAyAIQQhqIgggDUkNAAwCCwALIAMpAAAhSyAIIAMpAAg3AAggCCBLNwAAIAxBGUgNACAKQRhqIQgDQCADKQAQIUsgCCADKQAYNwAIIAggSzcAACADKQAgIUsgCCADKQAoNwAYIAggSzcAECADQSBqIQMgCEEgaiIIIA1JDQALCyAEQYh/Sw0MIBFBAWshESAEIAtqIQsMAQsLIBFBAEwNCCADIA5HBEBBun8hBCADIA5rIgMgICALa0sNCyALIA4gAxBZIAMgC2ohCyAIIANrIQgLIAkgAEGI7AFqIgM2AswCIABBADYChOwBIABBiOwFaiEWIAkgCDYCqAEgCSAMNgKsASAJIBA2ArABAkACQAJAIAhBgIAESg0AIAsgCCAMaiIEaiAgQSBrSw0AIARBIGogICALa00NAQsgCSAJKAKwATYCMCAJIAkpA6gBNwMoIAsgICAJQShqIAlBzAJqIBYgDyAjIBoQGiEEDAELIAMgCGohDSAIIAtqIQogAykAACFLIAsgAykACDcACCALIEs3AAACQCAIQRFJDQAgACkAmOwBIUsgCyAAQaDsAWopAAA3ABggCyBLNwAQIAhBEGtBEUgNACAAQZjsAWohAyALQSBqIQgDQCADKQAQIUsgCCADKQAYNwAIIAggSzcAACADKQAgIUsgCCADKQAoNwAYIAggSzcAECADQSBqIQMgCEEgaiIIIApJDQALCyAKIBBrIQMgCSANNgLMAiAKIA9rIBBJBEAgECAKICNrSw0KIBogGiADIA9rIghqIgMgDGpPBEAgCiADIAwQChoMAgsgCiADQQAgCGsQCiAJIAggDGoiDDYCrAEgCGshCiAPIQMLIBBBEE8EQCADKQAAIUsgCiADKQAINwAIIAogSzcAACAMQRFIDQEgCiAMaiENIApBEGohCANAIAMpABAhSyAIIAMpABg3AAggCCBLNwAAIAMpACAhSyAIIAMpACg3ABggCCBLNwAQIANBIGohAyAIQSBqIgggDUkNAAsMAQsCQCAQQQdNBEAgCiADLQAAOgAAIAogAy0AAToAASAKIAMtAAI6AAIgCiADLQADOgADIAogAyAQQQJ0IghB4M8AaigCAGoiAygAADYABCADIAhBgNAAaigCAGshAwwBCyAKIAMpAAA3AAALIAko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ayIDNgLoASAJIAMoAAA2AuABDAELIAMgCSgC7AEiDkYNACAJIAQgAyAOayAEQQN2IgQgAyAEayAOSRsiBEEDdGs2AuQBIAkgAyAEayIDNgLoASAJIAMoAAA2AuABCyAJIAg2AqgBIAkgETYCrAEgCSAKNgKwAQJAAkACQCAJKALMAiIDIAhqIg4gFksNACALIAggEWoiBGogFUsNACAEQSBqICAgC2tNDQELIAkgCSgCsAE2AiAgCSAJKQOoATcDGCALICAgCUEYaiAJQcwCaiAWIA8gIyAaEBohBAwBCyAIIAtqIQwgAykAACFLIAsgAykACDcACCALIEs3AAACQCAIQRFJDQAgAykAECFLIAsgAykAGDcAGCALIEs3ABAgCEEQa0ERSA0AIANBEGohAyALQSBqIQgDQCADKQAQIUsgCCADKQAYNwAIIAggSzcAACADKQAgIUsgCCADKQAoNwAYIAggSzcAECADQSBqIQMgCEEgaiIIIAxJDQALCyAMIAprIQMgCSAONgLMAiAMIA9rIApJBEAgCiAMICNrSw0LIBogGiADIA9rIg5qIgMgEWpPBEAgDCADIBEQChoMAgsgDCADQQAgDmsQCiAJIA4gEWoiETYCrAEgDmshDCAPIQMLIApBEE8EQCADKQAAIUsgDCADKQAINwAIIAwgSzcAACARQRFIDQEgDCARaiEKIAxBEGohCANAIAMpABAhSyAIIAMpABg3AAggCCBLNwAAIAMpACAhSyAIIAMpACg3ABggCCBLNwAQIANBIGohAyAIQSBqIgggCkkNAAsMAQsCQCAKQQdNBEAgDCADLQAAOgAAIAwgAy0AAToAASAMIAMtAAI6AAIgDCADLQADOgADIAwgAyAKQQJ0IghB4M8AaigCAGoiAygAADYABCADIAhBgNAAaigCAGshAwwBCyAMIAMpAAA3AAALIAkoAqwBIg5BCUkNACAMIA5qIQogDEEIaiIIIANBCGoiA2tBD0wEQANAIAggAykAADcAACADQQhqIQMgCEEIaiIIIApJDQAMAgsACyADKQAAIUsgCCADKQAINwAIIAggSzcAACAOQRlIDQAgDEEYaiEIA0AgAykAECFLIAggAykAGDcACCAIIEs3AAAgAykAICFLIAggAykAKDcAGCAIIEs3ABAgA0EgaiEDIAhBIGoiCCAKSQ0ACwsg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AWoiB0H//wNLDQEMAgsCQAJAIAcgDkkNACAHIAtqIgcpAAAgIlINACAAQQhqIAdBCGogChAGQQhqIQUgACAHayEIA0AgACADTSAHIA9Ncg0CIABBAWsiBi0AACAHQQFrIgctAABHDQIgBUEBaiEFIAYhAAwACwALAkAgCSAUc0H/AXENACAJQQh2IgcgGU0NACAHIBJqIgkpAAAgIlINACAAQQhqIAlBCGogCiATIA8QBUEIaiEFIAwgByAWamshCANAIAkgGk0gACADTXINAiAAQQFrIgYtAAAgCUEBayIJLQAARw0CIAVBAWohBSAGIQAMAAsACwJAAkACQCAIIA5LBEAgCCALaiIHKAAAIAAoAABHDQEMAwsgDSAec0H/AXENACANQQh2IgggGU0NACAIIBJqIgcoAAAgACgAAEYNAQsgACAAIANrQQh1akEBaiEADAULIAggFmohCAsgFSAAKQABIiJC48iVvcub741PfiImICSIp0ECdGoiBigCACEFIBwgJiAliKciFEEGdkH8//8fcWooAgAhDSAGIBE2AgAgAEEBaiEGAkACQCAFIA5JDQAgBSALaiIJKQAAICJSDQAgAEEJaiAJQQhqIAoQBkEIaiEFIAYgCWshCANAIAkgD00gAyAGT3INAiAGQQFrIgAtAAAgCUEBayIJLQAARw0CIAVBAWohBSAAIQYMAAsACwJAIA0gFHNB/wFxDQAgDUEIdiINIBlNDQAgDSASaiIJKQAAICJSDQAgAEEJaiAJQQhqIAogEyAPEAVBCGohBSARIA0gFmprIQgDQCAJIBpNIAMgBk9yDQIgBkEBayIALQAAIAlBAWsiCS0AAEcNAiAFQQFqIQUgACEGDAALAAsgB0EEaiEGIABBBGohBSAIIA5JBEAgBSAGIAogEyAPEAVBBGohBSAMIAhrIQgDQCAAIANNIAcgGk1yDQMgAEEBayIGLQAAIAdBAWsiBy0AAEcNAyAFQQFqIQUgBiEADAALAAsgBSAGIAoQBkEEaiEFIAAgB2shCANAIAAgA00gByAPTXINAiAAQQFrIgYtAAAgB0EBayIHLQAARw0CIAVBAWohBSAGIQAMAAsACyAGIQALIAAgA2shBwJAIAAgEE0EQCADKQAAISIgASgCDCIGIAMpAAg3AAggBiAiNwAAIAdBEUkNASADKQAQISIgASgC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IiNC48iVvcub741PfiIlICSIp0ECdGoiBSgCACEHIBcgI6dBsfPd8XlsIgwgDXZBAnRqIhQoAgAhCCAcICUgIoinIhtBBnZB/P//H3FqKAIAIQkgHyAMIB52IiBBBnZB/P//H3FqKAIAIREgFCAAIAtrIgw2AgAgBSAMNgIAAkACQAJAIAxBAWoiFCAEayIFIA5rQXxLDQAgEiAFIBZraiAFIAtqIAUgDkkiBRsiISgAACAAKAABRw0AIABBBWogIUEEaiAKIBMgCiAFGyAPEAUhByAAQQFqIgAgA2shCAJAIAAgEE0EQCADKQAAISMgASgCDCIFIAMpAAg3AAggBSAjNwAAIAhBEUkNASADKQAQISMgASgCDCIFIAMpABg3ABggBSAjNwAQIAhBIUgNASADQRBqIQMgBSAIaiEJIAVBIGohBQNAIAMpABAhIyAFIAMpABg3AAggBSAjNwAAIAMpACAhIyAFIAMpACg3ABggBSAjNwAQIANBIGohAyAFQSBqIgUgCUkNAAsMAQsgASgCDCADIAMgCGogEBAHCyABIAEoAgwgCGo2AgwgASgCBCEDIAhBgIAETwRAIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAdBBGohBSADQQE2AgAgAyAIOwEEIAdBAWoiB0H//wNLDQEMAgsCQAJAIAcgDkkNACAHIAtqIgcpAAAgI1INACAAQQhqIAdBCGogChAGQQhqIQUgACAHayEIA0AgACADTSAHIA9Ncg0CIABBAWsiBi0AACAHQQFrIgctAABHDQIgBUEBaiEFIAYhAAwACwALAkAgCSAbc0H/AXENACAJQQh2IgcgGU0NACAHIBJqIgkpAAAgI1INACAAQQhqIAlBCGogCiATIA8QBUEIaiEFIAwgByAWamshCANAIAkgGk0gACADTXINAiAAQQFrIgYtAAAgCUEBayIJLQAARw0CIAVBAWohBSAGIQAMAAsACwJAAkACQCAIIA5LBEAgCCALaiIHKAAAIAAoAABHDQEMAwsgESAgc0H/AXENACARQQh2IgggGU0NACAIIBJqIgcoAAAgACgAAEYNAQsgACAAIANrQQh1akEBaiEADAULIAggFmohCAsgFSAAKQABIiNC48iVvcub741PfiIlICSIp0ECdGoiBigCACEFIBwgJSAiiKciG0EGdkH8//8fcWooAgAhESAGIBQ2AgAgAEEBaiEGAkACQCAFIA5JDQAgBSALaiIJKQAAICNSDQAgAEEJaiAJQQhqIAoQBkEIaiEFIAYgCWshCANAIAkgD00gAyAGT3INAiAGQQFrIgAtAAAgCUEBayIJLQAARw0CIAVBAWohBSAAIQYMAAsACwJAIBEgG3NB/wFxDQAgEUEIdiIRIBlNDQAgESASaiIJKQAAICNSDQAgAEEJaiAJQQhqIAogEyAPEAVBCGohBSAUIBEgFmprIQgDQCAJIBpNIAMgBk9yDQIgBkEBayIALQAAIAlBAWsiCS0AAEcNAiAFQQFqIQUgACEGDAALAAsgB0EEaiEGIABBBGohBSAIIA5JBEAgBSAGIAogEyAPEAVBBGohBSAMIAhrIQgDQCAAIANNIAcgGk1yDQMgAEEBayIGLQAAIAdBAWsiBy0AAEcNAyAFQQFqIQUgBiEADAALAAsgBSAGIAoQBkEEaiEFIAAgB2shCANAIAAgA00gByAPTXINAiAAQQFrIgYtAAAgB0EBayIHLQAARw0CIAVBAWohBSAGIQAMAAsACyAGIQALIAAgA2shBwJAIAAgEE0EQCADKQAAISMgASgCDCIGIAMpAAg3AAggBiAjNwAAIAdBEUkNASADKQAQISMgASgCDCIGIAMpABg3ABggBiAjNwAQIAdBIUgNASADQRBqIQMgBiAHaiEJIAZBIGohBgNAIAMpABAhIyAGIAMpABg3AAggBiAjNwAAIAMpACAhIyAGIAMpACg3ABggBiAjNwAQIANBIGohAyAGQSBqIgYgCUkNAAsMAQsgASgCDCADIAMgB2ogEBAHCyABIAEoAgwgB2o2AgwgASgCBCEDIAdBgIAETwRAIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAMgCEEDajYCACADIAc7AQQgBCEGIAghBCAFQQNrIgdBgIAESQ0BCyABQQI2AiQgASADIAEoAgBrQQN1NgIoCyADIAc7AQYgASADQQhqNgIEIAAgBWoiAyEAIAMgGEsNACAVIAsgDEECaiIAaiIIKQAAQuPIlb3Lm++NT34gJIinQQJ0aiAANgIAIBUgA0ECayIFKQAAQuPIlb3Lm++NT34gJIinQQJ0aiAFIAtrNgIAIBcgCCgAAEGx893xeWwgDXZBAnRqIAA2AgAgFyADQQFrIgAoAABBsfPd8XlsIA12QQJ0aiAAIAtrNgIAA0ACQCAGIQAgAyAYSw0AIB0gCyADIAtrIgggAGsiBiAOSSIHGyAGaiEFIAYgDmtBfEsNACAFKAAAIAMoAABHDQAgA0EEaiAFQQRqIAogEyAKIAcbIA8QBSEFIAEoAgwhBgJAIAMgEE0EQCADKQAAISMgBiADKQAINwAIIAYgIzcAAAwBCyAGIAMgAyAQEAcLIAEoAgQiBkEBNgIAIAZBADsBBCAFQQFqIgdBgIAETwRAIAFBAjYCJCABIAYgASgCAGtBA3U2AigLIAYgBzsBBiABIAZBCGo2AgQgFyADKAAAQbHz3fF5bCANdkECdGogCDYCACAVIAMpAABC48iVvcub741PfiAkiKdBAnRqIAg2AgAgAyAFakEEaiEDIAQhBiAAIQQMAQsLIAAhBiADIQAMAAsACyACIAY2AgQgAiAENgIAIAogA2sLvD0CHX8DfkEBIAAoAswBIgYgBkEBTRshGSADIARqIgxBCGshEiAAKAK0ASIHKAIEIhYgBygCDCIeaiEaIAcoAgAiFyADIAAoAgQiDSAAKAIMIg5qIhNraiEJQQAgFiAXayAOaiIbayEIIAAoAtgBIQogAigCBCEGIAIoAgAhBCAAKALAASEQIAAoAlwhFCAHKALAASEFIAcoAlwhHAJAAkACQAJAAkAgACgCyAFBBWsOAwMCAQALAkAgCkUNAEEEIAV0IQdBACEAA0AgACAHTw0BIABBQGshAAwACwALIAggFmohHyAMQSBrIQtBGCAFayEdQSAgEGshDyANQQJqISAgAyAJIBpGaiEAA0AgAyAZaiIFIBJLDQQgACgAAEGx893xeWwiCCAddiIHIBwgB0EGdkH8//8fcWooAgAiGHMhCiAAQYACaiEQIBkhBwJAA0ACQCAUIAggD3ZBAnRqIggoAgAhESAFIgkoAAAhISAIIAAgDWsiFTYCAAJAIBUgBGtBAWoiBSAOa0F8Sw0AIBYgBSAba2ogBSANaiAFIA5JIgUbIggoAAAgACgAAUcNACAAQQVqIAhBBGogDCAXIAwgBRsgExAFIQkgAEEBaiIAIANrIQUCQCAAIAtNBEAgAykAACEiIAEoAgwiByADKQAINwAIIAcgIjcAACAFQRFJDQEgAykAECEiIAEoAgwiByADKQAYNwAYIAcgIjcAECAFQSFIDQEgA0EQaiEDIAUgB2ohCCAHQSBqIQcDQCADKQAQISIgByADKQAYNwAIIAcgIjcAACADKQAgISIgByADKQAoNwAYIAcgIjcAECADQSBqIQMgB0EgaiIHIAhJDQALDAELIAEoAgwgAyADIAVqIAsQBwsgASABKAIMIAVqNgIMIAEoAgQhAyAFQYCABE8EQCABQQE2AiQgASADIAEoAgBrQQN1NgIoCyAJQQRqIQcgA0EBNgIAIAMgBTsBBCAJQQFqIghB//8DTQ0DDAELAkAgCkH/AXEEQCAAKAAAIQUMAQsgACgAACEFIBhBCHYiGCAeTQ0AIBYgGGoiCigAACAFRyAOIBFJcg0AIABBBGogCkEEaiAMIBcgExAFQQRqIQcDQAJAIAAgA00gCiAaTXINACAAQQFrIgYtAAAgCkEBayIKLQAARw0AIAdBAWohByAGIQAMAQsLIAAgA2shBgJAIAAgC00EQCADKQAAISIgASgCDCIFIAMpAAg3AAggBSAiNwAAIAZBEUkNASADKQAQISIgASgCDCIFIAMpABg3ABggBSAiNwAQIAZBIUgNASADQRBqIQMgBSAGaiEJIAVBIGohCANAIAMpABAhIiAIIAMpABg3AAggCCAiNwAAIAMpACAhIiAIIAMpACg3ABggCCAiNwAQIANBIGohAyAIQSBqIgggCUkNAAsMAQsgASgCDCADIAMgBmogCxAHCyABIAEoAgwgBmo2AgwgASgCBCEDIAZBgIAETwRAIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAMgFSAYIBtqayIFQQNqNgIAIAMgBjsBBCAEIQYgBSEEIAdBA2siCEH//wNLDQEMAwsgBUH6PCANIBFqIgggDiARSyIKGygAAEcgCnJFBEAgAEEEaiAIQQRqIAwQBkEEaiEHIAAgCGshBQNAAkAgACADTSAIIBNNcg0AIABBAWsiBi0AACAIQQFrIggtAABHDQAgB0EBaiEHIAYhAAwBCwsgACADayEGAkAgACALTQRAIAMpAAAhIiABKAIMIgkgAykACDcACCAJICI3AAAgBkERSQ0BIAMpABAhIiABKAIMIgkgAykAGDcAGCAJICI3ABAgBkEhSA0BIANBEGohAyAGIAlqIQogCUEgaiEIA0AgAykAECEiIAggAykAGDcACCAIICI3AAAgAykAICEiIAggAykA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IARBABBWGiABQQA2AiQgASABKAIANgIEIAEgASgCCDYCDCAAIAAoAgwgBGoiBjYCDCAAIAY2AhwgACAGNgIQIAAgACgCBCAEazYCBAsgACABIAIgAyAEQQAQViAFQRBqJAALEAAgACABIAIgAyAEQQAQVgshACAAIAEgAiADIAQgBSAGIAdCgIDs/Mub741PQQYQuwELIQAgACABIAIgAyAEIAUgBiAHQoCAgNjLm++NT0EFELsBC/8JASN/IwBBEGsiEiQAAkAgAyABKAIEIgkgASgCHCICakkNACADIAlrIQgDQCACIAhPRQRAIAEgAiAJaiAEIAhBBEEAEBAgAmohAgwBCwsgASAINgIcQQEgASgCECICIAMgASgCBCITayILQQEgASgCuAF0IghrIAIgCyACayAISxsgASgCGBsiFCAUQQFNGyEgIAtBfyABKAK8AUEBa3RBf3MiGWsiAkEAIAIgC00bIRogASgCXCADKAAAQbHz3fF5bEEgIAEoAsABa3ZBAnRqIiEoAgAhCiABKAK0ASIQKAIAIhsgECgCBCIcayIVQX8gECgCvAFBAWt0QX9zIh1rIBAoAhAiFiAVIBZrIB1LGyEiIBwgFCAVayIXayEjIAsgFiAXamshJCAGIAZBA2oiAiACIAZJGyElIAEoAmQiJiALIBlxQQN0aiIRQQRqIQ1B/x8gASgCzAEiAiACQf8fTxshJyADQQRqIRggB0EBayEIIBMgASgCDCIeaiEfIAsgHmshKCALQQlqIQ5BASABKALEAXQhDyAQKALAASEpIAYhAgNAIAIgJUcEQCALAn8gAkEDRgRAIAUoAgBBAWsMAQsgBSACQQJ0aigCAAsiCWshBwJAAn8gKCAJQQFrIipLBEAgByAUSQ0CIAMoAAAgAyAJaygAAEcNAiAYIBggCWsgBBAGDAELICQgKk0gByAea0F8S3INASADKAAAIAcgI2oiBygAAEcNASAYIAdBBGogBCAbIB8QBQtBBGoiByAITQ0AIAAgDEEDdGoiCCAHNgIEIAggAiAGa0EBajYCACAMQQFqIQwgByAnSw0DIAciCCADaiAERg0DCyACQQFqIQIMAQsLICEgCzYCACALQQNqIQZBACEHQQAhBQJAAkACQAJAAkADQCAPRSAKICBJcg0CIAggAyAFIAcgBSAHSRsiAmogCiATaiILIAJqIAQQBiACaiICSQRAIAAgDEEDdGoiCCACNgIEIAggBiAKazYCACACIApqIA4gAiAOIAprSxshDiAMQQFqIQwgAiADaiAERiACQYAgS3INBSACIQgLICYgCiAZcUEDdGohCQJAAkACQCACIAtqLQAAIAIgA2otAABJBEAgESAKNgIAIAogGksNASASQQxqIREMBQsgDSAKNgIAIAogGk0NAiAJIQ0gAiEHDAELIAIhBSAJQQRqIhEhCQsgD0EBayEPIAkoAgAhCgwBCwsgEkEMaiENCyANQQA2AgAgEUEANgIADAELIA1BADYCACARQQA2AgAgD0UNAgsgECgCXCADKAAAQbHz3fF5bEEgIClrdkECdGohAiATIBdqIQ0gECgCZCELQQAhCkEAIQcDQCAPRQ0CIAIoAgAiBSAWTQ0CIAggAyAHIAogByAKSRsiAmogBSAcaiIJIAJqIAQgGyAfEAUgAmoiAkkEQCAAIAxBA3RqIgggAjYCBCAIIAYgBSAXaiIIazYCACACIAhqIA4gAiAOIAhrSxshDiAMQQFqIQwgAkGAIEsNAyACIQggAiADaiAERg0DCyAFICJNDQIgD0EBayEPIAIgByAJIAUgDWogAiAFaiAVSRsgAmotAAAgAiADai0AAEkiCRshByAKIAIgCRshCiALIAUgHXFBA3RqIAlBAnRqIQIMAAsACyANQQA2AgAgEUEANgIACyABIA5BCGs2AhwLIBJBEGokACAMC/wKASR/IwBBEGsiFCQAAkAgAyABKAIEIgwgASgCHCIJakkNACADIAxrIQgDQCAIIAlNRQRAIAEgCSAMaiAEIAhBA0EAEBAgCWohCQwBCwsgASAINgIcQQEgASgCECIIIAMgASgCBCITayINQQEgASgCuAF0IglrIAggDSAIayAJSxsgASgCGBsiFSAVQQFNGyEaIA1BfyABKAK8AUEBa3RBf3MiG2siCEEAIAggDU0bIRwgASgCXCADKAAAQbHz3fF5bEEgIAEoAsABa3ZBAnRqIiMoAgAhCiABKAK0ASIRKAIAIh0gESgCBCIeayIWQX8gESgCvAFBAWt0QX9zIh9rIBEoAhAiFyAWIBdrIB9LGyEkIB4gFSAWayIYayElIA0gFyAYamshJiAGIAZBA2oiCCAGIAhLGyEnIAEoAmQiKCANIBtxQQN0aiISQQRqIQ5B/x8gASgCzAEiCCAIQf8fTxshICADQQNqIRkgB0EBayEIIBMgASgCDCIhaiEiIA0gIWshKSANQQlqIQ9BASABKALEAXQhECARKALAASEqIAYhCQNAIAkgJ0cEQCANAn8gCUEDRgRAIAUoAgBBAWsMAQsgBSAJQQJ0aigCAAsiDGshBwJAAn8gKSAMQQFrIitLBEAgByAVSQ0CIAMgDGsoAAAgAygAAHNB////B3ENAiAZIBkgDGsgBBAGDAELICYgK00gByAha0F8S3INASAHICVqIgcoAAAgAygAAHNB////B3ENASAZIAdBA2ogBCAdICIQBQtBA2oiByAITQ0AIAAgC0EDdGoiCCAHNgIEIAggCSAGa0EBajYCACALQQFqIQsgByAgSw0DIAciCCADaiAERg0DCyAJQQFqIQkMAQsLIAECfwJAIAhBAksNACABIAIgAxCOASICIBpJDQAgDSACayIFQf//D0sNACADIAIgE2ogBBAGIgJBA0kNACAAIAI2AgQgACAFQQNqNgIAIAIgIE0EQEEBIQsgAiIIIANqIARHDQELQQEhCyANQQFqDAELICMgDTYCACANQQNqIQZBACEHQQAhBQJAAkACQAJAAkADQCAQRSAKIBpJcg0CIAggAyAFIAcgBSAHSRsiAmogCiATaiIJIAJqIAQQBiACaiICSQRAIAAgC0EDdGoiCCACNgIEIAggBiAKazYCACACIApqIA8gAiAPIAprSxshDyALQQFqIQsgAiADaiAERiACQYAgS3INBSACIQgLICggCiAbcUEDdGohDAJAAkACQCACIAlqLQAAIAIgA2otAABJBEAgEiAKNgIAIAogHEsNASAUQQxqIRIMBQsgDiAKNgIAIAogHE0NAiAMIQ4gAiEHDAELIAIhBSAMQQRqIhIhDAsgEEEBayEQIAwoAgAhCgwBCwsgFEEMaiEOCyAOQQA2AgAgEkEANgIADAELIA5BADYCACASQQA2AgAgEEUNAgsgESgCXCADKAAAQbHz3fF5bEEgICprdkECdGohCSATIBhqIQwgESgCZCEOQQAhCkEAIQcDQCAQRQ0CIAkoAgAiBSAXTQ0CIAggAyAHIAogByAKSRsiAmogBSAeaiIJIAJqIAQgHSAiEAUgAmoiAkkEQCAAIAtBA3RqIgggAjYCBCAIIAYgBSAYaiIIazYC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Bg8AAAAAAAAGEgAAAAAAAAYVAAAAAAAABhgAAAAAAAAGGwAAAAAAAAYeAAAAAAAABiEAAAAAAAEGIwAAAAAAAQYnAAAAAAACBisAAAAAAAMGMwAAAAAABAZDAAAAAAAFBmMAAAAAAAgGAwEAACAAAAQEAAAAMAAABAQAAAAQAAAEBQAAACAAAAUHAAAAIAAABQgAAAAgAAAFCgAAACAAAAULAAAAAAAABg4AAAAAAAAGEQAAAAAAAAYUAAAAAAAABhcAAAAAAAAGGgAAAAAAAAYdAAAAAAAABiAAAAAAABAGAwABAAAADwYDgAAAAAAOBgNAAAAAAA0GAyAAAAAADAYDEAAAAAALBgMIAAAAAAoGAwQAQbQjC3wBAAAAAwAAAAcAAAAPAAAAHwAAAD8AAAB/AAAA/wAAAP8BAAD/AwAA/wcAAP8PAAD/HwAA/z8AAP9/AAD//wAA//8BAP//AwD//wcA//8PAP//HwD//z8A//9/AP///wD///8B////A////wf///8P////H////z////9/AEHAJAuhAgEAAQABAAEAAQABAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP////////////8AAAAAAAAEAAMAAgACAAIAAgACAAIAAgACAAIAAgACAAEAAQABAAIAAgACAAIAAgACAAIAAgACAAMAAgABAAEAAQABAAEA//////////8AAAAAAAAAAAEABAADAAIAAgACAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA//////////////////8AAAAAAAAsAAAALQAAAC4AAAAvAAAACAAAAAkAAAAKAAAACgAAACAAQfEmC+QBAQIDBAUGBwgJCgsMDQ4PEBARERISExMUFBQUFRUVFRYWFhYWFhYWFxcXFxcXFxcYGBgYGBgYGBgYGBgYGBgYAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gICEhIiIjIyQkJCQlJSUlJiYmJiYmJiYnJycnJycnJygoKCgoKCgoKCgoKCgoKCgpKSkpKSkpKSkpKSkpKSkpKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioAAAAAAAAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAEAEHgKAv9JxMAAAAMAAAADQAAAAEAAAAGAAAAAQAAAAEAAAATAAAADQAAAA4AAAABAAAABwAAAAAAAAABAAAAFAAAAA8AAAAQAAAAAQAAAAYAAAAAAAAAAQAAABUAAAAQAAAAEQAAAAEAAAAFAAAAAAAAAAIAAAAVAAAAEgAAABIAAAABAAAABQAAAAAAAAACAAAAFQAAABIAAAATAAAAAwAAAAUAAAACAAAAAwAAABUAAAASAAAAEwAAAAMAAAAFAAAABAAAAAQAAAAVAAAAEwAAABQAAAAEAAAABQAAAAgAAAAEAAAAFQAAABMAAAAUAAAABAAAAAUAAAAQAAAABQAAABYAAAAUAAAAFQAAAAQAAAAFAAAAEAAAAAUAAAAWAAAAFQAAABYAAAAFAAAABQAAABAAAAAFAAAAFgAAABUAAAAWAAAABgAAAAUAAAAQAAAABQAAABYAAAAWAAAAFwAAAAYAAAAFAAAAIAAAAAUAAAAWAAAAFgAAABYAAAAEAAAABQAAACAAAAAGAAAAFgAAABYAAAAXAAAABQAAAAUAAAAgAAAABgAAABYAAAAXAAAAFwAAAAYAAAAFAAAAIAAAAAYAAAAWAAAAFgAAABYAAAAFAAAABQAAADAAAAAHAAAAFwAAABcAAAAWAAAABQAAAAQAAABAAAAABwAAABcAAAAXAAAAFgAAAAYAAAADAAAAQAAAAAgAAAAXAAAAGAAAABYAAAAHAAAAAwAAAAABAAAJAAAAGQAAABkAAAAXAAAABwAAAAMAAAAAAQAACQAAABoAAAAaAAAAGAAAAAcAAAADAAAAAAIAAAkAAAAbAAAAGwAAABkAAAAJAAAAAwAAAOcDAAAJAAAAEgAAAAwAAAANAAAAAQAAAAUAAAABAAAAAQAAABIAAAANAAAADgAAAAEAAAAGAAAAAAAAAAEAAAASAAAADgAAAA4AAAABAAAABQAAAAAAAAACAAAAEgAAABAAAAAQAAAAAQAAAAQAAAAAAAAAAgAAABIAAAAQAAAAEQAAAAMAAAAFAAAAAgAAAAMAAAASAAAAEQAAABIAAAAFAAAABQAAAAIAAAADAAAAEgAAABIAAAATAAAAAwAAAAUAAAAEAAAABAAAABIAAAASAAAAEwAAAAQAAAAEAAAABAAAAAQAAAASAAAAEgAAABMAAAAEAAAABAAAAAgAAAAFAAAAEgAAABIAAAATAAAABQAAAAQAAAAIAAAABQAAABIAAAASAAAAEwAAAAYAAAAEAAAACAAAAAUAAAASAAAAEgAAABMAAAAFAAAABAAAAAwAAAAGAAAAEgAAABMAAAATAAAABwAAAAQAAAAMAAAABgAAABIAAAASAAAAEwAAAAQAAAAEAAAAEAAAAAcAAAASAAAAEgAAABMAAAAEAAAAAwAAACAAAAAHAAAAEgAAABIAAAATAAAABgAAAAMAAACAAAAABwAAABIAAAATAAAAEwAAAAYAAAADAAAAgAAAAAgAAAASAAAAEwAAABMAAAAIAAAAAwAAAAABAAAIAAAAEgAAABMAAAATAAAABgAAAAMAAACAAAAACQAAABIAAAATAAAAEwAAAAgAAAADAAAAAAEAAAkAAAASAAAAEwAAABMAAAAKAAAAAwAAAAACAAAJAAAAEgAAABMAAAATAAAADAAAAAMAAAAAAgAACQAAABIAAAATAAAAEwAAAA0AAAADAAAA5wMAAAkAAAARAAAADAAAAAwAAAABAAAABQAAAAEAAAABAAAAEQAAAAwAAAANAAAAAQAAAAYAAAAAAAAAAQAAABEAAAANAAAADwAAAAEAAAAFAAAAAAAAAAEAAAARAAAADwAAABAAAAACAAAABQAAAAAAAAACAAAAEQAAABEAAAARAAAAAgAAAAQAAAAAAAAAAgAAABEAAAAQAAAAEQAAAAMAAAAEAAAAAgAAAAMAAAARAAAAEAAAABEAAAADAAAABAAAAAQAAAAEAAAAEQAAABAAAAARAAAAAwAAAAQAAAAIAAAABQAAABEAAAAQAAAAEQAAAAQAAAAEAAAACAAAAAUAAAARAAAAEAAAABEAAAAFAAAABAAAAAgAAAAFAAAAEQAAABAAAAARAAAABgAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAUAAAAEAAAACAAAAAYAAAARAAAAEgAAABEAAAAHAAAABAAAAAwAAAAGAAAAEQAAABIAAAARAAAAAwAAAAQAAAAMAAAABwAAABEAAAASAAAAEQAAAAQAAAADAAAAIAAAAAcAAAARAAAAEgAAABEAAAAGAAAAAwAAAAABAAAHAAAAEQAAABIAAAARAAAABgAAAAMAAACAAAAACAAAABEAAAASAAAAEQAAAAgAAAADAAAAAAEAAAgAAAARAAAAEgAAABEAAAAKAAAAAwAAAAACAAAIAAAAEQAAABIAAAARAAAABQAAAAMAAAAAAQAACQAAABEAAAASAAAAEQAAAAcAAAADAAAAAAIAAAkAAAARAAAAEgAAABEAAAAJAAAAAwAAAAACAAAJAAAAEQAAABIAAAARAAAACwAAAAMAAADnAwAACQAAAA4AAAAMAAAADQAAAAEAAAAFAAAAAQAAAAEAAAAOAAAADgAAAA8AAAABAAAABQAAAAAAAAABAAAADgAAAA4AAAAPAAAAAQAAAAQAAAAAAAAAAQAAAA4AAAAOAAAADwAAAAIAAAAEAAAAAAAAAAIAAAAOAAAADgAAAA4AAAAEAAAABAAAAAIAAAADAAAADgAAAA4AAAAOAAAAAwAAAAQAAAAEAAAABAAAAA4AAAAOAAAADgAAAAQAAAAEAAAACAAAAAUAAAAOAAAADgAAAA4AAAAGAAAABAAAAAgAAAAFAAAADgAAAA4AAAAOAAAACAAAAAQAAAAIAAAABQAAAA4AAAAPAAAADgAAAAUAAAAEAAAACAAAAAYAAAAOAAAADwAAAA4AAAAJAAAABAAAAAgAAAAGAAAADgAAAA8AAAAOAAAAAwAAAAQAAAAMAAAABwAAAA4AAAAPAAAADgAAAAQAAAADAAAAGAAAAAcAAAAOAAAADwAAAA4AAAAFAAAAAwAAACAAAAAIAAAADgAAAA8AAAAPAAAABgAAAAMAAABAAAAACAAAAA4AAAAPAAAADwAAAAcAAAADAAAAAAEAAAgAAAAOAAAADwAAAA8AAAAFAAAAAwAAADAAAAAJAAAADgAAAA8AAAAPAAAABgAAAAMAAACAAAAACQAAAA4AAAAPAAAADwAAAAcAAAADAAAAAAEAAAkAAAAOAAAADwAAAA8AAAAIAAAAAwAAAAABAAAJAAAADgAAAA8AAAAPAAAACAAAAAMAAAAAAgAACQAAAA4AAAAPAAAADwAAAAkAAAADAAAAAAIAAAkAAAAOAAAADwAAAA8AAAAKAAAAAwAAAOcDAAAJAAAAEjRWeJq83vDitBI0VngAAFx3d18s97j1EsR6ayZfk4TMDHPKqa1Htt6xTxFLu2Ww0J86jH5OWDQFa+JqfOGXTgSmmbxD1wM6TwTEIiQEzc6eJSSFxXbedsrqrVv2KIWcKXUJ4gY3VoaJ2HWjX0cCKebrpTmXKrOvOeaDONoUJ86e5iIXgq8eAii2IIZiewMA9cqIXUWNmgRAgZXmEddWhR9cYPx0rvcEIDq9aDQMn4KeFyXGhcj9TxuvPYoE3nOEskZWsCKIAFFfzNGyEl3XabxUkRUZSp2MA0C9q/QQzMORc7nsHNxt0C4wgO3n5ki+RzXgzjHbgTQQ0qHafPbDrMyWf4wdd8tl3SNXBXdxso6+lM1EDZWJxyuxADfc6k+TgvG97RFfSF56dmT9RiouHnz6LthxymkpLrq7XpPpRp0rguYFfrZW4KADnXNVP9eUA1qbtr0QcM30gpvX/PleRWHBSYdKtZyGJdKFYfqk0Ti76buUbxZ1tPFZCXJINRSkuiZruoBH7XoSI+A5RCbO0AjVeGB0bTaEvhftcjyXzqgBC0OaoiPDIe6Ar+MX1mKZW/eMnB3pDKu8TZrR5o4OU3JdP/UMjPYuBlWoQBZoOsBnCTGcn05uSaAUm7VyBFh4d4U4O8IkOCdTtVzUOpK/Zoa6kiRaGq5HWZYinlYE4zVvC4dGKhhlRxKUCekltrpswSKFWS6arN3yJGZmbghycTd4O1DKA1DfCT1WeNvBwIidKPysZRjVWPEkUsaucXYX12fpQaLYefuapNnKAeHhK2sYKW4vaCVmUG7AekVTlTl0uzrCtP9dA96qVB9Zsp1CCRB9A6gCKMXzJQsfOCfLajuCT+5RJV7098KAldmiDovh4bS8nFHtOwoBuz2CUvQPZ9I9T2HtQp17xVdiwBOTW0IUXosAuBShSz3BERwx/sFoVUyjPnboZl3wYsLxKpiLt/t1qvp2iO4qu3LR0KRiipeaRLejlD3BfANdwZ26u23x4JIdHxCGx5u3oAepgYbXuavJYimvGvbZesvT/Bb9LCFNYkRnW4yG1910nIlQ5iVjdMOn9CoEuso+WkY5pbFOytUFO/DbCb66clQrNlpOd82D0SkSIqFH36L1jqEMS1C5bkXivd/73zRG474vK81Gw5idgf74rvJhnVnUdlJ/NeNTxHk4SKUkubSSkYgmgAjs24IXZ5baKKqajlhAfPNOs5+8UQa5N4jW5fDTQfdkwbpwS3AKWhO82ipi92jYnAarwLngibo3vPZSNTIBSsFHu5jurEt5AE/VaXpjfd4HcV4l8rY7ea+ImLWZh2tGxvNZO3+qFsaIwv2j/ELPY8qBS2eiNs5a2IjniSN502sFDS3TnU5sOVzlpsDmcUVQ+77M6JFeETKrltE4j94Yy4q/BiZnAYjl2mb7FyOHF2A7g2QoydHyFny4nGaL5XRqdtu+FxTGhZ9liQzqEWCFrdrIrn7+tmW1pHYScyP2hdBppGzpo4NWNvCquPckhG90u03BrOT0WnU4BoZE5r31B3g9OXa7W49tvhfcNdxEzfADCWwZ8f3qcrZn8YJM7ZP/dqadPQXFBBAdUgKSzJzQmro3UfuseilN5YRFNBRqd0sLCo40C+Jx1CAI3EY9uDw4dBgc4e+hx+7tl6pC3BsL5TCzMuBwzlUZ2R3VOSmPuM0UpdO5Ddk/I5Enm3oPxUwKZ3ul38YFKn3Ad/qm0EZmi3fjSWe1R9qOnLMo79utSNQ+k/QLfav2aoSvSW5m6wjyWg5qzTQ19yJmXm5b70LKrn0ppjlV0/OuLYapHo6PSSKH5nLVwD0JUxyY9fuGv7+wCfoVnyFmYemxMIP7xL1m1Odw6ajyNW5zZlrvusG30lnbzZaJbdJH0sfWoxveyOo5Turyr6OfsYucU9gI1V9MDvkJhTOv+1ZZTqN18z4dFY4vLsGuP7jpkTYXeWMBv1aNWrjjikBnEjiCg20JwL0bkA+5Zey8MynTanyV1YosL167diht9GwahQ85ctrCoU0G5sOJU/ocEAwqxTDF+6OEr47XfpmLKOK5gTfEBT2o3vbCc9deW0w2jiIEETmkDd8+ep1WZ2gk2v7cjqGzqbenZ3ZeHXlDoZ84T0zczac9AsGLsMyxKeU6vrR6+U/n2zJhTnVF3zmoQlRjcd5Svj9ksW8vd4F6z0IKHpbq8p7Yg12085s+bkrP5D3u55UyLFRIaM0vZnhMZuHO5MRoTEeLVEeZC4vtpXc31yX8tzbWsRXJANrSsNl1usIhoWSKYM9da18MV/lfJTPz3O7UzhgkkjtjSrMEsODdNsFaL0tdsIPMWNJCjqLdJLRemM05lzZH32IXzuSFJLTgtOfRqPnB8OEWvw5WB2eRw46znczyLW66YhY62Hf/9PnLxLwrfdDX2Xj0QSzg4UxV7035zH4SgXWNBYo8yzYztamRT1z0CyzEOGOISPTNkwhkaKVeV7w07IBAqo609STzOX9S/44f7dnpFKLFjAX8JJJBd/5MsAC6uq9Szw8Sn5owEmJiZezzWKUvvtp6i+xLQjOkrqYTJWJBmKdMMtWijbikKFUkO3OH0sOuaG1+aUSaKLtJL76TEHutij0uY+y7UIOC6uEjB9ls8yuwMXSee4lHcIozy/2eIVYGfKLwEQM755bbwJG/F9uypYVOa/3UjJ1ApksFcbD62d+pH4P+1kAeeX2t6401r1g+XqYlDo3rgIXgFN/Ty7srq81+8lH3DPTYEyZPoU0rMAAAADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADoAAAA7AAAABAAAAAIAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAABgAAAAIAAAABAAAAAQAAAAIAAAADAAAABAAAAAQAAAAEAAAAAwAAAAIAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAQAAAAIAAAAEAAAAAAAAAAIAAAAEAAAACAAAAAAAAAABAAAAAgAAAAEAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAABwAAAAgAAAAJAAAACgAAAAsAAAAAAAAAPAAAADwAAAA9AAAAPQAAAD0AAAA9AAAAPQAAAD0AAAA8AAAAPAAAAD0AAAA8AAAAPAAAADwAAAA8AEGA0QALHT0AAAA9AAAAPAAAADwAAAAAAAAAPAAAAAAAAAA9AEGk0gALA6ArAQ==");Dg=new Uint8Array(A.length);for(let g=0;g<A.length;g++)Dg[g]=A.charCodeAt(g);return Dg}(),g={a:Ug},I=await WebAssembly.compile(A.buffer),t=(await WebAssembly.instantiate(I,g)).exports;ug=t.f,Gg(),t.g(),pg=t.v,fg=t,kg=!0}(),Sg)}const Lg=5788743,Jg=[5e4,1e5,2e5,5e5,1e6];function Kg(A,g){for(const I of Jg)if(Math.ceil(A/I)===g)return I;return Math.ceil(A/g)}class bg{constructor(A,g){this.experiments=[],this.experimentIdToIndex=new Map,this.chromosomes=new Map,this.chromOrder=[],this.tileIndexCache=new Map,this.zoomLevels=[],this.zoomTileIndexCache=new Map,this.initialized=!1,this.url=A,this.fetchImpl=g}fetch(A,g){return lg(this.url,A,g,this.fetchImpl)}async init(A){if(!this.initialized)return this.initPromise||(this.initPromise=this._doInit().catch(A=>{throw this.initPromise=void 0,A})),this.initPromise}async _doInit(){await Mg();const A=await this.fetch({start:0,size:256});this.header=this.parseHeader(new $A(new DataView(A),!0));const g=this.header,I=g.dictionaryOffset-g.experimentMetadataOffset,t=g.experimentMetadataOffset,e=I+g.dictionarySize,C=g.chromDirectoryOffset,i=g.nZoomLevels>0&&g.zoomDirectoryOffset>0,B=this.computeDirFetchSize(g),[Q,o]=await Promise.all([this.fetch({start:t,size:e}),this.fetch({start:C,size:B})]);this.parseExperimentMetadata(new $A(new DataView(Q,0,I),!0)),this.dictionary=new Uint8Array(Q,I,g.dictionarySize),this.dctx=function(){if(!kg)throw new Error("zstd WASM not initialized — call initZstd() first");return fg.n()}();const s=i?Math.min(g.zoomDirectoryOffset-g.chromDirectoryOffset,o.byteLength):o.byteLength;if(this.parseChromDirectory(new $A(new DataView(o,0,s),!0)),i){const A=g.zoomDirectoryOffset-C,I=o.byteLength-A-8;A>=0&&I>0&&this.parseZoomDirectory(new $A(new DataView(o,A,I),!0))}this.initialized=!0}parseHeader(A){const g=A.getUInt();if(g!==Lg)throw new Error(`Not a GTX file (magic: 0x${g.toString(16)}, expected 0x${Lg.toString(16)})`);const I=A.getUShort(),t=A.getUShort();return{version:I,genome:A.getFixedLengthString(t),nExperiments:A.getUInt(),resolution:A.getUInt(),payloadEncoding:A.getByte(),nZoomLevels:A.getByte(),chromDirectoryOffset:this.readU64(A),experimentMetadataOffset:this.readU64(A),dictionaryOffset:this.readU64(A),dictionarySize:A.getUInt(),zoomDirectoryOffset:this.readU64(A),groupStatsDirectoryOffset:this.readU64(A)}}parseExperimentMetadata(A){const g=A.getUInt();for(let I=0;I<g;I++){const g=A.getUShort(),I=A.getFixedLengthString(g),t=A.getUInt(),e=A.getUShort(),C=new Map;for(let g=0;g<e;g++){const g=A.getUShort(),I=A.getFixedLengthString(g),t=A.getUShort(),e=A.getFixedLengthString(t);C.set(I,e)}const i={id:I,experimentIndex:t,metadata:C};this.experiments.push(i),this.experimentIdToIndex.set(I,t)}}parseChromDirectory(A){const g=A.getUShort();for(let I=0;I<g;I++){const g=A.getUShort(),I=A.getFixedLengthString(g),t=A.getUInt(),e=this.readU64(A),C=A.getUInt(),i=A.getUInt();this.chromosomes.set(I,{name:I,length:t,tileIndexOffset:e,tileIndexLength:C,nTiles:i}),this.chromOrder.push(I)}}parseZoomDirectory(A){var g;const I=A.getByte();for(let t=0;t<I;t++){const I=A.getUInt(),t=A.getUShort(),e=new Map;for(let I=0;I<t;I++){const t=this.readU64(A),C=A.getUInt(),i=A.getUInt(),B=null!==(g=this.chromOrder[I])&&void 0!==g?g:`chrom_${I}`;e.set(B,{tileIndexOffset:t,tileIndexLength:C,nTiles:i})}this.zoomLevels.push({reductionLevel:I,chromTileIndexes:e})}}async loadTileIndex(A,g){await this.init(g);const I=this.tileIndexCache.get(A);if(I)return I;const t=this.chromosomes.get(A);if(!t)throw new Error(`Unknown chromosome: ${A}`);const e=await this.fetch({start:t.tileIndexOffset,size:t.tileIndexLength},g),C=this.parseTileIndex(new $A(new DataView(e),!0),t.nTiles);return this.tileIndexCache.set(A,C),C}async loadZoomTileIndex(A,g,I){const t=`${A}:${g}`,e=this.zoomTileIndexCache.get(t);if(e)return e;const C=this.zoomLevels[A];if(!C)throw new Error(`Unknown zoom level: ${A}`);const i=C.chromTileIndexes.get(g);if(!i)throw new Error(`Unknown chromosome in zoom: ${g}`);const B=await this.fetch({start:i.tileIndexOffset,size:i.tileIndexLength},I),Q=this.parseTileIndex(new $A(new DataView(B),!0),i.nTiles);return this.zoomTileIndexCache.set(t,Q),Q}parseTileIndex(A,g){const I=A.getUInt(),t=A.getUInt();if(I!==g)throw new Error(`Tile count mismatch: expected ${g}, got ${I}`);const e=[];for(let I=0;I<g;I++){const g=this.readU64(A),I=A.getUInt(),C=[];for(let g=0;g<t;g++){const g=this.readU64(A),I=A.getUInt();C.push({offset:g,size:I})}e.push({positionsOffset:g,positionsSize:I,experimentPointers:C})}return e}async readFeatures(A,g,I,t,e,C){await this.init(C);const i=this.header;if(void 0!==e&&e>1){const i=this.selectZoomLevel(e);if(void 0!==i)return this.readZoomFeatures(A,g,I,t,i,C)}const B=this.chromosomes.get(A);if(!B)return new Map;const Q=await this.loadTileIndex(A,C),o=Kg(B.length,B.nTiles),s=Math.max(0,Math.floor(g/o)),E=Math.min(B.nTiles-1,Math.floor(Math.max(0,I-1)/o)),a=[];for(let A=s;A<=E;A++){const g=Q[A];for(const I of t){const t=g.experimentPointers[I];t&&t.size>0&&a.push({tileIdx:A,expIdx:I,pointer:t})}}if(0===a.length)return new Map;const r=await this.fetchMergedRanges(a,C),n=new Map;for(const A of t)n.set(A,[]);for(const{tileIdx:t,expIdx:e,data:C}of r){const Q=this.decompress(C),s=new Float32Array(Q.buffer,Q.byteOffset,Q.byteLength/4),E=t*o,a=Math.min((t+1)*o,B.length),r=Math.max(g,E),h=Math.min(I,a),c=Math.floor((r-E)/i.resolution),l=Math.ceil((h-E)/i.resolution),d=n.get(e);for(let g=c;g<l&&g<s.length;g++){const I=s[g];if(0===I)continue;const t=E+g*i.resolution,e=Math.min(t+i.resolution,B.length);d.push({chr:A,start:t,end:e,value:I})}}return n}async readZoomFeatures(A,g,I,t,e,C){const i=this.zoomLevels[e];if(!i)return new Map;const B=i.chromTileIndexes.get(A);if(!B)return new Map;const Q=this.chromosomes.get(A);if(!Q)return new Map;const o=await this.loadZoomTileIndex(e,A,C),s=Kg(Q.length,B.nTiles),E=i.reductionLevel,a=Math.max(0,Math.floor(g/s)),r=Math.min(B.nTiles-1,Math.floor(Math.max(0,I-1)/s)),n=[];for(let A=a;A<=r;A++){const g=o[A];for(const I of t){const t=g.experimentPointers[I];t&&t.size>0&&n.push({tileIdx:A,expIdx:I,pointer:t})}}if(0===n.length)return new Map;const h=await this.fetchMergedRanges(n,C),c=new Map;for(const A of t)c.set(A,[]);for(const{tileIdx:t,expIdx:e,data:C}of h){const i=this.decompress(C),B=new Float32Array(i.buffer,i.byteOffset,i.byteLength/4),o=B.length/2,a=B.subarray(0,o),r=t*s,n=Math.min((t+1)*s,Q.length),h=Math.max(g,r),l=Math.min(I,n),d=Math.floor((h-r)/E),D=Math.ceil((l-r)/E),u=c.get(e);for(let g=d;g<D&&g<a.length;g++){const I=a[g];if(0===I)continue;const t=r+g*E,e=Math.min(t+E,Q.length);u.push({chr:A,start:t,end:e,value:I})}}return c}getExperimentIds(){return this.experiments.map(A=>A.id)}getExperimentMetadata(A){const g=this.experiments.find(g=>g.id===A);return null==g?void 0:g.metadata}resolveExperimentIndex(A){return this.experimentIdToIndex.get(A)}getHeader(){return this.header}getChromosomes(){return this.chromosomes}computeDirFetchSize(A){return A.groupStatsDirectoryOffset>0&&A.groupStatsDirectoryOffset>A.chromDirectoryOffset?A.groupStatsDirectoryOffset-A.chromDirectoryOffset+8:A.nZoomLevels>0&&A.zoomDirectoryOffset>0?A.zoomDirectoryOffset-A.chromDirectoryOffset+262144:262144}selectZoomLevel(A){let g;for(let I=0;I<this.zoomLevels.length;I++)this.zoomLevels[I].reductionLevel<2*A&&(g=I);return g}async fetchMergedRanges(A,g){const I=[...A].sort((A,g)=>A.pointer.offset-g.pointer.offset),t=[];for(const A of I){const g=A.pointer.offset+A.pointer.size,I=t[t.length-1];I&&A.pointer.offset-I.end<=1024?(I.end=Math.max(I.end,g),I.items.push(A)):t.push({start:A.pointer.offset,end:g,items:[A]})}const e=t.map(async A=>({range:A,buf:await this.fetch({start:A.start,size:A.end-A.start},g)})),C=await Promise.all(e),i=[];for(const{range:A,buf:g}of C)for(const I of A.items){const t=I.pointer.offset-A.start,e=new Uint8Array(g,t,I.pointer.size);i.push({tileIdx:I.tileIdx,expIdx:I.expIdx,data:e})}return i}decompress(A){if(!this.dictionary||void 0===this.dctx)throw new Error("GTX reader not initialized — call init() first");return function(A,g,I){if(!kg)throw new Error("zstd WASM not initialized — call initZstd() first");const t=fg.s,e=fg.t,C=fg.p,i=fg.q,B=fg.h,Q=t(g.byteLength);wg.set(g,Q);const o=t(I.byteLength);wg.set(I,o);const s=C(Q,g.byteLength),E=-1===s?1048576:s,a=t(E);try{const t=i(A,a,E,Q,g.byteLength,o,I.byteLength);if(B(t))throw new Error(`zstd decompression failed with code ${t}`);return new Uint8Array(yg.buffer,a,t).slice()}finally{e(a),e(Q),e(o)}}(this.dctx,A,this.dictionary)}readU64(A){return A.getLong()}dispose(){var A;void 0!==this.dctx&&(A=this.dctx,kg&&fg.o(A),this.dctx=void 0)}}const vg=new Map;class Yg{constructor(A,g){this.url=A,this.reader=g,this.pending=new Map}request(A,g,I,t){const e=`${g.chr}:${g.start}-${g.end}|${I}`,C=this.pending.get(e);return new Promise(C?(g,I)=>{C.experiments.push({experimentId:A,resolve:g,reject:I})}:(C,i)=>{const B={locus:g,bpPerPixel:I,signal:t,experiments:[{experimentId:A,resolve:C,reject:i}]};this.pending.set(e,B),queueMicrotask(()=>this.flush(e))})}async flush(A){var g;const I=this.pending.get(A);if(!I)return;this.pending.delete(A);const{locus:t,bpPerPixel:e,signal:C,experiments:i}=I;try{await this.reader.init();const A=[],I=new Map;for(const g of i){const t=this.reader.resolveExperimentIndex(g.experimentId);void 0!==t?(I.set(g.experimentId,t),A.push(t)):g.reject(new Error(`Unknown experiment: ${g.experimentId}`))}if(0===A.length)return;const B=await this.reader.readFeatures(t.chr,t.start,t.end,A,e,C);for(const A of i){const t=I.get(A.experimentId);void 0!==t&&A.resolve(null!==(g=B.get(t))&&void 0!==g?g:[])}}catch(A){for(const g of i)g.reject(A)}}}const xg=new Map;function Hg(A,g){let I=xg.get(A);return I||(I=new bg(A,g),xg.set(A,I)),I}async function qg(A,g,I,t,e={}){const C=Hg(A,e.fetchImpl);await C.init(e.signal);const i=C.resolveExperimentIndex(g);if(void 0===i)throw new Error(`Unknown experiment: ${g}`);const B=[];for(const A of I)try{const g=(await C.readFeatures(A,0,Number.MAX_SAFE_INTEGER,[i],t,e.signal)).get(i);g&&B.push(...g)}catch(A){}return B}const _g=new Map;class Tg{constructor(A,g,I="mean",t){this.url=A,this.experimentId=g,this._windowFunction=I,this.fetchImpl=t,this.reader=function(A,g){let I=_g.get(A);return I||(I=new bg(A,g),_g.set(A,I)),I}(A,t)}get windowFunction(){return this._windowFunction}setWindowFunction(A){this._windowFunction=A}setCumulativeOffsets(A){this._cumulativeOffsets=A}setChromNameResolver(A){this._resolveChromName=A}async fetch(A,g,I){if(og(A)&&this._cumulativeOffsets)return this.fetchWG(g,I);const t=this._resolveChromName?{...A,chr:this._resolveChromName(A.chr)}:A,e=function(A,g){let I=vg.get(A);return I||(I=new Yg(A,g),vg.set(A,I)),I}(this.url,this.reader),C=await e.request(this.experimentId,t,g,I);return g>1&&"none"!==this._windowFunction&&C.length>0?ig(C,A.start,g,this._windowFunction):C}async fetchWG(A,g){const I=this._cumulativeOffsets;if(!I)throw new Error("fetchWG called without cumulativeOffsets");const t=hg(await qg(this.url,this.experimentId,I.chromosomeNames,A,{windowFunction:this._windowFunction,signal:g,fetchImpl:this.fetchImpl}),I);return A>1&&"none"!==this._windowFunction&&t.length>0?ig(t,0,A,this._windowFunction):t}}function Wg(A,g,I){if(g!==I)for(const t of A)t.end<g||t.start>I?t.utr=!0:(g>=t.start&&g<=t.end&&(t.cdStart=g),I>=t.start&&I<=t.end&&(t.cdEnd=I));else for(const g of A)g.utr=!0}function Pg(A){if(!A||"."===A||"0"===A)return;if(A.startsWith("#"))return A;const g=A.split(",");if(g.length>=3){const A=parseInt(g[0].trim()),I=parseInt(g[1].trim()),t=parseInt(g[2].trim());if(!isNaN(A)&&!isNaN(I)&&!isNaN(t))return`rgb(${A},${I},${t})`}}function Og(A){var g;return null!==(g=A.cdStart)&&void 0!==g?g:A.start}function Vg(A){var g;return null!==(g=A.cdEnd)&&void 0!==g?g:A.end}function Zg(A){return A.utr?0:Vg(A)-Og(A)}function zg(A){return"+"===A?"+":"-"===A?"-":void 0}function jg(A,g=0){if(A.length<=10+g)return;const I=parseInt(A[5+g]),t=parseInt(A[6+g]),e={id:A[0+g],chr:A[1+g],strand:zg(A[2+g]),start:parseInt(A[3+g]),end:parseInt(A[4+g]),cdStart:I,cdEnd:t,name:A.length>11+g?A[11+g]:A[0+g]},C=AI(parseInt(A[7+g]),A[8+g],A[9+g]);return Wg(C,I,t),e.exons=C,e}function Xg(A,g=0){if(A.length<=11+g)return;const I=parseInt(A[5+g]),t=parseInt(A[6+g]),e={name:A[11+g],chr:A[1+g],strand:zg(A[2+g]),start:parseInt(A[3+g]),end:parseInt(A[4+g]),cdStart:I,cdEnd:t,id:A[0+g]};if(A.length>10+g){const I=parseInt(A[10+g]);isNaN(I)||(e.score=I)}A.length>13+g&&(e.cdsStartStat=A[12+g],e.cdsEndStat=A[13+g]);const C=AI(parseInt(A[7+g]),A[8+g],A[9+g],A[14+g]);return Wg(C,I,t),e.exons=C,e}function $g(A){const g=A.cdsStart,I=A.cdsEnd,t={name:A.name2,chr:A.chrom,strand:zg(A.strand),start:A.txStart,end:A.txEnd,cdStart:g,cdEnd:I,id:A.name};void 0!==A.score&&(t.score=A.score),A.cdsStartStat&&(t.cdsStartStat=A.cdsStartStat),A.cdsEndStat&&(t.cdsEndStat=A.cdsEndStat);const e=A.exonStarts.replace(/,$/,"").split(","),C=A.exonEnds.replace(/,$/,"").split(","),i=A.exonFrames?A.exonFrames.replace(/,$/,"").split(","):void 0,B=[];for(let g=0;g<A.exonCount;g++){const A={start:parseInt(e[g]),end:parseInt(C[g])};if(i){const I=parseInt(i[g]);-1!==I&&(A.readingFrame=I)}B.push(A)}return Wg(B,g,I),t.exons=B,t}function AI(A,g,I,t){const e=g.replace(/,$/,"").split(","),C=I.replace(/,$/,"").split(","),i=t?t.replace(/,$/,"").split(","):void 0,B=[];for(let g=0;g<A;g++){const A={start:parseInt(e[g]),end:parseInt(C[g])};if(i){const I=parseInt(i[g]);-1!==I&&(A.readingFrame=I)}B.push(A)}return B}async function gI(A,g={},I){var t,e,C;const i=null!==(t=g.genome)&&void 0!==t?t:"hg38",B=null!==(e=g.track)&&void 0!==e?e:"ncbiRefSeq",Q=`https://api.genome.ucsc.edu/getData/track?genome=${i}&track=${B}&chrom=${A.chr}&start=${A.start}&end=${A.end}`,o=await fetch(Q,I?{signal:I}:void 0);if(!o.ok)throw new Error(`UCSC API error: ${o.status} ${o.statusText}`);return(null!==(C=(await o.json())[B])&&void 0!==C?C:[]).map($g)}class II{constructor(A={},g=1e4){this.options=A,this.maxWgFeatures=g}setCumulativeOffsets(A){this._cumulativeOffsets=A}async fetch(A,g,I){return og(A)&&this._cumulativeOffsets?this.fetchWG(I):gI(A,this.options,I)}async fetchWG(A){const g=this._cumulativeOffsets;if(!g)throw new Error("fetchWG called without cumulativeOffsets");const I=hg((await ng(g.chromosomeNames,g=>gI({chr:g,start:0,end:Number.MAX_SAFE_INTEGER},this.options,A),A)).map(A=>({...A,exons:void 0,cdStart:void 0,cdEnd:void 0})),g);return I.length>this.maxWgFeatures?function(A,g){const I=A.slice(0,g);for(let t=g;t<A.length;t++){const e=Math.floor(Math.random()*(t+1));e<g&&(I[e]=A[t])}return I}(I,this.maxWgFeatures):I}}Object.create;Object.create;function tI(A,g,I,t){if("a"===I&&!t)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof g?A!==g||!t:!g.has(A))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===I?t:"a"===I?t.call(A):t?t.value:g.get(A)}"function"==typeof SuppressedError&&SuppressedError;var eI,CI,iI,BI,QI,oI,sI;const EI={color:1};EI.parent=EI,EI.left=EI,EI.right=EI,EI.min=1/0,EI.max=-1/0;class aI{constructor(){eI.add(this),this.root=EI}insert(A,g,I){const t={low:A,high:g,value:I},e=tI(this,eI,"m",CI).call(this,t);tI(this,eI,"m",sI).call(this,e),e.color=2;let C=e;for(;C!==this.root&&2===C.parent.color;)if(C.parent===C.parent.parent.left){const A=C.parent.parent.right;2===A.color?(C.parent.color=1,A.color=1,C.parent.parent.color=2,C=C.parent.parent):(C===C.parent.right&&(C=C.parent,tI(this,eI,"m",BI).call(this,C)),C.parent.color=1,C.parent.parent.color=2,tI(this,eI,"m",QI).call(this,C.parent.parent))}else{const A=C.parent.parent.left;2===A.color?(C.parent.color=1,A.color=1,C.parent.parent.color=2,C=C.parent.parent):(C===C.parent.left&&(C=C.parent,tI(this,eI,"m",QI).call(this,C)),C.parent.color=1,C.parent.parent.color=2,tI(this,eI,"m",BI).call(this,C.parent.parent))}this.root.color=1}findOverlapping(A,g){if(this.root===EI)return[];const I=tI(this,eI,"m",iI).call(this,A,g,this.root,[]);return I.length>1&&I.sort((A,g)=>A.low-g.low),I}mapIntervals(A){const g=I=>{A(I.interval),I.left!==EI&&g(I.left),I.right!==EI&&g(I.right)};this.root!==EI&&g(this.root)}}eI=new WeakSet,CI=function(A){return{parent:EI,left:EI,right:EI,interval:A,color:2,max:A.high,min:A.low}},iI=function A(g,I,t,e){return t.interval.low<=I&&g<=t.interval.high&&e.push(t.interval),t.left!==EI&&t.left.max>=g&&tI(this,eI,"m",A).call(this,g,I,t.left,e),t.right!==EI&&t.right.min<=I&&tI(this,eI,"m",A).call(this,g,I,t.right,e),e},BI=function(A){const g=A.right;A.right=g.left,g.left!==EI&&(g.left.parent=A),g.parent=A.parent,A.parent===EI?this.root=g:A.parent.left===A?A.parent.left=g:A.parent.right=g,g.left=A,A.parent=g,tI(this,eI,"m",oI).call(this,A)},QI=function(A){const g=A.left;A.left=g.right,g.right!==EI&&(g.right.parent=A),g.parent=A.parent,A.parent===EI?this.root=g:A.parent.right===A?A.parent.right=g:A.parent.left=g,g.right=A,A.parent=g,tI(this,eI,"m",oI).call(this,A)},oI=function(A){for(;A!==EI;){const g=A.left.max>A.right.max?A.left.max:A.right.max,I=A.interval.high;A.max=g>I?g:I;const t=A.left.min<A.right.min?A.left.min:A.right.min,e=A.interval.low;A.min=t<e?t:e,A=A.parent}},sI=function(A){let g=this.root,I=EI;for(;g!==EI;)I=g,g=A.interval.low<=g.interval.low?g.left:g.right;A.parent=I,I===EI?(this.root=A,A.left=A.right=EI):A.interval.low<=I.interval.low?I.left=A:I.right=A,tI(this,eI,"m",oI).call(this,A)};class rI{constructor(A,g){const I=null!=A?A:[];this.range=g,this.count=I.length;const{treeMap:t,allFeatures:e}=function(A){const g={},I={},t=[];for(const g of A){const A=g.chr;let e=I[A];e||(t.push(A),e=[],I[A]=e),e.push(g)}for(const A of t){const t=I[A];t.sort((A,g)=>A.start===g.start?0:A.start>g.start?1:-1),g[A]=nI(t)}return{treeMap:g,allFeatures:I}}(I);this.treeMap=t,this.allFeatures=e}containsRange(A,g,I){return void 0===this.range||this.range.contains(A,g,I)}queryFeatures(A,g,I){const t=this.treeMap[A];if(!t)return[];const e=t.findOverlapping(g,I);if(0===e.length)return[];const C=[],i=this.allFeatures[A];if(i){for(const A of e){const t=A.value;for(let A=t.start;A<t.end;A++){const t=i[A];if(t.start>I)break;t.end>=g&&C.push(t)}}C.sort((A,g)=>A.start-g.start)}return C}findFeatures(A){const g=[];for(const I of Object.values(this.allFeatures))for(const t of I)A(t)&&g.push(t);return g}getAllFeatures(){return this.allFeatures}}function nI(A){const g=new aI,I=A.length,t=Math.max(10,Math.round(I/10));for(let e=0;e<I;e+=t){const C=Math.min(I,e+t),i={start:e,end:C},B=A[e].start;let Q=B;for(let g=e;g<C;g++)Q=Math.max(Q,A[g].end);g.insert(B,Q,i)}return g}function hI(A,g=0){const I=A[g]|A[g+1]<<8|A[g+2]<<16|A[g+3]<<24;return 4294967296*((A[g+4]|A[g+5]<<8|A[g+6]<<16|A[g+7]<<24)>>>0)+(I>>>0)}function cI(A,g,I){const t=g[1],e=I?I[1]:1/0;return t<=A&&e>A?0:t<A?-1:1}class lI{filehandle;index;constructor({filehandle:A}){this.filehandle=A}_getIndex(){return this.index||(this.index=this._readIndex().catch(A=>{throw this.index=void 0,A})),this.index}async _readIndex(){const A=hI(await this.filehandle.read(8,0));if(!A)return[[0,0]];const g=new Array(A+1);g[0]=[0,0];const I=16*A;if(I>Number.MAX_SAFE_INTEGER)throw new TypeError("integer overflow");const t=await this.filehandle.read(I,8);for(let I=0;I<A;I+=1){const A=hI(t,16*I),e=hI(t,16*I+8);g[I+1]=[A,e]}return g}async getLastBlock(){return(await this._getIndex()).at(-1)}async getRelevantBlocksForRead(A,g){const I=g+A;if(0===A)return[];const t=await this._getIndex(),e=[];let C=0,i=t.length-1,B=Math.floor(t.length/2),Q=cI(g,t[B],t[B+1]);for(;0!==Q;)Q>0?i=B-1:Q<0&&(C=B+1),B=Math.ceil((i-C)/2)+C,Q=cI(g,t[B],t[B+1]);e.push(t[B]);let o=B+1;for(;o<t.length&&(e.push(t[o]),!(t[o][1]>=I));o+=1);return e[e.length-1][1]<I&&e.push([]),e}}function dI(A,g){return Object.prototype.hasOwnProperty.call(A,g)}function DI(A){for(var g=Array.prototype.slice.call(arguments,1);g.length;){var I=g.shift();if(I){if("object"!=typeof I)throw new TypeError(I+"must be non-object");for(var t in I)dI(I,t)&&(A[t]=I[t])}}return A}function uI(A,g){return A.length===g?A:A.subarray?A.subarray(0,g):(A.length=g,A)}var wI={arraySet:function(A,g,I,t,e){if(g.subarray&&A.subarray)A.set(g.subarray(I,I+t),e);else for(var C=0;C<t;C++)A[e+C]=g[I+C]},flattenChunks:function(A){var g,I,t,e,C,i;for(t=0,g=0,I=A.length;g<I;g++)t+=A[g].length;for(i=new Uint8Array(t),e=0,g=0,I=A.length;g<I;g++)C=A[g],i.set(C,e),e+=C.length;return i},Buf8:function(A){return new Uint8Array(A)},Buf16:function(A){return new Uint16Array(A)},Buf32:function(A){return new Int32Array(A)}},yI={arraySet:function(A,g,I,t,e){for(var C=0;C<t;C++)A[e+C]=g[I+C]},flattenChunks:function(A){return[].concat.apply([],A)},Buf8:function(A){return new Array(A)},Buf16:function(A){return new Array(A)},Buf32:function(A){return new Array(A)}};let fI=()=>{const A="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;return fI=()=>A,A},SI=(A,g,I,t,e)=>(SI=fI()?wI.arraySet:yI.arraySet,SI(A,g,I,t,e)),kI=A=>(kI=fI()?wI.flattenChunks:yI.flattenChunks,kI(A)),GI=A=>(GI=fI()?wI.Buf8:yI.Buf8,GI(A)),FI=A=>(FI=fI()?wI.Buf16:yI.Buf16,FI(A)),NI=A=>(NI=fI()?wI.Buf32:yI.Buf32,NI(A));let mI=function(){let A=!0;try{String.fromCharCode.apply(null,[0])}catch(g){A=!1}return mI=()=>A,A},pI=function(){let A=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(g){A=!1}return pI=()=>A,A},RI=function(A){for(var g=GI(256),I=0;I<256;I++)g[I]=I>=252?6:I>=248?5:I>=240?4:I>=224?3:I>=192?2:1;return g[254]=g[254]=1,RI=A=>g[A],g[A]};function UI(A){var g,I,t,e,C,i=A.length,B=0;for(e=0;e<i;e++)55296==(64512&(I=A.charCodeAt(e)))&&e+1<i&&56320==(64512&(t=A.charCodeAt(e+1)))&&(I=65536+(I-55296<<10)+(t-56320),e++),B+=I<128?1:I<2048?2:I<65536?3:4;for(g=new Uint8Array(B),C=0,e=0;C<B;e++)55296==(64512&(I=A.charCodeAt(e)))&&e+1<i&&56320==(64512&(t=A.charCodeAt(e+1)))&&(I=65536+(I-55296<<10)+(t-56320),e++),I<128?g[C++]=I:I<2048?(g[C++]=192|I>>>6,g[C++]=128|63&I):I<65536?(g[C++]=224|I>>>12,g[C++]=128|I>>>6&63,g[C++]=128|63&I):(g[C++]=240|I>>>18,g[C++]=128|I>>>12&63,g[C++]=128|I>>>6&63,g[C++]=128|63&I);return g}function MI(A,g){if(g<65534&&(A.subarray&&pI()||!A.subarray&&mI()))return String.fromCharCode.apply(null,uI(A,g));for(var I="",t=0;t<g;t++)I+=String.fromCharCode(A[t]);return I}function LI(A,g){var I,t,e,C,i=g||A.length,B=new Array(2*i);for(t=0,I=0;I<i;)if((e=A[I++])<128)B[t++]=e;else if((C=RI(e))>4)B[t++]=65533,I+=C-1;else{for(e&=2===C?31:3===C?15:7;C>1&&I<i;)e=e<<6|63&A[I++],C--;C>1?B[t++]=65533:e<65536?B[t++]=e:(e-=65536,B[t++]=55296|e>>10&1023,B[t++]=56320|1023&e)}return MI(B,t)}function JI(A,g){var I;for((g=g||A.length)>A.length&&(g=A.length),I=g-1;I>=0&&128==(192&A[I]);)I--;return I<0||0===I?g:I+RI(A[I])>g?I:g}function KI(){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}function bI(A,g,I,t){for(var e=65535&A,C=A>>>16&65535,i=0;0!==I;){I-=i=I>2e3?2e3:I;do{C=C+(e=e+g[t++]|0)|0}while(--i);e%=65521,C%=65521}return e|C<<16}let vI=function(){const A=function(){for(var A,g=[],I=0;I<256;I++){A=I;for(var t=0;t<8;t++)A=1&A?3988292384^A>>>1:A>>>1;g[I]=A}return g}();return vI=()=>A,A};function YI(A,g,I,t){var e=vI(),C=t+I;A^=-1;for(var i=t;i<C;i++)A=A>>>8^e[255&(A^g[i])];return-1^A}function xI(A,g){var I,t,e,C,i,B,Q,o,s,E,a,r,n,h,c,l,d,D,u,w,y,f,S,k,G;I=A.state,t=A.next_in,k=A.input,e=t+(A.avail_in-5),C=A.next_out,G=A.output,i=C-(g-A.avail_out),B=C+(A.avail_out-257),Q=I.dmax,o=I.wsize,s=I.whave,E=I.wnext,a=I.window,r=I.hold,n=I.bits,h=I.lencode,c=I.distcode,l=(1<<I.lenbits)-1,d=(1<<I.distbits)-1;A:do{n<15&&(r+=k[t++]<<n,n+=8,r+=k[t++]<<n,n+=8),D=h[r&l];g:for(;;){if(r>>>=u=D>>>24,n-=u,0===(u=D>>>16&255))G[C++]=65535&D;else{if(!(16&u)){if(64&u){if(32&u){I.mode=12;break A}A.msg="invalid literal/length code",I.mode=30;break A}D=h[(65535&D)+(r&(1<<u)-1)];continue g}for(w=65535&D,(u&=15)&&(n<u&&(r+=k[t++]<<n,n+=8),w+=r&(1<<u)-1,r>>>=u,n-=u),n<15&&(r+=k[t++]<<n,n+=8,r+=k[t++]<<n,n+=8),D=c[r&d];;){if(r>>>=u=D>>>24,n-=u,16&(u=D>>>16&255)){if(y=65535&D,n<(u&=15)&&(r+=k[t++]<<n,(n+=8)<u&&(r+=k[t++]<<n,n+=8)),(y+=r&(1<<u)-1)>Q){A.msg="invalid distance too far back",I.mode=30;break A}if(r>>>=u,n-=u,y>(u=C-i)){if((u=y-u)>s&&I.sane){A.msg="invalid distance too far back",I.mode=30;break A}if(f=0,S=a,0===E){if(f+=o-u,u<w){w-=u;do{G[C++]=a[f++]}while(--u);f=C-y,S=G}}else if(E<u){if(f+=o+E-u,(u-=E)<w){w-=u;do{G[C++]=a[f++]}while(--u);if(f=0,E<w){w-=u=E;do{G[C++]=a[f++]}while(--u);f=C-y,S=G}}}else if(f+=E-u,u<w){w-=u;do{G[C++]=a[f++]}while(--u);f=C-y,S=G}for(;w>2;)G[C++]=S[f++],G[C++]=S[f++],G[C++]=S[f++],w-=3;w&&(G[C++]=S[f++],w>1&&(G[C++]=S[f++]))}else{f=C-y;do{G[C++]=G[f++],G[C++]=G[f++],G[C++]=G[f++],w-=3}while(w>2);w&&(G[C++]=G[f++],w>1&&(G[C++]=G[f++]))}break}if(64&u){A.msg="invalid distance code",I.mode=30;break A}D=c[(65535&D)+(r&(1<<u)-1)]}}break}}while(t<e&&C<B);t-=w=n>>3,r&=(1<<(n-=w<<3))-1,A.next_in=t,A.next_out=C,A.avail_in=t<e?e-t+5:5-(t-e),A.avail_out=C<B?B-C+257:257-(C-B),I.hold=r,I.bits=n}var HI=15,qI=[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],_I=[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],TI=[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],WI=[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];function PI(A,g,I,t,e,C,i,B){var Q,o,s,E,a,r,n,h,c,l=B.bits,d=0,D=0,u=0,w=0,y=0,f=0,S=0,k=0,G=0,F=0,N=null,m=0,p=FI(16),R=FI(16),U=null,M=0;for(d=0;d<=HI;d++)p[d]=0;for(D=0;D<t;D++)p[g[I+D]]++;for(y=l,w=HI;w>=1&&0===p[w];w--);if(y>w&&(y=w),0===w)return e[C++]=20971520,e[C++]=20971520,B.bits=1,0;for(u=1;u<w&&0===p[u];u++);for(y<u&&(y=u),k=1,d=1;d<=HI;d++)if(k<<=1,(k-=p[d])<0)return-1;if(k>0&&(0===A||1!==w))return-1;for(R[1]=0,d=1;d<HI;d++)R[d+1]=R[d]+p[d];for(D=0;D<t;D++)0!==g[I+D]&&(i[R[g[I+D]]++]=D);if(0===A?(N=U=i,r=19):1===A?(N=qI,m-=257,U=_I,M-=257,r=256):(N=TI,U=WI,r=-1),F=0,D=0,d=u,a=C,f=y,S=0,s=-1,E=(G=1<<y)-1,1===A&&G>852||2===A&&G>592)return 1;for(;;){n=d-S,i[D]<r?(h=0,c=i[D]):i[D]>r?(h=U[M+i[D]],c=N[m+i[D]]):(h=96,c=0),Q=1<<d-S,u=o=1<<f;do{e[a+(F>>S)+(o-=Q)]=n<<24|h<<16|c}while(0!==o);for(Q=1<<d-1;F&Q;)Q>>=1;if(0!==Q?(F&=Q-1,F+=Q):F=0,D++,0===--p[d]){if(d===w)break;d=g[I+i[D]]}if(d>y&&(F&E)!==s){for(0===S&&(S=y),a+=u,k=1<<(f=d-S);f+S<w&&!((k-=p[f+S])<=0);)f++,k<<=1;if(G+=1<<f,1===A&&G>852||2===A&&G>592)return 1;e[s=F&E]=y<<24|f<<16|a-C}}return 0!==F&&(e[a+F]=d-S<<24|64<<16),B.bits=y,0}var OI=-2,VI=12,ZI=30;function zI(A){return(A>>>24&255)+(A>>>8&65280)+((65280&A)<<8)+((255&A)<<24)}function jI(){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=FI(320),this.work=FI(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function XI(A){var g;return A&&A.state?((g=A.state).wsize=0,g.whave=0,g.wnext=0,function(A){var g;return A&&A.state?(g=A.state,A.total_in=A.total_out=g.total=0,A.msg="",g.wrap&&(A.adler=1&g.wrap),g.mode=1,g.last=0,g.havedict=0,g.dmax=32768,g.head=null,g.hold=0,g.bits=0,g.lencode=g.lendyn=NI(852),g.distcode=g.distdyn=NI(592),g.sane=1,g.back=-1,0):OI}(A)):OI}function $I(A,g){var I,t;return A?(t=new jI,A.state=t,t.window=null,I=function(A,g){var I,t;return A&&A.state?(t=A.state,g<0?(I=0,g=-g):(I=1+(g>>4),g<48&&(g&=15)),g&&(g<8||g>15)?OI:(null!==t.window&&t.wbits!==g&&(t.window=null),t.wrap=I,t.wbits=g,XI(A))):OI}(A,g),0!==I&&(A.state=null),I):OI}var At,gt,It=!0;function tt(A){if(It){var g;for(At=NI(512),gt=NI(32),g=0;g<144;)A.lens[g++]=8;for(;g<256;)A.lens[g++]=9;for(;g<280;)A.lens[g++]=7;for(;g<288;)A.lens[g++]=8;for(PI(1,A.lens,0,288,At,0,A.work,{bits:9}),g=0;g<32;)A.lens[g++]=5;PI(2,A.lens,0,32,gt,0,A.work,{bits:5}),It=!1}A.lencode=At,A.lenbits=9,A.distcode=gt,A.distbits=5}function et(A,g,I,t){var e,C=A.state;return null===C.window&&(C.wsize=1<<C.wbits,C.wnext=0,C.whave=0,C.window=GI(C.wsize)),t>=C.wsize?(SI(C.window,g,I-C.wsize,C.wsize,0),C.wnext=0,C.whave=C.wsize):((e=C.wsize-C.wnext)>t&&(e=t),SI(C.window,g,I-t,e,C.wnext),(t-=e)?(SI(C.window,g,I-t,t,0),C.wnext=t,C.whave=C.wsize):(C.wnext+=e,C.wnext===C.wsize&&(C.wnext=0),C.whave<C.wsize&&(C.whave+=e))),0}function Ct(A,g){var I,t,e,C,i,B,Q,o,s,E,a,r,n,h,c,l,d,D,u,w,y,f,S,k,G=0,F=GI(4),N=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!A||!A.state||!A.output||!A.input&&0!==A.avail_in)return OI;(I=A.state).mode===VI&&(I.mode=13),i=A.next_out,e=A.output,Q=A.avail_out,C=A.next_in,t=A.input,B=A.avail_in,o=I.hold,s=I.bits,E=B,a=Q,f=0;A:for(;;)switch(I.mode){case 1:if(0===I.wrap){I.mode=13;break}for(;s<16;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}if(2&I.wrap&&35615===o){I.check=0,F[0]=255&o,F[1]=o>>>8&255,I.check=YI(I.check,F,2,0),o=0,s=0,I.mode=2;break}if(I.flags=0,I.head&&(I.head.done=!1),!(1&I.wrap)||(((255&o)<<8)+(o>>8))%31){A.msg="incorrect header check",I.mode=ZI;break}if(8!=(15&o)){A.msg="unknown compression method",I.mode=ZI;break}if(s-=4,y=8+(15&(o>>>=4)),0===I.wbits)I.wbits=y;else if(y>I.wbits){A.msg="invalid window size",I.mode=ZI;break}I.dmax=1<<y,A.adler=I.check=1,I.mode=512&o?10:VI,o=0,s=0;break;case 2:for(;s<16;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}if(I.flags=o,8!=(255&I.flags)){A.msg="unknown compression method",I.mode=ZI;break}if(57344&I.flags){A.msg="unknown header flags set",I.mode=ZI;break}I.head&&(I.head.text=o>>8&1),512&I.flags&&(F[0]=255&o,F[1]=o>>>8&255,I.check=YI(I.check,F,2,0)),o=0,s=0,I.mode=3;case 3:for(;s<32;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}I.head&&(I.head.time=o),512&I.flags&&(F[0]=255&o,F[1]=o>>>8&255,F[2]=o>>>16&255,F[3]=o>>>24&255,I.check=YI(I.check,F,4,0)),o=0,s=0,I.mode=4;case 4:for(;s<16;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}I.head&&(I.head.xflags=255&o,I.head.os=o>>8),512&I.flags&&(F[0]=255&o,F[1]=o>>>8&255,I.check=YI(I.check,F,2,0)),o=0,s=0,I.mode=5;case 5:if(1024&I.flags){for(;s<16;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}I.length=o,I.head&&(I.head.extra_len=o),512&I.flags&&(F[0]=255&o,F[1]=o>>>8&255,I.check=YI(I.check,F,2,0)),o=0,s=0}else I.head&&(I.head.extra=null);I.mode=6;case 6:if(1024&I.flags&&((r=I.length)>B&&(r=B),r&&(I.head&&(y=I.head.extra_len-I.length,I.head.extra||(I.head.extra=new Array(I.head.extra_len)),SI(I.head.extra,t,C,r,y)),512&I.flags&&(I.check=YI(I.check,t,r,C)),B-=r,C+=r,I.length-=r),I.length))break A;I.length=0,I.mode=7;case 7:if(2048&I.flags){if(0===B)break A;r=0;do{y=t[C+r++],I.head&&y&&I.length<65536&&(I.head.name+=String.fromCharCode(y))}while(y&&r<B);if(512&I.flags&&(I.check=YI(I.check,t,r,C)),B-=r,C+=r,y)break A}else I.head&&(I.head.name=null);I.length=0,I.mode=8;case 8:if(4096&I.flags){if(0===B)break A;r=0;do{y=t[C+r++],I.head&&y&&I.length<65536&&(I.head.comment+=String.fromCharCode(y))}while(y&&r<B);if(512&I.flags&&(I.check=YI(I.check,t,r,C)),B-=r,C+=r,y)break A}else I.head&&(I.head.comment=null);I.mode=9;case 9:if(512&I.flags){for(;s<16;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}if(o!==(65535&I.check)){A.msg="header crc mismatch",I.mode=ZI;break}o=0,s=0}I.head&&(I.head.hcrc=I.flags>>9&1,I.head.done=!0),A.adler=I.check=0,I.mode=VI;break;case 10:for(;s<32;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}A.adler=I.check=zI(o),o=0,s=0,I.mode=11;case 11:if(0===I.havedict)return A.next_out=i,A.avail_out=Q,A.next_in=C,A.avail_in=B,I.hold=o,I.bits=s,2;A.adler=I.check=1,I.mode=VI;case VI:if(5===g||6===g)break A;case 13:if(I.last){o>>>=7&s,s-=7&s,I.mode=27;break}for(;s<3;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}switch(I.last=1&o,s-=1,3&(o>>>=1)){case 0:I.mode=14;break;case 1:if(tt(I),I.mode=20,6===g){o>>>=2,s-=2;break A}break;case 2:I.mode=17;break;case 3:A.msg="invalid block type",I.mode=ZI}o>>>=2,s-=2;break;case 14:for(o>>>=7&s,s-=7&s;s<32;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}if((65535&o)!=(o>>>16^65535)){A.msg="invalid stored block lengths",I.mode=ZI;break}if(I.length=65535&o,o=0,s=0,I.mode=15,6===g)break A;case 15:I.mode=16;case 16:if(r=I.length){if(r>B&&(r=B),r>Q&&(r=Q),0===r)break A;SI(e,t,C,r,i),B-=r,C+=r,Q-=r,i+=r,I.length-=r;break}I.mode=VI;break;case 17:for(;s<14;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}if(I.nlen=257+(31&o),o>>>=5,s-=5,I.ndist=1+(31&o),o>>>=5,s-=5,I.ncode=4+(15&o),o>>>=4,s-=4,I.nlen>286||I.ndist>30){A.msg="too many length or distance symbols",I.mode=ZI;break}I.have=0,I.mode=18;case 18:for(;I.have<I.ncode;){for(;s<3;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}I.lens[N[I.have++]]=7&o,o>>>=3,s-=3}for(;I.have<19;)I.lens[N[I.have++]]=0;if(I.lencode=I.lendyn,I.lenbits=7,S={bits:I.lenbits},f=PI(0,I.lens,0,19,I.lencode,0,I.work,S),I.lenbits=S.bits,f){A.msg="invalid code lengths set",I.mode=ZI;break}I.have=0,I.mode=19;case 19:for(;I.have<I.nlen+I.ndist;){for(;l=(G=I.lencode[o&(1<<I.lenbits)-1])>>>16&255,d=65535&G,!((c=G>>>24)<=s);){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}if(d<16)o>>>=c,s-=c,I.lens[I.have++]=d;else{if(16===d){for(k=c+2;s<k;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}if(o>>>=c,s-=c,0===I.have){A.msg="invalid bit length repeat",I.mode=ZI;break}y=I.lens[I.have-1],r=3+(3&o),o>>>=2,s-=2}else if(17===d){for(k=c+3;s<k;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}s-=c,y=0,r=3+(7&(o>>>=c)),o>>>=3,s-=3}else{for(k=c+7;s<k;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}s-=c,y=0,r=11+(127&(o>>>=c)),o>>>=7,s-=7}if(I.have+r>I.nlen+I.ndist){A.msg="invalid bit length repeat",I.mode=ZI;break}for(;r--;)I.lens[I.have++]=y}}if(I.mode===ZI)break;if(0===I.lens[256]){A.msg="invalid code -- missing end-of-block",I.mode=ZI;break}if(I.lenbits=9,S={bits:I.lenbits},f=PI(1,I.lens,0,I.nlen,I.lencode,0,I.work,S),I.lenbits=S.bits,f){A.msg="invalid literal/lengths set",I.mode=ZI;break}if(I.distbits=6,I.distcode=I.distdyn,S={bits:I.distbits},f=PI(2,I.lens,I.nlen,I.ndist,I.distcode,0,I.work,S),I.distbits=S.bits,f){A.msg="invalid distances set",I.mode=ZI;break}if(I.mode=20,6===g)break A;case 20:I.mode=21;case 21:if(B>=6&&Q>=258){A.next_out=i,A.avail_out=Q,A.next_in=C,A.avail_in=B,I.hold=o,I.bits=s,xI(A,a),i=A.next_out,e=A.output,Q=A.avail_out,C=A.next_in,t=A.input,B=A.avail_in,o=I.hold,s=I.bits,I.mode===VI&&(I.back=-1);break}for(I.back=0;l=(G=I.lencode[o&(1<<I.lenbits)-1])>>>16&255,d=65535&G,!((c=G>>>24)<=s);){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}if(l&&!(240&l)){for(D=c,u=l,w=d;l=(G=I.lencode[w+((o&(1<<D+u)-1)>>D)])>>>16&255,d=65535&G,!(D+(c=G>>>24)<=s);){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}o>>>=D,s-=D,I.back+=D}if(o>>>=c,s-=c,I.back+=c,I.length=d,0===l){I.mode=26;break}if(32&l){I.back=-1,I.mode=VI;break}if(64&l){A.msg="invalid literal/length code",I.mode=ZI;break}I.extra=15&l,I.mode=22;case 22:if(I.extra){for(k=I.extra;s<k;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}I.length+=o&(1<<I.extra)-1,o>>>=I.extra,s-=I.extra,I.back+=I.extra}I.was=I.length,I.mode=23;case 23:for(;l=(G=I.distcode[o&(1<<I.distbits)-1])>>>16&255,d=65535&G,!((c=G>>>24)<=s);){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}if(!(240&l)){for(D=c,u=l,w=d;l=(G=I.distcode[w+((o&(1<<D+u)-1)>>D)])>>>16&255,d=65535&G,!(D+(c=G>>>24)<=s);){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}o>>>=D,s-=D,I.back+=D}if(o>>>=c,s-=c,I.back+=c,64&l){A.msg="invalid distance code",I.mode=ZI;break}I.offset=d,I.extra=15&l,I.mode=24;case 24:if(I.extra){for(k=I.extra;s<k;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}I.offset+=o&(1<<I.extra)-1,o>>>=I.extra,s-=I.extra,I.back+=I.extra}if(I.offset>I.dmax){A.msg="invalid distance too far back",I.mode=ZI;break}I.mode=25;case 25:if(0===Q)break A;if(r=a-Q,I.offset>r){if((r=I.offset-r)>I.whave&&I.sane){A.msg="invalid distance too far back",I.mode=ZI;break}r>I.wnext?(r-=I.wnext,n=I.wsize-r):n=I.wnext-r,r>I.length&&(r=I.length),h=I.window}else h=e,n=i-I.offset,r=I.length;r>Q&&(r=Q),Q-=r,I.length-=r;do{e[i++]=h[n++]}while(--r);0===I.length&&(I.mode=21);break;case 26:if(0===Q)break A;e[i++]=I.length,Q--,I.mode=21;break;case 27:if(I.wrap){for(;s<32;){if(0===B)break A;B--,o|=t[C++]<<s,s+=8}if(a-=Q,A.total_out+=a,I.total+=a,a&&(A.adler=I.check=I.flags?YI(I.check,e,a,i-a):bI(I.check,e,a,i-a)),a=Q,(I.flags?o:zI(o))!==I.check){A.msg="incorrect data check",I.mode=ZI;break}o=0,s=0}I.mode=28;case 28:if(I.wrap&&I.flags){for(;s<32;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}if(o!==(4294967295&I.total)){A.msg="incorrect length check",I.mode=ZI;break}o=0,s=0}I.mode=29;case 29:f=1;break A;case ZI:f=-3;break A;case 31:return-4;default:return OI}return A.next_out=i,A.avail_out=Q,A.next_in=C,A.avail_in=B,I.hold=o,I.bits=s,(I.wsize||a!==A.avail_out&&I.mode<ZI&&(I.mode<27||4!==g))&&et(A,A.output,A.next_out,a-A.avail_out)?(I.mode=31,-4):(E-=A.avail_in,a-=A.avail_out,A.total_in+=E,A.total_out+=a,I.total+=a,I.wrap&&a&&(A.adler=I.check=I.flags?YI(I.check,e,a,A.next_out-a):bI(I.check,e,a,A.next_out-a)),A.data_type=I.bits+(I.last?64:0)+(I.mode===VI?128:0)+(20===I.mode||15===I.mode?256:0),(0===E&&0===a||4===g)&&0===f&&(f=-5),f)}function it(A,g){var I,t=g.length;return A&&A.state?0!==(I=A.state).wrap&&11!==I.mode?OI:11===I.mode&&bI(1,g,t,0)!==I.check?-3:et(A,g,t,t)?(I.mode=31,-4):(I.havedict=1,0):OI}var Bt={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"};function Qt(){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}var ot=Object.prototype.toString;class st{constructor(A){if(!(this instanceof st))return new st(A);this.options=DI({chunkSize:16384,windowBits:0,to:""},A||{});var g=this.options;g.raw&&g.windowBits>=0&&g.windowBits<16&&(g.windowBits=-g.windowBits,0===g.windowBits&&(g.windowBits=-15)),!(g.windowBits>=0&&g.windowBits<16)||A&&A.windowBits||(g.windowBits+=32),g.windowBits>15&&g.windowBits<48&&(15&g.windowBits||(g.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Qt,this.strm.avail_out=0;var I,t,e,C=$I(this.strm,g.windowBits);if(0!==C)throw new Error(Bt[C]);if(this.header=new KI,I=this.strm,t=this.header,I&&I.state&&2&(e=I.state).wrap&&(e.head=t,t.done=!1),g.dictionary&&("string"==typeof g.dictionary?g.dictionary=UI(g.dictionary):"[object ArrayBuffer]"===ot.call(g.dictionary)&&(g.dictionary=new Uint8Array(g.dictionary)),g.raw&&0!==(C=it(this.strm,g.dictionary))))throw new Error(Bt[C])}push(A,g){var I,t,e,C,i,B,Q=this.strm,o=this.options.chunkSize,s=this.options.dictionary,E=!1;if(this.ended)return!1;t=g===~~g?g:!0===g?4:0,"string"==typeof A?Q.input=function(A){for(var g=new Uint8Array(A.length),I=0,t=g.length;I<t;I++)g[I]=A.charCodeAt(I);return g}(A):"[object ArrayBuffer]"===ot.call(A)?Q.input=new Uint8Array(A):Q.input=A,Q.next_in=0,Q.avail_in=Q.input.length;do{if(0===Q.avail_out&&(Q.output=GI(o),Q.next_out=0,Q.avail_out=o),2===(I=Ct(Q,0))&&s&&(B="string"==typeof s?UI(s):"[object ArrayBuffer]"===ot.call(s)?new Uint8Array(s):s,I=it(this.strm,B)),-5===I&&!0===E&&(I=0,E=!1),1!==I&&0!==I)return this.onEnd(I),this.ended=!0,!1;Q.next_out&&(0!==Q.avail_out&&1!==I&&(0!==Q.avail_in||4!==t&&2!==t)||("string"===this.options.to?(e=JI(Q.output,Q.next_out),C=Q.next_out-e,i=LI(Q.output,e),Q.next_out=C,Q.avail_out=o-C,C&&SI(Q.output,Q.output,e,C,0),this.onData(i)):this.onData(uI(Q.output,Q.next_out)))),0===Q.avail_in&&0===Q.avail_out&&(E=!0)}while((Q.avail_in>0||0===Q.avail_out)&&1!==I);return 1===I&&(t=4),4===t?(I=function(A){if(!A||!A.state)return OI;var g=A.state;return g.window&&(g.window=null),A.state=null,0}(this.strm),this.onEnd(I),this.ended=!0,0===I):2!==t||(this.onEnd(0),Q.avail_out=0,!0)}onData(A){this.chunks.push(A)}onEnd(A){0===A&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=kI(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg}}function Et(A,g){var I=new st(g);if(I.push(A,!0),I.err)throw I.msg||Bt[I.err];return I.result}var at=Et;Object.prototype.toString;var rt={d:(A,g)=>{for(var I in g)rt.o(g,I)&&!rt.o(A,I)&&Object.defineProperty(A,I,{enumerable:!0,get:g[I]})},o:(A,g)=>Object.prototype.hasOwnProperty.call(A,g),r:A=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(A,"__esModule",{value:!0})}},nt={};rt.r(nt),rt.d(nt,{ChunkSliceResult:()=>ht,DecompressResult:()=>ct,__wbg_Error_8c4e43fe74559d73:()=>ut,__wbg___wbindgen_throw_be289d5034ed271b:()=>wt,__wbg_set_wasm:()=>Ht,decompress_all:()=>lt,decompress_block:()=>dt,decompress_chunk_slice:()=>Dt});class ht{static __wrap(A){A>>>=0;const g=Object.create(ht.prototype);return g.__wbg_ptr=A,yt.register(g,g.__wbg_ptr,g),g}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,yt.unregister(this),A}free(){const A=this.__destroy_into_raw();Yt.__wbg_chunksliceresult_free(A,0)}get buffer(){try{const t=Yt.__wbindgen_add_to_stack_pointer(-16);Yt.chunksliceresult_buffer(t,this.__wbg_ptr);var A=Ft().getInt32(t+0,!0),g=Ft().getInt32(t+4,!0),I=kt(A,g).slice();return Yt.__wbindgen_export(A,1*g,1),I}finally{Yt.__wbindgen_add_to_stack_pointer(16)}}get cpositions(){try{const t=Yt.__wbindgen_add_to_stack_pointer(-16);Yt.chunksliceresult_cpositions(t,this.__wbg_ptr);var A=Ft().getInt32(t+0,!0),g=Ft().getInt32(t+4,!0),I=St(A,g).slice();return Yt.__wbindgen_export(A,8*g,8),I}finally{Yt.__wbindgen_add_to_stack_pointer(16)}}get dpositions(){try{const t=Yt.__wbindgen_add_to_stack_pointer(-16);Yt.chunksliceresult_dpositions(t,this.__wbg_ptr);var A=Ft().getInt32(t+0,!0),g=Ft().getInt32(t+4,!0),I=St(A,g).slice();return Yt.__wbindgen_export(A,8*g,8),I}finally{Yt.__wbindgen_add_to_stack_pointer(16)}}}Symbol.dispose&&(ht.prototype[Symbol.dispose]=ht.prototype.free);class ct{static __wrap(A){A>>>=0;const g=Object.create(ct.prototype);return g.__wbg_ptr=A,ft.register(g,g.__wbg_ptr,g),g}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,ft.unregister(this),A}free(){const A=this.__destroy_into_raw();Yt.__wbg_decompressresult_free(A,0)}get bytes_read(){return Yt.decompressresult_bytes_read(this.__wbg_ptr)>>>0}get data(){try{const t=Yt.__wbindgen_add_to_stack_pointer(-16);Yt.decompressresult_data(t,this.__wbg_ptr);var A=Ft().getInt32(t+0,!0),g=Ft().getInt32(t+4,!0),I=kt(A,g).slice();return Yt.__wbindgen_export(A,1*g,1),I}finally{Yt.__wbindgen_add_to_stack_pointer(16)}}}function lt(A){try{const C=Yt.__wbindgen_add_to_stack_pointer(-16),i=Lt(A,Yt.__wbindgen_export2),B=xt;Yt.decompress_all(C,i,B);var g=Ft().getInt32(C+0,!0),I=Ft().getInt32(C+4,!0),t=Ft().getInt32(C+8,!0);if(Ft().getInt32(C+12,!0))throw Jt(t);var e=kt(g,I).slice();return Yt.__wbindgen_export(g,1*I,1),e}finally{Yt.__wbindgen_add_to_stack_pointer(16)}}function dt(A){try{const t=Yt.__wbindgen_add_to_stack_pointer(-16),e=Lt(A,Yt.__wbindgen_export2),C=xt;Yt.decompress_block(t,e,C);var g=Ft().getInt32(t+0,!0),I=Ft().getInt32(t+4,!0);if(Ft().getInt32(t+8,!0))throw Jt(I);return ct.__wrap(g)}finally{Yt.__wbindgen_add_to_stack_pointer(16)}}function Dt(A,g,I,t,e){try{const B=Yt.__wbindgen_add_to_stack_pointer(-16),Q=Lt(A,Yt.__wbindgen_export2),o=xt;Yt.decompress_chunk_slice(B,Q,o,g,I,t,e);var C=Ft().getInt32(B+0,!0),i=Ft().getInt32(B+4,!0);if(Ft().getInt32(B+8,!0))throw Jt(i);return ht.__wrap(C)}finally{Yt.__wbindgen_add_to_stack_pointer(16)}}function ut(A,g){return function(A){Mt===Ut.length&&Ut.push(Ut.length+1);const g=Mt;return Mt=Ut[g],Ut[g]=A,g}(Error(mt(A,g)))}function wt(A,g){throw new Error(mt(A,g))}Symbol.dispose&&(ct.prototype[Symbol.dispose]=ct.prototype.free);const yt="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(A=>Yt.__wbg_chunksliceresult_free(A>>>0,1)),ft="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(A=>Yt.__wbg_decompressresult_free(A>>>0,1));function St(A,g){return A>>>=0,function(){null!==Nt&&0!==Nt.byteLength||(Nt=new Float64Array(Yt.memory.buffer));return Nt}().subarray(A/8,A/8+g)}function kt(A,g){return A>>>=0,Rt().subarray(A/1,A/1+g)}let Gt=null;function Ft(){return(null===Gt||!0===Gt.buffer.detached||void 0===Gt.buffer.detached&&Gt.buffer!==Yt.memory.buffer)&&(Gt=new DataView(Yt.memory.buffer)),Gt}let Nt=null;function mt(A,g){return function(A,g){vt+=g,vt>=bt&&(Kt=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),Kt.decode(),vt=g);return Kt.decode(Rt().subarray(A,A+g))}(A>>>=0,g)}let pt=null;function Rt(){return null!==pt&&0!==pt.byteLength||(pt=new Uint8Array(Yt.memory.buffer)),pt}let Ut=new Array(128).fill(void 0);Ut.push(void 0,null,!0,!1);let Mt=Ut.length;function Lt(A,g){const I=g(1*A.length,1)>>>0;return Rt().set(A,I/1),xt=A.length,I}function Jt(A){const g=function(A){return Ut[A]}(A);return function(A){A<132||(Ut[A]=Mt,Mt=A)}(A),g}let Kt=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Kt.decode();const bt=2146435072;let vt=0;let Yt,xt=0;function Ht(A){Yt=A}let qt=null,_t=null;async function Tt(){return qt||(_t||(_t=(async()=>{const A=await fetch("data:application/wasm;base64,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AAsgASADNgIEIAEgAjYCACABQfiSwAAgACgCBCAAKAIIIgAtAAggAC0ACRAeAAuLAQEBfyMAQRBrIgMkAAJAIAIgAWoiASACTw0AQQBBABBNAAsgA0EEaiAAKAIAIgIgACgCBCABIAJBAXQiAiABIAJLGyICQQggAkEISxsiAkEBQQEQIAJAIAMoAgRBAUcNACADKAIIIAMoAgwQTQALIAMoAgghASAAIAI2AgAgACABNgIEIANBEGokAAuHAQEBfyMAQSBrIgIkAAJAAkAgACgCAEGAgICAeEYNACABIAAoAgQgACgCCBBSIQAMAQsgAkEIakEIaiAAKAIMKAIAIgBBCGopAgA3AwAgAkEIakEQaiAAQRBqKQIANwMAIAIgACkCADcDCCABKAIAIAEoAgQgAkEIahALIQALIAJBIGokACAAC3wBAX8CQCAAKAIAIgAoAgwiAUUNACAAKAIQIAFBARBWCwJAIAAoAhgiAUUNACAAKAIcIAFBA3RBCBBWCwJAIAAoAiQiAUUNACAAKAIoIAFBA3RBCBBWCwJAIABBf0YNACAAIAAoAgRBf2oiATYCBCABDQAgAEEwQQQQVgsLhAEBAn8jAEEQayIGJABBACEHIAZBADYCDAJAAkACQAJAAkAgASgCACACIAMgBCAFIAZBDGoQUA4EAQIAAwALQZCFwABB7ABB/IXAABA/AAsgACAGKAIMNgIEDAILIABBADoAAUEBIQcMAQtBASEHIABBAToAAQsgACAHOgAAIAZBEGokAAtrAQN/IwBBEGsiASQAIAFBBGogACgCACICIAAoAgQgAkEBdCICQQQgAkEESxsiAkEIQQgQIAJAIAEoAgRBAUcNACABKAIIIAEoAgwQTQALIAEoAgghAyAAIAI2AgAgACADNgIEIAFBEGokAAtoAQF/IwBBMGsiAiQAAkAQaEH/AXENACACQTBqJAAPCyACIAE2AiQgAkECNgIQIAJBpJLAADYCDCACQgE3AhggAkEErUIghiACQSRqrYQ3AyggAiACQShqNgIUIAJBDGpBtJLAABBAAAtoAgF/AX4jAEEwayIDJAAgAyABNgIEIAMgADYCACADQQI2AgwgA0GcmMAANgIIIANCAjcCFCADQQStQiCGIgQgA62ENwMoIAMgBCADQQRqrYQ3AyAgAyADQSBqNgIQIANBCGogAhBA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ABWAAAAWgAAAF4AAABiAAAAZgAAAGoAAABuAAAAcgAAAHYAAAB6AAAAfgAAAIIAAACGAAAAigAAAI4AAACSAAAAlgAAAJoAAACeAAAAogAAAKYAAACqAAAArgAAALIAAAC2AAAAugAAAL4AAADCAAAAxgAAAMoAAADOAAAA0gAAANYAAADaAAAA3gAAAOIAAADmAAAA6gAAAO4AAADyAAAA9gAAAPoAAAD+AAABAgAAAQYAAAEKAAABDgAAARIAAAEWAAABGgAAAR4AAAEiAAABJgAAASoAAAEuAAABMgAAATYAAAE6AAABPgAAAUIAAAFGAAABSgAAAU4AAAFSAAABVgAAAVoAAAFeAAABYgAAAWYAAAFqAAABbgAAAXIAAAF2AAABegAAAX4AAAGCAAABhgAAAYoAAAGOAAABkgAAAZYAAAGaAAABngAAAaIAAAGmAAABqgAAAa4AAAGyAAABtgAAAboAAAG+AAABwgAAAcYAAAHKAAABzgAAAdIAAAHWAAAB2gAAAd4AAAHiAAAB5gAAAeoAAAHuAAAB8gAAAfYAAAH6AAAB/gAAAgIAAAIGAAACCgAAAg4AAAISAAACFgAAAhoAAAIeAAACIgAAAiYAAAIqAAACLgAAAjIAAAI2AAACOgAAAj4AAAJCAAACRgAAAkoAAAJOAAACUgAAAlYAAAJaAAACXgAAAmIAAAJmAAACagAAAm4AAAJyAAACdgAAAnoAAAJ+AAACggAAAoYAAAKKAAACjgAAApIAAAKWAAACmgAAAp4AAAKiAAACpgAAAqoAAAKuAAACsgAAArYAAAK6AAACvgAAAsIAAALGAAACygAAAs4AAALSAAAC1gAAAtoAAALeAAAC4gAAAuYAAALqAAAC7gAAAvIAAAL2AAAC+gAAAv4AAAMCAAADBgAAAwoAAAMOAAADEgAAAxYAAAMaAAADHgAAAyIAAAMmAAADKgAAAy4AAAMyAAADNgAAAzoAAAM+AAADQgAAA0YAAANKAAADTgAAA1IAAANWAAADWgAAA14AAANiAAADZgAAA2oAAANuAAADcgAAA3YAAAN6AAADfgAAA4IAAAOGAAADigAAA44AAAOSAAADlgAAA5oAAAOeAAADogAAA6YAAAOqAAADrgAAA7IAAAO2AAADugAAA74AAAPCAAADxgAAA8oAAAPOAAAD0gAAA9YAAAPaAAAD3gAAA+IAAAPmAAAD6gAAA+4AAAPyAAAD9gAAA/oAAAP+AAKAAAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAQALAAEADQABAA8AAQARAAIAEwACABcAAgAbAAIAHwADACMAAwArAAMAMwADADsABABDAAQAUwAEAGMABABzAAUAgwAFAKMABQDDAAUA4wAAAAIBAAACAQAAAgF8/YsyV+ZX+QLfRL/jSOevbV3L1ixQ62N4QaZXcRuLuW1lbW9yeSBhbGxvY2F0aW9uIG9mICBieXRlcyBmYWlsZWQAAAAJEAAVAAAAFQkQAA0AAAAGARAAGAAAAGQBAAAJAAAAAAAAAAgAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAMAAAABAAAAAoAAAALAAAADAAAAAAAAAAIAAAABAAAAA0AAAAOAAAADwAAABAAAAARAAAAEAAAAAQAAAASAAAAEwAAABQAAAAIAAAAAAAAAAgAAAAEAAAAFQAAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAANsAEAAqAAAAsQQAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA8PSBzaXplICsgbWF4X292ZXJoZWFkAADbABAAKgAAALcEAAANAAAACQAAAAwAAAAEAAAAFgAAAGNhcGFjaXR5IG92ZXJmbG93AAAAUAoQABEAAAC6ABAAIAAAABwAAAAFAAAAAQAAAAAAAAAwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OXJhbmdlIGVuZCBpbmRleCAgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggAABMCxAAEAAAAFwLEAAiAAAAc2xpY2UgaW5kZXggc3RhcnRzIGF0ICBidXQgZW5kcyBhdCAAkAsQABYAAACmCxAADQAAAHJhbmdlIHN0YXJ0IGluZGV4IAAAxAsQABIAAABcCxAAIgAAAGluZGV4IG91dCBvZiBib3VuZHM6IHRoZSBsZW4gaXMgIGJ1dCB0aGUgaW5kZXggaXMgAADoCxAAIAAAAAgMEAASAAAAUmVmQ2VsbCBhbHJlYWR5IGJvcnJvd2VkAEHEmMAACwQEAAAAACkEbmFtZQEiAVgfX193YmluZGdlbl9hZGRfdG9fc3RhY2tfcG9pbnRlcgA8CXByb2R1Y2VycwEMcHJvY2Vzc2VkLWJ5AgZ3YWxydXMGMC4yNC40DHdhc20tYmluZGdlbgcwLjIuMTA4"),g=await A.arrayBuffer(),{instance:I}=await WebAssembly.instantiate(g,{"./bgzf_wasm_bg.js":nt});return qt=I.exports,Ht(qt),qt})()),_t)}async function Wt(A){try{return await async function(A){return await Tt(),lt(A)}(A)}catch(I){if(/invalid bgzf header/.exec(`${I}`)){if((g=A).length>=2&&31===g[0]&&139===g[1])return async function(A){if("undefined"!=typeof DecompressionStream){const g=new DecompressionStream("gzip"),I=g.writable.getWriter(),t=I.write(A).then(()=>I.close()),e=[],C=g.readable.getReader();for(;;){const{done:A,value:g}=await C.read();if(A)break;e.push(g)}await t;const i=e.reduce((A,g)=>A+g.length,0),B=new Uint8Array(i);let Q=0;for(const A of e)B.set(A,Q),Q+=A.length;return B}return at(A,void 0)}(A);throw new Error("problem decompressing block: not a valid bgzf or gzip block")}if(/invalid gzip header/.exec(`${I}`))throw new Error("problem decompressing block: incorrect gzip header check");throw I}var g}async function Pt(A,g,I){try{const{minv:I,maxv:t}=g,e=await async function(A,g,I,t,e){await Tt();const C=Dt(A,g,I,t,e),i=C.buffer,B=[...C.cpositions],Q=[...C.dpositions];return C.free(),{buffer:i,cpositions:B,dpositions:Q}}(A,I.blockPosition,I.dataPosition,t.blockPosition,t.dataPosition);return{buffer:e.buffer,cpositions:e.cpositions,dpositions:e.dpositions}}catch(A){if(/invalid gzip header/.exec(`${A}`))throw new Error("problem decompressing block: incorrect gzip header check");throw A}}class Ot{filehandle;gzi;constructor({filehandle:A,gziFilehandle:g}){this.filehandle=A,this.gzi=new lI({filehandle:g})}async _readAndUncompressBlock(A,g){let I=g;I||(I=(await this.filehandle.stat()).size);const t=I-A;return Wt(await this.filehandle.read(t,A))}async read(A,g){const I=await this.gzi.getRelevantBlocksForRead(A,g),t=[];for(let e=0;e<I.length-1;e+=1){const C=await this._readAndUncompressBlock(I[e][0],I[e+1][0]),[,i]=I[e],B=i>=g?0:g-i,Q=Math.min(g+A,i+C.length)-i;B>=0&&B<C.length&&t.push(C.subarray(B,Q))}return function(A,g){const I=new Uint8Array(g??function(A){let g=0;for(const I of A)g+=I.length;return g}(A));let t=0;for(const g of A)I.set(g,t),t+=g.length;return I}(t)}}class Vt{constructor(A,g,I,t){this.minv=A,this.maxv=g,this.bin=I,this._fetchedSize=t}toUniqueString(){return`${this.minv}..${this.maxv} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}toString(){return this.toUniqueString()}compareTo(A){return this.minv.compareTo(A.minv)||this.maxv.compareTo(A.maxv)||this.bin-A.bin}fetchedSize(){return void 0!==this._fetchedSize?this._fetchedSize:this.maxv.blockPosition+65536-this.minv.blockPosition}}class Zt{constructor({filehandle:A,renameRefSeqs:g=A=>A}){this.filehandle=A,this.renameRefSeq=g}async getMetadata(A={}){const{indices:g,...I}=await this.parse(A);return I}_findFirstData(A,g){return A?A.compareTo(g)>0?g:A:g}async parse(A={}){return this.parseP||(this.parseP=this._parse(A).catch(A=>{throw this.parseP=void 0,A})),this.parseP}async hasRefSeq(A,g={}){const I=await this.parse(g);return!!I.indices[A]?.binIndex}_parseNameBytes(A){let g=0,I=0;const t=[],e={},C=new TextDecoder("utf8");for(let i=0;i<A.length;i+=1)if(!A[i]){if(I<i){const B=this.renameRefSeq(C.decode(A.subarray(I,i)));t[g]=B,e[B]=g}I=i+1,g+=1}return{refNameToId:e,refIdToName:t}}}function zt(A,g=0){const I=A[g]|A[g+1]<<8|A[g+2]<<16|A[g+3]<<24;return 4294967296*((A[g+4]|A[g+5]<<8|A[g+6]<<16|A[g+7]<<24)>>>0)+(I>>>0)}function jt(A,g){return g.minv.blockPosition-A.maxv.blockPosition<65e3&&g.maxv.blockPosition-A.minv.blockPosition<5e6}function Xt(A,g){const I=[];let t;if(0===A.length)return A;A.sort(function(A,g){const I=A.minv.blockPosition-g.minv.blockPosition;return 0===I?A.minv.dataPosition-g.minv.dataPosition:I});for(const e of A)(!g||e.maxv.compareTo(g)>0)&&(void 0===t?(I.push(e),t=e):jt(t,e)?e.maxv.compareTo(t.maxv)>0&&(t.maxv=e.maxv):(I.push(e),t=e));return I}class $t{constructor(A,g){this.blockPosition=A,this.dataPosition=g}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(A){return this.blockPosition-A.blockPosition||this.dataPosition-A.dataPosition}}function Ae(A,g=0){return new $t(1099511627776*A[g+7]+4294967296*A[g+6]+16777216*A[g+5]+65536*A[g+4]+256*A[g+3]+A[g+2],A[g+1]<<8|A[g])}const ge={0:"generic",1:"SAM",2:"VCF"};function Ie(A,g){return A*2**g}function te(A,g){return Math.floor(A/2**g)}class ee extends Zt{constructor(A){super(A),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(A,g={}){const I=await this.parse(g),t=I.refNameToId[A];if(void 0===t)return-1;if(!I.indices[t])return-1;const{stats:e}=I.indices[t];return e?e.lineCount:-1}indexCov(){throw new Error("CSI indexes do not support indexcov")}parseAuxData(A,g){const I=new DataView(A.buffer),t=I.getInt32(g,!0),e=65536&t?"zero-based-half-open":"1-based-closed",C=ge[15&t];if(!C)throw new Error(`invalid Tabix preset format flags ${t}`);const i={ref:I.getInt32(g+4,!0),start:I.getInt32(g+8,!0),end:I.getInt32(g+12,!0)},B=I.getInt32(g+16,!0),Q=B?String.fromCharCode(B):void 0,o=I.getInt32(g+20,!0),s=I.getInt32(g+24,!0),{refIdToName:E,refNameToId:a}=this._parseNameBytes(A.subarray(g+28,g+28+s));return{refIdToName:E,refNameToId:a,skipLines:o,metaChar:Q,columnNumbers:i,format:C,coordinateType:e}}async _parse(A={}){const g=await Wt(await this.filehandle.readFile(A)),I=new DataView(g.buffer);let t;if(21582659===I.getUint32(0,!0))t=1;else{if(38359875!==I.getUint32(0,!0))throw new Error("Not a CSI file");t=2}this.minShift=I.getInt32(4,!0),this.depth=I.getInt32(8,!0),this.maxBinNumber=((1<<3*(this.depth+1))-1)/7;const e=2**(this.minShift+3*this.depth),C=I.getInt32(12,!0),i=C&&C>=30?this.parseAuxData(g,16):{refIdToName:[],refNameToId:{},metaChar:void 0,columnNumbers:{ref:0,start:1,end:2},coordinateType:"zero-based-half-open",format:"generic"},B=I.getInt32(16+C,!0);let Q,o=16+C+4;const s=new Array(B).fill(0).map(()=>{const A=I.getInt32(o,!0);o+=4;const t={};let e;for(let C=0;C<A;C+=1){const A=I.getUint32(o,!0);if(A>this.maxBinNumber)e=this.parsePseudoBin(g,o+4),o+=48;else{const e=Ae(g,o+4);Q=this._findFirstData(Q,e);const C=I.getInt32(o+12,!0);o+=16;const i=new Array(C);for(let I=0;I<C;I+=1){const t=Ae(g,o),e=Ae(g,o+8);o+=16,i[I]=new Vt(t,e,A)}t[A]=i}}return{binIndex:t,stats:e}});return{...i,csi:!0,refCount:B,maxBlockSize:65536,firstDataLine:Q,csiVersion:t,indices:s,depth:this.depth,maxBinNumber:this.maxBinNumber,maxRefLength:e}}parsePseudoBin(A,g){return{lineCount:zt(A,g+28)}}async blocksForRange(A,g,I,t={}){g<0&&(g=0);const e=await this.parse(t),C=e.refNameToId[A];if(void 0===C)return[];const i=e.indices[C];if(!i)return[];const B=this.reg2bins(g,I),Q=[];for(const[A,g]of B)for(let I=A;I<=g;I++)if(i.binIndex[I])for(const A of i.binIndex[I])Q.push(new Vt(A.minv,A.maxv,I));return Xt(Q,new $t(0,0))}reg2bins(A,g){(A-=1)<1&&(A=1),g>2**50&&(g=2**34),g-=1;let I=0,t=0,e=this.minShift+3*this.depth;const C=[];for(;I<=this.depth;e-=3,t+=Ie(1,3*I),I+=1){const I=t+te(A,e),i=t+te(g,e);if(i-I+C.length>this.maxBinNumber)throw new Error(`query ${A}-${g} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);C.push([I,i])}return C}}class Ce extends Zt{async lineCount(A,g={}){const I=await this.parse(g),t=I.refNameToId[A];if(void 0===t)return-1;return I.indices[t]?I.indices[t].stats?.lineCount??-1:-1}async _parse(A={}){const g=await this.filehandle.readFile(A),I=await Wt(g),t=new DataView(I.buffer);if(21578324!==t.getUint32(0,!0))throw new Error("Not a TBI file");const e=t.getUint32(4,!0),C=t.getUint32(8,!0),i=65536&C?"zero-based-half-open":"1-based-closed",B={0:"generic",1:"SAM",2:"VCF"}[15&C];if(!B)throw new Error(`invalid Tabix preset format flags ${C}`);const Q={ref:t.getInt32(12,!0),start:t.getInt32(16,!0),end:t.getInt32(20,!0)},o=t.getInt32(24,!0),s=37449,E=o?String.fromCharCode(o):void 0,a=t.getInt32(28,!0),r=t.getInt32(32,!0),{refNameToId:n,refIdToName:h}=this._parseNameBytes(I.slice(36,36+r));let c,l=36+r;return{indices:new Array(e).fill(0).map(()=>{const A=t.getInt32(l,!0);l+=4;const g={};let e;for(let C=0;C<A;C+=1){const A=t.getUint32(l,!0);if(l+=4,A>37450)throw new Error("tabix index contains too many bins, please use a CSI index");if(37450===A){const A=t.getInt32(l,!0);l+=4,2===A&&(e=this.parsePseudoBin(I,l)),l+=16*A}else{const e=t.getInt32(l,!0);l+=4;const C=new Array(e);for(let g=0;g<e;g+=1){const t=Ae(I,l),e=Ae(I,l+8);l+=16,c=this._findFirstData(c,t),C[g]=new Vt(t,e,A)}g[A]=C}}const C=t.getInt32(l,!0);l+=4;const i=new Array(C);for(let A=0;A<C;A+=1)i[A]=Ae(I,l),l+=8,c=this._findFirstData(c,i[A]);return{binIndex:g,linearIndex:i,stats:e}}),metaChar:E,maxBinNumber:s,maxRefLength:536870912,skipLines:a,firstDataLine:c,columnNumbers:Q,coordinateType:i,format:B,refIdToName:h,refNameToId:n,maxBlockSize:65536}}parsePseudoBin(A,g){return{lineCount:zt(A,g+16)}}async blocksForRange(A,g,I,t={}){g<0&&(g=0);const e=await this.parse(t),C=e.refNameToId[A];if(void 0===C)return[];const i=e.indices[C];if(!i)return[];(i.linearIndex.length>0?i.linearIndex[g>>14>=i.linearIndex.length?i.linearIndex.length-1:g>>14]:new $t(0,0))||console.warn("querying outside of possible tabix range");const B=(Q=g,o=I,[[0,0],[1+((Q+=1)>>26),1+((o-=1)>>26)],[9+(Q>>23),9+(o>>23)],[73+(Q>>20),73+(o>>20)],[585+(Q>>17),585+(o>>17)],[4681+(Q>>14),4681+(o>>14)]]);var Q,o;const s=[];for(const[A,g]of B)for(let I=A;I<=g;I++)if(i.binIndex[I])for(const A of i.binIndex[I])s.push(new Vt(A.minv,A.maxv,I));const E=i.linearIndex.length;let a;const r=Math.min(g>>14,E-1),n=Math.min(I>>14,E-1);for(let A=r;A<=n;++A){const g=i.linearIndex[A];g&&(!a||g.compareTo(a)<0)&&(a=g)}return Xt(s,a)}}class ie{constructor({path:A,filehandle:g,url:I,tbiPath:t,tbiUrl:e,tbiFilehandle:C,csiPath:i,csiUrl:B,csiFilehandle:Q,renameRefSeqs:o,chunkCacheSize:s=5242880}){this.cache=new X({maxSize:1e3});const E=o??(A=>A);if(g)this.filehandle=g;else if(A)this.filehandle=new p(A);else{if(!I)throw new TypeError("must provide either filehandle or path");this.filehandle=new m(I)}if(C)this.index=new Ce({filehandle:C,renameRefSeqs:E});else if(Q)this.index=new ee({filehandle:Q,renameRefSeqs:E});else if(t)this.index=new Ce({filehandle:new p(t),renameRefSeqs:E});else if(i)this.index=new ee({filehandle:new p(i),renameRefSeqs:E});else if(A)this.index=new Ce({filehandle:new p(`${A}.tbi`),renameRefSeqs:E});else if(B)this.index=new ee({filehandle:new m(B)});else if(e)this.index=new Ce({filehandle:new m(e)});else{if(!I)throw new TypeError("must provide one of tbiFilehandle, tbiPath, csiFilehandle, csiPath, tbiUrl, csiUrl");this.index=new Ce({filehandle:new m(`${I}.tbi`)})}this.renameRefSeq=E,this.hasCustomRenameRefSeq=void 0!==o,this.chunkCache=new L({cache:new X({maxSize:Math.floor(s/65536)}),fill:(A,g)=>this.readChunk(A,{signal:g})})}calculateFileOffset(A,g,I,t,e){return 256*A[I]+(t-g[I])+e+1}async getLines(A,g,I,t){let e,C,i={};"function"==typeof t?C=t:(i=t,C=t.lineCallback,e=t.signal);const B=await this.index.getMetadata(i),Q=g??0,o=I??B.maxRefLength;if(!(Q<=o))throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(Q===o)return;const s=await this.index.blocksForRange(A,Q,o,i),E=new TextDecoder("utf8"),a="VCF"===B.format,r={ref:B.columnNumbers.ref||0,start:B.columnNumbers.start||0,end:a?8:B.columnNumbers.end||0},n=Math.max(r.ref,r.start,r.end),h=B.metaChar?.charCodeAt(0),c="1-based-closed"===B.coordinateType?-1:0,l=!this.hasCustomRenameRefSeq;for(const g of s){const{buffer:I,cpositions:t,dpositions:i}=await this.chunkCache.get(g.toString(),g,e);let B=0,s=0;const d=E.decode(I);if(I.length==d.length)for(;B<d.length;){const I=d.indexOf("\n",B);if(-1===I)break;const e=d.slice(B,I);if(i){const A=B+g.minv.dataPosition;for(;s<i.length&&A>=i[s];)s++}const E=this.checkLine(A,Q,o,e,r.ref,r.start,r.end,n,h,c,a,l);if(null===E)return;void 0!==E&&C(e,this.calculateFileOffset(t,i,s,B,g.minv.dataPosition),E.start,E.end),B=I+1}else for(;B<I.length;){const e=I.indexOf("\n".charCodeAt(0),B);if(-1===e)break;const d=I.slice(B,e),D=E.decode(d);if(i){const A=B+g.minv.dataPosition;for(;s<i.length&&A>=i[s];)s++}const u=this.checkLine(A,Q,o,D,r.ref,r.start,r.end,n,h,c,a,l);if(null===u)return;void 0!==u&&C(D,this.calculateFileOffset(t,i,s,B,g.minv.dataPosition),u.start,u.end),B=e+1}}}async getMetadata(A={}){return this.index.getMetadata(A)}async getHeaderBuffer(A={}){const{firstDataLine:g,metaChar:I,maxBlockSize:t}=await this.getMetadata(A),e=(g?.blockPosition||0)+t,C=await this.filehandle.read(e,0,A),i=await Wt(C);if(I){let A=-1;const g="\n".charCodeAt(0),t=I.charCodeAt(0);for(let I=0,e=i.length;I<e;I++){const e=i[I];if(I===A+1&&e!==t)break;e===g&&(A=I)}return i.subarray(0,A+1)}return i}async getHeader(A={}){const g=new TextDecoder("utf8"),I=await this.getHeaderBuffer(A);return g.decode(I)}async getReferenceSequenceNames(A={}){return(await this.getMetadata(A)).refIdToName}checkLine(A,g,I,t,e,C,i,B,Q,o,s,E){if(void 0!==Q&&t.charCodeAt(0)===Q)return;if(t.length<500){const B=t.split("\t"),Q=B[e-1];if(!(E?Q===A:this.renameRefSeq(Q)===A))return;const a=+B[C-1]+o;if(a>=I)return null;let r;if(r=0===i||i===C?a+1:s?this._getVcfEnd(a,B[3],B[i-1]):+B[i-1],r<=g)return;return{start:a,end:r}}let a=-1;const r=[-1];for(let A=0;A<B;A++){const A=t.indexOf("\t",a+1);if(-1===A){r.push(t.length);break}r.push(A),a=A}const n=t.slice(r[e-1]+1,r[e]);if(!(E?n===A:this.renameRefSeq(n)===A))return;const h=+t.slice(r[C-1]+1,r[C])+o;if(h>=I)return null;let c;return c=0===i||i===C?h+1:s?this._getVcfEnd(h,t.slice(r[3]+1,r[4]),t.slice(r[i-1]+1,r[i])):+t.slice(r[i-1]+1,r[i]),c<=g?void 0:{start:h,end:c}}_getVcfEnd(A,g,I){let t=A+g.length;if(I.includes("SVTYPE=TRA"))return A+1;if("."!==I[0]){const A=I.indexOf("END=");if(-1!==A&&(0===A||";"===I[A-1])){const g=A+4;let e=I.indexOf(";",g);-1===e&&(e=I.length),t=Number.parseInt(I.slice(g,e),10)}}return t}async lineCount(A,g={}){return this.index.lineCount(A,g)}async readChunk(A,g={}){return Pt(await this.filehandle.read(A.fetchedSize(),A.minv.blockPosition,g),A,this.cache)}}class Be{constructor(A,g){var I;const t=u(A),e=u(null!==(I=null==g?void 0:g.indexUrl)&&void 0!==I?I:A+".tbi"),C=(null==g?void 0:g.fetchImpl)?{fetch:g.fetchImpl}:void 0;this.tabix=new ie({filehandle:new m(t,C),tbiFilehandle:new m(e,C)})}async getHeader(A){var g,I;const t=await this.tabix.getMetadata({signal:A}),e=Object.keys(t.refNameToId);return{nref:e.length,format:"VCF"===t.format?2:"SAM"===t.format?1:0,colSeq:t.columnNumbers.ref,colBeg:t.columnNumbers.start,colEnd:t.columnNumbers.end,meta:null!==(I=null===(g=t.metaChar)||void 0===g?void 0:g.charCodeAt(0))&&void 0!==I?I:0,skip:0,sequenceNames:e}}async getSequenceNames(A){const g=await this.tabix.getMetadata({signal:A});return Object.keys(g.refNameToId)}async readHeaderLines(A){const g=await this.tabix.getHeader({signal:A});return g?g.split("\n").filter(A=>A.length>0):[]}async readLines(A,g,I,t){const e=[];return await this.tabix.getLines(A,g,I,{lineCallback:A=>{e.push(A)},signal:t}),e}}function Qe(A,g,I=Number.MAX_SAFE_INTEGER){var t,e;if(A.length<3)return;const C=null==g?void 0:g.gffTags,i=A[0],B=parseInt(A[1]),Q=A.length>2?parseInt(A[2]):B+1;if(isNaN(B)||isNaN(Q))return;const o={chr:i,start:B,end:Q,score:1e3};let s=3;if(A.length>3&&s++<I){if(A[3].indexOf(";")>0&&A[3].indexOf("=")>0){const I=function(A){const g={},I=A.split(";");for(const A of I){const I=A.indexOf("=");if(I>0){const t=A.substring(0,I).trim(),e=A.substring(I+1).trim();g[t]=e}}return g}(A[3]);if(o.attributes=I,C)if(null!=(null==g?void 0:g.nameField)&&I[g.nameField])o.name=I[g.nameField];else if(!o.name)for(const A of ne)if(I[A]){o.name=I[A];break}}o.name||C||(o.name="."===A[3]?"":A[3])}if(A.length>4&&s++<I&&(o.score="."===A[4]?0:Number(A[4]),isNaN(o.score)))return o;if(A.length>5&&s++<I){const g=A[5];if("."!==g&&"+"!==g&&"-"!==g)return o;o.strand=g}if(A.length>6&&s++<I&&(o.cdStart=parseInt(A[6]),isNaN(o.cdStart)))return o;if(A.length>7&&s++<I&&(o.cdEnd=parseInt(A[7]),isNaN(o.cdEnd)))return o;if(A.length>8&&s++<I&&"."!==A[8]&&"0"!==A[8]&&(o.color=Pg(A[8])),A.length>11&&s++<I){const g=parseInt(A[9]);if(g>1e3)return o;const I=A[10].replace(/,$/,"").split(","),C=A[11].replace(/,$/,"").split(",");if(I.length!==C.length||g!==I.length)return o;const i=[];for(let A=0;A<g;A++){const g=B+parseInt(C[A]),t=g+parseInt(I[A]);i.push({start:g,end:t})}i.length>0&&(Wg(i,null!==(t=o.cdStart)&&void 0!==t?t:B,null!==(e=o.cdEnd)&&void 0!==e?e:Q),o.exons=i)}if(g&&(void 0!==g.thicknessColumn&&A.length>g.thicknessColumn&&(o.thickness=parseFloat(A[g.thicknessColumn])),void 0!==g.colorColumn&&A.length>g.colorColumn)){const I=Pg(A[g.colorColumn]);I&&(o.color=I)}return o}function oe(A,g){const I=Qe(A,g,6);if(I)return A.length>6&&(I.signal=parseFloat(A[6])),A.length>7&&(I.pValue=parseFloat(A[7])),A.length>8&&(I.qValue=parseFloat(A[8])),I}function se(A,g){const I=Qe(A,g,6);if(I)return A.length>6&&(I.signal=parseFloat(A[6])),A.length>7&&(I.pValue=parseFloat(A[7])),A.length>8&&(I.qValue=parseFloat(A[8])),A.length>9&&(I.peak=parseInt(A[9])),I}function Ee(A,g){const I=Qe(A,g);if(I)return A.length>12&&(I.signal=parseFloat(A[12])),A.length>13&&(I.pValue=parseFloat(A[13])),A.length>14&&(I.qValue=parseFloat(A[14])),I}function ae(A){if(A.length<4)return;const g=A[0],I=parseInt(A[1]),t=parseInt(A[2]),e=parseFloat(A[3]);return isNaN(I)||isNaN(t)||isNaN(e)?void 0:{chr:g,start:I,end:t,value:e}}function re(A){if(A.length<11)return;const g=A[2],I=parseInt(A[4]),t=parseInt(A[5]),e=parseInt(A[6]),C=parseInt(A[7]),i=zg(A[3]);if(isNaN(I)||isNaN(t))return;const B={chr:g,start:I,end:t,name:A[0],strand:i,cdStart:e,cdEnd:C},Q=parseInt(A[8]),o=A[9].replace(/,$/,"").split(","),s=A[10].replace(/,$/,"").split(",");if(Q>0&&o.length===Q&&s.length===Q){const A=[];for(let g=0;g<Q;g++)A.push({start:parseInt(o[g]),end:parseInt(s[g])});Wg(A,e,C),B.exons=A}return B}const ne=["Name","transcript_id","gene_name","gene","gene_id","alias","locus","name"];const he=new Set(["transcript","primary_transcript","processed_transcript","mRNA","mrna","lnc_RNA","miRNA","ncRNA","rRNA","scRNA","snRNA","snoRNA","tRNA"]),ce=new Set(["CDS","cds","start_codon","stop_codon"]),le=new Set(["5UTR","3UTR","UTR","five_prime_UTR","three_prime_UTR","3'-UTR","5'-UTR"]),de=new Set(["exon","coding-exon"]),De=new Set;for(const A of[ce,le,de])for(const g of A)De.add(g);function ue(A){return he.has(A)||A.endsWith("RNA")||A.endsWith("transcript")}function we(A){return De.has(A)||A.endsWith("RNA")||fe(A)}function ye(A){return de.has(A)}function fe(A){return A.includes("intron")}function Se(A){return ce.has(A)}function ke(A){return le.has(A)}const Ge=new Map([["%09","\t"],["%0A","\n"],["%0D","\r"],["%25","%"],["%3B",";"],["%3D","="],["%26","&"],["%2C",","]]);function Fe(A){if(!A.includes("%"))return A;let g="";for(let I=0;I<A.length;I++)if(37===A.charCodeAt(I)&&I<A.length-2){const t=A.substring(I,I+3);Ge.has(t)?g+=Ge.get(t):g+=t,I+=2}else g+=A.charAt(I);return g}function Ne(A,g="="){const I="="===g,t=[];for(let e of A.split(";")){e=e.trim();const A=e.indexOf(g);if(A>0&&A<e.length-1){let g=Fe(e.substring(0,A).trim()),C=Fe(e.substring(A+1).trim());I||(g=me(g),C=me(C)),t.push([g,C])}}return t}function me(A){return A.startsWith('"')&&A.endsWith('"')?A.substring(1,A.length-1):A}function pe(A,g){if(A.length<9)return;const I=parseInt(A[3])-1,t=parseInt(A[4]);if(isNaN(I)||isNaN(t))return;const e="."===A[5]?void 0:Number(A[5]),C="+"===A[6]||"-"===A[6]||"."===A[6]?A[6]:void 0,i="."===A[7]?void 0:parseInt(A[7]);return{chr:A[0],source:Fe(A[1]),type:A[2],start:I,end:t,score:void 0===e||isNaN(e)?void 0:e,strand:C,phase:void 0===i||isNaN(i)?void 0:i,attributeString:A[8],attributes:{}}}function Re(A){const g=pe(A);if(!g)return;const I=Ne(g.attributeString,"="),t={};for(const[A,e]of I){t[A]=e;const I=A.toLowerCase();"color"===I||"colour"===I?g.color=e:"ID"===A?g.id=e:"Parent"===A&&(g.parent=e)}return g.attributes=t,g}function Ue(A){const g=pe(A);if(!g)return;const I=Ne(g.attributeString," "),t={};let e,C;switch(g.type){case"gene":e="gene_id";break;case"transcript":e="transcript_id",C="gene_id";break;default:C="transcript_id"}for(const[A,i]of I){t[A]=i;const I=A.toLowerCase();"color"===I||"colour"===I?g.color=i:A===e?g.id=i:A===C&&(g.parent=i)}return g.attributes=t,g}const Me=["Name","transcript_id","gene_name","gene","gene_id","alias","locus","name"];function Le(A,g){if(void 0!==A.attributes[g])return A.attributes[g];const I=A.attributeString.includes("=")?"=":" ",t=Ne(A.attributeString,I);for(const[A,I]of t)if(A===g)return I}function Je(A,g,I){var t;const e=new Set(null!==(t=null==I?void 0:I.filterTypes)&&void 0!==t?t:["chromosome"]);let C=A.filter(A=>!e.has(A.type));"gff3"!==g&&"gff"!==g||(C=function(A){const g=new Map,I=[];for(const t of A)if(we(t.type)||ue(t.type)||!t.id)I.push(t);else{let A=g.get(t.chr);A||(A=new Map,g.set(t.chr,A));let I=A.get(t.id);I?I.push(t):A.set(t.id,[t])}for(const A of g.values())for(const g of A.values())if(g.length>1){const A={...g[0]},t=[];for(const I of g)A.start=Math.min(A.start,I.start),A.end=Math.max(A.end,I.end),t.push({start:I.start,end:I.end});A._mergedExons=t,I.push(A)}else I.push(g[0]);return I}(C));const i=function(A,g,I){const t=Object.create(null);for(const g of A)("gene"===g.type||g.type.endsWith("_gene"))&&g.id&&(t[g.id]=g);const e=Object.create(null),C=[],i=new Set;for(const g of A)if(ue(g.type)&&void 0!==g.id){const A={record:g,exons:[],parts:[]};e[g.id]=A,i.add(g),g.parent&&t[g.parent]&&(A.geneRecord=t[g.parent],i.add(t[g.parent]))}for(const I of A)if(we(I.type)){const A=xe(I);if(A)for(const t of A){let A=e[t];if(!A&&"gtf"===g){A={record:{...I,type:"transcript"},exons:[],parts:[]},e[t]=A}A&&(ye(I.type)?A.exons.push({start:I.start,end:I.end}):A.parts.push(I),A.record.start=Math.min(A.record.start,I.start),A.record.end=Math.max(A.record.end,I.end),i.add(I))}}for(const A of Object.keys(e)){const g=e[A];Ke(g),C.push(He(g,I))}for(const g of A)i.has(g)||C.push(qe(g,I));return function(A){for(const g of A)if(g.exons)for(let A=0;A<g.exons.length;A++)g.exons[A].number="-"===g.strand?g.exons.length-A:A+1}(C),C}(C,g,null==I?void 0:I.nameField);return i}function Ke(A){if(A.parts.sort((A,g)=>A.start-g.start),A.parts.length>0){let g=A.parts[0].start,I=A.parts[0].end;for(let t=1;t<A.parts.length;t++){const e=A.parts[t];fe(e.type)||(e.start<=I?I=Math.max(I,e.end):(be(A.exons,g,I)||A.exons.push({start:g,end:I}),g=e.start,I=e.end))}be(A.exons,g,I)||(A.exons.push({start:g,end:I}),A.record.start=Math.min(A.record.start,g),A.record.end=Math.max(A.record.end,I))}for(const g of A.parts)Se(g.type)?ve(A,g):ke(g.type)&&Ye(A,g);if(A.exons.sort((A,g)=>A.start-g.start),void 0!==A.cdStart&&void 0!==A.cdEnd)for(const g of A.exons)(g.end<A.cdStart||g.start>A.cdEnd)&&(g.utr=!0)}function be(A,g,I){for(const t of A)if(t.end>=I&&t.start<=g)return t}function ve(A,g){const I=be(A.exons,g.start,g.end);if(I&&(I.cdStart=void 0!==I.cdStart?Math.min(g.start,I.cdStart):g.start,I.cdEnd=void 0!==I.cdEnd?Math.max(g.end,I.cdEnd):g.end,void 0!==g.phase)){const A=(3-g.phase)%3;void 0===I.readingFrame&&(I.readingFrame=A)}A.cdStart=void 0!==A.cdStart?Math.min(g.start,A.cdStart):g.start,A.cdEnd=void 0!==A.cdEnd?Math.max(g.end,A.cdEnd):g.end}function Ye(A,g){const I=be(A.exons,g.start,g.end);I&&(g.start===I.start&&g.end===I.end?I.utr=!0:(g.end<I.end&&(I.cdStart=g.end),(void 0===I.cdEnd||g.start>I.cdEnd)&&(I.cdEnd=g.start)))}function xe(A){return A.parent&&""!==A.parent.trim()?A.parent.trim().split(","):null}function He(A,g){const I=A.record,t=_e(I,g);return{chr:I.chr,start:I.start,end:I.end,name:t,id:I.id,strand:"+"===I.strand||"-"===I.strand?I.strand:void 0,type:I.type,source:I.source,score:I.score,cdStart:A.cdStart,cdEnd:A.cdEnd,exons:A.exons.length>0?A.exons:void 0,attributes:I.attributes,color:I.color}}function qe(A,g){const I=_e(A,g),t=A._mergedExons;return{chr:A.chr,start:A.start,end:A.end,name:I,id:A.id,strand:"+"===A.strand||"-"===A.strand?A.strand:void 0,type:A.type,source:A.source,score:A.score,exons:t,attributes:A.attributes,color:A.color}}function _e(A,g){if(g)return Le(A,g);for(const g of Me){const I=Le(A,g);if(I)return I}}function Te(A,g){var I;if(A.length<6)return;const t=A[0],e=parseInt(A[1]),C=parseInt(A[2]),i=A[3],B=parseInt(A[4]),Q=parseInt(A[5]);if(isNaN(e)||isNaN(C)||isNaN(B)||isNaN(Q))return;g&&void 0===g.hiccups&&(g.hiccups=!!g.columnNames&&Pe(g.columnNames));const o=null!==(I=null==g?void 0:g.hiccups)&&void 0!==I&&I,s=o?6:10,E={chr:t,start:0,end:0,chr1:t,start1:e,end1:C,chr2:i,start2:B,end2:Q,dup:!1};return o||(A.length>6&&"."!==A[6]&&(E.name=A[6]),A.length>7&&"."!==A[7]&&(E.score=Number(A[7])),A.length>8&&"."!==A[8]&&(E.strand1=A[8]),A.length>9&&"."!==A[9]&&(E.strand2=A[9])),g&&(void 0!==g.colorColumn&&g.colorColumn<A.length&&(E.color=A[g.colorColumn]),void 0!==g.thicknessColumn&&g.thicknessColumn<A.length&&(E.thickness=Number(A[g.thicknessColumn])),A.length>s&&g.columnNames&&g.columnNames.length===A.length&&(E.extras=A.slice(s))),t===i&&(E.chr=t,E.start=Math.min(e,B),E.end=Math.max(C,Q)),E}function We(A){if(0===A.length)return;const g=A[0];if(void 0===g.score&&void 0!==g.name){if(A.every(A=>{return void 0===A.name||"."===A.name||(g=A.name,!isNaN(Number(g))&&""!==g.trim());var g}))for(const g of A)g.score=Number(g.name),g.name=void 0}const I=A.filter(A=>A.chr1!==A.chr2);for(const g of I){const I={...g,dup:!0};A.push(I),g.chr=g.chr1,g.start=g.start1,g.end=g.end1,I.chr=I.chr2,I.start=I.start2,I.end=I.end2}}function Pe(A){return A.includes("fdrDonut")||A.includes("fdr_donut")}function Oe(A){if(A.length<6)return;const g=A[0],I=parseInt(A[1]),t=parseInt(A[2]),e=A[8],C=parseInt(A[9]),i=parseInt(A[10]),B=A[13],Q=parseInt(A[14]),o=parseInt(A[15]),s=A[7],E="."===s?void 0:"0"===s?"rgb(0,0,0)":s;return{chr:g,start:I,end:t,chr1:e,start1:C,end1:i,chr2:B,start2:Q,end2:o,name:A[3],score:Number(A[4]),value:Number(A[5]),color:E,dup:!1}}function Ve(A,g){switch(A){case"broadpeak":case"peaks":return{decode:(A,g)=>oe(A,Ze(g)),delimiter:/\s+/,requiresAssembly:!1};case"narrowpeak":return{decode:(A,g)=>se(A,Ze(g)),delimiter:/\s+/,requiresAssembly:!1};case"bedgraph":return{decode:A=>ae(A),delimiter:/\s+/,requiresAssembly:!1};case"gff3":case"gff":return{decode:A=>Re(A),delimiter:"\t",requiresAssembly:!0};case"gtf":return{decode:A=>Ue(A),delimiter:"\t",requiresAssembly:!0};case"refflat":return{decode:A=>re(A),delimiter:/\s+/,requiresAssembly:!1};case"genepred":return{decode:A=>jg(A,0),delimiter:/\s+/,requiresAssembly:!1};case"genepredext":return{decode:A=>Xg(A,0),delimiter:/\s+/,requiresAssembly:!1};case"ensgene":return{decode:A=>jg(A,1),delimiter:/\s+/,requiresAssembly:!1};case"refgene":return{decode:A=>Xg(A,1),delimiter:/\s+/,requiresAssembly:!1};case"gappedpeak":return{decode:(A,g)=>Ee(A,Ze(g)),delimiter:/\s+/,requiresAssembly:!1};case"bedpe":return{decode:(A,g)=>Te(A,function(A){return A?{columnNames:A.columnNames,colorColumn:A.colorColumn,thicknessColumn:A.thicknessColumn}:void 0}(g)),delimiter:/\s+/,requiresAssembly:!1,postProcess:We};case"interact":case"longrange":return{decode:A=>Oe(A),delimiter:/\s+/,requiresAssembly:!1};default:return{decode:(A,g)=>Qe(A,Ze(g)),delimiter:/\s+/,requiresAssembly:!1}}}function Ze(A){if(A)return{nameField:A.nameField,gffTags:A.gffTags,colorColumn:A.colorColumn,thicknessColumn:A.thicknessColumn}}function ze(A,g){const I={format:g};let t;for(const g of A)if(g.startsWith("track")||g.startsWith("#track")){const A=Xe(g);Object.assign(I,{properties:A}),"interact"===A.type&&(I.format="interact"),"gcnv"===A.type&&(I.format="gcnv")}else if(g.startsWith("browser"));else if(g.startsWith("#columns")){const A=$e(g);void 0!==A.colorColumn&&(I.colorColumn=A.colorColumn),void 0!==A.thicknessColumn&&(I.thicknessColumn=A.thicknessColumn)}else if(g.startsWith("##gff-version 3"))I.format="gff3";else if(g.startsWith("#gffTags"))I.gffTags=!0;else{if(g.startsWith("fixedStep")||g.startsWith("variableStep"))break;if(!g.startsWith("#"))break;{const A=g.split("\t");A.length>1&&(t=A)}}if(t){I.columnNames=t;for(let A=0;A<t.length;A++)"color"===t[A]||"colour"===t[A]?I.colorColumn=A:"thickness"===t[A]&&(I.thicknessColumn=A)}return I}function je(A,g,I){var t,e;const C=null!==(t=null==I?void 0:I.header)&&void 0!==t?t:ze(A,g),i=null!==(e=C.format)&&void 0!==e?e:g,B=Ve(i),Q=B.delimiter,o=[],s={};for(const g of A){if(!g||g.startsWith("track")||g.startsWith("#")||g.startsWith("browser"))continue;if("wig"===i){if(g.startsWith("fixedStep")){s.wig=AC(g);continue}if(g.startsWith("variableStep")){s.wig=gC(g);continue}}const A=g.split(Q);if(A.length<1)continue;const I="wig"===i?{...C,wig:s.wig}:C,t=B.decode(A,I);t&&o.push(t)}if(B.postProcess&&B.postProcess(o),B.requiresAssembly&&!1!==(null==I?void 0:I.assembleGFF)){return Je(o,"gff"===i?"gff":"gff3"===i?"gff3":"gtf",{nameField:C.nameField})}return o}function Xe(A){const g={},I=A.split(/(?:")([^"]+)(?:")|([^\s"]+)(?=\s+|$)/g);let t;const e=[];for(const A of I)A&&0!==A.trim().length&&(A.endsWith("=")?t=A:t?(e.push(t+A),t=void 0):e.push(A));for(const A of e){if(!A)break;const I=A.split("=",2);2===I.length&&(g[I[0].trim()]=I[1].trim())}return g}function $e(A){const g={},I=A.split(/\s+/);if(2===I.length){const A=I[1].split(";");for(const I of A){const A=I.split("=");"color"===A[0]?g.colorColumn=parseInt(A[1])-1:"thickness"===A[0]&&(g.thicknessColumn=parseInt(A[1])-1)}}return g}function AC(A){const g=A.split(/\s+/);return{format:"fixedStep",chrom:g[1].split("=")[1],start:parseInt(g[2].split("=")[1],10)-1,step:parseInt(g[3].split("=")[1],10),span:g.length>4?parseInt(g[4].split("=")[1],10):1,index:0}}function gC(A){const g=A.split(/\s+/);return{format:"variableStep",chrom:g[1].split("=")[1],span:g.length>2?parseInt(g[2].split("=")[1],10):1}}var IC=Object.freeze({__proto__:null,getDecoder:Ve,parseHeader:ze,parseFeatures:je});const tC=new Set(["narrowpeak","broadpeak","regionpeak","peaks","bedgraph","wig","gff3","gff","gtf","fusionjuncspan","refflat","seg","aed","bed","bedmethyl","vcf","bb","bigbed","biginteract","biggenepred","bignarrowpeak","bw","bigwig","bam","tdf","refgene","genepred","genepredext","bedpe","bp","snp","rmsk","cram","gwas","maf","mut","hiccups","fasta","fa","fna","pytor","hic","qtl","gtx"]);function eC(A){if(!A)return;let g=A.toLowerCase();const I=g.indexOf("?");I>0&&(g=g.substring(0,I));const t=g.lastIndexOf("/");if(t>=0&&(g=g.substring(t+1)),g.endsWith("refgene.txt.gz")||g.endsWith("refgene.txt.bgz")||g.endsWith("refgene.txt")||g.endsWith("refgene.sorted.txt.gz")||g.endsWith("refgene.sorted.txt.bgz"))return"refgene";g.endsWith(".gz")&&(g=g.substring(0,g.length-3)),g.endsWith(".bgz")&&(g=g.substring(0,g.length-4)),(g.endsWith(".txt")||g.endsWith(".tab")||g.endsWith(".tsv"))&&(g=g.substring(0,g.length-4));const e=g.lastIndexOf("."),C=e<0?g:g.substring(e+1);switch(C){case"bw":return"bigwig";case"bb":return"bigbed";case"fasta":case"fa":case"fna":return"fasta";case"gtx":return"gtx";default:return tC.has(C)?C:void 0}}const CC=new Set(["bigwig","bw","bigbed","bb","biginteract","biggenepred","bignarrowpeak","tdf","bam","cram","gtx"]);function iC(A){return CC.has(A.toLowerCase())}new Set(["bigwig","bw","bigbed","bb","biginteract","biggenepred","bignarrowpeak"]);function BC(A){const g=A.toLowerCase(),I=g.indexOf("?");return(I>0?g.substring(0,I):g).endsWith(".bgz")}function QC(A){if(A.includes("?")){const g=A.indexOf("?");return A.substring(0,g)+".tbi"+A.substring(g)}return A+".tbi"}function oC(A){if(A)switch(A.toLowerCase()){case"bw":case"bigwig":case"wig":case"bedgraph":case"tdf":case"gtx":return"wig";case"vcf":case"vcftabix":return"variant";case"seg":return"seg";case"mut":case"maf":return"mut";case"bam":case"cram":return"alignment";case"hiccups":case"bedpe":case"bedpe-loop":case"biginteract":case"longrange":case"hic":return"interact";case"bp":return"arc";case"gwas":return"gwas";case"bed":case"bigbed":case"bb":case"biggenepred":case"bignarrowpeak":return"bedtype";case"fasta":return"sequence";case"pytor":return"cnvpytor";case"qtl":return"qtl";default:return"annotation"}}const sC=/^chr(\d+|X|Y|M)$/i;function EC(A){return sC.test(A)}function aC(A){return Object.keys(A).filter(EC).sort((A,g)=>rC(A)-rC(g))}function rC(A){const g=A.replace(/^chr/i,"");if("X"===g||"x"===g)return 23;if("Y"===g||"y"===g)return 24;if("M"===g||"m"===g)return 25;const I=parseInt(g,10);return isNaN(I)?100:I}function nC(A){const g=aC(A),I={};let t=0;for(const e of g)I[e]=Math.floor(t),t+=A[e];return{offsets:I,totalLength:Math.floor(t),chromosomeNames:g}}function hC(A,g){for(let I=g.chromosomeNames.length-1;I>=0;I--){const t=g.chromosomeNames[I],e=g.offsets[t];if(A>=e)return{chr:t,position:A-e}}return{chr:g.chromosomeNames[0],position:Math.max(0,A)}}function cC(A){const g={};for(const I of A.split("\n")){const A=I.trim();if(!A||A.startsWith("#"))continue;const t=A.split("\t");if(t.length>=2){const A=t[0],I=parseInt(t[1],10);A&&!isNaN(I)&&I>0&&(g[A]=I)}}return g}const lC={chr1:248956422,chr2:242193529,chr3:198295559,chr4:190214555,chr5:181538259,chr6:170805979,chr7:159345973,chr8:145138636,chr9:138394717,chr10:133797422,chr11:135086622,chr12:133275309,chr13:114364328,chr14:107043718,chr15:101991189,chr16:90338345,chr17:83257441,chr18:80373285,chr19:58617616,chr20:64444167,chr21:46709983,chr22:50818468,chrX:156040895,chrY:57227415,chrM:16569,chr11_KI270721v1_random:100316,chr14_GL000009v2_random:201709,chr14_GL000225v1_random:211173,chr14_KI270722v1_random:194050,chr14_GL000194v1_random:191469,chr14_KI270723v1_random:38115,chr14_KI270724v1_random:39555,chr14_KI270725v1_random:172810,chr14_KI270726v1_random:43739,chr15_KI270727v1_random:448248,chr16_KI270728v1_random:1872759,chr17_GL000205v2_random:185591,chr17_KI270729v1_random:280839,chr17_KI270730v1_random:112551,chr1_KI270706v1_random:175055,chr1_KI270707v1_random:32032,chr1_KI270708v1_random:127682,chr1_KI270709v1_random:66860,chr1_KI270710v1_random:40176,chr1_KI270711v1_random:42210,chr1_KI270712v1_random:176043,chr1_KI270713v1_random:40745,chr1_KI270714v1_random:41717,chr22_KI270731v1_random:150754,chr22_KI270732v1_random:41543,chr22_KI270733v1_random:179772,chr22_KI270734v1_random:165050,chr22_KI270735v1_random:42811,chr22_KI270736v1_random:181920,chr22_KI270737v1_random:103838,chr22_KI270738v1_random:99375,chr22_KI270739v1_random:73985,chr2_KI270715v1_random:161471,chr2_KI270716v1_random:153799,chr3_GL000221v1_random:155397,chr4_GL000008v2_random:209709,chr5_GL000208v1_random:92689,chr9_KI270717v1_random:40062,chr9_KI270718v1_random:38054,chr9_KI270719v1_random:176845,chr9_KI270720v1_random:39050,chr1_KI270762v1_alt:354444,chr1_KI270766v1_alt:256271,chr1_KI270760v1_alt:109528,chr1_KI270765v1_alt:185285,chr1_GL383518v1_alt:182439,chr1_GL383519v1_alt:110268,chr1_GL383520v2_alt:366580,chr1_KI270764v1_alt:50258,chr1_KI270763v1_alt:911658,chr1_KI270759v1_alt:425601,chr1_KI270761v1_alt:165834,chr2_KI270770v1_alt:136240,chr2_KI270773v1_alt:70887,chr2_KI270774v1_alt:223625,chr2_KI270769v1_alt:120616,chr2_GL383521v1_alt:143390,chr2_KI270772v1_alt:133041,chr2_KI270775v1_alt:138019,chr2_KI270771v1_alt:110395,chr2_KI270768v1_alt:110099,chr2_GL582966v2_alt:96131,chr2_GL383522v1_alt:123821,chr2_KI270776v1_alt:174166,chr2_KI270767v1_alt:161578,chr3_JH636055v2_alt:173151,chr3_KI270783v1_alt:109187,chr3_KI270780v1_alt:224108,chr3_GL383526v1_alt:180671,chr3_KI270777v1_alt:173649,chr3_KI270778v1_alt:248252,chr3_KI270781v1_alt:113034,chr3_KI270779v1_alt:205312,chr3_KI270782v1_alt:162429,chr3_KI270784v1_alt:184404,chr4_KI270790v1_alt:220246,chr4_GL383528v1_alt:376187,chr4_KI270787v1_alt:111943,chr4_GL000257v2_alt:586476,chr4_KI270788v1_alt:158965,chr4_GL383527v1_alt:164536,chr4_KI270785v1_alt:119912,chr4_KI270789v1_alt:205944,chr4_KI270786v1_alt:244096,chr5_KI270793v1_alt:126136,chr5_KI270792v1_alt:179043,chr5_KI270791v1_alt:195710,chr5_GL383532v1_alt:82728,chr5_GL949742v1_alt:226852,chr5_KI270794v1_alt:164558,chr5_GL339449v2_alt:1612928,chr5_GL383530v1_alt:101241,chr5_KI270796v1_alt:172708,chr5_GL383531v1_alt:173459,chr5_KI270795v1_alt:131892,chr6_GL000250v2_alt:4672374,chr6_KI270800v1_alt:175808,chr6_KI270799v1_alt:152148,chr6_GL383533v1_alt:124736,chr6_KI270801v1_alt:870480,chr6_KI270802v1_alt:75005,chr6_KB021644v2_alt:185823,chr6_KI270797v1_alt:197536,chr6_KI270798v1_alt:271782,chr7_KI270804v1_alt:157952,chr7_KI270809v1_alt:209586,chr7_KI270806v1_alt:158166,chr7_GL383534v2_alt:119183,chr7_KI270803v1_alt:1111570,chr7_KI270808v1_alt:271455,chr7_KI270807v1_alt:126434,chr7_KI270805v1_alt:209988,chr8_KI270818v1_alt:145606,chr8_KI270812v1_alt:282736,chr8_KI270811v1_alt:292436,chr8_KI270821v1_alt:985506,chr8_KI270813v1_alt:300230,chr8_KI270822v1_alt:624492,chr8_KI270814v1_alt:141812,chr8_KI270810v1_alt:374415,chr8_KI270819v1_alt:133535,chr8_KI270820v1_alt:36640,chr8_KI270817v1_alt:158983,chr8_KI270816v1_alt:305841,chr8_KI270815v1_alt:132244,chr9_GL383539v1_alt:162988,chr9_GL383540v1_alt:71551,chr9_GL383541v1_alt:171286,chr9_GL383542v1_alt:60032,chr9_KI270823v1_alt:439082,chr10_GL383545v1_alt:179254,chr10_KI270824v1_alt:181496,chr10_GL383546v1_alt:309802,chr10_KI270825v1_alt:188315,chr11_KI270832v1_alt:210133,chr11_KI270830v1_alt:177092,chr11_KI270831v1_alt:296895,chr11_KI270829v1_alt:204059,chr11_GL383547v1_alt:154407,chr11_JH159136v1_alt:200998,chr11_JH159137v1_alt:191409,chr11_KI270827v1_alt:67707,chr11_KI270826v1_alt:186169,chr12_GL877875v1_alt:167313,chr12_GL877876v1_alt:408271,chr12_KI270837v1_alt:40090,chr12_GL383549v1_alt:120804,chr12_KI270835v1_alt:238139,chr12_GL383550v2_alt:153178,chr12_GL383552v1_alt:138655,chr12_GL383553v2_alt:152874,chr12_KI270834v1_alt:119498,chr12_GL383551v1_alt:184319,chr12_KI270833v1_alt:76061,chr12_KI270836v1_alt:56134,chr13_KI270840v1_alt:191684,chr13_KI270839v1_alt:180306,chr13_KI270843v1_alt:103832,chr13_KI270841v1_alt:169134,chr13_KI270838v1_alt:306913,chr13_KI270842v1_alt:37287,chr14_KI270844v1_alt:322166,chr14_KI270847v1_alt:1511111,chr14_KI270845v1_alt:180703,chr14_KI270846v1_alt:1351393,chr15_KI270852v1_alt:478999,chr15_KI270851v1_alt:263054,chr15_KI270848v1_alt:327382,chr15_GL383554v1_alt:296527,chr15_KI270849v1_alt:244917,chr15_GL383555v2_alt:388773,chr15_KI270850v1_alt:430880,chr16_KI270854v1_alt:134193,chr16_KI270856v1_alt:63982,chr16_KI270855v1_alt:232857,chr16_KI270853v1_alt:2659700,chr16_GL383556v1_alt:192462,chr16_GL383557v1_alt:89672,chr17_GL383563v3_alt:375691,chr17_KI270862v1_alt:391357,chr17_KI270861v1_alt:196688,chr17_KI270857v1_alt:2877074,chr17_JH159146v1_alt:278131,chr17_JH159147v1_alt:70345,chr17_GL383564v2_alt:133151,chr17_GL000258v2_alt:1821992,chr17_GL383565v1_alt:223995,chr17_KI270858v1_alt:235827,chr17_KI270859v1_alt:108763,chr17_GL383566v1_alt:90219,chr17_KI270860v1_alt:178921,chr18_KI270864v1_alt:111737,chr18_GL383567v1_alt:289831,chr18_GL383570v1_alt:164789,chr18_GL383571v1_alt:198278,chr18_GL383568v1_alt:104552,chr18_GL383569v1_alt:167950,chr18_GL383572v1_alt:159547,chr18_KI270863v1_alt:167999,chr19_KI270868v1_alt:61734,chr19_KI270865v1_alt:52969,chr19_GL383573v1_alt:385657,chr19_GL383575v2_alt:170222,chr19_GL383576v1_alt:188024,chr19_GL383574v1_alt:155864,chr19_KI270866v1_alt:43156,chr19_KI270867v1_alt:233762,chr19_GL949746v1_alt:987716,chr20_GL383577v2_alt:128386,chr20_KI270869v1_alt:118774,chr20_KI270871v1_alt:58661,chr20_KI270870v1_alt:183433,chr21_GL383578v2_alt:63917,chr21_KI270874v1_alt:166743,chr21_KI270873v1_alt:143900,chr21_GL383579v2_alt:201197,chr21_GL383580v2_alt:74653,chr21_GL383581v2_alt:116689,chr21_KI270872v1_alt:82692,chr22_KI270875v1_alt:259914,chr22_KI270878v1_alt:186262,chr22_KI270879v1_alt:304135,chr22_KI270876v1_alt:263666,chr22_KI270877v1_alt:101331,chr22_GL383583v2_alt:96924,chr22_GL383582v2_alt:162811,chrX_KI270880v1_alt:284869,chrX_KI270881v1_alt:144206,chr19_KI270882v1_alt:248807,chr19_KI270883v1_alt:170399,chr19_KI270884v1_alt:157053,chr19_KI270885v1_alt:171027,chr19_KI270886v1_alt:204239,chr19_KI270887v1_alt:209512,chr19_KI270888v1_alt:155532,chr19_KI270889v1_alt:170698,chr19_KI270890v1_alt:184499,chr19_KI270891v1_alt:170680,chr1_KI270892v1_alt:162212,chr2_KI270894v1_alt:214158,chr2_KI270893v1_alt:161218,chr3_KI270895v1_alt:162896,chr4_KI270896v1_alt:378547,chr5_KI270897v1_alt:1144418,chr5_KI270898v1_alt:130957,chr6_GL000251v2_alt:4795265,chr7_KI270899v1_alt:190869,chr8_KI270901v1_alt:136959,chr8_KI270900v1_alt:318687,chr11_KI270902v1_alt:106711,chr11_KI270903v1_alt:214625,chr12_KI270904v1_alt:572349,chr15_KI270906v1_alt:196384,chr15_KI270905v1_alt:5161414,chr17_KI270907v1_alt:137721,chr17_KI270910v1_alt:157099,chr17_KI270909v1_alt:325800,chr17_JH159148v1_alt:88070,chr17_KI270908v1_alt:1423190,chr18_KI270912v1_alt:174061,chr18_KI270911v1_alt:157710,chr19_GL949747v2_alt:729520,chr22_KB663609v1_alt:74013,chrX_KI270913v1_alt:274009,chr19_KI270914v1_alt:205194,chr19_KI270915v1_alt:170665,chr19_KI270916v1_alt:184516,chr19_KI270917v1_alt:190932,chr19_KI270918v1_alt:123111,chr19_KI270919v1_alt:170701,chr19_KI270920v1_alt:198005,chr19_KI270921v1_alt:282224,chr19_KI270922v1_alt:187935,chr19_KI270923v1_alt:189352,chr3_KI270924v1_alt:166540,chr4_KI270925v1_alt:555799,chr6_GL000252v2_alt:4604811,chr8_KI270926v1_alt:229282,chr11_KI270927v1_alt:218612,chr19_GL949748v2_alt:1064304,chr22_KI270928v1_alt:176103,chr19_KI270929v1_alt:186203,chr19_KI270930v1_alt:200773,chr19_KI270931v1_alt:170148,chr19_KI270932v1_alt:215732,chr19_KI270933v1_alt:170537,chr19_GL000209v2_alt:177381,chr3_KI270934v1_alt:163458,chr6_GL000253v2_alt:4677643,chr19_GL949749v2_alt:1091841,chr3_KI270935v1_alt:197351,chr6_GL000254v2_alt:4827813,chr19_GL949750v2_alt:1066390,chr3_KI270936v1_alt:164170,chr6_GL000255v2_alt:4606388,chr19_GL949751v2_alt:1002683,chr3_KI270937v1_alt:165607,chr6_GL000256v2_alt:4929269,chr19_GL949752v1_alt:987100,chr6_KI270758v1_alt:76752,chr19_GL949753v2_alt:796479,chr19_KI270938v1_alt:1066800,chrUn_KI270302v1:2274,chrUn_KI270304v1:2165,chrUn_KI270303v1:1942,chrUn_KI270305v1:1472,chrUn_KI270322v1:21476,chrUn_KI270320v1:4416,chrUn_KI270310v1:1201,chrUn_KI270316v1:1444,chrUn_KI270315v1:2276,chrUn_KI270312v1:998,chrUn_KI270311v1:12399,chrUn_KI270317v1:37690,chrUn_KI270412v1:1179,chrUn_KI270411v1:2646,chrUn_KI270414v1:2489,chrUn_KI270419v1:1029,chrUn_KI270418v1:2145,chrUn_KI270420v1:2321,chrUn_KI270424v1:2140,chrUn_KI270417v1:2043,chrUn_KI270422v1:1445,chrUn_KI270423v1:981,chrUn_KI270425v1:1884,chrUn_KI270429v1:1361,chrUn_KI270442v1:392061,chrUn_KI270466v1:1233,chrUn_KI270465v1:1774,chrUn_KI270467v1:3920,chrUn_KI270435v1:92983,chrUn_KI270438v1:112505,chrUn_KI270468v1:4055,chrUn_KI270510v1:2415,chrUn_KI270509v1:2318,chrUn_KI270518v1:2186,chrUn_KI270508v1:1951,chrUn_KI270516v1:1300,chrUn_KI270512v1:22689,chrUn_KI270519v1:138126,chrUn_KI270522v1:5674,chrUn_KI270511v1:8127,chrUn_KI270515v1:6361,chrUn_KI270507v1:5353,chrUn_KI270517v1:3253,chrUn_KI270529v1:1899,chrUn_KI270528v1:2983,chrUn_KI270530v1:2168,chrUn_KI270539v1:993,chrUn_KI270538v1:91309,chrUn_KI270544v1:1202,chrUn_KI270548v1:1599,chrUn_KI270583v1:1400,chrUn_KI270587v1:2969,chrUn_KI270580v1:1553,chrUn_KI270581v1:7046,chrUn_KI270579v1:31033,chrUn_KI270589v1:44474,chrUn_KI270590v1:4685,chrUn_KI270584v1:4513,chrUn_KI270582v1:6504,chrUn_KI270588v1:6158,chrUn_KI270593v1:3041,chrUn_KI270591v1:5796,chrUn_KI270330v1:1652,chrUn_KI270329v1:1040,chrUn_KI270334v1:1368,chrUn_KI270333v1:2699,chrUn_KI270335v1:1048,chrUn_KI270338v1:1428,chrUn_KI270340v1:1428,chrUn_KI270336v1:1026,chrUn_KI270337v1:1121,chrUn_KI270363v1:1803,chrUn_KI270364v1:2855,chrUn_KI270362v1:3530,chrUn_KI270366v1:8320,chrUn_KI270378v1:1048,chrUn_KI270379v1:1045,chrUn_KI270389v1:1298,chrUn_KI270390v1:2387,chrUn_KI270387v1:1537,chrUn_KI270395v1:1143,chrUn_KI270396v1:1880,chrUn_KI270388v1:1216,chrUn_KI270394v1:970,chrUn_KI270386v1:1788,chrUn_KI270391v1:1484,chrUn_KI270383v1:1750,chrUn_KI270393v1:1308,chrUn_KI270384v1:1658,chrUn_KI270392v1:971,chrUn_KI270381v1:1930,chrUn_KI270385v1:990,chrUn_KI270382v1:4215,chrUn_KI270376v1:1136,chrUn_KI270374v1:2656,chrUn_KI270372v1:1650,chrUn_KI270373v1:1451,chrUn_KI270375v1:2378,chrUn_KI270371v1:2805,chrUn_KI270448v1:7992,chrUn_KI270521v1:7642,chrUn_GL000195v1:182896,chrUn_GL000219v1:179198,chrUn_GL000220v1:161802,chrUn_GL000224v1:179693,chrUn_KI270741v1:157432,chrUn_GL000226v1:15008,chrUn_GL000213v1:164239,chrUn_KI270743v1:210658,chrUn_KI270744v1:168472,chrUn_KI270745v1:41891,chrUn_KI270746v1:66486,chrUn_KI270747v1:198735,chrUn_KI270748v1:93321,chrUn_KI270749v1:158759,chrUn_KI270750v1:148850,chrUn_KI270751v1:150742,chrUn_KI270752v1:27745,chrUn_KI270753v1:62944,chrUn_KI270754v1:40191,chrUn_KI270755v1:36723,chrUn_KI270756v1:79590,chrUn_KI270757v1:71251,chrUn_GL000214v1:137718,chrUn_KI270742v1:186739,chrUn_GL000216v2:176608,chrUn_GL000218v1:161147,chrY_KI270740v1_random:37240};class dC{constructor(A){var g,I;this.allFeaturesLoaded=!1,this.url=u(A.url),this.fetchImpl=A.fetchImpl;const t=null!==(g=A.format)&&void 0!==g?g:eC(A.url);if(this.format=null!=t?t:"bed",this.assembleGFF=!1!==A.assembleGFF,void 0!==A.indexed?this._indexed=A.indexed:A.indexURL?this._indexed=!0:this._indexed=BC(A.url),this._indexed){const g=u(null!==(I=A.indexURL)&&void 0!==I?I:QC(A.url));this.tabixReader=new Be(this.url,{indexUrl:g,fetchImpl:A.fetchImpl})}}get indexed(){return this._indexed}setChromNameResolver(A){this._resolveChromName=A}setCumulativeOffsets(A){this._cumulativeOffsets=A}async getSequenceNames(A){return this.tabixReader?this.tabixReader.getSequenceNames(A):this.featureCache?Object.keys(this.featureCache.getAllFeatures()):[]}async fetch(A,g,I){if(og(A)&&this._cumulativeOffsets)return this.fetchWG(I);const t=this._resolveChromName?this._resolveChromName(A.chr):A.chr;return this._indexed&&this.tabixReader?this.fetchIndexed(t,A.start,A.end,I):this.fetchNonIndexed(t,A.start,A.end,I)}async fetchIndexed(A,g,I,t){const e=this.tabixReader;if(!this.header){const A=await e.readHeaderLines(t);this.header=ze(A,this.format)}const C=je(await e.readLines(A,g,I,t),this.format,{header:this.header,assembleGFF:this.assembleGFF});return C.sort((A,g)=>A.start-g.start),C}async fetchNonIndexed(A,g,I,t){var e,C;return this.allFeaturesLoaded||await this.loadAllFeatures(t),null!==(C=null===(e=this.featureCache)||void 0===e?void 0:e.queryFeatures(A,g,I))&&void 0!==C?C:[]}async loadAllFeatures(A){var g;const I=null!==(g=this.fetchImpl)&&void 0!==g?g:globalThis.fetch;let t,e;try{t=await I(this.url,{signal:A,mode:"cors"})}catch(g){if(!`${g}`.includes("Failed to fetch"))throw g;t=await I(this.url,{signal:A,mode:"cors",cache:"reload"})}if(!t.ok)throw new Error(`Failed to fetch ${this.url}: ${t.status} ${t.statusText}`);const C=this.url.toLowerCase(),i=C.endsWith(".gz")||C.endsWith(".bgz")||C.includes(".gz?")||C.includes(".bgz?"),B=t.headers.get("Content-Encoding");if(i&&!("gzip"===B||"deflate"===B)){const A=await t.arrayBuffer();try{const g=new DecompressionStream("gzip"),I=new Response(new Blob([A]).stream().pipeThrough(g));e=await I.text()}catch(g){e=(new TextDecoder).decode(A)}}else e=await t.text();if(null==A?void 0:A.aborted)return;const Q=e.split(/\r?\n/);this.header=ze(Q,this.format);const o=je(Q,this.format,{header:this.header,assembleGFF:this.assembleGFF});o.sort((A,g)=>A.chr===g.chr?A.start-g.start:A.chr.localeCompare(g.chr)),this.featureCache=new rI(o),this.allFeaturesLoaded=!0}async fetchWG(A){var g,I;if(A.aborted)return[];const t=this._cumulativeOffsets;if(!t)throw new Error("fetchWG called without cumulativeOffsets");if(this._indexed){const g=aC(Object.fromEntries(t.chromosomeNames.map(A=>{var g;return[A,null!==(g=t.offsets[A])&&void 0!==g?g:0]})));return hg(await ng(g,g=>this.fetchIndexed(g,0,Number.MAX_SAFE_INTEGER,A),A),t)}{this.allFeaturesLoaded||await this.loadAllFeatures(A);const e=null!==(I=null===(g=this.featureCache)||void 0===g?void 0:g.getAllFeatures())&&void 0!==I?I:{},C=[];for(const A of Object.values(e))C.push(...A);return hg(C,t)}}dispose(){this.tabixReader=void 0,this.featureCache=void 0,this.allFeaturesLoaded=!1}}function DC(A){if(!(A.oauthToken||A.basicAuth||A.headers||A.withCredentials))return;return B(new C({oauthToken:A.oauthToken,basicAuth:A.basicAuth,headers:A.headers,withCredentials:A.withCredentials}))}class uC{constructor(){this.dsInstances=new Map}async execute(A){return this.dispatch(A)}async dispatch(A){switch(A.task){case"pack":{const{packFeatures:g}=await Promise.resolve().then(function(){return KC}),I=[...A.features];return g(I,A.maxRows),I}case"summarize":{const{summarizeWigData:g}=await Promise.resolve().then(function(){return Qg});return g(A.features,A.startBP,A.bpPerPixel,A.windowFunction)}case"computeWigRange":{const{computeWigDataRange:g}=await Promise.resolve().then(function(){return Qg});return g(A.features)}case"parseFeatures":{const{parseFeatures:g}=await Promise.resolve().then(function(){return IC});return g(A.lines,A.format,{header:A.header,assembleGFF:A.assembleGFF})}case"aggregateWigGroup":{const{aggregateWigFeatures:g}=await Promise.resolve().then(function(){return FQ});return g(A.featureArrays,A.startBP,A.bpPerPixel)}default:throw new Error(`Unknown worker task: ${A.task}`)}}create(A,g){const I=function(A,g){var I,t;switch(A.type){case"bigwig":{const t=null!=g?g:DC(A);return new cg(A.url,null!==(I=A.windowFunction)&&void 0!==I?I:"mean",t)}case"gtx":{const I=null!=g?g:DC(A);return new Tg(A.url,A.experimentId,null!==(t=A.windowFunction)&&void 0!==t?t:"mean",I)}case"ucsc":return new II({genome:A.genome,track:A.track});case"text":{const I=null!=g?g:DC(A);return new dC({url:A.url,format:A.format,indexURL:A.indexURL,indexed:A.indexed,fetchImpl:I})}case"memory":throw new Error("MemoryDataSource cannot be created via provider — use MemoryDataSource directly");default:throw new Error(`Unknown DataSourceConfig type: ${A.type}`)}}(g);this.dsInstances.set(A,I)}async fetch(A,g,I,t){const e=this.dsInstances.get(A);if(!e)throw new Error(`DataSource not found: ${A}`);return e.fetch(g,I,t)}configure(A,g,...I){const t=this.dsInstances.get(A);t&&function(A,g,...I){const t=A[g];"function"==typeof t&&t.call(A,...I)}(t,g,...I)}destroy(A){var g;const I=this.dsInstances.get(A);null===(g=null==I?void 0:I.dispose)||void 0===g||g.call(I),this.dsInstances.delete(A)}dispose(){var A;for(const g of this.dsInstances.values())null===(A=g.dispose)||void 0===A||A.call(g);this.dsInstances.clear()}}const wC=new uC,yC=3e4;class fC extends Error{constructor(A,g){super(`Worker task '${A}' timed out after ${g}ms`),this.name="TaskTimeoutError"}}function SC(A,g,I){return g<=0?A:new Promise((t,e)=>{const C=setTimeout(()=>e(new fC(I,g)),g);A.then(A=>{clearTimeout(C),t(A)},A=>{clearTimeout(C),e(A)})})}function kC(A){const g=new Error(A.message);return g.name=A.name,A.stack&&(g.stack=A.stack),g}class GC{constructor(A,g){this.provider=A,this.instanceId=g}async fetch(A,g,I){const t=this.resolver?{...A,chr:this.resolver(A.chr)}:A;return this.provider.fetch(this.instanceId,t,g,I)}setChromNameResolver(A){this.resolver=A}setCumulativeOffsets(A){this.provider.configure(this.instanceId,"setCumulativeOffsets",A)}setWindowFunction(A){this.provider.configure(this.instanceId,"setWindowFunction",A)}}const FC={debug:0,info:1,warn:2,error:3,silent:4};let NC="warn";const mC={debug(...A){FC[NC]<=0&&console.debug("[loom]",...A)},info(...A){FC[NC]<=1&&console.info("[loom]",...A)},warn(...A){FC[NC]<=2&&console.warn("[loom]",...A)},error(...A){FC[NC]<=3&&console.error("[loom]",...A)}};class pC{constructor(A){var g,I;this.nextId=0,this.nextWorker=0,this.pending=new Map,this.instanceToWorker=new Map,this.pendingFetches=new Map,this.nextFetchId=0,this.taskTimeoutMs=null!==(g=A.taskTimeoutMs)&&void 0!==g?g:yC,this.authProvider=A.authProvider;const t=Math.max(1,null!==(I=A.poolSize)&&void 0!==I?I:1);let e;if(A.workerFactory)e=A.workerFactory;else{if(!A.workerUrl)throw new Error("WebWorkerPoolOptions requires either workerUrl or workerFactory");{const g=A.workerUrl;e=()=>new Worker(g,{type:"module"})}}this.workers=[],this.readyPromises=[];for(let A=0;A<t;A++){const A=e();let g;const I=new Promise((I,t)=>{g=t;A.addEventListener("message",A=>{"ready"===A.data.type&&I()},{once:!0})});I.catch(()=>{}),this.readyPromises.push(I),A.onmessage=g=>{const I=g.data;if("ready"!==I.type)if("taskResult"===I.type){const A=this.pending.get(I.id);A&&(this.pending.delete(I.id),I.error?A.reject(kC(I.error)):A.resolve(I.result))}else if("fetchResult"===I.type){const A=this.pendingFetches.get(I.fetchId);A&&(this.pendingFetches.delete(I.fetchId),A.resolve(I.features))}else if("fetchError"===I.type){const A=this.pendingFetches.get(I.fetchId);A&&(this.pendingFetches.delete(I.fetchId),"AbortError"===I.error?A.reject(new DOMException("Aborted","AbortError")):A.reject(new Error(I.error)))}else"auth-challenge"===I.type&&this.handleAuthChallenge(A,I.challengeId,I.url)},A.onerror=A=>{const I=new Error(`Worker error: ${A.message}`);g(I);for(const{reject:A}of this.pending.values())A(I);this.pending.clear();for(const{reject:A}of this.pendingFetches.values())A(I);this.pendingFetches.clear()},this.workers.push(A)}}get poolSize(){return this.workers.length}execute(A,g){const I=this.nextId++,t=this.workers[this.nextWorker%this.workers.length];this.nextWorker++;return SC(new Promise((e,C)=>{this.pending.set(I,{resolve:e,reject:C}),t.postMessage({type:"task",id:I,task:A},null!=g?g:[])}),this.taskTimeoutMs,A.task)}create(A,g){const I=this.routeToWorker(g);this.instanceToWorker.set(A,I);const t=this.workers[I];this.readyPromises[I].then(()=>{t.postMessage({type:"create",instanceId:A,config:g})})}async fetch(A,g,I,t){const e=this.instanceToWorker.get(A);if(void 0===e)throw new Error(`No worker assigned for DataSource: ${A}`);await this.readyPromises[e];const C=this.nextFetchId++,i=this.workers[e],B=()=>{i.postMessage({type:"cancel",fetchId:C});const A=this.pendingFetches.get(C);A&&(this.pendingFetches.delete(C),A.reject(new DOMException("Aborted","AbortError")))};if(t.addEventListener("abort",B,{once:!0}),t.aborted)throw t.removeEventListener("abort",B),new DOMException("Aborted","AbortError");try{return await new Promise((t,e)=>{this.pendingFetches.set(C,{resolve:t,reject:e}),i.postMessage({type:"fetch",instanceId:A,fetchId:C,locus:g,bpPerPixel:I})})}finally{t.removeEventListener("abort",B)}}configure(A,g,...I){const t=this.instanceToWorker.get(A);if(void 0===t)return;const e=this.workers[t];this.readyPromises[t].then(()=>{e.postMessage({type:"configure",instanceId:A,method:g,args:I})})}destroy(A){const g=this.instanceToWorker.get(A);if(void 0===g)return;this.workers[g].postMessage({type:"destroy",instanceId:A}),this.instanceToWorker.delete(A)}dispose(){for(const A of this.workers)A.terminate();for(const{reject:A}of this.pending.values())A(new Error("Worker terminated"));this.pending.clear();for(const{reject:A}of this.pendingFetches.values())A(new Error("Worker terminated"));this.pendingFetches.clear(),this.instanceToWorker.clear(),this.readyPromises=[],this.workers=[]}handleAuthChallenge(A,g,I){this.authProvider?this.authProvider.getCredentials(I).then(I=>{var t,e;A.postMessage({type:"auth-refresh",challengeId:g,credentials:I?{oauthToken:null===(e=null===(t=I.headers)||void 0===t?void 0:t.Authorization)||void 0===e?void 0:e.replace(/^Bearer\s+/i,""),headers:I.headers,withCredentials:I.withCredentials}:void 0})}).catch(I=>{mC.error("Auth challenge resolution failed:",I),A.postMessage({type:"auth-refresh",challengeId:g,credentials:void 0})}):A.postMessage({type:"auth-refresh",challengeId:g,credentials:void 0})}routeToWorker(A){const g="url"in A?A.url:A.type;return Math.abs(function(A){let g=5381;for(let I=0;I<A.length;I++)g=(g<<5)+g+A.charCodeAt(I)|0;return g}(g))%this.workers.length}}const RC={chr:"",start:0,end:0};class UC{get canvas(){return this._canvas}get locus(){return this._locus}get height(){return this._height}get config(){return this._config}get viewportWidth(){return this._viewportWidth||this._canvas.clientWidth}get currentPixelShiftOffset(){return this._pixelShift}getBaseCanvasOffset(){return this._overscanMultiplier>1?-this._viewportWidth*((this._overscanMultiplier-1)/2):0}getCanvasViewportOffset(){return this.getBaseCanvasOffset()+this._pixelShift}viewportXToGenomicBp(A){if(0===this._renderBpPerPixel)return 0;const g=this.getCanvasViewportOffset();return this._renderBpStart+(A-g)*this._renderBpPerPixel}genomicBpToViewportX(A){if(0===this._renderBpPerPixel)return 0;const g=this.getCanvasViewportOffset();return(A-this._renderBpStart)/this._renderBpPerPixel+g}constructor(A,g,I,t){this._height=0,this.resizeObserver=null,this.container=null,this._renderSuspended=!1,this._renderPending=!1,this._error=null,this._zoomedOut=!1,this._externalUIEnabled=!1,this._overscanMultiplier=1,this._renderBpStart=0,this._renderBpPerPixel=0,this._renderChr="",this._viewportWidth=0,this._pixelShift=0,this._canvas=A,this._locus=null!=g?g:RC,this._config=I,this.canvasProvider=null!=t?t:S}setLocus(A){this._locus=A,this.render()}setLocusSilent(A){this._locus=A}setConfig(A){var g,I;null===(g=this.onBeforeConfigChange)||void 0===g||g.call(this),this._config={...this._config,...A},this.render(),null===(I=this.onConfigChanged)||void 0===I||I.call(this)}suspendRendering(){this._renderSuspended=!0}discardPendingRender(){this._renderPending=!1}resumeRendering(){this._renderSuspended=!1,this._renderPending&&(this._renderPending=!1,this.render())}setOverscanMultiplier(A){this._overscanMultiplier=Math.max(1,A)}get overscanMultiplier(){return this._overscanMultiplier}computePixelShift(A){if(this._renderChr!==A.chr)return null;if(0===this._renderBpPerPixel)return null;const g=(A.end-A.start)/this._viewportWidth;if(Math.abs(this._renderBpPerPixel-g)>1e-10*this._renderBpPerPixel)return null;return(this._renderBpStart-A.start)/this._renderBpPerPixel+this._viewportWidth*((this._overscanMultiplier-1)/2)}needsRepaint(A){if(this._renderChr!==A.chr)return!0;if(0===this._renderBpPerPixel)return!0;const g=(A.end-A.start)/this._viewportWidth;if(Math.abs(this._renderBpPerPixel-g)>1e-10*this._renderBpPerPixel)return!0;const I=this._renderBpStart+this._renderBpPerPixel*(this._viewportWidth*this._overscanMultiplier);return A.start<this._renderBpStart||A.end>I}applyPixelShift(A){this._pixelShift=A,this._canvas.style.transform=`translate3d(${A}px, 0, 0)`}resetPixelShift(){this.applyPixelShift(0)}setError(A){this._error!==A&&(this._error=A,this.render())}setZoomedOut(A){this._zoomedOut!==A&&(this._zoomedOut=A,this.render())}hitTest(A,g){return[]}onCanvasClick(A,g){return!1}getUIOverlayState(){}onUIOverlayClick(A){return!1}setExternalUIEnabled(A){this._externalUIEnabled=A}get externalUIEnabled(){return this._externalUIEnabled}getFeatureRects(){return[]}getContextMenuItems(A,g){}attachTo(A){this.detach(),this.container=A,A.appendChild(this._canvas),this._canvas.style.display="block",this.resizeObserver=new ResizeObserver(()=>this.render()),this.resizeObserver.observe(A),this.render()}detach(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),this.container&&this._canvas.parentNode===this.container&&this.container.removeChild(this._canvas),this.container=null}render(){var A,g;if(this._renderSuspended)return void(this._renderPending=!0);const I=(null===(A=this.container)||void 0===A?void 0:A.clientWidth)||(null===(g=this._canvas.parentElement)||void 0===g?void 0:g.clientWidth)||this._viewportWidth||this._canvas.clientWidth;if(0===I)return;const t=this._overscanMultiplier,e=I*t;this._viewportWidth=I;const C=this.computeHeight(I);this._height=C;const i=this.canvasProvider.devicePixelRatio;this._canvas.width=e*i,this._canvas.height=C*i,this._canvas.style.width=`${e}px`,this._canvas.style.height=`${C}px`,t>1?(this._canvas.style.position="relative",this._canvas.style.willChange="transform"):(this._canvas.style.position="",this._canvas.style.willChange=""),this._canvas.style.left=`${this.getBaseCanvasOffset()}px`,this.resetPixelShift();const B=this._canvas.getContext("2d");if(B.scale(i,i),B.fillStyle=this.getBackground(),B.fillRect(0,0,e,C),this._error)return this.renderError(B,I,C),this.renderLabelOverlay(B,I,C),void this._recordRenderMetadata(I);if(this._zoomedOut)return this.renderZoomInNotice(B,I,C),this.renderLabelOverlay(B,I,C),void this._recordRenderMetadata(I);if(this._locus===RC)return this.renderNoLocusNotice(B,I,C),this._renderBpPerPixel=0,void(this._renderChr="");const Q=(this._locus.end-this._locus.start)/I,o=I*Q*((t-1)/2),s=this._locus.start-o,E={pixelWidth:e,bpStart:s,bpPerPixel:Q,viewportWidth:I};this.doRender(B,e,C,E),this._renderBpStart=s,this._renderBpPerPixel=Q,this._renderChr=this._locus.chr}_recordRenderMetadata(A){if(this._locus!==RC){const g=(this._locus.end-this._locus.start)/A,I=A*g*((this._overscanMultiplier-1)/2);this._renderBpPerPixel=g,this._renderBpStart=this._locus.start-I,this._renderChr=this._locus.chr}}renderError(A,g,I){A.font="12px sans-serif",A.fillStyle="rgb(180, 0, 0)",A.textAlign="center",A.textBaseline="middle",A.fillText("Error loading track data",g/2,I/2)}renderZoomInNotice(A,g,I){A.font="12px sans-serif",A.fillStyle="rgb(120, 120, 120)",A.textAlign="center",A.textBaseline="middle",A.fillText("Zoom in to see features",g/2,I/2)}renderNoLocusNotice(A,g,I){A.font="12px sans-serif",A.fillStyle="rgb(120, 120, 120)",A.textAlign="center",A.textBaseline="middle",A.fillText("No locus set",g/2,I/2)}renderLabelOverlay(A,g,I){}renderToContext(A,g,I,t){var e;if((null==t?void 0:t.skipBackground)||(A.fillStyle=this.getBackground(),A.fillRect(0,0,g,I)),this._error)return this.renderError(A,g,I),void this.renderLabelOverlay(A,g,I);if(this._zoomedOut)return this.renderZoomInNotice(A,g,I),void this.renderLabelOverlay(A,g,I);if(this._locus===RC)return void this.renderNoLocusNotice(A,g,I);const C=null!==(e=null==t?void 0:t.rc)&&void 0!==e?e:{pixelWidth:g,bpStart:this._locus.start,bpPerPixel:(this._locus.end-this._locus.start)/g,viewportWidth:g};this.doRender(A,g,I,C),this._renderBpStart=C.bpStart,this._renderBpPerPixel=C.bpPerPixel,this._viewportWidth=C.viewportWidth,this._renderChr=this._locus.chr}}function MC(A,g,I){var t,e;if(I<12)return;A.font="normal 10px sans-serif",A.textBaseline="top",A.textAlign="left";const C=4+(null!==(t=g.topOffset)&&void 0!==t?t:0),i=A.measureText(g.name),B=i.width+8,Q=(null!==(e=i.actualBoundingBoxDescent)&&void 0!==e?e:10)+4;A.fillStyle=g.background,A.globalAlpha=.75,A.fillRect(4,C,B,Q),A.globalAlpha=1,A.strokeStyle=g.labelColor,A.globalAlpha=.3,A.lineWidth=.5,A.strokeRect(4,C,B,Q),A.globalAlpha=1,A.fillStyle=g.labelColor,A.fillText(g.name,8,C+2)}function LC(A){return"setZoomedOut"in A&&"function"==typeof A.setZoomedOut}function JC(A,g){const I=null!=g?g:Number.MAX_SAFE_INTEGER,t=[-1e3];A.sort((A,g)=>A.start-g.start);for(const g of A){const A=Math.min(t.length,I);let e=0;for(e=0;e<A&&!(g.start>=t[e]);e++);g.row=e,t[e]=g.end}return 0===A.length?0:t.length-1}var KC=Object.freeze({__proto__:null,packFeatures:JC});function bC(A,g){let I=0,t=A.length;for(;I<t;){const e=I+t>>>1;A[e].end<g?I=e+1:t=e}return I}function vC(A,g){let I=0,t=A.length;for(;I<t;){const e=I+t>>>1;A[e].start<=g?I=e+1:t=e}return I}function YC(A,g,I,t,e,C){var i,B,Q;const o=null!==(i=C.borderRadius)&&void 0!==i?i:0;o>0&&t>2*o&&e>2*o?(A.beginPath(),A.roundRect(g,I,t,e,o),A.fill(),C.borderColor&&(null!==(B=C.borderWidth)&&void 0!==B?B:0)>0&&(A.strokeStyle=C.borderColor,A.lineWidth=C.borderWidth,A.stroke())):(A.fillRect(g,I,t,e),C.borderColor&&(null!==(Q=C.borderWidth)&&void 0!==Q?Q:0)>0&&(A.strokeStyle=C.borderColor,A.lineWidth=C.borderWidth,A.strokeRect(g,I,t,e)))}function xC(A,g,I,t,e,C){var i,B,Q,o;A.save();try{const s=qC(g,I),E=function(A,g){var I,t,e;if("-"===A.strand)return null!==(t=null!==(I=g.altUtrColor)&&void 0!==I?I:g.utrColor)&&void 0!==t?t:qC(A,g);return null!==(e=g.utrColor)&&void 0!==e?e:g.color}(g,I);let a,r;A.fillStyle=s,A.strokeStyle=s,"SQUISHED"===I.displayMode&&void 0!==g.row?(a=I.featureHeight/2,r=I.margin+I.squishedRowHeight*g.row):"EXPANDED"===I.displayMode&&void 0!==g.row?(a=I.featureHeight,r=I.margin+I.expandedRowHeight*g.row):(a=I.featureHeight,r=I.margin);const n=r+a/2,h=a/2,c=n-h/2,l=g.exons?g.exons.length:0,d=function(A,g,I){let t=(A.start-g)/I,e=(A.end-g)/I,C=e-t;return C<3&&(C=3,t-=1.5),{px:t,px1:e,pw:C}}(g,t.bpStart,t.bpPerPixel),D=I.arrowSpacing,u="+"===g.strand?1:"-"===g.strand?-1:0,w=null!==(i=I.arrowColor)&&void 0!==i?i:s,y=null!==(B=I.arrowInExonColor)&&void 0!==B?B:"white";if(0===l){const g=Math.max(0,d.px),e=Math.min(t.pixelWidth,d.px1),C=e-g;if(A.fillStyle=s,YC(A,g,r,C,a,I),0!==u){A.strokeStyle=y;for(let I=g+D/2;I<e;I+=D)HC(A,I,n,u)}}else{A.save(),A.strokeStyle=null!==(Q=I.intronColor)&&void 0!==Q?Q:s,A.lineWidth=null!==(o=I.intronLineWidth)&&void 0!==o?o:1,I.intronDash&&I.intronDash.length>0&&A.setLineDash(I.intronDash),A.beginPath(),A.moveTo(d.px+1,n),A.lineTo(d.px1-1,n),A.stroke(),A.restore(),A.strokeStyle=w;const e=Math.max(0,d.px)+D/2,C=Math.min(t.pixelWidth,d.px1);for(let g=e;g<C;g+=D)HC(A,g,n,u);for(const e of g.exons){let g=Math.round((e.start-t.bpStart)/t.bpPerPixel),C=Math.round((e.end-t.bpStart)/t.bpPerPixel),i=Math.max(1,C-g);if(!(g+i<0)){if(g>t.pixelWidth)break;if(e.utr)A.fillStyle=E,YC(A,g,c,i,h,I);else{if(e.cdStart){const C=Math.round((e.cdStart-t.bpStart)/t.bpPerPixel);A.fillStyle=E,YC(A,g,c,C-g,h,I),i-=C-g,g=C}if(e.cdEnd){const g=Math.round((e.cdEnd-t.bpStart)/t.bpPerPixel);A.fillStyle=E,YC(A,g,c,C-g,h,I),i-=C-g,C=g}if(i=Math.max(i,1),A.fillStyle=s,YC(A,g,r,i,a,I),i>D+5&&0!==u){A.strokeStyle=y;for(let I=g+D/2;I<C;I+=D)HC(A,I,n,u)}}}}}C&&"SQUISHED"!==I.displayMode&&d.pw>=10&&function(A,g,I,t,e,C,i,B){var Q,o,s,E;const a=function(A,g){const I={name:A.name,id:A.id,chr:A.chr},t=I[g];return void 0!==t?t:A.id}(g,C.labelField);if(!a||"."===a)return;A.save();try{A.font=null!==(Q=C.labelFont)&&void 0!==Q?Q:C.font;const r=(i.pixelWidth-i.viewportWidth)/2,n=r+i.viewportWidth,h=Math.max(I,r),c=Math.min(t,n);if(h>=c)return;const l=(h+c)/2,d="COLLAPSED"===C.displayMode&&"SLANT"===C.labelDisplayMode,D=d?e+20:e+25;A.fillStyle=null!==(o=C.labelColor)&&void 0!==o?o:qC(g,C);const u=A.measureText(a),w=l-u.width/2,y=l+u.width/2;if(w>(null!==(s=B[g.row])&&void 0!==s?s:-Number.MAX_SAFE_INTEGER)){B[g.row]=y;const I=l-u.width/2-1,t=D-u.actualBoundingBoxAscent-1,e=u.width+2,i=u.actualBoundingBoxAscent+u.actualBoundingBoxDescent+2;C.labelBackground?(A.fillStyle=C.labelBackground,A.fillRect(I,t,e,i),A.fillStyle=null!==(E=C.labelColor)&&void 0!==E?E:qC(g,C)):A.clearRect(I,t,e,i),d?(A.save(),A.translate(l,D),A.rotate(Math.PI/4),A.fillText(a,0,0),A.restore()):(A.textAlign="center",A.fillText(a,l,D))}}finally{A.restore()}}(A,g,d.px,d.px1,r,I,t,e)}finally{A.restore()}}function HC(A,g,I,t){A.beginPath(),A.moveTo(g-2*t,I-2),A.lineTo(g,I),A.stroke(),A.beginPath(),A.moveTo(g-2*t,I+2),A.lineTo(g,I),A.stroke()}function qC(A,g){return A.color?A.color:g.altColor&&"-"===A.strand?g.altColor:g.color}function _C(A,g,I,t,e,C){var i,B;const Q={},o=[],s=t.bpStart+t.pixelWidth*t.bpPerPixel,E=[];for(let A=0;A<g.length;A++){const e=g[A];if(e.start>s)break;if(void 0!==e.row&&(e.start>=t.bpStart&&e.end<=s)){const A="COLLAPSED"===I.displayMode?0:e.row;E[A]=(null!==(i=E[A])&&void 0!==i?i:0)+1}}const a=0===E.length?0:Math.max(...E.filter(A=>void 0!==A)),r=a>0?t.pixelWidth/a:1/0,n=I.drawLabels&&r>10,h=vC(g,s);for(let e=0;e<h;e++){const i=g[e];if(i.end<t.bpStart)continue;if(void 0===i.row)continue;const B="COLLAPSED"===I.displayMode?0:i.row,s=Math.ceil((i.end-t.bpStart)/t.bpPerPixel),E=o[B];if(!(void 0!==E&&s<=E)){if(void 0!==E&&void 0!==C){const g=Math.floor((i.start-t.bpStart)/t.bpPerPixel);g-E<=0&&(A.save(),A.globalAlpha=.5,A.strokeStyle=I.background,A.lineWidth=1,A.beginPath(),A.moveTo(g,0),A.lineTo(g,C),A.stroke(),A.globalAlpha=1,A.restore())}o[B]=s,xC(A,i,I,t,Q,n)}}e&&MC(A,e,A.canvas.height/(null!==(B=globalThis.devicePixelRatio)&&void 0!==B?B:1))}const TC={background:"--loom-background",foreground:"--loom-foreground",primary:"--loom-primary",secondary:"--loom-secondary",accent:"--loom-accent",muted:"--loom-muted",mutedForeground:"--loom-muted-foreground",border:"--loom-border-color",shellBg:"--loom-shell-bg",navbarBg:"--loom-navbar-bg",navbarHeight:"--loom-navbar-height",navbarPadding:"--loom-navbar-padding",font:"--loom-font",fontSmall:"--loom-font-small",textColor:"--loom-text-color",textMuted:"--loom-text-muted",borderStyle:"--loom-border",borderRadius:"--loom-border-radius",buttonBg:"--loom-button-bg",buttonHover:"--loom-button-hover",buttonBorder:"--loom-button-border",buttonSize:"--loom-button-size",inputBg:"--loom-input-bg",inputBorder:"--loom-input-border",inputFocusBorder:"--loom-input-focus-border",inputWidth:"--loom-input-width",inputHeight:"--loom-input-height",iconColor:"--loom-icon-color",iconSize:"--loom-icon-size",gap:"--loom-gap"},WC={navbarBg:"#f3f3f3",navbarHeight:"32px",navbarPadding:"0 8px",font:"12px Arial, sans-serif",fontSmall:"11px Arial, sans-serif",textColor:"#333",textMuted:"#737373",borderStyle:"1px solid #ccc",borderRadius:"4px",buttonBg:"white",buttonHover:"#e8e8e8",buttonBorder:"1px solid #b0b0b0",buttonSize:"24px",inputBg:"white",inputBorder:"1px solid #b0b0b0",inputFocusBorder:"1px solid #4A90D9",inputWidth:"220px",inputHeight:"22px",accent:"#4A90D9",iconColor:"#555",iconSize:"14px",gap:"8px"},PC={navbarBg:"#fafbfc",navbarHeight:"40px",navbarPadding:"0 12px",font:"13px Inter, system-ui, -apple-system, sans-serif",fontSmall:"11px Inter, system-ui, -apple-system, sans-serif",textColor:"#1a1a1a",textMuted:"#6b7280",borderStyle:"1px solid rgba(0, 0, 0, 0.08)",borderRadius:"8px",buttonBg:"white",buttonHover:"#f0f4ff",buttonBorder:"1px solid rgba(0, 0, 0, 0.1)",buttonSize:"28px",inputBg:"white",inputBorder:"1px solid rgba(0, 0, 0, 0.12)",inputFocusBorder:"1px solid #4A90D9",inputWidth:"260px",inputHeight:"28px",accent:"#4A90D9",iconColor:"#6b7280",iconSize:"16px",gap:"10px"},OC={shellBg:"#16162a",navbarBg:"#1a1a2e",navbarHeight:"36px",navbarPadding:"0 10px",font:"12px Arial, sans-serif",fontSmall:"11px Arial, sans-serif",textColor:"#e0e0e0",textMuted:"#888",borderStyle:"1px solid #333",borderRadius:"4px",buttonBg:"#2a2a3e",buttonHover:"#3a3a50",buttonBorder:"1px solid #444",buttonSize:"24px",inputBg:"#2a2a3e",inputBorder:"1px solid #444",inputFocusBorder:"1px solid #6a9fd9",inputWidth:"220px",inputHeight:"22px",accent:"#6a9fd9",iconColor:"#b0b0b0",iconSize:"14px",gap:"8px"};function VC(A){const g=[];for(const[I,t]of Object.entries(A)){if(void 0===t)continue;const A=TC[I];A&&g.push(` ${A}: ${t};`)}return`:host {\n${g.join("\n")}\n}`}function ZC(){return{palette:{primary:"rgb(0,0,150)",secondary:"rgb(0,0,150)",accent:"#4A90D9",background:"#ffffff",foreground:"#333333",muted:"rgb(150, 150, 150)"},fontFamily:"sans-serif",fontSize:10,nucleotideColors:{A:"#00C000",C:"#0000FF",G:"#FFB300",T:"#FF0000",N:"#808080"}}}function zC(A){var g,I;const t={palette:{primary:"rgb(0,0,150)",secondary:"rgb(0,0,150)",accent:"#4A90D9",background:"#ffffff",foreground:"#333333",muted:"rgb(150, 150, 150)"},fontFamily:"sans-serif",fontSize:10,nucleotideColors:{A:"#00C000",C:"#0000FF",G:"#FFB300",T:"#FF0000",N:"#808080"}};return A?{palette:{...t.palette,...A.palette},fontFamily:null!==(g=A.fontFamily)&&void 0!==g?g:t.fontFamily,fontSize:null!==(I=A.fontSize)&&void 0!==I?I:t.fontSize,nucleotideColors:{...t.nucleotideColors,...A.nucleotideColors},annotation:A.annotation,wig:A.wig,ruler:A.ruler,sequence:A.sequence,interaction:A.interaction,peakOverlay:A.peakOverlay,ideogram:A.ideogram}:t}function jC(A,g){const I={background:A.palette.background,displayMode:"EXPANDED",featureHeight:14,margin:10,expandedRowHeight:30,squishedRowHeight:15,arrowSpacing:30,color:A.palette.primary,altColor:A.palette.secondary,labelField:"name",font:`bold ${A.fontSize}px ${A.fontFamily}`,drawLabels:!0,intronColor:A.palette.muted,labelColor:A.palette.foreground,maxRows:1e3},t=A.annotation?{...I,...A.annotation}:I;return g?{...t,...g}:t}function XC(A,g){const I={height:50,graphType:"bar",windowFunction:"max",dataRange:{min:0,max:100},autoscale:!0,color:A.palette.primary,altColor:A.palette.secondary,flipAxis:!1,logScale:!1,baselineColor:A.palette.muted,overflowColor:"rgb(255, 32, 255)",pointSize:3,background:A.palette.background,nucleotideColors:A.nucleotideColors,showDataRange:!0,labelColor:A.palette.foreground,labelFont:`bold ${Math.max(9,A.fontSize-1)}px ${A.fontFamily}`},t=A.wig?{...I,...A.wig}:I;return g?{...t,...g}:t}function $C(A,g){const I={height:30,font:`bold ${A.fontSize}px ${A.fontFamily}`,tickColor:A.palette.muted,labelColor:A.palette.foreground,baselineColor:A.palette.muted,background:A.palette.background},t=A.ruler?{...I,...A.ruler}:I;return g?{...t,...g}:t}function Ai(A,g){const I={sequenceType:"dna",reversed:!1,frameTranslate:!1,background:A.palette.background,nucleotideColors:{...A.nucleotideColors},nonDnaColor:"rgb(0, 0, 150)",defaultHeight:25,translatedHeight:115,sequenceHeight:15,frameHeight:25,frameBorder:5,frameColor1:"rgb(160,160,160)",frameColor2:"rgb(224,224,224)",stopCodonColor:"rgb(255, 0, 0)",startCodonColor:"rgb(0, 153, 0)",useFillText:!1,frameLabelColor:"#000000",frameFont:`bold ${A.fontSize}px ${A.fontFamily}`,codonBorderRadius:0},t=A.sequence?{...I,...A.sequence}:I;return g?{...t,...g}:t}function gi(A,g){const I={height:250,arcOrientation:"UP",displayMode:"nested",showBlocks:!0,blockHeight:3,thickness:1,color:"rgb(180,25,137)",alpha:.02,logScale:!0,background:A.palette.background,font:`${Math.max(8,A.fontSize-2)}px ${A.fontFamily}`,useScore:!1,transparency:1},t=A.interaction?{...I,...A.interaction}:I;return g?{...t,...g}:t}function Ii(A,g){var I;const t={background:"transparent",display:["shaded"],color:ii(null!==(I=A.palette.accent)&&void 0!==I?I:A.palette.secondary,.15),barHeight:3,summitColor:"#ff0000",summitSize:6,visibilityWindow:75e3},e=A.peakOverlay?{...t,...A.peakOverlay}:t;return g?{...e,...g}:e}function ti(A,g){const I={height:50,alpha:.5,autoscale:!0,dataRange:{min:0,max:100},flipAxis:!1,logScale:!1,background:A.palette.background,labelColor:A.palette.foreground};return g?{...I,...g}:I}function ei(A,g){const I={height:80,activeModes:["meanSd"],lineColor:A.palette.primary,bandColor:A.palette.primary,bandAlpha:.2,badgeBackground:A.palette.accent,badgeColor:A.palette.background,autoscale:!0,dataRange:{min:0,max:100},flipAxis:!1,logScale:!1,normalizationMode:"none",normalizationPercentile:95,normalizationCenterPercentileLow:25,normalizationCenterPercentileHigh:75,labelColor:A.palette.foreground,labelFont:`bold ${Math.max(9,A.fontSize-1)}px ${A.fontFamily}`,showDataRange:!0,background:A.palette.background},t=A.wigGroup?{...I,...A.wigGroup}:I;return g?{...t,...g}:t}function Ci(A,g){const I={height:16,showBandNames:!1,centromereColor:"rgb(150, 10, 10)",bandLightColor:"rgb(230, 230, 230)",bandDarkColor:A.palette.foreground,borderColor:A.palette.muted,viewportIndicatorColor:"red",font:`${A.fontSize}px ${A.fontFamily}`,labelColor:A.palette.foreground,altLabelColor:A.palette.background,background:A.palette.background},t=A.ideogram?{...I,...A.ideogram}:I;return g?{...t,...g}:t}function ii(A,g){const I=A.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);if(I)return`rgba(${I[1]}, ${I[2]}, ${I[3]}, ${g})`;const t=A.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/);if(t){return`rgba(${parseInt(t[1],16)}, ${parseInt(t[2],16)}, ${parseInt(t[3],16)}, ${g})`}return`rgba(255, 165, 0, ${g})`}function Bi(A){const g=getComputedStyle(A),I=A=>g.getPropertyValue(A).trim()||void 0;return{primary:I(TC.primary),secondary:I(TC.secondary),accent:I(TC.accent),background:I(TC.background),foreground:I(TC.foreground),muted:I(TC.muted)}}function Qi(A,g){const I=Bi(g),t={...A.palette};for(const[A,g]of Object.entries(I))void 0!==g&&(t[A]=g);return{...A,palette:t}}function oi(A,g){const I={};let t=!1;for(const e of Object.keys(A))A[e]!==g[e]&&void 0!==A[e]&&(I[e]=A[e],t=!0);return t?I:void 0}class si extends UC{constructor(A,g){const I=jC(zC(g.theme),g.config);super(A,g.locus,I,g.canvasProvider),this._userOverrides={},this.packedFeatures=[],this.packedReady=!1,this.type="annotation",this.features=g.features,this._name=g.name,g.config&&(this._userOverrides={...g.config})}setFixedHeight(A){this.setConfig({height:A})}setFeatures(A){this.features=A,this.packedReady=!1,this.render()}computeHeight(A){var g,I;if(this.packedReady||(this.packedFeatures=this.features.map(A=>({...A})),JC(this.packedFeatures,this.config.maxRows),this.packedReady=!0),"COLLAPSED"===this.config.displayMode)return null!==(g=this.config.height)&&void 0!==g?g:2*this.config.margin+this.config.expandedRowHeight+10;const{start:t,end:e}=this._locus,C=vC(this.packedFeatures,e);let i=0;for(let A=0;A<C;A++){const g=this.packedFeatures[A];g.end<t||void 0!==g.row&&g.row>i&&(i=g.row)}const B="SQUISHED"===this.config.displayMode?this.config.squishedRowHeight:this.config.expandedRowHeight;return null!==(I=this.config.height)&&void 0!==I?I:2*this.config.margin+(i+1)*B+10}getBackground(){return this.config.background}renderLabelOverlay(A,g,I){var t;this.externalUIEnabled||this._name&&MC(A,{name:this._name,background:this.config.background,labelColor:null!==(t=this.config.labelColor)&&void 0!==t?t:"#333"},I)}doRender(A,g,I,t){var e;const C=this.config.labelBackground?this.config:{...this.config,labelBackground:this.config.background};_C(A,this.packedFeatures,C,t,this._name&&!this.externalUIEnabled?{name:this._name,background:this.config.background,labelColor:null!==(e=C.labelColor)&&void 0!==e?e:"#333"}:void 0,I)}getUIOverlayState(){var A;if(this._name)return{label:{text:this._name,background:this.config.background,color:null!==(A=this.config.labelColor)&&void 0!==A?A:"#333"}}}getContextMenuItems(A,g){return[{label:"Display mode",children:["EXPANDED","SQUISHED","COLLAPSED"].map(A=>({label:A.charAt(0)+A.slice(1).toLowerCase(),type:"checkbox",checked:this._config.displayMode===A,action:()=>this.setConfig({displayMode:A})}))}]}getFeatureRects(){var A;if(0===this.packedFeatures.length)return[];const g=this.viewportWidth;if(0===g)return[];const I=this._config,t="SQUISHED"===I.displayMode?I.squishedRowHeight:I.expandedRowHeight,e="SQUISHED"===I.displayMode?I.featureHeight/2:I.featureHeight,C=this.viewportXToGenomicBp(0),i=this.viewportXToGenomicBp(g),B=[],Q=vC(this.packedFeatures,i);for(let g=0;g<Q;g++){const i=this.packedFeatures[g];if(i.end<C)continue;if(void 0===i.row)continue;const Q=this.genomicBpToViewportX(i.start),o=this.genomicBpToViewportX(i.end),s="COLLAPSED"===I.displayMode?I.margin:I.margin+t*i.row;let E=Q,a=o-Q;a<3&&(E-=(3-a)/2,a=3);const r=null!==(A=i.color)&&void 0!==A?A:I.altColor&&"-"===i.strand?I.altColor:I.color;B.push({feature:i,x:E,y:s,width:a,height:e,color:r})}return B}hitTest(A,g){if(0===this.packedFeatures.length)return[];if(0===this.viewportWidth)return[];const I=this.viewportXToGenomicBp(A),t="SQUISHED"===this._config.displayMode?this._config.squishedRowHeight:this._config.expandedRowHeight,e=Math.floor((g-this._config.margin)/t);if(e<0)return[];const C=[],i=vC(this.packedFeatures,I);for(let A=0;A<i;A++){const g=this.packedFeatures[A];g.end<I||("COLLAPSED"!==this._config.displayMode&&g.row!==e||C.push({feature:g,popupData:Ei(g)}))}return C}setConfig(A){Object.assign(this._userOverrides,A),super.setConfig(A)}setTheme(A){this._config=jC(A,this._userOverrides),this.render()}serializeConfig(A){const g=jC(A);return{type:"annotation",config:oi(this.config,g)}}}function Ei(A){const g=[];return A.name&&g.push({name:"Name",value:A.name}),A.id&&g.push({name:"ID",value:A.id}),A.chr&&g.push({name:"Chr",value:A.chr}),g.push({name:"Start",value:A.start.toLocaleString()}),g.push({name:"End",value:A.end.toLocaleString()}),A.strand&&g.push({name:"Strand",value:A.strand}),null!=A.cdStart&&null!=A.cdEnd&&A.cdStart!==A.cdEnd&&g.push({name:"CDS",value:`${A.cdStart.toLocaleString()}-${A.cdEnd.toLocaleString()}`}),A.exons&&g.push({name:"Exons",value:A.exons.length}),g}function ai(A){return Math.floor(A).toLocaleString("en-US")}function ri(A,g,I){const t=g.height,e=function(A){if(A<10)return{majorTick:1,majorUnit:"bp",unitMultiplier:1};const g=Math.floor(Math.log10(A));let I="bp",t=1;return g>9?(I="gb",t=1e9):g>6?(I="mb",t=1e6):g>3&&(I="kb",t=1e3),{majorTick:A/Math.pow(10,g-1)<75?Math.pow(10,g-1):Math.pow(10,g)/2,majorUnit:I,unitMultiplier:t}}(Math.floor(I.pixelWidth*I.bpPerPixel));let C=Math.floor(I.bpStart/e.majorTick)-1;const i=A=>Math.floor(A*e.majorTick),B=A=>Math.round((A-1-I.bpStart+.5)/I.bpPerPixel),Q=B(i(1+C))-B(i(C)),o=`${ai(i(C)/e.unitMultiplier)} ${e.majorUnit}`,s=Math.floor(A.measureText(o).width),E=.25*s;A.font=g.font,A.fillStyle=g.labelColor,A.strokeStyle=g.tickColor,A.lineWidth=1;let a,r=Q;do{const o=i(C),n=`${ai(o/e.unitMultiplier)} ${e.majorUnit}`;a=B(o);const h=A.measureText(n).width,c=Math.round(a-h/2);c>0&&E+s<=r&&(A.fillStyle=g.labelColor,A.fillText(n,c,t-8),r=0),a>0&&(A.beginPath(),A.moveTo(a,t-6),A.lineTo(a,t-2),A.stroke());const l=a+(B(i(1+C))-a)/2;l>0&&l<I.pixelWidth&&(A.beginPath(),A.moveTo(l,t-6),A.lineTo(l,t-2),A.stroke()),++C,r+=Q}while(a<I.pixelWidth);A.strokeStyle=g.baselineColor,A.beginPath(),A.moveTo(0,t-2),A.lineTo(I.pixelWidth,t-2),A.stroke()}function ni(A,g,I,t){var e;const C=g.height,{cumulativeOffsets:i,chromSizes:B}=t;A.fillStyle=null!==(e=g.background)&&void 0!==e?e:"white",A.fillRect(0,0,I.pixelWidth,C),A.textAlign="center",A.textBaseline="middle",A.font=g.font;for(const g of i.chromosomeNames){const t=i.offsets[g],e=B[g];if(void 0===t||void 0===e)continue;const Q=Math.round((t-I.bpStart)/I.bpPerPixel),o=Math.round(e/I.bpPerPixel);A.strokeStyle="#bfbfbf",A.lineWidth=1,A.beginPath(),A.moveTo(Q+o,0),A.lineTo(Q+o,C),A.stroke();const s=g.startsWith("chr")?g.substring(3):g;o>A.measureText(s).width&&(A.fillStyle="#444444",A.fillText(s,Q+o/2,C/2))}}class hi extends UC{constructor(A,g={}){const I=$C(zC(g.theme),g.config);super(A,g.locus,I,g.canvasProvider),this.type="ruler",this._cumulativeOffsets=g.cumulativeOffsets,this._chromSizes=g.chromSizes}setCumulativeOffsets(A){this._cumulativeOffsets=A}setChromSizes(A){this._chromSizes=A}computeHeight(A){return this.config.height}getBackground(){return this.config.background}doRender(A,g,I,t){og(this._locus)&&this._cumulativeOffsets&&this._chromSizes?ni(A,this.config,t,{cumulativeOffsets:this._cumulativeOffsets,chromSizes:this._chromSizes}):ri(A,this.config,t)}setTheme(A){this._config=$C(A),this.render()}serializeConfig(A){const g=$C(A);return{type:"ruler",config:oi(this.config,g)}}}function ci(A){return Number.isInteger(A)?A.toString():Math.abs(A)>=10?A.toFixed():Math.abs(A)>=1?A.toFixed(1):Math.abs(A)>=.1?A.toFixed(2):A.toExponential(1)}function li(A){return A<0?-Math.log10(Math.abs(A)+1):Math.log10(Math.abs(A)+1)}function di(A,g,I,t){var e,C,i,B;if(0===t)return;const Q=null!==(e=g.backgroundColor)&&void 0!==e?e:"white",o=null!==(C=g.labelColor)&&void 0!==C?C:"black";A.fillStyle=Q,A.fillRect(0,0,I,t),g.color&&(A.fillStyle=g.color,A.fillRect(I-4-1,0,4,t));const s=.01*t,E=.99*t,a=I-4-3,r=a-6;if(A.strokeStyle=o,A.fillStyle=o,A.font="normal 9px Arial",A.textAlign="right",A.lineWidth=1,A.beginPath(),A.moveTo(a,s),A.lineTo(a,E),A.stroke(),A.beginPath(),A.moveTo(r,s),A.lineTo(a,s),A.stroke(),A.beginPath(),A.moveTo(r,E),A.lineTo(a,E),A.stroke(),!g.dataRange)return;const{min:n,max:h}=g.dataRange,c=null!==(i=g.flipAxis)&&void 0!==i&&i,l=null!==(B=g.logScale)&&void 0!==B&&B,d=c?n:h,D=c?h:n;if(A.textBaseline="top",A.fillText(ci(d),r-2,s+1),A.textBaseline="bottom",A.fillText(ci(D),r-2,E-1),t>60){const g=l?(()=>{const A=(li(n)+li(h))/2;return A>=0?Math.pow(10,A)-1:-(Math.pow(10,-A)-1)})():(n+h)/2,I=function(A,g,I,t,e,C,i){const B=i?li(g):g,Q=i?li(I):I,o=i?li(A):A,s=Q-B;if(0===s)return(t+e)/2;const E=(o-B)/s;return C?t+E*(e-t):e-E*(e-t)}(g,n,h,s,E,c,l);A.beginPath(),A.moveTo(r+3,I),A.lineTo(a,I),A.stroke(),A.textBaseline="middle",A.fillText(ci(g),r+1,I)}}const Di={A:"#00C000",C:"#0000FF",G:"#FFB300",T:"#FF0000",N:"#808080"},ui={A:{main:"M 0 100 L 33 0 L 66 0 L 100 100 L 75 100 L 66 75 L 33 75 L 25 100 L 0 100",overlay:"M 41 55 L 50 25 L 58 55 L 41 55"},C:{main:"M 100 28 C 100 -13 0 -13 0 50 C 0 113 100 113 100 72 L 75 72 C 75 90 30 90 30 50 C 30 10 75 10 75 28 L 100 28"},G:{main:"M 100 28 C 100 -13 0 -13 0 50 C 0 113 100 113 100 72 L 100 48 L 55 48 L 55 72 L 75 72 C 75 90 30 90 30 50 C 30 10 75 5 75 28 L 100 28"},T:{main:"M 0 0 L 0 20 L 35 20 L 35 100 L 65 100 L 65 20 L 100 20 L 100 0 L 0 0"},N:{main:"M 0 100 L 0 0 L 20 0 L 80 75 L 80 0 L 100 0 L 100 100 L 80 100 L 20 25 L 20 100 L 0 100"}};function wi(A,g,I,t,e,C){const i=e/100,B=C/100;A.beginPath();const Q=g.match(/[MLC][^MLC]*/g);if(Q){for(const g of Q){const e=g[0],C=g.slice(1).trim().split(/[\s,]+/).map(Number);"M"===e?A.moveTo(I+C[0]*i,t+C[1]*B):"L"===e?A.lineTo(I+C[0]*i,t+C[1]*B):"C"===e&&C.length>=6&&A.bezierCurveTo(I+C[0]*i,t+C[1]*B,I+C[2]*i,t+C[3]*B,I+C[4]*i,t+C[5]*B)}A.closePath(),A.fill()}}function yi(A,g,I,t,e,C,i,B=!1,Q="#ffffff"){var o;const s=null!==(o=ui[g])&&void 0!==o?o:ui.N;A.save(),A.fillStyle=i,B&&(A.translate(I+e/2,t+C/2),A.scale(1,-1),A.translate(-(I+e/2),-(t+C/2))),wi(A,s.main,I,t,e,C),s.overlay&&(A.fillStyle=Q,wi(A,s.overlay,I,t,e,C)),A.restore()}function fi(A,g,I,t,e,C,i,B=Di,Q="#ffffff"){var o;const s=Math.min(e,C),E=Math.max(1,Math.abs(e-C)),a=t/g.length,r=i<0;for(let t=0;t<g.length;t++){const e=I+t*a,C=g[t].toUpperCase();yi(A,C,e,s,a,E,null!==(o=B[C])&&void 0!==o?o:B.N,r,Q)}}function Si(A,g){const I=function(A){const g=A.match(/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);if(g)return[Number(g[1]),Number(g[2]),Number(g[3])];const I=A.match(/^#([0-9a-f]{3,8})$/i);if(I){const A=I[1];if(3===A.length||4===A.length)return[parseInt(A[0]+A[0],16),parseInt(A[1]+A[1],16),parseInt(A[2]+A[2],16)];if(A.length>=6)return[parseInt(A.slice(0,2),16),parseInt(A.slice(2,4),16),parseInt(A.slice(4,6),16)]}}(A);return I?`rgba(${I[0]},${I[1]},${I[2]},${g})`:A}function ki(A,g,I){return I?A<0&&I.neg?I.neg:I.pos:function(A,g){const I=function(A,g){return"function"==typeof A?A(g):A}(A<0&&g.altColor?g.altColor:g.color,A);return null!=g.alpha?Si(I,g.alpha):I}(A,g)}function Gi(A,g,I,t){const e=I.height-1,C=function(A,g,I,t){const e=t?A<0?-Math.log10(Math.abs(A)+1):Math.log10(Math.abs(A)+1):A;return I/((t?Math.log10(Math.abs(g)+1):g)-e)}(I.dataRange.min,I.dataRange.max,e,I.logScale),i=A=>function(A,g,I,t,e){if(e){let e=g.min,C=g.max;e=e<0?-Math.log10(Math.abs(e)+1):Math.log10(Math.abs(e)+1),C=C<0?-Math.log10(Math.abs(C)+1):Math.log10(Math.abs(C)+1);const i=A<0?-Math.log10(Math.abs(A)+1):Math.log10(A+1);return(t?i-e:C-i)*I}return(t?A-g.min:g.max-A)*I}(A,I.dataRange,C,I.flipAxis,I.logScale);if(g&&g.length>0&&I.dataRange.max>I.dataRange.min){const C=t.bpStart+t.pixelWidth*t.bpPerPixel+1,B=i(0),Q=function(A){if("string"!=typeof A.color)return;if(void 0!==A.altColor&&"string"!=typeof A.altColor)return;return{pos:null!=A.alpha?Si(A.color,A.alpha):A.color,neg:void 0!==A.altColor?null!=A.alpha?Si(A.altColor,A.alpha):A.altColor:void 0}}(I);switch(I.graphType){case"bar":!function(A,g,I,t,e,C,i,B,Q){const o=bC(g,t.bpStart);let s="",E=!1;const a=()=>{E&&(A.fill(),E=!1)},r=(g,I,t,e,C)=>{C!==s&&(a(),s=C,A.fillStyle=C,A.beginPath(),E=!0),A.rect(g,I,t,e)};let n=null;for(let A=o;A<g.length;A++){const o=g[A];if(o.start>B)break;const s=(o.start-t.bpStart)/t.bpPerPixel;if(Number.isNaN(s))continue;const E=C(o.value),a=(o.end-t.bpStart)/t.bpPerPixel,h=Math.max(1,a-s);r(s,i,h,Math.min(e,E-i),ki(o.value,I,Q)),o.value>I.dataRange.max?(n||(n=[]),n.push([s,0,h,3])):o.value<I.dataRange.min&&(n||(n=[]),n.push([s,e-2,h,3]))}if(a(),n){A.fillStyle=I.overflowColor,A.beginPath();for(const[g,I,t,e]of n)A.rect(g,I,t,e);A.fill()}}(A,g,I,t,e,i,B,C,Q);break;case"line":!function(A,g,I,t,e,C,i){let B;const Q=bC(g,t.bpStart);let o="",s=!1;A.lineWidth=1.5;const E=()=>{s&&(A.stroke(),s=!1)};for(let a=Q;a<g.length;a++){const Q=g[a];if(Q.start>C)break;const r=(Q.start-t.bpStart)/t.bpPerPixel;if(Number.isNaN(r))continue;const n=e(Q.value),h=(Q.end-t.bpStart)/t.bpPerPixel-r,c=ki(Q.value,I,i);c!==o&&(E(),o=c,A.strokeStyle=c,A.beginPath(),s=!0,B=void 0),void 0!==B?A.lineTo(r,n):A.moveTo(r,n),A.lineTo(r+h,n),B=n}E()}(A,g,I,t,i,C,Q);break;case"points":!function(A,g,I,t,e,C,i,B){const Q=I.pointSize/2,o=bC(g,t.bpStart);let s="",E=!1,a=null,r=null;const n=()=>{E&&(A.fill(),E=!1)};for(let e=o;e<g.length;e++){const o=g[e];if(o.start>i)break;const h=(o.start-t.bpStart)/t.bpPerPixel;if(Number.isNaN(h))continue;const c=C(o.value),l=h+((o.end-t.bpStart)/t.bpPerPixel-h)/2,d=ki(o.value,I,B);d!==s&&(n(),s=d,A.fillStyle=d,A.beginPath(),E=!0),A.moveTo(l+Q,c),A.arc(l,c,Q,0,2*Math.PI),o.value>I.dataRange.max?(a||(a=[]),a.push(l)):o.value<I.dataRange.min&&(r||(r=[]),r.push(l))}if(n(),a){A.fillStyle=I.overflowColor,A.beginPath();for(const g of a)A.moveTo(g+Q,Q),A.arc(g,Q,Q,0,2*Math.PI);A.fill()}if(r){A.fillStyle=I.overflowColor,A.beginPath();for(const g of r)A.moveTo(g+Q,e-Q),A.arc(g,e-Q,Q,0,2*Math.PI);A.fill()}}(A,g,I,t,e,i,C,Q);break;case"dynseq":!function(A,g,I,t,e,C,i,B,Q){var o;const s=null!==(o=I.nucleotideColors)&&void 0!==o?o:Di;for(let o=bC(g,t.bpStart);o<g.length;o++){const E=g[o];if(E.start>B)break;const a=(E.start-t.bpStart)/t.bpPerPixel;if(Number.isNaN(a))continue;const r=C(E.value),n=(E.end-t.bpStart)/t.bpPerPixel,h=Math.max(1,n-a);if(E.sequence&&t.bpPerPixel<2)fi(A,E.sequence,a,h,r,i,E.value,s,I.background);else{const g=Math.min(e,r-i);A.fillStyle=ki(E.value,I,Q),A.fillRect(a,i,h,g)}E.value>I.dataRange.max?(A.fillStyle=I.overflowColor,A.fillRect(a,0,h,3)):E.value<I.dataRange.min&&(A.fillStyle=I.overflowColor,A.fillRect(a,e-2,h,3))}}(A,g,I,t,e,i,B,C,Q)}!function(A,g,I,t){if(g.dataRange.min>=0)return;let{min:e,max:C}=g.dataRange;g.logScale&&(e=e<0?-Math.log10(Math.abs(e)+1):Math.log10(Math.abs(e)+1),C=C<0?-Math.log10(Math.abs(C)+1):Math.log10(Math.abs(C)+1));const i=C/(C-e),B=g.flipAxis?(1-i)*t:i*t;A.strokeStyle=g.baselineColor,A.lineWidth=1,A.beginPath(),A.moveTo(0,B),A.lineTo(I,B),A.stroke()}(A,I,t.pixelWidth,e),function(A,g,I){var t,e;if(!g.showDataRange)return;const{min:C,max:i}=g.dataRange,B=ci(g.flipAxis?C:i),Q=ci(g.flipAxis?i:C);A.font=g.labelFont,A.textBaseline="top",A.textAlign="left";const o=A.measureText(B),s=o.width+6,E=(null!==(t=o.actualBoundingBoxDescent)&&void 0!==t?t:10)+4;A.fillStyle=g.background,A.globalAlpha=.7,A.fillRect(4,4,s,E),A.globalAlpha=1,A.fillStyle=g.labelColor,A.fillText(B,7,6),A.textBaseline="bottom";const a=A.measureText(Q),r=a.width+6,n=(null!==(e=a.actualBoundingBoxAscent)&&void 0!==e?e:10)+4,h=I-4;A.fillStyle=g.background,A.globalAlpha=.7,A.fillRect(4,h-n,r,n),A.globalAlpha=1,A.fillStyle=g.labelColor,A.fillText(Q,7,h-2)}(A,I,e)}!function(A,g,I){var t;if(!g.trackName)return;let e=0;if(g.showDataRange){const I=2;A.save(),A.font=g.labelFont,A.textBaseline="top";const C=ci(g.flipAxis?g.dataRange.min:g.dataRange.max),i=(null!==(t=A.measureText(C).actualBoundingBoxDescent)&&void 0!==t?t:10)+2*I;A.restore(),e=i+2}MC(A,{name:g.trackName,background:g.background,labelColor:g.labelColor,topOffset:e},I)}(A,I,e),function(A,g,I,t){if(g.guideLines){for(const e of g.guideLines){const g=t(e.y);A.strokeStyle=e.color,A.lineWidth=2,e.dotted?A.setLineDash([5,5]):A.setLineDash([]),A.beginPath(),A.moveTo(0,g),A.lineTo(I,g),A.stroke()}A.setLineDash([])}}(A,I,t.pixelWidth,i)}class Fi extends UC{constructor(A,g){const I=XC(zC(g.theme),g.config);super(A,g.locus,I,g.canvasProvider),this._lastDataRange=null,this._seqAbort=null,this._userOverrides={},this._coordinatedDataRange=null,this.type="wig",this.features=g.features,this._name=g.name,this._sequenceProvider=g.sequenceProvider,g.config&&(this._userOverrides={...g.config})}set onWindowFunctionChange(A){this._onWindowFunctionChange=A}setFeatures(A){this.features=A,"dynseq"===this._config.graphType?this.augmentWithSequence():this.render()}setLocus(A){this._locus=A,"dynseq"===this._config.graphType?this.augmentWithSequence():this.render()}setCoordinatedDataRange(A){this._coordinatedDataRange=A}setConfig(A){Object.assign(this._userOverrides,A);const g="dynseq"===this._config.graphType;super.setConfig(A),g||"dynseq"!==this._config.graphType||this.augmentWithSequence()}augmentWithSequence(){if(!this._sequenceProvider||0===this.features.length)return void this.render();const A=this.viewportWidth;if(0===A)return void this.render();if((this._locus.end-this._locus.start)/A>=2)return void this.render();this._seqAbort&&this._seqAbort.abort();const g=new AbortController;this._seqAbort=g;const I={chr:this._locus.chr,start:Math.floor(this._locus.start),end:Math.ceil(this._locus.end)};this._sequenceProvider(I,g.signal).then(A=>{g.signal.aborted||(this._seqAbort=null,this.features=this.features.map(g=>{const t=Math.max(0,Math.floor(g.start)-I.start),e=Math.min(A.length,Math.floor(g.end)-I.start);return t>=e||t>=A.length?g:{...g,sequence:A.slice(t,e)}}),this.render())}).catch(()=>{g.signal.aborted||(this._seqAbort=null,this.render())}),this.render()}computeHeight(A){return this.config.height}getBackground(){return this.config.background}renderLabelOverlay(A,g,I){this.externalUIEnabled||this._name&&MC(A,{name:this._name,background:this.config.background,labelColor:this.config.labelColor},I)}doRender(A,g,I,t){const e=null!=this.config.normalizationFactor&&1!==this.config.normalizationFactor||null!=this.config.scaleFactor&&1!==this.config.scaleFactor?this.features.map(A=>{var g,I;return{...A,value:A.value*(null!==(g=this.config.normalizationFactor)&&void 0!==g?g:1)*(null!==(I=this.config.scaleFactor)&&void 0!==I?I:1)}}):this.features,C={...this.config,height:I,trackName:this.externalUIEnabled?void 0:this._name};if(this._coordinatedDataRange)C.dataRange=this._coordinatedDataRange,this._config={...this._config,dataRange:this._coordinatedDataRange},this._lastDataRange=this._coordinatedDataRange;else if(this.config.autoscale){const A=e.filter(A=>A.end>=this._locus.start&&A.start<=this._locus.end);if(A.length>0){const g=Bg(A);C.dataRange=g,this._config={...this._config,dataRange:g},this._lastDataRange=g}else this._lastDataRange=null}else this._lastDataRange=C.dataRange;Gi(A,e,C,t)}getUIOverlayState(){if(this._name)return{label:{text:this._name,background:this.config.background,color:this.config.labelColor}}}getAxisInfo(){var A;if(this._name||this._lastDataRange)return{dataRange:null!==(A=this._lastDataRange)&&void 0!==A?A:void 0,color:"string"==typeof this.config.color?this.config.color:void 0,label:this._name,flipAxis:this.config.flipAxis||void 0,logScale:this.config.logScale||void 0}}getContextMenuItems(A,g){const I=this._sequenceProvider?["bar","line","points","dynseq"]:["bar","line","points"];return[{label:"Flip y-axis",type:"checkbox",checked:this._config.flipAxis,action:()=>this.setConfig({flipAxis:!this._config.flipAxis})},{label:"Graph type",children:I.map(A=>({label:A.charAt(0).toUpperCase()+A.slice(1),type:"checkbox",checked:this._config.graphType===A,action:()=>this.setConfig({graphType:A})}))},{label:"Windowing function",children:["mean","min","max"].map(A=>({label:A.charAt(0).toUpperCase()+A.slice(1),type:"checkbox",checked:this._config.windowFunction===A,action:()=>{this.setConfig({windowFunction:A}),this._onWindowFunctionChange&&this._onWindowFunctionChange(A)}}))}]}getNumericState(){return{autoscale:this._config.autoscale,logScale:this._config.logScale,dataRange:this._config.dataRange,setAutoscale:A=>this.setConfig({autoscale:A}),setLogScale:A=>this.setConfig({logScale:A}),setDataRange:(A,g)=>this.setConfig({dataRange:{min:A,max:g},autoscale:!1})}}hitTest(A,g){if(0===this.features.length)return[];if(0===this.viewportWidth)return[];const I=this.viewportXToGenomicBp(A);for(let A=bC(this.features,I);A<this.features.length;A++){const g=this.features[A];if(g.start>I)break;if(I<g.end)return[{feature:g,popupData:Ni(g)}]}return[]}setTheme(A){const g=this._config.dataRange;this._config={...XC(A),...this._userOverrides,dataRange:g},this.render()}serializeConfig(A){const g=XC(A),I=this.config;return{type:"wig",config:oi({...I,color:"string"==typeof I.color?I.color:g.color,altColor:"string"==typeof I.altColor?I.altColor:g.altColor,dataRange:I.autoscale?g.dataRange:I.dataRange,nucleotideColors:g.nucleotideColors},g)}}}function Ni(A){const g=[];return A.chr&&g.push({name:"Chr",value:A.chr}),g.push({name:"Start",value:Math.floor(A.start).toLocaleString()}),g.push({name:"End",value:Math.ceil(A.end).toLocaleString()}),g.push({name:"Value",value:Number.isInteger(A.value)?A.value:A.value.toPrecision(6)}),A.description&&g.push({name:"Description",value:A.description}),g}let mi=0;function pi(){return"frame-"+ ++mi}function Ri(A,g,I){return{id:null!=I?I:pi(),locus:A,bpPerPixel:g>0?(A.end-A.start)/g:0,viewportWidth:g}}function Ui(A){A.bpPerPixel=A.viewportWidth>0?(A.locus.end-A.locus.start)/A.viewportWidth:0}function Mi(A,g,I){if(A.locus.chr!==g.chr)return!1;if(A.locus.start>g.start||A.locus.end<g.end)return!1;const t=I/A.bpPerPixel;return t>=.7&&t<=1.3}function Li(A){if(og(A))return A;const g=A.end-A.start,I=Math.floor(1*g);return{chr:A.chr,start:Math.max(0,Math.floor(A.start-I)),end:Math.ceil(A.end+I)}}class Ji{constructor(A={}){var g;this.nodes=[],this.accessCounter=0,this._maxEntries=null!==(g=A.maxEntries)&&void 0!==g?g:5,this.onEviction=A.onEviction}get maxEntries(){return this._maxEntries}resize(A){for(this._maxEntries=Math.max(1,A);this.nodes.length>this._maxEntries;)this.evictOne()}get totalFeatureCount(){let A=0;for(const g of this.nodes)A+=g.entry.features.length;return A}get size(){return this.nodes.length}find(A,g){for(const I of this.nodes)if(Mi(I.entry,A,g))return I.accessTime=++this.accessCounter,I.entry}put(A){for(let g=0;g<this.nodes.length;g++){const I=this.nodes[g].entry;if(I.locus.chr===A.locus.chr&&I.locus.start===A.locus.start&&I.locus.end===A.locus.end&&I.bpPerPixel===A.bpPerPixel)return void(this.nodes[g]={entry:A,accessTime:++this.accessCounter})}this.nodes.length>=this.maxEntries&&this.evictOne(),this.nodes.push({entry:A,accessTime:++this.accessCounter})}evictOne(){var A;if(0===this.nodes.length)return 0;let g=0;for(let A=1;A<this.nodes.length;A++)this.nodes[A].accessTime<this.nodes[g].accessTime&&(g=A);const I=this.nodes[g].entry,t=I.features.length;return this.nodes.splice(g,1),null===(A=this.onEviction)||void 0===A||A.call(this,I),t}getMostRecent(){if(0===this.nodes.length)return;let A=0;for(let g=1;g<this.nodes.length;g++)this.nodes[g].accessTime>this.nodes[A].accessTime&&(A=g);return this.nodes[A].entry}clear(){this.nodes.length=0}hasData(){return this.nodes.length>0}getLRUAccessTime(){if(0===this.nodes.length)return 1/0;let A=this.nodes[0].accessTime;for(let g=1;g<this.nodes.length;g++)this.nodes[g].accessTime<A&&(A=this.nodes[g].accessTime);return A}}function Ki(A,g,I,t){var e;const{totalHeight:C,headerHeight:i=4,font:B="9px sans-serif",labelColor:Q="rgba(0,0,0,0.7)"}=t;for(const t of g){const g=Math.round((t.start-I.bpStart)/I.bpPerPixel),o=Math.max(3,Math.round((t.end-t.start)/I.bpPerPixel));if(g+o<0||g>I.pixelWidth)continue;const s=null!==(e=t.color)&&void 0!==e?e:"rgba(68, 134, 247, 0.15)";if(A.fillStyle=s,A.fillRect(g,0,o,C),A.strokeStyle=s.replace(/[\d.]+\)$/,A=>`${Math.min(1,3*parseFloat(A))})`),A.lineWidth=1,A.beginPath(),A.moveTo(g+.5,0),A.lineTo(g+.5,C),A.moveTo(g+o-.5,0),A.lineTo(g+o-.5,C),A.stroke(),i>0&&(A.fillStyle=s.replace(/[\d.]+\)$/,A=>`${Math.min(1,4*parseFloat(A))})`),A.fillRect(g,0,o,i)),t.name&&o>20){A.font=B,A.fillStyle=Q,A.textBaseline="top",A.textAlign="left";const I=g+3,e=i+1;A.fillText(t.name,I,e,o-6)}}}function bi(A,g){let I=A;for(const A of Object.keys(g))I=I.replace(new RegExp("\\{"+A+"\\}","gi"),String(g[A]));return I}function vi(A){const g="ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";let I;do{I="";for(let A=0;A<12;A++)I+=g[Math.floor(51*Math.random())]}while(A[I]);return I}function Yi(A){const g={left:"start",right:"end",center:"middle",start:"start",end:"end"};return g[A]||g.start}function xi(A){const g={alphabetic:"alphabetic",hanging:"hanging",top:"text-before-edge",bottom:"text-after-edge",middle:"central"};return g[A]||g.alphabetic}function Hi(A){const g=Math.sqrt(A[0]*A[0]+A[1]*A[1]);return[A[0]/g,A[1]/g]}const qi=function(A,g=10){const I={},t=A.split(",");for(let A=0;A<t.length;A+=2){const e="&"+t[A+1]+";",C=parseInt(t[A],g);I[e]="&#"+C+";"}return I["\\xa0"]="&#160;",I}("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32),_i={strokeStyle:{svgAttr:"stroke",canvas:"#000000",svg:"none",apply:"stroke"},fillStyle:{svgAttr:"fill",canvas:"#000000",svg:null,apply:"fill"},lineCap:{svgAttr:"stroke-linecap",canvas:"butt",svg:"butt",apply:"stroke"},lineJoin:{svgAttr:"stroke-linejoin",canvas:"miter",svg:"miter",apply:"stroke"},miterLimit:{svgAttr:"stroke-miterlimit",canvas:10,svg:4,apply:"stroke"},lineWidth:{svgAttr:"stroke-width",canvas:1,svg:1,apply:"stroke"},globalAlpha:{svgAttr:"opacity",canvas:1,svg:1,apply:"fill stroke"},font:{canvas:"10px sans-serif"},shadowColor:{canvas:"#000000"},shadowOffsetX:{canvas:0},shadowOffsetY:{canvas:0},shadowBlur:{canvas:0},textAlign:{canvas:"start"},textBaseline:{canvas:"alphabetic"},lineDash:{svgAttr:"stroke-dasharray",canvas:null,svg:null,apply:"stroke"}};class Ti{constructor(A,g){this.__root=A,this.__ctx=g}addColorStop(A,g){const I=this.__ctx.__createElement("stop");if(I.setAttribute("offset",String(A)),g&&-1!==g.indexOf("rgba")){const A=/rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d?\.?\d*)\s*\)/gi.exec(g);A&&(I.setAttribute("stop-color",bi("rgb({r},{g},{b})",{r:A[1],g:A[2],b:A[3]})),I.setAttribute("stop-opacity",A[4]))}else I.setAttribute("stop-color",g);this.__root.appendChild(I)}}class Wi{constructor(A,g){this.__root=A,this.__ctx=g}}class Pi{constructor(A={}){var g,I,t;if(this.isSVG=!0,this.__currentElementsToStyle=null,this.__ids={},this.__stack=[],this.__groupStack=[],this.__currentDefaultPath="",this.__currentPosition={x:0,y:0},this.strokeStyle="#000000",this.fillStyle="#000000",this.lineCap="butt",this.lineJoin="miter",this.miterLimit=10,this.lineWidth=1,this.globalAlpha=1,this.font="10px sans-serif",this.shadowColor="#000000",this.shadowOffsetX=0,this.shadowOffsetY=0,this.shadowBlur=0,this.textAlign="start",this.textBaseline="alphabetic",this.lineDash=null,this.globalCompositeOperation="source-over",this.config=A,this.width=null!==(g=A.width)&&void 0!==g?g:500,this.height=null!==(I=A.height)&&void 0!==I?I:500,this.enableMirroring=null!==(t=A.enableMirroring)&&void 0!==t&&t,this.canvas=this,this.__document=document,A.ctx?(this.__ctx=A.ctx,this.__canvas=A.ctx.canvas):(this.__canvas=this.__document.createElement("canvas"),this.__ctx=this.__canvas.getContext("2d")),this.__setDefaultStyles(),this.__stack=[this.__getStyleState()],this.__groupStack=[],this.__root=this.__createElement("svg"),this.__root.setAttribute("width",String(this.width)),this.__root.setAttribute("height",String(this.height)),this.__root.setAttribute("overflow","visible"),A.viewbox){const g=A.viewbox;this.__root.setAttribute("viewBox",`${g.x} ${g.y} ${g.width} ${g.height}`),this.viewbox=A.viewbox}this.__ids={},this.__defs=this.__createElement("defs"),this.__root.appendChild(this.__defs);const e=this.__createElement("rect",{id:"svg_output_backdrop",width:"100%",height:"100%",fill:A.backdropColor||"white"});this.__root.appendChild(e),this.__rootGroup=this.__createElement("g",{id:"root-group"}),this.__root.appendChild(this.__rootGroup),this.__currentElement=this.__rootGroup}setWidth(A){this.width=A,this.__root.setAttribute("width",String(A)),this.config.viewbox&&this.__root.setAttribute("viewBox",`${this.config.viewbox.x} ${this.config.viewbox.y} ${A} ${this.config.viewbox.height}`)}setHeight(A){this.height=A,this.__root.setAttribute("height",String(A)),this.config.viewbox&&this.__root.setAttribute("viewBox",`${this.config.viewbox.x} ${this.config.viewbox.y} ${this.config.viewbox.width} ${A}`)}__createElement(A,g,I){const t=this.__document.createElementNS("http://www.w3.org/2000/svg",A);if(I&&(t.setAttribute("fill","none"),t.setAttribute("stroke","none")),g)for(const A of Object.keys(g))t.setAttribute(A,String(g[A]));return t}__setDefaultStyles(){for(const A of Object.keys(_i))this[A]=_i[A].canvas}__applyStyleState(A){for(const g of Object.keys(A))this[g]=A[g]}__getStyleState(){const A={};for(const g of Object.keys(_i))A[g]=this[g];return A}__applyStyleToCurrentElement(A){let g=this.__currentElement;const I=this.__currentElementsToStyle;I&&(g.setAttribute(A,""),g=I.element,I.children.forEach(g=>g.setAttribute(A,"")));for(const I of Object.keys(_i)){const t=_i[I],e=this[I];if(t.apply)if(e instanceof Wi){if(e.__ctx)for(;e.__ctx.__defs.childNodes.length;){const A=e.__ctx.__defs.childNodes[0],g=A.getAttribute("id");this.__ids[g]=g,this.__defs.appendChild(A)}g.setAttribute(t.apply,bi("url(#{id})",{id:e.__root.getAttribute("id")}))}else if(e instanceof Ti)g.setAttribute(t.apply,bi("url(#{id})",{id:e.__root.getAttribute("id")}));else if(-1!==t.apply.indexOf(A)&&t.svg!==e)if("stroke"!==t.svgAttr&&"fill"!==t.svgAttr||"string"!=typeof e||-1===e.indexOf("rgba")){let C=t.svgAttr;if("globalAlpha"===I&&(C=A+"-"+t.svgAttr,g.getAttribute(C)))continue;g.setAttribute(C,String(e))}else{const A=/rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d?\.?\d*)\s*\)/gi.exec(e);if(A){g.setAttribute(t.svgAttr,bi("rgb({r},{g},{b})",{r:A[1],g:A[2],b:A[3]}));let I=parseFloat(A[4]);null!=this.globalAlpha&&(I*=this.globalAlpha),g.setAttribute(t.svgAttr+"-opacity",String(I))}}}}__closestGroupOrSvg(A){const g=A||this.__currentElement;return"g"===g.nodeName||"svg"===g.nodeName?g:this.__closestGroupOrSvg(g.parentNode)}getSerializedSvg(A){let g=(new XMLSerializer).serializeToString(this.__root);if(A)for(const A of Object.keys(qi)){const I=new RegExp(A,"gi");I.test(g)&&(g=g.replace(I,qi[A]))}return g}getSvg(){return this.__root}saveWithTranslationAndClipRect(A,g,I,t,e,C){const i=`${A}_clip_rect`,B=this.__createElement("clipPath",{id:i});this.__defs.appendChild(B),B.appendChild(this.__createElement("rect",{x:"0",y:String(C),width:String(t),height:String(e)}));const Q=this.__createElement("g");Q.setAttribute("transform",bi("translate({x},{y})",{x:g,y:I})),Q.setAttribute("clip-path",bi("url(#{id})",{id:i}));const o=this.__closestGroupOrSvg();o.appendChild(Q),this.__groupStack.push(o),this.__currentElement=Q,this.__stack.push(this.__getStyleState())}save(){const A=this.__createElement("g"),g=this.__closestGroupOrSvg();this.__groupStack.push(g),g.appendChild(A),this.__currentElement=A,this.__stack.push(this.__getStyleState())}restore(){this.__currentElement=this.__groupStack.pop(),this.__currentElementsToStyle=null,this.__currentElement||(this.__currentElement=this.__root.childNodes[2]);const A=this.__stack.pop();A&&this.__applyStyleState(A)}__addTransform(A){const g=this.__closestGroupOrSvg();if(g.childNodes.length>0){"path"===this.__currentElement.nodeName&&(this.__currentElementsToStyle||(this.__currentElementsToStyle={element:g,children:[]}),this.__currentElementsToStyle.children.push(this.__currentElement),this.__applyCurrentDefaultPath());const A=this.__createElement("g");g.appendChild(A),this.__currentElement=A}let I=this.__currentElement.getAttribute("transform");I?I+=" ":I="",I+=A,this.__currentElement.setAttribute("transform",I)}scale(A,g){void 0===g&&(g=A),this.__addTransform(bi("scale({x},{y})",{x:A,y:g}))}rotate(A){const g=180*A/Math.PI;this.__addTransform(bi("rotate({angle},{cx},{cy})",{angle:g,cx:0,cy:0}))}translate(A,g){this.__addTransform(bi("translate({x},{y})",{x:A,y:g}))}transform(A,g,I,t,e,C){this.__addTransform(bi("matrix({a},{b},{c},{d},{e},{f})",{a:A,b:g,c:I,d:t,e:e,f:C}))}beginPath(){this.__currentDefaultPath="",this.__currentPosition={x:0,y:0};const A=this.__createElement("path",{},!0);this.__closestGroupOrSvg().appendChild(A),this.__currentElement=A}__applyCurrentDefaultPath(){"path"===this.__currentElement.nodeName&&this.__currentElement.setAttribute("d",this.__currentDefaultPath)}__addPathCommand(A){this.__currentDefaultPath+=" "+A}moveTo(A,g){"path"!==this.__currentElement.nodeName&&this.beginPath(),this.__currentPosition={x:A,y:g},this.__addPathCommand(bi("M {x} {y}",{x:A,y:g}))}closePath(){this.__currentDefaultPath&&this.__addPathCommand("Z")}lineTo(A,g){this.__currentPosition={x:A,y:g},this.__currentDefaultPath&&this.__currentDefaultPath.indexOf("M")>-1?this.__addPathCommand(bi("L {x} {y}",{x:A,y:g})):this.__addPathCommand(bi("M {x} {y}",{x:A,y:g}))}bezierCurveTo(A,g,I,t,e,C){this.__currentPosition={x:e,y:C},this.__addPathCommand(bi("C {cp1x} {cp1y} {cp2x} {cp2y} {x} {y}",{cp1x:A,cp1y:g,cp2x:I,cp2y:t,x:e,y:C}))}quadraticCurveTo(A,g,I,t){this.__currentPosition={x:I,y:t},this.__addPathCommand(bi("Q {cpx} {cpy} {x} {y}",{cpx:A,cpy:g,x:I,y:t}))}roundRect(A,g,I,t,e){let C;C=null==e?[0,0,0,0]:"number"==typeof e?[e,e,e,e]:1===e.length?[e[0],e[0],e[0],e[0]]:2===e.length?[e[0],e[1],e[0],e[1]]:3===e.length?[e[0],e[1],e[2],e[1]]:[e[0],e[1],e[2],e[3]];const i=Math.min(Math.abs(I)/2,Math.abs(t)/2);for(let A=0;A<4;A++)C[A]=Math.min(C[A],i);this.moveTo(A+C[0],g),this.lineTo(A+I-C[1],g),C[1]&&this.arcTo(A+I,g,A+I,g+C[1],C[1]),this.lineTo(A+I,g+t-C[2]),C[2]&&this.arcTo(A+I,g+t,A+I-C[2],g+t,C[2]),this.lineTo(A+C[3],g+t),C[3]&&this.arcTo(A,g+t,A,g+t-C[3],C[3]),this.lineTo(A,g+C[0]),C[0]&&this.arcTo(A,g,A+C[0],g,C[0]),this.closePath()}arcTo(A,g,I,t,e){var C,i;const B=null===(C=this.__currentPosition)||void 0===C?void 0:C.x,Q=null===(i=this.__currentPosition)||void 0===i?void 0:i.y;if(void 0===B||void 0===Q)return;if(e<0)throw new Error("IndexSizeError: The radius provided ("+e+") is negative.");if(B===A&&Q===g||A===I&&g===t||0===e)return void this.lineTo(A,g);const o=Hi([B-A,Q-g]),s=Hi([I-A,t-g]);if(o[0]*s[1]===o[1]*s[0])return void this.lineTo(A,g);const E=o[0]*s[0]+o[1]*s[1],a=Math.acos(Math.abs(E)),r=Hi([o[0]+s[0],o[1]+s[1]]),n=e/Math.sin(a/2),h=A+n*r[0],c=g+n*r[1],l=[-o[1],o[0]],d=[s[1],-s[0]],D=A=>A[1]>=0?Math.acos(A[0]):-Math.acos(A[0]),u=D(l),w=D(d);this.lineTo(h+l[0]*e,c+l[1]*e),this.arc(h,c,e,u,w)}stroke(){"path"===this.__currentElement.nodeName&&this.__currentElement.setAttribute("paint-order","fill stroke markers"),this.__applyCurrentDefaultPath(),this.__applyStyleToCurrentElement("stroke")}fill(){"path"===this.__currentElement.nodeName&&this.__currentElement.setAttribute("paint-order","stroke fill markers"),this.__applyCurrentDefaultPath(),this.__applyStyleToCurrentElement("fill")}rect(A,g,I,t){"path"!==this.__currentElement.nodeName&&this.beginPath(),this.moveTo(A,g),this.lineTo(A+I,g),this.lineTo(A+I,g+t),this.lineTo(A,g+t),this.lineTo(A,g),this.closePath()}fillRect(A,g,I,t){t<0&&(g+=t,t=-t),I<0&&(A+=I,I=-I);const e={x:A,y:g,width:I,height:t};if(this.viewbox&&(C=this.viewbox,i=e,!(C.x<i.x+i.width&&C.x+C.width>i.x&&C.y<i.y+i.height&&C.y+C.height>i.y)))return;var C,i;const B=this.__createElement("rect",e,!0);this.__closestGroupOrSvg().appendChild(B),this.__currentElement=B,this.__applyStyleToCurrentElement("fill")}strokeRect(A,g,I,t){const e=this.__createElement("rect",{x:A,y:g,width:I,height:t},!0);this.__closestGroupOrSvg().appendChild(e),this.__currentElement=e,this.__applyStyleToCurrentElement("stroke")}strokeEllipse(A,g,I,t,e,C,i,B){this.__ellipse(A,g,I,t,"stroke")}fillEllipse(A,g,I,t,e,C,i,B){this.__ellipse(A,g,I,t,"fill")}__ellipse(A,g,I,t,e){const C=this.__createElement("ellipse",{cx:A,cy:g,rx:I,ry:t},!0);this.__closestGroupOrSvg().appendChild(C),this.__currentElement=C,this.__applyStyleToCurrentElement(e)}__clearCanvas(){const A=this.__closestGroupOrSvg().getAttribute("transform"),g=this.__root.childNodes[2],I=g.childNodes;for(let A=I.length-1;A>=0;A--)I[A]&&g.removeChild(I[A]);this.__currentElement=g,this.__groupStack=[],A&&this.__addTransform(A)}clearRect(A,g,I,t){if(0===A&&0===g&&I===this.width&&t===this.height)return void this.__clearCanvas();const e=this.__closestGroupOrSvg(),C=this.__createElement("rect",{x:A,y:g,width:I,height:t,fill:"#FFFFFF"},!0);e.appendChild(C)}createLinearGradient(A,g,I,t){const e=this.__createElement("linearGradient",{id:vi(this.__ids),x1:A+"px",x2:I+"px",y1:g+"px",y2:t+"px",gradientUnits:"userSpaceOnUse"});return this.__defs.appendChild(e),new Ti(e,this)}createRadialGradient(A,g,I,t,e,C){const i=this.__createElement("radialGradient",{id:vi(this.__ids),cx:t+"px",cy:e+"px",r:C+"px",fx:A+"px",fy:g+"px",gradientUnits:"userSpaceOnUse"});return this.__defs.appendChild(i),new Ti(i,this)}__parseFont(){const A=/^\s*(?=(?:(?:[-a-z]+\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\1|\2|\3)\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\d]+(?:%|in|[cem]m|ex|p[ctx]))(?:\s*\/\s*(normal|[.\d]+(?:%|in|[cem]m|ex|p[ctx])))?\s*([-,'"\sa-z0-9]+?)\s*$/i.exec(this.font),g={style:(null==A?void 0:A[1])||"normal",size:(null==A?void 0:A[4])||"10px",family:(null==A?void 0:A[6])||"sans-serif",weight:(null==A?void 0:A[3])||"normal",decoration:(null==A?void 0:A[2])||"normal",href:null};return"underline"===this.__fontUnderline&&(g.decoration="underline"),this.__fontHref&&(g.href=this.__fontHref),g}__wrapTextLink(A,g){if(A.href){const I=this.__createElement("a");return I.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",A.href),I.appendChild(g),I}return g}__applyText(A,g,I,t){const e=this.__parseFont(),C=this.__closestGroupOrSvg(),i=this.__createElement("text",{"font-family":e.family,"font-size":e.size,"font-style":e.style,"font-weight":e.weight,"text-decoration":e.decoration,x:g,y:I,"text-anchor":Yi(this.textAlign),"dominant-baseline":xi(this.textBaseline)},!0);i.appendChild(this.__document.createTextNode(A)),this.__currentElement=i,this.__applyStyleToCurrentElement(t),C.appendChild(this.__wrapTextLink(e,i))}fillText(A,g,I){this.__applyText(A,g,I,"fill")}strokeText(A,g,I){this.__applyText(A,g,I,"stroke")}measureText(A){return this.__ctx.font=this.font,this.__ctx.measureText(A)}arc(A,g,I,t,e,C){if(t===e)return;(t%=2*Math.PI)===(e%=2*Math.PI)&&(e=(e+2*Math.PI-.001*(C?-1:1))%(2*Math.PI));const i=A+I*Math.cos(e),B=g+I*Math.sin(e),Q=A+I*Math.cos(t),o=g+I*Math.sin(t),s=C?0:1;let E=e-t;E<0&&(E+=2*Math.PI);const a=C?E>Math.PI?0:1:E>Math.PI?1:0;this.lineTo(Q,o),this.__addPathCommand(bi("A {rx} {ry} {xAxisRotation} {largeArcFlag} {sweepFlag} {endX} {endY}",{rx:I,ry:I,xAxisRotation:0,largeArcFlag:a,sweepFlag:s,endX:i,endY:B})),this.__currentPosition={x:i,y:B}}clip(){const A=this.__closestGroupOrSvg(),g=this.__createElement("clipPath"),I=vi(this.__ids),t=this.__createElement("g");this.__applyCurrentDefaultPath(),A.removeChild(this.__currentElement),g.setAttribute("id",I),g.appendChild(this.__currentElement),this.__defs.appendChild(g),A.setAttribute("clip-path",bi("url(#{id})",{id:I})),A.appendChild(t),this.__currentElement=t}drawImage(A,...g){let I,t,e,C,i,B,Q=0,o=0;if(2===g.length)I=g[0],t=g[1],i=A.width,B=A.height,e=i,C=B;else if(4===g.length)I=g[0],t=g[1],e=g[2],C=g[3],i=A.width,B=A.height;else{if(8!==g.length)throw new Error("Invalid number of arguments passed to drawImage: "+(g.length+1));Q=g[0],o=g[1],i=g[2],B=g[3],I=g[4],t=g[5],e=g[6],C=g[7]}const s=this.__closestGroupOrSvg(),E=`translate(${I}, ${t})`;if(A instanceof Pi){const g=A.getSvg().cloneNode(!0);if(g.childNodes&&g.childNodes.length>1){const A=g.childNodes[0];for(;A.childNodes.length;){const g=A.childNodes[0],I=g.getAttribute("id");I&&(this.__ids[I]=I),this.__defs.appendChild(g)}const I=g.childNodes[1];if(I){const A=I.getAttribute("transform");I.setAttribute("transform",A?A+" "+E:E),s.appendChild(I)}}}else{const g=A,I=this.__createElement("image");I.setAttribute("width",String(e)),I.setAttribute("height",String(C)),I.setAttribute("preserveAspectRatio","none");let t=g;if(Q||o||i!==g.width||B!==g.height){const A=this.__document.createElement("canvas");A.width=e,A.height=C;A.getContext("2d").drawImage(g,Q,o,i,B,0,0,e,C),t=A}I.setAttribute("transform",E),"toDataURL"in t?I.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",t.toDataURL()):I.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",t.getAttribute("src")||""),s.appendChild(I)}}createPattern(A,g){const I=this.__createElement("pattern"),t=vi(this.__ids);if(I.setAttribute("id",t),I.setAttribute("width",String(A.width)),I.setAttribute("height",String(A.height)),A instanceof Pi)I.appendChild(A.__root.childNodes[1]),this.__defs.appendChild(I);else{const g=this.__createElement("image");g.setAttribute("width",String(A.width)),g.setAttribute("height",String(A.height)),"toDataURL"in A?g.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",A.toDataURL()):g.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",A.getAttribute("src")||""),I.appendChild(g),this.__defs.appendChild(I)}return new Wi(I,this)}setLineDash(A){A&&A.length>0?this.lineDash=A.join(","):this.lineDash=null}getLineDash(){return this.lineDash?this.lineDash.split(",").map(Number):[]}drawFocusIfNeeded(){}createImageData(){return new ImageData(1,1)}getImageData(){return new ImageData(1,1)}putImageData(){}setTransform(){}}class Oi{constructor(){this.listeners=new Map}on(A,g){let I=this.listeners.get(A);return I||(I=new Set,this.listeners.set(A,I)),I.add(g),()=>{I.delete(g)}}off(A,g){var I;g?null===(I=this.listeners.get(A))||void 0===I||I.delete(g):this.listeners.delete(A)}emit(A,g){const I=this.listeners.get(A);if(I)for(const A of I)A(g)}removeAllListeners(){this.listeners.clear()}}function Vi(A){const g=A.chr,I=g.toUpperCase(),t=g.toLowerCase(),e=g.charAt(0).toUpperCase()+g.slice(1);g!==I&&(A._uppercase=I),g!==t&&(A._lowercase=t),g!==e&&(A._cap=e),A._chrprefix_=g.startsWith("chr")?g.substring(3):"chr"+g}function Zi(A){const g=A.split("|").filter(A=>A.length>0);return g[g.length-1]}function zi(A){return A.startsWith("hg")||A.startsWith("GRCh")||"1kg_ref"===A||"b37"===A}function ji(A){return A.startsWith("mm")||A.startsWith("GRCm")||A.startsWith("rheMac")}class Xi{constructor(A,g){this.cache=new Map,this.headings=void 0,this.buildAliases(A,null!=g?g:"")}getChromosomeName(A){var g;return null===(g=this.cache.get(A))||void 0===g?void 0:g.chr}getAliasRecord(A){return this.cache.get(A)}async search(A){return this.cache.get(A)}async preload(A){}buildAliases(A,g){const I=[];for(const t of A){if(this.cache.has(t))continue;const A={chr:t};if(I.push(A),t.startsWith("gi|")){const g=Zi(t);A["ncbi-gi-versioned"]=g;const I=g.lastIndexOf(".");I>0&&(A["ncbi-gi"]=g.substring(0,I))}else"chrM"===t?A.ncbi="MT":"MT"===t?A.ucsc="chrM":t.toLowerCase().startsWith("chr")&&Number.isInteger(Number(t.substring(3)))?A.ncbi=t.substring(3):Number.isInteger(Number(t))&&(A.ucsc="chr"+t),zi(g)?this.addHumanSexAliases(t,A):ji(g)&&this.addMouseSexAliases(t,A)}for(const A of I){Vi(A);for(const g of Object.values(A))this.cache.set(g,A)}}addHumanSexAliases(A,g){switch(A){case"23":g.ucsc="chrX",g.assembly="X";break;case"24":g.ucsc="chrY",g.assembly="Y";break;case"chrX":g.ncbi="23",g.assembly="X";break;case"chrY":g.ncbi="24",g.assembly="Y";break;case"X":g.ucsc="chrX",g.ncbi="23";break;case"Y":g.ucsc="chrY",g.ncbi="24"}}addMouseSexAliases(A,g){switch(A){case"21":g.ucsc="chrX",g.assembly="X";break;case"22":g.ucsc="chrY",g.assembly="Y";break;case"chrX":g.ncbi="21",g.assembly="X";break;case"chrY":g.ncbi="22",g.assembly="Y";break;case"X":g.ucsc="chrX",g.ncbi="21";break;case"Y":g.ucsc="chrY",g.ncbi="22"}}}class $i{constructor(A,g,I=globalThis.fetch.bind(globalThis)){this.url=A,this.chromosomeNames=g,this.fetchImpl=I,this.cache=new Map,this.loaded=!1}get headings(){return this._headings}getChromosomeName(A){var g;return null===(g=this.cache.get(A))||void 0===g?void 0:g.chr}getAliasRecord(A){return this.cache.get(A)}async search(A){return this.loaded||await this.loadAliases(),this.cache.get(A)}async preload(A){this.loaded||await this.loadAliases()}async loadAliases(){if(this.loaded)return;this.loaded=!0;const A=await this.fetchImpl(this.url);if(!A.ok)throw new Error(`Failed to fetch chrom alias file: ${A.status} ${A.statusText}`);const g=(await A.text()).split(/\r?\n/),I=g[0];I&&I.startsWith("#")&&(this._headings=I.substring(1).split("\t").map(A=>A.trim()));for(const A of g){if(!A||A.startsWith("#"))continue;const g=A.split("\t");let I=g.find(A=>this.chromosomeNames.has(A));I||(I=g[0]);const t={chr:I};Vi(t);for(let A=0;A<g.length;A++){t[this._headings?this._headings[A]:String(A)]=g[A]}for(const A of Object.values(t))this.cache.set(A,t)}}}class AB{constructor(A,g){this.cache=new Map,this.headerLoaded=!1;const I=new m(A,{fetch:g});this.bb=new XA({filehandle:I})}get headings(){return this._headings}getChromosomeName(A){var g;return null===(g=this.cache.get(A))||void 0===g?void 0:g.chr}getAliasRecord(A){return this.cache.get(A)}async search(A){if(this.cache.has(A))return this.cache.get(A);await this.ensureHeader();const g=await this.bb.searchExtraIndex(A);if(0===g.length)return;const I=g[0];return this.parseAndCacheFeature(I)}async preload(A){await this.ensureHeader();for(const g of A)this.cache.has(g)||await this.search(g)}async ensureHeader(){if(this.headerLoaded)return;this.headerLoaded=!0;const A=await this.bb.getHeader();A.autoSql&&(this._headings=function(A){const g=[];let I=!1;for(const t of A.split("\n")){const A=t.trim();if("("===A){I=!0;continue}if(")"===A)break;if(!I)continue;const e=A.match(/^\w+\s+(\w+)\s*;/);e&&g.push(e[1])}return g.slice(3)}(A.autoSql))}parseAndCacheFeature(A){if(!A.rest)return;const g=A.rest.split("\t"),I={chr:g[0]};if(this._headings)for(let A=0;A<g.length&&A<this._headings.length;A++)I[this._headings[A]]=g[A];else for(let A=0;A<g.length;A++)I[String(A)]=g[A];Vi(I);for(const A of Object.keys(I))"start"!==A&&"end"!==A&&this.cache.set(I[A],I);return I}}class gB{constructor(A,g){const I=new m(A,g?{fetch:g}:void 0);this.bb=new XA({filehandle:I})}async search(A){const g=await this.bb.searchExtraIndex(A);if(0===g.length)return null;const I=await this.ensureHeader();let t=g[0];for(let A=1;A<g.length;A++)g[A].end-g[A].start>t.end-t.start&&(t=g[A]);const e=t.chromId;if(null==e)return null;const C=I.refsByNumber[e];return C?this.parseFeature(C.name,t.start,t.end,t.rest):null}async getFeatures(A,g,I){const t=await this.bb.getFeatures(A,g,I),e=[];for(const g of t){const I=this.parseFeature(A,g.start,g.end,g.rest);I&&e.push(I)}return e}parseFeature(A,g,I,t){const e=[A,String(g),String(I)];t&&e.push(...t.split("\t"));const C=Qe(e);return C?function(A,g){return{chr:A,start:g.start,end:g.end,name:g.name,score:g.score,strand:"."===g.strand?void 0:g.strand,cdStart:g.cdStart,cdEnd:g.cdEnd,exons:g.exons,color:g.color}}(C.chr,C):null}ensureHeader(){return this.headerPromise||(this.headerPromise=this.bb.getHeader()),this.headerPromise}}const IB=1e5;function tB(A){let g=[],I=null;return async function(t,e){const{chr:C,start:i,end:B}=t;let Q=g.find(A=>function(A,g,I,t){return A.chr===g&&A.start<=I&&A.end>=t}(A,C,i,B));var o;Q||(Q=await async function(g,t,e,C){let i=t,B=e;if(e-t<IB){const A=Math.round(t+(e-t)/2);i=Math.max(0,A-5e4),B=i+IB}i=Math.floor(i),B=Math.ceil(B);const Q={chr:g,start:i,end:B};if(I&&I.interval.chr===g&&I.interval.start<=t&&I.interval.end>=e)return I.promise;const o=A(Q,C).then(A=>(I=null,{chr:g,start:i,end:B,sequence:A}));return o.catch(()=>{I=null}),I={interval:Q,promise:o},o}(C,i,B,e),o=Q,g=g.filter(A=>{return I=A,!((g=o).chr===I.chr&&g.start<=I.start&&g.end>=I.end);var g,I}),g.length>=10&&g.shift(),g.push(Q));const s=i-Q.start,E=B-i;return Q.sequence.substring(s,s+E)}}async function eB(A,g={},I){var t;const e=`https://api.genome.ucsc.edu/getData/sequence?genome=${null!==(t=g.genome)&&void 0!==t?t:"hg38"}&chrom=${A.chr}&start=${A.start}&end=${A.end}`,C=await fetch(e,I?{signal:I}:void 0);if(!C.ok)throw new Error(`UCSC sequence API error: ${C.status} ${C.statusText}`);return(await C.json()).dna}"getBigInt64"in DataView||(DataView.prototype.getBigInt64=function(A,g){return function(A,g,I){const t=Number(!!I),e=Number(!I);return BigInt(A.getInt32(g,I)*e+A.getInt32(g+4,I)*t)<<32n|BigInt(A.getUint32(g,I)*t+A.getUint32(g+4,I)*e)}(this,A,g)}),"getBigUint64"in DataView||(DataView.prototype.getBigUint64=function(A,g){return function(A,g,I){const t=A.getUint32(g,I),e=A.getUint32(g+4,I),C=Number(!!I),i=Number(!I);return BigInt(t*i+e*C)<<32n|BigInt(t*C+e*i)}(this,A,g)});const CB=["T","C","A","G"],iB=[];for(let A=0;A<256;A++)iB.push(CB[A>>6&3]+CB[A>>4&3]+CB[A>>2&3]+CB[3&A]);const BB=iB.map(A=>A.toLowerCase());class QB{filehandle;headerP;indexP;constructor({filehandle:A,path:g}){if(A)this.filehandle=A;else{if(!g)throw new Error("must supply path or filehandle");this.filehandle=new p(g)}}getHeader(){return this.headerP??=this.getHeaderData().catch(A=>{throw this.headerP=void 0,A}),this.headerP}async getHeaderData(){const A=await this.filehandle.read(16,0),g=!0,I=new DataView(A.buffer,A.byteOffset,A.length);let t=0;const e=I.getInt32(t,g);if(t+=4,440477507!==e)throw new Error(`Wrong magic number ${String(e)}`);const C=I.getInt32(t,g);t+=4;const i=I.getUint32(t,g);t+=4;return{version:C,magic:e,sequenceCount:i,reserved:I.getUint32(t,g)}}getIndex(){return this.indexP??=this.getIndexData().catch(A=>{throw this.indexP=void 0,A}),this.indexP}async getIndexData(){const A=await this.getHeader(),g=8+A.sequenceCount*(257+(1===A.version?8:4)),I=await this.filehandle.read(g,8),t=!0,e=new DataView(I.buffer,I.byteOffset,I.length);let C=0;const i=e.getUint32(C,t);C+=4,C+=4;const B=[];for(let g=0;g<i;g++){const g=e.getUint8(C);C+=1;let i="";for(let A=0;A<g;A++)i+=String.fromCodePoint(I[C+A]??0);if(C+=g,1===A.version){const A=Number(e.getBigUint64(C,t));C+=8,B.push({offset:A,name:i})}else{const A=e.getUint32(C,t);C+=4,B.push({offset:A,name:i})}}return Object.fromEntries(B.map(({name:A,offset:g})=>[A,g]))}async getSequenceNames(){const A=await this.getIndex();return Object.keys(A)}async getSequenceSizes(){const A=await this.getIndex(),g=Object.entries(A),I=await Promise.all(g.map(([,A])=>this.getSequenceSizeAt(A)));return Object.fromEntries(g.map(([A],g)=>[A,I[g]]))}async getSequenceSize(A){const g=(await this.getIndex())[A];return g?this.getSequenceSizeAt(g):void 0}async getSequenceSizeAt(A){const g=await this.filehandle.read(4,A);return new DataView(g.buffer,g.byteOffset,g.length).getUint32(0,!0)}async getSequenceRecord(A){const g=await this.filehandle.read(8,A),I=new DataView(g.buffer,g.byteOffset,g.length),t=I.getUint32(0,!0),e=I.getUint32(4,!0),C=8*e+4,i=await this.filehandle.read(C,A+8),B=new Uint32Array(2*e+1),Q=new DataView(i.buffer,i.byteOffset,i.length);for(let A=0;A<2*e+1;A++)B[A]=Q.getUint32(4*A,!0);const o=B.subarray(0,e),s=B.subarray(e,2*e),E=B[2*e]??0,a=8*E+4,r=await this.filehandle.read(a,A+8+C),n=new Uint32Array(2*E),h=new DataView(r.buffer,r.byteOffset,r.length);for(let A=0;A<2*E;A++)n[A]=h.getUint32(4*A,!0);return{dnaSize:t,nBlocks:{starts:o,sizes:s},maskBlocks:{starts:n.subarray(0,E),sizes:n.subarray(E,2*E)},dnaPosition:A+8+C+a}}async getSequence(A,g=0,I=Number.POSITIVE_INFINITY){const t=(await this.getIndex())[A];if(!t)return;const e=await this.getSequenceRecord(t);if(g<0)throw new TypeError("regionStart cannot be less than 0");I>e.dnaSize&&(I=e.dnaSize);const C=this.getOverlappingBlockStartIdx(g,e.nBlocks.starts,e.nBlocks.sizes),i=this.getOverlappingBlockStartIdx(g,e.maskBlocks.starts,e.maskBlocks.sizes),B=Math.ceil((I-g)/4)+1,Q=Math.floor(g/4),o=await this.filehandle.read(B,e.dnaPosition+Q),s=e.nBlocks.starts,E=e.nBlocks.sizes,a=e.maskBlocks.starts,r=e.maskBlocks.sizes,n=[];let h=C,c=i,l=g;for(;l<I;){for(;c<a.length&&a[c]+r[c]<=l;)c++;const A=a[c]??1/0,g=A+(r[c]??0),t=A<=l&&g>l,e=s[h]??1/0,C=e+(E[h]??0);if(l>=e&&l<C){h++;const A=Math.min(C,I),g=A-l;n.push((t?"n":"N").repeat(g)),l=A}else{const e=s[h]??1/0,C=t?Math.min(g,e,I):Math.min(A,e,I),i=t?BB:iB;for(;l<C;){const A=3&l,g=o[(l>>>2)-Q];0===A&&l+4<=C?(n.push(i[g]),l+=4):(n.push(i[g][A]),l+=1)}}}return n.join("")}getOverlappingBlockStartIdx(A,g,I){const t=g.length;if(0===t)return 0;let e=0,C=t;for(;e<C;){const t=e+C>>>1;g[t]+I[t]<=A?e=t+1:C=t}return e}}const oB=new Map,sB=new Map;function EB(A,g){let I=oB.get(A);if(!I){const t=aB(A,g);I=new QB({filehandle:t}),oB.set(A,I)}return I}function aB(A,g){let I=sB.get(A);if(!I){I=new m(A,g?{fetch:g}:void 0),sB.set(A,I)}return I}async function rB(A,g){const I=EB(A,g),t=aB(A,g),e=await I.getIndex(),C=Object.entries(e);if(0===C.length)return{};const i=new Map;for(const[A,g]of C){let I=i.get(g);I||(I=[],i.set(g,I)),I.push(A)}const B=[...i.keys()].sort((A,g)=>A-g),Q=function(A){if(0===A.length)return[];const g=[];let I=A[0],t=A[0]+4;for(let e=1;e<A.length;e++){const C=A[e],i=C+4;C<=t+65536?t=Math.max(t,i):(g.push({start:I,end:t}),I=C,t=i)}return g.push({start:I,end:t}),g}(B),o=new Map;await Promise.all(Q.map(async A=>{const g=A.end-A.start,I=await t.read(g,A.start);o.set(A.start,{buffer:I,rangeStart:A.start})}));const s={};for(const A of B){let g,I=0;for(const[t,e]of o)if(A>=t&&A+4<=t+e.buffer.length){g=e.buffer,I=e.rangeStart;break}if(!g)throw new Error(`Bug: offset ${A} not found in any fetched range`);const t=A-I,e=new DataView(g.buffer,g.byteOffset+t,4).getUint32(0,!0),C=i.get(A);for(const A of C)s[A]=e}return s}function nB(A,g){return async I=>{var t;const e=EB(A,g);try{const A=await e.getSequence(I.chr,I.start,I.end);return null!=A?A:""}catch(g){throw g instanceof Error&&("AbortError"===g.name||(null===(t=g.message)||void 0===t?void 0:t.includes("aborted")))&&(oB.delete(A),sB.delete(A)),g}}}async function hB(A,g){return rB(A,g)}function cB(A,g,I,t){return A+g*Math.floor(t/I)+t%I}class lB{constructor({fasta:A,fai:g,path:I,faiPath:t}){if(A)this.fasta=A;else{if(!I)throw new Error("Need to pass filehandle for fasta or path to localfile");this.fasta=new p(I)}if(g)this.fai=g;else if(t)this.fai=new p(t);else{if(!I)throw new Error("Need to pass filehandle for fai or path to localfile");this.fai=new p(`${I}.fai`)}}async getIndexes(A){return this.indexes??(this.indexes=async function(A,g={}){const I=new TextDecoder("utf8").decode(await A.readFile(g)),t=new Map;for(const A of I.split("\n")){const g=A.replace(/\r$/,"").trim();if(!g)continue;const[I,e,C,i,B]=g.split("\t");if(I.startsWith(">"))throw new Error("found > in sequence name, might have supplied FASTA file for the FASTA index");const Q=+e,o=+i;if(Q>0&&0===o)throw new Error(`Invalid FAI index for "${I}": LINEBASES is 0 for a non-empty sequence. The FASTA file may be missing a trailing newline — try regenerating the .fai index.`);t.set(I,{length:Q,offset:+C,lineLength:o,lineBytes:+B})}return t}(this.fai,A).catch(A=>{throw this.indexes=void 0,A})),this.indexes}async getSequenceNames(A){return[...(await this.getIndexes(A)).keys()]}async getSequenceSizes(A){const g=await this.getIndexes(A);return Object.fromEntries([...g.entries()].map(([A,g])=>[A,g.length]))}async getSequenceSize(A,g){return(await this.getIndexes(g)).get(A)?.length}async hasReferenceSequence(A,g){return(await this.getIndexes(g)).has(A)}async getResiduesByName(A,g,I,t){const e=(await this.getIndexes(t)).get(A);if(void 0!==e)return this.fetchFromIndex(e,g,I,t)}async getSequence(A,g,I,t){return this.getResiduesByName(A,g,I,t)}async fetchFromIndex(A,g=0,I,t){if(g<0)throw new TypeError("regionStart cannot be less than 0");const e=Math.min(I??A.length,A.length);if(g>=e)return"";const C=cB(A.offset,A.lineBytes,A.lineLength,g),i=cB(A.offset,A.lineBytes,A.lineLength,e)-C,B=new TextDecoder("utf8").decode(await this.fasta.read(i,C,t)).replace(/\s+/g,"");if(/[^\x20-\x7e]/.test(B.slice(0,1e3)))throw new Error("Non-ASCII characters detected in sequence. The file may be gzip compressed. Use BgzipIndexedFasta for bgzip files, or decompress the file.");return B}}class dB extends lB{constructor({fasta:A,path:g,fai:I,faiPath:t,gzi:e,gziPath:C}){super({fasta:A,path:g,fai:I,faiPath:t}),A&&e?this.fasta=new Ot({filehandle:A,gziFilehandle:e}):g&&C&&(this.fasta=new Ot({filehandle:new p(g),gziFilehandle:new p(C)}))}}const DB=new Map;function uB(A,g,I,t){const e=A;let C=DB.get(e);if(!C){const i=t?{fetch:t}:void 0;C=I?new dB({fasta:new m(A,i),fai:new m(g,i),gzi:new m(I,i)}):new lB({fasta:new m(A,i),fai:new m(g,i)}),DB.set(e,C)}return C}function wB(A,g,I,t){const e=null!=g?g:A+".fai";return async(g,C)=>{var i;const B=uB(A,e,I,t);try{const A=await B.getSequence(g.chr,g.start,g.end,{signal:C});return null!=A?A:""}catch(g){throw g instanceof Error&&("AbortError"===g.name||(null===(i=g.message)||void 0===i?void 0:i.includes("aborted")))&&DB.delete(A),g}}}async function yB(A,g,I){return uB(A,null!=g?g:A+".fai",void 0,I).getSequenceSizes()}function fB(A){const g=A.split("\t");if(g.length<5)return;const I=parseInt(g[1]),t=parseInt(g[2]);if(isNaN(I)||isNaN(t))return;const{type:e,stain:C}=function(A){if("acen"===A)return{type:"c",stain:0};if(A.startsWith("gpos"))return{type:"p",stain:parseInt(A.substring(4))||0};return{type:"n",stain:0}}(g[4]);return{start:I,end:t,name:g[3],type:e,stain:C}}function SB(A){const g=new Map,I=A.split(/\r?\n/);for(const A of I){if(!A||A.startsWith("#"))continue;const I=A.split("\t");if(I.length<5)continue;const t=I[0],e=fB(A);if(!e)continue;let C=g.get(t);C||(C=[],g.set(t,C)),C.push(e)}return g}async function kB(A,g){const I=await fetch(A,{signal:g});if(!I.ok)throw new Error(`Failed to fetch cytobands: ${I.status} ${I.statusText}`);let t;const e=A.toLowerCase(),C=e.endsWith(".gz")||e.includes(".gz?"),i=I.headers.get("Content-Encoding");if(C&&!("gzip"===i||"deflate"===i)){const A=await I.arrayBuffer();try{const g=new DecompressionStream("gzip"),I=new Response(new Blob([A]).stream().pipeThrough(g));t=await I.text()}catch(g){t=(new TextDecoder).decode(A)}}else t=await I.text();return SB(t)}const GB={hg38:lC},FB={hg38:"Human (GRCh38/hg38)"};class NB{constructor(A,g,I){var t;this._maneSource=null,this._rsdbSource=null,this.id=A,this.name=null==I?void 0:I.name,this.nameSet=null==I?void 0:I.nameSet,this.chromSizes=g,this.chromosomeNames=aC(g),this.cumulativeOffsets=nC(g),this.sequence=null==I?void 0:I.sequence,this._chromosomes=new Map;const e=Object.keys(g),C=new Set(this.chromosomeNames);let i=0;for(const A of this.chromosomeNames)this._chromosomes.set(A,{name:A,bpLength:g[A],order:i++});for(const A of e)C.has(A)||this._chromosomes.set(A,{name:A,bpLength:g[A],order:i++});this._chromAlias=null!==(t=null==I?void 0:I.chromAlias)&&void 0!==t?t:new Xi(e,A),this._cytobands=null==I?void 0:I.cytobands,this._maneBbURL=null==I?void 0:I.maneBbURL,this._rsdbURL=null==I?void 0:I.rsdbURL,this._fetchImpl=null==I?void 0:I.fetchImpl}getChromosome(A){return this._chromosomes.get(A)}getChromosomeLength(A){return this.chromSizes[A]}getChromosomeName(A){var g;return null!==(g=this._chromAlias.getChromosomeName(A))&&void 0!==g?g:A}getAliasRecord(A){return this._chromAlias.getAliasRecord(A)}getCytobands(A){var g;return null===(g=this._cytobands)||void 0===g?void 0:g.get(A)}async getManeTranscript(A){if(!this._maneSource&&this._maneBbURL&&(this._maneSource=new gB(this._maneBbURL,this._fetchImpl)),this._maneSource){const g=await this._maneSource.search(A);if(g)return g}if(!this._rsdbSource&&this._rsdbURL&&(this._rsdbSource=new gB(this._rsdbURL,this._fetchImpl)),this._rsdbSource){const g=await this._rsdbSource.search(A);if(g)return g}return null}async getManeTranscriptAt(A,g){if(!this._maneSource&&this._maneBbURL&&(this._maneSource=new gB(this._maneBbURL,this._fetchImpl)),this._maneSource)try{const I=await this._maneSource.getFeatures(A,g,g+1);for(const A of I)if(A.start<=g&&A.end>=g)return A}catch(A){console.error("Error fetching MANE transcript",A)}return null}}function mB(A){var g,I;const t=null!==(g=A.id)&&void 0!==g?g:"custom",e=null!==(I=A.name)&&void 0!==I?I:FB[t],C=RB(A);return new NB(t,A.chromSizes,{name:e,sequence:C,cytobands:A.cytobands,nameSet:A.nameSet})}async function pB(A){var g,I,t;let e;if(A.chromSizes)e=A.chromSizes;else if(A.chromSizesURL){const I=null!==(g=A.fetchImpl)&&void 0!==g?g:globalThis.fetch.bind(globalThis),t=await I(A.chromSizesURL);if(!t.ok)throw new Error(`Failed to fetch chrom.sizes: ${t.status} ${t.statusText}`);e=cC(await t.text())}else if(A.id&&GB[A.id])e=GB[A.id];else if(A.twoBitURL)e=await hB(A.twoBitURL,A.fetchImpl);else{if(!A.fastaURL)throw new Error(`GenomeConfig must provide chromSizes, chromSizesURL, twoBitURL, fastaURL, or a known genome id. Known IDs: ${Object.keys(GB).join(", ")}`);e=await yB(A.fastaURL,A.indexURL,A.fetchImpl)}const C=null!==(I=A.id)&&void 0!==I?I:"custom",i=null!==(t=A.name)&&void 0!==t?t:FB[C],B=RB(A),Q=Object.keys(e),o=await async function(A,g,I){var t;if(A.chromAliasBbURL){const I=new AB(A.chromAliasBbURL,A.fetchImpl);return await I.preload([...g]),I}if(A.chromAliasURL){const I=null!==(t=A.fetchImpl)&&void 0!==t?t:globalThis.fetch.bind(globalThis),e=new $i(A.chromAliasURL,g,I);return await e.preload([...g]),e}return new Xi([...g],I)}(A,new Set(Q),C);let s=A.cytobands;return!s&&A.cytobandURL&&(s=await kB(A.cytobandURL)),new NB(C,e,{name:i,sequence:B,cytobands:s,chromAlias:o,nameSet:A.nameSet,maneBbURL:A.maneBbURL,maneTrixURL:A.maneTrixURL,rsdbURL:A.rsdbURL,fetchImpl:A.fetchImpl})}function RB(A){var g;const I=[A.sequenceProvider&&"sequenceProvider",A.twoBitURL&&"twoBitURL",A.fastaURL&&"fastaURL",A.ucscGenome&&"ucscGenome"].filter(Boolean);if(I.length>1)throw new Error(`GenomeConfig has multiple sequence sources: ${I.join(", ")}. Set exactly one of: sequenceProvider, twoBitURL, fastaURL, or ucscGenome.`);if(A.sequenceProvider)return A.sequenceProvider;if(A.twoBitURL)return tB(nB(A.twoBitURL,A.fetchImpl));if(A.fastaURL)return tB(wB(A.fastaURL,A.indexURL,A.compressedIndexURL,A.fetchImpl));const t=null!==(g=A.ucscGenome)&&void 0!==g?g:A.id;return t?tB((A,g)=>eB(A,{genome:t},g)):void 0}const UB=mB({id:"hg38",chromSizes:lC}),MB="https://igv.org/genomes/genomes3.json",LB="https://raw.githubusercontent.com/igvteam/igv-data/refs/heads/main/genomes/web/genomes.json";let JB,KB;function bB(A){return JB?Promise.resolve():KB||(KB=async function(A){var g,I,t;const e=null!==(g=A.fetchImpl)&&void 0!==g?g:globalThis.fetch.bind(globalThis),C=new Map;if(!1!==A.loadDefaults){const g=null!==(I=A.primaryTimeout)&&void 0!==I?I:2e3,i=null!==(t=A.backupTimeout)&&void 0!==t?t:1e4;let B=!1;try{xB(await YB(MB,g,e),C),B=!0}catch(A){console.error("Error loading default genomes:",A)}if(!B)try{xB(await YB(LB,i,e),C)}catch(A){console.error("Error loading backup genomes:",A)}}if(A.genomeList)if("string"==typeof A.genomeList){xB(await YB(A.genomeList,1e4,e),C)}else xB(A.genomeList,C);JB=C}(null!=A?A:{}).finally(()=>{KB=void 0}),KB)}async function vB(A,g){if(await bB(g?{fetchImpl:g.fetchImpl}:void 0),"string"==typeof A){if(A.startsWith("{"))try{return JSON.parse(A)}catch(A){}const g=null==JB?void 0:JB.get(A);if(g)return g;throw new Error(`Unknown genome ID: "${A}". Known genomes: `+(JB?[...JB.keys()].slice(0,10).join(", ")+"...":"(registry not loaded)"))}const I=A.fastaURL||A.twoBitURL||A.sequenceProvider||A.chromSizes;if(A.id&&!I){const g=null==JB?void 0:JB.get(A.id);if(g)return{...g,...A}}return A}async function YB(A,g,I){const t=new AbortController,e=setTimeout(()=>t.abort(),g);try{const g=await I(A,{signal:t.signal});if(!g.ok)throw new Error(`HTTP ${g.status}: ${g.statusText}`);return await g.json()}finally{clearTimeout(e)}}function xB(A,g){for(const I of A)I.id&&g.set(I.id,I)}const HB=new Set(["bigwig","gtx","ucsc","text","memory"]);function qB(A){return HB.has(A)}function _B(A){var g;const I=A.url,t=A.type;if(!I){const A=`Cannot resolve data source config: no URL and unknown type "${t}"`;throw mC.error(A),new Error(A)}const e=A.format,C=null!=e?e:eC(I),i={};return A.oauthToken&&(i.oauthToken=A.oauthToken),A.basicAuth&&(i.basicAuth=A.basicAuth),A.headers&&(i.headers=A.headers),A.withCredentials&&(i.withCredentials=A.withCredentials),C&&("bigwig"===C||"bw"===C||iC(C))?(mC.warn(`Unknown data source type "${t}", inferred "bigwig" from URL: ${I}`),{type:"bigwig",url:I,windowFunction:A.windowFunction,...i}):"gtx"===C?(mC.warn(`Unknown data source type "${t}", inferred "gtx" from URL: ${I}`),{type:"gtx",url:I,experimentId:null!==(g=A.experimentId)&&void 0!==g?g:"",windowFunction:A.windowFunction,...i}):(mC.warn(`Unknown data source type "${t}", inferred "text" from URL: ${I}`),{type:"text",url:I,format:null!=e?e:C,indexURL:A.indexURL,indexed:A.indexed,...i})}const TB=(()=>{const A=new Map,g=["A","G","C","T","Y","R","W","S","K","M","D","V","H","B","N","X"],I=["T","C","G","A","R","Y","W","S","M","K","H","B","D","V","N","X"];for(let t=0;t<g.length;t++)A.set(g[t],I[t]),A.set(g[t].toLowerCase(),I[t].toLowerCase());return A})();function WB(A){var g;return null!==(g=TB.get(A))&&void 0!==g?g:A}const PB={TTT:"F",TTC:"F",TTA:"L",TTG:"L",CTT:"L",CTC:"L",CTA:"L",CTG:"L",ATT:"I",ATC:"I",ATA:"I",ATG:"M",GTT:"V",GTC:"V",GTA:"V",GTG:"V",TCT:"S",TCC:"S",TCA:"S",TCG:"S",AGT:"S",AGC:"S",CCT:"P",CCC:"P",CCA:"P",CCG:"P",ACT:"T",ACC:"T",ACA:"T",ACG:"T",GCT:"A",GCC:"A",GCA:"A",GCG:"A",TAT:"Y",TAC:"Y",TAA:"STOP",TAG:"STOP",TGA:"STOP",CAT:"H",CAC:"H",CAA:"Q",CAG:"Q",AAT:"N",AAC:"N",AAA:"K",AAG:"K",GAT:"D",GAC:"D",GAA:"E",GAG:"E",TGT:"C",TGC:"C",TGG:"W",CGT:"R",CGC:"R",CGA:"R",CGG:"R",AGA:"R",AGG:"R",GGT:"G",GGC:"G",GGA:"G",GGG:"G"};function OB(A,g=!1){var I;const t=[[],[],[]];for(let e=0;e<3;e++){let C=e;for(;A.length-C>=3;){let i=A.slice(C,C+3);g&&(i=i.split("").reverse().join(""));const B=null!==(I=PB[i.toUpperCase()])&&void 0!==I?I:"";t[e].push({codons:i,aminoA:B}),C+=3}}return t}function VB(A,g){var I;return g.color?g.color:"dna"===g.sequenceType?null!==(I=g.nucleotideColors[A.toUpperCase()])&&void 0!==I?I:"#808080":g.nonDnaColor}function ZB(A,g,I,t){if(!g||!g.sequence)return;let e=g.sequence;I.reversed&&(e=e.split("").map(A=>WB(A)).join(""));const C=g.bpStart,i=1+t.bpStart+t.pixelWidth*t.bpPerPixel,{sequenceHeight:B,frameBorder:Q}=I;for(let g=Math.floor(t.bpStart);g<=i;g++){const i=Math.floor(g-C);if(i<0||i>=e.length)continue;const o=(g-t.bpStart)/t.bpPerPixel,s=1/t.bpPerPixel,E=e[i],a=VB(E,I);if(t.bpPerPixel>.1)A.fillStyle=a,A.fillRect(o,Q,s,B-Q);else{const g=o+.5*(s-A.measureText(E).width);A.strokeStyle=a,A.strokeText(E,g,B)}}if(I.frameTranslate){let g=B+2*Q;const i=OB(e,I.reversed),o=I.codonBorderRadius;for(let e=0;e<i.length;e++){const B=i[e];for(let i=0;i<B.length;i++){let Q=i%2==0?I.frameColor1:I.frameColor2;const s=B[i],E=C+e+3*i-t.bpStart,a=Math.floor(E/t.bpPerPixel),r=Math.floor((E+3)/t.bpPerPixel),n=Math.round((a+r)/2);if(r<0)continue;if(a>t.pixelWidth)break;let h=s.aminoA,c=!1;if(s.aminoA.indexOf("STOP")>-1?(Q=I.stopCodonColor,h="STOP",c=!0):"M"===s.aminoA&&(Q=I.startCodonColor,h="START",c=!0),A.fillStyle=Q,c&&o>0?(A.beginPath(),A.roundRect(a,g,r-a,I.frameHeight,o),A.fill()):A.fillRect(a,g,r-a,I.frameHeight),t.bpPerPixel<=.1){A.font=I.frameFont;const t=A.measureText(h).width,e=c&&I.codonLabelColor?I.codonLabelColor:I.frameLabelColor;A.fillStyle=e,A.fillText(h,n-t/2,g+15)}}g+=I.frameHeight+Q}}}class zB{constructor(A,g=10){this.sequenceProvider=A,this.bppThreshold=g}async fetch(A,g,I){if(g>this.bppThreshold)return[];if(I.aborted)return[];const t=Math.floor(A.start),e=Math.floor(A.end);return[{bpStart:t,sequence:await this.sequenceProvider({chr:A.chr,start:t,end:e},I)}]}}class jB extends UC{constructor(A,g={}){var I;const t=zC(g.theme),e=Ai(t,g.config);super(A,g.locus,e,g.canvasProvider),this.type="sequence",this._sequence=null,this._theme=t,this._bppThreshold=null!==(I=g.bppSequenceThreshold)&&void 0!==I?I:10}shouldFetchSequence(A){return A<=this._bppThreshold}setFeatures(A){this._sequence=A.length>0?A[0]:null,this.render()}setSequence(A){this._sequence=A,this.render()}getSequence(){return this._sequence}toggleReversed(){this.setConfig({reversed:!this._config.reversed})}toggleFrameTranslate(){this.setConfig({frameTranslate:!this._config.frameTranslate})}getContextMenuItems(A,g){return[{label:this._config.reversed?"Forward":"Reverse",action:()=>this.toggleReversed()},{label:this._config.frameTranslate?"Close Translation":"Three-frame Translate",action:()=>this.toggleFrameTranslate()}]}computeHeight(A){return this._config.frameTranslate?this._config.translatedHeight:this._config.defaultHeight}getBackground(){return this._config.background}doRender(A,g,I,t){ZB(A,this._sequence,this._config,t)}setTheme(A){this._config=Ai(A),this._theme=A,this.render()}serializeConfig(A){const g=Ai(A),I={};this._config.sequenceType!==g.sequenceType&&(I.sequenceType=this._config.sequenceType),this._config.reversed!==g.reversed&&(I.reversed=this._config.reversed),this._config.frameTranslate!==g.frameTranslate&&(I.frameTranslate=this._config.frameTranslate),this._config.color!==g.color&&(I.color=this._config.color),this._config.background!==g.background&&(I.background=this._config.background);const t={type:"sequence"};return Object.keys(I).length>0&&(t.config=I),t}}class XB{constructor(A){this.cache=new rI(A)}setFeatures(A){this.cache=new rI(A)}setChromNameResolver(A){this._resolveChromName=A}setCumulativeOffsets(A){this._cumulativeOffsets=A}async fetch(A,g,I){if(og(A)&&this._cumulativeOffsets)return this.fetchWG();const t=this._resolveChromName?this._resolveChromName(A.chr):A.chr;return this.cache.queryFeatures(t,A.start,A.end)}fetchWG(){const A=this._cumulativeOffsets;if(!A)throw new Error("fetchWG called without cumulativeOffsets");const g=aC(Object.fromEntries(A.chromosomeNames.map(g=>{var I;return[g,null!==(I=A.offsets[g])&&void 0!==I?I:0]}))),I=[],t=this.cache.getAllFeatures();for(const e of g){const g=t[e];if(!g)continue;const C=A.offsets[e];if(void 0!==C)for(const A of g)I.push({...A,chr:"all",start:C+A.start,end:C+A.end})}return I.sort((A,g)=>A.start-g.start),I}}function $B(A,g,I,t,e){g&&0!==g.length?("proportional"===I.displayMode?function(A,g,I,t){var e,C,i,B,Q;const{bpStart:o,bpPerPixel:s,pixelWidth:E}=t,a="UP"===I.arcOrientation,r=a?I.height:0,n=function(A){var g,I;let t=0;for(const e of A){const A=null!==(I=null!==(g=e.value)&&void 0!==g?g:e.score)&&void 0!==I?I:0;isNaN(A)||(t=Math.max(t,A))}return{min:0,max:t}}(g),h=I.logScale?(I.height-1)/Math.log10(n.max+1):(I.height-1)/(n.max||1);for(const A of g)A.drawState=void 0;const c=vC(g,o+E*s);for(let n=0;n<c;n++){const c=g[n],l=null!==(C=null!==(e=c.value)&&void 0!==e?e:c.score)&&void 0!==C?C:0;if(void 0===l||isNaN(l))continue;const d=Math.round((I.logScale?Math.log10(l+1):l)*h);if(c.chr1===c.chr2||"all"===c.chr){const g=(c.start1+c.end1)/2,t=(c.start2+c.end2)/2,e=Math.min(g,t),C=Math.max(g,t);let Q=Math.round((e-o)/s),E=Math.round((C-o)/s)-Q;E<3&&(E=3,Q--);const n=E/2,h=Q+E/2,l=a,D=null!==(i=c.color)&&void 0!==i?i:I.color;if(A.strokeStyle=D,A.lineWidth=null!==(B=c.thickness)&&void 0!==B?B:I.thickness,A.beginPath(),A.ellipse(h,r,n,d,0,0,Math.PI,l),A.stroke(),I.alpha>0){const g=I.useScore&&Number.isFinite(c.score)?Math.max(.1,Math.round(10*gQ(c.score))/10):1;A.fillStyle=tQ(D,g*I.alpha),A.fill()}if(I.showBlocks&&"all"!==c.chr){A.fillStyle=D;const g=(c.start1-o)/s,t=(c.end1-o)/s,e=(c.start2-o)/s,C=(c.end2-o)/s,i=a?-I.blockHeight:I.blockHeight;A.fillRect(g,r,t-g,i),A.fillRect(e,r,C-e,i)}c.drawState={type:"proportional",xc:h,yc:r,radiusX:n,radiusY:d}}else{if(E<=0)continue;const g=Math.round((c.start-o)/s);if(Math.round((c.end-o)/s)<0||g>E)continue;const e=Math.min(d,I.height-13);AQ(A,c,I,t,null!==(Q=c.color)&&void 0!==Q?Q:I.color,a,e)}}}(A,g,I,t):function(A,g,I,t){var e,C;const{bpStart:i,bpPerPixel:B,pixelWidth:Q,viewportWidth:o}=t,s="UP"===I.arcOrientation,E=s?I.height:0,{sinTheta:a,cosTheta:r,theta:n}=function(A,g,I){const{bpStart:t,bpPerPixel:e,pixelWidth:C,viewportWidth:i}=I;let B=0;for(const g of A){const A=(g.start-t)/e,I=(g.end-t)/e;A>=0&&I<=C&&(B=Math.max(B,I-A))}const Q=Math.min(i,B)/2;let o=Math.PI/4;if(B>0){o=function(A){const g=[.01570925532366355,.15838444032453644,.3249196962329063,.5095254494944288,.7265425280053609,.9999999999999999],I=[.031415926535897934,.3141592653589793,.6283185307179586,.9424777960769379,1.2566370614359172,1.5707963267948966];let t=0;for(;t<g.length&&!(g[t]>A);t++);const e=0===t?0:g[t-1],C=t<g.length?g[t]:1,i=(A-e)/(C-e),B=0===t?0:I[t-1],Q=t<I.length?I[t]:Math.PI/2;return Math.min(Math.PI/2,B+i*(Q-B))}((g.height-10)/Q)}return{sinTheta:Math.sin(o),cosTheta:Math.cos(o),theta:o}}(g,I,t);A.font=I.font,A.textAlign="center";for(const A of g)A.drawState=void 0;const h=vC(g,i+Q*B);for(let c=0;c<h;c++){const h=g[c];let l=null!==(e=h.color)&&void 0!==e?e:I.color;if(I.useScore&&Number.isFinite(h.score)&&(l=tQ(l,I.transparency*gQ(h.score))),A.lineWidth=null!==(C=h.thickness)&&void 0!==C?C:I.thickness,h.chr1===h.chr2||"all"===h.chr){const g=(h.start1+h.end1)/2,t=(h.start2+h.end2)/2,e=Math.min(g,t),C=Math.max(g,t);let c=Math.round((e-i)/B),d=Math.round((C-i)/B);if(d<0||c>Q)continue;let D=d-c;D<3&&(D=3,c--);const u=D/2,w=u/a,y=r*w,f=c+u;let S,k,G;if(s?(S=I.height+y,k=Math.PI+Math.PI/2-n,G=Math.PI+Math.PI/2+n):(S=-y,k=Math.PI/2-n,G=Math.PI/2+n),I.showBlocks&&"all"!==h.chr){A.fillStyle=l;const g=(h.start1-i)/B,t=(h.end1-i)/B,e=(h.start2-i)/B,C=(h.end2-i)/B,Q=s?-I.blockHeight:I.blockHeight;A.fillRect(g,E,t-g,Q),A.fillRect(e,E,C-e,Q)}!I.useScore&&D>o&&(l=tQ(l,I.alpha)),A.strokeStyle=l,A.fillStyle=l,A.beginPath(),A.arc(f,S,w,k,G,!1),A.stroke(),h.drawState={type:"nested",xc:f,yc:S,r:w}}else AQ(A,h,I,t,l,s)}}(A,g,I,t),e&&MC(A,e,I.height)):e&&MC(A,e,I.height)}function AQ(A,g,I,t,e,C,i){const{bpStart:B,bpPerPixel:Q,pixelWidth:o}=t;let s=Math.round((g.start-B)/Q),E=Math.round((g.end-B)/Q);if(E<0||s>o)return;let a=E-s;a<3&&(a=3,s--);const r=g.chr===g.chr1?g.chr2:g.chr1,n=null!=i?i:I.height/2;if(A.fillStyle=tQ(e,.5),A.font=I.font,A.textAlign="center",C){const t=I.height-n;A.fillRect(s,t,a,n),A.fillStyle=e,A.fillText(r,s+a/2,t-5),g.drawState={type:"rect",x:s,y:t,w:a,h:n}}else A.fillRect(s,0,a,n),A.fillStyle=e,A.fillText(r,s+a/2,n+13),g.drawState={type:"rect",x:s,y:0,w:a,h:n}}function gQ(A){return Math.min(1,.11+A/779*.89)}const IQ=new Map;function tQ(A,g){const I=`${A}_${g}`;let t=IQ.get(I);if(t)return t;const e=function(A){const g=A.match(/^rgba?\((\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);if(g)return{r:parseInt(g[1]),g:parseInt(g[2]),b:parseInt(g[3])};const I=A.match(/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i);if(I)return{r:parseInt(I[1],16),g:parseInt(I[2],16),b:parseInt(I[3],16)};return}(A);return t=e?`rgba(${e.r},${e.g},${e.b},${g})`:A,IQ.set(I,t),t}function eQ(A,g,I,t){const e=(g+1).toLocaleString(),C=I.toLocaleString();return t&&"."!==t?`${A}:${e}-${C} (${t})`:`${A}:${e}-${C}`}class CQ extends UC{constructor(A,g){const I=gi(zC(g.theme),g.config);super(A,g.locus,I,g.canvasProvider),this.type="interact",this.features=g.features,this._name=g.name}setFeatures(A){this.features=A,this.render()}computeHeight(A){return this.config.height}getBackground(){return this.config.background}renderLabelOverlay(A,g,I){this.externalUIEnabled||this._name&&MC(A,{name:this._name,background:this._config.background,labelColor:"#333"},I)}doRender(A,g,I,t){const e=I!==this._config.height?{...this._config,height:I}:this._config;$B(A,this.features,e,t,this._name&&!this.externalUIEnabled?{name:this._name,background:this._config.background,labelColor:"#333"}:void 0)}getUIOverlayState(){if(this._name)return{label:{text:this._name,background:this._config.background,color:"#333"}}}hitTest(A,g){const I=A-this.getCanvasViewportOffset(),t=[];this._config.displayMode;for(const A of this.features){if(!A.drawState)continue;const e=A.drawState;if("nested"===e.type){const C=I-e.xc,i=g-e.yc,B=Math.abs(Math.sqrt(C*C+i*i)-e.r);B<5&&t.push({score:B,feature:A})}else if("proportional"===e.type){const C=I-e.xc,i=g-e.yc,B=C/e.radiusX*(C/e.radiusX)+i/e.radiusY*(i/e.radiusY);B<=1&&t.push({score:1/B,feature:A})}else if("rect"===e.type){const C=5;if(I>=e.x-C&&I<=e.x+e.w+C&&g>=e.y&&g<=e.y+e.h){t.push({score:-Math.abs(I-(e.x+e.w/2)),feature:A});break}}}return t.length>1&&t.sort((A,g)=>A.score-g.score),t.map(A=>({feature:A.feature,popupData:this.buildPopupData(A.feature)}))}buildPopupData(A){const g=[];return g.push({name:"Region 1",value:eQ(A.chr1,A.start1,A.end1,A.strand1)}),g.push({name:"Region 2",value:eQ(A.chr2,A.start2,A.end2,A.strand2)}),A.name&&g.push({name:"Name",value:A.name}),void 0!==A.value&&g.push({name:"Value",value:A.value}),void 0!==A.score&&g.push({name:"Score",value:A.score}),void 0!==A.type&&g.push({name:"Type",value:A.type}),g}setTheme(A){this._config=gi(A),this.render()}serializeConfig(A){const g=gi(zC(A));return{type:"interact",name:this._name,config:oi(this._config,g)}}getAxisInfo(){if("proportional"!==this._config.displayMode)return;const A=iQ(this.features);return{label:this._name,dataRange:A,flipAxis:"DOWN"===this._config.arcOrientation,logScale:this._config.logScale}}getContextMenuItems(A,g){const I=[];return I.push({label:"Nested Arcs",type:"checkbox",checked:"nested"===this._config.displayMode,action:()=>this.setConfig({displayMode:"nested"})}),I.push({label:"Proportional Arcs",type:"checkbox",checked:"proportional"===this._config.displayMode,action:()=>this.setConfig({displayMode:"proportional"})}),I.push({label:"",type:"separator"}),I.push({label:"Toggle Arc Direction",action:()=>this.setConfig({arcOrientation:"UP"===this._config.arcOrientation?"DOWN":"UP"})}),I.push({label:this._config.showBlocks?"Hide Blocks":"Show Blocks",action:()=>this.setConfig({showBlocks:!this._config.showBlocks})}),I}getNumericState(){if("proportional"!==this._config.displayMode)return;const A=iQ(this.features);return{autoscale:!0,logScale:this._config.logScale,dataRange:A,setAutoscale:()=>{},setLogScale:A=>this.setConfig({logScale:A}),setDataRange:()=>{}}}}function iQ(A){var g,I;let t=0;for(const e of A){const A=null!==(I=null!==(g=e.value)&&void 0!==g?g:e.score)&&void 0!==I?I:0;isNaN(A)||(t=Math.max(t,A))}return{min:0,max:t}}function BQ(A,g,I,t,e){if(0===g.length)return;const{display:C}=I,i=C.includes("shaded"),B=C.includes("bar"),Q=C.includes("summit");if(!i&&!B&&!Q)return;const o=t.bpStart+t.pixelWidth*t.bpPerPixel;for(let C=bC(g,t.bpStart);C<g.length;C++){const s=g[C];if(s.start>o)break;const E=(s.start-t.bpStart)/t.bpPerPixel,a=(s.end-t.bpStart)/t.bpPerPixel,r=Math.max(1,a-E);if(i&&(A.fillStyle=I.color,A.fillRect(E,0,r,e)),B&&(A.fillStyle=I.color,A.fillRect(E,e-I.barHeight,r,I.barHeight)),Q&&null!=s.peak){const g=(s.start+s.peak-t.bpStart)/t.bpPerPixel;if(g>=0&&g<=t.pixelWidth){const t=I.summitSize/2;A.fillStyle=I.summitColor,A.beginPath(),A.moveTo(g-t,e),A.lineTo(g,e-I.summitSize),A.lineTo(g+t,e),A.closePath(),A.fill()}}}}class QQ extends UC{constructor(A,g){const I=Ii(zC(g.theme),g.config);super(A,g.locus,I,g.canvasProvider),this.features=[],this._featureRects=[],this._lastRc=null,this._lastHeight=0,this.type="peakOverlay",g.features&&(this.features=g.features)}setFeatures(A){this.features=A,this.render()}computeHeight(A){var g;return null!==(g=this._config.height)&&void 0!==g?g:50}getBackground(){return"transparent"}doRender(A,g,I,t){this._lastRc=t,this._lastHeight=I;const e=t.bpPerPixel*t.viewportWidth;this._config.visibilityWindow>0&&e>this._config.visibilityWindow?this._featureRects=[]:(BQ(A,this.features,this._config,t,I),this._featureRects=this.computeFeatureRects(t,I))}getFeatureRects(){const A=this.currentPixelShiftOffset;return 0===A?this._featureRects:this._featureRects.map(g=>({...g,x:g.x+A}))}computeFeatureRects(A,g){const I=[],t=A.bpStart+A.pixelWidth*A.bpPerPixel;for(let e=bC(this.features,A.bpStart);e<this.features.length;e++){const C=this.features[e];if(C.start>t)break;const i=(C.start-this._locus.start)/A.bpPerPixel,B=(C.end-this._locus.start)/A.bpPerPixel;I.push({feature:C,x:i,y:0,width:Math.max(1,B-i),height:g,color:this._config.color})}return I}hitTest(A,g){if(!this._lastRc)return[];const I=this.viewportXToGenomicBp(A),t=[];for(let A=bC(this.features,I);A<this.features.length;A++){const g=this.features[A];if(g.start>I)break;I<=g.end&&t.push({feature:g,popupData:oQ(g)})}return t}getContextMenuItems(A,g){const I=this._config.display;return["shaded","bar","summit","none"].map(A=>({label:`Peak: ${A}`,type:"checkbox",checked:I.includes(A),action:()=>{if("none"===A)this.setConfig({display:I.includes("none")?["shaded"]:["none"]});else{const g=I.filter(g=>g!==A&&"none"!==g),t=I.includes(A)?g:[...g,A];this.setConfig({display:t.length>0?t:["none"]})}}}))}setTheme(A){this._config=Ii(A),this.render()}serializeConfig(A){const g=Ii(zC(A)),I={};let t=!1;const e=this._config;return e.background!==g.background&&(I.background=e.background,t=!0),e.barHeight!==g.barHeight&&(I.barHeight=e.barHeight,t=!0),e.summitColor!==g.summitColor&&(I.summitColor=e.summitColor,t=!0),e.summitSize!==g.summitSize&&(I.summitSize=e.summitSize,t=!0),e.color!==g.color&&(I.color=e.color,t=!0),e.visibilityWindow!==g.visibilityWindow&&(I.visibilityWindow=e.visibilityWindow,t=!0),(e.display.length!==g.display.length||e.display.some((A,I)=>A!==g.display[I]))&&(I.display=e.display,t=!0),{type:"peakOverlay",config:t?I:void 0}}}function oQ(A){const g=[];return A.name&&g.push({name:"Peak",value:A.name}),g.push({name:"Region",value:`${A.chr}:${A.start.toLocaleString()}-${A.end.toLocaleString()}`}),null!=A.signal&&g.push({name:"Signal",value:A.signal.toPrecision(4)}),null!=A.pValue&&g.push({name:"-log10(p)",value:A.pValue.toPrecision(4)}),null!=A.qValue&&g.push({name:"-log10(q)",value:A.qValue.toPrecision(4)}),null!=A.peak&&g.push({name:"Summit",value:(A.start+A.peak).toLocaleString()}),g}class sQ extends UC{constructor(A,g,I,t){super(A,g,I,t),this._children=[],this._expanded=!1}get expanded(){return this._expanded}set expanded(A){var g;this._expanded!==A&&(this._expanded=A,null===(g=this.onExpandedChanged)||void 0===g||g.call(this,A,this))}addChild(A,g){var I;this._children.push({track:A,name:g}),null===(I=this.onChildrenChanged)||void 0===I||I.call(this,this)}removeChild(A){var g;const I=this._children.length;this._children="string"==typeof A?this._children.filter(g=>g.name!==A):this._children.filter(g=>g.track!==A),this._children.length!==I&&(null===(g=this.onChildrenChanged)||void 0===g||g.call(this,this))}reorderChildren(A,g){var I;if(A<0||A>=this._children.length)return;if(g<0||g>=this._children.length)return;const[t]=this._children.splice(A,1);this._children.splice(g,0,t),null===(I=this.onChildrenChanged)||void 0===I||I.call(this,this)}getChildren(){return this._children}serializeChildren(A){return this._children.map(({track:g,name:I})=>{const t=g.serializeConfig(A);return I?{...t,name:I}:t})}}class EQ extends sQ{constructor(A,g){var I;const t=ti(zC(g.theme),g.config);super(A,g.locus,t,null!==(I=g.canvasProvider)&&void 0!==I?I:S),this._mergedFeatures=null,this._userOverrides={},this._renderedDataRange=null,this._coordinatedDataRange=null,this._lastPropagatedHeight=-1,this.type="merged",this._children=[...g.childTracks],this._name=g.name,g.config&&(this._userOverrides={...g.config}),this.propagateSharedSettings()}get childTracks(){return this._children}setFeatures(A){var g;if(0===A.length)this._mergedFeatures=null;else{this._mergedFeatures=A[0];for(let A=0;A<this._children.length;A++){const I=this._children[A].track,t=null!==(g=this._mergedFeatures.featureArrays[A])&&void 0!==g?g:[];"setFeatures"in I&&"function"==typeof I.setFeatures&&(I.suspendRendering(),I.setFeatures(t))}}this.render()}setLocus(A){this._locus=A;for(const{track:g}of this._children)g.suspendRendering(),g.setLocus(A);this.render()}setCoordinatedDataRange(A){this._coordinatedDataRange=A}setConfig(A){Object.assign(this._userOverrides,A),super.setConfig(A),this.propagateSharedSettings()}setTheme(A){this._config=ti(A,this._userOverrides);for(const{track:g}of this._children)g.setTheme(A);this.render()}computeHeight(A){return this._config.height}getBackground(){return this._config.background}renderLabelOverlay(A,g,I){this.externalUIEnabled||this._name&&MC(A,{name:this._name,background:this._config.background,labelColor:this._config.labelColor},I)}doRender(A,g,I,t){var e,C;for(const{track:A}of this._children)A.suspendRendering();if(I!==this._lastPropagatedHeight){this._lastPropagatedHeight=I;for(const{track:A}of this._children)"setConfig"in A&&"function"==typeof A.setConfig&&A.setConfig({height:I})}if(this._coordinatedDataRange){const A=this._coordinatedDataRange;this._config={...this._config,dataRange:A};for(const{track:g}of this._children){const I=null===(e=g.getNumericState)||void 0===e?void 0:e.call(g);I&&(I.setAutoscale(!1),I.setDataRange(A.min,A.max))}}else if(this._config.autoscale&&this._mergedFeatures){const A=t.bpStart+(t.pixelWidth-t.viewportWidth)/2*t.bpPerPixel,g=A+t.viewportWidth*t.bpPerPixel,I=this._mergedFeatures.getMax(A,g),e=this._mergedFeatures.getMin(A,g),i=I<0?0:I,B={min:I>0?Math.min(0,e):e,max:i};this._config={...this._config,dataRange:B};for(const{track:A}of this._children){const g=null===(C=A.getNumericState)||void 0===C?void 0:C.call(A);g&&(g.setAutoscale(!1),g.setDataRange(B.min,B.max))}}for(const{track:e}of this._children)e.renderToContext&&(A.save(),A.globalAlpha=this._config.alpha,e.renderToContext(A,g,I,{skipBackground:!0,rc:t}),A.restore());this._renderedDataRange=this.readChildRenderedRange();for(const{track:A}of this._children)A.discardPendingRender(),A.resumeRendering();this.renderLabelOverlay(A,g,I)}getUIOverlayState(){if(this._name)return{label:{text:this._name,background:this._config.background,color:this._config.labelColor}}}hitTest(A,g){const I=this.viewportXToGenomicBp(A),t=[];for(let e=0;e<this._children.length;e++){const{track:C,name:i}=this._children[e],B=C instanceof UC?C.genomicBpToViewportX(I):A,Q=C.hitTest(B,g);if(Q.length>0){const A={name:"Track",value:null!=i?i:`Track ${e+1}`,borderTop:e>0};for(const g of Q)t.push({feature:g.feature,popupData:[A,...g.popupData]})}}return t}getFeatureRects(){const A=this.currentPixelShiftOffset,g=this._children.flatMap(({track:A})=>"getFeatureRects"in A&&"function"==typeof A.getFeatureRects?A.getFeatureRects():[]);return 0===A?g:g.map(g=>({...g,x:g.x+A}))}getAxisInfo(){var A;const g=null!==(A=this._renderedDataRange)&&void 0!==A?A:this._config.dataRange;if(this._name||g)return{dataRange:g,label:this._name,flipAxis:this._config.flipAxis||void 0,logScale:this._config.logScale||void 0}}getNumericState(){if(this._children.some(({track:A})=>{var g;return null!=(null===(g=A.getNumericState)||void 0===g?void 0:g.call(A))}))return{autoscale:this._config.autoscale,logScale:this._config.logScale,dataRange:this._config.dataRange,setAutoscale:A=>{var g;if(this.setConfig({autoscale:A}),!A)for(const{track:A}of this._children){const I=null===(g=A.getNumericState)||void 0===g?void 0:g.call(A);I&&I.setAutoscale(!0)}},setLogScale:A=>{var g;this.setConfig({logScale:A});for(const{track:I}of this._children){const t=null===(g=I.getNumericState)||void 0===g?void 0:g.call(I);(null==t?void 0:t.setLogScale)&&t.setLogScale(A)}},setDataRange:(A,g)=>{var I;this.setConfig({dataRange:{min:A,max:g},autoscale:!1});for(const{track:t}of this._children){const e=null===(I=t.getNumericState)||void 0===I?void 0:I.call(t);e&&(e.setDataRange(A,g),e.setAutoscale(!1))}}}}getContextMenuItems(A,g){const I=[];return this._children.some(({track:A})=>{var g;return null!=(null===(g=A.getNumericState)||void 0===g?void 0:g.call(A))})&&I.push({label:"Flip y-axis",type:"checkbox",checked:this._config.flipAxis,action:()=>{var A;const g=!this._config.flipAxis;this.setConfig({flipAxis:g});for(const{track:I}of this._children){(null===(A=I.getNumericState)||void 0===A?void 0:A.call(I))&&"setConfig"in I&&I.setConfig({flipAxis:g})}}}),I.push({type:"separator",label:""}),I.push({label:`Transparency: ${Math.round(100*this._config.alpha)}%`,children:[.2,.3,.5,.7,.8,1].map(A=>({label:`${Math.round(100*A)}%`,type:"checkbox",checked:Math.abs(this._config.alpha-A)<.01,action:()=>this.setConfig({alpha:A})}))}),I.push({label:"Separate tracks",action:()=>{var A;null===(A=this.onConfigChanged)||void 0===A||A.call(this)}}),I}serializeConfig(A){const g=ti(A),I={};let t=!1;const e=this._config;return e.height!==g.height&&(I.height=e.height,t=!0),e.alpha!==g.alpha&&(I.alpha=e.alpha,t=!0),e.autoscale!==g.autoscale&&(I.autoscale=e.autoscale,t=!0),!e.autoscale&&e.dataRange&&(I.dataRange=e.dataRange,t=!0),e.flipAxis!==g.flipAxis&&(I.flipAxis=e.flipAxis,t=!0),e.logScale!==g.logScale&&(I.logScale=e.logScale,t=!0),e.background!==g.background&&(I.background=e.background,t=!0),{type:"merged",tracks:this.serializeChildren(A),config:t?I:void 0}}propagateSharedSettings(){var A;for(const{track:g}of this._children){(null===(A=g.getNumericState)||void 0===A?void 0:A.call(g))&&"setConfig"in g&&g.setConfig({flipAxis:this._config.flipAxis,logScale:this._config.logScale})}}readChildRenderedRange(){var A;let g=1/0,I=-1/0,t=!1;for(const{track:e}of this._children){const C=null===(A=e.getAxisInfo)||void 0===A?void 0:A.call(e);(null==C?void 0:C.dataRange)&&(g=Math.min(g,C.dataRange.min),I=Math.max(I,C.dataRange.max),t=!0)}return t?{min:g,max:I}:null}}class aQ{constructor(A,g){this.featureArrays=A,this.trackNames=g}getMax(A,g){let I=-Number.MAX_VALUE;for(const t of this.featureArrays)for(const e of t){const t=e;if(void 0!==t.value&&!Number.isNaN(t.value)&&!(t.end<A)){if(t.start>g)break;I=Math.max(I,t.value)}}return I!==-Number.MAX_VALUE?I:100}getMin(A,g){let I=0;for(const t of this.featureArrays)for(const e of t){const t=e;if(void 0!==t.value&&!Number.isNaN(t.value)&&!(t.end<A)){if(t.start>g)break;I=Math.min(I,t.value)}}return I}}class rQ{constructor(A,g){this.childSources=A,this.trackNames=g}async fetch(A,g,I){const t=await Promise.allSettled(this.childSources.map(t=>t.fetch(A,g,I)));if(t.every(A=>{var g;return"rejected"===A.status&&("AbortError"===(null===(g=A.reason)||void 0===g?void 0:g.name)||`${A.reason}`.includes("abort"))})&&t.length>0){throw t.find(A=>"rejected"===A.status).reason}const e=t.map((A,g)=>{var I,t,e;return"fulfilled"===A.status?A.value:(mC.warn(`MergedDataSource child "${null!==(I=this.trackNames[g])&&void 0!==I?I:g}" failed, using empty features:`,null!==(e=null===(t=A.reason)||void 0===t?void 0:t.message)&&void 0!==e?e:A.reason),[])});return[new aQ(e,this.trackNames)]}dispose(){var A;for(const g of this.childSources)null===(A=g.dispose)||void 0===A||A.call(g)}}function nQ(A,g){return(A.start-g.bpStart)/g.bpPerPixel}function hQ(A,g){return Math.max(1,(A.end-A.start)/g.bpPerPixel)}function cQ(A,g,I){const{min:t,max:e}=g.dataRange,C=e-t||1;return(g.flipAxis?(A-t)/C:1-(A-t)/C)*I}function lQ(A,g){const I=A.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);if(I)return`rgba(${I[1]}, ${I[2]}, ${I[3]}, ${g})`;if(A.match(/^#([0-9a-f]{3}){1,2}$/i)){const I=A.slice(1),t=3===I.length?I.split("").map(A=>A+A).join(""):I;return`rgba(${parseInt(t.slice(0,2),16)}, ${parseInt(t.slice(2,4),16)}, ${parseInt(t.slice(4,6),16)}, ${g})`}return A}function dQ(A,g,I,t,e,C,i){if(0===g.length)return;const B=lQ(e.bandColor,e.bandAlpha);A.fillStyle=B,A.beginPath();for(let I=0;I<g.length;I++){const B=g[I],Q=nQ(B,i),o=cQ(t(B),e,C);0===I?A.moveTo(Q,o):A.lineTo(Q,o),A.lineTo(Q+hQ(B,i),o)}for(let t=g.length-1;t>=0;t--){const B=g[t],Q=nQ(B,i)+hQ(B,i),o=cQ(I(B),e,C);A.lineTo(Q,o),A.lineTo(nQ(B,i),o)}A.closePath(),A.fill()}function DQ(A,g,I,t,e,C,i,B){if(0!==g.length){A.strokeStyle=t,A.lineWidth=e,A.beginPath();for(let t=0;t<g.length;t++){const e=g[t],Q=nQ(e,B)+hQ(e,B)/2,o=cQ(I(e),C,i);0===t?A.moveTo(Q,o):A.lineTo(Q,o)}A.stroke()}}function uQ(A,g,I,t,e){dQ(A,g,A=>A.min,A=>A.max,I,t,e)}function wQ(A,g,I,t,e){dQ(A,g,A=>A.mean-A.stdDev,A=>A.mean+A.stdDev,I,t,e),DQ(A,g,A=>A.mean,I.lineColor,1.5,I,t,e)}function yQ(A,g,I,t,e){dQ(A,g,A=>A.mean-A.stdErr,A=>A.mean+A.stdErr,I,t,e),DQ(A,g,A=>A.mean,I.lineColor,1.5,I,t,e)}function fQ(A,g,I,t,e){dQ(A,g,A=>A.q1,A=>A.q3,I,t,e),DQ(A,g,A=>A.median,I.lineColor,1.5,I,t,e)}function SQ(A,g,I,t,e){const C=Math.max(.1,I.bandAlpha);for(const i of g){if(!i||0===i.length)continue;A.strokeStyle=lQ(I.lineColor,C),A.lineWidth=1,A.beginPath();let g=!0;for(const C of i){const i=nQ(C,e)+hQ(C,e)/2,B=cQ(C.value,I,t);g?(A.moveTo(i,B),g=!1):A.lineTo(i,B)}A.stroke()}}class kQ{constructor(A,g){this.count=0,this.mean=0,this.m2=0,this.min=1/0,this.max=-1/0,this.values=[],this._sortedValues=null,this.bin=A,this.chr=g}add(A){this.count++;const g=A-this.mean;this.mean+=g/this.count;const I=A-this.mean;this.m2+=g*I,A<this.min&&(this.min=A),A>this.max&&(this.max=A),this.values.push(A),this._sortedValues=null}get variance(){return this.count<2?0:this.m2/(this.count-1)}get stdDev(){return Math.sqrt(this.variance)}get stdErr(){return this.count>0?this.stdDev/Math.sqrt(this.count):0}get median(){return this._percentile(.5)}get q1(){return this._percentile(.25)}get q3(){return this._percentile(.75)}_percentile(A){const g=this._getSortedValues();if(0===g.length)return 0;const I=A*(g.length-1),t=Math.floor(I),e=Math.ceil(I);return t===e?g[t]:g[t]*(e-I)+g[e]*(I-t)}_getSortedValues(){return this._sortedValues||(this._sortedValues=[...this.values].sort((A,g)=>A-g)),this._sortedValues}toFeature(A,g){const I=g+this.bin*A,t=I+A;return{chr:this.chr,start:I,end:t,value:this.mean,mean:this.mean,stdDev:this.stdDev,stdErr:this.stdErr,median:this.median,q1:this.q1,q3:this.q3,min:this.min===1/0?0:this.min,max:this.max===-1/0?0:this.max,n:this.count}}}function GQ(A,g,I){if(0===A.length)return[];const t=Math.max(I,1),e=new Map;for(const I of A){if(!I||0===I.length)continue;const A=I[0].chr;for(const C of I){if(Number.isNaN(C.value))continue;const I=Math.floor((C.start-g)/t),i=Math.max(I,Math.ceil((C.end-g)/t)-1);for(let g=I;g<=i;g++){let I=e.get(g);I||(I=new kQ(g,A),e.set(g,I)),I.add(C.value)}}}return[...e.values()].sort((A,g)=>A.bin-g.bin).map(A=>A.toFeature(t,g))}var FQ=Object.freeze({__proto__:null,aggregateWigFeatures:GQ});function NQ(A,g,I){return"none"===I.mode?A:A.map(A=>function(A,g,I){if(0===A.length)return A;const t=A.filter(A=>A.end>=g.start&&A.start<=g.end&&Number.isFinite(A.value)).map(A=>A.value);if(0===t.length)return A;const e=function(A,g){switch(g.mode){case"max":return mQ(pQ(function(A){let g=0;for(const I of A){const A=Math.abs(I);A>g&&(g=A)}return g}(A)));case"zscore":{const g=A.reduce((A,g)=>A+g,0)/A.length,I=A.length>1?A.reduce((A,I)=>A+(I-g)**2,0)/(A.length-1):0,t=Math.sqrt(Math.max(I,0));return 0===t?A=>A-g:A=>(A-g)/t}case"robustZscore":{const I=UQ(A,.5),t=UQ(A,RQ(g.centerPercentileLow)),e=UQ(A,RQ(g.centerPercentileHigh))-t;return 0===e?A=>A-I:A=>(A-I)/e}case"percentile":{const I=A.map(A=>Math.abs(A)),t=UQ(I,RQ(g.percentile)),e=function(A){let g=-1/0;for(const I of A)I>g&&(g=I);return g}(I);return mQ(pQ(t||e))}case"none":return A=>A}}(t,I);return A.map(A=>({...A,value:e(A.value)}))}(A,g,I))}function mQ(A){return 0===A?A=>A:g=>g/A}function pQ(A){return Number.isFinite(A)&&0!==A?A:1}function RQ(A){return Math.min(100,Math.max(0,A))/100}function UQ(A,g){if(0===A.length)return 0;const I=[...A].sort((A,g)=>A-g),t=g*(I.length-1),e=Math.floor(t),C=Math.ceil(t);return e===C?I[e]:I[e]*(C-t)+I[C]*(t-e)}class MQ extends sQ{constructor(A,g){var I;const t=ei(zC(g.theme),g.config);super(A,g.locus,t,null!==(I=g.canvasProvider)&&void 0!==I?I:S),this._aggregated=[],this._rawArrays=[],this._userOverrides={},this._renderedDataRange=null,this.type="wigGroup",this._children=[...g.childTracks],this._name=g.name,g.config&&(this._userOverrides={...g.config})}get childTracks(){return this._children}setFeatures(A){if(0===A.length)return;const g=A[0];this._aggregated=g.aggregated,this._rawArrays=g.rawArrays;for(let A=0;A<this._children.length&&A<g.rawArrays.length;A++){const I=this._children[A].track;"function"==typeof I.setFeatures&&I.setFeatures(g.rawArrays[A])}this.render()}setConfig(A){Object.assign(this._userOverrides,A),super.setConfig(A)}setTheme(A){this._config=ei(A,this._userOverrides),this.render()}computeHeight(A){return this._config.height}getBackground(){return this._config.background}renderLabelOverlay(A,g,I){this.externalUIEnabled||this._name&&MC(A,{name:this._name,background:this._config.background,labelColor:this._config.labelColor},I)}doRender(A,g,I,t){var e;const C=(g-t.viewportWidth)/2,i=C+t.viewportWidth;this.externalUIEnabled||(this._name&&(A.save(),A.translate(C,0),MC(A,{name:this._name,background:this._config.background,labelColor:this._config.labelColor},I),A.restore()),this._drawBadge(A,I,i));const B=this._buildSummaryData(t);if(0!==B.features.length){if(this._config.autoscale&&B.features.length>0){const A=t.bpStart+(t.pixelWidth-t.viewportWidth)/2*t.bpPerPixel,g=A+t.viewportWidth*t.bpPerPixel,I=B.features.filter(I=>I.end>=A&&I.start<=g);if(I.length>0){let A=1/0,g=-1/0;const t=this._config.activeModes;for(const e of I)t.includes("minMax")&&(A=Math.min(A,e.min),g=Math.max(g,e.max)),t.includes("meanSd")&&(A=Math.min(A,e.mean-e.stdDev),g=Math.max(g,e.mean+e.stdDev)),t.includes("meanSe")&&(A=Math.min(A,e.mean-e.stdErr),g=Math.max(g,e.mean+e.stdErr)),t.includes("medianIqr")&&(A=Math.min(A,e.q1),g=Math.max(g,e.q3)),t.includes("overlay")&&(A=Math.min(A,e.min),g=Math.max(g,e.max));g>0&&(A=Math.min(0,A)),g<0&&(g=0),this._renderedDataRange={min:isFinite(A)?A:0,max:isFinite(g)?g:100}}else this._renderedDataRange=null}else this._renderedDataRange=null;!function(A,g,I,t){const{features:e,rawArrays:C,config:i,rc:B,numTracks:Q,modes:o}=t,s=["minMax","overlay","medianIqr","meanSe","meanSd"].filter(A=>o.includes(A));for(const g of s)switch(g){case"minMax":uQ(A,e,i,I,B);break;case"meanSd":wQ(A,e,i,I,B);break;case"meanSe":yQ(A,e,i,I,B);break;case"medianIqr":fQ(A,e,i,I,B);break;case"overlay":SQ(A,C,i,I,B)}}(A,0,I,{features:B.features,rawArrays:B.rawArrays,config:{...this._config,dataRange:null!==(e=this._renderedDataRange)&&void 0!==e?e:this._config.dataRange},rc:t,numTracks:this._children.length,modes:this._config.activeModes}),this.externalUIEnabled||(this._name&&(A.save(),A.translate(C,0),MC(A,{name:this._name,background:this._config.background,labelColor:this._config.labelColor},I),A.restore()),this._drawBadge(A,I,i))}else this._renderedDataRange=null}_drawBadge(A,g,I){const t=`[${this._children.length}]`,e="bold 10px sans-serif";A.font=e;const C=A.measureText(t).width+8,i=I-4-C,B=(g-16)/2;A.fillStyle=this._config.badgeBackground,A.beginPath(),A.roundRect(i,B,C,16,3),A.fill(),A.fillStyle=this._config.badgeColor,A.font=e,A.textAlign="left",A.textBaseline="middle",A.fillText(t,i+4,B+8+1)}_getBadgeRect(A,g){const I=this._canvas.getContext("2d"),t=`[${this._children.length}]`;if(!I){const I=7*t.length+8,e=16;return{x:A-4-I,y:(g-e)/2,w:I,h:e}}I.font="bold 10px sans-serif";const e=I.measureText(t).width+8;return{x:A-4-e,y:(g-16)/2,w:e,h:16}}onCanvasClick(A,g){const I=this._getBadgeRect(this.viewportWidth,this.height);return A>=I.x&&A<=I.x+I.w&&g>=I.y&&g<=I.y+I.h&&(this.expanded=!this._expanded,!0)}getUIOverlayState(){const A={badge:{id:"badge",text:`[${this._children.length}]`,background:this._config.badgeBackground,color:this._config.badgeColor}};return this._name&&(A.label={text:this._name,background:this._config.background,color:this._config.labelColor}),A}onUIOverlayClick(A){return"badge"===A&&(this.expanded=!this._expanded,!0)}getAxisInfo(){var A;const g=null!==(A=this._renderedDataRange)&&void 0!==A?A:this._config.dataRange;if(this._name||g)return{dataRange:g,label:this._name,flipAxis:this._config.flipAxis||void 0,logScale:this._config.logScale||void 0}}getNumericState(){return{autoscale:this._config.autoscale,logScale:this._config.logScale,dataRange:this._config.dataRange,setAutoscale:A=>this.setConfig({autoscale:A}),setLogScale:A=>this.setConfig({logScale:A}),setDataRange:(A,g)=>this.setConfig({dataRange:{min:A,max:g},autoscale:!1})}}hitTest(A,g){const I=this._buildSummaryDataForCurrentViewport();if(0===I.features.length)return[];const t=this._genomicPosForHitTest(A);for(let A=bC(I.features,t);A<I.features.length;A++){const g=I.features[A];if(g.start>t)break;if(t<g.end)return[{feature:g,popupData:this._buildPopupData(g,t,I.rawArrays)}]}return[]}getContextMenuItems(A,g){const I=[];I.push({label:this._expanded?"Collapse":"Expand",action:()=>{this.expanded=!this._expanded}}),I.push({type:"separator",label:""});I.push({label:"Aggregation modes",children:[["meanSd","Mean ± SD"],["meanSe","Mean ± SE"],["medianIqr","Median ± IQR"],["minMax","Min/Max envelope"],["overlay","Overlay (individual lines)"]].map(([A,g])=>({label:g,type:"checkbox",checked:this._config.activeModes.includes(A),action:()=>{const g=this._config.activeModes,I=g.includes(A)?g.filter(g=>g!==A):[...g,A];I.length>0&&this.setConfig({activeModes:I})}}))}),I.push({type:"separator",label:""});const t=[["none","None"],["max","Max to 1"],["zscore","Z-score"],["robustZscore","Robust Z-score"],["percentile","Percentile scale"]].map(([A,g])=>({label:g,type:"checkbox",checked:this._config.normalizationMode===A,action:()=>this.setConfig({normalizationMode:A})}));return"percentile"===this._config.normalizationMode&&(t.push({type:"separator",label:""}),t.push({label:`Percentile: ${this._config.normalizationPercentile}th`,disabled:!0})),I.push({label:"Normalization",children:t}),I.push({type:"separator",label:""}),I.push({label:"Autoscale",type:"checkbox",checked:this._config.autoscale,action:()=>this.setConfig({autoscale:!this._config.autoscale})}),I.push({label:"Flip y-axis",type:"checkbox",checked:this._config.flipAxis,action:()=>this.setConfig({flipAxis:!this._config.flipAxis})}),I.push({type:"separator",label:""}),I.push({label:"Ungroup",action:()=>{var A;null===(A=this.onConfigChanged)||void 0===A||A.call(this)}}),I}serializeConfig(A){const g=ei(A),I=this._config,t={};let e=!1;for(const A of["height","lineColor","bandColor","bandAlpha","badgeBackground","badgeColor","autoscale","flipAxis","logScale","normalizationMode","normalizationPercentile","normalizationCenterPercentileLow","normalizationCenterPercentileHigh","labelColor","labelFont","showDataRange","background"])I[A]!==g[A]&&(t[A]=I[A],e=!0);return JSON.stringify(I.activeModes)!==JSON.stringify(g.activeModes)&&(t.activeModes=I.activeModes,e=!0),I.autoscale||I.dataRange.min===g.dataRange.min&&I.dataRange.max===g.dataRange.max||(t.dataRange=I.dataRange,e=!0),{type:"wigGroup",tracks:this.serializeChildren(A),config:e?t:void 0,expanded:this._expanded||void 0}}_buildSummaryData(A){if(0===this._rawArrays.length)return{features:this._aggregated,rawArrays:[]};if(this._canReusePrecomputedAggregation(A.bpStart,A.bpPerPixel))return{features:this._aggregated,rawArrays:this._rawArrays};const g=this._applyChildValueScaling(this._rawArrays),I=this._normalizeSummaryRawArrays(g,{chr:this._locus.chr,start:A.bpStart+(A.pixelWidth-A.viewportWidth)/2*A.bpPerPixel,end:A.bpStart+(A.pixelWidth+A.viewportWidth)/2*A.bpPerPixel});return{features:GQ(I,A.bpStart,A.bpPerPixel),rawArrays:I}}_buildSummaryDataForCurrentViewport(){if(0===this._rawArrays.length)return{features:this._aggregated,rawArrays:[]};const A=this.viewportWidth;if(A>0&&!this.needsRepaint(this._locus))return this._buildSummaryData({pixelWidth:A*this.overscanMultiplier,bpStart:this._renderBpStart,bpPerPixel:this._renderBpPerPixel,viewportWidth:A});const g=this.viewportWidth;if(g<=0)return{features:this._aggregated,rawArrays:[]};const I=(this._locus.end-this._locus.start)/g;if(this._canReusePrecomputedAggregation(this._locus.start,I))return{features:this._aggregated,rawArrays:this._rawArrays};const t=this._applyChildValueScaling(this._rawArrays),e=this._normalizeSummaryRawArrays(t,this._locus);return{features:GQ(e,this._locus.start,I),rawArrays:e}}_canReusePrecomputedAggregation(A,g){if("none"!==this._config.normalizationMode)return!1;if(this._hasChildValueScaling())return!1;if(0===this._aggregated.length)return!0;const I=this._aggregated[0];return I.start===A&&I.end-I.start===g}_hasChildValueScaling(){return this._children.some(({track:A})=>{var g,I;const t=A.config;return 1!==(null!==(g=null==t?void 0:t.normalizationFactor)&&void 0!==g?g:1)||1!==(null!==(I=null==t?void 0:t.scaleFactor)&&void 0!==I?I:1)})}_normalizeSummaryRawArrays(A,g){return NQ(A,g,{mode:this._config.normalizationMode,percentile:this._config.normalizationPercentile,centerPercentileLow:this._config.normalizationCenterPercentileLow,centerPercentileHigh:this._config.normalizationCenterPercentileHigh})}_applyChildValueScaling(A){return A.map((A,g)=>{var I,t,e,C,i;const B=null===(I=this._children[g])||void 0===I?void 0:I.track,Q=(null!==(e=null===(t=null==B?void 0:B.config)||void 0===t?void 0:t.normalizationFactor)&&void 0!==e?e:1)*(null!==(i=null===(C=null==B?void 0:B.config)||void 0===C?void 0:C.scaleFactor)&&void 0!==i?i:1);return 1===Q?A:A.map(A=>({...A,value:A.value*Q}))})}_buildPopupData(A,g,I){var t,e;const C=null!==(t=this._renderedDataRange)&&void 0!==t?t:this._config.dataRange,i=[],B=[{name:"Track",value:null!==(e=this._name)&&void 0!==e?e:"Wig group"},{name:"Display",value:this._describeDisplayScale()},{name:"Bin",value:`${A.chr}:${Math.floor(A.start).toLocaleString()}-${Math.ceil(A.end).toLocaleString()}`},{name:"Stats",value:`mu ${LQ(A.mean)} med ${LQ(A.median)} n ${A.n}`,monospace:!0},{name:"Summary",value:"",content:KQ(A,C.min,C.max,this._children.map((A,t)=>{var e,C,B;const Q=function(A,g){for(let I=bC(A,g);I<A.length;I++){const t=A[I];if(t.start>g)break;if(g<t.end)return t}return}(null!==(e=I[t])&&void 0!==e?e:[],g);if(!Q)return null;const o=vQ[t%vQ.length];return i.push({label:null!==(C=A.name)&&void 0!==C?C:`Track ${t+1}`,color:o}),{label:null!==(B=A.name)&&void 0!==B?B:`Track ${t+1}`,value:Q.value,color:o}}).filter(A=>null!=A))},{name:"Guide",value:"",content:A=>{const g=A.createElement("div");g.className="legend-list";const I=(I,t)=>{const e=A.createElement("div");e.className="legend-row";const C=A.createElement("span");C.className="legend-label";const i=A.createElement("span");i.className="legend-swatch",i.style.background=t,C.appendChild(i),C.appendChild(A.createTextNode(I)),e.appendChild(C),g.appendChild(e)};return I("IQR band","#60a5fa"),I("Median line / mean marker",YQ),g}}];var Q,o;return B.push({name:"Legend",value:"",content:(Q=i,o=this._describeLegendNote(),A=>{const g=A.createElement("div"),I=A.createElement("div");I.className="legend-list";for(const g of Q){const t=A.createElement("div");t.className="legend-row";const e=A.createElement("span");e.className="legend-label";const C=A.createElement("span");C.className="legend-swatch",C.style.background=g.color,e.appendChild(C),e.appendChild(A.createTextNode(g.label)),t.appendChild(e),I.appendChild(t)}const t=A.createElement("div");return t.className="popup-note",t.textContent=o,g.appendChild(I),g.appendChild(t),g})}),B}_describeDisplayScale(){switch(this._config.normalizationMode){case"none":return"Original values";case"max":return"Displayed after Max-to-1 normalization";case"zscore":return"Displayed after Z-score normalization";case"robustZscore":return"Displayed after Robust Z-score normalization";case"percentile":return`Displayed after Percentile normalization (${this._config.normalizationPercentile}th)`}}_describeLegendNote(){return"none"===this._config.normalizationMode?"Hover a dot in the summary bar to see that track value.":"Hover a dot in the summary bar to see the grouped value after normalization."}_genomicPosForHitTest(A){const g=this.viewportXToGenomicBp(A);if(0!==g)return g;const I=this.viewportWidth;if(I<=0)return this._locus.start;const t=(this._locus.end-this._locus.start)/I;return this._locus.start+A*t}}function LQ(A){return Number.isInteger(A)?A:Number(A.toPrecision(6))}function JQ(A){const g=LQ(A);return String(g)}function KQ(A,g,I,t){return e=>{const C=220,i=16,B=bQ(A.min,g,I,C),Q=bQ(A.q1,g,I,C),o=bQ(A.median,g,I,C),s=bQ(A.q3,g,I,C),E=bQ(A.max,g,I,C),a=bQ(A.mean,g,I,C),r=g<0&&I>0?bQ(0,g,I,C):null,n="http://www.w3.org/2000/svg",h=e.createElementNS(n,"svg");h.setAttribute("width",String(C)),h.setAttribute("height",String(46)),h.setAttribute("viewBox","0 0 220 46"),h.setAttribute("aria-label","summary distribution"),h.style.color=YQ;const c=(A,g)=>{const I=e.createElementNS(n,A);for(const[A,t]of Object.entries(g))I.setAttribute(A,t);return h.appendChild(I),I};c("rect",{x:"8",y:String(14),width:String(204),height:"4",rx:"2",fill:"#d7dde5"}),null!=r&&c("line",{x1:String(r),y1:"6",x2:String(r),y2:String(28),stroke:"#e2e8f0","stroke-dasharray":"2 2"}),c("line",{x1:String(B),y1:String(i),x2:String(E),y2:String(i),stroke:"#cbd5e1","stroke-width":"2"}),c("rect",{x:String(Math.min(Q,s)),y:String(11),width:String(Math.max(2,Math.abs(s-Q))),height:"10",rx:"5",fill:"#60a5fa"}),c("line",{x1:String(o),y1:String(8),x2:String(o),y2:String(24),stroke:"currentColor","stroke-width":"2"}),c("circle",{cx:String(a),cy:String(i),r:"4",fill:"currentColor",stroke:"#2563eb","stroke-width":"2"});for(const A of t){const t=bQ(A.value,g,I,C),B=c("circle",{cx:String(t),cy:String(i),r:"3.5",fill:A.color}),Q=e.createElementNS(n,"title");Q.textContent=`${A.label}: ${JQ(A.value)}`,B.appendChild(Q)}for(const[g,I]of[[B,A.min],[E,A.max]]){c("text",{x:String(g),y:String(42),"text-anchor":"middle","font-size":"10",fill:"currentColor"}).textContent=JQ(I)}return h}}function bQ(A,g,I,t,e=8){const C=t-e-8,i=I-g;if(!Number.isFinite(i)||0===i)return e;const B=(A-g)/i;return e+Math.max(0,Math.min(C,B*C))}const vQ=["#2563eb","#dc2626","#16a34a","#ca8a04","#7c3aed","#0891b2"],YQ="var(--loom-popup-color, var(--loom-text-color, #fff))";class xQ{constructor(A,g){this.aggregated=A,this.rawArrays=g}}class HQ{constructor(A,g=[]){this._cachedRaw=[],this._cachedStartBP=0,this._cachedBpPerPixel=0,this.childSources=A,this.trackNames=g}async fetch(A,g,I){const t=await Promise.allSettled(this.childSources.map(t=>t.fetch(A,g,I)));if(t.every(A=>{var g;return"rejected"===A.status&&("AbortError"===(null===(g=A.reason)||void 0===g?void 0:g.name)||`${A.reason}`.includes("abort"))})&&t.length>0){throw t.find(A=>"rejected"===A.status).reason}const e=t.map((A,g)=>{var I,t,e;return"fulfilled"===A.status?A.value:(mC.warn(`WigGroupDataSource child "${null!==(I=this.trackNames[g])&&void 0!==I?I:g}" failed:`,null!==(e=null===(t=A.reason)||void 0===t?void 0:t.message)&&void 0!==e?e:A.reason),[])});this._cachedRaw=e,this._cachedStartBP=A.start,this._cachedBpPerPixel=g;const C=GQ(e,A.start,g);return[new xQ(C,e)]}reaggregate(){if(0===this._cachedRaw.length)return null;const A=GQ(this._cachedRaw,this._cachedStartBP,this._cachedBpPerPixel);return new xQ(A,this._cachedRaw)}get cachedRaw(){return this._cachedRaw}dispose(){var A;for(const g of this.childSources)null===(A=g.dispose)||void 0===A||A.call(g)}}function qQ(A){const g=A.match(/(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);if(g)return[parseInt(g[1]),parseInt(g[2]),parseInt(g[3])];const I=A.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/);return I?[parseInt(I[1],16),parseInt(I[2],16),parseInt(I[3],16)]:[128,128,128]}function _Q(A,g,I,t,e){if("c"===A.type)return g.centromereColor;if("p"===A.type){const g=e.get(A.stain);if(g)return g;const Q=(C=I,i=t,B=A.stain/100,`rgb(${Math.round(C[0]+(i[0]-C[0])*B)},${Math.round(C[1]+(i[1]-C[1])*B)},${Math.round(C[2]+(i[2]-C[2])*B)})`);return e.set(A.stain,Q),Q}var C,i,B;return g.bandLightColor}function TQ(A,g,I,t,e,C){C=Math.min(C,t/2,e/2),A.beginPath(),A.moveTo(g+C,I),A.lineTo(g+t-C,I),A.arcTo(g+t,I,g+t,I+C,C),A.lineTo(g+t,I+e-C),A.arcTo(g+t,I+e,g+t-C,I+e,C),A.lineTo(g+C,I+e),A.arcTo(g,I+e,g,I+e-C,C),A.lineTo(g,I+C),A.arcTo(g,I,g+C,I,C),A.closePath()}function WQ(A,g,I,t,e){const{pixelWidth:C}=t,i=I.height;if(0===g.length||C<=0||i<=0)return;const B=C/Math.max(e,g[g.length-1].end),Q=.5,o=(i-1)/2,s=qQ(I.bandLightColor),E=qQ(I.bandDarkColor),a=new Map;A.save(),TQ(A,Q,Q,C-1,i-1,o),A.clip();const r=i/2;for(const t of g){const g=B*t.start,e=B*t.end;"c"===t.type?(A.fillStyle=I.centromereColor,A.strokeStyle=I.centromereColor,A.beginPath(),"p"===t.name.charAt(0)?(A.moveTo(g,i),A.lineTo(g,0),A.lineTo(e,r)):(A.moveTo(e,i),A.lineTo(e,0),A.lineTo(g,r)),A.closePath(),A.fill()):(A.fillStyle=_Q(t,I,s,E,a),A.fillRect(g,1,e-g,i-2),I.showBandNames&&PQ(A,t,g,e,i,I,s,E))}A.restore(),A.strokeStyle=I.borderColor,A.lineWidth=1,TQ(A,Q,Q,C-1,i-1,o),A.stroke()}function PQ(A,g,I,t,e,C,i,B){const Q=t-I;let o,s=e-4-2;for(;s>4&&(A.font=`${s}px ${C.font.replace(/^\d+px\s*/,"")}`,!(A.measureText(g.name).width<=Q));)s-=1;if(s<=4)return;if(A.save(),A.beginPath(),A.rect(I,2,Q,e-4),A.clip(),"p"===g.type){const A=g.stain/100;o=[Math.round(i[0]+(B[0]-i[0])*A),Math.round(i[1]+(B[1]-i[1])*A),Math.round(i[2]+(B[2]-i[2])*A)]}else o=i;const E=(a=o[0],r=o[1],n=o[2],.2126*a+.7152*r+.0722*n);var a,r,n;A.fillStyle=E<128?C.altLabelColor:C.labelColor,A.textAlign="center",A.textBaseline="middle",A.fillText(g.name,I+Q/2,e/2+1),A.restore()}function OQ(A,g,I,t){const{pixelWidth:e,bpStart:C,bpPerPixel:i,viewportWidth:B}=I,Q=g.height,o=Math.round(i*B);if(o>t)return;const s=o/t,E=C/t;let a=Math.floor(E*e),r=Math.floor(s*e);const n=Math.max(r,1);a=Math.max(0,a),a=Math.min(e-n,a),A.save(),A.strokeStyle=g.viewportIndicatorColor,A.lineWidth=r<3?1:2;const h=a+A.lineWidth/2,c=Math.max(1,r-A.lineWidth),l=A.lineWidth/2,d=Q-A.lineWidth;A.strokeRect(h,l,c,d),A.restore()}class VQ extends UC{constructor(A,g={}){var I,t;const e=Ci(zC(g.theme),g.config);super(A,g.locus,e,g.canvasProvider),this.type="ideogram",this._cytobands=[],this._chrLength=0,this._cytobands=null!==(I=g.cytobands)&&void 0!==I?I:[],this._chrLength=null!==(t=g.chrLength)&&void 0!==t?t:0}setCytobands(A,g){this._cytobands=A,this._chrLength=g,this.render()}get cytobands(){return this._cytobands}computeHeight(A){return this._config.height}getBackground(){return this._config.background}doRender(A,g,I,t){0!==this._cytobands.length&&0!==this._chrLength&&(WQ(A,this._cytobands,this._config,t,this._chrLength),OQ(A,this._config,t,this._chrLength))}setTheme(A){this._config=Ci(A),this.render()}serializeConfig(A){const g=Ci(A);return{type:"ideogram",config:oi(this.config,g)}}hitTest(A,g){if(0===this._cytobands.length||0===this._chrLength)return[];const I=this.viewportWidth;if(0===I)return[];const t=I/Math.max(this._chrLength,this._cytobands[this._cytobands.length-1].end),e=A-this.currentPixelShiftOffset;for(const A of this._cytobands){const g=t*A.start,I=t*A.end;if(e>=g&&e<=I){const g=[{name:"Band",value:A.name},{name:"Position",value:`${A.start.toLocaleString()} - ${A.end.toLocaleString()}`},{name:"Stain",value:"c"===A.type?"centromere":"p"===A.type?`gpos${A.stain}`:"gneg"}];return[{feature:A,popupData:g}]}}return[]}genomicPositionAtPixel(A){if(0===this._cytobands.length||0===this._chrLength)return;const g=this.viewportWidth;if(0===g)return;return A/g*Math.max(this._chrLength,this._cytobands[this._cytobands.length-1].end)}}function ZQ(A){var g,I,t,e;null===(I=(g=A.track).dispose)||void 0===I||I.call(g),null===(e=null===(t=A.dataSource)||void 0===t?void 0:t.dispose)||void 0===e||e.call(t)}function zQ(A,g){const I=[];try{for(const t of null!=A?A:[])I.push(Co(t,g.locus,{canvasProvider:g.canvasProvider,theme:g.theme,sequenceProvider:g.sequenceProvider}));return I}catch(A){for(const A of I)ZQ(A);throw A}}function jQ(A,g){try{return g()}catch(g){for(const g of A)ZQ(g);throw g}}const XQ=new Map,$Q=new Map;function Ao(A,g){XQ.set(A,g)}function go(A,g){$Q.set(A,g)}function Io(A){return XQ.get(function(A){var g;return null!==(g=$Q.get(A))&&void 0!==g?g:A}(A))}function to(){const A=new Set(XQ.keys());for(const g of $Q.keys())A.add(g);return A}function eo(A){switch(A.type){case"bigwig":return new cg(A.url,A.windowFunction);case"gtx":return new Tg(A.url,A.experimentId,A.windowFunction);case"ucsc":return new II({genome:A.genome,track:A.track});case"text":return new dC({url:A.url,format:A.format,indexURL:A.indexURL,indexed:A.indexed});case"memory":return new XB([]);default:return eo(_B(A))}}function Co(A,g,I={}){var t;const e=Io(A.type);if(!e)throw new Error(`Unknown track type: "${A.type}". Known types: ${[...to()].join(", ")}`);return e(A,{locus:g,canvasProvider:null!==(t=I.canvasProvider)&&void 0!==t?t:S,theme:I.theme,sequenceProvider:I.sequenceProvider})}Ao("wig",function(A,g){const I=A,{canvas:t}=g.canvasProvider.createCanvas(0,0),e=new Fi(t,{locus:g.locus,features:[],config:I.config,theme:g.theme,canvasProvider:g.canvasProvider,name:I.name,sequenceProvider:g.sequenceProvider});let C=null,i=null;if(I.dataSource&&(i=I.dataSource,C=eo(I.dataSource)),I.annotation){const A=I.annotation,{canvas:t}=g.canvasProvider.createCanvas(0,0),i=new QQ(t,{locus:g.locus,config:{display:A.display,color:A.color},theme:g.theme,canvasProvider:g.canvasProvider}),B=eo({type:"text",url:A.url,format:A.format,indexURL:A.indexURL,indexed:A.indexed}),{canvas:Q}=g.canvasProvider.createCanvas(0,0),o=new EQ(Q,{locus:g.locus,childTracks:[{track:e,name:I.name},{track:i,name:"Peaks"}],config:{alpha:1,autoscale:!0},theme:g.theme,canvasProvider:g.canvasProvider,name:I.name}),s=[C,B].filter(A=>null!=A);return{track:o,dataSource:s.length>0?new rQ(s,[I.name,"Peaks"]):null,dataSourceConfig:null,name:I.name,order:I.order}}return{track:e,dataSource:C,dataSourceConfig:i,name:I.name,order:I.order}}),Ao("annotation",function(A,g){var I;const t=A,{canvas:e}=g.canvasProvider.createCanvas(0,0),C=new si(e,{locus:g.locus,features:[],config:t.config,theme:g.theme,canvasProvider:g.canvasProvider,name:t.name});let i=null,B=null;return t.dataSource&&(B=t.dataSource,i=eo(t.dataSource)),{track:C,dataSource:i,dataSourceConfig:B,name:t.name,order:t.order,searchable:null===(I=t.searchable)||void 0===I||I,searchableFields:t.searchableFields}}),Ao("ruler",function(A,g){const I=A,{canvas:t}=g.canvasProvider.createCanvas(0,0);return{track:new hi(t,{locus:g.locus,config:I.config,theme:g.theme,canvasProvider:g.canvasProvider}),dataSource:null,dataSourceConfig:null,name:I.name,order:I.order}}),Ao("sequence",function(A,g){const I=A,{canvas:t}=g.canvasProvider.createCanvas(0,0);return{track:new jB(t,{locus:g.locus,config:I.config,theme:g.theme,canvasProvider:g.canvasProvider}),dataSource:g.sequenceProvider?new zB(g.sequenceProvider):null,dataSourceConfig:null,name:I.name,order:I.order}}),Ao("interact",function(A,g){var I;const t=A,{canvas:e}=g.canvasProvider.createCanvas(0,0),C=new CQ(e,{locus:g.locus,features:[],config:t.config,theme:g.theme,canvasProvider:g.canvasProvider,name:t.name});let i=null,B=null;return t.dataSource&&(B=t.dataSource,i=eo(t.dataSource)),{track:C,dataSource:i,dataSourceConfig:B,name:t.name,order:t.order,searchable:null===(I=t.searchable)||void 0===I||I,searchableFields:t.searchableFields}}),Ao("peakOverlay",function(A,g){const I=A,{canvas:t}=g.canvasProvider.createCanvas(0,0),e=new QQ(t,{locus:g.locus,config:I.config,theme:g.theme,canvasProvider:g.canvasProvider,name:I.name});let C=null,i=null;return I.dataSource&&(i=I.dataSource,C=eo(I.dataSource)),{track:e,dataSource:C,dataSourceConfig:i,name:I.name,order:I.order}}),Ao("merged",function(A,g){const I=A,t=zQ(I.tracks,g);return jQ(t,()=>{const{canvas:A}=g.canvasProvider.createCanvas(0,0),e=new EQ(A,{locus:g.locus,childTracks:t.map((A,g)=>{var t,e;return{track:A.track,name:null!==(t=A.name)&&void 0!==t?t:null===(e=I.tracks[g])||void 0===e?void 0:e.name}}),config:I.config,theme:g.theme,canvasProvider:g.canvasProvider,name:I.name}),C=t.map(A=>A.dataSource).filter(A=>null!=A);return{track:e,dataSource:C.length>0?new rQ(C,t.map(A=>A.name)):null,dataSourceConfig:null,name:I.name,order:I.order}})}),Ao("wigGroup",function(A,g){var I,t;const e=A,C=zQ(e.tracks,g);for(const[A,g]of C.entries()){if("wig"===g.track.type)continue;for(const A of C)ZQ(A);const i=null!==(t=null===(I=e.tracks[A])||void 0===I?void 0:I.type)&&void 0!==t?t:g.track.type;throw new Error(`wigGroup tracks only support wig children; received "${i}"`)}return jQ(C,()=>{const{canvas:A}=g.canvasProvider.createCanvas(0,0),I=new MQ(A,{locus:g.locus,childTracks:C.map((A,g)=>{var I,t;return{track:A.track,name:null!==(I=A.name)&&void 0!==I?I:null===(t=e.tracks[g])||void 0===t?void 0:t.name}}),config:e.config,theme:g.theme,canvasProvider:g.canvasProvider,name:e.name});e.expanded&&(I.expanded=!0);const t=C.map(A=>{var g;return null!==(g=A.dataSource)&&void 0!==g?g:new XB([])}),i=C.map(A=>A.name);return{track:I,dataSource:t.length>0?new HQ(t,i):null,dataSourceConfig:null,name:e.name,order:e.order}})}),Ao("ideogram",function(A,g){const I=A,{canvas:t}=g.canvasProvider.createCanvas(0,0);return{track:new VQ(t,{locus:g.locus,config:I.config,theme:g.theme,canvasProvider:g.canvasProvider}),dataSource:null,dataSourceConfig:null,name:I.name,order:I.order}}),go("gene","annotation"),go("refgene","annotation"),go("bigwig","wig"),go("bedgraph","wig"),go("bed","annotation"),go("gff3","annotation"),go("gtf","annotation"),go("gff","annotation"),go("narrowpeak","annotation"),go("broadpeak","annotation"),go("genepred","annotation"),go("genepredext","annotation"),go("refflat","annotation"),go("overlay","merged"),go("bedpe","interact"),go("arc","interact"),go("longrange","interact");const io="1.0";function Bo(A,g,I={}){return Co(A,g,I)}function Qo(A){const g={};return A.oauthToken&&(g.oauthToken=A.oauthToken),A.headers&&(g.headers=A.headers),A.withCredentials&&(g.withCredentials=A.withCredentials),g}function oo(A){const g={};return A.oauthToken&&(g.oauthToken=A.oauthToken),A.headers&&(g.headers=A.headers),A.withCredentials&&(g.withCredentials=A.withCredentials),g}const so={wig:"wig",bigwig:"wig",bedgraph:"wig",annotation:"annotation",gene:"annotation",refgene:"annotation",bed:"annotation",gff3:"annotation",gtf:"annotation",narrowpeak:"annotation",broadpeak:"annotation",sequence:"sequence",interact:"interact",bedpe:"interact",arc:"interact"};function Eo(A){var g;const I=so[null!==(g=A.type)&&void 0!==g?g:""];if(!I){if("sequence"!==A.type&&"ruler"!==A.type&&mC.warn(`Skipping unsupported igv.js track type: ${A.type}`),"ruler"===A.type){const g={type:"ruler"};return A.height&&(g.config={height:A.height}),g}return null}switch(I){case"wig":return function(A){const g={type:"wig"};A.name&&(g.name=A.name);null!=A.order&&(g.order=A.order);if(A.url){const I={type:"bigwig",url:A.url,...Qo(A)};A.windowFunction&&(I.windowFunction=A.windowFunction),g.dataSource=I}const I={};let t=!1;A.color&&(I.color=A.color,t=!0);A.altColor&&(I.altColor=A.altColor,t=!0);null!=A.height&&(I.height=A.height,t=!0);null!=A.autoscale&&(I.autoscale=A.autoscale,t=!0);null!=A.min&&null!=A.max&&(I.dataRange={min:A.min,max:A.max},t=!0);t&&(g.config=I);return g}(A);case"annotation":return function(A){const g={type:"annotation"};A.name&&(g.name=A.name);null!=A.order&&(g.order=A.order);if(A.url){const I={type:"text",url:A.url,...Qo(A)};A.indexURL&&(I.indexURL=A.indexURL),A.format&&(I.format=A.format),g.dataSource=I}const I={};let t=!1;A.color&&(I.color=A.color,t=!0);null!=A.height&&(I.featureHeight=A.height,t=!0);A.displayMode&&(I.displayMode=A.displayMode.toUpperCase(),t=!0);t&&(g.config=I);return g}(A);case"interact":return function(A){const g={type:"interact"};A.name&&(g.name=A.name);null!=A.order&&(g.order=A.order);if(A.url){const I={type:"text",url:A.url,...Qo(A)};A.indexURL&&(I.indexURL=A.indexURL),A.format&&(I.format=A.format),g.dataSource=I}const I={};let t=!1;A.color&&(I.color=A.color,t=!0);null!=A.height&&(I.height=A.height,t=!0);t&&(g.config=I);return g}(A);case"ruler":return{type:"ruler"};case"sequence":return{type:"sequence"};case"merged":case"wigGroup":case"peakOverlay":case"ideogram":return null}}function ao(A){var g;switch(A.type){case"wig":return function(A){const g={type:"wig"};A.name&&(g.name=A.name);null!=A.order&&(g.order=A.order);A.dataSource&&"bigwig"===A.dataSource.type&&(g.url=A.dataSource.url,A.dataSource.windowFunction&&(g.windowFunction=A.dataSource.windowFunction),Object.assign(g,oo(A.dataSource)));A.config&&(A.config.color&&(g.color=A.config.color),A.config.altColor&&(g.altColor=A.config.altColor),null!=A.config.height&&(g.height=A.config.height),null!=A.config.autoscale&&(g.autoscale=A.config.autoscale),A.config.dataRange&&(g.min=A.config.dataRange.min,g.max=A.config.dataRange.max));return g}(A);case"annotation":return function(A){var g;const I={type:"annotation"};A.name&&(I.name=A.name);null!=A.order&&(I.order=A.order);"text"===(null===(g=A.dataSource)||void 0===g?void 0:g.type)&&Object.assign(I,oo(A.dataSource));A.config&&(A.config.color&&(I.color=A.config.color),A.config.displayMode&&(I.displayMode=A.config.displayMode));return I}(A);case"interact":return function(A){var g;const I={type:"interact"};A.name&&(I.name=A.name);null!=A.order&&(I.order=A.order);"text"===(null===(g=A.dataSource)||void 0===g?void 0:g.type)&&(I.url=A.dataSource.url,A.dataSource.indexURL&&(I.indexURL=A.dataSource.indexURL),A.dataSource.format&&(I.format=A.dataSource.format),Object.assign(I,oo(A.dataSource)));A.config&&(A.config.color&&(I.color=A.config.color),null!=A.config.height&&(I.height=A.config.height));return I}(A);case"ruler":return{type:"ruler",height:null===(g=A.config)||void 0===g?void 0:g.height};case"sequence":return{type:"sequence"};case"merged":case"wigGroup":case"peakOverlay":case"ideogram":return null}}class ro{constructor(A){this.snapshots=new Map,this.browser=A}getState(A){const g=this.project();return(null==A?void 0:A.record)&&this.snapshots.set(A.record,structuredClone(g)),g}diff(A){const g=this.snapshots.get(A);if(!g)throw new Error(`No snapshot recorded under key "${A}"`);const I=this.project(),t={unchanged:!0};g.locus.chr===I.locus.chr&&g.locus.start===I.locus.start&&g.locus.end===I.locus.end||(t.locus=[g.locus,I.locus],t.unchanged=!1),g.zoomLevel!==I.zoomLevel&&(t.zoomLevel=[g.zoomLevel,I.zoomLevel],t.unchanged=!1);const e=new Set(g.tracks.map(A=>A.id)),C=new Set(I.tracks.map(A=>A.id)),i=I.tracks.filter(A=>!e.has(A.id)),B=g.tracks.filter(A=>!C.has(A.id)).map(A=>A.id);i.length>0&&(t.tracksAdded=i,t.unchanged=!1),B.length>0&&(t.tracksRemoved=B,t.unchanged=!1);const Q=[];for(const A of I.tracks){if(!e.has(A.id))continue;const I=g.tracks.find(g=>g.id===A.id);if(!wo(I.featureSummary,A.featureSummary)){const g=uo(A.id,A.type,I.featureSummary,A.featureSummary);g&&Q.push(g)}}return Q.length>0&&(t.tracksChanged=Q,t.unchanged=!1),lo(g.rois,I.rois)||(t.roisChanged=!0,t.unchanged=!1),t}record(A){this.snapshots.set(A,structuredClone(this.project()))}deleteSnapshot(A){return this.snapshots.delete(A)}getSnapshot(A){return this.snapshots.get(A)}snapshotKeys(){return[...this.snapshots.keys()]}clearSnapshots(){this.snapshots.clear()}project(){var A,g;const I=this.browser.locus,t={chr:I.chr,start:Math.round(I.start),end:Math.round(I.end)},e=t.end-t.start,C=this.browser.getManagedTracks();return{locus:t,locusString:ho(t),span:e,zoomLevel:no(e),frames:this.browser.frames,genome:null===(A=this.browser.genome)||void 0===A?void 0:A.id,tracks:C.filter(A=>"ruler"!==A.track.type).map(A=>this.projectTrack(A,t)),rois:null!==(g=this.browser.toJSON().rois)&&void 0!==g?g:[]}}projectTrack(A,g){const I=this.summarizeFeatures(A,g),t=null!=A.dataSource,e=A.cache.hasData();return{id:A.id,type:A.track.type,name:A.name,metadata:A.metadata,loading:!(!t||e)||void 0,featureSummary:I}}summarizeFeatures(A,g){switch(A.track.type){case"wig":return this.summarizeWig(A,g);case"annotation":return this.summarizeAnnotation(A,g);case"interact":return this.summarizeInteraction(A,g);default:return}}summarizeWig(A,g){const I=this.browser.getCachedFeatures(A.track);if(!I)return;const t=co(I,g);return{featureCount:t.length,signalRange:t.length>0?Bg(t):{min:0,max:0}}}summarizeAnnotation(A,g){const I=this.browser.getCachedFeatures(A.track);if(!I)return;const t=co(I,g),e=new Set;for(const A of t)A.name&&e.size<20&&e.add(A.name);const C=t.reduce((A,g)=>{var I;return Math.max(A,null!==(I=g.row)&&void 0!==I?I:0)},0);return{featureCount:t.length,featureNames:[...e].sort(),packingDepth:C}}summarizeInteraction(A,g){var I,t;const e=this.browser.getCachedFeatures(A.track);if(!e)return;const C=co(e,g);let i=0;for(const A of C){const g=null!==(t=null!==(I=A.value)&&void 0!==I?I:A.score)&&void 0!==t?t:0;isNaN(g)||(i=Math.max(i,g))}return{featureCount:C.length,valueRange:{min:0,max:i}}}}function no(A){return A<=100?"base":A<=1e4?"element":A<=5e5?"gene":A<=1e7?"region":A<=25e7?"chromosome":"genome"}function ho(A){return`${A.chr}:${A.start.toLocaleString()}-${A.end.toLocaleString()}`}function co(A,g){return A.filter(A=>A.end>g.start&&A.start<g.end)}function lo(A,g){if(A===g)return!0;if(null==A||null==g)return!1;if(typeof A!=typeof g)return!1;if(Array.isArray(A)){if(!Array.isArray(g)||A.length!==g.length)return!1;for(let I=0;I<A.length;I++)if(!lo(A[I],g[I]))return!1;return!0}if("object"==typeof A){if(Array.isArray(g))return!1;const I=A,t=g,e=Object.keys(I),C=Object.keys(t);if(e.length!==C.length)return!1;for(const A of e)if(!lo(I[A],t[A]))return!1;return!0}return!1}function Do(A,g){if(A&&g in A)return A[g]}function uo(A,g,I,t){const e={id:A,type:g};let C=!1;const i=(A,g,I)=>{lo(g,I)||(e[A]=[null!=g?g:null,null!=I?I:null],C=!0)};return i("featureCount",null==I?void 0:I.featureCount,null==t?void 0:t.featureCount),i("signalRange",Do(I,"signalRange"),Do(t,"signalRange")),i("featureNames",Do(I,"featureNames"),Do(t,"featureNames")),i("packingDepth",Do(I,"packingDepth"),Do(t,"packingDepth")),i("valueRange",Do(I,"valueRange"),Do(t,"valueRange")),C?e:void 0}function wo(A,g){return A===g||!(!A||!g)&&lo(A,g)}function yo(A,g){var I;if(void 0!==g.id&&A.id!==g.id)return!1;if(void 0!==g.name){const t=null!==(I=A.name)&&void 0!==I?I:"";if("string"==typeof g.name){if(!t.toLowerCase().includes(g.name.toLowerCase()))return!1}else if(!g.name.test(t))return!1}if(void 0!==g.type&&A.track.type!==g.type)return!1;if(void 0!==g.where){const I=A.metadata;if(!I)return!1;for(const[A,t]of Object.entries(g.where))if(I[A]!==t)return!1}return!0}function fo(A,g){return A.filter(A=>yo(A,g))}class So{constructor(A=50){this.maxHistory=A,this.undoStack=[],this.redoStack=[],this._paused=!1}get paused(){return this._paused}pause(){this._paused=!0}resume(){this._paused=!1}snapshot(A,g){this._paused||(this.undoStack.push({type:A,session:g}),this.undoStack.length>this.maxHistory&&this.undoStack.shift(),this.redoStack=[])}undo(A,g){let I=this.undoStack.pop();if(g)for(;I&&g(I);)I=this.undoStack.pop();if(I)return this.redoStack.push({type:I.type,session:A}),I}redo(A,g){let I=this.redoStack.pop();if(g)for(;I&&g(I);)I=this.redoStack.pop();if(I)return this.undoStack.push({type:I.type,session:A}),I}canUndo(A){return A?this.undoStack.some(g=>!A(g)):this.undoStack.length>0}canRedo(A){return A?this.redoStack.some(g=>!A(g)):this.redoStack.length>0}get undoSize(){return this.undoStack.length}get redoSize(){return this.redoStack.length}clear(){this.undoStack=[],this.redoStack=[]}}async function ko(A,g,I){const t="https://igv.org/genomes/locus.php?genome=$GENOME$&name=$FEATURE$".replace("$GENOME$",encodeURIComponent(g)).replace("$FEATURE$",encodeURIComponent(A.toUpperCase())),e=await fetch(t,I?{signal:I}:void 0);if(!e.ok)return;return Go(await e.text())}function Go(A){const g=A.split("\n");for(const A of g){const g=A.split("\t");if(g.length>=2){const A=g[0].trim().toUpperCase(),I=g[1].split(":");if(I.length>=2){const g=I[0].trim(),t=I[1].split("-");if(t.length>=2){const I=parseInt(t[0].replace(/,/g,""),10),e=parseInt(t[1].replace(/,/g,""),10);if(!isNaN(I)&&!isNaN(e))return{chr:g,start:I,end:e,name:A}}}}}}function Fo(A){if(!A)return!1;return new RegExp("^[A-Za-z0-9_.]+(?:\\([^)]+\\))?:(?:g\\.\\d+.*|c\\.[-*]?\\d+.*|n\\.-?\\d+.*|p\\.[A-Za-z*]*\\d+.*)$").test(A)}async function No(A,g,I){if(!Fo(A))return;const t=A.indexOf(":g."),e=A.indexOf(":c."),C=A.indexOf(":n."),i=A.indexOf(":p.");let B,Q;if(t>=0)B="g",Q=t;else if(e>=0)B="c",Q=e;else if(C>=0)B="n",Q=C;else{if(!(i>=0))return;B="p",Q=i}let o=A.substring(0,Q);if(o.endsWith(")")){const A=o.lastIndexOf("(");A>0&&(o=o.substring(0,A))}const s=A.substring(Q+3);if("g"===B)return function(A,g,I){if(!A)return;const t=A.match(/^\(?(\d+)(?:_(\d+|\?))?\)?\s*/);if(!t)return;const e=parseInt(t[1],10),C=t[2],i=C&&"?"!==C?parseInt(C,10):e,B=I(g),Q=B?B.chr:g;return{chr:Q,start:e-1,end:i}}(s,o,g);if("p"===B)return;if(!I)return;const E=await I(o);return E?"n"===B?function(A,g){const I=A.match(/^(-?\d+)(?:_(-?\d+))?([+-]\d+)?/);if(!I)return;const t=parseInt(I[1],10),e=null!=I[2]?parseInt(I[2],10):t;let C=po(g,t),i=po(g,e);if(C<=0||i<=0)return;if(I[3]){let A=parseInt(I[3],10);"-"===g.strand&&(A=-A),C+=A,i+=A}const B=Math.min(C,i),Q=Math.max(C,i)+1;return{chr:g.chr,start:B,end:Q}}(s,E):function(A,g){const I=A.match(/^-(\d+)(?:_-(\d+))?([+-]\d+)?/);if(I)return function(A,g){const I=parseInt(A[1],10),t=null!=A[2]?parseInt(A[2],10):null,e=mo(g,1);if(e<=0)return;let C="+"===g.strand?e-I:e+I,i=C;null!=t&&(i="+"===g.strand?e-t:e+t);if(A[3]){let I=parseInt(A[3],10);"-"===g.strand&&(I=-I),C+=I,i+=I}const B=Math.min(C,i),Q=Math.max(C,i)+1;return{resultType:"LOCUS",chr:g.chr,start:B,end:Q}}(I,g);const t=A.match(/^\*(\d+)(?:_\*(\d+))?([+-]\d+)?/);if(t)return function(A,g){const I=parseInt(A[1],10),t=null!=A[2]?parseInt(A[2],10):null;let e=0;if(g.exons)for(const A of g.exons)e+=Zg(A);if(0===e)return;const C=mo(g,e);if(C<=0)return;let i="+"===g.strand?C+I:C-I,B=i;null!=t&&(B="+"===g.strand?C+t:C-t);if(A[3]){let I=parseInt(A[3],10);"-"===g.strand&&(I=-I),i+=I,B+=I}const Q=Math.min(i,B),o=Math.max(i,B)+1;return{resultType:"LOCUS",chr:g.chr,start:Q,end:o}}(t,g);const e=A.match(/^(\d+)(?:_(\d+))?/);if(!e)return;const C=parseInt(e[1],10),i=e[2],B=null!=i?parseInt(i,10):C;let Q=mo(g,C),o=mo(g,B);if(Q<=0||o<=0)return;const s=A.match(/^(\d+)([+-]\d+)?(?:_(\d+)([+-]\d+)?)?/);if(s){if(s[2]){let A=parseInt(s[2],10);"-"===g.strand&&(A=-A),Q+=A}if(s[4]){let A=parseInt(s[4],10);"-"===g.strand&&(A=-A),o+=A}}null==i&&(o=Q);const E=Math.min(Q,o),a=Math.max(Q,o)+1;return{chr:g.chr,start:E,end:a}}(s,E):void 0}function mo(A,g){if(g<=0)return-1;const I=A.exons;if(!I)return-1;const t="+"===A.strand,e=g-1;let C=0;for(let A=0;A<I.length;A++){const g=t?I[A]:I[I.length-1-A],i=Zg(g);if(C+i>e){const A=e-C;return t?Og(g)+A:Vg(g)-1-A}C+=i}return-1}function po(A,g){if(g<=0){const I=Math.abs(g);return"+"===A.strand?A.start-I:A.end+I}const I=A.exons;if(!I||0===I.length)return"+"===A.strand?A.start+g-1:A.end-g+1;const t="+"===A.strand;let e=0;const C=I.slice();t?C.sort((A,g)=>A.start-g.start):C.sort((A,g)=>g.start-A.start);for(const A of C){const I=A.end-A.start;if(e+I>=g){const I=g-e-1;return t?A.start+I:A.end-I-1}e+=I}return-1}const Ro=["name","id","gene_name","transcript_id","gene_id"];function Uo(A){return A.replace(/ /g,"+").toUpperCase()}class Mo{constructor(A){this.index=new Map,this.searchableFields=null!=A?A:Ro}addFeatures(A){for(const g of A){const A=g,I=A.chr,t=A.start,e=A.end;if("string"!=typeof I||"number"!=typeof t||"number"!=typeof e)continue;const C={chr:I,start:t,end:e},i=e-t,B="object"==typeof A.attributes&&null!==A.attributes?A.attributes:null;for(const g of this.searchableFields){let I=A[g];if("string"==typeof I&&I||!B||(I=B[g]),"string"!=typeof I||!I)continue;const t=Uo(I),e=this.index.get(t);(!e||e.end-e.start<i)&&this.index.set(t,C)}}}search(A){return this.index.get(Uo(A))}clear(){this.index.clear()}get size(){return this.index.size}}function Lo(A){return A instanceof Error?A:new Error(String(A))}const Jo="rgba(68, 134, 247, 0.15)",Ko="rgba(155, 185, 129, 0.2)";let bo=0;function vo(){return`roi_${Date.now().toString(36)}_${(++bo).toString(36)}`}class Yo{constructor(A){var g,I;this._features=[],this.name=A.name,this.color=null!==(g=A.color)&&void 0!==g?g:A.isUserDefined?Ko:Jo,this.isUserDefined=null!==(I=A.isUserDefined)&&void 0!==I&&I,A.features&&(this._features=A.features.map(A=>({...A})))}get features(){return this._features}addFeature(A){var g;const I={...A,id:A.id||vo(),color:null!==(g=A.color)&&void 0!==g?g:this.color};return this._features.push(I),this._features.sort((A,g)=>A.start-g.start),I}removeFeature(A){const g=this._features.findIndex(g=>g.id===A);if(!(g<0))return this._features.splice(g,1)[0]}updateFeature(A,g){const I=this._features.find(g=>g.id===A);if(I)return Object.assign(I,g),("start"in g||"end"in g)&&this._features.sort((A,g)=>A.start-g.start),I}findById(A){return this._features.find(g=>g.id===A)}getFeatures(A,g,I){return this._features.filter(t=>t.chr===A&&t.end>g&&t.start<I)}toJSON(){return{name:this.name,color:this.color,isUserDefined:this.isUserDefined||void 0,features:this._features.map(A=>({...A}))}}}class xo{constructor(A){this.roiSets=[],this.callbacks=A}addROI(A,g="User-defined"){let I=this.roiSets.find(A=>A.name===g);I||(I=new Yo({name:g,isUserDefined:!0,features:[]}),this.roiSets.push(I));const t=I.addFeature(A);return this.callbacks.onROIAdded(t,I),t}addROISet(A){const g=new Yo(A);this.roiSets.push(g);for(const A of g.features)this.callbacks.onROIAdded(A,g);return g}removeROI(A){for(const g of this.roiSets){const I=g.removeFeature(A);if(I)return this.callbacks.onROIRemoved(I,g),!0}return!1}updateROI(A,g){for(const I of this.roiSets){const t=I.updateFeature(A,g);if(t)return this.callbacks.onROIChanged(t,g,I),t}}removeROISet(A){const g=this.roiSets.indexOf(A);if(g<0)return!1;this.roiSets.splice(g,1);for(const g of A.features)this.callbacks.onROIRemoved(g,A);return!0}clear(){this.roiSets=[]}getROIs(){return this.roiSets.flatMap(A=>[...A.features])}getROISets(){return this.roiSets}findROIsAtLocus(A,g,I){return this.roiSets.flatMap(t=>t.getFeatures(A,g,I))}getVisibleROIs(A){return this.findROIsAtLocus(A.chr,A.start,A.end)}serialize(){return this.roiSets.length>0?this.roiSets.map(A=>A.toJSON()):void 0}}function Ho(A){var g,I,t,e,C;switch(A.type){case"bigwig":return`bigwig:${A.url}:${null!==(g=A.windowFunction)&&void 0!==g?g:"mean"}`;case"gtx":return`gtx:${A.url}:${A.experimentId}`;case"ucsc":return`ucsc:${null!==(I=A.genome)&&void 0!==I?I:""}:${null!==(t=A.track)&&void 0!==t?t:""}`;case"text":return`text:${A.url}:${null!==(e=A.format)&&void 0!==e?e:""}:${null!==(C=A.indexURL)&&void 0!==C?C:""}`;case"memory":return`memory:${Math.random()}`;default:return Ho(_B(A))}}class qo{constructor(A,g,I){this.loadDebounceTimers=new Map,this._disposed=!1,this.fetchCache=new L({cache:new X({maxSize:100}),fill:(A,g)=>A.dataSource.fetch(A.fetchRegion,A.bpPerPixel,g)}),this.callbacks=A,this.dataSourceWorkerProvider=g,this.maxTotalFeatures=null!=I?I:5e5}debouncedLoad(A,g){for(const I of A){const A=this.getFrameAbortController(I,g.id);A&&(A.abort(),this.setFrameAbortController(I,g.id,null))}const I=this.loadDebounceTimers.get(g.id);null!=I&&clearTimeout(I),this.loadDebounceTimers.set(g.id,setTimeout(()=>{this.loadDebounceTimers.delete(g.id),this.loadAllTracksForFrame(A,g)},100))}loadAllTracksIfNeeded(A,g){for(const A of this.loadDebounceTimers.values())clearTimeout(A);this.loadDebounceTimers.clear();for(const I of g)this.loadAllTracksForFrame(A,I)}loadAllTracksForFrame(A,g){for(const I of A)I.dataSource&&this.loadTrackWithDedup(I,A,g)}loadTrackWithDedup(A,g,I){var t,e,C,i;const{locus:B,viewportWidth:Q}=I;if(0===Q)return;const o=(B.end-B.start)/Q,s=null!==(t=A.frameInstances.get(I.id))&&void 0!==t?t:A.track,E=null!==(e=A.frameCaches.get(I.id))&&void 0!==e?e:A.cache,a=s.visibilityWindow,r=null!=a&&a>0&&o*Q>a;if(LC(s)&&s.setZoomedOut(r),r){const g=this.getFrameAbortController(A,I.id);return void(g&&(g.abort(),this.setFrameAbortController(A,I.id,null)))}if(E.find(B,o))return;const n=this.getFrameAbortController(A,I.id);n&&n.abort(),s.setError(null);const h=Li(B),c=A.dataSourceConfig?Ho(A.dataSourceConfig):null;if(c)for(const t of g){if(t===A||!t.dataSourceConfig)continue;const g=(null!==(C=t.frameCaches.get(I.id))&&void 0!==C?C:t.cache).find(B,o);if(g&&Ho(t.dataSourceConfig)===c)return E.put(g),null===(i=A.nameIndex)||void 0===i||i.addFeatures(g.features),this.setFrameAbortController(A,I.id,null),s.setError(null),"function"==typeof s.setFeatures&&s.setFeatures(g.features),void this.callbacks.onDataLoaded(s)}const l=new AbortController;this.setFrameAbortController(A,I.id,l);const d=c?`${c}|${h.chr}:${h.start}-${h.end}|${o}`:`${A.id}|${h.chr}:${h.start}-${h.end}|${o}`;this.fetchCache.get(d,{dataSource:A.dataSource,fetchRegion:h,bpPerPixel:o},l.signal).then(t=>{var e;if(this._disposed||l.signal.aborted)return;const C={locus:h,bpPerPixel:o,features:t};E.put(C),null===(e=A.nameIndex)||void 0===e||e.addFeatures(t),this.enforceGlobalBudget(g),this.setFrameAbortController(A,I.id,null),s.setError(null),"function"==typeof s.setFeatures&&s.setFeatures(t),this.callbacks.onDataLoaded(s)}).catch(A=>{if(this._disposed||l.signal.aborted||function(A){return A instanceof DOMException&&"AbortError"===A.name||A instanceof Error&&"AbortError"===A.name||!!(A instanceof Error&&A.message.includes("aborted"))}(A))return;const g=Lo(A);E.hasData()?mC.warn("Data fetch failed, showing cached data:",g.message):(mC.error("Data fetch error:",g),s.setError(g)),this.callbacks.onDataError(s,g)})}enforceGlobalBudget(A){let g=this.getTotalFeatureCount(A);for(;g>this.maxTotalFeatures;){let I=null,t=1/0;for(const g of A){if(g.cache.size<=1)continue;const A=g.cache.getLRUAccessTime();A<t&&(t=A,I=g)}if(!I)break;g-=I.cache.evictOne()}}resizeCaches(A){const g=A.filter(A=>A.dataSource).length;if(0===g)return;const I=Math.max(1,Math.floor(50/g));for(const g of A)g.cache.maxEntries!==I&&g.cache.resize(I)}getTotalFeatureCount(A){let g=0;for(const I of A)g+=I.cache.totalFeatureCount;return g}getFrameAbortController(A,g){var I;return A.frameInstances.has(g)?null!==(I=A.frameAbortControllers.get(g))&&void 0!==I?I:null:A.abortController}setFrameAbortController(A,g,I){A.frameInstances.has(g)?I?A.frameAbortControllers.set(g,I):A.frameAbortControllers.delete(g):A.abortController=I}dispose(){this._disposed=!0,this.fetchCache.clear();for(const A of this.loadDebounceTimers.values())clearTimeout(A);this.loadDebounceTimers.clear()}destroyWorkerDataSource(A){A instanceof GC&&this.dataSourceWorkerProvider&&this.dataSourceWorkerProvider.destroy(A.instanceId)}}function _o(A,g){if(null==g?void 0:g.authProvider)return B(g.authProvider);if(null==g?void 0:g.auth){return B(new C({oauthToken:g.auth.oauthToken,headers:g.auth.headers,withCredentials:g.auth.withCredentials}))}return A.authProvider?B(A.authProvider):void 0}let To=0;function Wo(A,g){if(!g.dataSourceWorkerProvider)return null;const I=`ds-${To++}-${Date.now()}`;g.dataSourceWorkerProvider.create(I,A);const t=new GC(g.dataSourceWorkerProvider,I);return g.genome&&t.setChromNameResolver(A=>g.genome.getChromosomeName(A)),g.cumulativeOffsets&&t.setCumulativeOffsets(g.cumulativeOffsets),t}function Po(A,g){g.genome&&(A instanceof cg||A instanceof Tg?A.setChromNameResolver(A=>g.genome.getChromosomeName(A)):A instanceof dC?(A.setChromNameResolver(A=>g.genome.getChromosomeName(A)),g.cumulativeOffsets&&A.setCumulativeOffsets(g.cumulativeOffsets)):A instanceof XB&&A.setChromNameResolver(A=>g.genome.getChromosomeName(A))),g.cumulativeOffsets&&(A instanceof cg||A instanceof Tg||A instanceof XB)&&A.setCumulativeOffsets(g.cumulativeOffsets)}function Oo(A,g,I){const t=Wo(A,I);if(t)return{dataSource:t,workerDS:t};const e=g();return Po(e,I),{dataSource:e,workerDS:null}}function Vo(A,g){const I=A.onWindowFunctionChange;I&&(A.onWindowFunctionChange=A=>{I(A),g()})}const Zo={LocusChange:"locuschange",FrameAdded:"frameadded",FrameRemoved:"frameremoved",TrackAdded:"trackadded",TrackRemoved:"trackremoved",TrackOrderChanged:"trackorderchanged",DataLoaded:"dataloaded",DataError:"dataerror",RenderError:"rendererror",TrackClick:"trackclick",TrackHover:"trackhover",TrackContextMenu:"trackcontextmenu",ROIAdded:"roiadded",ROIRemoved:"roiremoved",ROIChanged:"roichanged",ROIClick:"roiclick",ROIContextMenu:"roicontextmenu",ThemeChanged:"themechange",TrackConfigChanged:"trackconfigchanged",Undo:"undo",Redo:"redo",UndoStackChanged:"undostackchanged"};let zo=0;const jo={ideogram:3,ruler:2,sequence:1};function Xo(A){var g;return null!==(g=jo[A])&&void 0!==g?g:0}class $o{get theme(){return this._theme}get primaryFrame(){return this._frames[0]}get frames(){return this._frames}get locus(){return this._frames[0].locus}get viewportWidth(){return this._frames[0].viewportWidth}canUndo(A){return this._undoManager.canUndo(A)}canRedo(A){return this._undoManager.canRedo(A)}get state(){return this._state||(this._state=new ro(this)),this._state}constructor(A){var g,I,t,e,C,i,B,Q;this.managedTracks=[],this._deferSort=!1,this._suppressImmediateLoad=!1,this.events=new Oi,this._undoManager=new So,this.genome=null===A.genome?void 0:null!==(g=A.genome)&&void 0!==g?g:UB,this.chromSizes=null===(I=this.genome)||void 0===I?void 0:I.chromSizes,this.cumulativeOffsets=null===(t=this.genome)||void 0===t?void 0:t.cumulativeOffsets,this.sequenceProvider=null===(e=this.genome)||void 0===e?void 0:e.sequence;const o=this.clamp({...A.locus}),s=null!==(C=A.viewportWidth)&&void 0!==C?C:0;this._frames=[Ri(o,s,"main")],this.canvasProvider=null!==(i=A.canvasProvider)&&void 0!==i?i:S,this.workerProvider=A.workerProvider,this.dataSourceWorkerProvider=function(A){if(!A||"object"!=typeof A)return!1;const g=A;return"function"==typeof g.create&&"function"==typeof g.fetch&&"function"==typeof g.destroy}(A.workerProvider)?A.workerProvider:void 0,this.popupProvider=null!==(B=A.popupProvider)&&void 0!==B?B:void 0,this.contextMenuProvider=null!==(Q=A.contextMenuProvider)&&void 0!==Q?Q:void 0,this._theme=zC(A.theme),this.authProvider=A.authProvider,A.stateProjection&&(this._state=A.stateProjection),this.roiManager=new xo({onROIAdded:(A,g)=>this.events.emit(Zo.ROIAdded,{roi:A,set:g}),onROIRemoved:(A,g)=>this.events.emit(Zo.ROIRemoved,{roi:A,set:g}),onROIChanged:(A,g,I)=>this.events.emit(Zo.ROIChanged,{roi:A,changes:g,set:I})}),this.dataManager=new qo({onDataLoaded:A=>this.events.emit(Zo.DataLoaded,{track:A}),onDataError:(A,g)=>this.events.emit(Zo.DataError,{track:A,error:g})},this.dataSourceWorkerProvider)}factoryContext(){return{locus:this._frames[0].locus,canvasProvider:this.canvasProvider,theme:this._theme,genome:this.genome,chromSizes:this.chromSizes,cumulativeOffsets:this.cumulativeOffsets,sequenceProvider:this.sequenceProvider,dataSourceWorkerProvider:this.dataSourceWorkerProvider,authProvider:this.authProvider}}clamp(A){return this.chromSizes?rg(A,this.chromSizes,this.cumulativeOffsets):A}updateIdeogramCytobands(){var A,g;const I=this._frames[0].locus.chr,t=this.genome;if(!(null==t?void 0:t.getCytobands))return;const e=null!==(A=t.getCytobands(I))&&void 0!==A?A:[],C=null!==(g=t.getChromosomeLength(I))&&void 0!==g?g:0;for(const A of this.managedTracks)"ideogram"===A.track.type&&A.track.setCytobands(e,C)}on(A,g){return this.events.on(A,g)}off(A,g){this.events.off(A,g)}_snapshotForUndo(A){this._undoManager.snapshot(A,this.toJSON()),this.events.emit(Zo.UndoStackChanged,{canUndo:this._undoManager.canUndo(),canRedo:this._undoManager.canRedo()})}undo(A){const g=this._undoManager.undo(this.toJSON(),A);if(!g)return!1;this._undoManager.pause();try{this.loadSession(g.session)}finally{this._undoManager.resume()}return this.events.emit(Zo.Undo,{entry:g}),this.events.emit(Zo.UndoStackChanged,{canUndo:this._undoManager.canUndo(),canRedo:this._undoManager.canRedo()}),!0}redo(A){const g=this._undoManager.redo(this.toJSON(),A);if(!g)return!1;this._undoManager.pause();try{this.loadSession(g.session)}finally{this._undoManager.resume()}return this.events.emit(Zo.Redo,{entry:g}),this.events.emit(Zo.UndoStackChanged,{canUndo:this._undoManager.canUndo(),canRedo:this._undoManager.canRedo()}),!0}clearUndoHistory(){this._undoManager.clear(),this.events.emit(Zo.UndoStackChanged,{canUndo:!1,canRedo:!1})}setViewportWidth(A){this._frames[0].viewportWidth=A,Ui(this._frames[0]),this.render(),this.loadAllTracksIfNeeded()}addTrack(A,g,I,t,e){var C;this._snapshotForUndo("track-add");const i=`${null!=(B=A.type)?B:"track"}-${zo++}`;var B;const Q={id:i,track:A,dataSource:null!==(C=g)&&void 0!==C?C:null,dataSourceConfig:null!=I?I:null,cache:new Ji,abortController:null,frameAbortControllers:new Map,maxTrackHeight:t,order:e,frameInstances:new Map,frameCaches:new Map,searchable:!1,nameIndex:null};if(A.onBeforeConfigChange=()=>{this._snapshotForUndo("track-config")},A.onConfigChanged=()=>{this.events.emit(Zo.TrackConfigChanged,{track:A})},A instanceof sQ&&(A.onExpandedChanged=(A,g)=>{this._syncCompositeExpansion(g,A)},A.onChildrenChanged=A=>{A.expanded&&this._syncCompositeExpansion(A,!0)}),this.managedTracks.push(Q),this.sortTracks(),A.setTheme(this._theme),A.setLocus(this._frames[0].locus),this.events.emit(Zo.TrackAdded,{track:A}),this.dataManager.resizeCaches(this.managedTracks),g&&!this._suppressImmediateLoad)for(const A of this._frames)this.dataManager.loadTrackWithDedup(Q,this.managedTracks,A);return i}removeTrack(A){this._snapshotForUndo("track-remove");const g="string"==typeof A?this.managedTracks.findIndex(g=>g.id===A):this.managedTracks.findIndex(g=>g.track===A);if(g>=0){const A=this.managedTracks[g];A.abortController&&A.abortController.abort();for(const g of A.frameAbortControllers.values())null==g||g.abort();A.frameAbortControllers.clear(),A.dataSource&&this.dataManager.destroyWorkerDataSource(A.dataSource);for(const g of A.frameInstances.values())g.detach();A.frameInstances.clear(),A.frameCaches.clear(),this.managedTracks.splice(g,1),this.dataManager.resizeCaches(this.managedTracks),this.events.emit(Zo.TrackRemoved,{track:A.track})}}_ensureFrameInstances(A){if(!(this._frames.length<=1))for(const g of this._frames){if(g.id===this._frames[0].id)continue;if(A.frameInstances.has(g.id))continue;const I=this._cloneTrackForFrame(A,g);I&&(A.frameInstances.set(g.id,I),A.frameCaches.set(g.id,new Ji))}}_cloneTrackForFrame(A,g){const I=A.track.serializeConfig(this._theme);try{const A=Co(I,g.locus,{canvasProvider:this.canvasProvider,theme:this.theme,sequenceProvider:this.sequenceProvider});return A.track.setTheme(this._theme),A.track}catch(I){return mC.warn(`Failed to clone track ${A.id} for frame ${g.id}`),null}}_removeFrameInstances(A){for(const g of this.managedTracks){const I=g.frameInstances.get(A);I&&(I.detach(),g.frameInstances.delete(A)),g.frameCaches.delete(A)}}getTrackForFrame(A,g){var I;return g===this._frames[0].id?A.track:null!==(I=A.frameInstances.get(g))&&void 0!==I?I:A.track}moveTrack(A,g){this._snapshotForUndo("track-reorder");const I=this.managedTracks.findIndex(g=>g.track===A);if(I<0)return;const t=Math.max(0,Math.min(g,this.managedTracks.length-1));if(I===t)return;const[e]=this.managedTracks.splice(I,1);this.managedTracks.splice(t,0,e),this._assignOrderFromPosition(),this.events.emit(Zo.TrackOrderChanged,{tracks:this.managedTracks.map(A=>A.track)})}_syncCompositeExpansion(A,g){var I;const t=this.managedTracks.find(g=>g.track===A);if(!t)return;const e=this._deferSort;this._deferSort=!0;try{const e=this.managedTracks.filter(A=>A.parentId===t.id);this._undoManager.pause();try{for(const A of e)this.removeTrack(A.id)}finally{this._undoManager.resume()}if(g){void 0===t.order&&this._assignOrderFromPosition();const g=null!==(I=t.order)&&void 0!==I?I:0,e=A.getChildren();this._undoManager.pause();try{for(let A=0;A<e.length;A++){const I=e[A],C=g-.1*(A+1);this.addTrack(I.track,void 0,void 0,void 0,C);const i=this.managedTracks.find(A=>A.track===I.track);i&&(i.isEphemeral=!0,i.parentId=t.id,I.name&&(i.name=I.name))}}finally{this._undoManager.resume()}}}finally{this._deferSort=e}this.sortTracks(),this.events.emit(Zo.TrackOrderChanged,{tracks:this.managedTracks.map(A=>A.track)})}sortTracks(){this._deferSort||(this.managedTracks.sort((A,g)=>{var I,t;const e=(null!==(I=A.order)&&void 0!==I?I:0)+Xo(A.track.type);return(null!==(t=g.order)&&void 0!==t?t:0)+Xo(g.track.type)-e}),this.onTracksSorted())}onTracksSorted(){}_assignOrderFromPosition(){const A=this.managedTracks.length;for(let g=0;g<A;g++)this.managedTracks[g].order=10*(A-g)}findMT(A){return this.managedTracks.find(g=>g.track===A)}getTrackOrder(){return this.managedTracks.map(A=>A.track)}getManagedTrack(A){return this.managedTracks.find(g=>g.id===A)}getTrack(A){var g;return null===(g=this.managedTracks.find(g=>g.id===A))||void 0===g?void 0:g.track}getManagedTracks(){return this.managedTracks}findTracks(A){return fo(this.managedTracks,A)}removeTracks(A){const g=fo(this.managedTracks,A);if(0===g.length)return 0;this._snapshotForUndo("track-remove"),this._undoManager.pause();try{for(const A of g)this.removeTrack(A.id)}finally{this._undoManager.resume()}return g.length}updateTrackMetadata(A,g){const I=fo(this.managedTracks,A);for(const A of I)A.metadata={...A.metadata,...g};return I.length}setLocus(A){this.setFrameLocus("main",A)}setFrameLocus(A,g){const I=this._frames.find(g=>g.id===A);if(!I)throw new Error(`Unknown frame: ${A}`);const t=I.locus.chr;I.locus=this.clamp({...g}),Ui(I);for(const g of this.managedTracks)this.getTrackForFrame(g,A).setLocus(I.locus);I.locus.chr!==t&&this.updateIdeogramCytobands(),this.dataManager.debouncedLoad(this.managedTracks,I),this.events.emit(Zo.LocusChange,{frames:[I],sourceFrameId:I.id,locus:this._frames[0].locus})}getFrame(A){return this._frames.find(g=>g.id===A)}getFrames(){return this._frames}addFrame(A,g){const I=this.clamp({...A}),t=pi();let e=this._frames.length;if(g){const A=this._frames.findIndex(A=>A.id===g);A>=0&&(e=A+1)}const C=this._frames[0].viewportWidth*this._frames.length/(this._frames.length+1),i=Ri(I,C,t);this._frames.splice(e,0,i);for(const A of this._frames)A.viewportWidth=C,Ui(A);for(const A of this.managedTracks)this._ensureFrameInstances(A);return this.events.emit(Zo.FrameAdded,{frame:i}),i}removeFrame(A){if(this._frames.length<=1)throw new Error("Cannot remove the last reference frame");const g=this._frames.findIndex(g=>g.id===A);if(g<0)throw new Error(`Unknown frame: ${A}`);const I=0===g;this._removeFrameInstances(A),this._frames.splice(g,1);const t=this._frames[0].viewportWidth*(this._frames.length+1)/this._frames.length;for(const A of this._frames)A.viewportWidth=t,Ui(A);if(1===this._frames.length)for(const A of this.managedTracks){for(const g of A.frameInstances.values())g.detach();A.frameInstances.clear(),A.frameCaches.clear()}if(I){const A=this._frames[0];for(const g of this.managedTracks)g.track.setLocus(A.locus);for(const g of this.managedTracks)g.dataSource&&this.dataManager.loadTrackWithDedup(g,this.managedTracks,A)}this.events.emit(Zo.FrameRemoved,{frameId:A})}async search(A,g){if(!A||!A.trim())return!1;const I=A.trim().split(/[\s;]+/).filter(Boolean);if(0===I.length)return!1;let t=await this._resolveSearchToken(I[0]);if(!t&&I.length>1&&(t=await this._resolveSearchToken(A.trim().replace(/ /g,"+")),t)){const A=null!=g?g:this._frames[0].id;return this.setFrameLocus(A,t),!0}if(!t)return!1;const e=null!=g?g:this._frames[0].id;this.setFrameLocus(e,t);for(let A=1;A<I.length;A++){const g=await this._resolveSearchToken(I[A]);g&&this.addFrame(g,this._frames[this._frames.length-1].id)}return!0}searchLocalTracks(A){for(const g of this.managedTracks){if(!g.searchable||!g.nameIndex)continue;const I=g.nameIndex.search(A);if(I){return{chr:this.genome?this.genome.getChromosomeName(I.chr):I.chr,start:I.start,end:I.end}}}return null}async _resolveSearchToken(A){var g;const I=A.trim();if(!I)return null;if(this.genome&&Fo(I)){const A=await No(I,A=>this.genome.getAliasRecord(A),this._createTranscriptProvider());if(A){return{chr:this.genome.getChromosomeName(A.chr),start:A.start,end:A.end}}}const t=sg(I,this.cumulativeOffsets);if(t){if(!this.genome)return t;if(null!=this.genome.getChromosomeLength(this.genome.getChromosomeName(t.chr)))return t.chr=this.genome.getChromosomeName(t.chr),t}if(this.genome){const A=this.genome.getChromosomeName(I),g=this.genome.getChromosomeLength(A);if(null!=g)return{chr:A,start:0,end:g}}if(null===(g=this.genome)||void 0===g?void 0:g.getManeTranscript){const A=await this.genome.getManeTranscript(I);if(null==A?void 0:A.chr){return{chr:this.genome.getChromosomeName(A.chr),start:A.start,end:A.end}}}const e=this.searchLocalTracks(I);if(e)return e;if(this.genome){const A=await ko(I,this.genome.id);if(A){return{chr:this.genome.getChromosomeName(A.chr),start:A.start,end:A.end}}}return null}_createTranscriptProvider(){var A;if(null===(A=this.genome)||void 0===A?void 0:A.getManeTranscript)return async A=>{const g=await this.genome.getManeTranscript(A);if((null==g?void 0:g.chr)&&g.strand)return g}}zoomIn(A=2,g){this.zoomByFactor(1/A,g)}zoomOut(A=2,g){this.zoomByFactor(A,g)}zoomByFactor(A,g){this.zoomAroundCenter(A,void 0,g)}zoomAroundCenter(A,g,I){var t;const e=I&&null!==(t=this._frames.find(A=>A.id===I))&&void 0!==t?t:this._frames[0];if(og(e.locus))return;const C=null!=g?g:(e.locus.start+e.locus.end)/2,i=e.locus.end-e.locus.start;let B=i*A;if(A>1&&this.chromSizes&&e.viewportWidth>0){const A=this.chromSizes[e.locus.chr];if(null!=A){if(i>=A&&this.cumulativeOffsets)return void this.setFrameLocus(e.id,{chr:"all",start:0,end:this.cumulativeOffsets.totalLength});B=Math.min(B,A)}}if(null!=g){const A=(g-e.locus.start)/i;this.setFrameLocus(e.id,{chr:e.locus.chr,start:g-A*B,end:g-A*B+B})}else{const A=B/2;this.setFrameLocus(e.id,{chr:e.locus.chr,start:C-A,end:C+A})}}reloadData(){for(const A of this.managedTracks)A.dataSource&&A.cache.clear();this.loadAllTracksIfNeeded()}getCachedFeatures(A){var g;const I=this.managedTracks.find(g=>g.track===A);return null===(g=null==I?void 0:I.cache.getMostRecent())||void 0===g?void 0:g.features}render(){if(0!==this._frames[0].viewportWidth)for(const A of this.managedTracks){try{A.track.render()}catch(g){const I=Lo(g);mC.error("Render error:",I),A.track.setError(I),this.events.emit(Zo.RenderError,{track:A.track,error:I})}for(const g of A.frameInstances.values())try{g.render()}catch(A){const I=Lo(A);mC.error("Render error (frame instance):",I),g.setError(I)}}}addROI(A,g="User-defined"){return this._snapshotForUndo("roi"),this.roiManager.addROI(A,g)}addROISet(A){return this._snapshotForUndo("roi"),this.roiManager.addROISet(A)}removeROI(A){return this._snapshotForUndo("roi"),this.roiManager.removeROI(A)}updateROI(A,g){return this._snapshotForUndo("roi"),this.roiManager.updateROI(A,g)}removeROISet(A){return this._snapshotForUndo("roi"),this.roiManager.removeROISet(A)}clearROIs(){this._snapshotForUndo("roi"),this.roiManager.clear()}getROIs(){return this.roiManager.getROIs()}getROISets(){return this.roiManager.getROISets()}findROIsAtLocus(A,g,I){return this.roiManager.findROIsAtLocus(A,g,I)}getVisibleROIs(){return this.roiManager.getVisibleROIs(this._frames[0].locus)}toSVG(A){var g,I;const t=null!==(g=null==A?void 0:A.width)&&void 0!==g?g:this._frames[0].viewportWidth;if(0===t)throw new Error("Cannot export SVG with zero viewport width");let e=0;const C=[];for(const A of this.managedTracks){const g=A.track.height||50;C.push(g),e+=g}const i=new Pi({width:t,height:e,viewbox:{x:0,y:0,width:t,height:e},backdropColor:null!==(I=null==A?void 0:A.backdropColor)&&void 0!==I?I:"white"});let B=0;for(let A=0;A<this.managedTracks.length;A++){const g=this.managedTracks[A].track,I=C[A],e=`track_${A}_${g.type}`;i.saveWithTranslationAndClipRect(e,0,B,t,I,0),g.renderToContext&&g.renderToContext(i,t,I),i.restore(),B+=I}const Q=this.getVisibleROIs();if(Q.length>0){const A=this._frames[0].locus,g=(A.end-A.start)/t;Ki(i,Q,{pixelWidth:t,bpStart:A.start,bpPerPixel:g,viewportWidth:t},{totalHeight:e})}return i.setHeight(e),i.getSerializedSvg(!0)}toJSON(){var A;const g=[];for(const I of this.managedTracks){if(I.isEphemeral)continue;const t=I.track.serializeConfig(this.theme);t.id=I.id,I.name&&(t.name=I.name),null!=I.order&&(t.order=I.order),I.metadata&&(t.metadata=I.metadata),I.searchable&&(t.searchable=!0),(null===(A=I.nameIndex)||void 0===A?void 0:A.searchableFields)&&(t.searchableFields=[...I.nameIndex.searchableFields]),I.dataSourceConfig&&"ruler"!==t.type&&"sequence"!==t.type&&"merged"!==t.type&&"wigGroup"!==t.type&&"ideogram"!==t.type&&(t.dataSource=I.dataSourceConfig),g.push(t)}const I=this.genome?{id:this.genome.id,name:this.genome.name}:void 0;return{version:io,frames:this._frames.map(A=>({id:A.id,locus:{...A.locus},viewportWidth:A.viewportWidth||void 0})),locus:{...this._frames[0].locus},viewportWidth:this._frames[0].viewportWidth||void 0,genome:I,tracks:g,rois:this.roiManager.serialize()}}loadSession(A,g){var I,t;this._snapshotForUndo("session-load");for(const A of this.managedTracks){A.abortController&&A.abortController.abort();for(const g of A.frameAbortControllers.values())null==g||g.abort();A.frameAbortControllers.clear()}this.managedTracks=[],this.roiManager.clear(),A.frames&&A.frames.length>0?this._frames=A.frames.map(A=>{var g;return Ri({...A.locus},null!==(g=A.viewportWidth)&&void 0!==g?g:this._frames[0].viewportWidth,A.id)}):(this._frames[0].locus={...A.locus},A.viewportWidth&&(this._frames[0].viewportWidth=A.viewportWidth),Ui(this._frames[0]));const e={canvasProvider:this.canvasProvider,theme:null==g?void 0:g.theme,sequenceProvider:this.sequenceProvider},C=this.factoryContext();this._deferSort=!0;try{for(const g of A.tracks){const A=Bo(g,this._frames[0].locus,e);let i=A.dataSource;if(i&&A.dataSourceConfig&&this.dataSourceWorkerProvider){const g=A.dataSourceConfig.type;if("bigwig"===g||"gtx"===g||"text"===g||"ucsc"===g){const g=Wo(A.dataSourceConfig,C);g&&(i=g)}}!this.dataSourceWorkerProvider&&i&&Po(i,C),this.addTrack(A.track,null!=i?i:void 0,null!==(I=A.dataSourceConfig)&&void 0!==I?I:void 0,void 0,null!==(t=A.order)&&void 0!==t?t:void 0);const B=this.findMT(A.track);g.id&&(B.id=g.id),A.name&&(B.name=A.name),g.metadata&&(B.metadata=g.metadata)}}finally{this._deferSort=!1,this.sortTracks()}if(A.rois)for(const g of A.rois)this.roiManager.addROISet(g);this.events.emit(Zo.LocusChange,{frames:[...this._frames],locus:this._frames[0].locus})}static fromSession(A,g){var I,t;const e=new $o({locus:A.locus,viewportWidth:null!==(I=A.viewportWidth)&&void 0!==I?I:null==g?void 0:g.viewportWidth,canvasProvider:null==g?void 0:g.canvasProvider,workerProvider:null==g?void 0:g.workerProvider,theme:null!==(t=A.theme)&&void 0!==t?t:null==g?void 0:g.theme});return e.loadSession(A,g),e}addTrackFromConfig(A){var g;if(A.id){const g=this.getManagedTrack(A.id);if(g)return g.track}const I=Co(A,this._frames[0].locus,{canvasProvider:this.canvasProvider,theme:this.theme,sequenceProvider:this.sequenceProvider}),t=this.factoryContext();let e=I.dataSourceConfig;e&&!qB(e.type)&&(e=_B(e));let C=I.dataSource;if(C&&e&&this.dataSourceWorkerProvider){const A=e.type;if("bigwig"===A||"gtx"===A||"text"===A||"ucsc"===A){const A=Wo(e,t);A&&(C=A)}}const i=C!==I.dataSource;if(C&&!i)if("childSources"in C&&Array.isArray(C.childSources))for(const A of C.childSources)Po(A,t);else Po(C,t);this.addTrack(I.track,null!=C?C:void 0,null!=e?e:void 0,void 0,null!==(g=I.order)&&void 0!==g?g:void 0);const B=this.findMT(I.track);return A.id&&(B.id=A.id),I.name&&(B.name=I.name),A.metadata&&(B.metadata=A.metadata),I.searchable&&(B.searchable=!0,B.nameIndex=new Mo(I.searchableFields)),I.track}registerFactory(A){this.addTrack(A.track,A.dataSource,A.dataSourceConfig,A.maxTrackHeight,A.order);const g=this.findMT(A.track);if(A.metadata&&(g.metadata=A.metadata),A.searchable&&(g.searchable=!0,g.nameIndex=new Mo(A.searchableFields)),A.onRegistered){const g=A.track;A.onRegistered(()=>{const A=this.managedTracks.find(A=>A.track===g);return null!=A?A:{cache:new Ji,dataSourceConfig:null}})}return A.track}addRuler(A){return this.registerFactory(function(A,g){const{canvas:I}=A.canvasProvider.createCanvas(0,0);return{track:new hi(I,{locus:A.locus,config:null==g?void 0:g.config,theme:A.theme,canvasProvider:A.canvasProvider,cumulativeOffsets:A.cumulativeOffsets,chromSizes:A.chromSizes}),maxTrackHeight:null==g?void 0:g.maxTrackHeight}}(this.factoryContext(),A))}addWigTrack(A,g){const I=function(A,g,I){var t;const{canvas:e}=A.canvasProvider.createCanvas(0,0),C=null!==(t=null==I?void 0:I.windowFunction)&&void 0!==t?t:"mean",i=new Fi(e,{locus:A.locus,features:[],config:null==I?void 0:I.config,theme:A.theme,canvasProvider:A.canvasProvider,name:null==I?void 0:I.name,sequenceProvider:A.sequenceProvider}),B={type:"bigwig",url:g,windowFunction:C,...null==I?void 0:I.auth},Q=_o(A,I),{dataSource:o,workerDS:s}=Oo(B,()=>new cg(g,C,Q),A);return{track:i,dataSource:o,dataSourceConfig:B,maxTrackHeight:null==I?void 0:I.maxTrackHeight,metadata:null==I?void 0:I.metadata,onRegistered:A=>{i.onWindowFunctionChange=g=>{s?s.setWindowFunction(g):o.setWindowFunction(g);const I=A();I&&(I.cache.clear(),I.dataSourceConfig&&"bigwig"===I.dataSourceConfig.type&&(I.dataSourceConfig.windowFunction=g))}}}}(this.factoryContext(),A,g),t=this.registerFactory(I);return I.onRegistered&&Vo(t,()=>this.loadAllTracksIfNeeded()),t}addGtxTrack(A,g){const I=function(A,g,I){var t;const{canvas:e}=A.canvasProvider.createCanvas(0,0),C=null!==(t=I.windowFunction)&&void 0!==t?t:"mean",i=new Fi(e,{locus:A.locus,features:[],config:I.config,theme:A.theme,canvasProvider:A.canvasProvider,name:I.name,sequenceProvider:A.sequenceProvider}),B={type:"gtx",url:g,experimentId:I.experimentId,windowFunction:C,...null==I?void 0:I.auth},Q=_o(A,I),{dataSource:o,workerDS:s}=Oo(B,()=>new Tg(g,I.experimentId,C,Q),A);return{track:i,dataSource:o,dataSourceConfig:B,maxTrackHeight:null==I?void 0:I.maxTrackHeight,metadata:null==I?void 0:I.metadata,onRegistered:A=>{i.onWindowFunctionChange=g=>{s?s.setWindowFunction(g):o.setWindowFunction(g);const I=A();I&&(I.cache.clear(),I.dataSourceConfig&&"gtx"===I.dataSourceConfig.type&&(I.dataSourceConfig.windowFunction=g))}}}}(this.factoryContext(),A,g),t=this.registerFactory(I);return I.onRegistered&&Vo(t,()=>this.loadAllTracksIfNeeded()),t}addGeneTrack(A){return this.registerFactory(function(A,g){var I,t;const{canvas:e}=A.canvasProvider.createCanvas(0,0),C=new si(e,{locus:A.locus,features:[],config:null==g?void 0:g.config,theme:A.theme,canvasProvider:A.canvasProvider,name:null!==(I=null==g?void 0:g.name)&&void 0!==I?I:"Genes"}),i=null==g?void 0:g.genome,B=null==g?void 0:g.track,Q={type:"ucsc",genome:i,track:B},{dataSource:o}=Oo(Q,()=>new II({genome:i,track:B}),A);return{track:C,dataSource:o,dataSourceConfig:Q,maxTrackHeight:null==g?void 0:g.maxTrackHeight,metadata:null==g?void 0:g.metadata,order:-1,searchable:null===(t=null==g?void 0:g.searchable)||void 0===t||t,searchableFields:null==g?void 0:g.searchableFields}}(this.factoryContext(),A))}addBedTrack(A,g){return this.registerFactory(function(A,g,I){var t;const{canvas:e}=A.canvasProvider.createCanvas(0,0),C=null==I?void 0:I.format,i=new si(e,{locus:A.locus,features:[],config:null==I?void 0:I.config,theme:A.theme,canvasProvider:A.canvasProvider,name:null==I?void 0:I.name}),B={type:"text",url:g,format:C,indexURL:null==I?void 0:I.indexURL,indexed:null==I?void 0:I.indexed,...null==I?void 0:I.auth},Q=_o(A,I),{dataSource:o}=Oo(B,()=>new dC({url:g,format:C,indexURL:null==I?void 0:I.indexURL,indexed:null==I?void 0:I.indexed,fetchImpl:Q}),A);return{track:i,dataSource:o,dataSourceConfig:B,maxTrackHeight:null==I?void 0:I.maxTrackHeight,metadata:null==I?void 0:I.metadata,searchable:null===(t=null==I?void 0:I.searchable)||void 0===t||t,searchableFields:null==I?void 0:I.searchableFields}}(this.factoryContext(),A,g))}addInteractionTrack(A,g){return this.registerFactory(function(A,g,I){var t;const{canvas:e}=A.canvasProvider.createCanvas(0,0),C=null==I?void 0:I.format,i=new CQ(e,{locus:A.locus,features:[],config:null==I?void 0:I.config,theme:A.theme,canvasProvider:A.canvasProvider,name:null==I?void 0:I.name}),B={type:"text",url:g,format:C,indexURL:null==I?void 0:I.indexURL,indexed:null==I?void 0:I.indexed,...null==I?void 0:I.auth},Q=_o(A,I),{dataSource:o}=Oo(B,()=>new dC({url:g,format:C,indexURL:null==I?void 0:I.indexURL,indexed:null==I?void 0:I.indexed,fetchImpl:Q}),A);return{track:i,dataSource:o,dataSourceConfig:B,metadata:null==I?void 0:I.metadata,searchable:null===(t=null==I?void 0:I.searchable)||void 0===t||t,searchableFields:null==I?void 0:I.searchableFields}}(this.factoryContext(),A,g))}addWigTrackWithFeatures(A,g){return this.registerFactory(function(A,g,I){const{canvas:t}=A.canvasProvider.createCanvas(0,0),e=new Fi(t,{locus:A.locus,features:[],config:null==I?void 0:I.config,theme:A.theme,canvasProvider:A.canvasProvider,name:null==I?void 0:I.name,sequenceProvider:A.sequenceProvider}),C=new XB(g);return Po(C,A),{track:e,dataSource:C,dataSourceConfig:{type:"memory"},maxTrackHeight:null==I?void 0:I.maxTrackHeight,metadata:null==I?void 0:I.metadata}}(this.factoryContext(),A,g))}addBedTrackWithFeatures(A,g){return this.registerFactory(function(A,g,I){var t;const{canvas:e}=A.canvasProvider.createCanvas(0,0),C=new si(e,{locus:A.locus,features:[],config:null==I?void 0:I.config,theme:A.theme,canvasProvider:A.canvasProvider,name:null==I?void 0:I.name}),i=new XB(g);return Po(i,A),{track:C,dataSource:i,dataSourceConfig:{type:"memory"},maxTrackHeight:null==I?void 0:I.maxTrackHeight,metadata:null==I?void 0:I.metadata,searchable:null===(t=null==I?void 0:I.searchable)||void 0===t||t,searchableFields:null==I?void 0:I.searchableFields}}(this.factoryContext(),A,g))}addSequenceTrack(A){const g={type:"sequence",config:null==A?void 0:A.config},I=this.addTrackFromConfig(g);if(null!=(null==A?void 0:A.maxTrackHeight)){const g=this.managedTracks.find(A=>A.track===I);g&&(g.maxTrackHeight=A.maxTrackHeight)}return I}addIdeogramTrack(A){return this.registerFactory(function(A,g){var I;const{canvas:t}=A.canvasProvider.createCanvas(0,0);let e=null==g?void 0:g.cytobands,C=null==g?void 0:g.chrLength;return!e&&(null===(I=A.genome)||void 0===I?void 0:I.getCytobands)&&(e=A.genome.getCytobands(A.locus.chr),C=A.genome.getChromosomeLength(A.locus.chr)),{track:new VQ(t,{locus:A.locus,config:null==g?void 0:g.config,theme:A.theme,canvasProvider:A.canvasProvider,cytobands:null!=e?e:[],chrLength:null!=C?C:0})}}(this.factoryContext(),A))}mergeTracks(A,g){if(A.length<2)throw new Error("mergeTracks requires at least 2 track IDs");this._snapshotForUndo("track-add"),this._undoManager.pause();try{const I=[];for(const g of A){const A=this.managedTracks.find(A=>A.id===g);if(!A)throw new Error(`Track not found: "${g}"`);I.push(A)}const t=I[0].order,e=I.map(A=>({track:A.track,name:A.name})),C=I.map(A=>A.dataSource).filter(A=>null!=A),i=I.map(A=>A.name),{canvas:B}=this.canvasProvider.createCanvas(0,0),Q=new EQ(B,{locus:this._frames[0].locus,childTracks:e,config:null==g?void 0:g.config,theme:this.theme,canvasProvider:this.canvasProvider,name:null==g?void 0:g.name}),o=C.length>0?new rQ(C,i):null;for(const A of I)A.dataSource=null,this.removeTrack(A.id);if(this.addTrack(Q,null!=o?o:void 0,void 0,void 0,t),null==g?void 0:g.name){const A=this.managedTracks.find(A=>A.track===Q);A&&(A.name=g.name)}return Q}finally{this._undoManager.resume()}}separateMergedTrack(A){const g=this.managedTracks.find(g=>g.id===A);if(!g)throw new Error(`Track not found: "${A}"`);if(!(g.track instanceof EQ))throw new Error(`Track "${A}" is not a merged track`);this._snapshotForUndo("track-remove"),this._undoManager.pause();try{const A=g.track,I=g.order,t=A.childTracks,e=g.dataSource instanceof rQ?g.dataSource.childSources:[];g.dataSource=null,this.removeTrack(g.id);const C=[];for(let A=0;A<t.length;A++){const g=t[A],i=e[A];if(this.addTrack(g.track,i,void 0,void 0,I),g.name){const A=this.managedTracks.find(A=>A.track===g.track);A&&(A.name=g.name)}C.push(g.track)}return C}finally{this._undoManager.resume()}}setTheme(A){this._snapshotForUndo("theme"),this._theme=zC(A);for(const A of this.managedTracks){A.track.setTheme(this._theme);for(const g of A.frameInstances.values())g.setTheme(this._theme)}this.events.emit(Zo.ThemeChanged,{theme:this._theme})}dispose(){this.dataManager.dispose(),this.events.removeAllListeners(),this.popupProvider&&this.popupProvider.dispose(),this.contextMenuProvider&&this.contextMenuProvider.dispose();for(const A of this.managedTracks){A.abortController&&A.abortController.abort();for(const g of A.frameAbortControllers.values())null==g||g.abort();A.frameAbortControllers.clear(),A.dataSource&&this.dataManager.destroyWorkerDataSource(A.dataSource)}this.managedTracks=[],this.roiManager.clear()}resolveInteraction(A,g,I){const t=A.hitTest(g,I);if(0===t.length)return null;const e=this._frames[0],C=e.viewportWidth>0?(e.locus.end-e.locus.start)/e.viewportWidth:0;return{track:A,genomicLocation:e.locus.start+g*C,features:t.map(A=>A.feature),popupData:t.flatMap(A=>A.popupData),x:g,y:I}}loadAllTracksIfNeeded(){this.dataManager.loadAllTracksIfNeeded(this.managedTracks,this._frames)}}class As extends Error{constructor(A,g){super(g),this.code=A,this.name="CommandError"}}function gs(A){const g={};return void 0!==A.id&&(g.id=A.id),void 0!==A.nameRegex?g.name=new RegExp(A.nameRegex,"i"):void 0!==A.name&&(g.name=A.name),void 0!==A.type&&(g.type=A.type),void 0!==A.where&&(g.where=A.where),g}class Is{constructor(A,g){this.browser=A,this.options=null!=g?g:{}}async dispatch(A){switch(A.command){case"get_browser_state":return this.handleGetState(A);case"navigate":return this.handleNavigate(A);case"modify_tracks":return this.handleModifyTracks(A);case"query_features":return this.handleQueryFeatures(A);case"annotate":return this.handleAnnotate();case"set_layout":return this.handleSetLayout(A);case"export_view":return this.handleExportView(A);case"manage_rois":return this.handleManageROIs(A);case"subscribe_events":return this.handleSubscribeEvents(A);default:throw new As("UNKNOWN_COMMAND",`Unknown command: ${A.command}`)}}handleGetState(A){return this.browser.state.getState(A.record?{record:A.record}:void 0)}async handleNavigate(A){if(!A.locus&&!A.zoom)throw new As("INVALID_ARGS","navigate requires at least one of: locus, zoom");let g=!0;if(A.locus)if(A.frameId){const I=sg(A.locus);if(I)this.browser.setFrameLocus(A.frameId,I);else{const I=await this.browser.search(A.locus);if(!I)throw new As("NAVIGATION_FAILED",`Could not navigate to: "${A.locus}"`);g=I}}else{const I=await this.browser.search(A.locus);if(!I)throw new As("NAVIGATION_FAILED",`Could not navigate to: "${A.locus}"`);g=I}return"in"===A.zoom?this.browser.zoomIn(A.factor):"out"===A.zoom&&this.browser.zoomOut(A.factor),g}handleModifyTracks(A){var g;if(!A.actions||0===A.actions.length)throw new As("INVALID_ARGS","modify_tracks requires at least one action");const I=[];for(const t of A.actions)switch(t.action){case"add":try{const A=this.browser.addTrackFromConfig(t.config),g=this.browser.getManagedTracks().find(g=>g.track===A);I.push({action:"add",success:!0,trackId:null==g?void 0:g.id})}catch(A){I.push({action:"add",success:!1,error:null!==(g=A.message)&&void 0!==g?g:"Unknown error adding track"})}break;case"remove":{const A=this.browser.removeTracks(gs(t.selector));I.push({action:"remove",success:A>0,count:A});break}case"find":{const A=this.browser.findTracks(gs(t.selector)).map(A=>ts(A));I.push({action:"find",success:!0,tracks:A});break}case"update_metadata":{const A=this.browser.updateTrackMetadata(gs(t.selector),t.metadata);I.push({action:"update_metadata",success:A>0,count:A});break}default:I.push({action:t.action,success:!1,error:`Unknown action: ${t.action}`})}return{results:I}}handleQueryFeatures(A){var g;const I=this.browser.getTrack(A.trackId);if(!I)throw new As("TRACK_NOT_FOUND",`No track with id '${A.trackId}'`);const t=null!==(g=this.browser.getCachedFeatures(I))&&void 0!==g?g:[];if(A.summarize){const g=this.browser.state.getState().tracks.find(g=>g.id===A.trackId);return{trackId:A.trackId,featureCount:t.length,summary:null==g?void 0:g.featureSummary}}return{trackId:A.trackId,featureCount:t.length,features:t}}handleAnnotate(){throw new As("NOT_IMPLEMENTED","Annotations are not yet supported (Phase 3)")}async handleSetLayout(A){if(!A.tracks)throw new As("INVALID_ARGS","set_layout requires a tracks array");const g=[...this.browser.getManagedTracks()],I=new Set,t=[],e=[];for(const C of A.tracks){const A=this.findMatchingTrack(C,g,I);A?(I.add(A.id),e.push(A.id)):t.push(C)}const C=[];for(const A of g)I.has(A.id)||(this.browser.removeTrack(A.id),C.push(A.id));const i=[];for(const A of t){const g=this.browser.addTrackFromConfig(A),I=this.browser.getManagedTracks().find(A=>A.track===g);I&&i.push(I.id)}return A.locus&&await this.browser.search(A.locus),{added:i,removed:C,unchanged:e}}findMatchingTrack(A,g,I){if(A.id)return g.find(g=>g.id===A.id&&!I.has(g.id));const t=this.layoutMatchKey(A);return g.find(g=>!I.has(g.id)&&(g.track.type===A.type&&(g.dataSourceConfig?t===Ho(g.dataSourceConfig):!t)))}layoutMatchKey(A){if("dataSource"in A&&A.dataSource)return Ho(A.dataSource)}async handleExportView(A){switch(A.format){case"svg":return this.browser.toSVG(A.width?{width:A.width}:void 0);case"png":if(!this.options.supportsPNG||!this.options.exportPNG)throw new As("EXPORT_UNAVAILABLE","PNG export requires a DOM-attached GenomeBrowser");return this.options.exportPNG();case"session":return this.browser.toJSON();default:throw new As("INVALID_ARGS",`Unknown export format: ${A.format}`)}}handleManageROIs(A){const{action:g}=A;switch(g.action){case"add":return{action:"add",roi:this.browser.addROI(g.roi,g.setName)};case"remove":return{action:"remove",success:this.browser.removeROI(g.roiId)};case"update":return{action:"update",roi:this.browser.updateROI(g.roiId,g.changes)};case"clear":return this.browser.clearROIs(),{action:"clear"};case"list":return{action:"list",rois:this.browser.getROIs()};case"list_sets":return{action:"list_sets",sets:this.browser.getROISets().map(A=>A.toJSON())};case"find_at_locus":return{action:"find_at_locus",rois:this.browser.findROIsAtLocus(g.chr,g.start,g.end)};case"get_visible":return{action:"get_visible",rois:this.browser.getVisibleROIs()};default:throw new As("INVALID_ARGS",`Unknown ROI action: ${g.action}`)}}handleSubscribeEvents(A){var g,I;if(!Array.isArray(A.events))throw new As("INVALID_ARGS","subscribe_events requires an events array");const t=new Set(Object.values(Zo)),e=[];for(const g of A.events)if("*"===g)e.push("*");else{if(!t.has(g))throw new As("INVALID_ARGS",`Unknown event name: "${g}". Valid events: ${[...t].join(", ")}`);e.push(g)}return null===(I=(g=this.options).onSubscribeEvents)||void 0===I||I.call(g,e),{subscribed:e}}}function ts(A){return{id:A.id,type:A.track.type,name:A.name,metadata:A.metadata,loading:null!=A.dataSource&&null==A.cache}}class es{constructor(A,g,I){this.unsubscribers=[],this.detached=!1,this.subscribedEvents=null,this.browser=A,this.socket=g,this.dispatcher=new Is(A,{...I,onSubscribeEvents:A=>{this.subscribedEvents=new Set(A)}}),this.messageHandler=A=>{this.handleMessage(A.data)},this.closeHandler=()=>this.detach(),g.addEventListener("message",this.messageHandler),g.addEventListener("close",this.closeHandler),this.subscribeToEvents()}detach(){if(!this.detached){this.detached=!0;for(const A of this.unsubscribers)A();this.unsubscribers=[],this.socket.removeEventListener("message",this.messageHandler),this.socket.removeEventListener("close",this.closeHandler)}}get isDetached(){return this.detached}async handleMessage(A){var g;let I;try{I=JSON.parse(A)}catch(A){return}if(I.id&&I.command)try{const A={command:I.command,...I.args},g=await this.dispatcher.dispatch(A);this.send({id:I.id,result:g})}catch(A){A instanceof As?this.send({id:I.id,error:{code:A.code,message:A.message}}):this.send({id:I.id,error:{code:"INTERNAL_ERROR",message:null!==(g=A.message)&&void 0!==g?g:"Unknown error"}})}}send(A){1!==this.socket.readyState||this.detached||this.socket.send(JSON.stringify(A))}subscribeToEvents(){const A=Object.values(Zo);for(const g of A){const A=this.browser.on(g,A=>{this.subscribedEvents&&(this.subscribedEvents.has("*")||this.subscribedEvents.has(g))&&this.send({event:g,data:this.sanitizeEventData(g,A)})});this.unsubscribers.push(A)}}sanitizeEventData(A,g){if(A===Zo.LocusChange)return g;if(A===Zo.ROIClick||A===Zo.ROIContextMenu)return g;if(A===Zo.ROIAdded||A===Zo.ROIRemoved||A===Zo.ROIChanged){const A=g;return{roi:A.roi,setName:A.set.name,...A.changes?{changes:A.changes}:{}}}if(A===Zo.TrackOrderChanged){return{trackIds:g.tracks.map(A=>this.findTrackId(A))}}if(A===Zo.DataError||A===Zo.RenderError){const A=g,I=this.findManagedTrack(A.track);return{trackId:null==I?void 0:I.id,trackType:A.track.type,trackName:null==I?void 0:I.name,error:A.error.message}}if(A===Zo.TrackClick||A===Zo.TrackHover||A===Zo.TrackContextMenu){const A=g,I=this.findManagedTrack(A.track);return{trackId:null==I?void 0:I.id,trackType:A.track.type,trackName:null==I?void 0:I.name,genomicLocation:A.genomicLocation,featureCount:A.features.length}}const I=g;if("track"in I){const A=this.findManagedTrack(I.track);return{trackId:null==A?void 0:A.id,trackType:I.track.type,trackName:null==A?void 0:A.name}}return g}findManagedTrack(A){return this.browser.getManagedTracks().find(g=>g.track===A)}findTrackId(A){var g;return null===(g=this.findManagedTrack(A))||void 0===g?void 0:g.id}}const Cs="http://www.w3.org/2000/svg",is="rgb(0, 0, 150)";class Bs{constructor(A){this.svg=document.createElementNS(Cs,"svg"),this.svg.classList.add("loom-feature-overlay"),this.svg.style.cssText="\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n overflow: visible;\n ",this.defs=document.createElementNS(Cs,"defs"),this.svg.appendChild(this.defs),this.group=document.createElementNS(Cs,"g"),this.group.style.pointerEvents="auto",this.svg.appendChild(this.group),A.style.position="relative",A.appendChild(this.svg)}update(A){var g;if(this.group.textContent="",this.defs.textContent="",0===A.length||A.length>500)return;const I=document.createDocumentFragment();for(let t=0;t<A.length;t++){const e=A[t],C=null!==(g=e.color)&&void 0!==g?g:is,i=`glow-${t}`;this.defs.appendChild(this.createGlowFilter(i,C)),I.appendChild(this.createRect(e,i))}this.group.appendChild(I)}setSuppressed(A){this.group.style.pointerEvents=A?"none":"auto"}setVisible(A){this.svg.style.display=A?"":"none"}dispose(){this.svg.remove()}createGlowFilter(A,g){const I=document.createElementNS(Cs,"filter");I.setAttribute("id",A),I.setAttribute("x","-20%"),I.setAttribute("y","-40%"),I.setAttribute("width","140%"),I.setAttribute("height","180%");const t=document.createElementNS(Cs,"feFlood");t.setAttribute("flood-color",g),t.setAttribute("flood-opacity","0.4"),t.setAttribute("result","color"),I.appendChild(t);const e=document.createElementNS(Cs,"feComposite");e.setAttribute("in","color"),e.setAttribute("in2","SourceGraphic"),e.setAttribute("operator","in"),e.setAttribute("result","colored"),I.appendChild(e);const C=document.createElementNS(Cs,"feGaussianBlur");C.setAttribute("in","colored"),C.setAttribute("stdDeviation","3"),C.setAttribute("result","glow"),I.appendChild(C);const i=document.createElementNS(Cs,"feMerge"),B=document.createElementNS(Cs,"feMergeNode");B.setAttribute("in","glow");const Q=document.createElementNS(Cs,"feMergeNode");return Q.setAttribute("in","SourceGraphic"),i.appendChild(B),i.appendChild(Q),I.appendChild(i),I}createRect(A,g){var I;const t=document.createElementNS(Cs,"rect");t.setAttribute("x",String(A.x-3)),t.setAttribute("y",String(A.y-3)),t.setAttribute("width",String(A.width+6)),t.setAttribute("height",String(A.height+6)),t.setAttribute("rx","2");const e=`url(#${g})`,C=null!==(I=A.color)&&void 0!==I?I:is;return t.addEventListener("mouseenter",()=>{t.style.fill=function(A,g){const I=A.match(/^rgba?\(\s*([\d.]+)[,\s]+([\d.]+)[,\s]+([\d.]+)/);if(I)return`rgba(${I[1]}, ${I[2]}, ${I[3]}, ${g})`;const t=A.match(/^#([0-9a-f]{3,8})$/i);if(t){let A=t[1];3===A.length&&(A=A[0]+A[0]+A[1]+A[1]+A[2]+A[2]);return`rgba(${parseInt(A.slice(0,2),16)}, ${parseInt(A.slice(2,4),16)}, ${parseInt(A.slice(4,6),16)}, ${g})`}return A}(C,.15),t.style.filter=e}),t.addEventListener("mouseleave",()=>{t.style.fill="transparent",t.style.filter=""}),t.addEventListener("click",g=>{var I;g.stopPropagation(),null===(I=this.onFeatureClick)||void 0===I||I.call(this,A,g)}),t}}class Qs{constructor(A,g){this.labelEl=null,this.badgeEl=null,this.root=document.createElement("div"),this.root.classList.add("loom-track-ui-layer"),this.root.style.position="absolute",this.root.style.inset="0",this.root.style.pointerEvents="none",this.root.style.overflow="hidden",A.appendChild(this.root),this.onBadgeClick=g}update(A,g){var I,t,e;this.root.style.height=`${Math.max(0,g)}px`;const C=null==A?void 0:A.label;if(C){this.labelEl||(this.labelEl=document.createElement("div"),this.root.appendChild(this.labelEl));const A=4+(null!==(t=C.topOffset)&&void 0!==t?t:0);this.labelEl.textContent=C.text,this.labelEl.style.position="absolute",this.labelEl.style.left="4px",this.labelEl.style.top=`${A}px`,this.labelEl.style.padding="2px 4px",this.labelEl.style.font="normal 10px sans-serif",this.labelEl.style.lineHeight="1.2",this.labelEl.style.color=C.color,this.labelEl.style.background=C.background,this.labelEl.style.border=`0.5px solid ${C.color}`,this.labelEl.style.opacity="0.75",this.labelEl.style.pointerEvents="none",this.labelEl.style.userSelect="none",this.labelEl.style.whiteSpace="nowrap"}else null===(I=this.labelEl)||void 0===I||I.remove(),this.labelEl=null;const i=null==A?void 0:A.badge;i?(this.badgeEl||(this.badgeEl=document.createElement("button"),this.badgeEl.type="button",this.badgeEl.classList.add("loom-track-ui-badge"),this.badgeEl.addEventListener("click",A=>{var g;A.preventDefault(),A.stopPropagation();const I=null===(g=this.badgeEl)||void 0===g?void 0:g.dataset.chromeId;I&&this.onBadgeClick(I)}),this.root.appendChild(this.badgeEl)),this.badgeEl.dataset.chromeId=i.id,this.badgeEl.textContent=i.text,this.badgeEl.style.position="absolute",this.badgeEl.style.right="4px",this.badgeEl.style.top="50%",this.badgeEl.style.transform="translateY(-50%)",this.badgeEl.style.border="0",this.badgeEl.style.borderRadius="3px",this.badgeEl.style.padding="2px 4px",this.badgeEl.style.margin="0",this.badgeEl.style.font="bold 10px sans-serif",this.badgeEl.style.lineHeight="1",this.badgeEl.style.color=i.color,this.badgeEl.style.background=i.background,this.badgeEl.style.cursor="pointer",this.badgeEl.style.pointerEvents="auto",this.badgeEl.style.userSelect="none"):(null===(e=this.badgeEl)||void 0===e||e.remove(),this.badgeEl=null)}dispose(){this.root.remove(),this.labelEl=null,this.badgeEl=null}}class os{constructor(A,g,I,t){this.options=t,this.isDragging=!1,this.lastPointerX=0,this.activeFrameId=null,this.isSweeping=!1,this.sweepStartX=0,this.sweepColumnLeft=0,this.sweepOverlay=null,this.sweepRulerCanvas=null,this.pointerDownX=0,this.pointerDownY=0,this.pointerDownTarget=null,this.lastClickTime=0,this.lastClickX=0,this.lastClickY=0,this.singleClickTimer=null,this.hoverThrottleId=null,this._preNavLocus=null,this.handlePointerDown=null,this.handlePointerMove=null,this.handlePointerUp=null,this.handleMouseMove=null,this.handleMouseLeave=null,this.handleWheel=null,this.wheelRafId=null,this.reorderDragTrack=null,this.reorderDragRow=null,this.reorderHandlers=new Map,this.container=A,this.browser=g,this.axisColumnWidth=I}setup(){this.setupDragHandlers(),this.setupHoverHandlers(),!1!==this.options.wheelZoom&&this.setupWheelHandler()}dispose(){null!==this.singleClickTimer&&(clearTimeout(this.singleClickTimer),this.singleClickTimer=null),this.teardownDragHandlers(),this.teardownHoverHandlers(),this.teardownWheelHandler(),this.removeSweepOverlay();for(const[A]of this.reorderHandlers)this.teardownReorderForTrack(A);this.reorderHandlers.clear()}setupReorderForTrack(A,g){g.style.cursor="grab";const I=I=>{if(0!==I.button)return;I.preventDefault(),I.stopPropagation();const C=this.getTrackRow(A);C&&(this.reorderDragTrack=A,this.reorderDragRow=C,C.style.opacity="0.5",g.style.cursor="grabbing",document.addEventListener("pointermove",t),document.addEventListener("pointerup",e))},t=A=>{if(!this.reorderDragTrack)return;const g=this.browser.getManagedTracks(),I=g.findIndex(A=>A.track===this.reorderDragTrack);if(I<0)return;const t=A.clientY;if(I>0){const A=this.getTrackRow(g[I-1].track);if(A){const g=A.getBoundingClientRect();if(t<g.bottom-.25*g.height)return this.browser.moveTrackInArray(I,I-1),void this.browser.syncDOMOrder()}}if(I<g.length-1){const A=this.getTrackRow(g[I+1].track);if(A){const g=A.getBoundingClientRect();if(t>g.top+.15*g.height)return this.browser.moveTrackInArray(I,I+1),void this.browser.syncDOMOrder()}}},e=A=>{if(document.removeEventListener("pointermove",t),document.removeEventListener("pointerup",e),this.reorderDragTrack&&this.reorderDragRow){this.reorderDragRow.style.opacity="";const A=this.browser.getTrackAxisDiv(this.reorderDragTrack);A&&(A.style.cursor="grab"),this.browser.finalizeReorder()}this.reorderDragTrack=null,this.reorderDragRow=null};this.reorderHandlers.set(A,{down:I,docMove:t,docUp:e}),g.addEventListener("pointerdown",I)}teardownReorderForTrack(A){const g=this.reorderHandlers.get(A);if(!g)return;const I=this.browser.getTrackAxisDiv(A);I&&I.removeEventListener("pointerdown",g.down),document.removeEventListener("pointermove",g.docMove),document.removeEventListener("pointerup",g.docUp),this.reorderHandlers.delete(A)}createSweepOverlay(){const A=document.createElement("div");return A.style.cssText="\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 0;\n pointer-events: none;\n background: rgba(68, 134, 247, 0.25);\n z-index: 99999;\n transition: none;\n ","static"===getComputedStyle(this.container).position&&(this.container.style.position="relative"),this.container.appendChild(A),A}removeSweepOverlay(){this.sweepOverlay&&(this.sweepOverlay.remove(),this.sweepOverlay=null),this.sweepRulerCanvas=null}setupDragHandlers(){this.handlePointerDown=A=>{if(0!==A.button)return;if(this.browser.isOverlayTarget(A))return;if(this.browser.hideContextMenu(),!(A.target instanceof HTMLCanvasElement))return this.browser.hidePopup(),void(this.pointerDownTarget=null);this.pointerDownX=A.clientX,this.pointerDownY=A.clientY,this.pointerDownTarget=A.target,this.activeFrameId=this.browser.getFrameIdForX(A.clientX);const g=this.browser.getFrameLocus(this.activeFrameId);if(!og(g)){if(this.browser.isRulerCanvas(A.target)){const g=A.target;this.isSweeping=!0,this.isDragging=!1,this.sweepRulerCanvas=g;const I=this.container.getBoundingClientRect();this.sweepStartX=A.clientX-I.left;const t=g.parentElement;return this.sweepColumnLeft=t?t.getBoundingClientRect().left-I.left:this.axisColumnWidth,this.sweepOverlay=this.createSweepOverlay(),this.sweepOverlay.style.left=`${this.sweepStartX}px`,this.sweepOverlay.style.width="0px",this.sweepOverlay.style.display="block",void this.container.setPointerCapture(A.pointerId)}this.isSweeping=!1,this.lastPointerX=A.clientX,this._preNavLocus={...g},this.container.setPointerCapture(A.pointerId)}},this.handlePointerMove=A=>{var g,I;if(this.isSweeping&&this.sweepOverlay&&this.sweepRulerCanvas){const g=this.container.getBoundingClientRect(),I=Math.max(this.axisColumnWidth,Math.min(A.clientX-g.left,g.width)),t=Math.min(this.sweepStartX,I),e=Math.abs(I-this.sweepStartX);return this.sweepOverlay.style.left=`${t}px`,void(this.sweepOverlay.style.width=`${e}px`)}if(!this.activeFrameId)return;if(!this.isDragging){if(Math.abs(A.clientX-this.pointerDownX)<3)return;this.isDragging=!0,this.container.style.cursor="grabbing",this.browser.setFeatureOverlaysSuppressed(!0,null!==(g=this.activeFrameId)&&void 0!==g?g:void 0),this.browser.setFeatureOverlaysVisible(!1,null!==(I=this.activeFrameId)&&void 0!==I?I:void 0);const t=this.browser.getManagedTracks();for(const A of t)this.browser.getFrameTrack(A,this.activeFrameId).suspendRendering()}const t=this.lastPointerX-A.clientX;this.lastPointerX=A.clientX;const e=this.activeFrameId,C=this.browser.getFrameViewportWidth(e);if(0===C)return;const i=this.browser.getFrameLocus(e),B=t*((i.end-i.start)/C),Q=this.browser.clampLocus({chr:i.chr,start:i.start+B,end:i.end+B});this.browser.setFrameLocusDirect(e,Q),this.browser.shiftCanvases(e,Q),this.browser.emitLocusChange(Q,e)},this.handlePointerUp=A=>{if(this.browser.isOverlayTarget(A))return;if(this.isSweeping&&this.sweepOverlay&&this.sweepRulerCanvas&&this.activeFrameId){const A=parseFloat(this.sweepOverlay.style.left),g=parseFloat(this.sweepOverlay.style.width),I=this.activeFrameId;if(this.removeSweepOverlay(),this.isSweeping=!1,g>3){const t=this.browser.getFrameViewportWidth(I);if(t>0){this.browser.snapshotForUndo("navigation");const e=this.browser.getFrameLocus(I),C=(e.end-e.start)/t,i=Math.max(0,A-this.sweepColumnLeft),B=e.start+i*C,Q=e.start+(i+g)*C;this.browser.setFrameLocus(I,{chr:e.chr,start:Math.round(B),end:Math.round(Q)})}}return void(this.activeFrameId=null)}const g=this.isDragging,I=this.activeFrameId;this.isDragging=!1,this.container.style.cursor="grab",this.browser.setFeatureOverlaysSuppressed(!1);const t=null!=I?I:this.browser.getFrameIdForX(A.clientX);if(g){const A=this.browser.getFrameLocus(t),g=this.browser.getManagedTracks();for(const A of g){const g=this.browser.getFrameTrack(A,t);g.discardPendingRender(),g.resumeRendering()}for(const I of g){this.browser.getFrameTrack(I,t).setLocus(A)}this.browser.loadAllTracksIfNeeded(),this.browser.updateAllAxes(),this.browser.updateAllFeatureOverlays(),this.browser.setFeatureOverlaysVisible(!0)}else this.browser.setFeatureOverlaysVisible(!0);const e=this.browser.getFrameLocus(t);g&&this._preNavLocus&&(this._preNavLocus.start!==e.start||this._preNavLocus.end!==e.end)&&this.browser.snapshotForUndo("navigation"),this._preNavLocus=null,this.activeFrameId=null;const C=A.clientX-this.pointerDownX,i=A.clientY-this.pointerDownY;(!g||C*C+i*i<9)&&this.handleClick(A)},this.container.addEventListener("pointerdown",this.handlePointerDown),this.container.addEventListener("pointermove",this.handlePointerMove),this.container.addEventListener("pointerup",this.handlePointerUp),this.container.addEventListener("pointercancel",this.handlePointerUp)}handleClick(A){var g,I,t;const e=this.browser.findTrackForTarget(this.pointerDownTarget);if(!e)return;const C=null!==(g=this.activeFrameId)&&void 0!==g?g:this.browser.getFrameIdForX(A.clientX),i=this.pointerDownTarget,B=null!==(I=i.parentElement)&&void 0!==I?I:i,Q=B.getBoundingClientRect(),o={x:A.clientX-Q.left,y:A.clientY-Q.top},s=this.browser.getFrameLocus(C);if(og(s)&&"ruler"===e.type){const A=this.browser.getCumulativeOffsets(),g=this.browser.getChromSizes();if(A&&g){const I=B.clientWidth;if(I>0){const t=(s.end-s.start)/I,e=s.start+o.x*t,{chr:i}=hC(e,A),B=g[i];null!=B&&this.browser.setFrameLocus(C,{chr:i,start:0,end:B})}}return}if(null===(t=e.onCanvasClick)||void 0===t?void 0:t.call(e,o.x,o.y))return void this.browser.hidePopup();const E=Date.now(),a=E-this.lastClickTime<500&&Math.abs(A.clientX-this.lastClickX)<6&&Math.abs(A.clientY-this.lastClickY)<6;if(this.lastClickTime=E,this.lastClickX=A.clientX,this.lastClickY=A.clientY,a){if(null!==this.singleClickTimer&&(clearTimeout(this.singleClickTimer),this.singleClickTimer=null),this.lastClickTime=0,!og(s)){const g=B.clientWidth;if(g>0){const I=(s.end-s.start)/g,t=s.start+o.x*I,e=A.shiftKey?2:.5;this.browser.zoomFrameAroundCenter(C,e,t)}}return}this.singleClickTimer=setTimeout(()=>{var A;this.singleClickTimer=null;const g=this.browser.resolveInteraction(e,o.x,o.y);if(g){if(this.browser.emitTrackClick(g),g.popupData.length>0){const I=this.container.getBoundingClientRect(),t=(null!==(A=e.canvas.parentElement)&&void 0!==A?A:e.canvas).getBoundingClientRect();this.browser.showPopup(g.popupData,{x:t.left-I.left+o.x,y:t.top-I.top+o.y})}}else this.browser.hidePopup()},500)}teardownDragHandlers(){this.handlePointerDown&&this.container.removeEventListener("pointerdown",this.handlePointerDown),this.handlePointerMove&&this.container.removeEventListener("pointermove",this.handlePointerMove),this.handlePointerUp&&(this.container.removeEventListener("pointerup",this.handlePointerUp),this.container.removeEventListener("pointercancel",this.handlePointerUp))}setupHoverHandlers(){this.handleMouseMove=A=>{var g;if(this.isDragging||this.isSweeping)return;if(null!==this.hoverThrottleId)return;this.hoverThrottleId=setTimeout(()=>{this.hoverThrottleId=null},100);const I=this.browser.findTrackForTarget(A.target);if(!I)return;if(!(A.target instanceof HTMLCanvasElement))return;const t=(null!==(g=A.target.parentElement)&&void 0!==g?g:A.target).getBoundingClientRect(),e={x:A.clientX-t.left,y:A.clientY-t.top},C=this.browser.resolveInteraction(I,e.x,e.y);C&&this.browser.emitTrackHover(C)},this.handleMouseLeave=A=>{null!==this.hoverThrottleId&&(clearTimeout(this.hoverThrottleId),this.hoverThrottleId=null)},this.container.addEventListener("mousemove",this.handleMouseMove),this.container.addEventListener("mouseleave",this.handleMouseLeave)}teardownHoverHandlers(){this.handleMouseMove&&this.container.removeEventListener("mousemove",this.handleMouseMove),this.handleMouseLeave&&this.container.removeEventListener("mouseleave",this.handleMouseLeave),null!==this.hoverThrottleId&&(clearTimeout(this.hoverThrottleId),this.hoverThrottleId=null)}setupWheelHandler(){this.handleWheel=A=>{var g;if(!A.ctrlKey)return;A.preventDefault();const I=this.browser.getFrameIdForX(A.clientX),t=this.browser.getFrameLocus(I);if(og(t))return;if(null!==this.wheelRafId)return;null===this._preNavLocus&&(this._preNavLocus={...t},setTimeout(()=>{const A=this.browser.getFrameLocus(I);!this._preNavLocus||this._preNavLocus.start===A.start&&this._preNavLocus.end===A.end||this.browser.snapshotForUndo("navigation"),this._preNavLocus=null},300));const e=1+.01*Math.max(-50,Math.min(50,A.deltaY)),C=this.browser.getFrameViewportWidth(I);if(C<=0)return;const i=A.target instanceof HTMLCanvasElement?A.target:null,B=null!==(g=null==i?void 0:i.parentElement)&&void 0!==g?g:i,Q=B?A.clientX-B.getBoundingClientRect().left:C/2,o=(t.end-t.start)/C,s=t.start+Q*o;this.wheelRafId=requestAnimationFrame(()=>{this.wheelRafId=null,this.browser.zoomFrameAroundCenter(I,e,s)})},this.container.addEventListener("wheel",this.handleWheel,{passive:!1})}teardownWheelHandler(){null!==this.wheelRafId&&(cancelAnimationFrame(this.wheelRafId),this.wheelRafId=null),this.handleWheel&&(this.container.removeEventListener("wheel",this.handleWheel),this.handleWheel=null)}getTrackRow(A){const g=this.browser.getTrackAxisDiv(A);return null==g?void 0:g.parentElement}}class ss{constructor(A,g,I){this.overlayContainer=null,this.roiElements=new Map,this.container=A,this.axisColumnWidth=g,this.callbacks=I}renderMultiFrame(A,g,I){const t=[];let e=0;for(const C of A){const i=g(C.locus);if(C.viewportWidth>0){const A=(C.locus.end-C.locus.start)/C.viewportWidth;for(const g of i){const I=Math.round((g.start-C.locus.start)/A),i=Math.max(3,Math.round((g.end-g.start)/A)),B=Math.max(0,I),Q=Math.min(i,C.viewportWidth-B);Q>0&&t.push({roi:g,x:e+B,w:Q,key:`${C.id}:${g.id}`})}}e+=C.viewportWidth+(C!==A[A.length-1]?I:0)}this.renderPrecomputed(t)}renderPrecomputed(A){var g,I;if(0===A.length&&0===this.roiElements.size)return;const t=this.ensureContainer(),e=new Set;for(const{roi:C,x:i,w:B,key:Q}of A){e.add(Q);let A=this.roiElements.get(Q);A||(A=this.createElement(C),t.appendChild(A),this.roiElements.set(Q,A)),A.style.left=`${i}px`,A.style.width=`${B}px`;const o=null!==(g=C.color)&&void 0!==g?g:"rgba(68, 134, 247, 0.15)";A.style.backgroundColor=o;const s=o.replace(/[\d.]+\)$/,A=>`${Math.min(1,3*parseFloat(A))})`);A.style.borderLeftColor=s,A.style.borderRightColor=s;const E=A.firstElementChild;if(E){const A=o.replace(/[\d.]+\)$/,A=>`${Math.min(1,4*parseFloat(A))})`);E.style.backgroundColor=A}const a=A.querySelector(".loom-roi-label");a&&(a.textContent=null!==(I=C.name)&&void 0!==I?I:"",a.style.display=C.name&&B>20?"block":"none"),A._roiId=C.id}for(const[A,g]of this.roiElements)e.has(A)||(g.remove(),this.roiElements.delete(A))}render(A,g,I){var t,e;if(0===A.length&&0===this.roiElements.size)return;const C=this.ensureContainer();if(I<=0)return;const i=(g.end-g.start)/I,B=new Set;for(const I of A){B.add(I.id);const A=Math.round((I.start-g.start)/i),Q=Math.max(3,Math.round((I.end-I.start)/i));let o=this.roiElements.get(I.id);o||(o=this.createElement(I),C.appendChild(o),this.roiElements.set(I.id,o)),o.style.left=`${A}px`,o.style.width=`${Q}px`;const s=null!==(t=I.color)&&void 0!==t?t:"rgba(68, 134, 247, 0.15)";o.style.backgroundColor=s;const E=s.replace(/[\d.]+\)$/,A=>`${Math.min(1,3*parseFloat(A))})`);o.style.borderLeftColor=E,o.style.borderRightColor=E;const a=o.firstElementChild;if(a){const A=s.replace(/[\d.]+\)$/,A=>`${Math.min(1,4*parseFloat(A))})`);a.style.backgroundColor=A}const r=o.querySelector(".loom-roi-label");r&&(r.textContent=null!==(e=I.name)&&void 0!==e?e:"",r.style.display=I.name&&Q>20?"block":"none"),o._roiId=I.id}for(const[A,g]of this.roiElements)B.has(A)||(g.remove(),this.roiElements.delete(A))}clear(){for(const A of this.roiElements.values())A.remove();this.roiElements.clear(),this.overlayContainer&&(this.overlayContainer.remove(),this.overlayContainer=null)}dispose(){this.clear()}ensureContainer(){if(!this.overlayContainer){const A=document.createElement("div");A.style.cssText=`\n position: absolute;\n top: 0;\n left: ${this.axisColumnWidth}px;\n right: 0;\n bottom: 0;\n pointer-events: none;\n z-index: 10;\n overflow: hidden;\n `;"static"===getComputedStyle(this.container).position&&(this.container.style.position="relative"),this.container.appendChild(A),this.overlayContainer=A}return this.overlayContainer}createElement(A){var g;const I=document.createElement("div");I.className="loom-roi-region",I.style.cssText="\n position: absolute;\n top: 0;\n bottom: 0;\n border-left: 1px solid transparent;\n border-right: 1px solid transparent;\n box-sizing: border-box;\n pointer-events: auto;\n cursor: pointer;\n transition: opacity 0.15s ease;\n ";const t=document.createElement("div");t.className="loom-roi-header",t.style.cssText="\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 4px;\n border-radius: 2px 2px 0 0;\n ",I.appendChild(t);const e=document.createElement("div");return e.className="loom-roi-label",e.style.cssText="\n position: absolute;\n top: 5px;\n left: 3px;\n right: 3px;\n font: 9px sans-serif;\n color: rgba(0, 0, 0, 0.7);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n pointer-events: none;\n ",e.textContent=null!==(g=A.name)&&void 0!==g?g:"",I.appendChild(e),I.addEventListener("mouseenter",()=>{I.style.opacity="1.3"}),I.addEventListener("mouseleave",()=>{I.style.opacity=""}),I.addEventListener("click",A=>{A.stopPropagation();const g=I._roiId;this.callbacks.onROIClick(g,A)}),I.addEventListener("contextmenu",A=>{A.preventDefault(),A.stopPropagation();const g=I._roiId;this.callbacks.onROIContextMenu(g,A)}),I}}class Es{constructor(A,g,I,t,e){this.handleContextMenu=null,this.inputDialog=null,this.container=A,this.axisColumnWidth=g,this.contextMenuProvider=I,this.popupProvider=t,this.callbacks=e}setup(){this.handleContextMenu=A=>{var g,I,t,e,C;A.preventDefault();const i=this.callbacks.findTrackForTarget(A.target);if(!i)return;const B=null!==(g=i.canvas.parentElement)&&void 0!==g?g:i.canvas,Q=B.getBoundingClientRect(),o=A.clientX-Q.left,s=A.clientY-Q.top,E=null!==(t=null===(I=i.getContextMenuItems)||void 0===I?void 0:I.call(i,o,s))&&void 0!==t?t:[],a=(A,g)=>this.ensureInputDialog().then(I=>I.prompt(A,g)),r=k(i,{setTrackHeight:(A,g)=>{A instanceof si?A.setFixedHeight(g):A instanceof UC&&A.setConfig({height:g})},removeTrack:A=>this.callbacks.removeTrack(A),promptInput:a}),n=A=>{const g=A.action?{...A,action:()=>{A.action(),this.callbacks.onAxisUpdate(i)}}:{...A};return g.children&&(g.children=g.children.map(n)),g},h=null===(e=i.getNumericState)||void 0===e?void 0:e.call(i),c=h?G(h,a):[],l=[];(E.length>0||c.length>0)&&(l.push(...E.map(n)),c.length>0&&(E.length>0&&l.push({label:"",type:"separator"}),l.push(...c.map(n))),l.push({label:"",type:"separator"})),l.push(...r.map(n));const d=this.callbacks.getLocus(),D=B.clientWidth,u=D>0?(d.end-d.start)/D:0,w=d.start+o*u,y=i.hitTest(o,s),f={track:i,genomicLocation:w,features:y.map(A=>A.feature),trackItems:E,commonItems:r,x:o,y:s};if(this.callbacks.emitTrackContextMenu(f),this.contextMenuProvider){null===(C=this.popupProvider)||void 0===C||C.hide();const A=this.container.getBoundingClientRect(),g=B.getBoundingClientRect();this.contextMenuProvider.show(l,{x:g.left-A.left+o,y:g.top-A.top+s},this.container)}},this.container.addEventListener("contextmenu",this.handleContextMenu)}showROIContextMenu(A,g){var I;if(!this.contextMenuProvider)return;const t=this.container.getBoundingClientRect(),e=this.callbacks.getViewportWidth(),C=this.callbacks.getLocus(),i=e>0?(C.end-C.start)/e:0,B=g.clientX-t.left-this.axisColumnWidth,Q=C.start+B*i;this.callbacks.emitROIContextMenu({roi:A,genomicLocation:Q,x:g.clientX-t.left,y:g.clientY-t.top});const o=F(A,{goToRegion:A=>this.callbacks.setLocus(A),updateROI:(A,g)=>this.callbacks.updateROI(A,g),removeROI:A=>this.callbacks.removeROI(A),promptInput:(A,g)=>this.ensureInputDialog().then(I=>I.prompt(A,g))});null===(I=this.popupProvider)||void 0===I||I.hide(),this.contextMenuProvider.show(o,{x:g.clientX-t.left,y:g.clientY-t.top},this.container)}dispose(){this.handleContextMenu&&(this.container.removeEventListener("contextmenu",this.handleContextMenu),this.handleContextMenu=null),this.inputDialog&&(this.inputDialog.remove(),this.inputDialog=null)}async ensureInputDialog(){if(!this.inputDialog){customElements.get("loom-input-dialog")||await Promise.resolve().then(function(){return js});const A=document.createElement("loom-input-dialog");"static"===getComputedStyle(this.container).position&&(this.container.style.position="relative"),this.container.appendChild(A),this.inputDialog=A}return this.inputDialog}}function as(){customElements.get("loom-context-menu")||Promise.resolve().then(function(){return Zs});let A=null;return{show(g,I,t){if(!A){A=document.createElement("loom-context-menu");"static"===getComputedStyle(t).position&&(t.style.position="relative"),t.appendChild(A)}A.setItems(g),A.showAt(I.x,I.y)},hide(){A&&A.hide()},dispose(){A&&(A.remove(),A=null)}}}function rs(){customElements.get("loom-popup")||Promise.resolve().then(function(){return Ps});let A=null;return{show(g,I,t){if(!A){A=document.createElement("loom-popup");"static"===getComputedStyle(t).position&&(t.style.position="relative"),t.appendChild(A)}A.setData(g),A.showAt(I.x,I.y)},hide(){A&&A.hide()},dispose(){A&&(A.remove(),A=null)}}}function ns(A,g,I,t,e,C,i){var B,Q,o,s,E,a,r;const n=null!==(Q=null!==(B=null==i?void 0:i.width)&&void 0!==B?B:null==i?void 0:i.containerWidth)&&void 0!==Q?Q:0,h=g.length,c=Math.max(0,3*(h-1)),l=n-e,d=Math.floor((l-c)/h);if(d<=0)throw new Error("Cannot export SVG: container too narrow for columns");let D=0;const u=[];for(const g of A){const A=g.track.height||50;u.push(A),D+=A}const w=new Pi({width:n,height:D,viewbox:{x:0,y:0,width:n,height:D},backdropColor:null!==(o=null==i?void 0:i.backdropColor)&&void 0!==o?o:"white"});let y=0;for(let t=0;t<A.length;t++){const i=A[t],B=u[t],Q=null===(E=(s=i.track).getAxisInfo)||void 0===E?void 0:E.call(s);if(Q){const A={...Q,backgroundColor:null!==(a=Q.backgroundColor)&&void 0!==a?a:I.palette.background,labelColor:null!==(r=Q.labelColor)&&void 0!==r?r:I.palette.foreground},g=`track_${t}_${i.track.type}_axis`;w.saveWithTranslationAndClipRect(g,0,y,e,B,0),A.dataRange&&di(w,A,e,B),w.restore()}let o=e;for(let A=0;A<h;A++){const I=C(i,g[A].id),e=`track_${t}_${I.type}_frame_${A}`;w.saveWithTranslationAndClipRect(e,o,y,d,B,0),I.renderToContext&&I.renderToContext(w,d,B),w.restore(),o+=d+(A<h-1?3:0)}y+=B}let f=e;for(let A=0;A<h;A++){const I=g[A],e=t(I.locus);if(e.length>0){const g=(I.locus.end-I.locus.start)/d,t={pixelWidth:d,bpStart:I.locus.start,bpPerPixel:g,viewportWidth:d};w.saveWithTranslationAndClipRect(`roi_overlays_${A}`,f,0,d,D,0),Ki(w,e,t,{totalHeight:D}),w.restore()}f+=d+(A<h-1?3:0)}return w.setHeight(D),w.getSerializedSvg(!0)}function hs(A,g,I,t){const e=new Blob([A],{type:"image/svg+xml"}),C=URL.createObjectURL(e);return new Promise((A,e)=>{const i=new Image;i.onload=()=>{try{const e=document.createElement("canvas");e.width=g*t,e.height=I*t;const B=e.getContext("2d");B.scale(t,t),B.drawImage(i,0,0),URL.revokeObjectURL(C),A(e.toDataURL("image/png"))}catch(A){URL.revokeObjectURL(C),e(A)}},i.onerror=()=>{URL.revokeObjectURL(C),e(new Error("Failed to load SVG for PNG conversion"))},i.src=C})}function cs(A,g){const I=document.createElement("a");I.download=A,I.href=g,document.body.appendChild(I),I.click(),document.body.removeChild(I)}const ls=50,ds=new WeakSet;class Ds extends $o{constructor(A,g){var I,t,e,C;const i=null===g.contextMenuProvider?void 0:null!==(I=g.contextMenuProvider)&&void 0!==I?I:as(),B=null===g.popupProvider?void 0:null!==(t=g.popupProvider)&&void 0!==t?t:rs();let Q=g.workerProvider,o=null;if(!Q&&(g.workers||g.workerFactory)){const A="number"==typeof g.workers?g.workers:Math.min(null!==(e=null===navigator||void 0===navigator?void 0:navigator.hardwareConcurrency)&&void 0!==e?e:4,4);try{o=new pC({workerFactory:g.workerFactory,workerUrl:g.workerFactory?void 0:new URL("./loom-worker.js","undefined"==typeof document&&"undefined"==typeof location?new(require("url").URL)("file:"+__filename).href:"undefined"==typeof document?location.href:document.currentScript&&"SCRIPT"===document.currentScript.tagName.toUpperCase()&&document.currentScript.src||new URL("loom.min.js",document.baseURI).href),poolSize:A}),Q=o}catch(A){mC.warn("Failed to create web workers, falling back to main-thread execution")}}super({...g,workerProvider:Q,contextMenuProvider:i,popupProvider:B,viewportWidth:A.clientWidth}),this.resizeObserver=null,this.trackRows=new Map,this.remoteConnection=null,this.featureOverlays=new Map,this.uiLayers=new Map,this.ownedWorkerProvider=null,this.handleKeyDown=null,this.handleDocMouseDown=null,this._pendingPostAddLoad=!1,this.pointerManager=null,this.contextMenuManager=null,this.ownedWorkerProvider=o,this.container=A,this.interactive=null===(C=g.interactive)||void 0===C||C,function(A){const g=A.getRootNode();if(ds.has(g))return;ds.add(g);const I=document.createElement("style");I.textContent="\n .loom-track-scroll { scrollbar-width: none; }\n .loom-track-scroll::-webkit-scrollbar { display: none; }\n .loom-feature-overlay rect {\n fill: transparent;\n pointer-events: auto;\n cursor: pointer;\n }\n ",g instanceof Document?g.head.appendChild(I):g.appendChild(I)}(A),A.style.userSelect="none",A.style.touchAction="none";const s={onROIClick:(A,g)=>{const I=this.getROIs().find(g=>g.id===A);if(I){const A=this.container.getBoundingClientRect(),t=g.clientX-A.left-ls,e=this._frames[0].locus.start+t*this._frames[0].bpPerPixel;this.events.emit(Zo.ROIClick,{roi:I,genomicLocation:e,x:g.clientX-A.left,y:g.clientY-A.top})}},onROIContextMenu:(A,g)=>{var I;const t=this.getROIs().find(g=>g.id===A);t&&(null===(I=this.contextMenuManager)||void 0===I||I.showROIContextMenu(t,g))}};if(this.roiOverlayManager=new ss(A,ls,s),this.interactive){A.style.cursor=og(g.locus)?"default":"grab";const I={getLocus:()=>this._frames[0].locus,setLocusDirect:A=>{this._frames[0].locus=A,Ui(this._frames[0])},clampLocus:A=>this.clamp(A),setLocus:A=>this.setLocus(A),getViewportWidth:()=>this._frames[0].viewportWidth,getFrameIdForX:A=>this._getFrameIdForX(A),getFrameLocus:A=>this._getFrame(A).locus,setFrameLocusDirect:(A,g)=>{const I=this.getFrame(A);I&&(I.locus=g,Ui(I))},getFrameViewportWidth:A=>this._getFrame(A).viewportWidth,setFrameLocus:(A,g)=>this.setFrameLocus(A,g),zoomFrameAroundCenter:(A,g,I)=>{this.zoomAroundCenter(g,I,A)},getFrameCount:()=>this._frames.length,getFrameTrack:(A,g)=>this.getTrackForFrame(A,g),getManagedTracks:()=>this.managedTracks,loadAllTracksIfNeeded:()=>this.loadAllTracksIfNeeded(),updateAllAxes:()=>{for(const A of this.managedTracks)this.updateAxisContent(A.track)},zoomAroundCenter:(A,g)=>this.zoomAroundCenter(A,g),resolveInteraction:(A,g,I)=>this.resolveInteraction(A,g,I),findTrackForTarget:A=>this.findTrackForTarget(A),isRulerCanvas:A=>this.isRulerCanvas(A),showPopup:(A,g)=>{this.popupProvider&&this.popupProvider.show(A,g,this.container)},hidePopup:()=>{var A;null===(A=this.popupProvider)||void 0===A||A.hide()},hideContextMenu:()=>{var A;null===(A=this.contextMenuProvider)||void 0===A||A.hide()},isOverlayTarget:A=>this.isOverlayTarget(A),setFeatureOverlaysSuppressed:(A,g)=>{for(const[I,t]of this.featureOverlays)(void 0===g||this._trackBelongsToFrame(I,g))&&t.setSuppressed(A)},setFeatureOverlaysVisible:(A,g)=>{for(const[I,t]of this.featureOverlays)(void 0===g||this._trackBelongsToFrame(I,g))&&t.setVisible(A)},updateAllFeatureOverlays:()=>{this.updateFeatureOverlays()},shiftCanvases:(A,g)=>{for(const I of this.managedTracks){if("ideogram"===I.track.type)continue;const t=this.getTrackForFrame(I,A),e=t.computePixelShift(g);null!==e&&t.applyPixelShift(e)}},emitLocusChange:(A,g)=>{const I=g?this._frames.find(A=>A.id===g):this._frames[0];this.events.emit(Zo.LocusChange,{frames:I?[I]:[this._frames[0]],sourceFrameId:null!=g?g:this._frames[0].id,locus:A})},emitTrackClick:A=>this.events.emit(Zo.TrackClick,A),emitTrackHover:A=>this.events.emit(Zo.TrackHover,A),emitTrackOrderChanged:A=>this.events.emit(Zo.TrackOrderChanged,{tracks:A}),snapshotForUndo:A=>this._snapshotForUndo(A),getCumulativeOffsets:()=>this.cumulativeOffsets,getChromSizes:()=>this.chromSizes,getTrackAxisDiv:A=>{var g;return null===(g=this.trackRows.get(A))||void 0===g?void 0:g.axisDiv},moveTrackInArray:(A,g)=>{const[I]=this.managedTracks.splice(A,1);this.managedTracks.splice(g,0,I)},syncDOMOrder:()=>this.syncDOMOrder(),finalizeReorder:()=>{this._assignOrderFromPosition(),this.events.emit(Zo.TrackOrderChanged,{tracks:this.managedTracks.map(A=>A.track)})}};this.pointerManager=new os(A,I,ls,{wheelZoom:g.wheelZoom}),this.pointerManager.setup(),this.contextMenuManager=new Es(A,ls,i,B,{findTrackForTarget:A=>this.findTrackForTarget(A),getLocus:()=>this._frames[0].locus,getViewportWidth:()=>this._frames[0].viewportWidth,removeTrack:A=>this.removeTrack(A),onAxisUpdate:A=>this.updateAxisContent(A),updateROI:(A,g)=>this.updateROI(A,g),removeROI:A=>this.removeROI(A),setLocus:A=>this.setLocus(A),emitTrackContextMenu:A=>this.events.emit(Zo.TrackContextMenu,A),emitROIContextMenu:A=>this.events.emit(Zo.ROIContextMenu,A)}),this.contextMenuManager.setup(),(this.popupProvider||this.contextMenuProvider)&&(this.handleDocMouseDown=A=>{var g,I;this.container.contains(A.target)||(null===(g=this.popupProvider)||void 0===g||g.hide(),null===(I=this.contextMenuProvider)||void 0===I||I.hide())},document.addEventListener("mousedown",this.handleDocMouseDown))}this.resizeObserver=new ResizeObserver(()=>{const A=this._frames[0].viewportWidth;this.render(),0===A&&this._frames[0].viewportWidth>0&&!this._pendingPostAddLoad&&this.loadAllTracksIfNeeded()}),this.resizeObserver.observe(A),this.events.on(Zo.DataLoaded,({track:A})=>{this._frames.length>1&&this.render();const g=this.resolvePrimaryTrack(A);this.updateAxisContent(g),this.updateFeatureOverlay(A),this.updateUILayer(A)}),this.events.on(Zo.ThemeChanged,()=>{for(const A of this.managedTracks){this.updateAxisContent(A.track),this.syncViewportWrapperBackground(A.track),this.updateUILayer(A.track);for(const g of A.frameInstances.values())this.updateUILayer(g)}}),this.events.on(Zo.ROIAdded,()=>this.renderROIOverlays()),this.events.on(Zo.ROIRemoved,()=>this.renderROIOverlays()),this.events.on(Zo.ROIChanged,()=>this.renderROIOverlays()),this.events.on(Zo.LocusChange,()=>this.renderROIOverlays()),this.setupUndoKeyboardHandler()}_trackBelongsToFrame(A,g){for(const I of this.managedTracks){if(this.getTrackForFrame(I,g)===A)return!0}return!1}_getFrame(A){var g;return null!==(g=this._frames.find(g=>g.id===A))&&void 0!==g?g:this._frames[0]}_makeFeatureClickHandler(A){return(g,I)=>{const t=g.x+g.width/2,e=g.y+g.height/2,C=this.resolveInteraction(A,t,e);if(C&&(this.events.emit(Zo.TrackClick,C),this.popupProvider&&C.popupData.length>0)){const A=this.container.getBoundingClientRect();this.popupProvider.show(C.popupData,{x:I.clientX-A.left,y:I.clientY-A.top},this.container)}}}_buildTrackRow(A,g){const I=document.createElement("div");I.style.display="flex",I.style.width="100%",I.style.alignItems="stretch",I.style.contain="layout paint","ideogram"===A.type&&(I.style.paddingTop="8px",I.style.paddingBottom="8px");const t=document.createElement("div");t.style.width="50px",t.style.flexShrink="0",t.style.overflow="hidden",t.style.position="relative",t.style.borderRight="1px solid #ddd",t.style.boxSizing="border-box";const e=document.createElement("div");e.style.display="flex",e.style.flex="1",e.style.minWidth="0",I.appendChild(t),I.appendChild(e);const C=new Map,i=this._frames[0],B=this._buildColumn(A,g);B.column.dataset.frameId=i.id,e.appendChild(B.column),C.set(i.id,B);for(let I=1;I<this._frames.length;I++){const t=this._frames[I],i=this.managedTracks.find(g=>g.track===A),B=null==i?void 0:i.frameInstances.get(t.id);if(B){e.appendChild(this._buildColumnShim());const A=this._buildColumn(B,g);A.column.dataset.frameId=t.id,e.appendChild(A.column),C.set(t.id,A)}}return{row:I,axisDiv:t,axisCanvas:null,columnsContainer:e,columnViewports:C}}_buildColumn(A,g){var I;const t=A.canvas;t.style.display="block",t.style.width="100%";const e=document.createElement("div");e.style.flex="1",e.style.minWidth="0",e.classList.add("loom-viewport-column");const C=document.createElement("div");if(C.style.width="100%",C.style.overflow="hidden",C.style.position="relative",A instanceof UC){const g=null===(I=A.config)||void 0===I?void 0:I.background;"string"==typeof g&&(C.style.backgroundColor=g)}let i;null!=g&&(C.style.maxHeight=`${g}px`,C.style.overflowY="auto",C.style.overscrollBehaviorY="none",C.classList.add("loom-track-scroll")),A instanceof UC&&A.setExternalUIEnabled(!0),C.appendChild(t),e.appendChild(C),this.interactive&&(i=new Bs(C),i.onFeatureClick=this._makeFeatureClickHandler(A),this.featureOverlays.set(A,i));const B=new Qs(C,g=>{var I;null===(I=A.onUIOverlayClick)||void 0===I||I.call(A,g);const t=this.resolvePrimaryTrack(A);this.updateAxisContent(t),this.updateUILayer(A)});return this.uiLayers.set(A,B),{column:e,viewportWrapper:C,track:A,featureOverlay:i,uiLayer:B}}_buildColumnShim(){const A=document.createElement("div");return A.style.width="3px",A.style.flexShrink="0",A.style.backgroundColor="#ccc",A.classList.add("loom-column-shim"),A}_populateFrameColumns(A,g){const I=this.trackRows.get(A);if(!I||this._frames.length<=1)return;const t=this.managedTracks.find(g=>g.track===A);if(t)for(let A=1;A<this._frames.length;A++){const e=this._frames[A];if(I.columnViewports.has(e.id))continue;const C=t.frameInstances.get(e.id);if(!C)continue;I.columnsContainer.appendChild(this._buildColumnShim());const i=this._buildColumn(C,g);i.column.dataset.frameId=e.id,I.columnsContainer.appendChild(i.column),I.columnViewports.set(e.id,i)}}_setupTrackRowUI(A){"wig"===A.type&&A.setConfig({showDataRange:!1}),this.updateAxisContent(A),this.interactive&&"ruler"===A.type&&(A.canvas.style.cursor=og(this._frames[0].locus)?"pointer":"crosshair");const g=this.trackRows.get(A);this.interactive&&"ruler"!==A.type&&"ideogram"!==A.type&&g&&this.pointerManager&&this.pointerManager.setupReorderForTrack(A,g.axisDiv)}addTrack(A,g,I,t,e){const C=this._buildTrackRow(A,t);this.container.appendChild(C.row),this.trackRows.set(A,C),this._suppressImmediateLoad=!0;const i=super.addTrack(A,g,I,t,e);if(this._suppressImmediateLoad=!1,this._populateFrameColumns(A,t),this.interactive&&"ideogram"!==A.type){A.setOverscanMultiplier(3);const g=this.managedTracks.find(g=>g.track===A);if(g)for(const A of g.frameInstances.values())A.setOverscanMultiplier(3)}return this._setupTrackRowUI(A),this._pendingPostAddLoad||(this._pendingPostAddLoad=!0,requestAnimationFrame(()=>{this._pendingPostAddLoad=!1,this.resizeObserver&&(this.render(),this.loadAllTracksIfNeeded())})),i}removeTrack(A){var g,I,t;const e="string"==typeof A?this.getTrack(A):A;if(!e)return;null===(g=this.pointerManager)||void 0===g||g.teardownReorderForTrack(e);const C=this.trackRows.get(e);if(C)for(const A of C.columnViewports.values())null===(I=this.featureOverlays.get(A.track))||void 0===I||I.dispose(),this.featureOverlays.delete(A.track),null===(t=this.uiLayers.get(A.track))||void 0===t||t.dispose(),this.uiLayers.delete(A.track);C&&C.row.parentNode===this.container&&this.container.removeChild(C.row),this.trackRows.delete(e),super.removeTrack(A)}moveTrack(A,g){super.moveTrack(A,g),this.syncDOMOrder()}addFrame(A,g){const I=super.addFrame(A,g);for(const A of this.managedTracks){const g=this.trackRows.get(A.track);if(!g)continue;const t=A.frameInstances.get(I.id);if(!t)continue;g.columnsContainer.appendChild(this._buildColumnShim());const e=this._buildColumn(t,A.maxTrackHeight);e.column.dataset.frameId=I.id,g.columnsContainer.appendChild(e.column),g.columnViewports.set(I.id,e)}return this.render(),this.loadAllTracksIfNeeded(),I}removeFrame(A){var g,I,t,e;if(A===this._frames[0].id&&this._frames.length>1){const t=this._frames[1];for(const e of this.managedTracks){const C=this.trackRows.get(e.track);if(!C)continue;const i=C.columnViewports.get(A),B=C.columnViewports.get(t.id);if(i&&B){if(B.viewportWrapper.replaceChild(e.track.canvas,B.track.canvas),B.featureOverlay&&(B.featureOverlay.dispose(),this.featureOverlays.delete(B.track)),B.uiLayer&&(B.uiLayer.dispose(),this.uiLayers.delete(B.track)),this.interactive){const A=new Bs(B.viewportWrapper);A.onFeatureClick=this._makeFeatureClickHandler(e.track),this.featureOverlays.set(e.track,A),B.featureOverlay=A}const t=new Qs(B.viewportWrapper,A=>{var g,I;null===(I=(g=e.track).onUIOverlayClick)||void 0===I||I.call(g,A),this.updateAxisContent(e.track),this.updateUILayer(e.track)});this.uiLayers.set(e.track,t),B.uiLayer=t,B.track=e.track;const Q=i.column.nextElementSibling;(null==Q?void 0:Q.classList.contains("loom-column-shim"))&&Q.remove(),null===(g=i.featureOverlay)||void 0===g||g.dispose(),this.featureOverlays.delete(i.track),null===(I=i.uiLayer)||void 0===I||I.dispose(),this.uiLayers.delete(i.track),i.column.remove(),C.columnViewports.delete(A)}}}else for(const g of this.managedTracks){const I=this.trackRows.get(g.track);if(!I)continue;const C=I.columnViewports.get(A);if(C){const g=C.column.previousElementSibling;(null==g?void 0:g.classList.contains("loom-column-shim"))&&g.remove(),null===(t=C.featureOverlay)||void 0===t||t.dispose(),this.featureOverlays.delete(C.track),null===(e=C.uiLayer)||void 0===e||e.dispose(),this.uiLayers.delete(C.track),C.column.remove(),I.columnViewports.delete(A)}}super.removeFrame(A),this.render()}loadSession(A,g){for(const A of this.managedTracks){const g=this.trackRows.get(A.track);g&&g.row.parentNode===this.container&&this.container.removeChild(g.row)}this.trackRows.clear();for(const A of this.uiLayers.values())A.dispose();this.uiLayers.clear(),this.roiOverlayManager.clear(),super.loadSession(A,g)}render(){const A=this.container.clientWidth;if(0===A)return;const g=this._frames.length,I=A-ls,t=Math.max(0,3*(g-1)),e=Math.floor((I-t)/g);for(const A of this._frames)A.viewportWidth=e,Ui(A);this.clearCoordinatedDataRanges(),super.render(),g>1&&this.coordinateMultilocusAutoscale();const C=og(this._frames[0].locus);this.interactive&&(this.container.style.cursor=C?"default":"grab");const i=C?"pointer":"crosshair";for(const A of this.managedTracks)if(this.updateAxisContent(A.track),this.interactive&&"ruler"===A.track.type){A.track.canvas.style.cursor=i;for(const g of A.frameInstances.values())"ruler"===g.type&&(g.canvas.style.cursor=i)}this.renderROIOverlays(),this.updateFeatureOverlays(),this.updateUILayers()}setLocus(A){const g=this._frames[0],I=this.clamp(A);let t=this.managedTracks.length>0;const e=[];for(const A of this.managedTracks){const C=this.getTrackForFrame(A,g.id);if(C.needsRepaint(I)){t=!1;break}const i=C.computePixelShift(I);if(null===i){t=!1;break}e.push(i)}if(!t)return void super.setLocus(A);const C=g.locus.chr;g.locus=I,Ui(g);for(let A=0;A<this.managedTracks.length;A++){const t=this.managedTracks[A],C=this.getTrackForFrame(t,g.id);C.applyPixelShift(e[A]),C.setLocusSilent(I)}I.chr!==C&&this.updateIdeogramCytobands(),this.events.emit(Zo.LocusChange,{frames:[g],sourceFrameId:g.id,locus:I}),this.loadAllTracksIfNeeded()}attachRemote(A){this.remoteConnection&&this.remoteConnection.detach(),this.remoteConnection=new es(this,A,{supportsPNG:!0,exportPNG:()=>this.toPNG()})}detachRemote(){this.remoteConnection&&(this.remoteConnection.detach(),this.remoteConnection=null)}syncThemeFromCSS(){const A=Qi(this.theme,this.container);this.setTheme(A)}dispose(){var A,g;this.detachRemote(),this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),null===(A=this.pointerManager)||void 0===A||A.dispose(),this.pointerManager=null,null===(g=this.contextMenuManager)||void 0===g||g.dispose(),this.contextMenuManager=null,this.teardownUndoKeyboardHandler(),this.handleDocMouseDown&&(document.removeEventListener("mousedown",this.handleDocMouseDown),this.handleDocMouseDown=null),this.roiOverlayManager.dispose();for(const A of this.featureOverlays.values())A.dispose();this.featureOverlays.clear();for(const A of this.uiLayers.values())A.dispose();this.uiLayers.clear();for(const A of this.managedTracks){const g=this.trackRows.get(A.track);g&&g.row.parentNode===this.container&&this.container.removeChild(g.row)}this.trackRows.clear(),super.dispose(),this.ownedWorkerProvider&&(this.ownedWorkerProvider.dispose(),this.ownedWorkerProvider=null)}coordinateMultilocusAutoscale(){var A;for(const g of this.managedTracks){if(0===g.frameInstances.size)continue;const I=[g.track,...g.frameInstances.values()],t=[];for(const g of I){const I=null===(A=g.getAxisInfo)||void 0===A?void 0:A.call(g);(null==I?void 0:I.dataRange)&&t.push(I.dataRange)}if(t.length<2)continue;const e={min:Math.min(...t.map(A=>A.min)),max:Math.max(...t.map(A=>A.max))};if(!t.every(A=>A.min===e.min&&A.max===e.max))for(const A of I)this._applyCoordinatedDataRange(A,e)&&A.render()}}clearCoordinatedDataRanges(){for(const A of this.managedTracks){this._applyCoordinatedDataRange(A.track,null);for(const g of A.frameInstances.values())this._applyCoordinatedDataRange(g,null)}}_applyCoordinatedDataRange(A,g){return(A instanceof Fi||A instanceof EQ)&&(A.setCoordinatedDataRange(g),!0)}resolvePrimaryTrack(A){for(const g of this.managedTracks){if(g.track===A)return A;for(const I of g.frameInstances.values())if(I===A)return g.track}return A}updateAxisContent(A){var g,I;const t=this.trackRows.get(A);if(!t)return;const{axisDiv:e}=t,C=this.managedTracks.find(g=>g.track===A),i=this.getCombinedAxisInfo(A,C);if(!i)return e.innerHTML="",e.style.borderRight="none",e.style.backgroundColor=this.theme.palette.background,void(t.axisCanvas=null);const B={...i,backgroundColor:null!==(g=i.backgroundColor)&&void 0!==g?g:this.theme.palette.background,labelColor:null!==(I=i.labelColor)&&void 0!==I?I:this.theme.palette.foreground},Q=this.theme.palette.muted;e.style.borderRight=`1px solid ${Q}`;const o=null!=(null==C?void 0:C.maxTrackHeight)?Math.min(A.height,C.maxTrackHeight):A.height;this.paintAxisCanvas(t,B,o)}getCombinedAxisInfo(A,g){var I,t;const e=null===(I=A.getAxisInfo)||void 0===I?void 0:I.call(A);if(!g||0===g.frameInstances.size)return e;const C=[];e&&C.push(e);for(const A of g.frameInstances.values()){const g=null===(t=A.getAxisInfo)||void 0===t?void 0:t.call(A);g&&C.push(g)}if(0===C.length)return;const i=null!=e?e:C[0];let B;for(const A of C)A.dataRange&&(B?(B.min=Math.min(B.min,A.dataRange.min),B.max=Math.max(B.max,A.dataRange.max)):B={...A.dataRange});return{...i,dataRange:B}}paintAxisCanvas(A,g,I){const{axisDiv:t}=A,e=I;if(0===e)return;t.style.height=`${e}px`;let C=A.axisCanvas;C||(t.innerHTML="",C=document.createElement("canvas"),C.style.display="block",t.appendChild(C),A.axisCanvas=C);const i=this.canvasProvider.devicePixelRatio;C.width=50*i,C.height=e*i,C.style.width="50px",C.style.height=`${e}px`;const B=C.getContext("2d");B.scale(i,i),di(B,g,50,e)}isRulerCanvas(A){return A instanceof HTMLCanvasElement&&this.managedTracks.some(g=>{if("ruler"!==g.track.type)return!1;if(g.track.canvas===A)return!0;for(const I of g.frameInstances.values())if(I.canvas===A)return!0;return!1})}isOverlayTarget(A){return A.composedPath().some(A=>A instanceof HTMLElement&&("LOOM-CONTEXT-MENU"===A.tagName||"LOOM-INPUT-DIALOG"===A.tagName||"LOOM-POPUP"===A.tagName||A.classList.contains("loom-roi-region")||A.classList.contains("loom-track-ui-layer")||A.classList.contains("loom-track-ui-badge")))}_getFrameIdForX(A){if(this._frames.length<=1)return this._frames[0].id;for(const[,g]of this.trackRows){for(const[I,t]of g.columnViewports){const g=t.column.getBoundingClientRect();if(A>=g.left&&A<=g.right)return I}break}return this._frames[0].id}findTrackForTarget(A){if(!(A instanceof Element))return null;if(A instanceof HTMLCanvasElement)for(const g of this.managedTracks){if(g.track.canvas===A)return g.track;for(const I of g.frameInstances.values())if(I.canvas===A)return I}let g=A;for(;g&&g!==this.container;){if(g instanceof HTMLCanvasElement)for(const A of this.managedTracks){if(A.track.canvas===g)return A.track;for(const I of A.frameInstances.values())if(I.canvas===g)return I}g=g.parentElement}for(const[g,I]of this.trackRows)if(I.row.contains(A))return g;return null}onTracksSorted(){this.syncDOMOrder()}syncDOMOrder(){for(const A of this.managedTracks){const g=this.trackRows.get(A.track);g&&this.container.appendChild(g.row)}}setupUndoKeyboardHandler(){this.handleKeyDown=A=>{(A.ctrlKey||A.metaKey)&&("z"!==A.key||A.shiftKey?("z"===A.key&&A.shiftKey||"y"===A.key)&&(A.preventDefault(),this.redo()):(A.preventDefault(),this.undo()))},document.addEventListener("keydown",this.handleKeyDown)}teardownUndoKeyboardHandler(){this.handleKeyDown&&(document.removeEventListener("keydown",this.handleKeyDown),this.handleKeyDown=null)}renderROIOverlays(){this._frames.length<=1?this.roiOverlayManager.render(this.getVisibleROIs(),this._frames[0].locus,this._frames[0].viewportWidth):this.roiOverlayManager.renderMultiFrame(this._frames,A=>this.roiManager.getVisibleROIs(A),3)}updateFeatureOverlays(){for(const A of this.managedTracks){this.updateFeatureOverlay(A.track);for(const g of A.frameInstances.values())this.updateFeatureOverlay(g)}}updateUILayers(){for(const A of this.managedTracks){this.updateUILayer(A.track);for(const g of A.frameInstances.values())this.updateUILayer(g)}}updateFeatureOverlay(A){const g=this.featureOverlays.get(A);g&&A instanceof UC&&g.update(A.getFeatureRects())}updateUILayer(A){var g;const I=this.uiLayers.get(A);I&&I.update(null===(g=A.getUIOverlayState)||void 0===g?void 0:g.call(A),A.height)}syncViewportWrapperBackground(A){var g;const I=this.trackRows.get(A);if(I)for(const A of I.columnViewports.values())if(A.track instanceof UC){const I=null===(g=A.track.config)||void 0===g?void 0:g.background;"string"==typeof I&&(A.viewportWrapper.style.backgroundColor=I)}}toSVG(A){return ns(this.managedTracks,this._frames,this.theme,A=>this.roiManager.getVisibleROIs(A),ls,(A,g)=>this.getTrackForFrame(A,g),{width:null==A?void 0:A.width,containerWidth:this.container.clientWidth,backdropColor:null==A?void 0:A.backdropColor})}async toPNG(){const A=this.toSVG(),g=this.container.getBoundingClientRect();return hs(A,g.width,g.height,this.canvasProvider.devicePixelRatio)}saveSVGtoFile(A){const g=this.toSVG(),I=new Blob([g],{type:"application/octet-stream"}),t=URL.createObjectURL(I);cs(A||"igv.svg",t),URL.revokeObjectURL(t)}async savePNGtoFile(A){cs(A||"igv.png",await this.toPNG())}}const us={palette:{primary:"#4A90D9",secondary:"#D94A7A",accent:"#4A90D9",background:"#ffffff",foreground:"#333333",muted:"#B0B0B0"},fontFamily:"Inter, system-ui, sans-serif",annotation:{utrColor:"#A8C8E8",altUtrColor:"#E8A8BE",borderColor:"rgba(0, 0, 0, 0.15)",borderWidth:.5,borderRadius:3,arrowInExonColor:"rgba(255, 255, 255, 0.7)",labelFont:"italic 10px Inter, system-ui, sans-serif",featureHeight:12,expandedRowHeight:28,margin:8},wig:{overflowColor:"#FF6B6B"},ideogram:{borderColor:"#B0B0B0",font:"10px Inter, system-ui, sans-serif"},sequence:{frameColor1:"hsl(220, 15%, 90%)",frameColor2:"hsl(220, 15%, 95%)",startCodonColor:"hsl(160, 55%, 42%)",stopCodonColor:"hsl(0, 60%, 55%)",useFillText:!0,frameLabelColor:"#444444",codonLabelColor:"#ffffff",frameFont:"600 10px Inter, system-ui, sans-serif",codonBorderRadius:3}},ws={palette:{primary:"#6CB4EE",secondary:"#EE6C9E",accent:"#6a9fd9",background:"#1a1a2e",foreground:"#e0e0e0",muted:"#555555"},nucleotideColors:{A:"#4ade80",C:"#60a5fa",G:"#facc15",T:"#f87171",N:"#666666"},ideogram:{bandLightColor:"rgb(50, 50, 70)",bandDarkColor:"rgb(200, 200, 220)",centromereColor:"rgb(180, 50, 50)",borderColor:"#555555",viewportIndicatorColor:"#ff6b6b"},annotation:{utrColor:"#3D6B8E",altUtrColor:"#8E3D5E",borderColor:"rgba(255, 255, 255, 0.12)",borderWidth:.5,borderRadius:3,arrowInExonColor:"rgba(0, 0, 0, 0.4)",labelBackground:"#1a1a2e",labelFont:"italic 10px sans-serif",featureHeight:12,expandedRowHeight:28,margin:8},wig:{overflowColor:"#FF6B6B"},sequence:{background:"#1a1a2e",frameColor1:"hsl(230, 15%, 28%)",frameColor2:"hsl(230, 15%, 22%)",startCodonColor:"hsl(160, 50%, 35%)",stopCodonColor:"hsl(0, 55%, 45%)",useFillText:!0,frameLabelColor:"#c8c8c8",codonLabelColor:"#ffffff",frameFont:"600 10px sans-serif",codonBorderRadius:3}};function ys(A){return"modern"===A?us:"dark"===A?ws:void 0}const fs=`\n${VC(WC)}\n`,Ss=`\n${VC(PC)}\n`,ks=`\n${VC(OC)}\n`;function Gs(A){return"modern"===A?Ss:"dark"===A?ks:"auto"===A?"":fs}const Fs=document.createElement("template");Fs.innerHTML="\n<style>\n:host {\n display: inline-flex;\n align-items: center;\n}\nselect {\n font: var(--loom-font, 12px Arial, sans-serif);\n color: var(--loom-text-color, #333);\n background: var(--loom-input-bg, white);\n border: var(--loom-input-border, 1px solid #b0b0b0);\n border-radius: var(--loom-border-radius, 4px);\n height: var(--loom-input-height, 22px);\n padding: 0 4px;\n box-sizing: border-box;\n outline: none;\n cursor: pointer;\n transition: border-color 0.15s;\n}\nselect:focus {\n border: var(--loom-input-focus-border, 1px solid #4A90D9);\n}\n</style>\n<select></select>\n";class Ns extends HTMLElement{constructor(){super(),this.unsubscribe=null,this._browser=null,this._frameId=null,this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(Fs.content.cloneNode(!0)),this.select=this.shadowRoot.querySelector("select"),this.select.addEventListener("change",()=>{if(!this._browser)return;const A=this.select.value;if("all"===A)this._frameId?this._browser.search("all",this._frameId):this._browser.search("all");else{const g=this._browser.chromSizes;if(g&&null!=g[A]){const I={chr:A,start:0,end:g[A]};this._frameId?this._browser.setFrameLocus(this._frameId,I):this._browser.setLocus(I)}}})}set frameId(A){this._frameId=A,this._browser&&this.updateFromBrowser(this._browser)}get frameId(){return this._frameId}set browser(A){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null),this._browser=A,A&&(this.populate(A),this.updateFromBrowser(A),this.unsubscribe=A.on(Zo.LocusChange,()=>{this.updateFromBrowser(A)}))}get browser(){return this._browser}updateFromBrowser(A){var g,I;const t=this._frameId&&null!==(I=null===(g=A.frames.find(A=>A.id===this._frameId))||void 0===g?void 0:g.locus)&&void 0!==I?I:A.locus;this.updateSelection(t.chr)}populate(A){this.select.innerHTML="";const g=A.chromSizes;if(!g)return;if(A.cumulativeOffsets){const A=document.createElement("option");A.value="all",A.textContent="All",this.select.appendChild(A)}const I=aC(g);for(const A of I){const g=document.createElement("option");g.value=A,g.textContent=A,this.select.appendChild(g)}}updateSelection(A){og({chr:A,start:0,end:0})?this.select.value="all":this.select.value=A}disconnectedCallback(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)}}const ms=document.createElement("template");ms.innerHTML='\n<style>\n:host {\n display: inline-flex;\n align-items: center;\n}\n.container {\n display: flex;\n align-items: center;\n gap: 4px;\n}\ninput {\n font: var(--loom-font, 12px Arial, sans-serif);\n color: var(--loom-text-color, #333);\n background: var(--loom-input-bg, white);\n border: var(--loom-input-border, 1px solid #b0b0b0);\n border-radius: var(--loom-border-radius, 4px);\n width: var(--loom-input-width, 220px);\n height: var(--loom-input-height, 22px);\n padding: 0 8px;\n box-sizing: border-box;\n outline: none;\n transition: border-color 0.15s;\n}\ninput:focus {\n border: var(--loom-input-focus-border, 1px solid #4A90D9);\n}\ninput::placeholder {\n color: var(--loom-text-muted, #737373);\n}\n.search-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--loom-button-size, 24px);\n height: var(--loom-button-size, 24px);\n background: var(--loom-button-bg, white);\n border: var(--loom-button-border, 1px solid #b0b0b0);\n border-radius: var(--loom-border-radius, 4px);\n cursor: pointer;\n color: var(--loom-icon-color, #555);\n transition: background 0.15s;\n padding: 0;\n line-height: 1;\n}\n.search-btn:hover {\n background: var(--loom-button-hover, #e8e8e8);\n}\n.search-btn svg {\n width: var(--loom-icon-size, 14px);\n height: var(--loom-icon-size, 14px);\n fill: none;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n stroke-linejoin: round;\n}\n</style>\n<div class="container">\n <input type="text" placeholder="Locus Search" spellcheck="false" />\n <button class="search-btn" title="Go to locus">\n <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><line x1="16.5" y1="16.5" x2="21" y2="21"/></svg>\n </button>\n</div>\n';class ps extends HTMLElement{constructor(){super(),this.unsubscribe=null,this._browser=null,this._frameId=null,this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(ms.content.cloneNode(!0)),this.input=this.shadowRoot.querySelector("input"),this.input.addEventListener("keydown",A=>{"Enter"===A.key&&this.doSearch()}),this.shadowRoot.querySelector(".search-btn").addEventListener("click",()=>{this.doSearch()})}set frameId(A){this._frameId=A,this._browser&&this.updateDisplayFromBrowser(this._browser)}get frameId(){return this._frameId}set browser(A){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null),this._browser=A,A&&(this.updateDisplayFromBrowser(A),this.unsubscribe=A.on(Zo.LocusChange,()=>{this.updateDisplayFromBrowser(A)}))}get browser(){return this._browser}updateDisplayFromBrowser(A){if(document.activeElement!==this.input&&this.shadowRoot.activeElement!==this.input)if(this._frameId){const g=A.frames.find(A=>A.id===this._frameId);this.input.value=Eg(g?g.locus:A.locus)}else{const g=A.frames;g.length<=1?this.input.value=Eg(A.locus):this.input.value=g.map(A=>Eg(A.locus)).join(" ")}}async doSearch(){var A;if(!this._browser)return;const g=this.input.value.trim();if(g){this.input.disabled=!0;try{await this._browser.search(g,null!==(A=this._frameId)&&void 0!==A?A:void 0)||(this.input.style.borderColor="var(--loom-input-error-border, #d32f2f)",setTimeout(()=>{this.input.style.borderColor=""},1500))}finally{this.input.disabled=!1,this.input.blur()}}}disconnectedCallback(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)}}const Rs=document.createElement("template");Rs.innerHTML='\n<style>\n:host {\n display: inline-flex;\n align-items: center;\n}\n.container {\n display: flex;\n align-items: center;\n gap: 2px;\n}\nbutton {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--loom-button-size, 24px);\n height: var(--loom-button-size, 24px);\n background: var(--loom-button-bg, white);\n border: var(--loom-button-border, 1px solid #b0b0b0);\n border-radius: var(--loom-border-radius, 4px);\n cursor: pointer;\n color: var(--loom-icon-color, #555);\n transition: background 0.15s;\n padding: 0;\n line-height: 1;\n}\nbutton:hover {\n background: var(--loom-button-hover, #e8e8e8);\n}\nbutton:active {\n transform: scale(0.95);\n}\nbutton svg {\n width: var(--loom-icon-size, 14px);\n height: var(--loom-icon-size, 14px);\n fill: none;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n}\n</style>\n<div class="container">\n <button class="zoom-out" title="Zoom out">\n <svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="9"/><line x1="8" y1="12" x2="16" y2="12"/></svg>\n </button>\n <button class="zoom-in" title="Zoom in">\n <svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="9"/><line x1="12" y1="8" x2="12" y2="16"/><line x1="8" y1="12" x2="16" y2="12"/></svg>\n </button>\n</div>\n';class Us extends HTMLElement{constructor(){super(),this._browser=null,this._frameId=null,this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(Rs.content.cloneNode(!0)),this.shadowRoot.querySelector(".zoom-out").addEventListener("click",()=>{var A,g;null===(A=this._browser)||void 0===A||A.zoomOut(2,null!==(g=this._frameId)&&void 0!==g?g:void 0)}),this.shadowRoot.querySelector(".zoom-in").addEventListener("click",()=>{var A,g;null===(A=this._browser)||void 0===A||A.zoomIn(2,null!==(g=this._frameId)&&void 0!==g?g:void 0)})}set frameId(A){this._frameId=A}get frameId(){return this._frameId}set browser(A){this._browser=A}get browser(){return this._browser}}const Ms=document.createElement("template");Ms.innerHTML='\n<style>\n:host {\n display: inline-flex;\n align-items: center;\n}\n.label {\n font: var(--loom-font-small, 11px Arial, sans-serif);\n color: var(--loom-text-muted, #737373);\n white-space: nowrap;\n user-select: none;\n}\n</style>\n<span class="label"></span>\n';class Ls extends HTMLElement{constructor(){super(),this.unsubscribe=null,this._browser=null,this._frameId=null,this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(Ms.content.cloneNode(!0)),this.label=this.shadowRoot.querySelector(".label")}set frameId(A){this._frameId=A,this._browser&&this.updateFromBrowser(this._browser)}get frameId(){return this._frameId}set browser(A){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null),this._browser=A,A&&(this.updateFromBrowser(A),this.unsubscribe=A.on(Zo.LocusChange,()=>{this.updateFromBrowser(A)}))}get browser(){return this._browser}updateFromBrowser(A){var g,I;const t=this._frameId&&null!==(I=null===(g=A.frames.find(A=>A.id===this._frameId))||void 0===g?void 0:g.locus)&&void 0!==I?I:A.locus;this.label.textContent=ag(t.end-t.start)}disconnectedCallback(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)}}const Js=document.createElement("template");Js.innerHTML='\n<style>\n:host {\n display: inline-flex;\n align-items: center;\n}\n.container {\n display: flex;\n align-items: center;\n gap: 2px;\n}\nbutton {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--loom-button-size, 24px);\n height: var(--loom-button-size, 24px);\n background: var(--loom-button-bg, white);\n border: var(--loom-button-border, 1px solid #b0b0b0);\n border-radius: var(--loom-border-radius, 4px);\n cursor: pointer;\n color: var(--loom-icon-color, #555);\n transition: background 0.15s;\n padding: 0;\n line-height: 1;\n}\nbutton:hover {\n background: var(--loom-button-hover, #e8e8e8);\n}\nbutton:active {\n transform: scale(0.95);\n}\nbutton svg {\n width: var(--loom-icon-size, 14px);\n height: var(--loom-icon-size, 14px);\n fill: none;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n stroke-linejoin: round;\n}\n</style>\n<div class="container">\n <button class="save-svg" title="Save as SVG">\n <svg viewBox="0 0 24 24">\n <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/>\n <polyline points="7 10 12 15 17 10"/>\n <line x1="12" y1="15" x2="12" y2="3"/>\n </svg>\n </button>\n <button class="save-png" title="Save as PNG">\n <svg viewBox="0 0 24 24">\n <rect x="3" y="3" width="18" height="18" rx="2" ry="2"/>\n <circle cx="8.5" cy="8.5" r="1.5"/>\n <polyline points="21 15 16 10 5 21"/>\n </svg>\n </button>\n</div>\n';class Ks extends HTMLElement{constructor(){super(),this._browser=null,this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(Js.content.cloneNode(!0)),this.shadowRoot.querySelector(".save-svg").addEventListener("click",()=>{var A;null===(A=this._browser)||void 0===A||A.saveSVGtoFile()}),this.shadowRoot.querySelector(".save-png").addEventListener("click",()=>{var A;null===(A=this._browser)||void 0===A||A.savePNGtoFile()})}set browser(A){this._browser=A}get browser(){return this._browser}}customElements.get("loom-chromosome-select")||customElements.define("loom-chromosome-select",Ns),customElements.get("loom-locus-input")||customElements.define("loom-locus-input",ps),customElements.get("loom-zoom-controls")||customElements.define("loom-zoom-controls",Us),customElements.get("loom-window-size")||customElements.define("loom-window-size",Ls);const bs=document.createElement("template");bs.innerHTML='\n<style>\n:host {\n display: flex;\n align-items: center;\n gap: var(--loom-gap, 8px);\n flex: 1;\n min-width: 0;\n}\n.close-btn {\n display: none;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n background: none;\n border: var(--loom-button-border, 1px solid #b0b0b0);\n border-radius: var(--loom-border-radius, 4px);\n cursor: pointer;\n color: var(--loom-icon-color, #555);\n transition: background 0.15s, color 0.15s;\n padding: 0;\n line-height: 1;\n flex-shrink: 0;\n}\n.close-btn:hover {\n background: var(--loom-button-hover, #e8e8e8);\n color: var(--loom-text-color, #333);\n}\n.close-btn svg {\n width: 10px;\n height: 10px;\n fill: none;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n}\n:host([closable]) .close-btn {\n display: flex;\n}\n</style>\n<loom-chromosome-select></loom-chromosome-select>\n<loom-locus-input></loom-locus-input>\n<loom-window-size></loom-window-size>\n<loom-zoom-controls></loom-zoom-controls>\n<button class="close-btn" title="Close this panel">\n <svg viewBox="0 0 24 24"><line x1="6" y1="6" x2="18" y2="18"/><line x1="18" y1="6" x2="6" y2="18"/></svg>\n</button>\n';class vs extends HTMLElement{constructor(){super(),this._browser=null,this._frameId=null,this.unsubFrameRemoved=null,this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(bs.content.cloneNode(!0)),customElements.upgrade(this.shadowRoot),this.chromSelect=this.shadowRoot.querySelector("loom-chromosome-select"),this.locusInput=this.shadowRoot.querySelector("loom-locus-input"),this.zoomControls=this.shadowRoot.querySelector("loom-zoom-controls"),this.windowSize=this.shadowRoot.querySelector("loom-window-size"),this.shadowRoot.querySelector(".close-btn").addEventListener("click",()=>{this._browser&&this._frameId&&this._browser.removeFrame(this._frameId)})}set frameId(A){this._frameId=A,this.chromSelect.frameId=A,this.locusInput.frameId=A,this.zoomControls.frameId=A,this.windowSize.frameId=A}get frameId(){return this._frameId}set browser(A){if(this.unsubFrameRemoved&&(this.unsubFrameRemoved(),this.unsubFrameRemoved=null),this._browser=A,this.chromSelect.browser=A,this.locusInput.browser=A,this.zoomControls.browser=A,this.windowSize.browser=A,A){this.updateClosable(A);const g=A.on(Zo.FrameAdded,()=>this.updateClosable(A)),I=A.on(Zo.FrameRemoved,()=>this.updateClosable(A));this.unsubFrameRemoved=()=>{g(),I()}}}get browser(){return this._browser}updateClosable(A){A.frames.length>1?this.setAttribute("closable",""):this.removeAttribute("closable")}disconnectedCallback(){this.unsubFrameRemoved&&(this.unsubFrameRemoved(),this.unsubFrameRemoved=null)}}customElements.get("loom-export-controls")||customElements.define("loom-export-controls",Ks),customElements.get("loom-frame-panel")||customElements.define("loom-frame-panel",vs);const Ys=document.createElement("template");Ys.innerHTML='\n<style>\n:host {\n display: block;\n}\n.single-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: var(--loom-navbar-height, 32px);\n padding: var(--loom-navbar-padding, 0 8px);\n background: var(--loom-navbar-bg, #f3f3f3);\n border-bottom: var(--loom-border, 1px solid #ccc);\n box-sizing: border-box;\n gap: var(--loom-gap, 8px);\n}\n.single-left {\n display: flex;\n align-items: center;\n gap: var(--loom-gap, 8px);\n flex: 1;\n min-width: 0;\n}\n.single-right {\n display: flex;\n align-items: center;\n gap: var(--loom-gap, 8px);\n flex-shrink: 0;\n}\n.global-row {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n height: var(--loom-navbar-height, 32px);\n padding: var(--loom-navbar-padding, 0 8px);\n background: var(--loom-navbar-bg, #f3f3f3);\n border-bottom: var(--loom-border, 1px solid #ccc);\n box-sizing: border-box;\n gap: var(--loom-gap, 8px);\n}\n.frames-row {\n display: flex;\n align-items: center;\n min-height: var(--loom-navbar-height, 32px);\n padding: 0;\n padding-left: var(--loom-axis-width, 50px);\n background: var(--loom-navbar-bg, #f3f3f3);\n border-bottom: var(--loom-border, 1px solid #ccc);\n box-sizing: border-box;\n gap: 0;\n}\n.frame-divider {\n width: var(--loom-column-shim-width, 3px);\n align-self: stretch;\n background: var(--loom-border-color, #ccc);\n flex-shrink: 0;\n}\n.hidden {\n display: none !important;\n}\n</style>\n\x3c!-- Single-frame layout (classic single row) --\x3e\n<div class="single-row">\n <div class="single-left"></div>\n <div class="single-right">\n <loom-export-controls class="export-single"></loom-export-controls>\n </div>\n</div>\n\x3c!-- Multi-frame layout (two rows) --\x3e\n<div class="global-row hidden">\n <loom-export-controls class="export-multi"></loom-export-controls>\n</div>\n<div class="frames-row hidden"></div>\n';class xs extends HTMLElement{constructor(){super(),this.framePanels=new Map,this._browser=null,this.unsubscribers=[],this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(Ys.content.cloneNode(!0)),customElements.upgrade(this.shadowRoot),this.singleRow=this.shadowRoot.querySelector(".single-row"),this.singleLeft=this.shadowRoot.querySelector(".single-left"),this.exportSingle=this.shadowRoot.querySelector(".export-single"),this.globalRow=this.shadowRoot.querySelector(".global-row"),this.exportMulti=this.shadowRoot.querySelector(".export-multi"),this.framesRow=this.shadowRoot.querySelector(".frames-row")}set browser(A){for(const A of this.unsubscribers)A();this.unsubscribers=[],this.clearFramePanels(),this._browser=A,this.exportSingle.browser=A,this.exportMulti.browser=A,A&&(this.syncLayout(A),this.unsubscribers.push(A.on(Zo.FrameAdded,()=>this.syncLayout(A))),this.unsubscribers.push(A.on(Zo.FrameRemoved,()=>this.syncLayout(A))))}get browser(){return this._browser}syncLayout(A){const g=A.frames,I=g.length>1;this.singleRow.classList.toggle("hidden",I),this.globalRow.classList.toggle("hidden",!I),this.framesRow.classList.toggle("hidden",!I);const t=new Set(g.map(A=>A.id));for(const A of[...this.framePanels.keys()])t.has(A)||(this.framePanels.get(A).remove(),this.framePanels.delete(A));if(I)this.singleLeft.innerHTML="",this.rebuildFramesRow(A,g);else{this.framesRow.innerHTML="";const I=g[0];let t=this.framePanels.get(I.id);t?t.browser=A:t=this.createPanel(I.id,A),this.singleLeft.innerHTML="",this.singleLeft.appendChild(t)}}rebuildFramesRow(A,g){this.framesRow.innerHTML="";let I=!0;for(const t of g){if(!I){const A=document.createElement("div");A.className="frame-divider",this.framesRow.appendChild(A)}I=!1;let g=this.framePanels.get(t.id);g?g.browser=A:g=this.createPanel(t.id,A),this.framesRow.appendChild(g)}}createPanel(A,g){const I=document.createElement("loom-frame-panel");return I.frameId=A,I.browser=g,this.framePanels.set(A,I),I}clearFramePanels(){for(const A of this.framePanels.values())A.remove();this.framePanels.clear(),this.singleLeft&&(this.singleLeft.innerHTML=""),this.framesRow&&(this.framesRow.innerHTML="")}disconnectedCallback(){for(const A of this.unsubscribers)A();this.unsubscribers=[],this.clearFramePanels()}}customElements.get("loom-navbar")||customElements.define("loom-navbar",xs);const Hs=document.createElement("template");Hs.innerHTML='\n<style>\n:host {\n display: block;\n}\n.shell {\n border: var(--loom-border, 1px solid #ccc);\n border-radius: var(--loom-border-radius, 4px);\n overflow: hidden;\n background: var(--loom-shell-bg, white);\n}\n.track-container {\n position: relative;\n}\n</style>\n<div class="shell">\n <loom-navbar></loom-navbar>\n <div class="track-container"></div>\n</div>\n';class qs extends HTMLElement{static get observedAttributes(){return["theme"]}constructor(){super(),this._browser=null,this.attachShadow({mode:"open"}),this.themeStyle=document.createElement("style"),this.shadowRoot.appendChild(this.themeStyle),this.shadowRoot.appendChild(Hs.content.cloneNode(!0)),this.navbar=this.shadowRoot.querySelector("loom-navbar"),this.trackContainer=this.shadowRoot.querySelector(".track-container"),this.applyTheme(this.getAttribute("theme")||"classic")}attributeChangedCallback(A,g,I){"theme"===A&&this.applyTheme(I||"classic")}applyTheme(A){this.themeStyle.textContent=Gs(A)}connectedCallback(){customElements.upgrade(this.shadowRoot),this._browser&&(this.navbar.browser=this._browser)}initialize(A){this._browser&&this._browser.dispose();const g=this.getAttribute("theme"),I=A.theme||!g?A:{...A,theme:ys(g)};return this._browser=new Ds(this.trackContainer,I),this.isConnected&&(this.navbar.browser=this._browser),this._browser}get browser(){return this._browser}addTrack(A){var g;null===(g=this._browser)||void 0===g||g.addTrack(A)}removeTrack(A){var g;null===(g=this._browser)||void 0===g||g.removeTrack(A)}setLocus(A){var g;null===(g=this._browser)||void 0===g||g.setLocus(A)}on(A,g){var I;return null===(I=this._browser)||void 0===I?void 0:I.on(A,g)}setTheme(A){var g;this.applyTheme(A),this.setAttribute("theme",A),this._browser&&this._browser.setTheme(null!==(g=ys(A))&&void 0!==g?g:{})}disconnectedCallback(){this._browser&&(this._browser.dispose(),this._browser=null)}}let _s=null;class Ts extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),this.shadowRoot.appendChild((_s||(_s=document.createElement("template"),_s.innerHTML='\n<style>\n:host {\n position: absolute;\n z-index: 100000;\n pointer-events: auto;\n display: none;\n user-select: text;\n -webkit-user-select: text;\n cursor: auto;\n}\n.popup {\n background: var(--loom-popup-bg, var(--loom-input-bg, white));\n border: var(--loom-popup-border, var(--loom-border, 1px solid #ccc));\n border-radius: var(--loom-popup-radius, var(--loom-border-radius, 6px));\n box-shadow: var(--loom-popup-shadow, 0 2px 8px rgba(0,0,0,0.15));\n padding: 8px 12px;\n font: var(--loom-popup-font, var(--loom-font-small, 12px/1.4 sans-serif));\n color: var(--loom-popup-color, var(--loom-text-color, #333));\n max-width: 320px;\n min-width: 120px;\n}\ntable {\n border-collapse: collapse;\n width: 100%;\n}\ntd {\n padding: 2px 0;\n vertical-align: top;\n}\ntd.name {\n font-weight: 600;\n padding-right: 8px;\n white-space: nowrap;\n color: var(--loom-popup-name-color, var(--loom-popup-color, var(--loom-text-color, #333)));\n}\ntd.value {\n word-break: break-word;\n color: var(--loom-popup-color, var(--loom-text-color, #333));\n}\ntd.value.html {\n padding-top: 4px;\n}\ntd.value.html .popup-note {\n font-size: 11px;\n color: var(--loom-popup-color, var(--loom-text-color, #333));\n margin-top: 4px;\n}\ntd.value.html .legend-list {\n display: grid;\n gap: 4px;\n}\ntd.value.html .legend-row {\n display: flex;\n align-items: baseline;\n gap: 8px;\n flex-wrap: wrap;\n}\ntd.value.html .legend-label {\n font-weight: 600;\n}\ntd.value.html .legend-swatch {\n display: inline-block;\n width: 8px;\n height: 8px;\n border-radius: 999px;\n margin-right: 6px;\n vertical-align: middle;\n}\ntd.value.monospace {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \'Liberation Mono\', monospace;\n white-space: pre;\n word-break: normal;\n}\ntr.border-top td {\n border-top: 1px solid var(--loom-popup-divider, var(--loom-button-hover, #e0e0e0));\n padding-top: 4px;\n}\n.close {\n position: absolute;\n top: 4px;\n right: 6px;\n background: none;\n border: none;\n cursor: pointer;\n font-size: 14px;\n color: var(--loom-popup-close-color, var(--loom-text-muted, #999));\n line-height: 1;\n padding: 0 2px;\n}\n.close:hover {\n color: var(--loom-popup-color, var(--loom-text-color, #333));\n}\n</style>\n<div class="popup">\n <button class="close" title="Close">&times;</button>\n <table><tbody></tbody></table>\n</div>\n'),_s).content.cloneNode(!0)),this.shadowRoot.querySelector(".close").addEventListener("click",()=>{this.hide()});const A=this.shadowRoot.querySelector(".popup");A.addEventListener("pointerdown",A=>{A.stopPropagation()}),A.addEventListener("pointerup",A=>{A.stopPropagation()}),A.addEventListener("mousedown",A=>{A.stopPropagation()}),A.addEventListener("mouseup",A=>{A.stopPropagation()})}setData(A){const g=this.shadowRoot.querySelector("tbody");g.innerHTML="";for(const I of A){const A=document.createElement("tr");I.borderTop&&(A.className="border-top");const t=document.createElement("td");t.className="name",t.textContent=I.name;const e=document.createElement("td");e.className="value",I.monospace&&e.classList.add("monospace"),I.content?(e.classList.add("html"),e.appendChild(I.content(document))):e.textContent=String(I.value),A.appendChild(t),A.appendChild(e),g.appendChild(A)}}showAt(A,g){this.style.display="block";this.style.left=`${A+12}px`,this.style.top=`${g+12}px`,requestAnimationFrame(()=>{const I=this.offsetParent;if(!I)return;const t=I.getBoundingClientRect(),e=this.getBoundingClientRect();let C=A+12,i=g+12;C+e.width>t.width&&(C=A-e.width-12),i+e.height>t.height&&(i=g-e.height-12),C<0&&(C=0),i<0&&(i=0),this.style.left=`${C}px`,this.style.top=`${i}px`})}hide(){this.style.display="none"}}"undefined"==typeof customElements||customElements.get("loom-popup")||customElements.define("loom-popup",Ts);class Ws{constructor(){this.element=null}show(A,g,I){if(!this.element){this.element=document.createElement("loom-popup");"static"===getComputedStyle(I).position&&(I.style.position="relative"),I.appendChild(this.element)}this.element.setData(A),this.element.showAt(g.x,g.y)}hide(){this.element&&this.element.hide()}dispose(){this.element&&(this.element.remove(),this.element=null)}}var Ps=Object.freeze({__proto__:null,LoomPopup:Ts,DefaultPopupProvider:Ws});class Os extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){const A=document.createElement("template");A.innerHTML='\n<style>\n:host {\n position: absolute;\n z-index: 100001;\n pointer-events: auto;\n display: none;\n user-select: text;\n -webkit-user-select: text;\n cursor: auto;\n}\n.menu {\n background: var(--loom-menu-bg, var(--loom-input-bg, white));\n border: var(--loom-menu-border, var(--loom-border, 1px solid #ccc));\n border-radius: var(--loom-menu-radius, var(--loom-border-radius, 4px));\n box-shadow: var(--loom-menu-shadow, 0 2px 8px rgba(0,0,0,0.18));\n padding: 4px 0;\n font: var(--loom-menu-font, var(--loom-font-small, 12px/1.4 sans-serif));\n color: var(--loom-menu-color, var(--loom-text-color, #333));\n min-width: 160px;\n}\n.item {\n padding: 6px 12px;\n cursor: pointer;\n white-space: nowrap;\n display: flex;\n align-items: center;\n gap: 6px;\n position: relative;\n}\n.item:hover {\n background: var(--loom-menu-hover, var(--loom-button-hover, #f0f0f0));\n}\n.item.disabled {\n opacity: 0.45;\n pointer-events: none;\n}\n.separator {\n height: 1px;\n background: var(--loom-menu-divider, var(--loom-button-hover, #e0e0e0));\n margin: 4px 0;\n}\n.check {\n width: 14px;\n text-align: center;\n flex-shrink: 0;\n font-size: 11px;\n}\n.label {\n flex: 1;\n}\n.arrow {\n font-size: 9px;\n color: #999;\n margin-left: 8px;\n}\n.submenu {\n position: absolute;\n left: 100%;\n top: -4px;\n display: none;\n}\n.item:hover > .submenu {\n display: block;\n}\n</style>\n<div class="menu"></div>\n',this.shadowRoot.appendChild(A.content.cloneNode(!0)),this.menuDiv=this.shadowRoot.querySelector(".menu")}disconnectedCallback(){this.menuDiv&&(this.menuDiv.innerHTML="")}setItems(A){this.menuDiv&&(this.menuDiv.innerHTML="",this.buildItems(A,this.menuDiv))}buildItems(A,g){for(const I of A){if("separator"===I.type){const A=document.createElement("div");A.className="separator",g.appendChild(A);continue}const A=document.createElement("div");A.className="item"+(I.disabled?" disabled":"");const t=document.createElement("span");t.className="check",t.textContent="checkbox"===I.type&&I.checked?"✓":"",A.appendChild(t);const e=document.createElement("span");if(e.className="label",e.textContent=I.label,A.appendChild(e),I.children&&I.children.length>0){const g=document.createElement("span");g.className="arrow",g.textContent="▶",A.appendChild(g);const t=document.createElement("div");t.className="submenu menu",this.buildItems(I.children,t),A.appendChild(t)}if(I.action&&!I.disabled){const g=I.action;A.addEventListener("pointerdown",A=>{A.stopPropagation()}),A.addEventListener("pointerup",A=>{A.stopPropagation()}),A.addEventListener("click",A=>{A.stopPropagation(),g(),this.hide()}),A.addEventListener("mousedown",A=>{A.stopPropagation()}),A.addEventListener("mouseup",A=>{A.stopPropagation()})}g.appendChild(A)}}showAt(A,g){this.style.display="block",this.style.left=`${A}px`,this.style.top=`${g}px`,requestAnimationFrame(()=>{const I=this.offsetParent;if(!I)return;const t=I.getBoundingClientRect(),e=this.getBoundingClientRect();let C=A,i=g;C+e.width>t.width&&(C=Math.max(0,A-e.width)),i+e.height>t.height&&(i=Math.max(0,g-e.height)),this.style.left=`${C}px`,this.style.top=`${i}px`})}hide(){this.style.display="none"}}"undefined"==typeof customElements||customElements.get("loom-context-menu")||customElements.define("loom-context-menu",Os);class Vs{constructor(){this.element=null}show(A,g,I){if(!this.element){this.element=document.createElement("loom-context-menu");"static"===getComputedStyle(I).position&&(I.style.position="relative"),I.appendChild(this.element)}this.element.setItems(A),this.element.showAt(g.x,g.y)}hide(){this.element&&this.element.hide()}dispose(){this.element&&(this.element.remove(),this.element=null)}}var Zs=Object.freeze({__proto__:null,LoomContextMenu:Os,DefaultContextMenuProvider:Vs});class zs extends HTMLElement{constructor(){super(),this.resolve=null,this.attachShadow({mode:"open"})}connectedCallback(){const A=document.createElement("template");A.innerHTML='\n<style>\n:host {\n position: absolute;\n z-index: 100002;\n top: 0; left: 0; right: 0; bottom: 0;\n display: none;\n align-items: center;\n justify-content: center;\n background: rgba(0, 0, 0, 0.15);\n}\n.dialog {\n background: var(--loom-dialog-bg, var(--loom-input-bg, white));\n border: var(--loom-dialog-border, var(--loom-border, 1px solid #ccc));\n border-radius: var(--loom-dialog-radius, var(--loom-border-radius, 6px));\n box-shadow: var(--loom-dialog-shadow, 0 4px 16px rgba(0,0,0,0.2));\n padding: 16px 20px;\n font: var(--loom-dialog-font, var(--loom-font, 13px/1.4 sans-serif));\n color: var(--loom-dialog-color, var(--loom-text-color, #333));\n min-width: 220px;\n}\n.dialog label {\n display: block;\n margin-bottom: 8px;\n font-weight: 600;\n font-size: 12px;\n}\n.dialog input {\n width: 100%;\n box-sizing: border-box;\n padding: 6px 8px;\n background: var(--loom-input-bg, white);\n border: var(--loom-input-border, 1px solid #ccc);\n border-radius: 4px;\n font: inherit;\n color: inherit;\n margin-bottom: 12px;\n}\n.dialog input:focus {\n outline: none;\n border-color: var(--loom-accent, #4A90D9);\n box-shadow: 0 0 0 2px rgba(74, 144, 217, 0.2);\n}\n.buttons {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n}\n.buttons button {\n padding: 5px 14px;\n border: var(--loom-button-border, 1px solid #ccc);\n border-radius: 4px;\n font: inherit;\n font-size: 12px;\n cursor: pointer;\n background: var(--loom-dialog-btn-bg, var(--loom-button-bg, #f5f5f5));\n color: var(--loom-dialog-btn-color, var(--loom-text-color, #333));\n}\n.buttons button:hover {\n background: var(--loom-button-hover, #e8e8e8);\n}\n.buttons button.primary {\n background: var(--loom-accent, #4A90D9);\n color: white;\n border-color: transparent;\n}\n.buttons button.primary:hover {\n filter: brightness(0.9);\n}\n</style>\n<div class="dialog">\n <label></label>\n <input type="text" />\n <div class="buttons">\n <button class="cancel">Cancel</button>\n <button class="primary ok">OK</button>\n </div>\n</div>\n',this.shadowRoot.appendChild(A.content.cloneNode(!0)),this.labelEl=this.shadowRoot.querySelector("label"),this.inputEl=this.shadowRoot.querySelector("input"),this.okBtn=this.shadowRoot.querySelector(".ok"),this.cancelBtn=this.shadowRoot.querySelector(".cancel"),this.okBtn.addEventListener("click",()=>this.confirm()),this.cancelBtn.addEventListener("click",()=>this.cancel()),this.inputEl.addEventListener("keydown",A=>{"Enter"===A.key&&this.confirm(),"Escape"===A.key&&this.cancel()})}prompt(A,g){return this.labelEl.textContent=A,this.inputEl.value=String(g),this.style.display="flex",requestAnimationFrame(()=>{this.inputEl.focus(),this.inputEl.select()}),new Promise(A=>{this.resolve=A})}confirm(){const A=this.inputEl.value;this.style.display="none",this.resolve&&(this.resolve(A),this.resolve=null)}cancel(){this.style.display="none",this.resolve&&(this.resolve(null),this.resolve=null)}}"undefined"==typeof customElements||customElements.get("loom-input-dialog")||customElements.define("loom-input-dialog",zs);var js=Object.freeze({__proto__:null,LoomInputDialog:zs});"undefined"!=typeof customElements&&(customElements.get("loom-chromosome-select")||customElements.define("loom-chromosome-select",Ns),customElements.get("loom-locus-input")||customElements.define("loom-locus-input",ps),customElements.get("loom-zoom-controls")||customElements.define("loom-zoom-controls",Us),customElements.get("loom-window-size")||customElements.define("loom-window-size",Ls),customElements.get("loom-export-controls")||customElements.define("loom-export-controls",Ks),customElements.get("loom-frame-panel")||customElements.define("loom-frame-panel",vs),customElements.get("loom-navbar")||customElements.define("loom-navbar",xs),customElements.get("loom-browser")||customElements.define("loom-browser",qs)),A.AnnotationTrackCanvas=si,A.AuthProviderChain=class{constructor(A){this.entries=[...A]}add(A){this.entries.push(A)}async getCredentials(A,g){for(const I of this.entries)if(o(I)&&e(I.match,A))return I.provider.getCredentials(A,g);for(const I of this.entries)if(!o(I)){const t=await I.getCredentials(A,g);if(t)return t}}},A.BaseCompositeTrack=sQ,A.BaseTrackCanvas=UC,A.BigBedAnnotationSource=gB,A.BigWigDataSource=cg,A.BigWigReader=Ig,A.BrowserEvent=Zo,A.C2S=Pi,A.CSS_VAR_NAMES=TC,A.ChromAliasBB=AB,A.ChromAliasDefaults=Xi,A.ChromAliasFile=$i,A.CommandDispatcher=Is,A.CommandError=As,A.CredentialStore=C,A.DEFAULT_BPP_SEQUENCE_THRESHOLD=10,A.DEFAULT_SEARCHABLE_FIELDS=Ro,A.DOMCanvasProvider=f,A.DefaultContextMenuProvider=Vs,A.DefaultPopupProvider=Ws,A.EventEmitter=Oi,A.FeatureCache=rI,A.FeatureNameIndex=Mo,A.GeneDataSource=II,A.GenomeBrowser=Ds,A.GoogleAuthManager=y,A.GoogleAuthProvider=class{constructor(A){this._token=A.token,this._apiKey=A.apiKey,this.clientId=A.clientId,this.scope=A.scope,this.hint=A.hint,this.hostedDomain=A.hostedDomain}async getCredentials(A,I){var t;if(!s(A))return;if(r(A))return;let e,C=A;E(A)&&(C=n(A)),a(A)&&(C=d(A)),this._apiKey&&(C=w(C,this._apiKey)),this._token&&(e=await g(this._token)),!e&&(null===(t=this._manager)||void 0===t?void 0:t.isInitialized())&&(e=this._manager.getCurrentAccessToken());const i={};e&&(i.Authorization=`Bearer ${e}`,i["Cache-Control"]="no-cache");const B=Object.keys(i).length>0,Q=C!==A;return B||Q?{headers:B?i:void 0,resolvedUrl:Q?C:void 0}:void 0}initGIS(){if(!this.clientId)throw new Error("GoogleAuthProvider: clientId is required for GIS initialization.");const A=new y,g={clientId:this.clientId,apiKey:this._apiKey,scope:this.scope,hint:this.hint,hostedDomain:this.hostedDomain};return A.init(g),this._manager=A,A}isGISInitialized(){var A,g;return null!==(g=null===(A=this._manager)||void 0===A?void 0:A.isInitialized())&&void 0!==g&&g}async signIn(A){var g;if(!(null===(g=this._manager)||void 0===g?void 0:g.isInitialized()))throw new Error("GoogleAuthProvider: GIS not initialized. Call initGIS() first.");await this._manager.getAccessToken(A)}signOut(){var A;null===(A=this._manager)||void 0===A||A.signOut()}setToken(A){this._token=A}setApiKey(A){this._apiKey=A}},A.GtxDataSource=Tg,A.GtxReader=bg,A.HeadlessGenomeBrowser=$o,A.IdeogramTrackCanvas=VQ,A.InteractionTrackCanvas=CQ,A.IntervalTree=aI,A.LoomBrowserShell=qs,A.LoomChromosomeSelect=Ns,A.LoomContextMenu=Os,A.LoomExportControls=Ks,A.LoomInputDialog=zs,A.LoomLocusInput=ps,A.LoomNavbar=xs,A.LoomPopup=Ts,A.LoomWindowSize=Ls,A.LoomZoomControls=Us,A.MainThreadProvider=uC,A.MemoryDataSource=XB,A.MergedDataSource=rQ,A.MergedFeatureCollection=aQ,A.MergedTrackCanvas=EQ,A.NodeWorkerProvider=class{constructor(A){this.nextId=0,this.pending=new Map,this.initPromise=this.init(A)}async init(A){const g=await import("worker_threads");this.worker=new g.Worker(A),this.worker.on("message",A=>{const g=this.pending.get(A.id);g&&(this.pending.delete(A.id),A.error?g.reject(kC(A.error)):g.resolve(A.result))}),this.worker.on("error",A=>{for(const{reject:g}of this.pending.values())g(A);this.pending.clear()})}async execute(A,g){await this.initPromise;const I=this.nextId++;return SC(new Promise((t,e)=>{this.pending.set(I,{resolve:t,reject:e}),this.worker.postMessage({id:I,task:A},null!=g?g:[])}),yC,A.task)}dispose(){var A;null===(A=this.worker)||void 0===A||A.terminate();for(const{reject:A}of this.pending.values())A(new Error("Worker terminated"));this.pending.clear()}},A.PeakOverlayTrackCanvas=QQ,A.READY_STATE_OPEN=1,A.ROISet=Yo,A.ROI_DEFAULT_COLOR=Jo,A.ROI_USER_DEFINED_COLOR=Ko,A.RemoteConnection=es,A.RulerTrackCanvas=hi,A.SESSION_VERSION=io,A.SequenceDataSource=zB,A.SequenceTrackCanvas=jB,A.StateProjection=ro,A.TabixReader=Be,A.TextFeatureSource=dC,A.TrackFeatureLRU=Ji,A.UndoManager=So,A.WebWorkerPool=pC,A.WebWorkerProvider=class{constructor(A){var g,I;let t,e;if(this.nextId=0,this.nextWorker=0,this.pending=new Map,"string"==typeof A||A instanceof URL){e=1,this.taskTimeoutMs=yC;const g=A;t=()=>new Worker(g,{type:"module"})}else if(this.taskTimeoutMs=null!==(g=A.taskTimeoutMs)&&void 0!==g?g:yC,e=Math.max(1,null!==(I=A.poolSize)&&void 0!==I?I:1),A.workerFactory)t=A.workerFactory;else{if(!A.workerUrl)throw new Error("WebWorkerProviderOptions requires either workerUrl or workerFactory");{const g=A.workerUrl;t=()=>new Worker(g,{type:"module"})}}this.workers=[];for(let A=0;A<e;A++){const A=t();A.onmessage=A=>{const{id:g,result:I,error:t}=A.data,e=this.pending.get(g);e&&(this.pending.delete(g),t?e.reject(kC(t)):e.resolve(I))},A.onerror=A=>{const g=new Error(`Worker error: ${A.message}`);for(const{reject:A}of this.pending.values())A(g);this.pending.clear()},this.workers.push(A)}}get poolSize(){return this.workers.length}execute(A,g){const I=this.nextId++,t=this.workers[this.nextWorker%this.workers.length];this.nextWorker++;return SC(new Promise((e,C)=>{this.pending.set(I,{resolve:e,reject:C}),t.postMessage({id:I,task:A},null!=g?g:[])}),this.taskTimeoutMs,A.task)}dispose(){for(const A of this.workers)A.terminate();for(const{reject:A}of this.pending.values())A(new Error("Worker terminated"));this.pending.clear(),this.workers=[]}},A.WigGroupDataSource=HQ,A.WigGroupFeatureCollection=xQ,A.WigGroupTrackCanvas=MQ,A.WigTrackCanvas=Fi,A.WorkerDataSource=GC,A.addCaseAliases=Vi,A.addGoogleApiKey=w,A.aggregateWigFeatures=GQ,A.assembleGFFTranscripts=Je,A.autoThemeCSS="",A.bufferLocus=Li,A.buildFetchFromCredentials=Q,A.cacheCoversViewport=Mi,A.clampLocus=rg,A.classicThemeCSS=fs,A.classicThemeValues=WC,A.clearBigWigCache=function(){Ag.clear()},A.clearFastaCache=function(){DB.clear()},A.clearGenomeRegistry=function(){JB=void 0,KB=void 0},A.clearGtxCache=function(){for(const A of xg.values())A.dispose();xg.clear(),vg.clear()},A.clearTwoBitCache=function(){oB.clear(),sB.clear()},A.commonContextMenuItems=k,A.complementBase=WB,A.complementSequence=function(A){var g;let I="";for(const t of A)I+=null!==(g=TB.get(t))&&void 0!==g?g:t;return I},A.computeCumulativeOffsets=nC,A.computeWigDataRange=Bg,A.createAuthenticatedFetch=B,A.createBrowser=async function(A){const{genome:g,registry:I,...t}=A;let e;if(null===g)e=null;else if(void 0===g)e=void 0;else if("string"!=typeof g&&("function"==typeof(C=g).getChromosomeName&&"cumulativeOffsets"in C))e=g;else{(I||"string"==typeof g)&&await bB(I);const A=await vB(g);e=await pB(A)}var C;return new $o({...t,genome:e})},A.createCachedSequence=tB,A.createDefaultContextMenuProvider=as,A.createDefaultPopupProvider=rs,A.createFastaSequenceProvider=wB,A.createFeatureSource=function(A){var g,I,t,e,C,i;const B=null!==(I=null!==(g=A.format)&&void 0!==g?g:eC(A.url))&&void 0!==I?I:"bed",Q=null!==(t=oC(B))&&void 0!==t?t:"annotation";let o;if("gtx"===B){const g=null!==(e=A.windowFunction)&&void 0!==e?e:"mean";o=new Tg(A.url,null!==(C=A.experimentId)&&void 0!==C?C:"",g)}else if(iC(B)){const g=null!==(i=A.windowFunction)&&void 0!==i?i:"mean";o=new cg(A.url,g)}else{const g={url:A.url,format:B,indexURL:A.indexURL,indexed:A.indexed,assembleGFF:A.assembleGFF};o=new dC(g)}return{dataSource:o,trackType:Q,format:B}},A.createGenome=pB,A.createGenomeSync=mB,A.createReferenceFrame=Ri,A.createShell=function(A,g){customElements.get("loom-browser")||customElements.define("loom-browser",qs);const{shellTheme:I,ruler:t,genes:e,sequence:C,...i}=g;if(I&&!i.theme){const A=ys(I);A&&(i.theme=A)}const B=document.createElement("loom-browser");I&&B.setAttribute("theme",I),A.appendChild(B);const Q=B.initialize(i);return!1!==t&&Q.addRuler(),!1!==e&&Q.addGeneTrack({maxTrackHeight:150}),!0===C&&Q.addSequenceTrack(),B},A.createTrackFromConfig=Co,A.createTrackFromSession=Bo,A.createTwoBitSequenceProvider=nB,A.createWorkerAuthFetch=function(A,g){return async(I,t)=>{const e=await A(I,t);if(401!==e.status&&403!==e.status)return e;const C="string"==typeof I?I:I instanceof URL?I.toString():I.url,i=await g(C);if(!i)return e;const B=Q(i);return B?B(I,t):e}},A.darkRenderTheme=ws,A.darkThemeValues=OC,A.dataSourceCacheKey=Ho,A.decodeBed=Qe,A.decodeBedGraph=ae,A.decodeBedpe=Te,A.decodeBroadPeak=oe,A.decodeGFF3=Re,A.decodeGFFAttribute=Fe,A.decodeGTF=Ue,A.decodeGappedPeak=Ee,A.decodeGenePred=jg,A.decodeGenePredExt=Xg,A.decodeInteract=Oe,A.decodeNarrowPeak=se,A.decodeRefGeneJson=$g,A.decodeRefflat=re,A.defaultCanvasProvider=S,A.defaultNucleotideColors=Di,A.defaultRenderTheme=ZC,A.drawLetterGlyph=yi,A.encodeGCSObject=l,A.fetchBigWigFeatures=tg,A.fetchBigWigWGFeatures=eg,A.fetchCytobands=kB,A.fetchFastaChromSizes=yB,A.fetchFastaSequenceNames=async function(A,g,I){return uB(A,null!=g?g:A+".fai",void 0,I).getSequenceNames()},A.fetchGeneFeatures=gI,A.fetchGtxFeatures=async function(A,g,I,t={}){var e;const C=Hg(A,t.fetchImpl);await C.init(t.signal);const i=C.resolveExperimentIndex(g);if(void 0===i)throw new Error(`Unknown experiment: ${g}`);return null!==(e=(await C.readFeatures(I.chr,I.start,I.end,[i],t.bpPerPixel,t.signal)).get(i))&&void 0!==e?e:[]},A.fetchGtxMultiFeatures=async function(A,g,I,t={}){var e;const C=Hg(A,t.fetchImpl);await C.init(t.signal);const i=new Map,B=[];for(const A of g){const g=C.resolveExperimentIndex(A);if(void 0===g)throw new Error(`Unknown experiment: ${A}`);i.set(A,g),B.push(g)}const Q=await C.readFeatures(I.chr,I.start,I.end,B,t.bpPerPixel,t.signal),o=new Map;for(const[A,g]of i)o.set(A,null!==(e=Q.get(g))&&void 0!==e?e:[]);return o},A.fetchGtxWGFeatures=qg,A.fetchSequence=eB,A.fetchTwoBitChromSizes=hB,A.fetchTwoBitSequenceNames=async function(A,g){return EB(A,g).getSequenceNames()},A.findUTRs=Wg,A.fixBedPE=We,A.formatBpLength=ag,A.formatLocus=Eg,A.fromIgvSession=function(A){const g=Array.isArray(A.locus)?A.locus[0]:A.locus,I=g?sg(g):null;if(!I)throw new Error(`Cannot parse locus from igv session: ${g}`);const t=[];if(A.tracks)for(const g of A.tracks){const A=Eo(g);A&&t.push(A)}return{version:io,locus:I,tracks:t}},A.generateCSSVariableBlock=VC,A.generateFrameId=pi,A.generateROIId=vo,A.genomeToChromCoord=hC,A.getChromLength=function(A,g){return null==g?void 0:g[A]},A.getCodingEnd=Vg,A.getCodingLength=Zg,A.getCodingStart=Og,A.getDecoder=Ve,A.getDriveDownloadURL=d,A.getGoogleDriveFileID=D,A.getKnownGenome=function(A){return null==JB?void 0:JB.get(A)},A.getKnownGenomes=function(){return null!=JB?JB:new Map},A.getLogLevel=function(){return NC},A.getThemeCSS=Gs,A.getTrackCreator=Io,A.hg38ChromSizes=lC,A.hg38Genome=UB,A.inferFormatFromPath=eC,A.inferIndexURL=QC,A.inferTrackType=oC,A.initializeGenomeRegistry=bB,A.isBinaryFormat=iC,A.isCoding=Se,A.isExon=ye,A.isGoogleDriveURL=a,A.isGoogleStorageSigned=r,A.isGoogleStorageURL=E,A.isGoogleURL=s,A.isHiccups=Pe,A.isIntron=fe,A.isKnownDataSourceType=qB,A.isLikelyIndexed=BC,A.isMainChromosome=EC,A.isTranscript=ue,A.isTranscriptPart=we,A.isUTR=ke,A.isValidHGVS=Fo,A.isWholeGenomeView=og,A.isZoomAware=LC,A.knownFileExtensions=tC,A.knownTrackTypes=to,A.lineWigConfig={graphType:"line"},A.mainChromosomeNames=aC,A.mainThreadProvider=wC,A.matchesSelector=yo,A.mergeThemeFromCSS=Qi,A.modernRenderTheme=us,A.modernThemeCSS=Ss,A.modernThemeValues=PC,A.normalizeWigGroupRawArrays=NQ,A.numericDataMenuItems=G,A.packFeatures=JC,A.parseBucketName=h,A.parseChromSizes=cC,A.parseColorString=Pg,A.parseCytobandLine=fB,A.parseCytobands=SB,A.parseFeatures=je,A.parseGFFAttributes=Ne,A.parseHeader=ze,A.parseLocus=sg,A.parseSearchResults=Go,A.parseStrand=zg,A.peakPopupData=oQ,A.positionString=eQ,A.prettyPrintNumber=ci,A.recalcBpPerPixel=Ui,A.registerTrackCreator=Ao,A.registerTypeAlias=go,A.renderAnnotationTrack=_C,A.renderDOMBrowserSVG=ns,A.renderDynSeqFeature=fi,A.renderIdeogram=WQ,A.renderInteractionTrack=$B,A.renderPeakOverlay=BQ,A.renderQuantitativeAxis=di,A.renderROIOverlays=Ki,A.renderRulerTrack=ri,A.renderSequenceTrack=ZB,A.renderTrackNameLabel=MC,A.renderViewportIndicator=OQ,A.renderWholeGenomeRuler=ni,A.renderWigTrack=Gi,A.resolveAnnotationConfig=jC,A.resolveDataSourceConfig=_B,A.resolveGenomeConfig=vB,A.resolveIdeogramConfig=Ci,A.resolveInteractionConfig=gi,A.resolvePeakOverlayConfig=Ii,A.resolveRulerConfig=$C,A.resolveSequenceConfig=Ai,A.resolveTheme=zC,A.resolveThemeFromCSSVariables=Bi,A.resolveToken=g,A.resolveWigConfig=XC,A.resolveWigGroupConfig=ei,A.reverseComplementSequence=function(A){var g;let I="",t=A.length;for(;t-- >0;){const e=A[t];I+=null!==(g=TB.get(e))&&void 0!==g?g:e}return I},A.roiContextMenuItems=F,A.searchHGVS=No,A.searchWebService=ko,A.selectTracks=fo,A.setLogLevel=function(A){NC=A},A.summarizeWigData=ig,A.svgToPNG=hs,A.toIgvSession=function(A){const g={locus:Eg(A.locus),tracks:[]};for(const I of A.tracks){const A=ao(I);A&&g.tracks.push(A)}return g},A.toTrackSelector=gs,A.translateGoogleCloudURL=n,A.translateSequence=OB,A.translationDict=PB,A.triggerDownload=cs,A.warmWigConfig={color:"#E8615D",altColor:"#5D8DE8",overflowColor:"#9B59B6"},A.wildcardMatch=e,A.wildcardToRegExp=t,Object.defineProperty(A,"__esModule",{value:!0})});
1
+ !function(A,g){"object"==typeof exports&&"undefined"!=typeof module?g(exports):"function"==typeof define&&define.amd?define(["exports"],g):g((A="undefined"!=typeof globalThis?globalThis:A||self).loom={})}(this,function(A){"use strict";async function g(A){return"string"==typeof A?A:A()}function I(A){return A.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&")}function t(A){return new RegExp("^"+A.split(/\*+/).map(I).join(".*")+"$")}function e(A,g){return t(A).test(g)}class C{constructor(A){var g;if(this.hostTokens=new Map,this.hostHeaders=new Map,(null==A?void 0:A.oauthToken)&&(null==A?void 0:A.basicAuth))throw new Error("CredentialStore: oauthToken and basicAuth are mutually exclusive. Use AuthProviderChain for mixed strategies.");this.globalToken=null==A?void 0:A.oauthToken,this.basicAuth=null==A?void 0:A.basicAuth,this.apiKey=null==A?void 0:A.apiKey,this.globalHeaders=(null==A?void 0:A.headers)?{...A.headers}:{},this.withCredentials=null!==(g=null==A?void 0:A.withCredentials)&&void 0!==g&&g}setOauthToken(A,g){g?this.hostTokens.set(g,A):this.globalToken=A}setBasicAuth(A){this.basicAuth=A}setApiKey(A){this.apiKey=A}setHeaders(A,g){var I;g?this.hostHeaders.set(g,{...null!==(I=this.hostHeaders.get(g))&&void 0!==I?I:{},...A}):Object.assign(this.globalHeaders,A)}async getCredentials(A){var I;const t=function(A){try{return new URL(A).host}catch(A){return}}(A),e={};let C=!1;const i=null!==(I=t?this.findMatchingValue(this.hostTokens,t):void 0)&&void 0!==I?I:this.globalToken;if(i?(e.Authorization=`Bearer ${await g(i)}`,e["Cache-Control"]="no-cache",C=!0):this.basicAuth&&(e.Authorization=`Basic ${btoa(`${this.basicAuth.username}:${this.basicAuth.password}`)}`,C=!0),Object.keys(this.globalHeaders).length>0&&(Object.assign(e,this.globalHeaders),C=!0),t){const A=this.findMatchingValue(this.hostHeaders,t);A&&(Object.assign(e,A),C=!0)}if(this.apiKey&&(e["X-API-Key"]=this.apiKey,C=!0),C)return{headers:e,withCredentials:this.withCredentials||void 0}}findMatchingValue(A,g){for(const[I,t]of A)if(!I.includes("*")&&I===g)return t;for(const[I,t]of A)if(I.includes("*")&&e(I,g))return t}}function i(A,g,I){const t=null==g?void 0:g.headers;let e;if(t instanceof Headers)e={...I.headers},t.forEach((A,g)=>{e[g]=A});else if(Array.isArray(t)){e={...I.headers};for(const[A,g]of t)e[A]=g}else e={...I.headers,...t};let C=A;return I.resolvedUrl&&(C="string"==typeof A?I.resolvedUrl:A instanceof URL?new URL(I.resolvedUrl):new Request(I.resolvedUrl,A)),{fetchTarget:C,fetchInit:{...g,headers:e,credentials:I.withCredentials?"include":null==g?void 0:g.credentials}}}function B(A,g){return async(I,t)=>{const e="string"==typeof I?I:I instanceof URL?I.toString():I.url,C=await A.getCredentials(e);if(!C)return globalThis.fetch(I,t);const{fetchTarget:B,fetchInit:Q}=i(I,t,C),o=await globalThis.fetch(B,Q);if((401===o.status||403===o.status)&&(null==g?void 0:g.onAuthChallenge)){if(await g.onAuthChallenge(e,o)){const g=await A.getCredentials(e);if(!g)return o;const{fetchTarget:C,fetchInit:B}=i(I,t,g);return globalThis.fetch(C,B)}}return o}}function Q(A){if(!A.oauthToken&&!A.headers&&!A.withCredentials)return;return B(new C({oauthToken:A.oauthToken,headers:A.headers,withCredentials:A.withCredentials}))}function o(A){return"match"in A&&"provider"in A}function s(A){return A.includes("googleapis")&&!A.includes("urlshortener")||E(A)||a(A)}function E(A){return A.startsWith("gs://")||A.startsWith("https://www.googleapis.com/storage")||A.startsWith("https://storage.cloud.google.com")||A.startsWith("https://storage.googleapis.com")}function a(A){return A.indexOf("drive.google.com")>=0||A.indexOf("www.googleapis.com/drive")>0}function r(A){return A.indexOf("X-Goog-Signature")>-1}function n(A){let{bucket:g,object:I}=h(A);I=l(I);const t=A.indexOf("?");return`https://storage.googleapis.com/storage/v1/b/${g}/o/${I}${t>0?A.substring(t)+"&alt=media":"?alt=media"}`}function h(A){let g,I;if(A.startsWith("gs://")){const t=A.indexOf("/",5);if(t>=0){g=A.substring(5,t);const e=A.indexOf("?");I=e<0?A.substring(t+1):A.substring(t+1,e)}}else if(A.startsWith("https://storage.googleapis.com")||A.startsWith("https://storage.cloud.google.com")){const t=A.indexOf("/v1/b/",8);if(t>0){const e=A.indexOf("/o/",t);if(e>0){const C=A.indexOf("?",e);g=A.substring(t+6,e),I=C>0?A.substring(e+3,C):A.substring(e+3)}}else{const t=A.indexOf("/",8),e=A.indexOf("/",t+1),C=A.indexOf("?",e);e>0&&(g=A.substring(t+1,e),I=C<0?A.substring(e+1):A.substring(e+1,C))}}else if(A.startsWith("https://www.googleapis.com/storage/v1/b")){const t=A.indexOf("/v1/b/",8),e=A.indexOf("/o/",t);if(e>0){const C=A.indexOf("?",e);g=A.substring(t+6,e),I=C>0?A.substring(e+3,C):A.substring(e+3)}}if(g&&I)return{bucket:g,object:I};throw new Error(`Unrecognized Google Storage URI: ${A}`)}const c=new Map([["!","%21"],["#","%23"],["$","%24"],["%","%25"],["&","%26"],["'","%27"],["(","%28"],[")","%29"],["*","%2A"],["+","%2B"],[",","%2C"],["/","%2F"],[":","%3A"],[";","%3B"],["=","%3D"],["?","%3F"],["@","%40"],["[","%5B"],["]","%5D"],[" ","%20"]]);function l(A){let g="";for(const I of A){const A=c.get(I);g+=null!=A?A:I}return g}function d(A){const g=D(A);return g?`https://www.googleapis.com/drive/v3/files/${g}?alt=media&supportsTeamDrives=true`:A}function D(A){if(A.includes("/open?id=")){const g=A.indexOf("/open?id=")+9,I=A.indexOf("&");if(g>0&&I>g)return A.substring(g,I);if(g>0)return A.substring(g)}else{if(A.includes("/file/d/")){const g=A.indexOf("/file/d/")+8,I=A.lastIndexOf("/");return A.substring(g,I)}if(A.startsWith("https://www.googleapis.com/drive")){let g=A.indexOf("/files/");const I=A.indexOf("?");if(g>0)return g+=7,I>0?A.substring(g,I):A.substring(g)}}throw new Error(`Unknown Google Drive URL format: ${A}`)}function u(A){return!E(A)||r(A)||A.includes("/storage/v1/b/")?A:n(A)}function w(A,g){if(A.includes("key="))return A;const I=A.includes("?")?"&":"?";return`${A}${I}key=${g}`}class y{constructor(){this._initialized=!1}init(A){var g,I,t;this._config=A;const e=null===(I=null===(g=globalThis.google)||void 0===g?void 0:g.accounts)||void 0===I?void 0:I.oauth2;if(!(null==e?void 0:e.initTokenClient))throw new Error("Google Identity Services library not loaded. Include the GIS script tag.");this._tokenClient=e.initTokenClient({client_id:A.clientId,scope:null!==(t=A.scope)&&void 0!==t?t:"https://www.googleapis.com/auth/userinfo.profile",hint:A.hint,hosted_domain:A.hostedDomain,callback:A=>{var g,I,t;if(A.error)null===(g=this._pendingReject)||void 0===g||g.call(this,new Error(`Google auth error: ${A.error}`));else{const g=null!==(I=A.expires_in)&&void 0!==I?I:3600;this._tokenResponse={access_token:A.access_token,expires_at:Date.now()+1e3*g},null===(t=this._pendingResolve)||void 0===t||t.call(this,A.access_token)}this._pendingResolve=void 0,this._pendingReject=void 0}}),this._initialized=!0}get config(){return this._config}isInitialized(){return this._initialized}getAccessToken(A){if(!this._tokenClient)throw new Error("GoogleAuthManager not initialized. Call init() first.");const g=this.getCurrentAccessToken();return g?Promise.resolve(g):new Promise((g,I)=>{this._pendingResolve=g,this._pendingReject=I,this._tokenClient.requestAccessToken(A?{scope:A}:void 0)})}getCurrentAccessToken(){if(this._tokenResponse){if(!(Date.now()>=this._tokenResponse.expires_at))return this._tokenResponse.access_token;this._tokenResponse=void 0}}signOut(){this._tokenResponse=void 0}}class f{createCanvas(A,g){const I=document.createElement("canvas");I.width=A,I.height=g;const t=I.getContext("2d");return{canvas:I,ctx:t}}get devicePixelRatio(){return"undefined"!=typeof window&&window.devicePixelRatio||1}}const S=new f;function k(A,g){return[{label:"Set track height",action:async()=>{const I=await g.promptInput("Track height (px)",A.height);if(null!==I){const t=parseInt(I,10);t>0&&!isNaN(t)&&g.setTrackHeight(A,t)}}},{label:"Remove track",action:()=>g.removeTrack(A)}]}function G(A,g){const I=[];return I.push({label:"Set data range",action:async()=>{const I=await g("Minimum",A.dataRange.min);if(null===I)return;const t=await g("Maximum",A.dataRange.max);if(null===t)return;const e=parseFloat(I),C=parseFloat(t);!isNaN(e)&&!isNaN(C)&&e<C&&A.setDataRange(e,C)}}),void 0!==A.logScale&&A.setLogScale&&I.push({label:"Log scale",type:"checkbox",checked:A.logScale,action:()=>A.setLogScale(!A.logScale)}),I.push({label:"Autoscale",type:"checkbox",checked:A.autoscale,action:()=>A.setAutoscale(!A.autoscale)}),I}function F(A,g){return[{label:"Edit name...",action:async()=>{var I;const t=await g.promptInput("ROI name",null!==(I=A.name)&&void 0!==I?I:"");null!==t&&g.updateROI(A.id,{name:t})}},{label:"Edit description...",action:async()=>{var I;const t=await g.promptInput("Description",null!==(I=A.description)&&void 0!==I?I:"");null!==t&&g.updateROI(A.id,{description:t})}},{label:"Set color...",action:async()=>{var I;const t=await g.promptInput("Color (CSS)",null!==(I=A.color)&&void 0!==I?I:"rgba(68, 134, 247, 0.15)");null!==t&&g.updateROI(A.id,{color:t})}},{label:"",type:"separator"},{label:"Go to region",action:()=>g.goToRegion({chr:A.chr,start:A.start,end:A.end})},{label:"Remove",action:()=>g.removeROI(A.id)}]}const N=BigInt(32);"getBigInt64"in DataView||(DataView.prototype.getBigInt64=function(A,g){return function(A,g,I){const t=Number(!!I),e=Number(!I);return BigInt(A.getInt32(g,I)*e+A.getInt32(g+4,I)*t)<<N|BigInt(A.getUint32(g,I)*t+A.getUint32(g+4,I)*e)}(this,A,g)}),"getBigUint64"in DataView||(DataView.prototype.getBigUint64=function(A,g){return function(A,g,I){const t=A.getUint32(g,I),e=A.getUint32(g+4,I),C=Number(!!I),i=Number(!I);return BigInt(t*i+e*C)<<N|BigInt(t*C+e*i)}(this,A,g)});class m{constructor(A,g={}){this.url=A,this.baseHeaders=g.headers??{},this.baseOverrides=g.overrides??{},this.fetchImplementation=g.fetch??((A,g)=>globalThis.fetch(A,g))}async fetch(A,g){const I=g=>new Error(`${function(A){return("object"==typeof A&&null!==A&&"message"in A&&"string"==typeof A.message?A.message:`${A}`).replace(/\.$/,"")}(g)} fetching ${A}`,{cause:g});let t;try{t=await this.fetchImplementation(A,g)}catch(e){if(!`${e}`.includes("Failed to fetch"))throw I(e);console.warn(`generic-filehandle: refetching ${A} to attempt to work around chrome CORS header caching bug`);try{t=await this.fetchImplementation(A,{...g,cache:"reload"})}catch(A){throw I(A)}}return t}async read(A,g,I={}){if(0===A)return new Uint8Array(0);if(Number.isNaN(A)||Number.isNaN(g))throw new TypeError(`read() called with NaN length or position (length=${A}, position=${g}). The index file may be corrupt.`);const{headers:t={},signal:e,overrides:C={}}=I;t.range=`bytes=${g}-${g+A-1}`;const i=await this.fetch(this.url,{...this.baseOverrides,...C,headers:{...this.baseHeaders,...t},method:"GET",redirect:"follow",mode:"cors",signal:e});if(!i.ok)throw new Error(`HTTP ${i.status} fetching ${this.url}`);if(200===i.status&&0===g||206===i.status){const g=i.headers.get("content-range"),I=/\/(\d+)$/.exec(g??"");I?.[1]&&(this._stat={size:parseInt(I[1],10)});const t=i.bytes?await i.bytes():new Uint8Array(await i.arrayBuffer());return t.byteLength<=A?t:t.subarray(0,A)}throw new Error(200===i.status?`${this.url} fetch returned status 200, expected 206`:`HTTP ${i.status} fetching ${this.url}`)}async readFile(A={}){const g="string"==typeof A?A:A.encoding,I="string"==typeof A?{}:A,{headers:t={},signal:e,overrides:C={}}=I,i=await this.fetch(this.url,{...this.baseOverrides,...C,headers:{...this.baseHeaders,...t},method:"GET",redirect:"follow",mode:"cors",signal:e});if(!i.ok)throw new Error(`HTTP ${i.status} fetching ${this.url}`);if("utf8"===g)return i.text();if(g)throw new Error(`unsupported encoding: ${g}`);return i.bytes?i.bytes():new Uint8Array(await i.arrayBuffer())}async stat(){if(!this._stat&&(await this.read(10,0),!this._stat))throw new Error(`unable to determine size of file at ${this.url}`);return this._stat}close(){return Promise.resolve()}}class p{readFile(){throw new Error("unimplemented")}read(){throw new Error("unimplemented")}close(){throw new Error("unimplemented")}}class R{}class U{constructor(){this.signals=new Set,this.abortController=new AbortController}addSignal(A=new R){if(this.signal.aborted)throw new Error("cannot add a signal, already aborted!");this.signals.add(A),A.aborted?this.handleAborted(A):"function"==typeof A.addEventListener&&A.addEventListener("abort",()=>{this.handleAborted(A)})}handleAborted(A){this.signals.delete(A),0===this.signals.size&&this.abortController.abort()}get signal(){return this.abortController.signal}abort(){this.abortController.abort()}}class M{constructor(){this.callbacks=new Set}addCallback(A=()=>{}){this.callbacks.add(A),this.currentMessage&&A(this.currentMessage)}callback(A){this.currentMessage=A;for(const g of this.callbacks)g(A)}}class L{constructor({fill:A,cache:g}){if("function"!=typeof A)throw new TypeError("must pass a fill function");if("object"!=typeof g)throw new TypeError("must pass a cache object");if("function"!=typeof g.get||"function"!=typeof g.set||"function"!=typeof g.delete)throw new TypeError("cache must implement get(key), set(key, val), and and delete(key)");this.cache=g,this.fillCallback=A}static isAbortException(A){return"AbortError"===A.name||"ERR_ABORTED"===A.code||"AbortError: aborted"===A.message||"Error: aborted"===A.message}evict(A,g){this.cache.get(A)===g&&this.cache.delete(A)}fill(A,g,I,t){const e=new U,C=new M;C.addCallback(t);const i={aborter:e,promise:this.fillCallback(g,e.signal,A=>{C.callback(A)}),settled:!1,statusReporter:C,get aborted(){return this.aborter.signal.aborted}};i.aborter.addSignal(I),i.aborter.signal.addEventListener("abort",()=>{i.settled||this.evict(A,i)}),i.promise.then(()=>{i.settled=!0},()=>{i.settled=!0,this.evict(A,i)}).catch(A=>{throw console.error(A),A}),this.cache.set(A,i)}static checkSinglePromise(A,g){function I(){if(g?.aborted)throw Object.assign(new Error("aborted"),{code:"ERR_ABORTED"})}return A.then(A=>(I(),A),A=>{throw I(),A})}has(A){return this.cache.has(A)}get(A,g,I,t){if(!I&&g instanceof AbortSignal)throw new TypeError("second get argument appears to be an AbortSignal, perhaps you meant to pass `null` for the fill data?");const e=this.cache.get(A);return e?e.aborted&&!e.settled?(this.evict(A,e),this.get(A,g,I,t)):e.settled?e.promise:(e.aborter.addSignal(I),e.statusReporter.addCallback(t),L.checkSinglePromise(e.promise,I)):(this.fill(A,g,I,t),L.checkSinglePromise(this.cache.get(A).promise,I))}delete(A){const g=this.cache.get(A);g&&(g.settled||g.aborter.abort(),this.cache.delete(A))}clear(){const A=this.cache.keys();let g=0;for(let I=A.next();!I.done;I=A.next())this.delete(I.value),g+=1;return g}}var J,K,b,v,Y,x,H,q,_,T,W,P,O,V,Z,z=function(A,g,I,t,e){if("m"===t)throw new TypeError("Private method is not writable");if("a"===t&&!e)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof g?A!==g||!e:!g.has(A))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===t?e.call(A,I):e?e.value=I:g.set(A,I),I},j=function(A,g,I,t){if("a"===I&&!t)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof g?A!==g||!t:!g.has(A))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===I?t:"a"===I?t.call(A):t?t.value:g.get(A)};class X extends Map{constructor(A={}){if(super(),J.add(this),K.set(this,0),b.set(this,new Map),v.set(this,new Map),Y.set(this,void 0),x.set(this,void 0),H.set(this,void 0),!(A.maxSize&&A.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof A.maxAge&&0===A.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");z(this,Y,A.maxSize,"f"),z(this,x,A.maxAge||Number.POSITIVE_INFINITY,"f"),z(this,H,A.onEviction,"f")}get __oldCache(){return j(this,v,"f")}get(A){if(j(this,b,"f").has(A)){const g=j(this,b,"f").get(A);return j(this,J,"m",W).call(this,A,g)}if(j(this,v,"f").has(A)){const g=j(this,v,"f").get(A);if(!j(this,J,"m",_).call(this,A,g))return j(this,J,"m",V).call(this,A,g),g.value}}set(A,g,{maxAge:I=j(this,x,"f")}={}){const t="number"==typeof I&&I!==Number.POSITIVE_INFINITY?Date.now()+I:void 0;return j(this,b,"f").has(A)?j(this,b,"f").set(A,{value:g,expiry:t}):j(this,J,"m",O).call(this,A,{value:g,expiry:t}),this}has(A){return j(this,b,"f").has(A)?!j(this,J,"m",_).call(this,A,j(this,b,"f").get(A)):!!j(this,v,"f").has(A)&&!j(this,J,"m",_).call(this,A,j(this,v,"f").get(A))}peek(A){return j(this,b,"f").has(A)?j(this,J,"m",P).call(this,A,j(this,b,"f")):j(this,v,"f").has(A)?j(this,J,"m",P).call(this,A,j(this,v,"f")):void 0}expiresIn(A){const g=j(this,b,"f").get(A)??j(this,v,"f").get(A);if(g)return g.expiry?g.expiry-Date.now():Number.POSITIVE_INFINITY}delete(A){var g;const I=j(this,b,"f").delete(A);return I&&z(this,K,(g=j(this,K,"f"),--g),"f"),j(this,v,"f").delete(A)||I}clear(){j(this,b,"f").clear(),j(this,v,"f").clear(),z(this,K,0,"f")}resize(A){if(!(A&&A>0))throw new TypeError("`maxSize` must be a number greater than 0");const g=[...j(this,J,"m",Z).call(this)],I=g.length-A;I<0?(z(this,b,new Map(g),"f"),z(this,v,new Map,"f"),z(this,K,g.length,"f")):(I>0&&j(this,J,"m",q).call(this,g.slice(0,I)),z(this,v,new Map(g.slice(I)),"f"),z(this,b,new Map,"f"),z(this,K,0,"f")),z(this,Y,A,"f")}evict(A=1){const g=A;if(!g||g<=0)return;const I=[...j(this,J,"m",Z).call(this)],t=Math.trunc(Math.min(g,Math.max(I.length-1,0)));t<=0||(j(this,J,"m",q).call(this,I.slice(0,t)),z(this,v,new Map(I.slice(t)),"f"),z(this,b,new Map,"f"),z(this,K,0,"f"))}*keys(){for(const[A]of this)yield A}*values(){for(const[,A]of this)yield A}*[(K=new WeakMap,b=new WeakMap,v=new WeakMap,Y=new WeakMap,x=new WeakMap,H=new WeakMap,J=new WeakSet,q=function(A){if("function"==typeof j(this,H,"f"))for(const[g,I]of A)j(this,H,"f").call(this,g,I.value)},_=function(A,g){return"number"==typeof g.expiry&&g.expiry<=Date.now()&&("function"==typeof j(this,H,"f")&&j(this,H,"f").call(this,A,g.value),this.delete(A))},T=function(A,g){if(!j(this,J,"m",_).call(this,A,g))return g.value},W=function(A,g){return g.expiry?j(this,J,"m",T).call(this,A,g):g.value},P=function(A,g){const I=g.get(A);return j(this,J,"m",W).call(this,A,I)},O=function(A,g){var I;j(this,b,"f").set(A,g),z(this,K,(I=j(this,K,"f"),++I),"f"),j(this,K,"f")>=j(this,Y,"f")&&(z(this,K,0,"f"),j(this,J,"m",q).call(this,j(this,v,"f")),z(this,v,j(this,b,"f"),"f"),z(this,b,new Map,"f"))},V=function(A,g){j(this,v,"f").delete(A),j(this,J,"m",O).call(this,A,g)},Z=function*(){for(const A of j(this,v,"f")){const[g,I]=A;if(!j(this,b,"f").has(g)){j(this,J,"m",_).call(this,g,I)||(yield A)}}for(const A of j(this,b,"f")){const[g,I]=A;j(this,J,"m",_).call(this,g,I)||(yield A)}},Symbol.iterator)](){for(const A of j(this,b,"f")){const[g,I]=A;j(this,J,"m",_).call(this,g,I)||(yield[g,I.value])}for(const A of j(this,v,"f")){const[g,I]=A;if(!j(this,b,"f").has(g)){j(this,J,"m",_).call(this,g,I)||(yield[g,I.value])}}}*entriesDescending(){let A=[...j(this,b,"f")];for(let g=A.length-1;g>=0;--g){const I=A[g],[t,e]=I;j(this,J,"m",_).call(this,t,e)||(yield[t,e.value])}A=[...j(this,v,"f")];for(let g=A.length-1;g>=0;--g){const I=A[g],[t,e]=I;if(!j(this,b,"f").has(t)){j(this,J,"m",_).call(this,t,e)||(yield[t,e.value])}}}*entriesAscending(){for(const[A,g]of j(this,J,"m",Z).call(this))yield[A,g.value]}get size(){if(!j(this,K,"f"))return j(this,v,"f").size;let A=0;for(const g of j(this,v,"f").keys())j(this,b,"f").has(g)||A++;return Math.min(j(this,K,"f")+A,j(this,Y,"f"))}get maxSize(){return j(this,Y,"f")}get maxAge(){return j(this,x,"f")}entries(){return this.entriesAscending()}forEach(A,g=this){for(const[I,t]of this.entriesAscending())A.call(g,t,I,this)}get[Symbol.toStringTag](){return"QuickLRU"}toString(){return`QuickLRU(${this.size}/${this.maxSize})`}[Symbol.for("nodejs.util.inspect.custom")](){return this.toString()}}function $(A){const g=[...A].sort((A,g)=>A.min!==g.min?A.min-g.min:A.max-g.max),I=[];let t=g[0];for(let A=1;A<g.length;A++){const e=g[A];e.min>t.max+1?(I.push(t),t=e):e.max>t.max&&(t={min:t.min,max:e.max})}return I.push(t),I}var AA={d:(A,g)=>{for(var I in g)AA.o(g,I)&&!AA.o(A,I)&&Object.defineProperty(A,I,{enumerable:!0,get:g[I]})},o:(A,g)=>Object.prototype.hasOwnProperty.call(A,g),r:A=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(A,"__esModule",{value:!0})}},gA={};AA.r(gA),AA.d(gA,{__wbg_Error_83742b46f01ce22d:()=>oA,__wbg_set_wasm:()=>GA,decompress_and_parse_bigwig:()=>IA,decompress_and_parse_summary:()=>tA,inflate_raw:()=>eA,inflate_raw_batch:()=>CA,inflate_raw_unknown_size:()=>iA,parse_bigwig_block:()=>BA,parse_summary_block:()=>QA});function IA(A,g,I,t,e,C){try{const s=SA.__wbindgen_add_to_stack_pointer(-16),E=DA(A,SA.__wbindgen_export),a=kA,r=dA(g,SA.__wbindgen_export),n=kA,h=dA(I,SA.__wbindgen_export),c=kA;SA.decompress_and_parse_bigwig(s,E,a,r,n,h,c,t,e,C);var i=aA().getInt32(s+0,!0),B=aA().getInt32(s+4,!0),Q=aA().getInt32(s+8,!0);if(aA().getInt32(s+12,!0))throw uA(Q);var o=sA(i,B).slice();return SA.__wbindgen_export2(i,1*B,1),o}finally{SA.__wbindgen_add_to_stack_pointer(16)}}function tA(A,g,I,t,e,C,i){try{const E=SA.__wbindgen_add_to_stack_pointer(-16),a=DA(A,SA.__wbindgen_export),r=kA,n=dA(g,SA.__wbindgen_export),h=kA,c=dA(I,SA.__wbindgen_export),l=kA;SA.decompress_and_parse_summary(E,a,r,n,h,c,l,t,e,C,i);var B=aA().getInt32(E+0,!0),Q=aA().getInt32(E+4,!0),o=aA().getInt32(E+8,!0);if(aA().getInt32(E+12,!0))throw uA(o);var s=sA(B,Q).slice();return SA.__wbindgen_export2(B,1*Q,1),s}finally{SA.__wbindgen_add_to_stack_pointer(16)}}function eA(A,g){try{const i=SA.__wbindgen_add_to_stack_pointer(-16),B=DA(A,SA.__wbindgen_export),Q=kA;SA.inflate_raw(i,B,Q,g);var I=aA().getInt32(i+0,!0),t=aA().getInt32(i+4,!0),e=aA().getInt32(i+8,!0);if(aA().getInt32(i+12,!0))throw uA(e);var C=sA(I,t).slice();return SA.__wbindgen_export2(I,1*t,1),C}finally{SA.__wbindgen_add_to_stack_pointer(16)}}function CA(A,g,I,t){try{const Q=SA.__wbindgen_add_to_stack_pointer(-16),o=DA(A,SA.__wbindgen_export),s=kA,E=dA(g,SA.__wbindgen_export),a=kA,r=dA(I,SA.__wbindgen_export),n=kA;SA.inflate_raw_batch(Q,o,s,E,a,r,n,t);var e=aA().getInt32(Q+0,!0),C=aA().getInt32(Q+4,!0),i=aA().getInt32(Q+8,!0);if(aA().getInt32(Q+12,!0))throw uA(i);var B=sA(e,C).slice();return SA.__wbindgen_export2(e,1*C,1),B}finally{SA.__wbindgen_add_to_stack_pointer(16)}}function iA(A){try{const C=SA.__wbindgen_add_to_stack_pointer(-16),i=DA(A,SA.__wbindgen_export),B=kA;SA.inflate_raw_unknown_size(C,i,B);var g=aA().getInt32(C+0,!0),I=aA().getInt32(C+4,!0),t=aA().getInt32(C+8,!0);if(aA().getInt32(C+12,!0))throw uA(t);var e=sA(g,I).slice();return SA.__wbindgen_export2(g,1*I,1),e}finally{SA.__wbindgen_add_to_stack_pointer(16)}}function BA(A,g,I){try{const i=SA.__wbindgen_add_to_stack_pointer(-16),B=DA(A,SA.__wbindgen_export),Q=kA;SA.parse_bigwig_block(i,B,Q,g,I);var t=aA().getInt32(i+0,!0),e=aA().getInt32(i+4,!0),C=sA(t,e).slice();return SA.__wbindgen_export2(t,1*e,1),C}finally{SA.__wbindgen_add_to_stack_pointer(16)}}function QA(A,g,I,t){try{const B=SA.__wbindgen_add_to_stack_pointer(-16),Q=DA(A,SA.__wbindgen_export),o=kA;SA.parse_summary_block(B,Q,o,g,I,t);var e=aA().getInt32(B+0,!0),C=aA().getInt32(B+4,!0),i=sA(e,C).slice();return SA.__wbindgen_export2(e,1*C,1),i}finally{SA.__wbindgen_add_to_stack_pointer(16)}}function oA(A,g){var I;return function(A){lA===cA.length&&cA.push(cA.length+1);const g=lA;return lA=cA[g],cA[g]=A,g}(Error((I=A,function(A,g){return fA+=g,fA>=yA&&(wA=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),wA.decode(),fA=g),wA.decode(hA().subarray(A,A+g))}(I>>>=0,g))))}function sA(A,g){return A>>>=0,hA().subarray(A/1,A/1+g)}let EA=null;function aA(){return(null===EA||!0===EA.buffer.detached||void 0===EA.buffer.detached&&EA.buffer!==SA.memory.buffer)&&(EA=new DataView(SA.memory.buffer)),EA}let rA=null;let nA=null;function hA(){return null!==nA&&0!==nA.byteLength||(nA=new Uint8Array(SA.memory.buffer)),nA}let cA=new Array(1024).fill(void 0);cA.push(void 0,null,!0,!1);let lA=cA.length;function dA(A,g){const I=g(4*A.length,4)>>>0;return(null!==rA&&0!==rA.byteLength||(rA=new Uint32Array(SA.memory.buffer)),rA).set(A,I/4),kA=A.length,I}function DA(A,g){const I=g(1*A.length,1)>>>0;return hA().set(A,I/1),kA=A.length,I}function uA(A){const g=function(A){return cA[A]}(A);return function(A){A<1028||(cA[A]=lA,lA=A)}(A),g}let wA=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});wA.decode();const yA=2146435072;let fA=0;let SA,kA=0;function GA(A){SA=A}let FA=null,NA=null;async function mA(){return FA||(NA||(NA=(async()=>{const A=await fetch("data:application/wasm;base64,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IGlzIMASIGJ1dCB0aGUgaW5kZXggaXMgwAAScmFuZ2Ugc3RhcnQgaW5kZXggwCIgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggwAAQcmFuZ2UgZW5kIGluZGV4IMAiIG91dCBvZiByYW5nZSBmb3Igc2xpY2Ugb2YgbGVuZ3RoIMAAFmRlY29tcHJlc3Npb24gZmFpbGVkOiDAAMACOiDAAC9ydXN0Yy80YTRlZjQ5M2UzYTE0ODhjNmUzMjE1NzAyMzgwODRiMzg5NDhmNmRiL2xpYnJhcnkvYWxsb2Mvc3JjL2ZtdC5ycwAvcnVzdGMvNGE0ZWY0OTNlM2ExNDg4YzZlMzIxNTcwMjM4MDg0YjM4OTQ4ZjZkYi9saWJyYXJ5L2NvcmUvc3JjL2ZtdC9udW0ucnMAL2hvbWUvY2RpZXNoLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvd2FzbS1iaW5kZ2VuLTAuMi4xMTQvc3JjL2V4dGVybnJlZi5ycwAvcnVzdGMvNGE0ZWY0OTNlM2ExNDg4YzZlMzIxNTcwMjM4MDg0YjM4OTQ4ZjZkYi9saWJyYXJ5L2FsbG9jL3NyYy9yYXdfdmVjL21vZC5ycwAvcnVzdC9kZXBzL2RsbWFsbG9jLTAuMi4xMS9zcmMvZGxtYWxsb2MucnMAL2hvbWUvY2RpZXNoLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbGliZGVmbGF0ZXItMS4yNS4yL3NyYy9saWIucnMAALwCEAAKAAAAbAAAABkAAAC8AhAACgAAAGwAAAAnAAAAvAIQAAoAAABsAAAAOQAAALwCEAAKAAAAbAAAAEsAAAC8AhAACgAAAGAAAAAZAAAAvAIQAAoAAABgAAAAJwAAALwCEAAKAAAAYAAAADkAAAC8AhAACgAAAGAAAABLAAAAvAIQAAoAAABkAAAAGQAAALwCEAAKAAAAZAAAACcAAAC8AhAACgAAAGQAAAA5AAAAvAIQAAoAAABkAAAASwAAALwCEAAKAAAAQAAAAAsAAAC8AhAACgAAAFgAAAALAAAAvAIQAAoAAABJAAAAEwAAALwCEAAKAAAAUwAAACsAAAC8AhAACgAAAE0AAAAPAAAAvAIQAAoAAABKAAAAHAAAALwCEAAKAAAAOQAAAB0AAABkZWNvbXByZXNzaW9uIG91dHB1dCB0b28gbGFyZ2UAALwCEAAKAAAAJgEAABMAAAC8AhAACgAAAC0BAAAdAAAAvAIQAAoAAAAnAQAAHAAAALwCEAAKAAAAoAEAABMAAAC8AhAACgAAAKcBAAAdAAAAvAIQAAoAAAChAQAAHAAAAEJhZERhdGFJbnN1ZmZpY2llbnRTcGFjZYMBEABnAAAAfwAAABEAAACDARAAZwAAAIwAAAARAAAAbGliZGVmbGF0ZV9kZWZsYXRlX2RlY29tcHJlc3MgcmV0dXJuZWQgYW4gdW5rbm93biBlcnJvciB0eXBlOiB0aGlzIGlzIGFuIGludGVybmFsIGJ1ZyB0aGF0ICoqbXVzdCoqIGJlIGZpeGVkZwIQAF8AAAANAQAAFQAAAGxpYmRlZmxhdGVfYWxsb2NfZGVjb21wcmVzc29yIHJldHVybmVkIE5VTEw6IG91dCBvZiBtZW1vcnkAAGcCEABfAAAAnQAAABEAAAAMAAAAAgAAAAMAAAAAAAAAAAAAAAAAAAAQERIACAcJBgoFCwQMAw0CDgEPAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAAAAAAAABAAAAAgAAAAMAAAAEAAEABQABAAcAAgAJAAIADQADABEAAwAZAAQAIQAEADEABQBBAAUAYQAGAIEABgDBAAcAAQEHAIEBCAABAggAAQMJAAEECQABBgoAAQgKAAEMCwABEAsAARgMAAEgDAABMA0AAUANAAFgDQABYA0AAWAAAACAAAABgAAAAoAAAAOAAAAEgAAABYAAAAaAAAAHgAAACIAAAAmAAAAKgAAAC4AAAAyAAAANgAAADoAAAA+AAAAQgAAAEYAAABKAAAATgAAAFIAAABWAAAAWgAAAF4AAABiAAAAZgAAAGoAAABuAAAAcgAAAHYAAAB6AAAAfgAAAIIAAACGAAAAigAAAI4AAACSAAAAlgAAAJoAAACeAAAAogAAAKYAAACqAAAArgAAALIAAAC2AAAAugAAAL4AAADCAAAAxgAAAMoAAADOAAAA0gAAANYAAADaAAAA3gAAAOIAAADmAAAA6gAAAO4AAADyAAAA9gAAAPoAAAD+AAABAgAAAQYAAAEKAAABDgAAARIAAAEWAAABGgAAAR4AAAEiAAABJgAAASoAAAEuAAABMgAAATYAAAE6AAABPgAAAUIAAAFGAAABSgAAAU4AAAFSAAABVgAAAVoAAAFeAAABYgAAAWYAAAFqAAABbgAAAXIAAAF2AAABegAAAX4AAAGCAAABhgAAAYoAAAGOAAABkgAAAZYAAAGaAAABngAAAaIAAAGmAAABqgAAAa4AAAGyAAABtgAAAboAAAG+AAABwgAAAcYAAAHKAAABzgAAAdIAAAHWAAAB2gAAAd4AAAHiAAAB5gAAAeoAAAHuAAAB8gAAAfYAAAH6AAAB/gAAAgIAAAIGAAACCgAAAg4AAAISAAACFgAAAhoAAAIeAAACIgAAAiYAAAIqAAACLgAAAjIAAAI2AAACOgAAAj4AAAJCAAACRgAAAkoAAAJOAAACUgAAAlYAAAJaAAACXgAAAmIAAAJmAAACagAAAm4AAAJyAAACdgAAAnoAAAJ+AAACggAAAoYAAAKKAAACjgAAApIAAAKWAAACmgAAAp4AAAKiAAACpgAAAqoAAAKuAAACsgAAArYAAAK6AAACvgAAAsIAAALGAAACygAAAs4AAALSAAAC1gAAAtoAAALeAAAC4gAAAuYAAALqAAAC7gAAAvIAAAL2AAAC+gAAAv4AAAMCAAADBgAAAwoAAAMOAAADEgAAAxYAAAMaAAADHgAAAyIAAAMmAAADKgAAAy4AAAMyAAADNgAAAzoAAAM+AAADQgAAA0YAAANKAAADTgAAA1IAAANWAAADWgAAA14AAANiAAADZgAAA2oAAANuAAADcgAAA3YAAAN6AAADfgAAA4IAAAOGAAADigAAA44AAAOSAAADlgAAA5oAAAOeAAADogAAA6YAAAOqAAADrgAAA7IAAAO2AAADugAAA74AAAPCAAADxgAAA8oAAAPOAAAD0gAAA9YAAAPaAAAD3gAAA+IAAAPmAAAD6gAAA+4AAAPyAAAD9gAAA/oAAAP+AAKAAAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAQALAAEADQABAA8AAQARAAIAEwACABcAAgAbAAIAHwADACMAAwArAAMAMwADADsABABDAAQAUwAEAGMABABzAAUAgwAFAKMABQDDAAUA4wAAAAIBAAACAQAAAgFtXcvWLFDrY3hBpldxG4u5I8o7SqZ3fJNCY0mvl2+yhAAAAAAIAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAADAAAAAQAAAAKAAAACwAAAAwAAAAAAAAACAAAAAQAAAANAAAADgAAAA8AAAAQAAAAEQAAABAAAAAEAAAAEgAAABMAAAAUAAAACAAAAAAAAAAIAAAABAAAABUAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA+PSBzaXplICsgbWluX292ZXJoZWFkAAA8AhAAKgAAALEEAAAJAAAAYXNzZXJ0aW9uIGZhaWxlZDogcHNpemUgPD0gc2l6ZSArIG1heF9vdmVyaGVhZAAAPAIQACoAAAC3BAAADQAAAAkAAAAMAAAABAAAABYAAABFcnJvcgAAABcAAAAMAAAABAAAABgAAAAZAAAAGgAAAAAAAAAAAAAAAQAAABsAAABhIGZvcm1hdHRpbmcgdHJhaXQgaW1wbGVtZW50YXRpb24gcmV0dXJuZWQgYW4gZXJyb3Igd2hlbiB0aGUgdW5kZXJseWluZyBzdHJlYW0gZGlkIG5vdAAA7gAQAEgAAACKAgAADgAAAGNhcGFjaXR5IG92ZXJmbG93AAAA6wEQAFAAAAAcAAAABQAAADAwMDEwMjAzMDQwNTA2MDcwODA5MTAxMTEyMTMxNDE1MTYxNzE4MTkyMDIxMjIyMzI0MjUyNjI3MjgyOTMwMzEzMjMzMzQzNTM2MzczODM5NDA0MTQyNDM0NDQ1NDY0NzQ4NDk1MDUxNTI1MzU0NTU1NjU3NTg1OTYwNjE2MjYzNjQ2NTY2Njc2ODY5NzA3MTcyNzM3NDc1NzY3Nzc4Nzk4MDgxODI4Mzg0ODU4Njg3ODg4OTkwOTE5MjkzOTQ5NTk2OTc5ODk5NwEQAEsAAABXAgAABQAAAFJlZkNlbGwgYWxyZWFkeSBib3Jyb3dlZABB2JvAAAsEBAAAAAApBG5hbWUBIgFjH19fd2JpbmRnZW5fYWRkX3RvX3N0YWNrX3BvaW50ZXIAPAlwcm9kdWNlcnMBDHByb2Nlc3NlZC1ieQIGd2FscnVzBjAuMjUuMgx3YXNtLWJpbmRnZW4HMC4yLjExNA=="),g=await A.arrayBuffer(),{instance:I}=await WebAssembly.instantiate(g,{"./inflate_wasm_bg.js":gA});return FA=I.exports,GA(FA),FA})()),NA)}async function pA(A,g,I,t,e,C){await mA();return function(A){const g=new DataView(A.buffer,A.byteOffset,A.byteLength).getUint32(0,!0);if(0===g)return{starts:new Int32Array(0),ends:new Int32Array(0),scores:new Float32Array(0)};const I=4+4*g,t=I+4*g;return{starts:new Int32Array(A.buffer,A.byteOffset+4,g),ends:new Int32Array(A.buffer,A.byteOffset+I,g),scores:new Float32Array(A.buffer,A.byteOffset+t,g)}}(IA(A,g,I,t,e,C))}async function RA(A,g,I,t,e,C,i){await mA();return function(A){const g=new DataView(A.buffer,A.byteOffset,A.byteLength).getUint32(0,!0);if(0===g)return{starts:new Int32Array(0),ends:new Int32Array(0),scores:new Float32Array(0),minScores:new Float32Array(0),maxScores:new Float32Array(0)};const I=4+4*g,t=I+4*g,e=t+4*g,C=e+4*g;return{starts:new Int32Array(A.buffer,A.byteOffset+4,g),ends:new Int32Array(A.buffer,A.byteOffset+I,g),scores:new Float32Array(A.buffer,A.byteOffset+t,g),minScores:new Float32Array(A.buffer,A.byteOffset+e,g),maxScores:new Float32Array(A.buffer,A.byteOffset+C,g)}}(tA(A,g,I,t,e,C,i))}async function UA(A,g,I){const t=new Uint32Array(g.length),e=new Uint32Array(g.length);for(let A=0;A<g.length;A++){const I=g[A];t[A]=I.offset,e[A]=I.length}return async function(A,g,I,t){await mA();const e=CA(A,g,I,t),C=new DataView(e.buffer,e.byteOffset,e.byteLength),i=C.getUint32(0,!0),B=4+4*(i+1),Q=new Array(i+1);for(let A=0;A<=i;A++)Q[A]=C.getUint32(4+4*A,!0);return{data:e.subarray(B),offsets:Q}}(A,t,e,I)}async function MA(A,g,I,t,e){const C=new Uint32Array(g.length),i=new Uint32Array(g.length);for(let A=0;A<g.length;A++){const I=g[A];C[A]=I.offset,i[A]=I.length}return pA(A,C,i,I,t,e)}async function LA(A,g,I,t,e,C){const i=new Uint32Array(g.length),B=new Uint32Array(g.length);for(let A=0;A<g.length;A++){const I=g[A];i[A]=I.offset,B[A]=I.length}return RA(A,i,B,I,t,e,C)}function JA(A){A.sort((A,g)=>A.offset-g.offset);const g=[];let I,t;for(const e of A)I&&t&&e.offset-t<=2e3?(I.length=e.offset+e.length-I.offset,I.blocks.push(e),t=e.offset+e.length):(I={blocks:[e],length:e.length,offset:e.offset},g.push(I),t=e.offset+e.length);return g}const KA=new TextDecoder("utf8"),bA=610839776;function vA(A,g,I,t){return A<t&&g>=I}function YA(A,g,I){const t=[];let e=g;const C=new DataView(A.buffer,A.byteOffset,A.length);for(;e<A.byteLength;){const A=C.getUint32(e,!0);e+=4;const g=C.getUint32(e,!0);e+=4;const i=C.getUint32(e,!0);e+=4;const B=C.getUint32(e,!0);e+=4;const Q=C.getFloat32(e,!0);e+=4;const o=C.getFloat32(e,!0);e+=4;const s=C.getFloat32(e,!0);e+=8,(!I||A===I.chrId&&vA(g,i,I.start,I.end))&&t.push({start:g,end:i,maxScore:o,minScore:Q,summary:!0,score:s/(B||1)})}return t}function xA(A,g,I,t){const e=[];let C=g;const i=new DataView(A.buffer,A.byteOffset,A.length);for(;C<A.byteLength;){const g=C,B=i.getUint32(C,!0);C+=4;const Q=i.getInt32(C,!0);C+=4;const o=i.getInt32(C,!0);C+=4;let s=C;for(;s<A.length&&0!==A[s];s++);const E=A.subarray(C,s),a=KA.decode(E);C=s+1,(!t||B===t.chrId&&vA(Q,o,t.start,t.end))&&e.push({start:Q,end:o,rest:a,uniqueId:`bb-${I+g}`})}return e}function HA(A,g,I){const t=A.subarray(g),e=new DataView(t.buffer,t.byteOffset,t.length),C=e.getInt32(4,!0),i=e.getUint32(12,!0),B=e.getUint32(16,!0),Q=e.getUint8(20),o=e.getUint16(22,!0);let s=24;const E=[];switch(Q){case 1:for(let A=0;A<o;A++){const A=e.getInt32(s,!0);s+=4;const g=e.getInt32(s,!0);s+=4;const t=e.getFloat32(s,!0);s+=4,I&&!vA(A,g,I.start,I.end)||E.push({start:A,end:g,score:t})}break;case 2:for(let A=0;A<o;A++){const A=e.getInt32(s,!0);s+=4;const g=e.getFloat32(s,!0);s+=4;const t=A+B;I&&!vA(A,t,I.start,I.end)||E.push({score:g,start:A,end:t})}break;case 3:for(let A=0;A<o;A++){const g=e.getFloat32(s,!0);s+=4;const t=C+A*i,Q=t+B;I&&!vA(t,Q,I.start,I.end)||E.push({score:g,start:t,end:Q})}}return E}function qA(A,g,I){const t=new DataView(A.buffer,A.byteOffset+g,A.length-g),e=t.getInt32(4,!0),C=t.getUint32(12,!0),i=t.getUint32(16,!0),B=t.getUint8(20),Q=t.getUint16(22,!0),o=new Int32Array(Q),s=new Int32Array(Q),E=new Float32Array(Q);if(!I){switch(B){case 1:{let A=24;for(let g=0;g<Q;g++)o[g]=t.getInt32(A,!0),s[g]=t.getInt32(A+4,!0),E[g]=t.getFloat32(A+8,!0),A+=12;return{starts:o,ends:s,scores:E}}case 2:{let A=24;for(let g=0;g<Q;g++){const I=t.getInt32(A,!0);o[g]=I,s[g]=I+i,E[g]=t.getFloat32(A+4,!0),A+=8}return{starts:o,ends:s,scores:E}}case 3:{let A=24;for(let g=0;g<Q;g++){const I=e+g*C;o[g]=I,s[g]=I+i,E[g]=t.getFloat32(A,!0),A+=4}return{starts:o,ends:s,scores:E}}}return{starts:o,ends:s,scores:E}}const a=I.start,r=I.end;let n=0;switch(B){case 1:{let A=24;for(let g=0;g<Q;g++){const g=t.getInt32(A,!0),I=t.getInt32(A+4,!0);g<r&&I>=a&&(o[n]=g,s[n]=I,E[n]=t.getFloat32(A+8,!0),n++),A+=12}break}case 2:{let A=24;for(let g=0;g<Q;g++){const g=t.getInt32(A,!0),I=g+i;g<r&&I>=a&&(o[n]=g,s[n]=I,E[n]=t.getFloat32(A+4,!0),n++),A+=8}break}case 3:{let A=24;for(let g=0;g<Q;g++){const I=e+g*C,B=I+i;I<r&&B>=a&&(o[n]=I,s[n]=B,E[n]=t.getFloat32(A,!0),n++),A+=4}break}}return n<Q?{starts:o.subarray(0,n),ends:s.subarray(0,n),scores:E.subarray(0,n)}:{starts:o,ends:s,scores:E}}class _A{bbi;refsByName;rTreeOffset;uncompressBufSize;blockType;rTreePromise;featureCache=new L({cache:new X({maxSize:1e3}),fill:async({length:A,offset:g},I)=>this.bbi.read(A,g,{signal:I})});constructor(A,g,I,t,e){if(this.bbi=A,this.refsByName=g,this.rTreeOffset=I,this.uncompressBufSize=t,this.blockType=e,!(I>=0))throw new Error("invalid rTreeOffset!")}async _collectBlocks(A,g,I,t){const e=this.refsByName[A];if(void 0===e)return;this.rTreePromise||(this.rTreePromise=this.bbi.read(48,this.rTreeOffset,t));const C=await this.rTreePromise,i=new DataView(C.buffer,C.byteOffset,C.length),B=i.getUint32(0,!0);if(B!==bA)throw new Error(`invalid cirTree magic: 0x${B.toString(16)} (expected 0x${bA.toString(16)}) at offset ${this.rTreeOffset}, file may be corrupt or unsupported`);const Q=4+32*i.getUint32(4,!0),o=(A,t,C,i)=>(A<e||A===e&&t<=I)&&(C>e||C===e&&i>=g),s=[];let E=[this.rTreeOffset+48];for(;E.length>0;){const A=$(E.map(A=>({min:A,max:A+Q}))),g=[];for(const{min:I,max:e}of A){const A=e-I,C=I,i=await this.featureCache.get(`${A}_${C}`,{length:A,offset:C},t?.signal);for(const A of E)if(I<=A&&A<=e){const I=i.subarray(A-C),t=new DataView(I.buffer,I.byteOffset,I.length),e=t.getUint8(0),B=t.getUint16(2,!0);let Q=4;if(1===e)for(let A=0;A<B;A++){const A=t.getUint32(Q,!0),g=t.getUint32(Q+4,!0),I=t.getUint32(Q+8,!0),e=t.getUint32(Q+12,!0),C=Number(t.getBigUint64(Q+16,!0)),i=Number(t.getBigUint64(Q+24,!0));Q+=32,o(A,g,I,e)&&s.push({offset:C,length:i})}else if(0===e)for(let A=0;A<B;A++){const A=t.getUint32(Q,!0),I=t.getUint32(Q+4,!0),e=t.getUint32(Q+8,!0),C=t.getUint32(Q+12,!0),i=Number(t.getBigUint64(Q+16,!0));Q+=24,o(A,I,e,C)&&g.push(i)}}}E=g}return{blocks:s,chrId:e}}async readWigData(A,g,I,t){const e=await this._collectBlocks(A,g,I,t);if(!e)return[];const{blocks:C,chrId:i}=e;return this.readFeatures(C,{...t,request:{chrId:i,start:g,end:I}})}async readWigDataAsArrays(A,g,I,t){const e=await this._collectBlocks(A,g,I,t),C=e?.blocks??[],i=e?{chrId:e.chrId,start:g,end:I}:void 0,B={...t,request:i};return"summary"===this.blockType?this._readSummaryFeaturesAsArrays(C,B):this._readBigWigFeaturesAsArrays(C,B)}async readFeatures(A,g={}){const{blockType:I,uncompressBufSize:t}=this,{signal:e,request:C}=g,i=JA(A),B=[];for(const A of i){const g=await this.bbi.read(A.length,A.offset,{signal:e}),i=A.offset,Q=A.blocks;let o,s;if(t>0){const A=[];for(const g of Q)A.push({offset:g.offset-i,length:g.length});const I=await UA(g,A,t);o=I.data,s=I.offsets}else{o=g,s=[];for(const A of Q)s.push(A.offset-i);s.push(g.length)}for(let A=0;A<Q.length;A++){const g=s[A],t=s[A+1],e=o.subarray(g,t);let i;switch(I){case"summary":i=YA(e,0,C);break;case"bigwig":i=HA(e,0,C);break;case"bigbed":i=xA(e,0,256*Q[A].offset,C);break;default:i=[],console.warn(`Don't know what to do with ${I}`)}for(const A of i)B.push(A)}}return B}async _readBigWigFeaturesAsArrays(A,g={}){const{uncompressBufSize:I}=this,{signal:t,request:e}=g,C=JA(A),i=[],B=[],Q=[];let o=0;for(const A of C){const{length:g,offset:C}=A,s=await this.bbi.read(g,C,{signal:t}),E=A.blocks.map(g=>({offset:g.offset-A.offset,length:g.length}));if(I>0){const A=await MA(s,E,I,e?.start??0,e?.end??0);A.starts.length>0&&(i.push(A.starts),B.push(A.ends),Q.push(A.scores),o+=A.starts.length)}else for(const A of E){const g=qA(s.subarray(A.offset,A.offset+A.length),0,e);g.starts.length>0&&(i.push(g.starts),B.push(g.ends),Q.push(g.scores),o+=g.starts.length)}}if(0===i.length)return{starts:new Int32Array(0),ends:new Int32Array(0),scores:new Float32Array(0),isSummary:!1};if(1===i.length)return{starts:i[0],ends:B[0],scores:Q[0],isSummary:!1};const s=new Int32Array(o),E=new Int32Array(o),a=new Float32Array(o);let r=0;for(let A=0;A<i.length;A++)s.set(i[A],r),E.set(B[A],r),a.set(Q[A],r),r+=i[A].length;return{starts:s,ends:E,scores:a,isSummary:!1}}async _readSummaryFeaturesAsArrays(A,g={}){const{uncompressBufSize:I}=this,{signal:t,request:e}=g,C=JA(A),i=[],B=[],Q=[],o=[],s=[];let E=0;for(const A of C){const{length:g,offset:C}=A,a=await this.bbi.read(g,C,{signal:t}),r=A.blocks.map(g=>({offset:g.offset-A.offset,length:g.length}));if(I>0){const A=await LA(a,r,I,e?.chrId??0,e?.start??0,e?.end??0);A.starts.length>0&&(i.push(A.starts),B.push(A.ends),Q.push(A.scores),o.push(A.minScores),s.push(A.maxScores),E+=A.starts.length)}else for(const A of r){const g=YA(a.subarray(A.offset,A.offset+A.length),0,e);if(g.length>0){const A=new Int32Array(g.length),I=new Int32Array(g.length),t=new Float32Array(g.length),e=new Float32Array(g.length),C=new Float32Array(g.length);for(let i=0;i<g.length;i++){const B=g[i];A[i]=B.start,I[i]=B.end,t[i]=B.score??0,e[i]=B.minScore??0,C[i]=B.maxScore??0}i.push(A),B.push(I),Q.push(t),o.push(e),s.push(C),E+=g.length}}}if(0===i.length)return{starts:new Int32Array(0),ends:new Int32Array(0),scores:new Float32Array(0),minScores:new Float32Array(0),maxScores:new Float32Array(0),isSummary:!0};if(1===i.length)return{starts:i[0],ends:B[0],scores:Q[0],minScores:o[0],maxScores:s[0],isSummary:!0};const a=new Int32Array(E),r=new Int32Array(E),n=new Float32Array(E),h=new Float32Array(E),c=new Float32Array(E);let l=0;for(let A=0;A<i.length;A++)a.set(i[A],l),r.set(B[A],l),n.set(Q[A],l),h.set(o[A],l),c.set(s[A],l),l+=i[A].length;return{starts:a,ends:r,scores:n,minScores:h,maxScores:c,isSummary:!0}}}const TA=-2021002517,WA=new TextDecoder("utf8");function PA(A){return new DataView(A.buffer,A.byteOffset,A.length)}class OA{bbi;headerP;renameRefSeqs;getHeader(A){return this.headerP||(this.headerP=this._getHeader(A).catch(A=>{throw this.headerP=void 0,A})),this.headerP}constructor(A){const{filehandle:g,renameRefSeqs:I=A=>A,path:t,url:e}=A;if(this.renameRefSeqs=I,g)this.bbi=g;else if(e)this.bbi=new m(e);else{if(!t)throw new Error("no file given");this.bbi=new p(t)}}async _getHeader(A){const g=await this._getMainHeader(A),I=await this._readChromosomeTree(g,A);return{...g,...I}}async _getMainHeader(A,g=2e3){const I=await this.bbi.read(g,0,A),t=PA(I);let e=0;const C=t.getInt32(e,!0);if(e+=4,-2003829722!==C&&C!==TA)throw new Error("not a BigWig/BigBed file");const i=t.getUint16(e,!0);e+=2;const B=t.getUint16(e,!0);e+=2;const Q=Number(t.getBigUint64(e,!0));e+=8;const o=Number(t.getBigUint64(e,!0));e+=8;const s=Number(t.getBigUint64(e,!0));e+=8;const E=t.getUint16(e,!0);e+=2;const a=t.getUint16(e,!0);e+=2;const r=Number(t.getBigUint64(e,!0));e+=8;const n=Number(t.getBigUint64(e,!0));e+=8;const h=t.getUint32(e,!0);e+=4;const c=Number(t.getBigUint64(e,!0));e+=8;const l=[];for(let A=0;A<B;A++){const A=t.getUint32(e,!0);e+=4;const g=t.getUint32(e,!0);e+=4;const I=Number(t.getBigUint64(e,!0));e+=8;const C=Number(t.getBigUint64(e,!0));e+=8,l.push({reductionLevel:A,reserved:g,dataOffset:I,indexOffset:C})}const d=C===TA?"bigbed":"bigwig";if(r>g||n>g-40)return this._getMainHeader(A,2*g);let D;if(!n)throw new Error("no stats");{let A=0;const g=PA(I.subarray(n)),t=Number(g.getBigUint64(A,!0));A+=8;const e=g.getFloat64(A,!0);A+=8;const C=g.getFloat64(A,!0);A+=8;const i=g.getFloat64(A,!0);A+=8;D={scoreMin:e,scoreMax:C,scoreSum:i,scoreSumSquares:g.getFloat64(A,!0),basesCovered:t}}return{zoomLevels:l,magic:C,extHeaderOffset:c,numZoomLevels:B,fieldCount:E,totalSummary:D,definedFieldCount:a,uncompressBufSize:h,asOffset:r,chromosomeTreeOffset:Q,totalSummaryOffset:n,unzoomedDataOffset:o,unzoomedIndexOffset:s,fileType:d,version:i,autoSql:r?WA.decode(I.subarray(r,I.indexOf(0,r))):""}}async _readChromosomeTree(A,g){const I=[],t={},e=A.chromosomeTreeOffset,C=PA(await this.bbi.read(32,e,g)),i=C.getUint32(8,!0),B=C.getUint32(12,!0),Q=async A=>{const g=PA(await this.bbi.read(4,A)),e=g.getUint8(0),C=g.getUint16(2,!0);if(e){const g=await this.bbi.read(C*(i+B),A+4),e=PA(g);let Q=0;for(let A=0;A<C;A++){const A=g.indexOf(0,Q),C=-1!==A&&A<Q+i?A:Q+i,B=WA.decode(g.subarray(Q,C));Q+=i;const o=e.getUint32(Q,!0);Q+=4;const s=e.getUint32(Q,!0);Q+=4,t[this.renameRefSeqs(B)]=o,I[o]={name:B,id:o,length:s}}}else{const g=PA(await this.bbi.read(C*(i+8),A+4)),I=[];let t=0;for(let A=0;A<C;A++){t+=i;const A=Number(g.getBigUint64(t,!0));t+=8,I.push(Q(A))}await Promise.all(I)}};return await Q(e+32),{refsByName:t,refsByNumber:I}}viewCache=new Map;getOrCreateBlockView(A,g,I,t){const e=`${g}_${t}`;let C=this.viewCache.get(e);return C||(C=new _A(this.bbi,A,g,I,t),this.viewCache.set(e,C)),C}async getUnzoomedView(A){const{unzoomedIndexOffset:g,refsByName:I,uncompressBufSize:t,fileType:e}=await this.getHeader(A);return this.getOrCreateBlockView(I,g,t,e)}async _getView(A){const{basesPerSpan:g,scale:I}=A||{},t=g?1/g:I??1;return this.getView(t,A)}async getFeatures(A,g,I,t){return(await this._getView(t)).readWigData(this.renameRefSeqs(A),g,I,t)}async getFeaturesAsArrays(A,g,I,t){return(await this._getView(t)).readWigDataAsArrays(this.renameRefSeqs(A),g,I,t)}}class VA extends OA{async getView(A,g){const{zoomLevels:I,refsByName:t,uncompressBufSize:e}=await this.getHeader(g),C=1/A;for(let A=I.length-1;A>=0;A-=1){const g=I[A];if(g&&g.reductionLevel<=2*C)return this.getOrCreateBlockView(t,g.indexOffset,e,"summary")}return this.getUnzoomedView(g)}}const ZA=new TextDecoder("utf8");function zA(A,g,I){const t=A.indexOf(0,g),e=-1!==t&&t<g+I?t:g+I;return ZA.decode(A.subarray(g,e))}async function jA(A,g,I,t,e,C,i,B){const Q=4+I*(t+e),o=await A.read(Q,g,B),s=new DataView(o.buffer,o.byteOffset,o.length),E=s.getInt8(0),a=s.getInt16(2,!0);let r=4;if(0===E){const g=[];for(let A=0;A<a;A++){const A=zA(o,r,t);r+=t;const I=Number(s.getBigUint64(r,!0));r+=8,g.push({key:A,offset:I})}let Q=0,E=g.length-1,n=g.length-1;for(;Q<=E;){const A=Math.floor((Q+E)/2);C.localeCompare(g[A].key)<0?(n=A-1,E=A-1):Q=A+1}return jA(A,n>=0?g[n].offset:g[0].offset,I,t,e,C,i,B)}if(1===E){const A=[];for(let g=0;g<a;g++){const g=zA(o,r,t);r+=t;const I=Number(s.getBigUint64(r,!0));r+=8;const e=s.getUint32(r,!0);r+=4,r+=4,A.push({key:g,offset:I,length:e})}let g=0,I=A.length-1;for(;g<=I;){const t=Math.floor((g+I)/2),e=C.localeCompare(A[t].key);if(0===e)return{...A[t],field:i};e<0?I=t-1:g=t+1}return}}class XA extends OA{readIndicesCache=new L({cache:new X({maxSize:1}),fill:(A,g)=>this._readIndices({...A,signal:g})});readIndices(A={}){const{signal:g,...I}=A;return this.readIndicesCache.get(JSON.stringify(I),A,g)}async getView(A,g){return this.getUnzoomedView(g)}async _readIndices(A){const{extHeaderOffset:g}=await this.getHeader(A),I=await this.bbi.read(64,g),t=new DataView(I.buffer,I.byteOffset,I.length),e=t.getUint16(2,!0),C=Number(t.getBigUint64(4,!0));if(0===e)return[];const i=20*e,B=await this.bbi.read(i,C),Q=[];for(let A=0;A<e;A+=1){const g=B.subarray(20*A),I=new DataView(g.buffer,g.byteOffset,g.length),t=I.getInt16(0,!0),e=I.getInt16(2,!0),C=Number(I.getBigUint64(4,!0)),i=I.getInt16(16,!0);Q.push({type:t,fieldcount:e,offset:C,field:i})}return Q}async searchExtraIndexBlocks(A,g={}){const I=await this.readIndices(g);if(0===I.length)return[];const t=I.map(async I=>{const{offset:t,field:e}=I,C=await this.bbi.read(32,t,g),i=new DataView(C.buffer,C.byteOffset,C.length),B=i.getInt32(4,!0),Q=i.getInt32(8,!0),o=i.getInt32(12,!0);return jA(this.bbi,t+32,B,Q,o,A,e,g)});return(await Promise.all(t)).filter(A=>void 0!==A)}async searchExtraIndex(A,g={}){const I=await this.searchExtraIndexBlocks(A,g);if(0===I.length)return[];const t=await this.getUnzoomedView(g);return(await Promise.all(I.map(async A=>(await t.readFeatures([A],g)).map(g=>({...g,field:A.field}))))).flat().filter(g=>{if(!g.rest)return!1;const I=(g.field||0)-3;return function(A,g){if(g<0)return;let I=0;for(let t=0;t<g;t++){if(I=A.indexOf("\t",I),-1===I)return;I++}const t=A.indexOf("\t",I);return-1===t?A.slice(I):A.slice(I,t)}(g.rest,I)===A})}}class $A{constructor(A,g=!0){this.littleEndian=g,this.position=0,this.view=A,this.length=A.byteLength}setPosition(A){this.position=A}available(){return this.length-this.position}getByte(){const A=this.view.getUint8(this.position);return this.position++,A}getShort(){const A=this.view.getInt16(this.position,this.littleEndian);return this.position+=2,A}getUShort(){const A=this.view.getUint16(this.position,this.littleEndian);return this.position+=2,A}getInt(){const A=this.view.getInt32(this.position,this.littleEndian);return this.position+=4,A}getUInt(){const A=this.view.getUint32(this.position,this.littleEndian);return this.position+=4,A}getLong(){const A=[];for(let g=0;g<8;g++)A[g]=this.view.getUint8(this.position+g);let g=0;if(this.littleEndian)for(let I=7;I>=0;I--)g=256*g+A[I];else for(let I=0;I<8;I++)g=256*g+A[I];return this.position+=8,g}getString(A){let g,I="";for(;0!==(g=this.view.getUint8(this.position++))&&(I+=String.fromCharCode(g),!A||I.length!==A););return I}getFixedLengthString(A){let g="";for(let I=0;I<A;I++){const A=this.view.getUint8(this.position++);A>0&&(g+=String.fromCharCode(A))}return g}getFloat(){const A=this.view.getFloat32(this.position,this.littleEndian);return this.position+=4,A}getDouble(){const A=this.view.getFloat64(this.position,this.littleEndian);return this.position+=8,A}skip(A){return this.position+=A,this.position}}const Ag=new Map;function gg(A,g,I){var t,e,C,i,B,Q;if(void 0===A.score&&!A.summary)return;let o;if(A.summary)switch(I){case"min":o=null!==(e=null!==(t=A.minScore)&&void 0!==t?t:A.score)&&void 0!==e?e:0;break;case"max":o=null!==(i=null!==(C=A.maxScore)&&void 0!==C?C:A.score)&&void 0!==i?i:0;break;default:o=null!==(B=A.score)&&void 0!==B?B:0}else o=null!==(Q=A.score)&&void 0!==Q?Q:0;return{chr:g,start:A.start,end:A.end,value:o}}class Ig{constructor(A,g){this.bw=function(A,g){const I=u(A);let t=Ag.get(I);t||(t=new VA({filehandle:new m(I,g?{fetch:g}:void 0)}),Ag.set(I,t));return t}(A,g)}async loadHeader(A){const g=await this.bw.getHeader({signal:A});return{bwVersion:g.version,nZoomLevels:g.numZoomLevels,chromTreeOffset:g.chromosomeTreeOffset,fullDataOffset:g.unzoomedDataOffset,fullIndexOffset:g.unzoomedIndexOffset,fieldCount:g.fieldCount,definedFieldCount:g.definedFieldCount,autoSqlOffset:g.asOffset,totalSummaryOffset:g.totalSummaryOffset,uncompressBuffSize:g.uncompressBufSize,extensionOffset:g.extHeaderOffset}}async getTotalSummary(A){const g=(await this.bw.getHeader({signal:A})).totalSummary;if(!g)return;const I=g.basesCovered>0?g.scoreSum/g.basesCovered:0,t=g.basesCovered>0?g.scoreSumSquares/g.basesCovered-I*I:0;return{basesCovered:g.basesCovered,minVal:g.scoreMin,maxVal:g.scoreMax,sumData:g.scoreSum,sumSquares:g.scoreSumSquares,mean:I,stddev:Math.sqrt(Math.max(0,t))}}async readFeatures(A,g,I,t,e="mean",C){const i={signal:C};t&&"none"!==e&&(i.basesPerSpan=t);const B=await this.bw.getFeatures(A,g,I,i),Q=[];for(const g of B){const I=gg(g,A,e);I&&Q.push(I)}return Q}async readWGFeatures(A,g,I="mean",t){const e=[];for(const C of A)try{const A=await this.readFeatures(C,0,Number.MAX_SAFE_INTEGER,g,I,t);e.push(...A)}catch(A){}return e}}async function tg(A,g,I={}){var t,e;const C=new Ig(A,I.fetchImpl);try{return await C.readFeatures(g.chr,g.start,g.end,I.bpPerPixel,null!==(t=I.windowFunction)&&void 0!==t?t:"mean",I.signal)}catch(g){throw g instanceof Error&&("AbortError"===g.name||(null===(e=g.message)||void 0===e?void 0:e.includes("aborted")))&&Ag.delete(A),g}}async function eg(A,g,I,t={}){var e;return new Ig(A,t.fetchImpl).readWGFeatures(g,I,null!==(e=t.windowFunction)&&void 0!==e?e:"mean",t.signal)}class Cg{constructor(A,g){this.bin=A,this.sumData=g.value,this.count=1,this.min=g.value,this.max=g.value}add(A){this.sumData+=A.value,this.max=Math.max(A.value,this.max),this.min=Math.min(A.value,this.min),this.count++}}function ig(A,g,I,t="mean"){if(I<=1||!A||0===A.length||"none"===t)return A;const e=A[0].chr,C=I,i=[],B=A=>{const I=g+A.bin*C,B=I+C;let Q;switch(t){case"mean":Q=A.sumData/A.count;break;case"max":Q=A.max;break;case"min":Q=A.min;break;default:throw Error(`Unknown window function: ${t}`)}const o=`${t} of ${A.count} values`;i.push({chr:e,start:I,end:B,value:Q,description:o})};let Q;for(const I of A){let A=Math.floor((I.start-g)/C);const t=Math.max(A,Math.ceil((I.end-g)/C)-1);if(Q&&A===Q.bin&&(Q.add(I),A++),!Q||t>Q.bin){if(Q&&B(Q),t>A){const A=g+t*C;i.push({chr:e,start:I.start,end:A,value:I.value})}Q=new Cg(t,I)}}if(Q&&B(Q),0===i.length)return i;const o=[];let s=i[0];for(const A of i)s.value===A.value&&A.start<=s.end?s={...s,end:A.end}:(o.push(s),s=A);return o.push(s),o}function Bg(A){if(!A||0===A.length)return{min:0,max:100};let g=Number.MAX_VALUE,I=-Number.MAX_VALUE;for(const t of A)Number.isNaN(t.value)||(t.value<g&&(g=t.value),t.value>I&&(I=t.value));return g===Number.MAX_VALUE?{min:0,max:100}:(I>0&&(g=Math.min(0,g)),I<0&&(I=0),{min:g,max:I})}var Qg=Object.freeze({__proto__:null,summarizeWigData:ig,computeWigDataRange:Bg});function og(A){return"all"===A.chr.toLowerCase()}function sg(A,g){const I=A.trim();if("all"===I.toLowerCase()||"*"===I)return g?{chr:"all",start:0,end:g.totalLength}:null;const t=I.split("\t");if(t.length>=3){const A=t[0],g=parseInt(t[1].replace(/,/g,""),10),I=parseInt(t[2].replace(/,/g,""),10);if(!isNaN(g)&&!isNaN(I)&&I>g)return{chr:A,start:g,end:I}}if(!I.includes(":"))return null;const e=I.replace(/,/g,""),C=e.indexOf(":"),i=e.substring(0,C),B=e.substring(C+1),Q=B.match(/^(-?\d+)-(\d+)$/);if(Q){let A=parseInt(Q[1],10);const g=parseInt(Q[2],10);return isNaN(A)||isNaN(g)||g<=A?null:(A<0&&(A=0),{chr:i,start:A,end:g})}const o=B.match(/^(\d+)$/);if(o){const A=parseInt(o[1],10);return isNaN(A)?null:{chr:i,start:Math.max(0,A-20),end:A+20}}return null}function Eg(A){return og(A)?"All Chromosomes":`${A.chr}:${Math.round(A.start).toLocaleString()}-${Math.round(A.end).toLocaleString()}`}function ag(A){if((A=Math.abs(A))>=1e9){const g=A/1e9;return`${g%1==0?g.toFixed(0):g.toFixed(1)} Gb`}if(A>=1e6){const g=A/1e6;return`${g%1==0?g.toFixed(0):g.toFixed(1)} Mb`}if(A>=1e3){const g=A/1e3;return`${g%1==0?g.toFixed(0):g.toFixed(1)} kb`}return`${Math.round(A)} bp`}function rg(A,g,I){if(og(A)&&I)return{chr:"all",start:Math.max(0,A.start),end:Math.min(I.totalLength,A.end)};let{chr:t,start:e,end:C}=A;const i=null==g?void 0:g[t];if(null!=i&&C-e>i&&(e=0,C=i),e<0){const A=-e;e=0,C+=A}if(null!=i&&C>i){const A=C-i;C=i,e=Math.max(0,e-A)}return{chr:t,start:e,end:C}}async function ng(A,g,I){if(null==I?void 0:I.aborted)return[];const t=await Promise.allSettled(A.map(A=>g(A))),e=t.filter(A=>"fulfilled"===A.status);if(0===e.length&&t.length>0)throw t[0].reason;return e.flatMap(A=>A.value)}function hg(A,g){const I=[];for(const t of A){if(!t.chr)continue;const A=g.offsets[t.chr];void 0!==A&&I.push({...t,chr:"all",start:A+t.start,end:A+t.end})}return I.sort((A,g)=>A.start-g.start),I}class cg{constructor(A,g="mean",I){this.url=A,this._windowFunction=g,this.fetchImpl=I}get windowFunction(){return this._windowFunction}setWindowFunction(A){this._windowFunction=A}setCumulativeOffsets(A){this._cumulativeOffsets=A}setChromNameResolver(A){this._resolveChromName=A}async fetch(A,g,I){if(og(A)&&this._cumulativeOffsets)return this.fetchWG(g,I);const t=this._resolveChromName?{...A,chr:this._resolveChromName(A.chr)}:A,e=await tg(this.url,t,{bpPerPixel:g,windowFunction:this._windowFunction,signal:I,fetchImpl:this.fetchImpl});return g>1&&"none"!==this._windowFunction&&e.length>0?ig(e,A.start,g,this._windowFunction):e}async fetchWG(A,g){const I=this._cumulativeOffsets;if(!I)throw new Error("fetchWG called without cumulativeOffsets");const t=hg(await eg(this.url,I.chromosomeNames,A,{windowFunction:this._windowFunction,signal:g,fetchImpl:this.fetchImpl}),I);return A>1&&"none"!==this._windowFunction&&t.length>0?ig(t,0,A,this._windowFunction):t}}async function lg(A,g,I,t){const e=null!=t?t:globalThis.fetch,C=g.start+g.size-1,i={Range:`bytes=${g.start}-${C}`};let B=await e(A,{headers:i,signal:I});if(200===B.status&&B.redirected&&B.url&&B.url!==A&&(B=await e(B.url,{headers:i,signal:I})),416===B.status){const e=await dg(A,I,t),C=Math.min(g.size,e-g.start);if(C<=0)throw new Error(`HTTP range request failed: 416 Range Not Satisfiable (file size: ${e})`);return lg(A,{start:g.start,size:C},I,t)}if(!B.ok&&206!==B.status)throw new Error(`HTTP range request failed: ${B.status} ${B.statusText}`);if(200===B.status){return(await B.arrayBuffer()).slice(g.start,g.start+g.size)}return B.arrayBuffer()}async function dg(A,g,I){const t=null!=I?I:globalThis.fetch;let e=await t(A,{method:"HEAD",signal:g});if(e.redirected&&e.url&&e.url!==A){e.headers.get("Content-Length")||(e=await t(e.url,{method:"HEAD",signal:g}))}if(!e.ok)throw new Error(`HEAD request failed: ${e.status} ${e.statusText}`);const C=e.headers.get("Content-Length");if(!C)throw new Error("No Content-Length header in HEAD response");return parseInt(C,10)}let Dg,ug,wg,yg,fg;let Sg,kg=!1;function Gg(){const A=ug.buffer;wg=new Int8Array(A),yg=new Uint8Array(A)}let Fg=!1,Ng=!0;const mg={};let pg;function Rg(A,g){return Math.ceil(A/g)*g}const Ug={a:function(A){Ng||(Fg=!0)},b:function(){Ng=!1},c:function(){!function(A){const g="Aborted("+(null!=A?A:"")+")";throw Fg=!0,new WebAssembly.RuntimeError(g)}("")},d:function(A,g){if(mg[A]&&(clearTimeout(mg[A].id),delete mg[A]),!g)return 0;const I=setTimeout(()=>{delete mg[A],pg(A,performance.now())},g);return mg[A]={id:I,timeout_ms:g},0},e:function(A){const g=yg.length,I=2147483648;if((A>>>=0)>I)return!1;for(let t=1;t<=4;t*=2){let e=g*(1+.2/t);e=Math.min(e,A+100663296);const C=(Math.min(I,Rg(Math.max(A,e),65536))-ug.buffer.byteLength+65535)/65536|0;try{return ug.grow(C),Gg(),!0}catch(A){}}return!1}};async function Mg(){if(!kg)return Sg||(Sg=async function(){const A=function(){if(Dg)return Dg;const A=atob("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AWohACAGIAhqIQYMAQsACwALQQAhAgNAIAIgBUZFBEAgBCACIAlqLQAAQQF0aiIAIAAvAQAiAEEBajsBACAQIABBAXRqIAIgBWo7AQAgAkEBaiECDAELCyADQR9rIQQgA0EQdCAFayIFQYCABGohCUEAIQZBACEAQQAhAgNAIAIgCkYNAQJAAkACQAJAAkAgASACQQF0ai8BACIDDgIAAgELIA0gAkEDdGogCTYCBAwDCyADQf//A0cNAQsgDSACQQN0aiIDIABBAWs2AgAgAyAFNgIEIABBAWohAAwBCyANIAJBA3RqIgcgACADwSIDazYCACAHIAQgA0EBa2dqIgdBEHQgAyAHdGs2AgQgACADaiEACyACQQFqIQIMAAsACyAGCxcAIAAgASACIANCgIDs/Mub741PELIBCxcAIAAgASACIANCgIDs/Mub741PELMBCxcAIAAgASACIANCgIDs/Mub741PELQBCxcAIAAgASACIANCgICA2Mub741PELIBCxcAIAAgASACIANCgICA2Mub741PELMBCxcAIAAgASACIANCgICA2Mub741PELQBC6EKAhd/An4jAEGAAmsiEyQAIAEgACgCBCIOayIIQQEgACgCuAF0IgRrIAAoAhAiEiAIIBJrIARLGyERIAAoAhghFyAAKAIMIRQgACgCCCEWQQYgACgCxAEiBCAEQQZPGyEYIAApA1AhGyAAKAIkIQsgACgCKCEJIAAoAlwhDAJAIAAoAtwBRQRAIABBLGohEAJ/IAggACgCHCIEa0GAA00EQEEYIAtrIQ8gCSEGIAwhByAODAELIAQgBEHgAGoiBSAEIAVLGyEPQRggC2shCiAOQQhqIQ0DQCAEIA9GRQRAIBAgBEEHcUECdGoiBigCACEFIAYgACgCUCAEIA1qKAAAQbHz3fF5bHMgCnY2AgAgCSAFQQJ2QcD///8DcSIVaiIGQT9BACAGLQAAIgdBP3FBAUYbIAdBAWtBP3FqIgc6AAAgBiAHaiAFOgAAIAwgFUECdGogB0ECdGogBDYCACAEQQFqIQQMAQsLQQggAUEBaiIFIA4gCEEgayIEaiIGa0EBaiIHIAdBCE8bQQAgBSAGTxsgBGohCkEYIAAoAiRrIQ8gACgCKCEGIAAoAlwhByAEIQUDQCAFIApPRQRAIBAgBUEHcUECdGogACgCUCAF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IAQgGWooAABBsfPd8XlscyAPdjYCACAGIAVBBHZB8P///wBxIhpqIgpBD0EAIAotAAAiDUEPcUEBRhsgDUEBa0EPcWoiDToAACAKIA1qIAU6AAAgByAaQQJ0aiANQQJ0aiAENgIAIARBAWohBAwBCwsgACAJNgIcIBAgCUEHcUECdGoiBCgCACEHIAQgG6cgCSAOaigACEGx893xeWxzQRggC2t2NgIADAELIAEoAAAhBCAAIAk2AhwgG6cgBEGx893xeWxzQRggC2t2IQcLIBIgESAXGyEQIBQgFmohDyAOIBRqIRJBASAYdCEGIAAgACgCWCAHajYCWCAHQf8BcUGBgoQIbCEKIAggB0EEdkHw////AHEiDWoiCy0AACEIQgAhG0EQIQQDQCALIARBBGsiBWooAAAgCnMiEUGAgYKEeHJBgYKECGsgEXJBgIGChHhxQYGBgQFsQRx2rSAbQgSGhCEbIARBB0sgBSEEDQALQQAhBSAbp0F/cyIEQf//A3EgCEEPcXYgBEEAIAhrQQ9xdHKtQv//A4MhGyAMIA1BAnRqIQwDQAJAIAZFIBtQcg0AIBunaCAIakEPcSIEBEAgDCAEQQJ0aigCACIEIBBJDQEgEyAFQQJ0aiAENgIAIAZBAWshBiAFQQFqIQULIBtCAX0gG4MhGwwBCwtBACEEIAsgCEEBa0EPcUEPQQAgCEEPcUEBRhtqIgY6AAAgBiALaiAHOgAAIAAgACgCHCIAQQFqNgIcIAwgBkECdGogADYCAEEDIQYgCUEDaiEMIAFBBGohByABQQNrIQkDQAJAIAQgBUYEQCAGIQAMAQsCQCAGAn8gFCATIARBAnRqKAIAIghNBEAgCCAOaiIAIAZqQQNrKAAAIAYgCWooAABHDQIgASAAIAIQBgwBCyAIIBZqIgAoAAAgASgAAEcNASAHIABBBGogAiAPIBIQBUEEagsiAE8NACADIAwgCGs2AgAgACIGIAFqIAJGDQELIARBAWohBAwBCwsgE0GAAmokACAACxcAIAAgASACIANCgIDs/Mub741PELUBCxcAIAAgASACIANCgIDs/Mub741PELYBCxcAIAAgASACIANCgIDs/Mub741PELcBCxcAIAAgASACIANCgICA2Mub741PELUBCxcAIAAgASACIANCgICA2Mub741PELYBCxcAIAAgASAC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DCAJEJIBIAEoAgwhBAJAIB4gByANaiIPTwRAIA0pAAAhIiAEIA0pAAg3AAggBCAiNwAAIAdBEUkNASANKQAQISIgASgCDCIEIA0pABg3ABggBCAiNwAQIAdBIUgNASANQRBqIQYgBCAHaiENIARBIGohBANAIAYpABAhIiAEIAYpABg3AAggBCAiNwAAIAYpACAhIiAEIAYpACg3ABggBCAiNwAQIAZBIGohBiAEQSBqIgQgDUkNAAsMAQsgBCANIA8gHhAHCyABIAEoAgwgB2o2AgwgASgCBCEEIAdBgIAETwRAIAFBATYCJCABIAQgASgCAGtBA3U2AigLIAQgDDYCACAEIAc7AQQgCUEDayIHQYCABE8EQCABQQI2AiQgASAEIAEoAgBrQQN1NgIoCyAEIAc7AQYgASAEQQhqNgIEIAkgD2oiDQUgByANagshDyAFQQFqIQUMAQsLIBFBAhCQAQwACwALvQEBAX8CQCAAKAIMIgZFDQAgACgCBCAGTw0AIAAoAhgiBiADTQRAIAMgBksEQCAAIAMgBmsQUgsgACADIAQQXyAAKAIYIQYLIAMgACgCFEkgAyAGT3INACAGIANrIgQgBUkNACACKAIAIgMEQCADQf8fSw0BIAQgASADQQN0akEEaygCAE0NAQsgACgCHCEAIAEgA0EDdGogBDYCBCABIAIoAgBBA3RqIABBA2o2AgAgAiACKAIAQQFqNgIACwtMACAEQQNxBEBBfw8LIAVBgCBJBEBBvn8PCyABKAIAQf4BTQRAIAAgASACIANBASAEEKkBDwsgAUH/ATYCACAAIAEgAiADIAQgBRAiC40CAgN/AX4gACACaiEEAkACQCACQQhOBEAgACABayICQXlIDQELA0AgACAETw0CIAAgAS0AADoAACAAQQFqIQAgAUEBaiEBDAALAAsCQAJAIAJBb0sNACAAIARBIGsiAksNACABKQAAIQYgACABKQAINwAIIAAgBjcAACACIABrIgVBEU4EQCAAQRBqIQAgASEDA0AgAykAECEGIAAgAykAGDcACCAAIAY3AAAgAykAICEGIAAgAykAKDcAGCAAIAY3ABAgA0EgaiEDIABBIGoiACACSQ0ACwsgASAFaiEBDAELIAAhAgsDQCACIARPDQEgAiABLQAAOgAAIAJBAWohAiABQQFqIQEMAAsACwuR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AAJ/IAIgACgClOsBBH8gACgC0OkBBUGAgAgLIgIgA2pBQGtLBEAgACABIAJqQSBqIgE2AvzrAUEBIQIgASADagwBCyADQYCABE0EQCAAIABBiOwBaiIBNgL86wFBACECIAEgA2oMAQsgACABIARqIgEgA2siAkHg/wNqIgQgAiAFGzYC/OsBQQIhAiADIARqQYCABGsgASAFGwshAyAAIAI2AoTsASAAIAM2AoDsAQtSAQN/AkAgACgCmOsBIgFFDQAgASgCACABKAK01QEiAiABKAK41QEiAxAUIAIEQCADIAEgAhEJAAwBCyABEBgLIABBADYCqOsBIABCADcDmOsBCyYAIANBGHQgAUEQdGogACAAQQh0IAJyIANBAUYbcq1CgYCAgBB+C0UBAX8CQCAAKAIkRQRAIABBARDQAUGIf0sNAQsgACgCDCICIAFqIgEgACgCFEsEQCAAQQE6ABxBAA8LIAAgATYCDAsgAgtPAQF/IAFFIAAgAhDQAUGIf0tyRQRAIAAoAhQgAWsiAyAAKAIMSQRAIABBAToAHEEADwsgACgCECADSwRAIAAgAzYCEAsgACADNgIUCyADC00BAX8CQCAAKAIkRQRAIAAoAggiAiABQQNqQfz/AXFqIgEgACgCBE0NAQsgAEEBOgAcQQAPCyAAIAE2AhAgACABNgIMIAAgATYCCCACC7oBAQF/IwBBEGsiCiQAIAogAzYCDCAIIApBDGogASACIAggCRAiGkEAIQMCfwJAAkACQAJAIAAOAgACAQsgBiAHIAggCigCDBBqIQMMAQsgAEF+cUECRw0AIAQgCCAKKAIMEGsiA0GIf0sNAQsgASACaiEAA0AgACABTUUEQCABIQggBQRAIAUgAS0AAGohCAsgAUEBaiEBIAMgCC0AAGohAwwBCwsgA0EDdgwBCyACQQpsCyAKQRBqJAALXAEEfyAAKAIEIAAoAgAiA2tBA3UhBANAIAIgBEZFBEAgASADIAJBA3RqLwEEaiEBIAAoAiggAkYEQCABQYCABGogASAAKAIkQQFGGyEBCyACQQFqIQIMAQsLIAELrAMBDH8jAEEQayIFJAAgACABKALoECABKALsECABQcABaiABQawbaiABKALQEiABKALUEhCeASICQYh/TQRAIAEoAtQSIQYgASgC0BIhAiABKALsECEHIAAoAhQh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IAAgBmogACAFaiATEAYhDCAGIANrIQgCQCAGIBRNBEAgAykAACEhIAEoAgwiBSADKQAINwAIIAUgITcAACAIQRFJDQEgAykAECEhIAEoAgwiByADKQAYNwAYIAcgITcAECAIQSFIDQEgA0EQaiEFIAcgCGohAyAHQSBqIQcDQCAFKQAQISEgByAFKQAYNwAIIAcgITcAACAFKQAgISEgByAFKQAoNwAYIAcgITcAECAFQSBqIQUgB0EgaiIHIANJDQALDAELIAEoAgwgAyADIAhqIBQQBwsgASABKAIMIAhqNgIMIAEoAgQhAyAIQYCABE8EQCABQQE2AiQgASADIAEoAgBrQQN1NgIoCyADIAk2AgAgAyAIOwEEIAAgDGoiAEEDayIFQYCABE8EQCABQQI2AiQgASADIAEoAgBrQQN1NgIoCyADIAU7AQYgASADQQhqNgIEIAQhByAAIAZqIgUhAyAFIBFLDQAgCyAQIBlqKAAAQbHz3fF5bCAPdkECdGogEEECajYCACALIAVBAmsiACgAAEGx893xeWwgD3ZBAnRqIAAgCms2AgBBACEHIARFDQADQAJAIAQhByAFIBFLDQAgBSgAACIAIAUgBGsoAABHDQAgBUEEaiIDIAMgBGsgExAGIQQgCyAAQbHz3fF5bCAPdkECdGogBSAKazYCACABKAIMIQACQCAFIBRNBEAgBSkAACEhIAAgBSkACDcACCAAICE3AAAMAQsgACAFIAUgFBAHCyABKAIEIgBBATYCACAAQQA7AQQgBEEBaiIGQYCABE8EQCABQQI2AiQgASAAIAEoAgBrQQN1NgIoCyADIARqIQUgACAGOwEGIAEgAEEIajYCBCAOIQQgByEODAELCyAFIQMMAAsACyATQSBrIQ9BwAAgBGutISIDQCAFIBdqIg1BAWoiDCARTw0GQQAgDmshFSAFQYABaiEQIAVBAWohCCALIAUpAABCgMaV/cub741PfiAiiKciAEECdGooAgAhBCAFKQABISEgFyEJAkADQAJAIAwhEiANIgYgFWoiDSgAACEUIAsgAEECdGogBSAKayIMNgIAICFCgMaV/cub741PfiAiiKchAAJAAkAgDgRAIAYoAAAgFEYNAQsCQAJAAkAgBCAWSQ0AIAUoAAAgBCAKaigAAEcNACAIIQYgBSEIDAELIAsgAEECdGoi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DSAEayEFIAYgBGshCEEBIQkgByEEDAMLIAkgEmohDCALIABBAnRqKAIAIQQgEikAACEhIAYgCWoiDSAQTwRAIBBBgAFqIRAgCUEBaiEJCyASIQggBiEFIAwgEUkNAQwHCwsgDiEEIAchDgsgACAIaiAAIAVqIBMQBiENIAggA2shBgJAIAggD00EQCADKQAAISEgASgCDCIFIAMpAAg3AAggBSAhNwAAIAZBEUkNASADKQAQISEgASgCDCIHIAMpABg3ABggByAhNwAQIAZBIUgNASADQRBqIQUgBiAHaiEDIAdBIGohBwNAIAUpABAhISAHIAUpABg3AAggByAhNwAAIAUpACAhISAHIAUpACg3ABggByAhNwAQIAVBIGohBSAHQSBqIgcgA0kNAAsMAQsgASgCDCADIAMgBmogDxAHCyABIAEoAgwgBmo2AgwgASgCBCEDIAZBgIAETwRAIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAMgCTYCACADIAY7AQQgACANaiIAQQNrIgVBgIAETwRAIAFBAjYCJCABIAMgASgCAGtBA3U2AigLIAMgBTsBBiABIANBCGo2AgQgBCEHIAAgCGoiBSEDIAUgEUsNACALIAwgGWopAABCgICA2Mub741PfiAiiKdBAnRqIAxBAmo2AgAgCyAFQQJrIgApAABCgICA2Mub741PfiAiiKdBAnRqIAAgCms2AgBBACEHIARFDQADQAJAIAQhByAFIBFLDQAgBSgAACAFIARrKAAARw0AIAVBBGoiAyADIARrIBMQBiEEIAsgBSkAAEKAgIDYy5vvjU9+ICKIp0ECdGogBSAKazYCACABKAIMIQACQCAFIA9NBEAgBSkAACEhIAAgBSkACDcACCAAICE3AAAMAQsgACAFIAUgDxAHCyABKAIEIgBBATYCACAAQQA7AQQgBEEBaiIGQYCABE8EQCABQQI2AiQgASAAIAEoAgBrQQN1NgIoCyADIARqIQUgACAGOwEGIAEgAEEIajYCBCAOIQQgByEODAELCyAFIQMMAAsACyATQSBrIQ9BwAAgBGutISIDQCAFIBdqIg1BAWoiDCARTw0DQQAgDmshFSAFQYABaiEQIAVBAWohBiALIAUpAABCgMaV/cub741PfiAiiKciBEECdGooAgAhACAFKQABISEgFyEJAkADQAJAIAwhEiANIgggFWoiDSgAACEUIAsgBEECdGogBSAKayIMNgIAICFCgMaV/cub741PfiAiiKchBAJAAkAgDgRAIAgoAAAgFEYNAQsCQAJAIAUoAABB+jwgACAKaiAAIBZJIg0bKAAARyANckUEQCAGIQggBSEGDAELIAsgBEECdGoiBCgCACEAIAgpAAAgBCAGIAprIgw2AgBCgMaV/cub741PfiAiiKchBCAGKAAAQfo8IAAgCmogACAWSSIFGygAAEcgBXINAyAJQQVPDQELIAsgBEECdGogCCAKazYCAAsgBiAAIApqIgVrIghBA2ohCUEEIQADQCAFIBhNIAMgBk9yDQMgBkEBayIELQAAIAVBAWsiBy0AAEcNAyAAQQFqIQAgByEFIAQhBgwACwALIA1BAWstAAAhACAIQQFrLQAAIQUgCyAEQQJ0aiAGIAprNgIAQQVBBCAAIAVGIgQbIQAgDSAEayEFIAggBGshBkEBIQkgByEEDAMLIAkgEmohDCALIARBAnRqKAIAIQAgEikAACEhIAggCWoiDSAQTwRAIBBBgAFqIRAgCUEBaiEJCyASIQYgCCEFIAwgEUkNAQwGCwsgDiEEIAghDgsgACAGaiAAIAVqIBMQBiENIAYgA2shCAJAIAYgD00EQCADKQAAISEgASgCDCIFIAMpAAg3AAggBSAhNwAAIAhBEUkNASADKQAQISEgASgCDCIHIAMpABg3ABggByAhNwAQIAhBIUgNASADQRBqIQUgByAIaiEDIAdBIGohBwNAIAUpABAhISAHIAUpABg3AAggByAhNwAAIAUpACAhISAHIAUpACg3ABggByAhNwAQIAVBIGohBSAHQSBqIgcgA0kNAAsMAQsgASgCDCADIAMgCGogDxAHCyABIAEoAgwgCGo2AgwgASgCBCEDIAhBgIAETwRAIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAMgCTYCACADIAg7AQQgACANaiIAQQNrIgVBgIAETwRAIAFBAjYCJCABIAMgASgCAGtBA3U2AigLIAMgBTsBBiABIANBCGo2AgQgBCEHIAAgBmoiBSEDIAUgEUsNACALIAwgGWopAABCgMaV/cub741PfiAiiKdBAnRqIAxBAmo2AgAgCyAFQQJrIgApAABCgMaV/cub741PfiAiiKdBAnRqIAAgCms2AgBBACEHIARFDQADQAJAIAQhByAFIBFLDQAgBSgAACAFIARrKAAARw0AIAVBBGoiAyADIARrIBMQBiEEIAsgBSkAAEKAxpX9y5vvjU9+ICKIp0ECdGogBSAKazYCACABKAIMIQACQCAFIA9NBEAgBSkAACEhIAAgBSkACDcACCAAICE3AAAMAQsgACAFIAUgDxAHCyABKAIEIgBBATYCACAAQQA7AQQgBEEBaiIGQYCABE8EQCABQQI2AiQgASAAIAEoAgBrQQN1NgIoCyADIARqIQUgACAGOwEGIAEgAEEIajYCBCAOIQQgByEODAELCyAFIQMMAAsACyATQSBrIQ9BwAAgBGutISIDQCAFIBdqIg1BAWoiDCARTw0CQQAgDmshFSAFQYABaiEQIAVBAWohBiALIAUpAABCgIDs/Mub741PfiAiiKciBEECdGooAgAhACAFKQABISEgFyEJAkADQAJAIAwhEiANIgggFWoiDSgAACEUIAsgBEECdGogBSAKayIMNgIAICFCgIDs/Mub741PfiAiiKchBAJAAkAgDgRAIAgoAAAgFEYNAQsCQAJAIAUoAABB+jwgACAKaiAAIBZJIg0bKAAARyANckUEQCAGIQggBSEGDAELIAsgBEECdGoiBCgCACEAIAgpAAAgBCAGIAprIgw2AgBCgIDs/Mub741PfiAiiKchBCAGKAAAQfo8IAAgCmogACAWSSIFGygAAEcgBXINAyAJQQVPDQELIAsgBEECdGogCCAKazYCAAsgBiAAIApqIgVrIghBA2ohCUEEIQADQCAFIBhNIAMgBk9yDQMgBkEBayIELQAAIAVBAWsiBy0AAEcNAyAAQQFqIQAgByEFIAQhBgwACwALIA1BAWstAAAhACAIQQFrLQAAIQUgCyAEQQJ0aiAGIAprNgIAQQVBBCAAIAVGIgQbIQAgDSAEayEFIAggBGshBkEBIQkgByEEDAMLIAkgEmohDCALIARBAnRqKAIAIQAgEikAACEhIAggCWoiDSAQTwRAIBBBgAFqIRAgCUEBaiEJCyASIQYgCCEFIAwgEUkNAQwFCwsgDiEEIAghDgsgACAGaiAAIAVqIBMQBiENIAYgA2shCAJAIAYgD00EQCADKQAAISEgASgCDCIFIAMpAAg3AAggBSAhNwAAIAhBEUkNASADKQAQISEgASgCDCIHIAMpABg3ABggByAhNwAQIAhBIUgNASADQRBqIQUgByAIaiEDIAdBIGohBwNAIAUpABAhISAHIAUpABg3AAggByAhNwAAIAUpACAhISAHIAUpACg3ABggByAhNwAQIAVBIGohBSAHQSBqIgcgA0kNAAsMAQsgASgCDCADIAMgCGogDxAHCyABIAEoAgwgCGo2AgwgASgCBCEDIAhBgIAETwRAIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAMgCTYCACADIAg7AQQgACANaiIAQQNrIgVBgIAETwRAIAFBAjYCJCABIAMgASgCAGtBA3U2AigLIAMgBTsBBiABIANBCGo2AgQgBCEHIAAgBmoiBSEDIAUgEUsNACALIAwgGWopAABCgIDs/Mub741PfiAiiKdBAnRqIAxBAmo2AgAgCyAFQQJrIgApAABCgIDs/Mub741PfiAiiKdBAnRqIAAgCms2AgBBACEHIARFDQADQAJAIAQhByAFIBFLDQAgBSgAACAFIARrKAAARw0AIAVBBGoiAyADIARrIBMQBiEEIAsgBSkAAEKAgOz8y5vvjU9+ICKIp0ECdGogBSAKazYCACABKAIMIQACQCAFIA9NBEAgBSkAACEhIAAgBSkACDcACCAAICE3AAAMAQsgACAFIAUgDxAHCyABKAIEIgBBATYCACAAQQA7AQQgBEEBaiIGQYCABE8EQCABQQI2AiQgASAAIAEoAgBrQQN1NgIoCyADIARqIQUgACAGOwEGIAEgAEEIajYCBCAOIQQgByEODAELCyAFIQMMAAsACyATQSBrIQ9BwAAgBGutISIDQCAFIBdqIg1BAWoiDCARTw0BQQAgDmshFSAFQYABaiEQIAVBAWohBiALIAUpAABCgICA2Mub741PfiAiiKciBEECdGooAgAhACAFKQABISEgFyEJAkADQAJAIAwhEiANIgggFWoiDSgAACEUIAsgBEECdGogBSAKayIMNgIAICFCgICA2Mub741PfiAiiKchBAJAAkAgDgRAIAgoAAAgFEYNAQsCQAJAIAUoAABB+jwgACAKaiAAIBZJIg0bKAAARyANckUEQCAGIQggBSEGDAELIAsgBEECdGoiBCgCACEAIAgpAAAgBCAGIAprIgw2AgBCgICA2Mub741PfiAiiKchBCAGKAAAQfo8IAAgCmogACAWSSIFGygAAEcgBXINAyAJQQVPDQELIAsgBEECdGogCCAKazYCAAsgBiAAIApqIgVrIghBA2ohCUEEIQADQCAFIBhNIAMgBk9yDQMgBkEBayIELQAAIAVBAWsiBy0AAEcNAyAAQQFqIQAgByEFIAQhBgwACwALIA1BAWstAAAhACAIQQFrLQAAIQUgCyAEQQJ0aiAGIAprNgIAQQVBBCAAIAVGIgQbIQAgDSAEayEFIAggBGshBkEBIQkgByEEDAMLIAkgEmohDCALIARBAnRqKAIAIQAgEikAACEhIAggCWoiDSAQTwRAIBBBgAFqIRAgCUEBaiEJCyASIQYgCCEFIAwgEUkNAQwECwsgDiEEIAghDgsgACAGaiAAIAVqIBMQBiENIAYgA2shCAJAIAYgD00EQCADKQAAISEgASgCDCIFIAMpAAg3AAggBSAhNwAAIAhBEUkNASADKQAQISEgASgCDCIHIAMpABg3ABggByAhNwAQIAhBIUgNASADQRBqIQUgByAIaiEDIAdBIGohBwNAIAUpABAhISAHIAUpABg3AAggByAhNwAAIAUpACAhISAHIAUpACg3ABggByAhNwAQIAVBIGohBSAHQSBqIgcgA0kNAAsMAQsgASgCDCADIAMgCGogDxAHCyABIAEoAgwgCGo2AgwgASgCBCEDIAhBgIAETwRAIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAMgCTYCACADIAg7AQQgACANaiIAQQNrIgVBgIAETwRAIAFBAjYCJCABIAMgASgCAGtBA3U2AigLIAMgBTsBBiABIANBCGo2AgQgBCEHIAAgBmoiBSEDIAUgEUsNACALIAwgGWopAABCgICA2Mub741PfiAiiKdBAnRqIAxBAmo2AgAgCyAFQQJrIgApAABCgICA2Mub741PfiAiiKdBAnRqIAAgCms2AgBBACEHIARFDQADQAJAIAQhByAFIBFLDQAgBSgAACAFIARrKAAARw0AIAVBBGoiAyADIARrIBMQBiEEIAsgBSkAAEKAgIDYy5vvjU9+ICKIp0ECdGogBSAKazYCACABKAIMIQACQCAFIA9NBEAgBSkAACEhIAAgBSkACDcACCAAICE3AAAMAQsgACAFIAUgDxAHCyABKAIEIgBBATYCACAAQQA7AQQgBEEBaiIGQYCABE8EQCABQQI2AiQgASAAIAEo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EWoiBSgAACABKAAARw0BIAwgBUEEaiACIBIgExAFQQRqCyIFIABNDQAgAyALIAZrNgIAIAUiACABaiACRg0DCyAGIA9NDQAgB0EBayEHIAkgBiAUcUECdGohBQwBCwsgACEFCyAFC/sJAiN/AX4jAEEQayIUJAACQCADIAEoAgQiCyABKAIcIgJqSQ0AIAMgC2shCgNAIAIgCk9FBEAgASACIAtqIAQgCiAJQQAQECACaiECDAELCyABIAo2AhxBASABKAIQIgIgAyABKAIEIhVrIg1BASABKAK4AXQiCmsgAiANIAJrIApLGyABKAIYGyIWIBZBAU0bISIgDUF/IAEoArwBQQFrdEF/cyIbayICQQAgAiANTRshHCABKAJcIAMpAAAgCH4iLUHAACABKALAAWutiKdBAnRqIiMoAgAhDCABKAK0ASISKAIAIh0gEigCBCIeayIXQX8gEigCvAFBAWt0QX9zIh9rIBIoAhAiGCAXIBhrIB9LGyEkIB4gFiAXayIZayElIA0gGCAZamshJiAGIAZBA2oiAiACIAZJGyEnIAEoAmQiKCANIBtxQQN0aiITQQRqIQ9B/x8gASgCzAEiAiACQf8fTxshKSADQQRqIRogB0EBayEKIBUgASgCDCIgaiEhIA0gIGshKiANQQlqIRBBASABKALEAXQhESASKALAASErIAYhAgNAIAIgJ0cEQCANAn8gAkEDRgRAIAUoAgBBAWsMAQsgBSACQQJ0aigCAAsiC2shBwJAAn8gKiALQQFrIixLBEAgByAWSQ0CIAMoAAAgAyALaygAAEcNAiAaIBogC2sgBBAGDAELICYgLE0gByAga0F8S3INASADKAAAIAcgJWoiBygAAEcNASAaIAdBBGogBCAdICEQBQtBBGoiByAKTQ0AIAAgDkEDdGoiCiAHNgIEIAogAiAGa0EBajYCACAOQQFqIQ4gByApSw0DIAciCiADaiAERg0DCyACQQFqIQIMAQsLICMgDTYCACANQQNqIQZBACEHQQAhBQJAAkACQAJAAkADQCARRSAMICJJcg0CIAogAyAFIAcgBSAHSRsiAmogDCAVaiINIAJqIAQQBiACaiICSQRAIAAgDkEDdGoiCiACNgIEIAogBiAMazYCACACIAxqIBAgAiAQIAxrSxshECAOQQFqIQ4gAiADaiAERiACQYAgS3INBSACIQoLICggDCAbcUEDdGohCwJAAkACQCACIA1qLQAAIAIgA2otAABJBEAgEyAMNgIAIAwgHEsNASAUQQxqIRMMBQsgDyAMNgIAIAwgHE0NAiALIQ8gAiEHDAELIAIhBSALQQRqIhMhCwsgEUEBayERIAsoAgAhDAwBCwsgFEEMaiEPCyAPQQA2AgAgE0EANgIADAELIA9BADYCACATQQA2AgAgEUUNAgsgFSAZaiEPIBIoAlwgLUHAACAra62Ip0ECdGohAiASKAJkIQ1BACEMQQAhBwNAIBFFDQIgAigCACIFIBhNDQIgCiADIAcgDCAHIAxJGyICaiAFIB5qIgsgAmogBCAdICEQBSACaiICSQRAIAAgDkEDdGoiCiACNgIEIAogBiAFIBlqIgprNgIAIAIgCmogECACIBAgCmtLGyEQIA5BAWohDiACQYAgSw0DIAIhCiACIANqIARGDQMLIAUgJE0NAiARQQFrIREgAiAHIAsgBSAPaiACIAVqIBdJGyACai0AACACIANqLQAASSILGyEHIAwgAiALGyEMIA0gBSAfcUEDdGogC0ECdGohAgwACwALIA9BADYCACATQQA2AgALIAEgEEEIazYCHAsgFEEQaiQAIA4LsgcBG38jAEEQayIUJAACQCADIAEoAgQiDSABKAIcIgJqSQ0AIAMgDWshCwNAIAIgC09FBEAgASACIA1qIAQgCyAJQQEQECACaiECDAELCyABIAs2AhxBASABKAIQIgIgAyABKAIEIhBrIgxBASABKAK4AXQiC2sgAiAMIAJrIAtLGyABKAIYGyIVIBVBAU0bIR0gDEF/IAEoArwBQQFrdEF/cyIZayICQQAgAiAMTRshGiAMIBVrIR4gBiAGQQNqIgIgAiAGSRshHyABKAJkIiAgDCAZcUEDdGoiEUEEaiESIAEoAlwgAykAACAIfkHAACABKALAAWutiKdBAnRqIiEoAgAhCkH/HyABKALMASICIAJB/x9PGyEiIANBBGohFiAHQQFrIQsgECABKAIMIg9qIRsgASgCCCIXIA9qIRwgDCAPayEjIAxBCWohE0EBIAEoAsQBdCEYIAYhAgNAIAIgH0cEQCAMAn8gAkEDRgRAIAUoAgBBAWsMAQsgBSACQQJ0aigCAAsiDWshBwJAAn8gIyANQQFrIiRLBEAgByAVSQ0CIAMoAAAgAyANaygAAEcNAiAWIBYgDWsgBBAGDAELIB4gJE0gByAPa0F8S3INASADKAAAIAcgF2oiBygAAEcNASAWIAdBBGogBCAcIBsQBQtBBGoiByALTQ0AIAAgDkEDdGoiCyAHNgIEIAsgAiAGa0EBajYCACAOQQFqIQ4gByAiSw0DIAciCyADaiAERg0DCyACQQFqIQIMAQsLICEgDDYCACAMQQNqIQxBACEHQQAhBQJAA0AgGEUgCiAdSXINASADIAUgByAFIAdJGyICaiEGAn8gDyACIApqTQRAIAYgCiAQaiACaiAEEAYgAmohAiAQDAELIBcgECAGIAogF2ogAmogBCAcIBsQBSACaiICIApqIA9JGwshBiACIAtLBEAgACAOQQN0aiILIAI2AgQgCyAMIAprNgIAIAIgCmogEyACIBMgCmtLGyETIA5BAWohDiACQYAgSw0CIAIhCyACIANqIARGDQILICAgCiAZcUEDdGohDQJAAkACQCAGIApqIAJqLQAAIAIgA2otAABJBEAgESAKNgIAIAogGksNASAUQQxqIREMBQsgEiAKNgIAIAogGk0NAiANIRIgAiEHDAELIAIhBSANQQRqIhEhDQsgGEEBayEYIA0oAgAhCgwBCwsgFEEMaiESCyASQQA2AgAgEUEANgIAIAEgE0EIazYCHAsgFEEQaiQAIA4LmwYBFH8jAEEQayITJAACQCADIAEoAgQiCiABKAIcIgJqSQ0AIAMgCmshCwNAIAIgC09FBEAgASACIApqIAQgCyAJQQAQECACaiECDAELCyABIAs2AhxBASABKAIQIgIgAyABKAIEIhdrIgxBASABKAK4AXQiC2sgAiAMIAJrIAtLGyABKAIYGyIPIA9BAU0bIRggDEF/IAEoArwBQQFrdEF/cyIUayICQQAgAiAMTRshFSAGIAZBA2oiAiACIAZJGyEZIAEoAmQiGiAMIBRxQQN0aiIQQQRqIREgASgCXCADKQAAIAh+QcAAIAEoAsABa62Ip0ECdGoiGygCACENQf8fIAEoAswBIgIgAkH/H08bIRwgA0EEaiEWIAdBAWshCyAMIAEoAgxrIR0gDEEJaiESQQEgASgCxAF0IQcgBiECA0AgAiAZRwRAAkACfyACQQNGBEAgBSgCAEEBawwBCyAFIAJBAnRqKAIACyIKQQFrIB1PIAwgCmsgD0lyDQAgAygAACADIAprKAAARw0AIBYgFiAKayAEEAZBBGoiCiALTQ0AIAAgDkEDdGoiCyAKNgIEIAsgAiAGa0EBajYCACAOQQFqIQ4gCiAcSw0DIAoiCyADaiAERg0DCyACQQFqIQIMAQsLIBsgDDYCACAMQQNqIQxBACEFQQAhBgJAA0AgB0UgDSAYSXINASALIAMgBiAFIAUgBksbIgJqIA0gF2oiDyACaiAEEAYgAmoiAkkEQCAAIA5BA3RqIgsgAjYCBCALIAwgDWs2AgAgAiANaiASIAIgEiANa0sbIRIgDkEBaiEOIAJBgCBLDQIgAiELIAIgA2ogBEYNAgsgGiANIBRxQQN0aiEKAkACQAJAIAIgD2otAAAgAiADai0AAEkEQCAQIA02AgAgDSAVSw0BIBNBDGohEAwFCyARIA02AgAgDSAVTQ0CIAohESACIQUMAQsgAiEGIApBBGoiECEKCyAHQQFrIQcgCigCACENDAELCyATQQxqIRELIBFBADYCACAQQQA2AgAgASASQQhrNgIcCyATQRBqJAAgDgtPAQJ/IAAgACgCBCIBQQFqNgIEIAAgACgCAEEBIAF0cjYCACAAEA1BACEBIAAoAgwiAiAAKAIQSQR/IAIgACgCCGsgACgCBEEAR2oFQQALCwUAEAIAC3ABBH8gAEIANwIAIAIEQCABQQpqIQYgASgCBCEEQQAhAkEAIQEDQCABIAR2RQRAIAIgBiABQQN0ai0AACIFIAIgBUsbIQIgAUEBaiEBIAMgBUEWS2ohAwwBCwsgACACNgIEIAAgA0EIIARrdDYCAAsLuAEAIABCADcCrOkBIABCADcD8OkBIABBjICA4AA2AqhQIABBADYCoOsBIABCADcDiOoBIABBATYClOsBIABCAzcDgOoBIABBtOkBakIANwIAIABB+OkBakIANwMAIABBoBApAgA3AqzQASAAQbTQAWpBqBAoAgA2AgAgACAAQRBqNgIAIAAgAEGgMGo2AgQgACAAQZggajYCCCAAIABBqNAAajYCDCAAQQFBBSAAKALs6gEbNgK86QEL7bYBAkN/AX4jAEGAAWsiHiQAIAcEQCAHKAIIIQYgBygCBCEFCyAFQQBHIAZBAEdxIT8gAEGgMGohQCAAQbjQAWohNyAAQZggaiFBIAZBCGshQiAAQajQAGohQyAFQQhqITogBSAGaiEvIABBEGohOyAAQazQAWohRCAHQaTQAGohRSAHQZQgaiFGIAdBnDBqIUcgB0EMaiFIIABBwOkBaiE8IABBkOoBaiE4IAEhKQJAAkACQAJAA0BBAUEFIAAoAuzqASIPGyEIAkADQCAEIAhJDQECQCAEQQRJIA9yDQAgAygAAEFwcUHQ1LTCAUcNAEG4fyEKIARBCEkNByADKAAEIgtBd0sEQEFyIQoMCAsgBCALQQhqIhJJDQcgC0GAf0sEQCASIQoMCAsgBCASayEEIAMgEmohAwwBCwsCQCAHBEAgACAAKAK46QEgBygCBCAHKAIIakc2AqTrASAAEMEBIAAgBygCqNUBNgKg6wEgACAHKAIEIhI2ArTpASAAIBI2ArDpASAAIBIgBygCCGoiEjYCrOkBIAAgEjYCuOkBIAcoAqzVAQRAIAAgRTYCDCAAIEY2AgggACBHNgIEIAAgSDYCACAAQoGAgIAQNwOI6gEgACAHKAKo0AE2AqzQASAAIAcoAqzQATYCsNABIAAgBygCsNABNgK00AEMAgsgAEIANwOI6gEMAQsgABDBASA/RQRAIAAoAqzpASESDAELIAUhEgJAIAZBCEkNACASKAAAQbfIwuF+Rw0AIAAgEigABDYCoOsBQWIhCiAGQQhGDQcgQyA6IEIgOxDMASISQYh/Sw0HIB5BHzYCfCAeIB5B/ABqIg4gHkH4AGoiDSASIDpqIgsgLyALaxATIg9BiH9LDQcgHigCfCIIQR9LDQcgHigCeCISQQlPDQcgQSAeIAhBgBRBgBUgEiA3EFogHkE0NgJ8IB4gDiANIAsgD2oiCyAvIAtrEBMiD0GIf0sNByAeKAJ8IghBNEsNByAeKAJ4IhJBCk8NByBAIB4gCEGgFUGAFyASIDcQWiAeQSM2AnwgHiAOIA0gCyAPaiILIC8gC2sQEyIPQYh/Sw0HIB4oAnwiCEEjSw0HIB4oAngiEkEKTw0HIDsgHiAIQcAXQdAYIBIgNxBaIAsgD2oiGUEMaiISIC9LDQcgLyASayEPQQAhEgNAIBJBA0cEQCAZKAAAIghBAWsgD08NCSBEIBJBAnRqIAg2AgAgEkEBaiESIBlBBGohGQwBCwsgGSAFayISQYh/Sw0HIABCgYCAgBA3A4jqASAFIBJqIRILIAAgACgCrOkBIgo2ArjpASAAKAKw6QEhCCAAIBI2ArDpASAAIC82AqzpASAAIBIgCCAKa2o2ArTpASAvIRILIAJFIBIgKUZyRQRAIAAgEjYCuOkBIAAgKTYCrOkBIAAoArDpASEIIAAgKTYCsOkBIAAgKSAIIBJrajYCtOkBC0G4fyEKIARBBUEJIAAoAuzqASISG0kNBSADQQFBBSASGyASEMMBIghBiH9LDQQgBCAIQQNqSQ0FIDwgAyAIIBIQxAEiEkGIf0sEQCASIQgMBQsgEg0DAkACQCAAKAKw6wFBAUcNACAAKAKs6wEiCkUNACAAKAKc6wFFDQAgCigCBCAeIAAoAtzpASINNgIAQQFrIgsgHkEEEH6ncSESIAooAgAhDwNAIA0gDyASQQJ0aigCACIOBH8gDigCqNUBBUEACyIKRwRAIAsgEnFBAWohEiAKDQELCyAORQ0AIAAQdSAAQX82AqjrASAAIA42ApzrASAAIAAoAtzpASISNgKg6wEMAQsgACgC3OkBIRILAkAgEkUNACAAKAKg6wEgEkYNAEFgIQgMBQsCQCAAKALg6QEEQCAAIAAoAvDqASISRTYC9OoBIBINASA4QQBB2AAQCRogAEL56tDQ58mh5OEANwOw6gEgAELP1tO+0ser2UI3A6DqASAAQtbrgu7q/Yn14AA3A5jqAQwBCyAAQQA2AvTqAQsgACAAKQPw6QEgCK18NwPw6QEgACgCuOsBIgoEQCAAIAAoAtDpASISIAogCiASSxs2AtDpAQsgAiApaiE0IAQgCGshBCADIAhqIQMgKSESA0AgBEEDSQ0EIAMvAAAiPSADLQACQRB0ciIPQQN2IQpBbCEIID1BAXZBA3EiCyEZAkACQCALQQFrDgMBAAcACyAKIRkLIBkgBEEDayJJSw0EIANBA2oiHCA0IBwgNEkbIDQgEiAcTRshAwJAAkACQAJAAkACQAJAIAtBAWsOAwEEDAALIBkgNCASa0sNCSASRQRAIBkNAkEAIRkMBQsgEiAcIBkQChogGSEIDAULIAogAyASa0sNCCASDQEgD0EISQ0DC0G2fyEIDAkLIBIgHC0AACAKEAkaIAohCAwCCyADIBJrIRdBACExIwBB0AJrIgkkAAJAAkAgACgClOsBIgMEfyAAKALQ6QEFQYCACAsgGUkNAAJAIBlBAkkNACAcLQAAIgRBA3EhFiADBH8gACgC0OkBBUGAgAgLIQ8CQAJAAkACQAJAAkACQAJAAkACQCAWQQFrDgMDAQACCyAAKAKI6gENAEFiIQQMCwsgGUEFSQ0IQQMhDiAcKAAAIQgCfwJ/AkACQAJAIARBAnZBA3EiA0ECaw4CAQIACyAIQQ52Qf8HcSEQIAhBBHZB/wdxIRQgA0EARwwDCyAIQRJ2IRAgCEEEdkH//wBxIRRBBAwBCyAcLQAEQQp0IAhBFnZyIRAgCEEEdkH//w9xIRRBBQshDkEBCyEIQbp/IQQgEkEBIBQbRQ0KIA8gFEkNCCAUQQZJIAhxBEBBaCEEDAsLIA4gEGoiDSAZSw0IIA8gFyAPIBdJGyIDIBRJDQogACASIBcgFCADQQAQdAJAIAAoAqTrAUUgFEGBBklyDQBBACEEA0AgBEGDgAFLDQEgBEFAayEEDAALAAsgFkEDRgRAIA4gHGohCiAAKAIMIg8tAAFBCHQhAyAAKAL86wEhBCAIRQRAIAMEQCAJQeABaiAKIBAQCyIRQYh/Sw0JIA9BBGohHyAEIBRqISQgDy8BAiEMIBRBBE8EQCAkQQNrIQpBACAMa0EfcSELIAkoAugBIQ4gCSgC7AEhEyAJKALwASEIIAkoAuABIRAgCSgC5AEhEQNAIBFBIEsEQEGwJCEODAoLAkAgCCAOTQRAIBFBB3EhFSARQQN2IRBBASERDAELIA4gE0YNCiARIBFBA3YiAyAOIBNrIA4gA2sgE08iERsiEEEDdGshFQsgDiAQayIOKAAAIRAgEUUgBCAKT3INCCAEIB8gECAVdCALdkECdGoiAy8BADsAACAEIAMtAANqIgQgHyAQIBUgAy0AAmoiA3QgC3ZBAnRqIg8vAQA7AAAgBCAPLQADaiEEIAMgDy0AAmohEQwACwALIAkoAuQBIhFBIU8EQCAJQbAkNgLoAQwJCyAJKALoASIKIAkoAvABTwRAIAkgEUEHcSIDNgLkASAJIAogEUEDdmsiCDYC6AEgCSAIKAAANgLgASADIREMCQsgCiAJKALsASIIRg0IIAkgESAKIAhrIBFBA3YiAyAKIANrIAhJGyIDQQN0ayIRNgLkASAJIAogA2siAzYC6AEgCSADKAAANgLgAQwICyAEIBQgCiAQIA8QyQEhEQwICyADBEAgBCAUIAogECAPEMgBIREMCAsgBCAUIAogECAPEMcBIREMBwsgAEGs1QFqIQ8gDiAcaiEOIABBqNAAaiELIAAoAvzrASEKIAhFBEAgCyAOIBAgDxDNASIRQYh/Sw0HIBAgEU0NAyAKIBQgDiARaiAQIBFrIAsQyQEhEQwHCyAURQRAQbp/IREMBwsgEEUEQEFsIREMBwsgFEEIdiIEIBAgFEkEfyAQQQR0IBRuBUEPC0EEdCIIQYwSaigCAGwgCEGIEmooAgBqIgNBBXYgA2ogCEGAEmooAgAgCEGEEmooAgAgBGxqSQRAIAsgDiAQIA8QzAEiEUGIf0sNByAQIBFNDQMgCiAUIA4gEWogECARayALEMgBIREMBwsgCyAOIBAgDxDNASIRQYh/Sw0GIBAgEU0NAiAKIBQgDiARaiAQIBFrIAsQxwEhEQwGC0ECIRQCfwJAAkACQCAEQQJ2QQNxQQFrDgMBAAIAC0EBIRQgBEEDdgwCCyAcLwAAQQR2DAELIBlBAkYNCEEDIRQgHC8AACAcLQACQRB0ckEEdgshCEG6fyEEIBJBASAIG0UNCSAIIA9LDQcgCCAXSw0JIAAgEiAXIAggDyAXIA8gF0kbQQEQdCAZIAggFGoiDUEgakkEQCANIBlLDQggFCAcaiEEIAAoAvzrASEDAkAgACgChOwBQQJGBEAgAyAEIAhBgIAEayIDEAgaIABBiOwBaiADIARqQYCABBAIGgwBCyADIAQgCBAIGgsgACAINgKI6wEgACAAKAL86wE2AvjqAQwHCyAAQQA2AoTsASAAIAg2AojrASAAIBQgHGoiAzYC+OoBIAAgAyAIajYCgOwBDAYLAn8CQAJAAkAgBEECdkEDcUEBaw4DAQACAAtBASEUIARBA3YMAgsgGUECRg0IQQIhFCAcLwAAQQR2DAELIBlBBEkNB0EDIRQgHC8AACAcLQACQRB0ckEEdgshCkG6fyEEIBJBASAKG0UNCCAKIA9LDQYgCiAXSw0IIAAgEiAXIAogDyAXIA8gF0kbQQEQdCAUIBxqIgMtAAAhCCAAKAL86wEhBAJAIAAoAoTsAUECRgRAIAQgCCAKQYCABGsQCRogAEGI7AFqIAMtAABBgIAEEAkaDAELIAQgCCAKEAkaCyAAIAo2AojrASAAIAAoAvzrATYC+OoBIBRBAWohDQwFC0G4fyERDAMLIBUhEQsgCSARNgLkASAJIA42AugBIAkgEDYC4AELAkAgJCAEa0ECSQ0AICRBAmshD0EAIAxrQR9xIQoDQAJAIBFBIU8EQCAJQbAkNgLoAQwBCyAJAn8gCSgC6AEiCyAJKALwAU8EQCAJIAsgEUEDdmsiDjYC6AFBASEqIBFBB3EMAQsgCyAJKALsASIIRg0BIAkgCyARQQN2IgMgCyAIayALIANrIAhPIiobIgNrIg42AugBIBEgA0EDdGsLIhE2AuQBIAkgDigAACIDNgLgASAqRSAEIA9Lcg0AIAQgHyADIBF0IAp2QQJ0aiIDLwEAOwAAIAkgCSgC5AEgAy0AAmoiETYC5AEgBCADLQADaiEEDAELCwNAIAQgD0sNASAEIB8gCSgC4AEgEXQgCnZBAnRqIgMvAQA7AAAgCSAJKALkASADLQACaiIRNgLkASAEIAMtAANqIQQMAAsACwJAIAQgJE8NACAEIB8gCSgC4AEgEXRBACAMa3ZBAnRqIgMtAAA6AAAgAy0AA0EBRgRAIAkoAuQBIAMtAAJqIREMAQsgCSgC5AEiEUEfSw0AQSAgESADLQACaiIDIANBIE8bIRELQWxBbCAUIBFBIEcbIAkoAugBIAkoAuwBRxshEQsgACgChOwBQQJGBEAgAEGI7AFqIAAoAoDsAUGAgARrQYCABBAIGiAAKAL86wEiA0Hg/wNqIAMgFEGAgARrEAoaIAAgACgC/OsBQeD/A2o2AvzrASAAIAAoAoDsAUEgazYCgOwBCyARQYh/Sw0BIAAgFDYCiOsBIABBATYCiOoBIAAgACgC/OsBNgL46gEgFkECRgRAIAAgAEGo0ABqNgIMCyANIgRBiH9LDQMLIAAoApTrAQR/IAAoAtDpAQVBgIAICyEOIA0gGUYNASAZIA1rIQwgACgCtOkBIQ8gGSAcaiEQIAAoAqTrASEKAn8CQAJ/IA0gHGoiFi0AACIRwCIDQQBOBEAgFkEBagwBCyADQX9GBEAgDEEDSQ0FIBZBA2ohCCAWLwABQYD+AWohEQwCCyAMQQFGDQQgFi0AASARQQh0ckGAgAJrIREgFkECagshCCARDQBBbCEEIAggEEcNBEEAIREgDAwBC0G4fyEEIAhBAWoiEyAQSw0DIAgtAAAiDUEDcQ0BIABBEGogACANQQZ2QSNBCSATIBAgE2tBwBdB0BhBgBkgACgCjOoBIAogESAAQazVAWoiCxBzIgNBiH9LDQEgAEGYIGogAEEIaiANQQR2QQNxQR9BCCADIBNqIgggECAIa0GAFEGAFUGQHSAAKAKM6gEgACgCpOsBIBEgCxBzIgNBiH9LDQFBbCEEIABBoDBqIABBBGogDUECdkEDcUE0QQkgAyAIaiIIIBAgCGtBoBVBgBdBoB8gACgCjOoBIAAoAqTrASARIAsQcyIDQYh/Sw0DIAMgCGogFmsLIgRBiH9LDQICQCASQQBHIBdBAEdxRSARQQBKcQ0AAkACQCASIBcgDiAOIBdLGyIDQQAgA0EAShtqIA9rIgNB/P//H00EQCAKIANBgYCACElyIBFBCUhyDQIgCUHgAWogACgCCCAREMABDAELIAlB4AFqIAAoAgggERDAASAJKALkAUEZSyExIAoNAQsgCSgC4AFBE0shCgsgDCAEayELIAQgFmohCCAAQQA2AqTrASAAKAKE7AEhAwJAIAoEQAJ/IANBAUYEQCAAKAL86wEMAQsgEiAXQQAgF0EAShtqCyElIAkgACgC+OoBIgQ2AswCIAAoAoDsASEXIBFFBEAgEiEMDAILIAAoArjpASEhIAAoArTpASEnIAAoArDpASEPIABBATYCjOoBIABBrNABaiE+IAlB1AFqIS5BACEDA0AgA0EDRwRAIC4gA0ECdCIEaiAEID5qKAIANgIAIANBAWohAwwBCwtBbCEEIAlBqAFqIgMgCCALEAtBiH9LDQUgCUG8AWogAyAAKAIAEBIgCUHEAWogAyAAKAIIEBIgCUHMAWogAyAAKAIEEBJBCCARIBFBCE4bIi1BACAtQQBKGyEqIBFBAWshICASIA9rITMgCSgCsAEhAyAJKALYASEKIAkoAtQBIRUgCSgCrAEhCCAJKAK0ASEiIAkoArgBITIgCSgCyAEhGyAJKALQASEsIAkoAsABISYgCSgCqAEhDCAJKALEASErIAkoAswBITAgCSgCvAEhOSAxRSEYQQAhFANAIBUhFiAUICpGBEAgCSAwNgLMASAJIDk2ArwBIAkgAzYCsAEgCSArNgLEASAJIAw2AqgBIABBmOwBaiEfIABBiOwFaiEkIABBiOwBaiEaICVBIGshHSAxRSEoIBIhDANAIBEgKkcEQCAJKALAASAJKAK8AUEDdGoiCi0AAiEjIAkoAtABIAkoAswBQQN0aiIILQACIRsgCSgCyAEgCSgCxAFBA3RqIgMtAAMhLCAILQADISYgCi0AAyEYIAMvAQAhFSAILwEAIRYgCi8BACENIAMoAgQhCyAKKAIEIRQgCCgCBCEOAkAgAy0AAiIQQQJPBEACQCAoIBBBGUlyRQRAIAsgCSgCqAEiEyAJKAKsASIDdEEFIBBrdkEFdGoCQCADIBBqQQVrIgNBIU8EQCAJQbAkNgKwAQwBCyAJKAKwASIKIAkoArgBTwRAIAkgA0EHcSIINgKsASAJIAogA0EDdmsiAzYCsAEgCSADKAAAIhM2AqgBIAghAwwBCyAKIAkoArQBIghGDQAgCSADIAogCGsgA0EDdiIDIAogA2sgCEkbIghBA3RrIgM2AqwBIAkgCiAIayIINgKwASAJIAgoAAAiEzYCqAELIAkgA0EFaiIKNgKsASATIAN0QRt2aiEQDAELIAkgCSgCrAEiAyAQaiIKNgKsASAJKAKoASADdEEAIBBrdiALaiEQIApBIU8EQCAJQbAkNgKwAQwBCyAJKAKwASILIAkoArgBTwRAIAkgCkEHcSIDNgKsASAJIAsgCkEDdmsiCDYCsAEgCSAIKAAANgKoASADIQoMAQsgCyAJKAK0ASIIRg0AIAkgCiALIAhrIApBA3YiAyALIANrIAhJGyIDQQN0ayIKNgKsASAJIAsgA2siAzYCsAEgCSADKAAANgKoAQsgCSkC1AEhSyAJIBA2AtQBIAkgSzcC2AEMAQsgFEUhCCAQRQRAIC4gFEEAR0ECdGooAgAhAyAJIC4gCEECdGooAgAiEDYC1AEgCSADNgLYASAJKAKsASEKDAELIAkgCSgCrAEiA0EBaiIKNgKsAQJAAkAgCCALaiAJKAKoASADdEEfdmoiCEEDRgRAIAkoAtQBQQFrIgNBfyADGyEQDAELIC4gCEECdGooAgAiA0F/IAMbIRAgCEEBRg0BCyAJIAkoAtgBNgLcAQsgCSAJKALUATYC2AEgCSAQNgLUAQsgGyAjaiEIAkAgG0UEQCAKIQMMAQsgCSAKIBtqIgM2AqwBIAkoAqgBIAp0QQAgG2t2IA5qIQ4LAkAgCEEUSQ0AIANBIU8EQCAJQbAkNgKwAQwBCyAJKAKwASIKIAkoArgBTwRAIAkgA0EHcSIINgKsASAJIAogA0EDdmsiAzYCsAEgCSADKAAANgKoASAIIQMMAQsgCiAJKAK0ASIIRg0AIAkgAyAKIAhrIANBA3YiAyAKIANrIAhJGyIIQQN0ayIDNgKsASAJIAogCGsiCDYCsAEgCSAIKAAANgKoAQsCQCAjRQRAIAMhCAwBCyAJIAMgI2oiCDYCrAEgCSgCqAEgA3RBACAja3YgFGohFAsCQCAIQSFPBEBBsCQhAyAJQbAkNgKwAQwBCyAJKAKwASIDIAkoArgBTwRAIAkgCEEHcSIKNgKsASAJIAMgCEEDdmsiAzYCsAEgCSADKAAANgKoASAKIQgMAQsgAyAJKAK0ASILRg0AIAkgAyADIAtrIAhBA3YiCiADIAprIAtJGyIKayIDNgKwASAJIAggCkEDdGsiCDYCrAEgCSADKAAANgKoAQsCQCAgICpGDQAgCSAYQQJ0QbAjaigCACAJKAKoASILQQAgCCAYaiIIa3ZxIA1qNgK8ASAJICZBAnRBsCNqKAIAIAtBACAIICZqIghrdnEgFmo2AswBAkAgCEEhTwRAQbAkIQMgCUGwJDYCsAEMAQsgCSgCuAEgA00EQCAJIAhBB3EiCjYCrAEgCSADIAhBA3ZrIgM2ArABIAkgAygAACILNgKoASAKIQgMAQsgAyAJKAK0ASINRg0AIAkgAyADIA1rIAhBA3YiCiADIAprIA1JGyIKayIDNgKwASAJIAggCkEDdGsiCDYCrAEgCSADKAAAIgs2AqgBCyAJIAggLGoiCDYCrAEgCSAsQQJ0QbAjaigCACALQQAgCGt2cSAVajYCxAEgCEEhTwRAIAlBsCQ2ArABDAELIAkoArgBIANNBEAgCSAIQQdxNgKsASAJIAMgCEEDdmsiAzYCsAEgCSADKAAANgKoAQwBCyADIAkoArQBIgpGDQAgCSAIIAMgCmsgCEEDdiIIIAMgCGsgCkkbIghBA3RrNgKsASAJIAMgCGsiAzYCsAEgCSADKAAANgKoAQsCQAJAIAAoAoTsAUECRgRAIAkoAswCIgsgCUHgAWogKkEHcUEMbGoiGCgCACIDaiINIAAoAoDsASIISwRAIAggC0cEQCAIIAtrIgggJSAMa0sNCyAMIAsgCBBZIBggAyAIayIDNgIAIAggDGohDAsgCSAaNgLMAiAAQQA2AoTsAQJAAkACQCADQYCABEoNACAMIBgoAgQiFSADaiIKaiAdSw0AIApBIGogJSAMa00NAQsgCSAYKAIINgKAASAJIBgpAgA3A3ggDCAlIAlB+ABqIAlBzAJqICQgDyAnICEQGiEKDAELIAMgGmohCyADIAxqIQggGCgCCCENIBopAAAhSyAMIBopAAg3AAggDCBLNwAAAkAgA0ERSQ0AIB8pAAAhSyAMIB8pAAg3ABggDCBLNwAQIANBEGtBEUgNACAMQSBqIQMgHyETA0AgEykAECFLIAMgEykAGDcACCADIEs3AAAgEykAICFLIAMgEykAKDcAGCADIEs3ABAgE0EgaiETIANBIGoiAyAISQ0ACwsgCCANayEDIAkgCzYCzAIgCCAPayANSQRAIA0gCCAna0sNDyAhICEgAyAPayILaiIDIBVqTwRAIAggAyAVEAoaDAILIAsgFWohFSAIIANBACALaxAKIAtrIQggDyEDCyANQRBPBEAgAykAACFLIAggAykACDcACCAIIEs3AAAgFUERSA0BIAggFWohCyAIQRBqIQgDQCADKQAQIUsgCCADKQAYNwAIIAggSzcAACADKQAgIUsgCCADKQAoNwAYIAggSzcAECADQSBqIQMgCEEgaiIIIAtJDQALDAELAkAgDUEHTQRAIAggAy0AADoAACAIIAMtAAE6AAEgCCADLQACOgACIAggAy0AAzoAAyAIIAMgDUECdCILQeDPAGooAgBqIgMoAAA2AAQgAyALQYDQAGooAgBrIQMMAQsgCCADKQAANwAACyAVQQlJDQAgCCAVaiENIAhBCGoiCyADQQhqIgNrQQ9MBEADQCALIAMpAAA3AAAgA0EIaiEDIAtBCGoiCyANSQ0ADAILAAsgAykAACFLIAsgAykACDcACCALIEs3AAAgFUEZSA0AIAhBGGohCANAIAMpABAhSyAIIAMpABg3AAggCCBLNwAAIAMpACAhSyAIIAMpACg3ABggCCBLNwAQIANBIGohAyAIQSBqIgggDUkNAAsLIApBiH9LBEAgCiEEDA4LIBggEDYCCCAYIA42AgQgGCAUNgIAICQhFwwDCyANQSBrIQgCQAJAIA0gF0sNACAMIBgoAgQiFiADaiIKaiAISw0AIApBIGogJSAMa00NAQsgCSAYKAIINgKQASAJIBgpAgA3A4gBIAwgJSAIIAlBiAFqIAlBzAJqIBcgDyAnICEQciEKDAILIAMgDGohCCAYKAIIIRMgCykAACFLIAwgCykACDcACCAM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SyAMIBMpABg3ABggDCBLNwAQIAhBEGtBEUgNACATQRBqIQMgDEEgaiEIA0AgAykAECFLIAggAykAGDcACCAIIEs3AAAgAykAICFLIAggAykAKDcAGCAIIEs3ABAgA0EgaiEDIAhBIGoiCCAKSQ0ACwsgCiANayEDIAkgCzYCzAIgCiAPayANSQRAIA0gCiAna0sNDSAhICEgAyAPayIIaiIDIBVqTwRAIAogAyAVEAoaDAMLIAggFWohFSAKIANBACAIaxAKIAhrIQogDyEDCyANQRBPBEAgAykAACFLIAogAykACDcACCAKIEs3AAAgFUERSA0CIAogFWohCyAKQRBqIQgDQCADKQAQIUsgCCADKQAYNwAIIAggSzcAACADKQAgIUsgCCADKQAoNwAYIAggSzcAECADQSBqIQMgCEEgaiIIIAtJDQALDAILAkAgDUEHTQRAIAogAy0AADoAACAKIAMtAAE6AAEgCiADLQACOgACIAogAy0AAzoAAyAKIAMgDUECdCIIQeDPAGooAgBqIgMoAAA2AAQgAyAIQYDQAGooAgBrIQMMAQsgCiADKQAANwAACyAVQQlJDQEgCiAVaiELIApBCGoiCCADQQhqIgNrQQ9MBEADQCAIIAMpAAA3AAAgA0EIaiEDIAhBCGoiCCALSQ0ADAMLAAsgAykAACFLIAggAykACDcACCAIIEs3AAAgFUEZSA0BIApBGGohCANAIAMpABAhSyAIIAMpABg3AAggCCBLNwAAIAMpACAhSyAIIAMpACg3ABggCCBLNwAQIANBIGohAyAIQSBqIgggC0kNAAsMAQsCQAJAIAkoAswCIgogDSgCACIDaiILIBdLDQAgDCANKAIEIhAgA2oiDmogHUsNACAOQSBqICUgDGtNDQELIAkgDSgCCDYCcCAJIA0pAgA3A2ggDCAlIAlB6ABqIAlBzAJqIBcgDyAnICEQGiEODAELIAMgDGohCCANKAIIIQ0gCikAACFLIAwgCikACDcACCAMIEs3AAACQCADQRFJDQAgCikAECFLIAwgCikAGDcAGCAMIEs3ABAgA0EQa0ERSA0AIApBEGohAyAMQSBqIQoDQCADKQAQIUsgCiADKQAYNwAIIAogSzcAACADKQAgIUsgCiADKQAoNwAYIAogSzcAECADQSBqIQMgCkEgaiIKIAhJDQALCyAI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a0EPTARAA0AgCCADKQAANwAAIANBCGohAyAIQQhqIgggDUkNAAwCCwALIAMpAAAhSyAIIAMpAAg3AAggCCBLNwAAIAxBGUgNACAKQRhqIQgDQCADKQAQIUsgCCADKQAYNwAIIAggSzcAACADKQAgIUsgCCADKQAoNwAYIAggSzcAECADQSBqIQMgCEEgaiIIIA1JDQALCyAEQYh/Sw0MIBFBAWshESAEIAtqIQsMAQsLIBFBAEwNCCADIA5HBEBBun8hBCADIA5rIgMgICALa0sNCyALIA4gAxBZIAMgC2ohCyAIIANrIQgLIAkgAEGI7AFqIgM2AswCIABBADYChOwBIABBiOwFaiEWIAkgCDYCqAEgCSAMNgKsASAJIBA2ArABAkACQAJAIAhBgIAESg0AIAsgCCAMaiIEaiAgQSBrSw0AIARBIGogICALa00NAQsgCSAJKAKwATYCMCAJIAkpA6gBNwMoIAsgICAJQShqIAlBzAJqIBYgDyAjIBoQGiEEDAELIAMgCGohDSAIIAtqIQogAykAACFLIAsgAykACDcACCALIEs3AAACQCAIQRFJDQAgACkAmOwBIUsgCyAAQaDsAWopAAA3ABggCyBLNwAQIAhBEGtBEUgNACAAQZjsAWohAyALQSBqIQgDQCADKQAQIUsgCCADKQAYNwAIIAggSzcAACADKQAgIUsgCCADKQAoNwAYIAggSzcAECADQSBqIQMgCEEgaiIIIApJDQALCyAKIBBrIQMgCSANNgLMAiAKIA9rIBBJBEAgECAKICNrSw0KIBogGiADIA9rIghqIgMgDGpPBEAgCiADIAwQChoMAgsgCiADQQAgCGsQCiAJIAggDGoiDDYCrAEgCGshCiAPIQMLIBBBEE8EQCADKQAAIUsgCiADKQAINwAIIAogSzcAACAMQRFIDQEgCiAMaiENIApBEGohCANAIAMpABAhSyAIIAMpABg3AAggCCBLNwAAIAMpACAhSyAIIAMpACg3ABggCCBLNwAQIANBIGohAyAIQSBqIgggDUkNAAsMAQsCQCAQQQdNBEAgCiADLQAAOgAAIAogAy0AAToAASAKIAMtAAI6AAIgCiADLQADOgADIAogAyAQQQJ0IghB4M8AaigCAGoiAygAADYABCADIAhBgNAAaigCAGshAwwBCyAKIAMpAAA3AAALIAko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ayIDNgLoASAJIAMoAAA2AuABDAELIAMgCSgC7AEiDkYNACAJIAQgAyAOayAEQQN2IgQgAyAEayAOSRsiBEEDdGs2AuQBIAkgAyAEayIDNgLoASAJIAMoAAA2AuABCyAJIAg2AqgBIAkgETYCrAEgCSAKNgKwAQJAAkACQCAJKALMAiIDIAhqIg4gFksNACALIAggEWoiBGogFUsNACAEQSBqICAgC2tNDQELIAkgCSgCsAE2AiAgCSAJKQOoATcDGCALICAgCUEYaiAJQcwCaiAWIA8gIyAaEBohBAwBCyAIIAtqIQwgAykAACFLIAsgAykACDcACCALIEs3AAACQCAIQRFJDQAgAykAECFLIAsgAykAGDcAGCALIEs3ABAgCEEQa0ERSA0AIANBEGohAyALQSBqIQgDQCADKQAQIUsgCCADKQAYNwAIIAggSzcAACADKQAgIUsgCCADKQAoNwAYIAggSzcAECADQSBqIQMgCEEgaiIIIAxJDQALCyAMIAprIQMgCSAONgLMAiAMIA9rIApJBEAgCiAMICNrSw0LIBogGiADIA9rIg5qIgMgEWpPBEAgDCADIBEQChoMAgsgDCADQQAgDmsQCiAJIA4gEWoiETYCrAEgDmshDCAPIQMLIApBEE8EQCADKQAAIUsgDCADKQAINwAIIAwgSzcAACARQRFIDQEgDCARaiEKIAxBEGohCANAIAMpABAhSyAIIAMpABg3AAggCCBLNwAAIAMpACAhSyAIIAMpACg3ABggCCBLNwAQIANBIGohAyAIQSBqIgggCkkNAAsMAQsCQCAKQQdNBEAgDCADLQAAOgAAIAwgAy0AAToAASAMIAMtAAI6AAIgDCADLQADOgADIAwgAyAKQQJ0IghB4M8AaigCAGoiAygAADYABCADIAhBgNAAaigCAGshAwwBCyAMIAMpAAA3AAALIAkoAqwBIg5BCUkNACAMIA5qIQogDEEIaiIIIANBCGoiA2tBD0wEQANAIAggAykAADcAACADQQhqIQMgCEEIaiIIIApJDQAMAgsACyADKQAAIUsgCCADKQAINwAIIAggSzcAACAOQRlIDQAgDEEYaiEIA0AgAykAECFLIAggAykAGDcACCAIIEs3AAAgAykAICFLIAggAykAKDcAGCAIIEs3ABAgA0EgaiEDIAhBIGoiCCAKSQ0ACwsg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AWoiB0H//wNLDQEMAgsCQAJAIAcgDkkNACAHIAtqIgcpAAAgIlINACAAQQhqIAdBCGogChAGQQhqIQUgACAHayEIA0AgACADTSAHIA9Ncg0CIABBAWsiBi0AACAHQQFrIgctAABHDQIgBUEBaiEFIAYhAAwACwALAkAgCSAUc0H/AXENACAJQQh2IgcgGU0NACAHIBJqIgkpAAAgIlINACAAQQhqIAlBCGogCiATIA8QBUEIaiEFIAwgByAWamshCANAIAkgGk0gACADTXINAiAAQQFrIgYtAAAgCUEBayIJLQAARw0CIAVBAWohBSAGIQAMAAsACwJAAkACQCAIIA5LBEAgCCALaiIHKAAAIAAoAABHDQEMAwsgDSAec0H/AXENACANQQh2IgggGU0NACAIIBJqIgcoAAAgACgAAEYNAQsgACAAIANrQQh1akEBaiEADAULIAggFmohCAsgFSAAKQABIiJC48iVvcub741PfiImICSIp0ECdGoiBigCACEFIBwgJiAliKciFEEGdkH8//8fcWooAgAhDSAGIBE2AgAgAEEBaiEGAkACQCAFIA5JDQAgBSALaiIJKQAAICJSDQAgAEEJaiAJQQhqIAoQBkEIaiEFIAYgCWshCANAIAkgD00gAyAGT3INAiAGQQFrIgAtAAAgCUEBayIJLQAARw0CIAVBAWohBSAAIQYMAAsACwJAIA0gFHNB/wFxDQAgDUEIdiINIBlNDQAgDSASaiIJKQAAICJSDQAgAEEJaiAJQQhqIAogEyAPEAVBCGohBSARIA0gFmprIQgDQCAJIBpNIAMgBk9yDQIgBkEBayIALQAAIAlBAWsiCS0AAEcNAiAFQQFqIQUgACEGDAALAAsgB0EEaiEGIABBBGohBSAIIA5JBEAgBSAGIAogEyAPEAVBBGohBSAMIAhrIQgDQCAAIANNIAcgGk1yDQMgAEEBayIGLQAAIAdBAWsiBy0AAEcNAyAFQQFqIQUgBiEADAALAAsgBSAGIAoQBkEEaiEFIAAgB2shCANAIAAgA00gByAPTXINAiAAQQFrIgYtAAAgB0EBayIHLQAARw0CIAVBAWohBSAGIQAMAAsACyAGIQALIAAgA2shBwJAIAAgEE0EQCADKQAAISIgASgCDCIGIAMpAAg3AAggBiAiNwAAIAdBEUkNASADKQAQISIgASgCDCIGIAMpABg3ABggBiAiNwAQIAdBIUgNASADQRBqIQMgBiAHaiEJIAZBIGohBgNAIAMpABAhIiAGIAMpABg3AAggBiAiNwAAIAMpACAhIiAGIAMpACg3ABggBiAiNwAQIANBIGohAyAGQSBqIgYgCUkNAAsMAQsgASgCDCADIAMgB2ogEBAHCyABIAEoAgwgB2o2AgwgASgCBCEDIAdBgIAETwRAIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAMgCEEDajYCACADIAc7AQQgBCEGIAghBCAFQQNrIgdBgIAESQ0BCyABQQI2AiQgASADIAEoAgBrQQN1NgIoCyADIAc7AQYgASADQQhqNgIEIAAgBWoiAyEAIAMgGEsNACAVIAsgDEECaiIAaikAACIiQuPIlb3Lm++NT34gJIinQQJ0aiAANgIAIBUgA0ECayIIKQAAQuPIlb3Lm++NT34gJIinQQJ0aiAIIAtrNgIAIBcgIkKAxpX9y5vvjU9+ICOIp0ECdGogADYCACAXIANBAWsiACkAAEKAxpX9y5vvjU9+ICOIp0ECdGogACALazYCAANAAkAgBiEAIAMgGEsNACAdIAsgAyALayIIIABrIgYgDkkiBxsgBmohBSAGIA5rQXxLDQAgBSgAACADKAAARw0AIANBBGogBUEEaiAKIBMgCiAHGyAPEAUhBSABKAIMIQYCQCADIBBNBEAgAykAACEiIAYgAykACDcACCAGICI3AAAMAQsgBiADIAMgEBAHCyABKAIEIgZBATYCACAGQQA7AQQgBUEBaiIHQYCABE8EQCABQQI2AiQgASAGIAEoAgBrQQN1NgIoCyAGIAc7AQYgASAGQQhqNgIEIBcgAykAACIiQoDGlf3Lm++NT34gI4inQQJ0aiAINgIAIBUgIkLjyJW9y5vvjU9+ICSIp0ECdGogCDYCACADIAVqQQRqIQMgBCEGIAAhBAwBCwsgACEGIAMhAAwACwALAkAgDUUNAEEEIAV0IQdBACEAA0AgACAHTwRAQQQgCHQhB0EAIQADQCAAIAdPDQMgAEFAayEADAALAAUgAEFAayEADAELAAsACyAQIBJqIR0gCkEgayEQIAMgCSAMRmohAEE4IAhrrSEnQTggBWutISVBwAAgEWutISNBwAAgFGutISQDQCAAIBhPDQMgFSAAKQAAIiJC48iVvcub741PfiImICSIp0ECdGoiBSgCACEHIBcgIkKAgOz8y5vvjU9+IiggI4inQQJ0aiIMKAIAIQggHCAmICWIpyIUQQZ2Qfz//x9xaigCACEJIB8gKCAniKciHkEGdkH8//8fcWooAgAhDSAMIAAgC2siDDYCACAFIAw2AgACQAJAAkAgDEEBaiIRIARrIgUgDmtBfEsNACASIAUgFmtqIAUgC2ogBSAOSSIFGyIbKAAAIAAoAAFHDQAgAEEFaiAbQQRqIAogEyAKIAUbIA8QBSEHIABBAWoiACADayEIAkAgACAQTQRAIAMpAAAhIiABKAIMIgUgAykACDcACCAFICI3AAAgCEERSQ0BIAMpABAhIiABKAIMIgUgAykAGDcAGCAFICI3ABAgCEEhSA0BIANBEGohAyAFIAhqIQkgBUEgaiEFA0AgAykAECEiIAUgAykAGDcACCAFICI3AAAgAykAICEiIAUgAykAKDcAGCAFICI3ABAgA0EgaiEDIAVBIGoiBSAJSQ0ACwwBCyABKAIMIAMgAyAIaiAQEAcLIAEgASgCDCAIajYCDCABKAIEIQMgCEGAgARPBEAgAUEBNgIkIAEgAyABKAIAa0EDdTYCKAsgB0EEaiEFIANBATYCACADIAg7AQQgB0EBaiIHQf//A0sNAQwCCwJAAkAgByAOSQ0AIAcgC2oiBykAACAiUg0AIABBCGogB0EIaiAKEAZBCGohBSAAIAdrIQgDQCAAIANNIAcgD01yDQIgAEEBayIGLQAAIAdBAWsiBy0AAEcNAiAFQQFqIQUgBiEADAALAAsCQCAJIBRzQf8BcQ0AIAlBCHYiByAZTQ0AIAcgEmoiCSkAACAiUg0AIABBCGogCUEIaiAKIBMgDxAFQQhqIQUgDCAHIBZqayEIA0AgCSAaTSAAIANNcg0CIABBAWsiBi0AACAJQQFrIgktAABHDQIgBUEBaiEFIAYhAAwACwALAkACQAJAIAggDksEQCAIIAtqIgcoAAAgACgAAEcNAQwDCyANIB5zQf8BcQ0AIA1BCHYiCCAZTQ0AIAggEmoiBygAACAAKAAARg0BCyAAIAAgA2tBCHVqQQFqIQAMBQsgCCAWaiEICyAVIAApAAEiIkLjyJW9y5vvjU9+IiYgJIinQQJ0aiIGKAIAIQUgHCAmICWIpyIUQQZ2Qfz//x9xaigCACENIAYgETYCACAAQQFqIQYCQAJAIAUgDkkNACAFIAtqIgkpAAAgIlINACAAQQlqIAlBCGogChAGQQhqIQUgBiAJayEIA0AgCSAPTSADIAZPcg0CIAZBAWsiAC0AACAJQQFrIgktAABHDQIgBUEBaiEFIAAhBgwACwALAkAgDSAUc0H/AXENACANQQh2Ig0gGU0NACANIBJqIgkpAAAgIlINACAAQQlqIAlBCGogCiATIA8QBUEIaiEFIBEgDSAWamshCANAIAkgGk0gAyAGT3INAiAGQQFrIgAtAAAgCUEBayIJLQAARw0CIAVBAWohBSAAIQYMAAsACyAHQQRqIQYgAEEEaiEFIAggDkkEQCAFIAYgCiATIA8QBUEEaiEFIAwgCGshCANAIAAgA00gByAaTXINAyAAQQFrIgYtAAAgB0EBayIHLQAARw0DIAVBAWohBSAGIQAMAAsACyAFIAYgChAGQQRqIQUgACAHayEIA0AgACADTSAHIA9Ncg0CIABBAWsiBi0AACAHQQFrIgctAABHDQIgBUEBaiEFIAYhAAwACwALIAYhAAsgACADayEHAkAgACAQTQRAIAMpAAAhIiABKAIMIgYgAykACDcACCAGICI3AAAgB0ERSQ0BIAMpABAhIiABKAIMIgYgAykAGDcAGCAGICI3ABAgB0EhSA0BIANBEGohAyAGIAdqIQkgBkEgaiEGA0AgAykAECEiIAYgAykAGDcACCAGICI3AAAgAykAICEiIAYgAykAKDcAGCAGICI3ABAgA0EgaiEDIAZBIGoiBiAJSQ0ACwwBCyABKAIMIAMgAyAHaiAQEAcLIAEgASgCDCAHajYCDCABKAIEIQMgB0GAgARPBEAgAUEBNgIkIAEgAyABKAIAa0EDdTYCKAsgAyAIQQNqNgIAIAMgBzsBBCAEIQYgCCEEIAVBA2siB0GAgARJDQELIAFBAjYCJCABIAMgASgCAGtBA3U2AigLIAMgBzsBBiABIANBCGo2AgQgACAFaiIDIQAgAyAYSw0AIBUgCyAMQQJqIgBqKQAAIiJC48iVvcub741PfiAkiKdBAnRqIAA2AgAgFSADQQJrIggpAABC48iVvcub741PfiAkiKdBAnRqIAggC2s2AgAgFyAiQoCA7PzLm++NT34gI4inQQJ0aiAANgIAIBcgA0EBayIAKQAAQoCA7PzLm++NT34gI4inQQJ0aiAAIAtrNgIAA0ACQCAGIQAgAyAYSw0AIB0gCyADIAtrIgggAGsiBiAOSSIHGyAGaiEFIAYgDmtBfEsNACAFKAAAIAMoAABHDQAgA0EEaiAFQQRqIAogEyAKIAcbIA8QBSEFIAEoAgwhBgJAIAMgEE0EQCADKQAAISIgBiADKQAINwAIIAYgIjcAAAwBCyAGIAMgAyAQEAcLIAEoAgQiBkEBNgIAIAZBADsBBCAFQQFqIgdBgIAETwRAIAFBAjYCJCABIAYgASgCAGtBA3U2AigLIAYgBzsBBiABIAZBCGo2AgQgFyADKQAAIiJCgIDs/Mub741PfiAjiKdBAnRqIAg2AgAgFSAiQuPIlb3Lm++NT34gJIinQQJ0aiAINgIAIAMgBWpBBGohAyAEIQYgACEEDAELCyAAIQYgAyEADAALAAsCQCANRQ0AQQQgBXQhB0EAIQADQCAAIAdPBEBBBCAIdCEHQQAhAANAIAAgB08NAyAAQUBrIQAMAAsABSAAQUBrIQAMAQsACwALIBAgEmohHSAKQSBrIRAgAyAJIAxGaiEAQTggCGutISdBOCAFa60hJUHAACARa60hI0HAACAUa60hJANAIAAgGE8NAiAVIAApAAAiIkLjyJW9y5vvjU9+IiYgJIinQQJ0aiIFKAIAIQcgFyAiQoCAgNjLm++NT34iKCAjiKdBAnRqIgwoAgAhCCAcICYgJYinIhRBBnZB/P//H3FqKAIAIQkgHyAoICeIpyIeQQZ2Qfz//x9xaigCACENIAwgACALayIMNgIAIAUgDDYCAAJAAkACQCAMQQFqIhEgBGsiBSAOa0F8Sw0AIBIgBSAWa2ogBSALaiAFIA5JIgUbIhsoAAAgACgAAUcNACAAQQVqIBtBBGogCiATIAogBRsgDxAFIQcgAEEBaiIAIANrIQgCQCAAIBBNBEAgAykAACEiIAEoAgwiBSADKQAINwAIIAUgIjcAACAIQRFJDQEgAykAECEiIAEoAgwiBSADKQAYNwAYIAUgIjcAECAIQSFIDQEgA0EQaiEDIAUgCGohCSAFQSBqIQUDQCADKQAQISIgBSADKQAYNwAIIAUgIjcAACADKQAgISIgBSADKQAoNwAYIAUgIjcAECADQSBqIQMgBUEgaiIFIAlJDQALDAELIAEoAgwgAyADIAhqIBAQBwsgASABKAIMIAhqNgIMIAEoAgQhAyAIQYCABE8EQCABQQE2AiQgASADIAEoAgBrQQN1NgIoCyAHQQRqIQUgA0EBNgIAIAMgCDsBBCAHQQFqIgdB//8DSw0BDAILAkACQCAHIA5JDQAgByALaiIHKQAAICJSDQAgAEEIaiAHQQhqIAoQBkEIaiEFIAAgB2shCANAIAAgA00gByAPTXINAiAAQQFrIgYtAAAgB0EBayIHLQAARw0CIAVBAWohBSAGIQAMAAsACwJAIAkgFHNB/wFxDQAgCUEIdiIHIBlNDQAgByASaiIJKQAAICJSDQAgAEEIaiAJQQhqIAogEyAPEAVBCGohBSAMIAcgFmprIQgDQCAJIBpNIAAgA01yDQIgAEEBayIGLQAAIAlBAWsiCS0AAEcNAiAFQQFqIQUgBiEADAALAAsCQAJAAkAgCCAOSwRAIAggC2oiBygAACAAKAAARw0BDAMLIA0gHnNB/wFxDQAgDUEIdiIIIBlNDQAgCCASaiIHKAAAIAAoAABGDQELIAAgACADa0EIdWpBAWohAAwFCyAIIBZqIQgLIBUgACkAASIiQuPIlb3Lm++NT34iJiAkiKdBAnRqIgYoAgAhBSAcICYgJYinIhRBBnZB/P//H3FqKAIAIQ0gBiARNgIAIABBAWohBgJAAkAgBSAOSQ0AIAUgC2oiCSkAACAiUg0AIABBCWogCUEIaiAKEAZBCGohBSAGIAlrIQgDQCAJIA9NIAMgBk9yDQIgBkEBayIALQAAIAlBAWsiCS0AAEcNAiAFQQFqIQUgACEGDAALAAsCQCANIBRzQf8BcQ0AIA1BCHYiDSAZTQ0AIA0gEmoiCSkAACAiUg0AIABBCWogCUEIaiAKIBMgDxAFQQhqIQUgESANIBZqayEIA0AgCSAaTSADIAZPcg0CIAZBAWsiAC0AACAJQQFrIgktAABHDQIgBUEBaiEFIAAhBgwACwALIAdBBGohBiAAQQRqIQUgCCAOSQRAIAUgBiAKIBMgDxAFQQRqIQUgDCAIayEIA0AgACADTSAHIBpNcg0DIABBAWsiBi0AACAHQQFrIgctAABHDQMgBUEBaiEFIAYhAAwACwALIAUgBiAKEAZBBGohBSAAIAdrIQgDQCAAIANNIAcgD01yDQIgAEEBayIGLQAAIAdBAWsiBy0AAEcNAiAFQQFqIQUgBiEADAALAAsgBiEACyAAIANrIQcCQCAAIBBNBEAgAykAACEiIAEoAgwiBiADKQAINwAIIAYgIjcAACAHQRFJDQEgAykAECEiIAEoAgwiBiADKQAYNwAYIAYgIjcAECAHQSFIDQEgA0EQaiEDIAYgB2ohCSAGQSBqIQYDQCADKQAQISIgBiADKQAYNwAIIAYgIjcAACADKQAgISIgBiADKQAoNwAYIAYgIjcAECADQSBqIQMgBkEgaiIGIAlJDQALDAELIAEoAgwgAyADIAdqIBAQBwsgASABKAIMIAdqNgIMIAEoAgQhAyAHQYCABE8EQCABQQE2AiQgASADIAEoAgBrQQN1NgIoCyADIAhBA2o2AgAgAyAHOwEEIAQhBiAIIQQgBUEDayIHQYCABEkNAQsgAUECNgIkIAEgAyABKAIAa0EDdTYCKAsgAyAHOwEGIAEgA0EIajYCBCAAIAVqIgMhACADIBhLDQAgFSALIAxBAmoiAGopAAAiIkLjyJW9y5vvjU9+ICSIp0ECdGogADYCACAVIANBAmsiCCkAAELjyJW9y5vvjU9+ICSIp0ECdGogCCALazYCACAXICJCgICA2Mub741PfiAjiKdBAnRqIAA2AgAgFyADQQFrIgApAABCgICA2Mub741PfiAjiKdBAnRqIAAgC2s2AgADQAJAIAYhACADIBhLDQAgHSALIAMgC2siCCAAayIGIA5JIgcbIAZqIQUgBiAOa0F8Sw0AIAUoAAAgAygAAEcNACADQQRqIAVBBGogCiATIAogBxsgDxAFIQUgASgCDCEGAkAgAyAQTQRAIAMpAAAhIiAGIAMpAAg3AAggBiAiNwAADAELIAYgAyADIBAQBwsgASgCBCIGQQE2AgAgBkEAOwEEIAVBAWoiB0GAgARPBEAgAUECNgIkIAEgBiABKAIAa0EDdTYCKAsgBiAHOwEGIAEgBkEIajYCBCAXIAMpAAAiIkKAgIDYy5vvjU9+ICOIp0ECdGogCDYCACAVICJC48iVvcub741PfiAkiKdBAnRqIAg2AgAgAyAFakEEaiEDIAQhBiAAIQQMAQsLIAAhBiADIQAMAAsACyAQIBJqIR0gCkEgayEQQRggCGshHkEgIBFrIQ0gAyAJIAxGaiEAQTggBWutISJBwAAgFGutISQDQCAAIBhPDQEgFSAAKQAAIiNC48iVvcub741PfiIlICSIp0ECdGoiBSgCACEHIBcgI6dBsfPd8XlsIgwgDXZBAnRqIhQoAgAhCCAcICUgIoinIhtBBnZB/P//H3FqKAIAIQkgHyAMIB52IiBBBnZB/P//H3FqKAIAIREgFCAAIAtrIgw2AgAgBSAMNgIAAkACQAJAIAxBAWoiFCAEayIFIA5rQXxLDQAgEiAFIBZraiAFIAtqIAUgDkkiBRsiISgAACAAKAABRw0AIABBBWogIUEEaiAKIBMgCiAFGyAPEAUhByAAQQFqIgAgA2shCAJAIAAgEE0EQCADKQAAISMgASgCDCIFIAMpAAg3AAggBSAjNwAAIAhBEUkNASADKQAQISMgASgCDCIFIAMpABg3ABggBSAjNwAQIAhBIUgNASADQRBqIQMgBSAIaiEJIAVBIGohBQNAIAMpABAhIyAFIAMpABg3AAggBSAjNwAAIAMpACAhIyAFIAMpACg3ABggBSAjNwAQIANBIGohAyAFQSBqIgUgCUkNAAsMAQsgASgCDCADIAMgCGogEBAHCyABIAEoAgwgCGo2AgwgASgCBCEDIAhBgIAETwRAIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAdBBGohBSADQQE2AgAgAyAIOwEEIAdBAWoiB0H//wNLDQEMAgsCQAJAIAcgDkkNACAHIAtqIgcpAAAgI1INACAAQQhqIAdBCGogChAGQQhqIQUgACAHayEIA0AgACADTSAHIA9Ncg0CIABBAWsiBi0AACAHQQFrIgctAABHDQIgBUEBaiEFIAYhAAwACwALAkAgCSAbc0H/AXENACAJQQh2IgcgGU0NACAHIBJqIgkpAAAgI1INACAAQQhqIAlBCGogCiATIA8QBUEIaiEFIAwgByAWamshCANAIAkgGk0gACADTXINAiAAQQFrIgYtAAAgCUEBayIJLQAARw0CIAVBAWohBSAGIQAMAAsACwJAAkACQCAIIA5LBEAgCCALaiIHKAAAIAAoAABHDQEMAwsgESAgc0H/AXENACARQQh2IgggGU0NACAIIBJqIgcoAAAgACgAAEYNAQsgACAAIANrQQh1akEBaiEADAULIAggFmohCAsgFSAAKQABIiNC48iVvcub741PfiIlICSIp0ECdGoiBigCACEFIBwgJSAiiKciG0EGdkH8//8fcWoo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A0EQaiEDIAUgB2ohCCAHQSBqIQcDQCADKQAQISIgByADKQAYNwAIIAcgIjcAACADKQAgISIgByADKQAoNwAYIAcgIjcAECADQSBqIQMgB0EgaiIHIAhJDQALDAELIAEoAgwgAyADIAVqIAsQBwsgASABKAIMIAVqNgIMIAEoAgQhAyAFQYCABE8EQCABQQE2AiQgASADIAEoAgBrQQN1NgIoCyAJQQRqIQcgA0EBNgIAIAMgBTsBBCAJQQFqIghB//8DTQ0DDAELAkAgCkH/AXEEQCAAKAAAIQUMAQsgACgAACEFIBhBCHYiGCAeTQ0AIBYgGGoiCigAACAFRyAOIBFJcg0AIABBBGogCkEEaiAMIBcgExAFQQRqIQcDQAJAIAAgA00gCiAaTXINACAAQQFrIgYtAAAgCkEBayIKLQAARw0AIAdBAWohByAGIQAMAQsLIAAgA2shBgJAIAAgC00EQCADKQAAISIgASgCDCIFIAMpAAg3AAggBSAiNwAAIAZBEUkNASADKQAQISIgASgCDCIFIAMpABg3ABggBSAiNwAQIAZBIUgNASADQRBqIQMgBSAGaiEJIAVBIGohCANAIAMpABAhIiAIIAMpABg3AAggCCAiNwAAIAMpACAhIiAIIAMpACg3ABggCCAiNwAQIANBIGohAyAIQSBqIgggCUkNAAsMAQsgASgCDCADIAMgBmogCxAHCyABIAEoAgwgBmo2AgwgASgCBCEDIAZBgIAETwRAIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAMgFSAYIBtqayIFQQNqNgIAIAMgBjsBBCAEIQYgBSEEIAdBA2siCEH//wNLDQEMAwsgBUH6PCANIBFqIgggDiARSyIKGygAAEcgCnJFBEAgAEEEaiAIQQRqIAwQBkEEaiEHIAAgCGshBQNAAkAgACADTSAIIBNNcg0AIABBAWsiBi0AACAIQQFrIggtAABHDQAgB0EBaiEHIAYhAAwBCwsgACADayEGAkAgACALTQRAIAMpAAAhIiABKAIMIgkgAykACDcACCAJICI3AAAgBkERSQ0BIAMpABAhIiABKAIMIgkgAykAGDcAGCAJICI3ABAgBkEhSA0BIANBEGohAyAGIAlqIQogCUEgaiEIA0AgAykAECEiIAggAykAGDcACCAIICI3AAAgAykAICEiIAggAykA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IARBABBWGiABQQA2AiQgASABKAIANgIEIAEgASgCCDYCDCAAIAAoAgwgBGoiBjYCDCAAIAY2AhwgACAGNgIQIAAgACgCBCAEazYCBAsgACABIAIgAyAEQQAQViAFQRBqJAALEAAgACABIAIgAyAEQQAQVgshACAAIAEgAiADIAQgBSAGIAdCgIDs/Mub741PQQYQuwELIQAgACABIAIgAyAEIAUgBiAHQoCAgNjLm++NT0EFELsBC/8JASN/IwBBEGsiEiQAAkAgAyABKAIEIgkgASgCHCICakkNACADIAlrIQgDQCACIAhPRQRAIAEgAiAJaiAEIAhBBEEAEBAgAmohAgwBCwsgASAINgIcQQEgASgCECICIAMgASgCBCITayILQQEgASgCuAF0IghrIAIgCyACayAISxsgASgCGBsiFCAUQQFNGyEgIAtBfyABKAK8AUEBa3RBf3MiGWsiAkEAIAIgC00bIRogASgCXCADKAAAQbHz3fF5bEEgIAEoAsABa3ZBAnRqIiEoAgAhCiABKAK0ASIQKAIAIhsgECgCBCIcayIVQX8gECgCvAFBAWt0QX9zIh1rIBAoAhAiFiAVIBZrIB1LGyEiIBwgFCAVayIXayEjIAsgFiAXamshJCAGIAZBA2oiAiACIAZJGyElIAEoAmQiJiALIBlxQQN0aiIRQQRqIQ1B/x8gASgCzAEiAiACQf8fTxshJyADQQRqIRggB0EBayEIIBMgASgCDCIeaiEfIAsgHmshKCALQQlqIQ5BASABKALEAXQhDyAQKALAASEpIAYhAgNAIAIgJUcEQCALAn8gAkEDRgRAIAUoAgBBAWsMAQsgBSACQQJ0aigCAAsiCWshBwJAAn8gKCAJQQFrIipLBEAgByAUSQ0CIAMoAAAgAyAJaygAAEcNAiAYIBggCWsgBBAGDAELICQgKk0gByAea0F8S3INASADKAAAIAcgI2oiBygAAEcNASAYIAdBBGogBCAbIB8QBQtBBGoiByAITQ0AIAAgDEEDdGoiCCAHNgIEIAggAiAGa0EBajYCACAMQQFqIQwgByAnSw0DIAciCCADaiAERg0DCyACQQFqIQIMAQsLICEgCzYCACALQQNqIQZBACEHQQAhBQJAAkACQAJAAkADQCAPRSAKICBJcg0CIAggAyAFIAcgBSAHSRsiAmogCiATaiILIAJqIAQQBiACaiICSQRAIAAgDEEDdGoiCCACNgIEIAggBiAKazYCACACIApqIA4gAiAOIAprSxshDiAMQQFqIQwgAiADaiAERiACQYAgS3INBSACIQgLICYgCiAZcUEDdGohCQJAAkACQCACIAtqLQAAIAIgA2otAABJBEAgESAKNgIAIAogGksNASASQQxqIREMBQsgDSAKNgIAIAogGk0NAiAJIQ0gAiEHDAELIAIhBSAJQQRqIhEhCQsgD0EBayEPIAkoAgAhCgwBCwsgEkEMaiENCyANQQA2AgAgEUEANgIADAELIA1BADYCACARQQA2AgAgD0UNAgsgECgCXCADKAAAQbHz3fF5bEEgIClrdkECdGohAiATIBdqIQ0gECgCZCELQQAhCkEAIQcDQCAPRQ0CIAIoAgAiBSAWTQ0CIAggAyAHIAogByAKSRsiAmogBSAcaiIJIAJqIAQgGyAfEAUgAmoiAkkEQCAAIAxBA3RqIgggAjYCBCAIIAYgBSAXaiIIazYCACACIAhqIA4gAiAOIAhrSxshDiAMQQFqIQwgAkGAIEsNAyACIQggAiADaiAERg0DCyAFICJNDQIgD0EBayEPIAIgByAJIAUgDWogAiAFaiAVSRsgAmotAAAgAiADai0AAEkiCRshByAKIAIgCRshCiALIAUgHXFBA3RqIAlBAnRqIQIMAAsACyANQQA2AgAgEUEANgIACyABIA5BCGs2AhwLIBJBEGokACAMC/wKASR/IwBBEGsiFCQAAkAgAyABKAIEIgwgASgCHCIJakkNACADIAxrIQgDQCAIIAlNRQRAIAEgCSAMaiAEIAhBA0EAEBAgCWohCQwBCwsgASAINgIcQQEgASgCECIIIAMgASgCBCITayINQQEgASgCuAF0IglrIAggDSAIayAJSxsgASgCGBsiFSAVQQFNGyEaIA1BfyABKAK8AUEBa3RBf3MiG2siCEEAIAggDU0bIRwgASgCXCADKAAAQbHz3fF5bEEgIAEoAsABa3ZBAnRqIiMoAgAhCiABKAK0ASIRKAIAIh0gESgCBCIeayIWQX8gESgCvAFBAWt0QX9zIh9rIBEoAhAiFyAWIBdrIB9LGyEkIB4gFSAWayIYayElIA0gFyAYamshJiAGIAZBA2oiCCAGIAhLGyEnIAEoAmQiKCANIBtxQQN0aiISQQRqIQ5B/x8gASgCzAEiCCAIQf8fTxshICADQQNqIRkgB0EBayEIIBMgASgCDCIhaiEiIA0gIWshKSANQQlqIQ9BASABKALEAXQhECARKALAASEqIAYhCQNAIAkgJ0cEQCANAn8gCUEDRgRAIAUoAgBBAWsMAQsgBSAJQQJ0aigCAAsiDGshBwJAAn8gKSAMQQFrIitLBEAgByAVSQ0CIAMgDGsoAAAgAygAAHNB////B3ENAiAZIBkgDGsgBBAGDAELICYgK00gByAha0F8S3INASAHICVqIgcoAAAgAygAAHNB////B3ENASAZIAdBA2ogBCAdICIQBQtBA2oiByAITQ0AIAAgC0EDdGoiCCAHNgIEIAggCSAGa0EBajYCACALQQFqIQsgByAgSw0DIAciCCADaiAERg0DCyAJQQFqIQkMAQsLIAECfwJAIAhBAksNACABIAIgAxCOASICIBpJDQAgDSACayIFQf//D0sNACADIAIgE2ogBBAGIgJBA0kNACAAIAI2AgQgACAFQQNqNgIAIAIgIE0EQEEBIQsgAiIIIANqIARHDQELQQEhCyANQQFqDAELICMgDTYCACANQQNqIQZBACEHQQAhBQJAAkACQAJAAkADQCAQRSAKIBpJcg0CIAggAyAFIAcgBSAHSRsiAmogCiATaiIJIAJqIAQQBiACaiICSQRAIAAgC0EDdGoiCCACNgIEIAggBiAKazYCACACIApqIA8gAiAPIAprSxshDyALQQFqIQsgAiADaiAERiACQYAgS3INBSACIQgLICggCiAbcUEDdGohDAJAAkACQCACIAlqLQAAIAIgA2otAABJBEAgEiAKNgIAIAogHEsNASAUQQxqIRIMBQsgDiAKNgIAIAogHE0NAiAMIQ4gAiEHDAELIAIhBSAMQQRqIhIhDAsgEEEBayEQIAwoAgAhCgwBCwsgFEEMaiEOCyAOQQA2AgAgEkEANgIADAELIA5BADYCACASQQA2AgAgEEUNAgsgESgCXCADKAAAQbHz3fF5bEEgICprdkECdGohCSATIBhqIQwgESgCZCEOQQAhCkEAIQcDQCAQRQ0CIAkoAgAiBSAXTQ0CIAggAyAHIAogByAKSRsiAmogBSAeaiIJIAJqIAQgHSAiEAUgAmoiAkkEQCAAIAtBA3RqIgggAjYCBCAIIAYgBSAYaiIIazYC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Bg8AAAAAAAAGEgAAAAAAAAYVAAAAAAAABhgAAAAAAAAGGwAAAAAAAAYeAAAAAAAABiEAAAAAAAEGIwAAAAAAAQYnAAAAAAACBisAAAAAAAMGMwAAAAAABAZDAAAAAAAFBmMAAAAAAAgGAwEAACAAAAQEAAAAMAAABAQAAAAQAAAEBQAAACAAAAUHAAAAIAAABQgAAAAgAAAFCgAAACAAAAULAAAAAAAABg4AAAAAAAAGEQAAAAAAAAYUAAAAAAAABhcAAAAAAAAGGgAAAAAAAAYdAAAAAAAABiAAAAAAABAGAwABAAAADwYDgAAAAAAOBgNAAAAAAA0GAyAAAAAADAYDEAAAAAALBgMIAAAAAAoGAwQAQbQjC3wBAAAAAwAAAAcAAAAPAAAAHwAAAD8AAAB/AAAA/wAAAP8BAAD/AwAA/wcAAP8PAAD/HwAA/z8AAP9/AAD//wAA//8BAP//AwD//wcA//8PAP//HwD//z8A//9/AP///wD///8B////A////wf///8P////H////z////9/AEHAJAuhAgEAAQABAAEAAQABAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP////////////8AAAAAAAAEAAMAAgACAAIAAgACAAIAAgACAAIAAgACAAEAAQABAAIAAgACAAIAAgACAAIAAgACAAMAAgABAAEAAQABAAEA//////////8AAAAAAAAAAAEABAADAAIAAgACAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA//////////////////8AAAAAAAAsAAAALQAAAC4AAAAvAAAACAAAAAkAAAAKAAAACgAAACAAQfEmC+QBAQIDBAUGBwgJCgsMDQ4PEBARERISExMUFBQUFRUVFRYWFhYWFhYWFxcXFxcXFxcYGBgYGBgYGBgYGBgYGBgYAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gICEhIiIjIyQkJCQlJSUlJiYmJiYmJiYnJycnJycnJygoKCgoKCgoKCgoKCgoKCgpKSkpKSkpKSkpKSkpKSkpKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioAAAAAAAAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAEAEHgKAv9JxMAAAAMAAAADQAAAAEAAAAGAAAAAQAAAAEAAAATAAAADQAAAA4AAAABAAAABwAAAAAAAAABAAAAFAAAAA8AAAAQAAAAAQAAAAYAAAAAAAAAAQAAABUAAAAQAAAAEQAAAAEAAAAFAAAAAAAAAAIAAAAVAAAAEgAAABIAAAABAAAABQAAAAAAAAACAAAAFQAAABIAAAATAAAAAwAAAAUAAAACAAAAAwAAABUAAAASAAAAEwAAAAMAAAAFAAAABAAAAAQAAAAVAAAAEwAAABQAAAAEAAAABQAAAAgAAAAEAAAAFQAAABMAAAAUAAAABAAAAAUAAAAQAAAABQAAABYAAAAUAAAAFQAAAAQAAAAFAAAAEAAAAAUAAAAWAAAAFQAAABYAAAAFAAAABQAAABAAAAAFAAAAFgAAABUAAAAWAAAABgAAAAUAAAAQAAAABQAAABYAAAAWAAAAFwAAAAYAAAAFAAAAIAAAAAUAAAAWAAAAFgAAABYAAAAEAAAABQAAACAAAAAGAAAAFgAAABYAAAAXAAAABQAAAAUAAAAgAAAABgAAABYAAAAXAAAAFwAAAAYAAAAFAAAAIAAAAAYAAAAWAAAAFgAAABYAAAAFAAAABQAAADAAAAAHAAAAFwAAABcAAAAWAAAABQAAAAQAAABAAAAABwAAABcAAAAXAAAAFgAAAAYAAAADAAAAQAAAAAgAAAAXAAAAGAAAABYAAAAHAAAAAwAAAAABAAAJAAAAGQAAABkAAAAXAAAABwAAAAMAAAAAAQAACQAAABoAAAAaAAAAGAAAAAcAAAADAAAAAAIAAAkAAAAbAAAAGwAAABkAAAAJAAAAAwAAAOcDAAAJAAAAEgAAAAwAAAANAAAAAQAAAAUAAAABAAAAAQAAABIAAAANAAAADgAAAAEAAAAGAAAAAAAAAAEAAAASAAAADgAAAA4AAAABAAAABQAAAAAAAAACAAAAEgAAABAAAAAQAAAAAQAAAAQAAAAAAAAAAgAAABIAAAAQAAAAEQAAAAMAAAAFAAAAAgAAAAMAAAASAAAAEQAAABIAAAAFAAAABQAAAAIAAAADAAAAEgAAABIAAAATAAAAAwAAAAUAAAAEAAAABAAAABIAAAASAAAAEwAAAAQAAAAEAAAABAAAAAQAAAASAAAAEgAAABMAAAAEAAAABAAAAAgAAAAFAAAAEgAAABIAAAATAAAABQAAAAQAAAAIAAAABQAAABIAAAASAAAAEwAAAAYAAAAEAAAACAAAAAUAAAASAAAAEgAAABMAAAAFAAAABAAAAAwAAAAGAAAAEgAAABMAAAATAAAABwAAAAQAAAAMAAAABgAAABIAAAASAAAAEwAAAAQAAAAEAAAAEAAAAAcAAAASAAAAEgAAABMAAAAEAAAAAwAAACAAAAAHAAAAEgAAABIAAAATAAAABgAAAAMAAACAAAAABwAAABIAAAATAAAAEwAAAAYAAAADAAAAgAAAAAgAAAASAAAAEwAAABMAAAAIAAAAAwAAAAABAAAIAAAAEgAAABMAAAATAAAABgAAAAMAAACAAAAACQAAABIAAAATAAAAEwAAAAgAAAADAAAAAAEAAAkAAAASAAAAEwAAABMAAAAKAAAAAwAAAAACAAAJAAAAEgAAABMAAAATAAAADAAAAAMAAAAAAgAACQAAABIAAAATAAAAEwAAAA0AAAADAAAA5wMAAAkAAAARAAAADAAAAAwAAAABAAAABQAAAAEAAAABAAAAEQAAAAwAAAANAAAAAQAAAAYAAAAAAAAAAQAAABEAAAANAAAADwAAAAEAAAAFAAAAAAAAAAEAAAARAAAADwAAABAAAAACAAAABQAAAAAAAAACAAAAEQAAABEAAAARAAAAAgAAAAQAAAAAAAAAAgAAABEAAAAQAAAAEQAAAAMAAAAEAAAAAgAAAAMAAAARAAAAEAAAABEAAAADAAAABAAAAAQAAAAEAAAAEQAAABAAAAARAAAAAwAAAAQAAAAIAAAABQAAABEAAAAQAAAAEQAAAAQAAAAEAAAACAAAAAUAAAARAAAAEAAAABEAAAAFAAAABAAAAAgAAAAFAAAAEQAAABAAAAARAAAABgAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAUAAAAEAAAACAAAAAYAAAARAAAAEgAAABEAAAAHAAAABAAAAAwAAAAGAAAAEQAAABIAAAARAAAAAwAAAAQAAAAMAAAABwAAABEAAAASAAAAEQAAAAQAAAADAAAAIAAAAAcAAAARAAAAEgAAABEAAAAGAAAAAwAAAAABAAAHAAAAEQAAABIAAAARAAAABgAAAAMAAACA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");Dg=new Uint8Array(A.length);for(let g=0;g<A.length;g++)Dg[g]=A.charCodeAt(g);return Dg}(),g={a:Ug},I=await WebAssembly.compile(A.buffer),t=(await WebAssembly.instantiate(I,g)).exports;ug=t.f,Gg(),t.g(),pg=t.v,fg=t,kg=!0}(),Sg)}const Lg=5788743,Jg=[5e4,1e5,2e5,5e5,1e6];function Kg(A,g){for(const I of Jg)if(Math.ceil(A/I)===g)return I;return Math.ceil(A/g)}class bg{constructor(A,g){this.experiments=[],this.experimentIdToIndex=new Map,this.chromosomes=new Map,this.chromOrder=[],this.tileIndexCache=new Map,this.zoomLevels=[],this.zoomTileIndexCache=new Map,this.initialized=!1,this.url=A,this.fetchImpl=g}fetch(A,g){return lg(this.url,A,g,this.fetchImpl)}async init(A){if(!this.initialized)return this.initPromise||(this.initPromise=this._doInit().catch(A=>{throw this.initPromise=void 0,A})),this.initPromise}async _doInit(){await Mg();const A=await this.fetch({start:0,size:256});this.header=this.parseHeader(new $A(new DataView(A),!0));const g=this.header,I=g.dictionaryOffset-g.experimentMetadataOffset,t=g.experimentMetadataOffset,e=I+g.dictionarySize,C=g.chromDirectoryOffset,i=g.nZoomLevels>0&&g.zoomDirectoryOffset>0,B=this.computeDirFetchSize(g),[Q,o]=await Promise.all([this.fetch({start:t,size:e}),this.fetch({start:C,size:B})]);this.parseExperimentMetadata(new $A(new DataView(Q,0,I),!0)),this.dictionary=new Uint8Array(Q,I,g.dictionarySize),this.dctx=function(){if(!kg)throw new Error("zstd WASM not initialized — call initZstd() first");return fg.n()}();const s=i?Math.min(g.zoomDirectoryOffset-g.chromDirectoryOffset,o.byteLength):o.byteLength;if(this.parseChromDirectory(new $A(new DataView(o,0,s),!0)),i){const A=g.zoomDirectoryOffset-C,I=o.byteLength-A-8;A>=0&&I>0&&this.parseZoomDirectory(new $A(new DataView(o,A,I),!0))}this.initialized=!0}parseHeader(A){const g=A.getUInt();if(g!==Lg)throw new Error(`Not a GTX file (magic: 0x${g.toString(16)}, expected 0x${Lg.toString(16)})`);const I=A.getUShort(),t=A.getUShort();return{version:I,genome:A.getFixedLengthString(t),nExperiments:A.getUInt(),resolution:A.getUInt(),payloadEncoding:A.getByte(),nZoomLevels:A.getByte(),chromDirectoryOffset:this.readU64(A),experimentMetadataOffset:this.readU64(A),dictionaryOffset:this.readU64(A),dictionarySize:A.getUInt(),zoomDirectoryOffset:this.readU64(A),groupStatsDirectoryOffset:this.readU64(A)}}parseExperimentMetadata(A){const g=A.getUInt();for(let I=0;I<g;I++){const g=A.getUShort(),I=A.getFixedLengthString(g),t=A.getUInt(),e=A.getUShort(),C=new Map;for(let g=0;g<e;g++){const g=A.getUShort(),I=A.getFixedLengthString(g),t=A.getUShort(),e=A.getFixedLengthString(t);C.set(I,e)}const i={id:I,experimentIndex:t,metadata:C};this.experiments.push(i),this.experimentIdToIndex.set(I,t)}}parseChromDirectory(A){const g=A.getUShort();for(let I=0;I<g;I++){const g=A.getUShort(),I=A.getFixedLengthString(g),t=A.getUInt(),e=this.readU64(A),C=A.getUInt(),i=A.getUInt();this.chromosomes.set(I,{name:I,length:t,tileIndexOffset:e,tileIndexLength:C,nTiles:i}),this.chromOrder.push(I)}}parseZoomDirectory(A){var g;const I=A.getByte();for(let t=0;t<I;t++){const I=A.getUInt(),t=A.getUShort(),e=new Map;for(let I=0;I<t;I++){const t=this.readU64(A),C=A.getUInt(),i=A.getUInt(),B=null!==(g=this.chromOrder[I])&&void 0!==g?g:`chrom_${I}`;e.set(B,{tileIndexOffset:t,tileIndexLength:C,nTiles:i})}this.zoomLevels.push({reductionLevel:I,chromTileIndexes:e})}}async loadTileIndex(A,g){await this.init(g);const I=this.tileIndexCache.get(A);if(I)return I;const t=this.chromosomes.get(A);if(!t)throw new Error(`Unknown chromosome: ${A}`);const e=await this.fetch({start:t.tileIndexOffset,size:t.tileIndexLength},g),C=this.parseTileIndex(new $A(new DataView(e),!0),t.nTiles);return this.tileIndexCache.set(A,C),C}async loadZoomTileIndex(A,g,I){const t=`${A}:${g}`,e=this.zoomTileIndexCache.get(t);if(e)return e;const C=this.zoomLevels[A];if(!C)throw new Error(`Unknown zoom level: ${A}`);const i=C.chromTileIndexes.get(g);if(!i)throw new Error(`Unknown chromosome in zoom: ${g}`);const B=await this.fetch({start:i.tileIndexOffset,size:i.tileIndexLength},I),Q=this.parseTileIndex(new $A(new DataView(B),!0),i.nTiles);return this.zoomTileIndexCache.set(t,Q),Q}parseTileIndex(A,g){const I=A.getUInt(),t=A.getUInt();if(I!==g)throw new Error(`Tile count mismatch: expected ${g}, got ${I}`);const e=[];for(let I=0;I<g;I++){const g=this.readU64(A),I=A.getUInt(),C=[];for(let g=0;g<t;g++){const g=this.readU64(A),I=A.getUInt();C.push({offset:g,size:I})}e.push({positionsOffset:g,positionsSize:I,experimentPointers:C})}return e}async readFeatures(A,g,I,t,e,C){await this.init(C);const i=this.header;if(void 0!==e&&e>1){const i=this.selectZoomLevel(e);if(void 0!==i)return this.readZoomFeatures(A,g,I,t,i,C)}const B=this.chromosomes.get(A);if(!B)return new Map;const Q=await this.loadTileIndex(A,C),o=Kg(B.length,B.nTiles),s=Math.max(0,Math.floor(g/o)),E=Math.min(B.nTiles-1,Math.floor(Math.max(0,I-1)/o)),a=[];for(let A=s;A<=E;A++){const g=Q[A];for(const I of t){const t=g.experimentPointers[I];t&&t.size>0&&a.push({tileIdx:A,expIdx:I,pointer:t})}}if(0===a.length)return new Map;const r=await this.fetchMergedRanges(a,C),n=new Map;for(const A of t)n.set(A,[]);for(const{tileIdx:t,expIdx:e,data:C}of r){const Q=this.decompress(C),s=new Float32Array(Q.buffer,Q.byteOffset,Q.byteLength/4),E=t*o,a=Math.min((t+1)*o,B.length),r=Math.max(g,E),h=Math.min(I,a),c=Math.floor((r-E)/i.resolution),l=Math.ceil((h-E)/i.resolution),d=n.get(e);for(let g=c;g<l&&g<s.length;g++){const I=s[g];if(0===I)continue;const t=E+g*i.resolution,e=Math.min(t+i.resolution,B.length);d.push({chr:A,start:t,end:e,value:I})}}return n}async readZoomFeatures(A,g,I,t,e,C){const i=this.zoomLevels[e];if(!i)return new Map;const B=i.chromTileIndexes.get(A);if(!B)return new Map;const Q=this.chromosomes.get(A);if(!Q)return new Map;const o=await this.loadZoomTileIndex(e,A,C),s=Kg(Q.length,B.nTiles),E=i.reductionLevel,a=Math.max(0,Math.floor(g/s)),r=Math.min(B.nTiles-1,Math.floor(Math.max(0,I-1)/s)),n=[];for(let A=a;A<=r;A++){const g=o[A];for(const I of t){const t=g.experimentPointers[I];t&&t.size>0&&n.push({tileIdx:A,expIdx:I,pointer:t})}}if(0===n.length)return new Map;const h=await this.fetchMergedRanges(n,C),c=new Map;for(const A of t)c.set(A,[]);for(const{tileIdx:t,expIdx:e,data:C}of h){const i=this.decompress(C),B=new Float32Array(i.buffer,i.byteOffset,i.byteLength/4),o=B.length/2,a=B.subarray(0,o),r=t*s,n=Math.min((t+1)*s,Q.length),h=Math.max(g,r),l=Math.min(I,n),d=Math.floor((h-r)/E),D=Math.ceil((l-r)/E),u=c.get(e);for(let g=d;g<D&&g<a.length;g++){const I=a[g];if(0===I)continue;const t=r+g*E,e=Math.min(t+E,Q.length);u.push({chr:A,start:t,end:e,value:I})}}return c}getExperimentIds(){return this.experiments.map(A=>A.id)}getExperimentMetadata(A){const g=this.experiments.find(g=>g.id===A);return null==g?void 0:g.metadata}resolveExperimentIndex(A){return this.experimentIdToIndex.get(A)}getHeader(){return this.header}getChromosomes(){return this.chromosomes}computeDirFetchSize(A){return A.groupStatsDirectoryOffset>0&&A.groupStatsDirectoryOffset>A.chromDirectoryOffset?A.groupStatsDirectoryOffset-A.chromDirectoryOffset+8:A.nZoomLevels>0&&A.zoomDirectoryOffset>0?A.zoomDirectoryOffset-A.chromDirectoryOffset+262144:262144}selectZoomLevel(A){let g;for(let I=0;I<this.zoomLevels.length;I++)this.zoomLevels[I].reductionLevel<2*A&&(g=I);return g}async fetchMergedRanges(A,g){const I=[...A].sort((A,g)=>A.pointer.offset-g.pointer.offset),t=[];for(const A of I){const g=A.pointer.offset+A.pointer.size,I=t[t.length-1];I&&A.pointer.offset-I.end<=1024?(I.end=Math.max(I.end,g),I.items.push(A)):t.push({start:A.pointer.offset,end:g,items:[A]})}const e=t.map(async A=>({range:A,buf:await this.fetch({start:A.start,size:A.end-A.start},g)})),C=await Promise.all(e),i=[];for(const{range:A,buf:g}of C)for(const I of A.items){const t=I.pointer.offset-A.start,e=new Uint8Array(g,t,I.pointer.size);i.push({tileIdx:I.tileIdx,expIdx:I.expIdx,data:e})}return i}decompress(A){if(!this.dictionary||void 0===this.dctx)throw new Error("GTX reader not initialized — call init() first");return function(A,g,I){if(!kg)throw new Error("zstd WASM not initialized — call initZstd() first");const t=fg.s,e=fg.t,C=fg.p,i=fg.q,B=fg.h,Q=t(g.byteLength);wg.set(g,Q);const o=t(I.byteLength);wg.set(I,o);const s=C(Q,g.byteLength),E=-1===s?1048576:s,a=t(E);try{const t=i(A,a,E,Q,g.byteLength,o,I.byteLength);if(B(t))throw new Error(`zstd decompression failed with code ${t}`);return new Uint8Array(yg.buffer,a,t).slice()}finally{e(a),e(Q),e(o)}}(this.dctx,A,this.dictionary)}readU64(A){return A.getLong()}dispose(){var A;void 0!==this.dctx&&(A=this.dctx,kg&&fg.o(A),this.dctx=void 0)}}const vg=new Map;class Yg{constructor(A,g){this.url=A,this.reader=g,this.pending=new Map}request(A,g,I,t){const e=`${g.chr}:${g.start}-${g.end}|${I}`,C=this.pending.get(e);return new Promise(C?(g,I)=>{C.experiments.push({experimentId:A,resolve:g,reject:I})}:(C,i)=>{const B={locus:g,bpPerPixel:I,signal:t,experiments:[{experimentId:A,resolve:C,reject:i}]};this.pending.set(e,B),queueMicrotask(()=>this.flush(e))})}async flush(A){var g;const I=this.pending.get(A);if(!I)return;this.pending.delete(A);const{locus:t,bpPerPixel:e,signal:C,experiments:i}=I;try{await this.reader.init();const A=[],I=new Map;for(const g of i){const t=this.reader.resolveExperimentIndex(g.experimentId);void 0!==t?(I.set(g.experimentId,t),A.push(t)):g.reject(new Error(`Unknown experiment: ${g.experimentId}`))}if(0===A.length)return;const B=await this.reader.readFeatures(t.chr,t.start,t.end,A,e,C);for(const A of i){const t=I.get(A.experimentId);void 0!==t&&A.resolve(null!==(g=B.get(t))&&void 0!==g?g:[])}}catch(A){for(const g of i)g.reject(A)}}}const xg=new Map;function Hg(A,g){let I=xg.get(A);return I||(I=new bg(A,g),xg.set(A,I)),I}async function qg(A,g,I,t,e={}){const C=Hg(A,e.fetchImpl);await C.init(e.signal);const i=C.resolveExperimentIndex(g);if(void 0===i)throw new Error(`Unknown experiment: ${g}`);const B=[];for(const A of I)try{const g=(await C.readFeatures(A,0,Number.MAX_SAFE_INTEGER,[i],t,e.signal)).get(i);g&&B.push(...g)}catch(A){}return B}const _g=new Map;class Tg{constructor(A,g,I="mean",t){this.url=A,this.experimentId=g,this._windowFunction=I,this.fetchImpl=t,this.reader=function(A,g){let I=_g.get(A);return I||(I=new bg(A,g),_g.set(A,I)),I}(A,t)}get windowFunction(){return this._windowFunction}setWindowFunction(A){this._windowFunction=A}setCumulativeOffsets(A){this._cumulativeOffsets=A}setChromNameResolver(A){this._resolveChromName=A}async fetch(A,g,I){if(og(A)&&this._cumulativeOffsets)return this.fetchWG(g,I);const t=this._resolveChromName?{...A,chr:this._resolveChromName(A.chr)}:A,e=function(A,g){let I=vg.get(A);return I||(I=new Yg(A,g),vg.set(A,I)),I}(this.url,this.reader),C=await e.request(this.experimentId,t,g,I);return g>1&&"none"!==this._windowFunction&&C.length>0?ig(C,A.start,g,this._windowFunction):C}async fetchWG(A,g){const I=this._cumulativeOffsets;if(!I)throw new Error("fetchWG called without cumulativeOffsets");const t=hg(await qg(this.url,this.experimentId,I.chromosomeNames,A,{windowFunction:this._windowFunction,signal:g,fetchImpl:this.fetchImpl}),I);return A>1&&"none"!==this._windowFunction&&t.length>0?ig(t,0,A,this._windowFunction):t}}function Wg(A,g,I){if(g!==I)for(const t of A)t.end<g||t.start>I?t.utr=!0:(g>=t.start&&g<=t.end&&(t.cdStart=g),I>=t.start&&I<=t.end&&(t.cdEnd=I));else for(const g of A)g.utr=!0}function Pg(A){if(!A||"."===A||"0"===A)return;if(A.startsWith("#"))return A;const g=A.split(",");if(g.length>=3){const A=parseInt(g[0].trim()),I=parseInt(g[1].trim()),t=parseInt(g[2].trim());if(!isNaN(A)&&!isNaN(I)&&!isNaN(t))return`rgb(${A},${I},${t})`}}function Og(A){var g;return null!==(g=A.cdStart)&&void 0!==g?g:A.start}function Vg(A){var g;return null!==(g=A.cdEnd)&&void 0!==g?g:A.end}function Zg(A){return A.utr?0:Vg(A)-Og(A)}function zg(A){return"+"===A?"+":"-"===A?"-":void 0}function jg(A,g=0){if(A.length<=10+g)return;const I=parseInt(A[5+g]),t=parseInt(A[6+g]),e={id:A[0+g],chr:A[1+g],strand:zg(A[2+g]),start:parseInt(A[3+g]),end:parseInt(A[4+g]),cdStart:I,cdEnd:t,name:A.length>11+g?A[11+g]:A[0+g]},C=AI(parseInt(A[7+g]),A[8+g],A[9+g]);return Wg(C,I,t),e.exons=C,e}function Xg(A,g=0){if(A.length<=11+g)return;const I=parseInt(A[5+g]),t=parseInt(A[6+g]),e={name:A[11+g],chr:A[1+g],strand:zg(A[2+g]),start:parseInt(A[3+g]),end:parseInt(A[4+g]),cdStart:I,cdEnd:t,id:A[0+g]};if(A.length>10+g){const I=parseInt(A[10+g]);isNaN(I)||(e.score=I)}A.length>13+g&&(e.cdsStartStat=A[12+g],e.cdsEndStat=A[13+g]);const C=AI(parseInt(A[7+g]),A[8+g],A[9+g],A[14+g]);return Wg(C,I,t),e.exons=C,e}function $g(A){const g=A.cdsStart,I=A.cdsEnd,t={name:A.name2,chr:A.chrom,strand:zg(A.strand),start:A.txStart,end:A.txEnd,cdStart:g,cdEnd:I,id:A.name};void 0!==A.score&&(t.score=A.score),A.cdsStartStat&&(t.cdsStartStat=A.cdsStartStat),A.cdsEndStat&&(t.cdsEndStat=A.cdsEndStat);const e=A.exonStarts.replace(/,$/,"").split(","),C=A.exonEnds.replace(/,$/,"").split(","),i=A.exonFrames?A.exonFrames.replace(/,$/,"").split(","):void 0,B=[];for(let g=0;g<A.exonCount;g++){const A={start:parseInt(e[g]),end:parseInt(C[g])};if(i){const I=parseInt(i[g]);-1!==I&&(A.readingFrame=I)}B.push(A)}return Wg(B,g,I),t.exons=B,t}function AI(A,g,I,t){const e=g.replace(/,$/,"").split(","),C=I.replace(/,$/,"").split(","),i=t?t.replace(/,$/,"").split(","):void 0,B=[];for(let g=0;g<A;g++){const A={start:parseInt(e[g]),end:parseInt(C[g])};if(i){const I=parseInt(i[g]);-1!==I&&(A.readingFrame=I)}B.push(A)}return B}async function gI(A,g={},I){var t,e,C;const i=null!==(t=g.genome)&&void 0!==t?t:"hg38",B=null!==(e=g.track)&&void 0!==e?e:"ncbiRefSeq",Q=`https://api.genome.ucsc.edu/getData/track?genome=${i}&track=${B}&chrom=${A.chr}&start=${A.start}&end=${A.end}`,o=await fetch(Q,I?{signal:I}:void 0);if(!o.ok)throw new Error(`UCSC API error: ${o.status} ${o.statusText}`);return(null!==(C=(await o.json())[B])&&void 0!==C?C:[]).map($g)}class II{constructor(A={},g=1e4){this.options=A,this.maxWgFeatures=g}setCumulativeOffsets(A){this._cumulativeOffsets=A}async fetch(A,g,I){return og(A)&&this._cumulativeOffsets?this.fetchWG(I):gI(A,this.options,I)}async fetchWG(A){const g=this._cumulativeOffsets;if(!g)throw new Error("fetchWG called without cumulativeOffsets");const I=hg((await ng(g.chromosomeNames,g=>gI({chr:g,start:0,end:Number.MAX_SAFE_INTEGER},this.options,A),A)).map(A=>({...A,exons:void 0,cdStart:void 0,cdEnd:void 0})),g);return I.length>this.maxWgFeatures?function(A,g){const I=A.slice(0,g);for(let t=g;t<A.length;t++){const e=Math.floor(Math.random()*(t+1));e<g&&(I[e]=A[t])}return I}(I,this.maxWgFeatures):I}}Object.create;Object.create;function tI(A,g,I,t){if("a"===I&&!t)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof g?A!==g||!t:!g.has(A))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===I?t:"a"===I?t.call(A):t?t.value:g.get(A)}"function"==typeof SuppressedError&&SuppressedError;var eI,CI,iI,BI,QI,oI,sI;const EI={color:1};EI.parent=EI,EI.left=EI,EI.right=EI,EI.min=1/0,EI.max=-1/0;class aI{constructor(){eI.add(this),this.root=EI}insert(A,g,I){const t={low:A,high:g,value:I},e=tI(this,eI,"m",CI).call(this,t);tI(this,eI,"m",sI).call(this,e),e.color=2;let C=e;for(;C!==this.root&&2===C.parent.color;)if(C.parent===C.parent.parent.left){const A=C.parent.parent.right;2===A.color?(C.parent.color=1,A.color=1,C.parent.parent.color=2,C=C.parent.parent):(C===C.parent.right&&(C=C.parent,tI(this,eI,"m",BI).call(this,C)),C.parent.color=1,C.parent.parent.color=2,tI(this,eI,"m",QI).call(this,C.parent.parent))}else{const A=C.parent.parent.left;2===A.color?(C.parent.color=1,A.color=1,C.parent.parent.color=2,C=C.parent.parent):(C===C.parent.left&&(C=C.parent,tI(this,eI,"m",QI).call(this,C)),C.parent.color=1,C.parent.parent.color=2,tI(this,eI,"m",BI).call(this,C.parent.parent))}this.root.color=1}findOverlapping(A,g){if(this.root===EI)return[];const I=tI(this,eI,"m",iI).call(this,A,g,this.root,[]);return I.length>1&&I.sort((A,g)=>A.low-g.low),I}mapIntervals(A){const g=I=>{A(I.interval),I.left!==EI&&g(I.left),I.right!==EI&&g(I.right)};this.root!==EI&&g(this.root)}}eI=new WeakSet,CI=function(A){return{parent:EI,left:EI,right:EI,interval:A,color:2,max:A.high,min:A.low}},iI=function A(g,I,t,e){return t.interval.low<=I&&g<=t.interval.high&&e.push(t.interval),t.left!==EI&&t.left.max>=g&&tI(this,eI,"m",A).call(this,g,I,t.left,e),t.right!==EI&&t.right.min<=I&&tI(this,eI,"m",A).call(this,g,I,t.right,e),e},BI=function(A){const g=A.right;A.right=g.left,g.left!==EI&&(g.left.parent=A),g.parent=A.parent,A.parent===EI?this.root=g:A.parent.left===A?A.parent.left=g:A.parent.right=g,g.left=A,A.parent=g,tI(this,eI,"m",oI).call(this,A)},QI=function(A){const g=A.left;A.left=g.right,g.right!==EI&&(g.right.parent=A),g.parent=A.parent,A.parent===EI?this.root=g:A.parent.right===A?A.parent.right=g:A.parent.left=g,g.right=A,A.parent=g,tI(this,eI,"m",oI).call(this,A)},oI=function(A){for(;A!==EI;){const g=A.left.max>A.right.max?A.left.max:A.right.max,I=A.interval.high;A.max=g>I?g:I;const t=A.left.min<A.right.min?A.left.min:A.right.min,e=A.interval.low;A.min=t<e?t:e,A=A.parent}},sI=function(A){let g=this.root,I=EI;for(;g!==EI;)I=g,g=A.interval.low<=g.interval.low?g.left:g.right;A.parent=I,I===EI?(this.root=A,A.left=A.right=EI):A.interval.low<=I.interval.low?I.left=A:I.right=A,tI(this,eI,"m",oI).call(this,A)};class rI{constructor(A,g){const I=null!=A?A:[];this.range=g,this.count=I.length;const{treeMap:t,allFeatures:e}=function(A){const g={},I={},t=[];for(const g of A){const A=g.chr;let e=I[A];e||(t.push(A),e=[],I[A]=e),e.push(g)}for(const A of t){const t=I[A];t.sort((A,g)=>A.start===g.start?0:A.start>g.start?1:-1),g[A]=nI(t)}return{treeMap:g,allFeatures:I}}(I);this.treeMap=t,this.allFeatures=e}containsRange(A,g,I){return void 0===this.range||this.range.contains(A,g,I)}queryFeatures(A,g,I){const t=this.treeMap[A];if(!t)return[];const e=t.findOverlapping(g,I);if(0===e.length)return[];const C=[],i=this.allFeatures[A];if(i){for(const A of e){const t=A.value;for(let A=t.start;A<t.end;A++){const t=i[A];if(t.start>I)break;t.end>=g&&C.push(t)}}C.sort((A,g)=>A.start-g.start)}return C}findFeatures(A){const g=[];for(const I of Object.values(this.allFeatures))for(const t of I)A(t)&&g.push(t);return g}getAllFeatures(){return this.allFeatures}}function nI(A){const g=new aI,I=A.length,t=Math.max(10,Math.round(I/10));for(let e=0;e<I;e+=t){const C=Math.min(I,e+t),i={start:e,end:C},B=A[e].start;let Q=B;for(let g=e;g<C;g++)Q=Math.max(Q,A[g].end);g.insert(B,Q,i)}return g}function hI(A,g=0){const I=A[g]|A[g+1]<<8|A[g+2]<<16|A[g+3]<<24;return 4294967296*((A[g+4]|A[g+5]<<8|A[g+6]<<16|A[g+7]<<24)>>>0)+(I>>>0)}function cI(A,g,I){const t=g[1],e=I?I[1]:1/0;return t<=A&&e>A?0:t<A?-1:1}class lI{filehandle;index;constructor({filehandle:A}){this.filehandle=A}_getIndex(){return this.index||(this.index=this._readIndex().catch(A=>{throw this.index=void 0,A})),this.index}async _readIndex(){const A=hI(await this.filehandle.read(8,0));if(!A)return[[0,0]];const g=new Array(A+1);g[0]=[0,0];const I=16*A;if(I>Number.MAX_SAFE_INTEGER)throw new TypeError("integer overflow");const t=await this.filehandle.read(I,8);for(let I=0;I<A;I+=1){const A=hI(t,16*I),e=hI(t,16*I+8);g[I+1]=[A,e]}return g}async getLastBlock(){return(await this._getIndex()).at(-1)}async getRelevantBlocksForRead(A,g){const I=g+A;if(0===A)return[];const t=await this._getIndex(),e=[];let C=0,i=t.length-1,B=Math.floor(t.length/2),Q=cI(g,t[B],t[B+1]);for(;0!==Q;)Q>0?i=B-1:Q<0&&(C=B+1),B=Math.ceil((i-C)/2)+C,Q=cI(g,t[B],t[B+1]);e.push(t[B]);let o=B+1;for(;o<t.length&&(e.push(t[o]),!(t[o][1]>=I));o+=1);return e[e.length-1][1]<I&&e.push([]),e}}function dI(A,g){return Object.prototype.hasOwnProperty.call(A,g)}function DI(A){for(var g=Array.prototype.slice.call(arguments,1);g.length;){var I=g.shift();if(I){if("object"!=typeof I)throw new TypeError(I+"must be non-object");for(var t in I)dI(I,t)&&(A[t]=I[t])}}return A}function uI(A,g){return A.length===g?A:A.subarray?A.subarray(0,g):(A.length=g,A)}var wI={arraySet:function(A,g,I,t,e){if(g.subarray&&A.subarray)A.set(g.subarray(I,I+t),e);else for(var C=0;C<t;C++)A[e+C]=g[I+C]},flattenChunks:function(A){var g,I,t,e,C,i;for(t=0,g=0,I=A.length;g<I;g++)t+=A[g].length;for(i=new Uint8Array(t),e=0,g=0,I=A.length;g<I;g++)C=A[g],i.set(C,e),e+=C.length;return i},Buf8:function(A){return new Uint8Array(A)},Buf16:function(A){return new Uint16Array(A)},Buf32:function(A){return new Int32Array(A)}},yI={arraySet:function(A,g,I,t,e){for(var C=0;C<t;C++)A[e+C]=g[I+C]},flattenChunks:function(A){return[].concat.apply([],A)},Buf8:function(A){return new Array(A)},Buf16:function(A){return new Array(A)},Buf32:function(A){return new Array(A)}};let fI=()=>{const A="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;return fI=()=>A,A},SI=(A,g,I,t,e)=>(SI=fI()?wI.arraySet:yI.arraySet,SI(A,g,I,t,e)),kI=A=>(kI=fI()?wI.flattenChunks:yI.flattenChunks,kI(A)),GI=A=>(GI=fI()?wI.Buf8:yI.Buf8,GI(A)),FI=A=>(FI=fI()?wI.Buf16:yI.Buf16,FI(A)),NI=A=>(NI=fI()?wI.Buf32:yI.Buf32,NI(A));let mI=function(){let A=!0;try{String.fromCharCode.apply(null,[0])}catch(g){A=!1}return mI=()=>A,A},pI=function(){let A=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(g){A=!1}return pI=()=>A,A},RI=function(A){for(var g=GI(256),I=0;I<256;I++)g[I]=I>=252?6:I>=248?5:I>=240?4:I>=224?3:I>=192?2:1;return g[254]=g[254]=1,RI=A=>g[A],g[A]};function UI(A){var g,I,t,e,C,i=A.length,B=0;for(e=0;e<i;e++)55296==(64512&(I=A.charCodeAt(e)))&&e+1<i&&56320==(64512&(t=A.charCodeAt(e+1)))&&(I=65536+(I-55296<<10)+(t-56320),e++),B+=I<128?1:I<2048?2:I<65536?3:4;for(g=new Uint8Array(B),C=0,e=0;C<B;e++)55296==(64512&(I=A.charCodeAt(e)))&&e+1<i&&56320==(64512&(t=A.charCodeAt(e+1)))&&(I=65536+(I-55296<<10)+(t-56320),e++),I<128?g[C++]=I:I<2048?(g[C++]=192|I>>>6,g[C++]=128|63&I):I<65536?(g[C++]=224|I>>>12,g[C++]=128|I>>>6&63,g[C++]=128|63&I):(g[C++]=240|I>>>18,g[C++]=128|I>>>12&63,g[C++]=128|I>>>6&63,g[C++]=128|63&I);return g}function MI(A,g){if(g<65534&&(A.subarray&&pI()||!A.subarray&&mI()))return String.fromCharCode.apply(null,uI(A,g));for(var I="",t=0;t<g;t++)I+=String.fromCharCode(A[t]);return I}function LI(A,g){var I,t,e,C,i=g||A.length,B=new Array(2*i);for(t=0,I=0;I<i;)if((e=A[I++])<128)B[t++]=e;else if((C=RI(e))>4)B[t++]=65533,I+=C-1;else{for(e&=2===C?31:3===C?15:7;C>1&&I<i;)e=e<<6|63&A[I++],C--;C>1?B[t++]=65533:e<65536?B[t++]=e:(e-=65536,B[t++]=55296|e>>10&1023,B[t++]=56320|1023&e)}return MI(B,t)}function JI(A,g){var I;for((g=g||A.length)>A.length&&(g=A.length),I=g-1;I>=0&&128==(192&A[I]);)I--;return I<0||0===I?g:I+RI(A[I])>g?I:g}function KI(){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}function bI(A,g,I,t){for(var e=65535&A,C=A>>>16&65535,i=0;0!==I;){I-=i=I>2e3?2e3:I;do{C=C+(e=e+g[t++]|0)|0}while(--i);e%=65521,C%=65521}return e|C<<16}let vI=function(){const A=function(){for(var A,g=[],I=0;I<256;I++){A=I;for(var t=0;t<8;t++)A=1&A?3988292384^A>>>1:A>>>1;g[I]=A}return g}();return vI=()=>A,A};function YI(A,g,I,t){var e=vI(),C=t+I;A^=-1;for(var i=t;i<C;i++)A=A>>>8^e[255&(A^g[i])];return-1^A}function xI(A,g){var I,t,e,C,i,B,Q,o,s,E,a,r,n,h,c,l,d,D,u,w,y,f,S,k,G;I=A.state,t=A.next_in,k=A.input,e=t+(A.avail_in-5),C=A.next_out,G=A.output,i=C-(g-A.avail_out),B=C+(A.avail_out-257),Q=I.dmax,o=I.wsize,s=I.whave,E=I.wnext,a=I.window,r=I.hold,n=I.bits,h=I.lencode,c=I.distcode,l=(1<<I.lenbits)-1,d=(1<<I.distbits)-1;A:do{n<15&&(r+=k[t++]<<n,n+=8,r+=k[t++]<<n,n+=8),D=h[r&l];g:for(;;){if(r>>>=u=D>>>24,n-=u,0===(u=D>>>16&255))G[C++]=65535&D;else{if(!(16&u)){if(64&u){if(32&u){I.mode=12;break A}A.msg="invalid literal/length code",I.mode=30;break A}D=h[(65535&D)+(r&(1<<u)-1)];continue g}for(w=65535&D,(u&=15)&&(n<u&&(r+=k[t++]<<n,n+=8),w+=r&(1<<u)-1,r>>>=u,n-=u),n<15&&(r+=k[t++]<<n,n+=8,r+=k[t++]<<n,n+=8),D=c[r&d];;){if(r>>>=u=D>>>24,n-=u,16&(u=D>>>16&255)){if(y=65535&D,n<(u&=15)&&(r+=k[t++]<<n,(n+=8)<u&&(r+=k[t++]<<n,n+=8)),(y+=r&(1<<u)-1)>Q){A.msg="invalid distance too far back",I.mode=30;break A}if(r>>>=u,n-=u,y>(u=C-i)){if((u=y-u)>s&&I.sane){A.msg="invalid distance too far back",I.mode=30;break A}if(f=0,S=a,0===E){if(f+=o-u,u<w){w-=u;do{G[C++]=a[f++]}while(--u);f=C-y,S=G}}else if(E<u){if(f+=o+E-u,(u-=E)<w){w-=u;do{G[C++]=a[f++]}while(--u);if(f=0,E<w){w-=u=E;do{G[C++]=a[f++]}while(--u);f=C-y,S=G}}}else if(f+=E-u,u<w){w-=u;do{G[C++]=a[f++]}while(--u);f=C-y,S=G}for(;w>2;)G[C++]=S[f++],G[C++]=S[f++],G[C++]=S[f++],w-=3;w&&(G[C++]=S[f++],w>1&&(G[C++]=S[f++]))}else{f=C-y;do{G[C++]=G[f++],G[C++]=G[f++],G[C++]=G[f++],w-=3}while(w>2);w&&(G[C++]=G[f++],w>1&&(G[C++]=G[f++]))}break}if(64&u){A.msg="invalid distance code",I.mode=30;break A}D=c[(65535&D)+(r&(1<<u)-1)]}}break}}while(t<e&&C<B);t-=w=n>>3,r&=(1<<(n-=w<<3))-1,A.next_in=t,A.next_out=C,A.avail_in=t<e?e-t+5:5-(t-e),A.avail_out=C<B?B-C+257:257-(C-B),I.hold=r,I.bits=n}var HI=15,qI=[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],_I=[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],TI=[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],WI=[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];function PI(A,g,I,t,e,C,i,B){var Q,o,s,E,a,r,n,h,c,l=B.bits,d=0,D=0,u=0,w=0,y=0,f=0,S=0,k=0,G=0,F=0,N=null,m=0,p=FI(16),R=FI(16),U=null,M=0;for(d=0;d<=HI;d++)p[d]=0;for(D=0;D<t;D++)p[g[I+D]]++;for(y=l,w=HI;w>=1&&0===p[w];w--);if(y>w&&(y=w),0===w)return e[C++]=20971520,e[C++]=20971520,B.bits=1,0;for(u=1;u<w&&0===p[u];u++);for(y<u&&(y=u),k=1,d=1;d<=HI;d++)if(k<<=1,(k-=p[d])<0)return-1;if(k>0&&(0===A||1!==w))return-1;for(R[1]=0,d=1;d<HI;d++)R[d+1]=R[d]+p[d];for(D=0;D<t;D++)0!==g[I+D]&&(i[R[g[I+D]]++]=D);if(0===A?(N=U=i,r=19):1===A?(N=qI,m-=257,U=_I,M-=257,r=256):(N=TI,U=WI,r=-1),F=0,D=0,d=u,a=C,f=y,S=0,s=-1,E=(G=1<<y)-1,1===A&&G>852||2===A&&G>592)return 1;for(;;){n=d-S,i[D]<r?(h=0,c=i[D]):i[D]>r?(h=U[M+i[D]],c=N[m+i[D]]):(h=96,c=0),Q=1<<d-S,u=o=1<<f;do{e[a+(F>>S)+(o-=Q)]=n<<24|h<<16|c}while(0!==o);for(Q=1<<d-1;F&Q;)Q>>=1;if(0!==Q?(F&=Q-1,F+=Q):F=0,D++,0===--p[d]){if(d===w)break;d=g[I+i[D]]}if(d>y&&(F&E)!==s){for(0===S&&(S=y),a+=u,k=1<<(f=d-S);f+S<w&&!((k-=p[f+S])<=0);)f++,k<<=1;if(G+=1<<f,1===A&&G>852||2===A&&G>592)return 1;e[s=F&E]=y<<24|f<<16|a-C}}return 0!==F&&(e[a+F]=d-S<<24|64<<16),B.bits=y,0}var OI=-2,VI=12,ZI=30;function zI(A){return(A>>>24&255)+(A>>>8&65280)+((65280&A)<<8)+((255&A)<<24)}function jI(){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=FI(320),this.work=FI(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function XI(A){var g;return A&&A.state?((g=A.state).wsize=0,g.whave=0,g.wnext=0,function(A){var g;return A&&A.state?(g=A.state,A.total_in=A.total_out=g.total=0,A.msg="",g.wrap&&(A.adler=1&g.wrap),g.mode=1,g.last=0,g.havedict=0,g.dmax=32768,g.head=null,g.hold=0,g.bits=0,g.lencode=g.lendyn=NI(852),g.distcode=g.distdyn=NI(592),g.sane=1,g.back=-1,0):OI}(A)):OI}function $I(A,g){var I,t;return A?(t=new jI,A.state=t,t.window=null,I=function(A,g){var I,t;return A&&A.state?(t=A.state,g<0?(I=0,g=-g):(I=1+(g>>4),g<48&&(g&=15)),g&&(g<8||g>15)?OI:(null!==t.window&&t.wbits!==g&&(t.window=null),t.wrap=I,t.wbits=g,XI(A))):OI}(A,g),0!==I&&(A.state=null),I):OI}var At,gt,It=!0;function tt(A){if(It){var g;for(At=NI(512),gt=NI(32),g=0;g<144;)A.lens[g++]=8;for(;g<256;)A.lens[g++]=9;for(;g<280;)A.lens[g++]=7;for(;g<288;)A.lens[g++]=8;for(PI(1,A.lens,0,288,At,0,A.work,{bits:9}),g=0;g<32;)A.lens[g++]=5;PI(2,A.lens,0,32,gt,0,A.work,{bits:5}),It=!1}A.lencode=At,A.lenbits=9,A.distcode=gt,A.distbits=5}function et(A,g,I,t){var e,C=A.state;return null===C.window&&(C.wsize=1<<C.wbits,C.wnext=0,C.whave=0,C.window=GI(C.wsize)),t>=C.wsize?(SI(C.window,g,I-C.wsize,C.wsize,0),C.wnext=0,C.whave=C.wsize):((e=C.wsize-C.wnext)>t&&(e=t),SI(C.window,g,I-t,e,C.wnext),(t-=e)?(SI(C.window,g,I-t,t,0),C.wnext=t,C.whave=C.wsize):(C.wnext+=e,C.wnext===C.wsize&&(C.wnext=0),C.whave<C.wsize&&(C.whave+=e))),0}function Ct(A,g){var I,t,e,C,i,B,Q,o,s,E,a,r,n,h,c,l,d,D,u,w,y,f,S,k,G=0,F=GI(4),N=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!A||!A.state||!A.output||!A.input&&0!==A.avail_in)return OI;(I=A.state).mode===VI&&(I.mode=13),i=A.next_out,e=A.output,Q=A.avail_out,C=A.next_in,t=A.input,B=A.avail_in,o=I.hold,s=I.bits,E=B,a=Q,f=0;A:for(;;)switch(I.mode){case 1:if(0===I.wrap){I.mode=13;break}for(;s<16;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}if(2&I.wrap&&35615===o){I.check=0,F[0]=255&o,F[1]=o>>>8&255,I.check=YI(I.check,F,2,0),o=0,s=0,I.mode=2;break}if(I.flags=0,I.head&&(I.head.done=!1),!(1&I.wrap)||(((255&o)<<8)+(o>>8))%31){A.msg="incorrect header check",I.mode=ZI;break}if(8!=(15&o)){A.msg="unknown compression method",I.mode=ZI;break}if(s-=4,y=8+(15&(o>>>=4)),0===I.wbits)I.wbits=y;else if(y>I.wbits){A.msg="invalid window size",I.mode=ZI;break}I.dmax=1<<y,A.adler=I.check=1,I.mode=512&o?10:VI,o=0,s=0;break;case 2:for(;s<16;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}if(I.flags=o,8!=(255&I.flags)){A.msg="unknown compression method",I.mode=ZI;break}if(57344&I.flags){A.msg="unknown header flags set",I.mode=ZI;break}I.head&&(I.head.text=o>>8&1),512&I.flags&&(F[0]=255&o,F[1]=o>>>8&255,I.check=YI(I.check,F,2,0)),o=0,s=0,I.mode=3;case 3:for(;s<32;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}I.head&&(I.head.time=o),512&I.flags&&(F[0]=255&o,F[1]=o>>>8&255,F[2]=o>>>16&255,F[3]=o>>>24&255,I.check=YI(I.check,F,4,0)),o=0,s=0,I.mode=4;case 4:for(;s<16;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}I.head&&(I.head.xflags=255&o,I.head.os=o>>8),512&I.flags&&(F[0]=255&o,F[1]=o>>>8&255,I.check=YI(I.check,F,2,0)),o=0,s=0,I.mode=5;case 5:if(1024&I.flags){for(;s<16;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}I.length=o,I.head&&(I.head.extra_len=o),512&I.flags&&(F[0]=255&o,F[1]=o>>>8&255,I.check=YI(I.check,F,2,0)),o=0,s=0}else I.head&&(I.head.extra=null);I.mode=6;case 6:if(1024&I.flags&&((r=I.length)>B&&(r=B),r&&(I.head&&(y=I.head.extra_len-I.length,I.head.extra||(I.head.extra=new Array(I.head.extra_len)),SI(I.head.extra,t,C,r,y)),512&I.flags&&(I.check=YI(I.check,t,r,C)),B-=r,C+=r,I.length-=r),I.length))break A;I.length=0,I.mode=7;case 7:if(2048&I.flags){if(0===B)break A;r=0;do{y=t[C+r++],I.head&&y&&I.length<65536&&(I.head.name+=String.fromCharCode(y))}while(y&&r<B);if(512&I.flags&&(I.check=YI(I.check,t,r,C)),B-=r,C+=r,y)break A}else I.head&&(I.head.name=null);I.length=0,I.mode=8;case 8:if(4096&I.flags){if(0===B)break A;r=0;do{y=t[C+r++],I.head&&y&&I.length<65536&&(I.head.comment+=String.fromCharCode(y))}while(y&&r<B);if(512&I.flags&&(I.check=YI(I.check,t,r,C)),B-=r,C+=r,y)break A}else I.head&&(I.head.comment=null);I.mode=9;case 9:if(512&I.flags){for(;s<16;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}if(o!==(65535&I.check)){A.msg="header crc mismatch",I.mode=ZI;break}o=0,s=0}I.head&&(I.head.hcrc=I.flags>>9&1,I.head.done=!0),A.adler=I.check=0,I.mode=VI;break;case 10:for(;s<32;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}A.adler=I.check=zI(o),o=0,s=0,I.mode=11;case 11:if(0===I.havedict)return A.next_out=i,A.avail_out=Q,A.next_in=C,A.avail_in=B,I.hold=o,I.bits=s,2;A.adler=I.check=1,I.mode=VI;case VI:if(5===g||6===g)break A;case 13:if(I.last){o>>>=7&s,s-=7&s,I.mode=27;break}for(;s<3;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}switch(I.last=1&o,s-=1,3&(o>>>=1)){case 0:I.mode=14;break;case 1:if(tt(I),I.mode=20,6===g){o>>>=2,s-=2;break A}break;case 2:I.mode=17;break;case 3:A.msg="invalid block type",I.mode=ZI}o>>>=2,s-=2;break;case 14:for(o>>>=7&s,s-=7&s;s<32;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}if((65535&o)!=(o>>>16^65535)){A.msg="invalid stored block lengths",I.mode=ZI;break}if(I.length=65535&o,o=0,s=0,I.mode=15,6===g)break A;case 15:I.mode=16;case 16:if(r=I.length){if(r>B&&(r=B),r>Q&&(r=Q),0===r)break A;SI(e,t,C,r,i),B-=r,C+=r,Q-=r,i+=r,I.length-=r;break}I.mode=VI;break;case 17:for(;s<14;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}if(I.nlen=257+(31&o),o>>>=5,s-=5,I.ndist=1+(31&o),o>>>=5,s-=5,I.ncode=4+(15&o),o>>>=4,s-=4,I.nlen>286||I.ndist>30){A.msg="too many length or distance symbols",I.mode=ZI;break}I.have=0,I.mode=18;case 18:for(;I.have<I.ncode;){for(;s<3;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}I.lens[N[I.have++]]=7&o,o>>>=3,s-=3}for(;I.have<19;)I.lens[N[I.have++]]=0;if(I.lencode=I.lendyn,I.lenbits=7,S={bits:I.lenbits},f=PI(0,I.lens,0,19,I.lencode,0,I.work,S),I.lenbits=S.bits,f){A.msg="invalid code lengths set",I.mode=ZI;break}I.have=0,I.mode=19;case 19:for(;I.have<I.nlen+I.ndist;){for(;l=(G=I.lencode[o&(1<<I.lenbits)-1])>>>16&255,d=65535&G,!((c=G>>>24)<=s);){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}if(d<16)o>>>=c,s-=c,I.lens[I.have++]=d;else{if(16===d){for(k=c+2;s<k;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}if(o>>>=c,s-=c,0===I.have){A.msg="invalid bit length repeat",I.mode=ZI;break}y=I.lens[I.have-1],r=3+(3&o),o>>>=2,s-=2}else if(17===d){for(k=c+3;s<k;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}s-=c,y=0,r=3+(7&(o>>>=c)),o>>>=3,s-=3}else{for(k=c+7;s<k;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}s-=c,y=0,r=11+(127&(o>>>=c)),o>>>=7,s-=7}if(I.have+r>I.nlen+I.ndist){A.msg="invalid bit length repeat",I.mode=ZI;break}for(;r--;)I.lens[I.have++]=y}}if(I.mode===ZI)break;if(0===I.lens[256]){A.msg="invalid code -- missing end-of-block",I.mode=ZI;break}if(I.lenbits=9,S={bits:I.lenbits},f=PI(1,I.lens,0,I.nlen,I.lencode,0,I.work,S),I.lenbits=S.bits,f){A.msg="invalid literal/lengths set",I.mode=ZI;break}if(I.distbits=6,I.distcode=I.distdyn,S={bits:I.distbits},f=PI(2,I.lens,I.nlen,I.ndist,I.distcode,0,I.work,S),I.distbits=S.bits,f){A.msg="invalid distances set",I.mode=ZI;break}if(I.mode=20,6===g)break A;case 20:I.mode=21;case 21:if(B>=6&&Q>=258){A.next_out=i,A.avail_out=Q,A.next_in=C,A.avail_in=B,I.hold=o,I.bits=s,xI(A,a),i=A.next_out,e=A.output,Q=A.avail_out,C=A.next_in,t=A.input,B=A.avail_in,o=I.hold,s=I.bits,I.mode===VI&&(I.back=-1);break}for(I.back=0;l=(G=I.lencode[o&(1<<I.lenbits)-1])>>>16&255,d=65535&G,!((c=G>>>24)<=s);){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}if(l&&!(240&l)){for(D=c,u=l,w=d;l=(G=I.lencode[w+((o&(1<<D+u)-1)>>D)])>>>16&255,d=65535&G,!(D+(c=G>>>24)<=s);){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}o>>>=D,s-=D,I.back+=D}if(o>>>=c,s-=c,I.back+=c,I.length=d,0===l){I.mode=26;break}if(32&l){I.back=-1,I.mode=VI;break}if(64&l){A.msg="invalid literal/length code",I.mode=ZI;break}I.extra=15&l,I.mode=22;case 22:if(I.extra){for(k=I.extra;s<k;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}I.length+=o&(1<<I.extra)-1,o>>>=I.extra,s-=I.extra,I.back+=I.extra}I.was=I.length,I.mode=23;case 23:for(;l=(G=I.distcode[o&(1<<I.distbits)-1])>>>16&255,d=65535&G,!((c=G>>>24)<=s);){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}if(!(240&l)){for(D=c,u=l,w=d;l=(G=I.distcode[w+((o&(1<<D+u)-1)>>D)])>>>16&255,d=65535&G,!(D+(c=G>>>24)<=s);){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}o>>>=D,s-=D,I.back+=D}if(o>>>=c,s-=c,I.back+=c,64&l){A.msg="invalid distance code",I.mode=ZI;break}I.offset=d,I.extra=15&l,I.mode=24;case 24:if(I.extra){for(k=I.extra;s<k;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}I.offset+=o&(1<<I.extra)-1,o>>>=I.extra,s-=I.extra,I.back+=I.extra}if(I.offset>I.dmax){A.msg="invalid distance too far back",I.mode=ZI;break}I.mode=25;case 25:if(0===Q)break A;if(r=a-Q,I.offset>r){if((r=I.offset-r)>I.whave&&I.sane){A.msg="invalid distance too far back",I.mode=ZI;break}r>I.wnext?(r-=I.wnext,n=I.wsize-r):n=I.wnext-r,r>I.length&&(r=I.length),h=I.window}else h=e,n=i-I.offset,r=I.length;r>Q&&(r=Q),Q-=r,I.length-=r;do{e[i++]=h[n++]}while(--r);0===I.length&&(I.mode=21);break;case 26:if(0===Q)break A;e[i++]=I.length,Q--,I.mode=21;break;case 27:if(I.wrap){for(;s<32;){if(0===B)break A;B--,o|=t[C++]<<s,s+=8}if(a-=Q,A.total_out+=a,I.total+=a,a&&(A.adler=I.check=I.flags?YI(I.check,e,a,i-a):bI(I.check,e,a,i-a)),a=Q,(I.flags?o:zI(o))!==I.check){A.msg="incorrect data check",I.mode=ZI;break}o=0,s=0}I.mode=28;case 28:if(I.wrap&&I.flags){for(;s<32;){if(0===B)break A;B--,o+=t[C++]<<s,s+=8}if(o!==(4294967295&I.total)){A.msg="incorrect length check",I.mode=ZI;break}o=0,s=0}I.mode=29;case 29:f=1;break A;case ZI:f=-3;break A;case 31:return-4;default:return OI}return A.next_out=i,A.avail_out=Q,A.next_in=C,A.avail_in=B,I.hold=o,I.bits=s,(I.wsize||a!==A.avail_out&&I.mode<ZI&&(I.mode<27||4!==g))&&et(A,A.output,A.next_out,a-A.avail_out)?(I.mode=31,-4):(E-=A.avail_in,a-=A.avail_out,A.total_in+=E,A.total_out+=a,I.total+=a,I.wrap&&a&&(A.adler=I.check=I.flags?YI(I.check,e,a,A.next_out-a):bI(I.check,e,a,A.next_out-a)),A.data_type=I.bits+(I.last?64:0)+(I.mode===VI?128:0)+(20===I.mode||15===I.mode?256:0),(0===E&&0===a||4===g)&&0===f&&(f=-5),f)}function it(A,g){var I,t=g.length;return A&&A.state?0!==(I=A.state).wrap&&11!==I.mode?OI:11===I.mode&&bI(1,g,t,0)!==I.check?-3:et(A,g,t,t)?(I.mode=31,-4):(I.havedict=1,0):OI}var Bt={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"};function Qt(){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}var ot=Object.prototype.toString;class st{constructor(A){if(!(this instanceof st))return new st(A);this.options=DI({chunkSize:16384,windowBits:0,to:""},A||{});var g=this.options;g.raw&&g.windowBits>=0&&g.windowBits<16&&(g.windowBits=-g.windowBits,0===g.windowBits&&(g.windowBits=-15)),!(g.windowBits>=0&&g.windowBits<16)||A&&A.windowBits||(g.windowBits+=32),g.windowBits>15&&g.windowBits<48&&(15&g.windowBits||(g.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Qt,this.strm.avail_out=0;var I,t,e,C=$I(this.strm,g.windowBits);if(0!==C)throw new Error(Bt[C]);if(this.header=new KI,I=this.strm,t=this.header,I&&I.state&&2&(e=I.state).wrap&&(e.head=t,t.done=!1),g.dictionary&&("string"==typeof g.dictionary?g.dictionary=UI(g.dictionary):"[object ArrayBuffer]"===ot.call(g.dictionary)&&(g.dictionary=new Uint8Array(g.dictionary)),g.raw&&0!==(C=it(this.strm,g.dictionary))))throw new Error(Bt[C])}push(A,g){var I,t,e,C,i,B,Q=this.strm,o=this.options.chunkSize,s=this.options.dictionary,E=!1;if(this.ended)return!1;t=g===~~g?g:!0===g?4:0,"string"==typeof A?Q.input=function(A){for(var g=new Uint8Array(A.length),I=0,t=g.length;I<t;I++)g[I]=A.charCodeAt(I);return g}(A):"[object ArrayBuffer]"===ot.call(A)?Q.input=new Uint8Array(A):Q.input=A,Q.next_in=0,Q.avail_in=Q.input.length;do{if(0===Q.avail_out&&(Q.output=GI(o),Q.next_out=0,Q.avail_out=o),2===(I=Ct(Q,0))&&s&&(B="string"==typeof s?UI(s):"[object ArrayBuffer]"===ot.call(s)?new Uint8Array(s):s,I=it(this.strm,B)),-5===I&&!0===E&&(I=0,E=!1),1!==I&&0!==I)return this.onEnd(I),this.ended=!0,!1;Q.next_out&&(0!==Q.avail_out&&1!==I&&(0!==Q.avail_in||4!==t&&2!==t)||("string"===this.options.to?(e=JI(Q.output,Q.next_out),C=Q.next_out-e,i=LI(Q.output,e),Q.next_out=C,Q.avail_out=o-C,C&&SI(Q.output,Q.output,e,C,0),this.onData(i)):this.onData(uI(Q.output,Q.next_out)))),0===Q.avail_in&&0===Q.avail_out&&(E=!0)}while((Q.avail_in>0||0===Q.avail_out)&&1!==I);return 1===I&&(t=4),4===t?(I=function(A){if(!A||!A.state)return OI;var g=A.state;return g.window&&(g.window=null),A.state=null,0}(this.strm),this.onEnd(I),this.ended=!0,0===I):2!==t||(this.onEnd(0),Q.avail_out=0,!0)}onData(A){this.chunks.push(A)}onEnd(A){0===A&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=kI(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg}}function Et(A,g){var I=new st(g);if(I.push(A,!0),I.err)throw I.msg||Bt[I.err];return I.result}var at=Et;Object.prototype.toString;var rt={d:(A,g)=>{for(var I in g)rt.o(g,I)&&!rt.o(A,I)&&Object.defineProperty(A,I,{enumerable:!0,get:g[I]})},o:(A,g)=>Object.prototype.hasOwnProperty.call(A,g),r:A=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(A,"__esModule",{value:!0})}},nt={};rt.r(nt),rt.d(nt,{ChunkSliceResult:()=>ht,DecompressResult:()=>ct,__wbg_Error_8c4e43fe74559d73:()=>ut,__wbg___wbindgen_throw_be289d5034ed271b:()=>wt,__wbg_set_wasm:()=>Ht,decompress_all:()=>lt,decompress_block:()=>dt,decompress_chunk_slice:()=>Dt});class ht{static __wrap(A){A>>>=0;const g=Object.create(ht.prototype);return g.__wbg_ptr=A,yt.register(g,g.__wbg_ptr,g),g}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,yt.unregister(this),A}free(){const A=this.__destroy_into_raw();Yt.__wbg_chunksliceresult_free(A,0)}get buffer(){try{const t=Yt.__wbindgen_add_to_stack_pointer(-16);Yt.chunksliceresult_buffer(t,this.__wbg_ptr);var A=Ft().getInt32(t+0,!0),g=Ft().getInt32(t+4,!0),I=kt(A,g).slice();return Yt.__wbindgen_export(A,1*g,1),I}finally{Yt.__wbindgen_add_to_stack_pointer(16)}}get cpositions(){try{const t=Yt.__wbindgen_add_to_stack_pointer(-16);Yt.chunksliceresult_cpositions(t,this.__wbg_ptr);var A=Ft().getInt32(t+0,!0),g=Ft().getInt32(t+4,!0),I=St(A,g).slice();return Yt.__wbindgen_export(A,8*g,8),I}finally{Yt.__wbindgen_add_to_stack_pointer(16)}}get dpositions(){try{const t=Yt.__wbindgen_add_to_stack_pointer(-16);Yt.chunksliceresult_dpositions(t,this.__wbg_ptr);var A=Ft().getInt32(t+0,!0),g=Ft().getInt32(t+4,!0),I=St(A,g).slice();return Yt.__wbindgen_export(A,8*g,8),I}finally{Yt.__wbindgen_add_to_stack_pointer(16)}}}Symbol.dispose&&(ht.prototype[Symbol.dispose]=ht.prototype.free);class ct{static __wrap(A){A>>>=0;const g=Object.create(ct.prototype);return g.__wbg_ptr=A,ft.register(g,g.__wbg_ptr,g),g}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,ft.unregister(this),A}free(){const A=this.__destroy_into_raw();Yt.__wbg_decompressresult_free(A,0)}get bytes_read(){return Yt.decompressresult_bytes_read(this.__wbg_ptr)>>>0}get data(){try{const t=Yt.__wbindgen_add_to_stack_pointer(-16);Yt.decompressresult_data(t,this.__wbg_ptr);var A=Ft().getInt32(t+0,!0),g=Ft().getInt32(t+4,!0),I=kt(A,g).slice();return Yt.__wbindgen_export(A,1*g,1),I}finally{Yt.__wbindgen_add_to_stack_pointer(16)}}}function lt(A){try{const C=Yt.__wbindgen_add_to_stack_pointer(-16),i=Lt(A,Yt.__wbindgen_export2),B=xt;Yt.decompress_all(C,i,B);var g=Ft().getInt32(C+0,!0),I=Ft().getInt32(C+4,!0),t=Ft().getInt32(C+8,!0);if(Ft().getInt32(C+12,!0))throw Jt(t);var e=kt(g,I).slice();return Yt.__wbindgen_export(g,1*I,1),e}finally{Yt.__wbindgen_add_to_stack_pointer(16)}}function dt(A){try{const t=Yt.__wbindgen_add_to_stack_pointer(-16),e=Lt(A,Yt.__wbindgen_export2),C=xt;Yt.decompress_block(t,e,C);var g=Ft().getInt32(t+0,!0),I=Ft().getInt32(t+4,!0);if(Ft().getInt32(t+8,!0))throw Jt(I);return ct.__wrap(g)}finally{Yt.__wbindgen_add_to_stack_pointer(16)}}function Dt(A,g,I,t,e){try{const B=Yt.__wbindgen_add_to_stack_pointer(-16),Q=Lt(A,Yt.__wbindgen_export2),o=xt;Yt.decompress_chunk_slice(B,Q,o,g,I,t,e);var C=Ft().getInt32(B+0,!0),i=Ft().getInt32(B+4,!0);if(Ft().getInt32(B+8,!0))throw Jt(i);return ht.__wrap(C)}finally{Yt.__wbindgen_add_to_stack_pointer(16)}}function ut(A,g){return function(A){Mt===Ut.length&&Ut.push(Ut.length+1);const g=Mt;return Mt=Ut[g],Ut[g]=A,g}(Error(mt(A,g)))}function wt(A,g){throw new Error(mt(A,g))}Symbol.dispose&&(ct.prototype[Symbol.dispose]=ct.prototype.free);const yt="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(A=>Yt.__wbg_chunksliceresult_free(A>>>0,1)),ft="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(A=>Yt.__wbg_decompressresult_free(A>>>0,1));function St(A,g){return A>>>=0,function(){null!==Nt&&0!==Nt.byteLength||(Nt=new Float64Array(Yt.memory.buffer));return Nt}().subarray(A/8,A/8+g)}function kt(A,g){return A>>>=0,Rt().subarray(A/1,A/1+g)}let Gt=null;function Ft(){return(null===Gt||!0===Gt.buffer.detached||void 0===Gt.buffer.detached&&Gt.buffer!==Yt.memory.buffer)&&(Gt=new DataView(Yt.memory.buffer)),Gt}let Nt=null;function mt(A,g){return function(A,g){vt+=g,vt>=bt&&(Kt=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),Kt.decode(),vt=g);return Kt.decode(Rt().subarray(A,A+g))}(A>>>=0,g)}let pt=null;function Rt(){return null!==pt&&0!==pt.byteLength||(pt=new Uint8Array(Yt.memory.buffer)),pt}let Ut=new Array(128).fill(void 0);Ut.push(void 0,null,!0,!1);let Mt=Ut.length;function Lt(A,g){const I=g(1*A.length,1)>>>0;return Rt().set(A,I/1),xt=A.length,I}function Jt(A){const g=function(A){return Ut[A]}(A);return function(A){A<132||(Ut[A]=Mt,Mt=A)}(A),g}let Kt=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Kt.decode();const bt=2146435072;let vt=0;let Yt,xt=0;function Ht(A){Yt=A}let qt=null,_t=null;async function Tt(){return qt||(_t||(_t=(async()=>{const A=await fetch("data:application/wasm;base64,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AAsgASADNgIEIAEgAjYCACABQfiSwAAgACgCBCAAKAIIIgAtAAggAC0ACRAeAAuLAQEBfyMAQRBrIgMkAAJAIAIgAWoiASACTw0AQQBBABBNAAsgA0EEaiAAKAIAIgIgACgCBCABIAJBAXQiAiABIAJLGyICQQggAkEISxsiAkEBQQEQIAJAIAMoAgRBAUcNACADKAIIIAMoAgwQTQALIAMoAgghASAAIAI2AgAgACABNgIEIANBEGokAAuHAQEBfyMAQSBrIgIkAAJAAkAgACgCAEGAgICAeEYNACABIAAoAgQgACgCCBBSIQAMAQsgAkEIakEIaiAAKAIMKAIAIgBBCGopAgA3AwAgAkEIakEQaiAAQRBqKQIANwMAIAIgACkCADcDCCABKAIAIAEoAgQgAkEIahALIQALIAJBIGokACAAC3wBAX8CQCAAKAIAIgAoAgwiAUUNACAAKAIQIAFBARBWCwJAIAAoAhgiAUUNACAAKAIcIAFBA3RBCBBWCwJAIAAoAiQiAUUNACAAKAIoIAFBA3RBCBBWCwJAIABBf0YNACAAIAAoAgRBf2oiATYCBCABDQAgAEEwQQQQVgsLhAEBAn8jAEEQayIGJABBACEHIAZBADYCDAJAAkACQAJAAkAgASgCACACIAMgBCAFIAZBDGoQUA4EAQIAAwALQZCFwABB7ABB/IXAABA/AAsgACAGKAIMNgIEDAILIABBADoAAUEBIQcMAQtBASEHIABBAToAAQsgACAHOgAAIAZBEGokAAtrAQN/IwBBEGsiASQAIAFBBGogACgCACICIAAoAgQgAkEBdCICQQQgAkEESxsiAkEIQQgQIAJAIAEoAgRBAUcNACABKAIIIAEoAgwQTQALIAEoAgghAyAAIAI2AgAgACADNgIEIAFBEGokAAtoAQF/IwBBMGsiAiQAAkAQaEH/AXENACACQTBqJAAPCyACIAE2AiQgAkECNgIQIAJBpJLAADYCDCACQgE3AhggAkEErUIghiACQSRqrYQ3AyggAiACQShqNgIUIAJBDGpBtJLAABBAAAtoAgF/AX4jAEEwayIDJAAgAyABNgIEIAMgADYCACADQQI2AgwgA0GcmMAANgIIIANCAjcCFCADQQStQiCGIgQgA62ENwMoIAMgBCADQQRqrYQ3AyAgAyADQSBqNgIQIANBCGogAhBA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ABWAAAAWgAAAF4AAABiAAAAZgAAAGoAAABuAAAAcgAAAHYAAAB6AAAAfgAAAIIAAACGAAAAigAAAI4AAACSAAAAlgAAAJoAAACeAAAAogAAAKYAAACqAAAArgAAALIAAAC2AAAAugAAAL4AAADCAAAAxgAAAMoAAADOAAAA0gAAANYAAADaAAAA3gAAAOIAAADmAAAA6gAAAO4AAADyAAAA9gAAAPoAAAD+AAABAgAAAQYAAAEKAAABDgAAARIAAAEWAAABGgAAAR4AAAEiAAABJgAAASoAAAEuAAABMgAAATYAAAE6AAABPgAAAUIAAAFGAAABSgAAAU4AAAFSAAABVgAAAVoAAAFeAAABYgAAAWYAAAFqAAABbgAAAXIAAAF2AAABegAAAX4AAAGCAAABhgAAAYoAAAGOAAABkgAAAZYAAAGaAAABngAAAaIAAAGmAAABqgAAAa4AAAGyAAABtgAAAboAAAG+AAABwgAAAcYAAAHKAAABzgAAAdIAAAHWAAAB2gAAAd4AAAHiAAAB5gAAAeoAAAHuAAAB8gAAAfYAAAH6AAAB/gAAAgIAAAIGAAACCgAAAg4AAAISAAACFgAAAhoAAAIeAAACIgAAAiYAAAIqAAACLgAAAjIAAAI2AAACOgAAAj4AAAJCAAACRgAAAkoAAAJOAAACUgAAAlYAAAJaAAACXgAAAmIAAAJmAAACagAAAm4AAAJyAAACdgAAAnoAAAJ+AAACggAAAoYAAAKKAAACjgAAApIAAAKWAAACmgAAAp4AAAKiAAACpgAAAqoAAAKuAAACsgAAArYAAAK6AAACvgAAAsIAAALGAAACygAAAs4AAALSAAAC1gAAAtoAAALeAAAC4gAAAuYAAALqAAAC7gAAAvIAAAL2AAAC+gAAAv4AAAMCAAADBgAAAwoAAAMOAAADEgAAAxYAAAMaAAADHgAAAyIAAAMmAAADKgAAAy4AAAMyAAADNgAAAzoAAAM+AAADQgAAA0YAAANKAAADTgAAA1IAAANWAAADWgAAA14AAANiAAADZgAAA2oAAANuAAADcgAAA3YAAAN6AAADfgAAA4IAAAOGAAADigAAA44AAAOSAAADlgAAA5oAAAOeAAADogAAA6YAAAOqAAADrgAAA7IAAAO2AAADugAAA74AAAPCAAADxgAAA8oAAAPOAAAD0gAAA9YAAAPaAAAD3gAAA+IAAAPmAAAD6gAAA+4AAAPyAAAD9gAAA/oAAAP+AAKAAAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAQALAAEADQABAA8AAQARAAIAEwACABcAAgAbAAIAHwADACMAAwArAAMAMwADADsABABDAAQAUwAEAGMABABzAAUAgwAFAKMABQDDAAUA4wAAAAIBAAACAQAAAgF8/YsyV+ZX+QLfRL/jSOevbV3L1ixQ62N4QaZXcRuLuW1lbW9yeSBhbGxvY2F0aW9uIG9mICBieXRlcyBmYWlsZWQAAAAJEAAVAAAAFQkQAA0AAAAGARAAGAAAAGQBAAAJAAAAAAAAAAgAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAMAAAABAAAAAoAAAALAAAADAAAAAAAAAAIAAAABAAAAA0AAAAOAAAADwAAABAAAAARAAAAEAAAAAQAAAASAAAAEwAAABQAAAAIAAAAAAAAAAgAAAAEAAAAFQAAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAANsAEAAqAAAAsQQAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA8PSBzaXplICsgbWF4X292ZXJoZWFkAADbABAAKgAAALcEAAANAAAACQAAAAwAAAAEAAAAFgAAAGNhcGFjaXR5IG92ZXJmbG93AAAAUAoQABEAAAC6ABAAIAAAABwAAAAFAAAAAQAAAAAAAAAwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OXJhbmdlIGVuZCBpbmRleCAgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggAABMCxAAEAAAAFwLEAAiAAAAc2xpY2UgaW5kZXggc3RhcnRzIGF0ICBidXQgZW5kcyBhdCAAkAsQABYAAACmCxAADQAAAHJhbmdlIHN0YXJ0IGluZGV4IAAAxAsQABIAAABcCxAAIgAAAGluZGV4IG91dCBvZiBib3VuZHM6IHRoZSBsZW4gaXMgIGJ1dCB0aGUgaW5kZXggaXMgAADoCxAAIAAAAAgMEAASAAAAUmVmQ2VsbCBhbHJlYWR5IGJvcnJvd2VkAEHEmMAACwQEAAAAACkEbmFtZQEiAVgfX193YmluZGdlbl9hZGRfdG9fc3RhY2tfcG9pbnRlcgA8CXByb2R1Y2VycwEMcHJvY2Vzc2VkLWJ5AgZ3YWxydXMGMC4yNC40DHdhc20tYmluZGdlbgcwLjIuMTA4"),g=await A.arrayBuffer(),{instance:I}=await WebAssembly.instantiate(g,{"./bgzf_wasm_bg.js":nt});return qt=I.exports,Ht(qt),qt})()),_t)}async function Wt(A){try{return await async function(A){return await Tt(),lt(A)}(A)}catch(I){if(/invalid bgzf header/.exec(`${I}`)){if((g=A).length>=2&&31===g[0]&&139===g[1])return async function(A){if("undefined"!=typeof DecompressionStream){const g=new DecompressionStream("gzip"),I=g.writable.getWriter(),t=I.write(A).then(()=>I.close()),e=[],C=g.readable.getReader();for(;;){const{done:A,value:g}=await C.read();if(A)break;e.push(g)}await t;const i=e.reduce((A,g)=>A+g.length,0),B=new Uint8Array(i);let Q=0;for(const A of e)B.set(A,Q),Q+=A.length;return B}return at(A,void 0)}(A);throw new Error("problem decompressing block: not a valid bgzf or gzip block")}if(/invalid gzip header/.exec(`${I}`))throw new Error("problem decompressing block: incorrect gzip header check");throw I}var g}async function Pt(A,g,I){try{const{minv:I,maxv:t}=g,e=await async function(A,g,I,t,e){await Tt();const C=Dt(A,g,I,t,e),i=C.buffer,B=[...C.cpositions],Q=[...C.dpositions];return C.free(),{buffer:i,cpositions:B,dpositions:Q}}(A,I.blockPosition,I.dataPosition,t.blockPosition,t.dataPosition);return{buffer:e.buffer,cpositions:e.cpositions,dpositions:e.dpositions}}catch(A){if(/invalid gzip header/.exec(`${A}`))throw new Error("problem decompressing block: incorrect gzip header check");throw A}}class Ot{filehandle;gzi;constructor({filehandle:A,gziFilehandle:g}){this.filehandle=A,this.gzi=new lI({filehandle:g})}async _readAndUncompressBlock(A,g){let I=g;I||(I=(await this.filehandle.stat()).size);const t=I-A;return Wt(await this.filehandle.read(t,A))}async read(A,g){const I=await this.gzi.getRelevantBlocksForRead(A,g),t=[];for(let e=0;e<I.length-1;e+=1){const C=await this._readAndUncompressBlock(I[e][0],I[e+1][0]),[,i]=I[e],B=i>=g?0:g-i,Q=Math.min(g+A,i+C.length)-i;B>=0&&B<C.length&&t.push(C.subarray(B,Q))}return function(A,g){const I=new Uint8Array(g??function(A){let g=0;for(const I of A)g+=I.length;return g}(A));let t=0;for(const g of A)I.set(g,t),t+=g.length;return I}(t)}}class Vt{constructor(A,g,I,t){this.minv=A,this.maxv=g,this.bin=I,this._fetchedSize=t}toUniqueString(){return`${this.minv}..${this.maxv} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}toString(){return this.toUniqueString()}compareTo(A){return this.minv.compareTo(A.minv)||this.maxv.compareTo(A.maxv)||this.bin-A.bin}fetchedSize(){return void 0!==this._fetchedSize?this._fetchedSize:this.maxv.blockPosition+65536-this.minv.blockPosition}}class Zt{constructor({filehandle:A,renameRefSeqs:g=A=>A}){this.filehandle=A,this.renameRefSeq=g}async getMetadata(A={}){const{indices:g,...I}=await this.parse(A);return I}_findFirstData(A,g){return A?A.compareTo(g)>0?g:A:g}async parse(A={}){return this.parseP||(this.parseP=this._parse(A).catch(A=>{throw this.parseP=void 0,A})),this.parseP}async hasRefSeq(A,g={}){const I=await this.parse(g);return!!I.indices[A]?.binIndex}_parseNameBytes(A){let g=0,I=0;const t=[],e={},C=new TextDecoder("utf8");for(let i=0;i<A.length;i+=1)if(!A[i]){if(I<i){const B=this.renameRefSeq(C.decode(A.subarray(I,i)));t[g]=B,e[B]=g}I=i+1,g+=1}return{refNameToId:e,refIdToName:t}}}function zt(A,g=0){const I=A[g]|A[g+1]<<8|A[g+2]<<16|A[g+3]<<24;return 4294967296*((A[g+4]|A[g+5]<<8|A[g+6]<<16|A[g+7]<<24)>>>0)+(I>>>0)}function jt(A,g){return g.minv.blockPosition-A.maxv.blockPosition<65e3&&g.maxv.blockPosition-A.minv.blockPosition<5e6}function Xt(A,g){const I=[];let t;if(0===A.length)return A;A.sort(function(A,g){const I=A.minv.blockPosition-g.minv.blockPosition;return 0===I?A.minv.dataPosition-g.minv.dataPosition:I});for(const e of A)(!g||e.maxv.compareTo(g)>0)&&(void 0===t?(I.push(e),t=e):jt(t,e)?e.maxv.compareTo(t.maxv)>0&&(t.maxv=e.maxv):(I.push(e),t=e));return I}class $t{constructor(A,g){this.blockPosition=A,this.dataPosition=g}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(A){return this.blockPosition-A.blockPosition||this.dataPosition-A.dataPosition}}function Ae(A,g=0){return new $t(1099511627776*A[g+7]+4294967296*A[g+6]+16777216*A[g+5]+65536*A[g+4]+256*A[g+3]+A[g+2],A[g+1]<<8|A[g])}const ge={0:"generic",1:"SAM",2:"VCF"};function Ie(A,g){return A*2**g}function te(A,g){return Math.floor(A/2**g)}class ee extends Zt{constructor(A){super(A),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(A,g={}){const I=await this.parse(g),t=I.refNameToId[A];if(void 0===t)return-1;if(!I.indices[t])return-1;const{stats:e}=I.indices[t];return e?e.lineCount:-1}indexCov(){throw new Error("CSI indexes do not support indexcov")}parseAuxData(A,g){const I=new DataView(A.buffer),t=I.getInt32(g,!0),e=65536&t?"zero-based-half-open":"1-based-closed",C=ge[15&t];if(!C)throw new Error(`invalid Tabix preset format flags ${t}`);const i={ref:I.getInt32(g+4,!0),start:I.getInt32(g+8,!0),end:I.getInt32(g+12,!0)},B=I.getInt32(g+16,!0),Q=B?String.fromCharCode(B):void 0,o=I.getInt32(g+20,!0),s=I.getInt32(g+24,!0),{refIdToName:E,refNameToId:a}=this._parseNameBytes(A.subarray(g+28,g+28+s));return{refIdToName:E,refNameToId:a,skipLines:o,metaChar:Q,columnNumbers:i,format:C,coordinateType:e}}async _parse(A={}){const g=await Wt(await this.filehandle.readFile(A)),I=new DataView(g.buffer);let t;if(21582659===I.getUint32(0,!0))t=1;else{if(38359875!==I.getUint32(0,!0))throw new Error("Not a CSI file");t=2}this.minShift=I.getInt32(4,!0),this.depth=I.getInt32(8,!0),this.maxBinNumber=((1<<3*(this.depth+1))-1)/7;const e=2**(this.minShift+3*this.depth),C=I.getInt32(12,!0),i=C&&C>=30?this.parseAuxData(g,16):{refIdToName:[],refNameToId:{},metaChar:void 0,columnNumbers:{ref:0,start:1,end:2},coordinateType:"zero-based-half-open",format:"generic"},B=I.getInt32(16+C,!0);let Q,o=16+C+4;const s=new Array(B).fill(0).map(()=>{const A=I.getInt32(o,!0);o+=4;const t={};let e;for(let C=0;C<A;C+=1){const A=I.getUint32(o,!0);if(A>this.maxBinNumber)e=this.parsePseudoBin(g,o+4),o+=48;else{const e=Ae(g,o+4);Q=this._findFirstData(Q,e);const C=I.getInt32(o+12,!0);o+=16;const i=new Array(C);for(let I=0;I<C;I+=1){const t=Ae(g,o),e=Ae(g,o+8);o+=16,i[I]=new Vt(t,e,A)}t[A]=i}}return{binIndex:t,stats:e}});return{...i,csi:!0,refCount:B,maxBlockSize:65536,firstDataLine:Q,csiVersion:t,indices:s,depth:this.depth,maxBinNumber:this.maxBinNumber,maxRefLength:e}}parsePseudoBin(A,g){return{lineCount:zt(A,g+28)}}async blocksForRange(A,g,I,t={}){g<0&&(g=0);const e=await this.parse(t),C=e.refNameToId[A];if(void 0===C)return[];const i=e.indices[C];if(!i)return[];const B=this.reg2bins(g,I),Q=[];for(const[A,g]of B)for(let I=A;I<=g;I++)if(i.binIndex[I])for(const A of i.binIndex[I])Q.push(new Vt(A.minv,A.maxv,I));return Xt(Q,new $t(0,0))}reg2bins(A,g){(A-=1)<1&&(A=1),g>2**50&&(g=2**34),g-=1;let I=0,t=0,e=this.minShift+3*this.depth;const C=[];for(;I<=this.depth;e-=3,t+=Ie(1,3*I),I+=1){const I=t+te(A,e),i=t+te(g,e);if(i-I+C.length>this.maxBinNumber)throw new Error(`query ${A}-${g} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);C.push([I,i])}return C}}class Ce extends Zt{async lineCount(A,g={}){const I=await this.parse(g),t=I.refNameToId[A];if(void 0===t)return-1;return I.indices[t]?I.indices[t].stats?.lineCount??-1:-1}async _parse(A={}){const g=await this.filehandle.readFile(A),I=await Wt(g),t=new DataView(I.buffer);if(21578324!==t.getUint32(0,!0))throw new Error("Not a TBI file");const e=t.getUint32(4,!0),C=t.getUint32(8,!0),i=65536&C?"zero-based-half-open":"1-based-closed",B={0:"generic",1:"SAM",2:"VCF"}[15&C];if(!B)throw new Error(`invalid Tabix preset format flags ${C}`);const Q={ref:t.getInt32(12,!0),start:t.getInt32(16,!0),end:t.getInt32(20,!0)},o=t.getInt32(24,!0),s=37449,E=o?String.fromCharCode(o):void 0,a=t.getInt32(28,!0),r=t.getInt32(32,!0),{refNameToId:n,refIdToName:h}=this._parseNameBytes(I.slice(36,36+r));let c,l=36+r;return{indices:new Array(e).fill(0).map(()=>{const A=t.getInt32(l,!0);l+=4;const g={};let e;for(let C=0;C<A;C+=1){const A=t.getUint32(l,!0);if(l+=4,A>37450)throw new Error("tabix index contains too many bins, please use a CSI index");if(37450===A){const A=t.getInt32(l,!0);l+=4,2===A&&(e=this.parsePseudoBin(I,l)),l+=16*A}else{const e=t.getInt32(l,!0);l+=4;const C=new Array(e);for(let g=0;g<e;g+=1){const t=Ae(I,l),e=Ae(I,l+8);l+=16,c=this._findFirstData(c,t),C[g]=new Vt(t,e,A)}g[A]=C}}const C=t.getInt32(l,!0);l+=4;const i=new Array(C);for(let A=0;A<C;A+=1)i[A]=Ae(I,l),l+=8,c=this._findFirstData(c,i[A]);return{binIndex:g,linearIndex:i,stats:e}}),metaChar:E,maxBinNumber:s,maxRefLength:536870912,skipLines:a,firstDataLine:c,columnNumbers:Q,coordinateType:i,format:B,refIdToName:h,refNameToId:n,maxBlockSize:65536}}parsePseudoBin(A,g){return{lineCount:zt(A,g+16)}}async blocksForRange(A,g,I,t={}){g<0&&(g=0);const e=await this.parse(t),C=e.refNameToId[A];if(void 0===C)return[];const i=e.indices[C];if(!i)return[];(i.linearIndex.length>0?i.linearIndex[g>>14>=i.linearIndex.length?i.linearIndex.length-1:g>>14]:new $t(0,0))||console.warn("querying outside of possible tabix range");const B=(Q=g,o=I,[[0,0],[1+((Q+=1)>>26),1+((o-=1)>>26)],[9+(Q>>23),9+(o>>23)],[73+(Q>>20),73+(o>>20)],[585+(Q>>17),585+(o>>17)],[4681+(Q>>14),4681+(o>>14)]]);var Q,o;const s=[];for(const[A,g]of B)for(let I=A;I<=g;I++)if(i.binIndex[I])for(const A of i.binIndex[I])s.push(new Vt(A.minv,A.maxv,I));const E=i.linearIndex.length;let a;const r=Math.min(g>>14,E-1),n=Math.min(I>>14,E-1);for(let A=r;A<=n;++A){const g=i.linearIndex[A];g&&(!a||g.compareTo(a)<0)&&(a=g)}return Xt(s,a)}}class ie{constructor({path:A,filehandle:g,url:I,tbiPath:t,tbiUrl:e,tbiFilehandle:C,csiPath:i,csiUrl:B,csiFilehandle:Q,renameRefSeqs:o,chunkCacheSize:s=5242880}){this.cache=new X({maxSize:1e3});const E=o??(A=>A);if(g)this.filehandle=g;else if(A)this.filehandle=new p(A);else{if(!I)throw new TypeError("must provide either filehandle or path");this.filehandle=new m(I)}if(C)this.index=new Ce({filehandle:C,renameRefSeqs:E});else if(Q)this.index=new ee({filehandle:Q,renameRefSeqs:E});else if(t)this.index=new Ce({filehandle:new p(t),renameRefSeqs:E});else if(i)this.index=new ee({filehandle:new p(i),renameRefSeqs:E});else if(A)this.index=new Ce({filehandle:new p(`${A}.tbi`),renameRefSeqs:E});else if(B)this.index=new ee({filehandle:new m(B)});else if(e)this.index=new Ce({filehandle:new m(e)});else{if(!I)throw new TypeError("must provide one of tbiFilehandle, tbiPath, csiFilehandle, csiPath, tbiUrl, csiUrl");this.index=new Ce({filehandle:new m(`${I}.tbi`)})}this.renameRefSeq=E,this.hasCustomRenameRefSeq=void 0!==o,this.chunkCache=new L({cache:new X({maxSize:Math.floor(s/65536)}),fill:(A,g)=>this.readChunk(A,{signal:g})})}calculateFileOffset(A,g,I,t,e){return 256*A[I]+(t-g[I])+e+1}async getLines(A,g,I,t){let e,C,i={};"function"==typeof t?C=t:(i=t,C=t.lineCallback,e=t.signal);const B=await this.index.getMetadata(i),Q=g??0,o=I??B.maxRefLength;if(!(Q<=o))throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(Q===o)return;const s=await this.index.blocksForRange(A,Q,o,i),E=new TextDecoder("utf8"),a="VCF"===B.format,r={ref:B.columnNumbers.ref||0,start:B.columnNumbers.start||0,end:a?8:B.columnNumbers.end||0},n=Math.max(r.ref,r.start,r.end),h=B.metaChar?.charCodeAt(0),c="1-based-closed"===B.coordinateType?-1:0,l=!this.hasCustomRenameRefSeq;for(const g of s){const{buffer:I,cpositions:t,dpositions:i}=await this.chunkCache.get(g.toString(),g,e);let B=0,s=0;const d=E.decode(I);if(I.length==d.length)for(;B<d.length;){const I=d.indexOf("\n",B);if(-1===I)break;const e=d.slice(B,I);if(i){const A=B+g.minv.dataPosition;for(;s<i.length&&A>=i[s];)s++}const E=this.checkLine(A,Q,o,e,r.ref,r.start,r.end,n,h,c,a,l);if(null===E)return;void 0!==E&&C(e,this.calculateFileOffset(t,i,s,B,g.minv.dataPosition),E.start,E.end),B=I+1}else for(;B<I.length;){const e=I.indexOf("\n".charCodeAt(0),B);if(-1===e)break;const d=I.slice(B,e),D=E.decode(d);if(i){const A=B+g.minv.dataPosition;for(;s<i.length&&A>=i[s];)s++}const u=this.checkLine(A,Q,o,D,r.ref,r.start,r.end,n,h,c,a,l);if(null===u)return;void 0!==u&&C(D,this.calculateFileOffset(t,i,s,B,g.minv.dataPosition),u.start,u.end),B=e+1}}}async getMetadata(A={}){return this.index.getMetadata(A)}async getHeaderBuffer(A={}){const{firstDataLine:g,metaChar:I,maxBlockSize:t}=await this.getMetadata(A),e=(g?.blockPosition||0)+t,C=await this.filehandle.read(e,0,A),i=await Wt(C);if(I){let A=-1;const g="\n".charCodeAt(0),t=I.charCodeAt(0);for(let I=0,e=i.length;I<e;I++){const e=i[I];if(I===A+1&&e!==t)break;e===g&&(A=I)}return i.subarray(0,A+1)}return i}async getHeader(A={}){const g=new TextDecoder("utf8"),I=await this.getHeaderBuffer(A);return g.decode(I)}async getReferenceSequenceNames(A={}){return(await this.getMetadata(A)).refIdToName}checkLine(A,g,I,t,e,C,i,B,Q,o,s,E){if(void 0!==Q&&t.charCodeAt(0)===Q)return;if(t.length<500){const B=t.split("\t"),Q=B[e-1];if(!(E?Q===A:this.renameRefSeq(Q)===A))return;const a=+B[C-1]+o;if(a>=I)return null;let r;if(r=0===i||i===C?a+1:s?this._getVcfEnd(a,B[3],B[i-1]):+B[i-1],r<=g)return;return{start:a,end:r}}let a=-1;const r=[-1];for(let A=0;A<B;A++){const A=t.indexOf("\t",a+1);if(-1===A){r.push(t.length);break}r.push(A),a=A}const n=t.slice(r[e-1]+1,r[e]);if(!(E?n===A:this.renameRefSeq(n)===A))return;const h=+t.slice(r[C-1]+1,r[C])+o;if(h>=I)return null;let c;return c=0===i||i===C?h+1:s?this._getVcfEnd(h,t.slice(r[3]+1,r[4]),t.slice(r[i-1]+1,r[i])):+t.slice(r[i-1]+1,r[i]),c<=g?void 0:{start:h,end:c}}_getVcfEnd(A,g,I){let t=A+g.length;if(I.includes("SVTYPE=TRA"))return A+1;if("."!==I[0]){const A=I.indexOf("END=");if(-1!==A&&(0===A||";"===I[A-1])){const g=A+4;let e=I.indexOf(";",g);-1===e&&(e=I.length),t=Number.parseInt(I.slice(g,e),10)}}return t}async lineCount(A,g={}){return this.index.lineCount(A,g)}async readChunk(A,g={}){return Pt(await this.filehandle.read(A.fetchedSize(),A.minv.blockPosition,g),A,this.cache)}}class Be{constructor(A,g){var I;const t=u(A),e=u(null!==(I=null==g?void 0:g.indexUrl)&&void 0!==I?I:A+".tbi"),C=(null==g?void 0:g.fetchImpl)?{fetch:g.fetchImpl}:void 0;this.tabix=new ie({filehandle:new m(t,C),tbiFilehandle:new m(e,C)})}async getHeader(A){var g,I;const t=await this.tabix.getMetadata({signal:A}),e=Object.keys(t.refNameToId);return{nref:e.length,format:"VCF"===t.format?2:"SAM"===t.format?1:0,colSeq:t.columnNumbers.ref,colBeg:t.columnNumbers.start,colEnd:t.columnNumbers.end,meta:null!==(I=null===(g=t.metaChar)||void 0===g?void 0:g.charCodeAt(0))&&void 0!==I?I:0,skip:0,sequenceNames:e}}async getSequenceNames(A){const g=await this.tabix.getMetadata({signal:A});return Object.keys(g.refNameToId)}async readHeaderLines(A){const g=await this.tabix.getHeader({signal:A});return g?g.split("\n").filter(A=>A.length>0):[]}async readLines(A,g,I,t){const e=[];return await this.tabix.getLines(A,g,I,{lineCallback:A=>{e.push(A)},signal:t}),e}}function Qe(A,g,I=Number.MAX_SAFE_INTEGER){var t,e;if(A.length<3)return;const C=null==g?void 0:g.gffTags,i=A[0],B=parseInt(A[1]),Q=A.length>2?parseInt(A[2]):B+1;if(isNaN(B)||isNaN(Q))return;const o={chr:i,start:B,end:Q,score:1e3};let s=3;if(A.length>3&&s++<I){if(A[3].indexOf(";")>0&&A[3].indexOf("=")>0){const I=function(A){const g={},I=A.split(";");for(const A of I){const I=A.indexOf("=");if(I>0){const t=A.substring(0,I).trim(),e=A.substring(I+1).trim();g[t]=e}}return g}(A[3]);if(o.attributes=I,C)if(null!=(null==g?void 0:g.nameField)&&I[g.nameField])o.name=I[g.nameField];else if(!o.name)for(const A of ne)if(I[A]){o.name=I[A];break}}o.name||C||(o.name="."===A[3]?"":A[3])}if(A.length>4&&s++<I&&(o.score="."===A[4]?0:Number(A[4]),isNaN(o.score)))return o;if(A.length>5&&s++<I){const g=A[5];if("."!==g&&"+"!==g&&"-"!==g)return o;o.strand=g}if(A.length>6&&s++<I&&(o.cdStart=parseInt(A[6]),isNaN(o.cdStart)))return o;if(A.length>7&&s++<I&&(o.cdEnd=parseInt(A[7]),isNaN(o.cdEnd)))return o;if(A.length>8&&s++<I&&"."!==A[8]&&"0"!==A[8]&&(o.color=Pg(A[8])),A.length>11&&s++<I){const g=parseInt(A[9]);if(g>1e3)return o;const I=A[10].replace(/,$/,"").split(","),C=A[11].replace(/,$/,"").split(",");if(I.length!==C.length||g!==I.length)return o;const i=[];for(let A=0;A<g;A++){const g=B+parseInt(C[A]),t=g+parseInt(I[A]);i.push({start:g,end:t})}i.length>0&&(Wg(i,null!==(t=o.cdStart)&&void 0!==t?t:B,null!==(e=o.cdEnd)&&void 0!==e?e:Q),o.exons=i)}if(g&&(void 0!==g.thicknessColumn&&A.length>g.thicknessColumn&&(o.thickness=parseFloat(A[g.thicknessColumn])),void 0!==g.colorColumn&&A.length>g.colorColumn)){const I=Pg(A[g.colorColumn]);I&&(o.color=I)}return o}function oe(A,g){const I=Qe(A,g,6);if(I)return A.length>6&&(I.signal=parseFloat(A[6])),A.length>7&&(I.pValue=parseFloat(A[7])),A.length>8&&(I.qValue=parseFloat(A[8])),I}function se(A,g){const I=Qe(A,g,6);if(I)return A.length>6&&(I.signal=parseFloat(A[6])),A.length>7&&(I.pValue=parseFloat(A[7])),A.length>8&&(I.qValue=parseFloat(A[8])),A.length>9&&(I.peak=parseInt(A[9])),I}function Ee(A,g){const I=Qe(A,g);if(I)return A.length>12&&(I.signal=parseFloat(A[12])),A.length>13&&(I.pValue=parseFloat(A[13])),A.length>14&&(I.qValue=parseFloat(A[14])),I}function ae(A){if(A.length<4)return;const g=A[0],I=parseInt(A[1]),t=parseInt(A[2]),e=parseFloat(A[3]);return isNaN(I)||isNaN(t)||isNaN(e)?void 0:{chr:g,start:I,end:t,value:e}}function re(A){if(A.length<11)return;const g=A[2],I=parseInt(A[4]),t=parseInt(A[5]),e=parseInt(A[6]),C=parseInt(A[7]),i=zg(A[3]);if(isNaN(I)||isNaN(t))return;const B={chr:g,start:I,end:t,name:A[0],strand:i,cdStart:e,cdEnd:C},Q=parseInt(A[8]),o=A[9].replace(/,$/,"").split(","),s=A[10].replace(/,$/,"").split(",");if(Q>0&&o.length===Q&&s.length===Q){const A=[];for(let g=0;g<Q;g++)A.push({start:parseInt(o[g]),end:parseInt(s[g])});Wg(A,e,C),B.exons=A}return B}const ne=["Name","transcript_id","gene_name","gene","gene_id","alias","locus","name"];const he=new Set(["transcript","primary_transcript","processed_transcript","mRNA","mrna","lnc_RNA","miRNA","ncRNA","rRNA","scRNA","snRNA","snoRNA","tRNA"]),ce=new Set(["CDS","cds","start_codon","stop_codon"]),le=new Set(["5UTR","3UTR","UTR","five_prime_UTR","three_prime_UTR","3'-UTR","5'-UTR"]),de=new Set(["exon","coding-exon"]),De=new Set;for(const A of[ce,le,de])for(const g of A)De.add(g);function ue(A){return he.has(A)||A.endsWith("RNA")||A.endsWith("transcript")}function we(A){return De.has(A)||A.endsWith("RNA")||fe(A)}function ye(A){return de.has(A)}function fe(A){return A.includes("intron")}function Se(A){return ce.has(A)}function ke(A){return le.has(A)}const Ge=new Map([["%09","\t"],["%0A","\n"],["%0D","\r"],["%25","%"],["%3B",";"],["%3D","="],["%26","&"],["%2C",","]]);function Fe(A){if(!A.includes("%"))return A;let g="";for(let I=0;I<A.length;I++)if(37===A.charCodeAt(I)&&I<A.length-2){const t=A.substring(I,I+3);Ge.has(t)?g+=Ge.get(t):g+=t,I+=2}else g+=A.charAt(I);return g}function Ne(A,g="="){const I="="===g,t=[];for(let e of A.split(";")){e=e.trim();const A=e.indexOf(g);if(A>0&&A<e.length-1){let g=Fe(e.substring(0,A).trim()),C=Fe(e.substring(A+1).trim());I||(g=me(g),C=me(C)),t.push([g,C])}}return t}function me(A){return A.startsWith('"')&&A.endsWith('"')?A.substring(1,A.length-1):A}function pe(A,g){if(A.length<9)return;const I=parseInt(A[3])-1,t=parseInt(A[4]);if(isNaN(I)||isNaN(t))return;const e="."===A[5]?void 0:Number(A[5]),C="+"===A[6]||"-"===A[6]||"."===A[6]?A[6]:void 0,i="."===A[7]?void 0:parseInt(A[7]);return{chr:A[0],source:Fe(A[1]),type:A[2],start:I,end:t,score:void 0===e||isNaN(e)?void 0:e,strand:C,phase:void 0===i||isNaN(i)?void 0:i,attributeString:A[8],attributes:{}}}function Re(A){const g=pe(A);if(!g)return;const I=Ne(g.attributeString,"="),t={};for(const[A,e]of I){t[A]=e;const I=A.toLowerCase();"color"===I||"colour"===I?g.color=e:"ID"===A?g.id=e:"Parent"===A&&(g.parent=e)}return g.attributes=t,g}function Ue(A){const g=pe(A);if(!g)return;const I=Ne(g.attributeString," "),t={};let e,C;switch(g.type){case"gene":e="gene_id";break;case"transcript":e="transcript_id",C="gene_id";break;default:C="transcript_id"}for(const[A,i]of I){t[A]=i;const I=A.toLowerCase();"color"===I||"colour"===I?g.color=i:A===e?g.id=i:A===C&&(g.parent=i)}return g.attributes=t,g}const Me=["Name","transcript_id","gene_name","gene","gene_id","alias","locus","name"];function Le(A,g){if(void 0!==A.attributes[g])return A.attributes[g];const I=A.attributeString.includes("=")?"=":" ",t=Ne(A.attributeString,I);for(const[A,I]of t)if(A===g)return I}function Je(A,g,I){var t;const e=new Set(null!==(t=null==I?void 0:I.filterTypes)&&void 0!==t?t:["chromosome"]);let C=A.filter(A=>!e.has(A.type));"gff3"!==g&&"gff"!==g||(C=function(A){const g=new Map,I=[];for(const t of A)if(we(t.type)||ue(t.type)||!t.id)I.push(t);else{let A=g.get(t.chr);A||(A=new Map,g.set(t.chr,A));let I=A.get(t.id);I?I.push(t):A.set(t.id,[t])}for(const A of g.values())for(const g of A.values())if(g.length>1){const A={...g[0]},t=[];for(const I of g)A.start=Math.min(A.start,I.start),A.end=Math.max(A.end,I.end),t.push({start:I.start,end:I.end});A._mergedExons=t,I.push(A)}else I.push(g[0]);return I}(C));const i=function(A,g,I){const t=Object.create(null);for(const g of A)("gene"===g.type||g.type.endsWith("_gene"))&&g.id&&(t[g.id]=g);const e=Object.create(null),C=[],i=new Set;for(const g of A)if(ue(g.type)&&void 0!==g.id){const A={record:g,exons:[],parts:[]};e[g.id]=A,i.add(g),g.parent&&t[g.parent]&&(A.geneRecord=t[g.parent],i.add(t[g.parent]))}for(const I of A)if(we(I.type)){const A=xe(I);if(A)for(const t of A){let A=e[t];if(!A&&"gtf"===g){A={record:{...I,type:"transcript"},exons:[],parts:[]},e[t]=A}A&&(ye(I.type)?A.exons.push({start:I.start,end:I.end}):A.parts.push(I),A.record.start=Math.min(A.record.start,I.start),A.record.end=Math.max(A.record.end,I.end),i.add(I))}}for(const A of Object.keys(e)){const g=e[A];Ke(g),C.push(He(g,I))}for(const g of A)i.has(g)||C.push(qe(g,I));return function(A){for(const g of A)if(g.exons)for(let A=0;A<g.exons.length;A++)g.exons[A].number="-"===g.strand?g.exons.length-A:A+1}(C),C}(C,g,null==I?void 0:I.nameField);return i}function Ke(A){if(A.parts.sort((A,g)=>A.start-g.start),A.parts.length>0){let g=A.parts[0].start,I=A.parts[0].end;for(let t=1;t<A.parts.length;t++){const e=A.parts[t];fe(e.type)||(e.start<=I?I=Math.max(I,e.end):(be(A.exons,g,I)||A.exons.push({start:g,end:I}),g=e.start,I=e.end))}be(A.exons,g,I)||(A.exons.push({start:g,end:I}),A.record.start=Math.min(A.record.start,g),A.record.end=Math.max(A.record.end,I))}for(const g of A.parts)Se(g.type)?ve(A,g):ke(g.type)&&Ye(A,g);if(A.exons.sort((A,g)=>A.start-g.start),void 0!==A.cdStart&&void 0!==A.cdEnd)for(const g of A.exons)(g.end<A.cdStart||g.start>A.cdEnd)&&(g.utr=!0)}function be(A,g,I){for(const t of A)if(t.end>=I&&t.start<=g)return t}function ve(A,g){const I=be(A.exons,g.start,g.end);if(I&&(I.cdStart=void 0!==I.cdStart?Math.min(g.start,I.cdStart):g.start,I.cdEnd=void 0!==I.cdEnd?Math.max(g.end,I.cdEnd):g.end,void 0!==g.phase)){const A=(3-g.phase)%3;void 0===I.readingFrame&&(I.readingFrame=A)}A.cdStart=void 0!==A.cdStart?Math.min(g.start,A.cdStart):g.start,A.cdEnd=void 0!==A.cdEnd?Math.max(g.end,A.cdEnd):g.end}function Ye(A,g){const I=be(A.exons,g.start,g.end);I&&(g.start===I.start&&g.end===I.end?I.utr=!0:(g.end<I.end&&(I.cdStart=g.end),(void 0===I.cdEnd||g.start>I.cdEnd)&&(I.cdEnd=g.start)))}function xe(A){return A.parent&&""!==A.parent.trim()?A.parent.trim().split(","):null}function He(A,g){const I=A.record,t=_e(I,g);return{chr:I.chr,start:I.start,end:I.end,name:t,id:I.id,strand:"+"===I.strand||"-"===I.strand?I.strand:void 0,type:I.type,source:I.source,score:I.score,cdStart:A.cdStart,cdEnd:A.cdEnd,exons:A.exons.length>0?A.exons:void 0,attributes:I.attributes,color:I.color}}function qe(A,g){const I=_e(A,g),t=A._mergedExons;return{chr:A.chr,start:A.start,end:A.end,name:I,id:A.id,strand:"+"===A.strand||"-"===A.strand?A.strand:void 0,type:A.type,source:A.source,score:A.score,exons:t,attributes:A.attributes,color:A.color}}function _e(A,g){if(g)return Le(A,g);for(const g of Me){const I=Le(A,g);if(I)return I}}function Te(A,g){var I;if(A.length<6)return;const t=A[0],e=parseInt(A[1]),C=parseInt(A[2]),i=A[3],B=parseInt(A[4]),Q=parseInt(A[5]);if(isNaN(e)||isNaN(C)||isNaN(B)||isNaN(Q))return;g&&void 0===g.hiccups&&(g.hiccups=!!g.columnNames&&Pe(g.columnNames));const o=null!==(I=null==g?void 0:g.hiccups)&&void 0!==I&&I,s=o?6:10,E={chr:t,start:0,end:0,chr1:t,start1:e,end1:C,chr2:i,start2:B,end2:Q,dup:!1};return o||(A.length>6&&"."!==A[6]&&(E.name=A[6]),A.length>7&&"."!==A[7]&&(E.score=Number(A[7])),A.length>8&&"."!==A[8]&&(E.strand1=A[8]),A.length>9&&"."!==A[9]&&(E.strand2=A[9])),g&&(void 0!==g.colorColumn&&g.colorColumn<A.length&&(E.color=A[g.colorColumn]),void 0!==g.thicknessColumn&&g.thicknessColumn<A.length&&(E.thickness=Number(A[g.thicknessColumn])),A.length>s&&g.columnNames&&g.columnNames.length===A.length&&(E.extras=A.slice(s))),t===i&&(E.chr=t,E.start=Math.min(e,B),E.end=Math.max(C,Q)),E}function We(A){if(0===A.length)return;const g=A[0];if(void 0===g.score&&void 0!==g.name){if(A.every(A=>{return void 0===A.name||"."===A.name||(g=A.name,!isNaN(Number(g))&&""!==g.trim());var g}))for(const g of A)g.score=Number(g.name),g.name=void 0}const I=A.filter(A=>A.chr1!==A.chr2);for(const g of I){const I={...g,dup:!0};A.push(I),g.chr=g.chr1,g.start=g.start1,g.end=g.end1,I.chr=I.chr2,I.start=I.start2,I.end=I.end2}}function Pe(A){return A.includes("fdrDonut")||A.includes("fdr_donut")}function Oe(A){if(A.length<6)return;const g=A[0],I=parseInt(A[1]),t=parseInt(A[2]),e=A[8],C=parseInt(A[9]),i=parseInt(A[10]),B=A[13],Q=parseInt(A[14]),o=parseInt(A[15]),s=A[7],E="."===s?void 0:"0"===s?"rgb(0,0,0)":s;return{chr:g,start:I,end:t,chr1:e,start1:C,end1:i,chr2:B,start2:Q,end2:o,name:A[3],score:Number(A[4]),value:Number(A[5]),color:E,dup:!1}}function Ve(A,g){switch(A){case"broadpeak":case"peaks":return{decode:(A,g)=>oe(A,Ze(g)),delimiter:/\s+/,requiresAssembly:!1};case"narrowpeak":return{decode:(A,g)=>se(A,Ze(g)),delimiter:/\s+/,requiresAssembly:!1};case"bedgraph":return{decode:A=>ae(A),delimiter:/\s+/,requiresAssembly:!1};case"gff3":case"gff":return{decode:A=>Re(A),delimiter:"\t",requiresAssembly:!0};case"gtf":return{decode:A=>Ue(A),delimiter:"\t",requiresAssembly:!0};case"refflat":return{decode:A=>re(A),delimiter:/\s+/,requiresAssembly:!1};case"genepred":return{decode:A=>jg(A,0),delimiter:/\s+/,requiresAssembly:!1};case"genepredext":return{decode:A=>Xg(A,0),delimiter:/\s+/,requiresAssembly:!1};case"ensgene":return{decode:A=>jg(A,1),delimiter:/\s+/,requiresAssembly:!1};case"refgene":return{decode:A=>Xg(A,1),delimiter:/\s+/,requiresAssembly:!1};case"gappedpeak":return{decode:(A,g)=>Ee(A,Ze(g)),delimiter:/\s+/,requiresAssembly:!1};case"bedpe":return{decode:(A,g)=>Te(A,function(A){return A?{columnNames:A.columnNames,colorColumn:A.colorColumn,thicknessColumn:A.thicknessColumn}:void 0}(g)),delimiter:/\s+/,requiresAssembly:!1,postProcess:We};case"interact":case"longrange":return{decode:A=>Oe(A),delimiter:/\s+/,requiresAssembly:!1};default:return{decode:(A,g)=>Qe(A,Ze(g)),delimiter:/\s+/,requiresAssembly:!1}}}function Ze(A){if(A)return{nameField:A.nameField,gffTags:A.gffTags,colorColumn:A.colorColumn,thicknessColumn:A.thicknessColumn}}function ze(A,g){const I={format:g};let t;for(const g of A)if(g.startsWith("track")||g.startsWith("#track")){const A=Xe(g);Object.assign(I,{properties:A}),"interact"===A.type&&(I.format="interact"),"gcnv"===A.type&&(I.format="gcnv")}else if(g.startsWith("browser"));else if(g.startsWith("#columns")){const A=$e(g);void 0!==A.colorColumn&&(I.colorColumn=A.colorColumn),void 0!==A.thicknessColumn&&(I.thicknessColumn=A.thicknessColumn)}else if(g.startsWith("##gff-version 3"))I.format="gff3";else if(g.startsWith("#gffTags"))I.gffTags=!0;else{if(g.startsWith("fixedStep")||g.startsWith("variableStep"))break;if(!g.startsWith("#"))break;{const A=g.split("\t");A.length>1&&(t=A)}}if(t){I.columnNames=t;for(let A=0;A<t.length;A++)"color"===t[A]||"colour"===t[A]?I.colorColumn=A:"thickness"===t[A]&&(I.thicknessColumn=A)}return I}function je(A,g,I){var t,e;const C=null!==(t=null==I?void 0:I.header)&&void 0!==t?t:ze(A,g),i=null!==(e=C.format)&&void 0!==e?e:g,B=Ve(i),Q=B.delimiter,o=[],s={};for(const g of A){if(!g||g.startsWith("track")||g.startsWith("#")||g.startsWith("browser"))continue;if("wig"===i){if(g.startsWith("fixedStep")){s.wig=AC(g);continue}if(g.startsWith("variableStep")){s.wig=gC(g);continue}}const A=g.split(Q);if(A.length<1)continue;const I="wig"===i?{...C,wig:s.wig}:C,t=B.decode(A,I);t&&o.push(t)}if(B.postProcess&&B.postProcess(o),B.requiresAssembly&&!1!==(null==I?void 0:I.assembleGFF)){return Je(o,"gff"===i?"gff":"gff3"===i?"gff3":"gtf",{nameField:C.nameField})}return o}function Xe(A){const g={},I=A.split(/(?:")([^"]+)(?:")|([^\s"]+)(?=\s+|$)/g);let t;const e=[];for(const A of I)A&&0!==A.trim().length&&(A.endsWith("=")?t=A:t?(e.push(t+A),t=void 0):e.push(A));for(const A of e){if(!A)break;const I=A.split("=",2);2===I.length&&(g[I[0].trim()]=I[1].trim())}return g}function $e(A){const g={},I=A.split(/\s+/);if(2===I.length){const A=I[1].split(";");for(const I of A){const A=I.split("=");"color"===A[0]?g.colorColumn=parseInt(A[1])-1:"thickness"===A[0]&&(g.thicknessColumn=parseInt(A[1])-1)}}return g}function AC(A){const g=A.split(/\s+/);return{format:"fixedStep",chrom:g[1].split("=")[1],start:parseInt(g[2].split("=")[1],10)-1,step:parseInt(g[3].split("=")[1],10),span:g.length>4?parseInt(g[4].split("=")[1],10):1,index:0}}function gC(A){const g=A.split(/\s+/);return{format:"variableStep",chrom:g[1].split("=")[1],span:g.length>2?parseInt(g[2].split("=")[1],10):1}}var IC=Object.freeze({__proto__:null,getDecoder:Ve,parseHeader:ze,parseFeatures:je});const tC=new Set(["narrowpeak","broadpeak","regionpeak","peaks","bedgraph","wig","gff3","gff","gtf","fusionjuncspan","refflat","seg","aed","bed","bedmethyl","vcf","bb","bigbed","biginteract","biggenepred","bignarrowpeak","bw","bigwig","bam","tdf","refgene","genepred","genepredext","bedpe","bp","snp","rmsk","cram","gwas","maf","mut","hiccups","fasta","fa","fna","pytor","hic","qtl","gtx"]);function eC(A){if(!A)return;let g=A.toLowerCase();const I=g.indexOf("?");I>0&&(g=g.substring(0,I));const t=g.lastIndexOf("/");if(t>=0&&(g=g.substring(t+1)),g.endsWith("refgene.txt.gz")||g.endsWith("refgene.txt.bgz")||g.endsWith("refgene.txt")||g.endsWith("refgene.sorted.txt.gz")||g.endsWith("refgene.sorted.txt.bgz"))return"refgene";g.endsWith(".gz")&&(g=g.substring(0,g.length-3)),g.endsWith(".bgz")&&(g=g.substring(0,g.length-4)),(g.endsWith(".txt")||g.endsWith(".tab")||g.endsWith(".tsv"))&&(g=g.substring(0,g.length-4));const e=g.lastIndexOf("."),C=e<0?g:g.substring(e+1);switch(C){case"bw":return"bigwig";case"bb":return"bigbed";case"fasta":case"fa":case"fna":return"fasta";case"gtx":return"gtx";default:return tC.has(C)?C:void 0}}const CC=new Set(["bigwig","bw","bigbed","bb","biginteract","biggenepred","bignarrowpeak","tdf","bam","cram","gtx"]);function iC(A){return CC.has(A.toLowerCase())}new Set(["bigwig","bw","bigbed","bb","biginteract","biggenepred","bignarrowpeak"]);const BC=new Set(["bigbed","bb","biginteract","biggenepred","bignarrowpeak"]);function QC(A){return BC.has(A.toLowerCase())}function oC(A){const g=A.toLowerCase(),I=g.indexOf("?");return(I>0?g.substring(0,I):g).endsWith(".bgz")}function sC(A){if(A.includes("?")){const g=A.indexOf("?");return A.substring(0,g)+".tbi"+A.substring(g)}return A+".tbi"}function EC(A){if(A)switch(A.toLowerCase()){case"bw":case"bigwig":case"wig":case"bedgraph":case"tdf":case"gtx":return"wig";case"vcf":case"vcftabix":return"variant";case"seg":return"seg";case"mut":case"maf":return"mut";case"bam":case"cram":return"alignment";case"hiccups":case"bedpe":case"bedpe-loop":case"biginteract":case"longrange":case"hic":return"interact";case"bp":return"arc";case"gwas":return"gwas";case"bed":case"bigbed":case"bb":case"biggenepred":case"bignarrowpeak":return"bedtype";case"fasta":return"sequence";case"pytor":return"cnvpytor";case"qtl":return"qtl";default:return"annotation"}}const aC=/^chr(\d+|X|Y|M)$/i;function rC(A){return aC.test(A)}function nC(A){return Object.keys(A).filter(rC).sort((A,g)=>hC(A)-hC(g))}function hC(A){const g=A.replace(/^chr/i,"");if("X"===g||"x"===g)return 23;if("Y"===g||"y"===g)return 24;if("M"===g||"m"===g)return 25;const I=parseInt(g,10);return isNaN(I)?100:I}function cC(A){const g=nC(A),I={};let t=0;for(const e of g)I[e]=Math.floor(t),t+=A[e];return{offsets:I,totalLength:Math.floor(t),chromosomeNames:g}}function lC(A,g){for(let I=g.chromosomeNames.length-1;I>=0;I--){const t=g.chromosomeNames[I],e=g.offsets[t];if(A>=e)return{chr:t,position:A-e}}return{chr:g.chromosomeNames[0],position:Math.max(0,A)}}function dC(A){const g={};for(const I of A.split("\n")){const A=I.trim();if(!A||A.startsWith("#"))continue;const t=A.split("\t");if(t.length>=2){const A=t[0],I=parseInt(t[1],10);A&&!isNaN(I)&&I>0&&(g[A]=I)}}return g}const DC={chr1:248956422,chr2:242193529,chr3:198295559,chr4:190214555,chr5:181538259,chr6:170805979,chr7:159345973,chr8:145138636,chr9:138394717,chr10:133797422,chr11:135086622,chr12:133275309,chr13:114364328,chr14:107043718,chr15:101991189,chr16:90338345,chr17:83257441,chr18:80373285,chr19:58617616,chr20:64444167,chr21:46709983,chr22:50818468,chrX:156040895,chrY:57227415,chrM:16569,chr11_KI270721v1_random:100316,chr14_GL000009v2_random:201709,chr14_GL000225v1_random:211173,chr14_KI270722v1_random:194050,chr14_GL000194v1_random:191469,chr14_KI270723v1_random:38115,chr14_KI270724v1_random:39555,chr14_KI270725v1_random:172810,chr14_KI270726v1_random:43739,chr15_KI270727v1_random:448248,chr16_KI270728v1_random:1872759,chr17_GL000205v2_random:185591,chr17_KI270729v1_random:280839,chr17_KI270730v1_random:112551,chr1_KI270706v1_random:175055,chr1_KI270707v1_random:32032,chr1_KI270708v1_random:127682,chr1_KI270709v1_random:66860,chr1_KI270710v1_random:40176,chr1_KI270711v1_random:42210,chr1_KI270712v1_random:176043,chr1_KI270713v1_random:40745,chr1_KI270714v1_random:41717,chr22_KI270731v1_random:150754,chr22_KI270732v1_random:41543,chr22_KI270733v1_random:179772,chr22_KI270734v1_random:165050,chr22_KI270735v1_random:42811,chr22_KI270736v1_random:181920,chr22_KI270737v1_random:103838,chr22_KI270738v1_random:99375,chr22_KI270739v1_random:73985,chr2_KI270715v1_random:161471,chr2_KI270716v1_random:153799,chr3_GL000221v1_random:155397,chr4_GL000008v2_random:209709,chr5_GL000208v1_random:92689,chr9_KI270717v1_random:40062,chr9_KI270718v1_random:38054,chr9_KI270719v1_random:176845,chr9_KI270720v1_random:39050,chr1_KI270762v1_alt:354444,chr1_KI270766v1_alt:256271,chr1_KI270760v1_alt:109528,chr1_KI270765v1_alt:185285,chr1_GL383518v1_alt:182439,chr1_GL383519v1_alt:110268,chr1_GL383520v2_alt:366580,chr1_KI270764v1_alt:50258,chr1_KI270763v1_alt:911658,chr1_KI270759v1_alt:425601,chr1_KI270761v1_alt:165834,chr2_KI270770v1_alt:136240,chr2_KI270773v1_alt:70887,chr2_KI270774v1_alt:223625,chr2_KI270769v1_alt:120616,chr2_GL383521v1_alt:143390,chr2_KI270772v1_alt:133041,chr2_KI270775v1_alt:138019,chr2_KI270771v1_alt:110395,chr2_KI270768v1_alt:110099,chr2_GL582966v2_alt:96131,chr2_GL383522v1_alt:123821,chr2_KI270776v1_alt:174166,chr2_KI270767v1_alt:161578,chr3_JH636055v2_alt:173151,chr3_KI270783v1_alt:109187,chr3_KI270780v1_alt:224108,chr3_GL383526v1_alt:180671,chr3_KI270777v1_alt:173649,chr3_KI270778v1_alt:248252,chr3_KI270781v1_alt:113034,chr3_KI270779v1_alt:205312,chr3_KI270782v1_alt:162429,chr3_KI270784v1_alt:184404,chr4_KI270790v1_alt:220246,chr4_GL383528v1_alt:376187,chr4_KI270787v1_alt:111943,chr4_GL000257v2_alt:586476,chr4_KI270788v1_alt:158965,chr4_GL383527v1_alt:164536,chr4_KI270785v1_alt:119912,chr4_KI270789v1_alt:205944,chr4_KI270786v1_alt:244096,chr5_KI270793v1_alt:126136,chr5_KI270792v1_alt:179043,chr5_KI270791v1_alt:195710,chr5_GL383532v1_alt:82728,chr5_GL949742v1_alt:226852,chr5_KI270794v1_alt:164558,chr5_GL339449v2_alt:1612928,chr5_GL383530v1_alt:101241,chr5_KI270796v1_alt:172708,chr5_GL383531v1_alt:173459,chr5_KI270795v1_alt:131892,chr6_GL000250v2_alt:4672374,chr6_KI270800v1_alt:175808,chr6_KI270799v1_alt:152148,chr6_GL383533v1_alt:124736,chr6_KI270801v1_alt:870480,chr6_KI270802v1_alt:75005,chr6_KB021644v2_alt:185823,chr6_KI270797v1_alt:197536,chr6_KI270798v1_alt:271782,chr7_KI270804v1_alt:157952,chr7_KI270809v1_alt:209586,chr7_KI270806v1_alt:158166,chr7_GL383534v2_alt:119183,chr7_KI270803v1_alt:1111570,chr7_KI270808v1_alt:271455,chr7_KI270807v1_alt:126434,chr7_KI270805v1_alt:209988,chr8_KI270818v1_alt:145606,chr8_KI270812v1_alt:282736,chr8_KI270811v1_alt:292436,chr8_KI270821v1_alt:985506,chr8_KI270813v1_alt:300230,chr8_KI270822v1_alt:624492,chr8_KI270814v1_alt:141812,chr8_KI270810v1_alt:374415,chr8_KI270819v1_alt:133535,chr8_KI270820v1_alt:36640,chr8_KI270817v1_alt:158983,chr8_KI270816v1_alt:305841,chr8_KI270815v1_alt:132244,chr9_GL383539v1_alt:162988,chr9_GL383540v1_alt:71551,chr9_GL383541v1_alt:171286,chr9_GL383542v1_alt:60032,chr9_KI270823v1_alt:439082,chr10_GL383545v1_alt:179254,chr10_KI270824v1_alt:181496,chr10_GL383546v1_alt:309802,chr10_KI270825v1_alt:188315,chr11_KI270832v1_alt:210133,chr11_KI270830v1_alt:177092,chr11_KI270831v1_alt:296895,chr11_KI270829v1_alt:204059,chr11_GL383547v1_alt:154407,chr11_JH159136v1_alt:200998,chr11_JH159137v1_alt:191409,chr11_KI270827v1_alt:67707,chr11_KI270826v1_alt:186169,chr12_GL877875v1_alt:167313,chr12_GL877876v1_alt:408271,chr12_KI270837v1_alt:40090,chr12_GL383549v1_alt:120804,chr12_KI270835v1_alt:238139,chr12_GL383550v2_alt:153178,chr12_GL383552v1_alt:138655,chr12_GL383553v2_alt:152874,chr12_KI270834v1_alt:119498,chr12_GL383551v1_alt:184319,chr12_KI270833v1_alt:76061,chr12_KI270836v1_alt:56134,chr13_KI270840v1_alt:191684,chr13_KI270839v1_alt:180306,chr13_KI270843v1_alt:103832,chr13_KI270841v1_alt:169134,chr13_KI270838v1_alt:306913,chr13_KI270842v1_alt:37287,chr14_KI270844v1_alt:322166,chr14_KI270847v1_alt:1511111,chr14_KI270845v1_alt:180703,chr14_KI270846v1_alt:1351393,chr15_KI270852v1_alt:478999,chr15_KI270851v1_alt:263054,chr15_KI270848v1_alt:327382,chr15_GL383554v1_alt:296527,chr15_KI270849v1_alt:244917,chr15_GL383555v2_alt:388773,chr15_KI270850v1_alt:430880,chr16_KI270854v1_alt:134193,chr16_KI270856v1_alt:63982,chr16_KI270855v1_alt:232857,chr16_KI270853v1_alt:2659700,chr16_GL383556v1_alt:192462,chr16_GL383557v1_alt:89672,chr17_GL383563v3_alt:375691,chr17_KI270862v1_alt:391357,chr17_KI270861v1_alt:196688,chr17_KI270857v1_alt:2877074,chr17_JH159146v1_alt:278131,chr17_JH159147v1_alt:70345,chr17_GL383564v2_alt:133151,chr17_GL000258v2_alt:1821992,chr17_GL383565v1_alt:223995,chr17_KI270858v1_alt:235827,chr17_KI270859v1_alt:108763,chr17_GL383566v1_alt:90219,chr17_KI270860v1_alt:178921,chr18_KI270864v1_alt:111737,chr18_GL383567v1_alt:289831,chr18_GL383570v1_alt:164789,chr18_GL383571v1_alt:198278,chr18_GL383568v1_alt:104552,chr18_GL383569v1_alt:167950,chr18_GL383572v1_alt:159547,chr18_KI270863v1_alt:167999,chr19_KI270868v1_alt:61734,chr19_KI270865v1_alt:52969,chr19_GL383573v1_alt:385657,chr19_GL383575v2_alt:170222,chr19_GL383576v1_alt:188024,chr19_GL383574v1_alt:155864,chr19_KI270866v1_alt:43156,chr19_KI270867v1_alt:233762,chr19_GL949746v1_alt:987716,chr20_GL383577v2_alt:128386,chr20_KI270869v1_alt:118774,chr20_KI270871v1_alt:58661,chr20_KI270870v1_alt:183433,chr21_GL383578v2_alt:63917,chr21_KI270874v1_alt:166743,chr21_KI270873v1_alt:143900,chr21_GL383579v2_alt:201197,chr21_GL383580v2_alt:74653,chr21_GL383581v2_alt:116689,chr21_KI270872v1_alt:82692,chr22_KI270875v1_alt:259914,chr22_KI270878v1_alt:186262,chr22_KI270879v1_alt:304135,chr22_KI270876v1_alt:263666,chr22_KI270877v1_alt:101331,chr22_GL383583v2_alt:96924,chr22_GL383582v2_alt:162811,chrX_KI270880v1_alt:284869,chrX_KI270881v1_alt:144206,chr19_KI270882v1_alt:248807,chr19_KI270883v1_alt:170399,chr19_KI270884v1_alt:157053,chr19_KI270885v1_alt:171027,chr19_KI270886v1_alt:204239,chr19_KI270887v1_alt:209512,chr19_KI270888v1_alt:155532,chr19_KI270889v1_alt:170698,chr19_KI270890v1_alt:184499,chr19_KI270891v1_alt:170680,chr1_KI270892v1_alt:162212,chr2_KI270894v1_alt:214158,chr2_KI270893v1_alt:161218,chr3_KI270895v1_alt:162896,chr4_KI270896v1_alt:378547,chr5_KI270897v1_alt:1144418,chr5_KI270898v1_alt:130957,chr6_GL000251v2_alt:4795265,chr7_KI270899v1_alt:190869,chr8_KI270901v1_alt:136959,chr8_KI270900v1_alt:318687,chr11_KI270902v1_alt:106711,chr11_KI270903v1_alt:214625,chr12_KI270904v1_alt:572349,chr15_KI270906v1_alt:196384,chr15_KI270905v1_alt:5161414,chr17_KI270907v1_alt:137721,chr17_KI270910v1_alt:157099,chr17_KI270909v1_alt:325800,chr17_JH159148v1_alt:88070,chr17_KI270908v1_alt:1423190,chr18_KI270912v1_alt:174061,chr18_KI270911v1_alt:157710,chr19_GL949747v2_alt:729520,chr22_KB663609v1_alt:74013,chrX_KI270913v1_alt:274009,chr19_KI270914v1_alt:205194,chr19_KI270915v1_alt:170665,chr19_KI270916v1_alt:184516,chr19_KI270917v1_alt:190932,chr19_KI270918v1_alt:123111,chr19_KI270919v1_alt:170701,chr19_KI270920v1_alt:198005,chr19_KI270921v1_alt:282224,chr19_KI270922v1_alt:187935,chr19_KI270923v1_alt:189352,chr3_KI270924v1_alt:166540,chr4_KI270925v1_alt:555799,chr6_GL000252v2_alt:4604811,chr8_KI270926v1_alt:229282,chr11_KI270927v1_alt:218612,chr19_GL949748v2_alt:1064304,chr22_KI270928v1_alt:176103,chr19_KI270929v1_alt:186203,chr19_KI270930v1_alt:200773,chr19_KI270931v1_alt:170148,chr19_KI270932v1_alt:215732,chr19_KI270933v1_alt:170537,chr19_GL000209v2_alt:177381,chr3_KI270934v1_alt:163458,chr6_GL000253v2_alt:4677643,chr19_GL949749v2_alt:1091841,chr3_KI270935v1_alt:197351,chr6_GL000254v2_alt:4827813,chr19_GL949750v2_alt:1066390,chr3_KI270936v1_alt:164170,chr6_GL000255v2_alt:4606388,chr19_GL949751v2_alt:1002683,chr3_KI270937v1_alt:165607,chr6_GL000256v2_alt:4929269,chr19_GL949752v1_alt:987100,chr6_KI270758v1_alt:76752,chr19_GL949753v2_alt:796479,chr19_KI270938v1_alt:1066800,chrUn_KI270302v1:2274,chrUn_KI270304v1:2165,chrUn_KI270303v1:1942,chrUn_KI270305v1:1472,chrUn_KI270322v1:21476,chrUn_KI270320v1:4416,chrUn_KI270310v1:1201,chrUn_KI270316v1:1444,chrUn_KI270315v1:2276,chrUn_KI270312v1:998,chrUn_KI270311v1:12399,chrUn_KI270317v1:37690,chrUn_KI270412v1:1179,chrUn_KI270411v1:2646,chrUn_KI270414v1:2489,chrUn_KI270419v1:1029,chrUn_KI270418v1:2145,chrUn_KI270420v1:2321,chrUn_KI270424v1:2140,chrUn_KI270417v1:2043,chrUn_KI270422v1:1445,chrUn_KI270423v1:981,chrUn_KI270425v1:1884,chrUn_KI270429v1:1361,chrUn_KI270442v1:392061,chrUn_KI270466v1:1233,chrUn_KI270465v1:1774,chrUn_KI270467v1:3920,chrUn_KI270435v1:92983,chrUn_KI270438v1:112505,chrUn_KI270468v1:4055,chrUn_KI270510v1:2415,chrUn_KI270509v1:2318,chrUn_KI270518v1:2186,chrUn_KI270508v1:1951,chrUn_KI270516v1:1300,chrUn_KI270512v1:22689,chrUn_KI270519v1:138126,chrUn_KI270522v1:5674,chrUn_KI270511v1:8127,chrUn_KI270515v1:6361,chrUn_KI270507v1:5353,chrUn_KI270517v1:3253,chrUn_KI270529v1:1899,chrUn_KI270528v1:2983,chrUn_KI270530v1:2168,chrUn_KI270539v1:993,chrUn_KI270538v1:91309,chrUn_KI270544v1:1202,chrUn_KI270548v1:1599,chrUn_KI270583v1:1400,chrUn_KI270587v1:2969,chrUn_KI270580v1:1553,chrUn_KI270581v1:7046,chrUn_KI270579v1:31033,chrUn_KI270589v1:44474,chrUn_KI270590v1:4685,chrUn_KI270584v1:4513,chrUn_KI270582v1:6504,chrUn_KI270588v1:6158,chrUn_KI270593v1:3041,chrUn_KI270591v1:5796,chrUn_KI270330v1:1652,chrUn_KI270329v1:1040,chrUn_KI270334v1:1368,chrUn_KI270333v1:2699,chrUn_KI270335v1:1048,chrUn_KI270338v1:1428,chrUn_KI270340v1:1428,chrUn_KI270336v1:1026,chrUn_KI270337v1:1121,chrUn_KI270363v1:1803,chrUn_KI270364v1:2855,chrUn_KI270362v1:3530,chrUn_KI270366v1:8320,chrUn_KI270378v1:1048,chrUn_KI270379v1:1045,chrUn_KI270389v1:1298,chrUn_KI270390v1:2387,chrUn_KI270387v1:1537,chrUn_KI270395v1:1143,chrUn_KI270396v1:1880,chrUn_KI270388v1:1216,chrUn_KI270394v1:970,chrUn_KI270386v1:1788,chrUn_KI270391v1:1484,chrUn_KI270383v1:1750,chrUn_KI270393v1:1308,chrUn_KI270384v1:1658,chrUn_KI270392v1:971,chrUn_KI270381v1:1930,chrUn_KI270385v1:990,chrUn_KI270382v1:4215,chrUn_KI270376v1:1136,chrUn_KI270374v1:2656,chrUn_KI270372v1:1650,chrUn_KI270373v1:1451,chrUn_KI270375v1:2378,chrUn_KI270371v1:2805,chrUn_KI270448v1:7992,chrUn_KI270521v1:7642,chrUn_GL000195v1:182896,chrUn_GL000219v1:179198,chrUn_GL000220v1:161802,chrUn_GL000224v1:179693,chrUn_KI270741v1:157432,chrUn_GL000226v1:15008,chrUn_GL000213v1:164239,chrUn_KI270743v1:210658,chrUn_KI270744v1:168472,chrUn_KI270745v1:41891,chrUn_KI270746v1:66486,chrUn_KI270747v1:198735,chrUn_KI270748v1:93321,chrUn_KI270749v1:158759,chrUn_KI270750v1:148850,chrUn_KI270751v1:150742,chrUn_KI270752v1:27745,chrUn_KI270753v1:62944,chrUn_KI270754v1:40191,chrUn_KI270755v1:36723,chrUn_KI270756v1:79590,chrUn_KI270757v1:71251,chrUn_GL000214v1:137718,chrUn_KI270742v1:186739,chrUn_GL000216v2:176608,chrUn_GL000218v1:161147,chrY_KI270740v1_random:37240};class uC{constructor(A){var g,I;this.allFeaturesLoaded=!1,this.url=u(A.url),this.fetchImpl=A.fetchImpl;const t=null!==(g=A.format)&&void 0!==g?g:eC(A.url);if(this.format=null!=t?t:"bed",this.assembleGFF=!1!==A.assembleGFF,void 0!==A.indexed?this._indexed=A.indexed:A.indexURL?this._indexed=!0:this._indexed=oC(A.url),this._indexed){const g=u(null!==(I=A.indexURL)&&void 0!==I?I:sC(A.url));this.tabixReader=new Be(this.url,{indexUrl:g,fetchImpl:A.fetchImpl})}}get indexed(){return this._indexed}setChromNameResolver(A){this._resolveChromName=A}setCumulativeOffsets(A){this._cumulativeOffsets=A}async getSequenceNames(A){return this.tabixReader?this.tabixReader.getSequenceNames(A):this.featureCache?Object.keys(this.featureCache.getAllFeatures()):[]}async fetch(A,g,I){if(og(A)&&this._cumulativeOffsets)return this.fetchWG(I);const t=this._resolveChromName?this._resolveChromName(A.chr):A.chr;return this._indexed&&this.tabixReader?this.fetchIndexed(t,A.start,A.end,I):this.fetchNonIndexed(t,A.start,A.end,I)}async fetchIndexed(A,g,I,t){const e=this.tabixReader;if(!this.header){const A=await e.readHeaderLines(t);this.header=ze(A,this.format)}const C=je(await e.readLines(A,g,I,t),this.format,{header:this.header,assembleGFF:this.assembleGFF});return C.sort((A,g)=>A.start-g.start),C}async fetchNonIndexed(A,g,I,t){var e,C;return this.allFeaturesLoaded||await this.loadAllFeatures(t),null!==(C=null===(e=this.featureCache)||void 0===e?void 0:e.queryFeatures(A,g,I))&&void 0!==C?C:[]}async loadAllFeatures(A){var g;const I=null!==(g=this.fetchImpl)&&void 0!==g?g:globalThis.fetch;let t,e;try{t=await I(this.url,{signal:A,mode:"cors"})}catch(g){if(!`${g}`.includes("Failed to fetch"))throw g;t=await I(this.url,{signal:A,mode:"cors",cache:"reload"})}if(!t.ok)throw new Error(`Failed to fetch ${this.url}: ${t.status} ${t.statusText}`);const C=this.url.toLowerCase(),i=C.endsWith(".gz")||C.endsWith(".bgz")||C.includes(".gz?")||C.includes(".bgz?"),B=t.headers.get("Content-Encoding");if(i&&!("gzip"===B||"deflate"===B)){const A=await t.arrayBuffer();try{const g=new DecompressionStream("gzip"),I=new Response(new Blob([A]).stream().pipeThrough(g));e=await I.text()}catch(g){e=(new TextDecoder).decode(A)}}else e=await t.text();if(null==A?void 0:A.aborted)return;const Q=e.split(/\r?\n/);this.header=ze(Q,this.format);const o=je(Q,this.format,{header:this.header,assembleGFF:this.assembleGFF});o.sort((A,g)=>A.chr===g.chr?A.start-g.start:A.chr.localeCompare(g.chr)),this.featureCache=new rI(o),this.allFeaturesLoaded=!0}async fetchWG(A){var g,I;if(A.aborted)return[];const t=this._cumulativeOffsets;if(!t)throw new Error("fetchWG called without cumulativeOffsets");if(this._indexed){const g=nC(Object.fromEntries(t.chromosomeNames.map(A=>{var g;return[A,null!==(g=t.offsets[A])&&void 0!==g?g:0]})));return hg(await ng(g,g=>this.fetchIndexed(g,0,Number.MAX_SAFE_INTEGER,A),A),t)}{this.allFeaturesLoaded||await this.loadAllFeatures(A);const e=null!==(I=null===(g=this.featureCache)||void 0===g?void 0:g.getAllFeatures())&&void 0!==I?I:{},C=[];for(const A of Object.values(e))C.push(...A);return hg(C,t)}}dispose(){this.tabixReader=void 0,this.featureCache=void 0,this.allFeaturesLoaded=!1}}function wC(A){if(!(A.oauthToken||A.basicAuth||A.headers||A.withCredentials))return;return B(new C({oauthToken:A.oauthToken,basicAuth:A.basicAuth,headers:A.headers,withCredentials:A.withCredentials}))}class yC{constructor(){this.dsInstances=new Map}async execute(A){return this.dispatch(A)}async dispatch(A){switch(A.task){case"pack":{const{packFeatures:g}=await Promise.resolve().then(function(){return vC}),I=[...A.features];return g(I,A.maxRows),I}case"summarize":{const{summarizeWigData:g}=await Promise.resolve().then(function(){return Qg});return g(A.features,A.startBP,A.bpPerPixel,A.windowFunction)}case"computeWigRange":{const{computeWigDataRange:g}=await Promise.resolve().then(function(){return Qg});return g(A.features)}case"parseFeatures":{const{parseFeatures:g}=await Promise.resolve().then(function(){return IC});return g(A.lines,A.format,{header:A.header,assembleGFF:A.assembleGFF})}case"aggregateWigGroup":{const{aggregateWigFeatures:g}=await Promise.resolve().then(function(){return UQ});return g(A.featureArrays,A.startBP,A.bpPerPixel)}default:throw new Error(`Unknown worker task: ${A.task}`)}}create(A,g){const I=function(A,g){var I,t;switch(A.type){case"bigwig":{const t=null!=g?g:wC(A);return new cg(A.url,null!==(I=A.windowFunction)&&void 0!==I?I:"mean",t)}case"gtx":{const I=null!=g?g:wC(A);return new Tg(A.url,A.experimentId,null!==(t=A.windowFunction)&&void 0!==t?t:"mean",I)}case"ucsc":return new II({genome:A.genome,track:A.track});case"text":{const I=null!=g?g:wC(A);return new uC({url:A.url,format:A.format,indexURL:A.indexURL,indexed:A.indexed,fetchImpl:I})}case"memory":throw new Error("MemoryDataSource cannot be created via provider — use MemoryDataSource directly");default:throw new Error(`Unknown DataSourceConfig type: ${A.type}`)}}(g);this.dsInstances.set(A,I)}async fetch(A,g,I,t){const e=this.dsInstances.get(A);if(!e)throw new Error(`DataSource not found: ${A}`);return e.fetch(g,I,t)}configure(A,g,...I){const t=this.dsInstances.get(A);t&&function(A,g,...I){const t=A[g];"function"==typeof t&&t.call(A,...I)}(t,g,...I)}destroy(A){var g;const I=this.dsInstances.get(A);null===(g=null==I?void 0:I.dispose)||void 0===g||g.call(I),this.dsInstances.delete(A)}dispose(){var A;for(const g of this.dsInstances.values())null===(A=g.dispose)||void 0===A||A.call(g);this.dsInstances.clear()}}const fC=new yC,SC=3e4;class kC extends Error{constructor(A,g){super(`Worker task '${A}' timed out after ${g}ms`),this.name="TaskTimeoutError"}}function GC(A,g,I){return g<=0?A:new Promise((t,e)=>{const C=setTimeout(()=>e(new kC(I,g)),g);A.then(A=>{clearTimeout(C),t(A)},A=>{clearTimeout(C),e(A)})})}function FC(A){const g=new Error(A.message);return g.name=A.name,A.stack&&(g.stack=A.stack),g}class NC{constructor(A,g){this.provider=A,this.instanceId=g}async fetch(A,g,I){const t=this.resolver?{...A,chr:this.resolver(A.chr)}:A;return this.provider.fetch(this.instanceId,t,g,I)}setChromNameResolver(A){this.resolver=A}setCumulativeOffsets(A){this.provider.configure(this.instanceId,"setCumulativeOffsets",A)}setWindowFunction(A){this.provider.configure(this.instanceId,"setWindowFunction",A)}}const mC={debug:0,info:1,warn:2,error:3,silent:4};let pC="warn";const RC={debug(...A){mC[pC]<=0&&console.debug("[loom]",...A)},info(...A){mC[pC]<=1&&console.info("[loom]",...A)},warn(...A){mC[pC]<=2&&console.warn("[loom]",...A)},error(...A){mC[pC]<=3&&console.error("[loom]",...A)}};class UC{constructor(A){var g,I;this.nextId=0,this.nextWorker=0,this.pending=new Map,this.instanceToWorker=new Map,this.pendingFetches=new Map,this.nextFetchId=0,this.taskTimeoutMs=null!==(g=A.taskTimeoutMs)&&void 0!==g?g:SC,this.authProvider=A.authProvider;const t=Math.max(1,null!==(I=A.poolSize)&&void 0!==I?I:1);let e;if(A.workerFactory)e=A.workerFactory;else{if(!A.workerUrl)throw new Error("WebWorkerPoolOptions requires either workerUrl or workerFactory");{const g=A.workerUrl;e=()=>new Worker(g,{type:"module"})}}this.workers=[],this.readyPromises=[];for(let A=0;A<t;A++){const A=e();let g;const I=new Promise((I,t)=>{g=t;A.addEventListener("message",A=>{"ready"===A.data.type&&I()},{once:!0})});I.catch(()=>{}),this.readyPromises.push(I),A.onmessage=g=>{const I=g.data;if("ready"!==I.type)if("taskResult"===I.type){const A=this.pending.get(I.id);A&&(this.pending.delete(I.id),I.error?A.reject(FC(I.error)):A.resolve(I.result))}else if("fetchResult"===I.type){const A=this.pendingFetches.get(I.fetchId);A&&(this.pendingFetches.delete(I.fetchId),A.resolve(I.features))}else if("fetchError"===I.type){const A=this.pendingFetches.get(I.fetchId);A&&(this.pendingFetches.delete(I.fetchId),"AbortError"===I.error?A.reject(new DOMException("Aborted","AbortError")):A.reject(new Error(I.error)))}else"auth-challenge"===I.type&&this.handleAuthChallenge(A,I.challengeId,I.url)},A.onerror=A=>{const I=new Error(`Worker error: ${A.message}`);g(I);for(const{reject:A}of this.pending.values())A(I);this.pending.clear();for(const{reject:A}of this.pendingFetches.values())A(I);this.pendingFetches.clear()},this.workers.push(A)}}get poolSize(){return this.workers.length}execute(A,g){const I=this.nextId++,t=this.workers[this.nextWorker%this.workers.length];this.nextWorker++;return GC(new Promise((e,C)=>{this.pending.set(I,{resolve:e,reject:C}),t.postMessage({type:"task",id:I,task:A},null!=g?g:[])}),this.taskTimeoutMs,A.task)}create(A,g){const I=this.routeToWorker(g);this.instanceToWorker.set(A,I);const t=this.workers[I];this.readyPromises[I].then(()=>{t.postMessage({type:"create",instanceId:A,config:g})})}async fetch(A,g,I,t){const e=this.instanceToWorker.get(A);if(void 0===e)throw new Error(`No worker assigned for DataSource: ${A}`);await this.readyPromises[e];const C=this.nextFetchId++,i=this.workers[e],B=()=>{i.postMessage({type:"cancel",fetchId:C});const A=this.pendingFetches.get(C);A&&(this.pendingFetches.delete(C),A.reject(new DOMException("Aborted","AbortError")))};if(t.addEventListener("abort",B,{once:!0}),t.aborted)throw t.removeEventListener("abort",B),new DOMException("Aborted","AbortError");try{return await new Promise((t,e)=>{this.pendingFetches.set(C,{resolve:t,reject:e}),i.postMessage({type:"fetch",instanceId:A,fetchId:C,locus:g,bpPerPixel:I})})}finally{t.removeEventListener("abort",B)}}configure(A,g,...I){const t=this.instanceToWorker.get(A);if(void 0===t)return;const e=this.workers[t];this.readyPromises[t].then(()=>{e.postMessage({type:"configure",instanceId:A,method:g,args:I})})}destroy(A){const g=this.instanceToWorker.get(A);if(void 0===g)return;this.workers[g].postMessage({type:"destroy",instanceId:A}),this.instanceToWorker.delete(A)}dispose(){for(const A of this.workers)A.terminate();for(const{reject:A}of this.pending.values())A(new Error("Worker terminated"));this.pending.clear();for(const{reject:A}of this.pendingFetches.values())A(new Error("Worker terminated"));this.pendingFetches.clear(),this.instanceToWorker.clear(),this.readyPromises=[],this.workers=[]}handleAuthChallenge(A,g,I){this.authProvider?this.authProvider.getCredentials(I).then(I=>{var t,e;A.postMessage({type:"auth-refresh",challengeId:g,credentials:I?{oauthToken:null===(e=null===(t=I.headers)||void 0===t?void 0:t.Authorization)||void 0===e?void 0:e.replace(/^Bearer\s+/i,""),headers:I.headers,withCredentials:I.withCredentials}:void 0})}).catch(I=>{RC.error("Auth challenge resolution failed:",I),A.postMessage({type:"auth-refresh",challengeId:g,credentials:void 0})}):A.postMessage({type:"auth-refresh",challengeId:g,credentials:void 0})}routeToWorker(A){const g="url"in A?A.url:A.type;return Math.abs(function(A){let g=5381;for(let I=0;I<A.length;I++)g=(g<<5)+g+A.charCodeAt(I)|0;return g}(g))%this.workers.length}}const MC={chr:"",start:0,end:0};class LC{get canvas(){return this._canvas}get locus(){return this._locus}get height(){return this._height}get config(){return this._config}get viewportWidth(){return this._viewportWidth||this._canvas.clientWidth}get currentPixelShiftOffset(){return this._pixelShift}getBaseCanvasOffset(){return this._overscanMultiplier>1?-this._viewportWidth*((this._overscanMultiplier-1)/2):0}getCanvasViewportOffset(){return this.getBaseCanvasOffset()+this._pixelShift}viewportXToGenomicBp(A){if(0===this._renderBpPerPixel)return 0;const g=this.getCanvasViewportOffset();return this._renderBpStart+(A-g)*this._renderBpPerPixel}genomicBpToViewportX(A){if(0===this._renderBpPerPixel)return 0;const g=this.getCanvasViewportOffset();return(A-this._renderBpStart)/this._renderBpPerPixel+g}constructor(A,g,I,t){this._height=0,this.resizeObserver=null,this.container=null,this._renderSuspended=!1,this._renderPending=!1,this._error=null,this._zoomedOut=!1,this._externalUIEnabled=!1,this._overscanMultiplier=1,this._renderBpStart=0,this._renderBpPerPixel=0,this._renderChr="",this._viewportWidth=0,this._pixelShift=0,this._canvas=A,this._locus=null!=g?g:MC,this._config=I,this.canvasProvider=null!=t?t:S}setLocus(A){this._locus=A,this.render()}setLocusSilent(A){this._locus=A}setConfig(A){var g,I;null===(g=this.onBeforeConfigChange)||void 0===g||g.call(this),this._config={...this._config,...A},this.render(),null===(I=this.onConfigChanged)||void 0===I||I.call(this)}suspendRendering(){this._renderSuspended=!0}discardPendingRender(){this._renderPending=!1}resumeRendering(){this._renderSuspended=!1,this._renderPending&&(this._renderPending=!1,this.render())}setOverscanMultiplier(A){this._overscanMultiplier=Math.max(1,A)}get overscanMultiplier(){return this._overscanMultiplier}computePixelShift(A){if(this._renderChr!==A.chr)return null;if(0===this._renderBpPerPixel)return null;const g=(A.end-A.start)/this._viewportWidth;if(Math.abs(this._renderBpPerPixel-g)>1e-10*this._renderBpPerPixel)return null;return(this._renderBpStart-A.start)/this._renderBpPerPixel+this._viewportWidth*((this._overscanMultiplier-1)/2)}needsRepaint(A){if(this._renderChr!==A.chr)return!0;if(0===this._renderBpPerPixel)return!0;const g=(A.end-A.start)/this._viewportWidth;if(Math.abs(this._renderBpPerPixel-g)>1e-10*this._renderBpPerPixel)return!0;const I=this._renderBpStart+this._renderBpPerPixel*(this._viewportWidth*this._overscanMultiplier);return A.start<this._renderBpStart||A.end>I}applyPixelShift(A){this._pixelShift=A,this._canvas.style.transform=`translate3d(${A}px, 0, 0)`}resetPixelShift(){this.applyPixelShift(0)}setError(A){this._error!==A&&(this._error=A,this.render())}setZoomedOut(A){this._zoomedOut!==A&&(this._zoomedOut=A,this.render())}hitTest(A,g){return[]}onCanvasClick(A,g){return!1}getUIOverlayState(){}onUIOverlayClick(A){return!1}setExternalUIEnabled(A){this._externalUIEnabled=A}get externalUIEnabled(){return this._externalUIEnabled}getFeatureRects(){return[]}getContextMenuItems(A,g){}attachTo(A){this.detach(),this.container=A,A.appendChild(this._canvas),this._canvas.style.display="block",this.resizeObserver=new ResizeObserver(()=>this.render()),this.resizeObserver.observe(A),this.render()}detach(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),this.container&&this._canvas.parentNode===this.container&&this.container.removeChild(this._canvas),this.container=null}render(){var A,g;if(this._renderSuspended)return void(this._renderPending=!0);const I=(null===(A=this.container)||void 0===A?void 0:A.clientWidth)||(null===(g=this._canvas.parentElement)||void 0===g?void 0:g.clientWidth)||this._viewportWidth||this._canvas.clientWidth;if(0===I)return;const t=this._overscanMultiplier,e=I*t;this._viewportWidth=I;const C=this.computeHeight(I);this._height=C;const i=this.canvasProvider.devicePixelRatio;this._canvas.width=e*i,this._canvas.height=C*i,this._canvas.style.width=`${e}px`,this._canvas.style.height=`${C}px`,t>1?(this._canvas.style.position="relative",this._canvas.style.willChange="transform"):(this._canvas.style.position="",this._canvas.style.willChange=""),this._canvas.style.left=`${this.getBaseCanvasOffset()}px`,this.resetPixelShift();const B=this._canvas.getContext("2d");if(B.scale(i,i),B.fillStyle=this.getBackground(),B.fillRect(0,0,e,C),this._error)return this.renderError(B,I,C),this.renderLabelOverlay(B,I,C),void this._recordRenderMetadata(I);if(this._zoomedOut)return this.renderZoomInNotice(B,I,C),this.renderLabelOverlay(B,I,C),void this._recordRenderMetadata(I);if(this._locus===MC)return this.renderNoLocusNotice(B,I,C),this._renderBpPerPixel=0,void(this._renderChr="");const Q=(this._locus.end-this._locus.start)/I,o=I*Q*((t-1)/2),s=this._locus.start-o,E={pixelWidth:e,bpStart:s,bpPerPixel:Q,viewportWidth:I};this.doRender(B,e,C,E),this._renderBpStart=s,this._renderBpPerPixel=Q,this._renderChr=this._locus.chr}_recordRenderMetadata(A){if(this._locus!==MC){const g=(this._locus.end-this._locus.start)/A,I=A*g*((this._overscanMultiplier-1)/2);this._renderBpPerPixel=g,this._renderBpStart=this._locus.start-I,this._renderChr=this._locus.chr}}renderError(A,g,I){A.font="12px sans-serif",A.fillStyle="rgb(180, 0, 0)",A.textAlign="center",A.textBaseline="middle",A.fillText("Error loading track data",g/2,I/2)}renderZoomInNotice(A,g,I){A.font="12px sans-serif",A.fillStyle="rgb(120, 120, 120)",A.textAlign="center",A.textBaseline="middle",A.fillText("Zoom in to see features",g/2,I/2)}renderNoLocusNotice(A,g,I){A.font="12px sans-serif",A.fillStyle="rgb(120, 120, 120)",A.textAlign="center",A.textBaseline="middle",A.fillText("No locus set",g/2,I/2)}renderLabelOverlay(A,g,I){}renderToContext(A,g,I,t){var e;if((null==t?void 0:t.skipBackground)||(A.fillStyle=this.getBackground(),A.fillRect(0,0,g,I)),this._error)return this.renderError(A,g,I),void this.renderLabelOverlay(A,g,I);if(this._zoomedOut)return this.renderZoomInNotice(A,g,I),void this.renderLabelOverlay(A,g,I);if(this._locus===MC)return void this.renderNoLocusNotice(A,g,I);const C=null!==(e=null==t?void 0:t.rc)&&void 0!==e?e:{pixelWidth:g,bpStart:this._locus.start,bpPerPixel:(this._locus.end-this._locus.start)/g,viewportWidth:g};this.doRender(A,g,I,C),this._renderBpStart=C.bpStart,this._renderBpPerPixel=C.bpPerPixel,this._viewportWidth=C.viewportWidth,this._renderChr=this._locus.chr}}function JC(A,g,I){var t,e;if(I<12)return;A.font="normal 10px sans-serif",A.textBaseline="top",A.textAlign="left";const C=4+(null!==(t=g.topOffset)&&void 0!==t?t:0),i=A.measureText(g.name),B=i.width+8,Q=(null!==(e=i.actualBoundingBoxDescent)&&void 0!==e?e:10)+4;A.fillStyle=g.background,A.globalAlpha=.75,A.fillRect(4,C,B,Q),A.globalAlpha=1,A.strokeStyle=g.labelColor,A.globalAlpha=.3,A.lineWidth=.5,A.strokeRect(4,C,B,Q),A.globalAlpha=1,A.fillStyle=g.labelColor,A.fillText(g.name,8,C+2)}function KC(A){return"setZoomedOut"in A&&"function"==typeof A.setZoomedOut}function bC(A,g){const I=null!=g?g:Number.MAX_SAFE_INTEGER,t=[-1e3];A.sort((A,g)=>A.start-g.start);for(const g of A){const A=Math.min(t.length,I);let e=0;for(e=0;e<A&&!(g.start>=t[e]);e++);g.row=e,t[e]=g.end}return 0===A.length?0:t.length-1}var vC=Object.freeze({__proto__:null,packFeatures:bC});function YC(A,g){let I=0,t=A.length;for(;I<t;){const e=I+t>>>1;A[e].end<g?I=e+1:t=e}return I}function xC(A,g){let I=0,t=A.length;for(;I<t;){const e=I+t>>>1;A[e].start<=g?I=e+1:t=e}return I}function HC(A,g,I,t,e,C){var i,B,Q;const o=null!==(i=C.borderRadius)&&void 0!==i?i:0;o>0&&t>2*o&&e>2*o?(A.beginPath(),A.roundRect(g,I,t,e,o),A.fill(),C.borderColor&&(null!==(B=C.borderWidth)&&void 0!==B?B:0)>0&&(A.strokeStyle=C.borderColor,A.lineWidth=C.borderWidth,A.stroke())):(A.fillRect(g,I,t,e),C.borderColor&&(null!==(Q=C.borderWidth)&&void 0!==Q?Q:0)>0&&(A.strokeStyle=C.borderColor,A.lineWidth=C.borderWidth,A.strokeRect(g,I,t,e)))}function qC(A,g,I,t,e,C){var i,B,Q,o;A.save();try{const s=TC(g,I),E=function(A,g){var I,t,e;if("-"===A.strand)return null!==(t=null!==(I=g.altUtrColor)&&void 0!==I?I:g.utrColor)&&void 0!==t?t:TC(A,g);return null!==(e=g.utrColor)&&void 0!==e?e:g.color}(g,I);let a,r;A.fillStyle=s,A.strokeStyle=s,"SQUISHED"===I.displayMode&&void 0!==g.row?(a=I.featureHeight/2,r=I.margin+I.squishedRowHeight*g.row):"EXPANDED"===I.displayMode&&void 0!==g.row?(a=I.featureHeight,r=I.margin+I.expandedRowHeight*g.row):(a=I.featureHeight,r=I.margin);const n=r+a/2,h=a/2,c=n-h/2,l=g.exons?g.exons.length:0,d=function(A,g,I){let t=(A.start-g)/I,e=(A.end-g)/I,C=e-t;return C<3&&(C=3,t-=1.5),{px:t,px1:e,pw:C}}(g,t.bpStart,t.bpPerPixel),D=I.arrowSpacing,u="+"===g.strand?1:"-"===g.strand?-1:0,w=null!==(i=I.arrowColor)&&void 0!==i?i:s,y=null!==(B=I.arrowInExonColor)&&void 0!==B?B:"white";if(0===l){const g=Math.max(0,d.px),e=Math.min(t.pixelWidth,d.px1),C=e-g;if(A.fillStyle=s,HC(A,g,r,C,a,I),0!==u){A.strokeStyle=y;for(let I=g+D/2;I<e;I+=D)_C(A,I,n,u)}}else{A.save(),A.strokeStyle=null!==(Q=I.intronColor)&&void 0!==Q?Q:s,A.lineWidth=null!==(o=I.intronLineWidth)&&void 0!==o?o:1,I.intronDash&&I.intronDash.length>0&&A.setLineDash(I.intronDash),A.beginPath(),A.moveTo(d.px+1,n),A.lineTo(d.px1-1,n),A.stroke(),A.restore(),A.strokeStyle=w;const e=Math.max(0,d.px)+D/2,C=Math.min(t.pixelWidth,d.px1);for(let g=e;g<C;g+=D)_C(A,g,n,u);for(const e of g.exons){let g=Math.round((e.start-t.bpStart)/t.bpPerPixel),C=Math.round((e.end-t.bpStart)/t.bpPerPixel),i=Math.max(1,C-g);if(!(g+i<0)){if(g>t.pixelWidth)break;if(e.utr)A.fillStyle=E,HC(A,g,c,i,h,I);else{if(e.cdStart){const C=Math.round((e.cdStart-t.bpStart)/t.bpPerPixel);A.fillStyle=E,HC(A,g,c,C-g,h,I),i-=C-g,g=C}if(e.cdEnd){const g=Math.round((e.cdEnd-t.bpStart)/t.bpPerPixel);A.fillStyle=E,HC(A,g,c,C-g,h,I),i-=C-g,C=g}if(i=Math.max(i,1),A.fillStyle=s,HC(A,g,r,i,a,I),i>D+5&&0!==u){A.strokeStyle=y;for(let I=g+D/2;I<C;I+=D)_C(A,I,n,u)}}}}}C&&"SQUISHED"!==I.displayMode&&d.pw>=10&&function(A,g,I,t,e,C,i,B){var Q,o,s,E;const a=function(A,g){const I={name:A.name,id:A.id,chr:A.chr},t=I[g];return void 0!==t?t:A.id}(g,C.labelField);if(!a||"."===a)return;A.save();try{A.font=null!==(Q=C.labelFont)&&void 0!==Q?Q:C.font;const r=(i.pixelWidth-i.viewportWidth)/2,n=r+i.viewportWidth,h=Math.max(I,r),c=Math.min(t,n);if(h>=c)return;const l=(h+c)/2,d="COLLAPSED"===C.displayMode&&"SLANT"===C.labelDisplayMode,D=d?e+20:e+25;A.fillStyle=null!==(o=C.labelColor)&&void 0!==o?o:TC(g,C);const u=A.measureText(a),w=l-u.width/2,y=l+u.width/2;if(w>(null!==(s=B[g.row])&&void 0!==s?s:-Number.MAX_SAFE_INTEGER)){B[g.row]=y;const I=l-u.width/2-1,t=D-u.actualBoundingBoxAscent-1,e=u.width+2,i=u.actualBoundingBoxAscent+u.actualBoundingBoxDescent+2;C.labelBackground?(A.fillStyle=C.labelBackground,A.fillRect(I,t,e,i),A.fillStyle=null!==(E=C.labelColor)&&void 0!==E?E:TC(g,C)):A.clearRect(I,t,e,i),d?(A.save(),A.translate(l,D),A.rotate(Math.PI/4),A.fillText(a,0,0),A.restore()):(A.textAlign="center",A.fillText(a,l,D))}}finally{A.restore()}}(A,g,d.px,d.px1,r,I,t,e)}finally{A.restore()}}function _C(A,g,I,t){A.beginPath(),A.moveTo(g-2*t,I-2),A.lineTo(g,I),A.stroke(),A.beginPath(),A.moveTo(g-2*t,I+2),A.lineTo(g,I),A.stroke()}function TC(A,g){return A.color?A.color:g.altColor&&"-"===A.strand?g.altColor:g.color}function WC(A,g,I,t,e,C){var i,B;const Q={},o=[],s=t.bpStart+t.pixelWidth*t.bpPerPixel,E=[];for(let A=0;A<g.length;A++){const e=g[A];if(e.start>s)break;if(void 0!==e.row&&(e.start>=t.bpStart&&e.end<=s)){const A="COLLAPSED"===I.displayMode?0:e.row;E[A]=(null!==(i=E[A])&&void 0!==i?i:0)+1}}const a=0===E.length?0:Math.max(...E.filter(A=>void 0!==A)),r=a>0?t.pixelWidth/a:1/0,n=I.drawLabels&&r>10,h=xC(g,s);for(let e=0;e<h;e++){const i=g[e];if(i.end<t.bpStart)continue;if(void 0===i.row)continue;const B="COLLAPSED"===I.displayMode?0:i.row,s=Math.ceil((i.end-t.bpStart)/t.bpPerPixel),E=o[B];if(!(void 0!==E&&s<=E)){if(void 0!==E&&void 0!==C){const g=Math.floor((i.start-t.bpStart)/t.bpPerPixel);g-E<=0&&(A.save(),A.globalAlpha=.5,A.strokeStyle=I.background,A.lineWidth=1,A.beginPath(),A.moveTo(g,0),A.lineTo(g,C),A.stroke(),A.globalAlpha=1,A.restore())}o[B]=s,qC(A,i,I,t,Q,n)}}e&&JC(A,e,A.canvas.height/(null!==(B=globalThis.devicePixelRatio)&&void 0!==B?B:1))}const PC={background:"--loom-background",foreground:"--loom-foreground",primary:"--loom-primary",secondary:"--loom-secondary",accent:"--loom-accent",muted:"--loom-muted",mutedForeground:"--loom-muted-foreground",border:"--loom-border-color",shellBg:"--loom-shell-bg",navbarBg:"--loom-navbar-bg",navbarHeight:"--loom-navbar-height",navbarPadding:"--loom-navbar-padding",font:"--loom-font",fontSmall:"--loom-font-small",textColor:"--loom-text-color",textMuted:"--loom-text-muted",borderStyle:"--loom-border",borderRadius:"--loom-border-radius",buttonBg:"--loom-button-bg",buttonHover:"--loom-button-hover",buttonBorder:"--loom-button-border",buttonSize:"--loom-button-size",inputBg:"--loom-input-bg",inputBorder:"--loom-input-border",inputFocusBorder:"--loom-input-focus-border",inputWidth:"--loom-input-width",inputHeight:"--loom-input-height",iconColor:"--loom-icon-color",iconSize:"--loom-icon-size",gap:"--loom-gap"},OC={navbarBg:"#f3f3f3",navbarHeight:"32px",navbarPadding:"0 8px",font:"12px Arial, sans-serif",fontSmall:"11px Arial, sans-serif",textColor:"#333",textMuted:"#737373",borderStyle:"1px solid #ccc",borderRadius:"4px",buttonBg:"white",buttonHover:"#e8e8e8",buttonBorder:"1px solid #b0b0b0",buttonSize:"24px",inputBg:"white",inputBorder:"1px solid #b0b0b0",inputFocusBorder:"1px solid #4A90D9",inputWidth:"220px",inputHeight:"22px",accent:"#4A90D9",iconColor:"#555",iconSize:"14px",gap:"8px"},VC={navbarBg:"#fafbfc",navbarHeight:"40px",navbarPadding:"0 12px",font:"13px Inter, system-ui, -apple-system, sans-serif",fontSmall:"11px Inter, system-ui, -apple-system, sans-serif",textColor:"#1a1a1a",textMuted:"#6b7280",borderStyle:"1px solid rgba(0, 0, 0, 0.08)",borderRadius:"8px",buttonBg:"white",buttonHover:"#f0f4ff",buttonBorder:"1px solid rgba(0, 0, 0, 0.1)",buttonSize:"28px",inputBg:"white",inputBorder:"1px solid rgba(0, 0, 0, 0.12)",inputFocusBorder:"1px solid #4A90D9",inputWidth:"260px",inputHeight:"28px",accent:"#4A90D9",iconColor:"#6b7280",iconSize:"16px",gap:"10px"},ZC={shellBg:"#16162a",navbarBg:"#1a1a2e",navbarHeight:"36px",navbarPadding:"0 10px",font:"12px Arial, sans-serif",fontSmall:"11px Arial, sans-serif",textColor:"#e0e0e0",textMuted:"#888",borderStyle:"1px solid #333",borderRadius:"4px",buttonBg:"#2a2a3e",buttonHover:"#3a3a50",buttonBorder:"1px solid #444",buttonSize:"24px",inputBg:"#2a2a3e",inputBorder:"1px solid #444",inputFocusBorder:"1px solid #6a9fd9",inputWidth:"220px",inputHeight:"22px",accent:"#6a9fd9",iconColor:"#b0b0b0",iconSize:"14px",gap:"8px"};function zC(A){const g=[];for(const[I,t]of Object.entries(A)){if(void 0===t)continue;const A=PC[I];A&&g.push(` ${A}: ${t};`)}return`:host {\n${g.join("\n")}\n}`}function jC(){return{palette:{primary:"rgb(0,0,150)",secondary:"rgb(0,0,150)",accent:"#4A90D9",background:"#ffffff",foreground:"#333333",muted:"rgb(150, 150, 150)"},fontFamily:"sans-serif",fontSize:10,nucleotideColors:{A:"#00C000",C:"#0000FF",G:"#FFB300",T:"#FF0000",N:"#808080"}}}function XC(A){var g,I;const t={palette:{primary:"rgb(0,0,150)",secondary:"rgb(0,0,150)",accent:"#4A90D9",background:"#ffffff",foreground:"#333333",muted:"rgb(150, 150, 150)"},fontFamily:"sans-serif",fontSize:10,nucleotideColors:{A:"#00C000",C:"#0000FF",G:"#FFB300",T:"#FF0000",N:"#808080"}};return A?{palette:{...t.palette,...A.palette},fontFamily:null!==(g=A.fontFamily)&&void 0!==g?g:t.fontFamily,fontSize:null!==(I=A.fontSize)&&void 0!==I?I:t.fontSize,nucleotideColors:{...t.nucleotideColors,...A.nucleotideColors},annotation:A.annotation,wig:A.wig,ruler:A.ruler,sequence:A.sequence,interaction:A.interaction,peakOverlay:A.peakOverlay,ideogram:A.ideogram}:t}function $C(A,g){const I={background:A.palette.background,displayMode:"EXPANDED",featureHeight:14,margin:10,expandedRowHeight:30,squishedRowHeight:15,arrowSpacing:30,color:A.palette.primary,altColor:A.palette.secondary,labelField:"name",font:`bold ${A.fontSize}px ${A.fontFamily}`,drawLabels:!0,intronColor:A.palette.muted,labelColor:A.palette.foreground,maxRows:1e3},t=A.annotation?{...I,...A.annotation}:I;return g?{...t,...g}:t}function Ai(A,g){const I={height:50,graphType:"bar",windowFunction:"max",dataRange:{min:0,max:100},autoscale:!0,color:A.palette.primary,altColor:A.palette.secondary,flipAxis:!1,logScale:!1,baselineColor:A.palette.muted,overflowColor:"rgb(255, 32, 255)",pointSize:3,background:A.palette.background,nucleotideColors:A.nucleotideColors,showDataRange:!0,labelColor:A.palette.foreground,labelFont:`bold ${Math.max(9,A.fontSize-1)}px ${A.fontFamily}`},t=A.wig?{...I,...A.wig}:I;return g?{...t,...g}:t}function gi(A,g){const I={height:30,font:`bold ${A.fontSize}px ${A.fontFamily}`,tickColor:A.palette.muted,labelColor:A.palette.foreground,baselineColor:A.palette.muted,background:A.palette.background},t=A.ruler?{...I,...A.ruler}:I;return g?{...t,...g}:t}function Ii(A,g){const I={sequenceType:"dna",reversed:!1,frameTranslate:!1,background:A.palette.background,nucleotideColors:{...A.nucleotideColors},nonDnaColor:"rgb(0, 0, 150)",defaultHeight:25,translatedHeight:115,sequenceHeight:15,frameHeight:25,frameBorder:5,frameColor1:"rgb(160,160,160)",frameColor2:"rgb(224,224,224)",stopCodonColor:"rgb(255, 0, 0)",startCodonColor:"rgb(0, 153, 0)",useFillText:!1,frameLabelColor:"#000000",frameFont:`bold ${A.fontSize}px ${A.fontFamily}`,codonBorderRadius:0},t=A.sequence?{...I,...A.sequence}:I;return g?{...t,...g}:t}function ti(A,g){const I={height:250,arcOrientation:"UP",displayMode:"nested",showBlocks:!0,blockHeight:3,thickness:1,color:"rgb(180,25,137)",alpha:.02,logScale:!0,background:A.palette.background,font:`${Math.max(8,A.fontSize-2)}px ${A.fontFamily}`,useScore:!1,transparency:1},t=A.interaction?{...I,...A.interaction}:I;return g?{...t,...g}:t}function ei(A,g){var I;const t={background:"transparent",display:["shaded"],color:Qi(null!==(I=A.palette.accent)&&void 0!==I?I:A.palette.secondary,.15),barHeight:3,summitColor:"#ff0000",summitSize:6,visibilityWindow:75e3},e=A.peakOverlay?{...t,...A.peakOverlay}:t;return g?{...e,...g}:e}function Ci(A,g){const I={height:50,alpha:.5,autoscale:!0,dataRange:{min:0,max:100},flipAxis:!1,logScale:!1,background:A.palette.background,labelColor:A.palette.foreground};return g?{...I,...g}:I}function ii(A,g){const I={height:80,activeModes:["meanSd"],lineColor:A.palette.primary,bandColor:A.palette.primary,bandAlpha:.2,badgeBackground:A.palette.accent,badgeColor:A.palette.background,autoscale:!0,dataRange:{min:0,max:100},flipAxis:!1,logScale:!1,normalizationMode:"none",normalizationPercentile:95,normalizationCenterPercentileLow:25,normalizationCenterPercentileHigh:75,labelColor:A.palette.foreground,labelFont:`bold ${Math.max(9,A.fontSize-1)}px ${A.fontFamily}`,showDataRange:!0,background:A.palette.background},t=A.wigGroup?{...I,...A.wigGroup}:I;return g?{...t,...g}:t}function Bi(A,g){const I={height:16,showBandNames:!1,centromereColor:"rgb(150, 10, 10)",bandLightColor:"rgb(230, 230, 230)",bandDarkColor:A.palette.foreground,borderColor:A.palette.muted,viewportIndicatorColor:"red",font:`${A.fontSize}px ${A.fontFamily}`,labelColor:A.palette.foreground,altLabelColor:A.palette.background,background:A.palette.background},t=A.ideogram?{...I,...A.ideogram}:I;return g?{...t,...g}:t}function Qi(A,g){const I=A.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);if(I)return`rgba(${I[1]}, ${I[2]}, ${I[3]}, ${g})`;const t=A.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/);if(t){return`rgba(${parseInt(t[1],16)}, ${parseInt(t[2],16)}, ${parseInt(t[3],16)}, ${g})`}return`rgba(255, 165, 0, ${g})`}function oi(A){const g=getComputedStyle(A),I=A=>g.getPropertyValue(A).trim()||void 0;return{primary:I(PC.primary),secondary:I(PC.secondary),accent:I(PC.accent),background:I(PC.background),foreground:I(PC.foreground),muted:I(PC.muted)}}function si(A,g){const I=oi(g),t={...A.palette};for(const[A,g]of Object.entries(I))void 0!==g&&(t[A]=g);return{...A,palette:t}}function Ei(A,g){const I={};let t=!1;for(const e of Object.keys(A))A[e]!==g[e]&&void 0!==A[e]&&(I[e]=A[e],t=!0);return t?I:void 0}class ai extends LC{constructor(A,g){const I=$C(XC(g.theme),g.config);super(A,g.locus,I,g.canvasProvider),this._userOverrides={},this.packedFeatures=[],this.packedReady=!1,this.type="annotation",this.features=g.features,this._name=g.name,g.config&&(this._userOverrides={...g.config})}setFixedHeight(A){this.setConfig({height:A})}setFeatures(A){this.features=A,this.packedReady=!1,this.render()}computeHeight(A){var g,I;if(this.packedReady||(this.packedFeatures=this.features.map(A=>({...A})),bC(this.packedFeatures,this.config.maxRows),this.packedReady=!0),"COLLAPSED"===this.config.displayMode)return null!==(g=this.config.height)&&void 0!==g?g:2*this.config.margin+this.config.expandedRowHeight+10;const{start:t,end:e}=this._locus,C=xC(this.packedFeatures,e);let i=0;for(let A=0;A<C;A++){const g=this.packedFeatures[A];g.end<t||void 0!==g.row&&g.row>i&&(i=g.row)}const B="SQUISHED"===this.config.displayMode?this.config.squishedRowHeight:this.config.expandedRowHeight;return null!==(I=this.config.height)&&void 0!==I?I:2*this.config.margin+(i+1)*B+10}getBackground(){return this.config.background}renderLabelOverlay(A,g,I){var t;this.externalUIEnabled||this._name&&JC(A,{name:this._name,background:this.config.background,labelColor:null!==(t=this.config.labelColor)&&void 0!==t?t:"#333"},I)}doRender(A,g,I,t){var e;const C=this.config.labelBackground?this.config:{...this.config,labelBackground:this.config.background};WC(A,this.packedFeatures,C,t,this._name&&!this.externalUIEnabled?{name:this._name,background:this.config.background,labelColor:null!==(e=C.labelColor)&&void 0!==e?e:"#333"}:void 0,I)}getUIOverlayState(){var A;if(this._name)return{label:{text:this._name,background:this.config.background,color:null!==(A=this.config.labelColor)&&void 0!==A?A:"#333"}}}getContextMenuItems(A,g){return[{label:"Display mode",children:["EXPANDED","SQUISHED","COLLAPSED"].map(A=>({label:A.charAt(0)+A.slice(1).toLowerCase(),type:"checkbox",checked:this._config.displayMode===A,action:()=>this.setConfig({displayMode:A})}))}]}getFeatureRects(){var A;if(0===this.packedFeatures.length)return[];const g=this.viewportWidth;if(0===g)return[];const I=this._config,t="SQUISHED"===I.displayMode?I.squishedRowHeight:I.expandedRowHeight,e="SQUISHED"===I.displayMode?I.featureHeight/2:I.featureHeight,C=this.viewportXToGenomicBp(0),i=this.viewportXToGenomicBp(g),B=[],Q=xC(this.packedFeatures,i);for(let g=0;g<Q;g++){const i=this.packedFeatures[g];if(i.end<C)continue;if(void 0===i.row)continue;const Q=this.genomicBpToViewportX(i.start),o=this.genomicBpToViewportX(i.end),s="COLLAPSED"===I.displayMode?I.margin:I.margin+t*i.row;let E=Q,a=o-Q;a<3&&(E-=(3-a)/2,a=3);const r=null!==(A=i.color)&&void 0!==A?A:I.altColor&&"-"===i.strand?I.altColor:I.color;B.push({feature:i,x:E,y:s,width:a,height:e,color:r})}return B}hitTest(A,g){if(0===this.packedFeatures.length)return[];if(0===this.viewportWidth)return[];const I=this.viewportXToGenomicBp(A),t="SQUISHED"===this._config.displayMode?this._config.squishedRowHeight:this._config.expandedRowHeight,e=Math.floor((g-this._config.margin)/t);if(e<0)return[];const C=[],i=xC(this.packedFeatures,I);for(let A=0;A<i;A++){const g=this.packedFeatures[A];g.end<I||("COLLAPSED"!==this._config.displayMode&&g.row!==e||C.push({feature:g,popupData:ri(g)}))}return C}setConfig(A){Object.assign(this._userOverrides,A),super.setConfig(A)}setTheme(A){this._config=$C(A,this._userOverrides),this.render()}serializeConfig(A){const g=$C(A);return{type:"annotation",config:Ei(this.config,g)}}}function ri(A){const g=[];return A.name&&g.push({name:"Name",value:A.name}),A.id&&g.push({name:"ID",value:A.id}),A.chr&&g.push({name:"Chr",value:A.chr}),g.push({name:"Start",value:A.start.toLocaleString()}),g.push({name:"End",value:A.end.toLocaleString()}),A.strand&&g.push({name:"Strand",value:A.strand}),null!=A.cdStart&&null!=A.cdEnd&&A.cdStart!==A.cdEnd&&g.push({name:"CDS",value:`${A.cdStart.toLocaleString()}-${A.cdEnd.toLocaleString()}`}),A.exons&&g.push({name:"Exons",value:A.exons.length}),g}function ni(A){return Math.floor(A).toLocaleString("en-US")}function hi(A,g,I){const t=g.height,e=function(A){if(A<10)return{majorTick:1,majorUnit:"bp",unitMultiplier:1};const g=Math.floor(Math.log10(A));let I="bp",t=1;return g>9?(I="gb",t=1e9):g>6?(I="mb",t=1e6):g>3&&(I="kb",t=1e3),{majorTick:A/Math.pow(10,g-1)<75?Math.pow(10,g-1):Math.pow(10,g)/2,majorUnit:I,unitMultiplier:t}}(Math.floor(I.pixelWidth*I.bpPerPixel));let C=Math.floor(I.bpStart/e.majorTick)-1;const i=A=>Math.floor(A*e.majorTick),B=A=>Math.round((A-1-I.bpStart+.5)/I.bpPerPixel),Q=B(i(1+C))-B(i(C)),o=`${ni(i(C)/e.unitMultiplier)} ${e.majorUnit}`,s=Math.floor(A.measureText(o).width),E=.25*s;A.font=g.font,A.fillStyle=g.labelColor,A.strokeStyle=g.tickColor,A.lineWidth=1;let a,r=Q;do{const o=i(C),n=`${ni(o/e.unitMultiplier)} ${e.majorUnit}`;a=B(o);const h=A.measureText(n).width,c=Math.round(a-h/2);c>0&&E+s<=r&&(A.fillStyle=g.labelColor,A.fillText(n,c,t-8),r=0),a>0&&(A.beginPath(),A.moveTo(a,t-6),A.lineTo(a,t-2),A.stroke());const l=a+(B(i(1+C))-a)/2;l>0&&l<I.pixelWidth&&(A.beginPath(),A.moveTo(l,t-6),A.lineTo(l,t-2),A.stroke()),++C,r+=Q}while(a<I.pixelWidth);A.strokeStyle=g.baselineColor,A.beginPath(),A.moveTo(0,t-2),A.lineTo(I.pixelWidth,t-2),A.stroke()}function ci(A,g,I,t){var e;const C=g.height,{cumulativeOffsets:i,chromSizes:B}=t;A.fillStyle=null!==(e=g.background)&&void 0!==e?e:"white",A.fillRect(0,0,I.pixelWidth,C),A.textAlign="center",A.textBaseline="middle",A.font=g.font;for(const g of i.chromosomeNames){const t=i.offsets[g],e=B[g];if(void 0===t||void 0===e)continue;const Q=Math.round((t-I.bpStart)/I.bpPerPixel),o=Math.round(e/I.bpPerPixel);A.strokeStyle="#bfbfbf",A.lineWidth=1,A.beginPath(),A.moveTo(Q+o,0),A.lineTo(Q+o,C),A.stroke();const s=g.startsWith("chr")?g.substring(3):g;o>A.measureText(s).width&&(A.fillStyle="#444444",A.fillText(s,Q+o/2,C/2))}}class li extends LC{constructor(A,g={}){const I=gi(XC(g.theme),g.config);super(A,g.locus,I,g.canvasProvider),this.type="ruler",this._cumulativeOffsets=g.cumulativeOffsets,this._chromSizes=g.chromSizes}setCumulativeOffsets(A){this._cumulativeOffsets=A}setChromSizes(A){this._chromSizes=A}computeHeight(A){return this.config.height}getBackground(){return this.config.background}doRender(A,g,I,t){og(this._locus)&&this._cumulativeOffsets&&this._chromSizes?ci(A,this.config,t,{cumulativeOffsets:this._cumulativeOffsets,chromSizes:this._chromSizes}):hi(A,this.config,t)}setTheme(A){this._config=gi(A),this.render()}serializeConfig(A){const g=gi(A);return{type:"ruler",config:Ei(this.config,g)}}}function di(A){return Number.isInteger(A)?A.toString():Math.abs(A)>=10?A.toFixed():Math.abs(A)>=1?A.toFixed(1):Math.abs(A)>=.1?A.toFixed(2):A.toExponential(1)}function Di(A){return A<0?-Math.log10(Math.abs(A)+1):Math.log10(Math.abs(A)+1)}function ui(A,g,I,t){var e,C,i,B;if(0===t)return;const Q=null!==(e=g.backgroundColor)&&void 0!==e?e:"white",o=null!==(C=g.labelColor)&&void 0!==C?C:"black";A.fillStyle=Q,A.fillRect(0,0,I,t),g.color&&(A.fillStyle=g.color,A.fillRect(I-4-1,0,4,t));const s=.01*t,E=.99*t,a=I-4-3,r=a-6;if(A.strokeStyle=o,A.fillStyle=o,A.font="normal 9px Arial",A.textAlign="right",A.lineWidth=1,A.beginPath(),A.moveTo(a,s),A.lineTo(a,E),A.stroke(),A.beginPath(),A.moveTo(r,s),A.lineTo(a,s),A.stroke(),A.beginPath(),A.moveTo(r,E),A.lineTo(a,E),A.stroke(),!g.dataRange)return;const{min:n,max:h}=g.dataRange,c=null!==(i=g.flipAxis)&&void 0!==i&&i,l=null!==(B=g.logScale)&&void 0!==B&&B,d=c?n:h,D=c?h:n;if(A.textBaseline="top",A.fillText(di(d),r-2,s+1),A.textBaseline="bottom",A.fillText(di(D),r-2,E-1),t>60){const g=l?(()=>{const A=(Di(n)+Di(h))/2;return A>=0?Math.pow(10,A)-1:-(Math.pow(10,-A)-1)})():(n+h)/2,I=function(A,g,I,t,e,C,i){const B=i?Di(g):g,Q=i?Di(I):I,o=i?Di(A):A,s=Q-B;if(0===s)return(t+e)/2;const E=(o-B)/s;return C?t+E*(e-t):e-E*(e-t)}(g,n,h,s,E,c,l);A.beginPath(),A.moveTo(r+3,I),A.lineTo(a,I),A.stroke(),A.textBaseline="middle",A.fillText(di(g),r+1,I)}}const wi={A:"#00C000",C:"#0000FF",G:"#FFB300",T:"#FF0000",N:"#808080"},yi={A:{main:"M 0 100 L 33 0 L 66 0 L 100 100 L 75 100 L 66 75 L 33 75 L 25 100 L 0 100",overlay:"M 41 55 L 50 25 L 58 55 L 41 55"},C:{main:"M 100 28 C 100 -13 0 -13 0 50 C 0 113 100 113 100 72 L 75 72 C 75 90 30 90 30 50 C 30 10 75 10 75 28 L 100 28"},G:{main:"M 100 28 C 100 -13 0 -13 0 50 C 0 113 100 113 100 72 L 100 48 L 55 48 L 55 72 L 75 72 C 75 90 30 90 30 50 C 30 10 75 5 75 28 L 100 28"},T:{main:"M 0 0 L 0 20 L 35 20 L 35 100 L 65 100 L 65 20 L 100 20 L 100 0 L 0 0"},N:{main:"M 0 100 L 0 0 L 20 0 L 80 75 L 80 0 L 100 0 L 100 100 L 80 100 L 20 25 L 20 100 L 0 100"}};function fi(A,g,I,t,e,C){const i=e/100,B=C/100;A.beginPath();const Q=g.match(/[MLC][^MLC]*/g);if(Q){for(const g of Q){const e=g[0],C=g.slice(1).trim().split(/[\s,]+/).map(Number);"M"===e?A.moveTo(I+C[0]*i,t+C[1]*B):"L"===e?A.lineTo(I+C[0]*i,t+C[1]*B):"C"===e&&C.length>=6&&A.bezierCurveTo(I+C[0]*i,t+C[1]*B,I+C[2]*i,t+C[3]*B,I+C[4]*i,t+C[5]*B)}A.closePath(),A.fill()}}function Si(A,g,I,t,e,C,i,B=!1,Q="#ffffff"){var o;const s=null!==(o=yi[g])&&void 0!==o?o:yi.N;A.save(),A.fillStyle=i,B&&(A.translate(I+e/2,t+C/2),A.scale(1,-1),A.translate(-(I+e/2),-(t+C/2))),fi(A,s.main,I,t,e,C),s.overlay&&(A.fillStyle=Q,fi(A,s.overlay,I,t,e,C)),A.restore()}function ki(A,g,I,t,e,C,i,B=wi,Q="#ffffff"){var o;const s=Math.min(e,C),E=Math.max(1,Math.abs(e-C)),a=t/g.length,r=i<0;for(let t=0;t<g.length;t++){const e=I+t*a,C=g[t].toUpperCase();Si(A,C,e,s,a,E,null!==(o=B[C])&&void 0!==o?o:B.N,r,Q)}}function Gi(A,g){const I=function(A){const g=A.match(/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);if(g)return[Number(g[1]),Number(g[2]),Number(g[3])];const I=A.match(/^#([0-9a-f]{3,8})$/i);if(I){const A=I[1];if(3===A.length||4===A.length)return[parseInt(A[0]+A[0],16),parseInt(A[1]+A[1],16),parseInt(A[2]+A[2],16)];if(A.length>=6)return[parseInt(A.slice(0,2),16),parseInt(A.slice(2,4),16),parseInt(A.slice(4,6),16)]}}(A);return I?`rgba(${I[0]},${I[1]},${I[2]},${g})`:A}function Fi(A,g,I){return I?A<0&&I.neg?I.neg:I.pos:function(A,g){const I=function(A,g){return"function"==typeof A?A(g):A}(A<0&&g.altColor?g.altColor:g.color,A);return null!=g.alpha?Gi(I,g.alpha):I}(A,g)}function Ni(A,g,I,t){const e=I.height-1,C=function(A,g,I,t){const e=t?A<0?-Math.log10(Math.abs(A)+1):Math.log10(Math.abs(A)+1):A;return I/((t?Math.log10(Math.abs(g)+1):g)-e)}(I.dataRange.min,I.dataRange.max,e,I.logScale),i=A=>function(A,g,I,t,e){if(e){let e=g.min,C=g.max;e=e<0?-Math.log10(Math.abs(e)+1):Math.log10(Math.abs(e)+1),C=C<0?-Math.log10(Math.abs(C)+1):Math.log10(Math.abs(C)+1);const i=A<0?-Math.log10(Math.abs(A)+1):Math.log10(A+1);return(t?i-e:C-i)*I}return(t?A-g.min:g.max-A)*I}(A,I.dataRange,C,I.flipAxis,I.logScale);if(g&&g.length>0&&I.dataRange.max>I.dataRange.min){const C=t.bpStart+t.pixelWidth*t.bpPerPixel+1,B=i(0),Q=function(A){if("string"!=typeof A.color)return;if(void 0!==A.altColor&&"string"!=typeof A.altColor)return;return{pos:null!=A.alpha?Gi(A.color,A.alpha):A.color,neg:void 0!==A.altColor?null!=A.alpha?Gi(A.altColor,A.alpha):A.altColor:void 0}}(I);switch(I.graphType){case"bar":!function(A,g,I,t,e,C,i,B,Q){const o=YC(g,t.bpStart);let s="",E=!1;const a=()=>{E&&(A.fill(),E=!1)},r=(g,I,t,e,C)=>{C!==s&&(a(),s=C,A.fillStyle=C,A.beginPath(),E=!0),A.rect(g,I,t,e)};let n=null;for(let A=o;A<g.length;A++){const o=g[A];if(o.start>B)break;const s=(o.start-t.bpStart)/t.bpPerPixel;if(Number.isNaN(s))continue;const E=C(o.value),a=(o.end-t.bpStart)/t.bpPerPixel,h=Math.max(1,a-s);r(s,i,h,Math.min(e,E-i),Fi(o.value,I,Q)),o.value>I.dataRange.max?(n||(n=[]),n.push([s,0,h,3])):o.value<I.dataRange.min&&(n||(n=[]),n.push([s,e-2,h,3]))}if(a(),n){A.fillStyle=I.overflowColor,A.beginPath();for(const[g,I,t,e]of n)A.rect(g,I,t,e);A.fill()}}(A,g,I,t,e,i,B,C,Q);break;case"line":!function(A,g,I,t,e,C,i){let B;const Q=YC(g,t.bpStart);let o="",s=!1;A.lineWidth=1.5;const E=()=>{s&&(A.stroke(),s=!1)};for(let a=Q;a<g.length;a++){const Q=g[a];if(Q.start>C)break;const r=(Q.start-t.bpStart)/t.bpPerPixel;if(Number.isNaN(r))continue;const n=e(Q.value),h=(Q.end-t.bpStart)/t.bpPerPixel-r,c=Fi(Q.value,I,i);c!==o&&(E(),o=c,A.strokeStyle=c,A.beginPath(),s=!0,B=void 0),void 0!==B?A.lineTo(r,n):A.moveTo(r,n),A.lineTo(r+h,n),B=n}E()}(A,g,I,t,i,C,Q);break;case"points":!function(A,g,I,t,e,C,i,B){const Q=I.pointSize/2,o=YC(g,t.bpStart);let s="",E=!1,a=null,r=null;const n=()=>{E&&(A.fill(),E=!1)};for(let e=o;e<g.length;e++){const o=g[e];if(o.start>i)break;const h=(o.start-t.bpStart)/t.bpPerPixel;if(Number.isNaN(h))continue;const c=C(o.value),l=h+((o.end-t.bpStart)/t.bpPerPixel-h)/2,d=Fi(o.value,I,B);d!==s&&(n(),s=d,A.fillStyle=d,A.beginPath(),E=!0),A.moveTo(l+Q,c),A.arc(l,c,Q,0,2*Math.PI),o.value>I.dataRange.max?(a||(a=[]),a.push(l)):o.value<I.dataRange.min&&(r||(r=[]),r.push(l))}if(n(),a){A.fillStyle=I.overflowColor,A.beginPath();for(const g of a)A.moveTo(g+Q,Q),A.arc(g,Q,Q,0,2*Math.PI);A.fill()}if(r){A.fillStyle=I.overflowColor,A.beginPath();for(const g of r)A.moveTo(g+Q,e-Q),A.arc(g,e-Q,Q,0,2*Math.PI);A.fill()}}(A,g,I,t,e,i,C,Q);break;case"dynseq":!function(A,g,I,t,e,C,i,B,Q){var o;const s=null!==(o=I.nucleotideColors)&&void 0!==o?o:wi;for(let o=YC(g,t.bpStart);o<g.length;o++){const E=g[o];if(E.start>B)break;const a=(E.start-t.bpStart)/t.bpPerPixel;if(Number.isNaN(a))continue;const r=C(E.value),n=(E.end-t.bpStart)/t.bpPerPixel,h=Math.max(1,n-a);if(E.sequence&&t.bpPerPixel<2)ki(A,E.sequence,a,h,r,i,E.value,s,I.background);else{const g=Math.min(e,r-i);A.fillStyle=Fi(E.value,I,Q),A.fillRect(a,i,h,g)}E.value>I.dataRange.max?(A.fillStyle=I.overflowColor,A.fillRect(a,0,h,3)):E.value<I.dataRange.min&&(A.fillStyle=I.overflowColor,A.fillRect(a,e-2,h,3))}}(A,g,I,t,e,i,B,C,Q)}!function(A,g,I,t){if(g.dataRange.min>=0)return;let{min:e,max:C}=g.dataRange;g.logScale&&(e=e<0?-Math.log10(Math.abs(e)+1):Math.log10(Math.abs(e)+1),C=C<0?-Math.log10(Math.abs(C)+1):Math.log10(Math.abs(C)+1));const i=C/(C-e),B=g.flipAxis?(1-i)*t:i*t;A.strokeStyle=g.baselineColor,A.lineWidth=1,A.beginPath(),A.moveTo(0,B),A.lineTo(I,B),A.stroke()}(A,I,t.pixelWidth,e),function(A,g,I){var t,e;if(!g.showDataRange)return;const{min:C,max:i}=g.dataRange,B=di(g.flipAxis?C:i),Q=di(g.flipAxis?i:C);A.font=g.labelFont,A.textBaseline="top",A.textAlign="left";const o=A.measureText(B),s=o.width+6,E=(null!==(t=o.actualBoundingBoxDescent)&&void 0!==t?t:10)+4;A.fillStyle=g.background,A.globalAlpha=.7,A.fillRect(4,4,s,E),A.globalAlpha=1,A.fillStyle=g.labelColor,A.fillText(B,7,6),A.textBaseline="bottom";const a=A.measureText(Q),r=a.width+6,n=(null!==(e=a.actualBoundingBoxAscent)&&void 0!==e?e:10)+4,h=I-4;A.fillStyle=g.background,A.globalAlpha=.7,A.fillRect(4,h-n,r,n),A.globalAlpha=1,A.fillStyle=g.labelColor,A.fillText(Q,7,h-2)}(A,I,e)}!function(A,g,I){var t;if(!g.trackName)return;let e=0;if(g.showDataRange){const I=2;A.save(),A.font=g.labelFont,A.textBaseline="top";const C=di(g.flipAxis?g.dataRange.min:g.dataRange.max),i=(null!==(t=A.measureText(C).actualBoundingBoxDescent)&&void 0!==t?t:10)+2*I;A.restore(),e=i+2}JC(A,{name:g.trackName,background:g.background,labelColor:g.labelColor,topOffset:e},I)}(A,I,e),function(A,g,I,t){if(g.guideLines){for(const e of g.guideLines){const g=t(e.y);A.strokeStyle=e.color,A.lineWidth=2,e.dotted?A.setLineDash([5,5]):A.setLineDash([]),A.beginPath(),A.moveTo(0,g),A.lineTo(I,g),A.stroke()}A.setLineDash([])}}(A,I,t.pixelWidth,i)}class mi extends LC{constructor(A,g){const I=Ai(XC(g.theme),g.config);super(A,g.locus,I,g.canvasProvider),this._lastDataRange=null,this._seqAbort=null,this._userOverrides={},this._coordinatedDataRange=null,this.type="wig",this.features=g.features,this._name=g.name,this._sequenceProvider=g.sequenceProvider,g.config&&(this._userOverrides={...g.config})}set onWindowFunctionChange(A){this._onWindowFunctionChange=A}setFeatures(A){this.features=A,"dynseq"===this._config.graphType?this.augmentWithSequence():this.render()}setLocus(A){this._locus=A,"dynseq"===this._config.graphType?this.augmentWithSequence():this.render()}setCoordinatedDataRange(A){this._coordinatedDataRange=A}setConfig(A){Object.assign(this._userOverrides,A);const g="dynseq"===this._config.graphType;super.setConfig(A),g||"dynseq"!==this._config.graphType||this.augmentWithSequence()}augmentWithSequence(){if(!this._sequenceProvider||0===this.features.length)return void this.render();const A=this.viewportWidth;if(0===A)return void this.render();if((this._locus.end-this._locus.start)/A>=2)return void this.render();this._seqAbort&&this._seqAbort.abort();const g=new AbortController;this._seqAbort=g;const I={chr:this._locus.chr,start:Math.floor(this._locus.start),end:Math.ceil(this._locus.end)};this._sequenceProvider(I,g.signal).then(A=>{g.signal.aborted||(this._seqAbort=null,this.features=this.features.map(g=>{const t=Math.max(0,Math.floor(g.start)-I.start),e=Math.min(A.length,Math.floor(g.end)-I.start);return t>=e||t>=A.length?g:{...g,sequence:A.slice(t,e)}}),this.render())}).catch(()=>{g.signal.aborted||(this._seqAbort=null,this.render())}),this.render()}computeHeight(A){return this.config.height}getBackground(){return this.config.background}renderLabelOverlay(A,g,I){this.externalUIEnabled||this._name&&JC(A,{name:this._name,background:this.config.background,labelColor:this.config.labelColor},I)}doRender(A,g,I,t){const e=null!=this.config.normalizationFactor&&1!==this.config.normalizationFactor||null!=this.config.scaleFactor&&1!==this.config.scaleFactor?this.features.map(A=>{var g,I;return{...A,value:A.value*(null!==(g=this.config.normalizationFactor)&&void 0!==g?g:1)*(null!==(I=this.config.scaleFactor)&&void 0!==I?I:1)}}):this.features,C={...this.config,height:I,trackName:this.externalUIEnabled?void 0:this._name};if(this._coordinatedDataRange)C.dataRange=this._coordinatedDataRange,this._config={...this._config,dataRange:this._coordinatedDataRange},this._lastDataRange=this._coordinatedDataRange;else if(this.config.autoscale){const A=e.filter(A=>A.end>=this._locus.start&&A.start<=this._locus.end);if(A.length>0){const g=Bg(A);C.dataRange=g,this._config={...this._config,dataRange:g},this._lastDataRange=g}else this._lastDataRange=null}else this._lastDataRange=C.dataRange;Ni(A,e,C,t)}getUIOverlayState(){if(this._name)return{label:{text:this._name,background:this.config.background,color:this.config.labelColor}}}getAxisInfo(){var A;if(this._name||this._lastDataRange)return{dataRange:null!==(A=this._lastDataRange)&&void 0!==A?A:void 0,color:"string"==typeof this.config.color?this.config.color:void 0,label:this._name,flipAxis:this.config.flipAxis||void 0,logScale:this.config.logScale||void 0}}getContextMenuItems(A,g){const I=this._sequenceProvider?["bar","line","points","dynseq"]:["bar","line","points"];return[{label:"Flip y-axis",type:"checkbox",checked:this._config.flipAxis,action:()=>this.setConfig({flipAxis:!this._config.flipAxis})},{label:"Graph type",children:I.map(A=>({label:A.charAt(0).toUpperCase()+A.slice(1),type:"checkbox",checked:this._config.graphType===A,action:()=>this.setConfig({graphType:A})}))},{label:"Windowing function",children:["mean","min","max"].map(A=>({label:A.charAt(0).toUpperCase()+A.slice(1),type:"checkbox",checked:this._config.windowFunction===A,action:()=>{this.setConfig({windowFunction:A}),this._onWindowFunctionChange&&this._onWindowFunctionChange(A)}}))}]}getNumericState(){return{autoscale:this._config.autoscale,logScale:this._config.logScale,dataRange:this._config.dataRange,setAutoscale:A=>this.setConfig({autoscale:A}),setLogScale:A=>this.setConfig({logScale:A}),setDataRange:(A,g)=>this.setConfig({dataRange:{min:A,max:g},autoscale:!1})}}hitTest(A,g){if(0===this.features.length)return[];if(0===this.viewportWidth)return[];const I=this.viewportXToGenomicBp(A);for(let A=YC(this.features,I);A<this.features.length;A++){const g=this.features[A];if(g.start>I)break;if(I<g.end)return[{feature:g,popupData:pi(g)}]}return[]}setTheme(A){const g=this._config.dataRange;this._config={...Ai(A),...this._userOverrides,dataRange:g},this.render()}serializeConfig(A){const g=Ai(A),I=this.config;return{type:"wig",config:Ei({...I,color:"string"==typeof I.color?I.color:g.color,altColor:"string"==typeof I.altColor?I.altColor:g.altColor,dataRange:I.autoscale?g.dataRange:I.dataRange,nucleotideColors:g.nucleotideColors},g)}}}function pi(A){const g=[];return A.chr&&g.push({name:"Chr",value:A.chr}),g.push({name:"Start",value:Math.floor(A.start).toLocaleString()}),g.push({name:"End",value:Math.ceil(A.end).toLocaleString()}),g.push({name:"Value",value:Number.isInteger(A.value)?A.value:A.value.toPrecision(6)}),A.description&&g.push({name:"Description",value:A.description}),g}let Ri=0;function Ui(){return"frame-"+ ++Ri}function Mi(A,g,I){return{id:null!=I?I:Ui(),locus:A,bpPerPixel:g>0?(A.end-A.start)/g:0,viewportWidth:g}}function Li(A){A.bpPerPixel=A.viewportWidth>0?(A.locus.end-A.locus.start)/A.viewportWidth:0}function Ji(A,g,I){if(A.locus.chr!==g.chr)return!1;if(A.locus.start>g.start||A.locus.end<g.end)return!1;const t=I/A.bpPerPixel;return t>=.7&&t<=1.3}function Ki(A){if(og(A))return A;const g=A.end-A.start,I=Math.floor(1*g);return{chr:A.chr,start:Math.max(0,Math.floor(A.start-I)),end:Math.ceil(A.end+I)}}class bi{constructor(A={}){var g;this.nodes=[],this.accessCounter=0,this._maxEntries=null!==(g=A.maxEntries)&&void 0!==g?g:5,this.onEviction=A.onEviction}get maxEntries(){return this._maxEntries}resize(A){for(this._maxEntries=Math.max(1,A);this.nodes.length>this._maxEntries;)this.evictOne()}get totalFeatureCount(){let A=0;for(const g of this.nodes)A+=g.entry.features.length;return A}get size(){return this.nodes.length}find(A,g){for(const I of this.nodes)if(Ji(I.entry,A,g))return I.accessTime=++this.accessCounter,I.entry}put(A){for(let g=0;g<this.nodes.length;g++){const I=this.nodes[g].entry;if(I.locus.chr===A.locus.chr&&I.locus.start===A.locus.start&&I.locus.end===A.locus.end&&I.bpPerPixel===A.bpPerPixel)return void(this.nodes[g]={entry:A,accessTime:++this.accessCounter})}this.nodes.length>=this.maxEntries&&this.evictOne(),this.nodes.push({entry:A,accessTime:++this.accessCounter})}evictOne(){var A;if(0===this.nodes.length)return 0;let g=0;for(let A=1;A<this.nodes.length;A++)this.nodes[A].accessTime<this.nodes[g].accessTime&&(g=A);const I=this.nodes[g].entry,t=I.features.length;return this.nodes.splice(g,1),null===(A=this.onEviction)||void 0===A||A.call(this,I),t}getMostRecent(){if(0===this.nodes.length)return;let A=0;for(let g=1;g<this.nodes.length;g++)this.nodes[g].accessTime>this.nodes[A].accessTime&&(A=g);return this.nodes[A].entry}clear(){this.nodes.length=0}hasData(){return this.nodes.length>0}getLRUAccessTime(){if(0===this.nodes.length)return 1/0;let A=this.nodes[0].accessTime;for(let g=1;g<this.nodes.length;g++)this.nodes[g].accessTime<A&&(A=this.nodes[g].accessTime);return A}}function vi(A,g,I,t){var e;const{totalHeight:C,headerHeight:i=4,font:B="9px sans-serif",labelColor:Q="rgba(0,0,0,0.7)"}=t;for(const t of g){const g=Math.round((t.start-I.bpStart)/I.bpPerPixel),o=Math.max(3,Math.round((t.end-t.start)/I.bpPerPixel));if(g+o<0||g>I.pixelWidth)continue;const s=null!==(e=t.color)&&void 0!==e?e:"rgba(68, 134, 247, 0.15)";if(A.fillStyle=s,A.fillRect(g,0,o,C),A.strokeStyle=s.replace(/[\d.]+\)$/,A=>`${Math.min(1,3*parseFloat(A))})`),A.lineWidth=1,A.beginPath(),A.moveTo(g+.5,0),A.lineTo(g+.5,C),A.moveTo(g+o-.5,0),A.lineTo(g+o-.5,C),A.stroke(),i>0&&(A.fillStyle=s.replace(/[\d.]+\)$/,A=>`${Math.min(1,4*parseFloat(A))})`),A.fillRect(g,0,o,i)),t.name&&o>20){A.font=B,A.fillStyle=Q,A.textBaseline="top",A.textAlign="left";const I=g+3,e=i+1;A.fillText(t.name,I,e,o-6)}}}function Yi(A,g){let I=A;for(const A of Object.keys(g))I=I.replace(new RegExp("\\{"+A+"\\}","gi"),String(g[A]));return I}function xi(A){const g="ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";let I;do{I="";for(let A=0;A<12;A++)I+=g[Math.floor(51*Math.random())]}while(A[I]);return I}function Hi(A){const g={left:"start",right:"end",center:"middle",start:"start",end:"end"};return g[A]||g.start}function qi(A){const g={alphabetic:"alphabetic",hanging:"hanging",top:"text-before-edge",bottom:"text-after-edge",middle:"central"};return g[A]||g.alphabetic}function _i(A){const g=Math.sqrt(A[0]*A[0]+A[1]*A[1]);return[A[0]/g,A[1]/g]}const Ti=function(A,g=10){const I={},t=A.split(",");for(let A=0;A<t.length;A+=2){const e="&"+t[A+1]+";",C=parseInt(t[A],g);I[e]="&#"+C+";"}return I["\\xa0"]="&#160;",I}("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32),Wi={strokeStyle:{svgAttr:"stroke",canvas:"#000000",svg:"none",apply:"stroke"},fillStyle:{svgAttr:"fill",canvas:"#000000",svg:null,apply:"fill"},lineCap:{svgAttr:"stroke-linecap",canvas:"butt",svg:"butt",apply:"stroke"},lineJoin:{svgAttr:"stroke-linejoin",canvas:"miter",svg:"miter",apply:"stroke"},miterLimit:{svgAttr:"stroke-miterlimit",canvas:10,svg:4,apply:"stroke"},lineWidth:{svgAttr:"stroke-width",canvas:1,svg:1,apply:"stroke"},globalAlpha:{svgAttr:"opacity",canvas:1,svg:1,apply:"fill stroke"},font:{canvas:"10px sans-serif"},shadowColor:{canvas:"#000000"},shadowOffsetX:{canvas:0},shadowOffsetY:{canvas:0},shadowBlur:{canvas:0},textAlign:{canvas:"start"},textBaseline:{canvas:"alphabetic"},lineDash:{svgAttr:"stroke-dasharray",canvas:null,svg:null,apply:"stroke"}};class Pi{constructor(A,g){this.__root=A,this.__ctx=g}addColorStop(A,g){const I=this.__ctx.__createElement("stop");if(I.setAttribute("offset",String(A)),g&&-1!==g.indexOf("rgba")){const A=/rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d?\.?\d*)\s*\)/gi.exec(g);A&&(I.setAttribute("stop-color",Yi("rgb({r},{g},{b})",{r:A[1],g:A[2],b:A[3]})),I.setAttribute("stop-opacity",A[4]))}else I.setAttribute("stop-color",g);this.__root.appendChild(I)}}class Oi{constructor(A,g){this.__root=A,this.__ctx=g}}class Vi{constructor(A={}){var g,I,t;if(this.isSVG=!0,this.__currentElementsToStyle=null,this.__ids={},this.__stack=[],this.__groupStack=[],this.__currentDefaultPath="",this.__currentPosition={x:0,y:0},this.strokeStyle="#000000",this.fillStyle="#000000",this.lineCap="butt",this.lineJoin="miter",this.miterLimit=10,this.lineWidth=1,this.globalAlpha=1,this.font="10px sans-serif",this.shadowColor="#000000",this.shadowOffsetX=0,this.shadowOffsetY=0,this.shadowBlur=0,this.textAlign="start",this.textBaseline="alphabetic",this.lineDash=null,this.globalCompositeOperation="source-over",this.config=A,this.width=null!==(g=A.width)&&void 0!==g?g:500,this.height=null!==(I=A.height)&&void 0!==I?I:500,this.enableMirroring=null!==(t=A.enableMirroring)&&void 0!==t&&t,this.canvas=this,this.__document=document,A.ctx?(this.__ctx=A.ctx,this.__canvas=A.ctx.canvas):(this.__canvas=this.__document.createElement("canvas"),this.__ctx=this.__canvas.getContext("2d")),this.__setDefaultStyles(),this.__stack=[this.__getStyleState()],this.__groupStack=[],this.__root=this.__createElement("svg"),this.__root.setAttribute("width",String(this.width)),this.__root.setAttribute("height",String(this.height)),this.__root.setAttribute("overflow","visible"),A.viewbox){const g=A.viewbox;this.__root.setAttribute("viewBox",`${g.x} ${g.y} ${g.width} ${g.height}`),this.viewbox=A.viewbox}this.__ids={},this.__defs=this.__createElement("defs"),this.__root.appendChild(this.__defs);const e=this.__createElement("rect",{id:"svg_output_backdrop",width:"100%",height:"100%",fill:A.backdropColor||"white"});this.__root.appendChild(e),this.__rootGroup=this.__createElement("g",{id:"root-group"}),this.__root.appendChild(this.__rootGroup),this.__currentElement=this.__rootGroup}setWidth(A){this.width=A,this.__root.setAttribute("width",String(A)),this.config.viewbox&&this.__root.setAttribute("viewBox",`${this.config.viewbox.x} ${this.config.viewbox.y} ${A} ${this.config.viewbox.height}`)}setHeight(A){this.height=A,this.__root.setAttribute("height",String(A)),this.config.viewbox&&this.__root.setAttribute("viewBox",`${this.config.viewbox.x} ${this.config.viewbox.y} ${this.config.viewbox.width} ${A}`)}__createElement(A,g,I){const t=this.__document.createElementNS("http://www.w3.org/2000/svg",A);if(I&&(t.setAttribute("fill","none"),t.setAttribute("stroke","none")),g)for(const A of Object.keys(g))t.setAttribute(A,String(g[A]));return t}__setDefaultStyles(){for(const A of Object.keys(Wi))this[A]=Wi[A].canvas}__applyStyleState(A){for(const g of Object.keys(A))this[g]=A[g]}__getStyleState(){const A={};for(const g of Object.keys(Wi))A[g]=this[g];return A}__applyStyleToCurrentElement(A){let g=this.__currentElement;const I=this.__currentElementsToStyle;I&&(g.setAttribute(A,""),g=I.element,I.children.forEach(g=>g.setAttribute(A,"")));for(const I of Object.keys(Wi)){const t=Wi[I],e=this[I];if(t.apply)if(e instanceof Oi){if(e.__ctx)for(;e.__ctx.__defs.childNodes.length;){const A=e.__ctx.__defs.childNodes[0],g=A.getAttribute("id");this.__ids[g]=g,this.__defs.appendChild(A)}g.setAttribute(t.apply,Yi("url(#{id})",{id:e.__root.getAttribute("id")}))}else if(e instanceof Pi)g.setAttribute(t.apply,Yi("url(#{id})",{id:e.__root.getAttribute("id")}));else if(-1!==t.apply.indexOf(A)&&t.svg!==e)if("stroke"!==t.svgAttr&&"fill"!==t.svgAttr||"string"!=typeof e||-1===e.indexOf("rgba")){let C=t.svgAttr;if("globalAlpha"===I&&(C=A+"-"+t.svgAttr,g.getAttribute(C)))continue;g.setAttribute(C,String(e))}else{const A=/rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d?\.?\d*)\s*\)/gi.exec(e);if(A){g.setAttribute(t.svgAttr,Yi("rgb({r},{g},{b})",{r:A[1],g:A[2],b:A[3]}));let I=parseFloat(A[4]);null!=this.globalAlpha&&(I*=this.globalAlpha),g.setAttribute(t.svgAttr+"-opacity",String(I))}}}}__closestGroupOrSvg(A){const g=A||this.__currentElement;return"g"===g.nodeName||"svg"===g.nodeName?g:this.__closestGroupOrSvg(g.parentNode)}getSerializedSvg(A){let g=(new XMLSerializer).serializeToString(this.__root);if(A)for(const A of Object.keys(Ti)){const I=new RegExp(A,"gi");I.test(g)&&(g=g.replace(I,Ti[A]))}return g}getSvg(){return this.__root}saveWithTranslationAndClipRect(A,g,I,t,e,C){const i=`${A}_clip_rect`,B=this.__createElement("clipPath",{id:i});this.__defs.appendChild(B),B.appendChild(this.__createElement("rect",{x:"0",y:String(C),width:String(t),height:String(e)}));const Q=this.__createElement("g");Q.setAttribute("transform",Yi("translate({x},{y})",{x:g,y:I})),Q.setAttribute("clip-path",Yi("url(#{id})",{id:i}));const o=this.__closestGroupOrSvg();o.appendChild(Q),this.__groupStack.push(o),this.__currentElement=Q,this.__stack.push(this.__getStyleState())}save(){const A=this.__createElement("g"),g=this.__closestGroupOrSvg();this.__groupStack.push(g),g.appendChild(A),this.__currentElement=A,this.__stack.push(this.__getStyleState())}restore(){this.__currentElement=this.__groupStack.pop(),this.__currentElementsToStyle=null,this.__currentElement||(this.__currentElement=this.__root.childNodes[2]);const A=this.__stack.pop();A&&this.__applyStyleState(A)}__addTransform(A){const g=this.__closestGroupOrSvg();if(g.childNodes.length>0){"path"===this.__currentElement.nodeName&&(this.__currentElementsToStyle||(this.__currentElementsToStyle={element:g,children:[]}),this.__currentElementsToStyle.children.push(this.__currentElement),this.__applyCurrentDefaultPath());const A=this.__createElement("g");g.appendChild(A),this.__currentElement=A}let I=this.__currentElement.getAttribute("transform");I?I+=" ":I="",I+=A,this.__currentElement.setAttribute("transform",I)}scale(A,g){void 0===g&&(g=A),this.__addTransform(Yi("scale({x},{y})",{x:A,y:g}))}rotate(A){const g=180*A/Math.PI;this.__addTransform(Yi("rotate({angle},{cx},{cy})",{angle:g,cx:0,cy:0}))}translate(A,g){this.__addTransform(Yi("translate({x},{y})",{x:A,y:g}))}transform(A,g,I,t,e,C){this.__addTransform(Yi("matrix({a},{b},{c},{d},{e},{f})",{a:A,b:g,c:I,d:t,e:e,f:C}))}beginPath(){this.__currentDefaultPath="",this.__currentPosition={x:0,y:0};const A=this.__createElement("path",{},!0);this.__closestGroupOrSvg().appendChild(A),this.__currentElement=A}__applyCurrentDefaultPath(){"path"===this.__currentElement.nodeName&&this.__currentElement.setAttribute("d",this.__currentDefaultPath)}__addPathCommand(A){this.__currentDefaultPath+=" "+A}moveTo(A,g){"path"!==this.__currentElement.nodeName&&this.beginPath(),this.__currentPosition={x:A,y:g},this.__addPathCommand(Yi("M {x} {y}",{x:A,y:g}))}closePath(){this.__currentDefaultPath&&this.__addPathCommand("Z")}lineTo(A,g){this.__currentPosition={x:A,y:g},this.__currentDefaultPath&&this.__currentDefaultPath.indexOf("M")>-1?this.__addPathCommand(Yi("L {x} {y}",{x:A,y:g})):this.__addPathCommand(Yi("M {x} {y}",{x:A,y:g}))}bezierCurveTo(A,g,I,t,e,C){this.__currentPosition={x:e,y:C},this.__addPathCommand(Yi("C {cp1x} {cp1y} {cp2x} {cp2y} {x} {y}",{cp1x:A,cp1y:g,cp2x:I,cp2y:t,x:e,y:C}))}quadraticCurveTo(A,g,I,t){this.__currentPosition={x:I,y:t},this.__addPathCommand(Yi("Q {cpx} {cpy} {x} {y}",{cpx:A,cpy:g,x:I,y:t}))}roundRect(A,g,I,t,e){let C;C=null==e?[0,0,0,0]:"number"==typeof e?[e,e,e,e]:1===e.length?[e[0],e[0],e[0],e[0]]:2===e.length?[e[0],e[1],e[0],e[1]]:3===e.length?[e[0],e[1],e[2],e[1]]:[e[0],e[1],e[2],e[3]];const i=Math.min(Math.abs(I)/2,Math.abs(t)/2);for(let A=0;A<4;A++)C[A]=Math.min(C[A],i);this.moveTo(A+C[0],g),this.lineTo(A+I-C[1],g),C[1]&&this.arcTo(A+I,g,A+I,g+C[1],C[1]),this.lineTo(A+I,g+t-C[2]),C[2]&&this.arcTo(A+I,g+t,A+I-C[2],g+t,C[2]),this.lineTo(A+C[3],g+t),C[3]&&this.arcTo(A,g+t,A,g+t-C[3],C[3]),this.lineTo(A,g+C[0]),C[0]&&this.arcTo(A,g,A+C[0],g,C[0]),this.closePath()}arcTo(A,g,I,t,e){var C,i;const B=null===(C=this.__currentPosition)||void 0===C?void 0:C.x,Q=null===(i=this.__currentPosition)||void 0===i?void 0:i.y;if(void 0===B||void 0===Q)return;if(e<0)throw new Error("IndexSizeError: The radius provided ("+e+") is negative.");if(B===A&&Q===g||A===I&&g===t||0===e)return void this.lineTo(A,g);const o=_i([B-A,Q-g]),s=_i([I-A,t-g]);if(o[0]*s[1]===o[1]*s[0])return void this.lineTo(A,g);const E=o[0]*s[0]+o[1]*s[1],a=Math.acos(Math.abs(E)),r=_i([o[0]+s[0],o[1]+s[1]]),n=e/Math.sin(a/2),h=A+n*r[0],c=g+n*r[1],l=[-o[1],o[0]],d=[s[1],-s[0]],D=A=>A[1]>=0?Math.acos(A[0]):-Math.acos(A[0]),u=D(l),w=D(d);this.lineTo(h+l[0]*e,c+l[1]*e),this.arc(h,c,e,u,w)}stroke(){"path"===this.__currentElement.nodeName&&this.__currentElement.setAttribute("paint-order","fill stroke markers"),this.__applyCurrentDefaultPath(),this.__applyStyleToCurrentElement("stroke")}fill(){"path"===this.__currentElement.nodeName&&this.__currentElement.setAttribute("paint-order","stroke fill markers"),this.__applyCurrentDefaultPath(),this.__applyStyleToCurrentElement("fill")}rect(A,g,I,t){"path"!==this.__currentElement.nodeName&&this.beginPath(),this.moveTo(A,g),this.lineTo(A+I,g),this.lineTo(A+I,g+t),this.lineTo(A,g+t),this.lineTo(A,g),this.closePath()}fillRect(A,g,I,t){t<0&&(g+=t,t=-t),I<0&&(A+=I,I=-I);const e={x:A,y:g,width:I,height:t};if(this.viewbox&&(C=this.viewbox,i=e,!(C.x<i.x+i.width&&C.x+C.width>i.x&&C.y<i.y+i.height&&C.y+C.height>i.y)))return;var C,i;const B=this.__createElement("rect",e,!0);this.__closestGroupOrSvg().appendChild(B),this.__currentElement=B,this.__applyStyleToCurrentElement("fill")}strokeRect(A,g,I,t){const e=this.__createElement("rect",{x:A,y:g,width:I,height:t},!0);this.__closestGroupOrSvg().appendChild(e),this.__currentElement=e,this.__applyStyleToCurrentElement("stroke")}strokeEllipse(A,g,I,t,e,C,i,B){this.__ellipse(A,g,I,t,"stroke")}fillEllipse(A,g,I,t,e,C,i,B){this.__ellipse(A,g,I,t,"fill")}__ellipse(A,g,I,t,e){const C=this.__createElement("ellipse",{cx:A,cy:g,rx:I,ry:t},!0);this.__closestGroupOrSvg().appendChild(C),this.__currentElement=C,this.__applyStyleToCurrentElement(e)}__clearCanvas(){const A=this.__closestGroupOrSvg().getAttribute("transform"),g=this.__root.childNodes[2],I=g.childNodes;for(let A=I.length-1;A>=0;A--)I[A]&&g.removeChild(I[A]);this.__currentElement=g,this.__groupStack=[],A&&this.__addTransform(A)}clearRect(A,g,I,t){if(0===A&&0===g&&I===this.width&&t===this.height)return void this.__clearCanvas();const e=this.__closestGroupOrSvg(),C=this.__createElement("rect",{x:A,y:g,width:I,height:t,fill:"#FFFFFF"},!0);e.appendChild(C)}createLinearGradient(A,g,I,t){const e=this.__createElement("linearGradient",{id:xi(this.__ids),x1:A+"px",x2:I+"px",y1:g+"px",y2:t+"px",gradientUnits:"userSpaceOnUse"});return this.__defs.appendChild(e),new Pi(e,this)}createRadialGradient(A,g,I,t,e,C){const i=this.__createElement("radialGradient",{id:xi(this.__ids),cx:t+"px",cy:e+"px",r:C+"px",fx:A+"px",fy:g+"px",gradientUnits:"userSpaceOnUse"});return this.__defs.appendChild(i),new Pi(i,this)}__parseFont(){const A=/^\s*(?=(?:(?:[-a-z]+\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\1|\2|\3)\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\d]+(?:%|in|[cem]m|ex|p[ctx]))(?:\s*\/\s*(normal|[.\d]+(?:%|in|[cem]m|ex|p[ctx])))?\s*([-,'"\sa-z0-9]+?)\s*$/i.exec(this.font),g={style:(null==A?void 0:A[1])||"normal",size:(null==A?void 0:A[4])||"10px",family:(null==A?void 0:A[6])||"sans-serif",weight:(null==A?void 0:A[3])||"normal",decoration:(null==A?void 0:A[2])||"normal",href:null};return"underline"===this.__fontUnderline&&(g.decoration="underline"),this.__fontHref&&(g.href=this.__fontHref),g}__wrapTextLink(A,g){if(A.href){const I=this.__createElement("a");return I.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",A.href),I.appendChild(g),I}return g}__applyText(A,g,I,t){const e=this.__parseFont(),C=this.__closestGroupOrSvg(),i=this.__createElement("text",{"font-family":e.family,"font-size":e.size,"font-style":e.style,"font-weight":e.weight,"text-decoration":e.decoration,x:g,y:I,"text-anchor":Hi(this.textAlign),"dominant-baseline":qi(this.textBaseline)},!0);i.appendChild(this.__document.createTextNode(A)),this.__currentElement=i,this.__applyStyleToCurrentElement(t),C.appendChild(this.__wrapTextLink(e,i))}fillText(A,g,I){this.__applyText(A,g,I,"fill")}strokeText(A,g,I){this.__applyText(A,g,I,"stroke")}measureText(A){return this.__ctx.font=this.font,this.__ctx.measureText(A)}arc(A,g,I,t,e,C){if(t===e)return;(t%=2*Math.PI)===(e%=2*Math.PI)&&(e=(e+2*Math.PI-.001*(C?-1:1))%(2*Math.PI));const i=A+I*Math.cos(e),B=g+I*Math.sin(e),Q=A+I*Math.cos(t),o=g+I*Math.sin(t),s=C?0:1;let E=e-t;E<0&&(E+=2*Math.PI);const a=C?E>Math.PI?0:1:E>Math.PI?1:0;this.lineTo(Q,o),this.__addPathCommand(Yi("A {rx} {ry} {xAxisRotation} {largeArcFlag} {sweepFlag} {endX} {endY}",{rx:I,ry:I,xAxisRotation:0,largeArcFlag:a,sweepFlag:s,endX:i,endY:B})),this.__currentPosition={x:i,y:B}}clip(){const A=this.__closestGroupOrSvg(),g=this.__createElement("clipPath"),I=xi(this.__ids),t=this.__createElement("g");this.__applyCurrentDefaultPath(),A.removeChild(this.__currentElement),g.setAttribute("id",I),g.appendChild(this.__currentElement),this.__defs.appendChild(g),A.setAttribute("clip-path",Yi("url(#{id})",{id:I})),A.appendChild(t),this.__currentElement=t}drawImage(A,...g){let I,t,e,C,i,B,Q=0,o=0;if(2===g.length)I=g[0],t=g[1],i=A.width,B=A.height,e=i,C=B;else if(4===g.length)I=g[0],t=g[1],e=g[2],C=g[3],i=A.width,B=A.height;else{if(8!==g.length)throw new Error("Invalid number of arguments passed to drawImage: "+(g.length+1));Q=g[0],o=g[1],i=g[2],B=g[3],I=g[4],t=g[5],e=g[6],C=g[7]}const s=this.__closestGroupOrSvg(),E=`translate(${I}, ${t})`;if(A instanceof Vi){const g=A.getSvg().cloneNode(!0);if(g.childNodes&&g.childNodes.length>1){const A=g.childNodes[0];for(;A.childNodes.length;){const g=A.childNodes[0],I=g.getAttribute("id");I&&(this.__ids[I]=I),this.__defs.appendChild(g)}const I=g.childNodes[1];if(I){const A=I.getAttribute("transform");I.setAttribute("transform",A?A+" "+E:E),s.appendChild(I)}}}else{const g=A,I=this.__createElement("image");I.setAttribute("width",String(e)),I.setAttribute("height",String(C)),I.setAttribute("preserveAspectRatio","none");let t=g;if(Q||o||i!==g.width||B!==g.height){const A=this.__document.createElement("canvas");A.width=e,A.height=C;A.getContext("2d").drawImage(g,Q,o,i,B,0,0,e,C),t=A}I.setAttribute("transform",E),"toDataURL"in t?I.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",t.toDataURL()):I.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",t.getAttribute("src")||""),s.appendChild(I)}}createPattern(A,g){const I=this.__createElement("pattern"),t=xi(this.__ids);if(I.setAttribute("id",t),I.setAttribute("width",String(A.width)),I.setAttribute("height",String(A.height)),A instanceof Vi)I.appendChild(A.__root.childNodes[1]),this.__defs.appendChild(I);else{const g=this.__createElement("image");g.setAttribute("width",String(A.width)),g.setAttribute("height",String(A.height)),"toDataURL"in A?g.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",A.toDataURL()):g.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",A.getAttribute("src")||""),I.appendChild(g),this.__defs.appendChild(I)}return new Oi(I,this)}setLineDash(A){A&&A.length>0?this.lineDash=A.join(","):this.lineDash=null}getLineDash(){return this.lineDash?this.lineDash.split(",").map(Number):[]}drawFocusIfNeeded(){}createImageData(){return new ImageData(1,1)}getImageData(){return new ImageData(1,1)}putImageData(){}setTransform(){}}class Zi{constructor(){this.listeners=new Map}on(A,g){let I=this.listeners.get(A);return I||(I=new Set,this.listeners.set(A,I)),I.add(g),()=>{I.delete(g)}}off(A,g){var I;g?null===(I=this.listeners.get(A))||void 0===I||I.delete(g):this.listeners.delete(A)}emit(A,g){const I=this.listeners.get(A);if(I)for(const A of I)A(g)}removeAllListeners(){this.listeners.clear()}}function zi(A){const g=A.chr,I=g.toUpperCase(),t=g.toLowerCase(),e=g.charAt(0).toUpperCase()+g.slice(1);g!==I&&(A._uppercase=I),g!==t&&(A._lowercase=t),g!==e&&(A._cap=e),A._chrprefix_=g.startsWith("chr")?g.substring(3):"chr"+g}function ji(A){const g=A.split("|").filter(A=>A.length>0);return g[g.length-1]}function Xi(A){return A.startsWith("hg")||A.startsWith("GRCh")||"1kg_ref"===A||"b37"===A}function $i(A){return A.startsWith("mm")||A.startsWith("GRCm")||A.startsWith("rheMac")}class AB{constructor(A,g){this.cache=new Map,this.headings=void 0,this.buildAliases(A,null!=g?g:"")}getChromosomeName(A){var g;return null===(g=this.cache.get(A))||void 0===g?void 0:g.chr}getAliasRecord(A){return this.cache.get(A)}async search(A){return this.cache.get(A)}async preload(A){}buildAliases(A,g){const I=[];for(const t of A){if(this.cache.has(t))continue;const A={chr:t};if(I.push(A),t.startsWith("gi|")){const g=ji(t);A["ncbi-gi-versioned"]=g;const I=g.lastIndexOf(".");I>0&&(A["ncbi-gi"]=g.substring(0,I))}else"chrM"===t?A.ncbi="MT":"MT"===t?A.ucsc="chrM":t.toLowerCase().startsWith("chr")&&Number.isInteger(Number(t.substring(3)))?A.ncbi=t.substring(3):Number.isInteger(Number(t))&&(A.ucsc="chr"+t),Xi(g)?this.addHumanSexAliases(t,A):$i(g)&&this.addMouseSexAliases(t,A)}for(const A of I){zi(A);for(const g of Object.values(A))this.cache.set(g,A)}}addHumanSexAliases(A,g){switch(A){case"23":g.ucsc="chrX",g.assembly="X";break;case"24":g.ucsc="chrY",g.assembly="Y";break;case"chrX":g.ncbi="23",g.assembly="X";break;case"chrY":g.ncbi="24",g.assembly="Y";break;case"X":g.ucsc="chrX",g.ncbi="23";break;case"Y":g.ucsc="chrY",g.ncbi="24"}}addMouseSexAliases(A,g){switch(A){case"21":g.ucsc="chrX",g.assembly="X";break;case"22":g.ucsc="chrY",g.assembly="Y";break;case"chrX":g.ncbi="21",g.assembly="X";break;case"chrY":g.ncbi="22",g.assembly="Y";break;case"X":g.ucsc="chrX",g.ncbi="21";break;case"Y":g.ucsc="chrY",g.ncbi="22"}}}class gB{constructor(A,g,I=globalThis.fetch.bind(globalThis)){this.url=A,this.chromosomeNames=g,this.fetchImpl=I,this.cache=new Map,this.loaded=!1}get headings(){return this._headings}getChromosomeName(A){var g;return null===(g=this.cache.get(A))||void 0===g?void 0:g.chr}getAliasRecord(A){return this.cache.get(A)}async search(A){return this.loaded||await this.loadAliases(),this.cache.get(A)}async preload(A){this.loaded||await this.loadAliases()}async loadAliases(){if(this.loaded)return;this.loaded=!0;const A=await this.fetchImpl(this.url);if(!A.ok)throw new Error(`Failed to fetch chrom alias file: ${A.status} ${A.statusText}`);const g=(await A.text()).split(/\r?\n/),I=g[0];I&&I.startsWith("#")&&(this._headings=I.substring(1).split("\t").map(A=>A.trim()));for(const A of g){if(!A||A.startsWith("#"))continue;const g=A.split("\t");let I=g.find(A=>this.chromosomeNames.has(A));I||(I=g[0]);const t={chr:I};zi(t);for(let A=0;A<g.length;A++){t[this._headings?this._headings[A]:String(A)]=g[A]}for(const A of Object.values(t))this.cache.set(A,t)}}}class IB{constructor(A,g){this.cache=new Map,this.headerLoaded=!1;const I=new m(A,{fetch:g});this.bb=new XA({filehandle:I})}get headings(){return this._headings}getChromosomeName(A){var g;return null===(g=this.cache.get(A))||void 0===g?void 0:g.chr}getAliasRecord(A){return this.cache.get(A)}async search(A){if(this.cache.has(A))return this.cache.get(A);await this.ensureHeader();const g=await this.bb.searchExtraIndex(A);if(0===g.length)return;const I=g[0];return this.parseAndCacheFeature(I)}async preload(A){await this.ensureHeader();for(const g of A)this.cache.has(g)||await this.search(g)}async ensureHeader(){if(this.headerLoaded)return;this.headerLoaded=!0;const A=await this.bb.getHeader();A.autoSql&&(this._headings=function(A){const g=[];let I=!1;for(const t of A.split("\n")){const A=t.trim();if("("===A){I=!0;continue}if(")"===A)break;if(!I)continue;const e=A.match(/^\w+\s+(\w+)\s*;/);e&&g.push(e[1])}return g.slice(3)}(A.autoSql))}parseAndCacheFeature(A){if(!A.rest)return;const g=A.rest.split("\t"),I={chr:g[0]};if(this._headings)for(let A=0;A<g.length&&A<this._headings.length;A++)I[this._headings[A]]=g[A];else for(let A=0;A<g.length;A++)I[String(A)]=g[A];zi(I);for(const A of Object.keys(I))"start"!==A&&"end"!==A&&this.cache.set(I[A],I);return I}}class tB{constructor(A,g){const I=new m(A,g?{fetch:g}:void 0);this.bb=new XA({filehandle:I})}async search(A){const g=await this.bb.searchExtraIndex(A);if(0===g.length)return null;const I=await this.ensureHeader();let t=g[0];for(let A=1;A<g.length;A++)g[A].end-g[A].start>t.end-t.start&&(t=g[A]);const e=t.chromId;if(null==e)return null;const C=I.refsByNumber[e];return C?this.parseFeature(C.name,t.start,t.end,t.rest):null}async getFeatures(A,g,I){const t=await this.bb.getFeatures(A,g,I),e=[];for(const g of t){const I=this.parseFeature(A,g.start,g.end,g.rest);I&&e.push(I)}return e}parseFeature(A,g,I,t){const e=[A,String(g),String(I)];t&&e.push(...t.split("\t"));const C=Qe(e);return C?function(A,g){return{chr:A,start:g.start,end:g.end,name:g.name,score:g.score,strand:"."===g.strand?void 0:g.strand,cdStart:g.cdStart,cdEnd:g.cdEnd,exons:g.exons,color:g.color}}(C.chr,C):null}ensureHeader(){return this.headerPromise||(this.headerPromise=this.bb.getHeader()),this.headerPromise}}const eB=1e5;function CB(A){let g=[],I=null;return async function(t,e){const{chr:C,start:i,end:B}=t;let Q=g.find(A=>function(A,g,I,t){return A.chr===g&&A.start<=I&&A.end>=t}(A,C,i,B));var o;Q||(Q=await async function(g,t,e,C){let i=t,B=e;if(e-t<eB){const A=Math.round(t+(e-t)/2);i=Math.max(0,A-5e4),B=i+eB}i=Math.floor(i),B=Math.ceil(B);const Q={chr:g,start:i,end:B};if(I&&I.interval.chr===g&&I.interval.start<=t&&I.interval.end>=e)return I.promise;const o=A(Q,C).then(A=>(I=null,{chr:g,start:i,end:B,sequence:A}));return o.catch(()=>{I=null}),I={interval:Q,promise:o},o}(C,i,B,e),o=Q,g=g.filter(A=>{return I=A,!((g=o).chr===I.chr&&g.start<=I.start&&g.end>=I.end);var g,I}),g.length>=10&&g.shift(),g.push(Q));const s=i-Q.start,E=B-i;return Q.sequence.substring(s,s+E)}}async function iB(A,g={},I){var t;const e=`https://api.genome.ucsc.edu/getData/sequence?genome=${null!==(t=g.genome)&&void 0!==t?t:"hg38"}&chrom=${A.chr}&start=${A.start}&end=${A.end}`,C=await fetch(e,I?{signal:I}:void 0);if(!C.ok)throw new Error(`UCSC sequence API error: ${C.status} ${C.statusText}`);return(await C.json()).dna}"getBigInt64"in DataView||(DataView.prototype.getBigInt64=function(A,g){return function(A,g,I){const t=Number(!!I),e=Number(!I);return BigInt(A.getInt32(g,I)*e+A.getInt32(g+4,I)*t)<<32n|BigInt(A.getUint32(g,I)*t+A.getUint32(g+4,I)*e)}(this,A,g)}),"getBigUint64"in DataView||(DataView.prototype.getBigUint64=function(A,g){return function(A,g,I){const t=A.getUint32(g,I),e=A.getUint32(g+4,I),C=Number(!!I),i=Number(!I);return BigInt(t*i+e*C)<<32n|BigInt(t*C+e*i)}(this,A,g)});const BB=["T","C","A","G"],QB=[];for(let A=0;A<256;A++)QB.push(BB[A>>6&3]+BB[A>>4&3]+BB[A>>2&3]+BB[3&A]);const oB=QB.map(A=>A.toLowerCase());class sB{filehandle;headerP;indexP;constructor({filehandle:A,path:g}){if(A)this.filehandle=A;else{if(!g)throw new Error("must supply path or filehandle");this.filehandle=new p(g)}}getHeader(){return this.headerP??=this.getHeaderData().catch(A=>{throw this.headerP=void 0,A}),this.headerP}async getHeaderData(){const A=await this.filehandle.read(16,0),g=!0,I=new DataView(A.buffer,A.byteOffset,A.length);let t=0;const e=I.getInt32(t,g);if(t+=4,440477507!==e)throw new Error(`Wrong magic number ${String(e)}`);const C=I.getInt32(t,g);t+=4;const i=I.getUint32(t,g);t+=4;return{version:C,magic:e,sequenceCount:i,reserved:I.getUint32(t,g)}}getIndex(){return this.indexP??=this.getIndexData().catch(A=>{throw this.indexP=void 0,A}),this.indexP}async getIndexData(){const A=await this.getHeader(),g=8+A.sequenceCount*(257+(1===A.version?8:4)),I=await this.filehandle.read(g,8),t=!0,e=new DataView(I.buffer,I.byteOffset,I.length);let C=0;const i=e.getUint32(C,t);C+=4,C+=4;const B=[];for(let g=0;g<i;g++){const g=e.getUint8(C);C+=1;let i="";for(let A=0;A<g;A++)i+=String.fromCodePoint(I[C+A]??0);if(C+=g,1===A.version){const A=Number(e.getBigUint64(C,t));C+=8,B.push({offset:A,name:i})}else{const A=e.getUint32(C,t);C+=4,B.push({offset:A,name:i})}}return Object.fromEntries(B.map(({name:A,offset:g})=>[A,g]))}async getSequenceNames(){const A=await this.getIndex();return Object.keys(A)}async getSequenceSizes(){const A=await this.getIndex(),g=Object.entries(A),I=await Promise.all(g.map(([,A])=>this.getSequenceSizeAt(A)));return Object.fromEntries(g.map(([A],g)=>[A,I[g]]))}async getSequenceSize(A){const g=(await this.getIndex())[A];return g?this.getSequenceSizeAt(g):void 0}async getSequenceSizeAt(A){const g=await this.filehandle.read(4,A);return new DataView(g.buffer,g.byteOffset,g.length).getUint32(0,!0)}async getSequenceRecord(A){const g=await this.filehandle.read(8,A),I=new DataView(g.buffer,g.byteOffset,g.length),t=I.getUint32(0,!0),e=I.getUint32(4,!0),C=8*e+4,i=await this.filehandle.read(C,A+8),B=new Uint32Array(2*e+1),Q=new DataView(i.buffer,i.byteOffset,i.length);for(let A=0;A<2*e+1;A++)B[A]=Q.getUint32(4*A,!0);const o=B.subarray(0,e),s=B.subarray(e,2*e),E=B[2*e]??0,a=8*E+4,r=await this.filehandle.read(a,A+8+C),n=new Uint32Array(2*E),h=new DataView(r.buffer,r.byteOffset,r.length);for(let A=0;A<2*E;A++)n[A]=h.getUint32(4*A,!0);return{dnaSize:t,nBlocks:{starts:o,sizes:s},maskBlocks:{starts:n.subarray(0,E),sizes:n.subarray(E,2*E)},dnaPosition:A+8+C+a}}async getSequence(A,g=0,I=Number.POSITIVE_INFINITY){const t=(await this.getIndex())[A];if(!t)return;const e=await this.getSequenceRecord(t);if(g<0)throw new TypeError("regionStart cannot be less than 0");I>e.dnaSize&&(I=e.dnaSize);const C=this.getOverlappingBlockStartIdx(g,e.nBlocks.starts,e.nBlocks.sizes),i=this.getOverlappingBlockStartIdx(g,e.maskBlocks.starts,e.maskBlocks.sizes),B=Math.ceil((I-g)/4)+1,Q=Math.floor(g/4),o=await this.filehandle.read(B,e.dnaPosition+Q),s=e.nBlocks.starts,E=e.nBlocks.sizes,a=e.maskBlocks.starts,r=e.maskBlocks.sizes,n=[];let h=C,c=i,l=g;for(;l<I;){for(;c<a.length&&a[c]+r[c]<=l;)c++;const A=a[c]??1/0,g=A+(r[c]??0),t=A<=l&&g>l,e=s[h]??1/0,C=e+(E[h]??0);if(l>=e&&l<C){h++;const A=Math.min(C,I),g=A-l;n.push((t?"n":"N").repeat(g)),l=A}else{const e=s[h]??1/0,C=t?Math.min(g,e,I):Math.min(A,e,I),i=t?oB:QB;for(;l<C;){const A=3&l,g=o[(l>>>2)-Q];0===A&&l+4<=C?(n.push(i[g]),l+=4):(n.push(i[g][A]),l+=1)}}}return n.join("")}getOverlappingBlockStartIdx(A,g,I){const t=g.length;if(0===t)return 0;let e=0,C=t;for(;e<C;){const t=e+C>>>1;g[t]+I[t]<=A?e=t+1:C=t}return e}}const EB=new Map,aB=new Map;function rB(A,g){let I=EB.get(A);if(!I){const t=nB(A,g);I=new sB({filehandle:t}),EB.set(A,I)}return I}function nB(A,g){let I=aB.get(A);if(!I){I=new m(A,g?{fetch:g}:void 0),aB.set(A,I)}return I}async function hB(A,g){const I=rB(A,g),t=nB(A,g),e=await I.getIndex(),C=Object.entries(e);if(0===C.length)return{};const i=new Map;for(const[A,g]of C){let I=i.get(g);I||(I=[],i.set(g,I)),I.push(A)}const B=[...i.keys()].sort((A,g)=>A-g),Q=function(A){if(0===A.length)return[];const g=[];let I=A[0],t=A[0]+4;for(let e=1;e<A.length;e++){const C=A[e],i=C+4;C<=t+65536?t=Math.max(t,i):(g.push({start:I,end:t}),I=C,t=i)}return g.push({start:I,end:t}),g}(B),o=new Map;await Promise.all(Q.map(async A=>{const g=A.end-A.start,I=await t.read(g,A.start);o.set(A.start,{buffer:I,rangeStart:A.start})}));const s={};for(const A of B){let g,I=0;for(const[t,e]of o)if(A>=t&&A+4<=t+e.buffer.length){g=e.buffer,I=e.rangeStart;break}if(!g)throw new Error(`Bug: offset ${A} not found in any fetched range`);const t=A-I,e=new DataView(g.buffer,g.byteOffset+t,4).getUint32(0,!0),C=i.get(A);for(const A of C)s[A]=e}return s}function cB(A,g){return async I=>{var t;const e=rB(A,g);try{const A=await e.getSequence(I.chr,I.start,I.end);return null!=A?A:""}catch(g){throw g instanceof Error&&("AbortError"===g.name||(null===(t=g.message)||void 0===t?void 0:t.includes("aborted")))&&(EB.delete(A),aB.delete(A)),g}}}async function lB(A,g){return hB(A,g)}function dB(A,g,I,t){return A+g*Math.floor(t/I)+t%I}class DB{constructor({fasta:A,fai:g,path:I,faiPath:t}){if(A)this.fasta=A;else{if(!I)throw new Error("Need to pass filehandle for fasta or path to localfile");this.fasta=new p(I)}if(g)this.fai=g;else if(t)this.fai=new p(t);else{if(!I)throw new Error("Need to pass filehandle for fai or path to localfile");this.fai=new p(`${I}.fai`)}}async getIndexes(A){return this.indexes??(this.indexes=async function(A,g={}){const I=new TextDecoder("utf8").decode(await A.readFile(g)),t=new Map;for(const A of I.split("\n")){const g=A.replace(/\r$/,"").trim();if(!g)continue;const[I,e,C,i,B]=g.split("\t");if(I.startsWith(">"))throw new Error("found > in sequence name, might have supplied FASTA file for the FASTA index");const Q=+e,o=+i;if(Q>0&&0===o)throw new Error(`Invalid FAI index for "${I}": LINEBASES is 0 for a non-empty sequence. The FASTA file may be missing a trailing newline — try regenerating the .fai index.`);t.set(I,{length:Q,offset:+C,lineLength:o,lineBytes:+B})}return t}(this.fai,A).catch(A=>{throw this.indexes=void 0,A})),this.indexes}async getSequenceNames(A){return[...(await this.getIndexes(A)).keys()]}async getSequenceSizes(A){const g=await this.getIndexes(A);return Object.fromEntries([...g.entries()].map(([A,g])=>[A,g.length]))}async getSequenceSize(A,g){return(await this.getIndexes(g)).get(A)?.length}async hasReferenceSequence(A,g){return(await this.getIndexes(g)).has(A)}async getResiduesByName(A,g,I,t){const e=(await this.getIndexes(t)).get(A);if(void 0!==e)return this.fetchFromIndex(e,g,I,t)}async getSequence(A,g,I,t){return this.getResiduesByName(A,g,I,t)}async fetchFromIndex(A,g=0,I,t){if(g<0)throw new TypeError("regionStart cannot be less than 0");const e=Math.min(I??A.length,A.length);if(g>=e)return"";const C=dB(A.offset,A.lineBytes,A.lineLength,g),i=dB(A.offset,A.lineBytes,A.lineLength,e)-C,B=new TextDecoder("utf8").decode(await this.fasta.read(i,C,t)).replace(/\s+/g,"");if(/[^\x20-\x7e]/.test(B.slice(0,1e3)))throw new Error("Non-ASCII characters detected in sequence. The file may be gzip compressed. Use BgzipIndexedFasta for bgzip files, or decompress the file.");return B}}class uB extends DB{constructor({fasta:A,path:g,fai:I,faiPath:t,gzi:e,gziPath:C}){super({fasta:A,path:g,fai:I,faiPath:t}),A&&e?this.fasta=new Ot({filehandle:A,gziFilehandle:e}):g&&C&&(this.fasta=new Ot({filehandle:new p(g),gziFilehandle:new p(C)}))}}const wB=new Map;function yB(A,g,I,t){const e=A;let C=wB.get(e);if(!C){const i=t?{fetch:t}:void 0;C=I?new uB({fasta:new m(A,i),fai:new m(g,i),gzi:new m(I,i)}):new DB({fasta:new m(A,i),fai:new m(g,i)}),wB.set(e,C)}return C}function fB(A,g,I,t){const e=null!=g?g:A+".fai";return async(g,C)=>{var i;const B=yB(A,e,I,t);try{const A=await B.getSequence(g.chr,g.start,g.end,{signal:C});return null!=A?A:""}catch(g){throw g instanceof Error&&("AbortError"===g.name||(null===(i=g.message)||void 0===i?void 0:i.includes("aborted")))&&wB.delete(A),g}}}async function SB(A,g,I){return yB(A,null!=g?g:A+".fai",void 0,I).getSequenceSizes()}function kB(A){const g=A.split("\t");if(g.length<5)return;const I=parseInt(g[1]),t=parseInt(g[2]);if(isNaN(I)||isNaN(t))return;const{type:e,stain:C}=function(A){if("acen"===A)return{type:"c",stain:0};if(A.startsWith("gpos"))return{type:"p",stain:parseInt(A.substring(4))||0};return{type:"n",stain:0}}(g[4]);return{start:I,end:t,name:g[3],type:e,stain:C}}function GB(A){const g=new Map,I=A.split(/\r?\n/);for(const A of I){if(!A||A.startsWith("#"))continue;const I=A.split("\t");if(I.length<5)continue;const t=I[0],e=kB(A);if(!e)continue;let C=g.get(t);C||(C=[],g.set(t,C)),C.push(e)}return g}async function FB(A,g){const I=await fetch(A,{signal:g});if(!I.ok)throw new Error(`Failed to fetch cytobands: ${I.status} ${I.statusText}`);let t;const e=A.toLowerCase(),C=e.endsWith(".gz")||e.includes(".gz?"),i=I.headers.get("Content-Encoding");if(C&&!("gzip"===i||"deflate"===i)){const A=await I.arrayBuffer();try{const g=new DecompressionStream("gzip"),I=new Response(new Blob([A]).stream().pipeThrough(g));t=await I.text()}catch(g){t=(new TextDecoder).decode(A)}}else t=await I.text();return GB(t)}const NB={hg38:DC},mB={hg38:"Human (GRCh38/hg38)"};class pB{constructor(A,g,I){var t;this._maneSource=null,this._rsdbSource=null,this.id=A,this.name=null==I?void 0:I.name,this.nameSet=null==I?void 0:I.nameSet,this.chromSizes=g,this.chromosomeNames=nC(g),this.cumulativeOffsets=cC(g),this.sequence=null==I?void 0:I.sequence,this._chromosomes=new Map;const e=Object.keys(g),C=new Set(this.chromosomeNames);let i=0;for(const A of this.chromosomeNames)this._chromosomes.set(A,{name:A,bpLength:g[A],order:i++});for(const A of e)C.has(A)||this._chromosomes.set(A,{name:A,bpLength:g[A],order:i++});this._chromAlias=null!==(t=null==I?void 0:I.chromAlias)&&void 0!==t?t:new AB(e,A),this._cytobands=null==I?void 0:I.cytobands,this._maneBbURL=null==I?void 0:I.maneBbURL,this._rsdbURL=null==I?void 0:I.rsdbURL,this._fetchImpl=null==I?void 0:I.fetchImpl}getChromosome(A){return this._chromosomes.get(A)}getChromosomeLength(A){return this.chromSizes[A]}getChromosomeName(A){var g;return null!==(g=this._chromAlias.getChromosomeName(A))&&void 0!==g?g:A}getAliasRecord(A){return this._chromAlias.getAliasRecord(A)}getCytobands(A){var g;return null===(g=this._cytobands)||void 0===g?void 0:g.get(A)}async getManeTranscript(A){if(!this._maneSource&&this._maneBbURL&&(this._maneSource=new tB(this._maneBbURL,this._fetchImpl)),this._maneSource){const g=await this._maneSource.search(A);if(g)return g}if(!this._rsdbSource&&this._rsdbURL&&(this._rsdbSource=new tB(this._rsdbURL,this._fetchImpl)),this._rsdbSource){const g=await this._rsdbSource.search(A);if(g)return g}return null}async getManeTranscriptAt(A,g){if(!this._maneSource&&this._maneBbURL&&(this._maneSource=new tB(this._maneBbURL,this._fetchImpl)),this._maneSource)try{const I=await this._maneSource.getFeatures(A,g,g+1);for(const A of I)if(A.start<=g&&A.end>=g)return A}catch(A){console.error("Error fetching MANE transcript",A)}return null}}function RB(A){var g,I;const t=null!==(g=A.id)&&void 0!==g?g:"custom",e=null!==(I=A.name)&&void 0!==I?I:mB[t],C=MB(A);return new pB(t,A.chromSizes,{name:e,sequence:C,cytobands:A.cytobands,nameSet:A.nameSet})}async function UB(A){var g,I,t;let e;if(A.chromSizes)e=A.chromSizes;else if(A.chromSizesURL){const I=null!==(g=A.fetchImpl)&&void 0!==g?g:globalThis.fetch.bind(globalThis),t=await I(A.chromSizesURL);if(!t.ok)throw new Error(`Failed to fetch chrom.sizes: ${t.status} ${t.statusText}`);e=dC(await t.text())}else if(A.id&&NB[A.id])e=NB[A.id];else if(A.twoBitURL)e=await lB(A.twoBitURL,A.fetchImpl);else{if(!A.fastaURL)throw new Error(`GenomeConfig must provide chromSizes, chromSizesURL, twoBitURL, fastaURL, or a known genome id. Known IDs: ${Object.keys(NB).join(", ")}`);e=await SB(A.fastaURL,A.indexURL,A.fetchImpl)}const C=null!==(I=A.id)&&void 0!==I?I:"custom",i=null!==(t=A.name)&&void 0!==t?t:mB[C],B=MB(A),Q=Object.keys(e),o=await async function(A,g,I){var t;if(A.chromAliasBbURL){const I=new IB(A.chromAliasBbURL,A.fetchImpl);return await I.preload([...g]),I}if(A.chromAliasURL){const I=null!==(t=A.fetchImpl)&&void 0!==t?t:globalThis.fetch.bind(globalThis),e=new gB(A.chromAliasURL,g,I);return await e.preload([...g]),e}return new AB([...g],I)}(A,new Set(Q),C);let s=A.cytobands;return!s&&A.cytobandURL&&(s=await FB(A.cytobandURL)),new pB(C,e,{name:i,sequence:B,cytobands:s,chromAlias:o,nameSet:A.nameSet,maneBbURL:A.maneBbURL,maneTrixURL:A.maneTrixURL,rsdbURL:A.rsdbURL,fetchImpl:A.fetchImpl})}function MB(A){var g;const I=[A.sequenceProvider&&"sequenceProvider",A.twoBitURL&&"twoBitURL",A.fastaURL&&"fastaURL",A.ucscGenome&&"ucscGenome"].filter(Boolean);if(I.length>1)throw new Error(`GenomeConfig has multiple sequence sources: ${I.join(", ")}. Set exactly one of: sequenceProvider, twoBitURL, fastaURL, or ucscGenome.`);if(A.sequenceProvider)return A.sequenceProvider;if(A.twoBitURL)return CB(cB(A.twoBitURL,A.fetchImpl));if(A.fastaURL)return CB(fB(A.fastaURL,A.indexURL,A.compressedIndexURL,A.fetchImpl));const t=null!==(g=A.ucscGenome)&&void 0!==g?g:A.id;return t?CB((A,g)=>iB(A,{genome:t},g)):void 0}const LB=RB({id:"hg38",chromSizes:DC}),JB="https://igv.org/genomes/genomes3.json",KB="https://raw.githubusercontent.com/igvteam/igv-data/refs/heads/main/genomes/web/genomes.json";let bB,vB;function YB(A){return bB?Promise.resolve():vB||(vB=async function(A){var g,I,t;const e=null!==(g=A.fetchImpl)&&void 0!==g?g:globalThis.fetch.bind(globalThis),C=new Map;if(!1!==A.loadDefaults){const g=null!==(I=A.primaryTimeout)&&void 0!==I?I:2e3,i=null!==(t=A.backupTimeout)&&void 0!==t?t:1e4;let B=!1;try{qB(await HB(JB,g,e),C),B=!0}catch(A){console.error("Error loading default genomes:",A)}if(!B)try{qB(await HB(KB,i,e),C)}catch(A){console.error("Error loading backup genomes:",A)}}if(A.genomeList)if("string"==typeof A.genomeList){qB(await HB(A.genomeList,1e4,e),C)}else qB(A.genomeList,C);bB=C}(null!=A?A:{}).finally(()=>{vB=void 0}),vB)}async function xB(A,g){if(await YB(g?{fetchImpl:g.fetchImpl}:void 0),"string"==typeof A){if(A.startsWith("{"))try{return JSON.parse(A)}catch(A){}const g=null==bB?void 0:bB.get(A);if(g)return g;throw new Error(`Unknown genome ID: "${A}". Known genomes: `+(bB?[...bB.keys()].slice(0,10).join(", ")+"...":"(registry not loaded)"))}const I=A.fastaURL||A.twoBitURL||A.sequenceProvider||A.chromSizes;if(A.id&&!I){const g=null==bB?void 0:bB.get(A.id);if(g)return{...g,...A}}return A}async function HB(A,g,I){const t=new AbortController,e=setTimeout(()=>t.abort(),g);try{const g=await I(A,{signal:t.signal});if(!g.ok)throw new Error(`HTTP ${g.status}: ${g.statusText}`);return await g.json()}finally{clearTimeout(e)}}function qB(A,g){for(const I of A)I.id&&g.set(I.id,I)}const _B=new Set(["bigwig","bigbed","gtx","ucsc","text","memory"]);function TB(A){return _B.has(A)}function WB(A){var g;const I=A.url,t=A.type;if(!I){const A=`Cannot resolve data source config: no URL and unknown type "${t}"`;throw RC.error(A),new Error(A)}const e=A.format,C=null!=e?e:eC(I),i={};return A.oauthToken&&(i.oauthToken=A.oauthToken),A.basicAuth&&(i.basicAuth=A.basicAuth),A.headers&&(i.headers=A.headers),A.withCredentials&&(i.withCredentials=A.withCredentials),C&&QC(C)?(RC.warn(`Unknown data source type "${t}", inferred "bigbed" from URL: ${I}`),{type:"bigbed",url:I,...i}):C&&("bigwig"===C||"bw"===C||iC(C))?(RC.warn(`Unknown data source type "${t}", inferred "bigwig" from URL: ${I}`),{type:"bigwig",url:I,windowFunction:A.windowFunction,...i}):"gtx"===C?(RC.warn(`Unknown data source type "${t}", inferred "gtx" from URL: ${I}`),{type:"gtx",url:I,experimentId:null!==(g=A.experimentId)&&void 0!==g?g:"",windowFunction:A.windowFunction,...i}):(RC.warn(`Unknown data source type "${t}", inferred "text" from URL: ${I}`),{type:"text",url:I,format:null!=e?e:C,indexURL:A.indexURL,indexed:A.indexed,...i})}const PB=(()=>{const A=new Map,g=["A","G","C","T","Y","R","W","S","K","M","D","V","H","B","N","X"],I=["T","C","G","A","R","Y","W","S","M","K","H","B","D","V","N","X"];for(let t=0;t<g.length;t++)A.set(g[t],I[t]),A.set(g[t].toLowerCase(),I[t].toLowerCase());return A})();function OB(A){var g;return null!==(g=PB.get(A))&&void 0!==g?g:A}const VB={TTT:"F",TTC:"F",TTA:"L",TTG:"L",CTT:"L",CTC:"L",CTA:"L",CTG:"L",ATT:"I",ATC:"I",ATA:"I",ATG:"M",GTT:"V",GTC:"V",GTA:"V",GTG:"V",TCT:"S",TCC:"S",TCA:"S",TCG:"S",AGT:"S",AGC:"S",CCT:"P",CCC:"P",CCA:"P",CCG:"P",ACT:"T",ACC:"T",ACA:"T",ACG:"T",GCT:"A",GCC:"A",GCA:"A",GCG:"A",TAT:"Y",TAC:"Y",TAA:"STOP",TAG:"STOP",TGA:"STOP",CAT:"H",CAC:"H",CAA:"Q",CAG:"Q",AAT:"N",AAC:"N",AAA:"K",AAG:"K",GAT:"D",GAC:"D",GAA:"E",GAG:"E",TGT:"C",TGC:"C",TGG:"W",CGT:"R",CGC:"R",CGA:"R",CGG:"R",AGA:"R",AGG:"R",GGT:"G",GGC:"G",GGA:"G",GGG:"G"};function ZB(A,g=!1){var I;const t=[[],[],[]];for(let e=0;e<3;e++){let C=e;for(;A.length-C>=3;){let i=A.slice(C,C+3);g&&(i=i.split("").reverse().join(""));const B=null!==(I=VB[i.toUpperCase()])&&void 0!==I?I:"";t[e].push({codons:i,aminoA:B}),C+=3}}return t}function zB(A,g){var I;return g.color?g.color:"dna"===g.sequenceType?null!==(I=g.nucleotideColors[A.toUpperCase()])&&void 0!==I?I:"#808080":g.nonDnaColor}function jB(A,g,I,t){if(!g||!g.sequence)return;let e=g.sequence;I.reversed&&(e=e.split("").map(A=>OB(A)).join(""));const C=g.bpStart,i=1+t.bpStart+t.pixelWidth*t.bpPerPixel,{sequenceHeight:B,frameBorder:Q}=I;for(let g=Math.floor(t.bpStart);g<=i;g++){const i=Math.floor(g-C);if(i<0||i>=e.length)continue;const o=(g-t.bpStart)/t.bpPerPixel,s=1/t.bpPerPixel,E=e[i],a=zB(E,I);if(t.bpPerPixel>.1)A.fillStyle=a,A.fillRect(o,Q,s,B-Q);else{const g=o+.5*(s-A.measureText(E).width);A.strokeStyle=a,A.strokeText(E,g,B)}}if(I.frameTranslate){let g=B+2*Q;const i=ZB(e,I.reversed),o=I.codonBorderRadius;for(let e=0;e<i.length;e++){const B=i[e];for(let i=0;i<B.length;i++){let Q=i%2==0?I.frameColor1:I.frameColor2;const s=B[i],E=C+e+3*i-t.bpStart,a=Math.floor(E/t.bpPerPixel),r=Math.floor((E+3)/t.bpPerPixel),n=Math.round((a+r)/2);if(r<0)continue;if(a>t.pixelWidth)break;let h=s.aminoA,c=!1;if(s.aminoA.indexOf("STOP")>-1?(Q=I.stopCodonColor,h="STOP",c=!0):"M"===s.aminoA&&(Q=I.startCodonColor,h="START",c=!0),A.fillStyle=Q,c&&o>0?(A.beginPath(),A.roundRect(a,g,r-a,I.frameHeight,o),A.fill()):A.fillRect(a,g,r-a,I.frameHeight),t.bpPerPixel<=.1){A.font=I.frameFont;const t=A.measureText(h).width,e=c&&I.codonLabelColor?I.codonLabelColor:I.frameLabelColor;A.fillStyle=e,A.fillText(h,n-t/2,g+15)}}g+=I.frameHeight+Q}}}class XB{constructor(A,g=10){this.sequenceProvider=A,this.bppThreshold=g}async fetch(A,g,I){if(g>this.bppThreshold)return[];if(I.aborted)return[];const t=Math.floor(A.start),e=Math.floor(A.end);return[{bpStart:t,sequence:await this.sequenceProvider({chr:A.chr,start:t,end:e},I)}]}}class $B extends LC{constructor(A,g={}){var I;const t=XC(g.theme),e=Ii(t,g.config);super(A,g.locus,e,g.canvasProvider),this.type="sequence",this._sequence=null,this._theme=t,this._bppThreshold=null!==(I=g.bppSequenceThreshold)&&void 0!==I?I:10}shouldFetchSequence(A){return A<=this._bppThreshold}setFeatures(A){this._sequence=A.length>0?A[0]:null,this.render()}setSequence(A){this._sequence=A,this.render()}getSequence(){return this._sequence}toggleReversed(){this.setConfig({reversed:!this._config.reversed})}toggleFrameTranslate(){this.setConfig({frameTranslate:!this._config.frameTranslate})}getContextMenuItems(A,g){return[{label:this._config.reversed?"Forward":"Reverse",action:()=>this.toggleReversed()},{label:this._config.frameTranslate?"Close Translation":"Three-frame Translate",action:()=>this.toggleFrameTranslate()}]}computeHeight(A){return this._config.frameTranslate?this._config.translatedHeight:this._config.defaultHeight}getBackground(){return this._config.background}doRender(A,g,I,t){jB(A,this._sequence,this._config,t)}setTheme(A){this._config=Ii(A),this._theme=A,this.render()}serializeConfig(A){const g=Ii(A),I={};this._config.sequenceType!==g.sequenceType&&(I.sequenceType=this._config.sequenceType),this._config.reversed!==g.reversed&&(I.reversed=this._config.reversed),this._config.frameTranslate!==g.frameTranslate&&(I.frameTranslate=this._config.frameTranslate),this._config.color!==g.color&&(I.color=this._config.color),this._config.background!==g.background&&(I.background=this._config.background);const t={type:"sequence"};return Object.keys(I).length>0&&(t.config=I),t}}const AQ=new Map;class gQ{constructor(A,g){this.url=A,this.fetchImpl=g,this.bb=function(A,g){const I=u(A);let t=AQ.get(I);t||(t=new XA({filehandle:new m(I,g?{fetch:g}:void 0)}),AQ.set(I,t));return t}(A,g)}setChromNameResolver(A){this._resolveChromName=A}async fetch(A,g,I){var t;const e=this._resolveChromName?this._resolveChromName(A.chr):A.chr;try{const g=await this.bb.getFeatures(e,A.start,A.end,{signal:I}),t=[];for(const A of g){const g=IQ(e,A.start,A.end,A.rest);g&&t.push(g)}return t}catch(A){throw A instanceof Error&&("AbortError"===A.name||(null===(t=A.message)||void 0===t?void 0:t.includes("aborted")))&&AQ.delete(u(this.url)),A}}async search(A){const g=await this.bb.getHeader(),I=await this.bb.searchExtraIndex(A);if(0===I.length)return[];const t=g.refsByNumber,e=[];for(const A of I){const g=A.chromId;if(null==g||!(null==t?void 0:t[g]))continue;const I=IQ(t[g].name,A.start,A.end,A.rest);I&&e.push(I)}return e}dispose(){AQ.delete(u(this.url))}}function IQ(A,g,I,t){const e=[A,String(g),String(I)];return t&&e.push(...t.split("\t")),Qe(e)}class tQ{constructor(A){this.cache=new rI(A)}setFeatures(A){this.cache=new rI(A)}setChromNameResolver(A){this._resolveChromName=A}setCumulativeOffsets(A){this._cumulativeOffsets=A}async fetch(A,g,I){if(og(A)&&this._cumulativeOffsets)return this.fetchWG();const t=this._resolveChromName?this._resolveChromName(A.chr):A.chr;return this.cache.queryFeatures(t,A.start,A.end)}fetchWG(){const A=this._cumulativeOffsets;if(!A)throw new Error("fetchWG called without cumulativeOffsets");const g=nC(Object.fromEntries(A.chromosomeNames.map(g=>{var I;return[g,null!==(I=A.offsets[g])&&void 0!==I?I:0]}))),I=[],t=this.cache.getAllFeatures();for(const e of g){const g=t[e];if(!g)continue;const C=A.offsets[e];if(void 0!==C)for(const A of g)I.push({...A,chr:"all",start:C+A.start,end:C+A.end})}return I.sort((A,g)=>A.start-g.start),I}}function eQ(A,g,I,t,e){g&&0!==g.length?("proportional"===I.displayMode?function(A,g,I,t){var e,C,i,B,Q;const{bpStart:o,bpPerPixel:s,pixelWidth:E}=t,a="UP"===I.arcOrientation,r=a?I.height:0,n=function(A){var g,I;let t=0;for(const e of A){const A=null!==(I=null!==(g=e.value)&&void 0!==g?g:e.score)&&void 0!==I?I:0;isNaN(A)||(t=Math.max(t,A))}return{min:0,max:t}}(g),h=I.logScale?(I.height-1)/Math.log10(n.max+1):(I.height-1)/(n.max||1);for(const A of g)A.drawState=void 0;const c=xC(g,o+E*s);for(let n=0;n<c;n++){const c=g[n],l=null!==(C=null!==(e=c.value)&&void 0!==e?e:c.score)&&void 0!==C?C:0;if(void 0===l||isNaN(l))continue;const d=Math.round((I.logScale?Math.log10(l+1):l)*h);if(c.chr1===c.chr2||"all"===c.chr){const g=(c.start1+c.end1)/2,t=(c.start2+c.end2)/2,e=Math.min(g,t),C=Math.max(g,t);let Q=Math.round((e-o)/s),E=Math.round((C-o)/s)-Q;E<3&&(E=3,Q--);const n=E/2,h=Q+E/2,l=a,D=null!==(i=c.color)&&void 0!==i?i:I.color;if(A.strokeStyle=D,A.lineWidth=null!==(B=c.thickness)&&void 0!==B?B:I.thickness,A.beginPath(),A.ellipse(h,r,n,d,0,0,Math.PI,l),A.stroke(),I.alpha>0){const g=I.useScore&&Number.isFinite(c.score)?Math.max(.1,Math.round(10*iQ(c.score))/10):1;A.fillStyle=QQ(D,g*I.alpha),A.fill()}if(I.showBlocks&&"all"!==c.chr){A.fillStyle=D;const g=(c.start1-o)/s,t=(c.end1-o)/s,e=(c.start2-o)/s,C=(c.end2-o)/s,i=a?-I.blockHeight:I.blockHeight;A.fillRect(g,r,t-g,i),A.fillRect(e,r,C-e,i)}c.drawState={type:"proportional",xc:h,yc:r,radiusX:n,radiusY:d}}else{if(E<=0)continue;const g=Math.round((c.start-o)/s);if(Math.round((c.end-o)/s)<0||g>E)continue;const e=Math.min(d,I.height-13);CQ(A,c,I,t,null!==(Q=c.color)&&void 0!==Q?Q:I.color,a,e)}}}(A,g,I,t):function(A,g,I,t){var e,C;const{bpStart:i,bpPerPixel:B,pixelWidth:Q,viewportWidth:o}=t,s="UP"===I.arcOrientation,E=s?I.height:0,{sinTheta:a,cosTheta:r,theta:n}=function(A,g,I){const{bpStart:t,bpPerPixel:e,pixelWidth:C,viewportWidth:i}=I;let B=0;for(const g of A){const A=(g.start-t)/e,I=(g.end-t)/e;A>=0&&I<=C&&(B=Math.max(B,I-A))}const Q=Math.min(i,B)/2;let o=Math.PI/4;if(B>0){o=function(A){const g=[.01570925532366355,.15838444032453644,.3249196962329063,.5095254494944288,.7265425280053609,.9999999999999999],I=[.031415926535897934,.3141592653589793,.6283185307179586,.9424777960769379,1.2566370614359172,1.5707963267948966];let t=0;for(;t<g.length&&!(g[t]>A);t++);const e=0===t?0:g[t-1],C=t<g.length?g[t]:1,i=(A-e)/(C-e),B=0===t?0:I[t-1],Q=t<I.length?I[t]:Math.PI/2;return Math.min(Math.PI/2,B+i*(Q-B))}((g.height-10)/Q)}return{sinTheta:Math.sin(o),cosTheta:Math.cos(o),theta:o}}(g,I,t);A.font=I.font,A.textAlign="center";for(const A of g)A.drawState=void 0;const h=xC(g,i+Q*B);for(let c=0;c<h;c++){const h=g[c];let l=null!==(e=h.color)&&void 0!==e?e:I.color;if(I.useScore&&Number.isFinite(h.score)&&(l=QQ(l,I.transparency*iQ(h.score))),A.lineWidth=null!==(C=h.thickness)&&void 0!==C?C:I.thickness,h.chr1===h.chr2||"all"===h.chr){const g=(h.start1+h.end1)/2,t=(h.start2+h.end2)/2,e=Math.min(g,t),C=Math.max(g,t);let c=Math.round((e-i)/B),d=Math.round((C-i)/B);if(d<0||c>Q)continue;let D=d-c;D<3&&(D=3,c--);const u=D/2,w=u/a,y=r*w,f=c+u;let S,k,G;if(s?(S=I.height+y,k=Math.PI+Math.PI/2-n,G=Math.PI+Math.PI/2+n):(S=-y,k=Math.PI/2-n,G=Math.PI/2+n),I.showBlocks&&"all"!==h.chr){A.fillStyle=l;const g=(h.start1-i)/B,t=(h.end1-i)/B,e=(h.start2-i)/B,C=(h.end2-i)/B,Q=s?-I.blockHeight:I.blockHeight;A.fillRect(g,E,t-g,Q),A.fillRect(e,E,C-e,Q)}!I.useScore&&D>o&&(l=QQ(l,I.alpha)),A.strokeStyle=l,A.fillStyle=l,A.beginPath(),A.arc(f,S,w,k,G,!1),A.stroke(),h.drawState={type:"nested",xc:f,yc:S,r:w}}else CQ(A,h,I,t,l,s)}}(A,g,I,t),e&&JC(A,e,I.height)):e&&JC(A,e,I.height)}function CQ(A,g,I,t,e,C,i){const{bpStart:B,bpPerPixel:Q,pixelWidth:o}=t;let s=Math.round((g.start-B)/Q),E=Math.round((g.end-B)/Q);if(E<0||s>o)return;let a=E-s;a<3&&(a=3,s--);const r=g.chr===g.chr1?g.chr2:g.chr1,n=null!=i?i:I.height/2;if(A.fillStyle=QQ(e,.5),A.font=I.font,A.textAlign="center",C){const t=I.height-n;A.fillRect(s,t,a,n),A.fillStyle=e,A.fillText(r,s+a/2,t-5),g.drawState={type:"rect",x:s,y:t,w:a,h:n}}else A.fillRect(s,0,a,n),A.fillStyle=e,A.fillText(r,s+a/2,n+13),g.drawState={type:"rect",x:s,y:0,w:a,h:n}}function iQ(A){return Math.min(1,.11+A/779*.89)}const BQ=new Map;function QQ(A,g){const I=`${A}_${g}`;let t=BQ.get(I);if(t)return t;const e=function(A){const g=A.match(/^rgba?\((\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);if(g)return{r:parseInt(g[1]),g:parseInt(g[2]),b:parseInt(g[3])};const I=A.match(/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i);if(I)return{r:parseInt(I[1],16),g:parseInt(I[2],16),b:parseInt(I[3],16)};return}(A);return t=e?`rgba(${e.r},${e.g},${e.b},${g})`:A,BQ.set(I,t),t}function oQ(A,g,I,t){const e=(g+1).toLocaleString(),C=I.toLocaleString();return t&&"."!==t?`${A}:${e}-${C} (${t})`:`${A}:${e}-${C}`}class sQ extends LC{constructor(A,g){const I=ti(XC(g.theme),g.config);super(A,g.locus,I,g.canvasProvider),this.type="interact",this.features=g.features,this._name=g.name}setFeatures(A){this.features=A,this.render()}computeHeight(A){return this.config.height}getBackground(){return this.config.background}renderLabelOverlay(A,g,I){this.externalUIEnabled||this._name&&JC(A,{name:this._name,background:this._config.background,labelColor:"#333"},I)}doRender(A,g,I,t){const e=I!==this._config.height?{...this._config,height:I}:this._config;eQ(A,this.features,e,t,this._name&&!this.externalUIEnabled?{name:this._name,background:this._config.background,labelColor:"#333"}:void 0)}getUIOverlayState(){if(this._name)return{label:{text:this._name,background:this._config.background,color:"#333"}}}hitTest(A,g){const I=A-this.getCanvasViewportOffset(),t=[];this._config.displayMode;for(const A of this.features){if(!A.drawState)continue;const e=A.drawState;if("nested"===e.type){const C=I-e.xc,i=g-e.yc,B=Math.abs(Math.sqrt(C*C+i*i)-e.r);B<5&&t.push({score:B,feature:A})}else if("proportional"===e.type){const C=I-e.xc,i=g-e.yc,B=C/e.radiusX*(C/e.radiusX)+i/e.radiusY*(i/e.radiusY);B<=1&&t.push({score:1/B,feature:A})}else if("rect"===e.type){const C=5;if(I>=e.x-C&&I<=e.x+e.w+C&&g>=e.y&&g<=e.y+e.h){t.push({score:-Math.abs(I-(e.x+e.w/2)),feature:A});break}}}return t.length>1&&t.sort((A,g)=>A.score-g.score),t.map(A=>({feature:A.feature,popupData:this.buildPopupData(A.feature)}))}buildPopupData(A){const g=[];return g.push({name:"Region 1",value:oQ(A.chr1,A.start1,A.end1,A.strand1)}),g.push({name:"Region 2",value:oQ(A.chr2,A.start2,A.end2,A.strand2)}),A.name&&g.push({name:"Name",value:A.name}),void 0!==A.value&&g.push({name:"Value",value:A.value}),void 0!==A.score&&g.push({name:"Score",value:A.score}),void 0!==A.type&&g.push({name:"Type",value:A.type}),g}setTheme(A){this._config=ti(A),this.render()}serializeConfig(A){const g=ti(XC(A));return{type:"interact",name:this._name,config:Ei(this._config,g)}}getAxisInfo(){if("proportional"!==this._config.displayMode)return;const A=EQ(this.features);return{label:this._name,dataRange:A,flipAxis:"DOWN"===this._config.arcOrientation,logScale:this._config.logScale}}getContextMenuItems(A,g){const I=[];return I.push({label:"Nested Arcs",type:"checkbox",checked:"nested"===this._config.displayMode,action:()=>this.setConfig({displayMode:"nested"})}),I.push({label:"Proportional Arcs",type:"checkbox",checked:"proportional"===this._config.displayMode,action:()=>this.setConfig({displayMode:"proportional"})}),I.push({label:"",type:"separator"}),I.push({label:"Toggle Arc Direction",action:()=>this.setConfig({arcOrientation:"UP"===this._config.arcOrientation?"DOWN":"UP"})}),I.push({label:this._config.showBlocks?"Hide Blocks":"Show Blocks",action:()=>this.setConfig({showBlocks:!this._config.showBlocks})}),I}getNumericState(){if("proportional"!==this._config.displayMode)return;const A=EQ(this.features);return{autoscale:!0,logScale:this._config.logScale,dataRange:A,setAutoscale:()=>{},setLogScale:A=>this.setConfig({logScale:A}),setDataRange:()=>{}}}}function EQ(A){var g,I;let t=0;for(const e of A){const A=null!==(I=null!==(g=e.value)&&void 0!==g?g:e.score)&&void 0!==I?I:0;isNaN(A)||(t=Math.max(t,A))}return{min:0,max:t}}function aQ(A,g,I,t,e){if(0===g.length)return;const{display:C}=I,i=C.includes("shaded"),B=C.includes("bar"),Q=C.includes("summit");if(!i&&!B&&!Q)return;const o=t.bpStart+t.pixelWidth*t.bpPerPixel;for(let C=YC(g,t.bpStart);C<g.length;C++){const s=g[C];if(s.start>o)break;const E=(s.start-t.bpStart)/t.bpPerPixel,a=(s.end-t.bpStart)/t.bpPerPixel,r=Math.max(1,a-E);if(i&&(A.fillStyle=I.color,A.fillRect(E,0,r,e)),B&&(A.fillStyle=I.color,A.fillRect(E,e-I.barHeight,r,I.barHeight)),Q&&null!=s.peak){const g=(s.start+s.peak-t.bpStart)/t.bpPerPixel;if(g>=0&&g<=t.pixelWidth){const t=I.summitSize/2;A.fillStyle=I.summitColor,A.beginPath(),A.moveTo(g-t,e),A.lineTo(g,e-I.summitSize),A.lineTo(g+t,e),A.closePath(),A.fill()}}}}class rQ extends LC{constructor(A,g){const I=ei(XC(g.theme),g.config);super(A,g.locus,I,g.canvasProvider),this.features=[],this._featureRects=[],this._lastRc=null,this._lastHeight=0,this.type="peakOverlay",g.features&&(this.features=g.features)}setFeatures(A){this.features=A,this.render()}computeHeight(A){var g;return null!==(g=this._config.height)&&void 0!==g?g:50}getBackground(){return"transparent"}doRender(A,g,I,t){this._lastRc=t,this._lastHeight=I;const e=t.bpPerPixel*t.viewportWidth;this._config.visibilityWindow>0&&e>this._config.visibilityWindow?this._featureRects=[]:(aQ(A,this.features,this._config,t,I),this._featureRects=this.computeFeatureRects(t,I))}getFeatureRects(){const A=this.currentPixelShiftOffset;return 0===A?this._featureRects:this._featureRects.map(g=>({...g,x:g.x+A}))}computeFeatureRects(A,g){const I=[],t=A.bpStart+A.pixelWidth*A.bpPerPixel;for(let e=YC(this.features,A.bpStart);e<this.features.length;e++){const C=this.features[e];if(C.start>t)break;const i=(C.start-this._locus.start)/A.bpPerPixel,B=(C.end-this._locus.start)/A.bpPerPixel;I.push({feature:C,x:i,y:0,width:Math.max(1,B-i),height:g,color:this._config.color})}return I}hitTest(A,g){if(!this._lastRc)return[];const I=this.viewportXToGenomicBp(A),t=[];for(let A=YC(this.features,I);A<this.features.length;A++){const g=this.features[A];if(g.start>I)break;I<=g.end&&t.push({feature:g,popupData:nQ(g)})}return t}getContextMenuItems(A,g){const I=this._config.display;return["shaded","bar","summit","none"].map(A=>({label:`Peak: ${A}`,type:"checkbox",checked:I.includes(A),action:()=>{if("none"===A)this.setConfig({display:I.includes("none")?["shaded"]:["none"]});else{const g=I.filter(g=>g!==A&&"none"!==g),t=I.includes(A)?g:[...g,A];this.setConfig({display:t.length>0?t:["none"]})}}}))}setTheme(A){this._config=ei(A),this.render()}serializeConfig(A){const g=ei(XC(A)),I={};let t=!1;const e=this._config;return e.background!==g.background&&(I.background=e.background,t=!0),e.barHeight!==g.barHeight&&(I.barHeight=e.barHeight,t=!0),e.summitColor!==g.summitColor&&(I.summitColor=e.summitColor,t=!0),e.summitSize!==g.summitSize&&(I.summitSize=e.summitSize,t=!0),e.color!==g.color&&(I.color=e.color,t=!0),e.visibilityWindow!==g.visibilityWindow&&(I.visibilityWindow=e.visibilityWindow,t=!0),(e.display.length!==g.display.length||e.display.some((A,I)=>A!==g.display[I]))&&(I.display=e.display,t=!0),{type:"peakOverlay",config:t?I:void 0}}}function nQ(A){const g=[];return A.name&&g.push({name:"Peak",value:A.name}),g.push({name:"Region",value:`${A.chr}:${A.start.toLocaleString()}-${A.end.toLocaleString()}`}),null!=A.signal&&g.push({name:"Signal",value:A.signal.toPrecision(4)}),null!=A.pValue&&g.push({name:"-log10(p)",value:A.pValue.toPrecision(4)}),null!=A.qValue&&g.push({name:"-log10(q)",value:A.qValue.toPrecision(4)}),null!=A.peak&&g.push({name:"Summit",value:(A.start+A.peak).toLocaleString()}),g}class hQ extends LC{constructor(A,g,I,t){super(A,g,I,t),this._children=[],this._expanded=!1}get expanded(){return this._expanded}set expanded(A){var g;this._expanded!==A&&(this._expanded=A,null===(g=this.onExpandedChanged)||void 0===g||g.call(this,A,this))}addChild(A,g){var I;this._children.push({track:A,name:g}),null===(I=this.onChildrenChanged)||void 0===I||I.call(this,this)}removeChild(A){var g;const I=this._children.length;this._children="string"==typeof A?this._children.filter(g=>g.name!==A):this._children.filter(g=>g.track!==A),this._children.length!==I&&(null===(g=this.onChildrenChanged)||void 0===g||g.call(this,this))}reorderChildren(A,g){var I;if(A<0||A>=this._children.length)return;if(g<0||g>=this._children.length)return;const[t]=this._children.splice(A,1);this._children.splice(g,0,t),null===(I=this.onChildrenChanged)||void 0===I||I.call(this,this)}getChildren(){return this._children}serializeChildren(A){return this._children.map(({track:g,name:I})=>{const t=g.serializeConfig(A);return I?{...t,name:I}:t})}}class cQ extends hQ{constructor(A,g){var I;const t=Ci(XC(g.theme),g.config);super(A,g.locus,t,null!==(I=g.canvasProvider)&&void 0!==I?I:S),this._mergedFeatures=null,this._userOverrides={},this._renderedDataRange=null,this._coordinatedDataRange=null,this._lastPropagatedHeight=-1,this.type="merged",this._children=[...g.childTracks],this._name=g.name,g.config&&(this._userOverrides={...g.config}),this.propagateSharedSettings()}get childTracks(){return this._children}setFeatures(A){var g;if(0===A.length)this._mergedFeatures=null;else{this._mergedFeatures=A[0];for(let A=0;A<this._children.length;A++){const I=this._children[A].track,t=null!==(g=this._mergedFeatures.featureArrays[A])&&void 0!==g?g:[];"setFeatures"in I&&"function"==typeof I.setFeatures&&(I.suspendRendering(),I.setFeatures(t))}}this.render()}setLocus(A){this._locus=A;for(const{track:g}of this._children)g.suspendRendering(),g.setLocus(A);this.render()}setCoordinatedDataRange(A){this._coordinatedDataRange=A}setConfig(A){Object.assign(this._userOverrides,A),super.setConfig(A),this.propagateSharedSettings()}setTheme(A){this._config=Ci(A,this._userOverrides);for(const{track:g}of this._children)g.setTheme(A);this.render()}computeHeight(A){return this._config.height}getBackground(){return this._config.background}renderLabelOverlay(A,g,I){this.externalUIEnabled||this._name&&JC(A,{name:this._name,background:this._config.background,labelColor:this._config.labelColor},I)}doRender(A,g,I,t){var e,C;for(const{track:A}of this._children)A.suspendRendering();if(I!==this._lastPropagatedHeight){this._lastPropagatedHeight=I;for(const{track:A}of this._children)"setConfig"in A&&"function"==typeof A.setConfig&&A.setConfig({height:I})}if(this._coordinatedDataRange){const A=this._coordinatedDataRange;this._config={...this._config,dataRange:A};for(const{track:g}of this._children){const I=null===(e=g.getNumericState)||void 0===e?void 0:e.call(g);I&&(I.setAutoscale(!1),I.setDataRange(A.min,A.max))}}else if(this._config.autoscale&&this._mergedFeatures){const A=t.bpStart+(t.pixelWidth-t.viewportWidth)/2*t.bpPerPixel,g=A+t.viewportWidth*t.bpPerPixel,I=this._mergedFeatures.getMax(A,g),e=this._mergedFeatures.getMin(A,g),i=I<0?0:I,B={min:I>0?Math.min(0,e):e,max:i};this._config={...this._config,dataRange:B};for(const{track:A}of this._children){const g=null===(C=A.getNumericState)||void 0===C?void 0:C.call(A);g&&(g.setAutoscale(!1),g.setDataRange(B.min,B.max))}}for(const{track:e}of this._children)e.renderToContext&&(A.save(),A.globalAlpha=this._config.alpha,e.renderToContext(A,g,I,{skipBackground:!0,rc:t}),A.restore());this._renderedDataRange=this.readChildRenderedRange();for(const{track:A}of this._children)A.discardPendingRender(),A.resumeRendering();this.renderLabelOverlay(A,g,I)}getUIOverlayState(){if(this._name)return{label:{text:this._name,background:this._config.background,color:this._config.labelColor}}}hitTest(A,g){const I=this.viewportXToGenomicBp(A),t=[];for(let e=0;e<this._children.length;e++){const{track:C,name:i}=this._children[e],B=C instanceof LC?C.genomicBpToViewportX(I):A,Q=C.hitTest(B,g);if(Q.length>0){const A={name:"Track",value:null!=i?i:`Track ${e+1}`,borderTop:e>0};for(const g of Q)t.push({feature:g.feature,popupData:[A,...g.popupData]})}}return t}getFeatureRects(){const A=this.currentPixelShiftOffset,g=this._children.flatMap(({track:A})=>"getFeatureRects"in A&&"function"==typeof A.getFeatureRects?A.getFeatureRects():[]);return 0===A?g:g.map(g=>({...g,x:g.x+A}))}getAxisInfo(){var A;const g=null!==(A=this._renderedDataRange)&&void 0!==A?A:this._config.dataRange;if(this._name||g)return{dataRange:g,label:this._name,flipAxis:this._config.flipAxis||void 0,logScale:this._config.logScale||void 0}}getNumericState(){if(this._children.some(({track:A})=>{var g;return null!=(null===(g=A.getNumericState)||void 0===g?void 0:g.call(A))}))return{autoscale:this._config.autoscale,logScale:this._config.logScale,dataRange:this._config.dataRange,setAutoscale:A=>{var g;if(this.setConfig({autoscale:A}),!A)for(const{track:A}of this._children){const I=null===(g=A.getNumericState)||void 0===g?void 0:g.call(A);I&&I.setAutoscale(!0)}},setLogScale:A=>{var g;this.setConfig({logScale:A});for(const{track:I}of this._children){const t=null===(g=I.getNumericState)||void 0===g?void 0:g.call(I);(null==t?void 0:t.setLogScale)&&t.setLogScale(A)}},setDataRange:(A,g)=>{var I;this.setConfig({dataRange:{min:A,max:g},autoscale:!1});for(const{track:t}of this._children){const e=null===(I=t.getNumericState)||void 0===I?void 0:I.call(t);e&&(e.setDataRange(A,g),e.setAutoscale(!1))}}}}getContextMenuItems(A,g){const I=[];return this._children.some(({track:A})=>{var g;return null!=(null===(g=A.getNumericState)||void 0===g?void 0:g.call(A))})&&I.push({label:"Flip y-axis",type:"checkbox",checked:this._config.flipAxis,action:()=>{var A;const g=!this._config.flipAxis;this.setConfig({flipAxis:g});for(const{track:I}of this._children){(null===(A=I.getNumericState)||void 0===A?void 0:A.call(I))&&"setConfig"in I&&I.setConfig({flipAxis:g})}}}),I.push({type:"separator",label:""}),I.push({label:`Transparency: ${Math.round(100*this._config.alpha)}%`,children:[.2,.3,.5,.7,.8,1].map(A=>({label:`${Math.round(100*A)}%`,type:"checkbox",checked:Math.abs(this._config.alpha-A)<.01,action:()=>this.setConfig({alpha:A})}))}),I.push({label:"Separate tracks",action:()=>{var A;null===(A=this.onConfigChanged)||void 0===A||A.call(this)}}),I}serializeConfig(A){const g=Ci(A),I={};let t=!1;const e=this._config;return e.height!==g.height&&(I.height=e.height,t=!0),e.alpha!==g.alpha&&(I.alpha=e.alpha,t=!0),e.autoscale!==g.autoscale&&(I.autoscale=e.autoscale,t=!0),!e.autoscale&&e.dataRange&&(I.dataRange=e.dataRange,t=!0),e.flipAxis!==g.flipAxis&&(I.flipAxis=e.flipAxis,t=!0),e.logScale!==g.logScale&&(I.logScale=e.logScale,t=!0),e.background!==g.background&&(I.background=e.background,t=!0),{type:"merged",tracks:this.serializeChildren(A),config:t?I:void 0}}propagateSharedSettings(){var A;for(const{track:g}of this._children){(null===(A=g.getNumericState)||void 0===A?void 0:A.call(g))&&"setConfig"in g&&g.setConfig({flipAxis:this._config.flipAxis,logScale:this._config.logScale})}}readChildRenderedRange(){var A;let g=1/0,I=-1/0,t=!1;for(const{track:e}of this._children){const C=null===(A=e.getAxisInfo)||void 0===A?void 0:A.call(e);(null==C?void 0:C.dataRange)&&(g=Math.min(g,C.dataRange.min),I=Math.max(I,C.dataRange.max),t=!0)}return t?{min:g,max:I}:null}}class lQ{constructor(A,g){this.featureArrays=A,this.trackNames=g}getMax(A,g){let I=-Number.MAX_VALUE;for(const t of this.featureArrays)for(const e of t){const t=e;if(void 0!==t.value&&!Number.isNaN(t.value)&&!(t.end<A)){if(t.start>g)break;I=Math.max(I,t.value)}}return I!==-Number.MAX_VALUE?I:100}getMin(A,g){let I=0;for(const t of this.featureArrays)for(const e of t){const t=e;if(void 0!==t.value&&!Number.isNaN(t.value)&&!(t.end<A)){if(t.start>g)break;I=Math.min(I,t.value)}}return I}}class dQ{constructor(A,g){this.childSources=A,this.trackNames=g}async fetch(A,g,I){const t=await Promise.allSettled(this.childSources.map(t=>t.fetch(A,g,I)));if(t.every(A=>{var g;return"rejected"===A.status&&("AbortError"===(null===(g=A.reason)||void 0===g?void 0:g.name)||`${A.reason}`.includes("abort"))})&&t.length>0){throw t.find(A=>"rejected"===A.status).reason}const e=t.map((A,g)=>{var I,t,e;return"fulfilled"===A.status?A.value:(RC.warn(`MergedDataSource child "${null!==(I=this.trackNames[g])&&void 0!==I?I:g}" failed, using empty features:`,null!==(e=null===(t=A.reason)||void 0===t?void 0:t.message)&&void 0!==e?e:A.reason),[])});return[new lQ(e,this.trackNames)]}dispose(){var A;for(const g of this.childSources)null===(A=g.dispose)||void 0===A||A.call(g)}}function DQ(A,g){return(A.start-g.bpStart)/g.bpPerPixel}function uQ(A,g){return Math.max(1,(A.end-A.start)/g.bpPerPixel)}function wQ(A,g,I){const{min:t,max:e}=g.dataRange,C=e-t||1;return(g.flipAxis?(A-t)/C:1-(A-t)/C)*I}function yQ(A,g){const I=A.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);if(I)return`rgba(${I[1]}, ${I[2]}, ${I[3]}, ${g})`;if(A.match(/^#([0-9a-f]{3}){1,2}$/i)){const I=A.slice(1),t=3===I.length?I.split("").map(A=>A+A).join(""):I;return`rgba(${parseInt(t.slice(0,2),16)}, ${parseInt(t.slice(2,4),16)}, ${parseInt(t.slice(4,6),16)}, ${g})`}return A}function fQ(A,g,I,t,e,C,i){if(0===g.length)return;const B=yQ(e.bandColor,e.bandAlpha);A.fillStyle=B,A.beginPath();for(let I=0;I<g.length;I++){const B=g[I],Q=DQ(B,i),o=wQ(t(B),e,C);0===I?A.moveTo(Q,o):A.lineTo(Q,o),A.lineTo(Q+uQ(B,i),o)}for(let t=g.length-1;t>=0;t--){const B=g[t],Q=DQ(B,i)+uQ(B,i),o=wQ(I(B),e,C);A.lineTo(Q,o),A.lineTo(DQ(B,i),o)}A.closePath(),A.fill()}function SQ(A,g,I,t,e,C,i,B){if(0!==g.length){A.strokeStyle=t,A.lineWidth=e,A.beginPath();for(let t=0;t<g.length;t++){const e=g[t],Q=DQ(e,B)+uQ(e,B)/2,o=wQ(I(e),C,i);0===t?A.moveTo(Q,o):A.lineTo(Q,o)}A.stroke()}}function kQ(A,g,I,t,e){fQ(A,g,A=>A.min,A=>A.max,I,t,e)}function GQ(A,g,I,t,e){fQ(A,g,A=>A.mean-A.stdDev,A=>A.mean+A.stdDev,I,t,e),SQ(A,g,A=>A.mean,I.lineColor,1.5,I,t,e)}function FQ(A,g,I,t,e){fQ(A,g,A=>A.mean-A.stdErr,A=>A.mean+A.stdErr,I,t,e),SQ(A,g,A=>A.mean,I.lineColor,1.5,I,t,e)}function NQ(A,g,I,t,e){fQ(A,g,A=>A.q1,A=>A.q3,I,t,e),SQ(A,g,A=>A.median,I.lineColor,1.5,I,t,e)}function mQ(A,g,I,t,e){const C=Math.max(.1,I.bandAlpha);for(const i of g){if(!i||0===i.length)continue;A.strokeStyle=yQ(I.lineColor,C),A.lineWidth=1,A.beginPath();let g=!0;for(const C of i){const i=DQ(C,e)+uQ(C,e)/2,B=wQ(C.value,I,t);g?(A.moveTo(i,B),g=!1):A.lineTo(i,B)}A.stroke()}}class pQ{constructor(A,g){this.count=0,this.mean=0,this.m2=0,this.min=1/0,this.max=-1/0,this.values=[],this._sortedValues=null,this.bin=A,this.chr=g}add(A){this.count++;const g=A-this.mean;this.mean+=g/this.count;const I=A-this.mean;this.m2+=g*I,A<this.min&&(this.min=A),A>this.max&&(this.max=A),this.values.push(A),this._sortedValues=null}get variance(){return this.count<2?0:this.m2/(this.count-1)}get stdDev(){return Math.sqrt(this.variance)}get stdErr(){return this.count>0?this.stdDev/Math.sqrt(this.count):0}get median(){return this._percentile(.5)}get q1(){return this._percentile(.25)}get q3(){return this._percentile(.75)}_percentile(A){const g=this._getSortedValues();if(0===g.length)return 0;const I=A*(g.length-1),t=Math.floor(I),e=Math.ceil(I);return t===e?g[t]:g[t]*(e-I)+g[e]*(I-t)}_getSortedValues(){return this._sortedValues||(this._sortedValues=[...this.values].sort((A,g)=>A-g)),this._sortedValues}toFeature(A,g){const I=g+this.bin*A,t=I+A;return{chr:this.chr,start:I,end:t,value:this.mean,mean:this.mean,stdDev:this.stdDev,stdErr:this.stdErr,median:this.median,q1:this.q1,q3:this.q3,min:this.min===1/0?0:this.min,max:this.max===-1/0?0:this.max,n:this.count}}}function RQ(A,g,I){if(0===A.length)return[];const t=Math.max(I,1),e=new Map;for(const I of A){if(!I||0===I.length)continue;const A=I[0].chr;for(const C of I){if(Number.isNaN(C.value))continue;const I=Math.floor((C.start-g)/t),i=Math.max(I,Math.ceil((C.end-g)/t)-1);for(let g=I;g<=i;g++){let I=e.get(g);I||(I=new pQ(g,A),e.set(g,I)),I.add(C.value)}}}return[...e.values()].sort((A,g)=>A.bin-g.bin).map(A=>A.toFeature(t,g))}var UQ=Object.freeze({__proto__:null,aggregateWigFeatures:RQ});function MQ(A,g,I){return"none"===I.mode?A:A.map(A=>function(A,g,I){if(0===A.length)return A;const t=A.filter(A=>A.end>=g.start&&A.start<=g.end&&Number.isFinite(A.value)).map(A=>A.value);if(0===t.length)return A;const e=function(A,g){switch(g.mode){case"max":return LQ(JQ(function(A){let g=0;for(const I of A){const A=Math.abs(I);A>g&&(g=A)}return g}(A)));case"zscore":{const g=A.reduce((A,g)=>A+g,0)/A.length,I=A.length>1?A.reduce((A,I)=>A+(I-g)**2,0)/(A.length-1):0,t=Math.sqrt(Math.max(I,0));return 0===t?A=>A-g:A=>(A-g)/t}case"robustZscore":{const I=bQ(A,.5),t=bQ(A,KQ(g.centerPercentileLow)),e=bQ(A,KQ(g.centerPercentileHigh))-t;return 0===e?A=>A-I:A=>(A-I)/e}case"percentile":{const I=A.map(A=>Math.abs(A)),t=bQ(I,KQ(g.percentile)),e=function(A){let g=-1/0;for(const I of A)I>g&&(g=I);return g}(I);return LQ(JQ(t||e))}case"none":return A=>A}}(t,I);return A.map(A=>({...A,value:e(A.value)}))}(A,g,I))}function LQ(A){return 0===A?A=>A:g=>g/A}function JQ(A){return Number.isFinite(A)&&0!==A?A:1}function KQ(A){return Math.min(100,Math.max(0,A))/100}function bQ(A,g){if(0===A.length)return 0;const I=[...A].sort((A,g)=>A-g),t=g*(I.length-1),e=Math.floor(t),C=Math.ceil(t);return e===C?I[e]:I[e]*(C-t)+I[C]*(t-e)}class vQ extends hQ{constructor(A,g){var I;const t=ii(XC(g.theme),g.config);super(A,g.locus,t,null!==(I=g.canvasProvider)&&void 0!==I?I:S),this._aggregated=[],this._rawArrays=[],this._userOverrides={},this._renderedDataRange=null,this.type="wigGroup",this._children=[...g.childTracks],this._name=g.name,g.config&&(this._userOverrides={...g.config})}get childTracks(){return this._children}setFeatures(A){if(0===A.length)return;const g=A[0];this._aggregated=g.aggregated,this._rawArrays=g.rawArrays;for(let A=0;A<this._children.length&&A<g.rawArrays.length;A++){const I=this._children[A].track;"function"==typeof I.setFeatures&&I.setFeatures(g.rawArrays[A])}this.render()}setConfig(A){Object.assign(this._userOverrides,A),super.setConfig(A)}setTheme(A){this._config=ii(A,this._userOverrides),this.render()}computeHeight(A){return this._config.height}getBackground(){return this._config.background}renderLabelOverlay(A,g,I){this.externalUIEnabled||this._name&&JC(A,{name:this._name,background:this._config.background,labelColor:this._config.labelColor},I)}doRender(A,g,I,t){var e;const C=(g-t.viewportWidth)/2,i=C+t.viewportWidth;this.externalUIEnabled||(this._name&&(A.save(),A.translate(C,0),JC(A,{name:this._name,background:this._config.background,labelColor:this._config.labelColor},I),A.restore()),this._drawBadge(A,I,i));const B=this._buildSummaryData(t);if(0!==B.features.length){if(this._config.autoscale&&B.features.length>0){const A=t.bpStart+(t.pixelWidth-t.viewportWidth)/2*t.bpPerPixel,g=A+t.viewportWidth*t.bpPerPixel,I=B.features.filter(I=>I.end>=A&&I.start<=g);if(I.length>0){let A=1/0,g=-1/0;const t=this._config.activeModes;for(const e of I)t.includes("minMax")&&(A=Math.min(A,e.min),g=Math.max(g,e.max)),t.includes("meanSd")&&(A=Math.min(A,e.mean-e.stdDev),g=Math.max(g,e.mean+e.stdDev)),t.includes("meanSe")&&(A=Math.min(A,e.mean-e.stdErr),g=Math.max(g,e.mean+e.stdErr)),t.includes("medianIqr")&&(A=Math.min(A,e.q1),g=Math.max(g,e.q3)),t.includes("overlay")&&(A=Math.min(A,e.min),g=Math.max(g,e.max));g>0&&(A=Math.min(0,A)),g<0&&(g=0),this._renderedDataRange={min:isFinite(A)?A:0,max:isFinite(g)?g:100}}else this._renderedDataRange=null}else this._renderedDataRange=null;!function(A,g,I,t){const{features:e,rawArrays:C,config:i,rc:B,numTracks:Q,modes:o}=t,s=["minMax","overlay","medianIqr","meanSe","meanSd"].filter(A=>o.includes(A));for(const g of s)switch(g){case"minMax":kQ(A,e,i,I,B);break;case"meanSd":GQ(A,e,i,I,B);break;case"meanSe":FQ(A,e,i,I,B);break;case"medianIqr":NQ(A,e,i,I,B);break;case"overlay":mQ(A,C,i,I,B)}}(A,0,I,{features:B.features,rawArrays:B.rawArrays,config:{...this._config,dataRange:null!==(e=this._renderedDataRange)&&void 0!==e?e:this._config.dataRange},rc:t,numTracks:this._children.length,modes:this._config.activeModes}),this.externalUIEnabled||(this._name&&(A.save(),A.translate(C,0),JC(A,{name:this._name,background:this._config.background,labelColor:this._config.labelColor},I),A.restore()),this._drawBadge(A,I,i))}else this._renderedDataRange=null}_drawBadge(A,g,I){const t=`[${this._children.length}]`,e="bold 10px sans-serif";A.font=e;const C=A.measureText(t).width+8,i=I-4-C,B=(g-16)/2;A.fillStyle=this._config.badgeBackground,A.beginPath(),A.roundRect(i,B,C,16,3),A.fill(),A.fillStyle=this._config.badgeColor,A.font=e,A.textAlign="left",A.textBaseline="middle",A.fillText(t,i+4,B+8+1)}_getBadgeRect(A,g){const I=this._canvas.getContext("2d"),t=`[${this._children.length}]`;if(!I){const I=7*t.length+8,e=16;return{x:A-4-I,y:(g-e)/2,w:I,h:e}}I.font="bold 10px sans-serif";const e=I.measureText(t).width+8;return{x:A-4-e,y:(g-16)/2,w:e,h:16}}onCanvasClick(A,g){const I=this._getBadgeRect(this.viewportWidth,this.height);return A>=I.x&&A<=I.x+I.w&&g>=I.y&&g<=I.y+I.h&&(this.expanded=!this._expanded,!0)}getUIOverlayState(){const A={badge:{id:"badge",text:`[${this._children.length}]`,background:this._config.badgeBackground,color:this._config.badgeColor}};return this._name&&(A.label={text:this._name,background:this._config.background,color:this._config.labelColor}),A}onUIOverlayClick(A){return"badge"===A&&(this.expanded=!this._expanded,!0)}getAxisInfo(){var A;const g=null!==(A=this._renderedDataRange)&&void 0!==A?A:this._config.dataRange;if(this._name||g)return{dataRange:g,label:this._name,flipAxis:this._config.flipAxis||void 0,logScale:this._config.logScale||void 0}}getNumericState(){return{autoscale:this._config.autoscale,logScale:this._config.logScale,dataRange:this._config.dataRange,setAutoscale:A=>this.setConfig({autoscale:A}),setLogScale:A=>this.setConfig({logScale:A}),setDataRange:(A,g)=>this.setConfig({dataRange:{min:A,max:g},autoscale:!1})}}hitTest(A,g){const I=this._buildSummaryDataForCurrentViewport();if(0===I.features.length)return[];const t=this._genomicPosForHitTest(A);for(let A=YC(I.features,t);A<I.features.length;A++){const g=I.features[A];if(g.start>t)break;if(t<g.end)return[{feature:g,popupData:this._buildPopupData(g,t,I.rawArrays)}]}return[]}getContextMenuItems(A,g){const I=[];I.push({label:this._expanded?"Collapse":"Expand",action:()=>{this.expanded=!this._expanded}}),I.push({type:"separator",label:""});I.push({label:"Aggregation modes",children:[["meanSd","Mean ± SD"],["meanSe","Mean ± SE"],["medianIqr","Median ± IQR"],["minMax","Min/Max envelope"],["overlay","Overlay (individual lines)"]].map(([A,g])=>({label:g,type:"checkbox",checked:this._config.activeModes.includes(A),action:()=>{const g=this._config.activeModes,I=g.includes(A)?g.filter(g=>g!==A):[...g,A];I.length>0&&this.setConfig({activeModes:I})}}))}),I.push({type:"separator",label:""});const t=[["none","None"],["max","Max to 1"],["zscore","Z-score"],["robustZscore","Robust Z-score"],["percentile","Percentile scale"]].map(([A,g])=>({label:g,type:"checkbox",checked:this._config.normalizationMode===A,action:()=>this.setConfig({normalizationMode:A})}));return"percentile"===this._config.normalizationMode&&(t.push({type:"separator",label:""}),t.push({label:`Percentile: ${this._config.normalizationPercentile}th`,disabled:!0})),I.push({label:"Normalization",children:t}),I.push({type:"separator",label:""}),I.push({label:"Autoscale",type:"checkbox",checked:this._config.autoscale,action:()=>this.setConfig({autoscale:!this._config.autoscale})}),I.push({label:"Flip y-axis",type:"checkbox",checked:this._config.flipAxis,action:()=>this.setConfig({flipAxis:!this._config.flipAxis})}),I.push({type:"separator",label:""}),I.push({label:"Ungroup",action:()=>{var A;null===(A=this.onConfigChanged)||void 0===A||A.call(this)}}),I}serializeConfig(A){const g=ii(A),I=this._config,t={};let e=!1;for(const A of["height","lineColor","bandColor","bandAlpha","badgeBackground","badgeColor","autoscale","flipAxis","logScale","normalizationMode","normalizationPercentile","normalizationCenterPercentileLow","normalizationCenterPercentileHigh","labelColor","labelFont","showDataRange","background"])I[A]!==g[A]&&(t[A]=I[A],e=!0);return JSON.stringify(I.activeModes)!==JSON.stringify(g.activeModes)&&(t.activeModes=I.activeModes,e=!0),I.autoscale||I.dataRange.min===g.dataRange.min&&I.dataRange.max===g.dataRange.max||(t.dataRange=I.dataRange,e=!0),{type:"wigGroup",tracks:this.serializeChildren(A),config:e?t:void 0,expanded:this._expanded||void 0}}_buildSummaryData(A){if(0===this._rawArrays.length)return{features:this._aggregated,rawArrays:[]};if(this._canReusePrecomputedAggregation(A.bpStart,A.bpPerPixel))return{features:this._aggregated,rawArrays:this._rawArrays};const g=this._applyChildValueScaling(this._rawArrays),I=this._normalizeSummaryRawArrays(g,{chr:this._locus.chr,start:A.bpStart+(A.pixelWidth-A.viewportWidth)/2*A.bpPerPixel,end:A.bpStart+(A.pixelWidth+A.viewportWidth)/2*A.bpPerPixel});return{features:RQ(I,A.bpStart,A.bpPerPixel),rawArrays:I}}_buildSummaryDataForCurrentViewport(){if(0===this._rawArrays.length)return{features:this._aggregated,rawArrays:[]};const A=this.viewportWidth;if(A>0&&!this.needsRepaint(this._locus))return this._buildSummaryData({pixelWidth:A*this.overscanMultiplier,bpStart:this._renderBpStart,bpPerPixel:this._renderBpPerPixel,viewportWidth:A});const g=this.viewportWidth;if(g<=0)return{features:this._aggregated,rawArrays:[]};const I=(this._locus.end-this._locus.start)/g;if(this._canReusePrecomputedAggregation(this._locus.start,I))return{features:this._aggregated,rawArrays:this._rawArrays};const t=this._applyChildValueScaling(this._rawArrays),e=this._normalizeSummaryRawArrays(t,this._locus);return{features:RQ(e,this._locus.start,I),rawArrays:e}}_canReusePrecomputedAggregation(A,g){if("none"!==this._config.normalizationMode)return!1;if(this._hasChildValueScaling())return!1;if(0===this._aggregated.length)return!0;const I=this._aggregated[0];return I.start===A&&I.end-I.start===g}_hasChildValueScaling(){return this._children.some(({track:A})=>{var g,I;const t=A.config;return 1!==(null!==(g=null==t?void 0:t.normalizationFactor)&&void 0!==g?g:1)||1!==(null!==(I=null==t?void 0:t.scaleFactor)&&void 0!==I?I:1)})}_normalizeSummaryRawArrays(A,g){return MQ(A,g,{mode:this._config.normalizationMode,percentile:this._config.normalizationPercentile,centerPercentileLow:this._config.normalizationCenterPercentileLow,centerPercentileHigh:this._config.normalizationCenterPercentileHigh})}_applyChildValueScaling(A){return A.map((A,g)=>{var I,t,e,C,i;const B=null===(I=this._children[g])||void 0===I?void 0:I.track,Q=(null!==(e=null===(t=null==B?void 0:B.config)||void 0===t?void 0:t.normalizationFactor)&&void 0!==e?e:1)*(null!==(i=null===(C=null==B?void 0:B.config)||void 0===C?void 0:C.scaleFactor)&&void 0!==i?i:1);return 1===Q?A:A.map(A=>({...A,value:A.value*Q}))})}_buildPopupData(A,g,I){var t,e;const C=null!==(t=this._renderedDataRange)&&void 0!==t?t:this._config.dataRange,i=[],B=[{name:"Track",value:null!==(e=this._name)&&void 0!==e?e:"Wig group"},{name:"Display",value:this._describeDisplayScale()},{name:"Bin",value:`${A.chr}:${Math.floor(A.start).toLocaleString()}-${Math.ceil(A.end).toLocaleString()}`},{name:"Stats",value:`mu ${YQ(A.mean)} med ${YQ(A.median)} n ${A.n}`,monospace:!0},{name:"Summary",value:"",content:HQ(A,C.min,C.max,this._children.map((A,t)=>{var e,C,B;const Q=function(A,g){for(let I=YC(A,g);I<A.length;I++){const t=A[I];if(t.start>g)break;if(g<t.end)return t}return}(null!==(e=I[t])&&void 0!==e?e:[],g);if(!Q)return null;const o=_Q[t%_Q.length];return i.push({label:null!==(C=A.name)&&void 0!==C?C:`Track ${t+1}`,color:o}),{label:null!==(B=A.name)&&void 0!==B?B:`Track ${t+1}`,value:Q.value,color:o}}).filter(A=>null!=A))},{name:"Guide",value:"",content:A=>{const g=A.createElement("div");g.className="legend-list";const I=(I,t)=>{const e=A.createElement("div");e.className="legend-row";const C=A.createElement("span");C.className="legend-label";const i=A.createElement("span");i.className="legend-swatch",i.style.background=t,C.appendChild(i),C.appendChild(A.createTextNode(I)),e.appendChild(C),g.appendChild(e)};return I("IQR band","#60a5fa"),I("Median line / mean marker",TQ),g}}];var Q,o;return B.push({name:"Legend",value:"",content:(Q=i,o=this._describeLegendNote(),A=>{const g=A.createElement("div"),I=A.createElement("div");I.className="legend-list";for(const g of Q){const t=A.createElement("div");t.className="legend-row";const e=A.createElement("span");e.className="legend-label";const C=A.createElement("span");C.className="legend-swatch",C.style.background=g.color,e.appendChild(C),e.appendChild(A.createTextNode(g.label)),t.appendChild(e),I.appendChild(t)}const t=A.createElement("div");return t.className="popup-note",t.textContent=o,g.appendChild(I),g.appendChild(t),g})}),B}_describeDisplayScale(){switch(this._config.normalizationMode){case"none":return"Original values";case"max":return"Displayed after Max-to-1 normalization";case"zscore":return"Displayed after Z-score normalization";case"robustZscore":return"Displayed after Robust Z-score normalization";case"percentile":return`Displayed after Percentile normalization (${this._config.normalizationPercentile}th)`}}_describeLegendNote(){return"none"===this._config.normalizationMode?"Hover a dot in the summary bar to see that track value.":"Hover a dot in the summary bar to see the grouped value after normalization."}_genomicPosForHitTest(A){const g=this.viewportXToGenomicBp(A);if(0!==g)return g;const I=this.viewportWidth;if(I<=0)return this._locus.start;const t=(this._locus.end-this._locus.start)/I;return this._locus.start+A*t}}function YQ(A){return Number.isInteger(A)?A:Number(A.toPrecision(6))}function xQ(A){const g=YQ(A);return String(g)}function HQ(A,g,I,t){return e=>{const C=220,i=16,B=qQ(A.min,g,I,C),Q=qQ(A.q1,g,I,C),o=qQ(A.median,g,I,C),s=qQ(A.q3,g,I,C),E=qQ(A.max,g,I,C),a=qQ(A.mean,g,I,C),r=g<0&&I>0?qQ(0,g,I,C):null,n="http://www.w3.org/2000/svg",h=e.createElementNS(n,"svg");h.setAttribute("width",String(C)),h.setAttribute("height",String(46)),h.setAttribute("viewBox","0 0 220 46"),h.setAttribute("aria-label","summary distribution"),h.style.color=TQ;const c=(A,g)=>{const I=e.createElementNS(n,A);for(const[A,t]of Object.entries(g))I.setAttribute(A,t);return h.appendChild(I),I};c("rect",{x:"8",y:String(14),width:String(204),height:"4",rx:"2",fill:"#d7dde5"}),null!=r&&c("line",{x1:String(r),y1:"6",x2:String(r),y2:String(28),stroke:"#e2e8f0","stroke-dasharray":"2 2"}),c("line",{x1:String(B),y1:String(i),x2:String(E),y2:String(i),stroke:"#cbd5e1","stroke-width":"2"}),c("rect",{x:String(Math.min(Q,s)),y:String(11),width:String(Math.max(2,Math.abs(s-Q))),height:"10",rx:"5",fill:"#60a5fa"}),c("line",{x1:String(o),y1:String(8),x2:String(o),y2:String(24),stroke:"currentColor","stroke-width":"2"}),c("circle",{cx:String(a),cy:String(i),r:"4",fill:"currentColor",stroke:"#2563eb","stroke-width":"2"});for(const A of t){const t=qQ(A.value,g,I,C),B=c("circle",{cx:String(t),cy:String(i),r:"3.5",fill:A.color}),Q=e.createElementNS(n,"title");Q.textContent=`${A.label}: ${xQ(A.value)}`,B.appendChild(Q)}for(const[g,I]of[[B,A.min],[E,A.max]]){c("text",{x:String(g),y:String(42),"text-anchor":"middle","font-size":"10",fill:"currentColor"}).textContent=xQ(I)}return h}}function qQ(A,g,I,t,e=8){const C=t-e-8,i=I-g;if(!Number.isFinite(i)||0===i)return e;const B=(A-g)/i;return e+Math.max(0,Math.min(C,B*C))}const _Q=["#2563eb","#dc2626","#16a34a","#ca8a04","#7c3aed","#0891b2"],TQ="var(--loom-popup-color, var(--loom-text-color, #fff))";class WQ{constructor(A,g){this.aggregated=A,this.rawArrays=g}}class PQ{constructor(A,g=[]){this._cachedRaw=[],this._cachedStartBP=0,this._cachedBpPerPixel=0,this.childSources=A,this.trackNames=g}async fetch(A,g,I){const t=await Promise.allSettled(this.childSources.map(t=>t.fetch(A,g,I)));if(t.every(A=>{var g;return"rejected"===A.status&&("AbortError"===(null===(g=A.reason)||void 0===g?void 0:g.name)||`${A.reason}`.includes("abort"))})&&t.length>0){throw t.find(A=>"rejected"===A.status).reason}const e=t.map((A,g)=>{var I,t,e;return"fulfilled"===A.status?A.value:(RC.warn(`WigGroupDataSource child "${null!==(I=this.trackNames[g])&&void 0!==I?I:g}" failed:`,null!==(e=null===(t=A.reason)||void 0===t?void 0:t.message)&&void 0!==e?e:A.reason),[])});this._cachedRaw=e,this._cachedStartBP=A.start,this._cachedBpPerPixel=g;const C=RQ(e,A.start,g);return[new WQ(C,e)]}reaggregate(){if(0===this._cachedRaw.length)return null;const A=RQ(this._cachedRaw,this._cachedStartBP,this._cachedBpPerPixel);return new WQ(A,this._cachedRaw)}get cachedRaw(){return this._cachedRaw}dispose(){var A;for(const g of this.childSources)null===(A=g.dispose)||void 0===A||A.call(g)}}function OQ(A){const g=A.match(/(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);if(g)return[parseInt(g[1]),parseInt(g[2]),parseInt(g[3])];const I=A.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/);return I?[parseInt(I[1],16),parseInt(I[2],16),parseInt(I[3],16)]:[128,128,128]}function VQ(A,g,I,t,e){if("c"===A.type)return g.centromereColor;if("p"===A.type){const g=e.get(A.stain);if(g)return g;const Q=(C=I,i=t,B=A.stain/100,`rgb(${Math.round(C[0]+(i[0]-C[0])*B)},${Math.round(C[1]+(i[1]-C[1])*B)},${Math.round(C[2]+(i[2]-C[2])*B)})`);return e.set(A.stain,Q),Q}var C,i,B;return g.bandLightColor}function ZQ(A,g,I,t,e,C){C=Math.min(C,t/2,e/2),A.beginPath(),A.moveTo(g+C,I),A.lineTo(g+t-C,I),A.arcTo(g+t,I,g+t,I+C,C),A.lineTo(g+t,I+e-C),A.arcTo(g+t,I+e,g+t-C,I+e,C),A.lineTo(g+C,I+e),A.arcTo(g,I+e,g,I+e-C,C),A.lineTo(g,I+C),A.arcTo(g,I,g+C,I,C),A.closePath()}function zQ(A,g,I,t,e){const{pixelWidth:C}=t,i=I.height;if(0===g.length||C<=0||i<=0)return;const B=C/Math.max(e,g[g.length-1].end),Q=.5,o=(i-1)/2,s=OQ(I.bandLightColor),E=OQ(I.bandDarkColor),a=new Map;A.save(),ZQ(A,Q,Q,C-1,i-1,o),A.clip();const r=i/2;for(const t of g){const g=B*t.start,e=B*t.end;"c"===t.type?(A.fillStyle=I.centromereColor,A.strokeStyle=I.centromereColor,A.beginPath(),"p"===t.name.charAt(0)?(A.moveTo(g,i),A.lineTo(g,0),A.lineTo(e,r)):(A.moveTo(e,i),A.lineTo(e,0),A.lineTo(g,r)),A.closePath(),A.fill()):(A.fillStyle=VQ(t,I,s,E,a),A.fillRect(g,1,e-g,i-2),I.showBandNames&&jQ(A,t,g,e,i,I,s,E))}A.restore(),A.strokeStyle=I.borderColor,A.lineWidth=1,ZQ(A,Q,Q,C-1,i-1,o),A.stroke()}function jQ(A,g,I,t,e,C,i,B){const Q=t-I;let o,s=e-4-2;for(;s>4&&(A.font=`${s}px ${C.font.replace(/^\d+px\s*/,"")}`,!(A.measureText(g.name).width<=Q));)s-=1;if(s<=4)return;if(A.save(),A.beginPath(),A.rect(I,2,Q,e-4),A.clip(),"p"===g.type){const A=g.stain/100;o=[Math.round(i[0]+(B[0]-i[0])*A),Math.round(i[1]+(B[1]-i[1])*A),Math.round(i[2]+(B[2]-i[2])*A)]}else o=i;const E=(a=o[0],r=o[1],n=o[2],.2126*a+.7152*r+.0722*n);var a,r,n;A.fillStyle=E<128?C.altLabelColor:C.labelColor,A.textAlign="center",A.textBaseline="middle",A.fillText(g.name,I+Q/2,e/2+1),A.restore()}function XQ(A,g,I,t){const{pixelWidth:e,bpStart:C,bpPerPixel:i,viewportWidth:B}=I,Q=g.height,o=Math.round(i*B);if(o>t)return;const s=o/t,E=C/t;let a=Math.floor(E*e),r=Math.floor(s*e);const n=Math.max(r,1);a=Math.max(0,a),a=Math.min(e-n,a),A.save(),A.strokeStyle=g.viewportIndicatorColor,A.lineWidth=r<3?1:2;const h=a+A.lineWidth/2,c=Math.max(1,r-A.lineWidth),l=A.lineWidth/2,d=Q-A.lineWidth;A.strokeRect(h,l,c,d),A.restore()}class $Q extends LC{constructor(A,g={}){var I,t;const e=Bi(XC(g.theme),g.config);super(A,g.locus,e,g.canvasProvider),this.type="ideogram",this._cytobands=[],this._chrLength=0,this._cytobands=null!==(I=g.cytobands)&&void 0!==I?I:[],this._chrLength=null!==(t=g.chrLength)&&void 0!==t?t:0}setCytobands(A,g){this._cytobands=A,this._chrLength=g,this.render()}get cytobands(){return this._cytobands}computeHeight(A){return this._config.height}getBackground(){return this._config.background}doRender(A,g,I,t){0!==this._cytobands.length&&0!==this._chrLength&&(zQ(A,this._cytobands,this._config,t,this._chrLength),XQ(A,this._config,t,this._chrLength))}setTheme(A){this._config=Bi(A),this.render()}serializeConfig(A){const g=Bi(A);return{type:"ideogram",config:Ei(this.config,g)}}hitTest(A,g){if(0===this._cytobands.length||0===this._chrLength)return[];const I=this.viewportWidth;if(0===I)return[];const t=I/Math.max(this._chrLength,this._cytobands[this._cytobands.length-1].end),e=A-this.currentPixelShiftOffset;for(const A of this._cytobands){const g=t*A.start,I=t*A.end;if(e>=g&&e<=I){const g=[{name:"Band",value:A.name},{name:"Position",value:`${A.start.toLocaleString()} - ${A.end.toLocaleString()}`},{name:"Stain",value:"c"===A.type?"centromere":"p"===A.type?`gpos${A.stain}`:"gneg"}];return[{feature:A,popupData:g}]}}return[]}genomicPositionAtPixel(A){if(0===this._cytobands.length||0===this._chrLength)return;const g=this.viewportWidth;if(0===g)return;return A/g*Math.max(this._chrLength,this._cytobands[this._cytobands.length-1].end)}}function Ao(A){var g,I,t,e;null===(I=(g=A.track).dispose)||void 0===I||I.call(g),null===(e=null===(t=A.dataSource)||void 0===t?void 0:t.dispose)||void 0===e||e.call(t)}function go(A,g){const I=[];try{for(const t of null!=A?A:[])I.push(so(t,g.locus,{canvasProvider:g.canvasProvider,theme:g.theme,sequenceProvider:g.sequenceProvider}));return I}catch(A){for(const A of I)Ao(A);throw A}}function Io(A,g){try{return g()}catch(g){for(const g of A)Ao(g);throw g}}const to=new Map,eo=new Map;function Co(A,g){to.set(A,g)}function io(A,g){eo.set(A,g)}function Bo(A){return to.get(function(A){var g;return null!==(g=eo.get(A))&&void 0!==g?g:A}(A))}function Qo(){const A=new Set(to.keys());for(const g of eo.keys())A.add(g);return A}function oo(A){switch(A.type){case"bigwig":return new cg(A.url,A.windowFunction);case"bigbed":return new gQ(A.url);case"gtx":return new Tg(A.url,A.experimentId,A.windowFunction);case"ucsc":return new II({genome:A.genome,track:A.track});case"text":return new uC({url:A.url,format:A.format,indexURL:A.indexURL,indexed:A.indexed});case"memory":return new tQ([]);default:return oo(WB(A))}}function so(A,g,I={}){var t;const e=Bo(A.type);if(!e)throw new Error(`Unknown track type: "${A.type}". Known types: ${[...Qo()].join(", ")}`);return e(A,{locus:g,canvasProvider:null!==(t=I.canvasProvider)&&void 0!==t?t:S,theme:I.theme,sequenceProvider:I.sequenceProvider})}Co("wig",function(A,g){const I=A,{canvas:t}=g.canvasProvider.createCanvas(0,0),e=new mi(t,{locus:g.locus,features:[],config:I.config,theme:g.theme,canvasProvider:g.canvasProvider,name:I.name,sequenceProvider:g.sequenceProvider});let C=null,i=null;if(I.dataSource&&(i=I.dataSource,C=oo(I.dataSource)),I.annotation){const A=I.annotation,{canvas:t}=g.canvasProvider.createCanvas(0,0),i=new rQ(t,{locus:g.locus,config:{display:A.display,color:A.color},theme:g.theme,canvasProvider:g.canvasProvider}),B=oo({type:"text",url:A.url,format:A.format,indexURL:A.indexURL,indexed:A.indexed}),{canvas:Q}=g.canvasProvider.createCanvas(0,0),o=new cQ(Q,{locus:g.locus,childTracks:[{track:e,name:I.name},{track:i,name:"Peaks"}],config:{alpha:1,autoscale:!0},theme:g.theme,canvasProvider:g.canvasProvider,name:I.name}),s=[C,B].filter(A=>null!=A);return{track:o,dataSource:s.length>0?new dQ(s,[I.name,"Peaks"]):null,dataSourceConfig:null,name:I.name,order:I.order}}return{track:e,dataSource:C,dataSourceConfig:i,name:I.name,order:I.order}}),Co("annotation",function(A,g){var I;const t=A,{canvas:e}=g.canvasProvider.createCanvas(0,0),C=new ai(e,{locus:g.locus,features:[],config:t.config,theme:g.theme,canvasProvider:g.canvasProvider,name:t.name});let i=null,B=null;return t.dataSource&&(B=t.dataSource,i=oo(t.dataSource)),{track:C,dataSource:i,dataSourceConfig:B,name:t.name,order:t.order,searchable:null===(I=t.searchable)||void 0===I||I,searchableFields:t.searchableFields}}),Co("ruler",function(A,g){const I=A,{canvas:t}=g.canvasProvider.createCanvas(0,0);return{track:new li(t,{locus:g.locus,config:I.config,theme:g.theme,canvasProvider:g.canvasProvider}),dataSource:null,dataSourceConfig:null,name:I.name,order:I.order}}),Co("sequence",function(A,g){const I=A,{canvas:t}=g.canvasProvider.createCanvas(0,0);return{track:new $B(t,{locus:g.locus,config:I.config,theme:g.theme,canvasProvider:g.canvasProvider}),dataSource:g.sequenceProvider?new XB(g.sequenceProvider):null,dataSourceConfig:null,name:I.name,order:I.order}}),Co("interact",function(A,g){var I;const t=A,{canvas:e}=g.canvasProvider.createCanvas(0,0),C=new sQ(e,{locus:g.locus,features:[],config:t.config,theme:g.theme,canvasProvider:g.canvasProvider,name:t.name});let i=null,B=null;return t.dataSource&&(B=t.dataSource,i=oo(t.dataSource)),{track:C,dataSource:i,dataSourceConfig:B,name:t.name,order:t.order,searchable:null===(I=t.searchable)||void 0===I||I,searchableFields:t.searchableFields}}),Co("peakOverlay",function(A,g){const I=A,{canvas:t}=g.canvasProvider.createCanvas(0,0),e=new rQ(t,{locus:g.locus,config:I.config,theme:g.theme,canvasProvider:g.canvasProvider,name:I.name});let C=null,i=null;return I.dataSource&&(i=I.dataSource,C=oo(I.dataSource)),{track:e,dataSource:C,dataSourceConfig:i,name:I.name,order:I.order}}),Co("merged",function(A,g){const I=A,t=go(I.tracks,g);return Io(t,()=>{const{canvas:A}=g.canvasProvider.createCanvas(0,0),e=new cQ(A,{locus:g.locus,childTracks:t.map((A,g)=>{var t,e;return{track:A.track,name:null!==(t=A.name)&&void 0!==t?t:null===(e=I.tracks[g])||void 0===e?void 0:e.name}}),config:I.config,theme:g.theme,canvasProvider:g.canvasProvider,name:I.name}),C=t.map(A=>A.dataSource).filter(A=>null!=A);return{track:e,dataSource:C.length>0?new dQ(C,t.map(A=>A.name)):null,dataSourceConfig:null,name:I.name,order:I.order}})}),Co("wigGroup",function(A,g){var I,t;const e=A,C=go(e.tracks,g);for(const[A,g]of C.entries()){if("wig"===g.track.type)continue;for(const A of C)Ao(A);const i=null!==(t=null===(I=e.tracks[A])||void 0===I?void 0:I.type)&&void 0!==t?t:g.track.type;throw new Error(`wigGroup tracks only support wig children; received "${i}"`)}return Io(C,()=>{const{canvas:A}=g.canvasProvider.createCanvas(0,0),I=new vQ(A,{locus:g.locus,childTracks:C.map((A,g)=>{var I,t;return{track:A.track,name:null!==(I=A.name)&&void 0!==I?I:null===(t=e.tracks[g])||void 0===t?void 0:t.name}}),config:e.config,theme:g.theme,canvasProvider:g.canvasProvider,name:e.name});e.expanded&&(I.expanded=!0);const t=C.map(A=>{var g;return null!==(g=A.dataSource)&&void 0!==g?g:new tQ([])}),i=C.map(A=>A.name);return{track:I,dataSource:t.length>0?new PQ(t,i):null,dataSourceConfig:null,name:e.name,order:e.order}})}),Co("ideogram",function(A,g){const I=A,{canvas:t}=g.canvasProvider.createCanvas(0,0);return{track:new $Q(t,{locus:g.locus,config:I.config,theme:g.theme,canvasProvider:g.canvasProvider}),dataSource:null,dataSourceConfig:null,name:I.name,order:I.order}}),io("gene","annotation"),io("refgene","annotation"),io("bigwig","wig"),io("bedgraph","wig"),io("bed","annotation"),io("gff3","annotation"),io("gtf","annotation"),io("gff","annotation"),io("narrowpeak","annotation"),io("broadpeak","annotation"),io("genepred","annotation"),io("genepredext","annotation"),io("refflat","annotation"),io("bigbed","annotation"),io("bedtype","annotation"),io("biggenepred","annotation"),io("bignarrowpeak","annotation"),io("overlay","merged"),io("bedpe","interact"),io("arc","interact"),io("longrange","interact");const Eo="1.0";function ao(A,g,I={}){return so(A,g,I)}function ro(A){const g={};return A.oauthToken&&(g.oauthToken=A.oauthToken),A.headers&&(g.headers=A.headers),A.withCredentials&&(g.withCredentials=A.withCredentials),g}function no(A){const g={};return A.oauthToken&&(g.oauthToken=A.oauthToken),A.headers&&(g.headers=A.headers),A.withCredentials&&(g.withCredentials=A.withCredentials),g}const ho={wig:"wig",bigwig:"wig",bedgraph:"wig",annotation:"annotation",gene:"annotation",refgene:"annotation",bed:"annotation",gff3:"annotation",gtf:"annotation",narrowpeak:"annotation",broadpeak:"annotation",bigbed:"annotation",biggenepred:"annotation",bignarrowpeak:"annotation",biginteract:"interact",sequence:"sequence",interact:"interact",bedpe:"interact",arc:"interact"};function co(A){var g;const I=ho[null!==(g=A.type)&&void 0!==g?g:""];if(!I){if("sequence"!==A.type&&"ruler"!==A.type&&RC.warn(`Skipping unsupported igv.js track type: ${A.type}`),"ruler"===A.type){const g={type:"ruler"};return A.height&&(g.config={height:A.height}),g}return null}switch(I){case"wig":return function(A){const g={type:"wig"};A.name&&(g.name=A.name);null!=A.order&&(g.order=A.order);if(A.url){const I={type:"bigwig",url:A.url,...ro(A)};A.windowFunction&&(I.windowFunction=A.windowFunction),g.dataSource=I}const I={};let t=!1;A.color&&(I.color=A.color,t=!0);A.altColor&&(I.altColor=A.altColor,t=!0);null!=A.height&&(I.height=A.height,t=!0);null!=A.autoscale&&(I.autoscale=A.autoscale,t=!0);null!=A.min&&null!=A.max&&(I.dataRange={min:A.min,max:A.max},t=!0);t&&(g.config=I);return g}(A);case"annotation":return function(A){var g,I;const t={type:"annotation"};A.name&&(t.name=A.name);null!=A.order&&(t.order=A.order);if(A.url){if(QC(null!==(I=null===(g=A.format)||void 0===g?void 0:g.toLowerCase())&&void 0!==I?I:"")||/\.bb$/i.test(A.url)||/\.bigbed$/i.test(A.url)){const g={type:"bigbed",url:A.url,...ro(A)};t.dataSource=g}else{const g={type:"text",url:A.url,...ro(A)};A.indexURL&&(g.indexURL=A.indexURL),A.format&&(g.format=A.format),t.dataSource=g}}const e={};let C=!1;A.color&&(e.color=A.color,C=!0);null!=A.height&&(e.featureHeight=A.height,C=!0);A.displayMode&&(e.displayMode=A.displayMode.toUpperCase(),C=!0);C&&(t.config=e);return t}(A);case"interact":return function(A){const g={type:"interact"};A.name&&(g.name=A.name);null!=A.order&&(g.order=A.order);if(A.url){const I={type:"text",url:A.url,...ro(A)};A.indexURL&&(I.indexURL=A.indexURL),A.format&&(I.format=A.format),g.dataSource=I}const I={};let t=!1;A.color&&(I.color=A.color,t=!0);null!=A.height&&(I.height=A.height,t=!0);t&&(g.config=I);return g}(A);case"ruler":return{type:"ruler"};case"sequence":return{type:"sequence"};case"merged":case"wigGroup":case"peakOverlay":case"ideogram":return null}}function lo(A){var g;switch(A.type){case"wig":return function(A){const g={type:"wig"};A.name&&(g.name=A.name);null!=A.order&&(g.order=A.order);A.dataSource&&"bigwig"===A.dataSource.type&&(g.url=A.dataSource.url,A.dataSource.windowFunction&&(g.windowFunction=A.dataSource.windowFunction),Object.assign(g,no(A.dataSource)));A.config&&(A.config.color&&(g.color=A.config.color),A.config.altColor&&(g.altColor=A.config.altColor),null!=A.config.height&&(g.height=A.config.height),null!=A.config.autoscale&&(g.autoscale=A.config.autoscale),A.config.dataRange&&(g.min=A.config.dataRange.min,g.max=A.config.dataRange.max));return g}(A);case"annotation":return function(A){var g,I;const t={type:"annotation"};A.name&&(t.name=A.name);null!=A.order&&(t.order=A.order);"text"===(null===(g=A.dataSource)||void 0===g?void 0:g.type)?(t.url=A.dataSource.url,A.dataSource.format&&(t.format=A.dataSource.format),A.dataSource.indexURL&&(t.indexURL=A.dataSource.indexURL),Object.assign(t,no(A.dataSource))):"bigbed"===(null===(I=A.dataSource)||void 0===I?void 0:I.type)&&(t.url=A.dataSource.url,t.format="bigbed",Object.assign(t,no(A.dataSource)));A.config&&(A.config.color&&(t.color=A.config.color),A.config.displayMode&&(t.displayMode=A.config.displayMode));return t}(A);case"interact":return function(A){var g;const I={type:"interact"};A.name&&(I.name=A.name);null!=A.order&&(I.order=A.order);"text"===(null===(g=A.dataSource)||void 0===g?void 0:g.type)&&(I.url=A.dataSource.url,A.dataSource.indexURL&&(I.indexURL=A.dataSource.indexURL),A.dataSource.format&&(I.format=A.dataSource.format),Object.assign(I,no(A.dataSource)));A.config&&(A.config.color&&(I.color=A.config.color),null!=A.config.height&&(I.height=A.config.height));return I}(A);case"ruler":return{type:"ruler",height:null===(g=A.config)||void 0===g?void 0:g.height};case"sequence":return{type:"sequence"};case"merged":case"wigGroup":case"peakOverlay":case"ideogram":return null}}class Do{constructor(A){this.snapshots=new Map,this.browser=A}getState(A){const g=this.project();return(null==A?void 0:A.record)&&this.snapshots.set(A.record,structuredClone(g)),g}diff(A){const g=this.snapshots.get(A);if(!g)throw new Error(`No snapshot recorded under key "${A}"`);const I=this.project(),t={unchanged:!0};g.locus.chr===I.locus.chr&&g.locus.start===I.locus.start&&g.locus.end===I.locus.end||(t.locus=[g.locus,I.locus],t.unchanged=!1),g.zoomLevel!==I.zoomLevel&&(t.zoomLevel=[g.zoomLevel,I.zoomLevel],t.unchanged=!1);const e=new Set(g.tracks.map(A=>A.id)),C=new Set(I.tracks.map(A=>A.id)),i=I.tracks.filter(A=>!e.has(A.id)),B=g.tracks.filter(A=>!C.has(A.id)).map(A=>A.id);i.length>0&&(t.tracksAdded=i,t.unchanged=!1),B.length>0&&(t.tracksRemoved=B,t.unchanged=!1);const Q=[];for(const A of I.tracks){if(!e.has(A.id))continue;const I=g.tracks.find(g=>g.id===A.id);if(!Go(I.featureSummary,A.featureSummary)){const g=ko(A.id,A.type,I.featureSummary,A.featureSummary);g&&Q.push(g)}}return Q.length>0&&(t.tracksChanged=Q,t.unchanged=!1),fo(g.rois,I.rois)||(t.roisChanged=!0,t.unchanged=!1),t}record(A){this.snapshots.set(A,structuredClone(this.project()))}deleteSnapshot(A){return this.snapshots.delete(A)}getSnapshot(A){return this.snapshots.get(A)}snapshotKeys(){return[...this.snapshots.keys()]}clearSnapshots(){this.snapshots.clear()}project(){var A,g;const I=this.browser.locus,t={chr:I.chr,start:Math.round(I.start),end:Math.round(I.end)},e=t.end-t.start,C=this.browser.getManagedTracks();return{locus:t,locusString:wo(t),span:e,zoomLevel:uo(e),frames:this.browser.frames,genome:null===(A=this.browser.genome)||void 0===A?void 0:A.id,tracks:C.filter(A=>"ruler"!==A.track.type).map(A=>this.projectTrack(A,t)),rois:null!==(g=this.browser.toJSON().rois)&&void 0!==g?g:[]}}projectTrack(A,g){const I=this.summarizeFeatures(A,g),t=null!=A.dataSource,e=A.cache.hasData();return{id:A.id,type:A.track.type,name:A.name,metadata:A.metadata,loading:!(!t||e)||void 0,featureSummary:I}}summarizeFeatures(A,g){switch(A.track.type){case"wig":return this.summarizeWig(A,g);case"annotation":return this.summarizeAnnotation(A,g);case"interact":return this.summarizeInteraction(A,g);default:return}}summarizeWig(A,g){const I=this.browser.getCachedFeatures(A.track);if(!I)return;const t=yo(I,g);return{featureCount:t.length,signalRange:t.length>0?Bg(t):{min:0,max:0}}}summarizeAnnotation(A,g){const I=this.browser.getCachedFeatures(A.track);if(!I)return;const t=yo(I,g),e=new Set;for(const A of t)A.name&&e.size<20&&e.add(A.name);const C=t.reduce((A,g)=>{var I;return Math.max(A,null!==(I=g.row)&&void 0!==I?I:0)},0);return{featureCount:t.length,featureNames:[...e].sort(),packingDepth:C}}summarizeInteraction(A,g){var I,t;const e=this.browser.getCachedFeatures(A.track);if(!e)return;const C=yo(e,g);let i=0;for(const A of C){const g=null!==(t=null!==(I=A.value)&&void 0!==I?I:A.score)&&void 0!==t?t:0;isNaN(g)||(i=Math.max(i,g))}return{featureCount:C.length,valueRange:{min:0,max:i}}}}function uo(A){return A<=100?"base":A<=1e4?"element":A<=5e5?"gene":A<=1e7?"region":A<=25e7?"chromosome":"genome"}function wo(A){return`${A.chr}:${A.start.toLocaleString()}-${A.end.toLocaleString()}`}function yo(A,g){return A.filter(A=>A.end>g.start&&A.start<g.end)}function fo(A,g){if(A===g)return!0;if(null==A||null==g)return!1;if(typeof A!=typeof g)return!1;if(Array.isArray(A)){if(!Array.isArray(g)||A.length!==g.length)return!1;for(let I=0;I<A.length;I++)if(!fo(A[I],g[I]))return!1;return!0}if("object"==typeof A){if(Array.isArray(g))return!1;const I=A,t=g,e=Object.keys(I),C=Object.keys(t);if(e.length!==C.length)return!1;for(const A of e)if(!fo(I[A],t[A]))return!1;return!0}return!1}function So(A,g){if(A&&g in A)return A[g]}function ko(A,g,I,t){const e={id:A,type:g};let C=!1;const i=(A,g,I)=>{fo(g,I)||(e[A]=[null!=g?g:null,null!=I?I:null],C=!0)};return i("featureCount",null==I?void 0:I.featureCount,null==t?void 0:t.featureCount),i("signalRange",So(I,"signalRange"),So(t,"signalRange")),i("featureNames",So(I,"featureNames"),So(t,"featureNames")),i("packingDepth",So(I,"packingDepth"),So(t,"packingDepth")),i("valueRange",So(I,"valueRange"),So(t,"valueRange")),C?e:void 0}function Go(A,g){return A===g||!(!A||!g)&&fo(A,g)}function Fo(A,g){var I;if(void 0!==g.id&&A.id!==g.id)return!1;if(void 0!==g.name){const t=null!==(I=A.name)&&void 0!==I?I:"";if("string"==typeof g.name){if(!t.toLowerCase().includes(g.name.toLowerCase()))return!1}else if(!g.name.test(t))return!1}if(void 0!==g.type&&A.track.type!==g.type)return!1;if(void 0!==g.where){const I=A.metadata;if(!I)return!1;for(const[A,t]of Object.entries(g.where))if(I[A]!==t)return!1}return!0}function No(A,g){return A.filter(A=>Fo(A,g))}class mo{constructor(A=50){this.maxHistory=A,this.undoStack=[],this.redoStack=[],this._paused=!1}get paused(){return this._paused}pause(){this._paused=!0}resume(){this._paused=!1}snapshot(A,g){this._paused||(this.undoStack.push({type:A,session:g}),this.undoStack.length>this.maxHistory&&this.undoStack.shift(),this.redoStack=[])}undo(A,g){let I=this.undoStack.pop();if(g)for(;I&&g(I);)I=this.undoStack.pop();if(I)return this.redoStack.push({type:I.type,session:A}),I}redo(A,g){let I=this.redoStack.pop();if(g)for(;I&&g(I);)I=this.redoStack.pop();if(I)return this.undoStack.push({type:I.type,session:A}),I}canUndo(A){return A?this.undoStack.some(g=>!A(g)):this.undoStack.length>0}canRedo(A){return A?this.redoStack.some(g=>!A(g)):this.redoStack.length>0}get undoSize(){return this.undoStack.length}get redoSize(){return this.redoStack.length}clear(){this.undoStack=[],this.redoStack=[]}}async function po(A,g,I){const t="https://igv.org/genomes/locus.php?genome=$GENOME$&name=$FEATURE$".replace("$GENOME$",encodeURIComponent(g)).replace("$FEATURE$",encodeURIComponent(A.toUpperCase())),e=await fetch(t,I?{signal:I}:void 0);if(!e.ok)return;return Ro(await e.text())}function Ro(A){const g=A.split("\n");for(const A of g){const g=A.split("\t");if(g.length>=2){const A=g[0].trim().toUpperCase(),I=g[1].split(":");if(I.length>=2){const g=I[0].trim(),t=I[1].split("-");if(t.length>=2){const I=parseInt(t[0].replace(/,/g,""),10),e=parseInt(t[1].replace(/,/g,""),10);if(!isNaN(I)&&!isNaN(e))return{chr:g,start:I,end:e,name:A}}}}}}function Uo(A){if(!A)return!1;return new RegExp("^[A-Za-z0-9_.]+(?:\\([^)]+\\))?:(?:g\\.\\d+.*|c\\.[-*]?\\d+.*|n\\.-?\\d+.*|p\\.[A-Za-z*]*\\d+.*)$").test(A)}async function Mo(A,g,I){if(!Uo(A))return;const t=A.indexOf(":g."),e=A.indexOf(":c."),C=A.indexOf(":n."),i=A.indexOf(":p.");let B,Q;if(t>=0)B="g",Q=t;else if(e>=0)B="c",Q=e;else if(C>=0)B="n",Q=C;else{if(!(i>=0))return;B="p",Q=i}let o=A.substring(0,Q);if(o.endsWith(")")){const A=o.lastIndexOf("(");A>0&&(o=o.substring(0,A))}const s=A.substring(Q+3);if("g"===B)return function(A,g,I){if(!A)return;const t=A.match(/^\(?(\d+)(?:_(\d+|\?))?\)?\s*/);if(!t)return;const e=parseInt(t[1],10),C=t[2],i=C&&"?"!==C?parseInt(C,10):e,B=I(g),Q=B?B.chr:g;return{chr:Q,start:e-1,end:i}}(s,o,g);if("p"===B)return;if(!I)return;const E=await I(o);return E?"n"===B?function(A,g){const I=A.match(/^(-?\d+)(?:_(-?\d+))?([+-]\d+)?/);if(!I)return;const t=parseInt(I[1],10),e=null!=I[2]?parseInt(I[2],10):t;let C=Jo(g,t),i=Jo(g,e);if(C<=0||i<=0)return;if(I[3]){let A=parseInt(I[3],10);"-"===g.strand&&(A=-A),C+=A,i+=A}const B=Math.min(C,i),Q=Math.max(C,i)+1;return{chr:g.chr,start:B,end:Q}}(s,E):function(A,g){const I=A.match(/^-(\d+)(?:_-(\d+))?([+-]\d+)?/);if(I)return function(A,g){const I=parseInt(A[1],10),t=null!=A[2]?parseInt(A[2],10):null,e=Lo(g,1);if(e<=0)return;let C="+"===g.strand?e-I:e+I,i=C;null!=t&&(i="+"===g.strand?e-t:e+t);if(A[3]){let I=parseInt(A[3],10);"-"===g.strand&&(I=-I),C+=I,i+=I}const B=Math.min(C,i),Q=Math.max(C,i)+1;return{resultType:"LOCUS",chr:g.chr,start:B,end:Q}}(I,g);const t=A.match(/^\*(\d+)(?:_\*(\d+))?([+-]\d+)?/);if(t)return function(A,g){const I=parseInt(A[1],10),t=null!=A[2]?parseInt(A[2],10):null;let e=0;if(g.exons)for(const A of g.exons)e+=Zg(A);if(0===e)return;const C=Lo(g,e);if(C<=0)return;let i="+"===g.strand?C+I:C-I,B=i;null!=t&&(B="+"===g.strand?C+t:C-t);if(A[3]){let I=parseInt(A[3],10);"-"===g.strand&&(I=-I),i+=I,B+=I}const Q=Math.min(i,B),o=Math.max(i,B)+1;return{resultType:"LOCUS",chr:g.chr,start:Q,end:o}}(t,g);const e=A.match(/^(\d+)(?:_(\d+))?/);if(!e)return;const C=parseInt(e[1],10),i=e[2],B=null!=i?parseInt(i,10):C;let Q=Lo(g,C),o=Lo(g,B);if(Q<=0||o<=0)return;const s=A.match(/^(\d+)([+-]\d+)?(?:_(\d+)([+-]\d+)?)?/);if(s){if(s[2]){let A=parseInt(s[2],10);"-"===g.strand&&(A=-A),Q+=A}if(s[4]){let A=parseInt(s[4],10);"-"===g.strand&&(A=-A),o+=A}}null==i&&(o=Q);const E=Math.min(Q,o),a=Math.max(Q,o)+1;return{chr:g.chr,start:E,end:a}}(s,E):void 0}function Lo(A,g){if(g<=0)return-1;const I=A.exons;if(!I)return-1;const t="+"===A.strand,e=g-1;let C=0;for(let A=0;A<I.length;A++){const g=t?I[A]:I[I.length-1-A],i=Zg(g);if(C+i>e){const A=e-C;return t?Og(g)+A:Vg(g)-1-A}C+=i}return-1}function Jo(A,g){if(g<=0){const I=Math.abs(g);return"+"===A.strand?A.start-I:A.end+I}const I=A.exons;if(!I||0===I.length)return"+"===A.strand?A.start+g-1:A.end-g+1;const t="+"===A.strand;let e=0;const C=I.slice();t?C.sort((A,g)=>A.start-g.start):C.sort((A,g)=>g.start-A.start);for(const A of C){const I=A.end-A.start;if(e+I>=g){const I=g-e-1;return t?A.start+I:A.end-I-1}e+=I}return-1}const Ko=["name","id","gene_name","transcript_id","gene_id"];function bo(A){return A.replace(/ /g,"+").toUpperCase()}class vo{constructor(A){this.index=new Map,this.searchableFields=null!=A?A:Ko}addFeatures(A){for(const g of A){const A=g,I=A.chr,t=A.start,e=A.end;if("string"!=typeof I||"number"!=typeof t||"number"!=typeof e)continue;const C={chr:I,start:t,end:e},i=e-t,B="object"==typeof A.attributes&&null!==A.attributes?A.attributes:null;for(const g of this.searchableFields){let I=A[g];if("string"==typeof I&&I||!B||(I=B[g]),"string"!=typeof I||!I)continue;const t=bo(I),e=this.index.get(t);(!e||e.end-e.start<i)&&this.index.set(t,C)}}}search(A){return this.index.get(bo(A))}clear(){this.index.clear()}get size(){return this.index.size}}function Yo(A){return A instanceof Error?A:new Error(String(A))}const xo="rgba(68, 134, 247, 0.15)",Ho="rgba(155, 185, 129, 0.2)";let qo=0;function _o(){return`roi_${Date.now().toString(36)}_${(++qo).toString(36)}`}class To{constructor(A){var g,I;this._features=[],this.name=A.name,this.color=null!==(g=A.color)&&void 0!==g?g:A.isUserDefined?Ho:xo,this.isUserDefined=null!==(I=A.isUserDefined)&&void 0!==I&&I,A.features&&(this._features=A.features.map(A=>({...A})))}get features(){return this._features}addFeature(A){var g;const I={...A,id:A.id||_o(),color:null!==(g=A.color)&&void 0!==g?g:this.color};return this._features.push(I),this._features.sort((A,g)=>A.start-g.start),I}removeFeature(A){const g=this._features.findIndex(g=>g.id===A);if(!(g<0))return this._features.splice(g,1)[0]}updateFeature(A,g){const I=this._features.find(g=>g.id===A);if(I)return Object.assign(I,g),("start"in g||"end"in g)&&this._features.sort((A,g)=>A.start-g.start),I}findById(A){return this._features.find(g=>g.id===A)}getFeatures(A,g,I){return this._features.filter(t=>t.chr===A&&t.end>g&&t.start<I)}toJSON(){return{name:this.name,color:this.color,isUserDefined:this.isUserDefined||void 0,features:this._features.map(A=>({...A}))}}}class Wo{constructor(A){this.roiSets=[],this.callbacks=A}addROI(A,g="User-defined"){let I=this.roiSets.find(A=>A.name===g);I||(I=new To({name:g,isUserDefined:!0,features:[]}),this.roiSets.push(I));const t=I.addFeature(A);return this.callbacks.onROIAdded(t,I),t}addROISet(A){const g=new To(A);this.roiSets.push(g);for(const A of g.features)this.callbacks.onROIAdded(A,g);return g}removeROI(A){for(const g of this.roiSets){const I=g.removeFeature(A);if(I)return this.callbacks.onROIRemoved(I,g),!0}return!1}updateROI(A,g){for(const I of this.roiSets){const t=I.updateFeature(A,g);if(t)return this.callbacks.onROIChanged(t,g,I),t}}removeROISet(A){const g=this.roiSets.indexOf(A);if(g<0)return!1;this.roiSets.splice(g,1);for(const g of A.features)this.callbacks.onROIRemoved(g,A);return!0}clear(){this.roiSets=[]}getROIs(){return this.roiSets.flatMap(A=>[...A.features])}getROISets(){return this.roiSets}findROIsAtLocus(A,g,I){return this.roiSets.flatMap(t=>t.getFeatures(A,g,I))}getVisibleROIs(A){return this.findROIsAtLocus(A.chr,A.start,A.end)}serialize(){return this.roiSets.length>0?this.roiSets.map(A=>A.toJSON()):void 0}}function Po(A){var g,I,t,e,C;switch(A.type){case"bigwig":return`bigwig:${A.url}:${null!==(g=A.windowFunction)&&void 0!==g?g:"mean"}`;case"gtx":return`gtx:${A.url}:${A.experimentId}`;case"ucsc":return`ucsc:${null!==(I=A.genome)&&void 0!==I?I:""}:${null!==(t=A.track)&&void 0!==t?t:""}`;case"text":return`text:${A.url}:${null!==(e=A.format)&&void 0!==e?e:""}:${null!==(C=A.indexURL)&&void 0!==C?C:""}`;case"memory":return`memory:${Math.random()}`;default:return Po(WB(A))}}class Oo{constructor(A,g,I){this.loadDebounceTimers=new Map,this._disposed=!1,this.fetchCache=new L({cache:new X({maxSize:100}),fill:(A,g)=>A.dataSource.fetch(A.fetchRegion,A.bpPerPixel,g)}),this.callbacks=A,this.dataSourceWorkerProvider=g,this.maxTotalFeatures=null!=I?I:5e5}debouncedLoad(A,g){for(const I of A){const A=this.getFrameAbortController(I,g.id);A&&(A.abort(),this.setFrameAbortController(I,g.id,null))}const I=this.loadDebounceTimers.get(g.id);null!=I&&clearTimeout(I),this.loadDebounceTimers.set(g.id,setTimeout(()=>{this.loadDebounceTimers.delete(g.id),this.loadAllTracksForFrame(A,g)},100))}loadAllTracksIfNeeded(A,g){for(const A of this.loadDebounceTimers.values())clearTimeout(A);this.loadDebounceTimers.clear();for(const I of g)this.loadAllTracksForFrame(A,I)}loadAllTracksForFrame(A,g){for(const I of A)I.dataSource&&this.loadTrackWithDedup(I,A,g)}loadTrackWithDedup(A,g,I){var t,e,C,i;const{locus:B,viewportWidth:Q}=I;if(0===Q)return;const o=(B.end-B.start)/Q,s=null!==(t=A.frameInstances.get(I.id))&&void 0!==t?t:A.track,E=null!==(e=A.frameCaches.get(I.id))&&void 0!==e?e:A.cache,a=s.visibilityWindow,r=null!=a&&a>0&&o*Q>a;if(KC(s)&&s.setZoomedOut(r),r){const g=this.getFrameAbortController(A,I.id);return void(g&&(g.abort(),this.setFrameAbortController(A,I.id,null)))}if(E.find(B,o))return;const n=this.getFrameAbortController(A,I.id);n&&n.abort(),s.setError(null);const h=Ki(B),c=A.dataSourceConfig?Po(A.dataSourceConfig):null;if(c)for(const t of g){if(t===A||!t.dataSourceConfig)continue;const g=(null!==(C=t.frameCaches.get(I.id))&&void 0!==C?C:t.cache).find(B,o);if(g&&Po(t.dataSourceConfig)===c)return E.put(g),null===(i=A.nameIndex)||void 0===i||i.addFeatures(g.features),this.setFrameAbortController(A,I.id,null),s.setError(null),"function"==typeof s.setFeatures&&s.setFeatures(g.features),void this.callbacks.onDataLoaded(s)}const l=new AbortController;this.setFrameAbortController(A,I.id,l);const d=c?`${c}|${h.chr}:${h.start}-${h.end}|${o}`:`${A.id}|${h.chr}:${h.start}-${h.end}|${o}`;this.fetchCache.get(d,{dataSource:A.dataSource,fetchRegion:h,bpPerPixel:o},l.signal).then(t=>{var e;if(this._disposed||l.signal.aborted)return;const C={locus:h,bpPerPixel:o,features:t};E.put(C),null===(e=A.nameIndex)||void 0===e||e.addFeatures(t),this.enforceGlobalBudget(g),this.setFrameAbortController(A,I.id,null),s.setError(null),"function"==typeof s.setFeatures&&s.setFeatures(t),this.callbacks.onDataLoaded(s)}).catch(A=>{if(this._disposed||l.signal.aborted||function(A){return A instanceof DOMException&&"AbortError"===A.name||A instanceof Error&&"AbortError"===A.name||!!(A instanceof Error&&A.message.includes("aborted"))}(A))return;const g=Yo(A);E.hasData()?RC.warn("Data fetch failed, showing cached data:",g.message):(RC.error("Data fetch error:",g),s.setError(g)),this.callbacks.onDataError(s,g)})}enforceGlobalBudget(A){let g=this.getTotalFeatureCount(A);for(;g>this.maxTotalFeatures;){let I=null,t=1/0;for(const g of A){if(g.cache.size<=1)continue;const A=g.cache.getLRUAccessTime();A<t&&(t=A,I=g)}if(!I)break;g-=I.cache.evictOne()}}resizeCaches(A){const g=A.filter(A=>A.dataSource).length;if(0===g)return;const I=Math.max(1,Math.floor(50/g));for(const g of A)g.cache.maxEntries!==I&&g.cache.resize(I)}getTotalFeatureCount(A){let g=0;for(const I of A)g+=I.cache.totalFeatureCount;return g}getFrameAbortController(A,g){var I;return A.frameInstances.has(g)?null!==(I=A.frameAbortControllers.get(g))&&void 0!==I?I:null:A.abortController}setFrameAbortController(A,g,I){A.frameInstances.has(g)?I?A.frameAbortControllers.set(g,I):A.frameAbortControllers.delete(g):A.abortController=I}dispose(){this._disposed=!0,this.fetchCache.clear();for(const A of this.loadDebounceTimers.values())clearTimeout(A);this.loadDebounceTimers.clear()}destroyWorkerDataSource(A){A instanceof NC&&this.dataSourceWorkerProvider&&this.dataSourceWorkerProvider.destroy(A.instanceId)}}function Vo(A,g){if(null==g?void 0:g.authProvider)return B(g.authProvider);if(null==g?void 0:g.auth){return B(new C({oauthToken:g.auth.oauthToken,headers:g.auth.headers,withCredentials:g.auth.withCredentials}))}return A.authProvider?B(A.authProvider):void 0}let Zo=0;function zo(A,g){if(!g.dataSourceWorkerProvider)return null;const I=`ds-${Zo++}-${Date.now()}`;g.dataSourceWorkerProvider.create(I,A);const t=new NC(g.dataSourceWorkerProvider,I);return g.genome&&t.setChromNameResolver(A=>g.genome.getChromosomeName(A)),g.cumulativeOffsets&&t.setCumulativeOffsets(g.cumulativeOffsets),t}function jo(A,g){g.genome&&(A instanceof cg||A instanceof Tg||A instanceof gQ?A.setChromNameResolver(A=>g.genome.getChromosomeName(A)):A instanceof uC?(A.setChromNameResolver(A=>g.genome.getChromosomeName(A)),g.cumulativeOffsets&&A.setCumulativeOffsets(g.cumulativeOffsets)):A instanceof tQ&&A.setChromNameResolver(A=>g.genome.getChromosomeName(A))),g.cumulativeOffsets&&(A instanceof cg||A instanceof Tg||A instanceof tQ)&&A.setCumulativeOffsets(g.cumulativeOffsets)}function Xo(A,g,I){const t=zo(A,I);if(t)return{dataSource:t,workerDS:t};const e=g();return jo(e,I),{dataSource:e,workerDS:null}}function $o(A,g){const I=A.onWindowFunctionChange;I&&(A.onWindowFunctionChange=A=>{I(A),g()})}const As={LocusChange:"locuschange",FrameAdded:"frameadded",FrameRemoved:"frameremoved",TrackAdded:"trackadded",TrackRemoved:"trackremoved",TrackOrderChanged:"trackorderchanged",DataLoaded:"dataloaded",DataError:"dataerror",RenderError:"rendererror",TrackClick:"trackclick",TrackHover:"trackhover",TrackContextMenu:"trackcontextmenu",ROIAdded:"roiadded",ROIRemoved:"roiremoved",ROIChanged:"roichanged",ROIClick:"roiclick",ROIContextMenu:"roicontextmenu",ThemeChanged:"themechange",TrackConfigChanged:"trackconfigchanged",Undo:"undo",Redo:"redo",UndoStackChanged:"undostackchanged"};let gs=0;const Is={ideogram:3,ruler:2,sequence:1};function ts(A){var g;return null!==(g=Is[A])&&void 0!==g?g:0}class es{get theme(){return this._theme}get primaryFrame(){return this._frames[0]}get frames(){return this._frames}get locus(){return this._frames[0].locus}get viewportWidth(){return this._frames[0].viewportWidth}canUndo(A){return this._undoManager.canUndo(A)}canRedo(A){return this._undoManager.canRedo(A)}get state(){return this._state||(this._state=new Do(this)),this._state}constructor(A){var g,I,t,e,C,i,B,Q;this.managedTracks=[],this._deferSort=!1,this._suppressImmediateLoad=!1,this.events=new Zi,this._undoManager=new mo,this.genome=null===A.genome?void 0:null!==(g=A.genome)&&void 0!==g?g:LB,this.chromSizes=null===(I=this.genome)||void 0===I?void 0:I.chromSizes,this.cumulativeOffsets=null===(t=this.genome)||void 0===t?void 0:t.cumulativeOffsets,this.sequenceProvider=null===(e=this.genome)||void 0===e?void 0:e.sequence;const o=this.clamp({...A.locus}),s=null!==(C=A.viewportWidth)&&void 0!==C?C:0;this._frames=[Mi(o,s,"main")],this.canvasProvider=null!==(i=A.canvasProvider)&&void 0!==i?i:S,this.workerProvider=A.workerProvider,this.dataSourceWorkerProvider=function(A){if(!A||"object"!=typeof A)return!1;const g=A;return"function"==typeof g.create&&"function"==typeof g.fetch&&"function"==typeof g.destroy}(A.workerProvider)?A.workerProvider:void 0,this.popupProvider=null!==(B=A.popupProvider)&&void 0!==B?B:void 0,this.contextMenuProvider=null!==(Q=A.contextMenuProvider)&&void 0!==Q?Q:void 0,this._theme=XC(A.theme),this.authProvider=A.authProvider,A.stateProjection&&(this._state=A.stateProjection),this.roiManager=new Wo({onROIAdded:(A,g)=>this.events.emit(As.ROIAdded,{roi:A,set:g}),onROIRemoved:(A,g)=>this.events.emit(As.ROIRemoved,{roi:A,set:g}),onROIChanged:(A,g,I)=>this.events.emit(As.ROIChanged,{roi:A,changes:g,set:I})}),this.dataManager=new Oo({onDataLoaded:A=>this.events.emit(As.DataLoaded,{track:A}),onDataError:(A,g)=>this.events.emit(As.DataError,{track:A,error:g})},this.dataSourceWorkerProvider)}factoryContext(){return{locus:this._frames[0].locus,canvasProvider:this.canvasProvider,theme:this._theme,genome:this.genome,chromSizes:this.chromSizes,cumulativeOffsets:this.cumulativeOffsets,sequenceProvider:this.sequenceProvider,dataSourceWorkerProvider:this.dataSourceWorkerProvider,authProvider:this.authProvider}}clamp(A){return this.chromSizes?rg(A,this.chromSizes,this.cumulativeOffsets):A}updateIdeogramCytobands(){var A,g;const I=this._frames[0].locus.chr,t=this.genome;if(!(null==t?void 0:t.getCytobands))return;const e=null!==(A=t.getCytobands(I))&&void 0!==A?A:[],C=null!==(g=t.getChromosomeLength(I))&&void 0!==g?g:0;for(const A of this.managedTracks)"ideogram"===A.track.type&&A.track.setCytobands(e,C)}on(A,g){return this.events.on(A,g)}off(A,g){this.events.off(A,g)}_snapshotForUndo(A){this._undoManager.snapshot(A,this.toJSON()),this.events.emit(As.UndoStackChanged,{canUndo:this._undoManager.canUndo(),canRedo:this._undoManager.canRedo()})}undo(A){const g=this._undoManager.undo(this.toJSON(),A);if(!g)return!1;this._undoManager.pause();try{this.loadSession(g.session)}finally{this._undoManager.resume()}return this.events.emit(As.Undo,{entry:g}),this.events.emit(As.UndoStackChanged,{canUndo:this._undoManager.canUndo(),canRedo:this._undoManager.canRedo()}),!0}redo(A){const g=this._undoManager.redo(this.toJSON(),A);if(!g)return!1;this._undoManager.pause();try{this.loadSession(g.session)}finally{this._undoManager.resume()}return this.events.emit(As.Redo,{entry:g}),this.events.emit(As.UndoStackChanged,{canUndo:this._undoManager.canUndo(),canRedo:this._undoManager.canRedo()}),!0}clearUndoHistory(){this._undoManager.clear(),this.events.emit(As.UndoStackChanged,{canUndo:!1,canRedo:!1})}setViewportWidth(A){this._frames[0].viewportWidth=A,Li(this._frames[0]),this.render(),this.loadAllTracksIfNeeded()}addTrack(A,g,I,t,e,C){var i,B;this._snapshotForUndo("track-add"),null!=C||(C=`${null!=(B=A.type)?B:"track"}-${gs++}`);const Q={id:C,track:A,dataSource:null!==(i=g)&&void 0!==i?i:null,dataSourceConfig:null!=I?I:null,cache:new bi,abortController:null,frameAbortControllers:new Map,maxTrackHeight:t,order:e,frameInstances:new Map,frameCaches:new Map,searchable:!1,nameIndex:null};if(A.onBeforeConfigChange=()=>{this._snapshotForUndo("track-config")},A.onConfigChanged=()=>{this.events.emit(As.TrackConfigChanged,{track:A})},A instanceof hQ&&(A.onExpandedChanged=(A,g)=>{this._syncCompositeExpansion(g,A)},A.onChildrenChanged=A=>{A.expanded&&this._syncCompositeExpansion(A,!0)}),this.managedTracks.push(Q),this.sortTracks(),A.setTheme(this._theme),A.setLocus(this._frames[0].locus),this.events.emit(As.TrackAdded,{track:A}),this.dataManager.resizeCaches(this.managedTracks),g&&!this._suppressImmediateLoad)for(const A of this._frames)this.dataManager.loadTrackWithDedup(Q,this.managedTracks,A);return C}removeTrack(A){this._snapshotForUndo("track-remove");const g="string"==typeof A?this.managedTracks.findIndex(g=>g.id===A):this.managedTracks.findIndex(g=>g.track===A);if(g>=0){const A=this.managedTracks[g];A.abortController&&A.abortController.abort();for(const g of A.frameAbortControllers.values())null==g||g.abort();A.frameAbortControllers.clear(),A.dataSource&&this.dataManager.destroyWorkerDataSource(A.dataSource);for(const g of A.frameInstances.values())g.detach();A.frameInstances.clear(),A.frameCaches.clear(),this.managedTracks.splice(g,1),this.dataManager.resizeCaches(this.managedTracks),this.events.emit(As.TrackRemoved,{track:A.track})}}_ensureFrameInstances(A){if(!(this._frames.length<=1))for(const g of this._frames){if(g.id===this._frames[0].id)continue;if(A.frameInstances.has(g.id))continue;const I=this._cloneTrackForFrame(A,g);I&&(A.frameInstances.set(g.id,I),A.frameCaches.set(g.id,new bi))}}_cloneTrackForFrame(A,g){const I=A.track.serializeConfig(this._theme);try{const A=so(I,g.locus,{canvasProvider:this.canvasProvider,theme:this.theme,sequenceProvider:this.sequenceProvider});return A.track.setTheme(this._theme),A.track}catch(I){return RC.warn(`Failed to clone track ${A.id} for frame ${g.id}`),null}}_removeFrameInstances(A){for(const g of this.managedTracks){const I=g.frameInstances.get(A);I&&(I.detach(),g.frameInstances.delete(A)),g.frameCaches.delete(A)}}getTrackForFrame(A,g){var I;return g===this._frames[0].id?A.track:null!==(I=A.frameInstances.get(g))&&void 0!==I?I:A.track}moveTrack(A,g){this._snapshotForUndo("track-reorder");const I=this.managedTracks.findIndex(g=>g.track===A);if(I<0)return;const t=Math.max(0,Math.min(g,this.managedTracks.length-1));if(I===t)return;const[e]=this.managedTracks.splice(I,1);this.managedTracks.splice(t,0,e),this._assignOrderFromPosition(),this.events.emit(As.TrackOrderChanged,{tracks:this.managedTracks.map(A=>A.track)})}_syncCompositeExpansion(A,g){var I;const t=this.managedTracks.find(g=>g.track===A);if(!t)return;const e=this._deferSort;this._deferSort=!0;try{const e=this.managedTracks.filter(A=>A.parentId===t.id);this._undoManager.pause();try{for(const A of e)this.removeTrack(A.id)}finally{this._undoManager.resume()}if(g){void 0===t.order&&this._assignOrderFromPosition();const g=null!==(I=t.order)&&void 0!==I?I:0,e=A.getChildren();this._undoManager.pause();try{for(let A=0;A<e.length;A++){const I=e[A],C=g-.1*(A+1);this.addTrack(I.track,void 0,void 0,void 0,C);const i=this.managedTracks.find(A=>A.track===I.track);i&&(i.isEphemeral=!0,i.parentId=t.id,I.name&&(i.name=I.name))}}finally{this._undoManager.resume()}}}finally{this._deferSort=e}this.sortTracks(),this.events.emit(As.TrackOrderChanged,{tracks:this.managedTracks.map(A=>A.track)})}sortTracks(){this._deferSort||(this.managedTracks.sort((A,g)=>{var I,t;const e=(null!==(I=A.order)&&void 0!==I?I:0)+ts(A.track.type);return(null!==(t=g.order)&&void 0!==t?t:0)+ts(g.track.type)-e}),this.onTracksSorted())}onTracksSorted(){}_assignOrderFromPosition(){const A=this.managedTracks.length;for(let g=0;g<A;g++)this.managedTracks[g].order=10*(A-g)}findMT(A){return this.managedTracks.find(g=>g.track===A)}getTrackOrder(){return this.managedTracks.map(A=>A.track)}getManagedTrack(A){return this.managedTracks.find(g=>g.id===A)}getTrack(A){var g;return null===(g=this.managedTracks.find(g=>g.id===A))||void 0===g?void 0:g.track}getManagedTracks(){return this.managedTracks}findTracks(A){return No(this.managedTracks,A)}removeTracks(A){const g=No(this.managedTracks,A);if(0===g.length)return 0;this._snapshotForUndo("track-remove"),this._undoManager.pause();try{for(const A of g)this.removeTrack(A.id)}finally{this._undoManager.resume()}return g.length}updateTrackMetadata(A,g){const I=No(this.managedTracks,A);for(const A of I)A.metadata={...A.metadata,...g};return I.length}setLocus(A){this.setFrameLocus("main",A)}setFrameLocus(A,g){const I=this._frames.find(g=>g.id===A);if(!I)throw new Error(`Unknown frame: ${A}`);const t=I.locus.chr;I.locus=this.clamp({...g}),Li(I);for(const g of this.managedTracks)this.getTrackForFrame(g,A).setLocus(I.locus);I.locus.chr!==t&&this.updateIdeogramCytobands(),this.dataManager.debouncedLoad(this.managedTracks,I),this.events.emit(As.LocusChange,{frames:[I],sourceFrameId:I.id,locus:this._frames[0].locus})}getFrame(A){return this._frames.find(g=>g.id===A)}getFrames(){return this._frames}addFrame(A,g){const I=this.clamp({...A}),t=Ui();let e=this._frames.length;if(g){const A=this._frames.findIndex(A=>A.id===g);A>=0&&(e=A+1)}const C=this._frames[0].viewportWidth*this._frames.length/(this._frames.length+1),i=Mi(I,C,t);this._frames.splice(e,0,i);for(const A of this._frames)A.viewportWidth=C,Li(A);for(const A of this.managedTracks)this._ensureFrameInstances(A);return this.events.emit(As.FrameAdded,{frame:i}),i}removeFrame(A){if(this._frames.length<=1)throw new Error("Cannot remove the last reference frame");const g=this._frames.findIndex(g=>g.id===A);if(g<0)throw new Error(`Unknown frame: ${A}`);const I=0===g;this._removeFrameInstances(A),this._frames.splice(g,1);const t=this._frames[0].viewportWidth*(this._frames.length+1)/this._frames.length;for(const A of this._frames)A.viewportWidth=t,Li(A);if(1===this._frames.length)for(const A of this.managedTracks){for(const g of A.frameInstances.values())g.detach();A.frameInstances.clear(),A.frameCaches.clear()}if(I){const A=this._frames[0];for(const g of this.managedTracks)g.track.setLocus(A.locus);for(const g of this.managedTracks)g.dataSource&&this.dataManager.loadTrackWithDedup(g,this.managedTracks,A)}this.events.emit(As.FrameRemoved,{frameId:A})}async search(A,g){if(!A||!A.trim())return!1;const I=A.trim().split(/[\s;]+/).filter(Boolean);if(0===I.length)return!1;let t=await this._resolveSearchToken(I[0]);if(!t&&I.length>1&&(t=await this._resolveSearchToken(A.trim().replace(/ /g,"+")),t)){const A=null!=g?g:this._frames[0].id;return this.setFrameLocus(A,t),!0}if(!t)return!1;const e=null!=g?g:this._frames[0].id;this.setFrameLocus(e,t);for(let A=1;A<I.length;A++){const g=await this._resolveSearchToken(I[A]);g&&this.addFrame(g,this._frames[this._frames.length-1].id)}return!0}searchLocalTracks(A){for(const g of this.managedTracks){if(!g.searchable||!g.nameIndex)continue;const I=g.nameIndex.search(A);if(I){return{chr:this.genome?this.genome.getChromosomeName(I.chr):I.chr,start:I.start,end:I.end}}}return null}async _resolveSearchToken(A){var g;const I=A.trim();if(!I)return null;if(this.genome&&Uo(I)){const A=await Mo(I,A=>this.genome.getAliasRecord(A),this._createTranscriptProvider());if(A){return{chr:this.genome.getChromosomeName(A.chr),start:A.start,end:A.end}}}const t=sg(I,this.cumulativeOffsets);if(t){if(!this.genome)return t;if(null!=this.genome.getChromosomeLength(this.genome.getChromosomeName(t.chr)))return t.chr=this.genome.getChromosomeName(t.chr),t}if(this.genome){const A=this.genome.getChromosomeName(I),g=this.genome.getChromosomeLength(A);if(null!=g)return{chr:A,start:0,end:g}}if(null===(g=this.genome)||void 0===g?void 0:g.getManeTranscript){const A=await this.genome.getManeTranscript(I);if(null==A?void 0:A.chr){return{chr:this.genome.getChromosomeName(A.chr),start:A.start,end:A.end}}}const e=this.searchLocalTracks(I);if(e)return e;if(this.genome){const A=await po(I,this.genome.id);if(A){return{chr:this.genome.getChromosomeName(A.chr),start:A.start,end:A.end}}}return null}_createTranscriptProvider(){var A;if(null===(A=this.genome)||void 0===A?void 0:A.getManeTranscript)return async A=>{const g=await this.genome.getManeTranscript(A);if((null==g?void 0:g.chr)&&g.strand)return g}}zoomIn(A=2,g){this.zoomByFactor(1/A,g)}zoomOut(A=2,g){this.zoomByFactor(A,g)}zoomByFactor(A,g){this.zoomAroundCenter(A,void 0,g)}zoomAroundCenter(A,g,I){var t;const e=I&&null!==(t=this._frames.find(A=>A.id===I))&&void 0!==t?t:this._frames[0];if(og(e.locus))return;const C=null!=g?g:(e.locus.start+e.locus.end)/2,i=e.locus.end-e.locus.start;let B=i*A;if(A>1&&this.chromSizes&&e.viewportWidth>0){const A=this.chromSizes[e.locus.chr];if(null!=A){if(i>=A&&this.cumulativeOffsets)return void this.setFrameLocus(e.id,{chr:"all",start:0,end:this.cumulativeOffsets.totalLength});B=Math.min(B,A)}}if(null!=g){const A=(g-e.locus.start)/i;this.setFrameLocus(e.id,{chr:e.locus.chr,start:g-A*B,end:g-A*B+B})}else{const A=B/2;this.setFrameLocus(e.id,{chr:e.locus.chr,start:C-A,end:C+A})}}reloadData(){for(const A of this.managedTracks)A.dataSource&&A.cache.clear();this.loadAllTracksIfNeeded()}getCachedFeatures(A){var g;const I=this.managedTracks.find(g=>g.track===A);return null===(g=null==I?void 0:I.cache.getMostRecent())||void 0===g?void 0:g.features}render(){if(0!==this._frames[0].viewportWidth)for(const A of this.managedTracks){try{A.track.render()}catch(g){const I=Yo(g);RC.error("Render error:",I),A.track.setError(I),this.events.emit(As.RenderError,{track:A.track,error:I})}for(const g of A.frameInstances.values())try{g.render()}catch(A){const I=Yo(A);RC.error("Render error (frame instance):",I),g.setError(I)}}}addROI(A,g="User-defined"){return this._snapshotForUndo("roi"),this.roiManager.addROI(A,g)}addROISet(A){return this._snapshotForUndo("roi"),this.roiManager.addROISet(A)}removeROI(A){return this._snapshotForUndo("roi"),this.roiManager.removeROI(A)}updateROI(A,g){return this._snapshotForUndo("roi"),this.roiManager.updateROI(A,g)}removeROISet(A){return this._snapshotForUndo("roi"),this.roiManager.removeROISet(A)}clearROIs(){this._snapshotForUndo("roi"),this.roiManager.clear()}getROIs(){return this.roiManager.getROIs()}getROISets(){return this.roiManager.getROISets()}findROIsAtLocus(A,g,I){return this.roiManager.findROIsAtLocus(A,g,I)}getVisibleROIs(){return this.roiManager.getVisibleROIs(this._frames[0].locus)}toSVG(A){var g,I;const t=null!==(g=null==A?void 0:A.width)&&void 0!==g?g:this._frames[0].viewportWidth;if(0===t)throw new Error("Cannot export SVG with zero viewport width");let e=0;const C=[];for(const A of this.managedTracks){const g=A.track.height||50;C.push(g),e+=g}const i=new Vi({width:t,height:e,viewbox:{x:0,y:0,width:t,height:e},backdropColor:null!==(I=null==A?void 0:A.backdropColor)&&void 0!==I?I:"white"});let B=0;for(let A=0;A<this.managedTracks.length;A++){const g=this.managedTracks[A].track,I=C[A],e=`track_${A}_${g.type}`;i.saveWithTranslationAndClipRect(e,0,B,t,I,0),g.renderToContext&&g.renderToContext(i,t,I),i.restore(),B+=I}const Q=this.getVisibleROIs();if(Q.length>0){const A=this._frames[0].locus,g=(A.end-A.start)/t;vi(i,Q,{pixelWidth:t,bpStart:A.start,bpPerPixel:g,viewportWidth:t},{totalHeight:e})}return i.setHeight(e),i.getSerializedSvg(!0)}toJSON(){var A;const g=[];for(const I of this.managedTracks){if(I.isEphemeral)continue;const t=I.track.serializeConfig(this.theme);t.id=I.id,I.name&&(t.name=I.name),null!=I.order&&(t.order=I.order),I.metadata&&(t.metadata=I.metadata),I.searchable&&(t.searchable=!0),(null===(A=I.nameIndex)||void 0===A?void 0:A.searchableFields)&&(t.searchableFields=[...I.nameIndex.searchableFields]),I.dataSourceConfig&&"ruler"!==t.type&&"sequence"!==t.type&&"merged"!==t.type&&"wigGroup"!==t.type&&"ideogram"!==t.type&&(t.dataSource=I.dataSourceConfig),g.push(t)}const I=this.genome?{id:this.genome.id,name:this.genome.name}:void 0;return{version:Eo,frames:this._frames.map(A=>({id:A.id,locus:{...A.locus},viewportWidth:A.viewportWidth||void 0})),locus:{...this._frames[0].locus},viewportWidth:this._frames[0].viewportWidth||void 0,genome:I,tracks:g,rois:this.roiManager.serialize()}}loadSession(A,g){var I,t;this._snapshotForUndo("session-load");for(const A of this.managedTracks){A.abortController&&A.abortController.abort();for(const g of A.frameAbortControllers.values())null==g||g.abort();A.frameAbortControllers.clear()}this.managedTracks=[],this.roiManager.clear(),A.frames&&A.frames.length>0?this._frames=A.frames.map(A=>{var g;return Mi({...A.locus},null!==(g=A.viewportWidth)&&void 0!==g?g:this._frames[0].viewportWidth,A.id)}):(this._frames[0].locus={...A.locus},A.viewportWidth&&(this._frames[0].viewportWidth=A.viewportWidth),Li(this._frames[0]));const e={canvasProvider:this.canvasProvider,theme:null==g?void 0:g.theme,sequenceProvider:this.sequenceProvider},C=this.factoryContext();this._deferSort=!0;try{for(const g of A.tracks){const A=ao(g,this._frames[0].locus,e);let i=A.dataSource;if(i&&A.dataSourceConfig&&this.dataSourceWorkerProvider){const g=A.dataSourceConfig.type;if("bigwig"===g||"gtx"===g||"text"===g||"ucsc"===g){const g=zo(A.dataSourceConfig,C);g&&(i=g)}}!this.dataSourceWorkerProvider&&i&&jo(i,C),this.addTrack(A.track,null!=i?i:void 0,null!==(I=A.dataSourceConfig)&&void 0!==I?I:void 0,void 0,null!==(t=A.order)&&void 0!==t?t:void 0,g.id);const B=this.findMT(A.track);A.name&&(B.name=A.name),g.metadata&&(B.metadata=g.metadata)}}finally{this._deferSort=!1,this.sortTracks()}if(A.rois)for(const g of A.rois)this.roiManager.addROISet(g);this.events.emit(As.LocusChange,{frames:[...this._frames],locus:this._frames[0].locus})}static fromSession(A,g){var I,t;const e=new es({locus:A.locus,viewportWidth:null!==(I=A.viewportWidth)&&void 0!==I?I:null==g?void 0:g.viewportWidth,canvasProvider:null==g?void 0:g.canvasProvider,workerProvider:null==g?void 0:g.workerProvider,theme:null!==(t=A.theme)&&void 0!==t?t:null==g?void 0:g.theme});return e.loadSession(A,g),e}addTrackFromConfig(A){var g;if(A.id){const g=this.getManagedTrack(A.id);if(g)return g.track}const I=so(A,this._frames[0].locus,{canvasProvider:this.canvasProvider,theme:this.theme,sequenceProvider:this.sequenceProvider}),t=this.factoryContext();let e=I.dataSourceConfig;e&&!TB(e.type)&&(e=WB(e));let C=I.dataSource;if(C&&e&&this.dataSourceWorkerProvider){const A=e.type;if("bigwig"===A||"gtx"===A||"text"===A||"ucsc"===A){const A=zo(e,t);A&&(C=A)}}const i=C!==I.dataSource;if(C&&!i)if("childSources"in C&&Array.isArray(C.childSources))for(const A of C.childSources)jo(A,t);else jo(C,t);this.addTrack(I.track,null!=C?C:void 0,null!=e?e:void 0,void 0,null!==(g=I.order)&&void 0!==g?g:void 0,A.id);const B=this.findMT(I.track);return I.name&&(B.name=I.name),A.metadata&&(B.metadata=A.metadata),I.searchable&&(B.searchable=!0,B.nameIndex=new vo(I.searchableFields)),I.track}registerFactory(A){this.addTrack(A.track,A.dataSource,A.dataSourceConfig,A.maxTrackHeight,A.order);const g=this.findMT(A.track);if(A.metadata&&(g.metadata=A.metadata),A.searchable&&(g.searchable=!0,g.nameIndex=new vo(A.searchableFields)),A.onRegistered){const g=A.track;A.onRegistered(()=>{const A=this.managedTracks.find(A=>A.track===g);return null!=A?A:{cache:new bi,dataSourceConfig:null}})}return A.track}addRuler(A){return this.registerFactory(function(A,g){const{canvas:I}=A.canvasProvider.createCanvas(0,0);return{track:new li(I,{locus:A.locus,config:null==g?void 0:g.config,theme:A.theme,canvasProvider:A.canvasProvider,cumulativeOffsets:A.cumulativeOffsets,chromSizes:A.chromSizes}),maxTrackHeight:null==g?void 0:g.maxTrackHeight}}(this.factoryContext(),A))}addWigTrack(A,g){const I=function(A,g,I){var t;const{canvas:e}=A.canvasProvider.createCanvas(0,0),C=null!==(t=null==I?void 0:I.windowFunction)&&void 0!==t?t:"mean",i=new mi(e,{locus:A.locus,features:[],config:null==I?void 0:I.config,theme:A.theme,canvasProvider:A.canvasProvider,name:null==I?void 0:I.name,sequenceProvider:A.sequenceProvider}),B={type:"bigwig",url:g,windowFunction:C,...null==I?void 0:I.auth},Q=Vo(A,I),{dataSource:o,workerDS:s}=Xo(B,()=>new cg(g,C,Q),A);return{track:i,dataSource:o,dataSourceConfig:B,maxTrackHeight:null==I?void 0:I.maxTrackHeight,metadata:null==I?void 0:I.metadata,onRegistered:A=>{i.onWindowFunctionChange=g=>{s?s.setWindowFunction(g):o.setWindowFunction(g);const I=A();I&&(I.cache.clear(),I.dataSourceConfig&&"bigwig"===I.dataSourceConfig.type&&(I.dataSourceConfig.windowFunction=g))}}}}(this.factoryContext(),A,g),t=this.registerFactory(I);return I.onRegistered&&$o(t,()=>this.loadAllTracksIfNeeded()),t}addGtxTrack(A,g){const I=function(A,g,I){var t;const{canvas:e}=A.canvasProvider.createCanvas(0,0),C=null!==(t=I.windowFunction)&&void 0!==t?t:"mean",i=new mi(e,{locus:A.locus,features:[],config:I.config,theme:A.theme,canvasProvider:A.canvasProvider,name:I.name,sequenceProvider:A.sequenceProvider}),B={type:"gtx",url:g,experimentId:I.experimentId,windowFunction:C,...null==I?void 0:I.auth},Q=Vo(A,I),{dataSource:o,workerDS:s}=Xo(B,()=>new Tg(g,I.experimentId,C,Q),A);return{track:i,dataSource:o,dataSourceConfig:B,maxTrackHeight:null==I?void 0:I.maxTrackHeight,metadata:null==I?void 0:I.metadata,onRegistered:A=>{i.onWindowFunctionChange=g=>{s?s.setWindowFunction(g):o.setWindowFunction(g);const I=A();I&&(I.cache.clear(),I.dataSourceConfig&&"gtx"===I.dataSourceConfig.type&&(I.dataSourceConfig.windowFunction=g))}}}}(this.factoryContext(),A,g),t=this.registerFactory(I);return I.onRegistered&&$o(t,()=>this.loadAllTracksIfNeeded()),t}addGeneTrack(A){return this.registerFactory(function(A,g){var I,t;const{canvas:e}=A.canvasProvider.createCanvas(0,0),C=new ai(e,{locus:A.locus,features:[],config:null==g?void 0:g.config,theme:A.theme,canvasProvider:A.canvasProvider,name:null!==(I=null==g?void 0:g.name)&&void 0!==I?I:"Genes"}),i=null==g?void 0:g.genome,B=null==g?void 0:g.track,Q={type:"ucsc",genome:i,track:B},{dataSource:o}=Xo(Q,()=>new II({genome:i,track:B}),A);return{track:C,dataSource:o,dataSourceConfig:Q,maxTrackHeight:null==g?void 0:g.maxTrackHeight,metadata:null==g?void 0:g.metadata,order:-1,searchable:null===(t=null==g?void 0:g.searchable)||void 0===t||t,searchableFields:null==g?void 0:g.searchableFields}}(this.factoryContext(),A))}addBedTrack(A,g){return this.registerFactory(function(A,g,I){var t;const{canvas:e}=A.canvasProvider.createCanvas(0,0),C=null==I?void 0:I.format,i=new ai(e,{locus:A.locus,features:[],config:null==I?void 0:I.config,theme:A.theme,canvasProvider:A.canvasProvider,name:null==I?void 0:I.name}),B={type:"text",url:g,format:C,indexURL:null==I?void 0:I.indexURL,indexed:null==I?void 0:I.indexed,...null==I?void 0:I.auth},Q=Vo(A,I),{dataSource:o}=Xo(B,()=>new uC({url:g,format:C,indexURL:null==I?void 0:I.indexURL,indexed:null==I?void 0:I.indexed,fetchImpl:Q}),A);return{track:i,dataSource:o,dataSourceConfig:B,maxTrackHeight:null==I?void 0:I.maxTrackHeight,metadata:null==I?void 0:I.metadata,searchable:null===(t=null==I?void 0:I.searchable)||void 0===t||t,searchableFields:null==I?void 0:I.searchableFields}}(this.factoryContext(),A,g))}addBigBedTrack(A,g){return this.registerFactory(function(A,g,I){var t;const{canvas:e}=A.canvasProvider.createCanvas(0,0),C=new ai(e,{locus:A.locus,features:[],config:null==I?void 0:I.config,theme:A.theme,canvasProvider:A.canvasProvider,name:null==I?void 0:I.name}),i={type:"bigbed",url:g,...null==I?void 0:I.auth},B=Vo(A,I),{dataSource:Q}=Xo(i,()=>new gQ(g,B),A);return{track:C,dataSource:Q,dataSourceConfig:i,maxTrackHeight:null==I?void 0:I.maxTrackHeight,metadata:null==I?void 0:I.metadata,searchable:null===(t=null==I?void 0:I.searchable)||void 0===t||t,searchableFields:null==I?void 0:I.searchableFields}}(this.factoryContext(),A,g))}addInteractionTrack(A,g){return this.registerFactory(function(A,g,I){var t;const{canvas:e}=A.canvasProvider.createCanvas(0,0),C=null==I?void 0:I.format,i=new sQ(e,{locus:A.locus,features:[],config:null==I?void 0:I.config,theme:A.theme,canvasProvider:A.canvasProvider,name:null==I?void 0:I.name}),B={type:"text",url:g,format:C,indexURL:null==I?void 0:I.indexURL,indexed:null==I?void 0:I.indexed,...null==I?void 0:I.auth},Q=Vo(A,I),{dataSource:o}=Xo(B,()=>new uC({url:g,format:C,indexURL:null==I?void 0:I.indexURL,indexed:null==I?void 0:I.indexed,fetchImpl:Q}),A);return{track:i,dataSource:o,dataSourceConfig:B,metadata:null==I?void 0:I.metadata,searchable:null===(t=null==I?void 0:I.searchable)||void 0===t||t,searchableFields:null==I?void 0:I.searchableFields}}(this.factoryContext(),A,g))}addWigTrackWithFeatures(A,g){return this.registerFactory(function(A,g,I){const{canvas:t}=A.canvasProvider.createCanvas(0,0),e=new mi(t,{locus:A.locus,features:[],config:null==I?void 0:I.config,theme:A.theme,canvasProvider:A.canvasProvider,name:null==I?void 0:I.name,sequenceProvider:A.sequenceProvider}),C=new tQ(g);return jo(C,A),{track:e,dataSource:C,dataSourceConfig:{type:"memory"},maxTrackHeight:null==I?void 0:I.maxTrackHeight,metadata:null==I?void 0:I.metadata}}(this.factoryContext(),A,g))}addBedTrackWithFeatures(A,g){return this.registerFactory(function(A,g,I){var t;const{canvas:e}=A.canvasProvider.createCanvas(0,0),C=new ai(e,{locus:A.locus,features:[],config:null==I?void 0:I.config,theme:A.theme,canvasProvider:A.canvasProvider,name:null==I?void 0:I.name}),i=new tQ(g);return jo(i,A),{track:C,dataSource:i,dataSourceConfig:{type:"memory"},maxTrackHeight:null==I?void 0:I.maxTrackHeight,metadata:null==I?void 0:I.metadata,searchable:null===(t=null==I?void 0:I.searchable)||void 0===t||t,searchableFields:null==I?void 0:I.searchableFields}}(this.factoryContext(),A,g))}addSequenceTrack(A){const g={type:"sequence",config:null==A?void 0:A.config},I=this.addTrackFromConfig(g);if(null!=(null==A?void 0:A.maxTrackHeight)){const g=this.managedTracks.find(A=>A.track===I);g&&(g.maxTrackHeight=A.maxTrackHeight)}return I}addIdeogramTrack(A){return this.registerFactory(function(A,g){var I;const{canvas:t}=A.canvasProvider.createCanvas(0,0);let e=null==g?void 0:g.cytobands,C=null==g?void 0:g.chrLength;return!e&&(null===(I=A.genome)||void 0===I?void 0:I.getCytobands)&&(e=A.genome.getCytobands(A.locus.chr),C=A.genome.getChromosomeLength(A.locus.chr)),{track:new $Q(t,{locus:A.locus,config:null==g?void 0:g.config,theme:A.theme,canvasProvider:A.canvasProvider,cytobands:null!=e?e:[],chrLength:null!=C?C:0})}}(this.factoryContext(),A))}mergeTracks(A,g){if(A.length<2)throw new Error("mergeTracks requires at least 2 track IDs");this._snapshotForUndo("track-add"),this._undoManager.pause();try{const I=[];for(const g of A){const A=this.managedTracks.find(A=>A.id===g);if(!A)throw new Error(`Track not found: "${g}"`);I.push(A)}const t=I[0].order,e=I.map(A=>({track:A.track,name:A.name})),C=I.map(A=>A.dataSource).filter(A=>null!=A),i=I.map(A=>A.name),{canvas:B}=this.canvasProvider.createCanvas(0,0),Q=new cQ(B,{locus:this._frames[0].locus,childTracks:e,config:null==g?void 0:g.config,theme:this.theme,canvasProvider:this.canvasProvider,name:null==g?void 0:g.name}),o=C.length>0?new dQ(C,i):null;for(const A of I)A.dataSource=null,this.removeTrack(A.id);if(this.addTrack(Q,null!=o?o:void 0,void 0,void 0,t),null==g?void 0:g.name){const A=this.managedTracks.find(A=>A.track===Q);A&&(A.name=g.name)}return Q}finally{this._undoManager.resume()}}separateMergedTrack(A){const g=this.managedTracks.find(g=>g.id===A);if(!g)throw new Error(`Track not found: "${A}"`);if(!(g.track instanceof cQ))throw new Error(`Track "${A}" is not a merged track`);this._snapshotForUndo("track-remove"),this._undoManager.pause();try{const A=g.track,I=g.order,t=A.childTracks,e=g.dataSource instanceof dQ?g.dataSource.childSources:[];g.dataSource=null,this.removeTrack(g.id);const C=[];for(let A=0;A<t.length;A++){const g=t[A],i=e[A];if(this.addTrack(g.track,i,void 0,void 0,I),g.name){const A=this.managedTracks.find(A=>A.track===g.track);A&&(A.name=g.name)}C.push(g.track)}return C}finally{this._undoManager.resume()}}setTheme(A){this._snapshotForUndo("theme"),this._theme=XC(A);for(const A of this.managedTracks){A.track.setTheme(this._theme);for(const g of A.frameInstances.values())g.setTheme(this._theme)}this.events.emit(As.ThemeChanged,{theme:this._theme})}dispose(){this.dataManager.dispose(),this.events.removeAllListeners(),this.popupProvider&&this.popupProvider.dispose(),this.contextMenuProvider&&this.contextMenuProvider.dispose();for(const A of this.managedTracks){A.abortController&&A.abortController.abort();for(const g of A.frameAbortControllers.values())null==g||g.abort();A.frameAbortControllers.clear(),A.dataSource&&this.dataManager.destroyWorkerDataSource(A.dataSource)}this.managedTracks=[],this.roiManager.clear()}resolveInteraction(A,g,I){const t=A.hitTest(g,I);if(0===t.length)return null;const e=this._frames[0],C=e.viewportWidth>0?(e.locus.end-e.locus.start)/e.viewportWidth:0;return{track:A,genomicLocation:e.locus.start+g*C,features:t.map(A=>A.feature),popupData:t.flatMap(A=>A.popupData),x:g,y:I}}loadAllTracksIfNeeded(){this.dataManager.loadAllTracksIfNeeded(this.managedTracks,this._frames)}}class Cs extends Error{constructor(A,g){super(g),this.code=A,this.name="CommandError"}}function is(A){const g={};return void 0!==A.id&&(g.id=A.id),void 0!==A.nameRegex?g.name=new RegExp(A.nameRegex,"i"):void 0!==A.name&&(g.name=A.name),void 0!==A.type&&(g.type=A.type),void 0!==A.where&&(g.where=A.where),g}class Bs{constructor(A,g){this.browser=A,this.options=null!=g?g:{}}async dispatch(A){switch(A.command){case"get_browser_state":return this.handleGetState(A);case"navigate":return this.handleNavigate(A);case"modify_tracks":return this.handleModifyTracks(A);case"query_features":return this.handleQueryFeatures(A);case"annotate":return this.handleAnnotate();case"set_layout":return this.handleSetLayout(A);case"export_view":return this.handleExportView(A);case"manage_rois":return this.handleManageROIs(A);case"subscribe_events":return this.handleSubscribeEvents(A);default:throw new Cs("UNKNOWN_COMMAND",`Unknown command: ${A.command}`)}}handleGetState(A){return this.browser.state.getState(A.record?{record:A.record}:void 0)}async handleNavigate(A){if(!A.locus&&!A.zoom)throw new Cs("INVALID_ARGS","navigate requires at least one of: locus, zoom");let g=!0;if(A.locus)if(A.frameId){const I=sg(A.locus);if(I)this.browser.setFrameLocus(A.frameId,I);else{const I=await this.browser.search(A.locus);if(!I)throw new Cs("NAVIGATION_FAILED",`Could not navigate to: "${A.locus}"`);g=I}}else{const I=await this.browser.search(A.locus);if(!I)throw new Cs("NAVIGATION_FAILED",`Could not navigate to: "${A.locus}"`);g=I}return"in"===A.zoom?this.browser.zoomIn(A.factor):"out"===A.zoom&&this.browser.zoomOut(A.factor),g}handleModifyTracks(A){var g;if(!A.actions||0===A.actions.length)throw new Cs("INVALID_ARGS","modify_tracks requires at least one action");const I=[];for(const t of A.actions)switch(t.action){case"add":try{const A=this.browser.addTrackFromConfig(t.config),g=this.browser.getManagedTracks().find(g=>g.track===A);I.push({action:"add",success:!0,trackId:null==g?void 0:g.id})}catch(A){I.push({action:"add",success:!1,error:null!==(g=A.message)&&void 0!==g?g:"Unknown error adding track"})}break;case"remove":{const A=this.browser.removeTracks(is(t.selector));I.push({action:"remove",success:A>0,count:A});break}case"find":{const A=this.browser.findTracks(is(t.selector)).map(A=>Qs(A));I.push({action:"find",success:!0,tracks:A});break}case"update_metadata":{const A=this.browser.updateTrackMetadata(is(t.selector),t.metadata);I.push({action:"update_metadata",success:A>0,count:A});break}default:I.push({action:t.action,success:!1,error:`Unknown action: ${t.action}`})}return{results:I}}handleQueryFeatures(A){var g;const I=this.browser.getTrack(A.trackId);if(!I)throw new Cs("TRACK_NOT_FOUND",`No track with id '${A.trackId}'`);const t=null!==(g=this.browser.getCachedFeatures(I))&&void 0!==g?g:[];if(A.summarize){const g=this.browser.state.getState().tracks.find(g=>g.id===A.trackId);return{trackId:A.trackId,featureCount:t.length,summary:null==g?void 0:g.featureSummary}}return{trackId:A.trackId,featureCount:t.length,features:t}}handleAnnotate(){throw new Cs("NOT_IMPLEMENTED","Annotations are not yet supported (Phase 3)")}async handleSetLayout(A){if(!A.tracks)throw new Cs("INVALID_ARGS","set_layout requires a tracks array");const g=[...this.browser.getManagedTracks()],I=new Set,t=[],e=[];for(const C of A.tracks){const A=this.findMatchingTrack(C,g,I);A?(I.add(A.id),e.push(A.id)):t.push(C)}const C=[];for(const A of g)I.has(A.id)||(this.browser.removeTrack(A.id),C.push(A.id));const i=[];for(const A of t){const g=this.browser.addTrackFromConfig(A),I=this.browser.getManagedTracks().find(A=>A.track===g);I&&i.push(I.id)}return A.locus&&await this.browser.search(A.locus),{added:i,removed:C,unchanged:e}}findMatchingTrack(A,g,I){if(A.id)return g.find(g=>g.id===A.id&&!I.has(g.id));const t=this.layoutMatchKey(A);return g.find(g=>!I.has(g.id)&&(g.track.type===A.type&&(g.dataSourceConfig?t===Po(g.dataSourceConfig):!t)))}layoutMatchKey(A){if("dataSource"in A&&A.dataSource)return Po(A.dataSource)}async handleExportView(A){switch(A.format){case"svg":return this.browser.toSVG(A.width?{width:A.width}:void 0);case"png":if(!this.options.supportsPNG||!this.options.exportPNG)throw new Cs("EXPORT_UNAVAILABLE","PNG export requires a DOM-attached GenomeBrowser");return this.options.exportPNG();case"session":return this.browser.toJSON();default:throw new Cs("INVALID_ARGS",`Unknown export format: ${A.format}`)}}handleManageROIs(A){const{action:g}=A;switch(g.action){case"add":return{action:"add",roi:this.browser.addROI(g.roi,g.setName)};case"remove":return{action:"remove",success:this.browser.removeROI(g.roiId)};case"update":return{action:"update",roi:this.browser.updateROI(g.roiId,g.changes)};case"clear":return this.browser.clearROIs(),{action:"clear"};case"list":return{action:"list",rois:this.browser.getROIs()};case"list_sets":return{action:"list_sets",sets:this.browser.getROISets().map(A=>A.toJSON())};case"find_at_locus":return{action:"find_at_locus",rois:this.browser.findROIsAtLocus(g.chr,g.start,g.end)};case"get_visible":return{action:"get_visible",rois:this.browser.getVisibleROIs()};default:throw new Cs("INVALID_ARGS",`Unknown ROI action: ${g.action}`)}}handleSubscribeEvents(A){var g,I;if(!Array.isArray(A.events))throw new Cs("INVALID_ARGS","subscribe_events requires an events array");const t=new Set(Object.values(As)),e=[];for(const g of A.events)if("*"===g)e.push("*");else{if(!t.has(g))throw new Cs("INVALID_ARGS",`Unknown event name: "${g}". Valid events: ${[...t].join(", ")}`);e.push(g)}return null===(I=(g=this.options).onSubscribeEvents)||void 0===I||I.call(g,e),{subscribed:e}}}function Qs(A){return{id:A.id,type:A.track.type,name:A.name,metadata:A.metadata,loading:null!=A.dataSource&&null==A.cache}}class os{constructor(A,g,I){this.unsubscribers=[],this.detached=!1,this.subscribedEvents=null,this.browser=A,this.socket=g,this.dispatcher=new Bs(A,{...I,onSubscribeEvents:A=>{this.subscribedEvents=new Set(A)}}),this.messageHandler=A=>{this.handleMessage(A.data)},this.closeHandler=()=>this.detach(),g.addEventListener("message",this.messageHandler),g.addEventListener("close",this.closeHandler),this.subscribeToEvents()}detach(){if(!this.detached){this.detached=!0;for(const A of this.unsubscribers)A();this.unsubscribers=[],this.socket.removeEventListener("message",this.messageHandler),this.socket.removeEventListener("close",this.closeHandler)}}get isDetached(){return this.detached}async handleMessage(A){var g;let I;try{I=JSON.parse(A)}catch(A){return}if(I.id&&I.command)try{const A={command:I.command,...I.args},g=await this.dispatcher.dispatch(A);this.send({id:I.id,result:g})}catch(A){A instanceof Cs?this.send({id:I.id,error:{code:A.code,message:A.message}}):this.send({id:I.id,error:{code:"INTERNAL_ERROR",message:null!==(g=A.message)&&void 0!==g?g:"Unknown error"}})}}send(A){1!==this.socket.readyState||this.detached||this.socket.send(JSON.stringify(A))}subscribeToEvents(){const A=Object.values(As);for(const g of A){const A=this.browser.on(g,A=>{this.subscribedEvents&&(this.subscribedEvents.has("*")||this.subscribedEvents.has(g))&&this.send({event:g,data:this.sanitizeEventData(g,A)})});this.unsubscribers.push(A)}}sanitizeEventData(A,g){if(A===As.LocusChange)return g;if(A===As.ROIClick||A===As.ROIContextMenu)return g;if(A===As.ROIAdded||A===As.ROIRemoved||A===As.ROIChanged){const A=g;return{roi:A.roi,setName:A.set.name,...A.changes?{changes:A.changes}:{}}}if(A===As.TrackOrderChanged){return{trackIds:g.tracks.map(A=>this.findTrackId(A))}}if(A===As.DataError||A===As.RenderError){const A=g,I=this.findManagedTrack(A.track);return{trackId:null==I?void 0:I.id,trackType:A.track.type,trackName:null==I?void 0:I.name,error:A.error.message}}if(A===As.TrackClick||A===As.TrackHover||A===As.TrackContextMenu){const A=g,I=this.findManagedTrack(A.track);return{trackId:null==I?void 0:I.id,trackType:A.track.type,trackName:null==I?void 0:I.name,genomicLocation:A.genomicLocation,featureCount:A.features.length}}const I=g;if("track"in I){const A=this.findManagedTrack(I.track);return{trackId:null==A?void 0:A.id,trackType:I.track.type,trackName:null==A?void 0:A.name}}return g}findManagedTrack(A){return this.browser.getManagedTracks().find(g=>g.track===A)}findTrackId(A){var g;return null===(g=this.findManagedTrack(A))||void 0===g?void 0:g.id}}const ss="http://www.w3.org/2000/svg",Es="rgb(0, 0, 150)";class as{constructor(A){this.svg=document.createElementNS(ss,"svg"),this.svg.classList.add("loom-feature-overlay"),this.svg.style.cssText="\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n overflow: visible;\n ",this.defs=document.createElementNS(ss,"defs"),this.svg.appendChild(this.defs),this.group=document.createElementNS(ss,"g"),this.group.style.pointerEvents="auto",this.svg.appendChild(this.group),A.style.position="relative",A.appendChild(this.svg)}update(A){var g;if(this.group.textContent="",this.defs.textContent="",0===A.length||A.length>500)return;const I=document.createDocumentFragment();for(let t=0;t<A.length;t++){const e=A[t],C=null!==(g=e.color)&&void 0!==g?g:Es,i=`glow-${t}`;this.defs.appendChild(this.createGlowFilter(i,C)),I.appendChild(this.createRect(e,i))}this.group.appendChild(I)}setSuppressed(A){this.group.style.pointerEvents=A?"none":"auto"}setVisible(A){this.svg.style.display=A?"":"none"}dispose(){this.svg.remove()}createGlowFilter(A,g){const I=document.createElementNS(ss,"filter");I.setAttribute("id",A),I.setAttribute("x","-20%"),I.setAttribute("y","-40%"),I.setAttribute("width","140%"),I.setAttribute("height","180%");const t=document.createElementNS(ss,"feFlood");t.setAttribute("flood-color",g),t.setAttribute("flood-opacity","0.4"),t.setAttribute("result","color"),I.appendChild(t);const e=document.createElementNS(ss,"feComposite");e.setAttribute("in","color"),e.setAttribute("in2","SourceGraphic"),e.setAttribute("operator","in"),e.setAttribute("result","colored"),I.appendChild(e);const C=document.createElementNS(ss,"feGaussianBlur");C.setAttribute("in","colored"),C.setAttribute("stdDeviation","3"),C.setAttribute("result","glow"),I.appendChild(C);const i=document.createElementNS(ss,"feMerge"),B=document.createElementNS(ss,"feMergeNode");B.setAttribute("in","glow");const Q=document.createElementNS(ss,"feMergeNode");return Q.setAttribute("in","SourceGraphic"),i.appendChild(B),i.appendChild(Q),I.appendChild(i),I}createRect(A,g){var I;const t=document.createElementNS(ss,"rect");t.setAttribute("x",String(A.x-3)),t.setAttribute("y",String(A.y-3)),t.setAttribute("width",String(A.width+6)),t.setAttribute("height",String(A.height+6)),t.setAttribute("rx","2");const e=`url(#${g})`,C=null!==(I=A.color)&&void 0!==I?I:Es;return t.addEventListener("mouseenter",()=>{t.style.fill=function(A,g){const I=A.match(/^rgba?\(\s*([\d.]+)[,\s]+([\d.]+)[,\s]+([\d.]+)/);if(I)return`rgba(${I[1]}, ${I[2]}, ${I[3]}, ${g})`;const t=A.match(/^#([0-9a-f]{3,8})$/i);if(t){let A=t[1];3===A.length&&(A=A[0]+A[0]+A[1]+A[1]+A[2]+A[2]);return`rgba(${parseInt(A.slice(0,2),16)}, ${parseInt(A.slice(2,4),16)}, ${parseInt(A.slice(4,6),16)}, ${g})`}return A}(C,.15),t.style.filter=e}),t.addEventListener("mouseleave",()=>{t.style.fill="transparent",t.style.filter=""}),t.addEventListener("click",g=>{var I;g.stopPropagation(),null===(I=this.onFeatureClick)||void 0===I||I.call(this,A,g)}),t}}class rs{constructor(A,g){this.labelEl=null,this.badgeEl=null,this.root=document.createElement("div"),this.root.classList.add("loom-track-ui-layer"),this.root.style.position="absolute",this.root.style.inset="0",this.root.style.pointerEvents="none",this.root.style.overflow="hidden",A.appendChild(this.root),this.onBadgeClick=g}update(A,g){var I,t,e;this.root.style.height=`${Math.max(0,g)}px`;const C=null==A?void 0:A.label;if(C){this.labelEl||(this.labelEl=document.createElement("div"),this.root.appendChild(this.labelEl));const A=4+(null!==(t=C.topOffset)&&void 0!==t?t:0);this.labelEl.textContent=C.text,this.labelEl.style.position="absolute",this.labelEl.style.left="4px",this.labelEl.style.top=`${A}px`,this.labelEl.style.padding="2px 4px",this.labelEl.style.font="normal 10px sans-serif",this.labelEl.style.lineHeight="1.2",this.labelEl.style.color=C.color,this.labelEl.style.background=C.background,this.labelEl.style.border=`0.5px solid ${C.color}`,this.labelEl.style.opacity="0.75",this.labelEl.style.pointerEvents="none",this.labelEl.style.userSelect="none",this.labelEl.style.whiteSpace="nowrap"}else null===(I=this.labelEl)||void 0===I||I.remove(),this.labelEl=null;const i=null==A?void 0:A.badge;i?(this.badgeEl||(this.badgeEl=document.createElement("button"),this.badgeEl.type="button",this.badgeEl.classList.add("loom-track-ui-badge"),this.badgeEl.addEventListener("click",A=>{var g;A.preventDefault(),A.stopPropagation();const I=null===(g=this.badgeEl)||void 0===g?void 0:g.dataset.chromeId;I&&this.onBadgeClick(I)}),this.root.appendChild(this.badgeEl)),this.badgeEl.dataset.chromeId=i.id,this.badgeEl.textContent=i.text,this.badgeEl.style.position="absolute",this.badgeEl.style.right="4px",this.badgeEl.style.top="50%",this.badgeEl.style.transform="translateY(-50%)",this.badgeEl.style.border="0",this.badgeEl.style.borderRadius="3px",this.badgeEl.style.padding="2px 4px",this.badgeEl.style.margin="0",this.badgeEl.style.font="bold 10px sans-serif",this.badgeEl.style.lineHeight="1",this.badgeEl.style.color=i.color,this.badgeEl.style.background=i.background,this.badgeEl.style.cursor="pointer",this.badgeEl.style.pointerEvents="auto",this.badgeEl.style.userSelect="none"):(null===(e=this.badgeEl)||void 0===e||e.remove(),this.badgeEl=null)}dispose(){this.root.remove(),this.labelEl=null,this.badgeEl=null}}class ns{constructor(A,g,I,t){this.options=t,this.isDragging=!1,this.lastPointerX=0,this.activeFrameId=null,this.isSweeping=!1,this.sweepStartX=0,this.sweepColumnLeft=0,this.sweepOverlay=null,this.sweepRulerCanvas=null,this.pointerDownX=0,this.pointerDownY=0,this.pointerDownTarget=null,this.lastClickTime=0,this.lastClickX=0,this.lastClickY=0,this.singleClickTimer=null,this.hoverThrottleId=null,this._preNavLocus=null,this.handlePointerDown=null,this.handlePointerMove=null,this.handlePointerUp=null,this.handleMouseMove=null,this.handleMouseLeave=null,this.handleWheel=null,this.wheelRafId=null,this.reorderDragTrack=null,this.reorderDragRow=null,this.reorderHandlers=new Map,this.container=A,this.browser=g,this.axisColumnWidth=I}setup(){this.setupDragHandlers(),this.setupHoverHandlers(),!1!==this.options.wheelZoom&&this.setupWheelHandler()}dispose(){null!==this.singleClickTimer&&(clearTimeout(this.singleClickTimer),this.singleClickTimer=null),this.teardownDragHandlers(),this.teardownHoverHandlers(),this.teardownWheelHandler(),this.removeSweepOverlay();for(const[A]of this.reorderHandlers)this.teardownReorderForTrack(A);this.reorderHandlers.clear()}setupReorderForTrack(A,g){g.style.cursor="grab";const I=I=>{if(0!==I.button)return;I.preventDefault(),I.stopPropagation();const C=this.getTrackRow(A);C&&(this.reorderDragTrack=A,this.reorderDragRow=C,C.style.opacity="0.5",g.style.cursor="grabbing",document.addEventListener("pointermove",t),document.addEventListener("pointerup",e))},t=A=>{if(!this.reorderDragTrack)return;const g=this.browser.getManagedTracks(),I=g.findIndex(A=>A.track===this.reorderDragTrack);if(I<0)return;const t=A.clientY;if(I>0){const A=this.getTrackRow(g[I-1].track);if(A){const g=A.getBoundingClientRect();if(t<g.bottom-.25*g.height)return this.browser.moveTrackInArray(I,I-1),void this.browser.syncDOMOrder()}}if(I<g.length-1){const A=this.getTrackRow(g[I+1].track);if(A){const g=A.getBoundingClientRect();if(t>g.top+.15*g.height)return this.browser.moveTrackInArray(I,I+1),void this.browser.syncDOMOrder()}}},e=A=>{if(document.removeEventListener("pointermove",t),document.removeEventListener("pointerup",e),this.reorderDragTrack&&this.reorderDragRow){this.reorderDragRow.style.opacity="";const A=this.browser.getTrackAxisDiv(this.reorderDragTrack);A&&(A.style.cursor="grab"),this.browser.finalizeReorder()}this.reorderDragTrack=null,this.reorderDragRow=null};this.reorderHandlers.set(A,{down:I,docMove:t,docUp:e}),g.addEventListener("pointerdown",I)}teardownReorderForTrack(A){const g=this.reorderHandlers.get(A);if(!g)return;const I=this.browser.getTrackAxisDiv(A);I&&I.removeEventListener("pointerdown",g.down),document.removeEventListener("pointermove",g.docMove),document.removeEventListener("pointerup",g.docUp),this.reorderHandlers.delete(A)}createSweepOverlay(){const A=document.createElement("div");return A.style.cssText="\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 0;\n pointer-events: none;\n background: rgba(68, 134, 247, 0.25);\n z-index: 99999;\n transition: none;\n ","static"===getComputedStyle(this.container).position&&(this.container.style.position="relative"),this.container.appendChild(A),A}removeSweepOverlay(){this.sweepOverlay&&(this.sweepOverlay.remove(),this.sweepOverlay=null),this.sweepRulerCanvas=null}setupDragHandlers(){this.handlePointerDown=A=>{if(0!==A.button)return;if(this.browser.isOverlayTarget(A))return;if(this.browser.hideContextMenu(),!(A.target instanceof HTMLCanvasElement))return this.browser.hidePopup(),void(this.pointerDownTarget=null);this.pointerDownX=A.clientX,this.pointerDownY=A.clientY,this.pointerDownTarget=A.target,this.activeFrameId=this.browser.getFrameIdForX(A.clientX);const g=this.browser.getFrameLocus(this.activeFrameId);if(!og(g)){if(this.browser.isRulerCanvas(A.target)){const g=A.target;this.isSweeping=!0,this.isDragging=!1,this.sweepRulerCanvas=g;const I=this.container.getBoundingClientRect();this.sweepStartX=A.clientX-I.left;const t=g.parentElement;return this.sweepColumnLeft=t?t.getBoundingClientRect().left-I.left:this.axisColumnWidth,this.sweepOverlay=this.createSweepOverlay(),this.sweepOverlay.style.left=`${this.sweepStartX}px`,this.sweepOverlay.style.width="0px",this.sweepOverlay.style.display="block",void this.container.setPointerCapture(A.pointerId)}this.isSweeping=!1,this.lastPointerX=A.clientX,this._preNavLocus={...g},this.container.setPointerCapture(A.pointerId)}},this.handlePointerMove=A=>{var g,I;if(this.isSweeping&&this.sweepOverlay&&this.sweepRulerCanvas){const g=this.container.getBoundingClientRect(),I=Math.max(this.axisColumnWidth,Math.min(A.clientX-g.left,g.width)),t=Math.min(this.sweepStartX,I),e=Math.abs(I-this.sweepStartX);return this.sweepOverlay.style.left=`${t}px`,void(this.sweepOverlay.style.width=`${e}px`)}if(!this.activeFrameId)return;if(!this.isDragging){if(Math.abs(A.clientX-this.pointerDownX)<3)return;this.isDragging=!0,this.container.style.cursor="grabbing",this.browser.setFeatureOverlaysSuppressed(!0,null!==(g=this.activeFrameId)&&void 0!==g?g:void 0),this.browser.setFeatureOverlaysVisible(!1,null!==(I=this.activeFrameId)&&void 0!==I?I:void 0);const t=this.browser.getManagedTracks();for(const A of t)this.browser.getFrameTrack(A,this.activeFrameId).suspendRendering()}const t=this.lastPointerX-A.clientX;this.lastPointerX=A.clientX;const e=this.activeFrameId,C=this.browser.getFrameViewportWidth(e);if(0===C)return;const i=this.browser.getFrameLocus(e),B=t*((i.end-i.start)/C),Q=this.browser.clampLocus({chr:i.chr,start:i.start+B,end:i.end+B});this.browser.setFrameLocusDirect(e,Q),this.browser.shiftCanvases(e,Q),this.browser.emitLocusChange(Q,e)},this.handlePointerUp=A=>{if(this.browser.isOverlayTarget(A))return;if(this.isSweeping&&this.sweepOverlay&&this.sweepRulerCanvas&&this.activeFrameId){const A=parseFloat(this.sweepOverlay.style.left),g=parseFloat(this.sweepOverlay.style.width),I=this.activeFrameId;if(this.removeSweepOverlay(),this.isSweeping=!1,g>3){const t=this.browser.getFrameViewportWidth(I);if(t>0){this.browser.snapshotForUndo("navigation");const e=this.browser.getFrameLocus(I),C=(e.end-e.start)/t,i=Math.max(0,A-this.sweepColumnLeft),B=e.start+i*C,Q=e.start+(i+g)*C;this.browser.setFrameLocus(I,{chr:e.chr,start:Math.round(B),end:Math.round(Q)})}}return void(this.activeFrameId=null)}const g=this.isDragging,I=this.activeFrameId;this.isDragging=!1,this.container.style.cursor="grab",this.browser.setFeatureOverlaysSuppressed(!1);const t=null!=I?I:this.browser.getFrameIdForX(A.clientX);if(g){const A=this.browser.getFrameLocus(t),g=this.browser.getManagedTracks();for(const A of g){const g=this.browser.getFrameTrack(A,t);g.discardPendingRender(),g.resumeRendering()}for(const I of g){this.browser.getFrameTrack(I,t).setLocus(A)}this.browser.loadAllTracksIfNeeded(),this.browser.updateAllAxes(),this.browser.updateAllFeatureOverlays(),this.browser.setFeatureOverlaysVisible(!0)}else this.browser.setFeatureOverlaysVisible(!0);const e=this.browser.getFrameLocus(t);g&&this._preNavLocus&&(this._preNavLocus.start!==e.start||this._preNavLocus.end!==e.end)&&this.browser.snapshotForUndo("navigation"),this._preNavLocus=null,this.activeFrameId=null;const C=A.clientX-this.pointerDownX,i=A.clientY-this.pointerDownY;(!g||C*C+i*i<9)&&this.handleClick(A)},this.container.addEventListener("pointerdown",this.handlePointerDown),this.container.addEventListener("pointermove",this.handlePointerMove),this.container.addEventListener("pointerup",this.handlePointerUp),this.container.addEventListener("pointercancel",this.handlePointerUp)}handleClick(A){var g,I,t;const e=this.browser.findTrackForTarget(this.pointerDownTarget);if(!e)return;const C=null!==(g=this.activeFrameId)&&void 0!==g?g:this.browser.getFrameIdForX(A.clientX),i=this.pointerDownTarget,B=null!==(I=i.parentElement)&&void 0!==I?I:i,Q=B.getBoundingClientRect(),o={x:A.clientX-Q.left,y:A.clientY-Q.top},s=this.browser.getFrameLocus(C);if(og(s)&&"ruler"===e.type){const A=this.browser.getCumulativeOffsets(),g=this.browser.getChromSizes();if(A&&g){const I=B.clientWidth;if(I>0){const t=(s.end-s.start)/I,e=s.start+o.x*t,{chr:i}=lC(e,A),B=g[i];null!=B&&this.browser.setFrameLocus(C,{chr:i,start:0,end:B})}}return}if(null===(t=e.onCanvasClick)||void 0===t?void 0:t.call(e,o.x,o.y))return void this.browser.hidePopup();const E=Date.now(),a=E-this.lastClickTime<500&&Math.abs(A.clientX-this.lastClickX)<6&&Math.abs(A.clientY-this.lastClickY)<6;if(this.lastClickTime=E,this.lastClickX=A.clientX,this.lastClickY=A.clientY,a){if(null!==this.singleClickTimer&&(clearTimeout(this.singleClickTimer),this.singleClickTimer=null),this.lastClickTime=0,!og(s)){const g=B.clientWidth;if(g>0){const I=(s.end-s.start)/g,t=s.start+o.x*I,e=A.shiftKey?2:.5;this.browser.zoomFrameAroundCenter(C,e,t)}}return}this.singleClickTimer=setTimeout(()=>{var A;this.singleClickTimer=null;const g=this.browser.resolveInteraction(e,o.x,o.y);if(g){if(this.browser.emitTrackClick(g),g.popupData.length>0){const I=this.container.getBoundingClientRect(),t=(null!==(A=e.canvas.parentElement)&&void 0!==A?A:e.canvas).getBoundingClientRect();this.browser.showPopup(g.popupData,{x:t.left-I.left+o.x,y:t.top-I.top+o.y})}}else this.browser.hidePopup()},500)}teardownDragHandlers(){this.handlePointerDown&&this.container.removeEventListener("pointerdown",this.handlePointerDown),this.handlePointerMove&&this.container.removeEventListener("pointermove",this.handlePointerMove),this.handlePointerUp&&(this.container.removeEventListener("pointerup",this.handlePointerUp),this.container.removeEventListener("pointercancel",this.handlePointerUp))}setupHoverHandlers(){this.handleMouseMove=A=>{var g;if(this.isDragging||this.isSweeping)return;if(null!==this.hoverThrottleId)return;this.hoverThrottleId=setTimeout(()=>{this.hoverThrottleId=null},100);const I=this.browser.findTrackForTarget(A.target);if(!I)return;if(!(A.target instanceof HTMLCanvasElement))return;const t=(null!==(g=A.target.parentElement)&&void 0!==g?g:A.target).getBoundingClientRect(),e={x:A.clientX-t.left,y:A.clientY-t.top},C=this.browser.resolveInteraction(I,e.x,e.y);C&&this.browser.emitTrackHover(C)},this.handleMouseLeave=A=>{null!==this.hoverThrottleId&&(clearTimeout(this.hoverThrottleId),this.hoverThrottleId=null)},this.container.addEventListener("mousemove",this.handleMouseMove),this.container.addEventListener("mouseleave",this.handleMouseLeave)}teardownHoverHandlers(){this.handleMouseMove&&this.container.removeEventListener("mousemove",this.handleMouseMove),this.handleMouseLeave&&this.container.removeEventListener("mouseleave",this.handleMouseLeave),null!==this.hoverThrottleId&&(clearTimeout(this.hoverThrottleId),this.hoverThrottleId=null)}setupWheelHandler(){this.handleWheel=A=>{var g;if(!A.ctrlKey)return;A.preventDefault();const I=this.browser.getFrameIdForX(A.clientX),t=this.browser.getFrameLocus(I);if(og(t))return;if(null!==this.wheelRafId)return;null===this._preNavLocus&&(this._preNavLocus={...t},setTimeout(()=>{const A=this.browser.getFrameLocus(I);!this._preNavLocus||this._preNavLocus.start===A.start&&this._preNavLocus.end===A.end||this.browser.snapshotForUndo("navigation"),this._preNavLocus=null},300));const e=1+.01*Math.max(-50,Math.min(50,A.deltaY)),C=this.browser.getFrameViewportWidth(I);if(C<=0)return;const i=A.target instanceof HTMLCanvasElement?A.target:null,B=null!==(g=null==i?void 0:i.parentElement)&&void 0!==g?g:i,Q=B?A.clientX-B.getBoundingClientRect().left:C/2,o=(t.end-t.start)/C,s=t.start+Q*o;this.wheelRafId=requestAnimationFrame(()=>{this.wheelRafId=null,this.browser.zoomFrameAroundCenter(I,e,s)})},this.container.addEventListener("wheel",this.handleWheel,{passive:!1})}teardownWheelHandler(){null!==this.wheelRafId&&(cancelAnimationFrame(this.wheelRafId),this.wheelRafId=null),this.handleWheel&&(this.container.removeEventListener("wheel",this.handleWheel),this.handleWheel=null)}getTrackRow(A){const g=this.browser.getTrackAxisDiv(A);return null==g?void 0:g.parentElement}}class hs{constructor(A,g,I){this.overlayContainer=null,this.roiElements=new Map,this.container=A,this.axisColumnWidth=g,this.callbacks=I}renderMultiFrame(A,g,I){const t=[];let e=0;for(const C of A){const i=g(C.locus);if(C.viewportWidth>0){const A=(C.locus.end-C.locus.start)/C.viewportWidth;for(const g of i){const I=Math.round((g.start-C.locus.start)/A),i=Math.max(3,Math.round((g.end-g.start)/A)),B=Math.max(0,I),Q=Math.min(i,C.viewportWidth-B);Q>0&&t.push({roi:g,x:e+B,w:Q,key:`${C.id}:${g.id}`})}}e+=C.viewportWidth+(C!==A[A.length-1]?I:0)}this.renderPrecomputed(t)}renderPrecomputed(A){var g,I;if(0===A.length&&0===this.roiElements.size)return;const t=this.ensureContainer(),e=new Set;for(const{roi:C,x:i,w:B,key:Q}of A){e.add(Q);let A=this.roiElements.get(Q);A||(A=this.createElement(C),t.appendChild(A),this.roiElements.set(Q,A)),A.style.left=`${i}px`,A.style.width=`${B}px`;const o=null!==(g=C.color)&&void 0!==g?g:"rgba(68, 134, 247, 0.15)";A.style.backgroundColor=o;const s=o.replace(/[\d.]+\)$/,A=>`${Math.min(1,3*parseFloat(A))})`);A.style.borderLeftColor=s,A.style.borderRightColor=s;const E=A.firstElementChild;if(E){const A=o.replace(/[\d.]+\)$/,A=>`${Math.min(1,4*parseFloat(A))})`);E.style.backgroundColor=A}const a=A.querySelector(".loom-roi-label");a&&(a.textContent=null!==(I=C.name)&&void 0!==I?I:"",a.style.display=C.name&&B>20?"block":"none"),A._roiId=C.id}for(const[A,g]of this.roiElements)e.has(A)||(g.remove(),this.roiElements.delete(A))}render(A,g,I){var t,e;if(0===A.length&&0===this.roiElements.size)return;const C=this.ensureContainer();if(I<=0)return;const i=(g.end-g.start)/I,B=new Set;for(const I of A){B.add(I.id);const A=Math.round((I.start-g.start)/i),Q=Math.max(3,Math.round((I.end-I.start)/i));let o=this.roiElements.get(I.id);o||(o=this.createElement(I),C.appendChild(o),this.roiElements.set(I.id,o)),o.style.left=`${A}px`,o.style.width=`${Q}px`;const s=null!==(t=I.color)&&void 0!==t?t:"rgba(68, 134, 247, 0.15)";o.style.backgroundColor=s;const E=s.replace(/[\d.]+\)$/,A=>`${Math.min(1,3*parseFloat(A))})`);o.style.borderLeftColor=E,o.style.borderRightColor=E;const a=o.firstElementChild;if(a){const A=s.replace(/[\d.]+\)$/,A=>`${Math.min(1,4*parseFloat(A))})`);a.style.backgroundColor=A}const r=o.querySelector(".loom-roi-label");r&&(r.textContent=null!==(e=I.name)&&void 0!==e?e:"",r.style.display=I.name&&Q>20?"block":"none"),o._roiId=I.id}for(const[A,g]of this.roiElements)B.has(A)||(g.remove(),this.roiElements.delete(A))}clear(){for(const A of this.roiElements.values())A.remove();this.roiElements.clear(),this.overlayContainer&&(this.overlayContainer.remove(),this.overlayContainer=null)}dispose(){this.clear()}ensureContainer(){if(!this.overlayContainer){const A=document.createElement("div");A.style.cssText=`\n position: absolute;\n top: 0;\n left: ${this.axisColumnWidth}px;\n right: 0;\n bottom: 0;\n pointer-events: none;\n z-index: 10;\n overflow: hidden;\n `;"static"===getComputedStyle(this.container).position&&(this.container.style.position="relative"),this.container.appendChild(A),this.overlayContainer=A}return this.overlayContainer}createElement(A){var g;const I=document.createElement("div");I.className="loom-roi-region",I.style.cssText="\n position: absolute;\n top: 0;\n bottom: 0;\n border-left: 1px solid transparent;\n border-right: 1px solid transparent;\n box-sizing: border-box;\n pointer-events: auto;\n cursor: pointer;\n transition: opacity 0.15s ease;\n ";const t=document.createElement("div");t.className="loom-roi-header",t.style.cssText="\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 4px;\n border-radius: 2px 2px 0 0;\n ",I.appendChild(t);const e=document.createElement("div");return e.className="loom-roi-label",e.style.cssText="\n position: absolute;\n top: 5px;\n left: 3px;\n right: 3px;\n font: 9px sans-serif;\n color: rgba(0, 0, 0, 0.7);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n pointer-events: none;\n ",e.textContent=null!==(g=A.name)&&void 0!==g?g:"",I.appendChild(e),I.addEventListener("mouseenter",()=>{I.style.opacity="1.3"}),I.addEventListener("mouseleave",()=>{I.style.opacity=""}),I.addEventListener("click",A=>{A.stopPropagation();const g=I._roiId;this.callbacks.onROIClick(g,A)}),I.addEventListener("contextmenu",A=>{A.preventDefault(),A.stopPropagation();const g=I._roiId;this.callbacks.onROIContextMenu(g,A)}),I}}class cs{constructor(A,g,I,t,e){this.handleContextMenu=null,this.inputDialog=null,this.container=A,this.axisColumnWidth=g,this.contextMenuProvider=I,this.popupProvider=t,this.callbacks=e}setup(){this.handleContextMenu=A=>{var g,I,t,e,C;A.preventDefault();const i=this.callbacks.findTrackForTarget(A.target);if(!i)return;const B=null!==(g=i.canvas.parentElement)&&void 0!==g?g:i.canvas,Q=B.getBoundingClientRect(),o=A.clientX-Q.left,s=A.clientY-Q.top,E=null!==(t=null===(I=i.getContextMenuItems)||void 0===I?void 0:I.call(i,o,s))&&void 0!==t?t:[],a=(A,g)=>this.ensureInputDialog().then(I=>I.prompt(A,g)),r=k(i,{setTrackHeight:(A,g)=>{A instanceof ai?A.setFixedHeight(g):A instanceof LC&&A.setConfig({height:g})},removeTrack:A=>this.callbacks.removeTrack(A),promptInput:a}),n=A=>{const g=A.action?{...A,action:()=>{A.action(),this.callbacks.onAxisUpdate(i)}}:{...A};return g.children&&(g.children=g.children.map(n)),g},h=null===(e=i.getNumericState)||void 0===e?void 0:e.call(i),c=h?G(h,a):[],l=[];(E.length>0||c.length>0)&&(l.push(...E.map(n)),c.length>0&&(E.length>0&&l.push({label:"",type:"separator"}),l.push(...c.map(n))),l.push({label:"",type:"separator"})),l.push(...r.map(n));const d=this.callbacks.getLocus(),D=B.clientWidth,u=D>0?(d.end-d.start)/D:0,w=d.start+o*u,y=i.hitTest(o,s),f={track:i,genomicLocation:w,features:y.map(A=>A.feature),trackItems:E,commonItems:r,x:o,y:s};if(this.callbacks.emitTrackContextMenu(f),this.contextMenuProvider){null===(C=this.popupProvider)||void 0===C||C.hide();const A=this.container.getBoundingClientRect(),g=B.getBoundingClientRect();this.contextMenuProvider.show(l,{x:g.left-A.left+o,y:g.top-A.top+s},this.container)}},this.container.addEventListener("contextmenu",this.handleContextMenu)}showROIContextMenu(A,g){var I;if(!this.contextMenuProvider)return;const t=this.container.getBoundingClientRect(),e=this.callbacks.getViewportWidth(),C=this.callbacks.getLocus(),i=e>0?(C.end-C.start)/e:0,B=g.clientX-t.left-this.axisColumnWidth,Q=C.start+B*i;this.callbacks.emitROIContextMenu({roi:A,genomicLocation:Q,x:g.clientX-t.left,y:g.clientY-t.top});const o=F(A,{goToRegion:A=>this.callbacks.setLocus(A),updateROI:(A,g)=>this.callbacks.updateROI(A,g),removeROI:A=>this.callbacks.removeROI(A),promptInput:(A,g)=>this.ensureInputDialog().then(I=>I.prompt(A,g))});null===(I=this.popupProvider)||void 0===I||I.hide(),this.contextMenuProvider.show(o,{x:g.clientX-t.left,y:g.clientY-t.top},this.container)}dispose(){this.handleContextMenu&&(this.container.removeEventListener("contextmenu",this.handleContextMenu),this.handleContextMenu=null),this.inputDialog&&(this.inputDialog.remove(),this.inputDialog=null)}async ensureInputDialog(){if(!this.inputDialog){customElements.get("loom-input-dialog")||await Promise.resolve().then(function(){return IE});const A=document.createElement("loom-input-dialog");"static"===getComputedStyle(this.container).position&&(this.container.style.position="relative"),this.container.appendChild(A),this.inputDialog=A}return this.inputDialog}}function ls(){customElements.get("loom-context-menu")||Promise.resolve().then(function(){return AE});let A=null;return{show(g,I,t){if(!A){A=document.createElement("loom-context-menu");"static"===getComputedStyle(t).position&&(t.style.position="relative"),t.appendChild(A)}A.setItems(g),A.showAt(I.x,I.y)},hide(){A&&A.hide()},dispose(){A&&(A.remove(),A=null)}}}function ds(){customElements.get("loom-popup")||Promise.resolve().then(function(){return js});let A=null;return{show(g,I,t){if(!A){A=document.createElement("loom-popup");"static"===getComputedStyle(t).position&&(t.style.position="relative"),t.appendChild(A)}A.setData(g),A.showAt(I.x,I.y)},hide(){A&&A.hide()},dispose(){A&&(A.remove(),A=null)}}}function Ds(A,g,I,t,e,C,i){var B,Q,o,s,E,a,r;const n=null!==(Q=null!==(B=null==i?void 0:i.width)&&void 0!==B?B:null==i?void 0:i.containerWidth)&&void 0!==Q?Q:0,h=g.length,c=Math.max(0,3*(h-1)),l=n-e,d=Math.floor((l-c)/h);if(d<=0)throw new Error("Cannot export SVG: container too narrow for columns");let D=0;const u=[];for(const g of A){const A=g.track.height||50;u.push(A),D+=A}const w=new Vi({width:n,height:D,viewbox:{x:0,y:0,width:n,height:D},backdropColor:null!==(o=null==i?void 0:i.backdropColor)&&void 0!==o?o:"white"});let y=0;for(let t=0;t<A.length;t++){const i=A[t],B=u[t],Q=null===(E=(s=i.track).getAxisInfo)||void 0===E?void 0:E.call(s);if(Q){const A={...Q,backgroundColor:null!==(a=Q.backgroundColor)&&void 0!==a?a:I.palette.background,labelColor:null!==(r=Q.labelColor)&&void 0!==r?r:I.palette.foreground},g=`track_${t}_${i.track.type}_axis`;w.saveWithTranslationAndClipRect(g,0,y,e,B,0),A.dataRange&&ui(w,A,e,B),w.restore()}let o=e;for(let A=0;A<h;A++){const I=C(i,g[A].id),e=`track_${t}_${I.type}_frame_${A}`;w.saveWithTranslationAndClipRect(e,o,y,d,B,0),I.renderToContext&&I.renderToContext(w,d,B),w.restore(),o+=d+(A<h-1?3:0)}y+=B}let f=e;for(let A=0;A<h;A++){const I=g[A],e=t(I.locus);if(e.length>0){const g=(I.locus.end-I.locus.start)/d,t={pixelWidth:d,bpStart:I.locus.start,bpPerPixel:g,viewportWidth:d};w.saveWithTranslationAndClipRect(`roi_overlays_${A}`,f,0,d,D,0),vi(w,e,t,{totalHeight:D}),w.restore()}f+=d+(A<h-1?3:0)}return w.setHeight(D),w.getSerializedSvg(!0)}function us(A,g,I,t){const e=new Blob([A],{type:"image/svg+xml"}),C=URL.createObjectURL(e);return new Promise((A,e)=>{const i=new Image;i.onload=()=>{try{const e=document.createElement("canvas");e.width=g*t,e.height=I*t;const B=e.getContext("2d");B.scale(t,t),B.drawImage(i,0,0),URL.revokeObjectURL(C),A(e.toDataURL("image/png"))}catch(A){URL.revokeObjectURL(C),e(A)}},i.onerror=()=>{URL.revokeObjectURL(C),e(new Error("Failed to load SVG for PNG conversion"))},i.src=C})}function ws(A,g){const I=document.createElement("a");I.download=A,I.href=g,document.body.appendChild(I),I.click(),document.body.removeChild(I)}const ys=50,fs=new WeakSet;class Ss extends es{constructor(A,g){var I,t,e,C;const i=null===g.contextMenuProvider?void 0:null!==(I=g.contextMenuProvider)&&void 0!==I?I:ls(),B=null===g.popupProvider?void 0:null!==(t=g.popupProvider)&&void 0!==t?t:ds();let Q=g.workerProvider,o=null;if(!Q&&(g.workers||g.workerFactory)){const A="number"==typeof g.workers?g.workers:Math.min(null!==(e=null===navigator||void 0===navigator?void 0:navigator.hardwareConcurrency)&&void 0!==e?e:4,4);try{o=new UC({workerFactory:g.workerFactory,workerUrl:g.workerFactory?void 0:new URL("./loom-worker.js","undefined"==typeof document&&"undefined"==typeof location?new(require("url").URL)("file:"+__filename).href:"undefined"==typeof document?location.href:document.currentScript&&"SCRIPT"===document.currentScript.tagName.toUpperCase()&&document.currentScript.src||new URL("loom.min.js",document.baseURI).href),poolSize:A}),Q=o}catch(A){RC.warn("Failed to create web workers, falling back to main-thread execution")}}super({...g,workerProvider:Q,contextMenuProvider:i,popupProvider:B,viewportWidth:A.clientWidth}),this.resizeObserver=null,this.trackRows=new Map,this.remoteConnection=null,this.featureOverlays=new Map,this.uiLayers=new Map,this.ownedWorkerProvider=null,this.handleKeyDown=null,this.handleDocMouseDown=null,this._pendingPostAddLoad=!1,this.pointerManager=null,this.contextMenuManager=null,this.ownedWorkerProvider=o,this.container=A,this.interactive=null===(C=g.interactive)||void 0===C||C,function(A){const g=A.getRootNode();if(fs.has(g))return;fs.add(g);const I=document.createElement("style");I.textContent="\n .loom-track-scroll { scrollbar-width: none; }\n .loom-track-scroll::-webkit-scrollbar { display: none; }\n .loom-feature-overlay rect {\n fill: transparent;\n pointer-events: auto;\n cursor: pointer;\n }\n ",g instanceof Document?g.head.appendChild(I):g.appendChild(I)}(A),A.style.userSelect="none",A.style.touchAction="none";const s={onROIClick:(A,g)=>{const I=this.getROIs().find(g=>g.id===A);if(I){const A=this.container.getBoundingClientRect(),t=g.clientX-A.left-ys,e=this._frames[0].locus.start+t*this._frames[0].bpPerPixel;this.events.emit(As.ROIClick,{roi:I,genomicLocation:e,x:g.clientX-A.left,y:g.clientY-A.top})}},onROIContextMenu:(A,g)=>{var I;const t=this.getROIs().find(g=>g.id===A);t&&(null===(I=this.contextMenuManager)||void 0===I||I.showROIContextMenu(t,g))}};if(this.roiOverlayManager=new hs(A,ys,s),this.interactive){A.style.cursor=og(g.locus)?"default":"grab";const I={getLocus:()=>this._frames[0].locus,setLocusDirect:A=>{this._frames[0].locus=A,Li(this._frames[0])},clampLocus:A=>this.clamp(A),setLocus:A=>this.setLocus(A),getViewportWidth:()=>this._frames[0].viewportWidth,getFrameIdForX:A=>this._getFrameIdForX(A),getFrameLocus:A=>this._getFrame(A).locus,setFrameLocusDirect:(A,g)=>{const I=this.getFrame(A);I&&(I.locus=g,Li(I))},getFrameViewportWidth:A=>this._getFrame(A).viewportWidth,setFrameLocus:(A,g)=>this.setFrameLocus(A,g),zoomFrameAroundCenter:(A,g,I)=>{this.zoomAroundCenter(g,I,A)},getFrameCount:()=>this._frames.length,getFrameTrack:(A,g)=>this.getTrackForFrame(A,g),getManagedTracks:()=>this.managedTracks,loadAllTracksIfNeeded:()=>this.loadAllTracksIfNeeded(),updateAllAxes:()=>{for(const A of this.managedTracks)this.updateAxisContent(A.track)},zoomAroundCenter:(A,g)=>this.zoomAroundCenter(A,g),resolveInteraction:(A,g,I)=>this.resolveInteraction(A,g,I),findTrackForTarget:A=>this.findTrackForTarget(A),isRulerCanvas:A=>this.isRulerCanvas(A),showPopup:(A,g)=>{this.popupProvider&&this.popupProvider.show(A,g,this.container)},hidePopup:()=>{var A;null===(A=this.popupProvider)||void 0===A||A.hide()},hideContextMenu:()=>{var A;null===(A=this.contextMenuProvider)||void 0===A||A.hide()},isOverlayTarget:A=>this.isOverlayTarget(A),setFeatureOverlaysSuppressed:(A,g)=>{for(const[I,t]of this.featureOverlays)(void 0===g||this._trackBelongsToFrame(I,g))&&t.setSuppressed(A)},setFeatureOverlaysVisible:(A,g)=>{for(const[I,t]of this.featureOverlays)(void 0===g||this._trackBelongsToFrame(I,g))&&t.setVisible(A)},updateAllFeatureOverlays:()=>{this.updateFeatureOverlays()},shiftCanvases:(A,g)=>{for(const I of this.managedTracks){if("ideogram"===I.track.type)continue;const t=this.getTrackForFrame(I,A),e=t.computePixelShift(g);null!==e&&t.applyPixelShift(e)}},emitLocusChange:(A,g)=>{const I=g?this._frames.find(A=>A.id===g):this._frames[0];this.events.emit(As.LocusChange,{frames:I?[I]:[this._frames[0]],sourceFrameId:null!=g?g:this._frames[0].id,locus:A})},emitTrackClick:A=>this.events.emit(As.TrackClick,A),emitTrackHover:A=>this.events.emit(As.TrackHover,A),emitTrackOrderChanged:A=>this.events.emit(As.TrackOrderChanged,{tracks:A}),snapshotForUndo:A=>this._snapshotForUndo(A),getCumulativeOffsets:()=>this.cumulativeOffsets,getChromSizes:()=>this.chromSizes,getTrackAxisDiv:A=>{var g;return null===(g=this.trackRows.get(A))||void 0===g?void 0:g.axisDiv},moveTrackInArray:(A,g)=>{const[I]=this.managedTracks.splice(A,1);this.managedTracks.splice(g,0,I)},syncDOMOrder:()=>this.syncDOMOrder(),finalizeReorder:()=>{this._assignOrderFromPosition(),this.events.emit(As.TrackOrderChanged,{tracks:this.managedTracks.map(A=>A.track)})}};this.pointerManager=new ns(A,I,ys,{wheelZoom:g.wheelZoom}),this.pointerManager.setup(),this.contextMenuManager=new cs(A,ys,i,B,{findTrackForTarget:A=>this.findTrackForTarget(A),getLocus:()=>this._frames[0].locus,getViewportWidth:()=>this._frames[0].viewportWidth,removeTrack:A=>this.removeTrack(A),onAxisUpdate:A=>this.updateAxisContent(A),updateROI:(A,g)=>this.updateROI(A,g),removeROI:A=>this.removeROI(A),setLocus:A=>this.setLocus(A),emitTrackContextMenu:A=>this.events.emit(As.TrackContextMenu,A),emitROIContextMenu:A=>this.events.emit(As.ROIContextMenu,A)}),this.contextMenuManager.setup(),(this.popupProvider||this.contextMenuProvider)&&(this.handleDocMouseDown=A=>{var g,I;this.container.contains(A.target)||(null===(g=this.popupProvider)||void 0===g||g.hide(),null===(I=this.contextMenuProvider)||void 0===I||I.hide())},document.addEventListener("mousedown",this.handleDocMouseDown))}this.resizeObserver=new ResizeObserver(()=>{const A=this._frames[0].viewportWidth;this.render(),0===A&&this._frames[0].viewportWidth>0&&!this._pendingPostAddLoad&&this.loadAllTracksIfNeeded()}),this.resizeObserver.observe(A),this.events.on(As.DataLoaded,({track:A})=>{this._frames.length>1&&this.render();const g=this.resolvePrimaryTrack(A);this.updateAxisContent(g),this.updateFeatureOverlay(A),this.updateUILayer(A)}),this.events.on(As.ThemeChanged,()=>{for(const A of this.managedTracks){this.updateAxisContent(A.track),this.syncViewportWrapperBackground(A.track),this.updateUILayer(A.track);for(const g of A.frameInstances.values())this.updateUILayer(g)}}),this.events.on(As.ROIAdded,()=>this.renderROIOverlays()),this.events.on(As.ROIRemoved,()=>this.renderROIOverlays()),this.events.on(As.ROIChanged,()=>this.renderROIOverlays()),this.events.on(As.LocusChange,()=>this.renderROIOverlays()),this.setupUndoKeyboardHandler()}_trackBelongsToFrame(A,g){for(const I of this.managedTracks){if(this.getTrackForFrame(I,g)===A)return!0}return!1}_getFrame(A){var g;return null!==(g=this._frames.find(g=>g.id===A))&&void 0!==g?g:this._frames[0]}_makeFeatureClickHandler(A){return(g,I)=>{const t=g.x+g.width/2,e=g.y+g.height/2,C=this.resolveInteraction(A,t,e);if(C&&(this.events.emit(As.TrackClick,C),this.popupProvider&&C.popupData.length>0)){const A=this.container.getBoundingClientRect();this.popupProvider.show(C.popupData,{x:I.clientX-A.left,y:I.clientY-A.top},this.container)}}}_buildTrackRow(A,g){const I=document.createElement("div");I.style.display="flex",I.style.width="100%",I.style.alignItems="stretch",I.style.contain="layout paint","ideogram"===A.type&&(I.style.paddingTop="8px",I.style.paddingBottom="8px");const t=document.createElement("div");t.style.width="50px",t.style.flexShrink="0",t.style.overflow="hidden",t.style.position="relative",t.style.borderRight="1px solid #ddd",t.style.boxSizing="border-box";const e=document.createElement("div");e.style.display="flex",e.style.flex="1",e.style.minWidth="0",I.appendChild(t),I.appendChild(e);const C=new Map,i=this._frames[0],B=this._buildColumn(A,g);B.column.dataset.frameId=i.id,e.appendChild(B.column),C.set(i.id,B);for(let I=1;I<this._frames.length;I++){const t=this._frames[I],i=this.managedTracks.find(g=>g.track===A),B=null==i?void 0:i.frameInstances.get(t.id);if(B){e.appendChild(this._buildColumnShim());const A=this._buildColumn(B,g);A.column.dataset.frameId=t.id,e.appendChild(A.column),C.set(t.id,A)}}return{row:I,axisDiv:t,axisCanvas:null,columnsContainer:e,columnViewports:C}}_buildColumn(A,g){var I;const t=A.canvas;t.style.display="block",t.style.width="100%";const e=document.createElement("div");e.style.flex="1",e.style.minWidth="0",e.classList.add("loom-viewport-column");const C=document.createElement("div");if(C.style.width="100%",C.style.overflow="hidden",C.style.position="relative",A instanceof LC){const g=null===(I=A.config)||void 0===I?void 0:I.background;"string"==typeof g&&(C.style.backgroundColor=g)}let i;null!=g&&(C.style.maxHeight=`${g}px`,C.style.overflowY="auto",C.style.overscrollBehaviorY="none",C.classList.add("loom-track-scroll")),A instanceof LC&&A.setExternalUIEnabled(!0),C.appendChild(t),e.appendChild(C),this.interactive&&(i=new as(C),i.onFeatureClick=this._makeFeatureClickHandler(A),this.featureOverlays.set(A,i));const B=new rs(C,g=>{var I;null===(I=A.onUIOverlayClick)||void 0===I||I.call(A,g);const t=this.resolvePrimaryTrack(A);this.updateAxisContent(t),this.updateUILayer(A)});return this.uiLayers.set(A,B),{column:e,viewportWrapper:C,track:A,featureOverlay:i,uiLayer:B}}_buildColumnShim(){const A=document.createElement("div");return A.style.width="3px",A.style.flexShrink="0",A.style.backgroundColor="#ccc",A.classList.add("loom-column-shim"),A}_populateFrameColumns(A,g){const I=this.trackRows.get(A);if(!I||this._frames.length<=1)return;const t=this.managedTracks.find(g=>g.track===A);if(t)for(let A=1;A<this._frames.length;A++){const e=this._frames[A];if(I.columnViewports.has(e.id))continue;const C=t.frameInstances.get(e.id);if(!C)continue;I.columnsContainer.appendChild(this._buildColumnShim());const i=this._buildColumn(C,g);i.column.dataset.frameId=e.id,I.columnsContainer.appendChild(i.column),I.columnViewports.set(e.id,i)}}_setupTrackRowUI(A){"wig"===A.type&&A.setConfig({showDataRange:!1}),this.updateAxisContent(A),this.interactive&&"ruler"===A.type&&(A.canvas.style.cursor=og(this._frames[0].locus)?"pointer":"crosshair");const g=this.trackRows.get(A);this.interactive&&"ruler"!==A.type&&"ideogram"!==A.type&&g&&this.pointerManager&&this.pointerManager.setupReorderForTrack(A,g.axisDiv)}addTrack(A,g,I,t,e){const C=this._buildTrackRow(A,t);this.container.appendChild(C.row),this.trackRows.set(A,C),this._suppressImmediateLoad=!0;const i=super.addTrack(A,g,I,t,e);if(this._suppressImmediateLoad=!1,this._populateFrameColumns(A,t),this.interactive&&"ideogram"!==A.type){A.setOverscanMultiplier(3);const g=this.managedTracks.find(g=>g.track===A);if(g)for(const A of g.frameInstances.values())A.setOverscanMultiplier(3)}return this._setupTrackRowUI(A),this._pendingPostAddLoad||(this._pendingPostAddLoad=!0,requestAnimationFrame(()=>{this._pendingPostAddLoad=!1,this.resizeObserver&&(this.render(),this.loadAllTracksIfNeeded())})),i}removeTrack(A){var g,I,t;const e="string"==typeof A?this.getTrack(A):A;if(!e)return;null===(g=this.pointerManager)||void 0===g||g.teardownReorderForTrack(e);const C=this.trackRows.get(e);if(C)for(const A of C.columnViewports.values())null===(I=this.featureOverlays.get(A.track))||void 0===I||I.dispose(),this.featureOverlays.delete(A.track),null===(t=this.uiLayers.get(A.track))||void 0===t||t.dispose(),this.uiLayers.delete(A.track);C&&C.row.parentNode===this.container&&this.container.removeChild(C.row),this.trackRows.delete(e),super.removeTrack(A)}moveTrack(A,g){super.moveTrack(A,g),this.syncDOMOrder()}addFrame(A,g){const I=super.addFrame(A,g);for(const A of this.managedTracks){const g=this.trackRows.get(A.track);if(!g)continue;const t=A.frameInstances.get(I.id);if(!t)continue;g.columnsContainer.appendChild(this._buildColumnShim());const e=this._buildColumn(t,A.maxTrackHeight);e.column.dataset.frameId=I.id,g.columnsContainer.appendChild(e.column),g.columnViewports.set(I.id,e)}return this.render(),this.loadAllTracksIfNeeded(),I}removeFrame(A){var g,I,t,e;if(A===this._frames[0].id&&this._frames.length>1){const t=this._frames[1];for(const e of this.managedTracks){const C=this.trackRows.get(e.track);if(!C)continue;const i=C.columnViewports.get(A),B=C.columnViewports.get(t.id);if(i&&B){if(B.viewportWrapper.replaceChild(e.track.canvas,B.track.canvas),B.featureOverlay&&(B.featureOverlay.dispose(),this.featureOverlays.delete(B.track)),B.uiLayer&&(B.uiLayer.dispose(),this.uiLayers.delete(B.track)),this.interactive){const A=new as(B.viewportWrapper);A.onFeatureClick=this._makeFeatureClickHandler(e.track),this.featureOverlays.set(e.track,A),B.featureOverlay=A}const t=new rs(B.viewportWrapper,A=>{var g,I;null===(I=(g=e.track).onUIOverlayClick)||void 0===I||I.call(g,A),this.updateAxisContent(e.track),this.updateUILayer(e.track)});this.uiLayers.set(e.track,t),B.uiLayer=t,B.track=e.track;const Q=i.column.nextElementSibling;(null==Q?void 0:Q.classList.contains("loom-column-shim"))&&Q.remove(),null===(g=i.featureOverlay)||void 0===g||g.dispose(),this.featureOverlays.delete(i.track),null===(I=i.uiLayer)||void 0===I||I.dispose(),this.uiLayers.delete(i.track),i.column.remove(),C.columnViewports.delete(A)}}}else for(const g of this.managedTracks){const I=this.trackRows.get(g.track);if(!I)continue;const C=I.columnViewports.get(A);if(C){const g=C.column.previousElementSibling;(null==g?void 0:g.classList.contains("loom-column-shim"))&&g.remove(),null===(t=C.featureOverlay)||void 0===t||t.dispose(),this.featureOverlays.delete(C.track),null===(e=C.uiLayer)||void 0===e||e.dispose(),this.uiLayers.delete(C.track),C.column.remove(),I.columnViewports.delete(A)}}super.removeFrame(A),this.render()}loadSession(A,g){for(const A of this.managedTracks){const g=this.trackRows.get(A.track);g&&g.row.parentNode===this.container&&this.container.removeChild(g.row)}this.trackRows.clear();for(const A of this.uiLayers.values())A.dispose();this.uiLayers.clear(),this.roiOverlayManager.clear(),super.loadSession(A,g)}render(){const A=this.container.clientWidth;if(0===A)return;const g=this._frames.length,I=A-ys,t=Math.max(0,3*(g-1)),e=Math.floor((I-t)/g);for(const A of this._frames)A.viewportWidth=e,Li(A);this.clearCoordinatedDataRanges(),super.render(),g>1&&this.coordinateMultilocusAutoscale();const C=og(this._frames[0].locus);this.interactive&&(this.container.style.cursor=C?"default":"grab");const i=C?"pointer":"crosshair";for(const A of this.managedTracks)if(this.updateAxisContent(A.track),this.interactive&&"ruler"===A.track.type){A.track.canvas.style.cursor=i;for(const g of A.frameInstances.values())"ruler"===g.type&&(g.canvas.style.cursor=i)}this.renderROIOverlays(),this.updateFeatureOverlays(),this.updateUILayers()}setLocus(A){const g=this._frames[0],I=this.clamp(A);let t=this.managedTracks.length>0;const e=[];for(const A of this.managedTracks){const C=this.getTrackForFrame(A,g.id);if(C.needsRepaint(I)){t=!1;break}const i=C.computePixelShift(I);if(null===i){t=!1;break}e.push(i)}if(!t)return void super.setLocus(A);const C=g.locus.chr;g.locus=I,Li(g);for(let A=0;A<this.managedTracks.length;A++){const t=this.managedTracks[A],C=this.getTrackForFrame(t,g.id);C.applyPixelShift(e[A]),C.setLocusSilent(I)}I.chr!==C&&this.updateIdeogramCytobands(),this.events.emit(As.LocusChange,{frames:[g],sourceFrameId:g.id,locus:I}),this.loadAllTracksIfNeeded()}attachRemote(A){this.remoteConnection&&this.remoteConnection.detach(),this.remoteConnection=new os(this,A,{supportsPNG:!0,exportPNG:()=>this.toPNG()})}detachRemote(){this.remoteConnection&&(this.remoteConnection.detach(),this.remoteConnection=null)}syncThemeFromCSS(){const A=si(this.theme,this.container);this.setTheme(A)}dispose(){var A,g;this.detachRemote(),this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),null===(A=this.pointerManager)||void 0===A||A.dispose(),this.pointerManager=null,null===(g=this.contextMenuManager)||void 0===g||g.dispose(),this.contextMenuManager=null,this.teardownUndoKeyboardHandler(),this.handleDocMouseDown&&(document.removeEventListener("mousedown",this.handleDocMouseDown),this.handleDocMouseDown=null),this.roiOverlayManager.dispose();for(const A of this.featureOverlays.values())A.dispose();this.featureOverlays.clear();for(const A of this.uiLayers.values())A.dispose();this.uiLayers.clear();for(const A of this.managedTracks){const g=this.trackRows.get(A.track);g&&g.row.parentNode===this.container&&this.container.removeChild(g.row)}this.trackRows.clear(),super.dispose(),this.ownedWorkerProvider&&(this.ownedWorkerProvider.dispose(),this.ownedWorkerProvider=null)}coordinateMultilocusAutoscale(){var A;for(const g of this.managedTracks){if(0===g.frameInstances.size)continue;const I=[g.track,...g.frameInstances.values()],t=[];for(const g of I){const I=null===(A=g.getAxisInfo)||void 0===A?void 0:A.call(g);(null==I?void 0:I.dataRange)&&t.push(I.dataRange)}if(t.length<2)continue;const e={min:Math.min(...t.map(A=>A.min)),max:Math.max(...t.map(A=>A.max))};if(!t.every(A=>A.min===e.min&&A.max===e.max))for(const A of I)this._applyCoordinatedDataRange(A,e)&&A.render()}}clearCoordinatedDataRanges(){for(const A of this.managedTracks){this._applyCoordinatedDataRange(A.track,null);for(const g of A.frameInstances.values())this._applyCoordinatedDataRange(g,null)}}_applyCoordinatedDataRange(A,g){return(A instanceof mi||A instanceof cQ)&&(A.setCoordinatedDataRange(g),!0)}resolvePrimaryTrack(A){for(const g of this.managedTracks){if(g.track===A)return A;for(const I of g.frameInstances.values())if(I===A)return g.track}return A}updateAxisContent(A){var g,I;const t=this.trackRows.get(A);if(!t)return;const{axisDiv:e}=t,C=this.managedTracks.find(g=>g.track===A),i=this.getCombinedAxisInfo(A,C);if(!i)return e.innerHTML="",e.style.borderRight="none",e.style.backgroundColor=this.theme.palette.background,void(t.axisCanvas=null);const B={...i,backgroundColor:null!==(g=i.backgroundColor)&&void 0!==g?g:this.theme.palette.background,labelColor:null!==(I=i.labelColor)&&void 0!==I?I:this.theme.palette.foreground},Q=this.theme.palette.muted;e.style.borderRight=`1px solid ${Q}`;const o=null!=(null==C?void 0:C.maxTrackHeight)?Math.min(A.height,C.maxTrackHeight):A.height;this.paintAxisCanvas(t,B,o)}getCombinedAxisInfo(A,g){var I,t;const e=null===(I=A.getAxisInfo)||void 0===I?void 0:I.call(A);if(!g||0===g.frameInstances.size)return e;const C=[];e&&C.push(e);for(const A of g.frameInstances.values()){const g=null===(t=A.getAxisInfo)||void 0===t?void 0:t.call(A);g&&C.push(g)}if(0===C.length)return;const i=null!=e?e:C[0];let B;for(const A of C)A.dataRange&&(B?(B.min=Math.min(B.min,A.dataRange.min),B.max=Math.max(B.max,A.dataRange.max)):B={...A.dataRange});return{...i,dataRange:B}}paintAxisCanvas(A,g,I){const{axisDiv:t}=A,e=I;if(0===e)return;t.style.height=`${e}px`;let C=A.axisCanvas;C||(t.innerHTML="",C=document.createElement("canvas"),C.style.display="block",t.appendChild(C),A.axisCanvas=C);const i=this.canvasProvider.devicePixelRatio;C.width=50*i,C.height=e*i,C.style.width="50px",C.style.height=`${e}px`;const B=C.getContext("2d");B.scale(i,i),ui(B,g,50,e)}isRulerCanvas(A){return A instanceof HTMLCanvasElement&&this.managedTracks.some(g=>{if("ruler"!==g.track.type)return!1;if(g.track.canvas===A)return!0;for(const I of g.frameInstances.values())if(I.canvas===A)return!0;return!1})}isOverlayTarget(A){return A.composedPath().some(A=>A instanceof HTMLElement&&("LOOM-CONTEXT-MENU"===A.tagName||"LOOM-INPUT-DIALOG"===A.tagName||"LOOM-POPUP"===A.tagName||A.classList.contains("loom-roi-region")||A.classList.contains("loom-track-ui-layer")||A.classList.contains("loom-track-ui-badge")))}_getFrameIdForX(A){if(this._frames.length<=1)return this._frames[0].id;for(const[,g]of this.trackRows){for(const[I,t]of g.columnViewports){const g=t.column.getBoundingClientRect();if(A>=g.left&&A<=g.right)return I}break}return this._frames[0].id}findTrackForTarget(A){if(!(A instanceof Element))return null;if(A instanceof HTMLCanvasElement)for(const g of this.managedTracks){if(g.track.canvas===A)return g.track;for(const I of g.frameInstances.values())if(I.canvas===A)return I}let g=A;for(;g&&g!==this.container;){if(g instanceof HTMLCanvasElement)for(const A of this.managedTracks){if(A.track.canvas===g)return A.track;for(const I of A.frameInstances.values())if(I.canvas===g)return I}g=g.parentElement}for(const[g,I]of this.trackRows)if(I.row.contains(A))return g;return null}onTracksSorted(){this.syncDOMOrder()}syncDOMOrder(){for(const A of this.managedTracks){const g=this.trackRows.get(A.track);g&&this.container.appendChild(g.row)}}setupUndoKeyboardHandler(){this.handleKeyDown=A=>{(A.ctrlKey||A.metaKey)&&("z"!==A.key||A.shiftKey?("z"===A.key&&A.shiftKey||"y"===A.key)&&(A.preventDefault(),this.redo()):(A.preventDefault(),this.undo()))},document.addEventListener("keydown",this.handleKeyDown)}teardownUndoKeyboardHandler(){this.handleKeyDown&&(document.removeEventListener("keydown",this.handleKeyDown),this.handleKeyDown=null)}renderROIOverlays(){this._frames.length<=1?this.roiOverlayManager.render(this.getVisibleROIs(),this._frames[0].locus,this._frames[0].viewportWidth):this.roiOverlayManager.renderMultiFrame(this._frames,A=>this.roiManager.getVisibleROIs(A),3)}updateFeatureOverlays(){for(const A of this.managedTracks){this.updateFeatureOverlay(A.track);for(const g of A.frameInstances.values())this.updateFeatureOverlay(g)}}updateUILayers(){for(const A of this.managedTracks){this.updateUILayer(A.track);for(const g of A.frameInstances.values())this.updateUILayer(g)}}updateFeatureOverlay(A){const g=this.featureOverlays.get(A);g&&A instanceof LC&&g.update(A.getFeatureRects())}updateUILayer(A){var g;const I=this.uiLayers.get(A);I&&I.update(null===(g=A.getUIOverlayState)||void 0===g?void 0:g.call(A),A.height)}syncViewportWrapperBackground(A){var g;const I=this.trackRows.get(A);if(I)for(const A of I.columnViewports.values())if(A.track instanceof LC){const I=null===(g=A.track.config)||void 0===g?void 0:g.background;"string"==typeof I&&(A.viewportWrapper.style.backgroundColor=I)}}toSVG(A){return Ds(this.managedTracks,this._frames,this.theme,A=>this.roiManager.getVisibleROIs(A),ys,(A,g)=>this.getTrackForFrame(A,g),{width:null==A?void 0:A.width,containerWidth:this.container.clientWidth,backdropColor:null==A?void 0:A.backdropColor})}async toPNG(){const A=this.toSVG(),g=this.container.getBoundingClientRect();return us(A,g.width,g.height,this.canvasProvider.devicePixelRatio)}saveSVGtoFile(A){const g=this.toSVG(),I=new Blob([g],{type:"application/octet-stream"}),t=URL.createObjectURL(I);ws(A||"igv.svg",t),URL.revokeObjectURL(t)}async savePNGtoFile(A){ws(A||"igv.png",await this.toPNG())}}const ks={palette:{primary:"#4A90D9",secondary:"#D94A7A",accent:"#4A90D9",background:"#ffffff",foreground:"#333333",muted:"#B0B0B0"},fontFamily:"Inter, system-ui, sans-serif",annotation:{utrColor:"#A8C8E8",altUtrColor:"#E8A8BE",borderColor:"rgba(0, 0, 0, 0.15)",borderWidth:.5,borderRadius:3,arrowInExonColor:"rgba(255, 255, 255, 0.7)",labelFont:"italic 10px Inter, system-ui, sans-serif",featureHeight:12,expandedRowHeight:28,margin:8},wig:{overflowColor:"#FF6B6B"},ideogram:{borderColor:"#B0B0B0",font:"10px Inter, system-ui, sans-serif"},sequence:{frameColor1:"hsl(220, 15%, 90%)",frameColor2:"hsl(220, 15%, 95%)",startCodonColor:"hsl(160, 55%, 42%)",stopCodonColor:"hsl(0, 60%, 55%)",useFillText:!0,frameLabelColor:"#444444",codonLabelColor:"#ffffff",frameFont:"600 10px Inter, system-ui, sans-serif",codonBorderRadius:3}},Gs={palette:{primary:"#6CB4EE",secondary:"#EE6C9E",accent:"#6a9fd9",background:"#1a1a2e",foreground:"#e0e0e0",muted:"#555555"},nucleotideColors:{A:"#4ade80",C:"#60a5fa",G:"#facc15",T:"#f87171",N:"#666666"},ideogram:{bandLightColor:"rgb(50, 50, 70)",bandDarkColor:"rgb(200, 200, 220)",centromereColor:"rgb(180, 50, 50)",borderColor:"#555555",viewportIndicatorColor:"#ff6b6b"},annotation:{utrColor:"#3D6B8E",altUtrColor:"#8E3D5E",borderColor:"rgba(255, 255, 255, 0.12)",borderWidth:.5,borderRadius:3,arrowInExonColor:"rgba(0, 0, 0, 0.4)",labelBackground:"#1a1a2e",labelFont:"italic 10px sans-serif",featureHeight:12,expandedRowHeight:28,margin:8},wig:{overflowColor:"#FF6B6B"},sequence:{background:"#1a1a2e",frameColor1:"hsl(230, 15%, 28%)",frameColor2:"hsl(230, 15%, 22%)",startCodonColor:"hsl(160, 50%, 35%)",stopCodonColor:"hsl(0, 55%, 45%)",useFillText:!0,frameLabelColor:"#c8c8c8",codonLabelColor:"#ffffff",frameFont:"600 10px sans-serif",codonBorderRadius:3}};function Fs(A){return"modern"===A?ks:"dark"===A?Gs:void 0}const Ns=`\n${zC(OC)}\n`,ms=`\n${zC(VC)}\n`,ps=`\n${zC(ZC)}\n`;function Rs(A){return"modern"===A?ms:"dark"===A?ps:"auto"===A?"":Ns}const Us=document.createElement("template");Us.innerHTML="\n<style>\n:host {\n display: inline-flex;\n align-items: center;\n}\nselect {\n font: var(--loom-font, 12px Arial, sans-serif);\n color: var(--loom-text-color, #333);\n background: var(--loom-input-bg, white);\n border: var(--loom-input-border, 1px solid #b0b0b0);\n border-radius: var(--loom-border-radius, 4px);\n height: var(--loom-input-height, 22px);\n padding: 0 4px;\n box-sizing: border-box;\n outline: none;\n cursor: pointer;\n transition: border-color 0.15s;\n}\nselect:focus {\n border: var(--loom-input-focus-border, 1px solid #4A90D9);\n}\n</style>\n<select></select>\n";class Ms extends HTMLElement{constructor(){super(),this.unsubscribe=null,this._browser=null,this._frameId=null,this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(Us.content.cloneNode(!0)),this.select=this.shadowRoot.querySelector("select"),this.select.addEventListener("change",()=>{if(!this._browser)return;const A=this.select.value;if("all"===A)this._frameId?this._browser.search("all",this._frameId):this._browser.search("all");else{const g=this._browser.chromSizes;if(g&&null!=g[A]){const I={chr:A,start:0,end:g[A]};this._frameId?this._browser.setFrameLocus(this._frameId,I):this._browser.setLocus(I)}}})}set frameId(A){this._frameId=A,this._browser&&this.updateFromBrowser(this._browser)}get frameId(){return this._frameId}set browser(A){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null),this._browser=A,A&&(this.populate(A),this.updateFromBrowser(A),this.unsubscribe=A.on(As.LocusChange,()=>{this.updateFromBrowser(A)}))}get browser(){return this._browser}updateFromBrowser(A){var g,I;const t=this._frameId&&null!==(I=null===(g=A.frames.find(A=>A.id===this._frameId))||void 0===g?void 0:g.locus)&&void 0!==I?I:A.locus;this.updateSelection(t.chr)}populate(A){this.select.innerHTML="";const g=A.chromSizes;if(!g)return;if(A.cumulativeOffsets){const A=document.createElement("option");A.value="all",A.textContent="All",this.select.appendChild(A)}const I=nC(g);for(const A of I){const g=document.createElement("option");g.value=A,g.textContent=A,this.select.appendChild(g)}}updateSelection(A){og({chr:A,start:0,end:0})?this.select.value="all":this.select.value=A}disconnectedCallback(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)}}const Ls=document.createElement("template");Ls.innerHTML='\n<style>\n:host {\n display: inline-flex;\n align-items: center;\n}\n.container {\n display: flex;\n align-items: center;\n gap: 4px;\n}\ninput {\n font: var(--loom-font, 12px Arial, sans-serif);\n color: var(--loom-text-color, #333);\n background: var(--loom-input-bg, white);\n border: var(--loom-input-border, 1px solid #b0b0b0);\n border-radius: var(--loom-border-radius, 4px);\n width: var(--loom-input-width, 220px);\n height: var(--loom-input-height, 22px);\n padding: 0 8px;\n box-sizing: border-box;\n outline: none;\n transition: border-color 0.15s;\n}\ninput:focus {\n border: var(--loom-input-focus-border, 1px solid #4A90D9);\n}\ninput::placeholder {\n color: var(--loom-text-muted, #737373);\n}\n.search-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--loom-button-size, 24px);\n height: var(--loom-button-size, 24px);\n background: var(--loom-button-bg, white);\n border: var(--loom-button-border, 1px solid #b0b0b0);\n border-radius: var(--loom-border-radius, 4px);\n cursor: pointer;\n color: var(--loom-icon-color, #555);\n transition: background 0.15s;\n padding: 0;\n line-height: 1;\n}\n.search-btn:hover {\n background: var(--loom-button-hover, #e8e8e8);\n}\n.search-btn svg {\n width: var(--loom-icon-size, 14px);\n height: var(--loom-icon-size, 14px);\n fill: none;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n stroke-linejoin: round;\n}\n</style>\n<div class="container">\n <input type="text" placeholder="Locus Search" spellcheck="false" />\n <button class="search-btn" title="Go to locus">\n <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><line x1="16.5" y1="16.5" x2="21" y2="21"/></svg>\n </button>\n</div>\n';class Js extends HTMLElement{constructor(){super(),this.unsubscribe=null,this._browser=null,this._frameId=null,this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(Ls.content.cloneNode(!0)),this.input=this.shadowRoot.querySelector("input"),this.input.addEventListener("keydown",A=>{"Enter"===A.key&&this.doSearch()}),this.shadowRoot.querySelector(".search-btn").addEventListener("click",()=>{this.doSearch()})}set frameId(A){this._frameId=A,this._browser&&this.updateDisplayFromBrowser(this._browser)}get frameId(){return this._frameId}set browser(A){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null),this._browser=A,A&&(this.updateDisplayFromBrowser(A),this.unsubscribe=A.on(As.LocusChange,()=>{this.updateDisplayFromBrowser(A)}))}get browser(){return this._browser}updateDisplayFromBrowser(A){if(document.activeElement!==this.input&&this.shadowRoot.activeElement!==this.input)if(this._frameId){const g=A.frames.find(A=>A.id===this._frameId);this.input.value=Eg(g?g.locus:A.locus)}else{const g=A.frames;g.length<=1?this.input.value=Eg(A.locus):this.input.value=g.map(A=>Eg(A.locus)).join(" ")}}async doSearch(){var A;if(!this._browser)return;const g=this.input.value.trim();if(g){this.input.disabled=!0;try{await this._browser.search(g,null!==(A=this._frameId)&&void 0!==A?A:void 0)||(this.input.style.borderColor="var(--loom-input-error-border, #d32f2f)",setTimeout(()=>{this.input.style.borderColor=""},1500))}finally{this.input.disabled=!1,this.input.blur()}}}disconnectedCallback(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)}}const Ks=document.createElement("template");Ks.innerHTML='\n<style>\n:host {\n display: inline-flex;\n align-items: center;\n}\n.container {\n display: flex;\n align-items: center;\n gap: 2px;\n}\nbutton {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--loom-button-size, 24px);\n height: var(--loom-button-size, 24px);\n background: var(--loom-button-bg, white);\n border: var(--loom-button-border, 1px solid #b0b0b0);\n border-radius: var(--loom-border-radius, 4px);\n cursor: pointer;\n color: var(--loom-icon-color, #555);\n transition: background 0.15s;\n padding: 0;\n line-height: 1;\n}\nbutton:hover {\n background: var(--loom-button-hover, #e8e8e8);\n}\nbutton:active {\n transform: scale(0.95);\n}\nbutton svg {\n width: var(--loom-icon-size, 14px);\n height: var(--loom-icon-size, 14px);\n fill: none;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n}\n</style>\n<div class="container">\n <button class="zoom-out" title="Zoom out">\n <svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="9"/><line x1="8" y1="12" x2="16" y2="12"/></svg>\n </button>\n <button class="zoom-in" title="Zoom in">\n <svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="9"/><line x1="12" y1="8" x2="12" y2="16"/><line x1="8" y1="12" x2="16" y2="12"/></svg>\n </button>\n</div>\n';class bs extends HTMLElement{constructor(){super(),this._browser=null,this._frameId=null,this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(Ks.content.cloneNode(!0)),this.shadowRoot.querySelector(".zoom-out").addEventListener("click",()=>{var A,g;null===(A=this._browser)||void 0===A||A.zoomOut(2,null!==(g=this._frameId)&&void 0!==g?g:void 0)}),this.shadowRoot.querySelector(".zoom-in").addEventListener("click",()=>{var A,g;null===(A=this._browser)||void 0===A||A.zoomIn(2,null!==(g=this._frameId)&&void 0!==g?g:void 0)})}set frameId(A){this._frameId=A}get frameId(){return this._frameId}set browser(A){this._browser=A}get browser(){return this._browser}}const vs=document.createElement("template");vs.innerHTML='\n<style>\n:host {\n display: inline-flex;\n align-items: center;\n}\n.label {\n font: var(--loom-font-small, 11px Arial, sans-serif);\n color: var(--loom-text-muted, #737373);\n white-space: nowrap;\n user-select: none;\n}\n</style>\n<span class="label"></span>\n';class Ys extends HTMLElement{constructor(){super(),this.unsubscribe=null,this._browser=null,this._frameId=null,this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(vs.content.cloneNode(!0)),this.label=this.shadowRoot.querySelector(".label")}set frameId(A){this._frameId=A,this._browser&&this.updateFromBrowser(this._browser)}get frameId(){return this._frameId}set browser(A){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null),this._browser=A,A&&(this.updateFromBrowser(A),this.unsubscribe=A.on(As.LocusChange,()=>{this.updateFromBrowser(A)}))}get browser(){return this._browser}updateFromBrowser(A){var g,I;const t=this._frameId&&null!==(I=null===(g=A.frames.find(A=>A.id===this._frameId))||void 0===g?void 0:g.locus)&&void 0!==I?I:A.locus;this.label.textContent=ag(t.end-t.start)}disconnectedCallback(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)}}const xs=document.createElement("template");xs.innerHTML='\n<style>\n:host {\n display: inline-flex;\n align-items: center;\n}\n.container {\n display: flex;\n align-items: center;\n gap: 2px;\n}\nbutton {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--loom-button-size, 24px);\n height: var(--loom-button-size, 24px);\n background: var(--loom-button-bg, white);\n border: var(--loom-button-border, 1px solid #b0b0b0);\n border-radius: var(--loom-border-radius, 4px);\n cursor: pointer;\n color: var(--loom-icon-color, #555);\n transition: background 0.15s;\n padding: 0;\n line-height: 1;\n}\nbutton:hover {\n background: var(--loom-button-hover, #e8e8e8);\n}\nbutton:active {\n transform: scale(0.95);\n}\nbutton svg {\n width: var(--loom-icon-size, 14px);\n height: var(--loom-icon-size, 14px);\n fill: none;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n stroke-linejoin: round;\n}\n</style>\n<div class="container">\n <button class="save-svg" title="Save as SVG">\n <svg viewBox="0 0 24 24">\n <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/>\n <polyline points="7 10 12 15 17 10"/>\n <line x1="12" y1="15" x2="12" y2="3"/>\n </svg>\n </button>\n <button class="save-png" title="Save as PNG">\n <svg viewBox="0 0 24 24">\n <rect x="3" y="3" width="18" height="18" rx="2" ry="2"/>\n <circle cx="8.5" cy="8.5" r="1.5"/>\n <polyline points="21 15 16 10 5 21"/>\n </svg>\n </button>\n</div>\n';class Hs extends HTMLElement{constructor(){super(),this._browser=null,this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(xs.content.cloneNode(!0)),this.shadowRoot.querySelector(".save-svg").addEventListener("click",()=>{var A;null===(A=this._browser)||void 0===A||A.saveSVGtoFile()}),this.shadowRoot.querySelector(".save-png").addEventListener("click",()=>{var A;null===(A=this._browser)||void 0===A||A.savePNGtoFile()})}set browser(A){this._browser=A}get browser(){return this._browser}}customElements.get("loom-chromosome-select")||customElements.define("loom-chromosome-select",Ms),customElements.get("loom-locus-input")||customElements.define("loom-locus-input",Js),customElements.get("loom-zoom-controls")||customElements.define("loom-zoom-controls",bs),customElements.get("loom-window-size")||customElements.define("loom-window-size",Ys);const qs=document.createElement("template");qs.innerHTML='\n<style>\n:host {\n display: flex;\n align-items: center;\n gap: var(--loom-gap, 8px);\n flex: 1;\n min-width: 0;\n}\n.close-btn {\n display: none;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n background: none;\n border: var(--loom-button-border, 1px solid #b0b0b0);\n border-radius: var(--loom-border-radius, 4px);\n cursor: pointer;\n color: var(--loom-icon-color, #555);\n transition: background 0.15s, color 0.15s;\n padding: 0;\n line-height: 1;\n flex-shrink: 0;\n}\n.close-btn:hover {\n background: var(--loom-button-hover, #e8e8e8);\n color: var(--loom-text-color, #333);\n}\n.close-btn svg {\n width: 10px;\n height: 10px;\n fill: none;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n}\n:host([closable]) .close-btn {\n display: flex;\n}\n</style>\n<loom-chromosome-select></loom-chromosome-select>\n<loom-locus-input></loom-locus-input>\n<loom-window-size></loom-window-size>\n<loom-zoom-controls></loom-zoom-controls>\n<button class="close-btn" title="Close this panel">\n <svg viewBox="0 0 24 24"><line x1="6" y1="6" x2="18" y2="18"/><line x1="18" y1="6" x2="6" y2="18"/></svg>\n</button>\n';class _s extends HTMLElement{constructor(){super(),this._browser=null,this._frameId=null,this.unsubFrameRemoved=null,this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(qs.content.cloneNode(!0)),customElements.upgrade(this.shadowRoot),this.chromSelect=this.shadowRoot.querySelector("loom-chromosome-select"),this.locusInput=this.shadowRoot.querySelector("loom-locus-input"),this.zoomControls=this.shadowRoot.querySelector("loom-zoom-controls"),this.windowSize=this.shadowRoot.querySelector("loom-window-size"),this.shadowRoot.querySelector(".close-btn").addEventListener("click",()=>{this._browser&&this._frameId&&this._browser.removeFrame(this._frameId)})}set frameId(A){this._frameId=A,this.chromSelect.frameId=A,this.locusInput.frameId=A,this.zoomControls.frameId=A,this.windowSize.frameId=A}get frameId(){return this._frameId}set browser(A){if(this.unsubFrameRemoved&&(this.unsubFrameRemoved(),this.unsubFrameRemoved=null),this._browser=A,this.chromSelect.browser=A,this.locusInput.browser=A,this.zoomControls.browser=A,this.windowSize.browser=A,A){this.updateClosable(A);const g=A.on(As.FrameAdded,()=>this.updateClosable(A)),I=A.on(As.FrameRemoved,()=>this.updateClosable(A));this.unsubFrameRemoved=()=>{g(),I()}}}get browser(){return this._browser}updateClosable(A){A.frames.length>1?this.setAttribute("closable",""):this.removeAttribute("closable")}disconnectedCallback(){this.unsubFrameRemoved&&(this.unsubFrameRemoved(),this.unsubFrameRemoved=null)}}customElements.get("loom-export-controls")||customElements.define("loom-export-controls",Hs),customElements.get("loom-frame-panel")||customElements.define("loom-frame-panel",_s);const Ts=document.createElement("template");Ts.innerHTML='\n<style>\n:host {\n display: block;\n}\n.single-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: var(--loom-navbar-height, 32px);\n padding: var(--loom-navbar-padding, 0 8px);\n background: var(--loom-navbar-bg, #f3f3f3);\n border-bottom: var(--loom-border, 1px solid #ccc);\n box-sizing: border-box;\n gap: var(--loom-gap, 8px);\n}\n.single-left {\n display: flex;\n align-items: center;\n gap: var(--loom-gap, 8px);\n flex: 1;\n min-width: 0;\n}\n.single-right {\n display: flex;\n align-items: center;\n gap: var(--loom-gap, 8px);\n flex-shrink: 0;\n}\n.global-row {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n height: var(--loom-navbar-height, 32px);\n padding: var(--loom-navbar-padding, 0 8px);\n background: var(--loom-navbar-bg, #f3f3f3);\n border-bottom: var(--loom-border, 1px solid #ccc);\n box-sizing: border-box;\n gap: var(--loom-gap, 8px);\n}\n.frames-row {\n display: flex;\n align-items: center;\n min-height: var(--loom-navbar-height, 32px);\n padding: 0;\n padding-left: var(--loom-axis-width, 50px);\n background: var(--loom-navbar-bg, #f3f3f3);\n border-bottom: var(--loom-border, 1px solid #ccc);\n box-sizing: border-box;\n gap: 0;\n}\n.frame-divider {\n width: var(--loom-column-shim-width, 3px);\n align-self: stretch;\n background: var(--loom-border-color, #ccc);\n flex-shrink: 0;\n}\n.hidden {\n display: none !important;\n}\n</style>\n\x3c!-- Single-frame layout (classic single row) --\x3e\n<div class="single-row">\n <div class="single-left"></div>\n <div class="single-right">\n <loom-export-controls class="export-single"></loom-export-controls>\n </div>\n</div>\n\x3c!-- Multi-frame layout (two rows) --\x3e\n<div class="global-row hidden">\n <loom-export-controls class="export-multi"></loom-export-controls>\n</div>\n<div class="frames-row hidden"></div>\n';class Ws extends HTMLElement{constructor(){super(),this.framePanels=new Map,this._browser=null,this.unsubscribers=[],this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(Ts.content.cloneNode(!0)),customElements.upgrade(this.shadowRoot),this.singleRow=this.shadowRoot.querySelector(".single-row"),this.singleLeft=this.shadowRoot.querySelector(".single-left"),this.exportSingle=this.shadowRoot.querySelector(".export-single"),this.globalRow=this.shadowRoot.querySelector(".global-row"),this.exportMulti=this.shadowRoot.querySelector(".export-multi"),this.framesRow=this.shadowRoot.querySelector(".frames-row")}set browser(A){for(const A of this.unsubscribers)A();this.unsubscribers=[],this.clearFramePanels(),this._browser=A,this.exportSingle.browser=A,this.exportMulti.browser=A,A&&(this.syncLayout(A),this.unsubscribers.push(A.on(As.FrameAdded,()=>this.syncLayout(A))),this.unsubscribers.push(A.on(As.FrameRemoved,()=>this.syncLayout(A))))}get browser(){return this._browser}syncLayout(A){const g=A.frames,I=g.length>1;this.singleRow.classList.toggle("hidden",I),this.globalRow.classList.toggle("hidden",!I),this.framesRow.classList.toggle("hidden",!I);const t=new Set(g.map(A=>A.id));for(const A of[...this.framePanels.keys()])t.has(A)||(this.framePanels.get(A).remove(),this.framePanels.delete(A));if(I)this.singleLeft.innerHTML="",this.rebuildFramesRow(A,g);else{this.framesRow.innerHTML="";const I=g[0];let t=this.framePanels.get(I.id);t?t.browser=A:t=this.createPanel(I.id,A),this.singleLeft.innerHTML="",this.singleLeft.appendChild(t)}}rebuildFramesRow(A,g){this.framesRow.innerHTML="";let I=!0;for(const t of g){if(!I){const A=document.createElement("div");A.className="frame-divider",this.framesRow.appendChild(A)}I=!1;let g=this.framePanels.get(t.id);g?g.browser=A:g=this.createPanel(t.id,A),this.framesRow.appendChild(g)}}createPanel(A,g){const I=document.createElement("loom-frame-panel");return I.frameId=A,I.browser=g,this.framePanels.set(A,I),I}clearFramePanels(){for(const A of this.framePanels.values())A.remove();this.framePanels.clear(),this.singleLeft&&(this.singleLeft.innerHTML=""),this.framesRow&&(this.framesRow.innerHTML="")}disconnectedCallback(){for(const A of this.unsubscribers)A();this.unsubscribers=[],this.clearFramePanels()}}customElements.get("loom-navbar")||customElements.define("loom-navbar",Ws);const Ps=document.createElement("template");Ps.innerHTML='\n<style>\n:host {\n display: block;\n}\n.shell {\n border: var(--loom-border, 1px solid #ccc);\n border-radius: var(--loom-border-radius, 4px);\n overflow: hidden;\n background: var(--loom-shell-bg, white);\n}\n.track-container {\n position: relative;\n}\n</style>\n<div class="shell">\n <loom-navbar></loom-navbar>\n <div class="track-container"></div>\n</div>\n';class Os extends HTMLElement{static get observedAttributes(){return["theme"]}constructor(){super(),this._browser=null,this.attachShadow({mode:"open"}),this.themeStyle=document.createElement("style"),this.shadowRoot.appendChild(this.themeStyle),this.shadowRoot.appendChild(Ps.content.cloneNode(!0)),this.navbar=this.shadowRoot.querySelector("loom-navbar"),this.trackContainer=this.shadowRoot.querySelector(".track-container"),this.applyTheme(this.getAttribute("theme")||"classic")}attributeChangedCallback(A,g,I){"theme"===A&&this.applyTheme(I||"classic")}applyTheme(A){this.themeStyle.textContent=Rs(A)}connectedCallback(){customElements.upgrade(this.shadowRoot),this._browser&&(this.navbar.browser=this._browser)}initialize(A){this._browser&&this._browser.dispose();const g=this.getAttribute("theme"),I=A.theme||!g?A:{...A,theme:Fs(g)};return this._browser=new Ss(this.trackContainer,I),this.isConnected&&(this.navbar.browser=this._browser),this._browser}get browser(){return this._browser}addTrack(A){var g;null===(g=this._browser)||void 0===g||g.addTrack(A)}removeTrack(A){var g;null===(g=this._browser)||void 0===g||g.removeTrack(A)}setLocus(A){var g;null===(g=this._browser)||void 0===g||g.setLocus(A)}on(A,g){var I;return null===(I=this._browser)||void 0===I?void 0:I.on(A,g)}setTheme(A){var g;this.applyTheme(A),this.setAttribute("theme",A),this._browser&&this._browser.setTheme(null!==(g=Fs(A))&&void 0!==g?g:{})}disconnectedCallback(){this._browser&&(this._browser.dispose(),this._browser=null)}}let Vs=null;class Zs extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),this.shadowRoot.appendChild((Vs||(Vs=document.createElement("template"),Vs.innerHTML='\n<style>\n:host {\n position: absolute;\n z-index: 100000;\n pointer-events: auto;\n display: none;\n user-select: text;\n -webkit-user-select: text;\n cursor: auto;\n}\n.popup {\n background: var(--loom-popup-bg, var(--loom-input-bg, white));\n border: var(--loom-popup-border, var(--loom-border, 1px solid #ccc));\n border-radius: var(--loom-popup-radius, var(--loom-border-radius, 6px));\n box-shadow: var(--loom-popup-shadow, 0 2px 8px rgba(0,0,0,0.15));\n padding: 8px 12px;\n font: var(--loom-popup-font, var(--loom-font-small, 12px/1.4 sans-serif));\n color: var(--loom-popup-color, var(--loom-text-color, #333));\n max-width: 320px;\n min-width: 120px;\n}\ntable {\n border-collapse: collapse;\n width: 100%;\n}\ntd {\n padding: 2px 0;\n vertical-align: top;\n}\ntd.name {\n font-weight: 600;\n padding-right: 8px;\n white-space: nowrap;\n color: var(--loom-popup-name-color, var(--loom-popup-color, var(--loom-text-color, #333)));\n}\ntd.value {\n word-break: break-word;\n color: var(--loom-popup-color, var(--loom-text-color, #333));\n}\ntd.value.html {\n padding-top: 4px;\n}\ntd.value.html .popup-note {\n font-size: 11px;\n color: var(--loom-popup-color, var(--loom-text-color, #333));\n margin-top: 4px;\n}\ntd.value.html .legend-list {\n display: grid;\n gap: 4px;\n}\ntd.value.html .legend-row {\n display: flex;\n align-items: baseline;\n gap: 8px;\n flex-wrap: wrap;\n}\ntd.value.html .legend-label {\n font-weight: 600;\n}\ntd.value.html .legend-swatch {\n display: inline-block;\n width: 8px;\n height: 8px;\n border-radius: 999px;\n margin-right: 6px;\n vertical-align: middle;\n}\ntd.value.monospace {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \'Liberation Mono\', monospace;\n white-space: pre;\n word-break: normal;\n}\ntr.border-top td {\n border-top: 1px solid var(--loom-popup-divider, var(--loom-button-hover, #e0e0e0));\n padding-top: 4px;\n}\n.close {\n position: absolute;\n top: 4px;\n right: 6px;\n background: none;\n border: none;\n cursor: pointer;\n font-size: 14px;\n color: var(--loom-popup-close-color, var(--loom-text-muted, #999));\n line-height: 1;\n padding: 0 2px;\n}\n.close:hover {\n color: var(--loom-popup-color, var(--loom-text-color, #333));\n}\n</style>\n<div class="popup">\n <button class="close" title="Close">&times;</button>\n <table><tbody></tbody></table>\n</div>\n'),Vs).content.cloneNode(!0)),this.shadowRoot.querySelector(".close").addEventListener("click",()=>{this.hide()});const A=this.shadowRoot.querySelector(".popup");A.addEventListener("pointerdown",A=>{A.stopPropagation()}),A.addEventListener("pointerup",A=>{A.stopPropagation()}),A.addEventListener("mousedown",A=>{A.stopPropagation()}),A.addEventListener("mouseup",A=>{A.stopPropagation()})}setData(A){const g=this.shadowRoot.querySelector("tbody");g.innerHTML="";for(const I of A){const A=document.createElement("tr");I.borderTop&&(A.className="border-top");const t=document.createElement("td");t.className="name",t.textContent=I.name;const e=document.createElement("td");e.className="value",I.monospace&&e.classList.add("monospace"),I.content?(e.classList.add("html"),e.appendChild(I.content(document))):e.textContent=String(I.value),A.appendChild(t),A.appendChild(e),g.appendChild(A)}}showAt(A,g){this.style.display="block";this.style.left=`${A+12}px`,this.style.top=`${g+12}px`,requestAnimationFrame(()=>{const I=this.offsetParent;if(!I)return;const t=I.getBoundingClientRect(),e=this.getBoundingClientRect();let C=A+12,i=g+12;C+e.width>t.width&&(C=A-e.width-12),i+e.height>t.height&&(i=g-e.height-12),C<0&&(C=0),i<0&&(i=0),this.style.left=`${C}px`,this.style.top=`${i}px`})}hide(){this.style.display="none"}}"undefined"==typeof customElements||customElements.get("loom-popup")||customElements.define("loom-popup",Zs);class zs{constructor(){this.element=null}show(A,g,I){if(!this.element){this.element=document.createElement("loom-popup");"static"===getComputedStyle(I).position&&(I.style.position="relative"),I.appendChild(this.element)}this.element.setData(A),this.element.showAt(g.x,g.y)}hide(){this.element&&this.element.hide()}dispose(){this.element&&(this.element.remove(),this.element=null)}}var js=Object.freeze({__proto__:null,LoomPopup:Zs,DefaultPopupProvider:zs});class Xs extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){const A=document.createElement("template");A.innerHTML='\n<style>\n:host {\n position: absolute;\n z-index: 100001;\n pointer-events: auto;\n display: none;\n user-select: text;\n -webkit-user-select: text;\n cursor: auto;\n}\n.menu {\n background: var(--loom-menu-bg, var(--loom-input-bg, white));\n border: var(--loom-menu-border, var(--loom-border, 1px solid #ccc));\n border-radius: var(--loom-menu-radius, var(--loom-border-radius, 4px));\n box-shadow: var(--loom-menu-shadow, 0 2px 8px rgba(0,0,0,0.18));\n padding: 4px 0;\n font: var(--loom-menu-font, var(--loom-font-small, 12px/1.4 sans-serif));\n color: var(--loom-menu-color, var(--loom-text-color, #333));\n min-width: 160px;\n}\n.item {\n padding: 6px 12px;\n cursor: pointer;\n white-space: nowrap;\n display: flex;\n align-items: center;\n gap: 6px;\n position: relative;\n}\n.item:hover {\n background: var(--loom-menu-hover, var(--loom-button-hover, #f0f0f0));\n}\n.item.disabled {\n opacity: 0.45;\n pointer-events: none;\n}\n.separator {\n height: 1px;\n background: var(--loom-menu-divider, var(--loom-button-hover, #e0e0e0));\n margin: 4px 0;\n}\n.check {\n width: 14px;\n text-align: center;\n flex-shrink: 0;\n font-size: 11px;\n}\n.label {\n flex: 1;\n}\n.arrow {\n font-size: 9px;\n color: #999;\n margin-left: 8px;\n}\n.submenu {\n position: absolute;\n left: 100%;\n top: -4px;\n display: none;\n}\n.item:hover > .submenu {\n display: block;\n}\n</style>\n<div class="menu"></div>\n',this.shadowRoot.appendChild(A.content.cloneNode(!0)),this.menuDiv=this.shadowRoot.querySelector(".menu")}disconnectedCallback(){this.menuDiv&&(this.menuDiv.innerHTML="")}setItems(A){this.menuDiv&&(this.menuDiv.innerHTML="",this.buildItems(A,this.menuDiv))}buildItems(A,g){for(const I of A){if("separator"===I.type){const A=document.createElement("div");A.className="separator",g.appendChild(A);continue}const A=document.createElement("div");A.className="item"+(I.disabled?" disabled":"");const t=document.createElement("span");t.className="check",t.textContent="checkbox"===I.type&&I.checked?"✓":"",A.appendChild(t);const e=document.createElement("span");if(e.className="label",e.textContent=I.label,A.appendChild(e),I.children&&I.children.length>0){const g=document.createElement("span");g.className="arrow",g.textContent="▶",A.appendChild(g);const t=document.createElement("div");t.className="submenu menu",this.buildItems(I.children,t),A.appendChild(t)}if(I.action&&!I.disabled){const g=I.action;A.addEventListener("pointerdown",A=>{A.stopPropagation()}),A.addEventListener("pointerup",A=>{A.stopPropagation()}),A.addEventListener("click",A=>{A.stopPropagation(),g(),this.hide()}),A.addEventListener("mousedown",A=>{A.stopPropagation()}),A.addEventListener("mouseup",A=>{A.stopPropagation()})}g.appendChild(A)}}showAt(A,g){this.style.display="block",this.style.left=`${A}px`,this.style.top=`${g}px`,requestAnimationFrame(()=>{const I=this.offsetParent;if(!I)return;const t=I.getBoundingClientRect(),e=this.getBoundingClientRect();let C=A,i=g;C+e.width>t.width&&(C=Math.max(0,A-e.width)),i+e.height>t.height&&(i=Math.max(0,g-e.height)),this.style.left=`${C}px`,this.style.top=`${i}px`})}hide(){this.style.display="none"}}"undefined"==typeof customElements||customElements.get("loom-context-menu")||customElements.define("loom-context-menu",Xs);class $s{constructor(){this.element=null}show(A,g,I){if(!this.element){this.element=document.createElement("loom-context-menu");"static"===getComputedStyle(I).position&&(I.style.position="relative"),I.appendChild(this.element)}this.element.setItems(A),this.element.showAt(g.x,g.y)}hide(){this.element&&this.element.hide()}dispose(){this.element&&(this.element.remove(),this.element=null)}}var AE=Object.freeze({__proto__:null,LoomContextMenu:Xs,DefaultContextMenuProvider:$s});class gE extends HTMLElement{constructor(){super(),this.resolve=null,this.attachShadow({mode:"open"})}connectedCallback(){const A=document.createElement("template");A.innerHTML='\n<style>\n:host {\n position: absolute;\n z-index: 100002;\n top: 0; left: 0; right: 0; bottom: 0;\n display: none;\n align-items: center;\n justify-content: center;\n background: rgba(0, 0, 0, 0.15);\n}\n.dialog {\n background: var(--loom-dialog-bg, var(--loom-input-bg, white));\n border: var(--loom-dialog-border, var(--loom-border, 1px solid #ccc));\n border-radius: var(--loom-dialog-radius, var(--loom-border-radius, 6px));\n box-shadow: var(--loom-dialog-shadow, 0 4px 16px rgba(0,0,0,0.2));\n padding: 16px 20px;\n font: var(--loom-dialog-font, var(--loom-font, 13px/1.4 sans-serif));\n color: var(--loom-dialog-color, var(--loom-text-color, #333));\n min-width: 220px;\n}\n.dialog label {\n display: block;\n margin-bottom: 8px;\n font-weight: 600;\n font-size: 12px;\n}\n.dialog input {\n width: 100%;\n box-sizing: border-box;\n padding: 6px 8px;\n background: var(--loom-input-bg, white);\n border: var(--loom-input-border, 1px solid #ccc);\n border-radius: 4px;\n font: inherit;\n color: inherit;\n margin-bottom: 12px;\n}\n.dialog input:focus {\n outline: none;\n border-color: var(--loom-accent, #4A90D9);\n box-shadow: 0 0 0 2px rgba(74, 144, 217, 0.2);\n}\n.buttons {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n}\n.buttons button {\n padding: 5px 14px;\n border: var(--loom-button-border, 1px solid #ccc);\n border-radius: 4px;\n font: inherit;\n font-size: 12px;\n cursor: pointer;\n background: var(--loom-dialog-btn-bg, var(--loom-button-bg, #f5f5f5));\n color: var(--loom-dialog-btn-color, var(--loom-text-color, #333));\n}\n.buttons button:hover {\n background: var(--loom-button-hover, #e8e8e8);\n}\n.buttons button.primary {\n background: var(--loom-accent, #4A90D9);\n color: white;\n border-color: transparent;\n}\n.buttons button.primary:hover {\n filter: brightness(0.9);\n}\n</style>\n<div class="dialog">\n <label></label>\n <input type="text" />\n <div class="buttons">\n <button class="cancel">Cancel</button>\n <button class="primary ok">OK</button>\n </div>\n</div>\n',this.shadowRoot.appendChild(A.content.cloneNode(!0)),this.labelEl=this.shadowRoot.querySelector("label"),this.inputEl=this.shadowRoot.querySelector("input"),this.okBtn=this.shadowRoot.querySelector(".ok"),this.cancelBtn=this.shadowRoot.querySelector(".cancel"),this.okBtn.addEventListener("click",()=>this.confirm()),this.cancelBtn.addEventListener("click",()=>this.cancel()),this.inputEl.addEventListener("keydown",A=>{"Enter"===A.key&&this.confirm(),"Escape"===A.key&&this.cancel()})}prompt(A,g){return this.labelEl.textContent=A,this.inputEl.value=String(g),this.style.display="flex",requestAnimationFrame(()=>{this.inputEl.focus(),this.inputEl.select()}),new Promise(A=>{this.resolve=A})}confirm(){const A=this.inputEl.value;this.style.display="none",this.resolve&&(this.resolve(A),this.resolve=null)}cancel(){this.style.display="none",this.resolve&&(this.resolve(null),this.resolve=null)}}"undefined"==typeof customElements||customElements.get("loom-input-dialog")||customElements.define("loom-input-dialog",gE);var IE=Object.freeze({__proto__:null,LoomInputDialog:gE});"undefined"!=typeof customElements&&(customElements.get("loom-chromosome-select")||customElements.define("loom-chromosome-select",Ms),customElements.get("loom-locus-input")||customElements.define("loom-locus-input",Js),customElements.get("loom-zoom-controls")||customElements.define("loom-zoom-controls",bs),customElements.get("loom-window-size")||customElements.define("loom-window-size",Ys),customElements.get("loom-export-controls")||customElements.define("loom-export-controls",Hs),customElements.get("loom-frame-panel")||customElements.define("loom-frame-panel",_s),customElements.get("loom-navbar")||customElements.define("loom-navbar",Ws),customElements.get("loom-browser")||customElements.define("loom-browser",Os)),A.AnnotationTrackCanvas=ai,A.AuthProviderChain=class{constructor(A){this.entries=[...A]}add(A){this.entries.push(A)}async getCredentials(A,g){for(const I of this.entries)if(o(I)&&e(I.match,A))return I.provider.getCredentials(A,g);for(const I of this.entries)if(!o(I)){const t=await I.getCredentials(A,g);if(t)return t}}},A.BaseCompositeTrack=hQ,A.BaseTrackCanvas=LC,A.BigBedAnnotationSource=tB,A.BigBedDataSource=gQ,A.BigWigDataSource=cg,A.BigWigReader=Ig,A.BrowserEvent=As,A.C2S=Vi,A.CSS_VAR_NAMES=PC,A.ChromAliasBB=IB,A.ChromAliasDefaults=AB,A.ChromAliasFile=gB,A.CommandDispatcher=Bs,A.CommandError=Cs,A.CredentialStore=C,A.DEFAULT_BPP_SEQUENCE_THRESHOLD=10,A.DEFAULT_SEARCHABLE_FIELDS=Ko,A.DOMCanvasProvider=f,A.DefaultContextMenuProvider=$s,A.DefaultPopupProvider=zs,A.EventEmitter=Zi,A.FeatureCache=rI,A.FeatureNameIndex=vo,A.GeneDataSource=II,A.GenomeBrowser=Ss,A.GoogleAuthManager=y,A.GoogleAuthProvider=class{constructor(A){this._token=A.token,this._apiKey=A.apiKey,this.clientId=A.clientId,this.scope=A.scope,this.hint=A.hint,this.hostedDomain=A.hostedDomain}async getCredentials(A,I){var t;if(!s(A))return;if(r(A))return;let e,C=A;E(A)&&(C=n(A)),a(A)&&(C=d(A)),this._apiKey&&(C=w(C,this._apiKey)),this._token&&(e=await g(this._token)),!e&&(null===(t=this._manager)||void 0===t?void 0:t.isInitialized())&&(e=this._manager.getCurrentAccessToken());const i={};e&&(i.Authorization=`Bearer ${e}`,i["Cache-Control"]="no-cache");const B=Object.keys(i).length>0,Q=C!==A;return B||Q?{headers:B?i:void 0,resolvedUrl:Q?C:void 0}:void 0}initGIS(){if(!this.clientId)throw new Error("GoogleAuthProvider: clientId is required for GIS initialization.");const A=new y,g={clientId:this.clientId,apiKey:this._apiKey,scope:this.scope,hint:this.hint,hostedDomain:this.hostedDomain};return A.init(g),this._manager=A,A}isGISInitialized(){var A,g;return null!==(g=null===(A=this._manager)||void 0===A?void 0:A.isInitialized())&&void 0!==g&&g}async signIn(A){var g;if(!(null===(g=this._manager)||void 0===g?void 0:g.isInitialized()))throw new Error("GoogleAuthProvider: GIS not initialized. Call initGIS() first.");await this._manager.getAccessToken(A)}signOut(){var A;null===(A=this._manager)||void 0===A||A.signOut()}setToken(A){this._token=A}setApiKey(A){this._apiKey=A}},A.GtxDataSource=Tg,A.GtxReader=bg,A.HeadlessGenomeBrowser=es,A.IdeogramTrackCanvas=$Q,A.InteractionTrackCanvas=sQ,A.IntervalTree=aI,A.LoomBrowserShell=Os,A.LoomChromosomeSelect=Ms,A.LoomContextMenu=Xs,A.LoomExportControls=Hs,A.LoomInputDialog=gE,A.LoomLocusInput=Js,A.LoomNavbar=Ws,A.LoomPopup=Zs,A.LoomWindowSize=Ys,A.LoomZoomControls=bs,A.MainThreadProvider=yC,A.MemoryDataSource=tQ,A.MergedDataSource=dQ,A.MergedFeatureCollection=lQ,A.MergedTrackCanvas=cQ,A.NodeWorkerProvider=class{constructor(A){this.nextId=0,this.pending=new Map,this.initPromise=this.init(A)}async init(A){const g=await import("worker_threads");this.worker=new g.Worker(A),this.worker.on("message",A=>{const g=this.pending.get(A.id);g&&(this.pending.delete(A.id),A.error?g.reject(FC(A.error)):g.resolve(A.result))}),this.worker.on("error",A=>{for(const{reject:g}of this.pending.values())g(A);this.pending.clear()})}async execute(A,g){await this.initPromise;const I=this.nextId++;return GC(new Promise((t,e)=>{this.pending.set(I,{resolve:t,reject:e}),this.worker.postMessage({id:I,task:A},null!=g?g:[])}),SC,A.task)}dispose(){var A;null===(A=this.worker)||void 0===A||A.terminate();for(const{reject:A}of this.pending.values())A(new Error("Worker terminated"));this.pending.clear()}},A.PeakOverlayTrackCanvas=rQ,A.READY_STATE_OPEN=1,A.ROISet=To,A.ROI_DEFAULT_COLOR=xo,A.ROI_USER_DEFINED_COLOR=Ho,A.RemoteConnection=os,A.RulerTrackCanvas=li,A.SESSION_VERSION=Eo,A.SequenceDataSource=XB,A.SequenceTrackCanvas=$B,A.StateProjection=Do,A.TabixReader=Be,A.TextFeatureSource=uC,A.TrackFeatureLRU=bi,A.UndoManager=mo,A.WebWorkerPool=UC,A.WebWorkerProvider=class{constructor(A){var g,I;let t,e;if(this.nextId=0,this.nextWorker=0,this.pending=new Map,"string"==typeof A||A instanceof URL){e=1,this.taskTimeoutMs=SC;const g=A;t=()=>new Worker(g,{type:"module"})}else if(this.taskTimeoutMs=null!==(g=A.taskTimeoutMs)&&void 0!==g?g:SC,e=Math.max(1,null!==(I=A.poolSize)&&void 0!==I?I:1),A.workerFactory)t=A.workerFactory;else{if(!A.workerUrl)throw new Error("WebWorkerProviderOptions requires either workerUrl or workerFactory");{const g=A.workerUrl;t=()=>new Worker(g,{type:"module"})}}this.workers=[];for(let A=0;A<e;A++){const A=t();A.onmessage=A=>{const{id:g,result:I,error:t}=A.data,e=this.pending.get(g);e&&(this.pending.delete(g),t?e.reject(FC(t)):e.resolve(I))},A.onerror=A=>{const g=new Error(`Worker error: ${A.message}`);for(const{reject:A}of this.pending.values())A(g);this.pending.clear()},this.workers.push(A)}}get poolSize(){return this.workers.length}execute(A,g){const I=this.nextId++,t=this.workers[this.nextWorker%this.workers.length];this.nextWorker++;return GC(new Promise((e,C)=>{this.pending.set(I,{resolve:e,reject:C}),t.postMessage({id:I,task:A},null!=g?g:[])}),this.taskTimeoutMs,A.task)}dispose(){for(const A of this.workers)A.terminate();for(const{reject:A}of this.pending.values())A(new Error("Worker terminated"));this.pending.clear(),this.workers=[]}},A.WigGroupDataSource=PQ,A.WigGroupFeatureCollection=WQ,A.WigGroupTrackCanvas=vQ,A.WigTrackCanvas=mi,A.WorkerDataSource=NC,A.addCaseAliases=zi,A.addGoogleApiKey=w,A.aggregateWigFeatures=RQ,A.assembleGFFTranscripts=Je,A.autoThemeCSS="",A.bufferLocus=Ki,A.buildFetchFromCredentials=Q,A.cacheCoversViewport=Ji,A.clampLocus=rg,A.classicThemeCSS=Ns,A.classicThemeValues=OC,A.clearBigWigCache=function(){Ag.clear()},A.clearFastaCache=function(){wB.clear()},A.clearGenomeRegistry=function(){bB=void 0,vB=void 0},A.clearGtxCache=function(){for(const A of xg.values())A.dispose();xg.clear(),vg.clear()},A.clearTwoBitCache=function(){EB.clear(),aB.clear()},A.commonContextMenuItems=k,A.complementBase=OB,A.complementSequence=function(A){var g;let I="";for(const t of A)I+=null!==(g=PB.get(t))&&void 0!==g?g:t;return I},A.computeCumulativeOffsets=cC,A.computeWigDataRange=Bg,A.createAuthenticatedFetch=B,A.createBrowser=async function(A){const{genome:g,registry:I,...t}=A;let e;if(null===g)e=null;else if(void 0===g)e=void 0;else if("string"!=typeof g&&("function"==typeof(C=g).getChromosomeName&&"cumulativeOffsets"in C))e=g;else{(I||"string"==typeof g)&&await YB(I);const A=await xB(g);e=await UB(A)}var C;return new es({...t,genome:e})},A.createCachedSequence=CB,A.createDefaultContextMenuProvider=ls,A.createDefaultPopupProvider=ds,A.createFastaSequenceProvider=fB,A.createFeatureSource=function(A){var g,I,t,e,C,i;const B=null!==(I=null!==(g=A.format)&&void 0!==g?g:eC(A.url))&&void 0!==I?I:"bed",Q=null!==(t=EC(B))&&void 0!==t?t:"annotation";let o;if("gtx"===B){const g=null!==(e=A.windowFunction)&&void 0!==e?e:"mean";o=new Tg(A.url,null!==(C=A.experimentId)&&void 0!==C?C:"",g)}else if(QC(B))o=new gQ(A.url);else if(iC(B)){const g=null!==(i=A.windowFunction)&&void 0!==i?i:"mean";o=new cg(A.url,g)}else{const g={url:A.url,format:B,indexURL:A.indexURL,indexed:A.indexed,assembleGFF:A.assembleGFF};o=new uC(g)}return{dataSource:o,trackType:Q,format:B}},A.createGenome=UB,A.createGenomeSync=RB,A.createReferenceFrame=Mi,A.createShell=function(A,g){customElements.get("loom-browser")||customElements.define("loom-browser",Os);const{shellTheme:I,ruler:t,genes:e,sequence:C,...i}=g;if(I&&!i.theme){const A=Fs(I);A&&(i.theme=A)}const B=document.createElement("loom-browser");I&&B.setAttribute("theme",I),A.appendChild(B);const Q=B.initialize(i);return!1!==t&&Q.addRuler(),!1!==e&&Q.addGeneTrack({maxTrackHeight:150}),!0===C&&Q.addSequenceTrack(),B},A.createTrackFromConfig=so,A.createTrackFromSession=ao,A.createTwoBitSequenceProvider=cB,A.createWorkerAuthFetch=function(A,g){return async(I,t)=>{const e=await A(I,t);if(401!==e.status&&403!==e.status)return e;const C="string"==typeof I?I:I instanceof URL?I.toString():I.url,i=await g(C);if(!i)return e;const B=Q(i);return B?B(I,t):e}},A.darkRenderTheme=Gs,A.darkThemeValues=ZC,A.dataSourceCacheKey=Po,A.decodeBed=Qe,A.decodeBedGraph=ae,A.decodeBedpe=Te,A.decodeBroadPeak=oe,A.decodeGFF3=Re,A.decodeGFFAttribute=Fe,A.decodeGTF=Ue,A.decodeGappedPeak=Ee,A.decodeGenePred=jg,A.decodeGenePredExt=Xg,A.decodeInteract=Oe,A.decodeNarrowPeak=se,A.decodeRefGeneJson=$g,A.decodeRefflat=re,A.defaultCanvasProvider=S,A.defaultNucleotideColors=wi,A.defaultRenderTheme=jC,A.drawLetterGlyph=Si,A.encodeGCSObject=l,A.fetchBigWigFeatures=tg,A.fetchBigWigWGFeatures=eg,A.fetchCytobands=FB,A.fetchFastaChromSizes=SB,A.fetchFastaSequenceNames=async function(A,g,I){return yB(A,null!=g?g:A+".fai",void 0,I).getSequenceNames()},A.fetchGeneFeatures=gI,A.fetchGtxFeatures=async function(A,g,I,t={}){var e;const C=Hg(A,t.fetchImpl);await C.init(t.signal);const i=C.resolveExperimentIndex(g);if(void 0===i)throw new Error(`Unknown experiment: ${g}`);return null!==(e=(await C.readFeatures(I.chr,I.start,I.end,[i],t.bpPerPixel,t.signal)).get(i))&&void 0!==e?e:[]},A.fetchGtxMultiFeatures=async function(A,g,I,t={}){var e;const C=Hg(A,t.fetchImpl);await C.init(t.signal);const i=new Map,B=[];for(const A of g){const g=C.resolveExperimentIndex(A);if(void 0===g)throw new Error(`Unknown experiment: ${A}`);i.set(A,g),B.push(g)}const Q=await C.readFeatures(I.chr,I.start,I.end,B,t.bpPerPixel,t.signal),o=new Map;for(const[A,g]of i)o.set(A,null!==(e=Q.get(g))&&void 0!==e?e:[]);return o},A.fetchGtxWGFeatures=qg,A.fetchSequence=iB,A.fetchTwoBitChromSizes=lB,A.fetchTwoBitSequenceNames=async function(A,g){return rB(A,g).getSequenceNames()},A.findUTRs=Wg,A.fixBedPE=We,A.formatBpLength=ag,A.formatLocus=Eg,A.fromIgvSession=function(A){const g=Array.isArray(A.locus)?A.locus[0]:A.locus,I=g?sg(g):null;if(!I)throw new Error(`Cannot parse locus from igv session: ${g}`);const t=[];if(A.tracks)for(const g of A.tracks){const A=co(g);A&&t.push(A)}return{version:Eo,locus:I,tracks:t}},A.generateCSSVariableBlock=zC,A.generateFrameId=Ui,A.generateROIId=_o,A.genomeToChromCoord=lC,A.getChromLength=function(A,g){return null==g?void 0:g[A]},A.getCodingEnd=Vg,A.getCodingLength=Zg,A.getCodingStart=Og,A.getDecoder=Ve,A.getDriveDownloadURL=d,A.getGoogleDriveFileID=D,A.getKnownGenome=function(A){return null==bB?void 0:bB.get(A)},A.getKnownGenomes=function(){return null!=bB?bB:new Map},A.getLogLevel=function(){return pC},A.getThemeCSS=Rs,A.getTrackCreator=Bo,A.hg38ChromSizes=DC,A.hg38Genome=LB,A.inferFormatFromPath=eC,A.inferIndexURL=sC,A.inferTrackType=EC,A.initializeGenomeRegistry=YB,A.isBinaryFormat=iC,A.isCoding=Se,A.isExon=ye,A.isGoogleDriveURL=a,A.isGoogleStorageSigned=r,A.isGoogleStorageURL=E,A.isGoogleURL=s,A.isHiccups=Pe,A.isIntron=fe,A.isKnownDataSourceType=TB,A.isLikelyIndexed=oC,A.isMainChromosome=rC,A.isTranscript=ue,A.isTranscriptPart=we,A.isUTR=ke,A.isValidHGVS=Uo,A.isWholeGenomeView=og,A.isZoomAware=KC,A.knownFileExtensions=tC,A.knownTrackTypes=Qo,A.lineWigConfig={graphType:"line"},A.mainChromosomeNames=nC,A.mainThreadProvider=fC,A.matchesSelector=Fo,A.mergeThemeFromCSS=si,A.modernRenderTheme=ks,A.modernThemeCSS=ms,A.modernThemeValues=VC,A.normalizeWigGroupRawArrays=MQ,A.numericDataMenuItems=G,A.packFeatures=bC,A.parseBucketName=h,A.parseChromSizes=dC,A.parseColorString=Pg,A.parseCytobandLine=kB,A.parseCytobands=GB,A.parseFeatures=je,A.parseGFFAttributes=Ne,A.parseHeader=ze,A.parseLocus=sg,A.parseSearchResults=Ro,A.parseStrand=zg,A.peakPopupData=nQ,A.positionString=oQ,A.prettyPrintNumber=di,A.recalcBpPerPixel=Li,A.registerTrackCreator=Co,A.registerTypeAlias=io,A.renderAnnotationTrack=WC,A.renderDOMBrowserSVG=Ds,A.renderDynSeqFeature=ki,A.renderIdeogram=zQ,A.renderInteractionTrack=eQ,A.renderPeakOverlay=aQ,A.renderQuantitativeAxis=ui,A.renderROIOverlays=vi,A.renderRulerTrack=hi,A.renderSequenceTrack=jB,A.renderTrackNameLabel=JC,A.renderViewportIndicator=XQ,A.renderWholeGenomeRuler=ci,A.renderWigTrack=Ni,A.resolveAnnotationConfig=$C,A.resolveDataSourceConfig=WB,A.resolveGenomeConfig=xB,A.resolveIdeogramConfig=Bi,A.resolveInteractionConfig=ti,A.resolvePeakOverlayConfig=ei,A.resolveRulerConfig=gi,A.resolveSequenceConfig=Ii,A.resolveTheme=XC,A.resolveThemeFromCSSVariables=oi,A.resolveToken=g,A.resolveWigConfig=Ai,A.resolveWigGroupConfig=ii,A.reverseComplementSequence=function(A){var g;let I="",t=A.length;for(;t-- >0;){const e=A[t];I+=null!==(g=PB.get(e))&&void 0!==g?g:e}return I},A.roiContextMenuItems=F,A.searchHGVS=Mo,A.searchWebService=po,A.selectTracks=No,A.setLogLevel=function(A){pC=A},A.summarizeWigData=ig,A.svgToPNG=us,A.toIgvSession=function(A){const g={locus:Eg(A.locus),tracks:[]};for(const I of A.tracks){const A=lo(I);A&&g.tracks.push(A)}return g},A.toTrackSelector=is,A.translateGoogleCloudURL=n,A.translateSequence=ZB,A.translationDict=VB,A.triggerDownload=ws,A.warmWigConfig={color:"#E8615D",altColor:"#5D8DE8",overflowColor:"#9B59B6"},A.wildcardMatch=e,A.wildcardToRegExp=t,Object.defineProperty(A,"__esModule",{value:!0})});
2
2
  //# sourceMappingURL=loom.min.js.map